Crate push_decode

Source
Expand description

§Push-based decoding

This crate provides abstractions for push-based decoding and pull-based encoding. That means, the caller is responsible for obtaining the bytes to decode and feeding them into decoder or pulling bytes from encoder and feeding them into writr.

The main advantage of this approach is that it’s IO-agnostic, which implies both async-agnostic and no_std. You can use the same code to deserialize from sync and async readers and only need a tiny piece of code to connect the reader to a decoder. This piece of code is provided by this crate for std, lgio (usable with no_std), tokio, futures and async-std.

§Features

  • std - enables integration with the standard library - it’s IO and error traits
  • alloc - enables integration with the standard alloc crate
  • lgio - connects decoders to lgio IO.
  • tokio - connects decoders to Tokio IO.
  • async-std - connects decoders to async-std IO.
  • futures_0_3 - connects decoders to futures 0.3.x IO

Modules§

decoders
encoders
error
futuretokio or async-std or futures_0_3
int
Tools for decoding and encoding integers.

Macros§

mapped_decoder

Structs§

AssumeBuffered
Wrapper for external types that are known to be buffered.
EncoderPositionTracker
An Encoder wrapper that handles partial writes.

Enums§

ReadError
Returned when either reading or decoding fails.

Traits§

BufWritestd or tokio or async-std or futures_0_3
Marker trait for writers that are either buffered or don’t incur the cost of context switch.
Decoder
Represents types responsible for decoding bytes pushed into it.
Encoder
Represents types producing bytes of some encoded value.

Functions§

decode_async_stdasync-std
Asynchronously decodes a value from the given reader.
decode_async_std_withasync-std
Asynchronously decodes a value from the given reader using a custom decoder.
decode_futures_0_3futures_0_3
Asynchronously decodes a value from the given reader.
decode_futures_0_3_withfutures_0_3
Asynchronously decodes a value from the given reader using a custom decoder.
decode_syncstd
Synchronously decodes a value from the given reader.
decode_sync_lgiolgio
Synchronously decodes a value from the given reader.
decode_sync_lgio_withlgio
Synchronously decodes a value from the given reader using a custom decoder.
decode_sync_withstd
Synchronously decodes a value from the given reader using a custom decoder.
decode_tokiotokio
Asynchronously decodes a value from the given reader.
decode_tokio_withtokio
Asynchronously decodes a value from the given reader using a custom decoder.