From 01a1e5e4f45dc80cd430d18492817b733fab5603 Mon Sep 17 00:00:00 2001 From: Joris Date: Sat, 26 Feb 2022 22:23:34 +0100 Subject: Fix linter warnings --- src/gui/question.rs | 90 +++++++++++++++++++++++++---------------------------- 1 file changed, 43 insertions(+), 47 deletions(-) (limited to 'src/gui/question.rs') diff --git a/src/gui/question.rs b/src/gui/question.rs index 211bcda..5f060e3 100644 --- a/src/gui/question.rs +++ b/src/gui/question.rs @@ -28,7 +28,7 @@ enum Answer { pub fn ask( terminal: &mut Terminal, events: &Events, - title: &String, + title: &str, card: &Card, ) -> Result { let mut state = State { @@ -59,7 +59,7 @@ pub fn ask( let question = Paragraph::new(util::center_vertically(chunks[1], &card.question)) .style(match state.answer { Answer::Write => { - if state.input == "" { + if state.input.is_empty() { Style::default().fg(Color::Yellow) } else { Style::default() @@ -86,47 +86,44 @@ pub fn ask( .wrap(Wrap { trim: true }); f.render_widget(answer, chunks[2]); - match state.answer { - Answer::Difficulty { - difficulty: selected, - } => { - if !is_correct(&state.input, &card.responses) || card.responses.len() > 1 { - let paragraph = Paragraph::new(util::center_vertically( - chunks[3], - &serialization::words_to_line(&card.responses), - )) - .alignment(Alignment::Center); - f.render_widget(paragraph, chunks[3]); - }; + if let Answer::Difficulty { + difficulty: selected, + } = state.answer + { + if !is_correct(&state.input, &card.responses) || card.responses.len() > 1 { + let paragraph = Paragraph::new(util::center_vertically( + chunks[3], + &serialization::words_to_line(&card.responses), + )) + .alignment(Alignment::Center); + f.render_widget(paragraph, chunks[3]); + }; - let difficulties = card.state.difficulties(); - let l = difficulties.len(); - let sep = Span::styled(" • ", Style::default()); - let tabs = difficulties - .iter() - .enumerate() - .map(|(i, d)| { - let style = if *d == selected { - Style::default() - .fg(Color::Yellow) - .add_modifier(Modifier::UNDERLINED) - } else { - Style::default().add_modifier(Modifier::DIM) - }; - let d = Span::styled(difficulty::label(*d), style); - if i < l - 1 { - [d, sep.clone()].to_vec() - } else { - [d].to_vec() - } - }) - .collect::>>() - .concat(); - let p = - Paragraph::new(Text::from(Spans::from(tabs))).alignment(Alignment::Center); - f.render_widget(p, chunks[4]); - } - _ => {} + let difficulties = card.state.difficulties(); + let l = difficulties.len(); + let sep = Span::styled(" • ", Style::default()); + let tabs = difficulties + .iter() + .enumerate() + .map(|(i, d)| { + let style = if *d == selected { + Style::default() + .fg(Color::Yellow) + .add_modifier(Modifier::UNDERLINED) + } else { + Style::default().add_modifier(Modifier::DIM) + }; + let d = Span::styled(difficulty::label(*d), style); + if i < l - 1 { + [d, sep.clone()].to_vec() + } else { + [d].to_vec() + } + }) + .collect::>>() + .concat(); + let p = Paragraph::new(Text::from(Spans::from(tabs))).alignment(Alignment::Center); + f.render_widget(p, chunks[4]); } })?; @@ -171,15 +168,14 @@ pub fn ask( } } -fn is_correct(input: &String, responses: &Vec) -> bool { +fn is_correct(input: &str, responses: &[String]) -> bool { responses .iter() - .map(|r| r.split("(").collect::>()[0].trim()) - .collect::>() - .contains(&input.as_str()) + .map(|r| r.split('(').collect::>()[0].trim()) + .any(|x| x == input) } -fn relative_element(xs: &Vec, x: &T, ri: i32) -> Option { +fn relative_element(xs: &[T], x: &T, ri: i32) -> Option { let i = xs.iter().position(|t| t == x)? as i32 + ri; if i >= 0 && i < xs.len() as i32 { Some(xs[i as usize].clone()) -- cgit v1.2.3