sqlx_utils/macros/repository/
update.rs

1#[macro_export]
2macro_rules! repository_update {
3    {
4        $ident:ident<$model:ty>;
5    } => {
6        $crate::repository_update!(
7            !inner
8            $ident<$model>;
9        );
10    };
11
12    {
13        $ident:ident<$model:ty>;
14
15        $method_name:ident($param:pat_param) $block:block
16    } => {
17        $crate::repository_update!(!inner $ident<$model>; fn $method_name($param: &$model) -> $crate::types::Query<'_> $block);
18    };
19
20    {
21        $ident:ident<$model:ty>;
22
23        $($tokens:tt)*
24    } => {
25        $crate::repository_update!(!inner $ident<$model>; $($tokens)*);
26    };
27
28    {
29        !inner
30        $ident:ident<$model:ty>;
31
32        $($tokens:tt)*
33    } => {
34        impl $crate::traits::UpdatableRepository<$model> for $ident {
35            $($tokens)*
36        }
37    }
38}