1#![cfg_attr(not(doctest), doc = include_str!("../README.md"))]
18
19pub mod action;
20pub mod build;
21pub mod config;
22pub mod db;
23pub mod report;
24pub mod sandbox;
25pub mod scan;
26pub mod summary;
27
28mod init;
30pub mod logging;
31mod tui;
32
33use std::sync::Arc;
34use std::sync::atomic::AtomicBool;
35
36#[derive(Debug)]
38pub struct Interrupted;
39
40impl std::fmt::Display for Interrupted {
41 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
42 write!(f, "Interrupted")
43 }
44}
45
46impl std::error::Error for Interrupted {}
47
48#[derive(Clone, Debug)]
50pub struct RunContext {
51 pub shutdown: Arc<AtomicBool>,
53}
54
55impl RunContext {
56 pub fn new(shutdown: Arc<AtomicBool>) -> Self {
57 Self { shutdown }
58 }
59}
60
61pub use action::{Action, ActionType, FSType};
63pub use build::{Build, BuildCounts, BuildOptions, BuildOutcome, BuildResult, BuildSummary};
64pub use config::{Config, Options, Pkgsrc, PkgsrcEnv, Sandboxes};
65pub use db::Database;
66pub use report::write_html_report;
67pub use sandbox::Sandbox;
68pub use scan::{ResolvedPackage, Scan, ScanResult, ScanSummary, SkipReason, SkippedCounts};
69pub use summary::generate_pkg_summary;
70
71pub use init::Init;