harmos-runtime 0.1.4

Harmos runtime: managed state, undo, recovery, background work and typed streams.
Documentation
/* ***
 *
 * Harmos
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * ***
 */

/* === Modules === */

/* === Re-Exports === */

/* === Imports === */

// Standard Library Imports
use std::time::Duration;
// Third Party Imports

// Local Imports
use harmos_runtime::operations::{OperationPolicy, RestartPolicy, RetryPolicy, Visibility};

/* === Constants === */

pub const POLICY: OperationPolicy = OperationPolicy {
    timeout: Duration::from_secs(10),
    attempt_timeout: Duration::from_secs(10),
    retries: RetryPolicy::Never,
    restart: RestartPolicy::Never,
};

/* === Macros === */

/* === Type Aliases === */

/* === Structs === */

#[harmos_runtime::message]
#[derive(Clone, PartialEq)]
pub struct Step {
    pub phase: u64,
}

#[harmos_runtime::message]
#[harmos_runtime::operation(
    id = "process.graph.read",
    version = 1,
    policy = POLICY,
    response = Step,
    visibility = Visibility::Shared,
)]
#[derive(Clone, PartialEq)]
pub struct Read {
    pub phase: u64,
}

#[harmos_runtime::message]
#[harmos_runtime::operation(
    id = "process.graph.probe",
    version = 1,
    policy = POLICY,
    response = Step,
    visibility = Visibility::Host,
)]
#[derive(Clone, PartialEq)]
pub struct Probe {
    pub phase: u64,
}

/* === Enums === */

#[harmos_runtime::catalog]
pub enum Readings {
    Read(Read),
}

#[harmos_runtime::catalog]
pub enum Queries {
    Probe(Probe),
}

/* === Traits === */

/* === Implementations === */

/* === Public Functions === */

/* === Private Functions === */

/* === Tests === */