1 mod buffer; 2 mod counts; 3 mod flow_control; 4 mod prioritize; 5 mod recv; 6 mod send; 7 mod state; 8 mod store; 9 mod stream; 10 #[allow(clippy::module_inception)] 11 mod streams; 12 13 pub(crate) use self::prioritize::Prioritized; 14 pub(crate) use self::recv::Open; 15 pub(crate) use self::send::PollReset; 16 pub(crate) use self::streams::{DynStreams, OpaqueStreamRef, StreamRef, Streams}; 17 18 use self::buffer::Buffer; 19 use self::counts::Counts; 20 use self::flow_control::FlowControl; 21 use self::prioritize::Prioritize; 22 use self::recv::Recv; 23 use self::send::Send; 24 use self::state::State; 25 use self::store::Store; 26 use self::stream::Stream; 27 28 use crate::frame::{StreamId, StreamIdOverflow}; 29 use crate::proto::*; 30 31 use bytes::Bytes; 32 use std::time::Duration; 33 34 #[derive(Debug)] 35 pub struct Config { 36 /// Initial maximum number of locally initiated streams. 37 /// After receiving a Settings frame from the remote peer, 38 /// the connection will overwrite this value with the 39 /// MAX_CONCURRENT_STREAMS specified in the frame. 40 pub initial_max_send_streams: usize, 41 42 /// Max amount of DATA bytes to buffer per stream. 43 pub local_max_buffer_size: usize, 44 45 /// The stream ID to start the next local stream with 46 pub local_next_stream_id: StreamId, 47 48 /// If the local peer is willing to receive push promises 49 pub local_push_enabled: bool, 50 51 /// If extended connect protocol is enabled. 52 pub extended_connect_protocol_enabled: bool, 53 54 /// How long a locally reset stream should ignore frames 55 pub local_reset_duration: Duration, 56 57 /// Maximum number of locally reset streams to keep at a time 58 pub local_reset_max: usize, 59 60 /// Maximum number of remotely reset "pending accept" streams to keep at a 61 /// time. Going over this number results in a connection error. 62 pub remote_reset_max: usize, 63 64 /// Initial window size of remote initiated streams 65 pub remote_init_window_sz: WindowSize, 66 67 /// Maximum number of remote initiated streams 68 pub remote_max_initiated: Option<usize>, 69 70 /// Maximum number of locally reset streams due to protocol error across 71 /// the lifetime of the connection. 72 /// 73 /// When this gets exceeded, we issue GOAWAYs. 74 pub local_max_error_reset_streams: Option<usize>, 75 } 76