/* automatically generated by rust-bindgen */

pub const DUK_VERSION: u32 = 20201;
pub const DUK_GIT_COMMIT: &'static [u8; 41usize] = b"25420e773c5fbc50d5b46bf487fc45717e35b94f\0";
pub const DUK_GIT_DESCRIBE: &'static [u8; 7usize] = b"v2.2.1\0";
pub const DUK_GIT_BRANCH: &'static [u8; 17usize] = b"v2.2-maintenance\0";
pub const DUK_USE_OS_STRING: &'static [u8; 6usize] = b"linux\0";
pub const DUK_USE_ARCH_STRING: &'static [u8; 4usize] = b"x64\0";
pub const DUK_USE_BYTEORDER: u32 = 1;
pub const DUK_USE_ALIGN_BY: u32 = 1;
pub const DUK_USE_COMPILER_STRING: &'static [u8; 6usize] = b"clang\0";
pub const DUK_UINT8_MIN: u32 = 0;
pub const DUK_UINT8_MAX: u32 = 255;
pub const DUK_INT8_MIN: i32 = -128;
pub const DUK_INT8_MAX: u32 = 127;
pub const DUK_UINT_LEAST8_MIN: u32 = 0;
pub const DUK_UINT_LEAST8_MAX: u32 = 255;
pub const DUK_INT_LEAST8_MIN: i32 = -128;
pub const DUK_INT_LEAST8_MAX: u32 = 127;
pub const DUK_UINT_FAST8_MIN: u32 = 0;
pub const DUK_UINT_FAST8_MAX: u32 = 255;
pub const DUK_INT_FAST8_MIN: i32 = -128;
pub const DUK_INT_FAST8_MAX: u32 = 127;
pub const DUK_UINT16_MIN: u32 = 0;
pub const DUK_UINT16_MAX: u32 = 65535;
pub const DUK_INT16_MIN: i32 = -32768;
pub const DUK_INT16_MAX: u32 = 32767;
pub const DUK_UINT_LEAST16_MIN: u32 = 0;
pub const DUK_UINT_LEAST16_MAX: u32 = 65535;
pub const DUK_INT_LEAST16_MIN: i32 = -32768;
pub const DUK_INT_LEAST16_MAX: u32 = 32767;
pub const DUK_UINT_FAST16_MIN: u32 = 0;
pub const DUK_UINT_FAST16_MAX: i32 = -1;
pub const DUK_INT_FAST16_MIN: i64 = -9223372036854775808;
pub const DUK_INT_FAST16_MAX: u64 = 9223372036854775807;
pub const DUK_UINT32_MIN: u32 = 0;
pub const DUK_UINT32_MAX: u32 = 4294967295;
pub const DUK_INT32_MIN: i32 = -2147483648;
pub const DUK_INT32_MAX: u32 = 2147483647;
pub const DUK_UINT_LEAST32_MIN: u32 = 0;
pub const DUK_UINT_LEAST32_MAX: u32 = 4294967295;
pub const DUK_INT_LEAST32_MIN: i32 = -2147483648;
pub const DUK_INT_LEAST32_MAX: u32 = 2147483647;
pub const DUK_UINT_FAST32_MIN: u32 = 0;
pub const DUK_UINT_FAST32_MAX: i32 = -1;
pub const DUK_INT_FAST32_MIN: i64 = -9223372036854775808;
pub const DUK_INT_FAST32_MAX: u64 = 9223372036854775807;
pub const DUK_UINT64_MIN: u32 = 0;
pub const DUK_UINT_LEAST64_MIN: u32 = 0;
pub const DUK_UINT_FAST64_MIN: u32 = 0;
pub const DUK_UINTPTR_MIN: u32 = 0;
pub const DUK_UINTPTR_MAX: i32 = -1;
pub const DUK_INTPTR_MIN: i64 = -9223372036854775808;
pub const DUK_INTPTR_MAX: u64 = 9223372036854775807;
pub const DUK_UINTMAX_MIN: u32 = 0;
pub const DUK_SIZE_MIN: u32 = 0;
pub const DUK_SIZE_MAX: i32 = -1;
pub const DUK_UINT_MIN: u32 = 0;
pub const DUK_INT_FAST_MIN: i64 = -9223372036854775808;
pub const DUK_INT_FAST_MAX: u64 = 9223372036854775807;
pub const DUK_UINT_FAST_MIN: u32 = 0;
pub const DUK_UINT_FAST_MAX: i32 = -1;
pub const DUK_SMALL_UINT_MIN: u32 = 0;
pub const DUK_SMALL_INT_FAST_MIN: i64 = -9223372036854775808;
pub const DUK_SMALL_INT_FAST_MAX: u64 = 9223372036854775807;
pub const DUK_SMALL_UINT_FAST_MIN: u32 = 0;
pub const DUK_SMALL_UINT_FAST_MAX: i32 = -1;
pub const DUK_BOOL_MIN: u32 = 0;
pub const DUK_UIDX_MIN: u32 = 0;
pub const DUK_UARRIDX_MIN: u32 = 0;
pub const DUK_UCODEPOINT_MIN: u32 = 0;
pub const DUK_FP_NAN: u32 = 0;
pub const DUK_FP_INFINITE: u32 = 1;
pub const DUK_FP_ZERO: u32 = 2;
pub const DUK_FP_SUBNORMAL: u32 = 3;
pub const DUK_FP_NORMAL: u32 = 4;
pub const DUK_USE_CALLSTACK_LIMIT: u32 = 10000;
pub const DUK_USE_COMPILER_RECLIMIT: u32 = 2500;
pub const DUK_USE_DEBUG_BUFSIZE: u32 = 65536;
pub const DUK_USE_DEBUG_LEVEL: u32 = 0;
pub const DUK_USE_ESBC_MAX_BYTES: u32 = 2147418112;
pub const DUK_USE_ESBC_MAX_LINENUMBER: u32 = 2147418112;
pub const DUK_USE_FATAL_MAXLEN: u32 = 128;
pub const DUK_USE_HOBJECT_ARRAY_ABANDON_LIMIT: u32 = 2;
pub const DUK_USE_HOBJECT_ARRAY_FAST_RESIZE_LIMIT: u32 = 9;
pub const DUK_USE_HOBJECT_ARRAY_MINGROW_ADD: u32 = 16;
pub const DUK_USE_HOBJECT_ARRAY_MINGROW_DIVISOR: u32 = 8;
pub const DUK_USE_HOBJECT_ENTRY_MINGROW_ADD: u32 = 16;
pub const DUK_USE_HOBJECT_ENTRY_MINGROW_DIVISOR: u32 = 8;
pub const DUK_USE_HOBJECT_HASH_PROP_LIMIT: u32 = 8;
pub const DUK_USE_JSON_DEC_RECLIMIT: u32 = 1000;
pub const DUK_USE_JSON_ENC_RECLIMIT: u32 = 1000;
pub const DUK_USE_MARK_AND_SWEEP_RECLIMIT: u32 = 256;
pub const DUK_USE_NATIVE_CALL_RECLIMIT: u32 = 1000;
pub const DUK_USE_REGEXP_COMPILER_RECLIMIT: u32 = 10000;
pub const DUK_USE_REGEXP_EXECUTOR_RECLIMIT: u32 = 10000;
pub const DUK_USE_ROM_PTRCOMP_FIRST: u32 = 63488;
pub const DUK_USE_STRHASH_SKIP_SHIFT: u32 = 5;
pub const DUK_USE_STRTAB_GROW_LIMIT: u32 = 17;
pub const DUK_USE_STRTAB_MAXSIZE: u32 = 268435456;
pub const DUK_USE_STRTAB_MINSIZE: u32 = 1024;
pub const DUK_USE_STRTAB_RESIZE_CHECK_MASK: u32 = 255;
pub const DUK_USE_STRTAB_SHRINK_LIMIT: u32 = 6;
pub const DUK_USE_TARGET_INFO: &'static [u8; 8usize] = b"unknown\0";
pub const DUK_USE_TRACEBACK_DEPTH: u32 = 10;
pub const DUK_USE_VALSTACK_GROW_SHIFT: u32 = 2;
pub const DUK_USE_VALSTACK_LIMIT: u32 = 1000000;
pub const DUK_USE_VALSTACK_SHRINK_CHECK_SHIFT: u32 = 2;
pub const DUK_USE_VALSTACK_SHRINK_SLACK_SHIFT: u32 = 4;
pub const DUK_DEBUG_PROTOCOL_VERSION: u32 = 2;
pub const DUK_API_ENTRY_STACK: u32 = 64;
pub const DUK_TYPE_MIN: u32 = 0;
pub const DUK_TYPE_NONE: u32 = 0;
pub const DUK_TYPE_UNDEFINED: u32 = 1;
pub const DUK_TYPE_NULL: u32 = 2;
pub const DUK_TYPE_BOOLEAN: u32 = 3;
pub const DUK_TYPE_NUMBER: u32 = 4;
pub const DUK_TYPE_STRING: u32 = 5;
pub const DUK_TYPE_OBJECT: u32 = 6;
pub const DUK_TYPE_BUFFER: u32 = 7;
pub const DUK_TYPE_POINTER: u32 = 8;
pub const DUK_TYPE_LIGHTFUNC: u32 = 9;
pub const DUK_TYPE_MAX: u32 = 9;
pub const DUK_TYPE_MASK_NONE: u32 = 1;
pub const DUK_TYPE_MASK_UNDEFINED: u32 = 2;
pub const DUK_TYPE_MASK_NULL: u32 = 4;
pub const DUK_TYPE_MASK_BOOLEAN: u32 = 8;
pub const DUK_TYPE_MASK_NUMBER: u32 = 16;
pub const DUK_TYPE_MASK_STRING: u32 = 32;
pub const DUK_TYPE_MASK_OBJECT: u32 = 64;
pub const DUK_TYPE_MASK_BUFFER: u32 = 128;
pub const DUK_TYPE_MASK_POINTER: u32 = 256;
pub const DUK_TYPE_MASK_LIGHTFUNC: u32 = 512;
pub const DUK_TYPE_MASK_THROW: u32 = 1024;
pub const DUK_TYPE_MASK_PROMOTE: u32 = 2048;
pub const DUK_HINT_NONE: u32 = 0;
pub const DUK_HINT_STRING: u32 = 1;
pub const DUK_HINT_NUMBER: u32 = 2;
pub const DUK_ENUM_INCLUDE_NONENUMERABLE: u32 = 1;
pub const DUK_ENUM_INCLUDE_HIDDEN: u32 = 2;
pub const DUK_ENUM_INCLUDE_SYMBOLS: u32 = 4;
pub const DUK_ENUM_EXCLUDE_STRINGS: u32 = 8;
pub const DUK_ENUM_OWN_PROPERTIES_ONLY: u32 = 16;
pub const DUK_ENUM_ARRAY_INDICES_ONLY: u32 = 32;
pub const DUK_ENUM_SORT_ARRAY_INDICES: u32 = 64;
pub const DUK_ENUM_NO_PROXY_BEHAVIOR: u32 = 128;
pub const DUK_COMPILE_EVAL: u32 = 8;
pub const DUK_COMPILE_FUNCTION: u32 = 16;
pub const DUK_COMPILE_STRICT: u32 = 32;
pub const DUK_COMPILE_SHEBANG: u32 = 64;
pub const DUK_COMPILE_SAFE: u32 = 128;
pub const DUK_COMPILE_NORESULT: u32 = 256;
pub const DUK_COMPILE_NOSOURCE: u32 = 512;
pub const DUK_COMPILE_STRLEN: u32 = 1024;
pub const DUK_COMPILE_NOFILENAME: u32 = 2048;
pub const DUK_COMPILE_FUNCEXPR: u32 = 4096;
pub const DUK_DEFPROP_WRITABLE: u32 = 1;
pub const DUK_DEFPROP_ENUMERABLE: u32 = 2;
pub const DUK_DEFPROP_CONFIGURABLE: u32 = 4;
pub const DUK_DEFPROP_HAVE_WRITABLE: u32 = 8;
pub const DUK_DEFPROP_HAVE_ENUMERABLE: u32 = 16;
pub const DUK_DEFPROP_HAVE_CONFIGURABLE: u32 = 32;
pub const DUK_DEFPROP_HAVE_VALUE: u32 = 64;
pub const DUK_DEFPROP_HAVE_GETTER: u32 = 128;
pub const DUK_DEFPROP_HAVE_SETTER: u32 = 256;
pub const DUK_DEFPROP_FORCE: u32 = 512;
pub const DUK_DEFPROP_SET_WRITABLE: u32 = 9;
pub const DUK_DEFPROP_CLEAR_WRITABLE: u32 = 8;
pub const DUK_DEFPROP_SET_ENUMERABLE: u32 = 18;
pub const DUK_DEFPROP_CLEAR_ENUMERABLE: u32 = 16;
pub const DUK_DEFPROP_SET_CONFIGURABLE: u32 = 36;
pub const DUK_DEFPROP_CLEAR_CONFIGURABLE: u32 = 32;
pub const DUK_DEFPROP_W: u32 = 1;
pub const DUK_DEFPROP_E: u32 = 2;
pub const DUK_DEFPROP_C: u32 = 4;
pub const DUK_DEFPROP_WE: u32 = 3;
pub const DUK_DEFPROP_WC: u32 = 5;
pub const DUK_DEFPROP_WEC: u32 = 7;
pub const DUK_DEFPROP_HAVE_W: u32 = 8;
pub const DUK_DEFPROP_HAVE_E: u32 = 16;
pub const DUK_DEFPROP_HAVE_C: u32 = 32;
pub const DUK_DEFPROP_HAVE_WE: u32 = 24;
pub const DUK_DEFPROP_HAVE_WC: u32 = 40;
pub const DUK_DEFPROP_HAVE_WEC: u32 = 56;
pub const DUK_DEFPROP_SET_W: u32 = 9;
pub const DUK_DEFPROP_SET_E: u32 = 18;
pub const DUK_DEFPROP_SET_C: u32 = 36;
pub const DUK_DEFPROP_SET_WE: u32 = 27;
pub const DUK_DEFPROP_SET_WC: u32 = 45;
pub const DUK_DEFPROP_SET_WEC: u32 = 63;
pub const DUK_DEFPROP_CLEAR_W: u32 = 8;
pub const DUK_DEFPROP_CLEAR_E: u32 = 16;
pub const DUK_DEFPROP_CLEAR_C: u32 = 32;
pub const DUK_DEFPROP_CLEAR_WE: u32 = 24;
pub const DUK_DEFPROP_CLEAR_WC: u32 = 40;
pub const DUK_DEFPROP_CLEAR_WEC: u32 = 56;
pub const DUK_DEFPROP_ATTR_W: u32 = 57;
pub const DUK_DEFPROP_ATTR_E: u32 = 58;
pub const DUK_DEFPROP_ATTR_C: u32 = 60;
pub const DUK_DEFPROP_ATTR_WE: u32 = 59;
pub const DUK_DEFPROP_ATTR_WC: u32 = 61;
pub const DUK_DEFPROP_ATTR_WEC: u32 = 63;
pub const DUK_THREAD_NEW_GLOBAL_ENV: u32 = 1;
pub const DUK_GC_COMPACT: u32 = 1;
pub const DUK_ERR_NONE: u32 = 0;
pub const DUK_ERR_ERROR: u32 = 1;
pub const DUK_ERR_EVAL_ERROR: u32 = 2;
pub const DUK_ERR_RANGE_ERROR: u32 = 3;
pub const DUK_ERR_REFERENCE_ERROR: u32 = 4;
pub const DUK_ERR_SYNTAX_ERROR: u32 = 5;
pub const DUK_ERR_TYPE_ERROR: u32 = 6;
pub const DUK_ERR_URI_ERROR: u32 = 7;
pub const DUK_RET_ERROR: i32 = -1;
pub const DUK_RET_EVAL_ERROR: i32 = -2;
pub const DUK_RET_RANGE_ERROR: i32 = -3;
pub const DUK_RET_REFERENCE_ERROR: i32 = -4;
pub const DUK_RET_SYNTAX_ERROR: i32 = -5;
pub const DUK_RET_TYPE_ERROR: i32 = -6;
pub const DUK_RET_URI_ERROR: i32 = -7;
pub const DUK_EXEC_SUCCESS: u32 = 0;
pub const DUK_EXEC_ERROR: u32 = 1;
pub const DUK_LEVEL_DEBUG: u32 = 0;
pub const DUK_LEVEL_DDEBUG: u32 = 1;
pub const DUK_LEVEL_DDDEBUG: u32 = 2;
pub const DUK_BUF_FLAG_DYNAMIC: u32 = 1;
pub const DUK_BUF_FLAG_EXTERNAL: u32 = 2;
pub const DUK_BUF_FLAG_NOZERO: u32 = 4;
pub const DUK_BUFOBJ_ARRAYBUFFER: u32 = 0;
pub const DUK_BUFOBJ_NODEJS_BUFFER: u32 = 1;
pub const DUK_BUFOBJ_DATAVIEW: u32 = 2;
pub const DUK_BUFOBJ_INT8ARRAY: u32 = 3;
pub const DUK_BUFOBJ_UINT8ARRAY: u32 = 4;
pub const DUK_BUFOBJ_UINT8CLAMPEDARRAY: u32 = 5;
pub const DUK_BUFOBJ_INT16ARRAY: u32 = 6;
pub const DUK_BUFOBJ_UINT16ARRAY: u32 = 7;
pub const DUK_BUFOBJ_INT32ARRAY: u32 = 8;
pub const DUK_BUFOBJ_UINT32ARRAY: u32 = 9;
pub const DUK_BUFOBJ_FLOAT32ARRAY: u32 = 10;
pub const DUK_BUFOBJ_FLOAT64ARRAY: u32 = 11;
pub const DUK_BUF_MODE_FIXED: u32 = 0;
pub const DUK_BUF_MODE_DYNAMIC: u32 = 1;
pub const DUK_BUF_MODE_DONTCARE: u32 = 2;
pub const DUK_DATE_MSEC_SECOND: u32 = 1000;
pub const DUK_DATE_MSEC_MINUTE: u32 = 60000;
pub const DUK_DATE_MSEC_HOUR: u32 = 3600000;
pub const DUK_DATE_MSEC_DAY: u32 = 86400000;
pub const DUK_DATE_MIN_ECMA_YEAR: i32 = -271821;
pub const DUK_DATE_MAX_ECMA_YEAR: u32 = 275760;
pub const DUK_DATE_IDX_YEAR: u32 = 0;
pub const DUK_DATE_IDX_MONTH: u32 = 1;
pub const DUK_DATE_IDX_DAY: u32 = 2;
pub const DUK_DATE_IDX_HOUR: u32 = 3;
pub const DUK_DATE_IDX_MINUTE: u32 = 4;
pub const DUK_DATE_IDX_SECOND: u32 = 5;
pub const DUK_DATE_IDX_MILLISECOND: u32 = 6;
pub const DUK_DATE_IDX_WEEKDAY: u32 = 7;
pub const DUK_DATE_IDX_NUM_PARTS: u32 = 8;
pub const DUK_DATE_FLAG_NAN_TO_ZERO: u32 = 1;
pub const DUK_DATE_FLAG_NAN_TO_RANGE_ERROR: u32 = 2;
pub const DUK_DATE_FLAG_ONEBASED: u32 = 4;
pub const DUK_DATE_FLAG_EQUIVYEAR: u32 = 8;
pub const DUK_DATE_FLAG_LOCALTIME: u32 = 16;
pub const DUK_DATE_FLAG_SUB1900: u32 = 32;
pub const DUK_DATE_FLAG_TOSTRING_DATE: u32 = 64;
pub const DUK_DATE_FLAG_TOSTRING_TIME: u32 = 128;
pub const DUK_DATE_FLAG_TOSTRING_LOCALE: u32 = 256;
pub const DUK_DATE_FLAG_TIMESETTER: u32 = 512;
pub const DUK_DATE_FLAG_YEAR_FIXUP: u32 = 1024;
pub const DUK_DATE_FLAG_SEP_T: u32 = 2048;
pub const DUK_DATE_FLAG_VALUE_SHIFT: u32 = 12;
pub type int_least8_t = ::std::os::raw::c_schar;
pub type int_least16_t = ::std::os::raw::c_short;
pub type int_least32_t = ::std::os::raw::c_int;
pub type int_least64_t = ::std::os::raw::c_long;
pub type uint_least8_t = ::std::os::raw::c_uchar;
pub type uint_least16_t = ::std::os::raw::c_ushort;
pub type uint_least32_t = ::std::os::raw::c_uint;
pub type uint_least64_t = ::std::os::raw::c_ulong;
pub type int_fast8_t = ::std::os::raw::c_schar;
pub type int_fast16_t = ::std::os::raw::c_long;
pub type int_fast32_t = ::std::os::raw::c_long;
pub type int_fast64_t = ::std::os::raw::c_long;
pub type uint_fast8_t = ::std::os::raw::c_uchar;
pub type uint_fast16_t = ::std::os::raw::c_ulong;
pub type uint_fast32_t = ::std::os::raw::c_ulong;
pub type uint_fast64_t = ::std::os::raw::c_ulong;
pub type intmax_t = ::std::os::raw::c_long;
pub type uintmax_t = ::std::os::raw::c_ulong;
pub type va_list = __builtin_va_list;
pub type duk_uint8_t = u8;
pub type duk_int8_t = i8;
pub type duk_uint16_t = u16;
pub type duk_int16_t = i16;
pub type duk_uint32_t = u32;
pub type duk_int32_t = i32;
pub type duk_uint64_t = u64;
pub type duk_int64_t = i64;
pub type duk_uint_least8_t = uint_least8_t;
pub type duk_int_least8_t = int_least8_t;
pub type duk_uint_least16_t = uint_least16_t;
pub type duk_int_least16_t = int_least16_t;
pub type duk_uint_least32_t = uint_least32_t;
pub type duk_int_least32_t = int_least32_t;
pub type duk_uint_least64_t = uint_least64_t;
pub type duk_int_least64_t = int_least64_t;
pub type duk_uint_fast8_t = uint_fast8_t;
pub type duk_int_fast8_t = int_fast8_t;
pub type duk_uint_fast16_t = uint_fast16_t;
pub type duk_int_fast16_t = int_fast16_t;
pub type duk_uint_fast32_t = uint_fast32_t;
pub type duk_int_fast32_t = int_fast32_t;
pub type duk_uint_fast64_t = uint_fast64_t;
pub type duk_int_fast64_t = int_fast64_t;
pub type duk_uintptr_t = usize;
pub type duk_intptr_t = isize;
pub type duk_uintmax_t = uintmax_t;
pub type duk_intmax_t = intmax_t;
pub type duk_size_t = usize;
pub type duk_ptrdiff_t = isize;
pub type duk_int_t = ::std::os::raw::c_int;
pub type duk_uint_t = ::std::os::raw::c_uint;
pub type duk_int_fast_t = duk_int_fast32_t;
pub type duk_uint_fast_t = duk_uint_fast32_t;
pub type duk_small_int_t = ::std::os::raw::c_int;
pub type duk_small_uint_t = ::std::os::raw::c_uint;
pub type duk_small_int_fast_t = duk_int_fast16_t;
pub type duk_small_uint_fast_t = duk_uint_fast16_t;
pub type duk_bool_t = duk_small_uint_t;
pub type duk_idx_t = duk_int_t;
pub type duk_uidx_t = duk_uint_t;
pub type duk_uarridx_t = duk_uint_t;
pub type duk_ret_t = duk_small_int_t;
pub type duk_errcode_t = duk_int_t;
pub type duk_codepoint_t = duk_int_t;
pub type duk_ucodepoint_t = duk_uint_t;
pub type duk_float_t = f32;
pub type duk_double_t = f64;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct duk_hthread {
    _unused: [u8; 0],
}
pub type duk_context = duk_hthread;
pub type duk_c_function =
    ::std::option::Option<unsafe extern "C" fn(ctx: *mut duk_context) -> duk_ret_t>;
pub type duk_alloc_function = ::std::option::Option<
    unsafe extern "C" fn(udata: *mut ::std::os::raw::c_void, size: duk_size_t)
        -> *mut ::std::os::raw::c_void,
>;
pub type duk_realloc_function = ::std::option::Option<
    unsafe extern "C" fn(
        udata: *mut ::std::os::raw::c_void,
        ptr: *mut ::std::os::raw::c_void,
        size: duk_size_t,
    ) -> *mut ::std::os::raw::c_void,
>;
pub type duk_free_function = ::std::option::Option<
    unsafe extern "C" fn(udata: *mut ::std::os::raw::c_void, ptr: *mut ::std::os::raw::c_void),
>;
pub type duk_fatal_function = ::std::option::Option<
    unsafe extern "C" fn(udata: *mut ::std::os::raw::c_void, msg: *const ::std::os::raw::c_char),
>;
pub type duk_decode_char_function = ::std::option::Option<
    unsafe extern "C" fn(udata: *mut ::std::os::raw::c_void, codepoint: duk_codepoint_t),
>;
pub type duk_map_char_function = ::std::option::Option<
    unsafe extern "C" fn(udata: *mut ::std::os::raw::c_void, codepoint: duk_codepoint_t)
        -> duk_codepoint_t,
>;
pub type duk_safe_call_function = ::std::option::Option<
    unsafe extern "C" fn(ctx: *mut duk_context, udata: *mut ::std::os::raw::c_void) -> duk_ret_t,
>;
pub type duk_debug_read_function = ::std::option::Option<
    unsafe extern "C" fn(
        udata: *mut ::std::os::raw::c_void,
        buffer: *mut ::std::os::raw::c_char,
        length: duk_size_t,
    ) -> duk_size_t,
>;
pub type duk_debug_write_function = ::std::option::Option<
    unsafe extern "C" fn(
        udata: *mut ::std::os::raw::c_void,
        buffer: *const ::std::os::raw::c_char,
        length: duk_size_t,
    ) -> duk_size_t,
>;
pub type duk_debug_peek_function =
    ::std::option::Option<unsafe extern "C" fn(udata: *mut ::std::os::raw::c_void) -> duk_size_t>;
pub type duk_debug_read_flush_function =
    ::std::option::Option<unsafe extern "C" fn(udata: *mut ::std::os::raw::c_void)>;
pub type duk_debug_write_flush_function =
    ::std::option::Option<unsafe extern "C" fn(udata: *mut ::std::os::raw::c_void)>;
pub type duk_debug_request_function = ::std::option::Option<
    unsafe extern "C" fn(
        ctx: *mut duk_context,
        udata: *mut ::std::os::raw::c_void,
        nvalues: duk_idx_t,
    ) -> duk_idx_t,
>;
pub type duk_debug_detached_function = ::std::option::Option<
    unsafe extern "C" fn(ctx: *mut duk_context, udata: *mut ::std::os::raw::c_void),
>;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct duk_thread_state {
    pub data: [::std::os::raw::c_char; 128usize],
}
#[test]
fn bindgen_test_layout_duk_thread_state() {
    assert_eq!(
        ::std::mem::size_of::<duk_thread_state>(),
        128usize,
        concat!("Size of: ", stringify!(duk_thread_state))
    );
    assert_eq!(
        ::std::mem::align_of::<duk_thread_state>(),
        1usize,
        concat!("Alignment of ", stringify!(duk_thread_state))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<duk_thread_state>())).data as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(duk_thread_state),
            "::",
            stringify!(data)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct duk_memory_functions {
    pub alloc_func: duk_alloc_function,
    pub realloc_func: duk_realloc_function,
    pub free_func: duk_free_function,
    pub udata: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout_duk_memory_functions() {
    assert_eq!(
        ::std::mem::size_of::<duk_memory_functions>(),
        32usize,
        concat!("Size of: ", stringify!(duk_memory_functions))
    );
    assert_eq!(
        ::std::mem::align_of::<duk_memory_functions>(),
        8usize,
        concat!("Alignment of ", stringify!(duk_memory_functions))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<duk_memory_functions>())).alloc_func as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(duk_memory_functions),
            "::",
            stringify!(alloc_func)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<duk_memory_functions>())).realloc_func as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(duk_memory_functions),
            "::",
            stringify!(realloc_func)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<duk_memory_functions>())).free_func as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(duk_memory_functions),
            "::",
            stringify!(free_func)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<duk_memory_functions>())).udata as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(duk_memory_functions),
            "::",
            stringify!(udata)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct duk_function_list_entry {
    pub key: *const ::std::os::raw::c_char,
    pub value: duk_c_function,
    pub nargs: duk_idx_t,
}
#[test]
fn bindgen_test_layout_duk_function_list_entry() {
    assert_eq!(
        ::std::mem::size_of::<duk_function_list_entry>(),
        24usize,
        concat!("Size of: ", stringify!(duk_function_list_entry))
    );
    assert_eq!(
        ::std::mem::align_of::<duk_function_list_entry>(),
        8usize,
        concat!("Alignment of ", stringify!(duk_function_list_entry))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<duk_function_list_entry>())).key as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(duk_function_list_entry),
            "::",
            stringify!(key)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<duk_function_list_entry>())).value as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(duk_function_list_entry),
            "::",
            stringify!(value)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<duk_function_list_entry>())).nargs as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(duk_function_list_entry),
            "::",
            stringify!(nargs)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct duk_number_list_entry {
    pub key: *const ::std::os::raw::c_char,
    pub value: duk_double_t,
}
#[test]
fn bindgen_test_layout_duk_number_list_entry() {
    assert_eq!(
        ::std::mem::size_of::<duk_number_list_entry>(),
        16usize,
        concat!("Size of: ", stringify!(duk_number_list_entry))
    );
    assert_eq!(
        ::std::mem::align_of::<duk_number_list_entry>(),
        8usize,
        concat!("Alignment of ", stringify!(duk_number_list_entry))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<duk_number_list_entry>())).key as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(duk_number_list_entry),
            "::",
            stringify!(key)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<duk_number_list_entry>())).value as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(duk_number_list_entry),
            "::",
            stringify!(value)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct duk_time_components {
    pub year: duk_double_t,
    pub month: duk_double_t,
    pub day: duk_double_t,
    pub hours: duk_double_t,
    pub minutes: duk_double_t,
    pub seconds: duk_double_t,
    pub milliseconds: duk_double_t,
    pub weekday: duk_double_t,
}
#[test]
fn bindgen_test_layout_duk_time_components() {
    assert_eq!(
        ::std::mem::size_of::<duk_time_components>(),
        64usize,
        concat!("Size of: ", stringify!(duk_time_components))
    );
    assert_eq!(
        ::std::mem::align_of::<duk_time_components>(),
        8usize,
        concat!("Alignment of ", stringify!(duk_time_components))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<duk_time_components>())).year as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(duk_time_components),
            "::",
            stringify!(year)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<duk_time_components>())).month as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(duk_time_components),
            "::",
            stringify!(month)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<duk_time_components>())).day as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(duk_time_components),
            "::",
            stringify!(day)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<duk_time_components>())).hours as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(duk_time_components),
            "::",
            stringify!(hours)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<duk_time_components>())).minutes as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(duk_time_components),
            "::",
            stringify!(minutes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<duk_time_components>())).seconds as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(duk_time_components),
            "::",
            stringify!(seconds)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<duk_time_components>())).milliseconds as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(duk_time_components),
            "::",
            stringify!(milliseconds)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<duk_time_components>())).weekday as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(duk_time_components),
            "::",
            stringify!(weekday)
        )
    );
}
extern "C" {
    pub fn duk_create_heap(
        alloc_func: duk_alloc_function,
        realloc_func: duk_realloc_function,
        free_func: duk_free_function,
        heap_udata: *mut ::std::os::raw::c_void,
        fatal_handler: duk_fatal_function,
    ) -> *mut duk_context;
}
extern "C" {
    pub fn duk_destroy_heap(ctx: *mut duk_context);
}
extern "C" {
    pub fn duk_suspend(ctx: *mut duk_context, state: *mut duk_thread_state);
}
extern "C" {
    pub fn duk_resume(ctx: *mut duk_context, state: *const duk_thread_state);
}
extern "C" {
    pub fn duk_alloc_raw(ctx: *mut duk_context, size: duk_size_t) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn duk_free_raw(ctx: *mut duk_context, ptr: *mut ::std::os::raw::c_void);
}
extern "C" {
    pub fn duk_realloc_raw(
        ctx: *mut duk_context,
        ptr: *mut ::std::os::raw::c_void,
        size: duk_size_t,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn duk_alloc(ctx: *mut duk_context, size: duk_size_t) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn duk_free(ctx: *mut duk_context, ptr: *mut ::std::os::raw::c_void);
}
extern "C" {
    pub fn duk_realloc(
        ctx: *mut duk_context,
        ptr: *mut ::std::os::raw::c_void,
        size: duk_size_t,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn duk_get_memory_functions(ctx: *mut duk_context, out_funcs: *mut duk_memory_functions);
}
extern "C" {
    pub fn duk_gc(ctx: *mut duk_context, flags: duk_uint_t);
}
extern "C" {
    pub fn duk_throw_raw(ctx: *mut duk_context);
}
extern "C" {
    pub fn duk_fatal_raw(ctx: *mut duk_context, err_msg: *const ::std::os::raw::c_char);
}
extern "C" {
    pub fn duk_error_raw(
        ctx: *mut duk_context,
        err_code: duk_errcode_t,
        filename: *const ::std::os::raw::c_char,
        line: duk_int_t,
        fmt: *const ::std::os::raw::c_char,
        ...
    );
}
extern "C" {
    pub fn duk_error_va_raw(
        ctx: *mut duk_context,
        err_code: duk_errcode_t,
        filename: *const ::std::os::raw::c_char,
        line: duk_int_t,
        fmt: *const ::std::os::raw::c_char,
        ap: *mut __va_list_tag,
    );
}
extern "C" {
    pub fn duk_is_strict_call(ctx: *mut duk_context) -> duk_bool_t;
}
extern "C" {
    pub fn duk_is_constructor_call(ctx: *mut duk_context) -> duk_bool_t;
}
extern "C" {
    pub fn duk_normalize_index(ctx: *mut duk_context, idx: duk_idx_t) -> duk_idx_t;
}
extern "C" {
    pub fn duk_require_normalize_index(ctx: *mut duk_context, idx: duk_idx_t) -> duk_idx_t;
}
extern "C" {
    pub fn duk_is_valid_index(ctx: *mut duk_context, idx: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_require_valid_index(ctx: *mut duk_context, idx: duk_idx_t);
}
extern "C" {
    pub fn duk_get_top(ctx: *mut duk_context) -> duk_idx_t;
}
extern "C" {
    pub fn duk_set_top(ctx: *mut duk_context, idx: duk_idx_t);
}
extern "C" {
    pub fn duk_get_top_index(ctx: *mut duk_context) -> duk_idx_t;
}
extern "C" {
    pub fn duk_require_top_index(ctx: *mut duk_context) -> duk_idx_t;
}
extern "C" {
    pub fn duk_check_stack(ctx: *mut duk_context, extra: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_require_stack(ctx: *mut duk_context, extra: duk_idx_t);
}
extern "C" {
    pub fn duk_check_stack_top(ctx: *mut duk_context, top: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_require_stack_top(ctx: *mut duk_context, top: duk_idx_t);
}
extern "C" {
    pub fn duk_swap(ctx: *mut duk_context, idx1: duk_idx_t, idx2: duk_idx_t);
}
extern "C" {
    pub fn duk_swap_top(ctx: *mut duk_context, idx: duk_idx_t);
}
extern "C" {
    pub fn duk_dup(ctx: *mut duk_context, from_idx: duk_idx_t);
}
extern "C" {
    pub fn duk_dup_top(ctx: *mut duk_context);
}
extern "C" {
    pub fn duk_insert(ctx: *mut duk_context, to_idx: duk_idx_t);
}
extern "C" {
    pub fn duk_replace(ctx: *mut duk_context, to_idx: duk_idx_t);
}
extern "C" {
    pub fn duk_copy(ctx: *mut duk_context, from_idx: duk_idx_t, to_idx: duk_idx_t);
}
extern "C" {
    pub fn duk_remove(ctx: *mut duk_context, idx: duk_idx_t);
}
extern "C" {
    pub fn duk_xcopymove_raw(
        to_ctx: *mut duk_context,
        from_ctx: *mut duk_context,
        count: duk_idx_t,
        is_copy: duk_bool_t,
    );
}
extern "C" {
    pub fn duk_push_undefined(ctx: *mut duk_context);
}
extern "C" {
    pub fn duk_push_null(ctx: *mut duk_context);
}
extern "C" {
    pub fn duk_push_boolean(ctx: *mut duk_context, val: duk_bool_t);
}
extern "C" {
    pub fn duk_push_true(ctx: *mut duk_context);
}
extern "C" {
    pub fn duk_push_false(ctx: *mut duk_context);
}
extern "C" {
    pub fn duk_push_number(ctx: *mut duk_context, val: duk_double_t);
}
extern "C" {
    pub fn duk_push_nan(ctx: *mut duk_context);
}
extern "C" {
    pub fn duk_push_int(ctx: *mut duk_context, val: duk_int_t);
}
extern "C" {
    pub fn duk_push_uint(ctx: *mut duk_context, val: duk_uint_t);
}
extern "C" {
    pub fn duk_push_string(
        ctx: *mut duk_context,
        str: *const ::std::os::raw::c_char,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn duk_push_lstring(
        ctx: *mut duk_context,
        str: *const ::std::os::raw::c_char,
        len: duk_size_t,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn duk_push_pointer(ctx: *mut duk_context, p: *mut ::std::os::raw::c_void);
}
extern "C" {
    pub fn duk_push_sprintf(
        ctx: *mut duk_context,
        fmt: *const ::std::os::raw::c_char,
        ...
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn duk_push_vsprintf(
        ctx: *mut duk_context,
        fmt: *const ::std::os::raw::c_char,
        ap: *mut __va_list_tag,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn duk_push_this(ctx: *mut duk_context);
}
extern "C" {
    pub fn duk_push_current_function(ctx: *mut duk_context);
}
extern "C" {
    pub fn duk_push_current_thread(ctx: *mut duk_context);
}
extern "C" {
    pub fn duk_push_global_object(ctx: *mut duk_context);
}
extern "C" {
    pub fn duk_push_heap_stash(ctx: *mut duk_context);
}
extern "C" {
    pub fn duk_push_global_stash(ctx: *mut duk_context);
}
extern "C" {
    pub fn duk_push_thread_stash(ctx: *mut duk_context, target_ctx: *mut duk_context);
}
extern "C" {
    pub fn duk_push_object(ctx: *mut duk_context) -> duk_idx_t;
}
extern "C" {
    pub fn duk_push_bare_object(ctx: *mut duk_context) -> duk_idx_t;
}
extern "C" {
    pub fn duk_push_array(ctx: *mut duk_context) -> duk_idx_t;
}
extern "C" {
    pub fn duk_push_c_function(
        ctx: *mut duk_context,
        func: duk_c_function,
        nargs: duk_idx_t,
    ) -> duk_idx_t;
}
extern "C" {
    pub fn duk_push_c_lightfunc(
        ctx: *mut duk_context,
        func: duk_c_function,
        nargs: duk_idx_t,
        length: duk_idx_t,
        magic: duk_int_t,
    ) -> duk_idx_t;
}
extern "C" {
    pub fn duk_push_thread_raw(ctx: *mut duk_context, flags: duk_uint_t) -> duk_idx_t;
}
extern "C" {
    pub fn duk_push_proxy(ctx: *mut duk_context, proxy_flags: duk_uint_t) -> duk_idx_t;
}
extern "C" {
    pub fn duk_push_error_object_raw(
        ctx: *mut duk_context,
        err_code: duk_errcode_t,
        filename: *const ::std::os::raw::c_char,
        line: duk_int_t,
        fmt: *const ::std::os::raw::c_char,
        ...
    ) -> duk_idx_t;
}
extern "C" {
    pub fn duk_push_error_object_va_raw(
        ctx: *mut duk_context,
        err_code: duk_errcode_t,
        filename: *const ::std::os::raw::c_char,
        line: duk_int_t,
        fmt: *const ::std::os::raw::c_char,
        ap: *mut __va_list_tag,
    ) -> duk_idx_t;
}
extern "C" {
    pub fn duk_push_buffer_raw(
        ctx: *mut duk_context,
        size: duk_size_t,
        flags: duk_small_uint_t,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn duk_push_buffer_object(
        ctx: *mut duk_context,
        idx_buffer: duk_idx_t,
        byte_offset: duk_size_t,
        byte_length: duk_size_t,
        flags: duk_uint_t,
    );
}
extern "C" {
    pub fn duk_push_heapptr(ctx: *mut duk_context, ptr: *mut ::std::os::raw::c_void) -> duk_idx_t;
}
extern "C" {
    pub fn duk_pop(ctx: *mut duk_context);
}
extern "C" {
    pub fn duk_pop_n(ctx: *mut duk_context, count: duk_idx_t);
}
extern "C" {
    pub fn duk_pop_2(ctx: *mut duk_context);
}
extern "C" {
    pub fn duk_pop_3(ctx: *mut duk_context);
}
extern "C" {
    pub fn duk_get_type(ctx: *mut duk_context, idx: duk_idx_t) -> duk_int_t;
}
extern "C" {
    pub fn duk_check_type(ctx: *mut duk_context, idx: duk_idx_t, type_: duk_int_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_get_type_mask(ctx: *mut duk_context, idx: duk_idx_t) -> duk_uint_t;
}
extern "C" {
    pub fn duk_check_type_mask(
        ctx: *mut duk_context,
        idx: duk_idx_t,
        mask: duk_uint_t,
    ) -> duk_bool_t;
}
extern "C" {
    pub fn duk_is_undefined(ctx: *mut duk_context, idx: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_is_null(ctx: *mut duk_context, idx: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_is_boolean(ctx: *mut duk_context, idx: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_is_number(ctx: *mut duk_context, idx: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_is_nan(ctx: *mut duk_context, idx: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_is_string(ctx: *mut duk_context, idx: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_is_object(ctx: *mut duk_context, idx: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_is_buffer(ctx: *mut duk_context, idx: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_is_buffer_data(ctx: *mut duk_context, idx: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_is_pointer(ctx: *mut duk_context, idx: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_is_lightfunc(ctx: *mut duk_context, idx: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_is_symbol(ctx: *mut duk_context, idx: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_is_array(ctx: *mut duk_context, idx: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_is_function(ctx: *mut duk_context, idx: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_is_c_function(ctx: *mut duk_context, idx: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_is_ecmascript_function(ctx: *mut duk_context, idx: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_is_bound_function(ctx: *mut duk_context, idx: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_is_thread(ctx: *mut duk_context, idx: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_is_constructable(ctx: *mut duk_context, idx: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_is_dynamic_buffer(ctx: *mut duk_context, idx: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_is_fixed_buffer(ctx: *mut duk_context, idx: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_is_external_buffer(ctx: *mut duk_context, idx: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_get_error_code(ctx: *mut duk_context, idx: duk_idx_t) -> duk_errcode_t;
}
extern "C" {
    pub fn duk_get_boolean(ctx: *mut duk_context, idx: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_get_number(ctx: *mut duk_context, idx: duk_idx_t) -> duk_double_t;
}
extern "C" {
    pub fn duk_get_int(ctx: *mut duk_context, idx: duk_idx_t) -> duk_int_t;
}
extern "C" {
    pub fn duk_get_uint(ctx: *mut duk_context, idx: duk_idx_t) -> duk_uint_t;
}
extern "C" {
    pub fn duk_get_string(ctx: *mut duk_context, idx: duk_idx_t) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn duk_get_lstring(
        ctx: *mut duk_context,
        idx: duk_idx_t,
        out_len: *mut duk_size_t,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn duk_get_buffer(
        ctx: *mut duk_context,
        idx: duk_idx_t,
        out_size: *mut duk_size_t,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn duk_get_buffer_data(
        ctx: *mut duk_context,
        idx: duk_idx_t,
        out_size: *mut duk_size_t,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn duk_get_pointer(ctx: *mut duk_context, idx: duk_idx_t) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn duk_get_c_function(ctx: *mut duk_context, idx: duk_idx_t) -> duk_c_function;
}
extern "C" {
    pub fn duk_get_context(ctx: *mut duk_context, idx: duk_idx_t) -> *mut duk_context;
}
extern "C" {
    pub fn duk_get_heapptr(ctx: *mut duk_context, idx: duk_idx_t) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn duk_get_boolean_default(
        ctx: *mut duk_context,
        idx: duk_idx_t,
        def_value: duk_bool_t,
    ) -> duk_bool_t;
}
extern "C" {
    pub fn duk_get_number_default(
        ctx: *mut duk_context,
        idx: duk_idx_t,
        def_value: duk_double_t,
    ) -> duk_double_t;
}
extern "C" {
    pub fn duk_get_int_default(
        ctx: *mut duk_context,
        idx: duk_idx_t,
        def_value: duk_int_t,
    ) -> duk_int_t;
}
extern "C" {
    pub fn duk_get_uint_default(
        ctx: *mut duk_context,
        idx: duk_idx_t,
        def_value: duk_uint_t,
    ) -> duk_uint_t;
}
extern "C" {
    pub fn duk_get_string_default(
        ctx: *mut duk_context,
        idx: duk_idx_t,
        def_value: *const ::std::os::raw::c_char,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn duk_get_lstring_default(
        ctx: *mut duk_context,
        idx: duk_idx_t,
        out_len: *mut duk_size_t,
        def_ptr: *const ::std::os::raw::c_char,
        def_len: duk_size_t,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn duk_get_buffer_default(
        ctx: *mut duk_context,
        idx: duk_idx_t,
        out_size: *mut duk_size_t,
        def_ptr: *mut ::std::os::raw::c_void,
        def_len: duk_size_t,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn duk_get_buffer_data_default(
        ctx: *mut duk_context,
        idx: duk_idx_t,
        out_size: *mut duk_size_t,
        def_ptr: *mut ::std::os::raw::c_void,
        def_len: duk_size_t,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn duk_get_pointer_default(
        ctx: *mut duk_context,
        idx: duk_idx_t,
        def_value: *mut ::std::os::raw::c_void,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn duk_get_c_function_default(
        ctx: *mut duk_context,
        idx: duk_idx_t,
        def_value: duk_c_function,
    ) -> duk_c_function;
}
extern "C" {
    pub fn duk_get_context_default(
        ctx: *mut duk_context,
        idx: duk_idx_t,
        def_value: *mut duk_context,
    ) -> *mut duk_context;
}
extern "C" {
    pub fn duk_get_heapptr_default(
        ctx: *mut duk_context,
        idx: duk_idx_t,
        def_value: *mut ::std::os::raw::c_void,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn duk_opt_boolean(
        ctx: *mut duk_context,
        idx: duk_idx_t,
        def_value: duk_bool_t,
    ) -> duk_bool_t;
}
extern "C" {
    pub fn duk_opt_number(
        ctx: *mut duk_context,
        idx: duk_idx_t,
        def_value: duk_double_t,
    ) -> duk_double_t;
}
extern "C" {
    pub fn duk_opt_int(ctx: *mut duk_context, idx: duk_idx_t, def_value: duk_int_t) -> duk_int_t;
}
extern "C" {
    pub fn duk_opt_uint(ctx: *mut duk_context, idx: duk_idx_t, def_value: duk_uint_t)
        -> duk_uint_t;
}
extern "C" {
    pub fn duk_opt_string(
        ctx: *mut duk_context,
        idx: duk_idx_t,
        def_ptr: *const ::std::os::raw::c_char,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn duk_opt_lstring(
        ctx: *mut duk_context,
        idx: duk_idx_t,
        out_len: *mut duk_size_t,
        def_ptr: *const ::std::os::raw::c_char,
        def_len: duk_size_t,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn duk_opt_buffer(
        ctx: *mut duk_context,
        idx: duk_idx_t,
        out_size: *mut duk_size_t,
        def_ptr: *mut ::std::os::raw::c_void,
        def_size: duk_size_t,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn duk_opt_buffer_data(
        ctx: *mut duk_context,
        idx: duk_idx_t,
        out_size: *mut duk_size_t,
        def_ptr: *mut ::std::os::raw::c_void,
        def_size: duk_size_t,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn duk_opt_pointer(
        ctx: *mut duk_context,
        idx: duk_idx_t,
        def_value: *mut ::std::os::raw::c_void,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn duk_opt_c_function(
        ctx: *mut duk_context,
        idx: duk_idx_t,
        def_value: duk_c_function,
    ) -> duk_c_function;
}
extern "C" {
    pub fn duk_opt_context(
        ctx: *mut duk_context,
        idx: duk_idx_t,
        def_value: *mut duk_context,
    ) -> *mut duk_context;
}
extern "C" {
    pub fn duk_opt_heapptr(
        ctx: *mut duk_context,
        idx: duk_idx_t,
        def_value: *mut ::std::os::raw::c_void,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn duk_require_undefined(ctx: *mut duk_context, idx: duk_idx_t);
}
extern "C" {
    pub fn duk_require_null(ctx: *mut duk_context, idx: duk_idx_t);
}
extern "C" {
    pub fn duk_require_boolean(ctx: *mut duk_context, idx: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_require_number(ctx: *mut duk_context, idx: duk_idx_t) -> duk_double_t;
}
extern "C" {
    pub fn duk_require_int(ctx: *mut duk_context, idx: duk_idx_t) -> duk_int_t;
}
extern "C" {
    pub fn duk_require_uint(ctx: *mut duk_context, idx: duk_idx_t) -> duk_uint_t;
}
extern "C" {
    pub fn duk_require_string(
        ctx: *mut duk_context,
        idx: duk_idx_t,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn duk_require_lstring(
        ctx: *mut duk_context,
        idx: duk_idx_t,
        out_len: *mut duk_size_t,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn duk_require_object(ctx: *mut duk_context, idx: duk_idx_t);
}
extern "C" {
    pub fn duk_require_buffer(
        ctx: *mut duk_context,
        idx: duk_idx_t,
        out_size: *mut duk_size_t,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn duk_require_buffer_data(
        ctx: *mut duk_context,
        idx: duk_idx_t,
        out_size: *mut duk_size_t,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn duk_require_pointer(
        ctx: *mut duk_context,
        idx: duk_idx_t,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn duk_require_c_function(ctx: *mut duk_context, idx: duk_idx_t) -> duk_c_function;
}
extern "C" {
    pub fn duk_require_context(ctx: *mut duk_context, idx: duk_idx_t) -> *mut duk_context;
}
extern "C" {
    pub fn duk_require_function(ctx: *mut duk_context, idx: duk_idx_t);
}
extern "C" {
    pub fn duk_require_heapptr(
        ctx: *mut duk_context,
        idx: duk_idx_t,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn duk_to_undefined(ctx: *mut duk_context, idx: duk_idx_t);
}
extern "C" {
    pub fn duk_to_null(ctx: *mut duk_context, idx: duk_idx_t);
}
extern "C" {
    pub fn duk_to_boolean(ctx: *mut duk_context, idx: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_to_number(ctx: *mut duk_context, idx: duk_idx_t) -> duk_double_t;
}
extern "C" {
    pub fn duk_to_int(ctx: *mut duk_context, idx: duk_idx_t) -> duk_int_t;
}
extern "C" {
    pub fn duk_to_uint(ctx: *mut duk_context, idx: duk_idx_t) -> duk_uint_t;
}
extern "C" {
    pub fn duk_to_int32(ctx: *mut duk_context, idx: duk_idx_t) -> duk_int32_t;
}
extern "C" {
    pub fn duk_to_uint32(ctx: *mut duk_context, idx: duk_idx_t) -> duk_uint32_t;
}
extern "C" {
    pub fn duk_to_uint16(ctx: *mut duk_context, idx: duk_idx_t) -> duk_uint16_t;
}
extern "C" {
    pub fn duk_to_string(ctx: *mut duk_context, idx: duk_idx_t) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn duk_to_lstring(
        ctx: *mut duk_context,
        idx: duk_idx_t,
        out_len: *mut duk_size_t,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn duk_to_buffer_raw(
        ctx: *mut duk_context,
        idx: duk_idx_t,
        out_size: *mut duk_size_t,
        flags: duk_uint_t,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn duk_to_pointer(ctx: *mut duk_context, idx: duk_idx_t) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn duk_to_object(ctx: *mut duk_context, idx: duk_idx_t);
}
extern "C" {
    pub fn duk_to_primitive(ctx: *mut duk_context, idx: duk_idx_t, hint: duk_int_t);
}
extern "C" {
    pub fn duk_safe_to_lstring(
        ctx: *mut duk_context,
        idx: duk_idx_t,
        out_len: *mut duk_size_t,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn duk_get_length(ctx: *mut duk_context, idx: duk_idx_t) -> duk_size_t;
}
extern "C" {
    pub fn duk_set_length(ctx: *mut duk_context, idx: duk_idx_t, len: duk_size_t);
}
extern "C" {
    pub fn duk_base64_encode(
        ctx: *mut duk_context,
        idx: duk_idx_t,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn duk_base64_decode(ctx: *mut duk_context, idx: duk_idx_t);
}
extern "C" {
    pub fn duk_hex_encode(ctx: *mut duk_context, idx: duk_idx_t) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn duk_hex_decode(ctx: *mut duk_context, idx: duk_idx_t);
}
extern "C" {
    pub fn duk_json_encode(ctx: *mut duk_context, idx: duk_idx_t) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn duk_json_decode(ctx: *mut duk_context, idx: duk_idx_t);
}
extern "C" {
    pub fn duk_buffer_to_string(
        ctx: *mut duk_context,
        idx: duk_idx_t,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn duk_resize_buffer(
        ctx: *mut duk_context,
        idx: duk_idx_t,
        new_size: duk_size_t,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn duk_steal_buffer(
        ctx: *mut duk_context,
        idx: duk_idx_t,
        out_size: *mut duk_size_t,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn duk_config_buffer(
        ctx: *mut duk_context,
        idx: duk_idx_t,
        ptr: *mut ::std::os::raw::c_void,
        len: duk_size_t,
    );
}
extern "C" {
    pub fn duk_get_prop(ctx: *mut duk_context, obj_idx: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_get_prop_string(
        ctx: *mut duk_context,
        obj_idx: duk_idx_t,
        key: *const ::std::os::raw::c_char,
    ) -> duk_bool_t;
}
extern "C" {
    pub fn duk_get_prop_lstring(
        ctx: *mut duk_context,
        obj_idx: duk_idx_t,
        key: *const ::std::os::raw::c_char,
        key_len: duk_size_t,
    ) -> duk_bool_t;
}
extern "C" {
    pub fn duk_get_prop_index(
        ctx: *mut duk_context,
        obj_idx: duk_idx_t,
        arr_idx: duk_uarridx_t,
    ) -> duk_bool_t;
}
extern "C" {
    pub fn duk_get_prop_heapptr(
        ctx: *mut duk_context,
        obj_idx: duk_idx_t,
        ptr: *mut ::std::os::raw::c_void,
    ) -> duk_bool_t;
}
extern "C" {
    pub fn duk_put_prop(ctx: *mut duk_context, obj_idx: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_put_prop_string(
        ctx: *mut duk_context,
        obj_idx: duk_idx_t,
        key: *const ::std::os::raw::c_char,
    ) -> duk_bool_t;
}
extern "C" {
    pub fn duk_put_prop_lstring(
        ctx: *mut duk_context,
        obj_idx: duk_idx_t,
        key: *const ::std::os::raw::c_char,
        key_len: duk_size_t,
    ) -> duk_bool_t;
}
extern "C" {
    pub fn duk_put_prop_index(
        ctx: *mut duk_context,
        obj_idx: duk_idx_t,
        arr_idx: duk_uarridx_t,
    ) -> duk_bool_t;
}
extern "C" {
    pub fn duk_put_prop_heapptr(
        ctx: *mut duk_context,
        obj_idx: duk_idx_t,
        ptr: *mut ::std::os::raw::c_void,
    ) -> duk_bool_t;
}
extern "C" {
    pub fn duk_del_prop(ctx: *mut duk_context, obj_idx: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_del_prop_string(
        ctx: *mut duk_context,
        obj_idx: duk_idx_t,
        key: *const ::std::os::raw::c_char,
    ) -> duk_bool_t;
}
extern "C" {
    pub fn duk_del_prop_lstring(
        ctx: *mut duk_context,
        obj_idx: duk_idx_t,
        key: *const ::std::os::raw::c_char,
        key_len: duk_size_t,
    ) -> duk_bool_t;
}
extern "C" {
    pub fn duk_del_prop_index(
        ctx: *mut duk_context,
        obj_idx: duk_idx_t,
        arr_idx: duk_uarridx_t,
    ) -> duk_bool_t;
}
extern "C" {
    pub fn duk_del_prop_heapptr(
        ctx: *mut duk_context,
        obj_idx: duk_idx_t,
        ptr: *mut ::std::os::raw::c_void,
    ) -> duk_bool_t;
}
extern "C" {
    pub fn duk_has_prop(ctx: *mut duk_context, obj_idx: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_has_prop_string(
        ctx: *mut duk_context,
        obj_idx: duk_idx_t,
        key: *const ::std::os::raw::c_char,
    ) -> duk_bool_t;
}
extern "C" {
    pub fn duk_has_prop_lstring(
        ctx: *mut duk_context,
        obj_idx: duk_idx_t,
        key: *const ::std::os::raw::c_char,
        key_len: duk_size_t,
    ) -> duk_bool_t;
}
extern "C" {
    pub fn duk_has_prop_index(
        ctx: *mut duk_context,
        obj_idx: duk_idx_t,
        arr_idx: duk_uarridx_t,
    ) -> duk_bool_t;
}
extern "C" {
    pub fn duk_has_prop_heapptr(
        ctx: *mut duk_context,
        obj_idx: duk_idx_t,
        ptr: *mut ::std::os::raw::c_void,
    ) -> duk_bool_t;
}
extern "C" {
    pub fn duk_get_prop_desc(ctx: *mut duk_context, obj_idx: duk_idx_t, flags: duk_uint_t);
}
extern "C" {
    pub fn duk_def_prop(ctx: *mut duk_context, obj_idx: duk_idx_t, flags: duk_uint_t);
}
extern "C" {
    pub fn duk_get_global_string(
        ctx: *mut duk_context,
        key: *const ::std::os::raw::c_char,
    ) -> duk_bool_t;
}
extern "C" {
    pub fn duk_get_global_lstring(
        ctx: *mut duk_context,
        key: *const ::std::os::raw::c_char,
        key_len: duk_size_t,
    ) -> duk_bool_t;
}
extern "C" {
    pub fn duk_put_global_string(
        ctx: *mut duk_context,
        key: *const ::std::os::raw::c_char,
    ) -> duk_bool_t;
}
extern "C" {
    pub fn duk_put_global_lstring(
        ctx: *mut duk_context,
        key: *const ::std::os::raw::c_char,
        key_len: duk_size_t,
    ) -> duk_bool_t;
}
extern "C" {
    pub fn duk_inspect_value(ctx: *mut duk_context, idx: duk_idx_t);
}
extern "C" {
    pub fn duk_inspect_callstack_entry(ctx: *mut duk_context, level: duk_int_t);
}
extern "C" {
    pub fn duk_get_prototype(ctx: *mut duk_context, idx: duk_idx_t);
}
extern "C" {
    pub fn duk_set_prototype(ctx: *mut duk_context, idx: duk_idx_t);
}
extern "C" {
    pub fn duk_get_finalizer(ctx: *mut duk_context, idx: duk_idx_t);
}
extern "C" {
    pub fn duk_set_finalizer(ctx: *mut duk_context, idx: duk_idx_t);
}
extern "C" {
    pub fn duk_set_global_object(ctx: *mut duk_context);
}
extern "C" {
    pub fn duk_get_magic(ctx: *mut duk_context, idx: duk_idx_t) -> duk_int_t;
}
extern "C" {
    pub fn duk_set_magic(ctx: *mut duk_context, idx: duk_idx_t, magic: duk_int_t);
}
extern "C" {
    pub fn duk_get_current_magic(ctx: *mut duk_context) -> duk_int_t;
}
extern "C" {
    pub fn duk_put_function_list(
        ctx: *mut duk_context,
        obj_idx: duk_idx_t,
        funcs: *const duk_function_list_entry,
    );
}
extern "C" {
    pub fn duk_put_number_list(
        ctx: *mut duk_context,
        obj_idx: duk_idx_t,
        numbers: *const duk_number_list_entry,
    );
}
extern "C" {
    pub fn duk_compact(ctx: *mut duk_context, obj_idx: duk_idx_t);
}
extern "C" {
    pub fn duk_enum(ctx: *mut duk_context, obj_idx: duk_idx_t, enum_flags: duk_uint_t);
}
extern "C" {
    pub fn duk_next(
        ctx: *mut duk_context,
        enum_idx: duk_idx_t,
        get_value: duk_bool_t,
    ) -> duk_bool_t;
}
extern "C" {
    pub fn duk_seal(ctx: *mut duk_context, obj_idx: duk_idx_t);
}
extern "C" {
    pub fn duk_freeze(ctx: *mut duk_context, obj_idx: duk_idx_t);
}
extern "C" {
    pub fn duk_concat(ctx: *mut duk_context, count: duk_idx_t);
}
extern "C" {
    pub fn duk_join(ctx: *mut duk_context, count: duk_idx_t);
}
extern "C" {
    pub fn duk_decode_string(
        ctx: *mut duk_context,
        idx: duk_idx_t,
        callback: duk_decode_char_function,
        udata: *mut ::std::os::raw::c_void,
    );
}
extern "C" {
    pub fn duk_map_string(
        ctx: *mut duk_context,
        idx: duk_idx_t,
        callback: duk_map_char_function,
        udata: *mut ::std::os::raw::c_void,
    );
}
extern "C" {
    pub fn duk_substring(
        ctx: *mut duk_context,
        idx: duk_idx_t,
        start_char_offset: duk_size_t,
        end_char_offset: duk_size_t,
    );
}
extern "C" {
    pub fn duk_trim(ctx: *mut duk_context, idx: duk_idx_t);
}
extern "C" {
    pub fn duk_char_code_at(
        ctx: *mut duk_context,
        idx: duk_idx_t,
        char_offset: duk_size_t,
    ) -> duk_codepoint_t;
}
extern "C" {
    pub fn duk_equals(ctx: *mut duk_context, idx1: duk_idx_t, idx2: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_strict_equals(ctx: *mut duk_context, idx1: duk_idx_t, idx2: duk_idx_t)
        -> duk_bool_t;
}
extern "C" {
    pub fn duk_samevalue(ctx: *mut duk_context, idx1: duk_idx_t, idx2: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_instanceof(ctx: *mut duk_context, idx1: duk_idx_t, idx2: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_call(ctx: *mut duk_context, nargs: duk_idx_t);
}
extern "C" {
    pub fn duk_call_method(ctx: *mut duk_context, nargs: duk_idx_t);
}
extern "C" {
    pub fn duk_call_prop(ctx: *mut duk_context, obj_idx: duk_idx_t, nargs: duk_idx_t);
}
extern "C" {
    pub fn duk_pcall(ctx: *mut duk_context, nargs: duk_idx_t) -> duk_int_t;
}
extern "C" {
    pub fn duk_pcall_method(ctx: *mut duk_context, nargs: duk_idx_t) -> duk_int_t;
}
extern "C" {
    pub fn duk_pcall_prop(ctx: *mut duk_context, obj_idx: duk_idx_t, nargs: duk_idx_t)
        -> duk_int_t;
}
extern "C" {
    pub fn duk_new(ctx: *mut duk_context, nargs: duk_idx_t);
}
extern "C" {
    pub fn duk_pnew(ctx: *mut duk_context, nargs: duk_idx_t) -> duk_int_t;
}
extern "C" {
    pub fn duk_safe_call(
        ctx: *mut duk_context,
        func: duk_safe_call_function,
        udata: *mut ::std::os::raw::c_void,
        nargs: duk_idx_t,
        nrets: duk_idx_t,
    ) -> duk_int_t;
}
extern "C" {
    pub fn duk_eval_raw(
        ctx: *mut duk_context,
        src_buffer: *const ::std::os::raw::c_char,
        src_length: duk_size_t,
        flags: duk_uint_t,
    ) -> duk_int_t;
}
extern "C" {
    pub fn duk_compile_raw(
        ctx: *mut duk_context,
        src_buffer: *const ::std::os::raw::c_char,
        src_length: duk_size_t,
        flags: duk_uint_t,
    ) -> duk_int_t;
}
extern "C" {
    pub fn duk_dump_function(ctx: *mut duk_context);
}
extern "C" {
    pub fn duk_load_function(ctx: *mut duk_context);
}
extern "C" {
    pub fn duk_push_context_dump(ctx: *mut duk_context);
}
extern "C" {
    pub fn duk_debugger_attach(
        ctx: *mut duk_context,
        read_cb: duk_debug_read_function,
        write_cb: duk_debug_write_function,
        peek_cb: duk_debug_peek_function,
        read_flush_cb: duk_debug_read_flush_function,
        write_flush_cb: duk_debug_write_flush_function,
        request_cb: duk_debug_request_function,
        detached_cb: duk_debug_detached_function,
        udata: *mut ::std::os::raw::c_void,
    );
}
extern "C" {
    pub fn duk_debugger_detach(ctx: *mut duk_context);
}
extern "C" {
    pub fn duk_debugger_cooperate(ctx: *mut duk_context);
}
extern "C" {
    pub fn duk_debugger_notify(ctx: *mut duk_context, nvalues: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_debugger_pause(ctx: *mut duk_context);
}
extern "C" {
    pub fn duk_get_now(ctx: *mut duk_context) -> duk_double_t;
}
extern "C" {
    pub fn duk_time_to_components(
        ctx: *mut duk_context,
        timeval: duk_double_t,
        comp: *mut duk_time_components,
    );
}
extern "C" {
    pub fn duk_components_to_time(
        ctx: *mut duk_context,
        comp: *mut duk_time_components,
    ) -> duk_double_t;
}
extern "C" {
    pub static mut DUK_INVALID_INDEX: duk_idx_t;
}
extern "C" {
    pub static mut DUK_VARARGS: duk_int_t;
}
extern "C" {
    pub fn duk_create_heap_default() -> *mut duk_context;
}
extern "C" {
    pub fn duk_xmove_top(to_ctx: *mut duk_context, from_ctx: *mut duk_context, count: duk_idx_t);
}
extern "C" {
    pub fn duk_xcopy_top(to_ctx: *mut duk_context, from_ctx: *mut duk_context, count: duk_idx_t);
}
extern "C" {
    pub fn duk_push_string_file(
        ctx: *mut duk_context,
        path: *const ::std::os::raw::c_char,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn duk_push_thread(ctx: *mut duk_context) -> duk_idx_t;
}
extern "C" {
    pub fn duk_push_thread_new_globalenv(ctx: *mut duk_context) -> duk_idx_t;
}
extern "C" {
    pub fn duk_push_error_object(
        ctx: *mut duk_context,
        err_code: duk_errcode_t,
        fmt: *const ::std::os::raw::c_char,
    ) -> duk_idx_t;
}
extern "C" {
    pub fn duk_push_buffer(
        ctx: *mut duk_context,
        size: duk_size_t,
        dynamic: duk_bool_t,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn duk_push_fixed_buffer(
        ctx: *mut duk_context,
        size: duk_size_t,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn duk_push_dynamic_buffer(
        ctx: *mut duk_context,
        size: duk_size_t,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn duk_push_external_buffer(ctx: *mut duk_context);
}
extern "C" {
    pub fn duk_is_callable(ctx: *mut duk_context, index: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_is_primitive(ctx: *mut duk_context, index: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_is_object_coercible(ctx: *mut duk_context, index: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_is_error(ctx: *mut duk_context, index: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_is_eval_error(ctx: *mut duk_context, index: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_is_range_error(ctx: *mut duk_context, index: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_is_reference_error(ctx: *mut duk_context, index: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_is_syntax_error(ctx: *mut duk_context, index: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_is_type_error(ctx: *mut duk_context, index: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_is_uri_error(ctx: *mut duk_context, index: duk_idx_t) -> duk_bool_t;
}
extern "C" {
    pub fn duk_require_type_mask(ctx: *mut duk_context, index: duk_idx_t, mask: duk_uint_t);
}
extern "C" {
    pub fn duk_require_callable(ctx: *mut duk_context, index: duk_idx_t);
}
extern "C" {
    pub fn duk_require_object_coercible(ctx: *mut duk_context, index: duk_idx_t);
}
extern "C" {
    pub fn duk_to_buffer(
        ctx: *mut duk_context,
        index: duk_idx_t,
        out_size: *mut duk_size_t,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn duk_to_fixed_buffer(
        ctx: *mut duk_context,
        index: duk_idx_t,
        out_size: *mut duk_size_t,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn duk_to_dynamic_buffer(
        ctx: *mut duk_context,
        index: duk_idx_t,
        out_size: *mut duk_size_t,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn duk_safe_to_string(
        ctx: *mut duk_context,
        index: duk_idx_t,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn duk_eval(ctx: *mut duk_context);
}
extern "C" {
    pub fn duk_eval_noresult(ctx: *mut duk_context);
}
extern "C" {
    pub fn duk_peval(ctx: *mut duk_context) -> duk_int_t;
}
extern "C" {
    pub fn duk_peval_noresult(ctx: *mut duk_context) -> duk_int_t;
}
extern "C" {
    pub fn duk_compile(ctx: *mut duk_context, flags: duk_uint_t);
}
extern "C" {
    pub fn duk_pcompile(ctx: *mut duk_context, flags: duk_uint_t) -> duk_int_t;
}
extern "C" {
    pub fn duk_eval_string(ctx: *mut duk_context, src: *const ::std::os::raw::c_char);
}
extern "C" {
    pub fn duk_eval_string_noresult(ctx: *mut duk_context, src: *const ::std::os::raw::c_char);
}
extern "C" {
    pub fn duk_peval_string(ctx: *mut duk_context, src: *const ::std::os::raw::c_char)
        -> duk_int_t;
}
extern "C" {
    pub fn duk_peval_string_noresult(
        ctx: *mut duk_context,
        src: *const ::std::os::raw::c_char,
    ) -> duk_int_t;
}
extern "C" {
    pub fn duk_compile_string(
        ctx: *mut duk_context,
        flags: duk_uint_t,
        src: *const ::std::os::raw::c_char,
    );
}
extern "C" {
    pub fn duk_compile_string_filename(
        ctx: *mut duk_context,
        flags: duk_uint_t,
        src: *const ::std::os::raw::c_char,
    );
}
extern "C" {
    pub fn duk_pcompile_string(
        ctx: *mut duk_context,
        flags: duk_uint_t,
        src: *const ::std::os::raw::c_char,
    ) -> duk_int_t;
}
extern "C" {
    pub fn duk_pcompile_string_filename(
        ctx: *mut duk_context,
        flags: duk_uint_t,
        src: *const ::std::os::raw::c_char,
    ) -> duk_int_t;
}
extern "C" {
    pub fn duk_eval_lstring(
        ctx: *mut duk_context,
        buf: *const ::std::os::raw::c_char,
        len: duk_size_t,
    );
}
extern "C" {
    pub fn duk_eval_lstring_noresult(
        ctx: *mut duk_context,
        buf: *const ::std::os::raw::c_char,
        len: duk_size_t,
    );
}
extern "C" {
    pub fn duk_peval_lstring(
        ctx: *mut duk_context,
        buf: *const ::std::os::raw::c_char,
        len: duk_size_t,
    ) -> duk_int_t;
}
extern "C" {
    pub fn duk_peval_lstring_noresult(
        ctx: *mut duk_context,
        buf: *const ::std::os::raw::c_char,
        len: duk_size_t,
    ) -> duk_int_t;
}
extern "C" {
    pub fn duk_compile_lstring(
        ctx: *mut duk_context,
        flags: duk_uint_t,
        buf: *const ::std::os::raw::c_char,
        len: duk_size_t,
    );
}
extern "C" {
    pub fn duk_compile_lstring_filename(
        ctx: *mut duk_context,
        flags: duk_uint_t,
        buf: *const ::std::os::raw::c_char,
        len: duk_size_t,
    );
}
extern "C" {
    pub fn duk_pcompile_lstring(
        ctx: *mut duk_context,
        flags: duk_uint_t,
        buf: *const ::std::os::raw::c_char,
        len: duk_size_t,
    ) -> duk_int_t;
}
extern "C" {
    pub fn duk_pcompile_lstring_filename(
        ctx: *mut duk_context,
        flags: duk_uint_t,
        buf: *const ::std::os::raw::c_char,
        len: duk_size_t,
    ) -> duk_int_t;
}
extern "C" {
    pub fn duk_eval_file(ctx: *mut duk_context, path: *const ::std::os::raw::c_char);
}
extern "C" {
    pub fn duk_eval_file_noresult(ctx: *mut duk_context, path: *const ::std::os::raw::c_char);
}
extern "C" {
    pub fn duk_peval_file(ctx: *mut duk_context, path: *const ::std::os::raw::c_char) -> duk_int_t;
}
extern "C" {
    pub fn duk_peval_file_noresult(
        ctx: *mut duk_context,
        path: *const ::std::os::raw::c_char,
    ) -> duk_int_t;
}
extern "C" {
    pub fn duk_compile_file(
        ctx: *mut duk_context,
        flags: duk_uint_t,
        path: *const ::std::os::raw::c_char,
    );
}
extern "C" {
    pub fn duk_pcompile_file(
        ctx: *mut duk_context,
        flags: duk_uint_t,
        path: *const ::std::os::raw::c_char,
    ) -> duk_int_t;
}
extern "C" {
    pub fn duk_dump_context_stdout(ctx: *mut duk_context);
}
extern "C" {
    pub fn duk_dump_context_stderr(ctx: *mut duk_context);
}
extern "C" {
    pub fn ducc_push_c_function_nothrow(
        ctx: *mut duk_context,
        func: duk_c_function,
        nargs: duk_idx_t,
    ) -> duk_idx_t;
}
pub type ducc_exec_timeout_function =
    ::std::option::Option<unsafe extern "C" fn(udata: *mut ::std::os::raw::c_void) -> duk_bool_t>;
extern "C" {
    pub fn ducc_set_exec_timeout_function(func: ducc_exec_timeout_function);
}
pub type __builtin_va_list = [__va_list_tag; 1usize];
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __va_list_tag {
    pub gp_offset: ::std::os::raw::c_uint,
    pub fp_offset: ::std::os::raw::c_uint,
    pub overflow_arg_area: *mut ::std::os::raw::c_void,
    pub reg_save_area: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout___va_list_tag() {
    assert_eq!(
        ::std::mem::size_of::<__va_list_tag>(),
        24usize,
        concat!("Size of: ", stringify!(__va_list_tag))
    );
    assert_eq!(
        ::std::mem::align_of::<__va_list_tag>(),
        8usize,
        concat!("Alignment of ", stringify!(__va_list_tag))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<__va_list_tag>())).gp_offset as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__va_list_tag),
            "::",
            stringify!(gp_offset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<__va_list_tag>())).fp_offset as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(__va_list_tag),
            "::",
            stringify!(fp_offset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<__va_list_tag>())).overflow_arg_area as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(__va_list_tag),
            "::",
            stringify!(overflow_arg_area)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<__va_list_tag>())).reg_save_area as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(__va_list_tag),
            "::",
            stringify!(reg_save_area)
        )
    );
}
