Struct canadensis::core::session::SessionArray
source · pub struct SessionArray<I, T, D, const C: usize>where
I: Instant,{ /* private fields */ }
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§
source§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>,
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>,
source§fn 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
source§fn 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
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>,
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>
fn insert( &mut self, node: N, session: Session<I, T, D> ) -> Result<(), OutOfMemoryError>
Inserts a session Read more
source§fn 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§
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