#[non_exhaustive]pub struct Upgraded {
pub stream: TcpStream,
pub leftover: Vec<u8>,
pub target: String,
}Available on crate feature
std only.Expand description
A connection handed over by a 101 Switching Protocols (or a 2xx to
CONNECT): the socket, the bytes of the new protocol that already
arrived, and the target of the request that asked for the switch.
§Examples
Not run: it serves until the process ends.
use http_net::{blocking::Server, Response};
let server = Server::bind("127.0.0.1:0")?.on_upgrade(|up| {
// Hand `up.stream` and `up.leftover` to a protocol engine.
let _ = (up.stream, up.leftover, up.target);
});
server.serve(|req, _body| {
if req.is_upgrade() {
Response::switching_protocols("x")
} else {
Response::new(404)
}
})?;Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.stream: TcpStreamThe socket, now speaking the new protocol.
leftover: Vec<u8>Bytes of the new protocol received together with the request.
target: StringThe target of the request that asked for the switch.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Upgraded
impl RefUnwindSafe for Upgraded
impl Send for Upgraded
impl Sync for Upgraded
impl Unpin for Upgraded
impl UnsafeUnpin for Upgraded
impl UnwindSafe for Upgraded
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more