Struct drone_core::inventory::Inventory [−][src]
The inventory wrapper for T
. Parameter C
encodes the number of emitted
tokens.
See the module-level documentation for details.
Implementations
impl<T: Item> Inventory<T, U0>
[src]
impl<T: Item> Inventory<T, U0>
[src]pub fn new(item: T) -> Self
[src]
Creates a new Inventory
in the inactive state with zero tokens
emitted.
item
should contain some form of token.
pub fn free(inventory: Self) -> T
[src]
Drops inventory
and returns the stored item.
pub fn guard(inventory: &mut Self) -> Guard<'_, T>
[src]
Creates an RAII scoped guard.
The item should be already in its active state. The returned guard will
call Item::teardown
on drop.
pub fn teardown(inventory: &mut Self)
[src]
Calls Item::teardown
for the stored item.
impl<T: Item, C: Unsigned> Inventory<T, C>
[src]
impl<T: Item, C: Unsigned> Inventory<T, C>
[src]pub fn inventory_token(&self) -> &Token<T>
[src]
Returns a reference to Token
<T>
. While the reference exists, the
item is always in its active state.
impl<T: Item, C: Unsigned> Inventory<T, C>
[src]
impl<T: Item, C: Unsigned> Inventory<T, C>
[src]pub fn share1(self) -> (Inventory<T, Sum<C, U1>>, Token<T>) where
C: Add<U1>,
Sum<C, U1>: Unsigned,
[src]
C: Add<U1>,
Sum<C, U1>: Unsigned,
Returns a token and a new inventory object with increased counter in its type.
pub fn share2(self) -> (Inventory<T, Sum<C, U2>>, Token<T>, Token<T>) where
C: Add<U2>,
Sum<C, U2>: Unsigned,
[src]
C: Add<U2>,
Sum<C, U2>: Unsigned,
Returns a token and a new inventory object with increased counter in its type.
pub fn share3(self) -> (Inventory<T, Sum<C, U3>>, Token<T>, Token<T>, Token<T>) where
C: Add<U3>,
Sum<C, U3>: Unsigned,
[src]
C: Add<U3>,
Sum<C, U3>: Unsigned,
Returns a token and a new inventory object with increased counter in its type.
pub fn share4(
self
) -> (Inventory<T, Sum<C, U4>>, Token<T>, Token<T>, Token<T>, Token<T>) where
C: Add<U4>,
Sum<C, U4>: Unsigned,
[src]
self
) -> (Inventory<T, Sum<C, U4>>, Token<T>, Token<T>, Token<T>, Token<T>) where
C: Add<U4>,
Sum<C, U4>: Unsigned,
Returns a token and a new inventory object with increased counter in its type.
pub fn share5(
self
) -> (Inventory<T, Sum<C, U5>>, Token<T>, Token<T>, Token<T>, Token<T>, Token<T>) where
C: Add<U5>,
Sum<C, U5>: Unsigned,
[src]
self
) -> (Inventory<T, Sum<C, U5>>, Token<T>, Token<T>, Token<T>, Token<T>, Token<T>) where
C: Add<U5>,
Sum<C, U5>: Unsigned,
Returns a token and a new inventory object with increased counter in its type.
pub fn share6(
self
) -> (Inventory<T, Sum<C, U6>>, Token<T>, Token<T>, Token<T>, Token<T>, Token<T>, Token<T>) where
C: Add<U6>,
Sum<C, U6>: Unsigned,
[src]
self
) -> (Inventory<T, Sum<C, U6>>, Token<T>, Token<T>, Token<T>, Token<T>, Token<T>, Token<T>) where
C: Add<U6>,
Sum<C, U6>: Unsigned,
Returns a token and a new inventory object with increased counter in its type.
pub fn share7(
self
) -> (Inventory<T, Sum<C, U7>>, Token<T>, Token<T>, Token<T>, Token<T>, Token<T>, Token<T>, Token<T>) where
C: Add<U7>,
Sum<C, U7>: Unsigned,
[src]
self
) -> (Inventory<T, Sum<C, U7>>, Token<T>, Token<T>, Token<T>, Token<T>, Token<T>, Token<T>, Token<T>) where
C: Add<U7>,
Sum<C, U7>: Unsigned,
Returns a token and a new inventory object with increased counter in its type.
pub fn share8(
self
) -> (Inventory<T, Sum<C, U8>>, Token<T>, Token<T>, Token<T>, Token<T>, Token<T>, Token<T>, Token<T>, Token<T>) where
C: Add<U8>,
Sum<C, U8>: Unsigned,
[src]
self
) -> (Inventory<T, Sum<C, U8>>, Token<T>, Token<T>, Token<T>, Token<T>, Token<T>, Token<T>, Token<T>, Token<T>) where
C: Add<U8>,
Sum<C, U8>: Unsigned,
Returns a token and a new inventory object with increased counter in its type.
pub fn merge1(self, a: Token<T>) -> Inventory<T, Diff<C, U1>> where
C: Sub<U1>,
Diff<C, U1>: Unsigned,
[src]
C: Sub<U1>,
Diff<C, U1>: Unsigned,
Consumes a token and returns a new inventory object with decreased counter in its type.
pub fn merge2(self, a: Token<T>, b: Token<T>) -> Inventory<T, Diff<C, U2>> where
C: Sub<U2>,
Diff<C, U2>: Unsigned,
[src]
C: Sub<U2>,
Diff<C, U2>: Unsigned,
Consumes a token and returns a new inventory object with decreased counter in its type.
pub fn merge3(
self,
a: Token<T>,
b: Token<T>,
c: Token<T>
) -> Inventory<T, Diff<C, U3>> where
C: Sub<U3>,
Diff<C, U3>: Unsigned,
[src]
self,
a: Token<T>,
b: Token<T>,
c: Token<T>
) -> Inventory<T, Diff<C, U3>> where
C: Sub<U3>,
Diff<C, U3>: Unsigned,
Consumes a token and returns a new inventory object with decreased counter in its type.
pub fn merge4(
self,
a: Token<T>,
b: Token<T>,
c: Token<T>,
d: Token<T>
) -> Inventory<T, Diff<C, U4>> where
C: Sub<U4>,
Diff<C, U4>: Unsigned,
[src]
self,
a: Token<T>,
b: Token<T>,
c: Token<T>,
d: Token<T>
) -> Inventory<T, Diff<C, U4>> where
C: Sub<U4>,
Diff<C, U4>: Unsigned,
Consumes a token and returns a new inventory object with decreased counter in its type.
pub fn merge5(
self,
a: Token<T>,
b: Token<T>,
c: Token<T>,
d: Token<T>,
e: Token<T>
) -> Inventory<T, Diff<C, U5>> where
C: Sub<U5>,
Diff<C, U5>: Unsigned,
[src]
self,
a: Token<T>,
b: Token<T>,
c: Token<T>,
d: Token<T>,
e: Token<T>
) -> Inventory<T, Diff<C, U5>> where
C: Sub<U5>,
Diff<C, U5>: Unsigned,
Consumes a token and returns a new inventory object with decreased counter in its type.
pub fn merge6(
self,
a: Token<T>,
b: Token<T>,
c: Token<T>,
d: Token<T>,
e: Token<T>,
f: Token<T>
) -> Inventory<T, Diff<C, U6>> where
C: Sub<U6>,
Diff<C, U6>: Unsigned,
[src]
self,
a: Token<T>,
b: Token<T>,
c: Token<T>,
d: Token<T>,
e: Token<T>,
f: Token<T>
) -> Inventory<T, Diff<C, U6>> where
C: Sub<U6>,
Diff<C, U6>: Unsigned,
Consumes a token and returns a new inventory object with decreased counter in its type.
pub fn merge7(
self,
a: Token<T>,
b: Token<T>,
c: Token<T>,
d: Token<T>,
e: Token<T>,
f: Token<T>,
g: Token<T>
) -> Inventory<T, Diff<C, U7>> where
C: Sub<U7>,
Diff<C, U7>: Unsigned,
[src]
self,
a: Token<T>,
b: Token<T>,
c: Token<T>,
d: Token<T>,
e: Token<T>,
f: Token<T>,
g: Token<T>
) -> Inventory<T, Diff<C, U7>> where
C: Sub<U7>,
Diff<C, U7>: Unsigned,
Consumes a token and returns a new inventory object with decreased counter in its type.
pub fn merge8(
self,
a: Token<T>,
b: Token<T>,
c: Token<T>,
d: Token<T>,
e: Token<T>,
f: Token<T>,
g: Token<T>,
h: Token<T>
) -> Inventory<T, Diff<C, U8>> where
C: Sub<U8>,
Diff<C, U8>: Unsigned,
[src]
self,
a: Token<T>,
b: Token<T>,
c: Token<T>,
d: Token<T>,
e: Token<T>,
f: Token<T>,
g: Token<T>,
h: Token<T>
) -> Inventory<T, Diff<C, U8>> where
C: Sub<U8>,
Diff<C, U8>: Unsigned,
Consumes a token and returns a new inventory object with decreased counter in its type.