mclib 0.0.1

Utils and helpers for Minecraft protocol
Documentation
use crate::types::base::MCType;
use crate::types::varint::MCVarInt;
use std::io::Read;

impl<P: MCType> MCType for Vec<P> {
    fn pack(&self) -> Vec<u8> {
        let mut result = Vec::new();
        result.extend(MCVarInt::from(self.len() as i32).pack());
        for item in self.iter() {
            result.extend(item.pack());
        }
        result
    }

    fn unpack(src: &mut dyn Read) -> Self {
        let mut result = Vec::new();
        let length = MCVarInt::unpack(src);
        for _ in 0..length.into() {
            result.push(P::unpack(src));
        }
        result
    }
}