pub struct SessionDynamicMap<I, N, T, D>where
    I: Instant,{ /* private fields */ }
Expand description

A session map that uses dynamic memory allocation

Caution: This implementation cannot detect when memory allocation fails, so it may cause the program to abort. Only use it when memory is plentiful.

This implementation uses variable amounts of memory and takes O(log(number of sessions)) time.

Trait Implementations§

source§

impl<I, N, T, D> Default for SessionDynamicMap<I, N, T, D>where I: Instant, N: Ord,

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<I, N, T, D> SessionTracker<I, N, T, D> for SessionDynamicMap<I, N, T, D>where I: Instant, N: Ord + Clone + Debug,

source§

fn get(&self, node: N) -> Option<&Session<I, T, D>>

Returns a reference to the session for the provided node, if one exists
source§

fn get_mut(&mut self, node: N) -> Option<&mut Session<I, T, D>>

Returns a mutable reference to the session for the provided node, if one exists
source§

fn get_mut_or_insert_with<F>( &mut self, node: N, generator: F ) -> Result<&mut Session<I, T, D>, OutOfMemoryError>where N: Clone, F: FnOnce() -> Session<I, T, D>,

Returns a mutable reference to the session for the provided node Read more
source§

fn insert( &mut self, node: N, session: Session<I, T, D> ) -> Result<(), OutOfMemoryError>

Inserts a session Read more
source§

fn remove(&mut self, node: N)

Removes a session for the provided node if one exists Read more
source§

fn remove_expired(&mut self, now: I)

Removes all sessions that have expired

Auto Trait Implementations§

§

impl<I, N, T, D> RefUnwindSafe for SessionDynamicMap<I, N, T, D>where D: RefUnwindSafe, I: RefUnwindSafe, N: RefUnwindSafe, T: RefUnwindSafe, <I as Instant>::Duration: RefUnwindSafe,

§

impl<I, N, T, D> Send for SessionDynamicMap<I, N, T, D>where D: Send, I: Send, N: Send, T: Send, <I as Instant>::Duration: Send,

§

impl<I, N, T, D> Sync for SessionDynamicMap<I, N, T, D>where D: Sync, I: Sync, N: Sync, T: Sync, <I as Instant>::Duration: Sync,

§

impl<I, N, T, D> Unpin for SessionDynamicMap<I, N, T, D>

§

impl<I, N, T, D> UnwindSafe for SessionDynamicMap<I, N, T, D>where D: RefUnwindSafe, I: RefUnwindSafe, N: RefUnwindSafe, T: RefUnwindSafe, <I as Instant>::Duration: RefUnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.