diff --git a/Cargo.toml b/Cargo.toml index 70b2446..997b809 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,11 +7,15 @@ license = "" repository = "https://gitlab.com/CyberMages/mason.git" documentation = "" keywords = ["mason", "build"] +edition = "2018" [dependencies.scribe] git = "ssh://git@gitlab.com/CyberMages/Core/scribe.git" +[dependencies.weave] +git = "ssh://git@gitlab.com/CyberMages/Core/weave.git" + [dependencies.alchemy] git = "ssh://git@gitlab.com/CyberMages/Core/alchemy.git" diff --git a/src/lib.rs b/src/lib.rs index ac2c30a..9df2953 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,11 +1,3 @@ -#[macro_use] -extern crate scribe; - -extern crate alchemy; -extern crate spellbook; - - - mod loader; mod processor; diff --git a/src/loader.rs b/src/loader.rs index 2cd86b4..d1c05aa 100644 --- a/src/loader.rs +++ b/src/loader.rs @@ -1,6 +1,10 @@ use std::fs::File; use std::io::{Error, ErrorKind, BufReader, BufWriter, Read, Write}; +use scribe::{debug, error}; + +use weave::attempt; + use alchemy::*; use spellbook::components::Array; @@ -90,16 +94,16 @@ impl Transmutable for Entry buffer_size = buffer.len() - 1; skip_size = 0; - name = try!(String::from_endian_bytes(&buffer[skip_size..buffer_size], + name = attempt!(String::from_endian_bytes(&buffer[skip_size..buffer_size], endianess)); skip_size = skip_size + get_byte_size_of_string(&name); type_hint = - try!(String::from_endian_bytes(&buffer[skip_size..buffer_size], + attempt!(String::from_endian_bytes(&buffer[skip_size..buffer_size], endianess)); skip_size = skip_size + get_byte_size_of_string(&type_hint); - path = try!(String::from_endian_bytes(&buffer[skip_size..buffer_size], + path = attempt!(String::from_endian_bytes(&buffer[skip_size..buffer_size], endianess)); Ok(Entry::new(name, type_hint, path)) @@ -118,7 +122,7 @@ impl Transmutable for Entry buffer.append(&mut self.path.as_endian_bytes(endianess)); // Return the data buffer. - buffer.shrink_to_fit(); + //buffer.shrink_to_fit(); buffer } @@ -176,7 +180,7 @@ impl Loader let entry: Entry; entry = Entry::new(name, type_hint, path); - self.entries.push(entry); + self.entries.insert_element(entry); } /// @@ -209,7 +213,7 @@ impl Loader } // Try to write all the data to the file. - try!(writer.write_all(data.as_slice())); + attempt!(writer.write_all(data.as_slice())); Ok(()) } @@ -218,7 +222,7 @@ impl Loader fn read_from_file(&mut self, file: File) -> ::std::io::Result<()> { let mut pos: usize; - let mut data: Array; + let mut data: Vec; let mut reader: BufReader; let data_size: usize; let data_slice: &[u8]; @@ -229,14 +233,14 @@ impl Loader reader = BufReader::new(file); // Try to read in all of the file. - data = Array::new(); - try!(reader.read_to_end(&mut data)); + data = Vec::new(); + attempt!(reader.read_to_end(&mut data)); data_slice = data.as_slice(); data_size = data_slice.len() - 1; // Check the header information. pos = 0; - try!(self.parse_header(&data_slice[pos..HEADER_BYTE_SIZE])); + attempt!(self.parse_header(&data_slice[pos..HEADER_BYTE_SIZE])); pos = pos + HEADER_BYTE_SIZE; // Read in each entry. @@ -249,7 +253,7 @@ impl Loader Ok(entry) => { pos = pos + entry.determine_byte_size(); - self.entries.push(entry); + self.entries.insert_element(entry); } Err(error) => diff --git a/src/processor.rs b/src/processor.rs index b0fa99d..552abe0 100644 --- a/src/processor.rs +++ b/src/processor.rs @@ -4,7 +4,9 @@ use std::io::{BufRead, BufReader}; use std::path::{Path, PathBuf}; use std::process::Command; -use ::loader::Loader; +use scribe::{debug, info, warn, error}; + +use crate::Loader;