61 lines
2.8 KiB
Rust
61 lines
2.8 KiB
Rust
// file: crates/ksp-job-api/src/lib.rs
|
|
// version: 2
|
|
|
|
#![warn(missing_docs)]
|
|
#![deny(unreachable_pub)]
|
|
#![forbid(unsafe_code)]
|
|
|
|
//! Passive runtime-neutral lifecycle contracts for bounded KSP Jobs.
|
|
//!
|
|
//! This foundation owns validated Job identity, explicit lifecycle transitions
|
|
//! cooperative cancellation intent and runtime-neutral latest-value observation.
|
|
//! Concrete Job behavior, runtime spawning, Transport, Store and Worker contracts
|
|
//! remain outside this crate.
|
|
|
|
mod cancellation;
|
|
mod error;
|
|
mod identity;
|
|
mod lifecycle;
|
|
mod notification;
|
|
|
|
/// Runtime-neutral cloneable token carrying cooperative cancellation intent.
|
|
pub use self::cancellation::JobCancellationToken;
|
|
/// Error code used when a Job identifier violates its bounded safe-code contract.
|
|
pub use self::error::ERROR_CODE_JOB_ID_INVALID;
|
|
/// Error code used when a Job kind code violates its bounded safe-code contract.
|
|
pub use self::error::ERROR_CODE_JOB_KIND_INVALID;
|
|
/// Error code used when a Job notification sequence cannot advance without wrapping.
|
|
pub use self::error::ERROR_CODE_JOB_NOTIFICATION_SEQUENCE_EXHAUSTED;
|
|
/// Error code used when a requested Job lifecycle transition is not allowed.
|
|
pub use self::error::ERROR_CODE_JOB_TRANSITION_INVALID;
|
|
/// Bounded caller-supplied identity of one logical Job and its controlled resumptions.
|
|
pub use self::identity::JobId;
|
|
/// Bounded stable code identifying one concrete family of Jobs.
|
|
pub use self::identity::JobKindCode;
|
|
/// Maximum UTF-8 byte length admitted for one Job identifier.
|
|
pub use self::identity::MAX_JOB_ID_BYTES;
|
|
/// Maximum UTF-8 byte length admitted for one Job kind code.
|
|
pub use self::identity::MAX_JOB_KIND_CODE_BYTES;
|
|
/// Completion classification of a Job that reached its normal terminal state.
|
|
pub use self::lifecycle::JobCompletion;
|
|
/// Passive owner of one Job identity and its validated lifecycle state.
|
|
pub use self::lifecycle::JobLifecycle;
|
|
/// Current lifecycle state of one bounded Job.
|
|
pub use self::lifecycle::JobState;
|
|
/// Latest complete observable value for one Job at a monotone sequence position.
|
|
pub use self::notification::JobNotification;
|
|
/// Monotone sequence attached to one latest-value Job notification stream.
|
|
pub use self::notification::JobNotificationSequence;
|
|
/// Runtime-neutral future returned while observing a latest-value Job snapshot source.
|
|
pub use self::notification::JobSnapshotFuture;
|
|
/// Runtime-neutral read and change-wait contract for one latest-value Job snapshot stream.
|
|
pub use self::notification::JobSnapshotSource;
|
|
/// Common KSP error type used by Job-facing contracts.
|
|
pub use ksp_core_lib::Error;
|
|
/// Stable structured code identifying a KSP error category and condition.
|
|
pub use ksp_core_lib::ErrorCode;
|
|
/// Structured contextual field attached to a KSP error.
|
|
pub use ksp_core_lib::ErrorContext;
|
|
/// Common KSP result alias using [`Error`].
|
|
pub use ksp_core_lib::Result;
|