Crate ocaml [] [src]

ocaml-rs is a library for directly interacting with the C OCaml runtime, in Rust.

This crate will allow you to write OCaml C stubs directly in Rust. It is suggested to build a static library to link to when compiling your OCaml code.

The following in Rust:

caml!(ml_add_10, |arg|, <result>, {
    let n = arg.i32_val();
    result = Value::i32(n + 10)
} -> result);

is equivalent to:

value ml_add_10(value arg) {
    CAMLparam1(arg);
    CAMLlocal(result);
    int n = int_val(arg);
    result = val_int(arg + 10)
    CAMLreturn(result);
}

using the traditional C bindings.

Reexports

pub use value::ToValue;
pub use value::FromValue;
pub use value::Value;

Modules

conv
core
value

Macros

array

Create an OCaml array

caml

Defines an external Rust function for FFI use by an OCaml program, with automatic CAMLparam, CAMLlocal, and CAMLreturn inserted for you.

caml_body

Defines an OCaml FFI body, including any locals, as well as a return if provided; it is up to you to define the parameters.

caml_ffi
caml_local

Initializes and registers the given identifier(s) as a local value with the OCaml runtime.

caml_param

Registers OCaml parameters with the GC

extract_exception
is_exception_result
list

Create an OCaml list

make_exception_result
tuple

Create an OCaml tuple

Structs

Array

OCaml Array type

List

OCaml list type

Str

OCaml String type

Tuple

OCaml Tuple type

Enums

Error

Error returned by ocaml-rs functions

Tag

Tags are used to determine the type of value that is stored in an OCaml value

Functions

named_value

Returns a named value registered by OCaml