macro_rules! codegen_class_binding {
{ $class:tt, {
type: class,
rust_name: $rust_name:tt,
ruby_name: { $($ruby_name:tt)* },
meta: { pub: $pub:tt, reopen: false },
struct: (),
methods: [ $($method:tt)* ]
} } => { ... };
{ $class:tt, {
type: class,
rust_name: $rust_name:tt,
ruby_name: { $($ruby_name:tt)* },
meta: { pub: $pub:tt, reopen: true },
struct: (),
methods: [ $($method:tt)* ]
} } => { ... };
{ $class:tt, {
type: class,
rust_name: $rust_name:tt,
ruby_name: { $($ruby_name:tt)* },
meta: { pub: $pub:tt, reopen: $reopen:tt },
struct: { $($struct:tt)* },
methods: [ $($method:tt)* ]
} } => { ... };
}