mirror of
https://github.com/salsa-rs/salsa.git
synced 2025-07-07 21:35:17 +00:00

* Changed `return_ref` syntax to `returns(as_ref)` and `returns(cloned)` * Implement * renamed module for return_mode * Rename macro, fix docs, add tests, validate return modes * Cargo fmt --------- Co-authored-by: Micha Reiser <micha@reiser.io>
32 lines
726 B
Rust
32 lines
726 B
Rust
/// Generate either `field_ref_expr` or `field_ty::default`
|
|
///
|
|
/// Used when generating an input's builder.
|
|
#[macro_export]
|
|
macro_rules! maybe_default {
|
|
(
|
|
($return_mode:ident, $maybe_backdate:ident, default),
|
|
$field_ty:ty,
|
|
$field_ref_expr:expr,
|
|
) => {
|
|
<$field_ty>::default()
|
|
};
|
|
|
|
(
|
|
($return_mode:ident, $maybe_backdate:ident, required),
|
|
$field_ty:ty,
|
|
$field_ref_expr:expr,
|
|
) => {
|
|
$field_ref_expr
|
|
};
|
|
}
|
|
|
|
#[macro_export]
|
|
macro_rules! maybe_default_tt {
|
|
(($return_mode:ident, $maybe_backdate:ident, default) => $($t:tt)*) => {
|
|
$($t)*
|
|
};
|
|
|
|
(($return_mode:ident, $maybe_backdate:ident, required) => $($t:tt)*) => {
|
|
|
|
};
|
|
}
|