Skip to main content

qubit_progress/
lib.rs

1/*******************************************************************************
2 *
3 *    Copyright (c) 2025 - 2026 Haixing Hu.
4 *
5 *    SPDX-License-Identifier: Apache-2.0
6 *
7 *    Licensed under the Apache License, Version 2.0.
8 *
9 ******************************************************************************/
10//! Generic progress reporting data model and reporter abstractions.
11//!
12//! This crate models progress as immutable, self-describing events carrying a
13//! metric schema, lifecycle phase, optional stage information, metric counters,
14//! and elapsed time.
15
16#![deny(missing_docs)]
17#![deny(unsafe_op_in_unsafe_fn)]
18
19pub mod model;
20/// Lifecycle helper for one progress-producing operation.
21pub mod progress;
22pub mod reporter;
23/// Helpers for running progress reporting loops.
24pub mod running;
25
26pub use model::{
27    ProgressCounter,
28    ProgressEvent,
29    ProgressEventBuilder,
30    ProgressMetric,
31    ProgressMetricSnapshot,
32    ProgressPhase,
33    ProgressSchema,
34    ProgressStage,
35};
36pub use progress::Progress;
37pub use reporter::{
38    FormattedProgressReporter,
39    HumanReadableMetricSnapshotFormatter,
40    HumanReadableProgressReporter,
41    JsonLoggerProgressReporter,
42    JsonMetricSnapshotFormatter,
43    JsonProgressReporter,
44    JsonStderrProgressReporter,
45    JsonStdoutProgressReporter,
46    JsonWriterProgressReporter,
47    LoggerProgressReporter,
48    MetricSnapshotFormatter,
49    MetricSnapshotProgressReporter,
50    NoOpProgressReporter,
51    ProgressReporter,
52    StderrProgressReporter,
53    StdoutProgressReporter,
54    WriterProgressReporter,
55};
56pub use running::{
57    RunningProgressGuard,
58    RunningProgressPointHandle,
59};