[−][src]Struct yaque::RecvGuard
A guard that will only log changes on the queue state when dropped.
If it is dropped without a call to RecvGuard::commit
, changes will be
rolled back in a "best effort" policy: if any IO error is encountered
during rollback, the state will be committed. If you can do something
with the IO error, you may use RecvGuard::rollback
explicitly to catch
the error.
This struct implements Deref
and DerefMut
. If you really, really want
ownership, there is RecvGuard::into_inner
, but be careful, because you
lose your chance to rollback if anything unexpected occurs.
Implementations
impl<'a, T> RecvGuard<'a, T>
[src]
pub fn into_inner(self) -> T
[src]
Commits the transaction and returns the underlying value. If you accidentally lose this value from now on, it's your own fault!
pub fn commit(self)
[src]
Commits the changes to the queue, consuming this RecvGuard
.
pub fn rollback(self) -> Result<()>
[src]
Rolls the reader back to the previous point, negating the changes made on the queue. This is also done on drop. However, on drop, the possible IO error is ignored (but logged as an error) because we cannot have errors inside drops. Use this if you want to control errors at rollback.
Errors
If there is some error while moving the reader back, this error will be return.
Trait Implementations
impl<'a, T> Deref for RecvGuard<'a, T>
[src]
impl<'a, T> DerefMut for RecvGuard<'a, T>
[src]
impl<'a, T> Drop for RecvGuard<'a, T>
[src]
Auto Trait Implementations
impl<'a, T> RefUnwindSafe for RecvGuard<'a, T> where
T: RefUnwindSafe,
T: RefUnwindSafe,
impl<'a, T> Send for RecvGuard<'a, T> where
T: Send,
T: Send,
impl<'a, T> Sync for RecvGuard<'a, T> where
T: Sync,
T: Sync,
impl<'a, T> Unpin for RecvGuard<'a, T> where
T: Unpin,
T: Unpin,
impl<'a, T> !UnwindSafe for RecvGuard<'a, T>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Any for T where
T: Any,
T: Any,
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>,