1#![allow(clippy::trivial_regex)]
2use std::{borrow::Borrow, str::FromStr};
3
4use crate::server::matchers::Matcher;
5use bytes::Bytes;
6use futures_util::task::Spawn;
7use hyper::body::{Body, Buf};
8use std::{future::Future, net::SocketAddr};
9
10use futures_util::{FutureExt, TryStreamExt};
11use http_body_util::BodyExt;
12
13mod builder;
14mod handler;
15pub mod matchers;
16mod server;
17pub mod state;
18
19#[cfg(feature = "record")]
20mod persistence;
21
22#[cfg(feature = "https")]
23mod tls;
24
25use crate::server::{handler::HttpMockHandler, server::MockServer, state::HttpMockStateManager};
26
27pub use builder::HttpMockServerBuilder;
28pub use server::Error;
29
30pub type HttpMockServer = MockServer<HttpMockHandler<HttpMockStateManager>>;
32
33#[derive(Clone)]
35pub struct RequestMetadata {
36 pub scheme: &'static str,
39}
40
41impl RequestMetadata {
42 pub fn new(scheme: &'static str) -> Self {
44 Self { scheme }
45 }
46}