shepherd-rs 0.1.0

Shepherd is a resilient, non-blocking orchestrator that persistently transforms and delivers data—built for remote, compute-heavy workloads.
Documentation
pub trait TransformRequest: Eq + Send + Sync
where
    <Self as TransformRequest>::Identifier: Send,
    <Self as TransformRequest>::Input: Send,
    <Self as TransformRequest>::Output: Send, {
    /// A unique identifier for the transformation request.
    type Identifier;

    /// The type of the input for the transformation.
    type Input;

    /// The type of the output expected after the transformation.
    type Output;

    /// Returns the unique identifier for the transformation request.
    fn request_id(&self) -> Self::Identifier;

    /// Returns the input for the transformation request.
    fn input(&self) -> &Self::Input;
}

pub enum TransformRequestStatus {
    /// The transformation request is pending.
    Pending,

    /// The transformation request is in progress.
    /// Contains attempt ID.
    Processing(u64),

    /// The transformation request has been completed successfully.
    Resolved,

    /// The transformation request has failed.
    Failed(String), // Contains an error message
}