macro_rules! gen_json_struct_from_file {
($path:literal) => { ... };
(
$path:literal,
$( $opt_k:ident = $opt_v:literal),+ $(,)?
) => { ... };
(
$path:literal;
$( $field_type_name:literal => $field_type:ty ),* $(,)?
) => { ... };
(
$path:literal;
$( $field_opt_name:literal => { $( $field_opt_k:literal : $field_opt_v:tt ),* $(,)? } ),* $(,)?
) => { ... };
(
$path:literal,
$( $opt_k:ident = $opt_v:literal ),+ $(,)?;
$( $field_type_name:literal => $field_type:ty ),* $(,)?
) => { ... };
(
$path:literal,
$( $opt_k:ident = $opt_v:literal ),+ $(,)?;
$( $field_opt_name:literal => { $( $field_opt_k:literal : $field_opt_v:tt ),* $(,)? } ),* $(,)?
) => { ... };
(
$path:literal;
$( $field_type_name:literal => $field_type:ty ),* $(,)?;
$( $field_opt_name:literal => { $( $field_opt_k:literal : $field_opt_v:tt ),* $(,)? } ),* $(,)?
) => { ... };
(
$path:literal,
$( $opt_k:ident = $opt_v:literal ),+ $(,)?;
$( $field_type_name:literal => $field_type:ty ),* $(,)?;
$( $field_opt_name:literal => { $( $field_opt_k:literal : $field_opt_v:tt ),* $(,)? } ),* $(,)?
) => { ... };
}