mod request_response_impl;
pub(crate) mod request;
pub(crate) mod response;
use crate::{transport::Transport, GenericSpeakeasySdk};
pub struct Middleware<T: Transport + Send + Clone + 'static> {
pub(crate) request_capture: request::SpeakeasySdk<T>,
pub(crate) response_capture: response::SpeakeasySdk<T>,
}
impl<T> Middleware<T>
where
T: Transport + Send + Clone + 'static,
{
pub fn new(sdk: impl Into<GenericSpeakeasySdk<T>>) -> Self {
Self {
request_capture: request::SpeakeasySdk::new(sdk.into()),
response_capture: response::SpeakeasySdk::new(),
}
}
pub fn into(self) -> (request::SpeakeasySdk<T>, response::SpeakeasySdk<T>) {
(self.request_capture, self.response_capture)
}
}