[−][src]Struct dropcheck::DropCheck
A set of DropToken
's.
Methods
impl DropCheck
[src]
pub fn new() -> Self
[src]
Creates a new DropCheck
set.
pub fn token(&self) -> DropToken
[src]
Creates a new DropToken
, whose state is part of this set.
pub fn pair(&self) -> (DropToken, Arc<DropState>)
[src]
Creates a new DropToken
, and also gives you a handle to the state.
Examples
Checking when an operation drops a value:
let dropcheck = DropCheck::new(); let mut v = vec![dropcheck.token(); 10]; let (t1, s1) = dropcheck.pair(); v.push(t1); assert!(s1.is_not_dropped()); v.pop(); assert!(s1.is_dropped()); // vec drops items immediately
pub fn none_dropped(&self) -> bool
[src]
Returns true if none of the Token
s in this set have been dropped.
Examples
let set = DropCheck::new(); assert!(set.none_dropped()); // an empty set has no dropped tokens let t1 = set.token(); assert!(set.none_dropped()); let t2 = set.token(); assert!(set.none_dropped()); drop(t1); assert!(!set.none_dropped());
pub fn all_dropped(&self) -> bool
[src]
Returns true if all of the Token
s have been dropped.
Examples
let set = DropCheck::new(); assert!(set.all_dropped()); // all of the tokens in an empty set have been dropped let mut v = vec![]; for _ in 0 .. 100 { v.push(set.token()); } assert!(!set.all_dropped()); drop(v); assert!(set.all_dropped()); // vec has dropped every token in it
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for DropCheck
impl Send for DropCheck
impl Sync for DropCheck
impl Unpin for DropCheck
impl UnwindSafe for DropCheck
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,