1//! A System One client independent of any runtime or HTTP stack. 2//! 3//! The policy lives here, once: retries and their budget, per-attempt 4//! timeouts, "never sent" redials, request ids on every error, and error 5//! classification. It reaches the world through two ports, [`Transport`] 6//! (send one request) and [`Runtime`] (time and randomness), which an 7//! adapter implements: `postjevsql-pg` over a Postgres `WaitEventSet`, 8//! or a fake in tests, where time is virtual and runs deterministically. 9//! An [`Observer`] hears each attempt, retry, redial and answer. 10#![forbid(unsafe_code)] 11 12mod client; 13mod error; 14mod ports; 15 16pub use client::{Answered, Client}; 17pub use error::ClientError; 18pub use ports::{Event, HttpRequest, HttpResponse, Observer, Runtime, Transport, TransportError, TransportErrorKind};