#![doc = include_str!("../README.md")]
#![cfg_attr(not(feature = "std"), no_std)]
#![forbid(unsafe_code)]
#![warn(missing_docs)]
extern crate alloc;
#[macro_use]
mod pulse;
mod callback;
pub mod ext;
mod json;
pub use callback::{Checkpoint, FnPulse};
pub mod poll;
#[cfg(feature = "smooth")]
mod smooth;
mod sync;
mod tree;
pub use how_far::WithStop;
use how_far::ChildPulse;
pub use how_far::{
AsStopReason, Child, Complete, Execution, NoPulse, Outcome, Paced, PhaseSpec, Phases,
PlanError, ProgressExt, Pulse, Report, ResultExt, SharedPulse, Stage, StageKey, Stages, Stop,
StopOnly, StopReason, Total, Unstoppable, prelude,
};
pub use pulse::PulseTree;
#[cfg(feature = "smooth")]
pub use smooth::ProgressSmoother;
pub use tree::{NodeId, Observer, Phase, Reporter, Snapshot, Status, Summary};