Skip to main content

whycodes_session/
lib.rs

1pub mod edit_stats;
2pub mod error;
3pub mod history;
4pub mod import;
5pub mod pairing;
6pub mod search;
7pub mod session;
8pub mod stream_rules;
9pub mod title;
10pub mod tree;
11
12pub use edit_stats::EditStats;
13pub use error::{Result, SessionError};
14pub use history::{SessionHistory, StashSlot};
15pub use import::{ImportKind, import_messages};
16pub use search::{SessionSearchHit, query_terms, search_sessions};
17pub use session::{
18    COMPACT_CONTINUATION_PREAMBLE, CheckpointState, CompactOutcome, Session, SessionCost,
19    compact_summary_display_text, format_compact_summary, format_compact_summary_content,
20    is_compact_summary_text,
21};
22pub use stream_rules::StreamRuleLedger;
23pub use title::{TitleSource, default_title, heuristic_title, sanitize_title};
24pub use tree::{Branch, BranchError, TreeRow, TreeTarget};
25
26#[cfg(test)]
27mod tests {
28    use super::*;
29    use std::path::Path;
30
31    #[test]
32    fn public_reexports_are_callable() {
33        assert_eq!(sanitize_title("  Title.  "), "Title");
34        assert_eq!(heuristic_title("please fix login"), "fix login");
35        assert!(default_title(Path::new("/tmp/app"), "ab").contains("app"));
36        assert!(is_compact_summary_text("[Compacted earlier]"));
37        assert_eq!(format_compact_summary("ok"), "ok");
38        assert!(!COMPACT_CONTINUATION_PREAMBLE.is_empty());
39        assert!(TitleSource::Default.allows_heuristic());
40        assert_eq!(ImportKind::parse("auto"), ImportKind::Auto);
41        assert!(!SessionHistory::new().can_undo());
42    }
43}