use Result; use block::Block; use binread::{BinRead, BinReadable}; #[derive(Debug)] pub struct Pool { pub data: Vec } impl Pool { pub fn new(mut block: Block) -> Result { let cap = block.len() / 4; let mut vec = Vec::with_capacity(cap); while block.has_i32() { vec.push(block.read_i32()?); } Ok(Pool { data: vec }) } pub fn get(&self, index: usize) -> Result { if index >= self.data.len() { return Err("No such constant") } Ok(self.data[index]) } }