write-into 0.1.0

A trait to write things into `io::Write`.
Documentation

Defines a trait built on top of [io::Write] to write things into it.

Instead of writing blanket implementations it its better to use wrappers with [write_into] function because there might be implementation conflicts (e.g. between [WriteInto] for [u8] and [WriteInto] for any [std::iter::IntoIterator]).

Example

use leb128;
use std::{convert, io};
use write_into::{WriteInto, write_into};

// https://en.wikipedia.org/wiki/LEB128
struct Leb128<T>(T);

impl<T> WriteInto for Leb128<T>
where
// `leb128` crate uses `u64` and I'm too lazy to write multiple implementations (._.)
T: convert::Into<u64>
{
type Output = ();

fn write_into(self, sink: &mut impl io::Write) -> io::Result<()> {
leb128::write::unsigned(sink, self.0.into())?;
Ok(())
}
}

let mut buffer = Vec::new();
write_into(&mut buffer, Leb128(1337u32)).unwrap();