mod clock_api; pub use self::clock_api::*; mod clock_model; pub use self::clock_model::*; pub trait HasClock: Send + Sync { fn clock (&self) -> &Clock; fn clock_mut (&mut self) -> &mut Clock; } #[macro_export] macro_rules! has_clock { (|$self:ident:$Struct:ident$(<$($L:lifetime),*$($T:ident$(:$U:path)?),*>)?|$cb:expr) => { impl $(<$($L),*$($T $(: $U)?),*>)? HasClock for $Struct $(<$($L),*$($T),*>)? { fn clock (&$self) -> &Clock { &$cb } fn clock_mut (&mut $self) -> &mut Clock { &mut $cb } } } }