Rename from string to from slice and fuck utf8

This commit is contained in:
2018-05-23 16:25:21 +02:00
parent 1dcea9c05f
commit 4a9e2e7d20
3 changed files with 23 additions and 4 deletions

View File

@@ -21,10 +21,10 @@ impl IJVMReader {
})
}
pub fn new_from_string(source: String) -> IJVMReader {
pub fn new_from_slice(source: &[u8]) -> IJVMReader {
IJVMReader {
pointer: 0,
source: source.into_bytes(),
source: source.to_vec(),
}
}
}

View File

@@ -76,8 +76,8 @@ impl Machine {
Machine::new_from_reader(reader)
}
pub fn new_from_string(source: String) -> Result<Machine> {
let reader = IJVMReader::new_from_string(source);
pub fn new_from_slice(source: &[u8]) -> Result<Machine> {
let reader = IJVMReader::new_from_slice(source);
Machine::new_from_reader(reader)
}

19
tests/fromstring.rs Normal file
View File

@@ -0,0 +1,19 @@
extern crate rustijvm;
use rustijvm::binread::BinReadable;
use std::fs::File;
use std::io::Read;
#[test]
fn test_create_from_slice() {
let mut vec = Vec::<u8>::new();
File::open("files/task1/program1.ijvm").unwrap().read_to_end(&mut vec).unwrap();
let machine = rustijvm::Machine::new_from_slice(&vec).unwrap();
assert_eq!(machine.block.len(), 7);
assert_eq!(machine.block[0], 0x10); // BIPUSH
assert_eq!(machine.block[2], 0x10); // BIPUSH
assert_eq!(machine.block[4], 0x60); // IADD
assert_eq!(machine.block[5], 0xFD); // OUT
}