[][src]Macro ruwren::create_module

macro_rules! create_module {
    (
        $(
            class($mname:expr) $name:ty => $md:ident {
                $(
                    $si:ident($lbls:ident $($sgns:expr),+) $id:ident
                ),*
            }
        )+

        module => $modl:ident
    ) => { ... };
    (@md static $id:ident $lbls:ident $md:ident $($sgns: expr),+) => { ... };
    (@md instance $id:ident $lbls:ident $md:ident $($sgns: expr),+) => { ... };
    (@sgn fn $nom:expr, $arity:expr) => { ... };
    (@sgn getter $name:expr) => { ... };
    (@sgn setter $name:expr) => { ... };
    (@fn static $name:ty => $s:ident) => { ... };
    (@fn instance $name:ty => $inf:ident) => { ... };
}

Creates a function at $modl::publish_module, that takes a &mut ModuleLibrary and handles Module object creation and registration

Also internally creates all the necessary extern "C" functions for Wren's callbacks