facet::define_attr_grammar! {
ns "default";
crate_path ::facet_default;
pub enum Attr {
Variant,
}
}
#[macro_export]
macro_rules! __facet_invoke {
(
@tokens { $($tokens:tt)* }
@remaining { $($remaining:tt)* }
@plugins { $($plugins:tt)* }
@facet_crate { $($facet_crate:tt)* }
) => {
$crate::__facet_invoke_internal! {
@tokens { $($tokens)* }
@remaining { $($remaining)* }
@plugins {
$($plugins)*
@plugin {
@name { "Default" }
@template {
impl ::core::default::Default for @Self {
fn default() -> Self {
@if_struct {
Self {
@for_field {
@field_name: @field_default_expr,
}
}
}
@if_enum {
@for_variant {
@if_attr(default::variant) {
Self::@variant_name @variant_default_construction
}
}
}
}
}
}
}
}
@facet_crate { $($facet_crate)* }
}
};
}
#[doc(hidden)]
#[macro_export]
macro_rules! __facet_invoke_internal {
(
@tokens { $($tokens:tt)* }
@remaining { }
@plugins { $($plugins:tt)* }
@facet_crate { $($facet_crate:tt)* }
) => {
$($facet_crate)*::__facet_finalize! {
@tokens { $($tokens)* }
@plugins { $($plugins)* }
@facet_crate { $($facet_crate)* }
}
};
(
@tokens { $($tokens:tt)* }
@remaining { $next:path $(, $rest:path)* $(,)? }
@plugins { $($plugins:tt)* }
@facet_crate { $($facet_crate:tt)* }
) => {
$next! {
@tokens { $($tokens)* }
@remaining { $($rest),* }
@plugins { $($plugins)* }
@facet_crate { $($facet_crate)* }
}
};
}