29 lines
596 B
Rust
29 lines
596 B
Rust
use Result;
|
|
use block::Block;
|
|
use binread::{BinRead, BinReadable};
|
|
|
|
#[derive(Debug)]
|
|
pub struct Pool {
|
|
pub data: Vec<i32>
|
|
}
|
|
|
|
impl Pool {
|
|
pub fn new(mut block: Block) -> Result<Pool> {
|
|
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<i32> {
|
|
if index >= self.data.len() {
|
|
return Err("No such constant")
|
|
}
|
|
Ok(self.data[index])
|
|
}
|
|
}
|