Macro julia::decl_jl [] [src]

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

Constructs a Julia function declaration in the form of a stringified Julia expression.

Syntax

decl_jl! { pub extern "Julia" fn :: ( * ) -> OutType; }

Example

let square = decl_jl! {
    pub extern "Julia" fn libsquare :: square(x: Float64) -> Float64;
};
"function square(x::Float64, )
    ccall((:square, \"libsquare\"), Float64, (Float64,), x)
end"