From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <yew-devel-bounces@lists.proxmox.com>
Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9])
	by lore.proxmox.com (Postfix) with ESMTPS id 610D41FF15E
	for <inbox@lore.proxmox.com>; Tue, 14 Jan 2025 12:45:16 +0100 (CET)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id 37BD114730;
	Tue, 14 Jan 2025 12:44:58 +0100 (CET)
From: Shannon Sterz <s.sterz@proxmox.com>
To: yew-devel@lists.proxmox.com
Date: Tue, 14 Jan 2025 12:44:40 +0100
Message-Id: <20250114114440.177877-5-s.sterz@proxmox.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250114114440.177877-1-s.sterz@proxmox.com>
References: <20250114114440.177877-1-s.sterz@proxmox.com>
MIME-Version: 1.0
X-SPAM-LEVEL: Spam detection results:  0
 AWL -0.031 Adjusted score from AWL reputation of From: address
 BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
 DMARC_MISSING             0.1 Missing DMARC policy
 KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment
 SPF_HELO_NONE           0.001 SPF: HELO does not publish an SPF Record
 SPF_PASS               -0.001 SPF: sender matches SPF record
Subject: [yew-devel] [PATCH yew-widget-toolkit 4/4] macros: update dummy pwt
 implementations so that the doc tests succeed
X-BeenThere: yew-devel@lists.proxmox.com
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Yew framework devel list at Proxmox <yew-devel.lists.proxmox.com>
List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/yew-devel>, 
 <mailto:yew-devel-request@lists.proxmox.com?subject=unsubscribe>
List-Archive: <http://lists.proxmox.com/pipermail/yew-devel/>
List-Post: <mailto:yew-devel@lists.proxmox.com>
List-Help: <mailto:yew-devel-request@lists.proxmox.com?subject=help>
List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/yew-devel>, 
 <mailto:yew-devel-request@lists.proxmox.com?subject=subscribe>
Reply-To: Yew framework devel list at Proxmox <yew-devel@lists.proxmox.com>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: yew-devel-bounces@lists.proxmox.com
Sender: "yew-devel" <yew-devel-bounces@lists.proxmox.com>

adds the updated trait definitions and adds a dummy `oncklick`
implementation so that the doc tests succeed again

Signed-off-by: Shannon Sterz <s.sterz@proxmox.com>
---
 pwt-macros/src/lib.rs | 49 +++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 47 insertions(+), 2 deletions(-)

diff --git a/pwt-macros/src/lib.rs b/pwt-macros/src/lib.rs
index 1b62d1d9..1e353a0d 100644
--- a/pwt-macros/src/lib.rs
+++ b/pwt-macros/src/lib.rs
@@ -60,11 +60,25 @@ use builder::*;
 /// #         #[derive(Clone, PartialEq, Default)]
 /// #         pub struct WidgetStdProps {
 /// #             pub class: yew::Classes,
+/// #             pub key: Option<yew::virtual_dom::Key>,
+/// #             pub styles: CssStyles,
+/// #         }
+/// #         pub trait FieldBuilder {
+/// #             fn as_input_props(&self) -> &FieldStdProps;
+/// #             fn as_input_props_mut(&mut self) -> &mut FieldStdProps;
 /// #         }
 /// #         #[derive(Clone, PartialEq, Default)]
 /// #         pub struct ListenersWrapper;
-/// #         pub trait WidgetBuilder {
+/// #         pub trait WidgetBuilder: Sized {
 /// #             fn as_std_props_mut(&mut self) -> &mut WidgetStdProps;
+/// #             fn as_std_props(&self) -> &WidgetStdProps;
+/// #             fn class(mut self, class: impl Into<yew::Classes>) -> Self {
+/// #                 self.add_class(class);
+/// #                 self
+/// #             }
+/// #             fn add_class(&mut self, class: impl Into<yew::Classes>) {
+/// #                 self.as_std_props_mut().class.push(class);
+/// #             }
 /// #         }
 /// #         pub trait AsClassesMut {
 /// #             fn as_classes_mut(&mut self) -> &mut yew::Classes;
@@ -72,12 +86,22 @@ use builder::*;
 /// #         pub trait CssBorderBuilder {}
 /// #         pub trait CssMarginBuilder {}
 /// #         pub trait CssPaddingBuilder {}
+/// #         pub trait AsCssStylesMut {
+/// #             fn as_css_styles_mut(&mut self) -> &mut CssStyles;
+/// #         }
+/// #         #[derive(Clone, Default, Debug, PartialEq)]
+/// #         pub struct CssStyles {}
 /// #         pub trait EventSubscriber: Sized {
 /// #             fn as_listeners_mut(&mut self) -> &mut ListenersWrapper;
+/// #
+/// #             // dummy implementation so that the test case succeeds below
 /// #             fn onclick(mut self, _cb: impl yew::html::IntoEventCallback<yew::MouseEvent>) -> Self {
 /// #                 self
 /// #             }
 /// #         }
+/// #         pub trait WidgetStyleBuilder {}
+/// #         #[derive(PartialEq, Default, Clone)]
+/// #         pub struct FieldStdProps {}
 /// #     }
 /// # }
 /// use pwt_macros::widget;
@@ -121,11 +145,24 @@ use builder::*;
 /// #         pub struct WidgetStdProps {
 /// #             pub class: yew::Classes,
 /// #             pub key: Option<yew::virtual_dom::Key>,
+/// #             pub styles: CssStyles,
+/// #         }
+/// #         pub trait FieldBuilder {
+/// #             fn as_input_props(&self) -> &FieldStdProps;
+/// #             fn as_input_props_mut(&mut self) -> &mut FieldStdProps;
 /// #         }
 /// #         #[derive(Clone, PartialEq, Default)]
 /// #         pub struct ListenersWrapper;
-/// #         pub trait WidgetBuilder {
+/// #         pub trait WidgetBuilder: Sized {
 /// #             fn as_std_props_mut(&mut self) -> &mut WidgetStdProps;
+/// #             fn as_std_props(&self) -> &WidgetStdProps;
+/// #             fn class(mut self, class: impl Into<yew::Classes>) -> Self {
+/// #                 self.add_class(class);
+/// #                 self
+/// #             }
+/// #             fn add_class(&mut self, class: impl Into<yew::Classes>) {
+/// #                 self.as_std_props_mut().class.push(class);
+/// #             }
 /// #         }
 /// #         pub trait AsClassesMut {
 /// #             fn as_classes_mut(&mut self) -> &mut yew::Classes;
@@ -133,9 +170,17 @@ use builder::*;
 /// #         pub trait CssBorderBuilder {}
 /// #         pub trait CssMarginBuilder {}
 /// #         pub trait CssPaddingBuilder {}
+/// #         pub trait AsCssStylesMut {
+/// #             fn as_css_styles_mut(&mut self) -> &mut CssStyles;
+/// #         }
+/// #         #[derive(Clone, Default, Debug, PartialEq)]
+/// #         pub struct CssStyles {}
 /// #         pub trait EventSubscriber: Sized {
 /// #             fn as_listeners_mut(&mut self) -> &mut ListenersWrapper;
 /// #         }
+/// #         pub trait WidgetStyleBuilder {}
+/// #         #[derive(PartialEq, Default, Clone)]
+/// #         pub struct FieldStdProps {}
 /// #     }
 /// # }
 /// use pwt_macros::widget;
-- 
2.39.5



_______________________________________________
yew-devel mailing list
yew-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/yew-devel