Updated the library to use the new rust style and CM code.
This commit is contained in:
parent
d155ae2a68
commit
eb6040c9e5
@ -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"
|
||||||
|
|
||||||
|
@ -1,11 +1,3 @@
|
|||||||
#[macro_use]
|
|
||||||
extern crate scribe;
|
|
||||||
|
|
||||||
extern crate alchemy;
|
|
||||||
extern crate spellbook;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
mod loader;
|
mod loader;
|
||||||
mod processor;
|
mod processor;
|
||||||
|
|
||||||
|
@ -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) =>
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user