Struct tokio_file_unix::DelimCodec [] [src]

pub struct DelimCodec<D>(pub D);

A Codec that splits the stream into frames divided by a given delimiter byte. All frames except possibly the last one contain the delimiter byte as the last element (this behavior differs from tokio_io::io::lines).

Be careful when using this code, it's not being tested!
impl Codec for DelimCodec<u8>;
impl Codec for DelimCodec<Newline>;
impl Codec for DelimCodec<impl Into<u8> + Clone>;

Example: read stdin line by line

extern crate futures;
extern crate tokio_core;
extern crate tokio_io;
extern crate tokio_file_unix;

use futures::Stream;
use tokio_io::{io, AsyncRead, AsyncWrite};
use tokio_io::codec::FramedRead;
use tokio_file_unix::{File, StdFile, DelimCodec, Newline};

// initialize the event loop
let mut core = tokio_core::reactor::Core::new()?;
let handle = core.handle();

// get the standard input as a file
let stdin = std::io::stdin();
let io = File::new_nb(StdFile(stdin.lock()))?.into_io(&handle)?;

// turn it into a stream of lines, decoded as UTF-8
let line_stream = FramedRead::new(io, DelimCodec(Newline)).and_then(|line| {
    String::from_utf8(line).map_err(|_| {
        std::io::Error::from(std::io::ErrorKind::InvalidData)
    })
});

// turn it into a stream of lines and process them
let future = line_stream.for_each(|line| {
    println!("Got: {}", line);
    Ok(())
});

// start the event loop
core.run(future)?;

Trait Implementations

impl<D: Debug> Debug for DelimCodec<D>
[src]

[src]

Formats the value using the given formatter.

impl<D: Clone> Clone for DelimCodec<D>
[src]

[src]

Returns a copy of the value. Read more

1.0.0
[src]

Performs copy-assignment from source. Read more

impl<D: Copy> Copy for DelimCodec<D>
[src]

impl<D: Into<u8> + Clone> Decoder for DelimCodec<D>
[src]

The type of decoded frames.

The type of unrecoverable frame decoding errors. Read more

[src]

Attempts to decode a frame from the provided buffer of bytes. Read more

[src]

A default method available to be called when there are no more bytes available to be read from the underlying I/O. Read more

impl<D: Into<u8> + Clone> Encoder for DelimCodec<D>
[src]

The type of items consumed by the Encoder

The type of encoding errors. Read more

[src]

Encodes a frame into the buffer provided. Read more