//! Internal fragments used to compose readable diagnostics.
//!
//! These strings are deliberately not public API and carry no compatibility guarantee.
//! Runtime consumers must branch on typed fields such as `TaskOutcomeKind` and `RejectionKind`, never parse `reason`.
/// Registration/rejection reason: another registered task already uses this name.
pub const ALREADY_EXISTS: &str = "a registered task already uses this name";
/// Registration reason: another item caused an all-or-nothing static batch to be rejected.
pub const BATCH_REJECTED: &str = "another item rejected the all-or-nothing batch";
/// Rejection reason: a queued task was removed before it started.
pub const REMOVED_FROM_QUEUE: &str = "removed from controller queue before start";
/// Rejection reason: a newer `Replace` task took this task's place.
pub const SUPERSEDED_BY_REPLACE: &str = "superseded by a newer replacement";
/// Rejection reason: the controller is shutting down.
pub const CONTROLLER_SHUTTING_DOWN: &str = "controller is shutting down";
/// Diagnostic text used when `DropIfRunning` rejects a busy slot.
pub const DROP_IF_RUNNING: &str = "slot is busy; DropIfRunning rejected the submission";
/// Diagnostic text used when a controller slot queue is full.
pub const QUEUE_FULL: &str = "slot queue is full";