1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
use std::collections::HashSet;
use specs::{
Component,
VecStorage,
};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum Flag {
Blocking,
Floor,
Occupied,
Soil
}
use Flag::*;
impl Flag {
pub fn from_str(s: &str) -> Option<Flag> {
Some(match s {
"Blocking" => Blocking,
"Floor" => Floor,
"Occupied" => Occupied,
"Soil" => Soil,
_ => None?
})
}
}
#[derive(Component, Debug, Clone, PartialEq, Eq)]
#[storage(VecStorage)]
pub struct Flags(pub HashSet<Flag>);
|