pub struct SessionAnalysisReport {Show 20 fields
pub session_path: PathBuf,
pub format: String,
pub message_counts: HashMap<String, usize>,
pub tool_stats: HashMap<String, ToolStats>,
pub token_stats: TokenStats,
pub error_patterns: Vec<ErrorPattern>,
pub file_tokens: HashMap<String, u64>,
pub parallel_opportunities: usize,
pub total_turns: usize,
pub tool_chains: Vec<ToolChain>,
pub corrections: Vec<Correction>,
pub context_per_turn: Vec<u64>,
pub file_operations: HashMap<String, FileOperation>,
pub tool_patterns: Vec<ToolPattern>,
pub command_stats: Vec<CommandStats>,
pub retry_hotspots: Vec<RetryHotspot>,
pub actual_cost: Option<f64>,
pub dedup_tokens: Option<DedupTokenStats>,
pub largest_tool_results: Vec<LargestToolResult>,
pub tool_sort: Option<String>,
}Expand description
Complete analysis of a session.
Fields§
§session_path: PathBuf§format: String§message_counts: HashMap<String, usize>§tool_stats: HashMap<String, ToolStats>§token_stats: TokenStats§error_patterns: Vec<ErrorPattern>§file_tokens: HashMap<String, u64>Token usage per file/symbol path
parallel_opportunities: usizeTurns with single tool call (parallelization opportunity)
total_turns: usize§tool_chains: Vec<ToolChain>Sequences of consecutive single-tool calls
corrections: Vec<Correction>Assistant corrections and apologies
context_per_turn: Vec<u64>Context size per turn (input + cache_read)
file_operations: HashMap<String, FileOperation>File operation frequency (Read/Edit/Write)
tool_patterns: Vec<ToolPattern>Common tool patterns (multi-session aggregate only)
command_stats: Vec<CommandStats>Bash command statistics by category
retry_hotspots: Vec<RetryHotspot>Commands that failed and were retried
actual_cost: Option<f64>Actual cost computed from per-turn model pricing (None if no models found).
dedup_tokens: Option<DedupTokenStats>Token deduplication statistics.
largest_tool_results: Vec<LargestToolResult>Top 10 individual tool results by character count.
tool_sort: Option<String>Sort hint for tool rows in formatted output.
Valid values: “name” (asc), “calls” (desc, default), “errors” (desc).
Set by the CLI --sort flag; not serialized.
Implementations§
Source§impl SessionAnalysisReport
impl SessionAnalysisReport
pub fn new(session_path: PathBuf, format: impl Into<String>) -> Self
pub fn total_tool_calls(&self) -> usize
pub fn total_errors(&self) -> usize
pub fn overall_success_rate(&self) -> f64
Sourcepub fn format_text(&self) -> String
pub fn format_text(&self) -> String
Format as compact text (markdown, LLM-friendly, no colors).
Sourcepub fn format_pretty(&self) -> String
pub fn format_pretty(&self) -> String
Format as pretty text with colors and bar charts.
Trait Implementations§
Source§impl Clone for SessionAnalysisReport
impl Clone for SessionAnalysisReport
Source§fn clone(&self) -> SessionAnalysisReport
fn clone(&self) -> SessionAnalysisReport
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SessionAnalysisReport
impl Debug for SessionAnalysisReport
Source§impl Default for SessionAnalysisReport
impl Default for SessionAnalysisReport
Source§fn default() -> SessionAnalysisReport
fn default() -> SessionAnalysisReport
Source§impl<'de> Deserialize<'de> for SessionAnalysisReport
impl<'de> Deserialize<'de> for SessionAnalysisReport
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Display for SessionAnalysisReport
impl Display for SessionAnalysisReport
Source§impl JsonSchema for SessionAnalysisReport
impl JsonSchema for SessionAnalysisReport
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreSource§impl OutputFormatter for SessionAnalysisReport
Implement OutputFormatter trait for consistent output handling.
impl OutputFormatter for SessionAnalysisReport
Implement OutputFormatter trait for consistent output handling.
Source§fn format_text(&self) -> String
fn format_text(&self) -> String
Source§fn format_pretty(&self) -> String
fn format_pretty(&self) -> String
Auto Trait Implementations§
impl Freeze for SessionAnalysisReport
impl RefUnwindSafe for SessionAnalysisReport
impl Send for SessionAnalysisReport
impl Sync for SessionAnalysisReport
impl Unpin for SessionAnalysisReport
impl UnsafeUnpin for SessionAnalysisReport
impl UnwindSafe for SessionAnalysisReport
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.