1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
//! Sans-IO HTTP/1.1 REST primitives + blocking transport.
//!
//! **Protocol layer (sans-IO):**
//! - [`RequestWriter`] — typestate request encoder, produces [`Request`]
//! - [`ResponseReader`](crate::http::ResponseReader) — response parser
//!
//! **Transport layer (blocking I/O):**
//! - [`HttpConnection`] — sends request bytes, reads response bytes
//!
//! # Usage
//!
//! ```ignore
//! use nexus_net::rest::{HttpConnection, RequestWriter};
//! use nexus_net::http::ResponseReader;
//!
//! // Protocol (sans-IO)
//! let mut writer = RequestWriter::new("api.exchange.com")?;
//! writer.default_header("Authorization", "Bearer token123")?;
//! let mut reader = ResponseReader::new(32 * 1024);
//!
//! // Transport
//! let mut conn = HttpConnection::builder().connect("http://api.exchange.com")?;
//!
//! // Build + send
//! let req = writer.get("/api/v1/orders")
//! .query("symbol", "BTC-USD")
//! .finish()?;
//! let resp = conn.send(req, &mut reader)?;
//!
//! println!("status: {}", resp.status());
//! println!("body: {}", resp.body_str()?);
//! ```
pub use ;
pub use RestError;
pub use ;
pub use RestResponse;