utils-rs 0.0.1

Some utils for me.
Documentation
use std::io;


pub trait ReadTrait {
    fn read_vec(&mut self, size: isize) -> Result<Vec<u8>, std::io::Error>;
}

impl<R: io::Read> ReadTrait for R {
    fn read_vec(&mut self, size: isize) -> Result<Vec<u8>, std::io::Error> {
        let mut vec:Vec<u8> = Vec::new();
        if size < 0 {
            self.read_to_end(&mut vec)?;
            }
        else if size > 0 {
            vec = Vec::with_capacity(size as usize);
            unsafe {vec.set_len(size as usize);}
            let mut buf = &mut vec[..];
            let mut readed = 0;
            while !buf.is_empty() {
                match self.read(buf) {
                    Ok(0) => break,
                    Ok(n) => {
                        readed += n;
                        let tmp = buf;
                        buf = &mut tmp[n..];
                        }
                    Err(e) => return Err(e),
                    }
                }
            unsafe {vec.set_len(readed);}
            }
        return Ok(vec);
    }
}