use crate::{
client::{
ClientCodecConfig,
SocketOptions,
hooks::{LifecycleHooks, RequestHooks},
preamble_exchange::PreambleConfig,
tracing_config::TracingConfig,
},
serializer::BincodeSerializer,
};
pub struct WireframeClientBuilder<S = BincodeSerializer, P = (), C = ()> {
pub(crate) serializer: S,
pub(crate) codec_config: ClientCodecConfig,
pub(crate) socket_options: SocketOptions,
pub(crate) preamble_config: Option<PreambleConfig<P>>,
pub(crate) lifecycle_hooks: LifecycleHooks<C>,
pub(crate) request_hooks: RequestHooks,
pub(crate) tracing_config: TracingConfig,
}
impl WireframeClientBuilder<BincodeSerializer, (), ()> {
#[must_use]
pub fn new() -> Self {
Self {
serializer: BincodeSerializer,
codec_config: ClientCodecConfig::default(),
socket_options: SocketOptions::default(),
preamble_config: None,
lifecycle_hooks: LifecycleHooks::default(),
request_hooks: RequestHooks::default(),
tracing_config: TracingConfig::default(),
}
}
}
impl Default for WireframeClientBuilder<BincodeSerializer, (), ()> {
fn default() -> Self { Self::new() }
}