mist/internal/http2/stream
Types
pub type InternalState {
InternalState(data_selector: process.Selector(Message))
}
Constructors
-
InternalState(data_selector: process.Selector(Message))
pub type Message {
Ready
Data(bits: BitArray, end: Bool)
}
Constructors
-
Ready -
Data(bits: BitArray, end: Bool)
pub type SendMessage {
Send(
identifier: frame.StreamIdentifier(frame.Frame),
resp: response.Response(http.ResponseData),
)
Reset(
identifier: frame.StreamIdentifier(frame.Frame),
error: frame.ConnectionError,
)
SendHeaders(
identifier: frame.StreamIdentifier(frame.Frame),
status: Int,
headers: List(#(String, String)),
)
SendData(
identifier: frame.StreamIdentifier(frame.Frame),
data: BitArray,
sent: process.Subject(Result(Nil, Nil)),
)
ConsumeData(
identifier: frame.StreamIdentifier(frame.Frame),
size: Int,
)
}
Constructors
-
Send( identifier: frame.StreamIdentifier(frame.Frame), resp: response.Response(http.ResponseData), ) -
Reset( identifier: frame.StreamIdentifier(frame.Frame), error: frame.ConnectionError, ) -
SendHeaders( identifier: frame.StreamIdentifier(frame.Frame), status: Int, headers: List(#(String, String)), ) -
SendData( identifier: frame.StreamIdentifier(frame.Frame), data: BitArray, sent: process.Subject(Result(Nil, Nil)), ) -
ConsumeData( identifier: frame.StreamIdentifier(frame.Frame), size: Int, )
pub type State {
State(
id: frame.StreamIdentifier(frame.Frame),
state: StreamState,
subject: process.Subject(Message),
receive_window_size: Int,
consumed_size: Int,
send_window_size: Int,
pending_content_length: option.Option(Int),
headers_sent: Bool,
)
}
Constructors
-
State( id: frame.StreamIdentifier(frame.Frame), state: StreamState, subject: process.Subject(Message), receive_window_size: Int, consumed_size: Int, send_window_size: Int, pending_content_length: option.Option(Int), headers_sent: Bool, )
pub type StreamState {
Open
RemoteClosed
Closed
}
Constructors
-
Open -
RemoteClosed -
Closed
Values
pub fn make_request(
headers: List(#(String, String)),
req: request.Request(http.Connection),
) -> Result(request.Request(http.Connection), Nil)
pub fn new(
identifier: frame.StreamIdentifier(frame.Frame),
handler: fn(request.Request(http.Connection)) -> response.Response(
http.ResponseData,
),
headers: List(#(String, String)),
connection: http.Connection,
sender: process.Subject(SendMessage),
end: Bool,
send_timeout: Int,
) -> Result(
actor.Started(process.Subject(Message)),
actor.StartError,
)