Use builder pattern for widgets (#941)

* Use builder pattern for widgets

* Arguments to new function
This commit is contained in:
0HyperCube
2023-01-08 14:34:24 +00:00
committed by Keavon Chambers
parent e5fcf5f2da
commit 04059f55b9
8 changed files with 412 additions and 304 deletions
+7
View File
@@ -5,6 +5,7 @@ mod helper_structs;
mod helpers;
mod hint;
mod transitive_child;
mod widget_builder;
use crate::as_message::derive_as_message_impl;
use crate::combined_message_attrs::combined_message_attrs_impl;
@@ -12,6 +13,7 @@ use crate::discriminant::derive_discriminant_impl;
use crate::helper_structs::AttrInnerSingleString;
use crate::hint::derive_hint_impl;
use crate::transitive_child::derive_transitive_child_impl;
use crate::widget_builder::derive_widget_builder_impl;
use proc_macro::TokenStream;
@@ -273,6 +275,11 @@ pub fn edge(attr: TokenStream, item: TokenStream) -> TokenStream {
item
}
#[proc_macro_derive(WidgetBuilder, attributes(widget_builder))]
pub fn derive_widget_builder(input_item: TokenStream) -> TokenStream {
TokenStream::from(derive_widget_builder_impl(input_item.into()).unwrap_or_else(|err| err.to_compile_error()))
}
#[cfg(test)]
mod tests {
use super::*;