Struct canadensis::core::session::SessionArray
source · [−]Expand description
A fixed-capacity array of sessions, with one session slot for each possible node ID
C
must be one greater than the maximum node ID value.
This implementation uses a consistent large amount of memory and operates in constant time.
Its insert
function never fails.
Trait Implementations
sourceimpl<I, N, T, D, const C: usize> SessionTracker<I, N, T, D> for SessionArray<I, T, D, C> where
I: Instant,
N: Into<usize>,
impl<I, N, T, D, const C: usize> SessionTracker<I, N, T, D> for SessionArray<I, T, D, C> where
I: Instant,
N: Into<usize>,
sourcefn get(&self, node: N) -> Option<&Session<I, T, D>>
fn get(&self, node: N) -> Option<&Session<I, T, D>>
Returns a reference to the session for the provided node, if one exists
sourcefn get_mut(&mut self, node: N) -> Option<&mut Session<I, T, D>>
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
sourcefn 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>,
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
sourcefn insert(
&mut self,
node: N,
session: Session<I, T, D>
) -> Result<(), OutOfMemoryError>
fn insert(
&mut self,
node: N,
session: Session<I, T, D>
) -> Result<(), OutOfMemoryError>
Inserts a session Read more
sourcefn remove_expired(&mut self, now: I)
fn remove_expired(&mut self, now: I)
Removes all sessions that have expired
Auto Trait Implementations
impl<I, T, D, const C: usize> RefUnwindSafe for SessionArray<I, T, D, C> where
D: RefUnwindSafe,
I: RefUnwindSafe,
T: RefUnwindSafe,
<I as Instant>::Duration: RefUnwindSafe,
impl<I, T, D, const C: usize> Send for SessionArray<I, T, D, C> where
D: Send,
I: Send,
T: Send,
<I as Instant>::Duration: Send,
impl<I, T, D, const C: usize> Sync for SessionArray<I, T, D, C> where
D: Sync,
I: Sync,
T: Sync,
<I as Instant>::Duration: Sync,
impl<I, T, D, const C: usize> Unpin for SessionArray<I, T, D, C> where
D: Unpin,
I: Unpin,
T: Unpin,
<I as Instant>::Duration: Unpin,
impl<I, T, D, const C: usize> UnwindSafe for SessionArray<I, T, D, C> where
D: UnwindSafe,
I: UnwindSafe,
T: UnwindSafe,
<I as Instant>::Duration: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more