Trait drone_core::token::Token [−][src]
A zero-sized affine type, at most one instance of which ever exists.
The above properties can’t be expressed with Rust type-system, therefore the
trait is marked unsafe
, and it is the implementer responsibility to keep
the following invariants:
- The type must not implement
Clone
. - The type must be instantiated only inside
Token::take
method. - The type must be zero-sized.
Required methods
unsafe fn take() -> Self
[src][−]
Creates the token instance.
Safety
At most one instance of the token must ever exist. This invariant can’t
be expressed with Rust type-system, therefore the method is marked
unsafe
, and it is the caller responsibility to keep the invariant.
It is recommended to call this method at the very beginning of the program and pass the instance further to the code.
Since the type is ZST, the method is no-op from the assembly perspective. Likewise passing the instance around doesn’t consume the stack, and storing the instance inside other types doesn’t consume the memory.
Implementors
impl<_T: RegTag> Token for Reg<_T>
impl<_T: RegTag> Token for Reg<_T>
impl<_T> Token for Cyccnt<_T> where
_T: RegTag,
impl<_T> Token for Cyccnt<_T> where
_T: RegTag,
impl<_T: RegTag> Token for Reg<_T>
impl<_T: RegTag> Token for Reg<_T>
impl<_T> Token for Privmask<_T> where
_T: RegTag,
impl<_T> Token for Privmask<_T> where
_T: RegTag,
impl<_T: RegTag> Token for Reg<_T>
impl<_T: RegTag> Token for Reg<_T>
impl<_T> Token for Busy<_T> where
_T: RegTag,
impl<_T> Token for Busy<_T> where
_T: RegTag,
impl<_T> Token for TraceBusID<_T> where
_T: RegTag,
impl<_T> Token for TraceBusID<_T> where
_T: RegTag,
impl<_T> Token for Gtsfreq<_T> where
_T: RegTag,
impl<_T> Token for Gtsfreq<_T> where
_T: RegTag,
impl<_T> Token for Tsprescale<_T> where
_T: RegTag,
impl<_T> Token for Tsprescale<_T> where
_T: RegTag,
impl<_T> Token for Swoena<_T> where
_T: RegTag,
impl<_T> Token for Swoena<_T> where
_T: RegTag,
impl<_T> Token for Txena<_T> where
_T: RegTag,
impl<_T> Token for Txena<_T> where
_T: RegTag,
impl<_T> Token for Syncena<_T> where
_T: RegTag,
impl<_T> Token for Syncena<_T> where
_T: RegTag,
impl<_T> Token for Tsena<_T> where
_T: RegTag,
impl<_T> Token for Tsena<_T> where
_T: RegTag,
impl<_T> Token for Itmena<_T> where
_T: RegTag,
impl<_T> Token for Itmena<_T> where
_T: RegTag,
impl<_T: RegTag> Token for Reg<_T>
impl<_T: RegTag> Token for Reg<_T>
impl<_T> Token for Unlock<_T> where
_T: RegTag,
impl<_T> Token for Unlock<_T> where
_T: RegTag,
impl<_T: RegTag> Token for Reg<_T>
impl<_T: RegTag> Token for Reg<_T>
impl<_T> Token for Implementer<_T> where
_T: RegTag,
impl<_T> Token for Implementer<_T> where
_T: RegTag,
impl<_T> Token for Variant<_T> where
_T: RegTag,
impl<_T> Token for Variant<_T> where
_T: RegTag,
impl<_T> Token for Architecture<_T> where
_T: RegTag,
impl<_T> Token for Architecture<_T> where
_T: RegTag,
impl<_T> Token for Partno<_T> where
_T: RegTag,
impl<_T> Token for Partno<_T> where
_T: RegTag,
impl<_T> Token for Revision<_T> where
_T: RegTag,
impl<_T> Token for Revision<_T> where
_T: RegTag,
impl<_T: RegTag> Token for Reg<_T>
impl<_T: RegTag> Token for Reg<_T>
impl<_T> Token for Nmipendset<_T> where
_T: RegTag,
impl<_T> Token for Nmipendset<_T> where
_T: RegTag,
impl<_T> Token for Pendsvset<_T> where
_T: RegTag,
impl<_T> Token for Pendsvset<_T> where
_T: RegTag,
impl<_T> Token for Pendsvclr<_T> where
_T: RegTag,
impl<_T> Token for Pendsvclr<_T> where
_T: RegTag,
impl<_T> Token for Pendstset<_T> where
_T: RegTag,
impl<_T> Token for Pendstset<_T> where
_T: RegTag,
impl<_T> Token for Pendstclr<_T> where
_T: RegTag,
impl<_T> Token for Pendstclr<_T> where
_T: RegTag,
impl<_T> Token for Isrpending<_T> where
_T: RegTag,
impl<_T> Token for Isrpending<_T> where
_T: RegTag,
impl<_T> Token for Vectpending<_T> where
_T: RegTag,
impl<_T> Token for Vectpending<_T> where
_T: RegTag,
impl<_T> Token for Rettobase<_T> where
_T: RegTag,
impl<_T> Token for Rettobase<_T> where
_T: RegTag,
impl<_T> Token for Vectactive<_T> where
_T: RegTag,
impl<_T> Token for Vectactive<_T> where
_T: RegTag,
impl<_T: RegTag> Token for Reg<_T>
impl<_T: RegTag> Token for Reg<_T>
impl<_T> Token for Tbloff<_T> where
_T: RegTag,
impl<_T> Token for Tbloff<_T> where
_T: RegTag,
impl<_T: RegTag> Token for Reg<_T>
impl<_T: RegTag> Token for Reg<_T>
impl<_T> Token for Vectkey<_T> where
_T: RegTag,
impl<_T> Token for Vectkey<_T> where
_T: RegTag,
impl<_T> Token for Endianess<_T> where
_T: RegTag,
impl<_T> Token for Endianess<_T> where
_T: RegTag,
impl<_T> Token for Prigroup<_T> where
_T: RegTag,
impl<_T> Token for Prigroup<_T> where
_T: RegTag,
impl<_T> Token for Sysresetreq<_T> where
_T: RegTag,
impl<_T> Token for Sysresetreq<_T> where
_T: RegTag,
impl<_T> Token for Vectclractive<_T> where
_T: RegTag,
impl<_T> Token for Vectclractive<_T> where
_T: RegTag,
impl<_T> Token for Vectreset<_T> where
_T: RegTag,
impl<_T> Token for Vectreset<_T> where
_T: RegTag,
impl<_T: RegTag> Token for Reg<_T>
impl<_T: RegTag> Token for Reg<_T>
impl<_T> Token for Seveonpend<_T> where
_T: RegTag,
impl<_T> Token for Seveonpend<_T> where
_T: RegTag,
impl<_T> Token for Sleepdeep<_T> where
_T: RegTag,
impl<_T> Token for Sleepdeep<_T> where
_T: RegTag,
impl<_T> Token for Sleeponexit<_T> where
_T: RegTag,
impl<_T> Token for Sleeponexit<_T> where
_T: RegTag,
impl<_T: RegTag> Token for Reg<_T>
impl<_T: RegTag> Token for Reg<_T>
impl<_T> Token for Stkalign<_T> where
_T: RegTag,
impl<_T> Token for Stkalign<_T> where
_T: RegTag,
impl<_T> Token for Bfhfnmign<_T> where
_T: RegTag,
impl<_T> Token for Bfhfnmign<_T> where
_T: RegTag,
impl<_T> Token for Div0Trp<_T> where
_T: RegTag,
impl<_T> Token for Div0Trp<_T> where
_T: RegTag,
impl<_T> Token for UnalignTrp<_T> where
_T: RegTag,
impl<_T> Token for UnalignTrp<_T> where
_T: RegTag,
impl<_T> Token for Usersetmpend<_T> where
_T: RegTag,
impl<_T> Token for Usersetmpend<_T> where
_T: RegTag,
impl<_T> Token for Nonbasethrdena<_T> where
_T: RegTag,
impl<_T> Token for Nonbasethrdena<_T> where
_T: RegTag,
impl<_T: RegTag> Token for Reg<_T>
impl<_T: RegTag> Token for Reg<_T>
impl<_T> Token for PriUsageFault<_T> where
_T: RegTag,
impl<_T> Token for PriUsageFault<_T> where
_T: RegTag,
impl<_T> Token for PriBusFault<_T> where
_T: RegTag,
impl<_T> Token for PriBusFault<_T> where
_T: RegTag,
impl<_T> Token for PriMemManage<_T> where
_T: RegTag,
impl<_T> Token for PriMemManage<_T> where
_T: RegTag,
impl<_T: RegTag> Token for Reg<_T>
impl<_T: RegTag> Token for Reg<_T>
impl<_T> Token for PriSvCall<_T> where
_T: RegTag,
impl<_T> Token for PriSvCall<_T> where
_T: RegTag,
impl<_T: RegTag> Token for Reg<_T>
impl<_T: RegTag> Token for Reg<_T>
impl<_T> Token for PriSysTick<_T> where
_T: RegTag,
impl<_T> Token for PriSysTick<_T> where
_T: RegTag,
impl<_T> Token for PriPendSv<_T> where
_T: RegTag,
impl<_T> Token for PriPendSv<_T> where
_T: RegTag,
impl<_T: RegTag> Token for Reg<_T>
impl<_T: RegTag> Token for Reg<_T>
impl<_T> Token for Usgfaultena<_T> where
_T: RegTag,
impl<_T> Token for Usgfaultena<_T> where
_T: RegTag,
impl<_T> Token for Busfaultena<_T> where
_T: RegTag,
impl<_T> Token for Busfaultena<_T> where
_T: RegTag,
impl<_T> Token for Memfaultena<_T> where
_T: RegTag,
impl<_T> Token for Memfaultena<_T> where
_T: RegTag,
impl<_T> Token for Svcallpended<_T> where
_T: RegTag,
impl<_T> Token for Svcallpended<_T> where
_T: RegTag,
impl<_T> Token for Busfaultpended<_T> where
_T: RegTag,
impl<_T> Token for Busfaultpended<_T> where
_T: RegTag,
impl<_T> Token for Memfaultpended<_T> where
_T: RegTag,
impl<_T> Token for Memfaultpended<_T> where
_T: RegTag,
impl<_T> Token for Usgfaultpended<_T> where
_T: RegTag,
impl<_T> Token for Usgfaultpended<_T> where
_T: RegTag,
impl<_T> Token for Systickact<_T> where
_T: RegTag,
impl<_T> Token for Systickact<_T> where
_T: RegTag,
impl<_T> Token for Pendsvact<_T> where
_T: RegTag,
impl<_T> Token for Pendsvact<_T> where
_T: RegTag,
impl<_T> Token for Monitoract<_T> where
_T: RegTag,
impl<_T> Token for Monitoract<_T> where
_T: RegTag,
impl<_T> Token for Svcallact<_T> where
_T: RegTag,
impl<_T> Token for Svcallact<_T> where
_T: RegTag,
impl<_T> Token for Usgfaultact<_T> where
_T: RegTag,
impl<_T> Token for Usgfaultact<_T> where
_T: RegTag,
impl<_T> Token for Busfaultact<_T> where
_T: RegTag,
impl<_T> Token for Busfaultact<_T> where
_T: RegTag,
impl<_T> Token for Memfaultact<_T> where
_T: RegTag,
impl<_T> Token for Memfaultact<_T> where
_T: RegTag,
impl<_T: RegTag> Token for Reg<_T>
impl<_T: RegTag> Token for Reg<_T>
impl<_T> Token for Mmarvalid<_T> where
_T: RegTag,
impl<_T> Token for Mmarvalid<_T> where
_T: RegTag,
impl<_T> Token for Mlsperr<_T> where
_T: RegTag,
impl<_T> Token for Mlsperr<_T> where
_T: RegTag,
impl<_T> Token for Mstkerr<_T> where
_T: RegTag,
impl<_T> Token for Mstkerr<_T> where
_T: RegTag,
impl<_T> Token for Munstkerr<_T> where
_T: RegTag,
impl<_T> Token for Munstkerr<_T> where
_T: RegTag,
impl<_T> Token for Daccviol<_T> where
_T: RegTag,
impl<_T> Token for Daccviol<_T> where
_T: RegTag,
impl<_T> Token for Iaccviol<_T> where
_T: RegTag,
impl<_T> Token for Iaccviol<_T> where
_T: RegTag,
impl<_T: RegTag> Token for Reg<_T>
impl<_T: RegTag> Token for Reg<_T>
impl<_T> Token for Bfarvalid<_T> where
_T: RegTag,
impl<_T> Token for Bfarvalid<_T> where
_T: RegTag,
impl<_T> Token for Lsperr<_T> where
_T: RegTag,
impl<_T> Token for Lsperr<_T> where
_T: RegTag,
impl<_T> Token for Stkerr<_T> where
_T: RegTag,
impl<_T> Token for Stkerr<_T> where
_T: RegTag,
impl<_T> Token for Unstkerr<_T> where
_T: RegTag,
impl<_T> Token for Unstkerr<_T> where
_T: RegTag,
impl<_T> Token for Impreciserr<_T> where
_T: RegTag,
impl<_T> Token for Impreciserr<_T> where
_T: RegTag,
impl<_T> Token for Preciserr<_T> where
_T: RegTag,
impl<_T> Token for Preciserr<_T> where
_T: RegTag,
impl<_T> Token for Ibuserr<_T> where
_T: RegTag,
impl<_T> Token for Ibuserr<_T> where
_T: RegTag,
impl<_T: RegTag> Token for Reg<_T>
impl<_T: RegTag> Token for Reg<_T>
impl<_T> Token for Divbyzero<_T> where
_T: RegTag,
impl<_T> Token for Divbyzero<_T> where
_T: RegTag,
impl<_T> Token for Unaligned<_T> where
_T: RegTag,
impl<_T> Token for Unaligned<_T> where
_T: RegTag,
impl<_T> Token for Nocp<_T> where
_T: RegTag,
impl<_T> Token for Nocp<_T> where
_T: RegTag,
impl<_T> Token for Invpc<_T> where
_T: RegTag,
impl<_T> Token for Invpc<_T> where
_T: RegTag,
impl<_T> Token for Invstate<_T> where
_T: RegTag,
impl<_T> Token for Invstate<_T> where
_T: RegTag,
impl<_T> Token for Undefinstr<_T> where
_T: RegTag,
impl<_T> Token for Undefinstr<_T> where
_T: RegTag,
impl<_T: RegTag> Token for Reg<_T>
impl<_T: RegTag> Token for Reg<_T>
impl<_T> Token for Debugevt<_T> where
_T: RegTag,
impl<_T> Token for Debugevt<_T> where
_T: RegTag,
impl<_T> Token for Forced<_T> where
_T: RegTag,
impl<_T> Token for Forced<_T> where
_T: RegTag,
impl<_T> Token for Vecttbl<_T> where
_T: RegTag,
impl<_T> Token for Vecttbl<_T> where
_T: RegTag,
impl<_T: RegTag> Token for Reg<_T>
impl<_T: RegTag> Token for Reg<_T>
impl<_T> Token for External<_T> where
_T: RegTag,
impl<_T> Token for External<_T> where
_T: RegTag,
impl<_T> Token for Vcatch<_T> where
_T: RegTag,
impl<_T> Token for Vcatch<_T> where
_T: RegTag,
impl<_T> Token for Dwttrap<_T> where
_T: RegTag,
impl<_T> Token for Dwttrap<_T> where
_T: RegTag,
impl<_T> Token for Bkpt<_T> where
_T: RegTag,
impl<_T> Token for Bkpt<_T> where
_T: RegTag,
impl<_T> Token for Halted<_T> where
_T: RegTag,
impl<_T> Token for Halted<_T> where
_T: RegTag,
impl<_T: RegTag> Token for Reg<_T>
impl<_T: RegTag> Token for Reg<_T>
impl<_T> Token for Address<_T> where
_T: RegTag,
impl<_T> Token for Address<_T> where
_T: RegTag,
impl<_T: RegTag> Token for Reg<_T>
impl<_T: RegTag> Token for Reg<_T>
impl<_T> Token for Address<_T> where
_T: RegTag,
impl<_T> Token for Address<_T> where
_T: RegTag,
impl<_T: RegTag> Token for Reg<_T>
impl<_T: RegTag> Token for Reg<_T>
impl<_T> Token for Impdef<_T> where
_T: RegTag,
impl<_T> Token for Impdef<_T> where
_T: RegTag,
impl<_T: RegTag> Token for Reg<_T>
impl<_T: RegTag> Token for Reg<_T>
impl<_T> Token for Trcena<_T> where
_T: RegTag,
impl<_T> Token for Trcena<_T> where
_T: RegTag,
impl<_T> Token for MonReq<_T> where
_T: RegTag,
impl<_T> Token for MonReq<_T> where
_T: RegTag,
impl<_T> Token for MonStep<_T> where
_T: RegTag,
impl<_T> Token for MonStep<_T> where
_T: RegTag,
impl<_T> Token for MonPend<_T> where
_T: RegTag,
impl<_T> Token for MonPend<_T> where
_T: RegTag,
impl<_T> Token for MonEn<_T> where
_T: RegTag,
impl<_T> Token for MonEn<_T> where
_T: RegTag,
impl<_T> Token for VcHarderr<_T> where
_T: RegTag,
impl<_T> Token for VcHarderr<_T> where
_T: RegTag,
impl<_T> Token for VcInterr<_T> where
_T: RegTag,
impl<_T> Token for VcInterr<_T> where
_T: RegTag,
impl<_T> Token for VcBuserr<_T> where
_T: RegTag,
impl<_T> Token for VcBuserr<_T> where
_T: RegTag,
impl<_T> Token for VcStaterr<_T> where
_T: RegTag,
impl<_T> Token for VcStaterr<_T> where
_T: RegTag,
impl<_T> Token for VcChkerr<_T> where
_T: RegTag,
impl<_T> Token for VcChkerr<_T> where
_T: RegTag,
impl<_T> Token for VcNocperr<_T> where
_T: RegTag,
impl<_T> Token for VcNocperr<_T> where
_T: RegTag,
impl<_T> Token for VcMmerr<_T> where
_T: RegTag,
impl<_T> Token for VcMmerr<_T> where
_T: RegTag,
impl<_T> Token for VcCorereset<_T> where
_T: RegTag,
impl<_T> Token for VcCorereset<_T> where
_T: RegTag,
impl<_T: RegTag> Token for Reg<_T>
impl<_T: RegTag> Token for Reg<_T>
impl<_T> Token for Countflag<_T> where
_T: RegTag,
impl<_T> Token for Countflag<_T> where
_T: RegTag,
impl<_T> Token for Clksource<_T> where
_T: RegTag,
impl<_T> Token for Clksource<_T> where
_T: RegTag,
impl<_T> Token for Tickint<_T> where
_T: RegTag,
impl<_T> Token for Tickint<_T> where
_T: RegTag,
impl<_T> Token for Enable<_T> where
_T: RegTag,
impl<_T> Token for Enable<_T> where
_T: RegTag,
impl<_T: RegTag> Token for Reg<_T>
impl<_T: RegTag> Token for Reg<_T>
impl<_T> Token for Reload<_T> where
_T: RegTag,
impl<_T> Token for Reload<_T> where
_T: RegTag,
impl<_T: RegTag> Token for Reg<_T>
impl<_T: RegTag> Token for Reg<_T>
impl<_T> Token for Current<_T> where
_T: RegTag,
impl<_T> Token for Current<_T> where
_T: RegTag,
impl<_T: RegTag> Token for Reg<_T>
impl<_T: RegTag> Token for Reg<_T>
impl<_T> Token for Noref<_T> where
_T: RegTag,
impl<_T> Token for Noref<_T> where
_T: RegTag,
impl<_T> Token for Skew<_T> where
_T: RegTag,
impl<_T> Token for Skew<_T> where
_T: RegTag,
impl<_T> Token for Tenms<_T> where
_T: RegTag,
impl<_T> Token for Tenms<_T> where
_T: RegTag,
impl<_T: RegTag> Token for Reg<_T>
impl<_T: RegTag> Token for Reg<_T>
impl<_T> Token for Swoscaler<_T> where
_T: RegTag,
impl<_T> Token for Swoscaler<_T> where
_T: RegTag,
impl<_T: RegTag> Token for Reg<_T>
impl<_T: RegTag> Token for Reg<_T>
impl<_T> Token for Txmode<_T> where
_T: RegTag,
impl<_T> Token for Txmode<_T> where
_T: RegTag,
impl<_T: RegTag> Token for Reg<_T>
impl<_T: RegTag> Token for Reg<_T>
impl<_T> Token for TrigIn<_T> where
_T: RegTag,
impl<_T> Token for TrigIn<_T> where
_T: RegTag,
impl<_T> Token for EnFCont<_T> where
_T: RegTag,
impl<_T> Token for EnFCont<_T> where
_T: RegTag,