minerva 0.2.0

Causal ordering for distributed systems
//! The mark store suite (PRD 0021): the shared-mark register recipes over
//! the [`Composer`] facade, and the marks-beside-text integration the stage
//! D consumer evidence asked for (alma COLLAB-7's range half). The store's
//! axis laws run in the shared conformance harness
//! (`causal_store::foreign::laws::axis::prop_scholia_conforms_to_the_axis`);
//! this module owns the flows.

extern crate alloc;

mod examples;

use crate::metis::{Composer, Dot, Scholia, Scholion};

/// The mark composer a replica holds, tags as static strings.
type Marks = Composer<Scholia<&'static str>>;

/// Mints one shared mark through the facade, returning its dot.
fn mint(
    composer: &mut Marks,
    scholion: Scholion<&'static str>,
) -> (Dot, crate::metis::Dotted<Scholia<&'static str>>) {
    composer.compose(|dot| {
        (
            Scholia::singleton(dot, scholion),
            crate::metis::DotSet::new(),
        )
    })
}