gox 0.2.0

Library for loading Goxel .gox files.
Documentation
use std::{
    io::{
        Read,
        Result,
    }
};

#[derive(Debug)]
pub struct Memory {
    pub buffer: Vec<u8>,
}

impl Read for Memory {
    fn read(&mut self, buf: &mut [u8]) -> Result<usize> {
        let len = buf.len();

        if len == 0 {
            Ok(0)
        } else if len > self.buffer.len() {
            // TODO: is this the way that is supposed to read the data?
            let mut buffer = vec![0; len];

            for (i, v) in self.buffer.iter().enumerate() {
                buffer[i] = *v;
            }

            buf.copy_from_slice(&buffer[0..len]);
            Ok(len)
        } else {
            buf.copy_from_slice(&self.buffer[0..len]);
            Ok(len)
        }
    }
}