Skip to main content

sendra_core/
lib.rs

1//! Core model for Sendra: request/response types, YAML loading, HTTP execution.
2//!
3//! This crate is deliberately free of CLI concerns (argument parsing, terminal
4//! colouring, exit codes). A future `sendra-tui` crate will depend on it
5//! directly, so everything here returns typed [`SendraError`] values that a
6//! front-end can match on rather than pre-formatted strings.
7
8pub mod assertions;
9pub mod capture;
10pub mod collection;
11pub mod config;
12pub mod environment;
13mod error;
14pub mod http;
15pub mod oauth;
16pub mod request;
17pub mod script;
18#[cfg(test)]
19mod test_support;
20
21pub use assertions::{AssertionKind, AssertionReport, AssertionResult, Assertions, NotAssertions};
22pub use capture::{CaptureFailure, CaptureReport, CaptureResult, CaptureSource, Captures};
23pub use collection::{Collection, Document};
24pub use config::Config;
25pub use environment::Environment;
26pub use error::SendraError;
27pub use http::client::{build_client, HttpClient};
28pub use http::response::{RedirectHop, Response};
29pub use http::{send, send_prepared};
30pub use oauth::{
31    build_authorization_url, exchange_authorization_code, generate_pkce, generate_state,
32    OAuthTokenCache, PkcePair,
33};
34pub use request::auth::{ApiKeyAuth, ApiKeyLocation, Auth, BasicAuth, OAuthAuth, OAuthGrantType};
35pub use request::multipart::MultipartPart;
36pub use request::{Method, Request, RetryConfig};
37pub use script::{Hook, Script, ScriptOutcome, ScriptOutput, Scripts};