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}