use super::*;
#[derive(CustomDebug, Data, DisplayDebug)]
pub struct Stream {
pub stream: Box<dyn Transport>,
#[get_mut(pub(super))]
#[set(pub(super))]
pub(super) request_config: RequestConfig,
#[get(type(copy))]
#[get_mut(pub(super))]
pub(super) closed: bool,
#[get_mut(pub(super))]
#[set(pub(super))]
pub(super) leftover: Vec<u8>,
#[get(type(copy))]
#[get_mut(pub(super))]
#[set(pub(super))]
pub(super) leftover_start: usize,
#[get(type(copy))]
#[get_mut(pub(super))]
#[set(pub(super))]
pub(super) leftover_end: usize,
#[get_mut(pub(super))]
#[set(pub(super))]
pub(super) line_buffer: String,
#[get_mut(pub(super))]
#[set(pub(super))]
pub(super) header_line_buffer: String,
#[get(pub(super), type(ref))]
#[get_mut(pub(super))]
#[set(pub(super))]
pub(super) websocket_state: Option<Box<WebSocketReadState>>,
}
#[derive(Clone, Data, Debug, Default)]
pub(super) struct WebSocketReadState {
#[get(pub(super), type(ref))]
#[get_mut(pub(super))]
#[set(pub(super))]
pub(super) buffer: Vec<u8>,
#[get(pub(super))]
#[get_mut(pub(super))]
#[set(pub(super))]
pub(super) full_frame: Vec<u8>,
#[get(pub(super), type(copy))]
#[get_mut(pub(super))]
#[set(pub(super))]
pub(super) is_client_response: bool,
}
#[derive(Data, New)]
pub(crate) struct PooledReader<'a> {
#[get(pub(super))]
#[get_mut(pub(super))]
#[set(pub(super))]
pub(super) stream: &'a mut Box<dyn Transport>,
#[get(pub(super))]
#[get_mut(pub(super))]
#[set(pub(super))]
pub(super) buffer: Vec<u8>,
#[get(pub(super), type(copy))]
#[get_mut(pub(super))]
#[set(pub(super))]
pub(super) capacity: usize,
#[get(pub(super), type(copy))]
#[get_mut(pub(super))]
#[set(pub(super))]
#[new(skip)]
pub(super) start: usize,
#[get(pub(super), type(copy))]
#[get_mut(pub(super))]
#[set(pub(super))]
#[new(skip)]
pub(super) end: usize,
}