diff --git a/src/dictionary.rs b/src/dictionary.rs index 4b065b5..fc3be4b 100644 --- a/src/dictionary.rs +++ b/src/dictionary.rs @@ -18,12 +18,12 @@ use iced::widget::text_input::default; use iced::widget::*; use iced::{Border, Color, Shadow, Task}; use iced_core::Length::Fill; +use parking_lot::Mutex; use rand::random_range; use std::fs; use std::ops::Add; use std::path::PathBuf; use std::sync::Arc; -use parking_lot::Mutex; use std::time::{Duration, Instant}; #[derive(Clone)] diff --git a/src/history.rs b/src/history.rs index 7e17885..7399019 100644 --- a/src/history.rs +++ b/src/history.rs @@ -9,8 +9,8 @@ use iced::alignment::Horizontal::Center; use iced::widget::space::horizontal; use iced::widget::*; use iced::{Element, Fill, FillPortion, Task}; -use std::sync::Arc; use parking_lot::Mutex; +use std::sync::Arc; #[derive(Clone)] pub struct HistoryState { @@ -52,14 +52,8 @@ impl HistoryState { let history = get_history_of_set(id); let words = history .iter() - .map(|item| { - state - .dictionary - .iter() - .find(|w| w.id == item.word_id) - .unwrap() - .clone() - }) + .filter_map(|item| state.dictionary.iter().find(|w| w.id == item.word_id)) + .cloned() .collect(); Self { diff --git a/src/import.rs b/src/import.rs index c2aeb04..04c75c9 100644 --- a/src/import.rs +++ b/src/import.rs @@ -16,13 +16,13 @@ use iced::{Element, Task}; use iced_core::Alignment::Center; use iced_core::Length::Fill; use iced_core::Padding; +use parking_lot::Mutex; use rfd::AsyncFileDialog; use rusqlite::Connection; use std::fs::{File, OpenOptions}; use std::io::BufReader; use std::path::PathBuf; use std::sync::Arc; -use parking_lot::Mutex; use tokio::task::spawn_blocking; use zip::ZipArchive; diff --git a/src/lang.rs b/src/lang.rs index 921b9ca..c72276c 100644 --- a/src/lang.rs +++ b/src/lang.rs @@ -1,10 +1,10 @@ -use crate::data_provider::card_stats::{delete_stat, load_stats_of_deck, update_stat_score}; -use crate::data_provider::history::{push_note, HistoryItem}; use crate::AppState; +use crate::data_provider::card_stats::{delete_stat, load_stats_of_deck, update_stat_score}; +use crate::data_provider::history::{HistoryItem, push_note}; use chrono::{DateTime, Utc}; use parking_lot::Mutex; -use rand::distr::weighted::WeightedIndex; use rand::distr::Distribution; +use rand::distr::weighted::WeightedIndex; use rand::prelude::SliceRandom; use rand::rng; use rand::rngs::ThreadRng; @@ -12,8 +12,8 @@ use rayon::iter::IndexedParallelIterator; use rayon::iter::IntoParallelRefIterator; use rayon::iter::ParallelIterator; use rhai::{Engine, Scope}; -use rusqlite::types::{FromSql, FromSqlError, FromSqlResult, ToSqlOutput, ValueRef}; use rusqlite::ToSql; +use rusqlite::types::{FromSql, FromSqlError, FromSqlResult, ToSqlOutput, ValueRef}; use std::cmp::PartialEq; use std::collections::HashMap; use std::fmt::{Display, Formatter}; diff --git a/src/navigation.rs b/src/navigation.rs index 8f8ed1d..7ef1ca7 100644 --- a/src/navigation.rs +++ b/src/navigation.rs @@ -28,10 +28,10 @@ use chrono::NaiveDate; use hashbrown::HashMap; use iced::keyboard::Event; use iced::{Element, Task}; +use parking_lot::Mutex; use reqwest::Error; use rusqlite::Connection; use std::sync::Arc; -use parking_lot::Mutex; use std::time::Instant; impl Default for ScreenState { diff --git a/src/repetition.rs b/src/repetition.rs index 20ce8b0..41d4ae5 100644 --- a/src/repetition.rs +++ b/src/repetition.rs @@ -11,10 +11,10 @@ use iced::keyboard::key::Physical::Code; use iced::widget::text::Style; use iced::widget::{Column, button, column, container, row, rule, space, text, tooltip}; use iced::{Element, Fill, Task, Theme, alignment, keyboard}; +use parking_lot::Mutex; use rodio::MixerDeviceSink; use std::collections::HashSet; use std::sync::Arc; -use parking_lot::Mutex; use tokio::task::spawn_blocking; pub struct RepetitionState { @@ -273,7 +273,7 @@ impl RepetitionState { } } fn draw_description(&self, word: &WordData) -> Element<'_, RepetitionMessage> { - match word.additional.get("context") { + match word.additional.get("description") { None => space().into(), Some(context) => text!("{}", context).size(24).into(), } diff --git a/src/repetition_settings.rs b/src/repetition_settings.rs index f7a3a96..4cbfa37 100644 --- a/src/repetition_settings.rs +++ b/src/repetition_settings.rs @@ -11,11 +11,10 @@ use iced::widget::{button, column, row, scrollable, space, text, text_input}; use iced::{Element, Task}; use iced_core::Length::Fill; use iced_core::{Padding, Theme, color}; -use std::sync::Arc; use parking_lot::Mutex; +use std::sync::Arc; use std::time::Duration; - pub struct RepetitionSettingsState { set: DeckSettings, index: usize, diff --git a/src/repetitions.rs b/src/repetitions.rs index 3d3c106..7835627 100644 --- a/src/repetitions.rs +++ b/src/repetitions.rs @@ -22,9 +22,9 @@ use iced::{Background, Border, Center, Color, Element, Fill, Length, Shadow, Tas use iced_core::Padding; use iced_core::border::Radius; use iced_core::svg::Handle; +use parking_lot::Mutex; use std::ops::Deref; use std::sync::Arc; -use parking_lot::Mutex; #[derive(Clone)] pub struct RepetitionsState { diff --git a/src/selector.rs b/src/selector.rs index 3156a77..3be8cac 100644 --- a/src/selector.rs +++ b/src/selector.rs @@ -15,8 +15,8 @@ use iced::{Element, Task, alignment}; use iced_core::Alignment::Center; use iced_core::Background; use iced_core::Color; -use std::sync::Arc; use parking_lot::Mutex; +use std::sync::Arc; pub struct SelectorState { pub set: KanaSet, diff --git a/src/sync.rs b/src/sync.rs index 7c2e4fb..de4d134 100644 --- a/src/sync.rs +++ b/src/sync.rs @@ -9,8 +9,8 @@ use iced::widget::button::danger; use iced::widget::container::rounded_box; use iced::widget::{button, column, container, progress_bar, row, space, text, toggler}; use iced::{Center, Element, Fill, Font, Length, Task}; -use std::sync::Arc; use parking_lot::Mutex; +use std::sync::Arc; use std::time::Duration; #[derive(Clone)] diff --git a/src/word.rs b/src/word.rs index 8de98e2..5daea7d 100644 --- a/src/word.rs +++ b/src/word.rs @@ -8,8 +8,8 @@ use crate::{AppState, RootMessage}; use iced::widget::button::danger; use iced::widget::{button, column, row, rule, scrollable, text, text_input}; use iced::{Element, Fill, Task}; -use std::sync::Arc; use parking_lot::Mutex; +use std::sync::Arc; #[derive(Clone)] pub struct WordState {