macro_rules! to_json {
(
$(#[$attr:meta])*
$vis:vis struct $name:ident { $($body:tt)* }
) => { ... };
(
$(#[$attr:meta])*
$vis:vis struct $name:ident < $lt:lifetime $(,)? > { $($body:tt)* }
) => { ... };
(
$(#[$attr:meta])*
$vis:vis struct $name:ident ( $fty:ty $(,)? ) ;
) => { ... };
(
$(#[$attr:meta])*
$vis:vis struct $name:ident < $lt:lifetime $(,)? > ( $fty:ty $(,)? ) ;
) => { ... };
(
$(#[$attr:meta])*
$vis:vis struct $name:ident ( $fty1:ty, $($ftyn:ty),+ $(,)? ) ;
) => { ... };
(
$(#[$attr:meta])*
$vis:vis struct $name:ident < $lt:lifetime $(,)? > ( $fty1:ty, $($ftyn:ty),+ $(,)? ) ;
) => { ... };
(
#[bourne(untagged)]
$(#[$attr:meta])*
$vis:vis enum $name:ident { $($variants:tt)* }
) => { ... };
(
#[bourne(untagged)]
$(#[$attr:meta])*
$vis:vis enum $name:ident < $lt:lifetime $(,)? > { $($variants:tt)* }
) => { ... };
(
#[bourne(tag = $tag:literal)]
$(#[$attr:meta])*
$vis:vis enum $name:ident { $($variants:tt)* }
) => { ... };
(
#[bourne(tag = $tag:literal)]
$(#[$attr:meta])*
$vis:vis enum $name:ident < $lt:lifetime $(,)? > { $($variants:tt)* }
) => { ... };
(
#[bourne(tag = $tag:literal, content = $content:literal)]
$(#[$attr:meta])*
$vis:vis enum $name:ident { $($variants:tt)* }
) => { ... };
(
#[bourne(tag = $tag:literal, content = $content:literal)]
$(#[$attr:meta])*
$vis:vis enum $name:ident < $lt:lifetime $(,)? > { $($variants:tt)* }
) => { ... };
(
$(#[$attr:meta])*
$vis:vis enum $name:ident { $($variants:tt)* }
) => { ... };
(
$(#[$attr:meta])*
$vis:vis enum $name:ident < $lt:lifetime $(,)? > { $($variants:tt)* }
) => { ... };
}Expand description
Emit a struct or enum together with its crate::ToJson impl.
See the from_json! docs for shape coverage —
the two macros support the same set of containers and attributes.