pub struct ConversationHierarchy {
pub sessions: DashMap<String, Arc<RwLock<SessionData>>>,
pub message_queues: DashMap<String, Arc<ArrayQueue<PendingMessage>>>,
pub counters: Arc<AtomicCounters>,
}Expand description
Hierarchical conversation storage for reduced lock contention
Fields§
§sessions: DashMap<String, Arc<RwLock<SessionData>>>Coarse-grained session-level locks
message_queues: DashMap<String, Arc<ArrayQueue<PendingMessage>>>Fine-grained message-level queues for hot paths
counters: Arc<AtomicCounters>Lock-free counters for performance metrics
Implementations§
Auto Trait Implementations§
impl Freeze for ConversationHierarchy
impl !RefUnwindSafe for ConversationHierarchy
impl Send for ConversationHierarchy
impl Sync for ConversationHierarchy
impl Unpin for ConversationHierarchy
impl UnsafeUnpin for ConversationHierarchy
impl UnwindSafe for ConversationHierarchy
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more