lib.rsannotatedlib.rssource18 lines · 822 B · raw
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, Instant, HttpResponse, Observer, Runtime, Transport, TransportError, TransportErrorKind};