From d23bbf96c8f3eddfe39e279b4a31dabc4e03c120 Mon Sep 17 00:00:00 2001 From: Jovansonlee Cesar Date: Fri, 23 Sep 2022 17:30:45 +0800 Subject: refactor: run clippy fix --- packages/svgbob/src/buffer/cell_buffer/contacts.rs | 2 +- packages/svgbob/src/buffer/cell_buffer/endorse.rs | 16 +++---- .../svgbob/src/buffer/fragment_buffer/fragment.rs | 22 +++------ .../src/buffer/fragment_buffer/fragment/rect.rs | 4 +- .../src/buffer/fragment_buffer/fragment/text.rs | 2 +- .../src/buffer/fragment_buffer/fragment_span.rs | 2 +- .../src/buffer/fragment_buffer/fragment_tree.rs | 4 +- packages/svgbob/src/buffer/property_buffer.rs | 2 +- .../svgbob/src/buffer/property_buffer/property.rs | 2 +- packages/svgbob/src/map/circle_map.rs | 8 ++-- packages/svgbob_cli/src/main.rs | 52 +++++++++++----------- packages/svgbob_server/src/main.rs | 3 +- 12 files changed, 53 insertions(+), 66 deletions(-) diff --git a/packages/svgbob/src/buffer/cell_buffer/contacts.rs b/packages/svgbob/src/buffer/cell_buffer/contacts.rs index 7805b78..559e8ac 100644 --- a/packages/svgbob/src/buffer/cell_buffer/contacts.rs +++ b/packages/svgbob/src/buffer/cell_buffer/contacts.rs @@ -6,7 +6,7 @@ use std::fmt; /// Contains a group of fragments that are touching each other /// The purpose of Contacts is to group fragments together -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Eq)] pub struct Contacts(pub Vec); impl AsRef> for Contacts { diff --git a/packages/svgbob/src/buffer/cell_buffer/endorse.rs b/packages/svgbob/src/buffer/cell_buffer/endorse.rs index 8e93a64..ad8a5d9 100644 --- a/packages/svgbob/src/buffer/cell_buffer/endorse.rs +++ b/packages/svgbob/src/buffer/cell_buffer/endorse.rs @@ -182,19 +182,19 @@ mod tests { let line_au = line(a, u); let line_ey = line(e, y); let group = parallel_aabb_group(&[ - &line_ae.clone(), - &line_au.clone(), - &line_uy.clone(), - &line_ey.clone(), + &line_ae, + &line_au, + &line_uy, + &line_ey, ]); println!("group: {:#?}", group); assert_eq!(group, vec![(0, 2), (1, 3)]); let rect = endorse_rect(&[ - &line_ae.clone(), - &line_au.clone(), - &line_uy.clone(), - &line_ey.clone(), + &line_ae, + &line_au, + &line_uy, + &line_ey, ]); assert!(rect.is_some()); assert_eq!(rect, Some(Rect::new(a, y, false, false))); diff --git a/packages/svgbob/src/buffer/fragment_buffer/fragment.rs b/packages/svgbob/src/buffer/fragment_buffer/fragment.rs index 1bf235d..2899572 100644 --- a/packages/svgbob/src/buffer/fragment_buffer/fragment.rs +++ b/packages/svgbob/src/buffer/fragment_buffer/fragment.rs @@ -76,7 +76,7 @@ impl Fragment { let mut sorted_shapes = fragments.clone(); sorted_shapes.sort(); //assert!(sorted_shapes.is_sorted()); - FRAGMENTS_UNICODE.get(&sorted_shapes).map(|c| *c) + FRAGMENTS_UNICODE.get(&sorted_shapes).copied() } /// check to see if this fragment is a line and that line @@ -360,7 +360,7 @@ impl Fragment { }; if let Some(input_text) = input_text { - if let Ok(tags) = crate::util::parser::parse_css_tag(&input_text) { + if let Ok(tags) = crate::util::parser::parse_css_tag(input_text) { tags } else { vec![] @@ -421,11 +421,7 @@ impl Merge for Fragment { match (self, other) { // line and line (Fragment::Line(line), Fragment::Line(other_line)) => { - if let Some(merged_line) = line.merge(other_line) { - Some(Fragment::Line(merged_line)) - } else { - None - } + line.merge(other_line).map(Fragment::Line) } // line and polygon @@ -460,11 +456,7 @@ impl Merge for Fragment { } // cell_text and cell_text (Fragment::CellText(ctext), Fragment::CellText(other_ctext)) => { - if let Some(merged_ctext) = ctext.merge(other_ctext) { - Some(Fragment::CellText(merged_ctext)) - } else { - None - } + ctext.merge(other_ctext).map(Fragment::CellText) } _ => None, } @@ -596,7 +588,7 @@ pub fn text(s: String) -> Fragment { } pub fn lines_to_fragments(lines: Vec) -> Vec { - lines.into_iter().map(|line| Fragment::Line(line)).collect() + lines.into_iter().map(Fragment::Line).collect() } impl From for Fragment { @@ -734,8 +726,8 @@ mod tests { let j = CellGrid::j(); assert!(line(k, m).merge(&line(m, o),).is_some()); // collinear and connected - assert!(!line(k, l).merge(&line(n, o),).is_some()); //collinear but not connected - assert!(!line(k, o).merge(&line(o, j),).is_some()); // connected but not collinear + assert!(line(k, l).merge(&line(n, o),).is_none()); //collinear but not connected + assert!(line(k, o).merge(&line(o, j),).is_none()); // connected but not collinear } #[test] diff --git a/packages/svgbob/src/buffer/fragment_buffer/fragment/rect.rs b/packages/svgbob/src/buffer/fragment_buffer/fragment/rect.rs index 2942991..7ae8f21 100644 --- a/packages/svgbob/src/buffer/fragment_buffer/fragment/rect.rs +++ b/packages/svgbob/src/buffer/fragment_buffer/fragment/rect.rs @@ -61,9 +61,7 @@ impl Rect { /// start < end pub(in crate) fn sort_reorder_end_points(&mut self) { if self.start > self.end { - let tmp_start = self.start; - self.start = self.end; - self.end = tmp_start; + std::mem::swap(&mut self.start, &mut self.end); } } diff --git a/packages/svgbob/src/buffer/fragment_buffer/fragment/text.rs b/packages/svgbob/src/buffer/fragment_buffer/fragment/text.rs index 1504b55..924d1bf 100644 --- a/packages/svgbob/src/buffer/fragment_buffer/fragment/text.rs +++ b/packages/svgbob/src/buffer/fragment_buffer/fragment/text.rs @@ -170,7 +170,7 @@ fn replace_html_char<'a>(ch: char) -> Cow<'a, str> { } fn escape_html_text(s: &str) -> String { - s.chars().map(|ch| replace_html_char(ch)).collect() + s.chars().map(replace_html_char).collect() } impl fmt::Display for Text { diff --git a/packages/svgbob/src/buffer/fragment_buffer/fragment_span.rs b/packages/svgbob/src/buffer/fragment_buffer/fragment_span.rs index cbac181..4efeae9 100644 --- a/packages/svgbob/src/buffer/fragment_buffer/fragment_span.rs +++ b/packages/svgbob/src/buffer/fragment_buffer/fragment_span.rs @@ -5,7 +5,7 @@ use crate::Merge; use crate::Settings; use std::fmt; -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Eq)] pub struct FragmentSpan { pub span: Span, pub fragment: Fragment, diff --git a/packages/svgbob/src/buffer/fragment_buffer/fragment_tree.rs b/packages/svgbob/src/buffer/fragment_buffer/fragment_tree.rs index 8e88fb5..e713325 100644 --- a/packages/svgbob/src/buffer/fragment_buffer/fragment_tree.rs +++ b/packages/svgbob/src/buffer/fragment_buffer/fragment_tree.rs @@ -33,7 +33,7 @@ impl FragmentTree { fn enclose(&mut self, other: &Self) -> bool { if self.can_fit(other) { self.enclosing.push(other.clone()); - return true; + true } else { for child in &mut self.enclosing { if child.enclose(other) { @@ -69,7 +69,7 @@ impl FragmentTree { pub(crate) fn enclose_fragments(fragments: Vec) -> Vec { let fragment_trees: Vec = fragments .into_iter() - .map(|frag| FragmentTree::new(frag)) + .map(FragmentTree::new) .collect(); Self::enclose_recursive(fragment_trees) } diff --git a/packages/svgbob/src/buffer/property_buffer.rs b/packages/svgbob/src/buffer/property_buffer.rs index 89cc2df..155ceeb 100644 --- a/packages/svgbob/src/buffer/property_buffer.rs +++ b/packages/svgbob/src/buffer/property_buffer.rs @@ -56,7 +56,7 @@ impl<'p> PropertyBuffer<'p> { self.as_ref().get(&cell.bottom_right()).unwrap_or(empty); Self::match_char_with_surrounding_properties( - &fragments, + fragments, top_left, top, top_right, diff --git a/packages/svgbob/src/buffer/property_buffer/property.rs b/packages/svgbob/src/buffer/property_buffer/property.rs index 7d51dae..45d957a 100644 --- a/packages/svgbob/src/buffer/property_buffer/property.rs +++ b/packages/svgbob/src/buffer/property_buffer/property.rs @@ -22,7 +22,7 @@ use std::{cmp, fmt, sync::Arc}; /// At least sum = 6 /// Medium + Medium connects (3 + 3) /// Strong + Weak connects ( 4 + 2 ) -#[derive(PartialEq, Clone)] +#[derive(PartialEq, Eq, Clone)] pub enum Signal { Faint, Weak, diff --git a/packages/svgbob/src/map/circle_map.rs b/packages/svgbob/src/map/circle_map.rs index b878a51..3266e9b 100644 --- a/packages/svgbob/src/map/circle_map.rs +++ b/packages/svgbob/src/map/circle_map.rs @@ -11,7 +11,7 @@ use std::{collections::BTreeMap, collections::HashMap, iter::FromIterator}; /// skip the first 3 circles for constructing our arcs, otherwise it will just be a mess pub const CIRCLES_TO_SKIP_FOR_ARC: usize = 3; -#[derive(PartialEq, Debug, Clone, Copy)] +#[derive(PartialEq, Eq, Debug, Clone, Copy)] /// edge cases of the circle art pub enum Horizontal { /// circle arc is touching the left edge of the first cell @@ -754,7 +754,7 @@ pub fn endorse_circle_span(search: &Span) -> Option<(&Circle, Span)> { .enumerate() .filter_map(|(i, cell_char)| { if unmatched.contains(&i) { - Some(cell_char.clone()) + Some(*cell_char) } else { None } @@ -778,7 +778,7 @@ pub fn endorse_quarter_arc_span(search: &Span) -> Option<(&Arc, Span)> { .enumerate() .filter_map(|(i, cell_char)| { if unmatched.contains(&i) { - Some(cell_char.clone()) + Some(*cell_char) } else { None } @@ -805,7 +805,7 @@ pub fn endorse_half_arc_span(search: &Span) -> Option<(&Arc, Span)> { .enumerate() .filter_map(|(i, cell_char)| { if unmatched.contains(&i) { - Some(cell_char.clone()) + Some(*cell_char) } else { None } diff --git a/packages/svgbob_cli/src/main.rs b/packages/svgbob_cli/src/main.rs index 0773354..3659354 100644 --- a/packages/svgbob_cli/src/main.rs +++ b/packages/svgbob_cli/src/main.rs @@ -81,30 +81,28 @@ fn main() { .value_of("input") .unwrap() .replace("\\n", "\n") - .to_string(); - } else { - if let Some(file) = args.value_of("input") { - match File::open(file) { - Ok(mut f) => { - f.read_to_string(&mut bob).unwrap(); - } - Err(e) => { - use std::io::Write; - - writeln!( - &mut std::io::stderr(), - "Failed to open input file {}: {}", - file, - e - ) - .unwrap(); - exit(1); - } + ; + } else if let Some(file) = args.value_of("input") { + match File::open(file) { + Ok(mut f) => { + f.read_to_string(&mut bob).unwrap(); + } + Err(e) => { + use std::io::Write; + + writeln!( + &mut std::io::stderr(), + "Failed to open input file {}: {}", + file, + e + ) + .unwrap(); + exit(1); } - } else { - use std::io; - io::stdin().read_to_string(&mut bob).unwrap(); } + } else { + use std::io; + io::stdin().read_to_string(&mut bob).unwrap(); } let mut settings = Settings::default(); @@ -161,8 +159,8 @@ where { return args .value_of(arg_name) - .and_then(|arg| match arg.parse::() { - Ok(a) => Some(a), + .map(|arg| match arg.parse::() { + Ok(a) => a, Err(e) => { use std::io::Write; @@ -186,7 +184,7 @@ fn build(args: &ArgMatches) -> Result<(), Box> { let input_path = Path::new(files_pattern); let ext = input_path .extension() - .unwrap_or(&"bob".as_ref()) + .unwrap_or("bob".as_ref()) .to_str() .unwrap(); @@ -204,7 +202,7 @@ fn build(args: &ArgMatches) -> Result<(), Box> { } let mut out_path = PathBuf::new(); - if outdir == "" { + if outdir.is_empty() { out_path = input_dir.to_path_buf(); } else { out_path.push(outdir) @@ -220,7 +218,7 @@ fn build(args: &ArgMatches) -> Result<(), Box> { if tmp_path.is_file() { let tmp_ext = tmp_path .extension() - .unwrap_or(&"".as_ref()) + .unwrap_or("".as_ref()) .to_str() .unwrap(); if tmp_ext == ext { diff --git a/packages/svgbob_server/src/main.rs b/packages/svgbob_server/src/main.rs index 4eca564..88bab48 100644 --- a/packages/svgbob_server/src/main.rs +++ b/packages/svgbob_server/src/main.rs @@ -24,8 +24,7 @@ async fn text_to_svgbob(body: Bytes) -> Result { async fn main() { let port = std::env::var("PORT") .ok() - .map(|port| port.parse::().ok()) - .flatten() + .and_then(|port| port.parse::().ok()) .unwrap_or(DEFAULT_PORT); let app = Router::new().route("/", get(hello).post(text_to_svgbob)); -- cgit v1.2.3