1use capsules_extra::eui64::Eui64;
15use core::mem::MaybeUninit;
16use kernel::component::Component;
17
18#[macro_export]
19macro_rules! eui64_component_static {
20    () => {{
21        kernel::static_buf!(capsules_extra::eui64::Eui64)
22    };};
23}
24
25pub type Eui64ComponentType = capsules_extra::eui64::Eui64;
26
27pub struct Eui64Component {
28    eui64: u64,
29}
30
31impl Eui64Component {
32    pub fn new(eui64: u64) -> Self {
33        Self { eui64 }
34    }
35}
36
37impl Component for Eui64Component {
38    type StaticInput = &'static mut MaybeUninit<Eui64>;
39    type Output = &'static Eui64;
40
41    fn finalize(self, s: Self::StaticInput) -> Self::Output {
42        s.write(Eui64::new(self.eui64))
43    }
44}