pub struct SessionActivityTracker { /* private fields */ }Expand description
Track session activities with time-based filtering and statistics
Implementations§
Source§impl SessionActivityTracker
impl SessionActivityTracker
pub fn new() -> Self
Sourcepub fn with_capacity(max_capacity: usize) -> Self
pub fn with_capacity(max_capacity: usize) -> Self
Create a tracker with a custom max capacity
Sourcepub fn record(&mut self, activity: SessionActivity)
pub fn record(&mut self, activity: SessionActivity)
Record an activity
Sourcepub fn record_type(&mut self, activity_type: ActivityType)
pub fn record_type(&mut self, activity_type: ActivityType)
Record an activity by type
Sourcepub fn record_type_with_details(
&mut self,
activity_type: ActivityType,
details: String,
)
pub fn record_type_with_details( &mut self, activity_type: ActivityType, details: String, )
Record an activity by type with details
Sourcepub fn get_activities(&self) -> &[SessionActivity]
pub fn get_activities(&self) -> &[SessionActivity]
Get all activities
Sourcepub fn get_recent(&self, duration: Duration) -> Vec<&SessionActivity>
pub fn get_recent(&self, duration: Duration) -> Vec<&SessionActivity>
Get activities within a duration from now
Sourcepub fn get_recent_count(&self, duration: Duration) -> usize
pub fn get_recent_count(&self, duration: Duration) -> usize
Get the count of recent activities within a duration
Sourcepub fn get_activities_by_type(
&self,
activity_type: ActivityType,
) -> Vec<&SessionActivity>
pub fn get_activities_by_type( &self, activity_type: ActivityType, ) -> Vec<&SessionActivity>
Get activities of a specific type
Sourcepub fn count_by_type(&self, activity_type: ActivityType) -> usize
pub fn count_by_type(&self, activity_type: ActivityType) -> usize
Get the count of activities by type
Sourcepub fn get_last_activity(&self) -> Option<&SessionActivity>
pub fn get_last_activity(&self) -> Option<&SessionActivity>
Get the last activity
Sourcepub fn get_last_activity_of_type(
&self,
activity_type: ActivityType,
) -> Option<&SessionActivity>
pub fn get_last_activity_of_type( &self, activity_type: ActivityType, ) -> Option<&SessionActivity>
Get the last activity of a specific type
Sourcepub fn time_since_last_activity(&self) -> Option<Duration>
pub fn time_since_last_activity(&self) -> Option<Duration>
Get the time since the last activity
Sourcepub fn time_since_last_activity_of_type(
&self,
activity_type: ActivityType,
) -> Option<Duration>
pub fn time_since_last_activity_of_type( &self, activity_type: ActivityType, ) -> Option<Duration>
Get the time since the last activity of a specific type
Sourcepub fn get_activity_rate(&self, duration: Duration) -> f64
pub fn get_activity_rate(&self, duration: Duration) -> f64
Get activity rate (activities per second) over a duration
Sourcepub fn has_recent_activity(&self, duration: Duration) -> bool
pub fn has_recent_activity(&self, duration: Duration) -> bool
Check if there has been any activity within a duration
Sourcepub fn total_count(&self) -> usize
pub fn total_count(&self) -> usize
Get total activity count
Sourcepub fn export_activities(&self) -> Vec<SessionActivity>
pub fn export_activities(&self) -> Vec<SessionActivity>
Export activities for serialization
Sourcepub fn import_activities(&mut self, activities: Vec<SessionActivity>)
pub fn import_activities(&mut self, activities: Vec<SessionActivity>)
Import activities from serialized data
Sourcepub fn get_activity_summary(&self) -> Value
pub fn get_activity_summary(&self) -> Value
Get a summary of activity counts by type