Struct tokio_util::codec::LinesCodec  
source · pub struct LinesCodec { /* private fields */ }Expand description
Implementations§
source§impl LinesCodec
 
impl LinesCodec
sourcepub fn new() -> LinesCodec
 
pub fn new() -> LinesCodec
Returns a LinesCodec for splitting up data into lines.
§Note
The returned LinesCodec will not have an upper bound on the length
of a buffered line. See the documentation for new_with_max_length
for information on why this could be a potential security risk.
sourcepub fn new_with_max_length(max_length: usize) -> Self
 
pub fn new_with_max_length(max_length: usize) -> Self
Returns a LinesCodec with a maximum line length limit.
If this is set, calls to LinesCodec::decode will return a
LinesCodecError when a line exceeds the length limit. Subsequent calls
will discard up to limit bytes from that line until a newline
character is reached, returning None until the line over the limit
has been fully discarded. After that point, calls to decode will
function as normal.
§Note
Setting a length limit is highly recommended for any LinesCodec which
will be exposed to untrusted input. Otherwise, the size of the buffer
that holds the line currently being read is unbounded. An attacker could
exploit this unbounded buffer by sending an unbounded amount of input
without any \n characters, causing unbounded memory consumption.
sourcepub fn max_length(&self) -> usize
 
pub fn max_length(&self) -> usize
Returns the maximum line length when decoding.
use std::usize;
use tokio_util::codec::LinesCodec;
let codec = LinesCodec::new();
assert_eq!(codec.max_length(), usize::MAX);use tokio_util::codec::LinesCodec;
let codec = LinesCodec::new_with_max_length(256);
assert_eq!(codec.max_length(), 256);Trait Implementations§
source§impl Clone for LinesCodec
 
impl Clone for LinesCodec
source§fn clone(&self) -> LinesCodec
 
fn clone(&self) -> LinesCodec
1.0.0 · source§fn clone_from(&mut self, source: &Self)
 
fn clone_from(&mut self, source: &Self)
source. Read moresource§impl Debug for LinesCodec
 
impl Debug for LinesCodec
source§impl Decoder for LinesCodec
 
impl Decoder for LinesCodec
§type Error = LinesCodecError
 
type Error = LinesCodecError
source§fn decode(
    &mut self,
    buf: &mut BytesMut
) -> Result<Option<String>, LinesCodecError>
 
fn decode( &mut self, buf: &mut BytesMut ) -> Result<Option<String>, LinesCodecError>
source§fn decode_eof(
    &mut self,
    buf: &mut BytesMut
) -> Result<Option<String>, LinesCodecError>
 
fn decode_eof( &mut self, buf: &mut BytesMut ) -> Result<Option<String>, LinesCodecError>
source§impl Default for LinesCodec
 
impl Default for LinesCodec
source§impl<T> Encoder<T> for LinesCodec
 
impl<T> Encoder<T> for LinesCodec
source§impl Hash for LinesCodec
 
impl Hash for LinesCodec
source§impl Ord for LinesCodec
 
impl Ord for LinesCodec
source§fn cmp(&self, other: &LinesCodec) -> Ordering
 
fn cmp(&self, other: &LinesCodec) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
    Self: Sized,
 
fn max(self, other: Self) -> Selfwhere
    Self: Sized,
source§impl PartialEq for LinesCodec
 
impl PartialEq for LinesCodec
source§fn eq(&self, other: &LinesCodec) -> bool
 
fn eq(&self, other: &LinesCodec) -> bool
self and other values to be equal, and is used
by ==.source§impl PartialOrd for LinesCodec
 
impl PartialOrd for LinesCodec
source§fn partial_cmp(&self, other: &LinesCodec) -> Option<Ordering>
 
fn partial_cmp(&self, other: &LinesCodec) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
 
fn le(&self, other: &Rhs) -> bool
self and other) and is used by the <=
operator. Read more