proxima-primitives 0.1.0

The pipe algebra itself: the Pipe trait — an async In -> Result<Out, Err> that becomes a transform, source, sink or observe by choice of types — plus its three tier siblings (SendPipe, UnpinPipe, UnpinSendPipe), Handler, SourcePipe, the payload types Carry, ResponseStream and RequestStream (buffered bodies are plain Bytes), HeaderList, the sans-IO byte-stream traits, runtime-agnostic concurrency primitives, and the Replay/GenericStream transport seam. Everything else in proxima composes what is defined here.
Documentation
//! `proxima::sync::oneshot` — single-value channel, shape-compatible
//! with `tokio::sync::oneshot`. Backed by `futures::channel::oneshot`
//! (no runtime coupling). The receiver's `await` resolves to
//! `Result<T, Canceled>` rather than tokio's `RecvError`; callers that
//! only care about success/failure (`.ok()`, `.is_err()`) port
//! verbatim. Code that explicitly matches on `RecvError` must adapt to
//! [`Canceled`].
//!
//! # Non-coverage
//!
//! - `Sender::closed().await` — sender-side wait for the receiver to
//!   drop. `futures::channel::oneshot::Sender::cancellation()`
//!   provides an equivalent if a caller needs it; not re-exported
//!   because no internal caller uses it today.
//! - `Sender::is_closed()` IS available via the futures crate's
//!   `poll_canceled` but not exposed here as a sync probe; if needed,
//!   wrap with `futures::future::FutureExt::now_or_never`.
//! - `Receiver::try_recv() -> Result<Option<T>, TryRecvError>` —
//!   non-blocking probe. Compose with `futures::poll!` if needed.
//! - `Receiver::close()` — explicit close from the receiver side.
//!   The futures version drops are sufficient for proxima's usage.

pub use futures::channel::oneshot::{Canceled, Receiver, Sender, channel};