Updated the library to use the new rust style and CM code.

This commit is contained in:
Myrddin Dundragon 2020-07-02 23:38:59 -04:00
parent d155ae2a68
commit eb6040c9e5
4 changed files with 22 additions and 20 deletions

View File

@ -7,11 +7,15 @@ license = ""
repository = "https://gitlab.com/CyberMages/mason.git" repository = "https://gitlab.com/CyberMages/mason.git"
documentation = "" documentation = ""
keywords = ["mason", "build"] keywords = ["mason", "build"]
edition = "2018"
[dependencies.scribe] [dependencies.scribe]
git = "ssh://git@gitlab.com/CyberMages/Core/scribe.git" git = "ssh://git@gitlab.com/CyberMages/Core/scribe.git"
[dependencies.weave]
git = "ssh://git@gitlab.com/CyberMages/Core/weave.git"
[dependencies.alchemy] [dependencies.alchemy]
git = "ssh://git@gitlab.com/CyberMages/Core/alchemy.git" git = "ssh://git@gitlab.com/CyberMages/Core/alchemy.git"

View File

@ -1,11 +1,3 @@
#[macro_use]
extern crate scribe;
extern crate alchemy;
extern crate spellbook;
mod loader; mod loader;
mod processor; mod processor;

View File

@ -1,6 +1,10 @@
use std::fs::File; use std::fs::File;
use std::io::{Error, ErrorKind, BufReader, BufWriter, Read, Write}; use std::io::{Error, ErrorKind, BufReader, BufWriter, Read, Write};
use scribe::{debug, error};
use weave::attempt;
use alchemy::*; use alchemy::*;
use spellbook::components::Array; use spellbook::components::Array;
@ -90,16 +94,16 @@ impl Transmutable for Entry
buffer_size = buffer.len() - 1; buffer_size = buffer.len() - 1;
skip_size = 0; 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)); endianess));
skip_size = skip_size + get_byte_size_of_string(&name); skip_size = skip_size + get_byte_size_of_string(&name);
type_hint = type_hint =
try!(String::from_endian_bytes(&buffer[skip_size..buffer_size], attempt!(String::from_endian_bytes(&buffer[skip_size..buffer_size],
endianess)); endianess));
skip_size = skip_size + get_byte_size_of_string(&type_hint); 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)); endianess));
Ok(Entry::new(name, type_hint, path)) Ok(Entry::new(name, type_hint, path))
@ -118,7 +122,7 @@ impl Transmutable for Entry
buffer.append(&mut self.path.as_endian_bytes(endianess)); buffer.append(&mut self.path.as_endian_bytes(endianess));
// Return the data buffer. // Return the data buffer.
buffer.shrink_to_fit(); //buffer.shrink_to_fit();
buffer buffer
} }
@ -176,7 +180,7 @@ impl Loader
let entry: Entry; let entry: Entry;
entry = Entry::new(name, type_hint, path); 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 to write all the data to the file.
try!(writer.write_all(data.as_slice())); attempt!(writer.write_all(data.as_slice()));
Ok(()) Ok(())
} }
@ -218,7 +222,7 @@ impl Loader
fn read_from_file(&mut self, file: File) -> ::std::io::Result<()> fn read_from_file(&mut self, file: File) -> ::std::io::Result<()>
{ {
let mut pos: usize; let mut pos: usize;
let mut data: Array<u8>; let mut data: Vec<u8>;
let mut reader: BufReader<File>; let mut reader: BufReader<File>;
let data_size: usize; let data_size: usize;
let data_slice: &[u8]; let data_slice: &[u8];
@ -229,14 +233,14 @@ impl Loader
reader = BufReader::new(file); reader = BufReader::new(file);
// Try to read in all of the file. // Try to read in all of the file.
data = Array::new(); data = Vec::new();
try!(reader.read_to_end(&mut data)); attempt!(reader.read_to_end(&mut data));
data_slice = data.as_slice(); data_slice = data.as_slice();
data_size = data_slice.len() - 1; data_size = data_slice.len() - 1;
// Check the header information. // Check the header information.
pos = 0; 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; pos = pos + HEADER_BYTE_SIZE;
// Read in each entry. // Read in each entry.
@ -249,7 +253,7 @@ impl Loader
Ok(entry) => Ok(entry) =>
{ {
pos = pos + entry.determine_byte_size(); pos = pos + entry.determine_byte_size();
self.entries.push(entry); self.entries.insert_element(entry);
} }
Err(error) => Err(error) =>

View File

@ -4,7 +4,9 @@ use std::io::{BufRead, BufReader};
use std::path::{Path, PathBuf}; use std::path::{Path, PathBuf};
use std::process::Command; use std::process::Command;
use ::loader::Loader; use scribe::{debug, info, warn, error};
use crate::Loader;