From bec6e3323f513bff1bff8ddae8db62c6e835fda1 Mon Sep 17 00:00:00 2001 From: Jordan MacDonald Date: Tue, 9 Apr 2024 23:59:21 -0400 Subject: [PATCH] Use default pattern for theme mode reset --- src/models/application/modes/theme.rs | 15 +++++++++------ src/util/selectable_vec.rs | 1 + 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/models/application/modes/theme.rs b/src/models/application/modes/theme.rs index c184ef57..a01d7b8c 100644 --- a/src/models/application/modes/theme.rs +++ b/src/models/application/modes/theme.rs @@ -4,6 +4,7 @@ use fragment; use std::fmt; use std::slice::Iter; +#[derive(Default)] pub struct ThemeMode { insert: bool, input: String, @@ -15,17 +16,19 @@ pub struct ThemeMode { impl ThemeMode { pub fn new(config: SearchSelectConfig) -> ThemeMode { ThemeMode { - insert: true, - input: String::new(), - themes: Vec::new(), - results: SelectableVec::new(Vec::new()), config, + insert: true, + ..Default::default() } } pub fn reset(&mut self, themes: Vec, config: SearchSelectConfig) { - self.themes = themes; - self.config = config; + *self = ThemeMode { + config, + insert: true, + themes, + ..Default::default() + }; } } diff --git a/src/util/selectable_vec.rs b/src/util/selectable_vec.rs index 0f0855f2..9e8d93d1 100644 --- a/src/util/selectable_vec.rs +++ b/src/util/selectable_vec.rs @@ -3,6 +3,7 @@ use std::ops::Deref; /// A simple decorator around a Vec that allows a single element to be selected. /// The selection can be incremented/decremented in single steps, and the /// selected value wraps when moved beyond either edge of the set. +#[derive(Default)] pub struct SelectableVec { set: Vec, selected_index: usize,