From: Ian Jackson Date: Sun, 17 Apr 2022 20:00:49 +0000 (+0100) Subject: serde_with_compat: Move to utils.rs where it belongs X-Git-Tag: otter-1.1.0~504 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=319c5aa2ba41c02bc995c01e1712d953f0b75834;p=otter.git serde_with_compat: Move to utils.rs where it belongs Signed-off-by: Ian Jackson --- diff --git a/src/occultilks.rs b/src/occultilks.rs index b742d6b2..eb005777 100644 --- a/src/occultilks.rs +++ b/src/occultilks.rs @@ -38,21 +38,6 @@ pub enum LOccultIlk { Mix(OccultIlkName), } -macro_rules! serde_with_compat { { - [ #[ $($attrs:meta)* ] ] [ $vis:vis ] [ $($intro:tt)* ] - $main:ident=$main_s:literal $new:ident $compat_s:literal - [ $($body:tt)* ] -} => { - $(#[ $attrs ])* - #[serde(try_from=$compat_s)] - $vis $($intro)* $main $($body)* - - #[allow(non_camel_case_types)] - $(#[ $attrs ])* - #[serde(remote=$main_s)] - $($intro)* $new $($body)* -} } - serde_with_compat!{ [ #[derive(Debug,Serialize,Deserialize)] ] [ pub ][ enum ] IOccultIlk="IOccultIlk" IOccultIlk_New "IOccultIlk_Compat" [ diff --git a/src/prelude.rs b/src/prelude.rs index c9ea63c4..05de7123 100644 --- a/src/prelude.rs +++ b/src/prelude.rs @@ -136,6 +136,7 @@ pub use crate::format_by_fmt_hex; pub use crate::matches_doesnot; pub use crate::trace_dbg; pub use crate::{want, wantok, wants, want_let, want_failed_internal}; +pub use crate::serde_with_compat; pub use crate::accounts::loaded_acl::{self, EffectiveACL, LoadedAcl, PermSet}; pub use crate::accounts::*; diff --git a/src/utils.rs b/src/utils.rs index 96795048..88b03176 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -406,6 +406,22 @@ macro_rules! want_let { }; } +#[macro_export] +macro_rules! serde_with_compat { { + [ #[ $($attrs:meta)* ] ] [ $vis:vis ] [ $($intro:tt)* ] + $main:ident=$main_s:literal $new:ident $compat_s:literal + [ $($body:tt)* ] +} => { + $(#[ $attrs ])* + #[serde(try_from=$compat_s)] + $vis $($intro)* $main $($body)* + + #[allow(non_camel_case_types)] + $(#[ $attrs ])* + #[serde(remote=$main_s)] + $($intro)* $new $($body)* +} } + macro_rules! entry_define_insert_remove { { $name:ident, $name_mod:ident, $entry:path, $into_key:ident } => {