pure-stage 0.1.1

A library for building and running simulations of distributed systems.
Documentation
// Copyright 2025 PRAGMA
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

#![deny(clippy::future_not_send)]

mod adapter;
pub mod drop_guard;
mod effect;
mod effect_box;
mod logging;
mod output;
mod receiver;
mod resources;
mod sender;
pub mod serde;
pub mod stage_ref;
mod stagegraph;
mod time;
pub mod tokio;
pub mod trace_buffer;
mod types;

pub mod simulation;

pub use effect::{
    Effect, Effects, ExternalEffect, ExternalEffectAPI, ExternalEffectSync, ScheduleIds, StageResponse,
    UnknownExternalEffect,
};
pub use output::OutputEffect;
pub use receiver::Receiver;
pub use resources::Resources;
pub use sender::Sender;
pub use serde::{
    DeserializerGuard, DeserializerGuards, serialize_external_effect::register_effect_deserializer,
    serialize_send_data::register_data_deserializer,
};
pub use stage_ref::{StageBuildRef, StageRef};
pub use stagegraph::{ScheduleId, StageGraph, StageGraphRunning, stage_name};
pub use time::{Clock, EPOCH, Instant};
pub use types::{BLACKHOLE_NAME, BoxFuture, Name, SendData, TryInStage, Void, err, warn};
pub use typetag;