Barf

Turn any input into "barf"-ed output.

The name is a play on the purpose of this crate as a deparser - the opposite of the fantastic nom crate.

Barf aims to have some integrations with common datatypes such as LEB128 encoded variable-length integers.
When these integrations require another crate, they will be locked behind feature flags.

These integrations include - LEB128 with the "leb128" feature flag using nano-leb128. - vint64 with the "vint64" feature flag.

For a full list, see Cargo.toml.

If you want to see more integrations, please open an issue, or preferably a pull request.
There is also nothing stopping you from implementing [Barfer] on your own types and creating extension traits for them.

Barf can operate in no_std environments, but the "alloc" feature flag needs to be enabled for the default implementations of [Barfer] for [Vec] and [String].

```rust use barf::Barfer;

// Vec implements Barfer. let mut buf: Vec = Vec::new();

// Push 42_u8 buf.single(42); // Push "test".bytes() iterator with many buf.many("test".bytes()); // Push 1, 2, and 3 buf.slice([1, 2, 3]);

asserteq!( &buf[..], [ 42, // 42u8 116, 101, 115, 116, // Bytes in "test" 1, 2, 3, // 1, 2, and 3 ] ); ```