chair/
features.rs

1use enumflags2::*;
2
3#[bitflags]
4#[repr(u8)]
5#[derive(Clone, Copy, Debug, Eq, PartialEq)]
6pub enum MeshFeature {
7	Coloured,
8	Normals,
9	Textured,
10	Rigged,
11
12	ShortPos,
13	ShortNormals,
14	ShortUvs,
15	ShortWeights
16}
17
18pub type MeshFeatures = BitFlags<MeshFeature>;
19
20#[macro_export]
21macro_rules! features {
22	() => {
23		MeshFeatures::empty()
24	};
25	($feat: tt) => {
26		MeshFeature::$feat.into()
27	};
28
29	($feat: tt, $($others: tt),+) => {
30		features!($feat) | features!($(others),+)
31	};
32}