Struct canadensis_core::session::SessionLinearMap
source · pub struct SessionLinearMap<I, N, T, D, const C: usize>where
I: Instant,{ /* private fields */ }
Expand description
A fixed-capacity session map that uses linear search to find sessions
This implementation offers configurable memory use. Its time complexity is O(C)
.
Type parameters:
I
: A time instantN
: A node IDT
: A transfer IDD
: Additional transport-specific session dataC
(usize): Maximum number of sessions to store simultaneously
Trait Implementations§
source§impl<I, N, T, D, const C: usize> SessionTracker<I, N, T, D> for SessionLinearMap<I, N, T, D, C>where
I: Instant,
N: Eq + Clone,
impl<I, N, T, D, const C: usize> SessionTracker<I, N, T, D> for SessionLinearMap<I, N, T, D, C>where I: Instant, N: Eq + Clone,
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