pub struct DequeueImpl<Key, Value, Error, HVS, TVS, MS, Callbacks>(/* private fields */)
where
Key: Clone + PartialEq,
Error: DequeueError,
HVS: ValueStorage<Value = Key>,
TVS: ValueStorage<Value = Key>,
MS: MapStorage<Key = Key, Value = LinkedNode<Key, Value>>,
Callbacks: DequeueCallbacks<Value = Value>;Expand description
Dequeue implementation based on MapStorage and ValueStorages.
Generic parameters Key and Value specify data and keys for storing.
Generic parameter Error requires DequeueError implementation.
Generic parameter Callbacks presents actions for success operations
over dequeue.
Trait Implementations§
Source§impl<Key, Value, Error, HVS, TVS, MS, Callbacks> Counted for DequeueImpl<Key, Value, Error, HVS, TVS, MS, Callbacks>where
Key: Clone + PartialEq,
Error: DequeueError,
HVS: ValueStorage<Value = Key>,
TVS: ValueStorage<Value = Key>,
MS: MapStorage<Key = Key, Value = LinkedNode<Key, Value>> + Counted,
Callbacks: DequeueCallbacks<Value = Value>,
impl<Key, Value, Error, HVS, TVS, MS, Callbacks> Counted for DequeueImpl<Key, Value, Error, HVS, TVS, MS, Callbacks>where
Key: Clone + PartialEq,
Error: DequeueError,
HVS: ValueStorage<Value = Key>,
TVS: ValueStorage<Value = Key>,
MS: MapStorage<Key = Key, Value = LinkedNode<Key, Value>> + Counted,
Callbacks: DequeueCallbacks<Value = Value>,
Source§impl<Key, Value, Error, HVS, TVS, MS, Callbacks> Dequeue for DequeueImpl<Key, Value, Error, HVS, TVS, MS, Callbacks>where
Key: Clone + PartialEq,
Error: DequeueError,
HVS: ValueStorage<Value = Key>,
TVS: ValueStorage<Value = Key>,
MS: MapStorage<Key = Key, Value = LinkedNode<Key, Value>>,
Callbacks: DequeueCallbacks<Value = Value>,
impl<Key, Value, Error, HVS, TVS, MS, Callbacks> Dequeue for DequeueImpl<Key, Value, Error, HVS, TVS, MS, Callbacks>where
Key: Clone + PartialEq,
Error: DequeueError,
HVS: ValueStorage<Value = Key>,
TVS: ValueStorage<Value = Key>,
MS: MapStorage<Key = Key, Value = LinkedNode<Key, Value>>,
Callbacks: DequeueCallbacks<Value = Value>,
Source§fn pop_back() -> Result<Option<Self::Value>, Self::Error>
fn pop_back() -> Result<Option<Self::Value>, Self::Error>
Very expensive operation! Use dequeue based on double linked list instead!
Source§fn mutate_values<F: FnMut(Self::Value) -> Self::Value>(f: F)
fn mutate_values<F: FnMut(Self::Value) -> Self::Value>(f: F)
Mutates all stored value with given function.
Source§fn pop_front() -> Result<Option<Self::Value>, Self::Error>
fn pop_front() -> Result<Option<Self::Value>, Self::Error>
Removes and returns head value of the dequeue, if present.
Source§fn push_back(key: Self::Key, value: Self::Value) -> Result<(), Self::Error>
fn push_back(key: Self::Key, value: Self::Value) -> Result<(), Self::Error>
Inserts value to the end of dequeue with given key.
Source§impl<Key, Value, Error, HVS, TVS, MS, Callbacks> IterableMap<Result<Value, Error>> for DequeueImpl<Key, Value, Error, HVS, TVS, MS, Callbacks>where
Key: Clone + PartialEq,
Error: DequeueError,
HVS: ValueStorage<Value = Key>,
TVS: ValueStorage<Value = Key>,
MS: MapStorage<Key = Key, Value = LinkedNode<Key, Value>>,
Callbacks: DequeueCallbacks<Value = Value>,
impl<Key, Value, Error, HVS, TVS, MS, Callbacks> IterableMap<Result<Value, Error>> for DequeueImpl<Key, Value, Error, HVS, TVS, MS, Callbacks>where
Key: Clone + PartialEq,
Error: DequeueError,
HVS: ValueStorage<Value = Key>,
TVS: ValueStorage<Value = Key>,
MS: MapStorage<Key = Key, Value = LinkedNode<Key, Value>>,
Callbacks: DequeueCallbacks<Value = Value>,
Source§type DrainIter = DequeueDrainIter<Key, Value, Error, HVS, TVS, MS, Callbacks>
type DrainIter = DequeueDrainIter<Key, Value, Error, HVS, TVS, MS, Callbacks>
Removal iterator type.
Source§type Iter = DequeueIter<Key, Value, Error, HVS, TVS, MS>
type Iter = DequeueIter<Key, Value, Error, HVS, TVS, MS>
Getting iterator type.
Auto Trait Implementations§
impl<Key, Value, Error, HVS, TVS, MS, Callbacks> Freeze for DequeueImpl<Key, Value, Error, HVS, TVS, MS, Callbacks>
impl<Key, Value, Error, HVS, TVS, MS, Callbacks> RefUnwindSafe for DequeueImpl<Key, Value, Error, HVS, TVS, MS, Callbacks>where
Error: RefUnwindSafe,
HVS: RefUnwindSafe,
TVS: RefUnwindSafe,
MS: RefUnwindSafe,
Callbacks: RefUnwindSafe,
impl<Key, Value, Error, HVS, TVS, MS, Callbacks> Send for DequeueImpl<Key, Value, Error, HVS, TVS, MS, Callbacks>
impl<Key, Value, Error, HVS, TVS, MS, Callbacks> Sync for DequeueImpl<Key, Value, Error, HVS, TVS, MS, Callbacks>
impl<Key, Value, Error, HVS, TVS, MS, Callbacks> Unpin for DequeueImpl<Key, Value, Error, HVS, TVS, MS, Callbacks>
impl<Key, Value, Error, HVS, TVS, MS, Callbacks> UnwindSafe for DequeueImpl<Key, Value, Error, HVS, TVS, MS, Callbacks>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CheckedConversion for T
impl<T> CheckedConversion for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T, Outer> IsWrappedBy<Outer> for T
impl<T, Outer> IsWrappedBy<Outer> for T
Source§impl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
Source§fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
Source§fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
Consume self to return an equivalent value of
T. Read moreSource§impl<T, U> TryIntoKey<U> for Twhere
U: TryFromKey<T>,
impl<T, U> TryIntoKey<U> for Twhere
U: TryFromKey<T>,
type Error = <U as TryFromKey<T>>::Error
fn try_into_key(self) -> Result<U, <U as TryFromKey<T>>::Error>
Source§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
Source§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
The counterpart to
unchecked_from.Source§impl<T, S> UniqueSaturatedInto<T> for S
impl<T, S> UniqueSaturatedInto<T> for S
Source§fn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
Consume self to return an equivalent value of
T.