2018-06-04 22:36:06 -05:00
|
|
|
//! Utilities for encoding and decoding frames.
|
|
|
|
|
//!
|
|
|
|
|
//! Contains adapters to go from streams of bytes, [`AsyncRead`] and
|
|
|
|
|
//! [`AsyncWrite`], to framed streams implementing [`Sink`] and [`Stream`].
|
2019-08-02 14:35:32 -07:00
|
|
|
//! Framed streams are also known as transports.
|
2018-06-04 22:36:06 -05:00
|
|
|
//!
|
2020-02-01 23:04:58 +01:00
|
|
|
//! [`AsyncRead`]: tokio::io::AsyncRead
|
|
|
|
|
//! [`AsyncWrite`]: tokio::io::AsyncWrite
|
|
|
|
|
//! [`Stream`]: tokio::stream::Stream
|
|
|
|
|
//! [`Sink`]: futures_sink::Sink
|
2018-06-04 22:36:06 -05:00
|
|
|
|
|
|
|
|
mod bytes_codec;
|
2019-10-22 10:13:49 -07:00
|
|
|
pub use self::bytes_codec::BytesCodec;
|
|
|
|
|
|
2019-06-27 18:10:29 +01:00
|
|
|
mod decoder;
|
2019-10-22 10:13:49 -07:00
|
|
|
pub use self::decoder::Decoder;
|
|
|
|
|
|
2019-06-27 18:10:29 +01:00
|
|
|
mod encoder;
|
2019-10-22 10:13:49 -07:00
|
|
|
pub use self::encoder::Encoder;
|
|
|
|
|
|
2020-05-12 12:47:38 +01:00
|
|
|
mod framed_impl;
|
|
|
|
|
#[allow(unused_imports)]
|
|
|
|
|
pub(crate) use self::framed_impl::{FramedImpl, RWFrames, ReadFrame, WriteFrame};
|
|
|
|
|
|
2019-06-27 18:10:29 +01:00
|
|
|
mod framed;
|
2019-10-22 10:13:49 -07:00
|
|
|
pub use self::framed::{Framed, FramedParts};
|
|
|
|
|
|
2019-06-27 18:10:29 +01:00
|
|
|
mod framed_read;
|
2019-10-22 10:13:49 -07:00
|
|
|
pub use self::framed_read::FramedRead;
|
|
|
|
|
|
2019-06-27 18:10:29 +01:00
|
|
|
mod framed_write;
|
2019-10-22 10:13:49 -07:00
|
|
|
pub use self::framed_write::FramedWrite;
|
|
|
|
|
|
2019-08-08 00:40:05 +05:30
|
|
|
pub mod length_delimited;
|
2019-10-22 10:13:49 -07:00
|
|
|
pub use self::length_delimited::{LengthDelimitedCodec, LengthDelimitedCodecError};
|
2018-06-04 22:36:06 -05:00
|
|
|
|
2019-10-22 10:13:49 -07:00
|
|
|
mod lines_codec;
|
|
|
|
|
pub use self::lines_codec::{LinesCodec, LinesCodecError};
|