pub struct Input { /* private fields */ }Expand description
The connection’s read buffer: a zero-copy view of what was read and not yet consumed.
let mut input = net_io::Input::from_bytes(b"GET / HTTP/1.1\r\n");
assert_eq!(input.bytes(), b"GET / HTTP/1.1\r\n");
input.consume(4);
assert_eq!(input.bytes(), b"/ HTTP/1.1\r\n");Implementations§
Source§impl Input
impl Input
Sourcepub fn from_bytes(bytes: &[u8]) -> Input
pub fn from_bytes(bytes: &[u8]) -> Input
An input holding bytes, for tests of sessions (allocates).
Sourcepub fn swap(&mut self, other: &mut Buffer) -> Result<(), SwapError>
pub fn swap(&mut self, other: &mut Buffer) -> Result<(), SwapError>
Exchanges the read buffer with an empty other of the same class in O(1):
other now holds the unconsumed bytes, and the connection reads into the
buffer it was given.
§Errors
SwapError::ClassMismatch, SwapError::NotEmpty.
use net_io::{BufferPool, Input};
let mut input = Input::from_bytes(b"body");
let mut pool = BufferPool::standalone(1 << 20);
let mut spare = pool.take(input.class()).unwrap();
input.swap(&mut spare).unwrap();
assert_eq!(spare.as_slice(), b"body");
assert!(input.bytes().is_empty());Trait Implementations§
Auto Trait Implementations§
impl Freeze for Input
impl RefUnwindSafe for Input
impl Send for Input
impl Sync for Input
impl Unpin for Input
impl UnsafeUnpin for Input
impl UnwindSafe for Input
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