#![doc = "Core runtime, scheduling, and request-state primitives for aria2-rust-pro."] #![forbid(unsafe_code)] #![expect( clippy::if_not_else, clippy::missing_const_for_fn, clippy::missing_errors_doc, clippy::must_use_candidate, clippy::needless_pass_by_value, clippy::struct_excessive_bools, clippy::struct_field_names, clippy::use_self, reason = "core crate exposes compatibility-oriented runtime models where strict style lints add noise" )] /// Download engine orchestration, queue management, and session persistence. mod engine; /// Error types returned by the core crate. mod error; /// Runtime event types and the in-memory event bus. mod events; /// Typed option keys, values, and patches. mod options; /// Piece identifiers, piece ranges, and piece-state storage. mod piece; /// Aggregated progress and statistics snapshots. mod progress; /// Request, `BitTorrent`, and segment runtime state models. mod request; /// Runtime configuration and human-readable size parsing helpers. mod runtime; /// Download scheduling policies, planning, and observations. mod scheduler; /// Session state, global options, and persistence bridge data. mod session; pub use engine::{ DownloadEngine, DownloadHandle, DownloadRegistry, DownloadRuntimeSnapshot, QueuePositionMode, RuntimeInstrumentationSnapshot, }; pub use error::{CoreError, ErrorCode, Result}; pub use events::{EventBus, EventListener, RuntimeEvent, RuntimeEventKind}; pub use options::{OptionKey, OptionPatch, OptionValue}; pub use piece::{PieceId, PieceMap, PieceRange, PieceState}; pub use progress::{GlobalStat, GoalProgress, ProgressSnapshot, WorkState}; pub use request::{ BtFileInfo, BtPeerInfo, BtPieceAvailabilityUpdate, BtPressureSnapshot, BtRuntimeState, BtTrackerInfo, DownloadId, DownloadStatus, RequestContext, RequestGroup, ResumeState, RetryAttempt, SegmentAssignment, SegmentRuntimeStats, SegmentState, }; pub use runtime::RuntimeConfig; pub use scheduler::{ ScheduleDecision, ScheduleDecisionKind, Scheduler, SchedulerActivityCounters, SchedulerPlanningObservation, SchedulerPolicy, SchedulerState, }; pub use session::{GlobalOptions, SaveSessionTarget, Session, SessionState}; /// Convenience alias for the primary download task model. pub type DownloadTask = RequestGroup;