Expand description
§cobs
This is an implementation of the Consistent Overhead Byte Stuffing (COBS) algorithm in Rust.
COBS is an algorithm for transforming a message into an encoding where a specific value (the “sentinel” value) is not used. This value can then be used to mark frame boundaries in a serial communication channel.
See the wikipedia article for details.
§Features
cobs supports various runtime environments and is also suitable for no_std environments.
§Default features
std: Enables functionality relying on the standard library and also activates theallocfeature. Currently only adds std::error::Error support for the library error types.alloc: Enables features which operate on containers like alloc::vec::Vec. Enabled by thestdfeature.
§Optional features
Structs§
- Cobs
Decoder - The
CobsDecodertype is used to decode a stream of bytes to a given mutable output slice. This is often useful when heap data structures are not available, or when not all message bytes are received at a single point in time. - Cobs
Decoder Heapless - The
CobsDecoderHeaplesstype is used to decode a stream of bytes to a given mutable output slice. It owns the heapless decoding buffer. - Cobs
Decoder Owned alloc - The
CobsDecoderOwnedtype is used to decode a stream of bytes to a given mutable output slice. It owns the decoding buffer. - Cobs
Encoder - The
CobsEncodertype is used to encode a stream of bytes to a given mutable output slice. - Decode
Report - A report of the source and destination bytes used during in-place decoding
- Dest
BufToo Small Error - Encoder
State - The
EncoderStateis used to track the current state of a streaming encoder. This struct does not contain the output buffer (or a reference to one), and can be used when streaming the encoded output to a custom data type
Enums§
- Decode
Error - Decode
Result DecodeResultrepresents the possible non-error outcomes of pushing an encoded data byte into theDecoderStatestate machine- Decoder
State - The
DecoderStateis used to track the current state of a streaming decoder. This struct does not contain the output buffer (or a reference to one), and can be used when streaming the decoded output to a custom data type. - Push
Result PushResultis used to represent the changes to an (encoded) output data buffer when an unencoded byte is pushed intoEncoderState.
Functions§
- decode
- Decodes the
sourcebuffer into thedestbuffer. - decode_
in_ place - Decodes a message in-place.
- decode_
in_ place_ report - Decodes a message in-place.
- decode_
in_ place_ with_ sentinel - Decodes a message in-place using an arbitrary sentinel value.
- decode_
vec alloc - Decodes the
sourcebuffer into a vector. - decode_
vec_ with_ sentinel alloc - Decodes the
sourcebuffer into a vector with an arbitrary sentinel value. - decode_
with_ sentinel - Decodes the
sourcebuffer into thedestbuffer using an arbitrary sentinel value. - encode
- Encodes the
sourcebuffer into thedestbuffer. - encode_
including_ sentinels - Encodes the
sourcebuffer into thedestbuffer, including the default sentinel values 0 around the encoded frame. - encode_
vec alloc - Encodes the
sourcebuffer into a vector, using the encode function. - encode_
vec_ including_ sentinels alloc - Encodes the
sourcebuffer into a vector, using the encode function, while also adding the sentinels around the encoded frame. - encode_
vec_ with_ sentinel alloc - Encodes the
sourcebuffer into a vector with an arbitrary sentinel value, using the encode_with_sentinel function. - encode_
with_ sentinel - Encodes the
sourcebuffer into thedestbuffer using an arbitrary sentinel value. - max_
encoding_ length - Calculates the maximum possible size of an encoded message given the length
of the source message. This may be useful for calculating how large the
destbuffer needs to be in the encoding functions. - max_
encoding_ overhead - Calculates the maximum overhead when encoding a message with the given length. The overhead is a maximum of [n/254] bytes (one in 254 bytes) rounded up.
- try_
encode - Attempts to encode the
sourcebuffer into thedestbuffer. - try_
encode_ including_ sentinels - Encodes the
sourcebuffer into thedestbuffer, including the default sentinel values 0 around the encoded frame.
Type Aliases§
- Decoding
Result Deprecated