Macro julia::extern_jl [] [src]

macro_rules! extern_jl {
    {
        extern "Julia" $lib:ident :: $struct:ident {
            $(
                pub fn $name:ident ( $( $arg:ident : $type:ty ),* ) -> $out:ty $body:block
            )*
        }
    } => { ... };
}

Turns Rust functions into Julia extern functions.

Syntax

extern_jl! {
    extern "Julia" <libname> :: <StructName> {
        pub fn <func> ( <arg: Type> ) -> OutType {
            <body>
        }
    }
}

extern_jl! { extern "Julia" libsquare :: Square { pub fn square(x: Float64) -> Float64 { x * x } } }

fn main() { let mut jl = Julia::new().unwrap()

let sqr = Square::new();
sqr.decl(&mut jl);

jl.eval_string("assert(square(5.0) == 25.0)");

} ```