message: [model] Fix bug that state! macro recurses infinitely when given an empty struct
diff: @@ -34,24 +34,6 @@ pub trait ContractState: AllocateUsing + Flush {
  /// Define contract state with less boilerplate code.
  #[macro_export]
  macro_rules! state {
  - (
  - $( #[$state_meta:meta] )*
  - $vis:vis struct $state_name:ident {
  - $(
  - $( #[$field_meta:meta] )*
  - $field_name:ident : $field_ty:ty
  - ),*
  - }
  - ) => {
  - $crate::state! {
  - $vis struct $state_name {
  - $(
  - $( #[$field_meta] )*
  - $field_name : $field_ty ,
  - )*
  - }
  - }
  - };
  (
  $( #[$state_meta:meta] )*
  $vis:vis struct $state_name:ident {
  @@ -95,4 +77,22 @@ macro_rules! state {
  const NAME: &'static [u8] = stringify!($state_name).as_bytes();
  }
  };
  + (
  + $( #[$state_meta:meta] )*
  + $vis:vis struct $state_name:ident {
  + $(
  + $( #[$field_meta:meta] )*
  + $field_name:ident : $field_ty:ty
  + ),*
  + }
  + ) => {
  + $crate::state! {
  + $vis struct $state_name {
  + $(
  + $( #[$field_meta] )*
  + $field_name : $field_ty ,
  + )*
  + }
  + }
  + };
  }
  