[yew-devel] [PATCH yew-widget-toolkit-examples 2/3] demo: apply auto-appliable clippy fixes

Shannon Sterz s.sterz at proxmox.com
Mon Jan 13 14:29:35 CET 2025


this makes the code more idiomatic and concise.

Signed-off-by: Shannon Sterz <s.sterz at proxmox.com>
---
 demo/src/examples/drag_drop.rs               | 13 +++++--------
 demo/src/examples/widgetcolumn_grid.rs       |  7 +++----
 demo/src/examples/wizard.rs                  | 12 +++++++++---
 demo/src/fields.rs                           |  6 +++---
 demo/src/gestures.rs                         |  4 ++--
 demo/src/list/mod.rs                         | 12 +++++++-----
 demo/src/main.rs                             |  4 ++--
 demo/src/movie.rs                            |  5 +----
 demo/src/navigation_drawer.rs                |  4 ++--
 demo/src/seven_guis/circle_drawer.rs         |  2 +-
 demo/src/seven_guis/flight_booker.rs         | 20 ++++++++------------
 demo/src/seven_guis/temperature_converter.rs |  7 ++-----
 demo/src/tree.rs                             |  2 +-
 13 files changed, 46 insertions(+), 52 deletions(-)

diff --git a/demo/src/examples/drag_drop.rs b/demo/src/examples/drag_drop.rs
index f0a55a2..7577992 100644
--- a/demo/src/examples/drag_drop.rs
+++ b/demo/src/examples/drag_drop.rs
@@ -40,15 +40,12 @@ impl Component for DragDropList {
     fn update(&mut self, _ctx: &yew::Context<Self>, msg: Self::Message) -> bool {
         match msg {
             Msg::Drop => {
-                match (self.hover_index, self.index_dragged) {
-                    (Some(mut target), Some(source)) => {
-                        let item = self.items.remove(source);
-                        if source < target {
-                            target -= 1;
-                        }
-                        self.items.insert(target, item);
+                if let (Some(mut target), Some(source)) = (self.hover_index, self.index_dragged) {
+                    let item = self.items.remove(source);
+                    if source < target {
+                        target -= 1;
                     }
-                    _ => {}
+                    self.items.insert(target, item);
                 }
                 self.hover_index = None;
                 self.index_dragged = None;
diff --git a/demo/src/examples/widgetcolumn_grid.rs b/demo/src/examples/widgetcolumn_grid.rs
index 2d633b6..749fe89 100644
--- a/demo/src/examples/widgetcolumn_grid.rs
+++ b/demo/src/examples/widgetcolumn_grid.rs
@@ -55,13 +55,12 @@ impl Component for WidgetColumnGrid {
                         let mut list: Vec<AttrValue> =
                             vec!["Foo".into(), "Bar".into(), "Baz".into()];
                         list.retain(|entry| {
-                            store
+                            !store
                                 .read()
                                 .iter()
-                                .find(|el| &el.selection == entry.as_str())
-                                .is_none()
+                                .any(|el| &el.selection == entry.as_str())
                         });
-                        if rec.selection != "" {
+                        if !rec.selection.is_empty() {
                             list.push(rec.selection.clone().into());
                         }
 
diff --git a/demo/src/examples/wizard.rs b/demo/src/examples/wizard.rs
index 09a4ac5..a6d3348 100644
--- a/demo/src/examples/wizard.rs
+++ b/demo/src/examples/wizard.rs
@@ -37,6 +37,12 @@ pub struct Wizard {
     on_close: Option<Callback<()>>,
 }
 
+impl Default for Wizard {
+    fn default() -> Self {
+        Self::new()
+    }
+}
+
 impl Wizard {
     pub fn new() -> Self {
         yew::props!(Wizard {})
@@ -307,9 +313,9 @@ impl Component for PwtWizard {
     }
 }
 
-impl Into<VNode> for Wizard {
-    fn into(self) -> VNode {
-        let comp = VComp::new::<PwtWizard>(Rc::new(self), None);
+impl From<Wizard> for VNode {
+    fn from(val: Wizard) -> Self {
+        let comp = VComp::new::<PwtWizard>(Rc::new(val), None);
         VNode::from(comp)
     }
 }
diff --git a/demo/src/fields.rs b/demo/src/fields.rs
index d466afe..432c176 100644
--- a/demo/src/fields.rs
+++ b/demo/src/fields.rs
@@ -157,7 +157,7 @@ fn user_search_columns() -> Rc<Vec<DataTableHeader<UserEntry>>> {
             .show_menu(false)
             .justify("flex-start")
             .render(|item: &UserEntry| html!(item.first_name))
-            .sorter(|a: &UserEntry, b: &UserEntry| a.first_name.cmp(&b.first_name))
+            .sorter(|a: &UserEntry, b: &UserEntry| a.first_name.cmp(b.first_name))
             .sort_order(true)
             .into(),
         DataTableColumn::new(tr!("Last Name"))
@@ -165,7 +165,7 @@ fn user_search_columns() -> Rc<Vec<DataTableHeader<UserEntry>>> {
             .show_menu(false)
             .justify("flex-start")
             .render(|item: &UserEntry| html!(item.last_name))
-            .sorter(|a: &UserEntry, b: &UserEntry| a.last_name.cmp(&b.last_name))
+            .sorter(|a: &UserEntry, b: &UserEntry| a.last_name.cmp(b.last_name))
             .sort_order(true)
             .into(),
         DataTableColumn::new(tr!("Country"))
@@ -173,7 +173,7 @@ fn user_search_columns() -> Rc<Vec<DataTableHeader<UserEntry>>> {
             .show_menu(false)
             .justify("flex-start")
             .render(|item: &UserEntry| html!(item.country))
-            .sorter(|a: &UserEntry, b: &UserEntry| a.country.cmp(&b.country))
+            .sorter(|a: &UserEntry, b: &UserEntry| a.country.cmp(b.country))
             .sort_order(true)
             .into(),
     ])
diff --git a/demo/src/gestures.rs b/demo/src/gestures.rs
index 5f10c5f..eb2c8bc 100644
--- a/demo/src/gestures.rs
+++ b/demo/src/gestures.rs
@@ -62,8 +62,8 @@ impl Component for GestureDetectorDemo {
             );
 
         let detector = GestureDetector::new(content)
-            .on_drag_start(ctx.link().callback(|_| Msg::Log(format!("DRAG START"))))
-            .on_drag_end(ctx.link().callback(|_| Msg::Log(format!("DRAG END"))))
+            .on_drag_start(ctx.link().callback(|_| Msg::Log("DRAG START".to_string())))
+            .on_drag_end(ctx.link().callback(|_| Msg::Log("DRAG END".to_string())))
             .on_drag_update(ctx.link().callback(|event: GestureDragEvent| {
                 Msg::Log(format!("DRAG UPDATE {} {}", event.x(), event.y(),))
             }))
diff --git a/demo/src/list/mod.rs b/demo/src/list/mod.rs
index afa008d..2a75f1f 100644
--- a/demo/src/list/mod.rs
+++ b/demo/src/list/mod.rs
@@ -95,25 +95,27 @@ pub fn ListDemo() -> Html {
         .router(true)
         .tab_bar_style(TabBarStyle::MaterialPrimary)
         .with_item_builder(
-            TabBarItem::new().key(format!("simple")).label("Simple"),
+            TabBarItem::new().key("simple".to_string()).label("Simple"),
             |_| list_simple(),
         )
         .with_item_builder(
             TabBarItem::new()
-                .key(format!("variable"))
+                .key("variable".to_string())
                 .label("Variable Size"),
             |_| html! {<VariableListDemo/>},
         )
         .with_item_builder(
-            TabBarItem::new().key(format!("column")).label("Columns"),
+            TabBarItem::new().key("column".to_string()).label("Columns"),
             |_| list_columns(),
         )
         .with_item_builder(
-            TabBarItem::new().key(format!("cards")).label("Cards"),
+            TabBarItem::new().key("cards".to_string()).label("Cards"),
             |_| list_cards(),
         )
         .with_item_builder(
-            TabBarItem::new().key(format!("dynamic")).label("Dynamic"),
+            TabBarItem::new()
+                .key("dynamic".to_string())
+                .label("Dynamic"),
             |_| html! {<DynamicListDemo/>},
         );
 
diff --git a/demo/src/main.rs b/demo/src/main.rs
index 40f57f2..b7091d3 100644
--- a/demo/src/main.rs
+++ b/demo/src/main.rs
@@ -114,7 +114,7 @@ fn register_submenu(
 
 #[function_component]
 fn MainMenu() -> Html {
-    let selection = use_selection(|| Selection::new());
+    let selection = use_selection(Selection::new);
 
     let mut content = SelectionView::new()
         .selection(selection.clone())
@@ -419,7 +419,7 @@ fn RoutedApp() -> Html {
 fn main() {
     wasm_logger::init(wasm_logger::Config::default());
 
-    static THEMES: &'static [&'static str] = &["Crisp", "Desktop", "Material"];
+    static THEMES: &[&str] = &["Crisp", "Desktop", "Material"];
     pwt::state::set_available_themes(THEMES);
 
     pwt::state::set_available_languages(vec![
diff --git a/demo/src/movie.rs b/demo/src/movie.rs
index a640eca..628210a 100644
--- a/demo/src/movie.rs
+++ b/demo/src/movie.rs
@@ -123,10 +123,7 @@ pub fn MovieDemo() -> Html {
         store
     });
 
-    let selection = use_selection(|| {
-        let selection = Selection::new().multiselect(true);
-        selection
-    });
+    let selection = use_selection(|| Selection::new().multiselect(true));
 
     Mask::new(
         DataTable::new(columns, (*store).clone())
diff --git a/demo/src/navigation_drawer.rs b/demo/src/navigation_drawer.rs
index fc8f203..e4cff66 100644
--- a/demo/src/navigation_drawer.rs
+++ b/demo/src/navigation_drawer.rs
@@ -66,7 +66,7 @@ pub fn NavigationDrawerDemo() -> Html {
         )
         .with_item(MenuItem::new("Entry 6").key("id8"));
 
-    let selection = use_selection(|| Selection::new());
+    let selection = use_selection(Selection::new);
 
     let drawer = NavigationDrawer::new(menu)
         .class(Overflow::Auto) // allow to shrink
@@ -91,7 +91,7 @@ pub fn NavigationDrawerDemo() -> Html {
         .gap(4)
         .with_child(html! {
         <p>{"This view is generated by using the NavigationDrawer on_select() callback."}</p>})
-        .with_child((&*content).clone());
+        .with_child((*content).clone());
 
     let content2 = Container::new()
         .padding(2)
diff --git a/demo/src/seven_guis/circle_drawer.rs b/demo/src/seven_guis/circle_drawer.rs
index dbb99e2..26196fd 100644
--- a/demo/src/seven_guis/circle_drawer.rs
+++ b/demo/src/seven_guis/circle_drawer.rs
@@ -215,7 +215,7 @@ fn random_radius() -> usize {
     use std::cell::RefCell;
 
     thread_local! {
-        static SEED: RefCell<usize> = RefCell::new(13456374);
+        static SEED: RefCell<usize> = const { RefCell::new(13456374) };
     }
 
     let rand = SEED.with(|cell| {
diff --git a/demo/src/seven_guis/flight_booker.rs b/demo/src/seven_guis/flight_booker.rs
index 9ab3767..834edbc 100644
--- a/demo/src/seven_guis/flight_booker.rs
+++ b/demo/src/seven_guis/flight_booker.rs
@@ -123,20 +123,16 @@ impl Component for FlightBooker {
             let start_date = js_sys::Date::parse(date_str);
             if start_date.is_nan() {
                 enable_book = false;
-            } else {
-                if self.with_return_flight {
-                    if let Some(date_str) = &self.return_date {
-                        let return_date = js_sys::Date::parse(date_str);
-                        if return_date.is_nan() {
-                            enable_book = false;
-                        } else {
-                            if return_date < start_date {
-                                enable_book = false;
-                            }
-                        }
-                    } else {
+            } else if self.with_return_flight {
+                if let Some(date_str) = &self.return_date {
+                    let return_date = js_sys::Date::parse(date_str);
+                    if return_date.is_nan() {
+                        enable_book = false;
+                    } else if return_date < start_date {
                         enable_book = false;
                     }
+                } else {
+                    enable_book = false;
                 }
             }
         } else {
diff --git a/demo/src/seven_guis/temperature_converter.rs b/demo/src/seven_guis/temperature_converter.rs
index 2982e1f..dd5ae71 100644
--- a/demo/src/seven_guis/temperature_converter.rs
+++ b/demo/src/seven_guis/temperature_converter.rs
@@ -38,11 +38,8 @@ impl Component for TemperatureConverter {
     }
 
     fn view(&self, ctx: &Context<Self>) -> Html {
-        let celsius = self.celsius.map(|c| c.to_string()).unwrap_or(String::new());
-        let fahrenheit = self
-            .fahrenheit
-            .map(|f| f.to_string())
-            .unwrap_or(String::new());
+        let celsius = self.celsius.map(|c| c.to_string()).unwrap_or_default();
+        let fahrenheit = self.fahrenheit.map(|f| f.to_string()).unwrap_or_default();
 
         let body = InputPanel::new()
             .padding(2)
diff --git a/demo/src/tree.rs b/demo/src/tree.rs
index 61423fd..628ae3a 100644
--- a/demo/src/tree.rs
+++ b/demo/src/tree.rs
@@ -233,7 +233,7 @@ pub fn TreeDemo() -> Html {
         test1();
     }
 
-    let store = use_tree_store(|| create_tree_store());
+    let store = use_tree_store(create_tree_store);
 
     let header0 = DataTableColumn::row_number();
 
-- 
2.39.5





More information about the yew-devel mailing list