diffusion 0.9.0

This is the rust implementation of diffusion library. Diffusion is an effcient message-based data distribution library.
Documentation
use std::io::{Seek, SeekFrom};

use diffusion::{FileReader, FileWriter, Reader, Writer};
use tempfile::NamedTempFile;

#[test]
fn multiple_message() {
    let mut tempfile = NamedTempFile::new().expect("cannot create temp file");
    {
        let mut writer = FileWriter::new(tempfile.as_file_mut()).expect("cannot create file writer");
        writer.write_multiple(&["Hello, ".as_bytes(), "world.".as_bytes()]).expect("cannot write message 1");
        writer.write("This is diffusion.".as_bytes()).expect("cannot write message 2");
        writer.write_multiple(&["Have a good day, ".as_bytes(), "friend.".as_bytes()]).expect("cannot write message 3");
    }
    tempfile.as_file().seek(SeekFrom::Start(0)).expect("cannot seek to 0");
    {
        let mut reader = FileReader::new(tempfile.as_file()).expect("cannot create file reader");
        let message_1 = reader.read();
        assert_eq!(Ok(Some("Hello, world.".to_owned().into_bytes())), message_1);
        let message_2 = reader.next();
        assert_eq!(Some(Ok("This is diffusion.".to_owned().into_bytes())), message_2);
        let message_3 = reader.read();
        assert_eq!(Ok(Some("Have a good day, friend.".to_owned().into_bytes())), message_3);
    }
}