mod cursor;
mod latest;
mod open_set;
mod ops;
mod row;
pub use cursor::Cursor;
pub use latest::{Applied, LatestRows};
pub use open_set::{RequestSize, StepSource, Verdict};
pub use ops::{Notice, ReadReply, ReadRequest, Refusal, SubscribeRequest};
pub use row::{live_row_identity, BadCounts, NotClosed, StepRow};
pub const CONTRACT_VERSION: u32 = 1;
pub const OP_SUBSCRIBE: &str = "usage.steps.subscribe";
pub const OP_READ: &str = "usage.steps.read";
pub const DEFAULT_READ_LIMIT: u32 = 200;
pub const MAX_READ_LIMIT: u32 = 1_000;
pub const STABLE_RETENTION_AT_LEAST: f64 = 0.95;
pub const WARNING_RETENTION_AT_LEAST: f64 = 0.80;
pub const PROMPT_DROP_TOKENS: u64 = 15_000;
pub mod codes {
pub const NOT_PERMITTED: &str = "not_permitted";
pub const MALFORMED: &str = "malformed";
pub const SUBSCRIPTION_CAPACITY: &str = "subscription_capacity";
pub const DRAINING: &str = "draining";
pub const INVALID_REQUEST: &str = "invalid_request";
pub const RANGE_TOO_LARGE: &str = "range_too_large";
pub const CURSOR_EXPIRED: &str = "cursor_expired";
pub const LAGGED: &str = "lagged";
pub const CANCELLED: &str = "cancelled";
pub const SUBSCRIBE_REFUSALS: &[&str] = &[
NOT_PERMITTED,
SUBSCRIPTION_CAPACITY,
DRAINING,
MALFORMED,
INVALID_REQUEST,
];
pub const SUBSCRIBE_ENDINGS: &[&str] = &[LAGGED, CANCELLED];
pub const READ_REFUSALS: &[&str] = &[
MALFORMED,
INVALID_REQUEST,
RANGE_TOO_LARGE,
CURSOR_EXPIRED,
NOT_PERMITTED,
];
}