Making adjustments based on clippy.

This commit is contained in:
Jacob VanDomelen 2019-06-01 13:20:08 -07:00
parent 87fc26962b
commit 1460f5e6b8
4 changed files with 37 additions and 47 deletions

View file

@ -25,23 +25,15 @@ impl tree::Tree<Uuid> {
/// Constructs a tree with a given height while simultaneously running a simulation on each node. /// Constructs a tree with a given height while simultaneously running a simulation on each node.
fn build_tree(h: u32) -> Option<Box<tree::Tree<Uuid>>> { fn build_tree(h: u32) -> Option<Box<tree::Tree<Uuid>>> {
let mut result: Option<Box<tree::Tree<Uuid>>> = None;
// Recursively building a tree and running the simulation after wards to ensure a bottom-up // Recursively building a tree and running the simulation after wards to ensure a bottom-up
// execution order. // execution order.
if h != 0 { if h != 0 {
result = Some(Box::new(tree::Tree::new( let tree = tree::Tree::new(Uuid::new_v4(), build_tree(h - 1), build_tree(h - 1));
Uuid::new_v4(), tree.run_simulation();
build_tree(h - 1), Some(Box::new(tree))
build_tree(h - 1), } else {
))); None
match &result {
Some(r) => (*r).run_simulation(),
_ => (),
} }
}
result
} }
/// Generates a bracket tree and runs simulation against each node. /// Generates a bracket tree and runs simulation against each node.

View file

@ -19,20 +19,17 @@ where
match &meta { match &meta {
Ok(m) if m.is_file() => { Ok(m) if m.is_file() => {
let mut file = fs::OpenOptions::new().read(true).open(path).or( let mut file = fs::OpenOptions::new().read(true).open(path).or_else(|_| {
Err(format!( Err(format!("Unable to open file {}", path))
"Unable to open file {}", })?;
path
)),
)?;
let mut s = String::new(); let mut s = String::new();
file.read_to_string(&mut s).or(Err(String::from( file.read_to_string(&mut s).or_else(|_| {
"Unable to read from file.", Err(String::from("Unable to read from file."))
)))?; })?;
let val = T::from_str(&s).or(Err(String::from( let val = T::from_str(&s).or_else(|_| {
"Unable to parse value from file.", Err(String::from("Unable to parse value from file."))
)))?; })?;
Ok(FileLinked { Ok(FileLinked {
val, val,
@ -70,11 +67,11 @@ where
.create(true) .create(true)
.truncate(true) .truncate(true)
.open(&self.path) .open(&self.path)
.or(Err(format!("Unable to open path {}", self.path)))?; .or_else(|_| Err(format!("Unable to open path {}", self.path)))?;
write!(file, "{}", self.val).or(Err(String::from( write!(file, "{}", self.val).or_else(|_| {
"Unable to write to file.", Err(String::from("Unable to write to file."))
)))?; })?;
Ok(()) Ok(())
} }

View file

@ -28,7 +28,7 @@ fn main() {
let directory = matches.value_of(constants::args::DIRECTORY).unwrap(); let directory = matches.value_of(constants::args::DIRECTORY).unwrap();
let metadata = metadata(directory); let metadata = metadata(directory);
match &metadata { match &metadata {
Ok(m) if m.is_dir() == true => { Ok(m) if m.is_dir() => {
println!("{} is a valid directory!", directory); println!("{} is a valid directory!", directory);
println!("Building tree for {}.", directory); println!("Building tree for {}.", directory);
bracket::run_bracket(); bracket::run_bracket();

View file

@ -12,8 +12,11 @@ pub struct Tree<T> {
#[macro_export] #[macro_export]
macro_rules! btree { macro_rules! btree {
($val:expr, $l:expr, $r:expr) => { ($val:expr, $l:expr, $r:expr) => {
$crate::tree::Tree::new($val, Some(Box::new($l)), Some(Box::new($r))) $crate::tree::Tree::new(
}; $val,
Some(Box::new($l)),
Some(Box::new($r))
) };
($val:expr, , $r:expr) => { $crate::tree::Tree::new($val, None, Some(Box::new($r))) }; ($val:expr, , $r:expr) => { $crate::tree::Tree::new($val, None, Some(Box::new($r))) };
($val:expr, $l:expr,) => { $crate::tree::Tree::new($val, Some(Box::new($l)), None) }; ($val:expr, $l:expr,) => { $crate::tree::Tree::new($val, Some(Box::new($l)), None) };
($val:expr) => { Tree::new($val, None, None) }; ($val:expr) => { Tree::new($val, None, None) };
@ -90,16 +93,12 @@ fn from_str_helper<T: FromStr>(s: &str) -> Result<Option<Box<Tree<T>>>, ParseTre
let caps = re.captures(s); let caps = re.captures(s);
if let Some(c) = caps { if let Some(c) = caps {
let val = T::from_str(c.get(1).unwrap().as_str()).or(Err( let val = T::from_str(c.get(1).unwrap().as_str()).or_else(|_| {
ParseTreeError::new( Err(ParseTreeError::new(format!(
format!(
"Unable to parse node value: {}", "Unable to parse node value: {}",
c.get(1) c.get(1).unwrap().as_str()
.unwrap() )))
.as_str() })?;
),
),
))?;
let (left, right) = seperate_nodes(c.get(2).unwrap().as_str())?; let (left, right) = seperate_nodes(c.get(2).unwrap().as_str())?;
let left = from_str_helper(left)?; let left = from_str_helper(left)?;
let right = from_str_helper(right)?; let right = from_str_helper(right)?;
@ -122,7 +121,9 @@ where
let result = from_str_helper(s)?; let result = from_str_helper(s)?;
result result
.ok_or(ParseTreeError::new(format!("Unable to parse string {}", s))) .ok_or_else(|| {
ParseTreeError::new(format!("Unable to parse string {}", s))
})
.and_then(|t| Ok(*t)) .and_then(|t| Ok(*t))
} }
} }