minerva 0.2.0

Causal ordering for distributed systems
extern crate alloc;

use alloc::vec::Vec;

/// One measured session's readings, shared by the asserts and report rendering.
pub(super) struct Readings {
    /// Visible characters after churn.
    pub(super) visible_len: usize,
    /// Grow-only skeleton size at replica 0, including tombstones.
    pub(super) skeleton_len: usize,
    /// Per-replica out-of-order exception count in steady state.
    pub(super) exceptions: Vec<usize>,
    /// Per-replica context hole count in steady state.
    pub(super) holes: Vec<u64>,
    /// Exceptions produced by a deliberately out-of-order receipt.
    pub(super) demo_exceptions: usize,
    /// Holes produced by the same deliberately out-of-order context.
    pub(super) demo_holes: u64,
    /// Byte size of replica 0's full-state context frame.
    pub(super) full_frame_bytes: usize,
    /// Dot-count of a typical single-keystroke delta.
    pub(super) per_keystroke_dots: usize,
    /// Measured byte cost of that single-keystroke delta.
    pub(super) per_keystroke_bytes: usize,
    /// Per-keystroke context frame with an empty-seeded context.
    pub(super) per_keystroke_context_bytes: usize,
    /// Per-keystroke context frame floored at the witnessed peer cut.
    pub(super) per_keystroke_floored_context_bytes: usize,
    /// Dot-count of a batched 50-keystroke delta.
    pub(super) batch_dots: usize,
    /// Measured byte cost of that batched delta.
    pub(super) batch_bytes: usize,
    /// Characters typed into the session.
    pub(super) typed: usize,
    /// Deletes applied during churn.
    pub(super) deleted: usize,
}