* refactor: Extract FramedWrite::buffer to a less generic function Should cut out another 23 KiB (since I see it duplicated) * refactor: Extract some duplicated code to a function * refactor: Extract part of flush into a less generic function * refactor: Extract a less generic part of connection * refactor: Factor out a less generic part of Connection::poll2 * refactor: Extract a non-generic part of handshake2 * refactor: Don't duplicate Streams code on Peer (-3.5%) The `P: Peer` parameter is rarely used and there is already a mechanism for using it dynamically. * refactor: Make recv_frame less generic (-2.3%) * Move out part of Connection::poll * refactor: Extract parts of Connection * refactor: Extract a non-generic part of reclaim_frame * comments
62 lines
1.7 KiB
Rust
62 lines
1.7 KiB
Rust
mod buffer;
|
|
mod counts;
|
|
mod flow_control;
|
|
mod prioritize;
|
|
mod recv;
|
|
mod send;
|
|
mod state;
|
|
mod store;
|
|
mod stream;
|
|
mod streams;
|
|
|
|
pub(crate) use self::prioritize::Prioritized;
|
|
pub(crate) use self::recv::Open;
|
|
pub(crate) use self::send::PollReset;
|
|
pub(crate) use self::streams::{DynStreams, OpaqueStreamRef, StreamRef, Streams};
|
|
|
|
use self::buffer::Buffer;
|
|
use self::counts::Counts;
|
|
use self::flow_control::FlowControl;
|
|
use self::prioritize::Prioritize;
|
|
use self::recv::Recv;
|
|
use self::send::Send;
|
|
use self::state::State;
|
|
use self::store::Store;
|
|
use self::stream::Stream;
|
|
|
|
use crate::frame::{StreamId, StreamIdOverflow};
|
|
use crate::proto::*;
|
|
|
|
use bytes::Bytes;
|
|
use std::time::Duration;
|
|
|
|
#[derive(Debug)]
|
|
pub struct Config {
|
|
/// Initial window size of locally initiated streams
|
|
pub local_init_window_sz: WindowSize,
|
|
|
|
/// Initial maximum number of locally initiated streams.
|
|
/// After receiving a Settings frame from the remote peer,
|
|
/// the connection will overwrite this value with the
|
|
/// MAX_CONCURRENT_STREAMS specified in the frame.
|
|
pub initial_max_send_streams: usize,
|
|
|
|
/// The stream ID to start the next local stream with
|
|
pub local_next_stream_id: StreamId,
|
|
|
|
/// If the local peer is willing to receive push promises
|
|
pub local_push_enabled: bool,
|
|
|
|
/// How long a locally reset stream should ignore frames
|
|
pub local_reset_duration: Duration,
|
|
|
|
/// Maximum number of locally reset streams to keep at a time
|
|
pub local_reset_max: usize,
|
|
|
|
/// Initial window size of remote initiated streams
|
|
pub remote_init_window_sz: WindowSize,
|
|
|
|
/// Maximum number of remote initiated streams
|
|
pub remote_max_initiated: Option<usize>,
|
|
}
|