[−][src]Struct scopeguard::ScopeGuard
ScopeGuard is a scope guard that may own a protected value.
If you place a guard in a local variable, the closure can run regardless how you leave the scope — through regular return or panic (except if panic or other code aborts; so as long as destructors run). It is run only once.
The S parameter for Strategy determines if
the closure actually runs.
The guard's closure will be called with a mut ref to the held value in the destructor. It's called only once.
The ScopeGuard implements Deref so that you can access the inner value.
Methods
impl<T, F, S> ScopeGuard<T, F, S> where
F: FnMut(&mut T),
S: Strategy, [src]
impl<T, F, S> ScopeGuard<T, F, S> where
F: FnMut(&mut T),
S: Strategy, pub fn with_strategy(v: T, dropfn: F) -> ScopeGuard<T, F, S>[src]
pub fn with_strategy(v: T, dropfn: F) -> ScopeGuard<T, F, S>Create a ScopeGuard that owns v (accessible through deref) and calls
dropfn when its destructor runs.
The Strategy decides whether the scope guard's closure should run.
Trait Implementations
impl<T, F, S: Strategy> Deref for ScopeGuard<T, F, S> where
F: FnMut(&mut T), [src]
impl<T, F, S: Strategy> Deref for ScopeGuard<T, F, S> where
F: FnMut(&mut T), type Target = T
The resulting type after dereferencing.
fn deref(&self) -> &T[src]
fn deref(&self) -> &TDereferences the value.
impl<T, F, S: Strategy> DerefMut for ScopeGuard<T, F, S> where
F: FnMut(&mut T), [src]
impl<T, F, S: Strategy> DerefMut for ScopeGuard<T, F, S> where
F: FnMut(&mut T), impl<T, F, S: Strategy> Drop for ScopeGuard<T, F, S> where
F: FnMut(&mut T), [src]
impl<T, F, S: Strategy> Drop for ScopeGuard<T, F, S> where
F: FnMut(&mut T), impl<T, F, S> Debug for ScopeGuard<T, F, S> where
T: Debug,
F: FnMut(&mut T),
S: Strategy + Debug, [src]
impl<T, F, S> Debug for ScopeGuard<T, F, S> where
T: Debug,
F: FnMut(&mut T),
S: Strategy + Debug, Auto Trait Implementations
impl<T, F, S> Send for ScopeGuard<T, F, S> where
F: Send,
S: Send,
T: Send,
impl<T, F, S> Send for ScopeGuard<T, F, S> where
F: Send,
S: Send,
T: Send, impl<T, F, S> Sync for ScopeGuard<T, F, S> where
F: Sync,
S: Sync,
T: Sync,
impl<T, F, S> Sync for ScopeGuard<T, F, S> where
F: Sync,
S: Sync,
T: Sync, Blanket Implementations
impl<T, U> TryFrom for T where
T: From<U>, [src]
impl<T, U> TryFrom for T where
T: From<U>, type Error = !
try_from)The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>try_from)Performs the conversion.
impl<T> From for T[src]
impl<T> From for Timpl<T, U> TryInto for T where
U: TryFrom<T>, [src]
impl<T, U> TryInto for T where
U: TryFrom<T>, type Error = <U as TryFrom<T>>::Error
try_from)The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>try_from)Performs the conversion.
impl<T, U> Into for T where
U: From<T>, [src]
impl<T, U> Into for T where
U: From<T>, impl<T> Borrow for T where
T: ?Sized, [src]
impl<T> Borrow for T where
T: ?Sized, impl<T> BorrowMut for T where
T: ?Sized, [src]
impl<T> BorrowMut for T where
T: ?Sized, fn borrow_mut(&mut self) -> &mut T[src]
fn borrow_mut(&mut self) -> &mut TMutably borrows from an owned value. Read more
impl<T> Any for T where
T: 'static + ?Sized, [src]
impl<T> Any for T where
T: 'static + ?Sized, fn get_type_id(&self) -> TypeId[src]
fn get_type_id(&self) -> TypeId🔬 This is a nightly-only experimental API. (get_type_id)
this method will likely be replaced by an associated static
Gets the TypeId of self. Read more