Files
RustIJVM/src/pool.rs

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])
}
}