Add a presets Menu to the game_of_life example

This commit is contained in:
Héctor Ramón Jiménez 2021-07-19 21:18:54 +07:00
parent c8ac77e4e9
commit b97954a1ee
No known key found for this signature in database
GPG key ID: 140CC052C94F138E
3 changed files with 23 additions and 2 deletions

View file

@ -1,3 +1,5 @@
use iced::menu::{self, Menu};
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Preset {
Custom,
@ -26,6 +28,17 @@ pub static ALL: &[Preset] = &[
];
impl Preset {
pub fn menu() -> Menu<Self> {
Menu::with_entries(
ALL.iter()
.copied()
.map(|preset| {
menu::Entry::item(preset.to_string(), None, preset)
})
.collect(),
)
}
pub fn life(self) -> Vec<(isize, isize)> {
#[rustfmt::skip]
let cells = match self {