use std::time::Duration;
use crate::proto::h2::{PseudoHeaderOrder, frame::EarlyFrameCapture, frame::Settings};
use rama_core::extensions::Extension;
#[derive(Debug, Clone, Default, Extension)]
#[extension(tags(http))]
pub struct Http1ClientContextParams {
pub title_header_case: bool,
}
#[derive(Debug, Clone, Default, Extension)]
#[extension(tags(http))]
pub struct H2ClientContextParams {
pub headers_pseudo_order: Option<PseudoHeaderOrder>,
pub early_frames: Option<EarlyFrameCapture>,
pub init_stream_window_size: Option<u32>,
pub init_connection_window_size: Option<u32>,
pub keep_alive_interval: Option<Duration>,
pub keep_alive_timeout: Option<Duration>,
pub keep_alive_while_idle: Option<bool>,
pub max_header_list_size: Option<u32>,
pub max_frame_size: Option<u32>,
pub max_concurrent_streams: Option<u32>,
pub adaptive_window: Option<bool>,
pub initial_max_send_streams: Option<usize>,
pub max_send_buf_size: Option<u32>,
pub max_concurrent_reset_streams: Option<usize>,
pub max_pending_accept_reset_streams: Option<usize>,
pub max_local_error_reset_streams: Option<usize>,
pub reset_stream_duration: Option<Duration>,
}
pub use rama_net::http::TargetHttpVersion;
#[derive(Debug, Clone, Default, Extension)]
#[extension(tags(http))]
pub struct H2ServerContextParams {
pub enable_connect_protocol: Option<bool>,
pub max_concurrent_streams: Option<u32>,
pub header_table_size: Option<u32>,
pub max_frame_size: Option<u32>,
pub max_header_list_size: Option<u32>,
pub initial_stream_window_size: Option<u32>,
pub initial_connection_window_size: Option<u32>,
pub adaptive_window: Option<bool>,
}
#[derive(Debug, Clone, Extension)]
#[extension(tags(http))]
pub struct PeerH2Settings(pub Settings);