mocha-rs 0.1.0

Binding for mocha parser an elegant configuration language for both humans and machines
Documentation
#![allow(
    dead_code,
    non_camel_case_types,
    non_snake_case,
    non_upper_case_globals,
)]
pub const mocha_error_t_MOCHA_ERROR_NONE: mocha_error_t = 0;
pub const mocha_error_t_MOCHA_ERROR_MISSING_FIELD: mocha_error_t = 1;
pub const mocha_error_t_MOCHA_ERROR_DUPLICATE_FIELD: mocha_error_t = 2;
pub const mocha_error_t_MOCHA_ERROR_ROOT_REFERENCE: mocha_error_t = 3;
pub const mocha_error_t_MOCHA_ERROR_OUT_OF_MEMORY: mocha_error_t = 4;
pub const mocha_error_t_MOCHA_ERROR_INVALID_CHARACTER: mocha_error_t = 5;
pub const mocha_error_t_MOCHA_ERROR_OVERFLOW: mocha_error_t = 6;
pub const mocha_error_t_MOCHA_ERROR_END_OF_STREAM: mocha_error_t = 7;
pub const mocha_error_t_MOCHA_ERROR_UNEXPECTED_TOKEN: mocha_error_t = 8;
pub const mocha_error_t_MOCHA_ERROR_UNEXPECTED_CHARACTER: mocha_error_t = 9;
pub type mocha_error_t = ::std::os::raw::c_uint;
pub const mocha_value_type_t_MOCHA_VALUE_TYPE_NIL: mocha_value_type_t = 0;
pub const mocha_value_type_t_MOCHA_VALUE_TYPE_STRING: mocha_value_type_t = 1;
pub const mocha_value_type_t_MOCHA_VALUE_TYPE_REFERENCE: mocha_value_type_t = 2;
pub const mocha_value_type_t_MOCHA_VALUE_TYPE_BOOLEAN: mocha_value_type_t = 3;
pub const mocha_value_type_t_MOCHA_VALUE_TYPE_OBJECT: mocha_value_type_t = 4;
pub const mocha_value_type_t_MOCHA_VALUE_TYPE_ARRAY: mocha_value_type_t = 5;
pub const mocha_value_type_t_MOCHA_VALUE_TYPE_FLOAT64: mocha_value_type_t = 6;
pub const mocha_value_type_t_MOCHA_VALUE_TYPE_INTEGER64: mocha_value_type_t = 7;
pub type mocha_value_type_t = ::std::os::raw::c_uint;

#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mocha_reference_t {
    pub name: *const ::std::os::raw::c_char,
    pub name_len: usize,
    pub child: *const ::std::os::raw::c_void,
    pub index: usize,
}

#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mocha_array_t {
    pub items: *mut ::std::os::raw::c_void,
    pub items_len: usize,
}

#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mocha_object_t {
    pub fields: *mut ::std::os::raw::c_void,
    pub fields_len: usize,
}

#[repr(C)]
#[derive(Copy, Clone)]
pub union mocha_value_t {
    pub string: *const ::std::os::raw::c_char,
    pub reference: mocha_reference_t,
    pub boolean: ::std::os::raw::c_int,
    pub object: mocha_object_t,
    pub array: mocha_array_t,
    pub float64: f64,
    pub integer64: i64,
}

#[repr(C)]
#[derive(Copy, Clone)]
pub struct mocha_field_t {
    pub name: *const ::std::os::raw::c_char,
    pub value: mocha_value_t,
    pub type_: mocha_value_type_t,
}

extern "C" {
    pub fn mocha_parse(
        object: *mut mocha_object_t,
        src: *const ::std::os::raw::c_char,
    ) -> mocha_error_t;
    pub fn mocha_nparse(
        object: *mut mocha_object_t,
        src: *const ::std::os::raw::c_char,
	len: usize,
    ) -> mocha_error_t;
    pub fn mocha_deinit(object: *mut mocha_object_t);
    pub fn mocha_field(object: *const mocha_object_t, index: usize) -> mocha_field_t;
    pub fn mocha_array(
        array: *const mocha_array_t,
        value: *mut mocha_value_t,
        index: usize,
    ) -> mocha_value_type_t;
    pub fn mocha_reference_next(reference: *mut mocha_reference_t) -> ::std::os::raw::c_int;
}