orx_pseudo_default/implementations/
impl_macros.rs1#[macro_export]
3macro_rules! impl_on_type {
4 ($t:ty, $value:expr) => {
5 impl $crate::PseudoDefault for $t {
6 fn pseudo_default() -> Self {
7 $value
8 }
9 }
10 };
11}
12
13#[macro_export]
15macro_rules! impl_on_static_life_type {
16 ($t:ty, $value:expr) => {
17 impl $crate::PseudoDefault for $t {
18 fn pseudo_default() -> Self {
19 $value
20 }
21 }
22
23 impl<'a> $crate::PseudoDefault for &'a $t {
24 fn pseudo_default() -> Self {
25 &$value
26 }
27 }
28 };
29}
30
31#[macro_export]
33macro_rules! impl_on_generic_type {
34 ($t:ty, $g:ident, $value:expr) => {
35 impl<$g> $crate::PseudoDefault for $t {
36 fn pseudo_default() -> Self {
37 $value
38 }
39 }
40 };
41
42 ($t:ty, $g:ident, $h:ident, $value:expr) => {
43 impl<$g, $h> $crate::PseudoDefault for $t {
44 fn pseudo_default() -> Self {
45 $value
46 }
47 }
48 };
49}
50
51#[macro_export]
53macro_rules! impl_on_static_life_generic_type {
54 ($t:ty, $g:ident, $value:expr) => {
55 impl<$g> $crate::PseudoDefault for $t {
56 fn pseudo_default() -> Self {
57 $value
58 }
59 }
60
61 impl<'a, $g> $crate::PseudoDefault for &'a $t {
62 fn pseudo_default() -> Self {
63 &$value
64 }
65 }
66 };
67}
68
69#[macro_export]
71macro_rules! impl_new_from_pseudo_default {
72 ($t:ty, $g:ident) => {
73 impl<$g: $crate::PseudoDefault> $crate::PseudoDefault for $t {
74 fn pseudo_default() -> Self {
75 Self::new($g::pseudo_default())
76 }
77 }
78 };
79}