Struct canadensis::core::session::SessionLinearMap
source · [−]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
sourceimpl<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,
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, N, T, D, const C: usize> RefUnwindSafe for SessionLinearMap<I, N, T, D, C> where
D: RefUnwindSafe,
I: RefUnwindSafe,
N: RefUnwindSafe,
T: RefUnwindSafe,
<I as Instant>::Duration: RefUnwindSafe,
impl<I, N, T, D, const C: usize> Send for SessionLinearMap<I, N, T, D, C> where
D: Send,
I: Send,
N: Send,
T: Send,
<I as Instant>::Duration: Send,
impl<I, N, T, D, const C: usize> Sync for SessionLinearMap<I, N, T, D, C> where
D: Sync,
I: Sync,
N: Sync,
T: Sync,
<I as Instant>::Duration: Sync,
impl<I, N, T, D, const C: usize> Unpin for SessionLinearMap<I, N, T, D, C> where
D: Unpin,
I: Unpin,
N: Unpin,
T: Unpin,
<I as Instant>::Duration: Unpin,
impl<I, N, T, D, const C: usize> UnwindSafe for SessionLinearMap<I, N, T, D, C> where
D: UnwindSafe,
I: UnwindSafe,
N: 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