[yew-devel] [PATCH yew-widget-toolkit 2/4] macros: update no_clone test to adjust to new additional traits

Shannon Sterz s.sterz at proxmox.com
Tue Jan 14 12:44:38 CET 2025


Signed-off-by: Shannon Sterz <s.sterz at proxmox.com>
---
 pwt-macros/tests/widget/no_clone.rs     | 13 +++++++++++++
 pwt-macros/tests/widget/no_clone.stderr |  8 ++++----
 2 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/pwt-macros/tests/widget/no_clone.rs b/pwt-macros/tests/widget/no_clone.rs
index 72217833..d0fbcbe6 100644
--- a/pwt-macros/tests/widget/no_clone.rs
+++ b/pwt-macros/tests/widget/no_clone.rs
@@ -11,9 +11,21 @@ mod props {
     }
     pub trait CssPaddingBuilder {}
     pub trait CssMarginBuilder {}
+    pub trait AsCssStylesMut {
+        fn as_css_styles_mut(&mut self) -> &mut CssStyles;
+    }
+
+    /// Holds the CSS styles to set on elements
+    #[derive(Clone, Default, Debug, PartialEq)]
+    pub struct CssStyles {}
+
+    pub trait WidgetStyleBuilder {}
+
     pub trait WidgetBuilder: Sized {
         fn as_std_props_mut(&mut self) -> &mut WidgetStdProps;
+        fn as_std_props(&self) -> &WidgetStdProps;
     }
+
     pub trait AsClassesMut {
         fn as_classes_mut(&mut self) -> &mut Classes;
     }
@@ -23,6 +35,7 @@ mod props {
     pub struct WidgetStdProps {
         pub key: Option<Key>,
         pub class: Classes,
+        pub styles: CssStyles,
     }
     #[derive(PartialEq, Default, Clone)]
     pub struct ListenersWrapper {}
diff --git a/pwt-macros/tests/widget/no_clone.stderr b/pwt-macros/tests/widget/no_clone.stderr
index 28b52008..9f6f296c 100644
--- a/pwt-macros/tests/widget/no_clone.stderr
+++ b/pwt-macros/tests/widget/no_clone.stderr
@@ -1,12 +1,12 @@
 error[E0277]: the trait bound `Foo: Clone` is not satisfied
-  --> tests/widget/no_clone.rs:34:1
+  --> tests/widget/no_clone.rs:47:1
    |
-34 | #[widget(pwt=crate, comp=FooComp, @input, @element)]
+47 | #[widget(pwt=crate, comp=FooComp, @input, @element)]
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `Foo`
    |
    = note: this error originates in the attribute macro `widget` (in Nightly builds, run with -Z macro-backtrace for more info)
 help: consider annotating `Foo` with `#[derive(Clone)]`
    |
-34 + #[derive(Clone)]
-35 | #[widget(pwt=crate, comp=FooComp, @input, @element)]
+47 + #[derive(Clone)]
+48 | #[widget(pwt=crate, comp=FooComp, @input, @element)]
    |
-- 
2.39.5





More information about the yew-devel mailing list