cg2 0.3.5

Rust code generator.
Documentation
#[macro_export]
macro_rules! bind {
  ($g:ident, declare_const) => {
    $crate::bind!($g, declare_const, declare_const);
  };

  ($g:ident, declare_const, $macro:ident) => {
    macro_rules! $macro {
      ($vis:vis $name:ident, $ty:ty, $val:expr) => {
        if ::core::stringify!($vis) == "pub" {
          $g.public().space();
        }
        $g.declare_const(::core::stringify!($name), ::core::stringify!($ty), $val)
      };

      ($vis:vis $name:ident, $ty:expr, $val:expr) => {
        if ::core::stringify!($vis) == "pub" {
          $g.public().space();
        }
        $g.declare_const(::core::stringify!($name), $ty, $val)
      };

      ($name:expr, $ty:ty, $val:expr) => {
        $g.declare_const($name, ::core::stringify!($ty), $val)
      };

      ($name:expr, $ty:expr, $val:expr) => {
        $g.declare_const($name, $ty, $val)
      };

      ($vis:vis $name:ident: $ty:ty, $val:expr) => {
        if ::core::stringify!($vis) == "pub" {
          $g.public().space();
        }
        $g.declare_const(::core::stringify!($name), ::core::stringify!($ty), $val)
      };

      ($vis:vis $name:ident: $ty:expr, $val:expr) => {
        if ::core::stringify!($vis) == "pub" {
          $g.public().space();
        }
        $g.declare_const(::core::stringify!($name), $ty, $val)
      };

      ($vis:vis $name:ident, $ty:ty = $val:expr) => {
        if ::core::stringify!($vis) == "pub" {
          $g.public().space();
        }
        $g.declare_const(::core::stringify!($name), ::core::stringify!($ty), $val)
      };

      ($name:expr, $ty:ty = $val:expr) => {
        $g.declare_const($name, ::core::stringify!($ty), $val)
      };

      ($vis:vis $name:ident: $ty:ty = $val:expr) => {
        if ::core::stringify!($vis) == "pub" {
          $g.public().space();
        }
        $g.declare_const(::core::stringify!($name), ::core::stringify!($ty), $val)
      };
    }
  };
}