From ca8fa0c7095b854a211e06234491a5eaa53f84bb Mon Sep 17 00:00:00 2001 From: Quba1 <22771850+Quba1@users.noreply.github.com> Date: Fri, 10 Jan 2025 16:48:34 +0100 Subject: [PATCH 1/3] Updated bindgen and bumped crate version --- Cargo.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 0f7e021..b28fb21 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,7 +2,7 @@ name = "eccodes-sys" description = "Low-level Rust bindings for latests ecCodes version." repository = "https://github.com/ScaleWeather/eccodes-sys" -version = "0.5.2" +version = "0.6.0" readme = "README.md" authors = ["Jakub Lewandowski "] keywords = ["eccodes", "grib", "bufr", "meteorology", "weather"] @@ -23,7 +23,7 @@ tests = [] docs = [] [build-dependencies] -bindgen = "0.69" +bindgen = "0.71" pkg-config = "0.3" [package.metadata.docs.rs] From fc3eeb0725d6a8571fe0f147e0cad20f0b63e015 Mon Sep 17 00:00:00 2001 From: Quba1 <22771850+Quba1@users.noreply.github.com> Date: Fri, 10 Jan 2025 16:58:21 +0100 Subject: [PATCH 2/3] Synchronize docs main page with README and add info about docs bindings version --- src/lib.rs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index e9ee8e7..5aa60c9 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -5,6 +5,8 @@ //!# Low-level Rust bindings for ecCodes //! +//!Bindings for this documentation have been generated on Ubuntu 24.04 with `libeccodes` 2.34.1 +//! //!**This is a `-sys` crate with raw, unsafe bindings to the library and its API should not be used directly.** //!See the [eccodes crate](https://github.com/ScaleWeather/eccodes) for high-level, safe bindings. //! @@ -13,7 +15,7 @@ //! //![ecCodes](https://confluence.ecmwf.int/display/ECC/ecCodes+Home) is an open-source library for //!reading and writing GRIB and BUFR files developed by [European Centre for Medium-Range Weather Forecasts](https://www.ecmwf.int/). -//! +//! //!## Usage //! //!This crate will look for existing `libeccodes` installation using [pkg-config](https://crates.io/crates/pkg-config). @@ -33,12 +35,16 @@ //!following [this instructions](https://confluence.ecmwf.int/display/ECC/ecCodes+installation). //! //!Then add the `lib/pkgconfig` directory from your ecCodes installation directory -//!to the `PKG_CONFIG_PATH` environmental variable. For example: +//!to the `PKG_CONFIG_PATH` environmental variable. If ecCodes have been compiled +//!as shared library you will also need to specify `LD_LIBRARY_PATH`. +//!For example: //! //!```text -//!$ export PKG_CONFIG_PATH=/lib/pkgconfig +//!export PKG_CONFIG_PATH=/lib/pkgconfig +//!export LD_LIBRARY_PATH=/lib //!``` //! +//! //!## Features //! //!There are two development features available: From df0e4bc3683daf4a8ccd9f404a7fecfd08a17d4f Mon Sep 17 00:00:00 2001 From: Quba1 <22771850+Quba1@users.noreply.github.com> Date: Fri, 10 Jan 2025 16:59:41 +0100 Subject: [PATCH 3/3] Generate docs bindings with 2.34.1 --- src/bindings-docs.rs | 2469 +++++++++++++++++++++++------------------- 1 file changed, 1373 insertions(+), 1096 deletions(-) diff --git a/src/bindings-docs.rs b/src/bindings-docs.rs index 54fbaa6..567b79b 100644 --- a/src/bindings-docs.rs +++ b/src/bindings-docs.rs @@ -1,5 +1,4 @@ -// automatically generated by rust-bindgen 0.69.2 -// this file is only for documentation building +/* automatically generated by rust-bindgen 0.71.1 */ pub const _STDIO_H: u32 = 1; pub const _FEATURES_H: u32 = 1; @@ -27,6 +26,7 @@ pub const __USE_ATFILE: u32 = 1; pub const __USE_FORTIFY_LEVEL: u32 = 0; pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0; pub const __GLIBC_USE_DEPRECATED_SCANF: u32 = 0; +pub const __GLIBC_USE_C2X_STRTOL: u32 = 0; pub const _STDC_PREDEF_H: u32 = 1; pub const __STDC_IEC_559__: u32 = 1; pub const __STDC_IEC_60559_BFP__: u32 = 201404; @@ -35,7 +35,7 @@ pub const __STDC_IEC_60559_COMPLEX__: u32 = 201404; pub const __STDC_ISO_10646__: u32 = 201706; pub const __GNU_LIBRARY__: u32 = 6; pub const __GLIBC__: u32 = 2; -pub const __GLIBC_MINOR__: u32 = 35; +pub const __GLIBC_MINOR__: u32 = 39; pub const _SYS_CDEFS_H: u32 = 1; pub const __glibc_c99_flexarr_available: u32 = 1; pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI: u32 = 0; @@ -47,7 +47,6 @@ pub const __GLIBC_USE_IEC_60559_EXT: u32 = 0; pub const __GLIBC_USE_IEC_60559_FUNCS_EXT: u32 = 0; pub const __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X: u32 = 0; pub const __GLIBC_USE_IEC_60559_TYPES_EXT: u32 = 0; -pub const __GNUC_VA_LIST: u32 = 1; pub const _BITS_TYPES_H: u32 = 1; pub const _BITS_TYPESIZES_H: u32 = 1; pub const __OFF_T_MATCHES_OFF64_T: u32 = 1; @@ -66,6 +65,7 @@ pub const __struct_FILE_defined: u32 = 1; pub const _IO_EOF_SEEN: u32 = 16; pub const _IO_ERR_SEEN: u32 = 32; pub const _IO_USER_LOCK: u32 = 32768; +pub const __cookie_io_functions_t_defined: u32 = 1; pub const _IOFBF: u32 = 0; pub const _IOLBF: u32 = 1; pub const _IONBF: u32 = 2; @@ -75,9 +75,9 @@ pub const SEEK_SET: u32 = 0; pub const SEEK_CUR: u32 = 1; pub const SEEK_END: u32 = 2; pub const P_tmpdir: &[u8; 5] = b"/tmp\0"; -pub const _BITS_STDIO_LIM_H: u32 = 1; pub const L_tmpnam: u32 = 20; pub const TMP_MAX: u32 = 238328; +pub const _BITS_STDIO_LIM_H: u32 = 1; pub const FILENAME_MAX: u32 = 4096; pub const L_ctermid: u32 = 9; pub const FOPEN_MAX: u32 = 16; @@ -186,11 +186,11 @@ pub const M_2_PI: f64 = 0.6366197723675814; pub const M_2_SQRTPI: f64 = 1.1283791670955126; pub const M_SQRT2: f64 = 1.4142135623730951; pub const M_SQRT1_2: f64 = 0.7071067811865476; -pub const ECCODES_VERSION_STR: &[u8; 7] = b"2.24.2\0"; +pub const ECCODES_VERSION_STR: &[u8; 7] = b"2.34.1\0"; pub const ECCODES_MAJOR_VERSION: u32 = 2; -pub const ECCODES_MINOR_VERSION: u32 = 24; -pub const ECCODES_REVISION_VERSION: u32 = 2; -pub const ECCODES_VERSION: u32 = 22402; +pub const ECCODES_MINOR_VERSION: u32 = 34; +pub const ECCODES_REVISION_VERSION: u32 = 1; +pub const ECCODES_VERSION: u32 = 23401; pub const GRIB_SECTION_PRODUCT: u32 = 1; pub const GRIB_SECTION_GRID: u32 = 2; pub const GRIB_SECTION_LOCAL: u32 = 4; @@ -211,7 +211,6 @@ pub const GRIB_TYPE_LABEL: u32 = 6; pub const GRIB_TYPE_MISSING: u32 = 7; pub const GRIB_MISSING_LONG: u32 = 2147483647; pub const GRIB_MISSING_DOUBLE : f64 = - 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0 ; -pub const GRIB_UTIL_SET_SPEC_FLAGS_ONLY_PACKING: u32 = 1; pub const GRIB_DUMP_FLAG_READ_ONLY: u32 = 1; pub const GRIB_DUMP_FLAG_DUMP_OK: u32 = 2; pub const GRIB_DUMP_FLAG_VALUES: u32 = 4; @@ -226,6 +225,7 @@ pub const GRIB_DUMP_FLAG_ALL_ATTRIBUTES: u32 = 1024; pub const GRIB_NEAREST_SAME_GRID: u32 = 1; pub const GRIB_NEAREST_SAME_DATA: u32 = 2; pub const GRIB_NEAREST_SAME_POINT: u32 = 4; +pub const GRIB_GEOITERATOR_NO_VALUES: u32 = 1; pub const GRIB_KEYS_ITERATOR_ALL_KEYS: u32 = 0; pub const GRIB_KEYS_ITERATOR_SKIP_READ_ONLY: u32 = 1; pub const GRIB_KEYS_ITERATOR_SKIP_OPTIONAL: u32 = 2; @@ -247,6 +247,7 @@ pub const GRIB_UTIL_GRID_SPEC_REDUCED_ROTATED_GG: u32 = 9; pub const GRIB_UTIL_GRID_SPEC_LAMBERT_AZIMUTHAL_EQUAL_AREA: u32 = 10; pub const GRIB_UTIL_GRID_SPEC_LAMBERT_CONFORMAL: u32 = 11; pub const GRIB_UTIL_GRID_SPEC_UNSTRUCTURED: u32 = 12; +pub const GRIB_UTIL_GRID_SPEC_HEALPIX: u32 = 13; pub const GRIB_UTIL_PACKING_TYPE_SAME_AS_INPUT: u32 = 0; pub const GRIB_UTIL_PACKING_TYPE_SPECTRAL_COMPLEX: u32 = 1; pub const GRIB_UTIL_PACKING_TYPE_SPECTRAL_SIMPLE: u32 = 2; @@ -331,7 +332,19 @@ pub const GRIB_UNSUPPORTED_EDITION: i32 = -64; pub const GRIB_OUT_OF_RANGE: i32 = -65; pub const GRIB_WRONG_BITMAP_SIZE: i32 = -66; pub const GRIB_FUNCTIONALITY_NOT_ENABLED: i32 = -67; -pub const CODES_VERSION: u32 = 22402; +pub const GRIB_VALUE_MISMATCH: i32 = -68; +pub const GRIB_DOUBLE_VALUE_MISMATCH: i32 = -69; +pub const GRIB_LONG_VALUE_MISMATCH: i32 = -70; +pub const GRIB_BYTE_VALUE_MISMATCH: i32 = -71; +pub const GRIB_STRING_VALUE_MISMATCH: i32 = -72; +pub const GRIB_OFFSET_MISMATCH: i32 = -73; +pub const GRIB_COUNT_MISMATCH: i32 = -74; +pub const GRIB_NAME_MISMATCH: i32 = -75; +pub const GRIB_TYPE_MISMATCH: i32 = -76; +pub const GRIB_TYPE_AND_VALUE_MISMATCH: i32 = -77; +pub const GRIB_UNABLE_TO_COMPARE_ACCESSORS: i32 = -78; +pub const GRIB_ASSERTION_FAILURE: i32 = -79; +pub const CODES_VERSION: u32 = 23401; pub const CODES_SECTION_PRODUCT: u32 = 1; pub const CODES_SECTION_GRID: u32 = 2; pub const CODES_SECTION_LOCAL: u32 = 4; @@ -352,7 +365,6 @@ pub const CODES_TYPE_LABEL: u32 = 6; pub const CODES_TYPE_MISSING: u32 = 7; pub const CODES_MISSING_LONG: u32 = 2147483647; pub const CODES_MISSING_DOUBLE : f64 = - 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0 ; -pub const CODES_UTIL_SET_SPEC_FLAGS_ONLY_PACKING: u32 = 1; pub const CODES_DUMP_FLAG_READ_ONLY: u32 = 1; pub const CODES_DUMP_FLAG_DUMP_OK: u32 = 2; pub const CODES_DUMP_FLAG_VALUES: u32 = 4; @@ -367,6 +379,7 @@ pub const CODES_DUMP_FLAG_ALL_ATTRIBUTES: u32 = 1024; pub const CODES_NEAREST_SAME_GRID: u32 = 1; pub const CODES_NEAREST_SAME_DATA: u32 = 2; pub const CODES_NEAREST_SAME_POINT: u32 = 4; +pub const CODES_GEOITERATOR_NO_VALUES: u32 = 1; pub const CODES_KEYS_ITERATOR_ALL_KEYS: u32 = 0; pub const CODES_KEYS_ITERATOR_SKIP_READ_ONLY: u32 = 1; pub const CODES_KEYS_ITERATOR_SKIP_OPTIONAL: u32 = 2; @@ -388,6 +401,7 @@ pub const CODES_UTIL_GRID_SPEC_REDUCED_ROTATED_GG: u32 = 9; pub const CODES_UTIL_GRID_SPEC_LAMBERT_AZIMUTHAL_EQUAL_AREA: u32 = 10; pub const CODES_UTIL_GRID_SPEC_LAMBERT_CONFORMAL: u32 = 11; pub const CODES_UTIL_GRID_SPEC_UNSTRUCTURED: u32 = 12; +pub const CODES_UTIL_GRID_SPEC_HEALPIX: u32 = 13; pub const CODES_UTIL_PACKING_TYPE_SAME_AS_INPUT: u32 = 0; pub const CODES_UTIL_PACKING_TYPE_SPECTRAL_COMPLEX: u32 = 1; pub const CODES_UTIL_PACKING_TYPE_SPECTRAL_SIMPLE: u32 = 2; @@ -472,7 +486,18 @@ pub const CODES_UNSUPPORTED_EDITION: i32 = -64; pub const CODES_OUT_OF_RANGE: i32 = -65; pub const CODES_WRONG_BITMAP_SIZE: i32 = -66; pub const CODES_FUNCTIONALITY_NOT_ENABLED: i32 = -67; -pub type va_list = __builtin_va_list; +pub const CODES_VALUE_MISMATCH: i32 = -68; +pub const CODES_DOUBLE_VALUE_MISMATCH: i32 = -69; +pub const CODES_LONG_VALUE_MISMATCH: i32 = -70; +pub const CODES_BYTE_VALUE_MISMATCH: i32 = -71; +pub const CODES_STRING_VALUE_MISMATCH: i32 = -72; +pub const CODES_OFFSET_MISMATCH: i32 = -73; +pub const CODES_COUNT_MISMATCH: i32 = -74; +pub const CODES_NAME_MISMATCH: i32 = -75; +pub const CODES_TYPE_MISMATCH: i32 = -76; +pub const CODES_TYPE_AND_VALUE_MISMATCH: i32 = -77; +pub const CODES_UNABLE_TO_COMPARE_ACCESSORS: i32 = -78; +pub const CODES_ASSERTION_FAILURE: i32 = -79; pub type __gnuc_va_list = __builtin_va_list; pub type __u_char = ::std::os::raw::c_uchar; pub type __u_short = ::std::os::raw::c_ushort; @@ -618,27 +643,61 @@ pub struct _IO_FILE { pub _mode: ::std::os::raw::c_int, pub _unused2: [::std::os::raw::c_char; 20usize], } +pub type cookie_read_function_t = ::std::option::Option< + unsafe extern "C" fn( + __cookie: *mut ::std::os::raw::c_void, + __buf: *mut ::std::os::raw::c_char, + __nbytes: usize, + ) -> __ssize_t, +>; +pub type cookie_write_function_t = ::std::option::Option< + unsafe extern "C" fn( + __cookie: *mut ::std::os::raw::c_void, + __buf: *const ::std::os::raw::c_char, + __nbytes: usize, + ) -> __ssize_t, +>; +pub type cookie_seek_function_t = ::std::option::Option< + unsafe extern "C" fn( + __cookie: *mut ::std::os::raw::c_void, + __pos: *mut __off64_t, + __w: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int, +>; +pub type cookie_close_function_t = ::std::option::Option< + unsafe extern "C" fn(__cookie: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int, +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _IO_cookie_io_functions_t { + pub read: cookie_read_function_t, + pub write: cookie_write_function_t, + pub seek: cookie_seek_function_t, + pub close: cookie_close_function_t, +} +pub type cookie_io_functions_t = _IO_cookie_io_functions_t; +pub type va_list = __gnuc_va_list; pub type off_t = __off_t; pub type fpos_t = __fpos_t; -extern "C" { +unsafe extern "C" { pub static mut stdin: *mut FILE; } -extern "C" { +unsafe extern "C" { pub static mut stdout: *mut FILE; } -extern "C" { +unsafe extern "C" { pub static mut stderr: *mut FILE; } -extern "C" { +unsafe extern "C" { pub fn remove(__filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn rename( __old: *const ::std::os::raw::c_char, __new: *const ::std::os::raw::c_char, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn renameat( __oldfd: ::std::os::raw::c_int, __old: *const ::std::os::raw::c_char, @@ -646,64 +705,71 @@ extern "C" { __new: *const ::std::os::raw::c_char, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn fclose(__stream: *mut FILE) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn tmpfile() -> *mut FILE; } -extern "C" { +unsafe extern "C" { pub fn tmpnam(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn tmpnam_r(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn tempnam( __dir: *const ::std::os::raw::c_char, __pfx: *const ::std::os::raw::c_char, ) -> *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn fflush(__stream: *mut FILE) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn fflush_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn fopen( __filename: *const ::std::os::raw::c_char, __modes: *const ::std::os::raw::c_char, ) -> *mut FILE; } -extern "C" { +unsafe extern "C" { pub fn freopen( __filename: *const ::std::os::raw::c_char, __modes: *const ::std::os::raw::c_char, __stream: *mut FILE, ) -> *mut FILE; } -extern "C" { +unsafe extern "C" { pub fn fdopen(__fd: ::std::os::raw::c_int, __modes: *const ::std::os::raw::c_char) -> *mut FILE; } -extern "C" { +unsafe extern "C" { + pub fn fopencookie( + __magic_cookie: *mut ::std::os::raw::c_void, + __modes: *const ::std::os::raw::c_char, + __io_funcs: cookie_io_functions_t, + ) -> *mut FILE; +} +unsafe extern "C" { pub fn fmemopen( __s: *mut ::std::os::raw::c_void, __len: usize, __modes: *const ::std::os::raw::c_char, ) -> *mut FILE; } -extern "C" { +unsafe extern "C" { pub fn open_memstream( __bufloc: *mut *mut ::std::os::raw::c_char, __sizeloc: *mut usize, ) -> *mut FILE; } -extern "C" { +unsafe extern "C" { pub fn setbuf(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char); } -extern "C" { +unsafe extern "C" { pub fn setvbuf( __stream: *mut FILE, __buf: *mut ::std::os::raw::c_char, @@ -711,50 +777,50 @@ extern "C" { __n: usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn setbuffer(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char, __size: usize); } -extern "C" { +unsafe extern "C" { pub fn setlinebuf(__stream: *mut FILE); } -extern "C" { +unsafe extern "C" { pub fn fprintf( __stream: *mut FILE, __format: *const ::std::os::raw::c_char, ... ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn printf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn sprintf( __s: *mut ::std::os::raw::c_char, __format: *const ::std::os::raw::c_char, ... ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn vfprintf( __s: *mut FILE, __format: *const ::std::os::raw::c_char, __arg: *mut __va_list_tag, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn vprintf( __format: *const ::std::os::raw::c_char, __arg: *mut __va_list_tag, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn vsprintf( __s: *mut ::std::os::raw::c_char, __format: *const ::std::os::raw::c_char, __arg: *mut __va_list_tag, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn snprintf( __s: *mut ::std::os::raw::c_char, __maxlen: ::std::os::raw::c_ulong, @@ -762,7 +828,7 @@ extern "C" { ... ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn vsnprintf( __s: *mut ::std::os::raw::c_char, __maxlen: ::std::os::raw::c_ulong, @@ -770,31 +836,52 @@ extern "C" { __arg: *mut __va_list_tag, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { + pub fn vasprintf( + __ptr: *mut *mut ::std::os::raw::c_char, + __f: *const ::std::os::raw::c_char, + __arg: *mut __va_list_tag, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn __asprintf( + __ptr: *mut *mut ::std::os::raw::c_char, + __fmt: *const ::std::os::raw::c_char, + ... + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn asprintf( + __ptr: *mut *mut ::std::os::raw::c_char, + __fmt: *const ::std::os::raw::c_char, + ... + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { pub fn vdprintf( __fd: ::std::os::raw::c_int, __fmt: *const ::std::os::raw::c_char, __arg: *mut __va_list_tag, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn dprintf( __fd: ::std::os::raw::c_int, __fmt: *const ::std::os::raw::c_char, ... ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn fscanf( __stream: *mut FILE, __format: *const ::std::os::raw::c_char, ... ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn scanf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn sscanf( __s: *const ::std::os::raw::c_char, __format: *const ::std::os::raw::c_char, @@ -805,77 +892,77 @@ pub type _Float32 = f32; pub type _Float64 = f64; pub type _Float32x = f64; pub type _Float64x = u128; -extern "C" { +unsafe extern "C" { pub fn vfscanf( __s: *mut FILE, __format: *const ::std::os::raw::c_char, __arg: *mut __va_list_tag, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn vscanf( __format: *const ::std::os::raw::c_char, __arg: *mut __va_list_tag, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn vsscanf( __s: *const ::std::os::raw::c_char, __format: *const ::std::os::raw::c_char, __arg: *mut __va_list_tag, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn fgetc(__stream: *mut FILE) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn getc(__stream: *mut FILE) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn getchar() -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn getc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn getchar_unlocked() -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn fgetc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn fputc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn putc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn putchar(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn fputc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn putc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn putchar_unlocked(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn getw(__stream: *mut FILE) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn putw(__w: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn fgets( __s: *mut ::std::os::raw::c_char, __n: ::std::os::raw::c_int, __stream: *mut FILE, ) -> *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn __getdelim( __lineptr: *mut *mut ::std::os::raw::c_char, __n: *mut usize, @@ -883,7 +970,7 @@ extern "C" { __stream: *mut FILE, ) -> __ssize_t; } -extern "C" { +unsafe extern "C" { pub fn getdelim( __lineptr: *mut *mut ::std::os::raw::c_char, __n: *mut usize, @@ -891,23 +978,23 @@ extern "C" { __stream: *mut FILE, ) -> __ssize_t; } -extern "C" { +unsafe extern "C" { pub fn getline( __lineptr: *mut *mut ::std::os::raw::c_char, __n: *mut usize, __stream: *mut FILE, ) -> __ssize_t; } -extern "C" { +unsafe extern "C" { pub fn fputs(__s: *const ::std::os::raw::c_char, __stream: *mut FILE) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn puts(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn ungetc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn fread( __ptr: *mut ::std::os::raw::c_void, __size: ::std::os::raw::c_ulong, @@ -915,7 +1002,7 @@ extern "C" { __stream: *mut FILE, ) -> ::std::os::raw::c_ulong; } -extern "C" { +unsafe extern "C" { pub fn fwrite( __ptr: *const ::std::os::raw::c_void, __size: ::std::os::raw::c_ulong, @@ -923,7 +1010,7 @@ extern "C" { __s: *mut FILE, ) -> ::std::os::raw::c_ulong; } -extern "C" { +unsafe extern "C" { pub fn fread_unlocked( __ptr: *mut ::std::os::raw::c_void, __size: usize, @@ -931,7 +1018,7 @@ extern "C" { __stream: *mut FILE, ) -> usize; } -extern "C" { +unsafe extern "C" { pub fn fwrite_unlocked( __ptr: *const ::std::os::raw::c_void, __size: usize, @@ -939,87 +1026,87 @@ extern "C" { __stream: *mut FILE, ) -> usize; } -extern "C" { +unsafe extern "C" { pub fn fseek( __stream: *mut FILE, __off: ::std::os::raw::c_long, __whence: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn ftell(__stream: *mut FILE) -> ::std::os::raw::c_long; } -extern "C" { +unsafe extern "C" { pub fn rewind(__stream: *mut FILE); } -extern "C" { +unsafe extern "C" { pub fn fseeko( __stream: *mut FILE, __off: __off_t, __whence: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn ftello(__stream: *mut FILE) -> __off_t; } -extern "C" { +unsafe extern "C" { pub fn fgetpos(__stream: *mut FILE, __pos: *mut fpos_t) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn fsetpos(__stream: *mut FILE, __pos: *const fpos_t) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn clearerr(__stream: *mut FILE); } -extern "C" { +unsafe extern "C" { pub fn feof(__stream: *mut FILE) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn ferror(__stream: *mut FILE) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn clearerr_unlocked(__stream: *mut FILE); } -extern "C" { +unsafe extern "C" { pub fn feof_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn ferror_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn perror(__s: *const ::std::os::raw::c_char); } -extern "C" { +unsafe extern "C" { pub fn fileno(__stream: *mut FILE) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn fileno_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn pclose(__stream: *mut FILE) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn popen( __command: *const ::std::os::raw::c_char, __modes: *const ::std::os::raw::c_char, ) -> *mut FILE; } -extern "C" { +unsafe extern "C" { pub fn ctermid(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn flockfile(__stream: *mut FILE); } -extern "C" { +unsafe extern "C" { pub fn ftrylockfile(__stream: *mut FILE) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn funlockfile(__stream: *mut FILE); } -extern "C" { +unsafe extern "C" { pub fn __uflow(arg1: *mut FILE) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn __overflow(arg1: *mut FILE, arg2: ::std::os::raw::c_int) -> ::std::os::raw::c_int; } pub type wchar_t = ::std::os::raw::c_int; @@ -1041,85 +1128,85 @@ pub struct lldiv_t { pub quot: ::std::os::raw::c_longlong, pub rem: ::std::os::raw::c_longlong, } -extern "C" { +unsafe extern "C" { pub fn __ctype_get_mb_cur_max() -> usize; } -extern "C" { +unsafe extern "C" { pub fn atof(__nptr: *const ::std::os::raw::c_char) -> f64; } -extern "C" { +unsafe extern "C" { pub fn atoi(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn atol(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long; } -extern "C" { +unsafe extern "C" { pub fn atoll(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_longlong; } -extern "C" { +unsafe extern "C" { pub fn strtod( __nptr: *const ::std::os::raw::c_char, __endptr: *mut *mut ::std::os::raw::c_char, ) -> f64; } -extern "C" { +unsafe extern "C" { pub fn strtof( __nptr: *const ::std::os::raw::c_char, __endptr: *mut *mut ::std::os::raw::c_char, ) -> f32; } -extern "C" { +unsafe extern "C" { pub fn strtold( __nptr: *const ::std::os::raw::c_char, __endptr: *mut *mut ::std::os::raw::c_char, ) -> u128; } -extern "C" { +unsafe extern "C" { pub fn strtol( __nptr: *const ::std::os::raw::c_char, __endptr: *mut *mut ::std::os::raw::c_char, __base: ::std::os::raw::c_int, ) -> ::std::os::raw::c_long; } -extern "C" { +unsafe extern "C" { pub fn strtoul( __nptr: *const ::std::os::raw::c_char, __endptr: *mut *mut ::std::os::raw::c_char, __base: ::std::os::raw::c_int, ) -> ::std::os::raw::c_ulong; } -extern "C" { +unsafe extern "C" { pub fn strtoq( __nptr: *const ::std::os::raw::c_char, __endptr: *mut *mut ::std::os::raw::c_char, __base: ::std::os::raw::c_int, ) -> ::std::os::raw::c_longlong; } -extern "C" { +unsafe extern "C" { pub fn strtouq( __nptr: *const ::std::os::raw::c_char, __endptr: *mut *mut ::std::os::raw::c_char, __base: ::std::os::raw::c_int, ) -> ::std::os::raw::c_ulonglong; } -extern "C" { +unsafe extern "C" { pub fn strtoll( __nptr: *const ::std::os::raw::c_char, __endptr: *mut *mut ::std::os::raw::c_char, __base: ::std::os::raw::c_int, ) -> ::std::os::raw::c_longlong; } -extern "C" { +unsafe extern "C" { pub fn strtoull( __nptr: *const ::std::os::raw::c_char, __endptr: *mut *mut ::std::os::raw::c_char, __base: ::std::os::raw::c_int, ) -> ::std::os::raw::c_ulonglong; } -extern "C" { +unsafe extern "C" { pub fn l64a(__n: ::std::os::raw::c_long) -> *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn a64l(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long; } pub type u_char = __u_char; @@ -1179,7 +1266,7 @@ pub struct fd_set { pub __fds_bits: [__fd_mask; 16usize], } pub type fd_mask = __fd_mask; -extern "C" { +unsafe extern "C" { pub fn select( __nfds: ::std::os::raw::c_int, __readfds: *mut fd_set, @@ -1188,7 +1275,7 @@ extern "C" { __timeout: *mut timeval, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn pselect( __nfds: ::std::os::raw::c_int, __readfds: *mut fd_set, @@ -1334,20 +1421,20 @@ pub union pthread_barrierattr_t { pub __size: [::std::os::raw::c_char; 4usize], pub __align: ::std::os::raw::c_int, } -extern "C" { +unsafe extern "C" { pub fn random() -> ::std::os::raw::c_long; } -extern "C" { +unsafe extern "C" { pub fn srandom(__seed: ::std::os::raw::c_uint); } -extern "C" { +unsafe extern "C" { pub fn initstate( __seed: ::std::os::raw::c_uint, __statebuf: *mut ::std::os::raw::c_char, __statelen: usize, ) -> *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn setstate(__statebuf: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; } #[repr(C)] @@ -1361,16 +1448,16 @@ pub struct random_data { pub rand_sep: ::std::os::raw::c_int, pub end_ptr: *mut i32, } -extern "C" { +unsafe extern "C" { pub fn random_r(__buf: *mut random_data, __result: *mut i32) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn srandom_r( __seed: ::std::os::raw::c_uint, __buf: *mut random_data, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn initstate_r( __seed: ::std::os::raw::c_uint, __statebuf: *mut ::std::os::raw::c_char, @@ -1378,46 +1465,46 @@ extern "C" { __buf: *mut random_data, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn setstate_r( __statebuf: *mut ::std::os::raw::c_char, __buf: *mut random_data, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn rand() -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn srand(__seed: ::std::os::raw::c_uint); } -extern "C" { +unsafe extern "C" { pub fn rand_r(__seed: *mut ::std::os::raw::c_uint) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn drand48() -> f64; } -extern "C" { +unsafe extern "C" { pub fn erand48(__xsubi: *mut ::std::os::raw::c_ushort) -> f64; } -extern "C" { +unsafe extern "C" { pub fn lrand48() -> ::std::os::raw::c_long; } -extern "C" { +unsafe extern "C" { pub fn nrand48(__xsubi: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long; } -extern "C" { +unsafe extern "C" { pub fn mrand48() -> ::std::os::raw::c_long; } -extern "C" { +unsafe extern "C" { pub fn jrand48(__xsubi: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long; } -extern "C" { +unsafe extern "C" { pub fn srand48(__seedval: ::std::os::raw::c_long); } -extern "C" { +unsafe extern "C" { pub fn seed48(__seed16v: *mut ::std::os::raw::c_ushort) -> *mut ::std::os::raw::c_ushort; } -extern "C" { +unsafe extern "C" { pub fn lcong48(__param: *mut ::std::os::raw::c_ushort); } #[repr(C)] @@ -1429,116 +1516,125 @@ pub struct drand48_data { pub __init: ::std::os::raw::c_ushort, pub __a: ::std::os::raw::c_ulonglong, } -extern "C" { +unsafe extern "C" { pub fn drand48_r(__buffer: *mut drand48_data, __result: *mut f64) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn erand48_r( __xsubi: *mut ::std::os::raw::c_ushort, __buffer: *mut drand48_data, __result: *mut f64, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn lrand48_r( __buffer: *mut drand48_data, __result: *mut ::std::os::raw::c_long, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn nrand48_r( __xsubi: *mut ::std::os::raw::c_ushort, __buffer: *mut drand48_data, __result: *mut ::std::os::raw::c_long, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn mrand48_r( __buffer: *mut drand48_data, __result: *mut ::std::os::raw::c_long, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn jrand48_r( __xsubi: *mut ::std::os::raw::c_ushort, __buffer: *mut drand48_data, __result: *mut ::std::os::raw::c_long, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn srand48_r( __seedval: ::std::os::raw::c_long, __buffer: *mut drand48_data, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn seed48_r( __seed16v: *mut ::std::os::raw::c_ushort, __buffer: *mut drand48_data, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn lcong48_r( __param: *mut ::std::os::raw::c_ushort, __buffer: *mut drand48_data, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { + pub fn arc4random() -> __uint32_t; +} +unsafe extern "C" { + pub fn arc4random_buf(__buf: *mut ::std::os::raw::c_void, __size: usize); +} +unsafe extern "C" { + pub fn arc4random_uniform(__upper_bound: __uint32_t) -> __uint32_t; +} +unsafe extern "C" { pub fn malloc(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void; } -extern "C" { +unsafe extern "C" { pub fn calloc( __nmemb: ::std::os::raw::c_ulong, __size: ::std::os::raw::c_ulong, ) -> *mut ::std::os::raw::c_void; } -extern "C" { +unsafe extern "C" { pub fn realloc( __ptr: *mut ::std::os::raw::c_void, __size: ::std::os::raw::c_ulong, ) -> *mut ::std::os::raw::c_void; } -extern "C" { +unsafe extern "C" { pub fn free(__ptr: *mut ::std::os::raw::c_void); } -extern "C" { +unsafe extern "C" { pub fn reallocarray( __ptr: *mut ::std::os::raw::c_void, __nmemb: usize, __size: usize, ) -> *mut ::std::os::raw::c_void; } -extern "C" { +unsafe extern "C" { pub fn alloca(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void; } -extern "C" { +unsafe extern "C" { pub fn valloc(__size: usize) -> *mut ::std::os::raw::c_void; } -extern "C" { +unsafe extern "C" { pub fn posix_memalign( __memptr: *mut *mut ::std::os::raw::c_void, __alignment: usize, __size: usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn aligned_alloc( __alignment: ::std::os::raw::c_ulong, __size: ::std::os::raw::c_ulong, ) -> *mut ::std::os::raw::c_void; } -extern "C" { +unsafe extern "C" { pub fn abort() -> !; } -extern "C" { +unsafe extern "C" { pub fn atexit(__func: ::std::option::Option) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn at_quick_exit( __func: ::std::option::Option, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn on_exit( __func: ::std::option::Option< unsafe extern "C" fn( @@ -1549,53 +1645,53 @@ extern "C" { __arg: *mut ::std::os::raw::c_void, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn exit(__status: ::std::os::raw::c_int) -> !; } -extern "C" { +unsafe extern "C" { pub fn quick_exit(__status: ::std::os::raw::c_int) -> !; } -extern "C" { +unsafe extern "C" { pub fn _Exit(__status: ::std::os::raw::c_int) -> !; } -extern "C" { +unsafe extern "C" { pub fn getenv(__name: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn putenv(__string: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn setenv( __name: *const ::std::os::raw::c_char, __value: *const ::std::os::raw::c_char, __replace: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn unsetenv(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn clearenv() -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn mktemp(__template: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn mkstemp(__template: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn mkstemps( __template: *mut ::std::os::raw::c_char, __suffixlen: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn mkdtemp(__template: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn system(__command: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn realpath( __name: *const ::std::os::raw::c_char, __resolved: *mut ::std::os::raw::c_char, @@ -1607,7 +1703,7 @@ pub type __compar_fn_t = ::std::option::Option< arg2: *const ::std::os::raw::c_void, ) -> ::std::os::raw::c_int, >; -extern "C" { +unsafe extern "C" { pub fn bsearch( __key: *const ::std::os::raw::c_void, __base: *const ::std::os::raw::c_void, @@ -1616,7 +1712,7 @@ extern "C" { __compar: __compar_fn_t, ) -> *mut ::std::os::raw::c_void; } -extern "C" { +unsafe extern "C" { pub fn qsort( __base: *mut ::std::os::raw::c_void, __nmemb: usize, @@ -1624,28 +1720,28 @@ extern "C" { __compar: __compar_fn_t, ); } -extern "C" { +unsafe extern "C" { pub fn abs(__x: ::std::os::raw::c_int) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn labs(__x: ::std::os::raw::c_long) -> ::std::os::raw::c_long; } -extern "C" { +unsafe extern "C" { pub fn llabs(__x: ::std::os::raw::c_longlong) -> ::std::os::raw::c_longlong; } -extern "C" { +unsafe extern "C" { pub fn div(__numer: ::std::os::raw::c_int, __denom: ::std::os::raw::c_int) -> div_t; } -extern "C" { +unsafe extern "C" { pub fn ldiv(__numer: ::std::os::raw::c_long, __denom: ::std::os::raw::c_long) -> ldiv_t; } -extern "C" { +unsafe extern "C" { pub fn lldiv( __numer: ::std::os::raw::c_longlong, __denom: ::std::os::raw::c_longlong, ) -> lldiv_t; } -extern "C" { +unsafe extern "C" { pub fn ecvt( __value: f64, __ndigit: ::std::os::raw::c_int, @@ -1653,7 +1749,7 @@ extern "C" { __sign: *mut ::std::os::raw::c_int, ) -> *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn fcvt( __value: f64, __ndigit: ::std::os::raw::c_int, @@ -1661,14 +1757,14 @@ extern "C" { __sign: *mut ::std::os::raw::c_int, ) -> *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn gcvt( __value: f64, __ndigit: ::std::os::raw::c_int, __buf: *mut ::std::os::raw::c_char, ) -> *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn qecvt( __value: u128, __ndigit: ::std::os::raw::c_int, @@ -1676,7 +1772,7 @@ extern "C" { __sign: *mut ::std::os::raw::c_int, ) -> *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn qfcvt( __value: u128, __ndigit: ::std::os::raw::c_int, @@ -1684,14 +1780,14 @@ extern "C" { __sign: *mut ::std::os::raw::c_int, ) -> *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn qgcvt( __value: u128, __ndigit: ::std::os::raw::c_int, __buf: *mut ::std::os::raw::c_char, ) -> *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn ecvt_r( __value: f64, __ndigit: ::std::os::raw::c_int, @@ -1701,7 +1797,7 @@ extern "C" { __len: usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn fcvt_r( __value: f64, __ndigit: ::std::os::raw::c_int, @@ -1711,7 +1807,7 @@ extern "C" { __len: usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn qecvt_r( __value: u128, __ndigit: ::std::os::raw::c_int, @@ -1721,7 +1817,7 @@ extern "C" { __len: usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn qfcvt_r( __value: u128, __ndigit: ::std::os::raw::c_int, @@ -1731,54 +1827,54 @@ extern "C" { __len: usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn mblen(__s: *const ::std::os::raw::c_char, __n: usize) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn mbtowc( __pwc: *mut wchar_t, __s: *const ::std::os::raw::c_char, __n: usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn wctomb(__s: *mut ::std::os::raw::c_char, __wchar: wchar_t) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn mbstowcs(__pwcs: *mut wchar_t, __s: *const ::std::os::raw::c_char, __n: usize) -> usize; } -extern "C" { +unsafe extern "C" { pub fn wcstombs(__s: *mut ::std::os::raw::c_char, __pwcs: *const wchar_t, __n: usize) -> usize; } -extern "C" { +unsafe extern "C" { pub fn rpmatch(__response: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn getsubopt( __optionp: *mut *mut ::std::os::raw::c_char, __tokens: *const *mut ::std::os::raw::c_char, __valuep: *mut *mut ::std::os::raw::c_char, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn getloadavg(__loadavg: *mut f64, __nelem: ::std::os::raw::c_int) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn memcpy( __dest: *mut ::std::os::raw::c_void, __src: *const ::std::os::raw::c_void, __n: ::std::os::raw::c_ulong, ) -> *mut ::std::os::raw::c_void; } -extern "C" { +unsafe extern "C" { pub fn memmove( __dest: *mut ::std::os::raw::c_void, __src: *const ::std::os::raw::c_void, __n: ::std::os::raw::c_ulong, ) -> *mut ::std::os::raw::c_void; } -extern "C" { +unsafe extern "C" { pub fn memccpy( __dest: *mut ::std::os::raw::c_void, __src: *const ::std::os::raw::c_void, @@ -1786,80 +1882,80 @@ extern "C" { __n: ::std::os::raw::c_ulong, ) -> *mut ::std::os::raw::c_void; } -extern "C" { +unsafe extern "C" { pub fn memset( __s: *mut ::std::os::raw::c_void, __c: ::std::os::raw::c_int, __n: ::std::os::raw::c_ulong, ) -> *mut ::std::os::raw::c_void; } -extern "C" { +unsafe extern "C" { pub fn memcmp( __s1: *const ::std::os::raw::c_void, __s2: *const ::std::os::raw::c_void, __n: ::std::os::raw::c_ulong, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn __memcmpeq( __s1: *const ::std::os::raw::c_void, __s2: *const ::std::os::raw::c_void, __n: usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn memchr( __s: *const ::std::os::raw::c_void, __c: ::std::os::raw::c_int, __n: ::std::os::raw::c_ulong, ) -> *mut ::std::os::raw::c_void; } -extern "C" { +unsafe extern "C" { pub fn strcpy( __dest: *mut ::std::os::raw::c_char, __src: *const ::std::os::raw::c_char, ) -> *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn strncpy( __dest: *mut ::std::os::raw::c_char, __src: *const ::std::os::raw::c_char, __n: ::std::os::raw::c_ulong, ) -> *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn strcat( __dest: *mut ::std::os::raw::c_char, __src: *const ::std::os::raw::c_char, ) -> *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn strncat( __dest: *mut ::std::os::raw::c_char, __src: *const ::std::os::raw::c_char, __n: ::std::os::raw::c_ulong, ) -> *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn strcmp( __s1: *const ::std::os::raw::c_char, __s2: *const ::std::os::raw::c_char, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn strncmp( __s1: *const ::std::os::raw::c_char, __s2: *const ::std::os::raw::c_char, __n: ::std::os::raw::c_ulong, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn strcoll( __s1: *const ::std::os::raw::c_char, __s2: *const ::std::os::raw::c_char, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn strxfrm( __dest: *mut ::std::os::raw::c_char, __src: *const ::std::os::raw::c_char, @@ -1877,14 +1973,14 @@ pub struct __locale_struct { } pub type __locale_t = *mut __locale_struct; pub type locale_t = __locale_t; -extern "C" { +unsafe extern "C" { pub fn strcoll_l( __s1: *const ::std::os::raw::c_char, __s2: *const ::std::os::raw::c_char, __l: locale_t, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn strxfrm_l( __dest: *mut ::std::os::raw::c_char, __src: *const ::std::os::raw::c_char, @@ -1892,152 +1988,186 @@ extern "C" { __l: locale_t, ) -> usize; } -extern "C" { +unsafe extern "C" { pub fn strdup(__s: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn strndup( __string: *const ::std::os::raw::c_char, __n: ::std::os::raw::c_ulong, ) -> *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn strchr( __s: *const ::std::os::raw::c_char, __c: ::std::os::raw::c_int, ) -> *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn strrchr( __s: *const ::std::os::raw::c_char, __c: ::std::os::raw::c_int, ) -> *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { + pub fn strchrnul( + __s: *const ::std::os::raw::c_char, + __c: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +unsafe extern "C" { pub fn strcspn( __s: *const ::std::os::raw::c_char, __reject: *const ::std::os::raw::c_char, ) -> ::std::os::raw::c_ulong; } -extern "C" { +unsafe extern "C" { pub fn strspn( __s: *const ::std::os::raw::c_char, __accept: *const ::std::os::raw::c_char, ) -> ::std::os::raw::c_ulong; } -extern "C" { +unsafe extern "C" { pub fn strpbrk( __s: *const ::std::os::raw::c_char, __accept: *const ::std::os::raw::c_char, ) -> *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn strstr( __haystack: *const ::std::os::raw::c_char, __needle: *const ::std::os::raw::c_char, ) -> *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn strtok( __s: *mut ::std::os::raw::c_char, __delim: *const ::std::os::raw::c_char, ) -> *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn __strtok_r( __s: *mut ::std::os::raw::c_char, __delim: *const ::std::os::raw::c_char, __save_ptr: *mut *mut ::std::os::raw::c_char, ) -> *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn strtok_r( __s: *mut ::std::os::raw::c_char, __delim: *const ::std::os::raw::c_char, __save_ptr: *mut *mut ::std::os::raw::c_char, ) -> *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { + pub fn strcasestr( + __haystack: *const ::std::os::raw::c_char, + __needle: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +unsafe extern "C" { + pub fn memmem( + __haystack: *const ::std::os::raw::c_void, + __haystacklen: usize, + __needle: *const ::std::os::raw::c_void, + __needlelen: usize, + ) -> *mut ::std::os::raw::c_void; +} +unsafe extern "C" { + pub fn __mempcpy( + __dest: *mut ::std::os::raw::c_void, + __src: *const ::std::os::raw::c_void, + __n: usize, + ) -> *mut ::std::os::raw::c_void; +} +unsafe extern "C" { + pub fn mempcpy( + __dest: *mut ::std::os::raw::c_void, + __src: *const ::std::os::raw::c_void, + __n: ::std::os::raw::c_ulong, + ) -> *mut ::std::os::raw::c_void; +} +unsafe extern "C" { pub fn strlen(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_ulong; } -extern "C" { +unsafe extern "C" { pub fn strnlen(__string: *const ::std::os::raw::c_char, __maxlen: usize) -> usize; } -extern "C" { +unsafe extern "C" { pub fn strerror(__errnum: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn strerror_r( __errnum: ::std::os::raw::c_int, __buf: *mut ::std::os::raw::c_char, __buflen: usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn strerror_l( __errnum: ::std::os::raw::c_int, __l: locale_t, ) -> *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn bcmp( __s1: *const ::std::os::raw::c_void, __s2: *const ::std::os::raw::c_void, __n: ::std::os::raw::c_ulong, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn bcopy( __src: *const ::std::os::raw::c_void, __dest: *mut ::std::os::raw::c_void, - __n: usize, + __n: ::std::os::raw::c_ulong, ); } -extern "C" { +unsafe extern "C" { pub fn bzero(__s: *mut ::std::os::raw::c_void, __n: ::std::os::raw::c_ulong); } -extern "C" { +unsafe extern "C" { pub fn index( __s: *const ::std::os::raw::c_char, __c: ::std::os::raw::c_int, ) -> *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn rindex( __s: *const ::std::os::raw::c_char, __c: ::std::os::raw::c_int, ) -> *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn ffs(__i: ::std::os::raw::c_int) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn ffsl(__l: ::std::os::raw::c_long) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn ffsll(__ll: ::std::os::raw::c_longlong) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn strcasecmp( __s1: *const ::std::os::raw::c_char, __s2: *const ::std::os::raw::c_char, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn strncasecmp( __s1: *const ::std::os::raw::c_char, __s2: *const ::std::os::raw::c_char, __n: ::std::os::raw::c_ulong, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn strcasecmp_l( __s1: *const ::std::os::raw::c_char, __s2: *const ::std::os::raw::c_char, __loc: locale_t, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn strncasecmp_l( __s1: *const ::std::os::raw::c_char, __s2: *const ::std::os::raw::c_char, @@ -2045,60 +2175,74 @@ extern "C" { __loc: locale_t, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn explicit_bzero(__s: *mut ::std::os::raw::c_void, __n: usize); } -extern "C" { +unsafe extern "C" { pub fn strsep( __stringp: *mut *mut ::std::os::raw::c_char, __delim: *const ::std::os::raw::c_char, ) -> *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn strsignal(__sig: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn __stpcpy( __dest: *mut ::std::os::raw::c_char, __src: *const ::std::os::raw::c_char, ) -> *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn stpcpy( __dest: *mut ::std::os::raw::c_char, __src: *const ::std::os::raw::c_char, ) -> *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn __stpncpy( __dest: *mut ::std::os::raw::c_char, __src: *const ::std::os::raw::c_char, __n: usize, ) -> *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn stpncpy( __dest: *mut ::std::os::raw::c_char, __src: *const ::std::os::raw::c_char, __n: ::std::os::raw::c_ulong, ) -> *mut ::std::os::raw::c_char; } +unsafe extern "C" { + pub fn strlcpy( + __dest: *mut ::std::os::raw::c_char, + __src: *const ::std::os::raw::c_char, + __n: usize, + ) -> usize; +} +unsafe extern "C" { + pub fn strlcat( + __dest: *mut ::std::os::raw::c_char, + __src: *const ::std::os::raw::c_char, + __n: usize, + ) -> usize; +} #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct timezone { pub tz_minuteswest: ::std::os::raw::c_int, pub tz_dsttime: ::std::os::raw::c_int, } -extern "C" { +unsafe extern "C" { pub fn gettimeofday( __tv: *mut timeval, __tz: *mut ::std::os::raw::c_void, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn settimeofday(__tv: *const timeval, __tz: *const timezone) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn adjtime(__delta: *const timeval, __olddelta: *mut timeval) -> ::std::os::raw::c_int; } pub const __itimer_which_ITIMER_REAL: __itimer_which = 0; @@ -2112,1348 +2256,1348 @@ pub struct itimerval { pub it_value: timeval, } pub type __itimer_which_t = ::std::os::raw::c_int; -extern "C" { +unsafe extern "C" { pub fn getitimer(__which: __itimer_which_t, __value: *mut itimerval) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn setitimer( __which: __itimer_which_t, __new: *const itimerval, __old: *mut itimerval, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn utimes( __file: *const ::std::os::raw::c_char, __tvp: *const timeval, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn lutimes( __file: *const ::std::os::raw::c_char, __tvp: *const timeval, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn futimes(__fd: ::std::os::raw::c_int, __tvp: *const timeval) -> ::std::os::raw::c_int; } pub type float_t = f32; pub type double_t = f64; -extern "C" { +unsafe extern "C" { pub fn __fpclassify(__value: f64) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn __signbit(__value: f64) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn __isinf(__value: f64) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn __finite(__value: f64) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn __isnan(__value: f64) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn __iseqsig(__x: f64, __y: f64) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn __issignaling(__value: f64) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn acos(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __acos(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn asin(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __asin(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn atan(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __atan(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn atan2(__y: f64, __x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __atan2(__y: f64, __x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn cos(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __cos(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn sin(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __sin(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn tan(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __tan(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn cosh(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __cosh(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn sinh(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __sinh(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn tanh(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __tanh(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn acosh(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __acosh(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn asinh(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __asinh(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn atanh(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __atanh(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn exp(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __exp(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn frexp(__x: f64, __exponent: *mut ::std::os::raw::c_int) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __frexp(__x: f64, __exponent: *mut ::std::os::raw::c_int) -> f64; } -extern "C" { +unsafe extern "C" { pub fn ldexp(__x: f64, __exponent: ::std::os::raw::c_int) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __ldexp(__x: f64, __exponent: ::std::os::raw::c_int) -> f64; } -extern "C" { +unsafe extern "C" { pub fn log(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __log(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn log10(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __log10(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn modf(__x: f64, __iptr: *mut f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __modf(__x: f64, __iptr: *mut f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn expm1(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __expm1(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn log1p(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __log1p(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn logb(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __logb(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn exp2(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __exp2(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn log2(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __log2(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn pow(__x: f64, __y: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __pow(__x: f64, __y: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn sqrt(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __sqrt(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn hypot(__x: f64, __y: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __hypot(__x: f64, __y: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn cbrt(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __cbrt(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn ceil(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __ceil(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn fabs(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __fabs(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn floor(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __floor(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn fmod(__x: f64, __y: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __fmod(__x: f64, __y: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn isinf(__value: f64) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn finite(__value: f64) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn drem(__x: f64, __y: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __drem(__x: f64, __y: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn significand(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __significand(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn copysign(__x: f64, __y: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __copysign(__x: f64, __y: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn nan(__tagb: *const ::std::os::raw::c_char) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __nan(__tagb: *const ::std::os::raw::c_char) -> f64; } -extern "C" { +unsafe extern "C" { pub fn isnan(__value: f64) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn j0(arg1: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __j0(arg1: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn j1(arg1: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __j1(arg1: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn jn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __jn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn y0(arg1: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __y0(arg1: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn y1(arg1: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __y1(arg1: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn yn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __yn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn erf(arg1: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __erf(arg1: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn erfc(arg1: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __erfc(arg1: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn lgamma(arg1: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __lgamma(arg1: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn tgamma(arg1: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __tgamma(arg1: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn gamma(arg1: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __gamma(arg1: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn lgamma_r(arg1: f64, __signgamp: *mut ::std::os::raw::c_int) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __lgamma_r(arg1: f64, __signgamp: *mut ::std::os::raw::c_int) -> f64; } -extern "C" { +unsafe extern "C" { pub fn rint(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __rint(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn nextafter(__x: f64, __y: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __nextafter(__x: f64, __y: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn nexttoward(__x: f64, __y: u128) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __nexttoward(__x: f64, __y: u128) -> f64; } -extern "C" { +unsafe extern "C" { pub fn remainder(__x: f64, __y: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __remainder(__x: f64, __y: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn scalbn(__x: f64, __n: ::std::os::raw::c_int) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __scalbn(__x: f64, __n: ::std::os::raw::c_int) -> f64; } -extern "C" { +unsafe extern "C" { pub fn ilogb(__x: f64) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn __ilogb(__x: f64) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn scalbln(__x: f64, __n: ::std::os::raw::c_long) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __scalbln(__x: f64, __n: ::std::os::raw::c_long) -> f64; } -extern "C" { +unsafe extern "C" { pub fn nearbyint(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __nearbyint(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn round(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __round(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn trunc(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __trunc(__x: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn remquo(__x: f64, __y: f64, __quo: *mut ::std::os::raw::c_int) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __remquo(__x: f64, __y: f64, __quo: *mut ::std::os::raw::c_int) -> f64; } -extern "C" { +unsafe extern "C" { pub fn lrint(__x: f64) -> ::std::os::raw::c_long; } -extern "C" { +unsafe extern "C" { pub fn __lrint(__x: f64) -> ::std::os::raw::c_long; } -extern "C" { +unsafe extern "C" { pub fn llrint(__x: f64) -> ::std::os::raw::c_longlong; } -extern "C" { +unsafe extern "C" { pub fn __llrint(__x: f64) -> ::std::os::raw::c_longlong; } -extern "C" { +unsafe extern "C" { pub fn lround(__x: f64) -> ::std::os::raw::c_long; } -extern "C" { +unsafe extern "C" { pub fn __lround(__x: f64) -> ::std::os::raw::c_long; } -extern "C" { +unsafe extern "C" { pub fn llround(__x: f64) -> ::std::os::raw::c_longlong; } -extern "C" { +unsafe extern "C" { pub fn __llround(__x: f64) -> ::std::os::raw::c_longlong; } -extern "C" { +unsafe extern "C" { pub fn fdim(__x: f64, __y: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __fdim(__x: f64, __y: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn fmax(__x: f64, __y: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __fmax(__x: f64, __y: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn fmin(__x: f64, __y: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __fmin(__x: f64, __y: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn fma(__x: f64, __y: f64, __z: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __fma(__x: f64, __y: f64, __z: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn scalb(__x: f64, __n: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __scalb(__x: f64, __n: f64) -> f64; } -extern "C" { +unsafe extern "C" { pub fn __fpclassifyf(__value: f32) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn __signbitf(__value: f32) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn __isinff(__value: f32) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn __finitef(__value: f32) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn __isnanf(__value: f32) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn __iseqsigf(__x: f32, __y: f32) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn __issignalingf(__value: f32) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn acosf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __acosf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn asinf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __asinf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn atanf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __atanf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn atan2f(__y: f32, __x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __atan2f(__y: f32, __x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn cosf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __cosf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn sinf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __sinf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn tanf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __tanf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn coshf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __coshf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn sinhf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __sinhf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn tanhf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __tanhf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn acoshf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __acoshf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn asinhf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __asinhf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn atanhf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __atanhf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn expf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __expf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn frexpf(__x: f32, __exponent: *mut ::std::os::raw::c_int) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __frexpf(__x: f32, __exponent: *mut ::std::os::raw::c_int) -> f32; } -extern "C" { +unsafe extern "C" { pub fn ldexpf(__x: f32, __exponent: ::std::os::raw::c_int) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __ldexpf(__x: f32, __exponent: ::std::os::raw::c_int) -> f32; } -extern "C" { +unsafe extern "C" { pub fn logf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __logf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn log10f(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __log10f(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn modff(__x: f32, __iptr: *mut f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __modff(__x: f32, __iptr: *mut f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn expm1f(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __expm1f(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn log1pf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __log1pf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn logbf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __logbf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn exp2f(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __exp2f(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn log2f(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __log2f(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn powf(__x: f32, __y: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __powf(__x: f32, __y: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn sqrtf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __sqrtf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn hypotf(__x: f32, __y: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __hypotf(__x: f32, __y: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn cbrtf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __cbrtf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn ceilf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __ceilf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn fabsf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __fabsf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn floorf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __floorf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn fmodf(__x: f32, __y: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __fmodf(__x: f32, __y: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn isinff(__value: f32) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn finitef(__value: f32) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn dremf(__x: f32, __y: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __dremf(__x: f32, __y: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn significandf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __significandf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn copysignf(__x: f32, __y: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __copysignf(__x: f32, __y: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn nanf(__tagb: *const ::std::os::raw::c_char) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __nanf(__tagb: *const ::std::os::raw::c_char) -> f32; } -extern "C" { +unsafe extern "C" { pub fn isnanf(__value: f32) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn j0f(arg1: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __j0f(arg1: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn j1f(arg1: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __j1f(arg1: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn jnf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __jnf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn y0f(arg1: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __y0f(arg1: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn y1f(arg1: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __y1f(arg1: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn ynf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __ynf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn erff(arg1: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __erff(arg1: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn erfcf(arg1: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __erfcf(arg1: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn lgammaf(arg1: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __lgammaf(arg1: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn tgammaf(arg1: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __tgammaf(arg1: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn gammaf(arg1: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __gammaf(arg1: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn lgammaf_r(arg1: f32, __signgamp: *mut ::std::os::raw::c_int) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __lgammaf_r(arg1: f32, __signgamp: *mut ::std::os::raw::c_int) -> f32; } -extern "C" { +unsafe extern "C" { pub fn rintf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __rintf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn nextafterf(__x: f32, __y: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __nextafterf(__x: f32, __y: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn nexttowardf(__x: f32, __y: u128) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __nexttowardf(__x: f32, __y: u128) -> f32; } -extern "C" { +unsafe extern "C" { pub fn remainderf(__x: f32, __y: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __remainderf(__x: f32, __y: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn scalbnf(__x: f32, __n: ::std::os::raw::c_int) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __scalbnf(__x: f32, __n: ::std::os::raw::c_int) -> f32; } -extern "C" { +unsafe extern "C" { pub fn ilogbf(__x: f32) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn __ilogbf(__x: f32) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn scalblnf(__x: f32, __n: ::std::os::raw::c_long) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __scalblnf(__x: f32, __n: ::std::os::raw::c_long) -> f32; } -extern "C" { +unsafe extern "C" { pub fn nearbyintf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __nearbyintf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn roundf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __roundf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn truncf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __truncf(__x: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn remquof(__x: f32, __y: f32, __quo: *mut ::std::os::raw::c_int) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __remquof(__x: f32, __y: f32, __quo: *mut ::std::os::raw::c_int) -> f32; } -extern "C" { +unsafe extern "C" { pub fn lrintf(__x: f32) -> ::std::os::raw::c_long; } -extern "C" { +unsafe extern "C" { pub fn __lrintf(__x: f32) -> ::std::os::raw::c_long; } -extern "C" { +unsafe extern "C" { pub fn llrintf(__x: f32) -> ::std::os::raw::c_longlong; } -extern "C" { +unsafe extern "C" { pub fn __llrintf(__x: f32) -> ::std::os::raw::c_longlong; } -extern "C" { +unsafe extern "C" { pub fn lroundf(__x: f32) -> ::std::os::raw::c_long; } -extern "C" { +unsafe extern "C" { pub fn __lroundf(__x: f32) -> ::std::os::raw::c_long; } -extern "C" { +unsafe extern "C" { pub fn llroundf(__x: f32) -> ::std::os::raw::c_longlong; } -extern "C" { +unsafe extern "C" { pub fn __llroundf(__x: f32) -> ::std::os::raw::c_longlong; } -extern "C" { +unsafe extern "C" { pub fn fdimf(__x: f32, __y: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __fdimf(__x: f32, __y: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn fmaxf(__x: f32, __y: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __fmaxf(__x: f32, __y: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn fminf(__x: f32, __y: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __fminf(__x: f32, __y: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn fmaf(__x: f32, __y: f32, __z: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __fmaf(__x: f32, __y: f32, __z: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn scalbf(__x: f32, __n: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __scalbf(__x: f32, __n: f32) -> f32; } -extern "C" { +unsafe extern "C" { pub fn __fpclassifyl(__value: u128) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn __signbitl(__value: u128) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn __isinfl(__value: u128) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn __finitel(__value: u128) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn __isnanl(__value: u128) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn __iseqsigl(__x: u128, __y: u128) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn __issignalingl(__value: u128) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn acosl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __acosl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn asinl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __asinl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn atanl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __atanl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn atan2l(__y: u128, __x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __atan2l(__y: u128, __x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn cosl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __cosl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn sinl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __sinl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn tanl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __tanl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn coshl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __coshl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn sinhl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __sinhl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn tanhl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __tanhl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn acoshl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __acoshl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn asinhl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __asinhl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn atanhl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __atanhl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn expl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __expl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn frexpl(__x: u128, __exponent: *mut ::std::os::raw::c_int) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __frexpl(__x: u128, __exponent: *mut ::std::os::raw::c_int) -> u128; } -extern "C" { +unsafe extern "C" { pub fn ldexpl(__x: u128, __exponent: ::std::os::raw::c_int) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __ldexpl(__x: u128, __exponent: ::std::os::raw::c_int) -> u128; } -extern "C" { +unsafe extern "C" { pub fn logl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __logl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn log10l(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __log10l(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn modfl(__x: u128, __iptr: *mut u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __modfl(__x: u128, __iptr: *mut u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn expm1l(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __expm1l(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn log1pl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __log1pl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn logbl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __logbl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn exp2l(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __exp2l(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn log2l(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __log2l(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn powl(__x: u128, __y: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __powl(__x: u128, __y: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn sqrtl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __sqrtl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn hypotl(__x: u128, __y: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __hypotl(__x: u128, __y: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn cbrtl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __cbrtl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn ceill(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __ceill(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn fabsl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __fabsl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn floorl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __floorl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn fmodl(__x: u128, __y: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __fmodl(__x: u128, __y: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn isinfl(__value: u128) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn finitel(__value: u128) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn dreml(__x: u128, __y: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __dreml(__x: u128, __y: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn significandl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __significandl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn copysignl(__x: u128, __y: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __copysignl(__x: u128, __y: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn nanl(__tagb: *const ::std::os::raw::c_char) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __nanl(__tagb: *const ::std::os::raw::c_char) -> u128; } -extern "C" { +unsafe extern "C" { pub fn isnanl(__value: u128) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn j0l(arg1: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __j0l(arg1: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn j1l(arg1: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __j1l(arg1: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn jnl(arg1: ::std::os::raw::c_int, arg2: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __jnl(arg1: ::std::os::raw::c_int, arg2: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn y0l(arg1: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __y0l(arg1: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn y1l(arg1: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __y1l(arg1: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn ynl(arg1: ::std::os::raw::c_int, arg2: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __ynl(arg1: ::std::os::raw::c_int, arg2: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn erfl(arg1: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __erfl(arg1: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn erfcl(arg1: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __erfcl(arg1: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn lgammal(arg1: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __lgammal(arg1: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn tgammal(arg1: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __tgammal(arg1: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn gammal(arg1: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __gammal(arg1: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn lgammal_r(arg1: u128, __signgamp: *mut ::std::os::raw::c_int) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __lgammal_r(arg1: u128, __signgamp: *mut ::std::os::raw::c_int) -> u128; } -extern "C" { +unsafe extern "C" { pub fn rintl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __rintl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn nextafterl(__x: u128, __y: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __nextafterl(__x: u128, __y: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn nexttowardl(__x: u128, __y: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __nexttowardl(__x: u128, __y: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn remainderl(__x: u128, __y: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __remainderl(__x: u128, __y: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn scalbnl(__x: u128, __n: ::std::os::raw::c_int) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __scalbnl(__x: u128, __n: ::std::os::raw::c_int) -> u128; } -extern "C" { +unsafe extern "C" { pub fn ilogbl(__x: u128) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn __ilogbl(__x: u128) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn scalblnl(__x: u128, __n: ::std::os::raw::c_long) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __scalblnl(__x: u128, __n: ::std::os::raw::c_long) -> u128; } -extern "C" { +unsafe extern "C" { pub fn nearbyintl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __nearbyintl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn roundl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __roundl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn truncl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __truncl(__x: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn remquol(__x: u128, __y: u128, __quo: *mut ::std::os::raw::c_int) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __remquol(__x: u128, __y: u128, __quo: *mut ::std::os::raw::c_int) -> u128; } -extern "C" { +unsafe extern "C" { pub fn lrintl(__x: u128) -> ::std::os::raw::c_long; } -extern "C" { +unsafe extern "C" { pub fn __lrintl(__x: u128) -> ::std::os::raw::c_long; } -extern "C" { +unsafe extern "C" { pub fn llrintl(__x: u128) -> ::std::os::raw::c_longlong; } -extern "C" { +unsafe extern "C" { pub fn __llrintl(__x: u128) -> ::std::os::raw::c_longlong; } -extern "C" { +unsafe extern "C" { pub fn lroundl(__x: u128) -> ::std::os::raw::c_long; } -extern "C" { +unsafe extern "C" { pub fn __lroundl(__x: u128) -> ::std::os::raw::c_long; } -extern "C" { +unsafe extern "C" { pub fn llroundl(__x: u128) -> ::std::os::raw::c_longlong; } -extern "C" { +unsafe extern "C" { pub fn __llroundl(__x: u128) -> ::std::os::raw::c_longlong; } -extern "C" { +unsafe extern "C" { pub fn fdiml(__x: u128, __y: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __fdiml(__x: u128, __y: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn fmaxl(__x: u128, __y: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __fmaxl(__x: u128, __y: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn fminl(__x: u128, __y: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __fminl(__x: u128, __y: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn fmal(__x: u128, __y: u128, __z: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __fmal(__x: u128, __y: u128, __z: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn scalbl(__x: u128, __n: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub fn __scalbl(__x: u128, __n: u128) -> u128; } -extern "C" { +unsafe extern "C" { pub static mut signgam: ::std::os::raw::c_int; } pub const FP_NAN: _bindgen_ty_1 = 0; @@ -3514,11 +3658,6 @@ pub struct grib_nearest { } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct grib_box { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] pub struct grib_keys_iterator { _unused: [u8; 0], } @@ -3592,40 +3731,40 @@ pub struct bufr_descriptors_array { pub struct bufr_descriptors_map_list { _unused: [u8; 0], } -extern "C" { +unsafe extern "C" { pub fn grib_fieldset_new_from_files( c: *mut grib_context, - filenames: *mut *mut ::std::os::raw::c_char, + filenames: *mut *const ::std::os::raw::c_char, nfiles: ::std::os::raw::c_int, - keys: *mut *mut ::std::os::raw::c_char, + keys: *mut *const ::std::os::raw::c_char, nkeys: ::std::os::raw::c_int, where_string: *const ::std::os::raw::c_char, order_by_string: *const ::std::os::raw::c_char, err: *mut ::std::os::raw::c_int, ) -> *mut grib_fieldset; } -extern "C" { +unsafe extern "C" { pub fn grib_fieldset_delete(set: *mut grib_fieldset); } -extern "C" { +unsafe extern "C" { pub fn grib_fieldset_rewind(set: *mut grib_fieldset); } -extern "C" { +unsafe extern "C" { pub fn grib_fieldset_apply_order_by( set: *mut grib_fieldset, order_by_string: *const ::std::os::raw::c_char, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_fieldset_next_handle( set: *mut grib_fieldset, err: *mut ::std::os::raw::c_int, ) -> *mut grib_handle; } -extern "C" { - pub fn grib_fieldset_count(set: *mut grib_fieldset) -> ::std::os::raw::c_int; +unsafe extern "C" { + pub fn grib_fieldset_count(set: *const grib_fieldset) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_values_check( h: *mut grib_handle, values: *mut grib_values, @@ -3637,7 +3776,7 @@ extern "C" { pub struct grib_index { _unused: [u8; 0], } -extern "C" { +unsafe extern "C" { pub fn grib_index_new_from_file( c: *mut grib_context, filename: *const ::std::os::raw::c_char, @@ -3645,52 +3784,52 @@ extern "C" { err: *mut ::std::os::raw::c_int, ) -> *mut grib_index; } -extern "C" { +unsafe extern "C" { pub fn grib_index_new( c: *mut grib_context, keys: *const ::std::os::raw::c_char, err: *mut ::std::os::raw::c_int, ) -> *mut grib_index; } -extern "C" { +unsafe extern "C" { pub fn codes_index_set_product_kind( index: *mut grib_index, product_kind: ProductKind, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_index_set_unpack_bufr( index: *mut grib_index, unpack: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_index_add_file( index: *mut grib_index, filename: *const ::std::os::raw::c_char, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_index_write( index: *mut grib_index, filename: *const ::std::os::raw::c_char, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_index_read( c: *mut grib_context, filename: *const ::std::os::raw::c_char, err: *mut ::std::os::raw::c_int, ) -> *mut grib_index; } -extern "C" { +unsafe extern "C" { pub fn grib_index_get_size( index: *const grib_index, key: *const ::std::os::raw::c_char, size: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_index_get_long( index: *const grib_index, key: *const ::std::os::raw::c_char, @@ -3698,7 +3837,7 @@ extern "C" { size: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_index_get_double( index: *const grib_index, key: *const ::std::os::raw::c_char, @@ -3706,7 +3845,7 @@ extern "C" { size: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_index_get_string( index: *const grib_index, key: *const ::std::os::raw::c_char, @@ -3714,58 +3853,58 @@ extern "C" { size: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_index_select_long( index: *mut grib_index, key: *const ::std::os::raw::c_char, value: ::std::os::raw::c_long, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_index_select_double( index: *mut grib_index, key: *const ::std::os::raw::c_char, value: f64, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_index_select_string( index: *mut grib_index, key: *const ::std::os::raw::c_char, value: *const ::std::os::raw::c_char, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_handle_new_from_index( index: *mut grib_index, err: *mut ::std::os::raw::c_int, ) -> *mut grib_handle; } -extern "C" { +unsafe extern "C" { pub fn grib_index_delete(index: *mut grib_index); } -extern "C" { +unsafe extern "C" { pub fn grib_count_in_file( c: *mut grib_context, f: *mut FILE, n: *mut ::std::os::raw::c_int, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_count_in_filename( c: *mut grib_context, filename: *const ::std::os::raw::c_char, n: *mut ::std::os::raw::c_int, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_handle_new_from_file( c: *mut grib_context, f: *mut FILE, error: *mut ::std::os::raw::c_int, ) -> *mut grib_handle; } -extern "C" { +unsafe extern "C" { pub fn grib_write_message( h: *const grib_handle, file: *const ::std::os::raw::c_char, @@ -3779,7 +3918,7 @@ pub struct grib_string_list { pub count: ::std::os::raw::c_int, pub next: *mut grib_string_list, } -extern "C" { +unsafe extern "C" { pub fn grib_util_sections_copy( hfrom: *mut grib_handle, hto: *mut grib_handle, @@ -3787,24 +3926,24 @@ extern "C" { err: *mut ::std::os::raw::c_int, ) -> *mut grib_handle; } -extern "C" { +unsafe extern "C" { pub fn grib_util_get_param_id( mars_param: *const ::std::os::raw::c_char, ) -> *mut grib_string_list; } -extern "C" { +unsafe extern "C" { pub fn grib_util_get_mars_param( param_id: *const ::std::os::raw::c_char, ) -> *mut grib_string_list; } -extern "C" { +unsafe extern "C" { pub fn grib_handle_new_from_message( c: *mut grib_context, data: *const ::std::os::raw::c_void, data_len: usize, ) -> *mut grib_handle; } -extern "C" { +unsafe extern "C" { pub fn grib_handle_new_from_multi_message( c: *mut grib_context, data: *mut *mut ::std::os::raw::c_void, @@ -3812,66 +3951,69 @@ extern "C" { error: *mut ::std::os::raw::c_int, ) -> *mut grib_handle; } -extern "C" { +unsafe extern "C" { pub fn grib_handle_new_from_message_copy( c: *mut grib_context, data: *const ::std::os::raw::c_void, data_len: usize, ) -> *mut grib_handle; } -extern "C" { +unsafe extern "C" { pub fn grib_handle_new_from_samples( c: *mut grib_context, sample_name: *const ::std::os::raw::c_char, ) -> *mut grib_handle; } -extern "C" { +unsafe extern "C" { pub fn grib_handle_clone(h: *const grib_handle) -> *mut grib_handle; } -extern "C" { +unsafe extern "C" { + pub fn grib_handle_clone_headers_only(h: *const grib_handle) -> *mut grib_handle; +} +unsafe extern "C" { pub fn grib_handle_delete(h: *mut grib_handle) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_multi_handle_new(c: *mut grib_context) -> *mut grib_multi_handle; } -extern "C" { +unsafe extern "C" { pub fn grib_multi_handle_append( h: *mut grib_handle, start_section: ::std::os::raw::c_int, mh: *mut grib_multi_handle, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_multi_handle_delete(mh: *mut grib_multi_handle) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_multi_handle_write( mh: *mut grib_multi_handle, f: *mut FILE, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_get_message( h: *const grib_handle, message: *mut *const ::std::os::raw::c_void, message_length: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_get_message_copy( h: *const grib_handle, message: *mut ::std::os::raw::c_void, message_length: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_iterator_new( h: *const grib_handle, flags: ::std::os::raw::c_ulong, error: *mut ::std::os::raw::c_int, ) -> *mut grib_iterator; } -extern "C" { +unsafe extern "C" { pub fn grib_get_data( h: *const grib_handle, lats: *mut f64, @@ -3879,7 +4021,7 @@ extern "C" { values: *mut f64, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_iterator_next( i: *mut grib_iterator, lat: *mut f64, @@ -3887,7 +4029,7 @@ extern "C" { value: *mut f64, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_iterator_previous( i: *mut grib_iterator, lat: *mut f64, @@ -3895,22 +4037,22 @@ extern "C" { value: *mut f64, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_iterator_has_next(i: *mut grib_iterator) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_iterator_reset(i: *mut grib_iterator) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_iterator_delete(i: *mut grib_iterator) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_nearest_new( h: *const grib_handle, error: *mut ::std::os::raw::c_int, ) -> *mut grib_nearest; } -extern "C" { +unsafe extern "C" { pub fn grib_nearest_find( nearest: *mut grib_nearest, h: *const grib_handle, @@ -3925,10 +4067,10 @@ extern "C" { len: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_nearest_delete(nearest: *mut grib_nearest) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_nearest_find_multiple( h: *const grib_handle, is_lsm: ::std::os::raw::c_int, @@ -3942,42 +4084,49 @@ extern "C" { indexes: *mut ::std::os::raw::c_int, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_get_offset( h: *const grib_handle, key: *const ::std::os::raw::c_char, offset: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_get_size( h: *const grib_handle, key: *const ::std::os::raw::c_char, size: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_get_length( h: *const grib_handle, key: *const ::std::os::raw::c_char, length: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_get_long( h: *const grib_handle, key: *const ::std::os::raw::c_char, value: *mut ::std::os::raw::c_long, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_get_double( h: *const grib_handle, key: *const ::std::os::raw::c_char, value: *mut f64, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { + pub fn grib_get_float( + h: *const grib_handle, + key: *const ::std::os::raw::c_char, + value: *mut f32, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { pub fn grib_get_double_element( h: *const grib_handle, key: *const ::std::os::raw::c_char, @@ -3985,16 +4134,33 @@ extern "C" { value: *mut f64, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { + pub fn grib_get_float_element( + h: *const grib_handle, + key: *const ::std::os::raw::c_char, + i: ::std::os::raw::c_int, + value: *mut f32, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { pub fn grib_get_double_elements( h: *const grib_handle, key: *const ::std::os::raw::c_char, - i: *mut ::std::os::raw::c_int, + index_array: *const ::std::os::raw::c_int, size: ::std::os::raw::c_long, value: *mut f64, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { + pub fn grib_get_float_elements( + h: *const grib_handle, + key: *const ::std::os::raw::c_char, + index_array: *const ::std::os::raw::c_int, + size: ::std::os::raw::c_long, + value: *mut f32, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { pub fn grib_get_string( h: *const grib_handle, key: *const ::std::os::raw::c_char, @@ -4002,7 +4168,7 @@ extern "C" { length: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_get_string_array( h: *const grib_handle, key: *const ::std::os::raw::c_char, @@ -4010,7 +4176,7 @@ extern "C" { length: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_get_bytes( h: *const grib_handle, key: *const ::std::os::raw::c_char, @@ -4018,7 +4184,7 @@ extern "C" { length: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_get_double_array( h: *const grib_handle, key: *const ::std::os::raw::c_char, @@ -4026,7 +4192,15 @@ extern "C" { length: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { + pub fn grib_get_float_array( + h: *const grib_handle, + key: *const ::std::os::raw::c_char, + vals: *mut f32, + length: *mut usize, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { pub fn grib_get_long_array( h: *const grib_handle, key: *const ::std::os::raw::c_char, @@ -4034,28 +4208,28 @@ extern "C" { length: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_copy_namespace( dest: *mut grib_handle, name: *const ::std::os::raw::c_char, src: *mut grib_handle, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_set_long( h: *mut grib_handle, key: *const ::std::os::raw::c_char, val: ::std::os::raw::c_long, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_set_double( h: *mut grib_handle, key: *const ::std::os::raw::c_char, val: f64, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_set_string( h: *mut grib_handle, key: *const ::std::os::raw::c_char, @@ -4063,7 +4237,7 @@ extern "C" { length: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_set_bytes( h: *mut grib_handle, key: *const ::std::os::raw::c_char, @@ -4071,7 +4245,7 @@ extern "C" { length: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_set_double_array( h: *mut grib_handle, key: *const ::std::os::raw::c_char, @@ -4079,7 +4253,15 @@ extern "C" { length: usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { + pub fn grib_set_float_array( + h: *mut grib_handle, + key: *const ::std::os::raw::c_char, + vals: *const f32, + length: usize, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { pub fn grib_set_force_double_array( h: *mut grib_handle, key: *const ::std::os::raw::c_char, @@ -4087,7 +4269,15 @@ extern "C" { length: usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { + pub fn grib_set_force_float_array( + h: *mut grib_handle, + key: *const ::std::os::raw::c_char, + vals: *const f32, + length: usize, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { pub fn grib_set_long_array( h: *mut grib_handle, key: *const ::std::os::raw::c_char, @@ -4095,7 +4285,7 @@ extern "C" { length: usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_set_string_array( h: *mut grib_handle, key: *const ::std::os::raw::c_char, @@ -4103,7 +4293,7 @@ extern "C" { length: usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_dump_content( h: *const grib_handle, out: *mut FILE, @@ -4112,7 +4302,7 @@ extern "C" { arg: *mut ::std::os::raw::c_void, ); } -extern "C" { +unsafe extern "C" { pub fn grib_dump_action_tree(c: *mut grib_context, f: *mut FILE); } pub type grib_free_proc = ::std::option::Option< @@ -4175,37 +4365,37 @@ pub type grib_data_eof_proc = ::std::option::Option< stream: *mut ::std::os::raw::c_void, ) -> ::std::os::raw::c_int, >; -extern "C" { +unsafe extern "C" { pub fn grib_context_get_default() -> *mut grib_context; } -extern "C" { +unsafe extern "C" { pub fn grib_context_delete(c: *mut grib_context); } -extern "C" { +unsafe extern "C" { pub fn grib_gts_header_on(c: *mut grib_context); } -extern "C" { +unsafe extern "C" { pub fn grib_gts_header_off(c: *mut grib_context); } -extern "C" { +unsafe extern "C" { pub fn grib_gribex_mode_on(c: *mut grib_context); } -extern "C" { +unsafe extern "C" { pub fn grib_get_gribex_mode(c: *mut grib_context) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_gribex_mode_off(c: *mut grib_context); } -extern "C" { +unsafe extern "C" { pub fn grib_context_set_definitions_path( c: *mut grib_context, path: *const ::std::os::raw::c_char, ); } -extern "C" { +unsafe extern "C" { pub fn grib_context_set_samples_path(c: *mut grib_context, path: *const ::std::os::raw::c_char); } -extern "C" { +unsafe extern "C" { pub fn grib_context_set_memory_proc( c: *mut grib_context, griballoc: grib_malloc_proc, @@ -4213,14 +4403,14 @@ extern "C" { gribrealloc: grib_realloc_proc, ); } -extern "C" { +unsafe extern "C" { pub fn grib_context_set_persistent_memory_proc( c: *mut grib_context, griballoc: grib_malloc_proc, gribfree: grib_free_proc, ); } -extern "C" { +unsafe extern "C" { pub fn grib_context_set_buffer_memory_proc( c: *mut grib_context, griballoc: grib_malloc_proc, @@ -4228,122 +4418,129 @@ extern "C" { gribrealloc: grib_realloc_proc, ); } -extern "C" { +unsafe extern "C" { pub fn grib_context_set_print_proc(c: *mut grib_context, printp: grib_print_proc); } -extern "C" { +unsafe extern "C" { pub fn grib_context_set_logging_proc(c: *mut grib_context, logp: grib_log_proc); } -extern "C" { +unsafe extern "C" { pub fn grib_multi_support_on(c: *mut grib_context); } -extern "C" { +unsafe extern "C" { pub fn grib_multi_support_off(c: *mut grib_context); } -extern "C" { +unsafe extern "C" { pub fn grib_multi_support_reset_file(c: *mut grib_context, f: *mut FILE); } -extern "C" { +unsafe extern "C" { pub fn grib_samples_path(c: *const grib_context) -> *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn grib_definition_path(c: *const grib_context) -> *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn grib_get_api_version() -> ::std::os::raw::c_long; } -extern "C" { +unsafe extern "C" { pub fn grib_get_git_sha1() -> *const ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn grib_get_package_name() -> *const ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn grib_print_api_version(out: *mut FILE); } -extern "C" { +unsafe extern "C" { pub fn grib_keys_iterator_new( h: *mut grib_handle, filter_flags: ::std::os::raw::c_ulong, name_space: *const ::std::os::raw::c_char, ) -> *mut grib_keys_iterator; } -extern "C" { +unsafe extern "C" { pub fn codes_bufr_keys_iterator_new( h: *mut grib_handle, filter_flags: ::std::os::raw::c_ulong, ) -> *mut bufr_keys_iterator; } -extern "C" { +unsafe extern "C" { pub fn codes_bufr_data_section_keys_iterator_new( h: *mut grib_handle, ) -> *mut bufr_keys_iterator; } -extern "C" { +unsafe extern "C" { pub fn grib_keys_iterator_next(kiter: *mut grib_keys_iterator) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_bufr_keys_iterator_next(kiter: *mut bufr_keys_iterator) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_keys_iterator_get_name( kiter: *const grib_keys_iterator, ) -> *const ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn codes_bufr_keys_iterator_get_name( kiter: *const bufr_keys_iterator, ) -> *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn grib_keys_iterator_delete(kiter: *mut grib_keys_iterator) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_bufr_keys_iterator_delete(kiter: *mut bufr_keys_iterator) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_keys_iterator_rewind(kiter: *mut grib_keys_iterator) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_bufr_keys_iterator_rewind(kiter: *mut bufr_keys_iterator) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_keys_iterator_set_flags( kiter: *mut grib_keys_iterator, flags: ::std::os::raw::c_ulong, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_keys_iterator_get_long( kiter: *const grib_keys_iterator, v: *mut ::std::os::raw::c_long, len: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_keys_iterator_get_double( kiter: *const grib_keys_iterator, v: *mut f64, len: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { + pub fn grib_keys_iterator_get_float( + kiter: *const grib_keys_iterator, + v: *mut f32, + len: *mut usize, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { pub fn grib_keys_iterator_get_string( kiter: *const grib_keys_iterator, v: *mut ::std::os::raw::c_char, len: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_keys_iterator_get_bytes( kiter: *const grib_keys_iterator, v: *mut ::std::os::raw::c_uchar, len: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_copy_key( h1: *mut grib_handle, h2: *mut grib_handle, @@ -4351,23 +4548,23 @@ extern "C" { type_: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_update_sections_lengths(h: *mut grib_handle); } -extern "C" { +unsafe extern "C" { pub fn grib_get_error_message(code: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn grib_get_type_name(type_: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn grib_get_native_type( h: *const grib_handle, name: *const ::std::os::raw::c_char, type_: *mut ::std::os::raw::c_int, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_check( call: *const ::std::os::raw::c_char, file: *const ::std::os::raw::c_char, @@ -4376,53 +4573,53 @@ extern "C" { msg: *const ::std::os::raw::c_char, ); } -extern "C" { +unsafe extern "C" { pub fn grib_set_values( h: *mut grib_handle, grib_values: *mut grib_values, arg_count: usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_handle_new_from_partial_message_copy( c: *mut grib_context, data: *const ::std::os::raw::c_void, size: usize, ) -> *mut grib_handle; } -extern "C" { +unsafe extern "C" { pub fn grib_handle_new_from_partial_message( c: *mut grib_context, data: *const ::std::os::raw::c_void, buflen: usize, ) -> *mut grib_handle; } -extern "C" { +unsafe extern "C" { pub fn grib_is_missing( h: *const grib_handle, key: *const ::std::os::raw::c_char, err: *mut ::std::os::raw::c_int, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_is_defined( h: *const grib_handle, key: *const ::std::os::raw::c_char, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_set_missing( h: *mut grib_handle, key: *const ::std::os::raw::c_char, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_get_gaussian_latitudes( truncation: ::std::os::raw::c_long, latitudes: *mut f64, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_julian_to_datetime( jd: f64, year: *mut ::std::os::raw::c_long, @@ -4433,7 +4630,7 @@ extern "C" { second: *mut ::std::os::raw::c_long, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_datetime_to_julian( year: ::std::os::raw::c_long, month: ::std::os::raw::c_long, @@ -4444,13 +4641,13 @@ extern "C" { jd: *mut f64, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_julian_to_date(jdate: ::std::os::raw::c_long) -> ::std::os::raw::c_long; } -extern "C" { +unsafe extern "C" { pub fn grib_date_to_julian(ddate: ::std::os::raw::c_long) -> ::std::os::raw::c_long; } -extern "C" { +unsafe extern "C" { pub fn grib_get_reduced_row( pl: ::std::os::raw::c_long, lon_first: f64, @@ -4460,7 +4657,7 @@ extern "C" { ilon_last: *mut ::std::os::raw::c_long, ); } -extern "C" { +unsafe extern "C" { pub fn grib_get_reduced_row_p( pl: ::std::os::raw::c_long, lon_first: f64, @@ -4470,35 +4667,35 @@ extern "C" { olon_last: *mut f64, ); } -extern "C" { +unsafe extern "C" { pub fn wmo_read_any_from_file( f: *mut FILE, buffer: *mut ::std::os::raw::c_void, len: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn wmo_read_grib_from_file( f: *mut FILE, buffer: *mut ::std::os::raw::c_void, len: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn wmo_read_bufr_from_file( f: *mut FILE, buffer: *mut ::std::os::raw::c_void, len: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn wmo_read_gts_from_file( f: *mut FILE, buffer: *mut ::std::os::raw::c_void, len: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn wmo_read_any_from_stream( stream_data: *mut ::std::os::raw::c_void, stream_proc: ::std::option::Option< @@ -4512,7 +4709,7 @@ extern "C" { len: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn wmo_read_any_from_stream_malloc( stream_data: *mut ::std::os::raw::c_void, stream_proc: ::std::option::Option< @@ -4526,7 +4723,7 @@ extern "C" { err: *mut ::std::os::raw::c_int, ) -> *mut ::std::os::raw::c_void; } -extern "C" { +unsafe extern "C" { pub fn wmo_read_any_from_file_malloc( f: *mut FILE, headers_only: ::std::os::raw::c_int, @@ -4535,7 +4732,7 @@ extern "C" { err: *mut ::std::os::raw::c_int, ) -> *mut ::std::os::raw::c_void; } -extern "C" { +unsafe extern "C" { pub fn wmo_read_gts_from_file_malloc( f: *mut FILE, headers_only: ::std::os::raw::c_int, @@ -4544,7 +4741,7 @@ extern "C" { err: *mut ::std::os::raw::c_int, ) -> *mut ::std::os::raw::c_void; } -extern "C" { +unsafe extern "C" { pub fn wmo_read_bufr_from_file_malloc( f: *mut FILE, headers_only: ::std::os::raw::c_int, @@ -4553,7 +4750,7 @@ extern "C" { err: *mut ::std::os::raw::c_int, ) -> *mut ::std::os::raw::c_void; } -extern "C" { +unsafe extern "C" { pub fn wmo_read_grib_from_file_malloc( f: *mut FILE, headers_only: ::std::os::raw::c_int, @@ -4562,7 +4759,7 @@ extern "C" { err: *mut ::std::os::raw::c_int, ) -> *mut ::std::os::raw::c_void; } -extern "C" { +unsafe extern "C" { pub fn grib_read_any_from_file( ctx: *mut grib_context, f: *mut FILE, @@ -4570,78 +4767,18 @@ extern "C" { len: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_get_message_offset( h: *const grib_handle, offset: *mut off_t, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_get_message_size(h: *const grib_handle, size: *mut usize) -> ::std::os::raw::c_int; } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct grib_points { - pub context: *mut grib_context, - pub latitudes: *mut f64, - pub longitudes: *mut f64, - pub indexes: *mut usize, - pub group_start: *mut usize, - pub group_len: *mut usize, - pub n_groups: usize, - pub n: usize, - pub size: usize, -} -extern "C" { - pub fn grib_box_new(h: *mut grib_handle, error: *mut ::std::os::raw::c_int) -> *mut grib_box; -} -extern "C" { - pub fn grib_box_get_points( - box_: *mut grib_box, - north: f64, - west: f64, - south: f64, - east: f64, - err: *mut ::std::os::raw::c_int, - ) -> *mut grib_points; -} -extern "C" { - pub fn grib_points_get_values( - h: *mut grib_handle, - points: *mut grib_points, - val: *mut f64, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] pub struct grib_util_grid_spec { - pub grid_type: ::std::os::raw::c_int, - pub Ni: ::std::os::raw::c_long, - pub Nj: ::std::os::raw::c_long, - pub iDirectionIncrementInDegrees: f64, - pub jDirectionIncrementInDegrees: f64, - pub longitudeOfFirstGridPointInDegrees: f64, - pub longitudeOfLastGridPointInDegrees: f64, - pub latitudeOfFirstGridPointInDegrees: f64, - pub latitudeOfLastGridPointInDegrees: f64, - pub uvRelativeToGrid: ::std::os::raw::c_long, - pub latitudeOfSouthernPoleInDegrees: f64, - pub longitudeOfSouthernPoleInDegrees: f64, - pub iScansNegatively: ::std::os::raw::c_long, - pub jScansPositively: ::std::os::raw::c_long, - pub N: ::std::os::raw::c_long, - pub bitmapPresent: ::std::os::raw::c_long, - pub missingValue: f64, - pub pl: *const ::std::os::raw::c_long, - pub pl_size: ::std::os::raw::c_long, - pub truncation: ::std::os::raw::c_long, - pub orientationOfTheGridInDegrees: f64, - pub DyInMetres: ::std::os::raw::c_long, - pub DxInMetres: ::std::os::raw::c_long, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct grib_util_grid_spec2 { pub grid_type: ::std::os::raw::c_int, pub grid_name: *const ::std::os::raw::c_char, pub Ni: ::std::os::raw::c_long, @@ -4685,7 +4822,7 @@ pub struct grib_util_packing_spec { pub extra_settings: [grib_values; 80usize], pub extra_settings_count: ::std::os::raw::c_long, } -extern "C" { +unsafe extern "C" { pub fn grib_util_set_spec( h: *mut grib_handle, grid_spec: *const grib_util_grid_spec, @@ -4696,18 +4833,7 @@ extern "C" { err: *mut ::std::os::raw::c_int, ) -> *mut grib_handle; } -extern "C" { - pub fn grib_util_set_spec2( - h: *mut grib_handle, - grid_spec: *const grib_util_grid_spec2, - packing_spec: *const grib_util_packing_spec, - flags: ::std::os::raw::c_int, - data_values: *const f64, - data_values_count: usize, - err: *mut ::std::os::raw::c_int, - ) -> *mut grib_handle; -} -extern "C" { +unsafe extern "C" { pub fn parse_keyval_string( grib_tool: *const ::std::os::raw::c_char, arg: *mut ::std::os::raw::c_char, @@ -4717,7 +4843,7 @@ extern "C" { count: *mut ::std::os::raw::c_int, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn grib_new_from_file( c: *mut grib_context, f: *mut FILE, @@ -4787,7 +4913,7 @@ pub struct codes_bufr_header { } pub type codes_assertion_failed_proc = ::std::option::Option; -extern "C" { +unsafe extern "C" { pub fn codes_set_codes_assertion_failed_proc(proc_: codes_assertion_failed_proc); } pub type codes_values = grib_values; @@ -4797,8 +4923,6 @@ pub type codes_multi_handle = grib_multi_handle; pub type codes_context = grib_context; pub type codes_iterator = grib_iterator; pub type codes_nearest = grib_nearest; -pub type codes_box = grib_box; -pub type codes_points = grib_points; pub type codes_keys_iterator = grib_keys_iterator; pub type codes_bufr_keys_iterator = bufr_keys_iterator; pub type codes_fieldset = grib_fieldset; @@ -4814,40 +4938,40 @@ pub type codes_viarray = grib_viarray; pub type codes_string_list = grib_string_list; pub type codes_util_packing_spec = grib_util_packing_spec; pub type codes_util_grid_spec = grib_util_grid_spec; -extern "C" { +unsafe extern "C" { pub fn codes_fieldset_new_from_files( c: *mut codes_context, - filenames: *mut *mut ::std::os::raw::c_char, + filenames: *mut *const ::std::os::raw::c_char, nfiles: ::std::os::raw::c_int, - keys: *mut *mut ::std::os::raw::c_char, + keys: *mut *const ::std::os::raw::c_char, nkeys: ::std::os::raw::c_int, where_string: *const ::std::os::raw::c_char, order_by_string: *const ::std::os::raw::c_char, err: *mut ::std::os::raw::c_int, ) -> *mut codes_fieldset; } -extern "C" { +unsafe extern "C" { pub fn codes_fieldset_delete(set: *mut codes_fieldset); } -extern "C" { +unsafe extern "C" { pub fn codes_fieldset_rewind(set: *mut codes_fieldset); } -extern "C" { +unsafe extern "C" { pub fn codes_fieldset_apply_order_by( set: *mut codes_fieldset, order_by_string: *const ::std::os::raw::c_char, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_fieldset_next_handle( set: *mut codes_fieldset, err: *mut ::std::os::raw::c_int, ) -> *mut codes_handle; } -extern "C" { - pub fn codes_fieldset_count(set: *mut codes_fieldset) -> ::std::os::raw::c_int; +unsafe extern "C" { + pub fn codes_fieldset_count(set: *const codes_fieldset) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_values_check( h: *mut codes_handle, values: *mut codes_values, @@ -4855,7 +4979,7 @@ extern "C" { ) -> ::std::os::raw::c_int; } pub type codes_index = grib_index; -extern "C" { +unsafe extern "C" { pub fn codes_index_new_from_file( c: *mut codes_context, filename: *const ::std::os::raw::c_char, @@ -4863,40 +4987,40 @@ extern "C" { err: *mut ::std::os::raw::c_int, ) -> *mut codes_index; } -extern "C" { +unsafe extern "C" { pub fn codes_index_new( c: *mut codes_context, keys: *const ::std::os::raw::c_char, err: *mut ::std::os::raw::c_int, ) -> *mut codes_index; } -extern "C" { +unsafe extern "C" { pub fn codes_index_add_file( index: *mut codes_index, filename: *const ::std::os::raw::c_char, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_index_write( index: *mut codes_index, filename: *const ::std::os::raw::c_char, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_index_read( c: *mut codes_context, filename: *const ::std::os::raw::c_char, err: *mut ::std::os::raw::c_int, ) -> *mut codes_index; } -extern "C" { +unsafe extern "C" { pub fn codes_index_get_size( index: *const codes_index, key: *const ::std::os::raw::c_char, size: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_index_get_long( index: *const codes_index, key: *const ::std::os::raw::c_char, @@ -4904,7 +5028,7 @@ extern "C" { size: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_index_get_double( index: *const codes_index, key: *const ::std::os::raw::c_char, @@ -4912,7 +5036,7 @@ extern "C" { size: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_index_get_string( index: *const codes_index, key: *const ::std::os::raw::c_char, @@ -4920,51 +5044,51 @@ extern "C" { size: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_index_select_long( index: *mut codes_index, key: *const ::std::os::raw::c_char, value: ::std::os::raw::c_long, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_index_select_double( index: *mut codes_index, key: *const ::std::os::raw::c_char, value: f64, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_index_select_string( index: *mut codes_index, key: *const ::std::os::raw::c_char, value: *const ::std::os::raw::c_char, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_handle_new_from_index( index: *mut codes_index, err: *mut ::std::os::raw::c_int, ) -> *mut codes_handle; } -extern "C" { +unsafe extern "C" { pub fn codes_index_delete(index: *mut codes_index); } -extern "C" { +unsafe extern "C" { pub fn codes_count_in_file( c: *mut codes_context, f: *mut FILE, n: *mut ::std::os::raw::c_int, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_count_in_filename( c: *mut codes_context, filename: *const ::std::os::raw::c_char, n: *mut ::std::os::raw::c_int, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_handle_new_from_file( c: *mut codes_context, f: *mut FILE, @@ -4972,28 +5096,28 @@ extern "C" { error: *mut ::std::os::raw::c_int, ) -> *mut codes_handle; } -extern "C" { +unsafe extern "C" { pub fn codes_grib_handle_new_from_file( c: *mut codes_context, f: *mut FILE, error: *mut ::std::os::raw::c_int, ) -> *mut codes_handle; } -extern "C" { +unsafe extern "C" { pub fn codes_bufr_handle_new_from_file( c: *mut codes_context, f: *mut FILE, error: *mut ::std::os::raw::c_int, ) -> *mut codes_handle; } -extern "C" { +unsafe extern "C" { pub fn codes_write_message( h: *const codes_handle, file: *const ::std::os::raw::c_char, mode: *const ::std::os::raw::c_char, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_grib_util_sections_copy( hfrom: *mut codes_handle, hto: *mut codes_handle, @@ -5001,24 +5125,24 @@ extern "C" { err: *mut ::std::os::raw::c_int, ) -> *mut codes_handle; } -extern "C" { +unsafe extern "C" { pub fn codes_grib_util_get_param_id( mars_param: *const ::std::os::raw::c_char, ) -> *mut codes_string_list; } -extern "C" { +unsafe extern "C" { pub fn codes_grib_util_get_mars_param( param_id: *const ::std::os::raw::c_char, ) -> *mut codes_string_list; } -extern "C" { +unsafe extern "C" { pub fn codes_handle_new_from_message( c: *mut codes_context, data: *const ::std::os::raw::c_void, data_len: usize, ) -> *mut codes_handle; } -extern "C" { +unsafe extern "C" { pub fn codes_grib_handle_new_from_multi_message( c: *mut codes_context, data: *mut *mut ::std::os::raw::c_void, @@ -5026,72 +5150,81 @@ extern "C" { error: *mut ::std::os::raw::c_int, ) -> *mut codes_handle; } -extern "C" { +unsafe extern "C" { pub fn codes_handle_new_from_message_copy( c: *mut codes_context, data: *const ::std::os::raw::c_void, data_len: usize, ) -> *mut codes_handle; } -extern "C" { +unsafe extern "C" { pub fn codes_grib_handle_new_from_samples( c: *mut codes_context, sample_name: *const ::std::os::raw::c_char, ) -> *mut codes_handle; } -extern "C" { +unsafe extern "C" { pub fn codes_bufr_handle_new_from_samples( c: *mut codes_context, sample_name: *const ::std::os::raw::c_char, ) -> *mut codes_handle; } -extern "C" { +unsafe extern "C" { + pub fn codes_handle_new_from_samples( + c: *mut codes_context, + sample_name: *const ::std::os::raw::c_char, + ) -> *mut codes_handle; +} +unsafe extern "C" { pub fn codes_handle_clone(h: *const codes_handle) -> *mut codes_handle; } -extern "C" { +unsafe extern "C" { + pub fn codes_handle_clone_headers_only(h: *const codes_handle) -> *mut codes_handle; +} +unsafe extern "C" { pub fn codes_handle_delete(h: *mut codes_handle) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_grib_multi_handle_new(c: *mut codes_context) -> *mut codes_multi_handle; } -extern "C" { +unsafe extern "C" { pub fn codes_grib_multi_handle_append( h: *mut codes_handle, start_section: ::std::os::raw::c_int, mh: *mut codes_multi_handle, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_grib_multi_handle_delete(mh: *mut codes_multi_handle) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_grib_multi_handle_write( mh: *mut codes_multi_handle, f: *mut FILE, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_get_message( h: *const codes_handle, message: *mut *const ::std::os::raw::c_void, message_length: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_get_message_copy( h: *const codes_handle, message: *mut ::std::os::raw::c_void, message_length: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_grib_iterator_new( h: *const codes_handle, flags: ::std::os::raw::c_ulong, error: *mut ::std::os::raw::c_int, ) -> *mut codes_iterator; } -extern "C" { +unsafe extern "C" { pub fn codes_grib_get_data( h: *const codes_handle, lats: *mut f64, @@ -5099,7 +5232,7 @@ extern "C" { values: *mut f64, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_grib_iterator_next( i: *mut codes_iterator, lat: *mut f64, @@ -5107,7 +5240,7 @@ extern "C" { value: *mut f64, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_grib_iterator_previous( i: *mut codes_iterator, lat: *mut f64, @@ -5115,22 +5248,22 @@ extern "C" { value: *mut f64, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_grib_iterator_has_next(i: *mut codes_iterator) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_grib_iterator_reset(i: *mut codes_iterator) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_grib_iterator_delete(i: *mut codes_iterator) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_grib_nearest_new( h: *const codes_handle, error: *mut ::std::os::raw::c_int, ) -> *mut codes_nearest; } -extern "C" { +unsafe extern "C" { pub fn codes_grib_nearest_find( nearest: *mut codes_nearest, h: *const codes_handle, @@ -5145,10 +5278,10 @@ extern "C" { len: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_grib_nearest_delete(nearest: *mut codes_nearest) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_grib_nearest_find_multiple( h: *const codes_handle, is_lsm: ::std::os::raw::c_int, @@ -5162,42 +5295,49 @@ extern "C" { indexes: *mut ::std::os::raw::c_int, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_get_offset( h: *const codes_handle, key: *const ::std::os::raw::c_char, offset: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_get_size( h: *const codes_handle, key: *const ::std::os::raw::c_char, size: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_get_length( h: *const codes_handle, key: *const ::std::os::raw::c_char, length: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_get_long( h: *const codes_handle, key: *const ::std::os::raw::c_char, value: *mut ::std::os::raw::c_long, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_get_double( h: *const codes_handle, key: *const ::std::os::raw::c_char, value: *mut f64, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { + pub fn codes_get_float( + h: *const codes_handle, + key: *const ::std::os::raw::c_char, + value: *mut f32, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { pub fn codes_get_double_element( h: *const codes_handle, key: *const ::std::os::raw::c_char, @@ -5205,16 +5345,33 @@ extern "C" { value: *mut f64, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { + pub fn codes_get_float_element( + h: *const codes_handle, + key: *const ::std::os::raw::c_char, + i: ::std::os::raw::c_int, + value: *mut f32, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { pub fn codes_get_double_elements( h: *const codes_handle, key: *const ::std::os::raw::c_char, - i: *mut ::std::os::raw::c_int, + index_array: *const ::std::os::raw::c_int, size: ::std::os::raw::c_long, value: *mut f64, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { + pub fn codes_get_float_elements( + h: *const codes_handle, + key: *const ::std::os::raw::c_char, + index_array: *const ::std::os::raw::c_int, + size: ::std::os::raw::c_long, + value: *mut f32, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { pub fn codes_get_string( h: *const codes_handle, key: *const ::std::os::raw::c_char, @@ -5222,7 +5379,7 @@ extern "C" { length: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_get_string_array( h: *const codes_handle, key: *const ::std::os::raw::c_char, @@ -5230,7 +5387,7 @@ extern "C" { length: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_get_bytes( h: *const codes_handle, key: *const ::std::os::raw::c_char, @@ -5238,7 +5395,7 @@ extern "C" { length: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_get_double_array( h: *const codes_handle, key: *const ::std::os::raw::c_char, @@ -5246,7 +5403,15 @@ extern "C" { length: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { + pub fn codes_get_float_array( + h: *const codes_handle, + key: *const ::std::os::raw::c_char, + vals: *mut f32, + length: *mut usize, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { pub fn codes_get_long_array( h: *const codes_handle, key: *const ::std::os::raw::c_char, @@ -5254,28 +5419,28 @@ extern "C" { length: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_copy_namespace( dest: *mut codes_handle, name: *const ::std::os::raw::c_char, src: *mut codes_handle, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_set_long( h: *mut codes_handle, key: *const ::std::os::raw::c_char, val: ::std::os::raw::c_long, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_set_double( h: *mut codes_handle, key: *const ::std::os::raw::c_char, val: f64, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_set_string( h: *mut codes_handle, key: *const ::std::os::raw::c_char, @@ -5283,7 +5448,7 @@ extern "C" { length: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_set_bytes( h: *mut codes_handle, key: *const ::std::os::raw::c_char, @@ -5291,7 +5456,7 @@ extern "C" { length: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_set_double_array( h: *mut codes_handle, key: *const ::std::os::raw::c_char, @@ -5299,7 +5464,15 @@ extern "C" { length: usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { + pub fn codes_set_float_array( + h: *mut codes_handle, + key: *const ::std::os::raw::c_char, + vals: *const f32, + length: usize, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { pub fn codes_set_force_double_array( h: *mut codes_handle, key: *const ::std::os::raw::c_char, @@ -5307,7 +5480,15 @@ extern "C" { length: usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { + pub fn codes_set_force_float_array( + h: *mut codes_handle, + key: *const ::std::os::raw::c_char, + vals: *const f32, + length: usize, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { pub fn codes_set_long_array( h: *mut codes_handle, key: *const ::std::os::raw::c_char, @@ -5315,7 +5496,7 @@ extern "C" { length: usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_set_string_array( h: *mut codes_handle, key: *const ::std::os::raw::c_char, @@ -5323,7 +5504,7 @@ extern "C" { length: usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_dump_content( h: *const codes_handle, out: *mut FILE, @@ -5332,83 +5513,175 @@ extern "C" { arg: *mut ::std::os::raw::c_void, ); } -extern "C" { +unsafe extern "C" { pub fn codes_dump_action_tree(c: *mut codes_context, f: *mut FILE); } -extern "C" { +pub type codes_free_proc = ::std::option::Option< + unsafe extern "C" fn(c: *const codes_context, data: *mut ::std::os::raw::c_void), +>; +pub type codes_malloc_proc = ::std::option::Option< + unsafe extern "C" fn(c: *const codes_context, length: usize) -> *mut ::std::os::raw::c_void, +>; +pub type codes_realloc_proc = ::std::option::Option< + unsafe extern "C" fn( + c: *const codes_context, + data: *mut ::std::os::raw::c_void, + length: usize, + ) -> *mut ::std::os::raw::c_void, +>; +pub type codes_log_proc = ::std::option::Option< + unsafe extern "C" fn( + c: *const codes_context, + level: ::std::os::raw::c_int, + mesg: *const ::std::os::raw::c_char, + ), +>; +pub type codes_print_proc = ::std::option::Option< + unsafe extern "C" fn( + c: *const codes_context, + descriptor: *mut ::std::os::raw::c_void, + mesg: *const ::std::os::raw::c_char, + ), +>; +pub type codes_data_read_proc = ::std::option::Option< + unsafe extern "C" fn( + c: *const codes_context, + ptr: *mut ::std::os::raw::c_void, + size: usize, + stream: *mut ::std::os::raw::c_void, + ) -> usize, +>; +pub type codes_data_write_proc = ::std::option::Option< + unsafe extern "C" fn( + c: *const codes_context, + ptr: *const ::std::os::raw::c_void, + size: usize, + stream: *mut ::std::os::raw::c_void, + ) -> usize, +>; +pub type codes_data_tell_proc = ::std::option::Option< + unsafe extern "C" fn(c: *const codes_context, stream: *mut ::std::os::raw::c_void) -> off_t, +>; +pub type codes_data_seek_proc = ::std::option::Option< + unsafe extern "C" fn( + c: *const codes_context, + offset: off_t, + whence: ::std::os::raw::c_int, + stream: *mut ::std::os::raw::c_void, + ) -> off_t, +>; +pub type codes_data_eof_proc = ::std::option::Option< + unsafe extern "C" fn( + c: *const codes_context, + stream: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int, +>; +unsafe extern "C" { pub fn codes_context_get_default() -> *mut codes_context; } -extern "C" { +unsafe extern "C" { pub fn codes_context_delete(c: *mut codes_context); } -extern "C" { +unsafe extern "C" { pub fn codes_gts_header_on(c: *mut codes_context); } -extern "C" { +unsafe extern "C" { pub fn codes_gts_header_off(c: *mut codes_context); } -extern "C" { +unsafe extern "C" { pub fn codes_gribex_mode_on(c: *mut codes_context); } -extern "C" { +unsafe extern "C" { pub fn codes_get_gribex_mode(c: *mut codes_context) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_gribex_mode_off(c: *mut codes_context); } -extern "C" { +unsafe extern "C" { pub fn codes_bufr_multi_element_constant_arrays_on(c: *mut codes_context); } -extern "C" { +unsafe extern "C" { pub fn codes_bufr_multi_element_constant_arrays_off(c: *mut codes_context); } -extern "C" { +unsafe extern "C" { pub fn codes_context_set_definitions_path( c: *mut codes_context, path: *const ::std::os::raw::c_char, ); } -extern "C" { +unsafe extern "C" { pub fn codes_context_set_samples_path( c: *mut codes_context, path: *const ::std::os::raw::c_char, ); } -extern "C" { +unsafe extern "C" { + pub fn codes_context_set_memory_proc( + c: *mut codes_context, + p_malloc: codes_malloc_proc, + p_free: codes_free_proc, + p_realloc: codes_realloc_proc, + ); +} +unsafe extern "C" { + pub fn codes_context_set_persistent_memory_proc( + c: *mut codes_context, + p_malloc: codes_malloc_proc, + p_free: codes_free_proc, + ); +} +unsafe extern "C" { + pub fn codes_context_set_buffer_memory_proc( + c: *mut codes_context, + p_malloc: codes_malloc_proc, + p_free: codes_free_proc, + p_realloc: codes_realloc_proc, + ); +} +unsafe extern "C" { + pub fn codes_context_set_print_proc(c: *mut codes_context, p_print: codes_print_proc); +} +unsafe extern "C" { + pub fn codes_context_set_logging_proc(c: *mut codes_context, p_log: codes_log_proc); +} +unsafe extern "C" { pub fn codes_grib_multi_support_on(c: *mut codes_context); } -extern "C" { +unsafe extern "C" { pub fn codes_grib_multi_support_off(c: *mut codes_context); } -extern "C" { +unsafe extern "C" { pub fn codes_grib_multi_support_reset_file(c: *mut codes_context, f: *mut FILE); } -extern "C" { +unsafe extern "C" { pub fn codes_samples_path(c: *const codes_context) -> *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn codes_definition_path(c: *const codes_context) -> *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn codes_get_api_version() -> ::std::os::raw::c_long; } -extern "C" { +unsafe extern "C" { pub fn codes_get_git_sha1() -> *const ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { + pub fn codes_get_build_date() -> *const ::std::os::raw::c_char; +} +unsafe extern "C" { pub fn codes_get_package_name() -> *const ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn codes_print_api_version(out: *mut FILE); } -extern "C" { +unsafe extern "C" { pub fn codes_keys_iterator_new( h: *mut codes_handle, filter_flags: ::std::os::raw::c_ulong, name_space: *const ::std::os::raw::c_char, ) -> *mut codes_keys_iterator; } -extern "C" { +unsafe extern "C" { pub fn codes_bufr_copy_data_return_copied_keys( hin: *mut codes_handle, hout: *mut codes_handle, @@ -5416,77 +5689,84 @@ extern "C" { err: *mut ::std::os::raw::c_int, ) -> *mut *mut ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn codes_bufr_copy_data( hin: *mut codes_handle, hout: *mut codes_handle, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_keys_iterator_next(kiter: *mut codes_keys_iterator) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_keys_iterator_get_name( kiter: *const codes_keys_iterator, ) -> *const ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn codes_keys_iterator_delete(kiter: *mut codes_keys_iterator) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_keys_iterator_rewind(kiter: *mut codes_keys_iterator) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_keys_iterator_set_flags( kiter: *mut codes_keys_iterator, flags: ::std::os::raw::c_ulong, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_keys_iterator_get_long( kiter: *const codes_keys_iterator, v: *mut ::std::os::raw::c_long, len: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_keys_iterator_get_double( kiter: *const codes_keys_iterator, v: *mut f64, len: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { + pub fn codes_keys_iterator_get_float( + kiter: *const codes_keys_iterator, + v: *mut f32, + len: *mut usize, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { pub fn codes_keys_iterator_get_string( kiter: *const codes_keys_iterator, v: *mut ::std::os::raw::c_char, len: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_keys_iterator_get_bytes( kiter: *const codes_keys_iterator, v: *mut ::std::os::raw::c_uchar, len: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_update_sections_lengths(h: *mut codes_handle); } -extern "C" { +unsafe extern "C" { pub fn codes_get_error_message(code: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn codes_get_type_name(type_: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char; } -extern "C" { +unsafe extern "C" { pub fn codes_get_native_type( h: *const codes_handle, name: *const ::std::os::raw::c_char, type_: *mut ::std::os::raw::c_int, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_check( call: *const ::std::os::raw::c_char, file: *const ::std::os::raw::c_char, @@ -5495,60 +5775,67 @@ extern "C" { msg: *const ::std::os::raw::c_char, ); } -extern "C" { +unsafe extern "C" { pub fn codes_set_values( h: *mut codes_handle, codes_values: *mut codes_values, arg_count: usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_handle_new_from_partial_message_copy( c: *mut codes_context, data: *const ::std::os::raw::c_void, size: usize, ) -> *mut codes_handle; } -extern "C" { +unsafe extern "C" { pub fn codes_handle_new_from_partial_message( c: *mut codes_context, data: *const ::std::os::raw::c_void, buflen: usize, ) -> *mut codes_handle; } -extern "C" { +unsafe extern "C" { pub fn codes_is_missing( h: *const codes_handle, key: *const ::std::os::raw::c_char, err: *mut ::std::os::raw::c_int, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_is_defined( h: *const codes_handle, key: *const ::std::os::raw::c_char, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_bufr_key_is_header( h: *const codes_handle, key: *const ::std::os::raw::c_char, err: *mut ::std::os::raw::c_int, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { + pub fn codes_bufr_key_is_coordinate( + h: *const codes_handle, + key: *const ::std::os::raw::c_char, + err: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { pub fn codes_set_missing( h: *mut codes_handle, key: *const ::std::os::raw::c_char, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_get_gaussian_latitudes( truncation: ::std::os::raw::c_long, latitudes: *mut f64, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_julian_to_datetime( jd: f64, year: *mut ::std::os::raw::c_long, @@ -5559,7 +5846,7 @@ extern "C" { second: *mut ::std::os::raw::c_long, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_datetime_to_julian( year: ::std::os::raw::c_long, month: ::std::os::raw::c_long, @@ -5570,13 +5857,13 @@ extern "C" { jd: *mut f64, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_julian_to_date(jdate: ::std::os::raw::c_long) -> ::std::os::raw::c_long; } -extern "C" { +unsafe extern "C" { pub fn codes_date_to_julian(ddate: ::std::os::raw::c_long) -> ::std::os::raw::c_long; } -extern "C" { +unsafe extern "C" { pub fn codes_get_reduced_row( pl: ::std::os::raw::c_long, lon_first: f64, @@ -5586,7 +5873,7 @@ extern "C" { ilon_last: *mut ::std::os::raw::c_long, ); } -extern "C" { +unsafe extern "C" { pub fn codes_get_reduced_row_p( pl: ::std::os::raw::c_long, lon_first: f64, @@ -5596,60 +5883,39 @@ extern "C" { olon_last: *mut f64, ); } -extern "C" { +unsafe extern "C" { pub fn codes_get_message_offset( h: *const codes_handle, offset: *mut off_t, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_get_message_size( h: *const codes_handle, size: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_get_product_kind( h: *const codes_handle, product_kind: *mut ProductKind, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_check_message_header( bytes: *const ::std::os::raw::c_void, length: usize, product: ProductKind, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_check_message_footer( bytes: *const ::std::os::raw::c_void, length: usize, product: ProductKind, ) -> ::std::os::raw::c_int; } -extern "C" { - pub fn codes_box_new(h: *mut codes_handle, error: *mut ::std::os::raw::c_int) - -> *mut codes_box; -} -extern "C" { - pub fn codes_box_get_points( - box_: *mut codes_box, - north: f64, - west: f64, - south: f64, - east: f64, - err: *mut ::std::os::raw::c_int, - ) -> *mut codes_points; -} -extern "C" { - pub fn codes_points_get_values( - h: *mut codes_handle, - points: *mut codes_points, - val: *mut f64, - ) -> ::std::os::raw::c_int; -} -extern "C" { +unsafe extern "C" { pub fn codes_grib_util_set_spec( h: *mut codes_handle, grid_spec: *const codes_util_grid_spec, @@ -5660,7 +5926,7 @@ extern "C" { err: *mut ::std::os::raw::c_int, ) -> *mut codes_handle; } -extern "C" { +unsafe extern "C" { pub fn codes_bufr_extract_headers_malloc( c: *mut codes_context, filename: *const ::std::os::raw::c_char, @@ -5669,7 +5935,7 @@ extern "C" { strict_mode: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_bufr_header_get_string( bh: *mut codes_bufr_header, key: *const ::std::os::raw::c_char, @@ -5677,12 +5943,23 @@ extern "C" { len: *mut usize, ) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn codes_extract_offsets_malloc( - c: *mut grib_context, + c: *mut codes_context, + filename: *const ::std::os::raw::c_char, + product: ProductKind, + offsets: *mut *mut off_t, + num_messages: *mut ::std::os::raw::c_int, + strict_mode: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn codes_extract_offsets_sizes_malloc( + c: *mut codes_context, filename: *const ::std::os::raw::c_char, product: ProductKind, offsets: *mut *mut off_t, + sizes: *mut *mut usize, num_messages: *mut ::std::os::raw::c_int, strict_mode: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int;