bve 0.0.1

Remaking OpenBVE using a modern architecture, using Unity and Rust.
Documentation
use crate::log::Message;
use std::io::Write;

#[derive(Clone, Debug)]
pub enum SerializationMethod {
    Bincode,
    Json,
    JsonPretty,
}

impl SerializationMethod {
    pub fn serialize(&self, writer: &mut impl Write, message: &Message) {
        match self {
            Self::Bincode => bincode::serialize_into(writer, message).expect("Bincode serialization failed"),
            Self::Json => {
                serde_json::to_writer(&mut *writer, message).expect("Json serialization failed");
                writeln!(writer).expect("Count not write newline to writer");
            }
            Self::JsonPretty => {
                serde_json::to_writer_pretty(&mut *writer, message).expect("JsonPretty serialization failed");
                writeln!(writer).expect("Count not write newline to writer");
            }
        }
    }
}