wrapped_mono 0.4.0

`wrapped_mono` is a safe, lightweight wrapper around the mono library. It allows embedding of the mono runtime inside a rust project. Inside this embedded runtime code written in languages supporting the .NET framework, such as C# and F#, can be run. This allows usage of libraries written in those languages, and using them as a scripting language. The mono runtime is used by many game engines, and this wrapper allows using it with projects written in Rust too.
Documentation
pub trait DimensionTrait {
    const DIMENSIONS: usize;
    type Lengths;
    fn zeroed() -> Self::Lengths;
}
macro_rules! def_dim {
    ($name:ident,$count:literal) => {
        pub struct $name;
        impl DimensionTrait for $name {
            type Lengths = [usize; $count];
            const DIMENSIONS: usize = $count;
            fn zeroed() -> Self::Lengths {
                [0; $count]
            }
        }
    };
}
def_dim!(Dim1D, 1);
def_dim!(Dim2D, 2);
def_dim!(Dim3D, 3);
def_dim!(Dim4D, 4);
def_dim!(Dim5D, 5);
def_dim!(Dim6D, 6);
def_dim!(Dim7D, 7);
def_dim!(Dim8D, 8);
def_dim!(Dim9D, 9);
def_dim!(Dim10D, 10);
def_dim!(Dim11D, 11);
def_dim!(Dim12D, 12);
def_dim!(Dim13D, 13);
def_dim!(Dim14D, 14);
def_dim!(Dim15D, 15);
def_dim!(Dim16D, 16);
def_dim!(Dim17D, 17);
def_dim!(Dim18D, 18);
def_dim!(Dim19D, 19);
def_dim!(Dim20D, 20);