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 mod streams;
11 
12 pub(crate) use self::prioritize::Prioritized;
13 pub(crate) use self::recv::Open;
14 pub(crate) use self::send::PollReset;
15 pub(crate) use self::streams::{OpaqueStreamRef, StreamRef, Streams};
16 
17 use self::buffer::Buffer;
18 use self::counts::Counts;
19 use self::flow_control::FlowControl;
20 use self::prioritize::Prioritize;
21 use self::recv::Recv;
22 use self::send::Send;
23 use self::state::State;
24 use self::store::Store;
25 use self::stream::Stream;
26 
27 use crate::frame::{StreamId, StreamIdOverflow};
28 use crate::proto::*;
29 
30 use bytes::Bytes;
31 use std::time::Duration;
32 
33 #[derive(Debug)]
34 pub struct Config {
35     /// Initial window size of locally initiated streams
36     pub local_init_window_sz: WindowSize,
37 
38     /// Initial maximum number of locally initiated streams.
39     /// After receiving a Settings frame from the remote peer,
40     /// the connection will overwrite this value with the
41     /// MAX_CONCURRENT_STREAMS specified in the frame.
42     pub initial_max_send_streams: usize,
43 
44     /// The stream ID to start the next local stream with
45     pub local_next_stream_id: StreamId,
46 
47     /// If the local peer is willing to receive push promises
48     pub local_push_enabled: bool,
49 
50     /// How long a locally reset stream should ignore frames
51     pub local_reset_duration: Duration,
52 
53     /// Maximum number of locally reset streams to keep at a time
54     pub local_reset_max: usize,
55 
56     /// Initial window size of remote initiated streams
57     pub remote_init_window_sz: WindowSize,
58 
59     /// Maximum number of remote initiated streams
60     pub remote_max_initiated: Option<usize>,
61 }
62