bytebuilder 0.3.0

A simple binary serializer/deserializer
Documentation
use crate::traits::Builder;

pub struct ByteBuilder {
    pub bytes: Vec<u8>,
}

impl ByteBuilder {
    pub fn new() -> Self {
        ByteBuilder {
            bytes: Vec::new(),
        }
    }
    pub fn with_capacity(capacity: usize) -> Self {
        ByteBuilder {
            bytes: Vec::with_capacity(capacity),
        }
    }
    pub fn from_bytes(bytes: Vec<u8>) -> Self {
        ByteBuilder { bytes }
    }
}
impl Builder for ByteBuilder {
    fn push_u8(&mut self, value: u8) {
        self.bytes.push(value);
    }
    fn as_slice(&self) -> &[u8] {
        &self.bytes
    }
    fn build(self) -> Vec<u8> {
        self.bytes
    }
}
impl From<&[u8]> for ByteBuilder {
    fn from(value: &[u8]) -> Self {
        ByteBuilder {
            bytes: value.to_vec(),
        }
    }
}
impl From<Vec<u8>> for ByteBuilder {
    fn from(value: Vec<u8>) -> Self {
        ByteBuilder { bytes: value }
    }
}
impl From<ByteBuilder> for Vec<u8> {
    fn from(builder: ByteBuilder) -> Self {
        builder.bytes
    }
}