mod client;
mod error;
mod liveness;
mod server;
pub mod session;
pub use client::{CLIENT_DDL, ClientStore, INTENT_FLUSH_BATCH_SIZE, IntentRow, TaskRow};
pub use error::{StoreError, StoreResult};
pub use server::{
Append, CursorRow, EventRecord, FaultQuery, GhostSweepRow, LedgerRow, RoleRow, SERVER_DDL,
ServerFaultRow, ServerLedger, ServerSessionRow, SessionBindingRow, SessionWrite, rfc3339,
};
pub use session::{FaultRecord, SessionLedger, SessionRecord, VersionedSession};
pub use onlyne_proto::LedgerState;
pub fn transition_allowed(from: LedgerState, to: LedgerState) -> bool {
matches!(
(from, to),
(LedgerState::Queued, LedgerState::InFlight)
| (LedgerState::Queued, LedgerState::Rejected)
| (LedgerState::Queued, LedgerState::Expired)
| (LedgerState::InFlight, LedgerState::Acked)
| (LedgerState::InFlight, LedgerState::Queued)
| (LedgerState::InFlight, LedgerState::Rejected)
)
}