evobench_tools/utillib/
fallback.rs1pub trait FallingBackTo {
4 fn falling_back_to(self, fallback: &Self) -> Self;
7}
8
9#[macro_export]
10macro_rules! fallback_to_option {
11 { $fallback:ident . $field:ident } => {
12 let $field = $field.or_else(|| $fallback.$field.clone());
13 }
14}
15
16#[macro_export]
17macro_rules! fallback_to_trait {
18 { $fallback:ident . $field:ident } => {
19 let $field = $field.falling_back_to(&$fallback.$field);
20 }
21}
22
23#[macro_export]
24macro_rules! fallback_to_default {
25 { $default:ident . $field:ident } => {
26 let $field = $field.unwrap_or($default.$field);
27 }
28}