bnr_xfs/capabilities/
euro_art6_capability.rs1use std::fmt;
2
3use crate::{create_xfs_bool, impl_xfs_struct};
4
5create_xfs_bool!(Category2, "category2", "Euro Article 6, Category 2 support");
6create_xfs_bool!(Category3, "category3", "Euro Article 6, Category 3 support");
7create_xfs_bool!(Unfit, "unfit", "Euro Article 6, Unfit classification");
8
9#[repr(C)]
13#[derive(Clone, Copy, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
14pub struct EuroArt6Capability {
15 pub category2: Category2,
16 pub category3: Category3,
17 pub unfit: Unfit,
18}
19
20impl EuroArt6Capability {
21 pub const fn new() -> Self {
23 Self {
24 category2: Category2::new(),
25 category3: Category3::new(),
26 unfit: Unfit::new(),
27 }
28 }
29}
30
31impl_xfs_struct!(
32 EuroArt6Capability,
33 "eurArt6Capabilities",
34 [
35 category2: Category2,
36 category3: Category3,
37 unfit: Unfit
38 ]
39);
40
41impl fmt::Display for EuroArt6Capability {
42 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
43 write!(f, "{{")?;
44 write!(f, r#""category2": {}, "#, self.category2)?;
45 write!(f, r#""category3": {}, "#, self.category3)?;
46 write!(f, r#""unfit": {}"#, self.unfit)?;
47 write!(f, "}}")
48 }
49}