filament-bindings 0.2.2

This package provides build scripts and prebuilt binaries for filament on Windows, macOS, Linux, and the unsafe binding interface automatically generated by rust-bindgen.
macro_rules! math_vec {
    ($len:expr, $t:ident, $ctype:ty) => {
        #[repr(transparent)]
        #[derive(Copy, Clone, Debug, Default)]
        pub struct $t {
            pub inner: [$ctype; $len],
        }
    };
}

math_vec!(4, filament_math_bool4, ::std::os::raw::c_char);
math_vec!(4, filament_math_int4, ::std::os::raw::c_int);
math_vec!(4, filament_math_uint4, ::std::os::raw::c_uint);
math_vec!(4, filament_math_double4, ::std::os::raw::c_double);
math_vec!(4, filament_math_float4, ::std::os::raw::c_float);
math_vec!(4, filament_math_short4, ::std::os::raw::c_short);
math_vec!(4, filament_math_ushort4, ::std::os::raw::c_ushort);
math_vec!(4, filament_math_half4, ::half::f16);

math_vec!(3, filament_math_bool3, ::std::os::raw::c_char);
math_vec!(3, filament_math_int3, ::std::os::raw::c_int);
math_vec!(3, filament_math_uint3, ::std::os::raw::c_uint);
math_vec!(3, filament_math_double3, ::std::os::raw::c_double);
math_vec!(3, filament_math_float3, ::std::os::raw::c_float);
math_vec!(3, filament_math_short3, ::std::os::raw::c_short);
math_vec!(3, filament_math_ushort3, ::std::os::raw::c_ushort);
math_vec!(3, filament_math_half3, ::half::f16);

math_vec!(2, filament_math_bool2, ::std::os::raw::c_char);
math_vec!(2, filament_math_int2, ::std::os::raw::c_int);
math_vec!(2, filament_math_uint2, ::std::os::raw::c_uint);
math_vec!(2, filament_math_double2, ::std::os::raw::c_double);
math_vec!(2, filament_math_float2, ::std::os::raw::c_float);
math_vec!(2, filament_math_short2, ::std::os::raw::c_short);
math_vec!(2, filament_math_ushort2, ::std::os::raw::c_ushort);
math_vec!(2, filament_math_half2, ::half::f16);

math_vec!(16, filament_math_mat4, ::std::os::raw::c_double);
math_vec!(16, filament_math_mat4f, ::std::os::raw::c_float);

math_vec!(9, filament_math_mat3, ::std::os::raw::c_double);
math_vec!(9, filament_math_mat3f, ::std::os::raw::c_float);

math_vec!(4, filament_math_mat2, ::std::os::raw::c_double);
math_vec!(4, filament_math_mat2f, ::std::os::raw::c_float);

math_vec!(4, filament_math_quat, ::std::os::raw::c_double);
math_vec!(4, filament_math_quatf, ::std::os::raw::c_float);
math_vec!(4, filament_math_quath, ::half::f16);