Skip to content

Commit 164a158

Browse files
committed
Minor interface cleanup
1 parent f1329b2 commit 164a158

File tree

4 files changed

+20
-14
lines changed

4 files changed

+20
-14
lines changed

httpbis/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ pub use server::stream_handler::ServerRequestStreamHandler;
3939
pub use server::tls::ServerTlsOption;
4040
pub use server::Server;
4141
pub use server::ServerBuilder;
42+
pub use solicit::end_stream::EndStream;
4243
pub use solicit::error_code::ErrorCode;
4344
pub use solicit::header::name::HeaderName;
4445
pub use solicit::header::name::PseudoHeaderName;

httpbis/src/server/conn.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ where
138138
let invoke_result = {
139139
let req = ServerRequest {
140140
headers,
141-
end_stream: end_stream == EndStream::Yes,
141+
end_stream,
142142
stream_id,
143143
in_window_size,
144144
stream_handler: &mut stream_handler,

httpbis/src/server/req.rs

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ use crate::server::conn::ServerToWriteMessage;
1010
use crate::server::increase_in_window::ServerIncreaseInWindow;
1111
use crate::server::stream_handler::ServerRequestStreamHandler;
1212
use crate::server::stream_handler::ServerRequestStreamHandlerHolder;
13+
use crate::EndStream;
1314
use crate::Headers;
1415
use crate::StreamAfterHeaders;
1516
use crate::StreamId;
@@ -19,7 +20,7 @@ pub struct ServerRequest<'a> {
1920
/// Request headers.
2021
pub headers: Headers,
2122
/// True if requests ends with headers (no body).
22-
pub end_stream: bool,
23+
pub end_stream: EndStream,
2324
pub(crate) stream_id: StreamId,
2425
/// Stream in window size at the moment of request start
2526
pub(crate) in_window_size: u32,
@@ -31,16 +32,19 @@ pub struct ServerRequest<'a> {
3132
impl<'a> ServerRequest<'a> {
3233
/// Convert a request into a pullable stream.
3334
pub fn into_stream(self) -> impl StreamAfterHeaders {
34-
if self.end_stream {
35-
Box::pin(HttpStreamAfterHeadersEmpty)
36-
} else {
37-
let conn_died = self.conn_died.clone();
38-
self.register_stream_handler::<_, _, StreamAfterHeadersBox>(move |increase_in_window| {
39-
let (inc_tx, inc_rx) = stream_queue_sync(conn_died);
40-
let stream_from_network = StreamFromNetwork::new(inc_rx, increase_in_window.0);
41-
42-
(inc_tx, Box::pin(stream_from_network))
43-
})
35+
match self.end_stream {
36+
EndStream::Yes => Box::pin(HttpStreamAfterHeadersEmpty),
37+
EndStream::No => {
38+
let conn_died = self.conn_died.clone();
39+
self.register_stream_handler::<_, _, StreamAfterHeadersBox>(
40+
move |increase_in_window| {
41+
let (inc_tx, inc_rx) = stream_queue_sync(conn_died);
42+
let stream_from_network =
43+
StreamFromNetwork::new(inc_rx, increase_in_window.0);
44+
(inc_tx, Box::pin(stream_from_network))
45+
},
46+
)
47+
}
4448
}
4549
}
4650

httpbis/src/solicit/end_stream.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
/// An enum indicating whether the `HttpConnection` send operation should end the stream.
22
#[derive(Clone, Copy, PartialEq, Debug)]
33
pub enum EndStream {
4-
/// The stream should be closed
4+
/// The stream is closed/should be closed.
55
Yes,
6-
/// The stream should still be kept open
6+
/// The stream is open/should be kept open.
77
No,
88
}
99

1010
impl EndStream {
11+
/// Convert from boolean.
1112
pub fn from_bool(end_stream: bool) -> EndStream {
1213
match end_stream {
1314
true => EndStream::Yes,

0 commit comments

Comments
 (0)