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