1 2 3 4 5 6 7 8 9 10 11 12 13
pub trait Peripheral { fn take() -> Option<Self> where Self: Sized; unsafe fn steal() -> Self; } pub trait PeripheralRef { fn take() -> Option<&'static mut Self> where Self: Sized; unsafe fn steal() -> &'static mut Self; }