[INFO] fetching crate rcheevos-sys 0.1.0...
[INFO] testing rcheevos-sys-0.1.0 against 1.100.0-beta.1 for beta-1.100-2
[INFO] extracting crate rcheevos-sys 0.1.0 into /workspace/builds/worker-3-tc2/source
[INFO] started tweaking crates.io crate rcheevos-sys 0.1.0
[INFO] finished tweaking crates.io crate rcheevos-sys 0.1.0
[INFO] tweaked toml for crates.io crate rcheevos-sys 0.1.0 written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate rcheevos-sys 0.1.0 on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 29 packages to highest compatible versions
[INFO] [stderr]       Adding bindgen v0.70.1 (available: v0.73.2)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] a77a9d3e286acf7e42949ba5f48ca7cf84435c704901c0d785b3b1c5fca5e6f6
[INFO] running `Command { std: "docker" "start" "a77a9d3e286acf7e42949ba5f48ca7cf84435c704901c0d785b3b1c5fca5e6f6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a77a9d3e286acf7e42949ba5f48ca7cf84435c704901c0d785b3b1c5fca5e6f6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "a77a9d3e286acf7e42949ba5f48ca7cf84435c704901c0d785b3b1c5fca5e6f6" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a77a9d3e286acf7e42949ba5f48ca7cf84435c704901c0d785b3b1c5fca5e6f6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "a77a9d3e286acf7e42949ba5f48ca7cf84435c704901c0d785b3b1c5fca5e6f6" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.107
[INFO] [stderr]    Compiling unicode-ident v1.0.26
[INFO] [stderr]    Compiling glob v0.3.4
[INFO] [stderr]    Compiling quote v1.0.47
[INFO] [stderr]    Compiling libc v0.2.190
[INFO] [stderr]    Compiling prettyplease v0.2.37
[INFO] [stderr]    Compiling regex-syntax v0.8.11
[INFO] [stderr]    Compiling memchr v2.8.3
[INFO] [stderr]    Compiling minimal-lexical v0.2.1
[INFO] [stderr]    Compiling cfg-if v1.0.5
[INFO] [stderr]    Compiling libloading v0.8.9
[INFO] [stderr]    Compiling bindgen v0.70.1
[INFO] [stderr]    Compiling either v1.18.0
[INFO] [stderr]    Compiling bitflags v2.13.2
[INFO] [stderr]    Compiling find-msvc-tools v0.1.14
[INFO] [stderr]    Compiling clang-sys v1.9.1
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling log v0.4.34
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling rustc-hash v1.1.0
[INFO] [stderr]    Compiling cc v1.6.0
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling regex-automata v0.4.18
[INFO] [stderr]    Compiling cexpr v0.6.0
[INFO] [stderr]    Compiling regex v1.13.1
[INFO] [stderr]    Compiling rcheevos-sys v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]  --> /opt/rustwide/target/debug/build/rcheevos-sys/badd2487a33295ab/out/bindings.rs:3:124281
[INFO] [stdout]   |
[INFO] [stdout] 3 | ...: ffi :: c_int { unsafe { :: core :: mem :: transmute (self . _bitfield_1 . get (0usize , 24u8) as u32) } } # [inline] pub fn set_...
[INFO] [stdout]   |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] help: replace this with
[INFO] [stdout]   |
[INFO] [stdout] 3 - # [repr (C)] # [derive (Copy , Clone , Debug , Default , Eq , Hash , Ord , PartialEq , PartialOrd)] pub struct __BindgenBitfieldUnit < Storage > { storage : Storage , } impl < Storage > __BindgenBitfieldUnit < Storage > { # [inline] pub const fn new (storage : Storage) -> Self { Self { storage } } } impl < Storage > __BindgenBitfieldUnit < Storage > where Storage : AsRef < [u8] > + AsMut < [u8] >, { # [inline] pub fn get_bit (& self , index : usize) -> bool { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = self . storage . as_ref () [byte_index] ; let bit_index = if cfg ! (target_endian = "big") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; byte & mask == mask } # [inline] pub fn set_bit (& mut self , index : usize , val : bool) { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = & mut self . storage . as_mut () [byte_index] ; let bit_index = if cfg ! (target_endian = "big") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; if val { * byte |= mask ; } else { * byte &= ! mask ; } } # [inline] pub fn get (& self , bit_offset : usize , bit_width : u8) -> u64 { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; let mut val = 0 ; for i in 0 .. (bit_width as usize) { if self . get_bit (i + bit_offset) { let index = if cfg ! (target_endian = "big") { bit_width as usize - 1 - i } else { i } ; val |= 1 << index ; } } val } # [inline] pub fn set (& mut self , bit_offset : usize , bit_width : u8 , val : u64) { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; for i in 0 .. (bit_width as usize) { let mask = 1 << i ; let val_bit_is_set = val & mask == mask ; let index = if cfg ! (target_endian = "big") { bit_width as usize - 1 - i } else { i } ; self . set_bit (index + bit_offset , val_bit_is_set) ; } } } # [derive (PartialEq , Copy , Clone , Hash , Debug , Default)] # [repr (C)] pub struct __BindgenComplex < T > { pub re : T , pub im : T } pub const _STDINT_H : u32 = 1 ; pub const _FEATURES_H : u32 = 1 ; pub const _DEFAULT_SOURCE : u32 = 1 ; pub const __GLIBC_USE_ISOC2Y : u32 = 0 ; pub const __GLIBC_USE_ISOC23 : u32 = 0 ; pub const __USE_ISOC11 : u32 = 1 ; pub const __USE_ISOC99 : u32 = 1 ; pub const __USE_ISOC95 : u32 = 1 ; pub const __USE_POSIX_IMPLICITLY : u32 = 1 ; pub const _POSIX_SOURCE : u32 = 1 ; pub const _POSIX_C_SOURCE : u32 = 202405 ; pub const __USE_POSIX : u32 = 1 ; pub const __USE_POSIX2 : u32 = 1 ; pub const __USE_POSIX199309 : u32 = 1 ; pub const __USE_POSIX199506 : u32 = 1 ; pub const __USE_XOPEN2K : u32 = 1 ; pub const __USE_XOPEN2K8 : u32 = 1 ; pub const _ATFILE_SOURCE : u32 = 1 ; pub const __USE_XOPEN2K24 : u32 = 1 ; pub const __WORDSIZE : u32 = 64 ; pub const __WORDSIZE_TIME64_COMPAT32 : u32 = 1 ; pub const __SYSCALL_WORDSIZE : u32 = 64 ; pub const __TIMESIZE : u32 = 64 ; pub const __USE_TIME_BITS64 : u32 = 1 ; pub const __USE_MISC : u32 = 1 ; 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_C23_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 ; pub const __STDC_IEC_559_COMPLEX__ : u32 = 1 ; 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 = 43 ; pub const _SYS_CDEFS_H : u32 = 1 ; pub const __glibc_c99_flexarr_available : u32 = 1 ; pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI : u32 = 0 ; pub const __HAVE_GENERIC_SELECTION : u32 = 1 ; pub const __GLIBC_USE_LIB_EXT2 : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT_C23 : u32 = 0 ; 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_C23 : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_TYPES_EXT : u32 = 0 ; pub const _BITS_TYPES_H : u32 = 1 ; pub const _BITS_TYPESIZES_H : u32 = 1 ; pub const __OFF_T_MATCHES_OFF64_T : u32 = 1 ; pub const __INO_T_MATCHES_INO64_T : u32 = 1 ; pub const __RLIM_T_MATCHES_RLIM64_T : u32 = 1 ; pub const __STATFS_MATCHES_STATFS64 : u32 = 1 ; pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 : u32 = 1 ; pub const __FD_SETSIZE : u32 = 1024 ; pub const _BITS_TIME64_H : u32 = 1 ; pub const _BITS_WCHAR_H : u32 = 1 ; pub const _BITS_STDINT_INTN_H : u32 = 1 ; pub const _BITS_STDINT_UINTN_H : u32 = 1 ; pub const _BITS_STDINT_LEAST_H : u32 = 1 ; pub const INT8_MIN : i32 = - 128 ; pub const INT16_MIN : i32 = - 32768 ; pub const INT32_MIN : i32 = - 2147483648 ; pub const INT8_MAX : u32 = 127 ; pub const INT16_MAX : u32 = 32767 ; pub const INT32_MAX : u32 = 2147483647 ; pub const UINT8_MAX : u32 = 255 ; pub const UINT16_MAX : u32 = 65535 ; pub const UINT32_MAX : u32 = 4294967295 ; pub const INT_LEAST8_MIN : i32 = - 128 ; pub const INT_LEAST16_MIN : i32 = - 32768 ; pub const INT_LEAST32_MIN : i32 = - 2147483648 ; pub const INT_LEAST8_MAX : u32 = 127 ; pub const INT_LEAST16_MAX : u32 = 32767 ; pub const INT_LEAST32_MAX : u32 = 2147483647 ; pub const UINT_LEAST8_MAX : u32 = 255 ; pub const UINT_LEAST16_MAX : u32 = 65535 ; pub const UINT_LEAST32_MAX : u32 = 4294967295 ; pub const INT_FAST8_MIN : i32 = - 128 ; pub const INT_FAST16_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST32_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST8_MAX : u32 = 127 ; pub const INT_FAST16_MAX : u64 = 9223372036854775807 ; pub const INT_FAST32_MAX : u64 = 9223372036854775807 ; pub const UINT_FAST8_MAX : u32 = 255 ; pub const UINT_FAST16_MAX : i32 = - 1 ; pub const UINT_FAST32_MAX : i32 = - 1 ; pub const INTPTR_MIN : i64 = - 9223372036854775808 ; pub const INTPTR_MAX : u64 = 9223372036854775807 ; pub const UINTPTR_MAX : i32 = - 1 ; pub const PTRDIFF_MIN : i64 = - 9223372036854775808 ; pub const PTRDIFF_MAX : u64 = 9223372036854775807 ; pub const SIG_ATOMIC_MIN : i32 = - 2147483648 ; pub const SIG_ATOMIC_MAX : u32 = 2147483647 ; pub const SIZE_MAX : i32 = - 1 ; pub const WINT_MIN : u32 = 0 ; pub const WINT_MAX : u32 = 4294967295 ; pub const RC_VALUE_MAX_NAME_LENGTH : u32 = 15 ; pub const _TIME_H : u32 = 1 ; pub const _BITS_TIME_H : u32 = 1 ; pub const CLOCK_REALTIME : u32 = 0 ; pub const CLOCK_MONOTONIC : u32 = 1 ; pub const CLOCK_PROCESS_CPUTIME_ID : u32 = 2 ; pub const CLOCK_THREAD_CPUTIME_ID : u32 = 3 ; pub const CLOCK_MONOTONIC_RAW : u32 = 4 ; pub const CLOCK_REALTIME_COARSE : u32 = 5 ; pub const CLOCK_MONOTONIC_COARSE : u32 = 6 ; pub const CLOCK_BOOTTIME : u32 = 7 ; pub const CLOCK_REALTIME_ALARM : u32 = 8 ; pub const CLOCK_BOOTTIME_ALARM : u32 = 9 ; pub const CLOCK_TAI : u32 = 11 ; pub const TIMER_ABSTIME : u32 = 1 ; pub const __clock_t_defined : u32 = 1 ; pub const __time_t_defined : u32 = 1 ; pub const __struct_tm_defined : u32 = 1 ; pub const _STRUCT_TIMESPEC : u32 = 1 ; pub const _BITS_ENDIAN_H : u32 = 1 ; pub const __LITTLE_ENDIAN : u32 = 1234 ; pub const __BIG_ENDIAN : u32 = 4321 ; pub const __PDP_ENDIAN : u32 = 3412 ; pub const _BITS_ENDIANNESS_H : u32 = 1 ; pub const __BYTE_ORDER : u32 = 1234 ; pub const __FLOAT_WORD_ORDER : u32 = 1234 ; pub const __clockid_t_defined : u32 = 1 ; pub const __timer_t_defined : u32 = 1 ; pub const __itimerspec_defined : u32 = 1 ; pub const _BITS_TYPES_LOCALE_T_H : u32 = 1 ; pub const _BITS_TYPES___LOCALE_T_H : u32 = 1 ; pub const TIME_UTC : u32 = 1 ; pub const _STDIO_H : u32 = 1 ; pub const _____fpos_t_defined : u32 = 1 ; pub const ____mbstate_t_defined : u32 = 1 ; pub const _____fpos64_t_defined : u32 = 1 ; pub const ____FILE_defined : u32 = 1 ; pub const __FILE_defined : u32 = 1 ; 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 ; pub const BUFSIZ : u32 = 8192 ; pub const EOF : i32 = - 1 ; 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 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 ; pub const __HAVE_FLOAT128 : u32 = 1 ; pub const __HAVE_DISTINCT_FLOAT128 : u32 = 1 ; pub const __HAVE_FLOAT64X : u32 = 1 ; pub const __HAVE_FLOAT64X_LONG_DOUBLE : u32 = 1 ; pub const __HAVE_FLOAT16 : u32 = 0 ; pub const __HAVE_FLOAT32 : u32 = 1 ; pub const __HAVE_FLOAT64 : u32 = 1 ; pub const __HAVE_FLOAT32X : u32 = 1 ; pub const __HAVE_FLOAT128X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT16 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT32 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT64 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT32X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT64X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT128X : u32 = 0 ; pub const __HAVE_FLOATN_NOT_TYPEDEF : u32 = 0 ; pub const RC_IMAGE_TYPE_GAME : u32 = 1 ; pub const RC_IMAGE_TYPE_ACHIEVEMENT : u32 = 2 ; pub const RC_IMAGE_TYPE_ACHIEVEMENT_LOCKED : u32 = 3 ; pub const RC_IMAGE_TYPE_USER : u32 = 4 ; pub const RC_ACHIEVEMENT_CATEGORY_CORE : u32 = 3 ; pub const RC_ACHIEVEMENT_CATEGORY_UNOFFICIAL : u32 = 5 ; pub const RC_ACHIEVEMENT_TYPE_STANDARD : u32 = 0 ; pub const RC_ACHIEVEMENT_TYPE_MISSABLE : u32 = 1 ; pub const RC_ACHIEVEMENT_TYPE_PROGRESSION : u32 = 2 ; pub const RC_ACHIEVEMENT_TYPE_WIN : u32 = 3 ; pub const RC_CLIENT_LEADERBOARD_DISPLAY_SIZE : u32 = 24 ; pub const RC_OK : _bindgen_ty_1 = 0 ; pub const RC_INVALID_LUA_OPERAND : _bindgen_ty_1 = - 1 ; pub const RC_INVALID_MEMORY_OPERAND : _bindgen_ty_1 = - 2 ; pub const RC_INVALID_CONST_OPERAND : _bindgen_ty_1 = - 3 ; pub const RC_INVALID_FP_OPERAND : _bindgen_ty_1 = - 4 ; pub const RC_INVALID_CONDITION_TYPE : _bindgen_ty_1 = - 5 ; pub const RC_INVALID_OPERATOR : _bindgen_ty_1 = - 6 ; pub const RC_INVALID_REQUIRED_HITS : _bindgen_ty_1 = - 7 ; pub const RC_DUPLICATED_START : _bindgen_ty_1 = - 8 ; pub const RC_DUPLICATED_CANCEL : _bindgen_ty_1 = - 9 ; pub const RC_DUPLICATED_SUBMIT : _bindgen_ty_1 = - 10 ; pub const RC_DUPLICATED_VALUE : _bindgen_ty_1 = - 11 ; pub const RC_DUPLICATED_PROGRESS : _bindgen_ty_1 = - 12 ; pub const RC_MISSING_START : _bindgen_ty_1 = - 13 ; pub const RC_MISSING_CANCEL : _bindgen_ty_1 = - 14 ; pub const RC_MISSING_SUBMIT : _bindgen_ty_1 = - 15 ; pub const RC_MISSING_VALUE : _bindgen_ty_1 = - 16 ; pub const RC_INVALID_LBOARD_FIELD : _bindgen_ty_1 = - 17 ; pub const RC_MISSING_DISPLAY_STRING : _bindgen_ty_1 = - 18 ; pub const RC_OUT_OF_MEMORY : _bindgen_ty_1 = - 19 ; pub const RC_INVALID_VALUE_FLAG : _bindgen_ty_1 = - 20 ; pub const RC_MISSING_VALUE_MEASURED : _bindgen_ty_1 = - 21 ; pub const RC_MULTIPLE_MEASURED : _bindgen_ty_1 = - 22 ; pub const RC_INVALID_MEASURED_TARGET : _bindgen_ty_1 = - 23 ; pub const RC_INVALID_COMPARISON : _bindgen_ty_1 = - 24 ; pub const RC_INVALID_STATE : _bindgen_ty_1 = - 25 ; pub const RC_INVALID_JSON : _bindgen_ty_1 = - 26 ; pub const RC_API_FAILURE : _bindgen_ty_1 = - 27 ; pub const RC_LOGIN_REQUIRED : _bindgen_ty_1 = - 28 ; pub const RC_NO_GAME_LOADED : _bindgen_ty_1 = - 29 ; pub const RC_HARDCORE_DISABLED : _bindgen_ty_1 = - 30 ; pub const RC_ABORTED : _bindgen_ty_1 = - 31 ; pub const RC_NO_RESPONSE : _bindgen_ty_1 = - 32 ; pub const RC_ACCESS_DENIED : _bindgen_ty_1 = - 33 ; pub const RC_INVALID_CREDENTIALS : _bindgen_ty_1 = - 34 ; pub const RC_EXPIRED_TOKEN : _bindgen_ty_1 = - 35 ; pub const RC_INSUFFICIENT_BUFFER : _bindgen_ty_1 = - 36 ; pub const RC_INVALID_VARIABLE_NAME : _bindgen_ty_1 = - 37 ; pub const RC_UNKNOWN_VARIABLE_NAME : _bindgen_ty_1 = - 38 ; # [doc = "\\\n| Return values                                                               |\n\\"] pub type _bindgen_ty_1 = :: core :: ffi :: c_int ; extern "C" { pub fn rc_error_str (ret : :: core :: ffi :: c_int) -> * const :: core :: ffi :: c_char ; } pub type wchar_t = :: core :: ffi :: c_int ; # [repr (C)] # [repr (align (16))] # [derive (Debug , Copy , Clone)] pub struct max_align_t { pub __clang_max_align_nonce1 : :: core :: ffi :: c_longlong , pub __bindgen_padding_0 : u64 , pub __clang_max_align_nonce2 : u128 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of max_align_t"] [:: core :: mem :: size_of :: < max_align_t > () - 32usize] ; ["Alignment of max_align_t"] [:: core :: mem :: align_of :: < max_align_t > () - 16usize] ; ["Offset of field: max_align_t::__clang_max_align_nonce1"] [:: core :: mem :: offset_of ! (max_align_t , __clang_max_align_nonce1) - 0usize] ; ["Offset of field: max_align_t::__clang_max_align_nonce2"] [:: core :: mem :: offset_of ! (max_align_t , __clang_max_align_nonce2) - 16usize] ; } ; pub type __u_char = :: core :: ffi :: c_uchar ; pub type __u_short = :: core :: ffi :: c_ushort ; pub type __u_int = :: core :: ffi :: c_uint ; pub type __u_long = :: core :: ffi :: c_ulong ; pub type __int8_t = :: core :: ffi :: c_schar ; pub type __uint8_t = :: core :: ffi :: c_uchar ; pub type __int16_t = :: core :: ffi :: c_short ; pub type __uint16_t = :: core :: ffi :: c_ushort ; pub type __int32_t = :: core :: ffi :: c_int ; pub type __uint32_t = :: core :: ffi :: c_uint ; pub type __int64_t = :: core :: ffi :: c_long ; pub type __uint64_t = :: core :: ffi :: c_ulong ; pub type __int_least8_t = __int8_t ; pub type __uint_least8_t = __uint8_t ; pub type __int_least16_t = __int16_t ; pub type __uint_least16_t = __uint16_t ; pub type __int_least32_t = __int32_t ; pub type __uint_least32_t = __uint32_t ; pub type __int_least64_t = __int64_t ; pub type __uint_least64_t = __uint64_t ; pub type __quad_t = :: core :: ffi :: c_long ; pub type __u_quad_t = :: core :: ffi :: c_ulong ; pub type __intmax_t = :: core :: ffi :: c_long ; pub type __uintmax_t = :: core :: ffi :: c_ulong ; pub type __dev_t = :: core :: ffi :: c_ulong ; pub type __uid_t = :: core :: ffi :: c_uint ; pub type __gid_t = :: core :: ffi :: c_uint ; pub type __ino_t = :: core :: ffi :: c_ulong ; pub type __ino64_t = :: core :: ffi :: c_ulong ; pub type __mode_t = :: core :: ffi :: c_uint ; pub type __nlink_t = :: core :: ffi :: c_ulong ; pub type __off_t = :: core :: ffi :: c_long ; pub type __off64_t = :: core :: ffi :: c_long ; pub type __pid_t = :: core :: ffi :: c_int ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __fsid_t { pub __val : [:: core :: ffi :: c_int ; 2usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __fsid_t"] [:: core :: mem :: size_of :: < __fsid_t > () - 8usize] ; ["Alignment of __fsid_t"] [:: core :: mem :: align_of :: < __fsid_t > () - 4usize] ; ["Offset of field: __fsid_t::__val"] [:: core :: mem :: offset_of ! (__fsid_t , __val) - 0usize] ; } ; pub type __clock_t = :: core :: ffi :: c_long ; pub type __rlim_t = :: core :: ffi :: c_ulong ; pub type __rlim64_t = :: core :: ffi :: c_ulong ; pub type __id_t = :: core :: ffi :: c_uint ; pub type __time_t = :: core :: ffi :: c_long ; pub type __useconds_t = :: core :: ffi :: c_uint ; pub type __suseconds_t = :: core :: ffi :: c_long ; pub type __suseconds64_t = :: core :: ffi :: c_long ; pub type __daddr_t = :: core :: ffi :: c_int ; pub type __key_t = :: core :: ffi :: c_int ; pub type __clockid_t = :: core :: ffi :: c_int ; pub type __timer_t = * mut :: core :: ffi :: c_void ; pub type __blksize_t = :: core :: ffi :: c_long ; pub type __blkcnt_t = :: core :: ffi :: c_long ; pub type __blkcnt64_t = :: core :: ffi :: c_long ; pub type __fsblkcnt_t = :: core :: ffi :: c_ulong ; pub type __fsblkcnt64_t = :: core :: ffi :: c_ulong ; pub type __fsfilcnt_t = :: core :: ffi :: c_ulong ; pub type __fsfilcnt64_t = :: core :: ffi :: c_ulong ; pub type __fsword_t = :: core :: ffi :: c_long ; pub type __ssize_t = :: core :: ffi :: c_long ; pub type __syscall_slong_t = :: core :: ffi :: c_long ; pub type __syscall_ulong_t = :: core :: ffi :: c_ulong ; pub type __loff_t = __off64_t ; pub type __caddr_t = * mut :: core :: ffi :: c_char ; pub type __intptr_t = :: core :: ffi :: c_long ; pub type __socklen_t = :: core :: ffi :: c_uint ; pub type __sig_atomic_t = :: core :: ffi :: c_int ; pub type int_least8_t = __int_least8_t ; pub type int_least16_t = __int_least16_t ; pub type int_least32_t = __int_least32_t ; pub type int_least64_t = __int_least64_t ; pub type uint_least8_t = __uint_least8_t ; pub type uint_least16_t = __uint_least16_t ; pub type uint_least32_t = __uint_least32_t ; pub type uint_least64_t = __uint_least64_t ; pub type int_fast8_t = :: core :: ffi :: c_schar ; pub type int_fast16_t = :: core :: ffi :: c_long ; pub type int_fast32_t = :: core :: ffi :: c_long ; pub type int_fast64_t = :: core :: ffi :: c_long ; pub type uint_fast8_t = :: core :: ffi :: c_uchar ; pub type uint_fast16_t = :: core :: ffi :: c_ulong ; pub type uint_fast32_t = :: core :: ffi :: c_ulong ; pub type uint_fast64_t = :: core :: ffi :: c_ulong ; pub type intmax_t = __intmax_t ; pub type uintmax_t = __uintmax_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct lua_State { _unused : [u8 ; 0] , } # [doc = " Callback used to read num_bytes bytes from memory starting at address. If\n num_bytes is greater than 1, the value is read in little-endian from\n memory."] pub type rc_peek_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , num_bytes : u32 , ud : * mut :: core :: ffi :: c_void) -> u32 > ; pub const RC_MEMSIZE_8_BITS : _bindgen_ty_2 = 0 ; pub const RC_MEMSIZE_16_BITS : _bindgen_ty_2 = 1 ; pub const RC_MEMSIZE_24_BITS : _bindgen_ty_2 = 2 ; pub const RC_MEMSIZE_32_BITS : _bindgen_ty_2 = 3 ; pub const RC_MEMSIZE_LOW : _bindgen_ty_2 = 4 ; pub const RC_MEMSIZE_HIGH : _bindgen_ty_2 = 5 ; pub const RC_MEMSIZE_BIT_0 : _bindgen_ty_2 = 6 ; pub const RC_MEMSIZE_BIT_1 : _bindgen_ty_2 = 7 ; pub const RC_MEMSIZE_BIT_2 : _bindgen_ty_2 = 8 ; pub const RC_MEMSIZE_BIT_3 : _bindgen_ty_2 = 9 ; pub const RC_MEMSIZE_BIT_4 : _bindgen_ty_2 = 10 ; pub const RC_MEMSIZE_BIT_5 : _bindgen_ty_2 = 11 ; pub const RC_MEMSIZE_BIT_6 : _bindgen_ty_2 = 12 ; pub const RC_MEMSIZE_BIT_7 : _bindgen_ty_2 = 13 ; pub const RC_MEMSIZE_BITCOUNT : _bindgen_ty_2 = 14 ; pub const RC_MEMSIZE_16_BITS_BE : _bindgen_ty_2 = 15 ; pub const RC_MEMSIZE_24_BITS_BE : _bindgen_ty_2 = 16 ; pub const RC_MEMSIZE_32_BITS_BE : _bindgen_ty_2 = 17 ; pub const RC_MEMSIZE_FLOAT : _bindgen_ty_2 = 18 ; pub const RC_MEMSIZE_MBF32 : _bindgen_ty_2 = 19 ; pub const RC_MEMSIZE_MBF32_LE : _bindgen_ty_2 = 20 ; pub const RC_MEMSIZE_FLOAT_BE : _bindgen_ty_2 = 21 ; pub const RC_MEMSIZE_DOUBLE32 : _bindgen_ty_2 = 22 ; pub const RC_MEMSIZE_DOUBLE32_BE : _bindgen_ty_2 = 23 ; pub const RC_MEMSIZE_VARIABLE : _bindgen_ty_2 = 24 ; # [doc = "\\\n| Memory References                                                           |\n\\"] pub type _bindgen_ty_2 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memref_value_t { pub value : u32 , pub prior : u32 , pub size : u8 , pub changed : u8 , pub type_ : u8 , pub is_indirect : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memref_value_t"] [:: core :: mem :: size_of :: < rc_memref_value_t > () - 12usize] ; ["Alignment of rc_memref_value_t"] [:: core :: mem :: align_of :: < rc_memref_value_t > () - 4usize] ; ["Offset of field: rc_memref_value_t::value"] [:: core :: mem :: offset_of ! (rc_memref_value_t , value) - 0usize] ; ["Offset of field: rc_memref_value_t::prior"] [:: core :: mem :: offset_of ! (rc_memref_value_t , prior) - 4usize] ; ["Offset of field: rc_memref_value_t::size"] [:: core :: mem :: offset_of ! (rc_memref_value_t , size) - 8usize] ; ["Offset of field: rc_memref_value_t::changed"] [:: core :: mem :: offset_of ! (rc_memref_value_t , changed) - 9usize] ; ["Offset of field: rc_memref_value_t::type_"] [:: core :: mem :: offset_of ! (rc_memref_value_t , type_) - 10usize] ; ["Offset of field: rc_memref_value_t::is_indirect"] [:: core :: mem :: offset_of ! (rc_memref_value_t , is_indirect) - 11usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memref_t { pub value : rc_memref_value_t , pub address : u32 , pub next : * mut rc_memref_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memref_t"] [:: core :: mem :: size_of :: < rc_memref_t > () - 24usize] ; ["Alignment of rc_memref_t"] [:: core :: mem :: align_of :: < rc_memref_t > () - 8usize] ; ["Offset of field: rc_memref_t::value"] [:: core :: mem :: offset_of ! (rc_memref_t , value) - 0usize] ; ["Offset of field: rc_memref_t::address"] [:: core :: mem :: offset_of ! (rc_memref_t , address) - 12usize] ; ["Offset of field: rc_memref_t::next"] [:: core :: mem :: offset_of ! (rc_memref_t , next) - 16usize] ; } ; pub const RC_OPERAND_ADDRESS : _bindgen_ty_3 = 0 ; pub const RC_OPERAND_DELTA : _bindgen_ty_3 = 1 ; pub const RC_OPERAND_CONST : _bindgen_ty_3 = 2 ; pub const RC_OPERAND_FP : _bindgen_ty_3 = 3 ; pub const RC_OPERAND_LUA : _bindgen_ty_3 = 4 ; pub const RC_OPERAND_PRIOR : _bindgen_ty_3 = 5 ; pub const RC_OPERAND_BCD : _bindgen_ty_3 = 6 ; pub const RC_OPERAND_INVERTED : _bindgen_ty_3 = 7 ; pub const RC_OPERAND_RECALL : _bindgen_ty_3 = 8 ; # [doc = "\\\n| Operands                                                                    |\n\\"] pub type _bindgen_ty_3 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Copy , Clone)] pub struct rc_operand_t { pub value : rc_operand_t__bindgen_ty_1 , pub type_ : u8 , pub size : u8 , } # [repr (C)] # [derive (Copy , Clone)] pub union rc_operand_t__bindgen_ty_1 { pub memref : * mut rc_memref_t , pub num : u32 , pub dbl : f64 , pub luafunc : :: core :: ffi :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_operand_t__bindgen_ty_1"] [:: core :: mem :: size_of :: < rc_operand_t__bindgen_ty_1 > () - 8usize] ; ["Alignment of rc_operand_t__bindgen_ty_1"] [:: core :: mem :: align_of :: < rc_operand_t__bindgen_ty_1 > () - 8usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::memref"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , memref) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::num"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , num) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::dbl"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , dbl) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::luafunc"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , luafunc) - 0usize] ; } ; impl :: core :: fmt :: Debug for rc_operand_t__bindgen_ty_1 { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_operand_t__bindgen_ty_1 {{ union }}") } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_operand_t"] [:: core :: mem :: size_of :: < rc_operand_t > () - 16usize] ; ["Alignment of rc_operand_t"] [:: core :: mem :: align_of :: < rc_operand_t > () - 8usize] ; ["Offset of field: rc_operand_t::value"] [:: core :: mem :: offset_of ! (rc_operand_t , value) - 0usize] ; ["Offset of field: rc_operand_t::type_"] [:: core :: mem :: offset_of ! (rc_operand_t , type_) - 8usize] ; ["Offset of field: rc_operand_t::size"] [:: core :: mem :: offset_of ! (rc_operand_t , size) - 9usize] ; } ; impl :: core :: fmt :: Debug for rc_operand_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_operand_t {{ value: {:?}, type: {:?}, size: {:?} }}" , self . value , self . type_ , self . size) } } extern "C" { pub fn rc_operand_is_memref (operand : * const rc_operand_t) -> :: core :: ffi :: c_int ; } pub const RC_CONDITION_STANDARD : _bindgen_ty_4 = 0 ; pub const RC_CONDITION_PAUSE_IF : _bindgen_ty_4 = 1 ; pub const RC_CONDITION_RESET_IF : _bindgen_ty_4 = 2 ; pub const RC_CONDITION_MEASURED_IF : _bindgen_ty_4 = 3 ; pub const RC_CONDITION_TRIGGER : _bindgen_ty_4 = 4 ; pub const RC_CONDITION_MEASURED : _bindgen_ty_4 = 5 ; pub const RC_CONDITION_ADD_SOURCE : _bindgen_ty_4 = 6 ; pub const RC_CONDITION_SUB_SOURCE : _bindgen_ty_4 = 7 ; pub const RC_CONDITION_ADD_ADDRESS : _bindgen_ty_4 = 8 ; pub const RC_CONDITION_REMEMBER : _bindgen_ty_4 = 9 ; pub const RC_CONDITION_ADD_HITS : _bindgen_ty_4 = 10 ; pub const RC_CONDITION_SUB_HITS : _bindgen_ty_4 = 11 ; pub const RC_CONDITION_RESET_NEXT_IF : _bindgen_ty_4 = 12 ; pub const RC_CONDITION_AND_NEXT : _bindgen_ty_4 = 13 ; pub const RC_CONDITION_OR_NEXT : _bindgen_ty_4 = 14 ; # [doc = "\\\n| Conditions                                                                  |\n\\"] pub type _bindgen_ty_4 = :: core :: ffi :: c_uint ; pub const RC_OPERATOR_EQ : _bindgen_ty_5 = 0 ; pub const RC_OPERATOR_LT : _bindgen_ty_5 = 1 ; pub const RC_OPERATOR_LE : _bindgen_ty_5 = 2 ; pub const RC_OPERATOR_GT : _bindgen_ty_5 = 3 ; pub const RC_OPERATOR_GE : _bindgen_ty_5 = 4 ; pub const RC_OPERATOR_NE : _bindgen_ty_5 = 5 ; pub const RC_OPERATOR_NONE : _bindgen_ty_5 = 6 ; pub const RC_OPERATOR_MULT : _bindgen_ty_5 = 7 ; pub const RC_OPERATOR_DIV : _bindgen_ty_5 = 8 ; pub const RC_OPERATOR_AND : _bindgen_ty_5 = 9 ; pub const RC_OPERATOR_XOR : _bindgen_ty_5 = 10 ; pub const RC_OPERATOR_MOD : _bindgen_ty_5 = 11 ; pub const RC_OPERATOR_ADD : _bindgen_ty_5 = 12 ; pub const RC_OPERATOR_SUB : _bindgen_ty_5 = 13 ; pub type _bindgen_ty_5 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Copy , Clone)] pub struct rc_condition_t { pub operand1 : rc_operand_t , pub operand2 : rc_operand_t , pub required_hits : u32 , pub current_hits : u32 , pub next : * mut rc_condition_t , pub type_ : u8 , pub oper : u8 , pub pause : u8 , pub is_true : u8 , pub optimized_comparator : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_condition_t"] [:: core :: mem :: size_of :: < rc_condition_t > () - 56usize] ; ["Alignment of rc_condition_t"] [:: core :: mem :: align_of :: < rc_condition_t > () - 8usize] ; ["Offset of field: rc_condition_t::operand1"] [:: core :: mem :: offset_of ! (rc_condition_t , operand1) - 0usize] ; ["Offset of field: rc_condition_t::operand2"] [:: core :: mem :: offset_of ! (rc_condition_t , operand2) - 16usize] ; ["Offset of field: rc_condition_t::required_hits"] [:: core :: mem :: offset_of ! (rc_condition_t , required_hits) - 32usize] ; ["Offset of field: rc_condition_t::current_hits"] [:: core :: mem :: offset_of ! (rc_condition_t , current_hits) - 36usize] ; ["Offset of field: rc_condition_t::next"] [:: core :: mem :: offset_of ! (rc_condition_t , next) - 40usize] ; ["Offset of field: rc_condition_t::type_"] [:: core :: mem :: offset_of ! (rc_condition_t , type_) - 48usize] ; ["Offset of field: rc_condition_t::oper"] [:: core :: mem :: offset_of ! (rc_condition_t , oper) - 49usize] ; ["Offset of field: rc_condition_t::pause"] [:: core :: mem :: offset_of ! (rc_condition_t , pause) - 50usize] ; ["Offset of field: rc_condition_t::is_true"] [:: core :: mem :: offset_of ! (rc_condition_t , is_true) - 51usize] ; ["Offset of field: rc_condition_t::optimized_comparator"] [:: core :: mem :: offset_of ! (rc_condition_t , optimized_comparator) - 52usize] ; } ; impl :: core :: fmt :: Debug for rc_condition_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_condition_t {{ operand1: {:?}, operand2: {:?}, required_hits: {:?}, current_hits: {:?}, next: {:?}, type: {:?}, oper: {:?}, pause: {:?}, is_true: {:?}, optimized_comparator: {:?} }}" , self . operand1 , self . operand2 , self . required_hits , self . current_hits , self . next , self . type_ , self . oper , self . pause , self . is_true , self . optimized_comparator) } } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_condset_t { pub next : * mut rc_condset_t , pub conditions : * mut rc_condition_t , pub has_pause : u8 , pub is_paused : u8 , pub has_indirect_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_condset_t"] [:: core :: mem :: size_of :: < rc_condset_t > () - 24usize] ; ["Alignment of rc_condset_t"] [:: core :: mem :: align_of :: < rc_condset_t > () - 8usize] ; ["Offset of field: rc_condset_t::next"] [:: core :: mem :: offset_of ! (rc_condset_t , next) - 0usize] ; ["Offset of field: rc_condset_t::conditions"] [:: core :: mem :: offset_of ! (rc_condset_t , conditions) - 8usize] ; ["Offset of field: rc_condset_t::has_pause"] [:: core :: mem :: offset_of ! (rc_condset_t , has_pause) - 16usize] ; ["Offset of field: rc_condset_t::is_paused"] [:: core :: mem :: offset_of ! (rc_condset_t , is_paused) - 17usize] ; ["Offset of field: rc_condset_t::has_indirect_memrefs"] [:: core :: mem :: offset_of ! (rc_condset_t , has_indirect_memrefs) - 18usize] ; } ; pub const RC_TRIGGER_STATE_INACTIVE : _bindgen_ty_6 = 0 ; pub const RC_TRIGGER_STATE_WAITING : _bindgen_ty_6 = 1 ; pub const RC_TRIGGER_STATE_ACTIVE : _bindgen_ty_6 = 2 ; pub const RC_TRIGGER_STATE_PAUSED : _bindgen_ty_6 = 3 ; pub const RC_TRIGGER_STATE_RESET : _bindgen_ty_6 = 4 ; pub const RC_TRIGGER_STATE_TRIGGERED : _bindgen_ty_6 = 5 ; pub const RC_TRIGGER_STATE_PRIMED : _bindgen_ty_6 = 6 ; pub const RC_TRIGGER_STATE_DISABLED : _bindgen_ty_6 = 7 ; # [doc = "\\\n| Trigger                                                                     |\n\\"] pub type _bindgen_ty_6 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_trigger_t { pub requirement : * mut rc_condset_t , pub alternative : * mut rc_condset_t , pub memrefs : * mut rc_memref_t , pub measured_value : u32 , pub measured_target : u32 , pub state : u8 , pub has_hits : u8 , pub has_required_hits : u8 , pub measured_as_percent : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_trigger_t"] [:: core :: mem :: size_of :: < rc_trigger_t > () - 40usize] ; ["Alignment of rc_trigger_t"] [:: core :: mem :: align_of :: < rc_trigger_t > () - 8usize] ; ["Offset of field: rc_trigger_t::requirement"] [:: core :: mem :: offset_of ! (rc_trigger_t , requirement) - 0usize] ; ["Offset of field: rc_trigger_t::alternative"] [:: core :: mem :: offset_of ! (rc_trigger_t , alternative) - 8usize] ; ["Offset of field: rc_trigger_t::memrefs"] [:: core :: mem :: offset_of ! (rc_trigger_t , memrefs) - 16usize] ; ["Offset of field: rc_trigger_t::measured_value"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_value) - 24usize] ; ["Offset of field: rc_trigger_t::measured_target"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_target) - 28usize] ; ["Offset of field: rc_trigger_t::state"] [:: core :: mem :: offset_of ! (rc_trigger_t , state) - 32usize] ; ["Offset of field: rc_trigger_t::has_hits"] [:: core :: mem :: offset_of ! (rc_trigger_t , has_hits) - 33usize] ; ["Offset of field: rc_trigger_t::has_required_hits"] [:: core :: mem :: offset_of ! (rc_trigger_t , has_required_hits) - 34usize] ; ["Offset of field: rc_trigger_t::measured_as_percent"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_as_percent) - 35usize] ; } ; extern "C" { pub fn rc_trigger_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_trigger (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_trigger_t ; } extern "C" { pub fn rc_evaluate_trigger (trigger : * mut rc_trigger_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_test_trigger (trigger : * mut rc_trigger_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_trigger (self_ : * mut rc_trigger_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_value_t { pub value : rc_memref_value_t , pub conditions : * mut rc_condset_t , pub memrefs : * mut rc_memref_t , pub name : * const :: core :: ffi :: c_char , pub next : * mut rc_value_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_value_t"] [:: core :: mem :: size_of :: < rc_value_t > () - 48usize] ; ["Alignment of rc_value_t"] [:: core :: mem :: align_of :: < rc_value_t > () - 8usize] ; ["Offset of field: rc_value_t::value"] [:: core :: mem :: offset_of ! (rc_value_t , value) - 0usize] ; ["Offset of field: rc_value_t::conditions"] [:: core :: mem :: offset_of ! (rc_value_t , conditions) - 16usize] ; ["Offset of field: rc_value_t::memrefs"] [:: core :: mem :: offset_of ! (rc_value_t , memrefs) - 24usize] ; ["Offset of field: rc_value_t::name"] [:: core :: mem :: offset_of ! (rc_value_t , name) - 32usize] ; ["Offset of field: rc_value_t::next"] [:: core :: mem :: offset_of ! (rc_value_t , next) - 40usize] ; } ; extern "C" { pub fn rc_value_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_value (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_value_t ; } extern "C" { pub fn rc_evaluate_value (value : * mut rc_value_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> i32 ; } pub const RC_LBOARD_STATE_INACTIVE : _bindgen_ty_7 = 0 ; pub const RC_LBOARD_STATE_WAITING : _bindgen_ty_7 = 1 ; pub const RC_LBOARD_STATE_ACTIVE : _bindgen_ty_7 = 2 ; pub const RC_LBOARD_STATE_STARTED : _bindgen_ty_7 = 3 ; pub const RC_LBOARD_STATE_CANCELED : _bindgen_ty_7 = 4 ; pub const RC_LBOARD_STATE_TRIGGERED : _bindgen_ty_7 = 5 ; pub const RC_LBOARD_STATE_DISABLED : _bindgen_ty_7 = 6 ; # [doc = "\\\n| Leaderboards                                                                |\n\\"] pub type _bindgen_ty_7 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_lboard_t { pub start : rc_trigger_t , pub submit : rc_trigger_t , pub cancel : rc_trigger_t , pub value : rc_value_t , pub progress : * mut rc_value_t , pub memrefs : * mut rc_memref_t , pub state : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_lboard_t"] [:: core :: mem :: size_of :: < rc_lboard_t > () - 192usize] ; ["Alignment of rc_lboard_t"] [:: core :: mem :: align_of :: < rc_lboard_t > () - 8usize] ; ["Offset of field: rc_lboard_t::start"] [:: core :: mem :: offset_of ! (rc_lboard_t , start) - 0usize] ; ["Offset of field: rc_lboard_t::submit"] [:: core :: mem :: offset_of ! (rc_lboard_t , submit) - 40usize] ; ["Offset of field: rc_lboard_t::cancel"] [:: core :: mem :: offset_of ! (rc_lboard_t , cancel) - 80usize] ; ["Offset of field: rc_lboard_t::value"] [:: core :: mem :: offset_of ! (rc_lboard_t , value) - 120usize] ; ["Offset of field: rc_lboard_t::progress"] [:: core :: mem :: offset_of ! (rc_lboard_t , progress) - 168usize] ; ["Offset of field: rc_lboard_t::memrefs"] [:: core :: mem :: offset_of ! (rc_lboard_t , memrefs) - 176usize] ; ["Offset of field: rc_lboard_t::state"] [:: core :: mem :: offset_of ! (rc_lboard_t , state) - 184usize] ; } ; extern "C" { pub fn rc_lboard_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_lboard (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_lboard_t ; } extern "C" { pub fn rc_evaluate_lboard (lboard : * mut rc_lboard_t , value : * mut i32 , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_lboard (lboard : * mut rc_lboard_t) ; } pub const RC_FORMAT_FRAMES : _bindgen_ty_8 = 0 ; pub const RC_FORMAT_SECONDS : _bindgen_ty_8 = 1 ; pub const RC_FORMAT_CENTISECS : _bindgen_ty_8 = 2 ; pub const RC_FORMAT_SCORE : _bindgen_ty_8 = 3 ; pub const RC_FORMAT_VALUE : _bindgen_ty_8 = 4 ; pub const RC_FORMAT_MINUTES : _bindgen_ty_8 = 5 ; pub const RC_FORMAT_SECONDS_AS_MINUTES : _bindgen_ty_8 = 6 ; pub const RC_FORMAT_FLOAT1 : _bindgen_ty_8 = 7 ; pub const RC_FORMAT_FLOAT2 : _bindgen_ty_8 = 8 ; pub const RC_FORMAT_FLOAT3 : _bindgen_ty_8 = 9 ; pub const RC_FORMAT_FLOAT4 : _bindgen_ty_8 = 10 ; pub const RC_FORMAT_FLOAT5 : _bindgen_ty_8 = 11 ; pub const RC_FORMAT_FLOAT6 : _bindgen_ty_8 = 12 ; pub const RC_FORMAT_FIXED1 : _bindgen_ty_8 = 13 ; pub const RC_FORMAT_FIXED2 : _bindgen_ty_8 = 14 ; pub const RC_FORMAT_FIXED3 : _bindgen_ty_8 = 15 ; pub const RC_FORMAT_TENS : _bindgen_ty_8 = 16 ; pub const RC_FORMAT_HUNDREDS : _bindgen_ty_8 = 17 ; pub const RC_FORMAT_THOUSANDS : _bindgen_ty_8 = 18 ; pub const RC_FORMAT_UNSIGNED_VALUE : _bindgen_ty_8 = 19 ; # [doc = "\\\n| Value formatting                                                            |\n\\"] pub type _bindgen_ty_8 = :: core :: ffi :: c_uint ; extern "C" { pub fn rc_parse_format (format_str : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_format_value (buffer : * mut :: core :: ffi :: c_char , size : :: core :: ffi :: c_int , value : i32 , format : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_lookup_item_t { pub first : u32 , pub last : u32 , pub left : * mut rc_richpresence_lookup_item_t , pub right : * mut rc_richpresence_lookup_item_t , pub label : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_lookup_item_t"] [:: core :: mem :: size_of :: < rc_richpresence_lookup_item_t > () - 32usize] ; ["Alignment of rc_richpresence_lookup_item_t"] [:: core :: mem :: align_of :: < rc_richpresence_lookup_item_t > () - 8usize] ; ["Offset of field: rc_richpresence_lookup_item_t::first"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , first) - 0usize] ; ["Offset of field: rc_richpresence_lookup_item_t::last"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , last) - 4usize] ; ["Offset of field: rc_richpresence_lookup_item_t::left"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , left) - 8usize] ; ["Offset of field: rc_richpresence_lookup_item_t::right"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , right) - 16usize] ; ["Offset of field: rc_richpresence_lookup_item_t::label"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , label) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_lookup_t { pub root : * mut rc_richpresence_lookup_item_t , pub next : * mut rc_richpresence_lookup_t , pub name : * const :: core :: ffi :: c_char , pub default_label : * const :: core :: ffi :: c_char , pub format : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_lookup_t"] [:: core :: mem :: size_of :: < rc_richpresence_lookup_t > () - 40usize] ; ["Alignment of rc_richpresence_lookup_t"] [:: core :: mem :: align_of :: < rc_richpresence_lookup_t > () - 8usize] ; ["Offset of field: rc_richpresence_lookup_t::root"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , root) - 0usize] ; ["Offset of field: rc_richpresence_lookup_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , next) - 8usize] ; ["Offset of field: rc_richpresence_lookup_t::name"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , name) - 16usize] ; ["Offset of field: rc_richpresence_lookup_t::default_label"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , default_label) - 24usize] ; ["Offset of field: rc_richpresence_lookup_t::format"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , format) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_display_part_t { pub next : * mut rc_richpresence_display_part_t , pub text : * const :: core :: ffi :: c_char , pub lookup : * mut rc_richpresence_lookup_t , pub value : * mut rc_memref_value_t , pub display_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_display_part_t"] [:: core :: mem :: size_of :: < rc_richpresence_display_part_t > () - 40usize] ; ["Alignment of rc_richpresence_display_part_t"] [:: core :: mem :: align_of :: < rc_richpresence_display_part_t > () - 8usize] ; ["Offset of field: rc_richpresence_display_part_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , next) - 0usize] ; ["Offset of field: rc_richpresence_display_part_t::text"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , text) - 8usize] ; ["Offset of field: rc_richpresence_display_part_t::lookup"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , lookup) - 16usize] ; ["Offset of field: rc_richpresence_display_part_t::value"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , value) - 24usize] ; ["Offset of field: rc_richpresence_display_part_t::display_type"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , display_type) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_display_t { pub trigger : rc_trigger_t , pub next : * mut rc_richpresence_display_t , pub display : * mut rc_richpresence_display_part_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_display_t"] [:: core :: mem :: size_of :: < rc_richpresence_display_t > () - 56usize] ; ["Alignment of rc_richpresence_display_t"] [:: core :: mem :: align_of :: < rc_richpresence_display_t > () - 8usize] ; ["Offset of field: rc_richpresence_display_t::trigger"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , trigger) - 0usize] ; ["Offset of field: rc_richpresence_display_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , next) - 40usize] ; ["Offset of field: rc_richpresence_display_t::display"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , display) - 48usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_t { pub first_display : * mut rc_richpresence_display_t , pub first_lookup : * mut rc_richpresence_lookup_t , pub memrefs : * mut rc_memref_t , pub variables : * mut rc_value_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_t"] [:: core :: mem :: size_of :: < rc_richpresence_t > () - 32usize] ; ["Alignment of rc_richpresence_t"] [:: core :: mem :: align_of :: < rc_richpresence_t > () - 8usize] ; ["Offset of field: rc_richpresence_t::first_display"] [:: core :: mem :: offset_of ! (rc_richpresence_t , first_display) - 0usize] ; ["Offset of field: rc_richpresence_t::first_lookup"] [:: core :: mem :: offset_of ! (rc_richpresence_t , first_lookup) - 8usize] ; ["Offset of field: rc_richpresence_t::memrefs"] [:: core :: mem :: offset_of ! (rc_richpresence_t , memrefs) - 16usize] ; ["Offset of field: rc_richpresence_t::variables"] [:: core :: mem :: offset_of ! (rc_richpresence_t , variables) - 24usize] ; } ; extern "C" { pub fn rc_richpresence_size (script : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_richpresence_size_lines (script : * const :: core :: ffi :: c_char , lines_read : * mut :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_richpresence (buffer : * mut :: core :: ffi :: c_void , script : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_richpresence_t ; } extern "C" { pub fn rc_evaluate_richpresence (richpresence : * mut rc_richpresence_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_update_richpresence (richpresence : * mut rc_richpresence_t , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) ; } extern "C" { pub fn rc_get_richpresence_display_string (richpresence : * mut rc_richpresence_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_richpresence (self_ : * mut rc_richpresence_t) ; } # [doc = " A block of memory for variable length data (like strings and arrays)."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_buffer_chunk_t { pub write : * mut u8 , pub end : * mut u8 , pub start : * mut u8 , pub next : * mut rc_buffer_chunk_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_buffer_chunk_t"] [:: core :: mem :: size_of :: < rc_buffer_chunk_t > () - 32usize] ; ["Alignment of rc_buffer_chunk_t"] [:: core :: mem :: align_of :: < rc_buffer_chunk_t > () - 8usize] ; ["Offset of field: rc_buffer_chunk_t::write"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , write) - 0usize] ; ["Offset of field: rc_buffer_chunk_t::end"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , end) - 8usize] ; ["Offset of field: rc_buffer_chunk_t::start"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , start) - 16usize] ; ["Offset of field: rc_buffer_chunk_t::next"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , next) - 24usize] ; } ; # [doc = " A preallocated block of memory for variable length data (like strings and arrays)."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_buffer_t { pub chunk : rc_buffer_chunk_t , pub data : [u8 ; 256usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_buffer_t"] [:: core :: mem :: size_of :: < rc_buffer_t > () - 288usize] ; ["Alignment of rc_buffer_t"] [:: core :: mem :: align_of :: < rc_buffer_t > () - 8usize] ; ["Offset of field: rc_buffer_t::chunk"] [:: core :: mem :: offset_of ! (rc_buffer_t , chunk) - 0usize] ; ["Offset of field: rc_buffer_t::data"] [:: core :: mem :: offset_of ! (rc_buffer_t , data) - 32usize] ; } ; extern "C" { pub fn rc_buffer_init (buffer : * mut rc_buffer_t) ; } extern "C" { pub fn rc_buffer_destroy (buffer : * mut rc_buffer_t) ; } extern "C" { pub fn rc_buffer_reserve (buffer : * mut rc_buffer_t , amount : usize) -> * mut u8 ; } extern "C" { pub fn rc_buffer_consume (buffer : * mut rc_buffer_t , start : * const u8 , end : * mut u8) ; } extern "C" { pub fn rc_buffer_alloc (buffer : * mut rc_buffer_t , amount : usize) -> * mut :: core :: ffi :: c_void ; } extern "C" { pub fn rc_buffer_strcpy (buffer : * mut rc_buffer_t , src : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn rc_buffer_strncpy (buffer : * mut rc_buffer_t , src : * const :: core :: ffi :: c_char , len : usize) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn rc_djb2 (input : * const :: core :: ffi :: c_char) -> u32 ; } extern "C" { pub fn rc_format_md5 (checksum : * mut :: core :: ffi :: c_char , digest : * const u8) ; } # [doc = " A constructed request to send to the retroachievements server."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_request_t { pub url : * const :: core :: ffi :: c_char , pub post_data : * const :: core :: ffi :: c_char , pub content_type : * const :: core :: ffi :: c_char , pub buffer : rc_buffer_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_request_t"] [:: core :: mem :: size_of :: < rc_api_request_t > () - 312usize] ; ["Alignment of rc_api_request_t"] [:: core :: mem :: align_of :: < rc_api_request_t > () - 8usize] ; ["Offset of field: rc_api_request_t::url"] [:: core :: mem :: offset_of ! (rc_api_request_t , url) - 0usize] ; ["Offset of field: rc_api_request_t::post_data"] [:: core :: mem :: offset_of ! (rc_api_request_t , post_data) - 8usize] ; ["Offset of field: rc_api_request_t::content_type"] [:: core :: mem :: offset_of ! (rc_api_request_t , content_type) - 16usize] ; ["Offset of field: rc_api_request_t::buffer"] [:: core :: mem :: offset_of ! (rc_api_request_t , buffer) - 24usize] ; } ; # [doc = " Common attributes for all server responses."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_response_t { pub succeeded : :: core :: ffi :: c_int , pub error_message : * const :: core :: ffi :: c_char , pub error_code : * const :: core :: ffi :: c_char , pub buffer : rc_buffer_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_response_t"] [:: core :: mem :: size_of :: < rc_api_response_t > () - 312usize] ; ["Alignment of rc_api_response_t"] [:: core :: mem :: align_of :: < rc_api_response_t > () - 8usize] ; ["Offset of field: rc_api_response_t::succeeded"] [:: core :: mem :: offset_of ! (rc_api_response_t , succeeded) - 0usize] ; ["Offset of field: rc_api_response_t::error_message"] [:: core :: mem :: offset_of ! (rc_api_response_t , error_message) - 8usize] ; ["Offset of field: rc_api_response_t::error_code"] [:: core :: mem :: offset_of ! (rc_api_response_t , error_code) - 16usize] ; ["Offset of field: rc_api_response_t::buffer"] [:: core :: mem :: offset_of ! (rc_api_response_t , buffer) - 24usize] ; } ; extern "C" { pub fn rc_api_destroy_request (request : * mut rc_api_request_t) ; } extern "C" { pub fn rc_api_set_host (hostname : * const :: core :: ffi :: c_char) ; } extern "C" { pub fn rc_api_set_image_host (hostname : * const :: core :: ffi :: c_char) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_server_response_t { pub body : * const :: core :: ffi :: c_char , pub body_length : usize , pub http_status_code : :: core :: ffi :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_server_response_t"] [:: core :: mem :: size_of :: < rc_api_server_response_t > () - 24usize] ; ["Alignment of rc_api_server_response_t"] [:: core :: mem :: align_of :: < rc_api_server_response_t > () - 8usize] ; ["Offset of field: rc_api_server_response_t::body"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , body) - 0usize] ; ["Offset of field: rc_api_server_response_t::body_length"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , body_length) - 8usize] ; ["Offset of field: rc_api_server_response_t::http_status_code"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , http_status_code) - 16usize] ; } ; pub const RC_API_SERVER_RESPONSE_CLIENT_ERROR : _bindgen_ty_9 = - 1 ; pub const RC_API_SERVER_RESPONSE_RETRYABLE_CLIENT_ERROR : _bindgen_ty_9 = - 2 ; pub type _bindgen_ty_9 = :: core :: ffi :: c_int ; pub type clock_t = __clock_t ; pub type time_t = __time_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct tm { pub tm_sec : :: core :: ffi :: c_int , pub tm_min : :: core :: ffi :: c_int , pub tm_hour : :: core :: ffi :: c_int , pub tm_mday : :: core :: ffi :: c_int , pub tm_mon : :: core :: ffi :: c_int , pub tm_year : :: core :: ffi :: c_int , pub tm_wday : :: core :: ffi :: c_int , pub tm_yday : :: core :: ffi :: c_int , pub tm_isdst : :: core :: ffi :: c_int , pub tm_gmtoff : :: core :: ffi :: c_long , pub tm_zone : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of tm"] [:: core :: mem :: size_of :: < tm > () - 56usize] ; ["Alignment of tm"] [:: core :: mem :: align_of :: < tm > () - 8usize] ; ["Offset of field: tm::tm_sec"] [:: core :: mem :: offset_of ! (tm , tm_sec) - 0usize] ; ["Offset of field: tm::tm_min"] [:: core :: mem :: offset_of ! (tm , tm_min) - 4usize] ; ["Offset of field: tm::tm_hour"] [:: core :: mem :: offset_of ! (tm , tm_hour) - 8usize] ; ["Offset of field: tm::tm_mday"] [:: core :: mem :: offset_of ! (tm , tm_mday) - 12usize] ; ["Offset of field: tm::tm_mon"] [:: core :: mem :: offset_of ! (tm , tm_mon) - 16usize] ; ["Offset of field: tm::tm_year"] [:: core :: mem :: offset_of ! (tm , tm_year) - 20usize] ; ["Offset of field: tm::tm_wday"] [:: core :: mem :: offset_of ! (tm , tm_wday) - 24usize] ; ["Offset of field: tm::tm_yday"] [:: core :: mem :: offset_of ! (tm , tm_yday) - 28usize] ; ["Offset of field: tm::tm_isdst"] [:: core :: mem :: offset_of ! (tm , tm_isdst) - 32usize] ; ["Offset of field: tm::tm_gmtoff"] [:: core :: mem :: offset_of ! (tm , tm_gmtoff) - 40usize] ; ["Offset of field: tm::tm_zone"] [:: core :: mem :: offset_of ! (tm , tm_zone) - 48usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct timespec { pub tv_sec : __time_t , pub tv_nsec : __syscall_slong_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of timespec"] [:: core :: mem :: size_of :: < timespec > () - 16usize] ; ["Alignment of timespec"] [:: core :: mem :: align_of :: < timespec > () - 8usize] ; ["Offset of field: timespec::tv_sec"] [:: core :: mem :: offset_of ! (timespec , tv_sec) - 0usize] ; ["Offset of field: timespec::tv_nsec"] [:: core :: mem :: offset_of ! (timespec , tv_nsec) - 8usize] ; } ; pub type clockid_t = __clockid_t ; pub type timer_t = __timer_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct itimerspec { pub it_interval : timespec , pub it_value : timespec , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of itimerspec"] [:: core :: mem :: size_of :: < itimerspec > () - 32usize] ; ["Alignment of itimerspec"] [:: core :: mem :: align_of :: < itimerspec > () - 8usize] ; ["Offset of field: itimerspec::it_interval"] [:: core :: mem :: offset_of ! (itimerspec , it_interval) - 0usize] ; ["Offset of field: itimerspec::it_value"] [:: core :: mem :: offset_of ! (itimerspec , it_value) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct sigevent { _unused : [u8 ; 0] , } pub type pid_t = __pid_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __locale_struct { pub __locales : [* mut __locale_data ; 13usize] , pub __ctype_b : * const :: core :: ffi :: c_ushort , pub __ctype_tolower : * const :: core :: ffi :: c_int , pub __ctype_toupper : * const :: core :: ffi :: c_int , pub __names : [* const :: core :: ffi :: c_char ; 13usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __locale_struct"] [:: core :: mem :: size_of :: < __locale_struct > () - 232usize] ; ["Alignment of __locale_struct"] [:: core :: mem :: align_of :: < __locale_struct > () - 8usize] ; ["Offset of field: __locale_struct::__locales"] [:: core :: mem :: offset_of ! (__locale_struct , __locales) - 0usize] ; ["Offset of field: __locale_struct::__ctype_b"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_b) - 104usize] ; ["Offset of field: __locale_struct::__ctype_tolower"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_tolower) - 112usize] ; ["Offset of field: __locale_struct::__ctype_toupper"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_toupper) - 120usize] ; ["Offset of field: __locale_struct::__names"] [:: core :: mem :: offset_of ! (__locale_struct , __names) - 128usize] ; } ; pub type __locale_t = * mut __locale_struct ; pub type locale_t = __locale_t ; extern "C" { pub fn clock () -> clock_t ; } extern "C" { pub fn time (__timer : * mut time_t) -> time_t ; } extern "C" { pub fn difftime (__time1 : time_t , __time0 : time_t) -> f64 ; } extern "C" { pub fn mktime (__tp : * mut tm) -> time_t ; } extern "C" { pub fn strftime (__s : * mut :: core :: ffi :: c_char , __maxsize : usize , __format : * const :: core :: ffi :: c_char , __tp : * const tm) -> usize ; } extern "C" { pub fn strftime_l (__s : * mut :: core :: ffi :: c_char , __maxsize : usize , __format : * const :: core :: ffi :: c_char , __tp : * const tm , __loc : locale_t) -> usize ; } extern "C" { pub fn gmtime (__timer : * const time_t) -> * mut tm ; } extern "C" { pub fn localtime (__timer : * const time_t) -> * mut tm ; } extern "C" { pub fn gmtime_r (__timer : * const time_t , __tp : * mut tm) -> * mut tm ; } extern "C" { pub fn localtime_r (__timer : * const time_t , __tp : * mut tm) -> * mut tm ; } extern "C" { pub fn asctime (__tp : * const tm) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn ctime (__timer : * const time_t) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn asctime_r (__tp : * const tm , __buf : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn ctime_r (__timer : * const time_t , __buf : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub static mut __tzname : [* mut :: core :: ffi :: c_char ; 2usize] ; } extern "C" { pub static mut __daylight : :: core :: ffi :: c_int ; } extern "C" { pub static mut __timezone : :: core :: ffi :: c_long ; } extern "C" { pub static mut tzname : [* mut :: core :: ffi :: c_char ; 2usize] ; } extern "C" { pub fn tzset () ; } extern "C" { pub static mut daylight : :: core :: ffi :: c_int ; } extern "C" { pub static mut timezone : :: core :: ffi :: c_long ; } extern "C" { pub fn timegm (__tp : * mut tm) -> time_t ; } extern "C" { pub fn timelocal (__tp : * mut tm) -> time_t ; } extern "C" { pub fn dysize (__year : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn nanosleep (__requested_time : * const timespec , __remaining : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_getres (__clock_id : clockid_t , __res : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_gettime (__clock_id : clockid_t , __tp : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_settime (__clock_id : clockid_t , __tp : * const timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_nanosleep (__clock_id : clockid_t , __flags : :: core :: ffi :: c_int , __req : * const timespec , __rem : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_getcpuclockid (__pid : pid_t , __clock_id : * mut clockid_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_create (__clock_id : clockid_t , __evp : * mut sigevent , __timerid : * mut timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_delete (__timerid : timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_settime (__timerid : timer_t , __flags : :: core :: ffi :: c_int , __value : * const itimerspec , __ovalue : * mut itimerspec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_gettime (__timerid : timer_t , __value : * mut itimerspec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_getoverrun (__timerid : timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timespec_get (__ts : * mut timespec , __base : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } # [doc = " API parameters for a login request.\n If both password and api_token are provided, api_token will be ignored."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_login_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub password : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_login_request_t"] [:: core :: mem :: size_of :: < rc_api_login_request_t > () - 24usize] ; ["Alignment of rc_api_login_request_t"] [:: core :: mem :: align_of :: < rc_api_login_request_t > () - 8usize] ; ["Offset of field: rc_api_login_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , username) - 0usize] ; ["Offset of field: rc_api_login_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_login_request_t::password"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , password) - 16usize] ; } ; # [doc = " Response data for a login request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_login_response_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub score : u32 , pub score_softcore : u32 , pub num_unread_messages : u32 , pub display_name : * const :: core :: ffi :: c_char , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_login_response_t"] [:: core :: mem :: size_of :: < rc_api_login_response_t > () - 352usize] ; ["Alignment of rc_api_login_response_t"] [:: core :: mem :: align_of :: < rc_api_login_response_t > () - 8usize] ; ["Offset of field: rc_api_login_response_t::username"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , username) - 0usize] ; ["Offset of field: rc_api_login_response_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , api_token) - 8usize] ; ["Offset of field: rc_api_login_response_t::score"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , score) - 16usize] ; ["Offset of field: rc_api_login_response_t::score_softcore"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , score_softcore) - 20usize] ; ["Offset of field: rc_api_login_response_t::num_unread_messages"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , num_unread_messages) - 24usize] ; ["Offset of field: rc_api_login_response_t::display_name"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , display_name) - 32usize] ; ["Offset of field: rc_api_login_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , response) - 40usize] ; } ; extern "C" { pub fn rc_api_init_login_request (request : * mut rc_api_request_t , api_params : * const rc_api_login_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_login_response (response : * mut rc_api_login_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_login_server_response (response : * mut rc_api_login_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_login_response (response : * mut rc_api_login_response_t) ; } # [doc = " API parameters for a start session request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_start_session_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub game_hash : * const :: core :: ffi :: c_char , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_start_session_request_t"] [:: core :: mem :: size_of :: < rc_api_start_session_request_t > () - 40usize] ; ["Alignment of rc_api_start_session_request_t"] [:: core :: mem :: align_of :: < rc_api_start_session_request_t > () - 8usize] ; ["Offset of field: rc_api_start_session_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , username) - 0usize] ; ["Offset of field: rc_api_start_session_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_start_session_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_start_session_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_start_session_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , hardcore) - 32usize] ; } ; # [doc = " Response data for an achievement unlock."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_unlock_entry_t { pub achievement_id : u32 , pub when : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_unlock_entry_t"] [:: core :: mem :: size_of :: < rc_api_unlock_entry_t > () - 16usize] ; ["Alignment of rc_api_unlock_entry_t"] [:: core :: mem :: align_of :: < rc_api_unlock_entry_t > () - 8usize] ; ["Offset of field: rc_api_unlock_entry_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_unlock_entry_t , achievement_id) - 0usize] ; ["Offset of field: rc_api_unlock_entry_t::when"] [:: core :: mem :: offset_of ! (rc_api_unlock_entry_t , when) - 8usize] ; } ; # [doc = " Response data for a start session request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_start_session_response_t { pub hardcore_unlocks : * mut rc_api_unlock_entry_t , pub unlocks : * mut rc_api_unlock_entry_t , pub num_hardcore_unlocks : u32 , pub num_unlocks : u32 , pub server_now : time_t , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_start_session_response_t"] [:: core :: mem :: size_of :: < rc_api_start_session_response_t > () - 344usize] ; ["Alignment of rc_api_start_session_response_t"] [:: core :: mem :: align_of :: < rc_api_start_session_response_t > () - 8usize] ; ["Offset of field: rc_api_start_session_response_t::hardcore_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , hardcore_unlocks) - 0usize] ; ["Offset of field: rc_api_start_session_response_t::unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , unlocks) - 8usize] ; ["Offset of field: rc_api_start_session_response_t::num_hardcore_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , num_hardcore_unlocks) - 16usize] ; ["Offset of field: rc_api_start_session_response_t::num_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , num_unlocks) - 20usize] ; ["Offset of field: rc_api_start_session_response_t::server_now"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , server_now) - 24usize] ; ["Offset of field: rc_api_start_session_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_start_session_request (request : * mut rc_api_request_t , api_params : * const rc_api_start_session_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_start_session_response (response : * mut rc_api_start_session_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_start_session_server_response (response : * mut rc_api_start_session_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_start_session_response (response : * mut rc_api_start_session_response_t) ; } # [doc = " API parameters for a fetch user unlocks request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_user_unlocks_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_user_unlocks_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_user_unlocks_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_user_unlocks_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_user_unlocks_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , hardcore) - 20usize] ; } ; # [doc = " Response data for a fetch user unlocks request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_user_unlocks_response_t { pub achievement_ids : * mut u32 , pub num_achievement_ids : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_user_unlocks_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_user_unlocks_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_user_unlocks_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_user_unlocks_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::achievement_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , achievement_ids) - 0usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::num_achievement_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , num_achievement_ids) - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_user_unlocks_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_user_unlocks_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_user_unlocks_response (response : * mut rc_api_fetch_user_unlocks_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_user_unlocks_server_response (response : * mut rc_api_fetch_user_unlocks_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_user_unlocks_response (response : * mut rc_api_fetch_user_unlocks_response_t) ; } # [doc = " API parameters for a fetch code notes request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_code_notes_request_t { pub game_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_code_notes_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_code_notes_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_code_notes_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_code_notes_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_code_notes_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_request_t , game_id) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_code_note_t { pub address : u32 , pub author : * const :: core :: ffi :: c_char , pub note : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_code_note_t"] [:: core :: mem :: size_of :: < rc_api_code_note_t > () - 24usize] ; ["Alignment of rc_api_code_note_t"] [:: core :: mem :: align_of :: < rc_api_code_note_t > () - 8usize] ; ["Offset of field: rc_api_code_note_t::address"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , address) - 0usize] ; ["Offset of field: rc_api_code_note_t::author"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , author) - 8usize] ; ["Offset of field: rc_api_code_note_t::note"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , note) - 16usize] ; } ; # [doc = " Response data for a fetch code notes request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_code_notes_response_t { pub notes : * mut rc_api_code_note_t , pub num_notes : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_code_notes_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_code_notes_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_code_notes_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_code_notes_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::notes"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , notes) - 0usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::num_notes"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , num_notes) - 8usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_code_notes_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_code_notes_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_code_notes_response (response : * mut rc_api_fetch_code_notes_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_code_notes_server_response (response : * mut rc_api_fetch_code_notes_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_code_notes_response (response : * mut rc_api_fetch_code_notes_response_t) ; } # [doc = " API parameters for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_code_note_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub address : u32 , pub note : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_code_note_request_t"] [:: core :: mem :: size_of :: < rc_api_update_code_note_request_t > () - 32usize] ; ["Alignment of rc_api_update_code_note_request_t"] [:: core :: mem :: align_of :: < rc_api_update_code_note_request_t > () - 8usize] ; ["Offset of field: rc_api_update_code_note_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_code_note_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_code_note_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_update_code_note_request_t::address"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , address) - 20usize] ; ["Offset of field: rc_api_update_code_note_request_t::note"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , note) - 24usize] ; } ; # [doc = " Response data for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_code_note_response_t { pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_code_note_response_t"] [:: core :: mem :: size_of :: < rc_api_update_code_note_response_t > () - 312usize] ; ["Alignment of rc_api_update_code_note_response_t"] [:: core :: mem :: align_of :: < rc_api_update_code_note_response_t > () - 8usize] ; ["Offset of field: rc_api_update_code_note_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_response_t , response) - 0usize] ; } ; extern "C" { pub fn rc_api_init_update_code_note_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_code_note_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_code_note_response (response : * mut rc_api_update_code_note_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_code_note_server_response (response : * mut rc_api_update_code_note_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_code_note_response (response : * mut rc_api_update_code_note_response_t) ; } # [doc = " API parameters for an update achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_achievement_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub game_id : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub badge : * const :: core :: ffi :: c_char , pub trigger : * const :: core :: ffi :: c_char , pub points : u32 , pub category : u32 , pub type_ : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_achievement_request_t"] [:: core :: mem :: size_of :: < rc_api_update_achievement_request_t > () - 72usize] ; ["Alignment of rc_api_update_achievement_request_t"] [:: core :: mem :: align_of :: < rc_api_update_achievement_request_t > () - 8usize] ; ["Offset of field: rc_api_update_achievement_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_achievement_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_achievement_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_update_achievement_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , game_id) - 20usize] ; ["Offset of field: rc_api_update_achievement_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , title) - 24usize] ; ["Offset of field: rc_api_update_achievement_request_t::description"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , description) - 32usize] ; ["Offset of field: rc_api_update_achievement_request_t::badge"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , badge) - 40usize] ; ["Offset of field: rc_api_update_achievement_request_t::trigger"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , trigger) - 48usize] ; ["Offset of field: rc_api_update_achievement_request_t::points"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , points) - 56usize] ; ["Offset of field: rc_api_update_achievement_request_t::category"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , category) - 60usize] ; ["Offset of field: rc_api_update_achievement_request_t::type_"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , type_) - 64usize] ; } ; # [doc = " Response data for an update achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_achievement_response_t { pub achievement_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_achievement_response_t"] [:: core :: mem :: size_of :: < rc_api_update_achievement_response_t > () - 320usize] ; ["Alignment of rc_api_update_achievement_response_t"] [:: core :: mem :: align_of :: < rc_api_update_achievement_response_t > () - 8usize] ; ["Offset of field: rc_api_update_achievement_response_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_response_t , achievement_id) - 0usize] ; ["Offset of field: rc_api_update_achievement_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_update_achievement_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_achievement_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_achievement_response (response : * mut rc_api_update_achievement_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_achievement_server_response (response : * mut rc_api_update_achievement_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_achievement_response (response : * mut rc_api_update_achievement_response_t) ; } # [doc = " API parameters for an update leaderboard request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_leaderboard_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub leaderboard_id : u32 , pub game_id : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub start_trigger : * const :: core :: ffi :: c_char , pub submit_trigger : * const :: core :: ffi :: c_char , pub cancel_trigger : * const :: core :: ffi :: c_char , pub value_definition : * const :: core :: ffi :: c_char , pub format : * const :: core :: ffi :: c_char , pub lower_is_better : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_leaderboard_request_t"] [:: core :: mem :: size_of :: < rc_api_update_leaderboard_request_t > () - 88usize] ; ["Alignment of rc_api_update_leaderboard_request_t"] [:: core :: mem :: align_of :: < rc_api_update_leaderboard_request_t > () - 8usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , leaderboard_id) - 16usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , game_id) - 20usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , title) - 24usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::description"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , description) - 32usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::start_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , start_trigger) - 40usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::submit_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , submit_trigger) - 48usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::cancel_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , cancel_trigger) - 56usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::value_definition"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , value_definition) - 64usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::format"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , format) - 72usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , lower_is_better) - 80usize] ; } ; # [doc = " Response data for an update leaderboard request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_leaderboard_response_t { pub leaderboard_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_leaderboard_response_t"] [:: core :: mem :: size_of :: < rc_api_update_leaderboard_response_t > () - 320usize] ; ["Alignment of rc_api_update_leaderboard_response_t"] [:: core :: mem :: align_of :: < rc_api_update_leaderboard_response_t > () - 8usize] ; ["Offset of field: rc_api_update_leaderboard_response_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_response_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_api_update_leaderboard_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_update_leaderboard_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_leaderboard_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_leaderboard_response (response : * mut rc_api_update_leaderboard_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_leaderboard_server_response (response : * mut rc_api_update_leaderboard_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_leaderboard_response (response : * mut rc_api_update_leaderboard_response_t) ; } # [doc = " API parameters for a fetch badge range request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_badge_range_request_t { pub unused : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_badge_range_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_badge_range_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_badge_range_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_badge_range_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_badge_range_request_t::unused"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_request_t , unused) - 0usize] ; } ; # [doc = " Response data for a fetch badge range request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_badge_range_response_t { pub first_badge_id : u32 , pub next_badge_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_badge_range_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_badge_range_response_t > () - 320usize] ; ["Alignment of rc_api_fetch_badge_range_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_badge_range_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::first_badge_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , first_badge_id) - 0usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::next_badge_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , next_badge_id) - 4usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_fetch_badge_range_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_badge_range_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_badge_range_response (response : * mut rc_api_fetch_badge_range_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_badge_range_server_response (response : * mut rc_api_fetch_badge_range_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_badge_range_response (response : * mut rc_api_fetch_badge_range_response_t) ; } # [doc = " API parameters for an add game hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_add_game_hash_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub hash : * const :: core :: ffi :: c_char , pub hash_description : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_add_game_hash_request_t"] [:: core :: mem :: size_of :: < rc_api_add_game_hash_request_t > () - 48usize] ; ["Alignment of rc_api_add_game_hash_request_t"] [:: core :: mem :: align_of :: < rc_api_add_game_hash_request_t > () - 8usize] ; ["Offset of field: rc_api_add_game_hash_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , username) - 0usize] ; ["Offset of field: rc_api_add_game_hash_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_add_game_hash_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_add_game_hash_request_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , console_id) - 20usize] ; ["Offset of field: rc_api_add_game_hash_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , title) - 24usize] ; ["Offset of field: rc_api_add_game_hash_request_t::hash"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , hash) - 32usize] ; ["Offset of field: rc_api_add_game_hash_request_t::hash_description"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , hash_description) - 40usize] ; } ; # [doc = " Response data for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_add_game_hash_response_t { pub game_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_add_game_hash_response_t"] [:: core :: mem :: size_of :: < rc_api_add_game_hash_response_t > () - 320usize] ; ["Alignment of rc_api_add_game_hash_response_t"] [:: core :: mem :: align_of :: < rc_api_add_game_hash_response_t > () - 8usize] ; ["Offset of field: rc_api_add_game_hash_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_response_t , game_id) - 0usize] ; ["Offset of field: rc_api_add_game_hash_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_add_game_hash_request (request : * mut rc_api_request_t , api_params : * const rc_api_add_game_hash_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_add_game_hash_response (response : * mut rc_api_add_game_hash_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_add_game_hash_server_response (response : * mut rc_api_add_game_hash_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_add_game_hash_response (response : * mut rc_api_add_game_hash_response_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_t { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_menu_item_t { pub label : * const :: core :: ffi :: c_char , pub id : u32 , pub checked : u8 , pub enabled : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_menu_item_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_menu_item_t > () - 16usize] ; ["Alignment of rc_client_raintegration_menu_item_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_menu_item_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::label"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , label) - 0usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::id"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , id) - 8usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::checked"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , checked) - 12usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::enabled"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , enabled) - 13usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_menu_t { pub items : * mut rc_client_raintegration_menu_item_t , pub num_items : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_menu_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_menu_t > () - 16usize] ; ["Alignment of rc_client_raintegration_menu_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_menu_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_menu_t::items"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_t , items) - 0usize] ; ["Offset of field: rc_client_raintegration_menu_t::num_items"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_t , num_items) - 8usize] ; } ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_NONE : _bindgen_ty_10 = 0 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_PUBLISHED : _bindgen_ty_10 = 1 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_LOCAL : _bindgen_ty_10 = 2 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_MODIFIED : _bindgen_ty_10 = 3 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_INSECURE : _bindgen_ty_10 = 4 ; pub type _bindgen_ty_10 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_RAINTEGRATION_EVENT_TYPE_NONE : _bindgen_ty_11 = 0 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_MENUITEM_CHECKED_CHANGED : _bindgen_ty_11 = 1 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_HARDCORE_CHANGED : _bindgen_ty_11 = 2 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_PAUSE : _bindgen_ty_11 = 3 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_MENU_CHANGED : _bindgen_ty_11 = 4 ; pub type _bindgen_ty_11 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_event_t { pub type_ : u32 , pub menu_item : * const rc_client_raintegration_menu_item_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_event_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_event_t > () - 16usize] ; ["Alignment of rc_client_raintegration_event_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_event_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_event_t::type_"] [:: core :: mem :: offset_of ! (rc_client_raintegration_event_t , type_) - 0usize] ; ["Offset of field: rc_client_raintegration_event_t::menu_item"] [:: core :: mem :: offset_of ! (rc_client_raintegration_event_t , menu_item) - 8usize] ; } ; pub type rc_client_raintegration_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (event : * const rc_client_raintegration_event_t , client : * mut rc_client_t) > ; pub type rc_client_raintegration_write_memory_func_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , buffer : * mut u8 , num_bytes : u32 , client : * mut rc_client_t) > ; pub type rc_client_raintegration_get_game_name_func_t = :: core :: option :: Option < unsafe extern "C" fn (buffer : * mut :: core :: ffi :: c_char , buffer_size : u32 , client : * mut rc_client_t) > ; # [doc = " API parameters for a fetch achievement info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_achievement_info_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub first_entry : u32 , pub count : u32 , pub friends_only : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_achievement_info_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_achievement_info_request_t > () - 32usize] ; ["Alignment of rc_api_fetch_achievement_info_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_achievement_info_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::first_entry"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , first_entry) - 20usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::count"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , count) - 24usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::friends_only"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , friends_only) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_achievement_awarded_entry_t { pub username : * const :: core :: ffi :: c_char , pub awarded : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_achievement_awarded_entry_t"] [:: core :: mem :: size_of :: < rc_api_achievement_awarded_entry_t > () - 16usize] ; ["Alignment of rc_api_achievement_awarded_entry_t"] [:: core :: mem :: align_of :: < rc_api_achievement_awarded_entry_t > () - 8usize] ; ["Offset of field: rc_api_achievement_awarded_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_achievement_awarded_entry_t , username) - 0usize] ; ["Offset of field: rc_api_achievement_awarded_entry_t::awarded"] [:: core :: mem :: offset_of ! (rc_api_achievement_awarded_entry_t , awarded) - 8usize] ; } ; # [doc = " Response data for a fetch achievement info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_achievement_info_response_t { pub id : u32 , pub game_id : u32 , pub num_awarded : u32 , pub num_players : u32 , pub recently_awarded : * mut rc_api_achievement_awarded_entry_t , pub num_recently_awarded : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_achievement_info_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_achievement_info_response_t > () - 344usize] ; ["Alignment of rc_api_fetch_achievement_info_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_achievement_info_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , game_id) - 4usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_awarded) - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_players"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_players) - 12usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::recently_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , recently_awarded) - 16usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_recently_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_recently_awarded) - 24usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_fetch_achievement_info_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_achievement_info_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_achievement_info_response (response : * mut rc_api_fetch_achievement_info_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_achievement_info_server_response (response : * mut rc_api_fetch_achievement_info_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_achievement_info_response (response : * mut rc_api_fetch_achievement_info_response_t) ; } # [doc = " API parameters for a fetch leaderboard info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_leaderboard_info_request_t { pub leaderboard_id : u32 , pub count : u32 , pub first_entry : u32 , pub username : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_leaderboard_info_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_leaderboard_info_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_leaderboard_info_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_leaderboard_info_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::count"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , count) - 4usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::first_entry"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , first_entry) - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , username) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_lboard_info_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub index : u32 , pub score : i32 , pub submitted : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_lboard_info_entry_t"] [:: core :: mem :: size_of :: < rc_api_lboard_info_entry_t > () - 32usize] ; ["Alignment of rc_api_lboard_info_entry_t"] [:: core :: mem :: align_of :: < rc_api_lboard_info_entry_t > () - 8usize] ; ["Offset of field: rc_api_lboard_info_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , username) - 0usize] ; ["Offset of field: rc_api_lboard_info_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , rank) - 8usize] ; ["Offset of field: rc_api_lboard_info_entry_t::index"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , index) - 12usize] ; ["Offset of field: rc_api_lboard_info_entry_t::score"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , score) - 16usize] ; ["Offset of field: rc_api_lboard_info_entry_t::submitted"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , submitted) - 24usize] ; } ; # [doc = " Response data for a fetch leaderboard info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_leaderboard_info_response_t { pub id : u32 , pub format : :: core :: ffi :: c_int , pub lower_is_better : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub game_id : u32 , pub author : * const :: core :: ffi :: c_char , pub created : time_t , pub updated : time_t , pub entries : * mut rc_api_lboard_info_entry_t , pub num_entries : u32 , pub total_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_leaderboard_info_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_leaderboard_info_response_t > () - 400usize] ; ["Alignment of rc_api_fetch_leaderboard_info_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_leaderboard_info_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::format"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , format) - 4usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , lower_is_better) - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::title"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , title) - 16usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::description"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , description) - 24usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::definition"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , definition) - 32usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , game_id) - 40usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::author"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , author) - 48usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::created"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , created) - 56usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::updated"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , updated) - 64usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , entries) - 72usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , num_entries) - 80usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::total_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , total_entries) - 84usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , response) - 88usize] ; } ; extern "C" { pub fn rc_api_init_fetch_leaderboard_info_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_leaderboard_info_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_leaderboard_info_response (response : * mut rc_api_fetch_leaderboard_info_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_leaderboard_info_server_response (response : * mut rc_api_fetch_leaderboard_info_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_leaderboard_info_response (response : * mut rc_api_fetch_leaderboard_info_response_t) ; } # [doc = " API parameters for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_games_list_request_t { pub console_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_games_list_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_games_list_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_games_list_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_games_list_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_games_list_request_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_request_t , console_id) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_game_list_entry_t { pub id : u32 , pub name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_game_list_entry_t"] [:: core :: mem :: size_of :: < rc_api_game_list_entry_t > () - 16usize] ; ["Alignment of rc_api_game_list_entry_t"] [:: core :: mem :: align_of :: < rc_api_game_list_entry_t > () - 8usize] ; ["Offset of field: rc_api_game_list_entry_t::id"] [:: core :: mem :: offset_of ! (rc_api_game_list_entry_t , id) - 0usize] ; ["Offset of field: rc_api_game_list_entry_t::name"] [:: core :: mem :: offset_of ! (rc_api_game_list_entry_t , name) - 8usize] ; } ; # [doc = " Response data for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_games_list_response_t { pub entries : * mut rc_api_game_list_entry_t , pub num_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_games_list_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_games_list_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_games_list_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_games_list_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , entries) - 0usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , num_entries) - 8usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_games_list_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_games_list_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_games_list_response (response : * mut rc_api_fetch_games_list_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_games_list_server_response (response : * mut rc_api_fetch_games_list_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_games_list_response (response : * mut rc_api_fetch_games_list_response_t) ; } # [doc = " API parameters for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_titles_request_t { pub game_ids : * const u32 , pub num_game_ids : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_titles_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_titles_request_t > () - 16usize] ; ["Alignment of rc_api_fetch_game_titles_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_titles_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_request_t::game_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_request_t , game_ids) - 0usize] ; ["Offset of field: rc_api_fetch_game_titles_request_t::num_game_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_request_t , num_game_ids) - 8usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_game_title_entry_t { pub id : u32 , pub title : * const :: core :: ffi :: c_char , pub image_name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_game_title_entry_t"] [:: core :: mem :: size_of :: < rc_api_game_title_entry_t > () - 24usize] ; ["Alignment of rc_api_game_title_entry_t"] [:: core :: mem :: align_of :: < rc_api_game_title_entry_t > () - 8usize] ; ["Offset of field: rc_api_game_title_entry_t::id"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , id) - 0usize] ; ["Offset of field: rc_api_game_title_entry_t::title"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , title) - 8usize] ; ["Offset of field: rc_api_game_title_entry_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , image_name) - 16usize] ; } ; # [doc = " Response data for a fetch games title request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_titles_response_t { pub entries : * mut rc_api_game_title_entry_t , pub num_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_titles_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_titles_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_game_titles_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_titles_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , entries) - 0usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , num_entries) - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_game_titles_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_game_titles_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_titles_server_response (response : * mut rc_api_fetch_game_titles_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_game_titles_response (response : * mut rc_api_fetch_game_titles_response_t) ; } pub type __gnuc_va_list = __builtin_va_list ; # [repr (C)] # [derive (Copy , Clone)] pub struct __mbstate_t { pub __count : :: core :: ffi :: c_int , pub __value : __mbstate_t__bindgen_ty_1 , } # [repr (C)] # [derive (Copy , Clone)] pub union __mbstate_t__bindgen_ty_1 { pub __wch : :: core :: ffi :: c_uint , pub __wchb : [:: core :: ffi :: c_char ; 4usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __mbstate_t__bindgen_ty_1"] [:: core :: mem :: size_of :: < __mbstate_t__bindgen_ty_1 > () - 4usize] ; ["Alignment of __mbstate_t__bindgen_ty_1"] [:: core :: mem :: align_of :: < __mbstate_t__bindgen_ty_1 > () - 4usize] ; ["Offset of field: __mbstate_t__bindgen_ty_1::__wch"] [:: core :: mem :: offset_of ! (__mbstate_t__bindgen_ty_1 , __wch) - 0usize] ; ["Offset of field: __mbstate_t__bindgen_ty_1::__wchb"] [:: core :: mem :: offset_of ! (__mbstate_t__bindgen_ty_1 , __wchb) - 0usize] ; } ; impl :: core :: fmt :: Debug for __mbstate_t__bindgen_ty_1 { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "__mbstate_t__bindgen_ty_1 {{ union }}") } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __mbstate_t"] [:: core :: mem :: size_of :: < __mbstate_t > () - 8usize] ; ["Alignment of __mbstate_t"] [:: core :: mem :: align_of :: < __mbstate_t > () - 4usize] ; ["Offset of field: __mbstate_t::__count"] [:: core :: mem :: offset_of ! (__mbstate_t , __count) - 0usize] ; ["Offset of field: __mbstate_t::__value"] [:: core :: mem :: offset_of ! (__mbstate_t , __value) - 4usize] ; } ; impl :: core :: fmt :: Debug for __mbstate_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "__mbstate_t {{ __count: {:?}, __value: {:?} }}" , self . __count , self . __value) } } # [repr (C)] # [derive (Copy , Clone)] pub struct _G_fpos_t { pub __pos : __off_t , pub __state : __mbstate_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _G_fpos_t"] [:: core :: mem :: size_of :: < _G_fpos_t > () - 16usize] ; ["Alignment of _G_fpos_t"] [:: core :: mem :: align_of :: < _G_fpos_t > () - 8usize] ; ["Offset of field: _G_fpos_t::__pos"] [:: core :: mem :: offset_of ! (_G_fpos_t , __pos) - 0usize] ; ["Offset of field: _G_fpos_t::__state"] [:: core :: mem :: offset_of ! (_G_fpos_t , __state) - 8usize] ; } ; impl :: core :: fmt :: Debug for _G_fpos_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "_G_fpos_t {{ __pos: {:?}, __state: {:?} }}" , self . __pos , self . __state) } } pub type __fpos_t = _G_fpos_t ; # [repr (C)] # [derive (Copy , Clone)] pub struct _G_fpos64_t { pub __pos : __off64_t , pub __state : __mbstate_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _G_fpos64_t"] [:: core :: mem :: size_of :: < _G_fpos64_t > () - 16usize] ; ["Alignment of _G_fpos64_t"] [:: core :: mem :: align_of :: < _G_fpos64_t > () - 8usize] ; ["Offset of field: _G_fpos64_t::__pos"] [:: core :: mem :: offset_of ! (_G_fpos64_t , __pos) - 0usize] ; ["Offset of field: _G_fpos64_t::__state"] [:: core :: mem :: offset_of ! (_G_fpos64_t , __state) - 8usize] ; } ; impl :: core :: fmt :: Debug for _G_fpos64_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "_G_fpos64_t {{ __pos: {:?}, __state: {:?} }}" , self . __pos , self . __state) } } pub type __fpos64_t = _G_fpos64_t ; pub type __FILE = _IO_FILE ; pub type FILE = _IO_FILE ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_marker { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_codecvt { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_wide_data { _unused : [u8 ; 0] , } pub type _IO_lock_t = :: core :: ffi :: c_void ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_FILE { pub _flags : :: core :: ffi :: c_int , pub _IO_read_ptr : * mut :: core :: ffi :: c_char , pub _IO_read_end : * mut :: core :: ffi :: c_char , pub _IO_read_base : * mut :: core :: ffi :: c_char , pub _IO_write_base : * mut :: core :: ffi :: c_char , pub _IO_write_ptr : * mut :: core :: ffi :: c_char , pub _IO_write_end : * mut :: core :: ffi :: c_char , pub _IO_buf_base : * mut :: core :: ffi :: c_char , pub _IO_buf_end : * mut :: core :: ffi :: c_char , pub _IO_save_base : * mut :: core :: ffi :: c_char , pub _IO_backup_base : * mut :: core :: ffi :: c_char , pub _IO_save_end : * mut :: core :: ffi :: c_char , pub _markers : * mut _IO_marker , pub _chain : * mut _IO_FILE , pub _fileno : :: core :: ffi :: c_int , pub _bitfield_align_1 : [u32 ; 0] , pub _bitfield_1 : __BindgenBitfieldUnit < [u8 ; 3usize] > , pub _short_backupbuf : [:: core :: ffi :: c_char ; 1usize] , pub _old_offset : __off_t , pub _cur_column : :: core :: ffi :: c_ushort , pub _vtable_offset : :: core :: ffi :: c_schar , pub _shortbuf : [:: core :: ffi :: c_char ; 1usize] , pub _lock : * mut _IO_lock_t , pub _offset : __off64_t , pub _codecvt : * mut _IO_codecvt , pub _wide_data : * mut _IO_wide_data , pub _freeres_list : * mut _IO_FILE , pub _freeres_buf : * mut :: core :: ffi :: c_void , pub _prevchain : * mut * mut _IO_FILE , pub _mode : :: core :: ffi :: c_int , pub _unused3 : :: core :: ffi :: c_int , pub _total_written : __uint64_t , pub _unused2 : [:: core :: ffi :: c_char ; 8usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _IO_FILE"] [:: core :: mem :: size_of :: < _IO_FILE > () - 216usize] ; ["Alignment of _IO_FILE"] [:: core :: mem :: align_of :: < _IO_FILE > () - 8usize] ; ["Offset of field: _IO_FILE::_flags"] [:: core :: mem :: offset_of ! (_IO_FILE , _flags) - 0usize] ; ["Offset of field: _IO_FILE::_IO_read_ptr"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_ptr) - 8usize] ; ["Offset of field: _IO_FILE::_IO_read_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_end) - 16usize] ; ["Offset of field: _IO_FILE::_IO_read_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_base) - 24usize] ; ["Offset of field: _IO_FILE::_IO_write_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_base) - 32usize] ; ["Offset of field: _IO_FILE::_IO_write_ptr"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_ptr) - 40usize] ; ["Offset of field: _IO_FILE::_IO_write_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_end) - 48usize] ; ["Offset of field: _IO_FILE::_IO_buf_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_buf_base) - 56usize] ; ["Offset of field: _IO_FILE::_IO_buf_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_buf_end) - 64usize] ; ["Offset of field: _IO_FILE::_IO_save_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_save_base) - 72usize] ; ["Offset of field: _IO_FILE::_IO_backup_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_backup_base) - 80usize] ; ["Offset of field: _IO_FILE::_IO_save_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_save_end) - 88usize] ; ["Offset of field: _IO_FILE::_markers"] [:: core :: mem :: offset_of ! (_IO_FILE , _markers) - 96usize] ; ["Offset of field: _IO_FILE::_chain"] [:: core :: mem :: offset_of ! (_IO_FILE , _chain) - 104usize] ; ["Offset of field: _IO_FILE::_fileno"] [:: core :: mem :: offset_of ! (_IO_FILE , _fileno) - 112usize] ; ["Offset of field: _IO_FILE::_short_backupbuf"] [:: core :: mem :: offset_of ! (_IO_FILE , _short_backupbuf) - 119usize] ; ["Offset of field: _IO_FILE::_old_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _old_offset) - 120usize] ; ["Offset of field: _IO_FILE::_cur_column"] [:: core :: mem :: offset_of ! (_IO_FILE , _cur_column) - 128usize] ; ["Offset of field: _IO_FILE::_vtable_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _vtable_offset) - 130usize] ; ["Offset of field: _IO_FILE::_shortbuf"] [:: core :: mem :: offset_of ! (_IO_FILE , _shortbuf) - 131usize] ; ["Offset of field: _IO_FILE::_lock"] [:: core :: mem :: offset_of ! (_IO_FILE , _lock) - 136usize] ; ["Offset of field: _IO_FILE::_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _offset) - 144usize] ; ["Offset of field: _IO_FILE::_codecvt"] [:: core :: mem :: offset_of ! (_IO_FILE , _codecvt) - 152usize] ; ["Offset of field: _IO_FILE::_wide_data"] [:: core :: mem :: offset_of ! (_IO_FILE , _wide_data) - 160usize] ; ["Offset of field: _IO_FILE::_freeres_list"] [:: core :: mem :: offset_of ! (_IO_FILE , _freeres_list) - 168usize] ; ["Offset of field: _IO_FILE::_freeres_buf"] [:: core :: mem :: offset_of ! (_IO_FILE , _freeres_buf) - 176usize] ; ["Offset of field: _IO_FILE::_prevchain"] [:: core :: mem :: offset_of ! (_IO_FILE , _prevchain) - 184usize] ; ["Offset of field: _IO_FILE::_mode"] [:: core :: mem :: offset_of ! (_IO_FILE , _mode) - 192usize] ; ["Offset of field: _IO_FILE::_unused3"] [:: core :: mem :: offset_of ! (_IO_FILE , _unused3) - 196usize] ; ["Offset of field: _IO_FILE::_total_written"] [:: core :: mem :: offset_of ! (_IO_FILE , _total_written) - 200usize] ; ["Offset of field: _IO_FILE::_unused2"] [:: core :: mem :: offset_of ! (_IO_FILE , _unused2) - 208usize] ; } ; impl _IO_FILE { # [inline] pub fn _flags2 (& self) -> :: core :: ffi :: c_int { unsafe { :: core :: mem :: transmute (self . _bitfield_1 . get (0usize , 24u8) as u32) } } # [inline] pub fn set__flags2 (& mut self , val : :: core :: ffi :: c_int) { unsafe { let val : u32 = :: core :: mem :: transmute (val) ; self . _bitfield_1 . set (0usize , 24u8 , val as u64) } } # [inline] pub fn new_bitfield_1 (_flags2 : :: core :: ffi :: c_int) -> __BindgenBitfieldUnit < [u8 ; 3usize] > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [u8 ; 3usize] > = Default :: default () ; __bindgen_bitfield_unit . set (0usize , 24u8 , { let _flags2 : u32 = unsafe { :: core :: mem :: transmute (_flags2) } ; _flags2 as u64 }) ; __bindgen_bitfield_unit } } pub type cookie_read_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __buf : * mut :: core :: ffi :: c_char , __nbytes : usize) -> __ssize_t > ; pub type cookie_write_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __buf : * const :: core :: ffi :: c_char , __nbytes : usize) -> __ssize_t > ; pub type cookie_seek_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __pos : * mut __off64_t , __w : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int > ; pub type cookie_close_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void) -> :: core :: ffi :: 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 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _IO_cookie_io_functions_t"] [:: core :: mem :: size_of :: < _IO_cookie_io_functions_t > () - 32usize] ; ["Alignment of _IO_cookie_io_functions_t"] [:: core :: mem :: align_of :: < _IO_cookie_io_functions_t > () - 8usize] ; ["Offset of field: _IO_cookie_io_functions_t::read"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , read) - 0usize] ; ["Offset of field: _IO_cookie_io_functions_t::write"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , write) - 8usize] ; ["Offset of field: _IO_cookie_io_functions_t::seek"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , seek) - 16usize] ; ["Offset of field: _IO_cookie_io_functions_t::close"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , close) - 24usize] ; } ; 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" { pub static mut stdin : * mut FILE ; } extern "C" { pub static mut stdout : * mut FILE ; } extern "C" { pub static mut stderr : * mut FILE ; } extern "C" { pub fn remove (__filename : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rename (__old : * const :: core :: ffi :: c_char , __new : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn renameat (__oldfd : :: core :: ffi :: c_int , __old : * const :: core :: ffi :: c_char , __newfd : :: core :: ffi :: c_int , __new : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fclose (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn tmpfile () -> * mut FILE ; } extern "C" { pub fn tmpnam (arg1 : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn tmpnam_r (__s : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn tempnam (__dir : * const :: core :: ffi :: c_char , __pfx : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn fflush (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fflush_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fopen (__filename : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn freopen (__filename : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char , __stream : * mut FILE) -> * mut FILE ; } extern "C" { pub fn fdopen (__fd : :: core :: ffi :: c_int , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn fopencookie (__magic_cookie : * mut :: core :: ffi :: c_void , __modes : * const :: core :: ffi :: c_char , __io_funcs : cookie_io_functions_t) -> * mut FILE ; } extern "C" { pub fn fmemopen (__s : * mut :: core :: ffi :: c_void , __len : usize , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn open_memstream (__bufloc : * mut * mut :: core :: ffi :: c_char , __sizeloc : * mut usize) -> * mut FILE ; } extern "C" { pub fn setbuf (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char) ; } extern "C" { pub fn setvbuf (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char , __modes : :: core :: ffi :: c_int , __n : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn setbuffer (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char , __size : usize) ; } extern "C" { pub fn setlinebuf (__stream : * mut FILE) ; } extern "C" { pub fn fprintf (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn printf (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn sprintf (__s : * mut :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vfprintf (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vprintf (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsprintf (__s : * mut :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn snprintf (__s : * mut :: core :: ffi :: c_char , __maxlen : :: core :: ffi :: c_ulong , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsnprintf (__s : * mut :: core :: ffi :: c_char , __maxlen : :: core :: ffi :: c_ulong , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vasprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __f : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn __asprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn asprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vdprintf (__fd : :: core :: ffi :: c_int , __fmt : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn dprintf (__fd : :: core :: ffi :: c_int , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fscanf (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn scanf (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn sscanf (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } pub type __cfloat128 = __BindgenComplex < u128 > ; pub type _Float128 = u128 ; pub type _Float32 = f32 ; pub type _Float64 = f64 ; pub type _Float32x = f64 ; pub type _Float64x = u128 ; extern "C" { # [link_name = "\u{1}__isoc99_fscanf"] pub fn fscanf1 (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_scanf"] pub fn scanf1 (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_sscanf"] pub fn sscanf1 (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vfscanf (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vscanf (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsscanf (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vfscanf"] pub fn vfscanf1 (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vscanf"] pub fn vscanf1 (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vsscanf"] pub fn vsscanf1 (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgetc (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getc (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getchar () -> :: core :: ffi :: c_int ; } extern "C" { pub fn getc_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getchar_unlocked () -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgetc_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fputc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putchar (__c : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fputc_unlocked (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putc_unlocked (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putchar_unlocked (__c : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getw (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putw (__w : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgets (__s : * mut :: core :: ffi :: c_char , __n : :: core :: ffi :: c_int , __stream : * mut FILE) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn __getdelim (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __delimiter : :: core :: ffi :: c_int , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn getdelim (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __delimiter : :: core :: ffi :: c_int , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn getline (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn fputs (__s : * const :: core :: ffi :: c_char , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn puts (__s : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ungetc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fread (__ptr : * mut :: core :: ffi :: c_void , __size : :: core :: ffi :: c_ulong , __n : :: core :: ffi :: c_ulong , __stream : * mut FILE) -> :: core :: ffi :: c_ulong ; } extern "C" { pub fn fwrite (__ptr : * const :: core :: ffi :: c_void , __size : :: core :: ffi :: c_ulong , __n : :: core :: ffi :: c_ulong , __s : * mut FILE) -> :: core :: ffi :: c_ulong ; } extern "C" { pub fn fread_unlocked (__ptr : * mut :: core :: ffi :: c_void , __size : usize , __n : usize , __stream : * mut FILE) -> usize ; } extern "C" { pub fn fwrite_unlocked (__ptr : * const :: core :: ffi :: c_void , __size : usize , __n : usize , __stream : * mut FILE) -> usize ; } extern "C" { pub fn fseek (__stream : * mut FILE , __off : :: core :: ffi :: c_long , __whence : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ftell (__stream : * mut FILE) -> :: core :: ffi :: c_long ; } extern "C" { pub fn rewind (__stream : * mut FILE) ; } extern "C" { pub fn fseeko (__stream : * mut FILE , __off : __off_t , __whence : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ftello (__stream : * mut FILE) -> __off_t ; } extern "C" { pub fn fgetpos (__stream : * mut FILE , __pos : * mut fpos_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fsetpos (__stream : * mut FILE , __pos : * const fpos_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clearerr (__stream : * mut FILE) ; } extern "C" { pub fn feof (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ferror (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clearerr_unlocked (__stream : * mut FILE) ; } extern "C" { pub fn feof_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ferror_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn perror (__s : * const :: core :: ffi :: c_char) ; } extern "C" { pub fn fileno (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fileno_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn pclose (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn popen (__command : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn ctermid (__s : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn flockfile (__stream : * mut FILE) ; } extern "C" { pub fn ftrylockfile (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn funlockfile (__stream : * mut FILE) ; } extern "C" { pub fn __uflow (arg1 : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn __overflow (arg1 : * mut FILE , arg2 : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } pub const RC_CONSOLE_UNKNOWN : _bindgen_ty_12 = 0 ; pub const RC_CONSOLE_MEGA_DRIVE : _bindgen_ty_12 = 1 ; pub const RC_CONSOLE_NINTENDO_64 : _bindgen_ty_12 = 2 ; pub const RC_CONSOLE_SUPER_NINTENDO : _bindgen_ty_12 = 3 ; pub const RC_CONSOLE_GAMEBOY : _bindgen_ty_12 = 4 ; pub const RC_CONSOLE_GAMEBOY_ADVANCE : _bindgen_ty_12 = 5 ; pub const RC_CONSOLE_GAMEBOY_COLOR : _bindgen_ty_12 = 6 ; pub const RC_CONSOLE_NINTENDO : _bindgen_ty_12 = 7 ; pub const RC_CONSOLE_PC_ENGINE : _bindgen_ty_12 = 8 ; pub const RC_CONSOLE_SEGA_CD : _bindgen_ty_12 = 9 ; pub const RC_CONSOLE_SEGA_32X : _bindgen_ty_12 = 10 ; pub const RC_CONSOLE_MASTER_SYSTEM : _bindgen_ty_12 = 11 ; pub const RC_CONSOLE_PLAYSTATION : _bindgen_ty_12 = 12 ; pub const RC_CONSOLE_ATARI_LYNX : _bindgen_ty_12 = 13 ; pub const RC_CONSOLE_NEOGEO_POCKET : _bindgen_ty_12 = 14 ; pub const RC_CONSOLE_GAME_GEAR : _bindgen_ty_12 = 15 ; pub const RC_CONSOLE_GAMECUBE : _bindgen_ty_12 = 16 ; pub const RC_CONSOLE_ATARI_JAGUAR : _bindgen_ty_12 = 17 ; pub const RC_CONSOLE_NINTENDO_DS : _bindgen_ty_12 = 18 ; pub const RC_CONSOLE_WII : _bindgen_ty_12 = 19 ; pub const RC_CONSOLE_WII_U : _bindgen_ty_12 = 20 ; pub const RC_CONSOLE_PLAYSTATION_2 : _bindgen_ty_12 = 21 ; pub const RC_CONSOLE_XBOX : _bindgen_ty_12 = 22 ; pub const RC_CONSOLE_MAGNAVOX_ODYSSEY2 : _bindgen_ty_12 = 23 ; pub const RC_CONSOLE_POKEMON_MINI : _bindgen_ty_12 = 24 ; pub const RC_CONSOLE_ATARI_2600 : _bindgen_ty_12 = 25 ; pub const RC_CONSOLE_MS_DOS : _bindgen_ty_12 = 26 ; pub const RC_CONSOLE_ARCADE : _bindgen_ty_12 = 27 ; pub const RC_CONSOLE_VIRTUAL_BOY : _bindgen_ty_12 = 28 ; pub const RC_CONSOLE_MSX : _bindgen_ty_12 = 29 ; pub const RC_CONSOLE_COMMODORE_64 : _bindgen_ty_12 = 30 ; pub const RC_CONSOLE_ZX81 : _bindgen_ty_12 = 31 ; pub const RC_CONSOLE_ORIC : _bindgen_ty_12 = 32 ; pub const RC_CONSOLE_SG1000 : _bindgen_ty_12 = 33 ; pub const RC_CONSOLE_VIC20 : _bindgen_ty_12 = 34 ; pub const RC_CONSOLE_AMIGA : _bindgen_ty_12 = 35 ; pub const RC_CONSOLE_ATARI_ST : _bindgen_ty_12 = 36 ; pub const RC_CONSOLE_AMSTRAD_PC : _bindgen_ty_12 = 37 ; pub const RC_CONSOLE_APPLE_II : _bindgen_ty_12 = 38 ; pub const RC_CONSOLE_SATURN : _bindgen_ty_12 = 39 ; pub const RC_CONSOLE_DREAMCAST : _bindgen_ty_12 = 40 ; pub const RC_CONSOLE_PSP : _bindgen_ty_12 = 41 ; pub const RC_CONSOLE_CDI : _bindgen_ty_12 = 42 ; pub const RC_CONSOLE_3DO : _bindgen_ty_12 = 43 ; pub const RC_CONSOLE_COLECOVISION : _bindgen_ty_12 = 44 ; pub const RC_CONSOLE_INTELLIVISION : _bindgen_ty_12 = 45 ; pub const RC_CONSOLE_VECTREX : _bindgen_ty_12 = 46 ; pub const RC_CONSOLE_PC8800 : _bindgen_ty_12 = 47 ; pub const RC_CONSOLE_PC9800 : _bindgen_ty_12 = 48 ; pub const RC_CONSOLE_PCFX : _bindgen_ty_12 = 49 ; pub const RC_CONSOLE_ATARI_5200 : _bindgen_ty_12 = 50 ; pub const RC_CONSOLE_ATARI_7800 : _bindgen_ty_12 = 51 ; pub const RC_CONSOLE_X68K : _bindgen_ty_12 = 52 ; pub const RC_CONSOLE_WONDERSWAN : _bindgen_ty_12 = 53 ; pub const RC_CONSOLE_CASSETTEVISION : _bindgen_ty_12 = 54 ; pub const RC_CONSOLE_SUPER_CASSETTEVISION : _bindgen_ty_12 = 55 ; pub const RC_CONSOLE_NEO_GEO_CD : _bindgen_ty_12 = 56 ; pub const RC_CONSOLE_FAIRCHILD_CHANNEL_F : _bindgen_ty_12 = 57 ; pub const RC_CONSOLE_FM_TOWNS : _bindgen_ty_12 = 58 ; pub const RC_CONSOLE_ZX_SPECTRUM : _bindgen_ty_12 = 59 ; pub const RC_CONSOLE_GAME_AND_WATCH : _bindgen_ty_12 = 60 ; pub const RC_CONSOLE_NOKIA_NGAGE : _bindgen_ty_12 = 61 ; pub const RC_CONSOLE_NINTENDO_3DS : _bindgen_ty_12 = 62 ; pub const RC_CONSOLE_SUPERVISION : _bindgen_ty_12 = 63 ; pub const RC_CONSOLE_SHARPX1 : _bindgen_ty_12 = 64 ; pub const RC_CONSOLE_TIC80 : _bindgen_ty_12 = 65 ; pub const RC_CONSOLE_THOMSONTO8 : _bindgen_ty_12 = 66 ; pub const RC_CONSOLE_PC6000 : _bindgen_ty_12 = 67 ; pub const RC_CONSOLE_PICO : _bindgen_ty_12 = 68 ; pub const RC_CONSOLE_MEGADUCK : _bindgen_ty_12 = 69 ; pub const RC_CONSOLE_ZEEBO : _bindgen_ty_12 = 70 ; pub const RC_CONSOLE_ARDUBOY : _bindgen_ty_12 = 71 ; pub const RC_CONSOLE_WASM4 : _bindgen_ty_12 = 72 ; pub const RC_CONSOLE_ARCADIA_2001 : _bindgen_ty_12 = 73 ; pub const RC_CONSOLE_INTERTON_VC_4000 : _bindgen_ty_12 = 74 ; pub const RC_CONSOLE_ELEKTOR_TV_GAMES_COMPUTER : _bindgen_ty_12 = 75 ; pub const RC_CONSOLE_PC_ENGINE_CD : _bindgen_ty_12 = 76 ; pub const RC_CONSOLE_ATARI_JAGUAR_CD : _bindgen_ty_12 = 77 ; pub const RC_CONSOLE_NINTENDO_DSI : _bindgen_ty_12 = 78 ; pub const RC_CONSOLE_TI83 : _bindgen_ty_12 = 79 ; pub const RC_CONSOLE_UZEBOX : _bindgen_ty_12 = 80 ; pub const RC_CONSOLE_HUBS : _bindgen_ty_12 = 100 ; pub const RC_CONSOLE_EVENTS : _bindgen_ty_12 = 101 ; pub const RC_CONSOLE_STANDALONE : _bindgen_ty_12 = 102 ; # [doc = "\\\n| Console identifiers                                                         |\n\\"] pub type _bindgen_ty_12 = :: core :: ffi :: c_uint ; extern "C" { pub fn rc_console_name (console_id : u32) -> * const :: core :: ffi :: c_char ; } pub const RC_MEMORY_TYPE_SYSTEM_RAM : _bindgen_ty_13 = 0 ; pub const RC_MEMORY_TYPE_SAVE_RAM : _bindgen_ty_13 = 1 ; pub const RC_MEMORY_TYPE_VIDEO_RAM : _bindgen_ty_13 = 2 ; pub const RC_MEMORY_TYPE_READONLY : _bindgen_ty_13 = 3 ; pub const RC_MEMORY_TYPE_HARDWARE_CONTROLLER : _bindgen_ty_13 = 4 ; pub const RC_MEMORY_TYPE_VIRTUAL_RAM : _bindgen_ty_13 = 5 ; pub const RC_MEMORY_TYPE_UNUSED : _bindgen_ty_13 = 6 ; # [doc = "\\\n| Memory mapping                                                              |\n\\"] pub type _bindgen_ty_13 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memory_region_t { pub start_address : u32 , pub end_address : u32 , pub real_address : u32 , pub type_ : u8 , pub description : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memory_region_t"] [:: core :: mem :: size_of :: < rc_memory_region_t > () - 24usize] ; ["Alignment of rc_memory_region_t"] [:: core :: mem :: align_of :: < rc_memory_region_t > () - 8usize] ; ["Offset of field: rc_memory_region_t::start_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , start_address) - 0usize] ; ["Offset of field: rc_memory_region_t::end_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , end_address) - 4usize] ; ["Offset of field: rc_memory_region_t::real_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , real_address) - 8usize] ; ["Offset of field: rc_memory_region_t::type_"] [:: core :: mem :: offset_of ! (rc_memory_region_t , type_) - 12usize] ; ["Offset of field: rc_memory_region_t::description"] [:: core :: mem :: offset_of ! (rc_memory_region_t , description) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memory_regions_t { pub region : * const rc_memory_region_t , pub num_regions : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memory_regions_t"] [:: core :: mem :: size_of :: < rc_memory_regions_t > () - 16usize] ; ["Alignment of rc_memory_regions_t"] [:: core :: mem :: align_of :: < rc_memory_regions_t > () - 8usize] ; ["Offset of field: rc_memory_regions_t::region"] [:: core :: mem :: offset_of ! (rc_memory_regions_t , region) - 0usize] ; ["Offset of field: rc_memory_regions_t::num_regions"] [:: core :: mem :: offset_of ! (rc_memory_regions_t , num_regions) - 8usize] ; } ; extern "C" { pub fn rc_console_memory_regions (console_id : u32) -> * const rc_memory_regions_t ; } extern "C" { pub fn rc_hash_generate_from_buffer (hash : * mut :: core :: ffi :: c_char , console_id : u32 , buffer : * const u8 , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_hash_generate_from_file (hash : * mut :: core :: ffi :: c_char , console_id : u32 , path : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_iterator { pub buffer : * const u8 , pub buffer_size : usize , pub consoles : [u8 ; 12usize] , pub index : :: core :: ffi :: c_int , pub path : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_iterator"] [:: core :: mem :: size_of :: < rc_hash_iterator > () - 40usize] ; ["Alignment of rc_hash_iterator"] [:: core :: mem :: align_of :: < rc_hash_iterator > () - 8usize] ; ["Offset of field: rc_hash_iterator::buffer"] [:: core :: mem :: offset_of ! (rc_hash_iterator , buffer) - 0usize] ; ["Offset of field: rc_hash_iterator::buffer_size"] [:: core :: mem :: offset_of ! (rc_hash_iterator , buffer_size) - 8usize] ; ["Offset of field: rc_hash_iterator::consoles"] [:: core :: mem :: offset_of ! (rc_hash_iterator , consoles) - 16usize] ; ["Offset of field: rc_hash_iterator::index"] [:: core :: mem :: offset_of ! (rc_hash_iterator , index) - 28usize] ; ["Offset of field: rc_hash_iterator::path"] [:: core :: mem :: offset_of ! (rc_hash_iterator , path) - 32usize] ; } ; pub type rc_hash_iterator_t = rc_hash_iterator ; extern "C" { pub fn rc_hash_initialize_iterator (iterator : * mut rc_hash_iterator , path : * const :: core :: ffi :: c_char , buffer : * const u8 , buffer_size : usize) ; } extern "C" { pub fn rc_hash_destroy_iterator (iterator : * mut rc_hash_iterator) ; } extern "C" { pub fn rc_hash_iterate (hash : * mut :: core :: ffi :: c_char , iterator : * mut rc_hash_iterator) -> :: core :: ffi :: c_int ; } pub type rc_hash_message_callback = :: core :: option :: Option < unsafe extern "C" fn (arg1 : * const :: core :: ffi :: c_char) > ; extern "C" { pub fn rc_hash_init_error_message_callback (callback : rc_hash_message_callback) ; } extern "C" { pub fn rc_hash_init_verbose_message_callback (callback : rc_hash_message_callback) ; } pub type rc_hash_filereader_open_file_handler = :: core :: option :: Option < unsafe extern "C" fn (path_utf8 : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_void > ; pub type rc_hash_filereader_seek_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void , offset : i64 , origin : :: core :: ffi :: c_int) > ; pub type rc_hash_filereader_tell_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void) -> i64 > ; pub type rc_hash_filereader_read_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void , buffer : * mut :: core :: ffi :: c_void , requested_bytes : usize) -> usize > ; pub type rc_hash_filereader_close_file_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void) > ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_filereader { pub open : rc_hash_filereader_open_file_handler , pub seek : rc_hash_filereader_seek_handler , pub tell : rc_hash_filereader_tell_handler , pub read : rc_hash_filereader_read_handler , pub close : rc_hash_filereader_close_file_handler , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_filereader"] [:: core :: mem :: size_of :: < rc_hash_filereader > () - 40usize] ; ["Alignment of rc_hash_filereader"] [:: core :: mem :: align_of :: < rc_hash_filereader > () - 8usize] ; ["Offset of field: rc_hash_filereader::open"] [:: core :: mem :: offset_of ! (rc_hash_filereader , open) - 0usize] ; ["Offset of field: rc_hash_filereader::seek"] [:: core :: mem :: offset_of ! (rc_hash_filereader , seek) - 8usize] ; ["Offset of field: rc_hash_filereader::tell"] [:: core :: mem :: offset_of ! (rc_hash_filereader , tell) - 16usize] ; ["Offset of field: rc_hash_filereader::read"] [:: core :: mem :: offset_of ! (rc_hash_filereader , read) - 24usize] ; ["Offset of field: rc_hash_filereader::close"] [:: core :: mem :: offset_of ! (rc_hash_filereader , close) - 32usize] ; } ; extern "C" { pub fn rc_hash_init_custom_filereader (reader : * mut rc_hash_filereader) ; } pub type rc_hash_cdreader_open_track_handler = :: core :: option :: Option < unsafe extern "C" fn (path : * const :: core :: ffi :: c_char , track : u32) -> * mut :: core :: ffi :: c_void > ; pub type rc_hash_cdreader_read_sector_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void , sector : u32 , buffer : * mut :: core :: ffi :: c_void , requested_bytes : usize) -> usize > ; pub type rc_hash_cdreader_close_track_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void) > ; pub type rc_hash_cdreader_first_track_sector_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void) -> u32 > ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_cdreader { pub open_track : rc_hash_cdreader_open_track_handler , pub read_sector : rc_hash_cdreader_read_sector_handler , pub close_track : rc_hash_cdreader_close_track_handler , pub first_track_sector : rc_hash_cdreader_first_track_sector_handler , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_cdreader"] [:: core :: mem :: size_of :: < rc_hash_cdreader > () - 32usize] ; ["Alignment of rc_hash_cdreader"] [:: core :: mem :: align_of :: < rc_hash_cdreader > () - 8usize] ; ["Offset of field: rc_hash_cdreader::open_track"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , open_track) - 0usize] ; ["Offset of field: rc_hash_cdreader::read_sector"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , read_sector) - 8usize] ; ["Offset of field: rc_hash_cdreader::close_track"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , close_track) - 16usize] ; ["Offset of field: rc_hash_cdreader::first_track_sector"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , first_track_sector) - 24usize] ; } ; extern "C" { pub fn rc_hash_get_default_cdreader (cdreader : * mut rc_hash_cdreader) ; } extern "C" { pub fn rc_hash_init_default_cdreader () ; } extern "C" { pub fn rc_hash_init_custom_cdreader (reader : * mut rc_hash_cdreader) ; } pub type rc_hash_3ds_get_cia_normal_key_func = :: core :: option :: Option < unsafe extern "C" fn (common_key_index : u8 , out_normal_key : * mut u8) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_hash_init_3ds_get_cia_normal_key_func (func : rc_hash_3ds_get_cia_normal_key_func) ; } pub type rc_hash_3ds_get_ncch_normal_keys_func = :: core :: option :: Option < unsafe extern "C" fn (primary_key_y : * mut u8 , secondary_key_x_slot : u8 , optional_program_id : * mut u8 , out_primary_key : * mut u8 , out_secondary_key : * mut u8) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_hash_init_3ds_get_ncch_normal_keys_func (func : rc_hash_3ds_get_ncch_normal_keys_func) ; } # [doc = " API parameters for a fetch image request.\n NOTE: fetch image server response is the raw image data. There is no rc_api_process_fetch_image_response function."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_image_request_t { pub image_name : * const :: core :: ffi :: c_char , pub image_type : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_image_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_image_request_t > () - 16usize] ; ["Alignment of rc_api_fetch_image_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_image_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_image_request_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_fetch_image_request_t , image_name) - 0usize] ; ["Offset of field: rc_api_fetch_image_request_t::image_type"] [:: core :: mem :: offset_of ! (rc_api_fetch_image_request_t , image_type) - 8usize] ; } ; extern "C" { pub fn rc_api_init_fetch_image_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_image_request_t) -> :: core :: ffi :: c_int ; } # [doc = " API parameters for a resolve hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_resolve_hash_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_hash : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_resolve_hash_request_t"] [:: core :: mem :: size_of :: < rc_api_resolve_hash_request_t > () - 24usize] ; ["Alignment of rc_api_resolve_hash_request_t"] [:: core :: mem :: align_of :: < rc_api_resolve_hash_request_t > () - 8usize] ; ["Offset of field: rc_api_resolve_hash_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , username) - 0usize] ; ["Offset of field: rc_api_resolve_hash_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_resolve_hash_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , game_hash) - 16usize] ; } ; # [doc = " Response data for a resolve hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_resolve_hash_response_t { pub game_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_resolve_hash_response_t"] [:: core :: mem :: size_of :: < rc_api_resolve_hash_response_t > () - 320usize] ; ["Alignment of rc_api_resolve_hash_response_t"] [:: core :: mem :: align_of :: < rc_api_resolve_hash_response_t > () - 8usize] ; ["Offset of field: rc_api_resolve_hash_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_response_t , game_id) - 0usize] ; ["Offset of field: rc_api_resolve_hash_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_resolve_hash_request (request : * mut rc_api_request_t , api_params : * const rc_api_resolve_hash_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_resolve_hash_response (response : * mut rc_api_resolve_hash_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_resolve_hash_server_response (response : * mut rc_api_resolve_hash_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_resolve_hash_response (response : * mut rc_api_resolve_hash_response_t) ; } # [doc = " API parameters for a fetch game data request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_data_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_data_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_data_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_game_data_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_data_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , game_id) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_leaderboard_definition_t { pub id : u32 , pub format : :: core :: ffi :: c_int , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub lower_is_better : u8 , pub hidden : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_leaderboard_definition_t"] [:: core :: mem :: size_of :: < rc_api_leaderboard_definition_t > () - 40usize] ; ["Alignment of rc_api_leaderboard_definition_t"] [:: core :: mem :: align_of :: < rc_api_leaderboard_definition_t > () - 8usize] ; ["Offset of field: rc_api_leaderboard_definition_t::id"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , id) - 0usize] ; ["Offset of field: rc_api_leaderboard_definition_t::format"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , format) - 4usize] ; ["Offset of field: rc_api_leaderboard_definition_t::title"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , title) - 8usize] ; ["Offset of field: rc_api_leaderboard_definition_t::description"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , description) - 16usize] ; ["Offset of field: rc_api_leaderboard_definition_t::definition"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , definition) - 24usize] ; ["Offset of field: rc_api_leaderboard_definition_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , lower_is_better) - 32usize] ; ["Offset of field: rc_api_leaderboard_definition_t::hidden"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , hidden) - 33usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_achievement_definition_t { pub id : u32 , pub points : u32 , pub category : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub author : * const :: core :: ffi :: c_char , pub badge_name : * const :: core :: ffi :: c_char , pub created : time_t , pub updated : time_t , pub type_ : u32 , pub rarity : f32 , pub rarity_hardcore : f32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_achievement_definition_t"] [:: core :: mem :: size_of :: < rc_api_achievement_definition_t > () - 88usize] ; ["Alignment of rc_api_achievement_definition_t"] [:: core :: mem :: align_of :: < rc_api_achievement_definition_t > () - 8usize] ; ["Offset of field: rc_api_achievement_definition_t::id"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , id) - 0usize] ; ["Offset of field: rc_api_achievement_definition_t::points"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , points) - 4usize] ; ["Offset of field: rc_api_achievement_definition_t::category"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , category) - 8usize] ; ["Offset of field: rc_api_achievement_definition_t::title"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , title) - 16usize] ; ["Offset of field: rc_api_achievement_definition_t::description"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , description) - 24usize] ; ["Offset of field: rc_api_achievement_definition_t::definition"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , definition) - 32usize] ; ["Offset of field: rc_api_achievement_definition_t::author"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , author) - 40usize] ; ["Offset of field: rc_api_achievement_definition_t::badge_name"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , badge_name) - 48usize] ; ["Offset of field: rc_api_achievement_definition_t::created"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , created) - 56usize] ; ["Offset of field: rc_api_achievement_definition_t::updated"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , updated) - 64usize] ; ["Offset of field: rc_api_achievement_definition_t::type_"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , type_) - 72usize] ; ["Offset of field: rc_api_achievement_definition_t::rarity"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , rarity) - 76usize] ; ["Offset of field: rc_api_achievement_definition_t::rarity_hardcore"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , rarity_hardcore) - 80usize] ; } ; # [doc = " Response data for a fetch game data request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_data_response_t { pub id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub image_name : * const :: core :: ffi :: c_char , pub rich_presence_script : * const :: core :: ffi :: c_char , pub achievements : * mut rc_api_achievement_definition_t , pub num_achievements : u32 , pub leaderboards : * mut rc_api_leaderboard_definition_t , pub num_leaderboards : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_data_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_data_response_t > () - 376usize] ; ["Alignment of rc_api_fetch_game_data_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_data_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , console_id) - 4usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::title"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , title) - 8usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , image_name) - 16usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::rich_presence_script"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , rich_presence_script) - 24usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::achievements"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , achievements) - 32usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , num_achievements) - 40usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::leaderboards"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , leaderboards) - 48usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , num_leaderboards) - 56usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , response) - 64usize] ; } ; extern "C" { pub fn rc_api_init_fetch_game_data_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_game_data_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_data_response (response : * mut rc_api_fetch_game_data_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_data_server_response (response : * mut rc_api_fetch_game_data_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_game_data_response (response : * mut rc_api_fetch_game_data_response_t) ; } # [doc = " API parameters for a ping request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_ping_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub rich_presence : * const :: core :: ffi :: c_char , pub game_hash : * const :: core :: ffi :: c_char , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_ping_request_t"] [:: core :: mem :: size_of :: < rc_api_ping_request_t > () - 48usize] ; ["Alignment of rc_api_ping_request_t"] [:: core :: mem :: align_of :: < rc_api_ping_request_t > () - 8usize] ; ["Offset of field: rc_api_ping_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , username) - 0usize] ; ["Offset of field: rc_api_ping_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_ping_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_ping_request_t::rich_presence"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , rich_presence) - 24usize] ; ["Offset of field: rc_api_ping_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , game_hash) - 32usize] ; ["Offset of field: rc_api_ping_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , hardcore) - 40usize] ; } ; # [doc = " Response data for a ping request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_ping_response_t { pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_ping_response_t"] [:: core :: mem :: size_of :: < rc_api_ping_response_t > () - 312usize] ; ["Alignment of rc_api_ping_response_t"] [:: core :: mem :: align_of :: < rc_api_ping_response_t > () - 8usize] ; ["Offset of field: rc_api_ping_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_ping_response_t , response) - 0usize] ; } ; extern "C" { pub fn rc_api_init_ping_request (request : * mut rc_api_request_t , api_params : * const rc_api_ping_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_ping_response (response : * mut rc_api_ping_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_ping_server_response (response : * mut rc_api_ping_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_ping_response (response : * mut rc_api_ping_response_t) ; } # [doc = " API parameters for an award achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_award_achievement_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub hardcore : u32 , pub game_hash : * const :: core :: ffi :: c_char , pub seconds_since_unlock : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_award_achievement_request_t"] [:: core :: mem :: size_of :: < rc_api_award_achievement_request_t > () - 40usize] ; ["Alignment of rc_api_award_achievement_request_t"] [:: core :: mem :: align_of :: < rc_api_award_achievement_request_t > () - 8usize] ; ["Offset of field: rc_api_award_achievement_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , username) - 0usize] ; ["Offset of field: rc_api_award_achievement_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_award_achievement_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_award_achievement_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , hardcore) - 20usize] ; ["Offset of field: rc_api_award_achievement_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_award_achievement_request_t::seconds_since_unlock"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , seconds_since_unlock) - 32usize] ; } ; # [doc = " Response data for an award achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_award_achievement_response_t { pub awarded_achievement_id : u32 , pub new_player_score : u32 , pub new_player_score_softcore : u32 , pub achievements_remaining : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_award_achievement_response_t"] [:: core :: mem :: size_of :: < rc_api_award_achievement_response_t > () - 328usize] ; ["Alignment of rc_api_award_achievement_response_t"] [:: core :: mem :: align_of :: < rc_api_award_achievement_response_t > () - 8usize] ; ["Offset of field: rc_api_award_achievement_response_t::awarded_achievement_id"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , awarded_achievement_id) - 0usize] ; ["Offset of field: rc_api_award_achievement_response_t::new_player_score"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , new_player_score) - 4usize] ; ["Offset of field: rc_api_award_achievement_response_t::new_player_score_softcore"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , new_player_score_softcore) - 8usize] ; ["Offset of field: rc_api_award_achievement_response_t::achievements_remaining"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , achievements_remaining) - 12usize] ; ["Offset of field: rc_api_award_achievement_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_award_achievement_request (request : * mut rc_api_request_t , api_params : * const rc_api_award_achievement_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_award_achievement_response (response : * mut rc_api_award_achievement_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_award_achievement_server_response (response : * mut rc_api_award_achievement_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_award_achievement_response (response : * mut rc_api_award_achievement_response_t) ; } # [doc = " API parameters for a submit lboard entry request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_submit_lboard_entry_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub leaderboard_id : u32 , pub score : i32 , pub game_hash : * const :: core :: ffi :: c_char , pub seconds_since_completion : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_submit_lboard_entry_request_t"] [:: core :: mem :: size_of :: < rc_api_submit_lboard_entry_request_t > () - 40usize] ; ["Alignment of rc_api_submit_lboard_entry_request_t"] [:: core :: mem :: align_of :: < rc_api_submit_lboard_entry_request_t > () - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , username) - 0usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , leaderboard_id) - 16usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , score) - 20usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::seconds_since_completion"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , seconds_since_completion) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_lboard_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub score : i32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_lboard_entry_t"] [:: core :: mem :: size_of :: < rc_api_lboard_entry_t > () - 16usize] ; ["Alignment of rc_api_lboard_entry_t"] [:: core :: mem :: align_of :: < rc_api_lboard_entry_t > () - 8usize] ; ["Offset of field: rc_api_lboard_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , username) - 0usize] ; ["Offset of field: rc_api_lboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , rank) - 8usize] ; ["Offset of field: rc_api_lboard_entry_t::score"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , score) - 12usize] ; } ; # [doc = " Response data for a submit lboard entry request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_submit_lboard_entry_response_t { pub submitted_score : i32 , pub best_score : i32 , pub new_rank : u32 , pub num_entries : u32 , pub top_entries : * mut rc_api_lboard_entry_t , pub num_top_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_submit_lboard_entry_response_t"] [:: core :: mem :: size_of :: < rc_api_submit_lboard_entry_response_t > () - 344usize] ; ["Alignment of rc_api_submit_lboard_entry_response_t"] [:: core :: mem :: align_of :: < rc_api_submit_lboard_entry_response_t > () - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::submitted_score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , submitted_score) - 0usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::best_score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , best_score) - 4usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::new_rank"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , new_rank) - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , num_entries) - 12usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::top_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , top_entries) - 16usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::num_top_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , num_top_entries) - 24usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_submit_lboard_entry_request (request : * mut rc_api_request_t , api_params : * const rc_api_submit_lboard_entry_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_submit_lboard_entry_response (response : * mut rc_api_submit_lboard_entry_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_submit_lboard_entry_server_response (response : * mut rc_api_submit_lboard_entry_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_submit_lboard_entry_response (response : * mut rc_api_submit_lboard_entry_response_t) ; } # [doc = " Callback used to read num_bytes bytes from memory starting at address. If\n num_bytes is greater than 1, the value is read in little-endian from\n memory."] pub type rc_runtime_peek_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , num_bytes : u32 , ud : * mut :: core :: ffi :: c_void) -> u32 > ; # [doc = "\\\n| Runtime                                                                     |\n\\"] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_trigger_t { pub id : u32 , pub trigger : * mut rc_trigger_t , pub buffer : * mut :: core :: ffi :: c_void , pub invalid_memref : * mut rc_memref_t , pub md5 : [u8 ; 16usize] , pub serialized_size : i32 , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_trigger_t"] [:: core :: mem :: size_of :: < rc_runtime_trigger_t > () - 56usize] ; ["Alignment of rc_runtime_trigger_t"] [:: core :: mem :: align_of :: < rc_runtime_trigger_t > () - 8usize] ; ["Offset of field: rc_runtime_trigger_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , id) - 0usize] ; ["Offset of field: rc_runtime_trigger_t::trigger"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , trigger) - 8usize] ; ["Offset of field: rc_runtime_trigger_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , buffer) - 16usize] ; ["Offset of field: rc_runtime_trigger_t::invalid_memref"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , invalid_memref) - 24usize] ; ["Offset of field: rc_runtime_trigger_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , md5) - 32usize] ; ["Offset of field: rc_runtime_trigger_t::serialized_size"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , serialized_size) - 48usize] ; ["Offset of field: rc_runtime_trigger_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , owns_memrefs) - 52usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_lboard_t { pub id : u32 , pub value : i32 , pub lboard : * mut rc_lboard_t , pub buffer : * mut :: core :: ffi :: c_void , pub invalid_memref : * mut rc_memref_t , pub md5 : [u8 ; 16usize] , pub serialized_size : u32 , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_lboard_t"] [:: core :: mem :: size_of :: < rc_runtime_lboard_t > () - 56usize] ; ["Alignment of rc_runtime_lboard_t"] [:: core :: mem :: align_of :: < rc_runtime_lboard_t > () - 8usize] ; ["Offset of field: rc_runtime_lboard_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , id) - 0usize] ; ["Offset of field: rc_runtime_lboard_t::value"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , value) - 4usize] ; ["Offset of field: rc_runtime_lboard_t::lboard"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , lboard) - 8usize] ; ["Offset of field: rc_runtime_lboard_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , buffer) - 16usize] ; ["Offset of field: rc_runtime_lboard_t::invalid_memref"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , invalid_memref) - 24usize] ; ["Offset of field: rc_runtime_lboard_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , md5) - 32usize] ; ["Offset of field: rc_runtime_lboard_t::serialized_size"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , serialized_size) - 48usize] ; ["Offset of field: rc_runtime_lboard_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , owns_memrefs) - 52usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_richpresence_t { pub richpresence : * mut rc_richpresence_t , pub buffer : * mut :: core :: ffi :: c_void , pub previous : * mut rc_runtime_richpresence_t , pub md5 : [u8 ; 16usize] , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_richpresence_t"] [:: core :: mem :: size_of :: < rc_runtime_richpresence_t > () - 48usize] ; ["Alignment of rc_runtime_richpresence_t"] [:: core :: mem :: align_of :: < rc_runtime_richpresence_t > () - 8usize] ; ["Offset of field: rc_runtime_richpresence_t::richpresence"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , richpresence) - 0usize] ; ["Offset of field: rc_runtime_richpresence_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , buffer) - 8usize] ; ["Offset of field: rc_runtime_richpresence_t::previous"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , previous) - 16usize] ; ["Offset of field: rc_runtime_richpresence_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , md5) - 24usize] ; ["Offset of field: rc_runtime_richpresence_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , owns_memrefs) - 40usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_t { pub triggers : * mut rc_runtime_trigger_t , pub trigger_count : u32 , pub trigger_capacity : u32 , pub lboards : * mut rc_runtime_lboard_t , pub lboard_count : u32 , pub lboard_capacity : u32 , pub richpresence : * mut rc_runtime_richpresence_t , pub memrefs : * mut rc_memref_t , pub next_memref : * mut * mut rc_memref_t , pub variables : * mut rc_value_t , pub next_variable : * mut * mut rc_value_t , pub owns_self : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_t"] [:: core :: mem :: size_of :: < rc_runtime_t > () - 80usize] ; ["Alignment of rc_runtime_t"] [:: core :: mem :: align_of :: < rc_runtime_t > () - 8usize] ; ["Offset of field: rc_runtime_t::triggers"] [:: core :: mem :: offset_of ! (rc_runtime_t , triggers) - 0usize] ; ["Offset of field: rc_runtime_t::trigger_count"] [:: core :: mem :: offset_of ! (rc_runtime_t , trigger_count) - 8usize] ; ["Offset of field: rc_runtime_t::trigger_capacity"] [:: core :: mem :: offset_of ! (rc_runtime_t , trigger_capacity) - 12usize] ; ["Offset of field: rc_runtime_t::lboards"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboards) - 16usize] ; ["Offset of field: rc_runtime_t::lboard_count"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboard_count) - 24usize] ; ["Offset of field: rc_runtime_t::lboard_capacity"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboard_capacity) - 28usize] ; ["Offset of field: rc_runtime_t::richpresence"] [:: core :: mem :: offset_of ! (rc_runtime_t , richpresence) - 32usize] ; ["Offset of field: rc_runtime_t::memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_t , memrefs) - 40usize] ; ["Offset of field: rc_runtime_t::next_memref"] [:: core :: mem :: offset_of ! (rc_runtime_t , next_memref) - 48usize] ; ["Offset of field: rc_runtime_t::variables"] [:: core :: mem :: offset_of ! (rc_runtime_t , variables) - 56usize] ; ["Offset of field: rc_runtime_t::next_variable"] [:: core :: mem :: offset_of ! (rc_runtime_t , next_variable) - 64usize] ; ["Offset of field: rc_runtime_t::owns_self"] [:: core :: mem :: offset_of ! (rc_runtime_t , owns_self) - 72usize] ; } ; extern "C" { pub fn rc_runtime_alloc () -> * mut rc_runtime_t ; } extern "C" { pub fn rc_runtime_init (runtime : * mut rc_runtime_t) ; } extern "C" { pub fn rc_runtime_destroy (runtime : * mut rc_runtime_t) ; } extern "C" { pub fn rc_runtime_activate_achievement (runtime : * mut rc_runtime_t , id : u32 , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deactivate_achievement (runtime : * mut rc_runtime_t , id : u32) ; } extern "C" { pub fn rc_runtime_get_achievement (runtime : * const rc_runtime_t , id : u32) -> * mut rc_trigger_t ; } extern "C" { pub fn rc_runtime_get_achievement_measured (runtime : * const rc_runtime_t , id : u32 , measured_value : * mut :: core :: ffi :: c_uint , measured_target : * mut :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_format_achievement_measured (runtime : * const rc_runtime_t , id : u32 , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_activate_lboard (runtime : * mut rc_runtime_t , id : u32 , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deactivate_lboard (runtime : * mut rc_runtime_t , id : u32) ; } extern "C" { pub fn rc_runtime_get_lboard (runtime : * const rc_runtime_t , id : u32) -> * mut rc_lboard_t ; } extern "C" { pub fn rc_runtime_format_lboard_value (buffer : * mut :: core :: ffi :: c_char , size : :: core :: ffi :: c_int , value : i32 , format : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_activate_richpresence (runtime : * mut rc_runtime_t , script : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_get_richpresence (runtime : * const rc_runtime_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_runtime_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } pub const RC_RUNTIME_EVENT_ACHIEVEMENT_ACTIVATED : _bindgen_ty_14 = 0 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PAUSED : _bindgen_ty_14 = 1 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_RESET : _bindgen_ty_14 = 2 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_TRIGGERED : _bindgen_ty_14 = 3 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PRIMED : _bindgen_ty_14 = 4 ; pub const RC_RUNTIME_EVENT_LBOARD_STARTED : _bindgen_ty_14 = 5 ; pub const RC_RUNTIME_EVENT_LBOARD_CANCELED : _bindgen_ty_14 = 6 ; pub const RC_RUNTIME_EVENT_LBOARD_UPDATED : _bindgen_ty_14 = 7 ; pub const RC_RUNTIME_EVENT_LBOARD_TRIGGERED : _bindgen_ty_14 = 8 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_DISABLED : _bindgen_ty_14 = 9 ; pub const RC_RUNTIME_EVENT_LBOARD_DISABLED : _bindgen_ty_14 = 10 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_UNPRIMED : _bindgen_ty_14 = 11 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PROGRESS_UPDATED : _bindgen_ty_14 = 12 ; pub type _bindgen_ty_14 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_event_t { pub id : u32 , pub value : i32 , pub type_ : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_event_t"] [:: core :: mem :: size_of :: < rc_runtime_event_t > () - 12usize] ; ["Alignment of rc_runtime_event_t"] [:: core :: mem :: align_of :: < rc_runtime_event_t > () - 4usize] ; ["Offset of field: rc_runtime_event_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , id) - 0usize] ; ["Offset of field: rc_runtime_event_t::value"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , value) - 4usize] ; ["Offset of field: rc_runtime_event_t::type_"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , type_) - 8usize] ; } ; pub type rc_runtime_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (runtime_event : * const rc_runtime_event_t) > ; extern "C" { pub fn rc_runtime_do_frame (runtime : * mut rc_runtime_t , event_handler : rc_runtime_event_handler_t , peek : rc_runtime_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) ; } extern "C" { pub fn rc_runtime_reset (runtime : * mut rc_runtime_t) ; } pub type rc_runtime_validate_address_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_runtime_validate_addresses (runtime : * mut rc_runtime_t , event_handler : rc_runtime_event_handler_t , validate_handler : rc_runtime_validate_address_t) ; } extern "C" { pub fn rc_runtime_invalidate_address (runtime : * mut rc_runtime_t , address : u32) ; } extern "C" { pub fn rc_runtime_progress_size (runtime : * const rc_runtime_t , L : * mut lua_State) -> u32 ; } extern "C" { pub fn rc_runtime_serialize_progress (buffer : * mut :: core :: ffi :: c_void , runtime : * const rc_runtime_t , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_serialize_progress_sized (buffer : * mut u8 , buffer_size : u32 , runtime : * const rc_runtime_t , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deserialize_progress (runtime : * mut rc_runtime_t , serialized : * const u8 , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deserialize_progress_sized (runtime : * mut rc_runtime_t , serialized : * const u8 , serialized_size : u32 , L : * mut lua_State) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_async_handle_t { _unused : [u8 ; 0] , } # [doc = " Callback used to read num_bytes bytes from memory starting at address into buffer.\n Returns the number of bytes read. A return value of 0 indicates the address was invalid."] pub type rc_client_read_memory_func_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , buffer : * mut u8 , num_bytes : u32 , client : * mut rc_client_t) -> u32 > ; # [doc = " Internal method passed to rc_client_server_call_t to process the server response."] pub type rc_client_server_callback_t = :: core :: option :: Option < unsafe extern "C" fn (server_response : * const rc_api_server_response_t , callback_data : * mut :: core :: ffi :: c_void) > ; # [doc = " Callback used to issue a request to the server."] pub type rc_client_server_call_t = :: core :: option :: Option < unsafe extern "C" fn (request : * const rc_api_request_t , callback : rc_client_server_callback_t , callback_data : * mut :: core :: ffi :: c_void , client : * mut rc_client_t) > ; # [doc = " Generic callback for asynchronous eventing."] pub type rc_client_callback_t = :: core :: option :: Option < unsafe extern "C" fn (result : :: core :: ffi :: c_int , error_message : * const :: core :: ffi :: c_char , client : * mut rc_client_t , userdata : * mut :: core :: ffi :: c_void) > ; # [doc = " Callback for logging or displaying a message."] pub type rc_client_message_callback_t = :: core :: option :: Option < unsafe extern "C" fn (message : * const :: core :: ffi :: c_char , client : * const rc_client_t) > ; extern "C" { # [doc = " Creates a new rc_client_t object."] pub fn rc_client_create (read_memory_function : rc_client_read_memory_func_t , server_call_function : rc_client_server_call_t) -> * mut rc_client_t ; } extern "C" { # [doc = " Releases resources associated to a rc_client_t object.\n Pointer will no longer be valid after making this call."] pub fn rc_client_destroy (client : * mut rc_client_t) ; } extern "C" { # [doc = " Sets whether hardcore is enabled (on by default).\n Can be called with a game loaded.\n Enabling hardcore with a game loaded will raise an RC_CLIENT_EVENT_RESET\n event. Processing will be disabled until rc_client_reset is called."] pub fn rc_client_set_hardcore_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether hardcore is enabled (on by default)."] pub fn rc_client_get_hardcore_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether encore mode is enabled (off by default).\n Evaluated when loading a game. Has no effect while a game is loaded."] pub fn rc_client_set_encore_mode_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether encore mode is enabled (off by default)."] pub fn rc_client_get_encore_mode_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether unofficial achievements should be loaded.\n Evaluated when loading a game. Has no effect while a game is loaded."] pub fn rc_client_set_unofficial_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether unofficial achievements should be loaded."] pub fn rc_client_get_unofficial_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether spectator mode is enabled (off by default).\n If enabled, events for achievement unlocks and leaderboard submissions will be\n raised, but server calls to actually perform the unlock/submit will not occur.\n Can be modified while a game is loaded. Evaluated at unlock/submit time.\n Cannot be modified if disabled before a game is loaded."] pub fn rc_client_set_spectator_mode_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether spectator mode is enabled (off by default)."] pub fn rc_client_get_spectator_mode_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Attaches client-specific data to the runtime."] pub fn rc_client_set_userdata (client : * mut rc_client_t , userdata : * mut :: core :: ffi :: c_void) ; } extern "C" { # [doc = " Gets the client-specific data attached to the runtime."] pub fn rc_client_get_userdata (client : * const rc_client_t) -> * mut :: core :: ffi :: c_void ; } extern "C" { # [doc = " Sets the name of the server to use."] pub fn rc_client_set_host (client : * const rc_client_t , hostname : * const :: core :: ffi :: c_char) ; } pub type rc_clock_t = u64 ; pub type rc_get_time_millisecs_func_t = :: core :: option :: Option < unsafe extern "C" fn (client : * const rc_client_t) -> rc_clock_t > ; extern "C" { # [doc = " Specifies a function that returns a value that increases once per millisecond."] pub fn rc_client_set_get_time_millisecs_function (client : * mut rc_client_t , handler : rc_get_time_millisecs_func_t) ; } extern "C" { # [doc = " Marks an async process as aborted. The associated callback will not be called."] pub fn rc_client_abort_async (client : * mut rc_client_t , async_handle : * mut rc_client_async_handle_t) ; } extern "C" { # [doc = " Gets a clause that can be added to the User-Agent to identify the version of rcheevos being used."] pub fn rc_client_get_user_agent_clause (client : * mut rc_client_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> usize ; } extern "C" { # [doc = " Sets the logging level and provides a callback to be called to do the logging."] pub fn rc_client_enable_logging (client : * mut rc_client_t , level : :: core :: ffi :: c_int , callback : rc_client_message_callback_t) ; } pub const RC_CLIENT_LOG_LEVEL_NONE : _bindgen_ty_15 = 0 ; pub const RC_CLIENT_LOG_LEVEL_ERROR : _bindgen_ty_15 = 1 ; pub const RC_CLIENT_LOG_LEVEL_WARN : _bindgen_ty_15 = 2 ; pub const RC_CLIENT_LOG_LEVEL_INFO : _bindgen_ty_15 = 3 ; pub const RC_CLIENT_LOG_LEVEL_VERBOSE : _bindgen_ty_15 = 4 ; pub const NUM_RC_CLIENT_LOG_LEVELS : _bindgen_ty_15 = 5 ; pub type _bindgen_ty_15 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Attempt to login a user."] pub fn rc_client_begin_login_with_password (client : * mut rc_client_t , username : * const :: core :: ffi :: c_char , password : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Attempt to login a user."] pub fn rc_client_begin_login_with_token (client : * mut rc_client_t , username : * const :: core :: ffi :: c_char , token : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Logout the user."] pub fn rc_client_logout (client : * mut rc_client_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_user_t { pub display_name : * const :: core :: ffi :: c_char , pub username : * const :: core :: ffi :: c_char , pub token : * const :: core :: ffi :: c_char , pub score : u32 , pub score_softcore : u32 , pub num_unread_messages : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_user_t"] [:: core :: mem :: size_of :: < rc_client_user_t > () - 40usize] ; ["Alignment of rc_client_user_t"] [:: core :: mem :: align_of :: < rc_client_user_t > () - 8usize] ; ["Offset of field: rc_client_user_t::display_name"] [:: core :: mem :: offset_of ! (rc_client_user_t , display_name) - 0usize] ; ["Offset of field: rc_client_user_t::username"] [:: core :: mem :: offset_of ! (rc_client_user_t , username) - 8usize] ; ["Offset of field: rc_client_user_t::token"] [:: core :: mem :: offset_of ! (rc_client_user_t , token) - 16usize] ; ["Offset of field: rc_client_user_t::score"] [:: core :: mem :: offset_of ! (rc_client_user_t , score) - 24usize] ; ["Offset of field: rc_client_user_t::score_softcore"] [:: core :: mem :: offset_of ! (rc_client_user_t , score_softcore) - 28usize] ; ["Offset of field: rc_client_user_t::num_unread_messages"] [:: core :: mem :: offset_of ! (rc_client_user_t , num_unread_messages) - 32usize] ; } ; extern "C" { # [doc = " Gets information about the logged in user. Will return NULL if the user is not logged in."] pub fn rc_client_get_user_info (client : * const rc_client_t) -> * const rc_client_user_t ; } extern "C" { # [doc = " Gets the URL for the user's profile picture.\n Returns RC_OK on success."] pub fn rc_client_user_get_image_url (user : * const rc_client_user_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_user_game_summary_t { pub num_core_achievements : u32 , pub num_unofficial_achievements : u32 , pub num_unlocked_achievements : u32 , pub num_unsupported_achievements : u32 , pub points_core : u32 , pub points_unlocked : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_user_game_summary_t"] [:: core :: mem :: size_of :: < rc_client_user_game_summary_t > () - 24usize] ; ["Alignment of rc_client_user_game_summary_t"] [:: core :: mem :: align_of :: < rc_client_user_game_summary_t > () - 4usize] ; ["Offset of field: rc_client_user_game_summary_t::num_core_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_core_achievements) - 0usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unofficial_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unofficial_achievements) - 4usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unlocked_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unlocked_achievements) - 8usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unsupported_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unsupported_achievements) - 12usize] ; ["Offset of field: rc_client_user_game_summary_t::points_core"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , points_core) - 16usize] ; ["Offset of field: rc_client_user_game_summary_t::points_unlocked"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , points_unlocked) - 20usize] ; } ; extern "C" { # [doc = " Gets a breakdown of the number of achievements in the game, and how many the user has unlocked.\n Used for the \"You have unlocked X of Y achievements\" message shown when the game starts."] pub fn rc_client_get_user_game_summary (client : * const rc_client_t , summary : * mut rc_client_user_game_summary_t) ; } extern "C" { # [doc = " Start loading an unidentified game."] pub fn rc_client_begin_identify_and_load_game (client : * mut rc_client_t , console_id : u32 , file_path : * const :: core :: ffi :: c_char , data : * const u8 , data_size : usize , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Start loading a game."] pub fn rc_client_begin_load_game (client : * mut rc_client_t , hash : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Gets the current progress of the asynchronous load game process."] pub fn rc_client_get_load_game_state (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } pub const RC_CLIENT_LOAD_GAME_STATE_NONE : _bindgen_ty_16 = 0 ; pub const RC_CLIENT_LOAD_GAME_STATE_IDENTIFYING_GAME : _bindgen_ty_16 = 1 ; pub const RC_CLIENT_LOAD_GAME_STATE_AWAIT_LOGIN : _bindgen_ty_16 = 2 ; pub const RC_CLIENT_LOAD_GAME_STATE_FETCHING_GAME_DATA : _bindgen_ty_16 = 3 ; pub const RC_CLIENT_LOAD_GAME_STATE_STARTING_SESSION : _bindgen_ty_16 = 4 ; pub const RC_CLIENT_LOAD_GAME_STATE_DONE : _bindgen_ty_16 = 5 ; pub const RC_CLIENT_LOAD_GAME_STATE_ABORTED : _bindgen_ty_16 = 6 ; pub type _bindgen_ty_16 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Determines if a game was successfully identified and loaded."] pub fn rc_client_is_game_loaded (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Unloads the current game."] pub fn rc_client_unload_game (client : * mut rc_client_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_game_t { pub id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub hash : * const :: core :: ffi :: c_char , pub badge_name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_game_t"] [:: core :: mem :: size_of :: < rc_client_game_t > () - 32usize] ; ["Alignment of rc_client_game_t"] [:: core :: mem :: align_of :: < rc_client_game_t > () - 8usize] ; ["Offset of field: rc_client_game_t::id"] [:: core :: mem :: offset_of ! (rc_client_game_t , id) - 0usize] ; ["Offset of field: rc_client_game_t::console_id"] [:: core :: mem :: offset_of ! (rc_client_game_t , console_id) - 4usize] ; ["Offset of field: rc_client_game_t::title"] [:: core :: mem :: offset_of ! (rc_client_game_t , title) - 8usize] ; ["Offset of field: rc_client_game_t::hash"] [:: core :: mem :: offset_of ! (rc_client_game_t , hash) - 16usize] ; ["Offset of field: rc_client_game_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_game_t , badge_name) - 24usize] ; } ; extern "C" { # [doc = " Get information about the current game. Returns NULL if no game is loaded.\n NOTE: returns a dummy game record if an unidentified game is loaded."] pub fn rc_client_get_game_info (client : * const rc_client_t) -> * const rc_client_game_t ; } extern "C" { # [doc = " Gets the URL for the game image.\n Returns RC_OK on success."] pub fn rc_client_game_get_image_url (game : * const rc_client_game_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Changes the active disc in a multi-disc game."] pub fn rc_client_begin_change_media (client : * mut rc_client_t , file_path : * const :: core :: ffi :: c_char , data : * const u8 , data_size : usize , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Changes the active disc in a multi-disc game."] pub fn rc_client_begin_change_media_from_hash (client : * mut rc_client_t , hash : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } # [doc = "\\\n| Subsets                                                                     |\n\\"] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_subset_t { pub id : u32 , pub title : * const :: core :: ffi :: c_char , pub badge_name : [:: core :: ffi :: c_char ; 16usize] , pub num_achievements : u32 , pub num_leaderboards : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_subset_t"] [:: core :: mem :: size_of :: < rc_client_subset_t > () - 40usize] ; ["Alignment of rc_client_subset_t"] [:: core :: mem :: align_of :: < rc_client_subset_t > () - 8usize] ; ["Offset of field: rc_client_subset_t::id"] [:: core :: mem :: offset_of ! (rc_client_subset_t , id) - 0usize] ; ["Offset of field: rc_client_subset_t::title"] [:: core :: mem :: offset_of ! (rc_client_subset_t , title) - 8usize] ; ["Offset of field: rc_client_subset_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_subset_t , badge_name) - 16usize] ; ["Offset of field: rc_client_subset_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_client_subset_t , num_achievements) - 32usize] ; ["Offset of field: rc_client_subset_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_client_subset_t , num_leaderboards) - 36usize] ; } ; extern "C" { pub fn rc_client_get_subset_info (client : * mut rc_client_t , subset_id : u32) -> * const rc_client_subset_t ; } pub const RC_CLIENT_ACHIEVEMENT_STATE_INACTIVE : _bindgen_ty_17 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_ACTIVE : _bindgen_ty_17 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_UNLOCKED : _bindgen_ty_17 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_DISABLED : _bindgen_ty_17 = 3 ; pub const NUM_RC_CLIENT_ACHIEVEMENT_STATES : _bindgen_ty_17 = 4 ; # [doc = "\\\n| Achievements                                                                |\n\\"] pub type _bindgen_ty_17 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_NONE : _bindgen_ty_18 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_CORE : _bindgen_ty_18 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_UNOFFICIAL : _bindgen_ty_18 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_CORE_AND_UNOFFICIAL : _bindgen_ty_18 = 3 ; pub type _bindgen_ty_18 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_STANDARD : _bindgen_ty_19 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_MISSABLE : _bindgen_ty_19 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_PROGRESSION : _bindgen_ty_19 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_WIN : _bindgen_ty_19 = 3 ; pub type _bindgen_ty_19 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNKNOWN : _bindgen_ty_20 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_LOCKED : _bindgen_ty_20 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNLOCKED : _bindgen_ty_20 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNSUPPORTED : _bindgen_ty_20 = 3 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNOFFICIAL : _bindgen_ty_20 = 4 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_RECENTLY_UNLOCKED : _bindgen_ty_20 = 5 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_ACTIVE_CHALLENGE : _bindgen_ty_20 = 6 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_ALMOST_THERE : _bindgen_ty_20 = 7 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNSYNCED : _bindgen_ty_20 = 8 ; pub const NUM_RC_CLIENT_ACHIEVEMENT_BUCKETS : _bindgen_ty_20 = 9 ; pub type _bindgen_ty_20 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_NONE : _bindgen_ty_21 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_SOFTCORE : _bindgen_ty_21 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_HARDCORE : _bindgen_ty_21 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_BOTH : _bindgen_ty_21 = 3 ; pub type _bindgen_ty_21 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_t { pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub badge_name : [:: core :: ffi :: c_char ; 8usize] , pub measured_progress : [:: core :: ffi :: c_char ; 24usize] , pub measured_percent : f32 , pub id : u32 , pub points : u32 , pub unlock_time : time_t , pub state : u8 , pub category : u8 , pub bucket : u8 , pub unlocked : u8 , pub rarity : f32 , pub rarity_hardcore : f32 , pub type_ : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_t"] [:: core :: mem :: size_of :: < rc_client_achievement_t > () - 88usize] ; ["Alignment of rc_client_achievement_t"] [:: core :: mem :: align_of :: < rc_client_achievement_t > () - 8usize] ; ["Offset of field: rc_client_achievement_t::title"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , title) - 0usize] ; ["Offset of field: rc_client_achievement_t::description"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , description) - 8usize] ; ["Offset of field: rc_client_achievement_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , badge_name) - 16usize] ; ["Offset of field: rc_client_achievement_t::measured_progress"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , measured_progress) - 24usize] ; ["Offset of field: rc_client_achievement_t::measured_percent"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , measured_percent) - 48usize] ; ["Offset of field: rc_client_achievement_t::id"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , id) - 52usize] ; ["Offset of field: rc_client_achievement_t::points"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , points) - 56usize] ; ["Offset of field: rc_client_achievement_t::unlock_time"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , unlock_time) - 64usize] ; ["Offset of field: rc_client_achievement_t::state"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , state) - 72usize] ; ["Offset of field: rc_client_achievement_t::category"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , category) - 73usize] ; ["Offset of field: rc_client_achievement_t::bucket"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , bucket) - 74usize] ; ["Offset of field: rc_client_achievement_t::unlocked"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , unlocked) - 75usize] ; ["Offset of field: rc_client_achievement_t::rarity"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , rarity) - 76usize] ; ["Offset of field: rc_client_achievement_t::rarity_hardcore"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , rarity_hardcore) - 80usize] ; ["Offset of field: rc_client_achievement_t::type_"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , type_) - 84usize] ; } ; extern "C" { # [doc = " Get information about an achievement. Returns NULL if not found."] pub fn rc_client_get_achievement_info (client : * mut rc_client_t , id : u32) -> * const rc_client_achievement_t ; } extern "C" { # [doc = " Gets the URL for the achievement image.\n Returns RC_OK on success."] pub fn rc_client_achievement_get_image_url (achievement : * const rc_client_achievement_t , state : :: core :: ffi :: c_int , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_bucket_t { pub achievements : * mut * mut rc_client_achievement_t , pub num_achievements : u32 , pub label : * const :: core :: ffi :: c_char , pub subset_id : u32 , pub bucket_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_bucket_t"] [:: core :: mem :: size_of :: < rc_client_achievement_bucket_t > () - 32usize] ; ["Alignment of rc_client_achievement_bucket_t"] [:: core :: mem :: align_of :: < rc_client_achievement_bucket_t > () - 8usize] ; ["Offset of field: rc_client_achievement_bucket_t::achievements"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , achievements) - 0usize] ; ["Offset of field: rc_client_achievement_bucket_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , num_achievements) - 8usize] ; ["Offset of field: rc_client_achievement_bucket_t::label"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , label) - 16usize] ; ["Offset of field: rc_client_achievement_bucket_t::subset_id"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , subset_id) - 24usize] ; ["Offset of field: rc_client_achievement_bucket_t::bucket_type"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , bucket_type) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_list_t { pub buckets : * mut rc_client_achievement_bucket_t , pub num_buckets : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_list_t"] [:: core :: mem :: size_of :: < rc_client_achievement_list_t > () - 16usize] ; ["Alignment of rc_client_achievement_list_t"] [:: core :: mem :: align_of :: < rc_client_achievement_list_t > () - 8usize] ; ["Offset of field: rc_client_achievement_list_t::buckets"] [:: core :: mem :: offset_of ! (rc_client_achievement_list_t , buckets) - 0usize] ; ["Offset of field: rc_client_achievement_list_t::num_buckets"] [:: core :: mem :: offset_of ! (rc_client_achievement_list_t , num_buckets) - 8usize] ; } ; pub const RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_LOCK_STATE : _bindgen_ty_22 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_PROGRESS : _bindgen_ty_22 = 1 ; pub type _bindgen_ty_22 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Creates a list of achievements matching the specified category and grouping.\n Returns an allocated list that must be free'd by calling rc_client_destroy_achievement_list."] pub fn rc_client_create_achievement_list (client : * mut rc_client_t , category : :: core :: ffi :: c_int , grouping : :: core :: ffi :: c_int) -> * mut rc_client_achievement_list_t ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_get_achievement_list."] pub fn rc_client_destroy_achievement_list (list : * mut rc_client_achievement_list_t) ; } extern "C" { # [doc = " Returns non-zero if there are any achievements that can be queried through rc_client_create_achievement_list()."] pub fn rc_client_has_achievements (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } pub const RC_CLIENT_LEADERBOARD_STATE_INACTIVE : _bindgen_ty_23 = 0 ; pub const RC_CLIENT_LEADERBOARD_STATE_ACTIVE : _bindgen_ty_23 = 1 ; pub const RC_CLIENT_LEADERBOARD_STATE_TRACKING : _bindgen_ty_23 = 2 ; pub const RC_CLIENT_LEADERBOARD_STATE_DISABLED : _bindgen_ty_23 = 3 ; pub const NUM_RC_CLIENT_LEADERBOARD_STATES : _bindgen_ty_23 = 4 ; # [doc = "\\\n| Leaderboards                                                                |\n\\"] pub type _bindgen_ty_23 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_LEADERBOARD_FORMAT_TIME : _bindgen_ty_24 = 0 ; pub const RC_CLIENT_LEADERBOARD_FORMAT_SCORE : _bindgen_ty_24 = 1 ; pub const RC_CLIENT_LEADERBOARD_FORMAT_VALUE : _bindgen_ty_24 = 2 ; pub const NUM_RC_CLIENT_LEADERBOARD_FORMATS : _bindgen_ty_24 = 3 ; pub type _bindgen_ty_24 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_t { pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub tracker_value : * const :: core :: ffi :: c_char , pub id : u32 , pub state : u8 , pub format : u8 , pub lower_is_better : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_t > () - 32usize] ; ["Alignment of rc_client_leaderboard_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_t::title"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , title) - 0usize] ; ["Offset of field: rc_client_leaderboard_t::description"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , description) - 8usize] ; ["Offset of field: rc_client_leaderboard_t::tracker_value"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , tracker_value) - 16usize] ; ["Offset of field: rc_client_leaderboard_t::id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , id) - 24usize] ; ["Offset of field: rc_client_leaderboard_t::state"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , state) - 28usize] ; ["Offset of field: rc_client_leaderboard_t::format"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , format) - 29usize] ; ["Offset of field: rc_client_leaderboard_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , lower_is_better) - 30usize] ; } ; extern "C" { # [doc = " Get information about a leaderboard. Returns NULL if not found."] pub fn rc_client_get_leaderboard_info (client : * const rc_client_t , id : u32) -> * const rc_client_leaderboard_t ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_tracker_t { pub display : [:: core :: ffi :: c_char ; 24usize] , pub id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_tracker_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_tracker_t > () - 28usize] ; ["Alignment of rc_client_leaderboard_tracker_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_tracker_t > () - 4usize] ; ["Offset of field: rc_client_leaderboard_tracker_t::display"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_tracker_t , display) - 0usize] ; ["Offset of field: rc_client_leaderboard_tracker_t::id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_tracker_t , id) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_bucket_t { pub leaderboards : * mut * mut rc_client_leaderboard_t , pub num_leaderboards : u32 , pub label : * const :: core :: ffi :: c_char , pub subset_id : u32 , pub bucket_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_bucket_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_bucket_t > () - 32usize] ; ["Alignment of rc_client_leaderboard_bucket_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_bucket_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::leaderboards"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , leaderboards) - 0usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , num_leaderboards) - 8usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::label"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , label) - 16usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::subset_id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , subset_id) - 24usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::bucket_type"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , bucket_type) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_list_t { pub buckets : * mut rc_client_leaderboard_bucket_t , pub num_buckets : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_list_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_list_t > () - 16usize] ; ["Alignment of rc_client_leaderboard_list_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_list_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_list_t::buckets"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_list_t , buckets) - 0usize] ; ["Offset of field: rc_client_leaderboard_list_t::num_buckets"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_list_t , num_buckets) - 8usize] ; } ; pub const RC_CLIENT_LEADERBOARD_BUCKET_UNKNOWN : _bindgen_ty_25 = 0 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_INACTIVE : _bindgen_ty_25 = 1 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_ACTIVE : _bindgen_ty_25 = 2 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_UNSUPPORTED : _bindgen_ty_25 = 3 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_ALL : _bindgen_ty_25 = 4 ; pub const NUM_RC_CLIENT_LEADERBOARD_BUCKETS : _bindgen_ty_25 = 5 ; pub type _bindgen_ty_25 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_LEADERBOARD_LIST_GROUPING_NONE : _bindgen_ty_26 = 0 ; pub const RC_CLIENT_LEADERBOARD_LIST_GROUPING_TRACKING : _bindgen_ty_26 = 1 ; pub type _bindgen_ty_26 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Creates a list of leaderboards matching the specified grouping.\n Returns an allocated list that must be free'd by calling rc_client_destroy_leaderboard_list."] pub fn rc_client_create_leaderboard_list (client : * mut rc_client_t , grouping : :: core :: ffi :: c_int) -> * mut rc_client_leaderboard_list_t ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_get_leaderboard_list."] pub fn rc_client_destroy_leaderboard_list (list : * mut rc_client_leaderboard_list_t) ; } extern "C" { # [doc = " Returns non-zero if the current game has any leaderboards."] pub fn rc_client_has_leaderboards (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_entry_t { pub user : * const :: core :: ffi :: c_char , pub display : [:: core :: ffi :: c_char ; 24usize] , pub submitted : time_t , pub rank : u32 , pub index : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_entry_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_entry_t > () - 48usize] ; ["Alignment of rc_client_leaderboard_entry_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_entry_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_t::user"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , user) - 0usize] ; ["Offset of field: rc_client_leaderboard_entry_t::display"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , display) - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_t::submitted"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , submitted) - 32usize] ; ["Offset of field: rc_client_leaderboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , rank) - 40usize] ; ["Offset of field: rc_client_leaderboard_entry_t::index"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , index) - 44usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_entry_list_t { pub entries : * mut rc_client_leaderboard_entry_t , pub num_entries : u32 , pub total_entries : u32 , pub user_index : i32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_entry_list_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_entry_list_t > () - 24usize] ; ["Alignment of rc_client_leaderboard_entry_list_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_entry_list_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , entries) - 0usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::num_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , num_entries) - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::total_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , total_entries) - 12usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::user_index"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , user_index) - 16usize] ; } ; pub type rc_client_fetch_leaderboard_entries_callback_t = :: core :: option :: Option < unsafe extern "C" fn (result : :: core :: ffi :: c_int , error_message : * const :: core :: ffi :: c_char , list : * mut rc_client_leaderboard_entry_list_t , client : * mut rc_client_t , callback_userdata : * mut :: core :: ffi :: c_void) > ; extern "C" { # [doc = " Fetches a list of leaderboard entries from the server.\n Callback receives an allocated list that must be free'd by calling rc_client_destroy_leaderboard_entry_list."] pub fn rc_client_begin_fetch_leaderboard_entries (client : * mut rc_client_t , leaderboard_id : u32 , first_entry : u32 , count : u32 , callback : rc_client_fetch_leaderboard_entries_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Fetches a list of leaderboard entries from the server containing the logged-in user.\n Callback receives an allocated list that must be free'd by calling rc_client_destroy_leaderboard_entry_list."] pub fn rc_client_begin_fetch_leaderboard_entries_around_user (client : * mut rc_client_t , leaderboard_id : u32 , count : u32 , callback : rc_client_fetch_leaderboard_entries_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Gets the URL for the profile picture of the user associated to a leaderboard entry.\n Returns RC_OK on success."] pub fn rc_client_leaderboard_entry_get_user_image_url (entry : * const rc_client_leaderboard_entry_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_begin_fetch_leaderboard_entries or rc_client_begin_fetch_leaderboard_entries_around_user."] pub fn rc_client_destroy_leaderboard_entry_list (list : * mut rc_client_leaderboard_entry_list_t) ; } # [doc = " Used for scoreboard events. Contains the response from the server when a leaderboard entry is submitted.\n NOTE: This structure is only valid within the event callback. If you want to make use of the data outside\n of the callback, you should create copies of both the top entries and usernames within."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_scoreboard_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub score : [:: core :: ffi :: c_char ; 24usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_scoreboard_entry_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_scoreboard_entry_t > () - 40usize] ; ["Alignment of rc_client_leaderboard_scoreboard_entry_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_scoreboard_entry_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::username"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , username) - 0usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , rank) - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , score) - 12usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_scoreboard_t { pub leaderboard_id : u32 , pub submitted_score : [:: core :: ffi :: c_char ; 24usize] , pub best_score : [:: core :: ffi :: c_char ; 24usize] , pub new_rank : u32 , pub num_entries : u32 , pub top_entries : * mut rc_client_leaderboard_scoreboard_entry_t , pub num_top_entries : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_scoreboard_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_scoreboard_t > () - 80usize] ; ["Alignment of rc_client_leaderboard_scoreboard_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_scoreboard_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::submitted_score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , submitted_score) - 4usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::best_score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , best_score) - 28usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::new_rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , new_rank) - 52usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::num_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , num_entries) - 56usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::top_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , top_entries) - 64usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::num_top_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , num_top_entries) - 72usize] ; } ; extern "C" { # [doc = " Returns non-zero if the current game supports rich presence."] pub fn rc_client_has_rich_presence (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Gets the current rich presence message.\n Returns the number of characters written to buffer."] pub fn rc_client_get_rich_presence_message (client : * mut rc_client_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> usize ; } pub const RC_CLIENT_EVENT_TYPE_NONE : _bindgen_ty_27 = 0 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_TRIGGERED : _bindgen_ty_27 = 1 ; pub const RC_CLIENT_EVENT_LEADERBOARD_STARTED : _bindgen_ty_27 = 2 ; pub const RC_CLIENT_EVENT_LEADERBOARD_FAILED : _bindgen_ty_27 = 3 ; pub const RC_CLIENT_EVENT_LEADERBOARD_SUBMITTED : _bindgen_ty_27 = 4 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_CHALLENGE_INDICATOR_SHOW : _bindgen_ty_27 = 5 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_CHALLENGE_INDICATOR_HIDE : _bindgen_ty_27 = 6 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_SHOW : _bindgen_ty_27 = 7 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_HIDE : _bindgen_ty_27 = 8 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_UPDATE : _bindgen_ty_27 = 9 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_SHOW : _bindgen_ty_27 = 10 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_HIDE : _bindgen_ty_27 = 11 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_UPDATE : _bindgen_ty_27 = 12 ; pub const RC_CLIENT_EVENT_LEADERBOARD_SCOREBOARD : _bindgen_ty_27 = 13 ; pub const RC_CLIENT_EVENT_RESET : _bindgen_ty_27 = 14 ; pub const RC_CLIENT_EVENT_GAME_COMPLETED : _bindgen_ty_27 = 15 ; pub const RC_CLIENT_EVENT_SERVER_ERROR : _bindgen_ty_27 = 16 ; pub const RC_CLIENT_EVENT_DISCONNECTED : _bindgen_ty_27 = 17 ; pub const RC_CLIENT_EVENT_RECONNECTED : _bindgen_ty_27 = 18 ; # [doc = "\\\n| Processing                                                                  |\n\\"] pub type _bindgen_ty_27 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_server_error_t { pub error_message : * const :: core :: ffi :: c_char , pub api : * const :: core :: ffi :: c_char , pub result : :: core :: ffi :: c_int , pub related_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_server_error_t"] [:: core :: mem :: size_of :: < rc_client_server_error_t > () - 24usize] ; ["Alignment of rc_client_server_error_t"] [:: core :: mem :: align_of :: < rc_client_server_error_t > () - 8usize] ; ["Offset of field: rc_client_server_error_t::error_message"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , error_message) - 0usize] ; ["Offset of field: rc_client_server_error_t::api"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , api) - 8usize] ; ["Offset of field: rc_client_server_error_t::result"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , result) - 16usize] ; ["Offset of field: rc_client_server_error_t::related_id"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , related_id) - 20usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_event_t { pub type_ : u32 , pub achievement : * mut rc_client_achievement_t , pub leaderboard : * mut rc_client_leaderboard_t , pub leaderboard_tracker : * mut rc_client_leaderboard_tracker_t , pub leaderboard_scoreboard : * mut rc_client_leaderboard_scoreboard_t , pub server_error : * mut rc_client_server_error_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_event_t"] [:: core :: mem :: size_of :: < rc_client_event_t > () - 48usize] ; ["Alignment of rc_client_event_t"] [:: core :: mem :: align_of :: < rc_client_event_t > () - 8usize] ; ["Offset of field: rc_client_event_t::type_"] [:: core :: mem :: offset_of ! (rc_client_event_t , type_) - 0usize] ; ["Offset of field: rc_client_event_t::achievement"] [:: core :: mem :: offset_of ! (rc_client_event_t , achievement) - 8usize] ; ["Offset of field: rc_client_event_t::leaderboard"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard) - 16usize] ; ["Offset of field: rc_client_event_t::leaderboard_tracker"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard_tracker) - 24usize] ; ["Offset of field: rc_client_event_t::leaderboard_scoreboard"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard_scoreboard) - 32usize] ; ["Offset of field: rc_client_event_t::server_error"] [:: core :: mem :: offset_of ! (rc_client_event_t , server_error) - 40usize] ; } ; # [doc = " Callback used to notify the client when certain events occur."] pub type rc_client_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (event : * const rc_client_event_t , client : * mut rc_client_t) > ; extern "C" { # [doc = " Provides a callback for event handling."] pub fn rc_client_set_event_handler (client : * mut rc_client_t , handler : rc_client_event_handler_t) ; } extern "C" { # [doc = " Provides a callback for reading memory."] pub fn rc_client_set_read_memory_function (client : * mut rc_client_t , handler : rc_client_read_memory_func_t) ; } extern "C" { # [doc = " Determines if there are any active achievements/leaderboards/rich presence that need processing."] pub fn rc_client_is_processing_required (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Processes achievements for the current frame."] pub fn rc_client_do_frame (client : * mut rc_client_t) ; } extern "C" { # [doc = " Processes the periodic queue.\n Called internally by rc_client_do_frame.\n Should be explicitly called if rc_client_do_frame is not being called because emulation is paused."] pub fn rc_client_idle (client : * mut rc_client_t) ; } extern "C" { # [doc = " Determines if a sufficient amount of frames have been processed since the last call to rc_client_can_pause.\n Should not be called unless the client is trying to pause.\n If false is returned, and frames_remaining is not NULL, frames_remaining will be set to the number of frames\n still required before pause is allowed, which can be converted to a time in seconds for displaying to the user."] pub fn rc_client_can_pause (client : * mut rc_client_t , frames_remaining : * mut u32) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Informs the runtime that the emulator has been reset. Will reset all achievements and leaderboards\n to their initial state (includes hiding indicators/trackers)."] pub fn rc_client_reset (client : * mut rc_client_t) ; } extern "C" { # [doc = " Gets the number of bytes needed to serialized the runtime state."] pub fn rc_client_progress_size (client : * mut rc_client_t) -> usize ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator.\n [deprecated] use rc_client_serialize_progress_sized instead"] pub fn rc_client_serialize_progress (client : * mut rc_client_t , buffer : * mut u8) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator."] pub fn rc_client_serialize_progress_sized (client : * mut rc_client_t , buffer : * mut u8 , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Deserializes the runtime state from a buffer.\n Returns RC_OK on success, or an error indicator.\n [deprecated] use rc_client_deserialize_progress_sized instead"] pub fn rc_client_deserialize_progress (client : * mut rc_client_t , serialized : * const u8) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator."] pub fn rc_client_deserialize_progress_sized (client : * mut rc_client_t , serialized : * const u8 , serialized_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __locale_data { pub _address : u8 , } pub type __builtin_va_list = [__va_list_tag ; 1usize] ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __va_list_tag { pub gp_offset : :: core :: ffi :: c_uint , pub fp_offset : :: core :: ffi :: c_uint , pub overflow_arg_area : * mut :: core :: ffi :: c_void , pub reg_save_area : * mut :: core :: ffi :: c_void , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __va_list_tag"] [:: core :: mem :: size_of :: < __va_list_tag > () - 24usize] ; ["Alignment of __va_list_tag"] [:: core :: mem :: align_of :: < __va_list_tag > () - 8usize] ; ["Offset of field: __va_list_tag::gp_offset"] [:: core :: mem :: offset_of ! (__va_list_tag , gp_offset) - 0usize] ; ["Offset of field: __va_list_tag::fp_offset"] [:: core :: mem :: offset_of ! (__va_list_tag , fp_offset) - 4usize] ; ["Offset of field: __va_list_tag::overflow_arg_area"] [:: core :: mem :: offset_of ! (__va_list_tag , overflow_arg_area) - 8usize] ; ["Offset of field: __va_list_tag::reg_save_area"] [:: core :: mem :: offset_of ! (__va_list_tag , reg_save_area) - 16usize] ; } ;
[INFO] [stdout] 3 + # [repr (C)] # [derive (Copy , Clone , Debug , Default , Eq , Hash , Ord , PartialEq , PartialOrd)] pub struct __BindgenBitfieldUnit < Storage > { storage : Storage , } impl < Storage > __BindgenBitfieldUnit < Storage > { # [inline] pub const fn new (storage : Storage) -> Self { Self { storage } } } impl < Storage > __BindgenBitfieldUnit < Storage > where Storage : AsRef < [u8] > + AsMut < [u8] >, { # [inline] pub fn get_bit (& self , index : usize) -> bool { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = self . storage . as_ref () [byte_index] ; let bit_index = if cfg ! (target_endian = "big") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; byte & mask == mask } # [inline] pub fn set_bit (& mut self , index : usize , val : bool) { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = & mut self . storage . as_mut () [byte_index] ; let bit_index = if cfg ! (target_endian = "big") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; if val { * byte |= mask ; } else { * byte &= ! mask ; } } # [inline] pub fn get (& self , bit_offset : usize , bit_width : u8) -> u64 { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; let mut val = 0 ; for i in 0 .. (bit_width as usize) { if self . get_bit (i + bit_offset) { let index = if cfg ! (target_endian = "big") { bit_width as usize - 1 - i } else { i } ; val |= 1 << index ; } } val } # [inline] pub fn set (& mut self , bit_offset : usize , bit_width : u8 , val : u64) { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; for i in 0 .. (bit_width as usize) { let mask = 1 << i ; let val_bit_is_set = val & mask == mask ; let index = if cfg ! (target_endian = "big") { bit_width as usize - 1 - i } else { i } ; self . set_bit (index + bit_offset , val_bit_is_set) ; } } } # [derive (PartialEq , Copy , Clone , Hash , Debug , Default)] # [repr (C)] pub struct __BindgenComplex < T > { pub re : T , pub im : T } pub const _STDINT_H : u32 = 1 ; pub const _FEATURES_H : u32 = 1 ; pub const _DEFAULT_SOURCE : u32 = 1 ; pub const __GLIBC_USE_ISOC2Y : u32 = 0 ; pub const __GLIBC_USE_ISOC23 : u32 = 0 ; pub const __USE_ISOC11 : u32 = 1 ; pub const __USE_ISOC99 : u32 = 1 ; pub const __USE_ISOC95 : u32 = 1 ; pub const __USE_POSIX_IMPLICITLY : u32 = 1 ; pub const _POSIX_SOURCE : u32 = 1 ; pub const _POSIX_C_SOURCE : u32 = 202405 ; pub const __USE_POSIX : u32 = 1 ; pub const __USE_POSIX2 : u32 = 1 ; pub const __USE_POSIX199309 : u32 = 1 ; pub const __USE_POSIX199506 : u32 = 1 ; pub const __USE_XOPEN2K : u32 = 1 ; pub const __USE_XOPEN2K8 : u32 = 1 ; pub const _ATFILE_SOURCE : u32 = 1 ; pub const __USE_XOPEN2K24 : u32 = 1 ; pub const __WORDSIZE : u32 = 64 ; pub const __WORDSIZE_TIME64_COMPAT32 : u32 = 1 ; pub const __SYSCALL_WORDSIZE : u32 = 64 ; pub const __TIMESIZE : u32 = 64 ; pub const __USE_TIME_BITS64 : u32 = 1 ; pub const __USE_MISC : u32 = 1 ; 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_C23_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 ; pub const __STDC_IEC_559_COMPLEX__ : u32 = 1 ; 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 = 43 ; pub const _SYS_CDEFS_H : u32 = 1 ; pub const __glibc_c99_flexarr_available : u32 = 1 ; pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI : u32 = 0 ; pub const __HAVE_GENERIC_SELECTION : u32 = 1 ; pub const __GLIBC_USE_LIB_EXT2 : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT_C23 : u32 = 0 ; 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_C23 : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_TYPES_EXT : u32 = 0 ; pub const _BITS_TYPES_H : u32 = 1 ; pub const _BITS_TYPESIZES_H : u32 = 1 ; pub const __OFF_T_MATCHES_OFF64_T : u32 = 1 ; pub const __INO_T_MATCHES_INO64_T : u32 = 1 ; pub const __RLIM_T_MATCHES_RLIM64_T : u32 = 1 ; pub const __STATFS_MATCHES_STATFS64 : u32 = 1 ; pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 : u32 = 1 ; pub const __FD_SETSIZE : u32 = 1024 ; pub const _BITS_TIME64_H : u32 = 1 ; pub const _BITS_WCHAR_H : u32 = 1 ; pub const _BITS_STDINT_INTN_H : u32 = 1 ; pub const _BITS_STDINT_UINTN_H : u32 = 1 ; pub const _BITS_STDINT_LEAST_H : u32 = 1 ; pub const INT8_MIN : i32 = - 128 ; pub const INT16_MIN : i32 = - 32768 ; pub const INT32_MIN : i32 = - 2147483648 ; pub const INT8_MAX : u32 = 127 ; pub const INT16_MAX : u32 = 32767 ; pub const INT32_MAX : u32 = 2147483647 ; pub const UINT8_MAX : u32 = 255 ; pub const UINT16_MAX : u32 = 65535 ; pub const UINT32_MAX : u32 = 4294967295 ; pub const INT_LEAST8_MIN : i32 = - 128 ; pub const INT_LEAST16_MIN : i32 = - 32768 ; pub const INT_LEAST32_MIN : i32 = - 2147483648 ; pub const INT_LEAST8_MAX : u32 = 127 ; pub const INT_LEAST16_MAX : u32 = 32767 ; pub const INT_LEAST32_MAX : u32 = 2147483647 ; pub const UINT_LEAST8_MAX : u32 = 255 ; pub const UINT_LEAST16_MAX : u32 = 65535 ; pub const UINT_LEAST32_MAX : u32 = 4294967295 ; pub const INT_FAST8_MIN : i32 = - 128 ; pub const INT_FAST16_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST32_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST8_MAX : u32 = 127 ; pub const INT_FAST16_MAX : u64 = 9223372036854775807 ; pub const INT_FAST32_MAX : u64 = 9223372036854775807 ; pub const UINT_FAST8_MAX : u32 = 255 ; pub const UINT_FAST16_MAX : i32 = - 1 ; pub const UINT_FAST32_MAX : i32 = - 1 ; pub const INTPTR_MIN : i64 = - 9223372036854775808 ; pub const INTPTR_MAX : u64 = 9223372036854775807 ; pub const UINTPTR_MAX : i32 = - 1 ; pub const PTRDIFF_MIN : i64 = - 9223372036854775808 ; pub const PTRDIFF_MAX : u64 = 9223372036854775807 ; pub const SIG_ATOMIC_MIN : i32 = - 2147483648 ; pub const SIG_ATOMIC_MAX : u32 = 2147483647 ; pub const SIZE_MAX : i32 = - 1 ; pub const WINT_MIN : u32 = 0 ; pub const WINT_MAX : u32 = 4294967295 ; pub const RC_VALUE_MAX_NAME_LENGTH : u32 = 15 ; pub const _TIME_H : u32 = 1 ; pub const _BITS_TIME_H : u32 = 1 ; pub const CLOCK_REALTIME : u32 = 0 ; pub const CLOCK_MONOTONIC : u32 = 1 ; pub const CLOCK_PROCESS_CPUTIME_ID : u32 = 2 ; pub const CLOCK_THREAD_CPUTIME_ID : u32 = 3 ; pub const CLOCK_MONOTONIC_RAW : u32 = 4 ; pub const CLOCK_REALTIME_COARSE : u32 = 5 ; pub const CLOCK_MONOTONIC_COARSE : u32 = 6 ; pub const CLOCK_BOOTTIME : u32 = 7 ; pub const CLOCK_REALTIME_ALARM : u32 = 8 ; pub const CLOCK_BOOTTIME_ALARM : u32 = 9 ; pub const CLOCK_TAI : u32 = 11 ; pub const TIMER_ABSTIME : u32 = 1 ; pub const __clock_t_defined : u32 = 1 ; pub const __time_t_defined : u32 = 1 ; pub const __struct_tm_defined : u32 = 1 ; pub const _STRUCT_TIMESPEC : u32 = 1 ; pub const _BITS_ENDIAN_H : u32 = 1 ; pub const __LITTLE_ENDIAN : u32 = 1234 ; pub const __BIG_ENDIAN : u32 = 4321 ; pub const __PDP_ENDIAN : u32 = 3412 ; pub const _BITS_ENDIANNESS_H : u32 = 1 ; pub const __BYTE_ORDER : u32 = 1234 ; pub const __FLOAT_WORD_ORDER : u32 = 1234 ; pub const __clockid_t_defined : u32 = 1 ; pub const __timer_t_defined : u32 = 1 ; pub const __itimerspec_defined : u32 = 1 ; pub const _BITS_TYPES_LOCALE_T_H : u32 = 1 ; pub const _BITS_TYPES___LOCALE_T_H : u32 = 1 ; pub const TIME_UTC : u32 = 1 ; pub const _STDIO_H : u32 = 1 ; pub const _____fpos_t_defined : u32 = 1 ; pub const ____mbstate_t_defined : u32 = 1 ; pub const _____fpos64_t_defined : u32 = 1 ; pub const ____FILE_defined : u32 = 1 ; pub const __FILE_defined : u32 = 1 ; 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 ; pub const BUFSIZ : u32 = 8192 ; pub const EOF : i32 = - 1 ; 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 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 ; pub const __HAVE_FLOAT128 : u32 = 1 ; pub const __HAVE_DISTINCT_FLOAT128 : u32 = 1 ; pub const __HAVE_FLOAT64X : u32 = 1 ; pub const __HAVE_FLOAT64X_LONG_DOUBLE : u32 = 1 ; pub const __HAVE_FLOAT16 : u32 = 0 ; pub const __HAVE_FLOAT32 : u32 = 1 ; pub const __HAVE_FLOAT64 : u32 = 1 ; pub const __HAVE_FLOAT32X : u32 = 1 ; pub const __HAVE_FLOAT128X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT16 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT32 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT64 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT32X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT64X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT128X : u32 = 0 ; pub const __HAVE_FLOATN_NOT_TYPEDEF : u32 = 0 ; pub const RC_IMAGE_TYPE_GAME : u32 = 1 ; pub const RC_IMAGE_TYPE_ACHIEVEMENT : u32 = 2 ; pub const RC_IMAGE_TYPE_ACHIEVEMENT_LOCKED : u32 = 3 ; pub const RC_IMAGE_TYPE_USER : u32 = 4 ; pub const RC_ACHIEVEMENT_CATEGORY_CORE : u32 = 3 ; pub const RC_ACHIEVEMENT_CATEGORY_UNOFFICIAL : u32 = 5 ; pub const RC_ACHIEVEMENT_TYPE_STANDARD : u32 = 0 ; pub const RC_ACHIEVEMENT_TYPE_MISSABLE : u32 = 1 ; pub const RC_ACHIEVEMENT_TYPE_PROGRESSION : u32 = 2 ; pub const RC_ACHIEVEMENT_TYPE_WIN : u32 = 3 ; pub const RC_CLIENT_LEADERBOARD_DISPLAY_SIZE : u32 = 24 ; pub const RC_OK : _bindgen_ty_1 = 0 ; pub const RC_INVALID_LUA_OPERAND : _bindgen_ty_1 = - 1 ; pub const RC_INVALID_MEMORY_OPERAND : _bindgen_ty_1 = - 2 ; pub const RC_INVALID_CONST_OPERAND : _bindgen_ty_1 = - 3 ; pub const RC_INVALID_FP_OPERAND : _bindgen_ty_1 = - 4 ; pub const RC_INVALID_CONDITION_TYPE : _bindgen_ty_1 = - 5 ; pub const RC_INVALID_OPERATOR : _bindgen_ty_1 = - 6 ; pub const RC_INVALID_REQUIRED_HITS : _bindgen_ty_1 = - 7 ; pub const RC_DUPLICATED_START : _bindgen_ty_1 = - 8 ; pub const RC_DUPLICATED_CANCEL : _bindgen_ty_1 = - 9 ; pub const RC_DUPLICATED_SUBMIT : _bindgen_ty_1 = - 10 ; pub const RC_DUPLICATED_VALUE : _bindgen_ty_1 = - 11 ; pub const RC_DUPLICATED_PROGRESS : _bindgen_ty_1 = - 12 ; pub const RC_MISSING_START : _bindgen_ty_1 = - 13 ; pub const RC_MISSING_CANCEL : _bindgen_ty_1 = - 14 ; pub const RC_MISSING_SUBMIT : _bindgen_ty_1 = - 15 ; pub const RC_MISSING_VALUE : _bindgen_ty_1 = - 16 ; pub const RC_INVALID_LBOARD_FIELD : _bindgen_ty_1 = - 17 ; pub const RC_MISSING_DISPLAY_STRING : _bindgen_ty_1 = - 18 ; pub const RC_OUT_OF_MEMORY : _bindgen_ty_1 = - 19 ; pub const RC_INVALID_VALUE_FLAG : _bindgen_ty_1 = - 20 ; pub const RC_MISSING_VALUE_MEASURED : _bindgen_ty_1 = - 21 ; pub const RC_MULTIPLE_MEASURED : _bindgen_ty_1 = - 22 ; pub const RC_INVALID_MEASURED_TARGET : _bindgen_ty_1 = - 23 ; pub const RC_INVALID_COMPARISON : _bindgen_ty_1 = - 24 ; pub const RC_INVALID_STATE : _bindgen_ty_1 = - 25 ; pub const RC_INVALID_JSON : _bindgen_ty_1 = - 26 ; pub const RC_API_FAILURE : _bindgen_ty_1 = - 27 ; pub const RC_LOGIN_REQUIRED : _bindgen_ty_1 = - 28 ; pub const RC_NO_GAME_LOADED : _bindgen_ty_1 = - 29 ; pub const RC_HARDCORE_DISABLED : _bindgen_ty_1 = - 30 ; pub const RC_ABORTED : _bindgen_ty_1 = - 31 ; pub const RC_NO_RESPONSE : _bindgen_ty_1 = - 32 ; pub const RC_ACCESS_DENIED : _bindgen_ty_1 = - 33 ; pub const RC_INVALID_CREDENTIALS : _bindgen_ty_1 = - 34 ; pub const RC_EXPIRED_TOKEN : _bindgen_ty_1 = - 35 ; pub const RC_INSUFFICIENT_BUFFER : _bindgen_ty_1 = - 36 ; pub const RC_INVALID_VARIABLE_NAME : _bindgen_ty_1 = - 37 ; pub const RC_UNKNOWN_VARIABLE_NAME : _bindgen_ty_1 = - 38 ; # [doc = "\\\n| Return values                                                               |\n\\"] pub type _bindgen_ty_1 = :: core :: ffi :: c_int ; extern "C" { pub fn rc_error_str (ret : :: core :: ffi :: c_int) -> * const :: core :: ffi :: c_char ; } pub type wchar_t = :: core :: ffi :: c_int ; # [repr (C)] # [repr (align (16))] # [derive (Debug , Copy , Clone)] pub struct max_align_t { pub __clang_max_align_nonce1 : :: core :: ffi :: c_longlong , pub __bindgen_padding_0 : u64 , pub __clang_max_align_nonce2 : u128 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of max_align_t"] [:: core :: mem :: size_of :: < max_align_t > () - 32usize] ; ["Alignment of max_align_t"] [:: core :: mem :: align_of :: < max_align_t > () - 16usize] ; ["Offset of field: max_align_t::__clang_max_align_nonce1"] [:: core :: mem :: offset_of ! (max_align_t , __clang_max_align_nonce1) - 0usize] ; ["Offset of field: max_align_t::__clang_max_align_nonce2"] [:: core :: mem :: offset_of ! (max_align_t , __clang_max_align_nonce2) - 16usize] ; } ; pub type __u_char = :: core :: ffi :: c_uchar ; pub type __u_short = :: core :: ffi :: c_ushort ; pub type __u_int = :: core :: ffi :: c_uint ; pub type __u_long = :: core :: ffi :: c_ulong ; pub type __int8_t = :: core :: ffi :: c_schar ; pub type __uint8_t = :: core :: ffi :: c_uchar ; pub type __int16_t = :: core :: ffi :: c_short ; pub type __uint16_t = :: core :: ffi :: c_ushort ; pub type __int32_t = :: core :: ffi :: c_int ; pub type __uint32_t = :: core :: ffi :: c_uint ; pub type __int64_t = :: core :: ffi :: c_long ; pub type __uint64_t = :: core :: ffi :: c_ulong ; pub type __int_least8_t = __int8_t ; pub type __uint_least8_t = __uint8_t ; pub type __int_least16_t = __int16_t ; pub type __uint_least16_t = __uint16_t ; pub type __int_least32_t = __int32_t ; pub type __uint_least32_t = __uint32_t ; pub type __int_least64_t = __int64_t ; pub type __uint_least64_t = __uint64_t ; pub type __quad_t = :: core :: ffi :: c_long ; pub type __u_quad_t = :: core :: ffi :: c_ulong ; pub type __intmax_t = :: core :: ffi :: c_long ; pub type __uintmax_t = :: core :: ffi :: c_ulong ; pub type __dev_t = :: core :: ffi :: c_ulong ; pub type __uid_t = :: core :: ffi :: c_uint ; pub type __gid_t = :: core :: ffi :: c_uint ; pub type __ino_t = :: core :: ffi :: c_ulong ; pub type __ino64_t = :: core :: ffi :: c_ulong ; pub type __mode_t = :: core :: ffi :: c_uint ; pub type __nlink_t = :: core :: ffi :: c_ulong ; pub type __off_t = :: core :: ffi :: c_long ; pub type __off64_t = :: core :: ffi :: c_long ; pub type __pid_t = :: core :: ffi :: c_int ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __fsid_t { pub __val : [:: core :: ffi :: c_int ; 2usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __fsid_t"] [:: core :: mem :: size_of :: < __fsid_t > () - 8usize] ; ["Alignment of __fsid_t"] [:: core :: mem :: align_of :: < __fsid_t > () - 4usize] ; ["Offset of field: __fsid_t::__val"] [:: core :: mem :: offset_of ! (__fsid_t , __val) - 0usize] ; } ; pub type __clock_t = :: core :: ffi :: c_long ; pub type __rlim_t = :: core :: ffi :: c_ulong ; pub type __rlim64_t = :: core :: ffi :: c_ulong ; pub type __id_t = :: core :: ffi :: c_uint ; pub type __time_t = :: core :: ffi :: c_long ; pub type __useconds_t = :: core :: ffi :: c_uint ; pub type __suseconds_t = :: core :: ffi :: c_long ; pub type __suseconds64_t = :: core :: ffi :: c_long ; pub type __daddr_t = :: core :: ffi :: c_int ; pub type __key_t = :: core :: ffi :: c_int ; pub type __clockid_t = :: core :: ffi :: c_int ; pub type __timer_t = * mut :: core :: ffi :: c_void ; pub type __blksize_t = :: core :: ffi :: c_long ; pub type __blkcnt_t = :: core :: ffi :: c_long ; pub type __blkcnt64_t = :: core :: ffi :: c_long ; pub type __fsblkcnt_t = :: core :: ffi :: c_ulong ; pub type __fsblkcnt64_t = :: core :: ffi :: c_ulong ; pub type __fsfilcnt_t = :: core :: ffi :: c_ulong ; pub type __fsfilcnt64_t = :: core :: ffi :: c_ulong ; pub type __fsword_t = :: core :: ffi :: c_long ; pub type __ssize_t = :: core :: ffi :: c_long ; pub type __syscall_slong_t = :: core :: ffi :: c_long ; pub type __syscall_ulong_t = :: core :: ffi :: c_ulong ; pub type __loff_t = __off64_t ; pub type __caddr_t = * mut :: core :: ffi :: c_char ; pub type __intptr_t = :: core :: ffi :: c_long ; pub type __socklen_t = :: core :: ffi :: c_uint ; pub type __sig_atomic_t = :: core :: ffi :: c_int ; pub type int_least8_t = __int_least8_t ; pub type int_least16_t = __int_least16_t ; pub type int_least32_t = __int_least32_t ; pub type int_least64_t = __int_least64_t ; pub type uint_least8_t = __uint_least8_t ; pub type uint_least16_t = __uint_least16_t ; pub type uint_least32_t = __uint_least32_t ; pub type uint_least64_t = __uint_least64_t ; pub type int_fast8_t = :: core :: ffi :: c_schar ; pub type int_fast16_t = :: core :: ffi :: c_long ; pub type int_fast32_t = :: core :: ffi :: c_long ; pub type int_fast64_t = :: core :: ffi :: c_long ; pub type uint_fast8_t = :: core :: ffi :: c_uchar ; pub type uint_fast16_t = :: core :: ffi :: c_ulong ; pub type uint_fast32_t = :: core :: ffi :: c_ulong ; pub type uint_fast64_t = :: core :: ffi :: c_ulong ; pub type intmax_t = __intmax_t ; pub type uintmax_t = __uintmax_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct lua_State { _unused : [u8 ; 0] , } # [doc = " Callback used to read num_bytes bytes from memory starting at address. If\n num_bytes is greater than 1, the value is read in little-endian from\n memory."] pub type rc_peek_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , num_bytes : u32 , ud : * mut :: core :: ffi :: c_void) -> u32 > ; pub const RC_MEMSIZE_8_BITS : _bindgen_ty_2 = 0 ; pub const RC_MEMSIZE_16_BITS : _bindgen_ty_2 = 1 ; pub const RC_MEMSIZE_24_BITS : _bindgen_ty_2 = 2 ; pub const RC_MEMSIZE_32_BITS : _bindgen_ty_2 = 3 ; pub const RC_MEMSIZE_LOW : _bindgen_ty_2 = 4 ; pub const RC_MEMSIZE_HIGH : _bindgen_ty_2 = 5 ; pub const RC_MEMSIZE_BIT_0 : _bindgen_ty_2 = 6 ; pub const RC_MEMSIZE_BIT_1 : _bindgen_ty_2 = 7 ; pub const RC_MEMSIZE_BIT_2 : _bindgen_ty_2 = 8 ; pub const RC_MEMSIZE_BIT_3 : _bindgen_ty_2 = 9 ; pub const RC_MEMSIZE_BIT_4 : _bindgen_ty_2 = 10 ; pub const RC_MEMSIZE_BIT_5 : _bindgen_ty_2 = 11 ; pub const RC_MEMSIZE_BIT_6 : _bindgen_ty_2 = 12 ; pub const RC_MEMSIZE_BIT_7 : _bindgen_ty_2 = 13 ; pub const RC_MEMSIZE_BITCOUNT : _bindgen_ty_2 = 14 ; pub const RC_MEMSIZE_16_BITS_BE : _bindgen_ty_2 = 15 ; pub const RC_MEMSIZE_24_BITS_BE : _bindgen_ty_2 = 16 ; pub const RC_MEMSIZE_32_BITS_BE : _bindgen_ty_2 = 17 ; pub const RC_MEMSIZE_FLOAT : _bindgen_ty_2 = 18 ; pub const RC_MEMSIZE_MBF32 : _bindgen_ty_2 = 19 ; pub const RC_MEMSIZE_MBF32_LE : _bindgen_ty_2 = 20 ; pub const RC_MEMSIZE_FLOAT_BE : _bindgen_ty_2 = 21 ; pub const RC_MEMSIZE_DOUBLE32 : _bindgen_ty_2 = 22 ; pub const RC_MEMSIZE_DOUBLE32_BE : _bindgen_ty_2 = 23 ; pub const RC_MEMSIZE_VARIABLE : _bindgen_ty_2 = 24 ; # [doc = "\\\n| Memory References                                                           |\n\\"] pub type _bindgen_ty_2 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memref_value_t { pub value : u32 , pub prior : u32 , pub size : u8 , pub changed : u8 , pub type_ : u8 , pub is_indirect : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memref_value_t"] [:: core :: mem :: size_of :: < rc_memref_value_t > () - 12usize] ; ["Alignment of rc_memref_value_t"] [:: core :: mem :: align_of :: < rc_memref_value_t > () - 4usize] ; ["Offset of field: rc_memref_value_t::value"] [:: core :: mem :: offset_of ! (rc_memref_value_t , value) - 0usize] ; ["Offset of field: rc_memref_value_t::prior"] [:: core :: mem :: offset_of ! (rc_memref_value_t , prior) - 4usize] ; ["Offset of field: rc_memref_value_t::size"] [:: core :: mem :: offset_of ! (rc_memref_value_t , size) - 8usize] ; ["Offset of field: rc_memref_value_t::changed"] [:: core :: mem :: offset_of ! (rc_memref_value_t , changed) - 9usize] ; ["Offset of field: rc_memref_value_t::type_"] [:: core :: mem :: offset_of ! (rc_memref_value_t , type_) - 10usize] ; ["Offset of field: rc_memref_value_t::is_indirect"] [:: core :: mem :: offset_of ! (rc_memref_value_t , is_indirect) - 11usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memref_t { pub value : rc_memref_value_t , pub address : u32 , pub next : * mut rc_memref_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memref_t"] [:: core :: mem :: size_of :: < rc_memref_t > () - 24usize] ; ["Alignment of rc_memref_t"] [:: core :: mem :: align_of :: < rc_memref_t > () - 8usize] ; ["Offset of field: rc_memref_t::value"] [:: core :: mem :: offset_of ! (rc_memref_t , value) - 0usize] ; ["Offset of field: rc_memref_t::address"] [:: core :: mem :: offset_of ! (rc_memref_t , address) - 12usize] ; ["Offset of field: rc_memref_t::next"] [:: core :: mem :: offset_of ! (rc_memref_t , next) - 16usize] ; } ; pub const RC_OPERAND_ADDRESS : _bindgen_ty_3 = 0 ; pub const RC_OPERAND_DELTA : _bindgen_ty_3 = 1 ; pub const RC_OPERAND_CONST : _bindgen_ty_3 = 2 ; pub const RC_OPERAND_FP : _bindgen_ty_3 = 3 ; pub const RC_OPERAND_LUA : _bindgen_ty_3 = 4 ; pub const RC_OPERAND_PRIOR : _bindgen_ty_3 = 5 ; pub const RC_OPERAND_BCD : _bindgen_ty_3 = 6 ; pub const RC_OPERAND_INVERTED : _bindgen_ty_3 = 7 ; pub const RC_OPERAND_RECALL : _bindgen_ty_3 = 8 ; # [doc = "\\\n| Operands                                                                    |\n\\"] pub type _bindgen_ty_3 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Copy , Clone)] pub struct rc_operand_t { pub value : rc_operand_t__bindgen_ty_1 , pub type_ : u8 , pub size : u8 , } # [repr (C)] # [derive (Copy , Clone)] pub union rc_operand_t__bindgen_ty_1 { pub memref : * mut rc_memref_t , pub num : u32 , pub dbl : f64 , pub luafunc : :: core :: ffi :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_operand_t__bindgen_ty_1"] [:: core :: mem :: size_of :: < rc_operand_t__bindgen_ty_1 > () - 8usize] ; ["Alignment of rc_operand_t__bindgen_ty_1"] [:: core :: mem :: align_of :: < rc_operand_t__bindgen_ty_1 > () - 8usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::memref"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , memref) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::num"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , num) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::dbl"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , dbl) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::luafunc"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , luafunc) - 0usize] ; } ; impl :: core :: fmt :: Debug for rc_operand_t__bindgen_ty_1 { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_operand_t__bindgen_ty_1 {{ union }}") } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_operand_t"] [:: core :: mem :: size_of :: < rc_operand_t > () - 16usize] ; ["Alignment of rc_operand_t"] [:: core :: mem :: align_of :: < rc_operand_t > () - 8usize] ; ["Offset of field: rc_operand_t::value"] [:: core :: mem :: offset_of ! (rc_operand_t , value) - 0usize] ; ["Offset of field: rc_operand_t::type_"] [:: core :: mem :: offset_of ! (rc_operand_t , type_) - 8usize] ; ["Offset of field: rc_operand_t::size"] [:: core :: mem :: offset_of ! (rc_operand_t , size) - 9usize] ; } ; impl :: core :: fmt :: Debug for rc_operand_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_operand_t {{ value: {:?}, type: {:?}, size: {:?} }}" , self . value , self . type_ , self . size) } } extern "C" { pub fn rc_operand_is_memref (operand : * const rc_operand_t) -> :: core :: ffi :: c_int ; } pub const RC_CONDITION_STANDARD : _bindgen_ty_4 = 0 ; pub const RC_CONDITION_PAUSE_IF : _bindgen_ty_4 = 1 ; pub const RC_CONDITION_RESET_IF : _bindgen_ty_4 = 2 ; pub const RC_CONDITION_MEASURED_IF : _bindgen_ty_4 = 3 ; pub const RC_CONDITION_TRIGGER : _bindgen_ty_4 = 4 ; pub const RC_CONDITION_MEASURED : _bindgen_ty_4 = 5 ; pub const RC_CONDITION_ADD_SOURCE : _bindgen_ty_4 = 6 ; pub const RC_CONDITION_SUB_SOURCE : _bindgen_ty_4 = 7 ; pub const RC_CONDITION_ADD_ADDRESS : _bindgen_ty_4 = 8 ; pub const RC_CONDITION_REMEMBER : _bindgen_ty_4 = 9 ; pub const RC_CONDITION_ADD_HITS : _bindgen_ty_4 = 10 ; pub const RC_CONDITION_SUB_HITS : _bindgen_ty_4 = 11 ; pub const RC_CONDITION_RESET_NEXT_IF : _bindgen_ty_4 = 12 ; pub const RC_CONDITION_AND_NEXT : _bindgen_ty_4 = 13 ; pub const RC_CONDITION_OR_NEXT : _bindgen_ty_4 = 14 ; # [doc = "\\\n| Conditions                                                                  |\n\\"] pub type _bindgen_ty_4 = :: core :: ffi :: c_uint ; pub const RC_OPERATOR_EQ : _bindgen_ty_5 = 0 ; pub const RC_OPERATOR_LT : _bindgen_ty_5 = 1 ; pub const RC_OPERATOR_LE : _bindgen_ty_5 = 2 ; pub const RC_OPERATOR_GT : _bindgen_ty_5 = 3 ; pub const RC_OPERATOR_GE : _bindgen_ty_5 = 4 ; pub const RC_OPERATOR_NE : _bindgen_ty_5 = 5 ; pub const RC_OPERATOR_NONE : _bindgen_ty_5 = 6 ; pub const RC_OPERATOR_MULT : _bindgen_ty_5 = 7 ; pub const RC_OPERATOR_DIV : _bindgen_ty_5 = 8 ; pub const RC_OPERATOR_AND : _bindgen_ty_5 = 9 ; pub const RC_OPERATOR_XOR : _bindgen_ty_5 = 10 ; pub const RC_OPERATOR_MOD : _bindgen_ty_5 = 11 ; pub const RC_OPERATOR_ADD : _bindgen_ty_5 = 12 ; pub const RC_OPERATOR_SUB : _bindgen_ty_5 = 13 ; pub type _bindgen_ty_5 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Copy , Clone)] pub struct rc_condition_t { pub operand1 : rc_operand_t , pub operand2 : rc_operand_t , pub required_hits : u32 , pub current_hits : u32 , pub next : * mut rc_condition_t , pub type_ : u8 , pub oper : u8 , pub pause : u8 , pub is_true : u8 , pub optimized_comparator : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_condition_t"] [:: core :: mem :: size_of :: < rc_condition_t > () - 56usize] ; ["Alignment of rc_condition_t"] [:: core :: mem :: align_of :: < rc_condition_t > () - 8usize] ; ["Offset of field: rc_condition_t::operand1"] [:: core :: mem :: offset_of ! (rc_condition_t , operand1) - 0usize] ; ["Offset of field: rc_condition_t::operand2"] [:: core :: mem :: offset_of ! (rc_condition_t , operand2) - 16usize] ; ["Offset of field: rc_condition_t::required_hits"] [:: core :: mem :: offset_of ! (rc_condition_t , required_hits) - 32usize] ; ["Offset of field: rc_condition_t::current_hits"] [:: core :: mem :: offset_of ! (rc_condition_t , current_hits) - 36usize] ; ["Offset of field: rc_condition_t::next"] [:: core :: mem :: offset_of ! (rc_condition_t , next) - 40usize] ; ["Offset of field: rc_condition_t::type_"] [:: core :: mem :: offset_of ! (rc_condition_t , type_) - 48usize] ; ["Offset of field: rc_condition_t::oper"] [:: core :: mem :: offset_of ! (rc_condition_t , oper) - 49usize] ; ["Offset of field: rc_condition_t::pause"] [:: core :: mem :: offset_of ! (rc_condition_t , pause) - 50usize] ; ["Offset of field: rc_condition_t::is_true"] [:: core :: mem :: offset_of ! (rc_condition_t , is_true) - 51usize] ; ["Offset of field: rc_condition_t::optimized_comparator"] [:: core :: mem :: offset_of ! (rc_condition_t , optimized_comparator) - 52usize] ; } ; impl :: core :: fmt :: Debug for rc_condition_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_condition_t {{ operand1: {:?}, operand2: {:?}, required_hits: {:?}, current_hits: {:?}, next: {:?}, type: {:?}, oper: {:?}, pause: {:?}, is_true: {:?}, optimized_comparator: {:?} }}" , self . operand1 , self . operand2 , self . required_hits , self . current_hits , self . next , self . type_ , self . oper , self . pause , self . is_true , self . optimized_comparator) } } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_condset_t { pub next : * mut rc_condset_t , pub conditions : * mut rc_condition_t , pub has_pause : u8 , pub is_paused : u8 , pub has_indirect_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_condset_t"] [:: core :: mem :: size_of :: < rc_condset_t > () - 24usize] ; ["Alignment of rc_condset_t"] [:: core :: mem :: align_of :: < rc_condset_t > () - 8usize] ; ["Offset of field: rc_condset_t::next"] [:: core :: mem :: offset_of ! (rc_condset_t , next) - 0usize] ; ["Offset of field: rc_condset_t::conditions"] [:: core :: mem :: offset_of ! (rc_condset_t , conditions) - 8usize] ; ["Offset of field: rc_condset_t::has_pause"] [:: core :: mem :: offset_of ! (rc_condset_t , has_pause) - 16usize] ; ["Offset of field: rc_condset_t::is_paused"] [:: core :: mem :: offset_of ! (rc_condset_t , is_paused) - 17usize] ; ["Offset of field: rc_condset_t::has_indirect_memrefs"] [:: core :: mem :: offset_of ! (rc_condset_t , has_indirect_memrefs) - 18usize] ; } ; pub const RC_TRIGGER_STATE_INACTIVE : _bindgen_ty_6 = 0 ; pub const RC_TRIGGER_STATE_WAITING : _bindgen_ty_6 = 1 ; pub const RC_TRIGGER_STATE_ACTIVE : _bindgen_ty_6 = 2 ; pub const RC_TRIGGER_STATE_PAUSED : _bindgen_ty_6 = 3 ; pub const RC_TRIGGER_STATE_RESET : _bindgen_ty_6 = 4 ; pub const RC_TRIGGER_STATE_TRIGGERED : _bindgen_ty_6 = 5 ; pub const RC_TRIGGER_STATE_PRIMED : _bindgen_ty_6 = 6 ; pub const RC_TRIGGER_STATE_DISABLED : _bindgen_ty_6 = 7 ; # [doc = "\\\n| Trigger                                                                     |\n\\"] pub type _bindgen_ty_6 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_trigger_t { pub requirement : * mut rc_condset_t , pub alternative : * mut rc_condset_t , pub memrefs : * mut rc_memref_t , pub measured_value : u32 , pub measured_target : u32 , pub state : u8 , pub has_hits : u8 , pub has_required_hits : u8 , pub measured_as_percent : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_trigger_t"] [:: core :: mem :: size_of :: < rc_trigger_t > () - 40usize] ; ["Alignment of rc_trigger_t"] [:: core :: mem :: align_of :: < rc_trigger_t > () - 8usize] ; ["Offset of field: rc_trigger_t::requirement"] [:: core :: mem :: offset_of ! (rc_trigger_t , requirement) - 0usize] ; ["Offset of field: rc_trigger_t::alternative"] [:: core :: mem :: offset_of ! (rc_trigger_t , alternative) - 8usize] ; ["Offset of field: rc_trigger_t::memrefs"] [:: core :: mem :: offset_of ! (rc_trigger_t , memrefs) - 16usize] ; ["Offset of field: rc_trigger_t::measured_value"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_value) - 24usize] ; ["Offset of field: rc_trigger_t::measured_target"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_target) - 28usize] ; ["Offset of field: rc_trigger_t::state"] [:: core :: mem :: offset_of ! (rc_trigger_t , state) - 32usize] ; ["Offset of field: rc_trigger_t::has_hits"] [:: core :: mem :: offset_of ! (rc_trigger_t , has_hits) - 33usize] ; ["Offset of field: rc_trigger_t::has_required_hits"] [:: core :: mem :: offset_of ! (rc_trigger_t , has_required_hits) - 34usize] ; ["Offset of field: rc_trigger_t::measured_as_percent"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_as_percent) - 35usize] ; } ; extern "C" { pub fn rc_trigger_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_trigger (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_trigger_t ; } extern "C" { pub fn rc_evaluate_trigger (trigger : * mut rc_trigger_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_test_trigger (trigger : * mut rc_trigger_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_trigger (self_ : * mut rc_trigger_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_value_t { pub value : rc_memref_value_t , pub conditions : * mut rc_condset_t , pub memrefs : * mut rc_memref_t , pub name : * const :: core :: ffi :: c_char , pub next : * mut rc_value_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_value_t"] [:: core :: mem :: size_of :: < rc_value_t > () - 48usize] ; ["Alignment of rc_value_t"] [:: core :: mem :: align_of :: < rc_value_t > () - 8usize] ; ["Offset of field: rc_value_t::value"] [:: core :: mem :: offset_of ! (rc_value_t , value) - 0usize] ; ["Offset of field: rc_value_t::conditions"] [:: core :: mem :: offset_of ! (rc_value_t , conditions) - 16usize] ; ["Offset of field: rc_value_t::memrefs"] [:: core :: mem :: offset_of ! (rc_value_t , memrefs) - 24usize] ; ["Offset of field: rc_value_t::name"] [:: core :: mem :: offset_of ! (rc_value_t , name) - 32usize] ; ["Offset of field: rc_value_t::next"] [:: core :: mem :: offset_of ! (rc_value_t , next) - 40usize] ; } ; extern "C" { pub fn rc_value_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_value (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_value_t ; } extern "C" { pub fn rc_evaluate_value (value : * mut rc_value_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> i32 ; } pub const RC_LBOARD_STATE_INACTIVE : _bindgen_ty_7 = 0 ; pub const RC_LBOARD_STATE_WAITING : _bindgen_ty_7 = 1 ; pub const RC_LBOARD_STATE_ACTIVE : _bindgen_ty_7 = 2 ; pub const RC_LBOARD_STATE_STARTED : _bindgen_ty_7 = 3 ; pub const RC_LBOARD_STATE_CANCELED : _bindgen_ty_7 = 4 ; pub const RC_LBOARD_STATE_TRIGGERED : _bindgen_ty_7 = 5 ; pub const RC_LBOARD_STATE_DISABLED : _bindgen_ty_7 = 6 ; # [doc = "\\\n| Leaderboards                                                                |\n\\"] pub type _bindgen_ty_7 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_lboard_t { pub start : rc_trigger_t , pub submit : rc_trigger_t , pub cancel : rc_trigger_t , pub value : rc_value_t , pub progress : * mut rc_value_t , pub memrefs : * mut rc_memref_t , pub state : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_lboard_t"] [:: core :: mem :: size_of :: < rc_lboard_t > () - 192usize] ; ["Alignment of rc_lboard_t"] [:: core :: mem :: align_of :: < rc_lboard_t > () - 8usize] ; ["Offset of field: rc_lboard_t::start"] [:: core :: mem :: offset_of ! (rc_lboard_t , start) - 0usize] ; ["Offset of field: rc_lboard_t::submit"] [:: core :: mem :: offset_of ! (rc_lboard_t , submit) - 40usize] ; ["Offset of field: rc_lboard_t::cancel"] [:: core :: mem :: offset_of ! (rc_lboard_t , cancel) - 80usize] ; ["Offset of field: rc_lboard_t::value"] [:: core :: mem :: offset_of ! (rc_lboard_t , value) - 120usize] ; ["Offset of field: rc_lboard_t::progress"] [:: core :: mem :: offset_of ! (rc_lboard_t , progress) - 168usize] ; ["Offset of field: rc_lboard_t::memrefs"] [:: core :: mem :: offset_of ! (rc_lboard_t , memrefs) - 176usize] ; ["Offset of field: rc_lboard_t::state"] [:: core :: mem :: offset_of ! (rc_lboard_t , state) - 184usize] ; } ; extern "C" { pub fn rc_lboard_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_lboard (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_lboard_t ; } extern "C" { pub fn rc_evaluate_lboard (lboard : * mut rc_lboard_t , value : * mut i32 , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_lboard (lboard : * mut rc_lboard_t) ; } pub const RC_FORMAT_FRAMES : _bindgen_ty_8 = 0 ; pub const RC_FORMAT_SECONDS : _bindgen_ty_8 = 1 ; pub const RC_FORMAT_CENTISECS : _bindgen_ty_8 = 2 ; pub const RC_FORMAT_SCORE : _bindgen_ty_8 = 3 ; pub const RC_FORMAT_VALUE : _bindgen_ty_8 = 4 ; pub const RC_FORMAT_MINUTES : _bindgen_ty_8 = 5 ; pub const RC_FORMAT_SECONDS_AS_MINUTES : _bindgen_ty_8 = 6 ; pub const RC_FORMAT_FLOAT1 : _bindgen_ty_8 = 7 ; pub const RC_FORMAT_FLOAT2 : _bindgen_ty_8 = 8 ; pub const RC_FORMAT_FLOAT3 : _bindgen_ty_8 = 9 ; pub const RC_FORMAT_FLOAT4 : _bindgen_ty_8 = 10 ; pub const RC_FORMAT_FLOAT5 : _bindgen_ty_8 = 11 ; pub const RC_FORMAT_FLOAT6 : _bindgen_ty_8 = 12 ; pub const RC_FORMAT_FIXED1 : _bindgen_ty_8 = 13 ; pub const RC_FORMAT_FIXED2 : _bindgen_ty_8 = 14 ; pub const RC_FORMAT_FIXED3 : _bindgen_ty_8 = 15 ; pub const RC_FORMAT_TENS : _bindgen_ty_8 = 16 ; pub const RC_FORMAT_HUNDREDS : _bindgen_ty_8 = 17 ; pub const RC_FORMAT_THOUSANDS : _bindgen_ty_8 = 18 ; pub const RC_FORMAT_UNSIGNED_VALUE : _bindgen_ty_8 = 19 ; # [doc = "\\\n| Value formatting                                                            |\n\\"] pub type _bindgen_ty_8 = :: core :: ffi :: c_uint ; extern "C" { pub fn rc_parse_format (format_str : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_format_value (buffer : * mut :: core :: ffi :: c_char , size : :: core :: ffi :: c_int , value : i32 , format : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_lookup_item_t { pub first : u32 , pub last : u32 , pub left : * mut rc_richpresence_lookup_item_t , pub right : * mut rc_richpresence_lookup_item_t , pub label : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_lookup_item_t"] [:: core :: mem :: size_of :: < rc_richpresence_lookup_item_t > () - 32usize] ; ["Alignment of rc_richpresence_lookup_item_t"] [:: core :: mem :: align_of :: < rc_richpresence_lookup_item_t > () - 8usize] ; ["Offset of field: rc_richpresence_lookup_item_t::first"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , first) - 0usize] ; ["Offset of field: rc_richpresence_lookup_item_t::last"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , last) - 4usize] ; ["Offset of field: rc_richpresence_lookup_item_t::left"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , left) - 8usize] ; ["Offset of field: rc_richpresence_lookup_item_t::right"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , right) - 16usize] ; ["Offset of field: rc_richpresence_lookup_item_t::label"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , label) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_lookup_t { pub root : * mut rc_richpresence_lookup_item_t , pub next : * mut rc_richpresence_lookup_t , pub name : * const :: core :: ffi :: c_char , pub default_label : * const :: core :: ffi :: c_char , pub format : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_lookup_t"] [:: core :: mem :: size_of :: < rc_richpresence_lookup_t > () - 40usize] ; ["Alignment of rc_richpresence_lookup_t"] [:: core :: mem :: align_of :: < rc_richpresence_lookup_t > () - 8usize] ; ["Offset of field: rc_richpresence_lookup_t::root"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , root) - 0usize] ; ["Offset of field: rc_richpresence_lookup_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , next) - 8usize] ; ["Offset of field: rc_richpresence_lookup_t::name"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , name) - 16usize] ; ["Offset of field: rc_richpresence_lookup_t::default_label"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , default_label) - 24usize] ; ["Offset of field: rc_richpresence_lookup_t::format"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , format) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_display_part_t { pub next : * mut rc_richpresence_display_part_t , pub text : * const :: core :: ffi :: c_char , pub lookup : * mut rc_richpresence_lookup_t , pub value : * mut rc_memref_value_t , pub display_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_display_part_t"] [:: core :: mem :: size_of :: < rc_richpresence_display_part_t > () - 40usize] ; ["Alignment of rc_richpresence_display_part_t"] [:: core :: mem :: align_of :: < rc_richpresence_display_part_t > () - 8usize] ; ["Offset of field: rc_richpresence_display_part_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , next) - 0usize] ; ["Offset of field: rc_richpresence_display_part_t::text"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , text) - 8usize] ; ["Offset of field: rc_richpresence_display_part_t::lookup"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , lookup) - 16usize] ; ["Offset of field: rc_richpresence_display_part_t::value"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , value) - 24usize] ; ["Offset of field: rc_richpresence_display_part_t::display_type"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , display_type) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_display_t { pub trigger : rc_trigger_t , pub next : * mut rc_richpresence_display_t , pub display : * mut rc_richpresence_display_part_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_display_t"] [:: core :: mem :: size_of :: < rc_richpresence_display_t > () - 56usize] ; ["Alignment of rc_richpresence_display_t"] [:: core :: mem :: align_of :: < rc_richpresence_display_t > () - 8usize] ; ["Offset of field: rc_richpresence_display_t::trigger"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , trigger) - 0usize] ; ["Offset of field: rc_richpresence_display_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , next) - 40usize] ; ["Offset of field: rc_richpresence_display_t::display"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , display) - 48usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_t { pub first_display : * mut rc_richpresence_display_t , pub first_lookup : * mut rc_richpresence_lookup_t , pub memrefs : * mut rc_memref_t , pub variables : * mut rc_value_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_t"] [:: core :: mem :: size_of :: < rc_richpresence_t > () - 32usize] ; ["Alignment of rc_richpresence_t"] [:: core :: mem :: align_of :: < rc_richpresence_t > () - 8usize] ; ["Offset of field: rc_richpresence_t::first_display"] [:: core :: mem :: offset_of ! (rc_richpresence_t , first_display) - 0usize] ; ["Offset of field: rc_richpresence_t::first_lookup"] [:: core :: mem :: offset_of ! (rc_richpresence_t , first_lookup) - 8usize] ; ["Offset of field: rc_richpresence_t::memrefs"] [:: core :: mem :: offset_of ! (rc_richpresence_t , memrefs) - 16usize] ; ["Offset of field: rc_richpresence_t::variables"] [:: core :: mem :: offset_of ! (rc_richpresence_t , variables) - 24usize] ; } ; extern "C" { pub fn rc_richpresence_size (script : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_richpresence_size_lines (script : * const :: core :: ffi :: c_char , lines_read : * mut :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_richpresence (buffer : * mut :: core :: ffi :: c_void , script : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_richpresence_t ; } extern "C" { pub fn rc_evaluate_richpresence (richpresence : * mut rc_richpresence_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_update_richpresence (richpresence : * mut rc_richpresence_t , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) ; } extern "C" { pub fn rc_get_richpresence_display_string (richpresence : * mut rc_richpresence_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_richpresence (self_ : * mut rc_richpresence_t) ; } # [doc = " A block of memory for variable length data (like strings and arrays)."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_buffer_chunk_t { pub write : * mut u8 , pub end : * mut u8 , pub start : * mut u8 , pub next : * mut rc_buffer_chunk_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_buffer_chunk_t"] [:: core :: mem :: size_of :: < rc_buffer_chunk_t > () - 32usize] ; ["Alignment of rc_buffer_chunk_t"] [:: core :: mem :: align_of :: < rc_buffer_chunk_t > () - 8usize] ; ["Offset of field: rc_buffer_chunk_t::write"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , write) - 0usize] ; ["Offset of field: rc_buffer_chunk_t::end"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , end) - 8usize] ; ["Offset of field: rc_buffer_chunk_t::start"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , start) - 16usize] ; ["Offset of field: rc_buffer_chunk_t::next"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , next) - 24usize] ; } ; # [doc = " A preallocated block of memory for variable length data (like strings and arrays)."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_buffer_t { pub chunk : rc_buffer_chunk_t , pub data : [u8 ; 256usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_buffer_t"] [:: core :: mem :: size_of :: < rc_buffer_t > () - 288usize] ; ["Alignment of rc_buffer_t"] [:: core :: mem :: align_of :: < rc_buffer_t > () - 8usize] ; ["Offset of field: rc_buffer_t::chunk"] [:: core :: mem :: offset_of ! (rc_buffer_t , chunk) - 0usize] ; ["Offset of field: rc_buffer_t::data"] [:: core :: mem :: offset_of ! (rc_buffer_t , data) - 32usize] ; } ; extern "C" { pub fn rc_buffer_init (buffer : * mut rc_buffer_t) ; } extern "C" { pub fn rc_buffer_destroy (buffer : * mut rc_buffer_t) ; } extern "C" { pub fn rc_buffer_reserve (buffer : * mut rc_buffer_t , amount : usize) -> * mut u8 ; } extern "C" { pub fn rc_buffer_consume (buffer : * mut rc_buffer_t , start : * const u8 , end : * mut u8) ; } extern "C" { pub fn rc_buffer_alloc (buffer : * mut rc_buffer_t , amount : usize) -> * mut :: core :: ffi :: c_void ; } extern "C" { pub fn rc_buffer_strcpy (buffer : * mut rc_buffer_t , src : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn rc_buffer_strncpy (buffer : * mut rc_buffer_t , src : * const :: core :: ffi :: c_char , len : usize) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn rc_djb2 (input : * const :: core :: ffi :: c_char) -> u32 ; } extern "C" { pub fn rc_format_md5 (checksum : * mut :: core :: ffi :: c_char , digest : * const u8) ; } # [doc = " A constructed request to send to the retroachievements server."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_request_t { pub url : * const :: core :: ffi :: c_char , pub post_data : * const :: core :: ffi :: c_char , pub content_type : * const :: core :: ffi :: c_char , pub buffer : rc_buffer_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_request_t"] [:: core :: mem :: size_of :: < rc_api_request_t > () - 312usize] ; ["Alignment of rc_api_request_t"] [:: core :: mem :: align_of :: < rc_api_request_t > () - 8usize] ; ["Offset of field: rc_api_request_t::url"] [:: core :: mem :: offset_of ! (rc_api_request_t , url) - 0usize] ; ["Offset of field: rc_api_request_t::post_data"] [:: core :: mem :: offset_of ! (rc_api_request_t , post_data) - 8usize] ; ["Offset of field: rc_api_request_t::content_type"] [:: core :: mem :: offset_of ! (rc_api_request_t , content_type) - 16usize] ; ["Offset of field: rc_api_request_t::buffer"] [:: core :: mem :: offset_of ! (rc_api_request_t , buffer) - 24usize] ; } ; # [doc = " Common attributes for all server responses."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_response_t { pub succeeded : :: core :: ffi :: c_int , pub error_message : * const :: core :: ffi :: c_char , pub error_code : * const :: core :: ffi :: c_char , pub buffer : rc_buffer_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_response_t"] [:: core :: mem :: size_of :: < rc_api_response_t > () - 312usize] ; ["Alignment of rc_api_response_t"] [:: core :: mem :: align_of :: < rc_api_response_t > () - 8usize] ; ["Offset of field: rc_api_response_t::succeeded"] [:: core :: mem :: offset_of ! (rc_api_response_t , succeeded) - 0usize] ; ["Offset of field: rc_api_response_t::error_message"] [:: core :: mem :: offset_of ! (rc_api_response_t , error_message) - 8usize] ; ["Offset of field: rc_api_response_t::error_code"] [:: core :: mem :: offset_of ! (rc_api_response_t , error_code) - 16usize] ; ["Offset of field: rc_api_response_t::buffer"] [:: core :: mem :: offset_of ! (rc_api_response_t , buffer) - 24usize] ; } ; extern "C" { pub fn rc_api_destroy_request (request : * mut rc_api_request_t) ; } extern "C" { pub fn rc_api_set_host (hostname : * const :: core :: ffi :: c_char) ; } extern "C" { pub fn rc_api_set_image_host (hostname : * const :: core :: ffi :: c_char) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_server_response_t { pub body : * const :: core :: ffi :: c_char , pub body_length : usize , pub http_status_code : :: core :: ffi :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_server_response_t"] [:: core :: mem :: size_of :: < rc_api_server_response_t > () - 24usize] ; ["Alignment of rc_api_server_response_t"] [:: core :: mem :: align_of :: < rc_api_server_response_t > () - 8usize] ; ["Offset of field: rc_api_server_response_t::body"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , body) - 0usize] ; ["Offset of field: rc_api_server_response_t::body_length"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , body_length) - 8usize] ; ["Offset of field: rc_api_server_response_t::http_status_code"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , http_status_code) - 16usize] ; } ; pub const RC_API_SERVER_RESPONSE_CLIENT_ERROR : _bindgen_ty_9 = - 1 ; pub const RC_API_SERVER_RESPONSE_RETRYABLE_CLIENT_ERROR : _bindgen_ty_9 = - 2 ; pub type _bindgen_ty_9 = :: core :: ffi :: c_int ; pub type clock_t = __clock_t ; pub type time_t = __time_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct tm { pub tm_sec : :: core :: ffi :: c_int , pub tm_min : :: core :: ffi :: c_int , pub tm_hour : :: core :: ffi :: c_int , pub tm_mday : :: core :: ffi :: c_int , pub tm_mon : :: core :: ffi :: c_int , pub tm_year : :: core :: ffi :: c_int , pub tm_wday : :: core :: ffi :: c_int , pub tm_yday : :: core :: ffi :: c_int , pub tm_isdst : :: core :: ffi :: c_int , pub tm_gmtoff : :: core :: ffi :: c_long , pub tm_zone : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of tm"] [:: core :: mem :: size_of :: < tm > () - 56usize] ; ["Alignment of tm"] [:: core :: mem :: align_of :: < tm > () - 8usize] ; ["Offset of field: tm::tm_sec"] [:: core :: mem :: offset_of ! (tm , tm_sec) - 0usize] ; ["Offset of field: tm::tm_min"] [:: core :: mem :: offset_of ! (tm , tm_min) - 4usize] ; ["Offset of field: tm::tm_hour"] [:: core :: mem :: offset_of ! (tm , tm_hour) - 8usize] ; ["Offset of field: tm::tm_mday"] [:: core :: mem :: offset_of ! (tm , tm_mday) - 12usize] ; ["Offset of field: tm::tm_mon"] [:: core :: mem :: offset_of ! (tm , tm_mon) - 16usize] ; ["Offset of field: tm::tm_year"] [:: core :: mem :: offset_of ! (tm , tm_year) - 20usize] ; ["Offset of field: tm::tm_wday"] [:: core :: mem :: offset_of ! (tm , tm_wday) - 24usize] ; ["Offset of field: tm::tm_yday"] [:: core :: mem :: offset_of ! (tm , tm_yday) - 28usize] ; ["Offset of field: tm::tm_isdst"] [:: core :: mem :: offset_of ! (tm , tm_isdst) - 32usize] ; ["Offset of field: tm::tm_gmtoff"] [:: core :: mem :: offset_of ! (tm , tm_gmtoff) - 40usize] ; ["Offset of field: tm::tm_zone"] [:: core :: mem :: offset_of ! (tm , tm_zone) - 48usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct timespec { pub tv_sec : __time_t , pub tv_nsec : __syscall_slong_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of timespec"] [:: core :: mem :: size_of :: < timespec > () - 16usize] ; ["Alignment of timespec"] [:: core :: mem :: align_of :: < timespec > () - 8usize] ; ["Offset of field: timespec::tv_sec"] [:: core :: mem :: offset_of ! (timespec , tv_sec) - 0usize] ; ["Offset of field: timespec::tv_nsec"] [:: core :: mem :: offset_of ! (timespec , tv_nsec) - 8usize] ; } ; pub type clockid_t = __clockid_t ; pub type timer_t = __timer_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct itimerspec { pub it_interval : timespec , pub it_value : timespec , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of itimerspec"] [:: core :: mem :: size_of :: < itimerspec > () - 32usize] ; ["Alignment of itimerspec"] [:: core :: mem :: align_of :: < itimerspec > () - 8usize] ; ["Offset of field: itimerspec::it_interval"] [:: core :: mem :: offset_of ! (itimerspec , it_interval) - 0usize] ; ["Offset of field: itimerspec::it_value"] [:: core :: mem :: offset_of ! (itimerspec , it_value) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct sigevent { _unused : [u8 ; 0] , } pub type pid_t = __pid_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __locale_struct { pub __locales : [* mut __locale_data ; 13usize] , pub __ctype_b : * const :: core :: ffi :: c_ushort , pub __ctype_tolower : * const :: core :: ffi :: c_int , pub __ctype_toupper : * const :: core :: ffi :: c_int , pub __names : [* const :: core :: ffi :: c_char ; 13usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __locale_struct"] [:: core :: mem :: size_of :: < __locale_struct > () - 232usize] ; ["Alignment of __locale_struct"] [:: core :: mem :: align_of :: < __locale_struct > () - 8usize] ; ["Offset of field: __locale_struct::__locales"] [:: core :: mem :: offset_of ! (__locale_struct , __locales) - 0usize] ; ["Offset of field: __locale_struct::__ctype_b"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_b) - 104usize] ; ["Offset of field: __locale_struct::__ctype_tolower"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_tolower) - 112usize] ; ["Offset of field: __locale_struct::__ctype_toupper"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_toupper) - 120usize] ; ["Offset of field: __locale_struct::__names"] [:: core :: mem :: offset_of ! (__locale_struct , __names) - 128usize] ; } ; pub type __locale_t = * mut __locale_struct ; pub type locale_t = __locale_t ; extern "C" { pub fn clock () -> clock_t ; } extern "C" { pub fn time (__timer : * mut time_t) -> time_t ; } extern "C" { pub fn difftime (__time1 : time_t , __time0 : time_t) -> f64 ; } extern "C" { pub fn mktime (__tp : * mut tm) -> time_t ; } extern "C" { pub fn strftime (__s : * mut :: core :: ffi :: c_char , __maxsize : usize , __format : * const :: core :: ffi :: c_char , __tp : * const tm) -> usize ; } extern "C" { pub fn strftime_l (__s : * mut :: core :: ffi :: c_char , __maxsize : usize , __format : * const :: core :: ffi :: c_char , __tp : * const tm , __loc : locale_t) -> usize ; } extern "C" { pub fn gmtime (__timer : * const time_t) -> * mut tm ; } extern "C" { pub fn localtime (__timer : * const time_t) -> * mut tm ; } extern "C" { pub fn gmtime_r (__timer : * const time_t , __tp : * mut tm) -> * mut tm ; } extern "C" { pub fn localtime_r (__timer : * const time_t , __tp : * mut tm) -> * mut tm ; } extern "C" { pub fn asctime (__tp : * const tm) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn ctime (__timer : * const time_t) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn asctime_r (__tp : * const tm , __buf : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn ctime_r (__timer : * const time_t , __buf : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub static mut __tzname : [* mut :: core :: ffi :: c_char ; 2usize] ; } extern "C" { pub static mut __daylight : :: core :: ffi :: c_int ; } extern "C" { pub static mut __timezone : :: core :: ffi :: c_long ; } extern "C" { pub static mut tzname : [* mut :: core :: ffi :: c_char ; 2usize] ; } extern "C" { pub fn tzset () ; } extern "C" { pub static mut daylight : :: core :: ffi :: c_int ; } extern "C" { pub static mut timezone : :: core :: ffi :: c_long ; } extern "C" { pub fn timegm (__tp : * mut tm) -> time_t ; } extern "C" { pub fn timelocal (__tp : * mut tm) -> time_t ; } extern "C" { pub fn dysize (__year : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn nanosleep (__requested_time : * const timespec , __remaining : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_getres (__clock_id : clockid_t , __res : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_gettime (__clock_id : clockid_t , __tp : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_settime (__clock_id : clockid_t , __tp : * const timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_nanosleep (__clock_id : clockid_t , __flags : :: core :: ffi :: c_int , __req : * const timespec , __rem : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_getcpuclockid (__pid : pid_t , __clock_id : * mut clockid_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_create (__clock_id : clockid_t , __evp : * mut sigevent , __timerid : * mut timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_delete (__timerid : timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_settime (__timerid : timer_t , __flags : :: core :: ffi :: c_int , __value : * const itimerspec , __ovalue : * mut itimerspec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_gettime (__timerid : timer_t , __value : * mut itimerspec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_getoverrun (__timerid : timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timespec_get (__ts : * mut timespec , __base : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } # [doc = " API parameters for a login request.\n If both password and api_token are provided, api_token will be ignored."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_login_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub password : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_login_request_t"] [:: core :: mem :: size_of :: < rc_api_login_request_t > () - 24usize] ; ["Alignment of rc_api_login_request_t"] [:: core :: mem :: align_of :: < rc_api_login_request_t > () - 8usize] ; ["Offset of field: rc_api_login_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , username) - 0usize] ; ["Offset of field: rc_api_login_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_login_request_t::password"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , password) - 16usize] ; } ; # [doc = " Response data for a login request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_login_response_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub score : u32 , pub score_softcore : u32 , pub num_unread_messages : u32 , pub display_name : * const :: core :: ffi :: c_char , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_login_response_t"] [:: core :: mem :: size_of :: < rc_api_login_response_t > () - 352usize] ; ["Alignment of rc_api_login_response_t"] [:: core :: mem :: align_of :: < rc_api_login_response_t > () - 8usize] ; ["Offset of field: rc_api_login_response_t::username"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , username) - 0usize] ; ["Offset of field: rc_api_login_response_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , api_token) - 8usize] ; ["Offset of field: rc_api_login_response_t::score"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , score) - 16usize] ; ["Offset of field: rc_api_login_response_t::score_softcore"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , score_softcore) - 20usize] ; ["Offset of field: rc_api_login_response_t::num_unread_messages"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , num_unread_messages) - 24usize] ; ["Offset of field: rc_api_login_response_t::display_name"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , display_name) - 32usize] ; ["Offset of field: rc_api_login_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , response) - 40usize] ; } ; extern "C" { pub fn rc_api_init_login_request (request : * mut rc_api_request_t , api_params : * const rc_api_login_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_login_response (response : * mut rc_api_login_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_login_server_response (response : * mut rc_api_login_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_login_response (response : * mut rc_api_login_response_t) ; } # [doc = " API parameters for a start session request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_start_session_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub game_hash : * const :: core :: ffi :: c_char , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_start_session_request_t"] [:: core :: mem :: size_of :: < rc_api_start_session_request_t > () - 40usize] ; ["Alignment of rc_api_start_session_request_t"] [:: core :: mem :: align_of :: < rc_api_start_session_request_t > () - 8usize] ; ["Offset of field: rc_api_start_session_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , username) - 0usize] ; ["Offset of field: rc_api_start_session_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_start_session_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_start_session_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_start_session_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , hardcore) - 32usize] ; } ; # [doc = " Response data for an achievement unlock."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_unlock_entry_t { pub achievement_id : u32 , pub when : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_unlock_entry_t"] [:: core :: mem :: size_of :: < rc_api_unlock_entry_t > () - 16usize] ; ["Alignment of rc_api_unlock_entry_t"] [:: core :: mem :: align_of :: < rc_api_unlock_entry_t > () - 8usize] ; ["Offset of field: rc_api_unlock_entry_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_unlock_entry_t , achievement_id) - 0usize] ; ["Offset of field: rc_api_unlock_entry_t::when"] [:: core :: mem :: offset_of ! (rc_api_unlock_entry_t , when) - 8usize] ; } ; # [doc = " Response data for a start session request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_start_session_response_t { pub hardcore_unlocks : * mut rc_api_unlock_entry_t , pub unlocks : * mut rc_api_unlock_entry_t , pub num_hardcore_unlocks : u32 , pub num_unlocks : u32 , pub server_now : time_t , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_start_session_response_t"] [:: core :: mem :: size_of :: < rc_api_start_session_response_t > () - 344usize] ; ["Alignment of rc_api_start_session_response_t"] [:: core :: mem :: align_of :: < rc_api_start_session_response_t > () - 8usize] ; ["Offset of field: rc_api_start_session_response_t::hardcore_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , hardcore_unlocks) - 0usize] ; ["Offset of field: rc_api_start_session_response_t::unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , unlocks) - 8usize] ; ["Offset of field: rc_api_start_session_response_t::num_hardcore_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , num_hardcore_unlocks) - 16usize] ; ["Offset of field: rc_api_start_session_response_t::num_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , num_unlocks) - 20usize] ; ["Offset of field: rc_api_start_session_response_t::server_now"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , server_now) - 24usize] ; ["Offset of field: rc_api_start_session_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_start_session_request (request : * mut rc_api_request_t , api_params : * const rc_api_start_session_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_start_session_response (response : * mut rc_api_start_session_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_start_session_server_response (response : * mut rc_api_start_session_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_start_session_response (response : * mut rc_api_start_session_response_t) ; } # [doc = " API parameters for a fetch user unlocks request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_user_unlocks_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_user_unlocks_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_user_unlocks_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_user_unlocks_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_user_unlocks_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , hardcore) - 20usize] ; } ; # [doc = " Response data for a fetch user unlocks request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_user_unlocks_response_t { pub achievement_ids : * mut u32 , pub num_achievement_ids : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_user_unlocks_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_user_unlocks_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_user_unlocks_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_user_unlocks_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::achievement_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , achievement_ids) - 0usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::num_achievement_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , num_achievement_ids) - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_user_unlocks_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_user_unlocks_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_user_unlocks_response (response : * mut rc_api_fetch_user_unlocks_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_user_unlocks_server_response (response : * mut rc_api_fetch_user_unlocks_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_user_unlocks_response (response : * mut rc_api_fetch_user_unlocks_response_t) ; } # [doc = " API parameters for a fetch code notes request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_code_notes_request_t { pub game_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_code_notes_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_code_notes_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_code_notes_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_code_notes_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_code_notes_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_request_t , game_id) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_code_note_t { pub address : u32 , pub author : * const :: core :: ffi :: c_char , pub note : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_code_note_t"] [:: core :: mem :: size_of :: < rc_api_code_note_t > () - 24usize] ; ["Alignment of rc_api_code_note_t"] [:: core :: mem :: align_of :: < rc_api_code_note_t > () - 8usize] ; ["Offset of field: rc_api_code_note_t::address"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , address) - 0usize] ; ["Offset of field: rc_api_code_note_t::author"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , author) - 8usize] ; ["Offset of field: rc_api_code_note_t::note"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , note) - 16usize] ; } ; # [doc = " Response data for a fetch code notes request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_code_notes_response_t { pub notes : * mut rc_api_code_note_t , pub num_notes : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_code_notes_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_code_notes_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_code_notes_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_code_notes_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::notes"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , notes) - 0usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::num_notes"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , num_notes) - 8usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_code_notes_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_code_notes_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_code_notes_response (response : * mut rc_api_fetch_code_notes_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_code_notes_server_response (response : * mut rc_api_fetch_code_notes_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_code_notes_response (response : * mut rc_api_fetch_code_notes_response_t) ; } # [doc = " API parameters for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_code_note_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub address : u32 , pub note : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_code_note_request_t"] [:: core :: mem :: size_of :: < rc_api_update_code_note_request_t > () - 32usize] ; ["Alignment of rc_api_update_code_note_request_t"] [:: core :: mem :: align_of :: < rc_api_update_code_note_request_t > () - 8usize] ; ["Offset of field: rc_api_update_code_note_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_code_note_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_code_note_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_update_code_note_request_t::address"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , address) - 20usize] ; ["Offset of field: rc_api_update_code_note_request_t::note"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , note) - 24usize] ; } ; # [doc = " Response data for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_code_note_response_t { pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_code_note_response_t"] [:: core :: mem :: size_of :: < rc_api_update_code_note_response_t > () - 312usize] ; ["Alignment of rc_api_update_code_note_response_t"] [:: core :: mem :: align_of :: < rc_api_update_code_note_response_t > () - 8usize] ; ["Offset of field: rc_api_update_code_note_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_response_t , response) - 0usize] ; } ; extern "C" { pub fn rc_api_init_update_code_note_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_code_note_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_code_note_response (response : * mut rc_api_update_code_note_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_code_note_server_response (response : * mut rc_api_update_code_note_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_code_note_response (response : * mut rc_api_update_code_note_response_t) ; } # [doc = " API parameters for an update achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_achievement_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub game_id : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub badge : * const :: core :: ffi :: c_char , pub trigger : * const :: core :: ffi :: c_char , pub points : u32 , pub category : u32 , pub type_ : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_achievement_request_t"] [:: core :: mem :: size_of :: < rc_api_update_achievement_request_t > () - 72usize] ; ["Alignment of rc_api_update_achievement_request_t"] [:: core :: mem :: align_of :: < rc_api_update_achievement_request_t > () - 8usize] ; ["Offset of field: rc_api_update_achievement_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_achievement_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_achievement_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_update_achievement_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , game_id) - 20usize] ; ["Offset of field: rc_api_update_achievement_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , title) - 24usize] ; ["Offset of field: rc_api_update_achievement_request_t::description"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , description) - 32usize] ; ["Offset of field: rc_api_update_achievement_request_t::badge"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , badge) - 40usize] ; ["Offset of field: rc_api_update_achievement_request_t::trigger"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , trigger) - 48usize] ; ["Offset of field: rc_api_update_achievement_request_t::points"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , points) - 56usize] ; ["Offset of field: rc_api_update_achievement_request_t::category"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , category) - 60usize] ; ["Offset of field: rc_api_update_achievement_request_t::type_"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , type_) - 64usize] ; } ; # [doc = " Response data for an update achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_achievement_response_t { pub achievement_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_achievement_response_t"] [:: core :: mem :: size_of :: < rc_api_update_achievement_response_t > () - 320usize] ; ["Alignment of rc_api_update_achievement_response_t"] [:: core :: mem :: align_of :: < rc_api_update_achievement_response_t > () - 8usize] ; ["Offset of field: rc_api_update_achievement_response_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_response_t , achievement_id) - 0usize] ; ["Offset of field: rc_api_update_achievement_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_update_achievement_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_achievement_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_achievement_response (response : * mut rc_api_update_achievement_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_achievement_server_response (response : * mut rc_api_update_achievement_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_achievement_response (response : * mut rc_api_update_achievement_response_t) ; } # [doc = " API parameters for an update leaderboard request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_leaderboard_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub leaderboard_id : u32 , pub game_id : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub start_trigger : * const :: core :: ffi :: c_char , pub submit_trigger : * const :: core :: ffi :: c_char , pub cancel_trigger : * const :: core :: ffi :: c_char , pub value_definition : * const :: core :: ffi :: c_char , pub format : * const :: core :: ffi :: c_char , pub lower_is_better : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_leaderboard_request_t"] [:: core :: mem :: size_of :: < rc_api_update_leaderboard_request_t > () - 88usize] ; ["Alignment of rc_api_update_leaderboard_request_t"] [:: core :: mem :: align_of :: < rc_api_update_leaderboard_request_t > () - 8usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , leaderboard_id) - 16usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , game_id) - 20usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , title) - 24usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::description"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , description) - 32usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::start_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , start_trigger) - 40usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::submit_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , submit_trigger) - 48usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::cancel_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , cancel_trigger) - 56usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::value_definition"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , value_definition) - 64usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::format"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , format) - 72usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , lower_is_better) - 80usize] ; } ; # [doc = " Response data for an update leaderboard request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_leaderboard_response_t { pub leaderboard_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_leaderboard_response_t"] [:: core :: mem :: size_of :: < rc_api_update_leaderboard_response_t > () - 320usize] ; ["Alignment of rc_api_update_leaderboard_response_t"] [:: core :: mem :: align_of :: < rc_api_update_leaderboard_response_t > () - 8usize] ; ["Offset of field: rc_api_update_leaderboard_response_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_response_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_api_update_leaderboard_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_update_leaderboard_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_leaderboard_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_leaderboard_response (response : * mut rc_api_update_leaderboard_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_leaderboard_server_response (response : * mut rc_api_update_leaderboard_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_leaderboard_response (response : * mut rc_api_update_leaderboard_response_t) ; } # [doc = " API parameters for a fetch badge range request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_badge_range_request_t { pub unused : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_badge_range_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_badge_range_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_badge_range_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_badge_range_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_badge_range_request_t::unused"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_request_t , unused) - 0usize] ; } ; # [doc = " Response data for a fetch badge range request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_badge_range_response_t { pub first_badge_id : u32 , pub next_badge_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_badge_range_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_badge_range_response_t > () - 320usize] ; ["Alignment of rc_api_fetch_badge_range_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_badge_range_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::first_badge_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , first_badge_id) - 0usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::next_badge_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , next_badge_id) - 4usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_fetch_badge_range_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_badge_range_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_badge_range_response (response : * mut rc_api_fetch_badge_range_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_badge_range_server_response (response : * mut rc_api_fetch_badge_range_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_badge_range_response (response : * mut rc_api_fetch_badge_range_response_t) ; } # [doc = " API parameters for an add game hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_add_game_hash_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub hash : * const :: core :: ffi :: c_char , pub hash_description : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_add_game_hash_request_t"] [:: core :: mem :: size_of :: < rc_api_add_game_hash_request_t > () - 48usize] ; ["Alignment of rc_api_add_game_hash_request_t"] [:: core :: mem :: align_of :: < rc_api_add_game_hash_request_t > () - 8usize] ; ["Offset of field: rc_api_add_game_hash_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , username) - 0usize] ; ["Offset of field: rc_api_add_game_hash_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_add_game_hash_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_add_game_hash_request_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , console_id) - 20usize] ; ["Offset of field: rc_api_add_game_hash_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , title) - 24usize] ; ["Offset of field: rc_api_add_game_hash_request_t::hash"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , hash) - 32usize] ; ["Offset of field: rc_api_add_game_hash_request_t::hash_description"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , hash_description) - 40usize] ; } ; # [doc = " Response data for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_add_game_hash_response_t { pub game_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_add_game_hash_response_t"] [:: core :: mem :: size_of :: < rc_api_add_game_hash_response_t > () - 320usize] ; ["Alignment of rc_api_add_game_hash_response_t"] [:: core :: mem :: align_of :: < rc_api_add_game_hash_response_t > () - 8usize] ; ["Offset of field: rc_api_add_game_hash_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_response_t , game_id) - 0usize] ; ["Offset of field: rc_api_add_game_hash_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_add_game_hash_request (request : * mut rc_api_request_t , api_params : * const rc_api_add_game_hash_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_add_game_hash_response (response : * mut rc_api_add_game_hash_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_add_game_hash_server_response (response : * mut rc_api_add_game_hash_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_add_game_hash_response (response : * mut rc_api_add_game_hash_response_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_t { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_menu_item_t { pub label : * const :: core :: ffi :: c_char , pub id : u32 , pub checked : u8 , pub enabled : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_menu_item_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_menu_item_t > () - 16usize] ; ["Alignment of rc_client_raintegration_menu_item_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_menu_item_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::label"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , label) - 0usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::id"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , id) - 8usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::checked"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , checked) - 12usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::enabled"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , enabled) - 13usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_menu_t { pub items : * mut rc_client_raintegration_menu_item_t , pub num_items : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_menu_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_menu_t > () - 16usize] ; ["Alignment of rc_client_raintegration_menu_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_menu_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_menu_t::items"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_t , items) - 0usize] ; ["Offset of field: rc_client_raintegration_menu_t::num_items"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_t , num_items) - 8usize] ; } ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_NONE : _bindgen_ty_10 = 0 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_PUBLISHED : _bindgen_ty_10 = 1 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_LOCAL : _bindgen_ty_10 = 2 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_MODIFIED : _bindgen_ty_10 = 3 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_INSECURE : _bindgen_ty_10 = 4 ; pub type _bindgen_ty_10 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_RAINTEGRATION_EVENT_TYPE_NONE : _bindgen_ty_11 = 0 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_MENUITEM_CHECKED_CHANGED : _bindgen_ty_11 = 1 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_HARDCORE_CHANGED : _bindgen_ty_11 = 2 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_PAUSE : _bindgen_ty_11 = 3 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_MENU_CHANGED : _bindgen_ty_11 = 4 ; pub type _bindgen_ty_11 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_event_t { pub type_ : u32 , pub menu_item : * const rc_client_raintegration_menu_item_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_event_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_event_t > () - 16usize] ; ["Alignment of rc_client_raintegration_event_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_event_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_event_t::type_"] [:: core :: mem :: offset_of ! (rc_client_raintegration_event_t , type_) - 0usize] ; ["Offset of field: rc_client_raintegration_event_t::menu_item"] [:: core :: mem :: offset_of ! (rc_client_raintegration_event_t , menu_item) - 8usize] ; } ; pub type rc_client_raintegration_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (event : * const rc_client_raintegration_event_t , client : * mut rc_client_t) > ; pub type rc_client_raintegration_write_memory_func_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , buffer : * mut u8 , num_bytes : u32 , client : * mut rc_client_t) > ; pub type rc_client_raintegration_get_game_name_func_t = :: core :: option :: Option < unsafe extern "C" fn (buffer : * mut :: core :: ffi :: c_char , buffer_size : u32 , client : * mut rc_client_t) > ; # [doc = " API parameters for a fetch achievement info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_achievement_info_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub first_entry : u32 , pub count : u32 , pub friends_only : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_achievement_info_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_achievement_info_request_t > () - 32usize] ; ["Alignment of rc_api_fetch_achievement_info_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_achievement_info_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::first_entry"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , first_entry) - 20usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::count"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , count) - 24usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::friends_only"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , friends_only) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_achievement_awarded_entry_t { pub username : * const :: core :: ffi :: c_char , pub awarded : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_achievement_awarded_entry_t"] [:: core :: mem :: size_of :: < rc_api_achievement_awarded_entry_t > () - 16usize] ; ["Alignment of rc_api_achievement_awarded_entry_t"] [:: core :: mem :: align_of :: < rc_api_achievement_awarded_entry_t > () - 8usize] ; ["Offset of field: rc_api_achievement_awarded_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_achievement_awarded_entry_t , username) - 0usize] ; ["Offset of field: rc_api_achievement_awarded_entry_t::awarded"] [:: core :: mem :: offset_of ! (rc_api_achievement_awarded_entry_t , awarded) - 8usize] ; } ; # [doc = " Response data for a fetch achievement info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_achievement_info_response_t { pub id : u32 , pub game_id : u32 , pub num_awarded : u32 , pub num_players : u32 , pub recently_awarded : * mut rc_api_achievement_awarded_entry_t , pub num_recently_awarded : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_achievement_info_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_achievement_info_response_t > () - 344usize] ; ["Alignment of rc_api_fetch_achievement_info_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_achievement_info_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , game_id) - 4usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_awarded) - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_players"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_players) - 12usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::recently_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , recently_awarded) - 16usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_recently_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_recently_awarded) - 24usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_fetch_achievement_info_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_achievement_info_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_achievement_info_response (response : * mut rc_api_fetch_achievement_info_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_achievement_info_server_response (response : * mut rc_api_fetch_achievement_info_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_achievement_info_response (response : * mut rc_api_fetch_achievement_info_response_t) ; } # [doc = " API parameters for a fetch leaderboard info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_leaderboard_info_request_t { pub leaderboard_id : u32 , pub count : u32 , pub first_entry : u32 , pub username : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_leaderboard_info_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_leaderboard_info_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_leaderboard_info_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_leaderboard_info_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::count"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , count) - 4usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::first_entry"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , first_entry) - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , username) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_lboard_info_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub index : u32 , pub score : i32 , pub submitted : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_lboard_info_entry_t"] [:: core :: mem :: size_of :: < rc_api_lboard_info_entry_t > () - 32usize] ; ["Alignment of rc_api_lboard_info_entry_t"] [:: core :: mem :: align_of :: < rc_api_lboard_info_entry_t > () - 8usize] ; ["Offset of field: rc_api_lboard_info_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , username) - 0usize] ; ["Offset of field: rc_api_lboard_info_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , rank) - 8usize] ; ["Offset of field: rc_api_lboard_info_entry_t::index"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , index) - 12usize] ; ["Offset of field: rc_api_lboard_info_entry_t::score"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , score) - 16usize] ; ["Offset of field: rc_api_lboard_info_entry_t::submitted"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , submitted) - 24usize] ; } ; # [doc = " Response data for a fetch leaderboard info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_leaderboard_info_response_t { pub id : u32 , pub format : :: core :: ffi :: c_int , pub lower_is_better : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub game_id : u32 , pub author : * const :: core :: ffi :: c_char , pub created : time_t , pub updated : time_t , pub entries : * mut rc_api_lboard_info_entry_t , pub num_entries : u32 , pub total_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_leaderboard_info_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_leaderboard_info_response_t > () - 400usize] ; ["Alignment of rc_api_fetch_leaderboard_info_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_leaderboard_info_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::format"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , format) - 4usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , lower_is_better) - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::title"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , title) - 16usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::description"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , description) - 24usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::definition"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , definition) - 32usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , game_id) - 40usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::author"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , author) - 48usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::created"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , created) - 56usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::updated"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , updated) - 64usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , entries) - 72usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , num_entries) - 80usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::total_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , total_entries) - 84usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , response) - 88usize] ; } ; extern "C" { pub fn rc_api_init_fetch_leaderboard_info_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_leaderboard_info_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_leaderboard_info_response (response : * mut rc_api_fetch_leaderboard_info_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_leaderboard_info_server_response (response : * mut rc_api_fetch_leaderboard_info_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_leaderboard_info_response (response : * mut rc_api_fetch_leaderboard_info_response_t) ; } # [doc = " API parameters for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_games_list_request_t { pub console_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_games_list_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_games_list_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_games_list_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_games_list_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_games_list_request_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_request_t , console_id) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_game_list_entry_t { pub id : u32 , pub name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_game_list_entry_t"] [:: core :: mem :: size_of :: < rc_api_game_list_entry_t > () - 16usize] ; ["Alignment of rc_api_game_list_entry_t"] [:: core :: mem :: align_of :: < rc_api_game_list_entry_t > () - 8usize] ; ["Offset of field: rc_api_game_list_entry_t::id"] [:: core :: mem :: offset_of ! (rc_api_game_list_entry_t , id) - 0usize] ; ["Offset of field: rc_api_game_list_entry_t::name"] [:: core :: mem :: offset_of ! (rc_api_game_list_entry_t , name) - 8usize] ; } ; # [doc = " Response data for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_games_list_response_t { pub entries : * mut rc_api_game_list_entry_t , pub num_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_games_list_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_games_list_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_games_list_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_games_list_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , entries) - 0usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , num_entries) - 8usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_games_list_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_games_list_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_games_list_response (response : * mut rc_api_fetch_games_list_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_games_list_server_response (response : * mut rc_api_fetch_games_list_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_games_list_response (response : * mut rc_api_fetch_games_list_response_t) ; } # [doc = " API parameters for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_titles_request_t { pub game_ids : * const u32 , pub num_game_ids : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_titles_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_titles_request_t > () - 16usize] ; ["Alignment of rc_api_fetch_game_titles_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_titles_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_request_t::game_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_request_t , game_ids) - 0usize] ; ["Offset of field: rc_api_fetch_game_titles_request_t::num_game_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_request_t , num_game_ids) - 8usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_game_title_entry_t { pub id : u32 , pub title : * const :: core :: ffi :: c_char , pub image_name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_game_title_entry_t"] [:: core :: mem :: size_of :: < rc_api_game_title_entry_t > () - 24usize] ; ["Alignment of rc_api_game_title_entry_t"] [:: core :: mem :: align_of :: < rc_api_game_title_entry_t > () - 8usize] ; ["Offset of field: rc_api_game_title_entry_t::id"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , id) - 0usize] ; ["Offset of field: rc_api_game_title_entry_t::title"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , title) - 8usize] ; ["Offset of field: rc_api_game_title_entry_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , image_name) - 16usize] ; } ; # [doc = " Response data for a fetch games title request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_titles_response_t { pub entries : * mut rc_api_game_title_entry_t , pub num_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_titles_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_titles_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_game_titles_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_titles_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , entries) - 0usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , num_entries) - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_game_titles_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_game_titles_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_titles_server_response (response : * mut rc_api_fetch_game_titles_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_game_titles_response (response : * mut rc_api_fetch_game_titles_response_t) ; } pub type __gnuc_va_list = __builtin_va_list ; # [repr (C)] # [derive (Copy , Clone)] pub struct __mbstate_t { pub __count : :: core :: ffi :: c_int , pub __value : __mbstate_t__bindgen_ty_1 , } # [repr (C)] # [derive (Copy , Clone)] pub union __mbstate_t__bindgen_ty_1 { pub __wch : :: core :: ffi :: c_uint , pub __wchb : [:: core :: ffi :: c_char ; 4usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __mbstate_t__bindgen_ty_1"] [:: core :: mem :: size_of :: < __mbstate_t__bindgen_ty_1 > () - 4usize] ; ["Alignment of __mbstate_t__bindgen_ty_1"] [:: core :: mem :: align_of :: < __mbstate_t__bindgen_ty_1 > () - 4usize] ; ["Offset of field: __mbstate_t__bindgen_ty_1::__wch"] [:: core :: mem :: offset_of ! (__mbstate_t__bindgen_ty_1 , __wch) - 0usize] ; ["Offset of field: __mbstate_t__bindgen_ty_1::__wchb"] [:: core :: mem :: offset_of ! (__mbstate_t__bindgen_ty_1 , __wchb) - 0usize] ; } ; impl :: core :: fmt :: Debug for __mbstate_t__bindgen_ty_1 { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "__mbstate_t__bindgen_ty_1 {{ union }}") } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __mbstate_t"] [:: core :: mem :: size_of :: < __mbstate_t > () - 8usize] ; ["Alignment of __mbstate_t"] [:: core :: mem :: align_of :: < __mbstate_t > () - 4usize] ; ["Offset of field: __mbstate_t::__count"] [:: core :: mem :: offset_of ! (__mbstate_t , __count) - 0usize] ; ["Offset of field: __mbstate_t::__value"] [:: core :: mem :: offset_of ! (__mbstate_t , __value) - 4usize] ; } ; impl :: core :: fmt :: Debug for __mbstate_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "__mbstate_t {{ __count: {:?}, __value: {:?} }}" , self . __count , self . __value) } } # [repr (C)] # [derive (Copy , Clone)] pub struct _G_fpos_t { pub __pos : __off_t , pub __state : __mbstate_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _G_fpos_t"] [:: core :: mem :: size_of :: < _G_fpos_t > () - 16usize] ; ["Alignment of _G_fpos_t"] [:: core :: mem :: align_of :: < _G_fpos_t > () - 8usize] ; ["Offset of field: _G_fpos_t::__pos"] [:: core :: mem :: offset_of ! (_G_fpos_t , __pos) - 0usize] ; ["Offset of field: _G_fpos_t::__state"] [:: core :: mem :: offset_of ! (_G_fpos_t , __state) - 8usize] ; } ; impl :: core :: fmt :: Debug for _G_fpos_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "_G_fpos_t {{ __pos: {:?}, __state: {:?} }}" , self . __pos , self . __state) } } pub type __fpos_t = _G_fpos_t ; # [repr (C)] # [derive (Copy , Clone)] pub struct _G_fpos64_t { pub __pos : __off64_t , pub __state : __mbstate_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _G_fpos64_t"] [:: core :: mem :: size_of :: < _G_fpos64_t > () - 16usize] ; ["Alignment of _G_fpos64_t"] [:: core :: mem :: align_of :: < _G_fpos64_t > () - 8usize] ; ["Offset of field: _G_fpos64_t::__pos"] [:: core :: mem :: offset_of ! (_G_fpos64_t , __pos) - 0usize] ; ["Offset of field: _G_fpos64_t::__state"] [:: core :: mem :: offset_of ! (_G_fpos64_t , __state) - 8usize] ; } ; impl :: core :: fmt :: Debug for _G_fpos64_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "_G_fpos64_t {{ __pos: {:?}, __state: {:?} }}" , self . __pos , self . __state) } } pub type __fpos64_t = _G_fpos64_t ; pub type __FILE = _IO_FILE ; pub type FILE = _IO_FILE ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_marker { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_codecvt { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_wide_data { _unused : [u8 ; 0] , } pub type _IO_lock_t = :: core :: ffi :: c_void ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_FILE { pub _flags : :: core :: ffi :: c_int , pub _IO_read_ptr : * mut :: core :: ffi :: c_char , pub _IO_read_end : * mut :: core :: ffi :: c_char , pub _IO_read_base : * mut :: core :: ffi :: c_char , pub _IO_write_base : * mut :: core :: ffi :: c_char , pub _IO_write_ptr : * mut :: core :: ffi :: c_char , pub _IO_write_end : * mut :: core :: ffi :: c_char , pub _IO_buf_base : * mut :: core :: ffi :: c_char , pub _IO_buf_end : * mut :: core :: ffi :: c_char , pub _IO_save_base : * mut :: core :: ffi :: c_char , pub _IO_backup_base : * mut :: core :: ffi :: c_char , pub _IO_save_end : * mut :: core :: ffi :: c_char , pub _markers : * mut _IO_marker , pub _chain : * mut _IO_FILE , pub _fileno : :: core :: ffi :: c_int , pub _bitfield_align_1 : [u32 ; 0] , pub _bitfield_1 : __BindgenBitfieldUnit < [u8 ; 3usize] > , pub _short_backupbuf : [:: core :: ffi :: c_char ; 1usize] , pub _old_offset : __off_t , pub _cur_column : :: core :: ffi :: c_ushort , pub _vtable_offset : :: core :: ffi :: c_schar , pub _shortbuf : [:: core :: ffi :: c_char ; 1usize] , pub _lock : * mut _IO_lock_t , pub _offset : __off64_t , pub _codecvt : * mut _IO_codecvt , pub _wide_data : * mut _IO_wide_data , pub _freeres_list : * mut _IO_FILE , pub _freeres_buf : * mut :: core :: ffi :: c_void , pub _prevchain : * mut * mut _IO_FILE , pub _mode : :: core :: ffi :: c_int , pub _unused3 : :: core :: ffi :: c_int , pub _total_written : __uint64_t , pub _unused2 : [:: core :: ffi :: c_char ; 8usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _IO_FILE"] [:: core :: mem :: size_of :: < _IO_FILE > () - 216usize] ; ["Alignment of _IO_FILE"] [:: core :: mem :: align_of :: < _IO_FILE > () - 8usize] ; ["Offset of field: _IO_FILE::_flags"] [:: core :: mem :: offset_of ! (_IO_FILE , _flags) - 0usize] ; ["Offset of field: _IO_FILE::_IO_read_ptr"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_ptr) - 8usize] ; ["Offset of field: _IO_FILE::_IO_read_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_end) - 16usize] ; ["Offset of field: _IO_FILE::_IO_read_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_base) - 24usize] ; ["Offset of field: _IO_FILE::_IO_write_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_base) - 32usize] ; ["Offset of field: _IO_FILE::_IO_write_ptr"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_ptr) - 40usize] ; ["Offset of field: _IO_FILE::_IO_write_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_end) - 48usize] ; ["Offset of field: _IO_FILE::_IO_buf_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_buf_base) - 56usize] ; ["Offset of field: _IO_FILE::_IO_buf_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_buf_end) - 64usize] ; ["Offset of field: _IO_FILE::_IO_save_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_save_base) - 72usize] ; ["Offset of field: _IO_FILE::_IO_backup_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_backup_base) - 80usize] ; ["Offset of field: _IO_FILE::_IO_save_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_save_end) - 88usize] ; ["Offset of field: _IO_FILE::_markers"] [:: core :: mem :: offset_of ! (_IO_FILE , _markers) - 96usize] ; ["Offset of field: _IO_FILE::_chain"] [:: core :: mem :: offset_of ! (_IO_FILE , _chain) - 104usize] ; ["Offset of field: _IO_FILE::_fileno"] [:: core :: mem :: offset_of ! (_IO_FILE , _fileno) - 112usize] ; ["Offset of field: _IO_FILE::_short_backupbuf"] [:: core :: mem :: offset_of ! (_IO_FILE , _short_backupbuf) - 119usize] ; ["Offset of field: _IO_FILE::_old_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _old_offset) - 120usize] ; ["Offset of field: _IO_FILE::_cur_column"] [:: core :: mem :: offset_of ! (_IO_FILE , _cur_column) - 128usize] ; ["Offset of field: _IO_FILE::_vtable_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _vtable_offset) - 130usize] ; ["Offset of field: _IO_FILE::_shortbuf"] [:: core :: mem :: offset_of ! (_IO_FILE , _shortbuf) - 131usize] ; ["Offset of field: _IO_FILE::_lock"] [:: core :: mem :: offset_of ! (_IO_FILE , _lock) - 136usize] ; ["Offset of field: _IO_FILE::_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _offset) - 144usize] ; ["Offset of field: _IO_FILE::_codecvt"] [:: core :: mem :: offset_of ! (_IO_FILE , _codecvt) - 152usize] ; ["Offset of field: _IO_FILE::_wide_data"] [:: core :: mem :: offset_of ! (_IO_FILE , _wide_data) - 160usize] ; ["Offset of field: _IO_FILE::_freeres_list"] [:: core :: mem :: offset_of ! (_IO_FILE , _freeres_list) - 168usize] ; ["Offset of field: _IO_FILE::_freeres_buf"] [:: core :: mem :: offset_of ! (_IO_FILE , _freeres_buf) - 176usize] ; ["Offset of field: _IO_FILE::_prevchain"] [:: core :: mem :: offset_of ! (_IO_FILE , _prevchain) - 184usize] ; ["Offset of field: _IO_FILE::_mode"] [:: core :: mem :: offset_of ! (_IO_FILE , _mode) - 192usize] ; ["Offset of field: _IO_FILE::_unused3"] [:: core :: mem :: offset_of ! (_IO_FILE , _unused3) - 196usize] ; ["Offset of field: _IO_FILE::_total_written"] [:: core :: mem :: offset_of ! (_IO_FILE , _total_written) - 200usize] ; ["Offset of field: _IO_FILE::_unused2"] [:: core :: mem :: offset_of ! (_IO_FILE , _unused2) - 208usize] ; } ; impl _IO_FILE { # [inline] pub fn _flags2 (& self) -> :: core :: ffi :: c_int { unsafe { u32::cast_signed (self . _bitfield_1 . get (0usize , 24u8) as u32) } } # [inline] pub fn set__flags2 (& mut self , val : :: core :: ffi :: c_int) { unsafe { let val : u32 = :: core :: mem :: transmute (val) ; self . _bitfield_1 . set (0usize , 24u8 , val as u64) } } # [inline] pub fn new_bitfield_1 (_flags2 : :: core :: ffi :: c_int) -> __BindgenBitfieldUnit < [u8 ; 3usize] > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [u8 ; 3usize] > = Default :: default () ; __bindgen_bitfield_unit . set (0usize , 24u8 , { let _flags2 : u32 = unsafe { :: core :: mem :: transmute (_flags2) } ; _flags2 as u64 }) ; __bindgen_bitfield_unit } } pub type cookie_read_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __buf : * mut :: core :: ffi :: c_char , __nbytes : usize) -> __ssize_t > ; pub type cookie_write_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __buf : * const :: core :: ffi :: c_char , __nbytes : usize) -> __ssize_t > ; pub type cookie_seek_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __pos : * mut __off64_t , __w : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int > ; pub type cookie_close_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void) -> :: core :: ffi :: 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 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _IO_cookie_io_functions_t"] [:: core :: mem :: size_of :: < _IO_cookie_io_functions_t > () - 32usize] ; ["Alignment of _IO_cookie_io_functions_t"] [:: core :: mem :: align_of :: < _IO_cookie_io_functions_t > () - 8usize] ; ["Offset of field: _IO_cookie_io_functions_t::read"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , read) - 0usize] ; ["Offset of field: _IO_cookie_io_functions_t::write"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , write) - 8usize] ; ["Offset of field: _IO_cookie_io_functions_t::seek"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , seek) - 16usize] ; ["Offset of field: _IO_cookie_io_functions_t::close"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , close) - 24usize] ; } ; 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" { pub static mut stdin : * mut FILE ; } extern "C" { pub static mut stdout : * mut FILE ; } extern "C" { pub static mut stderr : * mut FILE ; } extern "C" { pub fn remove (__filename : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rename (__old : * const :: core :: ffi :: c_char , __new : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn renameat (__oldfd : :: core :: ffi :: c_int , __old : * const :: core :: ffi :: c_char , __newfd : :: core :: ffi :: c_int , __new : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fclose (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn tmpfile () -> * mut FILE ; } extern "C" { pub fn tmpnam (arg1 : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn tmpnam_r (__s : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn tempnam (__dir : * const :: core :: ffi :: c_char , __pfx : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn fflush (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fflush_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fopen (__filename : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn freopen (__filename : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char , __stream : * mut FILE) -> * mut FILE ; } extern "C" { pub fn fdopen (__fd : :: core :: ffi :: c_int , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn fopencookie (__magic_cookie : * mut :: core :: ffi :: c_void , __modes : * const :: core :: ffi :: c_char , __io_funcs : cookie_io_functions_t) -> * mut FILE ; } extern "C" { pub fn fmemopen (__s : * mut :: core :: ffi :: c_void , __len : usize , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn open_memstream (__bufloc : * mut * mut :: core :: ffi :: c_char , __sizeloc : * mut usize) -> * mut FILE ; } extern "C" { pub fn setbuf (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char) ; } extern "C" { pub fn setvbuf (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char , __modes : :: core :: ffi :: c_int , __n : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn setbuffer (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char , __size : usize) ; } extern "C" { pub fn setlinebuf (__stream : * mut FILE) ; } extern "C" { pub fn fprintf (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn printf (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn sprintf (__s : * mut :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vfprintf (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vprintf (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsprintf (__s : * mut :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn snprintf (__s : * mut :: core :: ffi :: c_char , __maxlen : :: core :: ffi :: c_ulong , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsnprintf (__s : * mut :: core :: ffi :: c_char , __maxlen : :: core :: ffi :: c_ulong , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vasprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __f : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn __asprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn asprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vdprintf (__fd : :: core :: ffi :: c_int , __fmt : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn dprintf (__fd : :: core :: ffi :: c_int , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fscanf (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn scanf (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn sscanf (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } pub type __cfloat128 = __BindgenComplex < u128 > ; pub type _Float128 = u128 ; pub type _Float32 = f32 ; pub type _Float64 = f64 ; pub type _Float32x = f64 ; pub type _Float64x = u128 ; extern "C" { # [link_name = "\u{1}__isoc99_fscanf"] pub fn fscanf1 (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_scanf"] pub fn scanf1 (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_sscanf"] pub fn sscanf1 (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vfscanf (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vscanf (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsscanf (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vfscanf"] pub fn vfscanf1 (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vscanf"] pub fn vscanf1 (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vsscanf"] pub fn vsscanf1 (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgetc (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getc (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getchar () -> :: core :: ffi :: c_int ; } extern "C" { pub fn getc_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getchar_unlocked () -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgetc_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fputc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putchar (__c : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fputc_unlocked (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putc_unlocked (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putchar_unlocked (__c : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getw (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putw (__w : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgets (__s : * mut :: core :: ffi :: c_char , __n : :: core :: ffi :: c_int , __stream : * mut FILE) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn __getdelim (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __delimiter : :: core :: ffi :: c_int , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn getdelim (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __delimiter : :: core :: ffi :: c_int , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn getline (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn fputs (__s : * const :: core :: ffi :: c_char , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn puts (__s : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ungetc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fread (__ptr : * mut :: core :: ffi :: c_void , __size : :: core :: ffi :: c_ulong , __n : :: core :: ffi :: c_ulong , __stream : * mut FILE) -> :: core :: ffi :: c_ulong ; } extern "C" { pub fn fwrite (__ptr : * const :: core :: ffi :: c_void , __size : :: core :: ffi :: c_ulong , __n : :: core :: ffi :: c_ulong , __s : * mut FILE) -> :: core :: ffi :: c_ulong ; } extern "C" { pub fn fread_unlocked (__ptr : * mut :: core :: ffi :: c_void , __size : usize , __n : usize , __stream : * mut FILE) -> usize ; } extern "C" { pub fn fwrite_unlocked (__ptr : * const :: core :: ffi :: c_void , __size : usize , __n : usize , __stream : * mut FILE) -> usize ; } extern "C" { pub fn fseek (__stream : * mut FILE , __off : :: core :: ffi :: c_long , __whence : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ftell (__stream : * mut FILE) -> :: core :: ffi :: c_long ; } extern "C" { pub fn rewind (__stream : * mut FILE) ; } extern "C" { pub fn fseeko (__stream : * mut FILE , __off : __off_t , __whence : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ftello (__stream : * mut FILE) -> __off_t ; } extern "C" { pub fn fgetpos (__stream : * mut FILE , __pos : * mut fpos_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fsetpos (__stream : * mut FILE , __pos : * const fpos_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clearerr (__stream : * mut FILE) ; } extern "C" { pub fn feof (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ferror (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clearerr_unlocked (__stream : * mut FILE) ; } extern "C" { pub fn feof_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ferror_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn perror (__s : * const :: core :: ffi :: c_char) ; } extern "C" { pub fn fileno (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fileno_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn pclose (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn popen (__command : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn ctermid (__s : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn flockfile (__stream : * mut FILE) ; } extern "C" { pub fn ftrylockfile (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn funlockfile (__stream : * mut FILE) ; } extern "C" { pub fn __uflow (arg1 : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn __overflow (arg1 : * mut FILE , arg2 : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } pub const RC_CONSOLE_UNKNOWN : _bindgen_ty_12 = 0 ; pub const RC_CONSOLE_MEGA_DRIVE : _bindgen_ty_12 = 1 ; pub const RC_CONSOLE_NINTENDO_64 : _bindgen_ty_12 = 2 ; pub const RC_CONSOLE_SUPER_NINTENDO : _bindgen_ty_12 = 3 ; pub const RC_CONSOLE_GAMEBOY : _bindgen_ty_12 = 4 ; pub const RC_CONSOLE_GAMEBOY_ADVANCE : _bindgen_ty_12 = 5 ; pub const RC_CONSOLE_GAMEBOY_COLOR : _bindgen_ty_12 = 6 ; pub const RC_CONSOLE_NINTENDO : _bindgen_ty_12 = 7 ; pub const RC_CONSOLE_PC_ENGINE : _bindgen_ty_12 = 8 ; pub const RC_CONSOLE_SEGA_CD : _bindgen_ty_12 = 9 ; pub const RC_CONSOLE_SEGA_32X : _bindgen_ty_12 = 10 ; pub const RC_CONSOLE_MASTER_SYSTEM : _bindgen_ty_12 = 11 ; pub const RC_CONSOLE_PLAYSTATION : _bindgen_ty_12 = 12 ; pub const RC_CONSOLE_ATARI_LYNX : _bindgen_ty_12 = 13 ; pub const RC_CONSOLE_NEOGEO_POCKET : _bindgen_ty_12 = 14 ; pub const RC_CONSOLE_GAME_GEAR : _bindgen_ty_12 = 15 ; pub const RC_CONSOLE_GAMECUBE : _bindgen_ty_12 = 16 ; pub const RC_CONSOLE_ATARI_JAGUAR : _bindgen_ty_12 = 17 ; pub const RC_CONSOLE_NINTENDO_DS : _bindgen_ty_12 = 18 ; pub const RC_CONSOLE_WII : _bindgen_ty_12 = 19 ; pub const RC_CONSOLE_WII_U : _bindgen_ty_12 = 20 ; pub const RC_CONSOLE_PLAYSTATION_2 : _bindgen_ty_12 = 21 ; pub const RC_CONSOLE_XBOX : _bindgen_ty_12 = 22 ; pub const RC_CONSOLE_MAGNAVOX_ODYSSEY2 : _bindgen_ty_12 = 23 ; pub const RC_CONSOLE_POKEMON_MINI : _bindgen_ty_12 = 24 ; pub const RC_CONSOLE_ATARI_2600 : _bindgen_ty_12 = 25 ; pub const RC_CONSOLE_MS_DOS : _bindgen_ty_12 = 26 ; pub const RC_CONSOLE_ARCADE : _bindgen_ty_12 = 27 ; pub const RC_CONSOLE_VIRTUAL_BOY : _bindgen_ty_12 = 28 ; pub const RC_CONSOLE_MSX : _bindgen_ty_12 = 29 ; pub const RC_CONSOLE_COMMODORE_64 : _bindgen_ty_12 = 30 ; pub const RC_CONSOLE_ZX81 : _bindgen_ty_12 = 31 ; pub const RC_CONSOLE_ORIC : _bindgen_ty_12 = 32 ; pub const RC_CONSOLE_SG1000 : _bindgen_ty_12 = 33 ; pub const RC_CONSOLE_VIC20 : _bindgen_ty_12 = 34 ; pub const RC_CONSOLE_AMIGA : _bindgen_ty_12 = 35 ; pub const RC_CONSOLE_ATARI_ST : _bindgen_ty_12 = 36 ; pub const RC_CONSOLE_AMSTRAD_PC : _bindgen_ty_12 = 37 ; pub const RC_CONSOLE_APPLE_II : _bindgen_ty_12 = 38 ; pub const RC_CONSOLE_SATURN : _bindgen_ty_12 = 39 ; pub const RC_CONSOLE_DREAMCAST : _bindgen_ty_12 = 40 ; pub const RC_CONSOLE_PSP : _bindgen_ty_12 = 41 ; pub const RC_CONSOLE_CDI : _bindgen_ty_12 = 42 ; pub const RC_CONSOLE_3DO : _bindgen_ty_12 = 43 ; pub const RC_CONSOLE_COLECOVISION : _bindgen_ty_12 = 44 ; pub const RC_CONSOLE_INTELLIVISION : _bindgen_ty_12 = 45 ; pub const RC_CONSOLE_VECTREX : _bindgen_ty_12 = 46 ; pub const RC_CONSOLE_PC8800 : _bindgen_ty_12 = 47 ; pub const RC_CONSOLE_PC9800 : _bindgen_ty_12 = 48 ; pub const RC_CONSOLE_PCFX : _bindgen_ty_12 = 49 ; pub const RC_CONSOLE_ATARI_5200 : _bindgen_ty_12 = 50 ; pub const RC_CONSOLE_ATARI_7800 : _bindgen_ty_12 = 51 ; pub const RC_CONSOLE_X68K : _bindgen_ty_12 = 52 ; pub const RC_CONSOLE_WONDERSWAN : _bindgen_ty_12 = 53 ; pub const RC_CONSOLE_CASSETTEVISION : _bindgen_ty_12 = 54 ; pub const RC_CONSOLE_SUPER_CASSETTEVISION : _bindgen_ty_12 = 55 ; pub const RC_CONSOLE_NEO_GEO_CD : _bindgen_ty_12 = 56 ; pub const RC_CONSOLE_FAIRCHILD_CHANNEL_F : _bindgen_ty_12 = 57 ; pub const RC_CONSOLE_FM_TOWNS : _bindgen_ty_12 = 58 ; pub const RC_CONSOLE_ZX_SPECTRUM : _bindgen_ty_12 = 59 ; pub const RC_CONSOLE_GAME_AND_WATCH : _bindgen_ty_12 = 60 ; pub const RC_CONSOLE_NOKIA_NGAGE : _bindgen_ty_12 = 61 ; pub const RC_CONSOLE_NINTENDO_3DS : _bindgen_ty_12 = 62 ; pub const RC_CONSOLE_SUPERVISION : _bindgen_ty_12 = 63 ; pub const RC_CONSOLE_SHARPX1 : _bindgen_ty_12 = 64 ; pub const RC_CONSOLE_TIC80 : _bindgen_ty_12 = 65 ; pub const RC_CONSOLE_THOMSONTO8 : _bindgen_ty_12 = 66 ; pub const RC_CONSOLE_PC6000 : _bindgen_ty_12 = 67 ; pub const RC_CONSOLE_PICO : _bindgen_ty_12 = 68 ; pub const RC_CONSOLE_MEGADUCK : _bindgen_ty_12 = 69 ; pub const RC_CONSOLE_ZEEBO : _bindgen_ty_12 = 70 ; pub const RC_CONSOLE_ARDUBOY : _bindgen_ty_12 = 71 ; pub const RC_CONSOLE_WASM4 : _bindgen_ty_12 = 72 ; pub const RC_CONSOLE_ARCADIA_2001 : _bindgen_ty_12 = 73 ; pub const RC_CONSOLE_INTERTON_VC_4000 : _bindgen_ty_12 = 74 ; pub const RC_CONSOLE_ELEKTOR_TV_GAMES_COMPUTER : _bindgen_ty_12 = 75 ; pub const RC_CONSOLE_PC_ENGINE_CD : _bindgen_ty_12 = 76 ; pub const RC_CONSOLE_ATARI_JAGUAR_CD : _bindgen_ty_12 = 77 ; pub const RC_CONSOLE_NINTENDO_DSI : _bindgen_ty_12 = 78 ; pub const RC_CONSOLE_TI83 : _bindgen_ty_12 = 79 ; pub const RC_CONSOLE_UZEBOX : _bindgen_ty_12 = 80 ; pub const RC_CONSOLE_HUBS : _bindgen_ty_12 = 100 ; pub const RC_CONSOLE_EVENTS : _bindgen_ty_12 = 101 ; pub const RC_CONSOLE_STANDALONE : _bindgen_ty_12 = 102 ; # [doc = "\\\n| Console identifiers                                                         |\n\\"] pub type _bindgen_ty_12 = :: core :: ffi :: c_uint ; extern "C" { pub fn rc_console_name (console_id : u32) -> * const :: core :: ffi :: c_char ; } pub const RC_MEMORY_TYPE_SYSTEM_RAM : _bindgen_ty_13 = 0 ; pub const RC_MEMORY_TYPE_SAVE_RAM : _bindgen_ty_13 = 1 ; pub const RC_MEMORY_TYPE_VIDEO_RAM : _bindgen_ty_13 = 2 ; pub const RC_MEMORY_TYPE_READONLY : _bindgen_ty_13 = 3 ; pub const RC_MEMORY_TYPE_HARDWARE_CONTROLLER : _bindgen_ty_13 = 4 ; pub const RC_MEMORY_TYPE_VIRTUAL_RAM : _bindgen_ty_13 = 5 ; pub const RC_MEMORY_TYPE_UNUSED : _bindgen_ty_13 = 6 ; # [doc = "\\\n| Memory mapping                                                              |\n\\"] pub type _bindgen_ty_13 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memory_region_t { pub start_address : u32 , pub end_address : u32 , pub real_address : u32 , pub type_ : u8 , pub description : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memory_region_t"] [:: core :: mem :: size_of :: < rc_memory_region_t > () - 24usize] ; ["Alignment of rc_memory_region_t"] [:: core :: mem :: align_of :: < rc_memory_region_t > () - 8usize] ; ["Offset of field: rc_memory_region_t::start_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , start_address) - 0usize] ; ["Offset of field: rc_memory_region_t::end_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , end_address) - 4usize] ; ["Offset of field: rc_memory_region_t::real_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , real_address) - 8usize] ; ["Offset of field: rc_memory_region_t::type_"] [:: core :: mem :: offset_of ! (rc_memory_region_t , type_) - 12usize] ; ["Offset of field: rc_memory_region_t::description"] [:: core :: mem :: offset_of ! (rc_memory_region_t , description) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memory_regions_t { pub region : * const rc_memory_region_t , pub num_regions : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memory_regions_t"] [:: core :: mem :: size_of :: < rc_memory_regions_t > () - 16usize] ; ["Alignment of rc_memory_regions_t"] [:: core :: mem :: align_of :: < rc_memory_regions_t > () - 8usize] ; ["Offset of field: rc_memory_regions_t::region"] [:: core :: mem :: offset_of ! (rc_memory_regions_t , region) - 0usize] ; ["Offset of field: rc_memory_regions_t::num_regions"] [:: core :: mem :: offset_of ! (rc_memory_regions_t , num_regions) - 8usize] ; } ; extern "C" { pub fn rc_console_memory_regions (console_id : u32) -> * const rc_memory_regions_t ; } extern "C" { pub fn rc_hash_generate_from_buffer (hash : * mut :: core :: ffi :: c_char , console_id : u32 , buffer : * const u8 , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_hash_generate_from_file (hash : * mut :: core :: ffi :: c_char , console_id : u32 , path : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_iterator { pub buffer : * const u8 , pub buffer_size : usize , pub consoles : [u8 ; 12usize] , pub index : :: core :: ffi :: c_int , pub path : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_iterator"] [:: core :: mem :: size_of :: < rc_hash_iterator > () - 40usize] ; ["Alignment of rc_hash_iterator"] [:: core :: mem :: align_of :: < rc_hash_iterator > () - 8usize] ; ["Offset of field: rc_hash_iterator::buffer"] [:: core :: mem :: offset_of ! (rc_hash_iterator , buffer) - 0usize] ; ["Offset of field: rc_hash_iterator::buffer_size"] [:: core :: mem :: offset_of ! (rc_hash_iterator , buffer_size) - 8usize] ; ["Offset of field: rc_hash_iterator::consoles"] [:: core :: mem :: offset_of ! (rc_hash_iterator , consoles) - 16usize] ; ["Offset of field: rc_hash_iterator::index"] [:: core :: mem :: offset_of ! (rc_hash_iterator , index) - 28usize] ; ["Offset of field: rc_hash_iterator::path"] [:: core :: mem :: offset_of ! (rc_hash_iterator , path) - 32usize] ; } ; pub type rc_hash_iterator_t = rc_hash_iterator ; extern "C" { pub fn rc_hash_initialize_iterator (iterator : * mut rc_hash_iterator , path : * const :: core :: ffi :: c_char , buffer : * const u8 , buffer_size : usize) ; } extern "C" { pub fn rc_hash_destroy_iterator (iterator : * mut rc_hash_iterator) ; } extern "C" { pub fn rc_hash_iterate (hash : * mut :: core :: ffi :: c_char , iterator : * mut rc_hash_iterator) -> :: core :: ffi :: c_int ; } pub type rc_hash_message_callback = :: core :: option :: Option < unsafe extern "C" fn (arg1 : * const :: core :: ffi :: c_char) > ; extern "C" { pub fn rc_hash_init_error_message_callback (callback : rc_hash_message_callback) ; } extern "C" { pub fn rc_hash_init_verbose_message_callback (callback : rc_hash_message_callback) ; } pub type rc_hash_filereader_open_file_handler = :: core :: option :: Option < unsafe extern "C" fn (path_utf8 : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_void > ; pub type rc_hash_filereader_seek_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void , offset : i64 , origin : :: core :: ffi :: c_int) > ; pub type rc_hash_filereader_tell_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void) -> i64 > ; pub type rc_hash_filereader_read_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void , buffer : * mut :: core :: ffi :: c_void , requested_bytes : usize) -> usize > ; pub type rc_hash_filereader_close_file_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void) > ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_filereader { pub open : rc_hash_filereader_open_file_handler , pub seek : rc_hash_filereader_seek_handler , pub tell : rc_hash_filereader_tell_handler , pub read : rc_hash_filereader_read_handler , pub close : rc_hash_filereader_close_file_handler , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_filereader"] [:: core :: mem :: size_of :: < rc_hash_filereader > () - 40usize] ; ["Alignment of rc_hash_filereader"] [:: core :: mem :: align_of :: < rc_hash_filereader > () - 8usize] ; ["Offset of field: rc_hash_filereader::open"] [:: core :: mem :: offset_of ! (rc_hash_filereader , open) - 0usize] ; ["Offset of field: rc_hash_filereader::seek"] [:: core :: mem :: offset_of ! (rc_hash_filereader , seek) - 8usize] ; ["Offset of field: rc_hash_filereader::tell"] [:: core :: mem :: offset_of ! (rc_hash_filereader , tell) - 16usize] ; ["Offset of field: rc_hash_filereader::read"] [:: core :: mem :: offset_of ! (rc_hash_filereader , read) - 24usize] ; ["Offset of field: rc_hash_filereader::close"] [:: core :: mem :: offset_of ! (rc_hash_filereader , close) - 32usize] ; } ; extern "C" { pub fn rc_hash_init_custom_filereader (reader : * mut rc_hash_filereader) ; } pub type rc_hash_cdreader_open_track_handler = :: core :: option :: Option < unsafe extern "C" fn (path : * const :: core :: ffi :: c_char , track : u32) -> * mut :: core :: ffi :: c_void > ; pub type rc_hash_cdreader_read_sector_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void , sector : u32 , buffer : * mut :: core :: ffi :: c_void , requested_bytes : usize) -> usize > ; pub type rc_hash_cdreader_close_track_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void) > ; pub type rc_hash_cdreader_first_track_sector_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void) -> u32 > ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_cdreader { pub open_track : rc_hash_cdreader_open_track_handler , pub read_sector : rc_hash_cdreader_read_sector_handler , pub close_track : rc_hash_cdreader_close_track_handler , pub first_track_sector : rc_hash_cdreader_first_track_sector_handler , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_cdreader"] [:: core :: mem :: size_of :: < rc_hash_cdreader > () - 32usize] ; ["Alignment of rc_hash_cdreader"] [:: core :: mem :: align_of :: < rc_hash_cdreader > () - 8usize] ; ["Offset of field: rc_hash_cdreader::open_track"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , open_track) - 0usize] ; ["Offset of field: rc_hash_cdreader::read_sector"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , read_sector) - 8usize] ; ["Offset of field: rc_hash_cdreader::close_track"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , close_track) - 16usize] ; ["Offset of field: rc_hash_cdreader::first_track_sector"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , first_track_sector) - 24usize] ; } ; extern "C" { pub fn rc_hash_get_default_cdreader (cdreader : * mut rc_hash_cdreader) ; } extern "C" { pub fn rc_hash_init_default_cdreader () ; } extern "C" { pub fn rc_hash_init_custom_cdreader (reader : * mut rc_hash_cdreader) ; } pub type rc_hash_3ds_get_cia_normal_key_func = :: core :: option :: Option < unsafe extern "C" fn (common_key_index : u8 , out_normal_key : * mut u8) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_hash_init_3ds_get_cia_normal_key_func (func : rc_hash_3ds_get_cia_normal_key_func) ; } pub type rc_hash_3ds_get_ncch_normal_keys_func = :: core :: option :: Option < unsafe extern "C" fn (primary_key_y : * mut u8 , secondary_key_x_slot : u8 , optional_program_id : * mut u8 , out_primary_key : * mut u8 , out_secondary_key : * mut u8) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_hash_init_3ds_get_ncch_normal_keys_func (func : rc_hash_3ds_get_ncch_normal_keys_func) ; } # [doc = " API parameters for a fetch image request.\n NOTE: fetch image server response is the raw image data. There is no rc_api_process_fetch_image_response function."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_image_request_t { pub image_name : * const :: core :: ffi :: c_char , pub image_type : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_image_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_image_request_t > () - 16usize] ; ["Alignment of rc_api_fetch_image_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_image_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_image_request_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_fetch_image_request_t , image_name) - 0usize] ; ["Offset of field: rc_api_fetch_image_request_t::image_type"] [:: core :: mem :: offset_of ! (rc_api_fetch_image_request_t , image_type) - 8usize] ; } ; extern "C" { pub fn rc_api_init_fetch_image_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_image_request_t) -> :: core :: ffi :: c_int ; } # [doc = " API parameters for a resolve hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_resolve_hash_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_hash : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_resolve_hash_request_t"] [:: core :: mem :: size_of :: < rc_api_resolve_hash_request_t > () - 24usize] ; ["Alignment of rc_api_resolve_hash_request_t"] [:: core :: mem :: align_of :: < rc_api_resolve_hash_request_t > () - 8usize] ; ["Offset of field: rc_api_resolve_hash_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , username) - 0usize] ; ["Offset of field: rc_api_resolve_hash_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_resolve_hash_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , game_hash) - 16usize] ; } ; # [doc = " Response data for a resolve hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_resolve_hash_response_t { pub game_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_resolve_hash_response_t"] [:: core :: mem :: size_of :: < rc_api_resolve_hash_response_t > () - 320usize] ; ["Alignment of rc_api_resolve_hash_response_t"] [:: core :: mem :: align_of :: < rc_api_resolve_hash_response_t > () - 8usize] ; ["Offset of field: rc_api_resolve_hash_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_response_t , game_id) - 0usize] ; ["Offset of field: rc_api_resolve_hash_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_resolve_hash_request (request : * mut rc_api_request_t , api_params : * const rc_api_resolve_hash_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_resolve_hash_response (response : * mut rc_api_resolve_hash_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_resolve_hash_server_response (response : * mut rc_api_resolve_hash_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_resolve_hash_response (response : * mut rc_api_resolve_hash_response_t) ; } # [doc = " API parameters for a fetch game data request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_data_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_data_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_data_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_game_data_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_data_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , game_id) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_leaderboard_definition_t { pub id : u32 , pub format : :: core :: ffi :: c_int , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub lower_is_better : u8 , pub hidden : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_leaderboard_definition_t"] [:: core :: mem :: size_of :: < rc_api_leaderboard_definition_t > () - 40usize] ; ["Alignment of rc_api_leaderboard_definition_t"] [:: core :: mem :: align_of :: < rc_api_leaderboard_definition_t > () - 8usize] ; ["Offset of field: rc_api_leaderboard_definition_t::id"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , id) - 0usize] ; ["Offset of field: rc_api_leaderboard_definition_t::format"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , format) - 4usize] ; ["Offset of field: rc_api_leaderboard_definition_t::title"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , title) - 8usize] ; ["Offset of field: rc_api_leaderboard_definition_t::description"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , description) - 16usize] ; ["Offset of field: rc_api_leaderboard_definition_t::definition"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , definition) - 24usize] ; ["Offset of field: rc_api_leaderboard_definition_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , lower_is_better) - 32usize] ; ["Offset of field: rc_api_leaderboard_definition_t::hidden"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , hidden) - 33usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_achievement_definition_t { pub id : u32 , pub points : u32 , pub category : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub author : * const :: core :: ffi :: c_char , pub badge_name : * const :: core :: ffi :: c_char , pub created : time_t , pub updated : time_t , pub type_ : u32 , pub rarity : f32 , pub rarity_hardcore : f32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_achievement_definition_t"] [:: core :: mem :: size_of :: < rc_api_achievement_definition_t > () - 88usize] ; ["Alignment of rc_api_achievement_definition_t"] [:: core :: mem :: align_of :: < rc_api_achievement_definition_t > () - 8usize] ; ["Offset of field: rc_api_achievement_definition_t::id"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , id) - 0usize] ; ["Offset of field: rc_api_achievement_definition_t::points"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , points) - 4usize] ; ["Offset of field: rc_api_achievement_definition_t::category"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , category) - 8usize] ; ["Offset of field: rc_api_achievement_definition_t::title"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , title) - 16usize] ; ["Offset of field: rc_api_achievement_definition_t::description"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , description) - 24usize] ; ["Offset of field: rc_api_achievement_definition_t::definition"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , definition) - 32usize] ; ["Offset of field: rc_api_achievement_definition_t::author"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , author) - 40usize] ; ["Offset of field: rc_api_achievement_definition_t::badge_name"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , badge_name) - 48usize] ; ["Offset of field: rc_api_achievement_definition_t::created"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , created) - 56usize] ; ["Offset of field: rc_api_achievement_definition_t::updated"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , updated) - 64usize] ; ["Offset of field: rc_api_achievement_definition_t::type_"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , type_) - 72usize] ; ["Offset of field: rc_api_achievement_definition_t::rarity"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , rarity) - 76usize] ; ["Offset of field: rc_api_achievement_definition_t::rarity_hardcore"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , rarity_hardcore) - 80usize] ; } ; # [doc = " Response data for a fetch game data request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_data_response_t { pub id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub image_name : * const :: core :: ffi :: c_char , pub rich_presence_script : * const :: core :: ffi :: c_char , pub achievements : * mut rc_api_achievement_definition_t , pub num_achievements : u32 , pub leaderboards : * mut rc_api_leaderboard_definition_t , pub num_leaderboards : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_data_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_data_response_t > () - 376usize] ; ["Alignment of rc_api_fetch_game_data_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_data_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , console_id) - 4usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::title"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , title) - 8usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , image_name) - 16usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::rich_presence_script"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , rich_presence_script) - 24usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::achievements"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , achievements) - 32usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , num_achievements) - 40usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::leaderboards"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , leaderboards) - 48usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , num_leaderboards) - 56usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , response) - 64usize] ; } ; extern "C" { pub fn rc_api_init_fetch_game_data_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_game_data_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_data_response (response : * mut rc_api_fetch_game_data_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_data_server_response (response : * mut rc_api_fetch_game_data_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_game_data_response (response : * mut rc_api_fetch_game_data_response_t) ; } # [doc = " API parameters for a ping request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_ping_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub rich_presence : * const :: core :: ffi :: c_char , pub game_hash : * const :: core :: ffi :: c_char , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_ping_request_t"] [:: core :: mem :: size_of :: < rc_api_ping_request_t > () - 48usize] ; ["Alignment of rc_api_ping_request_t"] [:: core :: mem :: align_of :: < rc_api_ping_request_t > () - 8usize] ; ["Offset of field: rc_api_ping_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , username) - 0usize] ; ["Offset of field: rc_api_ping_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_ping_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_ping_request_t::rich_presence"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , rich_presence) - 24usize] ; ["Offset of field: rc_api_ping_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , game_hash) - 32usize] ; ["Offset of field: rc_api_ping_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , hardcore) - 40usize] ; } ; # [doc = " Response data for a ping request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_ping_response_t { pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_ping_response_t"] [:: core :: mem :: size_of :: < rc_api_ping_response_t > () - 312usize] ; ["Alignment of rc_api_ping_response_t"] [:: core :: mem :: align_of :: < rc_api_ping_response_t > () - 8usize] ; ["Offset of field: rc_api_ping_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_ping_response_t , response) - 0usize] ; } ; extern "C" { pub fn rc_api_init_ping_request (request : * mut rc_api_request_t , api_params : * const rc_api_ping_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_ping_response (response : * mut rc_api_ping_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_ping_server_response (response : * mut rc_api_ping_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_ping_response (response : * mut rc_api_ping_response_t) ; } # [doc = " API parameters for an award achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_award_achievement_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub hardcore : u32 , pub game_hash : * const :: core :: ffi :: c_char , pub seconds_since_unlock : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_award_achievement_request_t"] [:: core :: mem :: size_of :: < rc_api_award_achievement_request_t > () - 40usize] ; ["Alignment of rc_api_award_achievement_request_t"] [:: core :: mem :: align_of :: < rc_api_award_achievement_request_t > () - 8usize] ; ["Offset of field: rc_api_award_achievement_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , username) - 0usize] ; ["Offset of field: rc_api_award_achievement_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_award_achievement_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_award_achievement_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , hardcore) - 20usize] ; ["Offset of field: rc_api_award_achievement_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_award_achievement_request_t::seconds_since_unlock"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , seconds_since_unlock) - 32usize] ; } ; # [doc = " Response data for an award achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_award_achievement_response_t { pub awarded_achievement_id : u32 , pub new_player_score : u32 , pub new_player_score_softcore : u32 , pub achievements_remaining : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_award_achievement_response_t"] [:: core :: mem :: size_of :: < rc_api_award_achievement_response_t > () - 328usize] ; ["Alignment of rc_api_award_achievement_response_t"] [:: core :: mem :: align_of :: < rc_api_award_achievement_response_t > () - 8usize] ; ["Offset of field: rc_api_award_achievement_response_t::awarded_achievement_id"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , awarded_achievement_id) - 0usize] ; ["Offset of field: rc_api_award_achievement_response_t::new_player_score"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , new_player_score) - 4usize] ; ["Offset of field: rc_api_award_achievement_response_t::new_player_score_softcore"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , new_player_score_softcore) - 8usize] ; ["Offset of field: rc_api_award_achievement_response_t::achievements_remaining"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , achievements_remaining) - 12usize] ; ["Offset of field: rc_api_award_achievement_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_award_achievement_request (request : * mut rc_api_request_t , api_params : * const rc_api_award_achievement_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_award_achievement_response (response : * mut rc_api_award_achievement_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_award_achievement_server_response (response : * mut rc_api_award_achievement_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_award_achievement_response (response : * mut rc_api_award_achievement_response_t) ; } # [doc = " API parameters for a submit lboard entry request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_submit_lboard_entry_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub leaderboard_id : u32 , pub score : i32 , pub game_hash : * const :: core :: ffi :: c_char , pub seconds_since_completion : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_submit_lboard_entry_request_t"] [:: core :: mem :: size_of :: < rc_api_submit_lboard_entry_request_t > () - 40usize] ; ["Alignment of rc_api_submit_lboard_entry_request_t"] [:: core :: mem :: align_of :: < rc_api_submit_lboard_entry_request_t > () - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , username) - 0usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , leaderboard_id) - 16usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , score) - 20usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::seconds_since_completion"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , seconds_since_completion) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_lboard_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub score : i32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_lboard_entry_t"] [:: core :: mem :: size_of :: < rc_api_lboard_entry_t > () - 16usize] ; ["Alignment of rc_api_lboard_entry_t"] [:: core :: mem :: align_of :: < rc_api_lboard_entry_t > () - 8usize] ; ["Offset of field: rc_api_lboard_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , username) - 0usize] ; ["Offset of field: rc_api_lboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , rank) - 8usize] ; ["Offset of field: rc_api_lboard_entry_t::score"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , score) - 12usize] ; } ; # [doc = " Response data for a submit lboard entry request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_submit_lboard_entry_response_t { pub submitted_score : i32 , pub best_score : i32 , pub new_rank : u32 , pub num_entries : u32 , pub top_entries : * mut rc_api_lboard_entry_t , pub num_top_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_submit_lboard_entry_response_t"] [:: core :: mem :: size_of :: < rc_api_submit_lboard_entry_response_t > () - 344usize] ; ["Alignment of rc_api_submit_lboard_entry_response_t"] [:: core :: mem :: align_of :: < rc_api_submit_lboard_entry_response_t > () - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::submitted_score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , submitted_score) - 0usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::best_score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , best_score) - 4usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::new_rank"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , new_rank) - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , num_entries) - 12usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::top_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , top_entries) - 16usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::num_top_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , num_top_entries) - 24usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_submit_lboard_entry_request (request : * mut rc_api_request_t , api_params : * const rc_api_submit_lboard_entry_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_submit_lboard_entry_response (response : * mut rc_api_submit_lboard_entry_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_submit_lboard_entry_server_response (response : * mut rc_api_submit_lboard_entry_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_submit_lboard_entry_response (response : * mut rc_api_submit_lboard_entry_response_t) ; } # [doc = " Callback used to read num_bytes bytes from memory starting at address. If\n num_bytes is greater than 1, the value is read in little-endian from\n memory."] pub type rc_runtime_peek_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , num_bytes : u32 , ud : * mut :: core :: ffi :: c_void) -> u32 > ; # [doc = "\\\n| Runtime                                                                     |\n\\"] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_trigger_t { pub id : u32 , pub trigger : * mut rc_trigger_t , pub buffer : * mut :: core :: ffi :: c_void , pub invalid_memref : * mut rc_memref_t , pub md5 : [u8 ; 16usize] , pub serialized_size : i32 , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_trigger_t"] [:: core :: mem :: size_of :: < rc_runtime_trigger_t > () - 56usize] ; ["Alignment of rc_runtime_trigger_t"] [:: core :: mem :: align_of :: < rc_runtime_trigger_t > () - 8usize] ; ["Offset of field: rc_runtime_trigger_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , id) - 0usize] ; ["Offset of field: rc_runtime_trigger_t::trigger"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , trigger) - 8usize] ; ["Offset of field: rc_runtime_trigger_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , buffer) - 16usize] ; ["Offset of field: rc_runtime_trigger_t::invalid_memref"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , invalid_memref) - 24usize] ; ["Offset of field: rc_runtime_trigger_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , md5) - 32usize] ; ["Offset of field: rc_runtime_trigger_t::serialized_size"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , serialized_size) - 48usize] ; ["Offset of field: rc_runtime_trigger_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , owns_memrefs) - 52usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_lboard_t { pub id : u32 , pub value : i32 , pub lboard : * mut rc_lboard_t , pub buffer : * mut :: core :: ffi :: c_void , pub invalid_memref : * mut rc_memref_t , pub md5 : [u8 ; 16usize] , pub serialized_size : u32 , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_lboard_t"] [:: core :: mem :: size_of :: < rc_runtime_lboard_t > () - 56usize] ; ["Alignment of rc_runtime_lboard_t"] [:: core :: mem :: align_of :: < rc_runtime_lboard_t > () - 8usize] ; ["Offset of field: rc_runtime_lboard_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , id) - 0usize] ; ["Offset of field: rc_runtime_lboard_t::value"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , value) - 4usize] ; ["Offset of field: rc_runtime_lboard_t::lboard"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , lboard) - 8usize] ; ["Offset of field: rc_runtime_lboard_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , buffer) - 16usize] ; ["Offset of field: rc_runtime_lboard_t::invalid_memref"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , invalid_memref) - 24usize] ; ["Offset of field: rc_runtime_lboard_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , md5) - 32usize] ; ["Offset of field: rc_runtime_lboard_t::serialized_size"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , serialized_size) - 48usize] ; ["Offset of field: rc_runtime_lboard_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , owns_memrefs) - 52usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_richpresence_t { pub richpresence : * mut rc_richpresence_t , pub buffer : * mut :: core :: ffi :: c_void , pub previous : * mut rc_runtime_richpresence_t , pub md5 : [u8 ; 16usize] , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_richpresence_t"] [:: core :: mem :: size_of :: < rc_runtime_richpresence_t > () - 48usize] ; ["Alignment of rc_runtime_richpresence_t"] [:: core :: mem :: align_of :: < rc_runtime_richpresence_t > () - 8usize] ; ["Offset of field: rc_runtime_richpresence_t::richpresence"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , richpresence) - 0usize] ; ["Offset of field: rc_runtime_richpresence_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , buffer) - 8usize] ; ["Offset of field: rc_runtime_richpresence_t::previous"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , previous) - 16usize] ; ["Offset of field: rc_runtime_richpresence_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , md5) - 24usize] ; ["Offset of field: rc_runtime_richpresence_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , owns_memrefs) - 40usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_t { pub triggers : * mut rc_runtime_trigger_t , pub trigger_count : u32 , pub trigger_capacity : u32 , pub lboards : * mut rc_runtime_lboard_t , pub lboard_count : u32 , pub lboard_capacity : u32 , pub richpresence : * mut rc_runtime_richpresence_t , pub memrefs : * mut rc_memref_t , pub next_memref : * mut * mut rc_memref_t , pub variables : * mut rc_value_t , pub next_variable : * mut * mut rc_value_t , pub owns_self : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_t"] [:: core :: mem :: size_of :: < rc_runtime_t > () - 80usize] ; ["Alignment of rc_runtime_t"] [:: core :: mem :: align_of :: < rc_runtime_t > () - 8usize] ; ["Offset of field: rc_runtime_t::triggers"] [:: core :: mem :: offset_of ! (rc_runtime_t , triggers) - 0usize] ; ["Offset of field: rc_runtime_t::trigger_count"] [:: core :: mem :: offset_of ! (rc_runtime_t , trigger_count) - 8usize] ; ["Offset of field: rc_runtime_t::trigger_capacity"] [:: core :: mem :: offset_of ! (rc_runtime_t , trigger_capacity) - 12usize] ; ["Offset of field: rc_runtime_t::lboards"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboards) - 16usize] ; ["Offset of field: rc_runtime_t::lboard_count"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboard_count) - 24usize] ; ["Offset of field: rc_runtime_t::lboard_capacity"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboard_capacity) - 28usize] ; ["Offset of field: rc_runtime_t::richpresence"] [:: core :: mem :: offset_of ! (rc_runtime_t , richpresence) - 32usize] ; ["Offset of field: rc_runtime_t::memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_t , memrefs) - 40usize] ; ["Offset of field: rc_runtime_t::next_memref"] [:: core :: mem :: offset_of ! (rc_runtime_t , next_memref) - 48usize] ; ["Offset of field: rc_runtime_t::variables"] [:: core :: mem :: offset_of ! (rc_runtime_t , variables) - 56usize] ; ["Offset of field: rc_runtime_t::next_variable"] [:: core :: mem :: offset_of ! (rc_runtime_t , next_variable) - 64usize] ; ["Offset of field: rc_runtime_t::owns_self"] [:: core :: mem :: offset_of ! (rc_runtime_t , owns_self) - 72usize] ; } ; extern "C" { pub fn rc_runtime_alloc () -> * mut rc_runtime_t ; } extern "C" { pub fn rc_runtime_init (runtime : * mut rc_runtime_t) ; } extern "C" { pub fn rc_runtime_destroy (runtime : * mut rc_runtime_t) ; } extern "C" { pub fn rc_runtime_activate_achievement (runtime : * mut rc_runtime_t , id : u32 , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deactivate_achievement (runtime : * mut rc_runtime_t , id : u32) ; } extern "C" { pub fn rc_runtime_get_achievement (runtime : * const rc_runtime_t , id : u32) -> * mut rc_trigger_t ; } extern "C" { pub fn rc_runtime_get_achievement_measured (runtime : * const rc_runtime_t , id : u32 , measured_value : * mut :: core :: ffi :: c_uint , measured_target : * mut :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_format_achievement_measured (runtime : * const rc_runtime_t , id : u32 , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_activate_lboard (runtime : * mut rc_runtime_t , id : u32 , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deactivate_lboard (runtime : * mut rc_runtime_t , id : u32) ; } extern "C" { pub fn rc_runtime_get_lboard (runtime : * const rc_runtime_t , id : u32) -> * mut rc_lboard_t ; } extern "C" { pub fn rc_runtime_format_lboard_value (buffer : * mut :: core :: ffi :: c_char , size : :: core :: ffi :: c_int , value : i32 , format : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_activate_richpresence (runtime : * mut rc_runtime_t , script : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_get_richpresence (runtime : * const rc_runtime_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_runtime_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } pub const RC_RUNTIME_EVENT_ACHIEVEMENT_ACTIVATED : _bindgen_ty_14 = 0 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PAUSED : _bindgen_ty_14 = 1 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_RESET : _bindgen_ty_14 = 2 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_TRIGGERED : _bindgen_ty_14 = 3 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PRIMED : _bindgen_ty_14 = 4 ; pub const RC_RUNTIME_EVENT_LBOARD_STARTED : _bindgen_ty_14 = 5 ; pub const RC_RUNTIME_EVENT_LBOARD_CANCELED : _bindgen_ty_14 = 6 ; pub const RC_RUNTIME_EVENT_LBOARD_UPDATED : _bindgen_ty_14 = 7 ; pub const RC_RUNTIME_EVENT_LBOARD_TRIGGERED : _bindgen_ty_14 = 8 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_DISABLED : _bindgen_ty_14 = 9 ; pub const RC_RUNTIME_EVENT_LBOARD_DISABLED : _bindgen_ty_14 = 10 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_UNPRIMED : _bindgen_ty_14 = 11 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PROGRESS_UPDATED : _bindgen_ty_14 = 12 ; pub type _bindgen_ty_14 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_event_t { pub id : u32 , pub value : i32 , pub type_ : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_event_t"] [:: core :: mem :: size_of :: < rc_runtime_event_t > () - 12usize] ; ["Alignment of rc_runtime_event_t"] [:: core :: mem :: align_of :: < rc_runtime_event_t > () - 4usize] ; ["Offset of field: rc_runtime_event_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , id) - 0usize] ; ["Offset of field: rc_runtime_event_t::value"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , value) - 4usize] ; ["Offset of field: rc_runtime_event_t::type_"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , type_) - 8usize] ; } ; pub type rc_runtime_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (runtime_event : * const rc_runtime_event_t) > ; extern "C" { pub fn rc_runtime_do_frame (runtime : * mut rc_runtime_t , event_handler : rc_runtime_event_handler_t , peek : rc_runtime_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) ; } extern "C" { pub fn rc_runtime_reset (runtime : * mut rc_runtime_t) ; } pub type rc_runtime_validate_address_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_runtime_validate_addresses (runtime : * mut rc_runtime_t , event_handler : rc_runtime_event_handler_t , validate_handler : rc_runtime_validate_address_t) ; } extern "C" { pub fn rc_runtime_invalidate_address (runtime : * mut rc_runtime_t , address : u32) ; } extern "C" { pub fn rc_runtime_progress_size (runtime : * const rc_runtime_t , L : * mut lua_State) -> u32 ; } extern "C" { pub fn rc_runtime_serialize_progress (buffer : * mut :: core :: ffi :: c_void , runtime : * const rc_runtime_t , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_serialize_progress_sized (buffer : * mut u8 , buffer_size : u32 , runtime : * const rc_runtime_t , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deserialize_progress (runtime : * mut rc_runtime_t , serialized : * const u8 , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deserialize_progress_sized (runtime : * mut rc_runtime_t , serialized : * const u8 , serialized_size : u32 , L : * mut lua_State) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_async_handle_t { _unused : [u8 ; 0] , } # [doc = " Callback used to read num_bytes bytes from memory starting at address into buffer.\n Returns the number of bytes read. A return value of 0 indicates the address was invalid."] pub type rc_client_read_memory_func_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , buffer : * mut u8 , num_bytes : u32 , client : * mut rc_client_t) -> u32 > ; # [doc = " Internal method passed to rc_client_server_call_t to process the server response."] pub type rc_client_server_callback_t = :: core :: option :: Option < unsafe extern "C" fn (server_response : * const rc_api_server_response_t , callback_data : * mut :: core :: ffi :: c_void) > ; # [doc = " Callback used to issue a request to the server."] pub type rc_client_server_call_t = :: core :: option :: Option < unsafe extern "C" fn (request : * const rc_api_request_t , callback : rc_client_server_callback_t , callback_data : * mut :: core :: ffi :: c_void , client : * mut rc_client_t) > ; # [doc = " Generic callback for asynchronous eventing."] pub type rc_client_callback_t = :: core :: option :: Option < unsafe extern "C" fn (result : :: core :: ffi :: c_int , error_message : * const :: core :: ffi :: c_char , client : * mut rc_client_t , userdata : * mut :: core :: ffi :: c_void) > ; # [doc = " Callback for logging or displaying a message."] pub type rc_client_message_callback_t = :: core :: option :: Option < unsafe extern "C" fn (message : * const :: core :: ffi :: c_char , client : * const rc_client_t) > ; extern "C" { # [doc = " Creates a new rc_client_t object."] pub fn rc_client_create (read_memory_function : rc_client_read_memory_func_t , server_call_function : rc_client_server_call_t) -> * mut rc_client_t ; } extern "C" { # [doc = " Releases resources associated to a rc_client_t object.\n Pointer will no longer be valid after making this call."] pub fn rc_client_destroy (client : * mut rc_client_t) ; } extern "C" { # [doc = " Sets whether hardcore is enabled (on by default).\n Can be called with a game loaded.\n Enabling hardcore with a game loaded will raise an RC_CLIENT_EVENT_RESET\n event. Processing will be disabled until rc_client_reset is called."] pub fn rc_client_set_hardcore_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether hardcore is enabled (on by default)."] pub fn rc_client_get_hardcore_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether encore mode is enabled (off by default).\n Evaluated when loading a game. Has no effect while a game is loaded."] pub fn rc_client_set_encore_mode_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether encore mode is enabled (off by default)."] pub fn rc_client_get_encore_mode_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether unofficial achievements should be loaded.\n Evaluated when loading a game. Has no effect while a game is loaded."] pub fn rc_client_set_unofficial_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether unofficial achievements should be loaded."] pub fn rc_client_get_unofficial_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether spectator mode is enabled (off by default).\n If enabled, events for achievement unlocks and leaderboard submissions will be\n raised, but server calls to actually perform the unlock/submit will not occur.\n Can be modified while a game is loaded. Evaluated at unlock/submit time.\n Cannot be modified if disabled before a game is loaded."] pub fn rc_client_set_spectator_mode_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether spectator mode is enabled (off by default)."] pub fn rc_client_get_spectator_mode_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Attaches client-specific data to the runtime."] pub fn rc_client_set_userdata (client : * mut rc_client_t , userdata : * mut :: core :: ffi :: c_void) ; } extern "C" { # [doc = " Gets the client-specific data attached to the runtime."] pub fn rc_client_get_userdata (client : * const rc_client_t) -> * mut :: core :: ffi :: c_void ; } extern "C" { # [doc = " Sets the name of the server to use."] pub fn rc_client_set_host (client : * const rc_client_t , hostname : * const :: core :: ffi :: c_char) ; } pub type rc_clock_t = u64 ; pub type rc_get_time_millisecs_func_t = :: core :: option :: Option < unsafe extern "C" fn (client : * const rc_client_t) -> rc_clock_t > ; extern "C" { # [doc = " Specifies a function that returns a value that increases once per millisecond."] pub fn rc_client_set_get_time_millisecs_function (client : * mut rc_client_t , handler : rc_get_time_millisecs_func_t) ; } extern "C" { # [doc = " Marks an async process as aborted. The associated callback will not be called."] pub fn rc_client_abort_async (client : * mut rc_client_t , async_handle : * mut rc_client_async_handle_t) ; } extern "C" { # [doc = " Gets a clause that can be added to the User-Agent to identify the version of rcheevos being used."] pub fn rc_client_get_user_agent_clause (client : * mut rc_client_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> usize ; } extern "C" { # [doc = " Sets the logging level and provides a callback to be called to do the logging."] pub fn rc_client_enable_logging (client : * mut rc_client_t , level : :: core :: ffi :: c_int , callback : rc_client_message_callback_t) ; } pub const RC_CLIENT_LOG_LEVEL_NONE : _bindgen_ty_15 = 0 ; pub const RC_CLIENT_LOG_LEVEL_ERROR : _bindgen_ty_15 = 1 ; pub const RC_CLIENT_LOG_LEVEL_WARN : _bindgen_ty_15 = 2 ; pub const RC_CLIENT_LOG_LEVEL_INFO : _bindgen_ty_15 = 3 ; pub const RC_CLIENT_LOG_LEVEL_VERBOSE : _bindgen_ty_15 = 4 ; pub const NUM_RC_CLIENT_LOG_LEVELS : _bindgen_ty_15 = 5 ; pub type _bindgen_ty_15 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Attempt to login a user."] pub fn rc_client_begin_login_with_password (client : * mut rc_client_t , username : * const :: core :: ffi :: c_char , password : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Attempt to login a user."] pub fn rc_client_begin_login_with_token (client : * mut rc_client_t , username : * const :: core :: ffi :: c_char , token : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Logout the user."] pub fn rc_client_logout (client : * mut rc_client_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_user_t { pub display_name : * const :: core :: ffi :: c_char , pub username : * const :: core :: ffi :: c_char , pub token : * const :: core :: ffi :: c_char , pub score : u32 , pub score_softcore : u32 , pub num_unread_messages : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_user_t"] [:: core :: mem :: size_of :: < rc_client_user_t > () - 40usize] ; ["Alignment of rc_client_user_t"] [:: core :: mem :: align_of :: < rc_client_user_t > () - 8usize] ; ["Offset of field: rc_client_user_t::display_name"] [:: core :: mem :: offset_of ! (rc_client_user_t , display_name) - 0usize] ; ["Offset of field: rc_client_user_t::username"] [:: core :: mem :: offset_of ! (rc_client_user_t , username) - 8usize] ; ["Offset of field: rc_client_user_t::token"] [:: core :: mem :: offset_of ! (rc_client_user_t , token) - 16usize] ; ["Offset of field: rc_client_user_t::score"] [:: core :: mem :: offset_of ! (rc_client_user_t , score) - 24usize] ; ["Offset of field: rc_client_user_t::score_softcore"] [:: core :: mem :: offset_of ! (rc_client_user_t , score_softcore) - 28usize] ; ["Offset of field: rc_client_user_t::num_unread_messages"] [:: core :: mem :: offset_of ! (rc_client_user_t , num_unread_messages) - 32usize] ; } ; extern "C" { # [doc = " Gets information about the logged in user. Will return NULL if the user is not logged in."] pub fn rc_client_get_user_info (client : * const rc_client_t) -> * const rc_client_user_t ; } extern "C" { # [doc = " Gets the URL for the user's profile picture.\n Returns RC_OK on success."] pub fn rc_client_user_get_image_url (user : * const rc_client_user_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_user_game_summary_t { pub num_core_achievements : u32 , pub num_unofficial_achievements : u32 , pub num_unlocked_achievements : u32 , pub num_unsupported_achievements : u32 , pub points_core : u32 , pub points_unlocked : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_user_game_summary_t"] [:: core :: mem :: size_of :: < rc_client_user_game_summary_t > () - 24usize] ; ["Alignment of rc_client_user_game_summary_t"] [:: core :: mem :: align_of :: < rc_client_user_game_summary_t > () - 4usize] ; ["Offset of field: rc_client_user_game_summary_t::num_core_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_core_achievements) - 0usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unofficial_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unofficial_achievements) - 4usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unlocked_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unlocked_achievements) - 8usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unsupported_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unsupported_achievements) - 12usize] ; ["Offset of field: rc_client_user_game_summary_t::points_core"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , points_core) - 16usize] ; ["Offset of field: rc_client_user_game_summary_t::points_unlocked"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , points_unlocked) - 20usize] ; } ; extern "C" { # [doc = " Gets a breakdown of the number of achievements in the game, and how many the user has unlocked.\n Used for the \"You have unlocked X of Y achievements\" message shown when the game starts."] pub fn rc_client_get_user_game_summary (client : * const rc_client_t , summary : * mut rc_client_user_game_summary_t) ; } extern "C" { # [doc = " Start loading an unidentified game."] pub fn rc_client_begin_identify_and_load_game (client : * mut rc_client_t , console_id : u32 , file_path : * const :: core :: ffi :: c_char , data : * const u8 , data_size : usize , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Start loading a game."] pub fn rc_client_begin_load_game (client : * mut rc_client_t , hash : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Gets the current progress of the asynchronous load game process."] pub fn rc_client_get_load_game_state (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } pub const RC_CLIENT_LOAD_GAME_STATE_NONE : _bindgen_ty_16 = 0 ; pub const RC_CLIENT_LOAD_GAME_STATE_IDENTIFYING_GAME : _bindgen_ty_16 = 1 ; pub const RC_CLIENT_LOAD_GAME_STATE_AWAIT_LOGIN : _bindgen_ty_16 = 2 ; pub const RC_CLIENT_LOAD_GAME_STATE_FETCHING_GAME_DATA : _bindgen_ty_16 = 3 ; pub const RC_CLIENT_LOAD_GAME_STATE_STARTING_SESSION : _bindgen_ty_16 = 4 ; pub const RC_CLIENT_LOAD_GAME_STATE_DONE : _bindgen_ty_16 = 5 ; pub const RC_CLIENT_LOAD_GAME_STATE_ABORTED : _bindgen_ty_16 = 6 ; pub type _bindgen_ty_16 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Determines if a game was successfully identified and loaded."] pub fn rc_client_is_game_loaded (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Unloads the current game."] pub fn rc_client_unload_game (client : * mut rc_client_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_game_t { pub id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub hash : * const :: core :: ffi :: c_char , pub badge_name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_game_t"] [:: core :: mem :: size_of :: < rc_client_game_t > () - 32usize] ; ["Alignment of rc_client_game_t"] [:: core :: mem :: align_of :: < rc_client_game_t > () - 8usize] ; ["Offset of field: rc_client_game_t::id"] [:: core :: mem :: offset_of ! (rc_client_game_t , id) - 0usize] ; ["Offset of field: rc_client_game_t::console_id"] [:: core :: mem :: offset_of ! (rc_client_game_t , console_id) - 4usize] ; ["Offset of field: rc_client_game_t::title"] [:: core :: mem :: offset_of ! (rc_client_game_t , title) - 8usize] ; ["Offset of field: rc_client_game_t::hash"] [:: core :: mem :: offset_of ! (rc_client_game_t , hash) - 16usize] ; ["Offset of field: rc_client_game_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_game_t , badge_name) - 24usize] ; } ; extern "C" { # [doc = " Get information about the current game. Returns NULL if no game is loaded.\n NOTE: returns a dummy game record if an unidentified game is loaded."] pub fn rc_client_get_game_info (client : * const rc_client_t) -> * const rc_client_game_t ; } extern "C" { # [doc = " Gets the URL for the game image.\n Returns RC_OK on success."] pub fn rc_client_game_get_image_url (game : * const rc_client_game_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Changes the active disc in a multi-disc game."] pub fn rc_client_begin_change_media (client : * mut rc_client_t , file_path : * const :: core :: ffi :: c_char , data : * const u8 , data_size : usize , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Changes the active disc in a multi-disc game."] pub fn rc_client_begin_change_media_from_hash (client : * mut rc_client_t , hash : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } # [doc = "\\\n| Subsets                                                                     |\n\\"] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_subset_t { pub id : u32 , pub title : * const :: core :: ffi :: c_char , pub badge_name : [:: core :: ffi :: c_char ; 16usize] , pub num_achievements : u32 , pub num_leaderboards : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_subset_t"] [:: core :: mem :: size_of :: < rc_client_subset_t > () - 40usize] ; ["Alignment of rc_client_subset_t"] [:: core :: mem :: align_of :: < rc_client_subset_t > () - 8usize] ; ["Offset of field: rc_client_subset_t::id"] [:: core :: mem :: offset_of ! (rc_client_subset_t , id) - 0usize] ; ["Offset of field: rc_client_subset_t::title"] [:: core :: mem :: offset_of ! (rc_client_subset_t , title) - 8usize] ; ["Offset of field: rc_client_subset_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_subset_t , badge_name) - 16usize] ; ["Offset of field: rc_client_subset_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_client_subset_t , num_achievements) - 32usize] ; ["Offset of field: rc_client_subset_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_client_subset_t , num_leaderboards) - 36usize] ; } ; extern "C" { pub fn rc_client_get_subset_info (client : * mut rc_client_t , subset_id : u32) -> * const rc_client_subset_t ; } pub const RC_CLIENT_ACHIEVEMENT_STATE_INACTIVE : _bindgen_ty_17 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_ACTIVE : _bindgen_ty_17 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_UNLOCKED : _bindgen_ty_17 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_DISABLED : _bindgen_ty_17 = 3 ; pub const NUM_RC_CLIENT_ACHIEVEMENT_STATES : _bindgen_ty_17 = 4 ; # [doc = "\\\n| Achievements                                                                |\n\\"] pub type _bindgen_ty_17 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_NONE : _bindgen_ty_18 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_CORE : _bindgen_ty_18 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_UNOFFICIAL : _bindgen_ty_18 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_CORE_AND_UNOFFICIAL : _bindgen_ty_18 = 3 ; pub type _bindgen_ty_18 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_STANDARD : _bindgen_ty_19 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_MISSABLE : _bindgen_ty_19 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_PROGRESSION : _bindgen_ty_19 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_WIN : _bindgen_ty_19 = 3 ; pub type _bindgen_ty_19 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNKNOWN : _bindgen_ty_20 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_LOCKED : _bindgen_ty_20 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNLOCKED : _bindgen_ty_20 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNSUPPORTED : _bindgen_ty_20 = 3 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNOFFICIAL : _bindgen_ty_20 = 4 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_RECENTLY_UNLOCKED : _bindgen_ty_20 = 5 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_ACTIVE_CHALLENGE : _bindgen_ty_20 = 6 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_ALMOST_THERE : _bindgen_ty_20 = 7 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNSYNCED : _bindgen_ty_20 = 8 ; pub const NUM_RC_CLIENT_ACHIEVEMENT_BUCKETS : _bindgen_ty_20 = 9 ; pub type _bindgen_ty_20 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_NONE : _bindgen_ty_21 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_SOFTCORE : _bindgen_ty_21 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_HARDCORE : _bindgen_ty_21 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_BOTH : _bindgen_ty_21 = 3 ; pub type _bindgen_ty_21 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_t { pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub badge_name : [:: core :: ffi :: c_char ; 8usize] , pub measured_progress : [:: core :: ffi :: c_char ; 24usize] , pub measured_percent : f32 , pub id : u32 , pub points : u32 , pub unlock_time : time_t , pub state : u8 , pub category : u8 , pub bucket : u8 , pub unlocked : u8 , pub rarity : f32 , pub rarity_hardcore : f32 , pub type_ : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_t"] [:: core :: mem :: size_of :: < rc_client_achievement_t > () - 88usize] ; ["Alignment of rc_client_achievement_t"] [:: core :: mem :: align_of :: < rc_client_achievement_t > () - 8usize] ; ["Offset of field: rc_client_achievement_t::title"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , title) - 0usize] ; ["Offset of field: rc_client_achievement_t::description"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , description) - 8usize] ; ["Offset of field: rc_client_achievement_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , badge_name) - 16usize] ; ["Offset of field: rc_client_achievement_t::measured_progress"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , measured_progress) - 24usize] ; ["Offset of field: rc_client_achievement_t::measured_percent"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , measured_percent) - 48usize] ; ["Offset of field: rc_client_achievement_t::id"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , id) - 52usize] ; ["Offset of field: rc_client_achievement_t::points"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , points) - 56usize] ; ["Offset of field: rc_client_achievement_t::unlock_time"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , unlock_time) - 64usize] ; ["Offset of field: rc_client_achievement_t::state"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , state) - 72usize] ; ["Offset of field: rc_client_achievement_t::category"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , category) - 73usize] ; ["Offset of field: rc_client_achievement_t::bucket"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , bucket) - 74usize] ; ["Offset of field: rc_client_achievement_t::unlocked"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , unlocked) - 75usize] ; ["Offset of field: rc_client_achievement_t::rarity"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , rarity) - 76usize] ; ["Offset of field: rc_client_achievement_t::rarity_hardcore"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , rarity_hardcore) - 80usize] ; ["Offset of field: rc_client_achievement_t::type_"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , type_) - 84usize] ; } ; extern "C" { # [doc = " Get information about an achievement. Returns NULL if not found."] pub fn rc_client_get_achievement_info (client : * mut rc_client_t , id : u32) -> * const rc_client_achievement_t ; } extern "C" { # [doc = " Gets the URL for the achievement image.\n Returns RC_OK on success."] pub fn rc_client_achievement_get_image_url (achievement : * const rc_client_achievement_t , state : :: core :: ffi :: c_int , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_bucket_t { pub achievements : * mut * mut rc_client_achievement_t , pub num_achievements : u32 , pub label : * const :: core :: ffi :: c_char , pub subset_id : u32 , pub bucket_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_bucket_t"] [:: core :: mem :: size_of :: < rc_client_achievement_bucket_t > () - 32usize] ; ["Alignment of rc_client_achievement_bucket_t"] [:: core :: mem :: align_of :: < rc_client_achievement_bucket_t > () - 8usize] ; ["Offset of field: rc_client_achievement_bucket_t::achievements"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , achievements) - 0usize] ; ["Offset of field: rc_client_achievement_bucket_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , num_achievements) - 8usize] ; ["Offset of field: rc_client_achievement_bucket_t::label"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , label) - 16usize] ; ["Offset of field: rc_client_achievement_bucket_t::subset_id"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , subset_id) - 24usize] ; ["Offset of field: rc_client_achievement_bucket_t::bucket_type"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , bucket_type) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_list_t { pub buckets : * mut rc_client_achievement_bucket_t , pub num_buckets : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_list_t"] [:: core :: mem :: size_of :: < rc_client_achievement_list_t > () - 16usize] ; ["Alignment of rc_client_achievement_list_t"] [:: core :: mem :: align_of :: < rc_client_achievement_list_t > () - 8usize] ; ["Offset of field: rc_client_achievement_list_t::buckets"] [:: core :: mem :: offset_of ! (rc_client_achievement_list_t , buckets) - 0usize] ; ["Offset of field: rc_client_achievement_list_t::num_buckets"] [:: core :: mem :: offset_of ! (rc_client_achievement_list_t , num_buckets) - 8usize] ; } ; pub const RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_LOCK_STATE : _bindgen_ty_22 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_PROGRESS : _bindgen_ty_22 = 1 ; pub type _bindgen_ty_22 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Creates a list of achievements matching the specified category and grouping.\n Returns an allocated list that must be free'd by calling rc_client_destroy_achievement_list."] pub fn rc_client_create_achievement_list (client : * mut rc_client_t , category : :: core :: ffi :: c_int , grouping : :: core :: ffi :: c_int) -> * mut rc_client_achievement_list_t ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_get_achievement_list."] pub fn rc_client_destroy_achievement_list (list : * mut rc_client_achievement_list_t) ; } extern "C" { # [doc = " Returns non-zero if there are any achievements that can be queried through rc_client_create_achievement_list()."] pub fn rc_client_has_achievements (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } pub const RC_CLIENT_LEADERBOARD_STATE_INACTIVE : _bindgen_ty_23 = 0 ; pub const RC_CLIENT_LEADERBOARD_STATE_ACTIVE : _bindgen_ty_23 = 1 ; pub const RC_CLIENT_LEADERBOARD_STATE_TRACKING : _bindgen_ty_23 = 2 ; pub const RC_CLIENT_LEADERBOARD_STATE_DISABLED : _bindgen_ty_23 = 3 ; pub const NUM_RC_CLIENT_LEADERBOARD_STATES : _bindgen_ty_23 = 4 ; # [doc = "\\\n| Leaderboards                                                                |\n\\"] pub type _bindgen_ty_23 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_LEADERBOARD_FORMAT_TIME : _bindgen_ty_24 = 0 ; pub const RC_CLIENT_LEADERBOARD_FORMAT_SCORE : _bindgen_ty_24 = 1 ; pub const RC_CLIENT_LEADERBOARD_FORMAT_VALUE : _bindgen_ty_24 = 2 ; pub const NUM_RC_CLIENT_LEADERBOARD_FORMATS : _bindgen_ty_24 = 3 ; pub type _bindgen_ty_24 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_t { pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub tracker_value : * const :: core :: ffi :: c_char , pub id : u32 , pub state : u8 , pub format : u8 , pub lower_is_better : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_t > () - 32usize] ; ["Alignment of rc_client_leaderboard_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_t::title"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , title) - 0usize] ; ["Offset of field: rc_client_leaderboard_t::description"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , description) - 8usize] ; ["Offset of field: rc_client_leaderboard_t::tracker_value"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , tracker_value) - 16usize] ; ["Offset of field: rc_client_leaderboard_t::id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , id) - 24usize] ; ["Offset of field: rc_client_leaderboard_t::state"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , state) - 28usize] ; ["Offset of field: rc_client_leaderboard_t::format"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , format) - 29usize] ; ["Offset of field: rc_client_leaderboard_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , lower_is_better) - 30usize] ; } ; extern "C" { # [doc = " Get information about a leaderboard. Returns NULL if not found."] pub fn rc_client_get_leaderboard_info (client : * const rc_client_t , id : u32) -> * const rc_client_leaderboard_t ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_tracker_t { pub display : [:: core :: ffi :: c_char ; 24usize] , pub id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_tracker_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_tracker_t > () - 28usize] ; ["Alignment of rc_client_leaderboard_tracker_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_tracker_t > () - 4usize] ; ["Offset of field: rc_client_leaderboard_tracker_t::display"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_tracker_t , display) - 0usize] ; ["Offset of field: rc_client_leaderboard_tracker_t::id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_tracker_t , id) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_bucket_t { pub leaderboards : * mut * mut rc_client_leaderboard_t , pub num_leaderboards : u32 , pub label : * const :: core :: ffi :: c_char , pub subset_id : u32 , pub bucket_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_bucket_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_bucket_t > () - 32usize] ; ["Alignment of rc_client_leaderboard_bucket_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_bucket_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::leaderboards"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , leaderboards) - 0usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , num_leaderboards) - 8usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::label"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , label) - 16usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::subset_id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , subset_id) - 24usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::bucket_type"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , bucket_type) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_list_t { pub buckets : * mut rc_client_leaderboard_bucket_t , pub num_buckets : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_list_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_list_t > () - 16usize] ; ["Alignment of rc_client_leaderboard_list_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_list_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_list_t::buckets"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_list_t , buckets) - 0usize] ; ["Offset of field: rc_client_leaderboard_list_t::num_buckets"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_list_t , num_buckets) - 8usize] ; } ; pub const RC_CLIENT_LEADERBOARD_BUCKET_UNKNOWN : _bindgen_ty_25 = 0 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_INACTIVE : _bindgen_ty_25 = 1 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_ACTIVE : _bindgen_ty_25 = 2 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_UNSUPPORTED : _bindgen_ty_25 = 3 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_ALL : _bindgen_ty_25 = 4 ; pub const NUM_RC_CLIENT_LEADERBOARD_BUCKETS : _bindgen_ty_25 = 5 ; pub type _bindgen_ty_25 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_LEADERBOARD_LIST_GROUPING_NONE : _bindgen_ty_26 = 0 ; pub const RC_CLIENT_LEADERBOARD_LIST_GROUPING_TRACKING : _bindgen_ty_26 = 1 ; pub type _bindgen_ty_26 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Creates a list of leaderboards matching the specified grouping.\n Returns an allocated list that must be free'd by calling rc_client_destroy_leaderboard_list."] pub fn rc_client_create_leaderboard_list (client : * mut rc_client_t , grouping : :: core :: ffi :: c_int) -> * mut rc_client_leaderboard_list_t ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_get_leaderboard_list."] pub fn rc_client_destroy_leaderboard_list (list : * mut rc_client_leaderboard_list_t) ; } extern "C" { # [doc = " Returns non-zero if the current game has any leaderboards."] pub fn rc_client_has_leaderboards (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_entry_t { pub user : * const :: core :: ffi :: c_char , pub display : [:: core :: ffi :: c_char ; 24usize] , pub submitted : time_t , pub rank : u32 , pub index : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_entry_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_entry_t > () - 48usize] ; ["Alignment of rc_client_leaderboard_entry_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_entry_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_t::user"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , user) - 0usize] ; ["Offset of field: rc_client_leaderboard_entry_t::display"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , display) - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_t::submitted"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , submitted) - 32usize] ; ["Offset of field: rc_client_leaderboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , rank) - 40usize] ; ["Offset of field: rc_client_leaderboard_entry_t::index"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , index) - 44usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_entry_list_t { pub entries : * mut rc_client_leaderboard_entry_t , pub num_entries : u32 , pub total_entries : u32 , pub user_index : i32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_entry_list_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_entry_list_t > () - 24usize] ; ["Alignment of rc_client_leaderboard_entry_list_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_entry_list_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , entries) - 0usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::num_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , num_entries) - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::total_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , total_entries) - 12usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::user_index"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , user_index) - 16usize] ; } ; pub type rc_client_fetch_leaderboard_entries_callback_t = :: core :: option :: Option < unsafe extern "C" fn (result : :: core :: ffi :: c_int , error_message : * const :: core :: ffi :: c_char , list : * mut rc_client_leaderboard_entry_list_t , client : * mut rc_client_t , callback_userdata : * mut :: core :: ffi :: c_void) > ; extern "C" { # [doc = " Fetches a list of leaderboard entries from the server.\n Callback receives an allocated list that must be free'd by calling rc_client_destroy_leaderboard_entry_list."] pub fn rc_client_begin_fetch_leaderboard_entries (client : * mut rc_client_t , leaderboard_id : u32 , first_entry : u32 , count : u32 , callback : rc_client_fetch_leaderboard_entries_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Fetches a list of leaderboard entries from the server containing the logged-in user.\n Callback receives an allocated list that must be free'd by calling rc_client_destroy_leaderboard_entry_list."] pub fn rc_client_begin_fetch_leaderboard_entries_around_user (client : * mut rc_client_t , leaderboard_id : u32 , count : u32 , callback : rc_client_fetch_leaderboard_entries_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Gets the URL for the profile picture of the user associated to a leaderboard entry.\n Returns RC_OK on success."] pub fn rc_client_leaderboard_entry_get_user_image_url (entry : * const rc_client_leaderboard_entry_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_begin_fetch_leaderboard_entries or rc_client_begin_fetch_leaderboard_entries_around_user."] pub fn rc_client_destroy_leaderboard_entry_list (list : * mut rc_client_leaderboard_entry_list_t) ; } # [doc = " Used for scoreboard events. Contains the response from the server when a leaderboard entry is submitted.\n NOTE: This structure is only valid within the event callback. If you want to make use of the data outside\n of the callback, you should create copies of both the top entries and usernames within."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_scoreboard_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub score : [:: core :: ffi :: c_char ; 24usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_scoreboard_entry_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_scoreboard_entry_t > () - 40usize] ; ["Alignment of rc_client_leaderboard_scoreboard_entry_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_scoreboard_entry_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::username"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , username) - 0usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , rank) - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , score) - 12usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_scoreboard_t { pub leaderboard_id : u32 , pub submitted_score : [:: core :: ffi :: c_char ; 24usize] , pub best_score : [:: core :: ffi :: c_char ; 24usize] , pub new_rank : u32 , pub num_entries : u32 , pub top_entries : * mut rc_client_leaderboard_scoreboard_entry_t , pub num_top_entries : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_scoreboard_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_scoreboard_t > () - 80usize] ; ["Alignment of rc_client_leaderboard_scoreboard_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_scoreboard_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::submitted_score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , submitted_score) - 4usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::best_score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , best_score) - 28usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::new_rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , new_rank) - 52usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::num_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , num_entries) - 56usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::top_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , top_entries) - 64usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::num_top_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , num_top_entries) - 72usize] ; } ; extern "C" { # [doc = " Returns non-zero if the current game supports rich presence."] pub fn rc_client_has_rich_presence (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Gets the current rich presence message.\n Returns the number of characters written to buffer."] pub fn rc_client_get_rich_presence_message (client : * mut rc_client_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> usize ; } pub const RC_CLIENT_EVENT_TYPE_NONE : _bindgen_ty_27 = 0 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_TRIGGERED : _bindgen_ty_27 = 1 ; pub const RC_CLIENT_EVENT_LEADERBOARD_STARTED : _bindgen_ty_27 = 2 ; pub const RC_CLIENT_EVENT_LEADERBOARD_FAILED : _bindgen_ty_27 = 3 ; pub const RC_CLIENT_EVENT_LEADERBOARD_SUBMITTED : _bindgen_ty_27 = 4 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_CHALLENGE_INDICATOR_SHOW : _bindgen_ty_27 = 5 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_CHALLENGE_INDICATOR_HIDE : _bindgen_ty_27 = 6 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_SHOW : _bindgen_ty_27 = 7 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_HIDE : _bindgen_ty_27 = 8 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_UPDATE : _bindgen_ty_27 = 9 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_SHOW : _bindgen_ty_27 = 10 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_HIDE : _bindgen_ty_27 = 11 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_UPDATE : _bindgen_ty_27 = 12 ; pub const RC_CLIENT_EVENT_LEADERBOARD_SCOREBOARD : _bindgen_ty_27 = 13 ; pub const RC_CLIENT_EVENT_RESET : _bindgen_ty_27 = 14 ; pub const RC_CLIENT_EVENT_GAME_COMPLETED : _bindgen_ty_27 = 15 ; pub const RC_CLIENT_EVENT_SERVER_ERROR : _bindgen_ty_27 = 16 ; pub const RC_CLIENT_EVENT_DISCONNECTED : _bindgen_ty_27 = 17 ; pub const RC_CLIENT_EVENT_RECONNECTED : _bindgen_ty_27 = 18 ; # [doc = "\\\n| Processing                                                                  |\n\\"] pub type _bindgen_ty_27 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_server_error_t { pub error_message : * const :: core :: ffi :: c_char , pub api : * const :: core :: ffi :: c_char , pub result : :: core :: ffi :: c_int , pub related_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_server_error_t"] [:: core :: mem :: size_of :: < rc_client_server_error_t > () - 24usize] ; ["Alignment of rc_client_server_error_t"] [:: core :: mem :: align_of :: < rc_client_server_error_t > () - 8usize] ; ["Offset of field: rc_client_server_error_t::error_message"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , error_message) - 0usize] ; ["Offset of field: rc_client_server_error_t::api"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , api) - 8usize] ; ["Offset of field: rc_client_server_error_t::result"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , result) - 16usize] ; ["Offset of field: rc_client_server_error_t::related_id"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , related_id) - 20usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_event_t { pub type_ : u32 , pub achievement : * mut rc_client_achievement_t , pub leaderboard : * mut rc_client_leaderboard_t , pub leaderboard_tracker : * mut rc_client_leaderboard_tracker_t , pub leaderboard_scoreboard : * mut rc_client_leaderboard_scoreboard_t , pub server_error : * mut rc_client_server_error_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_event_t"] [:: core :: mem :: size_of :: < rc_client_event_t > () - 48usize] ; ["Alignment of rc_client_event_t"] [:: core :: mem :: align_of :: < rc_client_event_t > () - 8usize] ; ["Offset of field: rc_client_event_t::type_"] [:: core :: mem :: offset_of ! (rc_client_event_t , type_) - 0usize] ; ["Offset of field: rc_client_event_t::achievement"] [:: core :: mem :: offset_of ! (rc_client_event_t , achievement) - 8usize] ; ["Offset of field: rc_client_event_t::leaderboard"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard) - 16usize] ; ["Offset of field: rc_client_event_t::leaderboard_tracker"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard_tracker) - 24usize] ; ["Offset of field: rc_client_event_t::leaderboard_scoreboard"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard_scoreboard) - 32usize] ; ["Offset of field: rc_client_event_t::server_error"] [:: core :: mem :: offset_of ! (rc_client_event_t , server_error) - 40usize] ; } ; # [doc = " Callback used to notify the client when certain events occur."] pub type rc_client_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (event : * const rc_client_event_t , client : * mut rc_client_t) > ; extern "C" { # [doc = " Provides a callback for event handling."] pub fn rc_client_set_event_handler (client : * mut rc_client_t , handler : rc_client_event_handler_t) ; } extern "C" { # [doc = " Provides a callback for reading memory."] pub fn rc_client_set_read_memory_function (client : * mut rc_client_t , handler : rc_client_read_memory_func_t) ; } extern "C" { # [doc = " Determines if there are any active achievements/leaderboards/rich presence that need processing."] pub fn rc_client_is_processing_required (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Processes achievements for the current frame."] pub fn rc_client_do_frame (client : * mut rc_client_t) ; } extern "C" { # [doc = " Processes the periodic queue.\n Called internally by rc_client_do_frame.\n Should be explicitly called if rc_client_do_frame is not being called because emulation is paused."] pub fn rc_client_idle (client : * mut rc_client_t) ; } extern "C" { # [doc = " Determines if a sufficient amount of frames have been processed since the last call to rc_client_can_pause.\n Should not be called unless the client is trying to pause.\n If false is returned, and frames_remaining is not NULL, frames_remaining will be set to the number of frames\n still required before pause is allowed, which can be converted to a time in seconds for displaying to the user."] pub fn rc_client_can_pause (client : * mut rc_client_t , frames_remaining : * mut u32) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Informs the runtime that the emulator has been reset. Will reset all achievements and leaderboards\n to their initial state (includes hiding indicators/trackers)."] pub fn rc_client_reset (client : * mut rc_client_t) ; } extern "C" { # [doc = " Gets the number of bytes needed to serialized the runtime state."] pub fn rc_client_progress_size (client : * mut rc_client_t) -> usize ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator.\n [deprecated] use rc_client_serialize_progress_sized instead"] pub fn rc_client_serialize_progress (client : * mut rc_client_t , buffer : * mut u8) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator."] pub fn rc_client_serialize_progress_sized (client : * mut rc_client_t , buffer : * mut u8 , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Deserializes the runtime state from a buffer.\n Returns RC_OK on success, or an error indicator.\n [deprecated] use rc_client_deserialize_progress_sized instead"] pub fn rc_client_deserialize_progress (client : * mut rc_client_t , serialized : * const u8) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator."] pub fn rc_client_deserialize_progress_sized (client : * mut rc_client_t , serialized : * const u8 , serialized_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __locale_data { pub _address : u8 , } pub type __builtin_va_list = [__va_list_tag ; 1usize] ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __va_list_tag { pub gp_offset : :: core :: ffi :: c_uint , pub fp_offset : :: core :: ffi :: c_uint , pub overflow_arg_area : * mut :: core :: ffi :: c_void , pub reg_save_area : * mut :: core :: ffi :: c_void , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __va_list_tag"] [:: core :: mem :: size_of :: < __va_list_tag > () - 24usize] ; ["Alignment of __va_list_tag"] [:: core :: mem :: align_of :: < __va_list_tag > () - 8usize] ; ["Offset of field: __va_list_tag::gp_offset"] [:: core :: mem :: offset_of ! (__va_list_tag , gp_offset) - 0usize] ; ["Offset of field: __va_list_tag::fp_offset"] [:: core :: mem :: offset_of ! (__va_list_tag , fp_offset) - 4usize] ; ["Offset of field: __va_list_tag::overflow_arg_area"] [:: core :: mem :: offset_of ! (__va_list_tag , overflow_arg_area) - 8usize] ; ["Offset of field: __va_list_tag::reg_save_area"] [:: core :: mem :: offset_of ! (__va_list_tag , reg_save_area) - 16usize] ; } ;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]  --> /opt/rustwide/target/debug/build/rcheevos-sys/badd2487a33295ab/out/bindings.rs:3:124465
[INFO] [stdout]   |
[INFO] [stdout] 3 | ...ore :: ffi :: c_int) { unsafe { let val : u32 = :: core :: mem :: transmute (val) ; self . _bitfield_1 . set (0usize , 24u8 , val ...
[INFO] [stdout]   |                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: replace this with
[INFO] [stdout]   |
[INFO] [stdout] 3 - # [repr (C)] # [derive (Copy , Clone , Debug , Default , Eq , Hash , Ord , PartialEq , PartialOrd)] pub struct __BindgenBitfieldUnit < Storage > { storage : Storage , } impl < Storage > __BindgenBitfieldUnit < Storage > { # [inline] pub const fn new (storage : Storage) -> Self { Self { storage } } } impl < Storage > __BindgenBitfieldUnit < Storage > where Storage : AsRef < [u8] > + AsMut < [u8] >, { # [inline] pub fn get_bit (& self , index : usize) -> bool { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = self . storage . as_ref () [byte_index] ; let bit_index = if cfg ! (target_endian = "big") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; byte & mask == mask } # [inline] pub fn set_bit (& mut self , index : usize , val : bool) { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = & mut self . storage . as_mut () [byte_index] ; let bit_index = if cfg ! (target_endian = "big") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; if val { * byte |= mask ; } else { * byte &= ! mask ; } } # [inline] pub fn get (& self , bit_offset : usize , bit_width : u8) -> u64 { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; let mut val = 0 ; for i in 0 .. (bit_width as usize) { if self . get_bit (i + bit_offset) { let index = if cfg ! (target_endian = "big") { bit_width as usize - 1 - i } else { i } ; val |= 1 << index ; } } val } # [inline] pub fn set (& mut self , bit_offset : usize , bit_width : u8 , val : u64) { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; for i in 0 .. (bit_width as usize) { let mask = 1 << i ; let val_bit_is_set = val & mask == mask ; let index = if cfg ! (target_endian = "big") { bit_width as usize - 1 - i } else { i } ; self . set_bit (index + bit_offset , val_bit_is_set) ; } } } # [derive (PartialEq , Copy , Clone , Hash , Debug , Default)] # [repr (C)] pub struct __BindgenComplex < T > { pub re : T , pub im : T } pub const _STDINT_H : u32 = 1 ; pub const _FEATURES_H : u32 = 1 ; pub const _DEFAULT_SOURCE : u32 = 1 ; pub const __GLIBC_USE_ISOC2Y : u32 = 0 ; pub const __GLIBC_USE_ISOC23 : u32 = 0 ; pub const __USE_ISOC11 : u32 = 1 ; pub const __USE_ISOC99 : u32 = 1 ; pub const __USE_ISOC95 : u32 = 1 ; pub const __USE_POSIX_IMPLICITLY : u32 = 1 ; pub const _POSIX_SOURCE : u32 = 1 ; pub const _POSIX_C_SOURCE : u32 = 202405 ; pub const __USE_POSIX : u32 = 1 ; pub const __USE_POSIX2 : u32 = 1 ; pub const __USE_POSIX199309 : u32 = 1 ; pub const __USE_POSIX199506 : u32 = 1 ; pub const __USE_XOPEN2K : u32 = 1 ; pub const __USE_XOPEN2K8 : u32 = 1 ; pub const _ATFILE_SOURCE : u32 = 1 ; pub const __USE_XOPEN2K24 : u32 = 1 ; pub const __WORDSIZE : u32 = 64 ; pub const __WORDSIZE_TIME64_COMPAT32 : u32 = 1 ; pub const __SYSCALL_WORDSIZE : u32 = 64 ; pub const __TIMESIZE : u32 = 64 ; pub const __USE_TIME_BITS64 : u32 = 1 ; pub const __USE_MISC : u32 = 1 ; 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_C23_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 ; pub const __STDC_IEC_559_COMPLEX__ : u32 = 1 ; 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 = 43 ; pub const _SYS_CDEFS_H : u32 = 1 ; pub const __glibc_c99_flexarr_available : u32 = 1 ; pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI : u32 = 0 ; pub const __HAVE_GENERIC_SELECTION : u32 = 1 ; pub const __GLIBC_USE_LIB_EXT2 : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT_C23 : u32 = 0 ; 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_C23 : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_TYPES_EXT : u32 = 0 ; pub const _BITS_TYPES_H : u32 = 1 ; pub const _BITS_TYPESIZES_H : u32 = 1 ; pub const __OFF_T_MATCHES_OFF64_T : u32 = 1 ; pub const __INO_T_MATCHES_INO64_T : u32 = 1 ; pub const __RLIM_T_MATCHES_RLIM64_T : u32 = 1 ; pub const __STATFS_MATCHES_STATFS64 : u32 = 1 ; pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 : u32 = 1 ; pub const __FD_SETSIZE : u32 = 1024 ; pub const _BITS_TIME64_H : u32 = 1 ; pub const _BITS_WCHAR_H : u32 = 1 ; pub const _BITS_STDINT_INTN_H : u32 = 1 ; pub const _BITS_STDINT_UINTN_H : u32 = 1 ; pub const _BITS_STDINT_LEAST_H : u32 = 1 ; pub const INT8_MIN : i32 = - 128 ; pub const INT16_MIN : i32 = - 32768 ; pub const INT32_MIN : i32 = - 2147483648 ; pub const INT8_MAX : u32 = 127 ; pub const INT16_MAX : u32 = 32767 ; pub const INT32_MAX : u32 = 2147483647 ; pub const UINT8_MAX : u32 = 255 ; pub const UINT16_MAX : u32 = 65535 ; pub const UINT32_MAX : u32 = 4294967295 ; pub const INT_LEAST8_MIN : i32 = - 128 ; pub const INT_LEAST16_MIN : i32 = - 32768 ; pub const INT_LEAST32_MIN : i32 = - 2147483648 ; pub const INT_LEAST8_MAX : u32 = 127 ; pub const INT_LEAST16_MAX : u32 = 32767 ; pub const INT_LEAST32_MAX : u32 = 2147483647 ; pub const UINT_LEAST8_MAX : u32 = 255 ; pub const UINT_LEAST16_MAX : u32 = 65535 ; pub const UINT_LEAST32_MAX : u32 = 4294967295 ; pub const INT_FAST8_MIN : i32 = - 128 ; pub const INT_FAST16_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST32_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST8_MAX : u32 = 127 ; pub const INT_FAST16_MAX : u64 = 9223372036854775807 ; pub const INT_FAST32_MAX : u64 = 9223372036854775807 ; pub const UINT_FAST8_MAX : u32 = 255 ; pub const UINT_FAST16_MAX : i32 = - 1 ; pub const UINT_FAST32_MAX : i32 = - 1 ; pub const INTPTR_MIN : i64 = - 9223372036854775808 ; pub const INTPTR_MAX : u64 = 9223372036854775807 ; pub const UINTPTR_MAX : i32 = - 1 ; pub const PTRDIFF_MIN : i64 = - 9223372036854775808 ; pub const PTRDIFF_MAX : u64 = 9223372036854775807 ; pub const SIG_ATOMIC_MIN : i32 = - 2147483648 ; pub const SIG_ATOMIC_MAX : u32 = 2147483647 ; pub const SIZE_MAX : i32 = - 1 ; pub const WINT_MIN : u32 = 0 ; pub const WINT_MAX : u32 = 4294967295 ; pub const RC_VALUE_MAX_NAME_LENGTH : u32 = 15 ; pub const _TIME_H : u32 = 1 ; pub const _BITS_TIME_H : u32 = 1 ; pub const CLOCK_REALTIME : u32 = 0 ; pub const CLOCK_MONOTONIC : u32 = 1 ; pub const CLOCK_PROCESS_CPUTIME_ID : u32 = 2 ; pub const CLOCK_THREAD_CPUTIME_ID : u32 = 3 ; pub const CLOCK_MONOTONIC_RAW : u32 = 4 ; pub const CLOCK_REALTIME_COARSE : u32 = 5 ; pub const CLOCK_MONOTONIC_COARSE : u32 = 6 ; pub const CLOCK_BOOTTIME : u32 = 7 ; pub const CLOCK_REALTIME_ALARM : u32 = 8 ; pub const CLOCK_BOOTTIME_ALARM : u32 = 9 ; pub const CLOCK_TAI : u32 = 11 ; pub const TIMER_ABSTIME : u32 = 1 ; pub const __clock_t_defined : u32 = 1 ; pub const __time_t_defined : u32 = 1 ; pub const __struct_tm_defined : u32 = 1 ; pub const _STRUCT_TIMESPEC : u32 = 1 ; pub const _BITS_ENDIAN_H : u32 = 1 ; pub const __LITTLE_ENDIAN : u32 = 1234 ; pub const __BIG_ENDIAN : u32 = 4321 ; pub const __PDP_ENDIAN : u32 = 3412 ; pub const _BITS_ENDIANNESS_H : u32 = 1 ; pub const __BYTE_ORDER : u32 = 1234 ; pub const __FLOAT_WORD_ORDER : u32 = 1234 ; pub const __clockid_t_defined : u32 = 1 ; pub const __timer_t_defined : u32 = 1 ; pub const __itimerspec_defined : u32 = 1 ; pub const _BITS_TYPES_LOCALE_T_H : u32 = 1 ; pub const _BITS_TYPES___LOCALE_T_H : u32 = 1 ; pub const TIME_UTC : u32 = 1 ; pub const _STDIO_H : u32 = 1 ; pub const _____fpos_t_defined : u32 = 1 ; pub const ____mbstate_t_defined : u32 = 1 ; pub const _____fpos64_t_defined : u32 = 1 ; pub const ____FILE_defined : u32 = 1 ; pub const __FILE_defined : u32 = 1 ; 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 ; pub const BUFSIZ : u32 = 8192 ; pub const EOF : i32 = - 1 ; 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 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 ; pub const __HAVE_FLOAT128 : u32 = 1 ; pub const __HAVE_DISTINCT_FLOAT128 : u32 = 1 ; pub const __HAVE_FLOAT64X : u32 = 1 ; pub const __HAVE_FLOAT64X_LONG_DOUBLE : u32 = 1 ; pub const __HAVE_FLOAT16 : u32 = 0 ; pub const __HAVE_FLOAT32 : u32 = 1 ; pub const __HAVE_FLOAT64 : u32 = 1 ; pub const __HAVE_FLOAT32X : u32 = 1 ; pub const __HAVE_FLOAT128X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT16 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT32 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT64 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT32X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT64X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT128X : u32 = 0 ; pub const __HAVE_FLOATN_NOT_TYPEDEF : u32 = 0 ; pub const RC_IMAGE_TYPE_GAME : u32 = 1 ; pub const RC_IMAGE_TYPE_ACHIEVEMENT : u32 = 2 ; pub const RC_IMAGE_TYPE_ACHIEVEMENT_LOCKED : u32 = 3 ; pub const RC_IMAGE_TYPE_USER : u32 = 4 ; pub const RC_ACHIEVEMENT_CATEGORY_CORE : u32 = 3 ; pub const RC_ACHIEVEMENT_CATEGORY_UNOFFICIAL : u32 = 5 ; pub const RC_ACHIEVEMENT_TYPE_STANDARD : u32 = 0 ; pub const RC_ACHIEVEMENT_TYPE_MISSABLE : u32 = 1 ; pub const RC_ACHIEVEMENT_TYPE_PROGRESSION : u32 = 2 ; pub const RC_ACHIEVEMENT_TYPE_WIN : u32 = 3 ; pub const RC_CLIENT_LEADERBOARD_DISPLAY_SIZE : u32 = 24 ; pub const RC_OK : _bindgen_ty_1 = 0 ; pub const RC_INVALID_LUA_OPERAND : _bindgen_ty_1 = - 1 ; pub const RC_INVALID_MEMORY_OPERAND : _bindgen_ty_1 = - 2 ; pub const RC_INVALID_CONST_OPERAND : _bindgen_ty_1 = - 3 ; pub const RC_INVALID_FP_OPERAND : _bindgen_ty_1 = - 4 ; pub const RC_INVALID_CONDITION_TYPE : _bindgen_ty_1 = - 5 ; pub const RC_INVALID_OPERATOR : _bindgen_ty_1 = - 6 ; pub const RC_INVALID_REQUIRED_HITS : _bindgen_ty_1 = - 7 ; pub const RC_DUPLICATED_START : _bindgen_ty_1 = - 8 ; pub const RC_DUPLICATED_CANCEL : _bindgen_ty_1 = - 9 ; pub const RC_DUPLICATED_SUBMIT : _bindgen_ty_1 = - 10 ; pub const RC_DUPLICATED_VALUE : _bindgen_ty_1 = - 11 ; pub const RC_DUPLICATED_PROGRESS : _bindgen_ty_1 = - 12 ; pub const RC_MISSING_START : _bindgen_ty_1 = - 13 ; pub const RC_MISSING_CANCEL : _bindgen_ty_1 = - 14 ; pub const RC_MISSING_SUBMIT : _bindgen_ty_1 = - 15 ; pub const RC_MISSING_VALUE : _bindgen_ty_1 = - 16 ; pub const RC_INVALID_LBOARD_FIELD : _bindgen_ty_1 = - 17 ; pub const RC_MISSING_DISPLAY_STRING : _bindgen_ty_1 = - 18 ; pub const RC_OUT_OF_MEMORY : _bindgen_ty_1 = - 19 ; pub const RC_INVALID_VALUE_FLAG : _bindgen_ty_1 = - 20 ; pub const RC_MISSING_VALUE_MEASURED : _bindgen_ty_1 = - 21 ; pub const RC_MULTIPLE_MEASURED : _bindgen_ty_1 = - 22 ; pub const RC_INVALID_MEASURED_TARGET : _bindgen_ty_1 = - 23 ; pub const RC_INVALID_COMPARISON : _bindgen_ty_1 = - 24 ; pub const RC_INVALID_STATE : _bindgen_ty_1 = - 25 ; pub const RC_INVALID_JSON : _bindgen_ty_1 = - 26 ; pub const RC_API_FAILURE : _bindgen_ty_1 = - 27 ; pub const RC_LOGIN_REQUIRED : _bindgen_ty_1 = - 28 ; pub const RC_NO_GAME_LOADED : _bindgen_ty_1 = - 29 ; pub const RC_HARDCORE_DISABLED : _bindgen_ty_1 = - 30 ; pub const RC_ABORTED : _bindgen_ty_1 = - 31 ; pub const RC_NO_RESPONSE : _bindgen_ty_1 = - 32 ; pub const RC_ACCESS_DENIED : _bindgen_ty_1 = - 33 ; pub const RC_INVALID_CREDENTIALS : _bindgen_ty_1 = - 34 ; pub const RC_EXPIRED_TOKEN : _bindgen_ty_1 = - 35 ; pub const RC_INSUFFICIENT_BUFFER : _bindgen_ty_1 = - 36 ; pub const RC_INVALID_VARIABLE_NAME : _bindgen_ty_1 = - 37 ; pub const RC_UNKNOWN_VARIABLE_NAME : _bindgen_ty_1 = - 38 ; # [doc = "\\\n| Return values                                                               |\n\\"] pub type _bindgen_ty_1 = :: core :: ffi :: c_int ; extern "C" { pub fn rc_error_str (ret : :: core :: ffi :: c_int) -> * const :: core :: ffi :: c_char ; } pub type wchar_t = :: core :: ffi :: c_int ; # [repr (C)] # [repr (align (16))] # [derive (Debug , Copy , Clone)] pub struct max_align_t { pub __clang_max_align_nonce1 : :: core :: ffi :: c_longlong , pub __bindgen_padding_0 : u64 , pub __clang_max_align_nonce2 : u128 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of max_align_t"] [:: core :: mem :: size_of :: < max_align_t > () - 32usize] ; ["Alignment of max_align_t"] [:: core :: mem :: align_of :: < max_align_t > () - 16usize] ; ["Offset of field: max_align_t::__clang_max_align_nonce1"] [:: core :: mem :: offset_of ! (max_align_t , __clang_max_align_nonce1) - 0usize] ; ["Offset of field: max_align_t::__clang_max_align_nonce2"] [:: core :: mem :: offset_of ! (max_align_t , __clang_max_align_nonce2) - 16usize] ; } ; pub type __u_char = :: core :: ffi :: c_uchar ; pub type __u_short = :: core :: ffi :: c_ushort ; pub type __u_int = :: core :: ffi :: c_uint ; pub type __u_long = :: core :: ffi :: c_ulong ; pub type __int8_t = :: core :: ffi :: c_schar ; pub type __uint8_t = :: core :: ffi :: c_uchar ; pub type __int16_t = :: core :: ffi :: c_short ; pub type __uint16_t = :: core :: ffi :: c_ushort ; pub type __int32_t = :: core :: ffi :: c_int ; pub type __uint32_t = :: core :: ffi :: c_uint ; pub type __int64_t = :: core :: ffi :: c_long ; pub type __uint64_t = :: core :: ffi :: c_ulong ; pub type __int_least8_t = __int8_t ; pub type __uint_least8_t = __uint8_t ; pub type __int_least16_t = __int16_t ; pub type __uint_least16_t = __uint16_t ; pub type __int_least32_t = __int32_t ; pub type __uint_least32_t = __uint32_t ; pub type __int_least64_t = __int64_t ; pub type __uint_least64_t = __uint64_t ; pub type __quad_t = :: core :: ffi :: c_long ; pub type __u_quad_t = :: core :: ffi :: c_ulong ; pub type __intmax_t = :: core :: ffi :: c_long ; pub type __uintmax_t = :: core :: ffi :: c_ulong ; pub type __dev_t = :: core :: ffi :: c_ulong ; pub type __uid_t = :: core :: ffi :: c_uint ; pub type __gid_t = :: core :: ffi :: c_uint ; pub type __ino_t = :: core :: ffi :: c_ulong ; pub type __ino64_t = :: core :: ffi :: c_ulong ; pub type __mode_t = :: core :: ffi :: c_uint ; pub type __nlink_t = :: core :: ffi :: c_ulong ; pub type __off_t = :: core :: ffi :: c_long ; pub type __off64_t = :: core :: ffi :: c_long ; pub type __pid_t = :: core :: ffi :: c_int ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __fsid_t { pub __val : [:: core :: ffi :: c_int ; 2usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __fsid_t"] [:: core :: mem :: size_of :: < __fsid_t > () - 8usize] ; ["Alignment of __fsid_t"] [:: core :: mem :: align_of :: < __fsid_t > () - 4usize] ; ["Offset of field: __fsid_t::__val"] [:: core :: mem :: offset_of ! (__fsid_t , __val) - 0usize] ; } ; pub type __clock_t = :: core :: ffi :: c_long ; pub type __rlim_t = :: core :: ffi :: c_ulong ; pub type __rlim64_t = :: core :: ffi :: c_ulong ; pub type __id_t = :: core :: ffi :: c_uint ; pub type __time_t = :: core :: ffi :: c_long ; pub type __useconds_t = :: core :: ffi :: c_uint ; pub type __suseconds_t = :: core :: ffi :: c_long ; pub type __suseconds64_t = :: core :: ffi :: c_long ; pub type __daddr_t = :: core :: ffi :: c_int ; pub type __key_t = :: core :: ffi :: c_int ; pub type __clockid_t = :: core :: ffi :: c_int ; pub type __timer_t = * mut :: core :: ffi :: c_void ; pub type __blksize_t = :: core :: ffi :: c_long ; pub type __blkcnt_t = :: core :: ffi :: c_long ; pub type __blkcnt64_t = :: core :: ffi :: c_long ; pub type __fsblkcnt_t = :: core :: ffi :: c_ulong ; pub type __fsblkcnt64_t = :: core :: ffi :: c_ulong ; pub type __fsfilcnt_t = :: core :: ffi :: c_ulong ; pub type __fsfilcnt64_t = :: core :: ffi :: c_ulong ; pub type __fsword_t = :: core :: ffi :: c_long ; pub type __ssize_t = :: core :: ffi :: c_long ; pub type __syscall_slong_t = :: core :: ffi :: c_long ; pub type __syscall_ulong_t = :: core :: ffi :: c_ulong ; pub type __loff_t = __off64_t ; pub type __caddr_t = * mut :: core :: ffi :: c_char ; pub type __intptr_t = :: core :: ffi :: c_long ; pub type __socklen_t = :: core :: ffi :: c_uint ; pub type __sig_atomic_t = :: core :: ffi :: c_int ; pub type int_least8_t = __int_least8_t ; pub type int_least16_t = __int_least16_t ; pub type int_least32_t = __int_least32_t ; pub type int_least64_t = __int_least64_t ; pub type uint_least8_t = __uint_least8_t ; pub type uint_least16_t = __uint_least16_t ; pub type uint_least32_t = __uint_least32_t ; pub type uint_least64_t = __uint_least64_t ; pub type int_fast8_t = :: core :: ffi :: c_schar ; pub type int_fast16_t = :: core :: ffi :: c_long ; pub type int_fast32_t = :: core :: ffi :: c_long ; pub type int_fast64_t = :: core :: ffi :: c_long ; pub type uint_fast8_t = :: core :: ffi :: c_uchar ; pub type uint_fast16_t = :: core :: ffi :: c_ulong ; pub type uint_fast32_t = :: core :: ffi :: c_ulong ; pub type uint_fast64_t = :: core :: ffi :: c_ulong ; pub type intmax_t = __intmax_t ; pub type uintmax_t = __uintmax_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct lua_State { _unused : [u8 ; 0] , } # [doc = " Callback used to read num_bytes bytes from memory starting at address. If\n num_bytes is greater than 1, the value is read in little-endian from\n memory."] pub type rc_peek_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , num_bytes : u32 , ud : * mut :: core :: ffi :: c_void) -> u32 > ; pub const RC_MEMSIZE_8_BITS : _bindgen_ty_2 = 0 ; pub const RC_MEMSIZE_16_BITS : _bindgen_ty_2 = 1 ; pub const RC_MEMSIZE_24_BITS : _bindgen_ty_2 = 2 ; pub const RC_MEMSIZE_32_BITS : _bindgen_ty_2 = 3 ; pub const RC_MEMSIZE_LOW : _bindgen_ty_2 = 4 ; pub const RC_MEMSIZE_HIGH : _bindgen_ty_2 = 5 ; pub const RC_MEMSIZE_BIT_0 : _bindgen_ty_2 = 6 ; pub const RC_MEMSIZE_BIT_1 : _bindgen_ty_2 = 7 ; pub const RC_MEMSIZE_BIT_2 : _bindgen_ty_2 = 8 ; pub const RC_MEMSIZE_BIT_3 : _bindgen_ty_2 = 9 ; pub const RC_MEMSIZE_BIT_4 : _bindgen_ty_2 = 10 ; pub const RC_MEMSIZE_BIT_5 : _bindgen_ty_2 = 11 ; pub const RC_MEMSIZE_BIT_6 : _bindgen_ty_2 = 12 ; pub const RC_MEMSIZE_BIT_7 : _bindgen_ty_2 = 13 ; pub const RC_MEMSIZE_BITCOUNT : _bindgen_ty_2 = 14 ; pub const RC_MEMSIZE_16_BITS_BE : _bindgen_ty_2 = 15 ; pub const RC_MEMSIZE_24_BITS_BE : _bindgen_ty_2 = 16 ; pub const RC_MEMSIZE_32_BITS_BE : _bindgen_ty_2 = 17 ; pub const RC_MEMSIZE_FLOAT : _bindgen_ty_2 = 18 ; pub const RC_MEMSIZE_MBF32 : _bindgen_ty_2 = 19 ; pub const RC_MEMSIZE_MBF32_LE : _bindgen_ty_2 = 20 ; pub const RC_MEMSIZE_FLOAT_BE : _bindgen_ty_2 = 21 ; pub const RC_MEMSIZE_DOUBLE32 : _bindgen_ty_2 = 22 ; pub const RC_MEMSIZE_DOUBLE32_BE : _bindgen_ty_2 = 23 ; pub const RC_MEMSIZE_VARIABLE : _bindgen_ty_2 = 24 ; # [doc = "\\\n| Memory References                                                           |\n\\"] pub type _bindgen_ty_2 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memref_value_t { pub value : u32 , pub prior : u32 , pub size : u8 , pub changed : u8 , pub type_ : u8 , pub is_indirect : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memref_value_t"] [:: core :: mem :: size_of :: < rc_memref_value_t > () - 12usize] ; ["Alignment of rc_memref_value_t"] [:: core :: mem :: align_of :: < rc_memref_value_t > () - 4usize] ; ["Offset of field: rc_memref_value_t::value"] [:: core :: mem :: offset_of ! (rc_memref_value_t , value) - 0usize] ; ["Offset of field: rc_memref_value_t::prior"] [:: core :: mem :: offset_of ! (rc_memref_value_t , prior) - 4usize] ; ["Offset of field: rc_memref_value_t::size"] [:: core :: mem :: offset_of ! (rc_memref_value_t , size) - 8usize] ; ["Offset of field: rc_memref_value_t::changed"] [:: core :: mem :: offset_of ! (rc_memref_value_t , changed) - 9usize] ; ["Offset of field: rc_memref_value_t::type_"] [:: core :: mem :: offset_of ! (rc_memref_value_t , type_) - 10usize] ; ["Offset of field: rc_memref_value_t::is_indirect"] [:: core :: mem :: offset_of ! (rc_memref_value_t , is_indirect) - 11usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memref_t { pub value : rc_memref_value_t , pub address : u32 , pub next : * mut rc_memref_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memref_t"] [:: core :: mem :: size_of :: < rc_memref_t > () - 24usize] ; ["Alignment of rc_memref_t"] [:: core :: mem :: align_of :: < rc_memref_t > () - 8usize] ; ["Offset of field: rc_memref_t::value"] [:: core :: mem :: offset_of ! (rc_memref_t , value) - 0usize] ; ["Offset of field: rc_memref_t::address"] [:: core :: mem :: offset_of ! (rc_memref_t , address) - 12usize] ; ["Offset of field: rc_memref_t::next"] [:: core :: mem :: offset_of ! (rc_memref_t , next) - 16usize] ; } ; pub const RC_OPERAND_ADDRESS : _bindgen_ty_3 = 0 ; pub const RC_OPERAND_DELTA : _bindgen_ty_3 = 1 ; pub const RC_OPERAND_CONST : _bindgen_ty_3 = 2 ; pub const RC_OPERAND_FP : _bindgen_ty_3 = 3 ; pub const RC_OPERAND_LUA : _bindgen_ty_3 = 4 ; pub const RC_OPERAND_PRIOR : _bindgen_ty_3 = 5 ; pub const RC_OPERAND_BCD : _bindgen_ty_3 = 6 ; pub const RC_OPERAND_INVERTED : _bindgen_ty_3 = 7 ; pub const RC_OPERAND_RECALL : _bindgen_ty_3 = 8 ; # [doc = "\\\n| Operands                                                                    |\n\\"] pub type _bindgen_ty_3 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Copy , Clone)] pub struct rc_operand_t { pub value : rc_operand_t__bindgen_ty_1 , pub type_ : u8 , pub size : u8 , } # [repr (C)] # [derive (Copy , Clone)] pub union rc_operand_t__bindgen_ty_1 { pub memref : * mut rc_memref_t , pub num : u32 , pub dbl : f64 , pub luafunc : :: core :: ffi :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_operand_t__bindgen_ty_1"] [:: core :: mem :: size_of :: < rc_operand_t__bindgen_ty_1 > () - 8usize] ; ["Alignment of rc_operand_t__bindgen_ty_1"] [:: core :: mem :: align_of :: < rc_operand_t__bindgen_ty_1 > () - 8usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::memref"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , memref) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::num"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , num) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::dbl"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , dbl) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::luafunc"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , luafunc) - 0usize] ; } ; impl :: core :: fmt :: Debug for rc_operand_t__bindgen_ty_1 { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_operand_t__bindgen_ty_1 {{ union }}") } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_operand_t"] [:: core :: mem :: size_of :: < rc_operand_t > () - 16usize] ; ["Alignment of rc_operand_t"] [:: core :: mem :: align_of :: < rc_operand_t > () - 8usize] ; ["Offset of field: rc_operand_t::value"] [:: core :: mem :: offset_of ! (rc_operand_t , value) - 0usize] ; ["Offset of field: rc_operand_t::type_"] [:: core :: mem :: offset_of ! (rc_operand_t , type_) - 8usize] ; ["Offset of field: rc_operand_t::size"] [:: core :: mem :: offset_of ! (rc_operand_t , size) - 9usize] ; } ; impl :: core :: fmt :: Debug for rc_operand_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_operand_t {{ value: {:?}, type: {:?}, size: {:?} }}" , self . value , self . type_ , self . size) } } extern "C" { pub fn rc_operand_is_memref (operand : * const rc_operand_t) -> :: core :: ffi :: c_int ; } pub const RC_CONDITION_STANDARD : _bindgen_ty_4 = 0 ; pub const RC_CONDITION_PAUSE_IF : _bindgen_ty_4 = 1 ; pub const RC_CONDITION_RESET_IF : _bindgen_ty_4 = 2 ; pub const RC_CONDITION_MEASURED_IF : _bindgen_ty_4 = 3 ; pub const RC_CONDITION_TRIGGER : _bindgen_ty_4 = 4 ; pub const RC_CONDITION_MEASURED : _bindgen_ty_4 = 5 ; pub const RC_CONDITION_ADD_SOURCE : _bindgen_ty_4 = 6 ; pub const RC_CONDITION_SUB_SOURCE : _bindgen_ty_4 = 7 ; pub const RC_CONDITION_ADD_ADDRESS : _bindgen_ty_4 = 8 ; pub const RC_CONDITION_REMEMBER : _bindgen_ty_4 = 9 ; pub const RC_CONDITION_ADD_HITS : _bindgen_ty_4 = 10 ; pub const RC_CONDITION_SUB_HITS : _bindgen_ty_4 = 11 ; pub const RC_CONDITION_RESET_NEXT_IF : _bindgen_ty_4 = 12 ; pub const RC_CONDITION_AND_NEXT : _bindgen_ty_4 = 13 ; pub const RC_CONDITION_OR_NEXT : _bindgen_ty_4 = 14 ; # [doc = "\\\n| Conditions                                                                  |\n\\"] pub type _bindgen_ty_4 = :: core :: ffi :: c_uint ; pub const RC_OPERATOR_EQ : _bindgen_ty_5 = 0 ; pub const RC_OPERATOR_LT : _bindgen_ty_5 = 1 ; pub const RC_OPERATOR_LE : _bindgen_ty_5 = 2 ; pub const RC_OPERATOR_GT : _bindgen_ty_5 = 3 ; pub const RC_OPERATOR_GE : _bindgen_ty_5 = 4 ; pub const RC_OPERATOR_NE : _bindgen_ty_5 = 5 ; pub const RC_OPERATOR_NONE : _bindgen_ty_5 = 6 ; pub const RC_OPERATOR_MULT : _bindgen_ty_5 = 7 ; pub const RC_OPERATOR_DIV : _bindgen_ty_5 = 8 ; pub const RC_OPERATOR_AND : _bindgen_ty_5 = 9 ; pub const RC_OPERATOR_XOR : _bindgen_ty_5 = 10 ; pub const RC_OPERATOR_MOD : _bindgen_ty_5 = 11 ; pub const RC_OPERATOR_ADD : _bindgen_ty_5 = 12 ; pub const RC_OPERATOR_SUB : _bindgen_ty_5 = 13 ; pub type _bindgen_ty_5 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Copy , Clone)] pub struct rc_condition_t { pub operand1 : rc_operand_t , pub operand2 : rc_operand_t , pub required_hits : u32 , pub current_hits : u32 , pub next : * mut rc_condition_t , pub type_ : u8 , pub oper : u8 , pub pause : u8 , pub is_true : u8 , pub optimized_comparator : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_condition_t"] [:: core :: mem :: size_of :: < rc_condition_t > () - 56usize] ; ["Alignment of rc_condition_t"] [:: core :: mem :: align_of :: < rc_condition_t > () - 8usize] ; ["Offset of field: rc_condition_t::operand1"] [:: core :: mem :: offset_of ! (rc_condition_t , operand1) - 0usize] ; ["Offset of field: rc_condition_t::operand2"] [:: core :: mem :: offset_of ! (rc_condition_t , operand2) - 16usize] ; ["Offset of field: rc_condition_t::required_hits"] [:: core :: mem :: offset_of ! (rc_condition_t , required_hits) - 32usize] ; ["Offset of field: rc_condition_t::current_hits"] [:: core :: mem :: offset_of ! (rc_condition_t , current_hits) - 36usize] ; ["Offset of field: rc_condition_t::next"] [:: core :: mem :: offset_of ! (rc_condition_t , next) - 40usize] ; ["Offset of field: rc_condition_t::type_"] [:: core :: mem :: offset_of ! (rc_condition_t , type_) - 48usize] ; ["Offset of field: rc_condition_t::oper"] [:: core :: mem :: offset_of ! (rc_condition_t , oper) - 49usize] ; ["Offset of field: rc_condition_t::pause"] [:: core :: mem :: offset_of ! (rc_condition_t , pause) - 50usize] ; ["Offset of field: rc_condition_t::is_true"] [:: core :: mem :: offset_of ! (rc_condition_t , is_true) - 51usize] ; ["Offset of field: rc_condition_t::optimized_comparator"] [:: core :: mem :: offset_of ! (rc_condition_t , optimized_comparator) - 52usize] ; } ; impl :: core :: fmt :: Debug for rc_condition_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_condition_t {{ operand1: {:?}, operand2: {:?}, required_hits: {:?}, current_hits: {:?}, next: {:?}, type: {:?}, oper: {:?}, pause: {:?}, is_true: {:?}, optimized_comparator: {:?} }}" , self . operand1 , self . operand2 , self . required_hits , self . current_hits , self . next , self . type_ , self . oper , self . pause , self . is_true , self . optimized_comparator) } } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_condset_t { pub next : * mut rc_condset_t , pub conditions : * mut rc_condition_t , pub has_pause : u8 , pub is_paused : u8 , pub has_indirect_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_condset_t"] [:: core :: mem :: size_of :: < rc_condset_t > () - 24usize] ; ["Alignment of rc_condset_t"] [:: core :: mem :: align_of :: < rc_condset_t > () - 8usize] ; ["Offset of field: rc_condset_t::next"] [:: core :: mem :: offset_of ! (rc_condset_t , next) - 0usize] ; ["Offset of field: rc_condset_t::conditions"] [:: core :: mem :: offset_of ! (rc_condset_t , conditions) - 8usize] ; ["Offset of field: rc_condset_t::has_pause"] [:: core :: mem :: offset_of ! (rc_condset_t , has_pause) - 16usize] ; ["Offset of field: rc_condset_t::is_paused"] [:: core :: mem :: offset_of ! (rc_condset_t , is_paused) - 17usize] ; ["Offset of field: rc_condset_t::has_indirect_memrefs"] [:: core :: mem :: offset_of ! (rc_condset_t , has_indirect_memrefs) - 18usize] ; } ; pub const RC_TRIGGER_STATE_INACTIVE : _bindgen_ty_6 = 0 ; pub const RC_TRIGGER_STATE_WAITING : _bindgen_ty_6 = 1 ; pub const RC_TRIGGER_STATE_ACTIVE : _bindgen_ty_6 = 2 ; pub const RC_TRIGGER_STATE_PAUSED : _bindgen_ty_6 = 3 ; pub const RC_TRIGGER_STATE_RESET : _bindgen_ty_6 = 4 ; pub const RC_TRIGGER_STATE_TRIGGERED : _bindgen_ty_6 = 5 ; pub const RC_TRIGGER_STATE_PRIMED : _bindgen_ty_6 = 6 ; pub const RC_TRIGGER_STATE_DISABLED : _bindgen_ty_6 = 7 ; # [doc = "\\\n| Trigger                                                                     |\n\\"] pub type _bindgen_ty_6 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_trigger_t { pub requirement : * mut rc_condset_t , pub alternative : * mut rc_condset_t , pub memrefs : * mut rc_memref_t , pub measured_value : u32 , pub measured_target : u32 , pub state : u8 , pub has_hits : u8 , pub has_required_hits : u8 , pub measured_as_percent : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_trigger_t"] [:: core :: mem :: size_of :: < rc_trigger_t > () - 40usize] ; ["Alignment of rc_trigger_t"] [:: core :: mem :: align_of :: < rc_trigger_t > () - 8usize] ; ["Offset of field: rc_trigger_t::requirement"] [:: core :: mem :: offset_of ! (rc_trigger_t , requirement) - 0usize] ; ["Offset of field: rc_trigger_t::alternative"] [:: core :: mem :: offset_of ! (rc_trigger_t , alternative) - 8usize] ; ["Offset of field: rc_trigger_t::memrefs"] [:: core :: mem :: offset_of ! (rc_trigger_t , memrefs) - 16usize] ; ["Offset of field: rc_trigger_t::measured_value"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_value) - 24usize] ; ["Offset of field: rc_trigger_t::measured_target"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_target) - 28usize] ; ["Offset of field: rc_trigger_t::state"] [:: core :: mem :: offset_of ! (rc_trigger_t , state) - 32usize] ; ["Offset of field: rc_trigger_t::has_hits"] [:: core :: mem :: offset_of ! (rc_trigger_t , has_hits) - 33usize] ; ["Offset of field: rc_trigger_t::has_required_hits"] [:: core :: mem :: offset_of ! (rc_trigger_t , has_required_hits) - 34usize] ; ["Offset of field: rc_trigger_t::measured_as_percent"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_as_percent) - 35usize] ; } ; extern "C" { pub fn rc_trigger_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_trigger (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_trigger_t ; } extern "C" { pub fn rc_evaluate_trigger (trigger : * mut rc_trigger_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_test_trigger (trigger : * mut rc_trigger_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_trigger (self_ : * mut rc_trigger_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_value_t { pub value : rc_memref_value_t , pub conditions : * mut rc_condset_t , pub memrefs : * mut rc_memref_t , pub name : * const :: core :: ffi :: c_char , pub next : * mut rc_value_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_value_t"] [:: core :: mem :: size_of :: < rc_value_t > () - 48usize] ; ["Alignment of rc_value_t"] [:: core :: mem :: align_of :: < rc_value_t > () - 8usize] ; ["Offset of field: rc_value_t::value"] [:: core :: mem :: offset_of ! (rc_value_t , value) - 0usize] ; ["Offset of field: rc_value_t::conditions"] [:: core :: mem :: offset_of ! (rc_value_t , conditions) - 16usize] ; ["Offset of field: rc_value_t::memrefs"] [:: core :: mem :: offset_of ! (rc_value_t , memrefs) - 24usize] ; ["Offset of field: rc_value_t::name"] [:: core :: mem :: offset_of ! (rc_value_t , name) - 32usize] ; ["Offset of field: rc_value_t::next"] [:: core :: mem :: offset_of ! (rc_value_t , next) - 40usize] ; } ; extern "C" { pub fn rc_value_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_value (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_value_t ; } extern "C" { pub fn rc_evaluate_value (value : * mut rc_value_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> i32 ; } pub const RC_LBOARD_STATE_INACTIVE : _bindgen_ty_7 = 0 ; pub const RC_LBOARD_STATE_WAITING : _bindgen_ty_7 = 1 ; pub const RC_LBOARD_STATE_ACTIVE : _bindgen_ty_7 = 2 ; pub const RC_LBOARD_STATE_STARTED : _bindgen_ty_7 = 3 ; pub const RC_LBOARD_STATE_CANCELED : _bindgen_ty_7 = 4 ; pub const RC_LBOARD_STATE_TRIGGERED : _bindgen_ty_7 = 5 ; pub const RC_LBOARD_STATE_DISABLED : _bindgen_ty_7 = 6 ; # [doc = "\\\n| Leaderboards                                                                |\n\\"] pub type _bindgen_ty_7 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_lboard_t { pub start : rc_trigger_t , pub submit : rc_trigger_t , pub cancel : rc_trigger_t , pub value : rc_value_t , pub progress : * mut rc_value_t , pub memrefs : * mut rc_memref_t , pub state : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_lboard_t"] [:: core :: mem :: size_of :: < rc_lboard_t > () - 192usize] ; ["Alignment of rc_lboard_t"] [:: core :: mem :: align_of :: < rc_lboard_t > () - 8usize] ; ["Offset of field: rc_lboard_t::start"] [:: core :: mem :: offset_of ! (rc_lboard_t , start) - 0usize] ; ["Offset of field: rc_lboard_t::submit"] [:: core :: mem :: offset_of ! (rc_lboard_t , submit) - 40usize] ; ["Offset of field: rc_lboard_t::cancel"] [:: core :: mem :: offset_of ! (rc_lboard_t , cancel) - 80usize] ; ["Offset of field: rc_lboard_t::value"] [:: core :: mem :: offset_of ! (rc_lboard_t , value) - 120usize] ; ["Offset of field: rc_lboard_t::progress"] [:: core :: mem :: offset_of ! (rc_lboard_t , progress) - 168usize] ; ["Offset of field: rc_lboard_t::memrefs"] [:: core :: mem :: offset_of ! (rc_lboard_t , memrefs) - 176usize] ; ["Offset of field: rc_lboard_t::state"] [:: core :: mem :: offset_of ! (rc_lboard_t , state) - 184usize] ; } ; extern "C" { pub fn rc_lboard_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_lboard (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_lboard_t ; } extern "C" { pub fn rc_evaluate_lboard (lboard : * mut rc_lboard_t , value : * mut i32 , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_lboard (lboard : * mut rc_lboard_t) ; } pub const RC_FORMAT_FRAMES : _bindgen_ty_8 = 0 ; pub const RC_FORMAT_SECONDS : _bindgen_ty_8 = 1 ; pub const RC_FORMAT_CENTISECS : _bindgen_ty_8 = 2 ; pub const RC_FORMAT_SCORE : _bindgen_ty_8 = 3 ; pub const RC_FORMAT_VALUE : _bindgen_ty_8 = 4 ; pub const RC_FORMAT_MINUTES : _bindgen_ty_8 = 5 ; pub const RC_FORMAT_SECONDS_AS_MINUTES : _bindgen_ty_8 = 6 ; pub const RC_FORMAT_FLOAT1 : _bindgen_ty_8 = 7 ; pub const RC_FORMAT_FLOAT2 : _bindgen_ty_8 = 8 ; pub const RC_FORMAT_FLOAT3 : _bindgen_ty_8 = 9 ; pub const RC_FORMAT_FLOAT4 : _bindgen_ty_8 = 10 ; pub const RC_FORMAT_FLOAT5 : _bindgen_ty_8 = 11 ; pub const RC_FORMAT_FLOAT6 : _bindgen_ty_8 = 12 ; pub const RC_FORMAT_FIXED1 : _bindgen_ty_8 = 13 ; pub const RC_FORMAT_FIXED2 : _bindgen_ty_8 = 14 ; pub const RC_FORMAT_FIXED3 : _bindgen_ty_8 = 15 ; pub const RC_FORMAT_TENS : _bindgen_ty_8 = 16 ; pub const RC_FORMAT_HUNDREDS : _bindgen_ty_8 = 17 ; pub const RC_FORMAT_THOUSANDS : _bindgen_ty_8 = 18 ; pub const RC_FORMAT_UNSIGNED_VALUE : _bindgen_ty_8 = 19 ; # [doc = "\\\n| Value formatting                                                            |\n\\"] pub type _bindgen_ty_8 = :: core :: ffi :: c_uint ; extern "C" { pub fn rc_parse_format (format_str : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_format_value (buffer : * mut :: core :: ffi :: c_char , size : :: core :: ffi :: c_int , value : i32 , format : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_lookup_item_t { pub first : u32 , pub last : u32 , pub left : * mut rc_richpresence_lookup_item_t , pub right : * mut rc_richpresence_lookup_item_t , pub label : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_lookup_item_t"] [:: core :: mem :: size_of :: < rc_richpresence_lookup_item_t > () - 32usize] ; ["Alignment of rc_richpresence_lookup_item_t"] [:: core :: mem :: align_of :: < rc_richpresence_lookup_item_t > () - 8usize] ; ["Offset of field: rc_richpresence_lookup_item_t::first"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , first) - 0usize] ; ["Offset of field: rc_richpresence_lookup_item_t::last"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , last) - 4usize] ; ["Offset of field: rc_richpresence_lookup_item_t::left"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , left) - 8usize] ; ["Offset of field: rc_richpresence_lookup_item_t::right"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , right) - 16usize] ; ["Offset of field: rc_richpresence_lookup_item_t::label"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , label) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_lookup_t { pub root : * mut rc_richpresence_lookup_item_t , pub next : * mut rc_richpresence_lookup_t , pub name : * const :: core :: ffi :: c_char , pub default_label : * const :: core :: ffi :: c_char , pub format : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_lookup_t"] [:: core :: mem :: size_of :: < rc_richpresence_lookup_t > () - 40usize] ; ["Alignment of rc_richpresence_lookup_t"] [:: core :: mem :: align_of :: < rc_richpresence_lookup_t > () - 8usize] ; ["Offset of field: rc_richpresence_lookup_t::root"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , root) - 0usize] ; ["Offset of field: rc_richpresence_lookup_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , next) - 8usize] ; ["Offset of field: rc_richpresence_lookup_t::name"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , name) - 16usize] ; ["Offset of field: rc_richpresence_lookup_t::default_label"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , default_label) - 24usize] ; ["Offset of field: rc_richpresence_lookup_t::format"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , format) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_display_part_t { pub next : * mut rc_richpresence_display_part_t , pub text : * const :: core :: ffi :: c_char , pub lookup : * mut rc_richpresence_lookup_t , pub value : * mut rc_memref_value_t , pub display_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_display_part_t"] [:: core :: mem :: size_of :: < rc_richpresence_display_part_t > () - 40usize] ; ["Alignment of rc_richpresence_display_part_t"] [:: core :: mem :: align_of :: < rc_richpresence_display_part_t > () - 8usize] ; ["Offset of field: rc_richpresence_display_part_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , next) - 0usize] ; ["Offset of field: rc_richpresence_display_part_t::text"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , text) - 8usize] ; ["Offset of field: rc_richpresence_display_part_t::lookup"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , lookup) - 16usize] ; ["Offset of field: rc_richpresence_display_part_t::value"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , value) - 24usize] ; ["Offset of field: rc_richpresence_display_part_t::display_type"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , display_type) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_display_t { pub trigger : rc_trigger_t , pub next : * mut rc_richpresence_display_t , pub display : * mut rc_richpresence_display_part_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_display_t"] [:: core :: mem :: size_of :: < rc_richpresence_display_t > () - 56usize] ; ["Alignment of rc_richpresence_display_t"] [:: core :: mem :: align_of :: < rc_richpresence_display_t > () - 8usize] ; ["Offset of field: rc_richpresence_display_t::trigger"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , trigger) - 0usize] ; ["Offset of field: rc_richpresence_display_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , next) - 40usize] ; ["Offset of field: rc_richpresence_display_t::display"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , display) - 48usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_t { pub first_display : * mut rc_richpresence_display_t , pub first_lookup : * mut rc_richpresence_lookup_t , pub memrefs : * mut rc_memref_t , pub variables : * mut rc_value_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_t"] [:: core :: mem :: size_of :: < rc_richpresence_t > () - 32usize] ; ["Alignment of rc_richpresence_t"] [:: core :: mem :: align_of :: < rc_richpresence_t > () - 8usize] ; ["Offset of field: rc_richpresence_t::first_display"] [:: core :: mem :: offset_of ! (rc_richpresence_t , first_display) - 0usize] ; ["Offset of field: rc_richpresence_t::first_lookup"] [:: core :: mem :: offset_of ! (rc_richpresence_t , first_lookup) - 8usize] ; ["Offset of field: rc_richpresence_t::memrefs"] [:: core :: mem :: offset_of ! (rc_richpresence_t , memrefs) - 16usize] ; ["Offset of field: rc_richpresence_t::variables"] [:: core :: mem :: offset_of ! (rc_richpresence_t , variables) - 24usize] ; } ; extern "C" { pub fn rc_richpresence_size (script : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_richpresence_size_lines (script : * const :: core :: ffi :: c_char , lines_read : * mut :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_richpresence (buffer : * mut :: core :: ffi :: c_void , script : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_richpresence_t ; } extern "C" { pub fn rc_evaluate_richpresence (richpresence : * mut rc_richpresence_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_update_richpresence (richpresence : * mut rc_richpresence_t , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) ; } extern "C" { pub fn rc_get_richpresence_display_string (richpresence : * mut rc_richpresence_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_richpresence (self_ : * mut rc_richpresence_t) ; } # [doc = " A block of memory for variable length data (like strings and arrays)."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_buffer_chunk_t { pub write : * mut u8 , pub end : * mut u8 , pub start : * mut u8 , pub next : * mut rc_buffer_chunk_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_buffer_chunk_t"] [:: core :: mem :: size_of :: < rc_buffer_chunk_t > () - 32usize] ; ["Alignment of rc_buffer_chunk_t"] [:: core :: mem :: align_of :: < rc_buffer_chunk_t > () - 8usize] ; ["Offset of field: rc_buffer_chunk_t::write"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , write) - 0usize] ; ["Offset of field: rc_buffer_chunk_t::end"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , end) - 8usize] ; ["Offset of field: rc_buffer_chunk_t::start"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , start) - 16usize] ; ["Offset of field: rc_buffer_chunk_t::next"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , next) - 24usize] ; } ; # [doc = " A preallocated block of memory for variable length data (like strings and arrays)."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_buffer_t { pub chunk : rc_buffer_chunk_t , pub data : [u8 ; 256usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_buffer_t"] [:: core :: mem :: size_of :: < rc_buffer_t > () - 288usize] ; ["Alignment of rc_buffer_t"] [:: core :: mem :: align_of :: < rc_buffer_t > () - 8usize] ; ["Offset of field: rc_buffer_t::chunk"] [:: core :: mem :: offset_of ! (rc_buffer_t , chunk) - 0usize] ; ["Offset of field: rc_buffer_t::data"] [:: core :: mem :: offset_of ! (rc_buffer_t , data) - 32usize] ; } ; extern "C" { pub fn rc_buffer_init (buffer : * mut rc_buffer_t) ; } extern "C" { pub fn rc_buffer_destroy (buffer : * mut rc_buffer_t) ; } extern "C" { pub fn rc_buffer_reserve (buffer : * mut rc_buffer_t , amount : usize) -> * mut u8 ; } extern "C" { pub fn rc_buffer_consume (buffer : * mut rc_buffer_t , start : * const u8 , end : * mut u8) ; } extern "C" { pub fn rc_buffer_alloc (buffer : * mut rc_buffer_t , amount : usize) -> * mut :: core :: ffi :: c_void ; } extern "C" { pub fn rc_buffer_strcpy (buffer : * mut rc_buffer_t , src : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn rc_buffer_strncpy (buffer : * mut rc_buffer_t , src : * const :: core :: ffi :: c_char , len : usize) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn rc_djb2 (input : * const :: core :: ffi :: c_char) -> u32 ; } extern "C" { pub fn rc_format_md5 (checksum : * mut :: core :: ffi :: c_char , digest : * const u8) ; } # [doc = " A constructed request to send to the retroachievements server."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_request_t { pub url : * const :: core :: ffi :: c_char , pub post_data : * const :: core :: ffi :: c_char , pub content_type : * const :: core :: ffi :: c_char , pub buffer : rc_buffer_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_request_t"] [:: core :: mem :: size_of :: < rc_api_request_t > () - 312usize] ; ["Alignment of rc_api_request_t"] [:: core :: mem :: align_of :: < rc_api_request_t > () - 8usize] ; ["Offset of field: rc_api_request_t::url"] [:: core :: mem :: offset_of ! (rc_api_request_t , url) - 0usize] ; ["Offset of field: rc_api_request_t::post_data"] [:: core :: mem :: offset_of ! (rc_api_request_t , post_data) - 8usize] ; ["Offset of field: rc_api_request_t::content_type"] [:: core :: mem :: offset_of ! (rc_api_request_t , content_type) - 16usize] ; ["Offset of field: rc_api_request_t::buffer"] [:: core :: mem :: offset_of ! (rc_api_request_t , buffer) - 24usize] ; } ; # [doc = " Common attributes for all server responses."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_response_t { pub succeeded : :: core :: ffi :: c_int , pub error_message : * const :: core :: ffi :: c_char , pub error_code : * const :: core :: ffi :: c_char , pub buffer : rc_buffer_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_response_t"] [:: core :: mem :: size_of :: < rc_api_response_t > () - 312usize] ; ["Alignment of rc_api_response_t"] [:: core :: mem :: align_of :: < rc_api_response_t > () - 8usize] ; ["Offset of field: rc_api_response_t::succeeded"] [:: core :: mem :: offset_of ! (rc_api_response_t , succeeded) - 0usize] ; ["Offset of field: rc_api_response_t::error_message"] [:: core :: mem :: offset_of ! (rc_api_response_t , error_message) - 8usize] ; ["Offset of field: rc_api_response_t::error_code"] [:: core :: mem :: offset_of ! (rc_api_response_t , error_code) - 16usize] ; ["Offset of field: rc_api_response_t::buffer"] [:: core :: mem :: offset_of ! (rc_api_response_t , buffer) - 24usize] ; } ; extern "C" { pub fn rc_api_destroy_request (request : * mut rc_api_request_t) ; } extern "C" { pub fn rc_api_set_host (hostname : * const :: core :: ffi :: c_char) ; } extern "C" { pub fn rc_api_set_image_host (hostname : * const :: core :: ffi :: c_char) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_server_response_t { pub body : * const :: core :: ffi :: c_char , pub body_length : usize , pub http_status_code : :: core :: ffi :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_server_response_t"] [:: core :: mem :: size_of :: < rc_api_server_response_t > () - 24usize] ; ["Alignment of rc_api_server_response_t"] [:: core :: mem :: align_of :: < rc_api_server_response_t > () - 8usize] ; ["Offset of field: rc_api_server_response_t::body"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , body) - 0usize] ; ["Offset of field: rc_api_server_response_t::body_length"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , body_length) - 8usize] ; ["Offset of field: rc_api_server_response_t::http_status_code"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , http_status_code) - 16usize] ; } ; pub const RC_API_SERVER_RESPONSE_CLIENT_ERROR : _bindgen_ty_9 = - 1 ; pub const RC_API_SERVER_RESPONSE_RETRYABLE_CLIENT_ERROR : _bindgen_ty_9 = - 2 ; pub type _bindgen_ty_9 = :: core :: ffi :: c_int ; pub type clock_t = __clock_t ; pub type time_t = __time_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct tm { pub tm_sec : :: core :: ffi :: c_int , pub tm_min : :: core :: ffi :: c_int , pub tm_hour : :: core :: ffi :: c_int , pub tm_mday : :: core :: ffi :: c_int , pub tm_mon : :: core :: ffi :: c_int , pub tm_year : :: core :: ffi :: c_int , pub tm_wday : :: core :: ffi :: c_int , pub tm_yday : :: core :: ffi :: c_int , pub tm_isdst : :: core :: ffi :: c_int , pub tm_gmtoff : :: core :: ffi :: c_long , pub tm_zone : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of tm"] [:: core :: mem :: size_of :: < tm > () - 56usize] ; ["Alignment of tm"] [:: core :: mem :: align_of :: < tm > () - 8usize] ; ["Offset of field: tm::tm_sec"] [:: core :: mem :: offset_of ! (tm , tm_sec) - 0usize] ; ["Offset of field: tm::tm_min"] [:: core :: mem :: offset_of ! (tm , tm_min) - 4usize] ; ["Offset of field: tm::tm_hour"] [:: core :: mem :: offset_of ! (tm , tm_hour) - 8usize] ; ["Offset of field: tm::tm_mday"] [:: core :: mem :: offset_of ! (tm , tm_mday) - 12usize] ; ["Offset of field: tm::tm_mon"] [:: core :: mem :: offset_of ! (tm , tm_mon) - 16usize] ; ["Offset of field: tm::tm_year"] [:: core :: mem :: offset_of ! (tm , tm_year) - 20usize] ; ["Offset of field: tm::tm_wday"] [:: core :: mem :: offset_of ! (tm , tm_wday) - 24usize] ; ["Offset of field: tm::tm_yday"] [:: core :: mem :: offset_of ! (tm , tm_yday) - 28usize] ; ["Offset of field: tm::tm_isdst"] [:: core :: mem :: offset_of ! (tm , tm_isdst) - 32usize] ; ["Offset of field: tm::tm_gmtoff"] [:: core :: mem :: offset_of ! (tm , tm_gmtoff) - 40usize] ; ["Offset of field: tm::tm_zone"] [:: core :: mem :: offset_of ! (tm , tm_zone) - 48usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct timespec { pub tv_sec : __time_t , pub tv_nsec : __syscall_slong_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of timespec"] [:: core :: mem :: size_of :: < timespec > () - 16usize] ; ["Alignment of timespec"] [:: core :: mem :: align_of :: < timespec > () - 8usize] ; ["Offset of field: timespec::tv_sec"] [:: core :: mem :: offset_of ! (timespec , tv_sec) - 0usize] ; ["Offset of field: timespec::tv_nsec"] [:: core :: mem :: offset_of ! (timespec , tv_nsec) - 8usize] ; } ; pub type clockid_t = __clockid_t ; pub type timer_t = __timer_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct itimerspec { pub it_interval : timespec , pub it_value : timespec , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of itimerspec"] [:: core :: mem :: size_of :: < itimerspec > () - 32usize] ; ["Alignment of itimerspec"] [:: core :: mem :: align_of :: < itimerspec > () - 8usize] ; ["Offset of field: itimerspec::it_interval"] [:: core :: mem :: offset_of ! (itimerspec , it_interval) - 0usize] ; ["Offset of field: itimerspec::it_value"] [:: core :: mem :: offset_of ! (itimerspec , it_value) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct sigevent { _unused : [u8 ; 0] , } pub type pid_t = __pid_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __locale_struct { pub __locales : [* mut __locale_data ; 13usize] , pub __ctype_b : * const :: core :: ffi :: c_ushort , pub __ctype_tolower : * const :: core :: ffi :: c_int , pub __ctype_toupper : * const :: core :: ffi :: c_int , pub __names : [* const :: core :: ffi :: c_char ; 13usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __locale_struct"] [:: core :: mem :: size_of :: < __locale_struct > () - 232usize] ; ["Alignment of __locale_struct"] [:: core :: mem :: align_of :: < __locale_struct > () - 8usize] ; ["Offset of field: __locale_struct::__locales"] [:: core :: mem :: offset_of ! (__locale_struct , __locales) - 0usize] ; ["Offset of field: __locale_struct::__ctype_b"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_b) - 104usize] ; ["Offset of field: __locale_struct::__ctype_tolower"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_tolower) - 112usize] ; ["Offset of field: __locale_struct::__ctype_toupper"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_toupper) - 120usize] ; ["Offset of field: __locale_struct::__names"] [:: core :: mem :: offset_of ! (__locale_struct , __names) - 128usize] ; } ; pub type __locale_t = * mut __locale_struct ; pub type locale_t = __locale_t ; extern "C" { pub fn clock () -> clock_t ; } extern "C" { pub fn time (__timer : * mut time_t) -> time_t ; } extern "C" { pub fn difftime (__time1 : time_t , __time0 : time_t) -> f64 ; } extern "C" { pub fn mktime (__tp : * mut tm) -> time_t ; } extern "C" { pub fn strftime (__s : * mut :: core :: ffi :: c_char , __maxsize : usize , __format : * const :: core :: ffi :: c_char , __tp : * const tm) -> usize ; } extern "C" { pub fn strftime_l (__s : * mut :: core :: ffi :: c_char , __maxsize : usize , __format : * const :: core :: ffi :: c_char , __tp : * const tm , __loc : locale_t) -> usize ; } extern "C" { pub fn gmtime (__timer : * const time_t) -> * mut tm ; } extern "C" { pub fn localtime (__timer : * const time_t) -> * mut tm ; } extern "C" { pub fn gmtime_r (__timer : * const time_t , __tp : * mut tm) -> * mut tm ; } extern "C" { pub fn localtime_r (__timer : * const time_t , __tp : * mut tm) -> * mut tm ; } extern "C" { pub fn asctime (__tp : * const tm) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn ctime (__timer : * const time_t) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn asctime_r (__tp : * const tm , __buf : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn ctime_r (__timer : * const time_t , __buf : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub static mut __tzname : [* mut :: core :: ffi :: c_char ; 2usize] ; } extern "C" { pub static mut __daylight : :: core :: ffi :: c_int ; } extern "C" { pub static mut __timezone : :: core :: ffi :: c_long ; } extern "C" { pub static mut tzname : [* mut :: core :: ffi :: c_char ; 2usize] ; } extern "C" { pub fn tzset () ; } extern "C" { pub static mut daylight : :: core :: ffi :: c_int ; } extern "C" { pub static mut timezone : :: core :: ffi :: c_long ; } extern "C" { pub fn timegm (__tp : * mut tm) -> time_t ; } extern "C" { pub fn timelocal (__tp : * mut tm) -> time_t ; } extern "C" { pub fn dysize (__year : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn nanosleep (__requested_time : * const timespec , __remaining : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_getres (__clock_id : clockid_t , __res : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_gettime (__clock_id : clockid_t , __tp : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_settime (__clock_id : clockid_t , __tp : * const timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_nanosleep (__clock_id : clockid_t , __flags : :: core :: ffi :: c_int , __req : * const timespec , __rem : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_getcpuclockid (__pid : pid_t , __clock_id : * mut clockid_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_create (__clock_id : clockid_t , __evp : * mut sigevent , __timerid : * mut timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_delete (__timerid : timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_settime (__timerid : timer_t , __flags : :: core :: ffi :: c_int , __value : * const itimerspec , __ovalue : * mut itimerspec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_gettime (__timerid : timer_t , __value : * mut itimerspec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_getoverrun (__timerid : timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timespec_get (__ts : * mut timespec , __base : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } # [doc = " API parameters for a login request.\n If both password and api_token are provided, api_token will be ignored."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_login_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub password : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_login_request_t"] [:: core :: mem :: size_of :: < rc_api_login_request_t > () - 24usize] ; ["Alignment of rc_api_login_request_t"] [:: core :: mem :: align_of :: < rc_api_login_request_t > () - 8usize] ; ["Offset of field: rc_api_login_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , username) - 0usize] ; ["Offset of field: rc_api_login_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_login_request_t::password"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , password) - 16usize] ; } ; # [doc = " Response data for a login request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_login_response_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub score : u32 , pub score_softcore : u32 , pub num_unread_messages : u32 , pub display_name : * const :: core :: ffi :: c_char , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_login_response_t"] [:: core :: mem :: size_of :: < rc_api_login_response_t > () - 352usize] ; ["Alignment of rc_api_login_response_t"] [:: core :: mem :: align_of :: < rc_api_login_response_t > () - 8usize] ; ["Offset of field: rc_api_login_response_t::username"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , username) - 0usize] ; ["Offset of field: rc_api_login_response_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , api_token) - 8usize] ; ["Offset of field: rc_api_login_response_t::score"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , score) - 16usize] ; ["Offset of field: rc_api_login_response_t::score_softcore"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , score_softcore) - 20usize] ; ["Offset of field: rc_api_login_response_t::num_unread_messages"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , num_unread_messages) - 24usize] ; ["Offset of field: rc_api_login_response_t::display_name"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , display_name) - 32usize] ; ["Offset of field: rc_api_login_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , response) - 40usize] ; } ; extern "C" { pub fn rc_api_init_login_request (request : * mut rc_api_request_t , api_params : * const rc_api_login_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_login_response (response : * mut rc_api_login_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_login_server_response (response : * mut rc_api_login_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_login_response (response : * mut rc_api_login_response_t) ; } # [doc = " API parameters for a start session request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_start_session_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub game_hash : * const :: core :: ffi :: c_char , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_start_session_request_t"] [:: core :: mem :: size_of :: < rc_api_start_session_request_t > () - 40usize] ; ["Alignment of rc_api_start_session_request_t"] [:: core :: mem :: align_of :: < rc_api_start_session_request_t > () - 8usize] ; ["Offset of field: rc_api_start_session_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , username) - 0usize] ; ["Offset of field: rc_api_start_session_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_start_session_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_start_session_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_start_session_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , hardcore) - 32usize] ; } ; # [doc = " Response data for an achievement unlock."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_unlock_entry_t { pub achievement_id : u32 , pub when : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_unlock_entry_t"] [:: core :: mem :: size_of :: < rc_api_unlock_entry_t > () - 16usize] ; ["Alignment of rc_api_unlock_entry_t"] [:: core :: mem :: align_of :: < rc_api_unlock_entry_t > () - 8usize] ; ["Offset of field: rc_api_unlock_entry_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_unlock_entry_t , achievement_id) - 0usize] ; ["Offset of field: rc_api_unlock_entry_t::when"] [:: core :: mem :: offset_of ! (rc_api_unlock_entry_t , when) - 8usize] ; } ; # [doc = " Response data for a start session request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_start_session_response_t { pub hardcore_unlocks : * mut rc_api_unlock_entry_t , pub unlocks : * mut rc_api_unlock_entry_t , pub num_hardcore_unlocks : u32 , pub num_unlocks : u32 , pub server_now : time_t , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_start_session_response_t"] [:: core :: mem :: size_of :: < rc_api_start_session_response_t > () - 344usize] ; ["Alignment of rc_api_start_session_response_t"] [:: core :: mem :: align_of :: < rc_api_start_session_response_t > () - 8usize] ; ["Offset of field: rc_api_start_session_response_t::hardcore_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , hardcore_unlocks) - 0usize] ; ["Offset of field: rc_api_start_session_response_t::unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , unlocks) - 8usize] ; ["Offset of field: rc_api_start_session_response_t::num_hardcore_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , num_hardcore_unlocks) - 16usize] ; ["Offset of field: rc_api_start_session_response_t::num_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , num_unlocks) - 20usize] ; ["Offset of field: rc_api_start_session_response_t::server_now"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , server_now) - 24usize] ; ["Offset of field: rc_api_start_session_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_start_session_request (request : * mut rc_api_request_t , api_params : * const rc_api_start_session_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_start_session_response (response : * mut rc_api_start_session_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_start_session_server_response (response : * mut rc_api_start_session_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_start_session_response (response : * mut rc_api_start_session_response_t) ; } # [doc = " API parameters for a fetch user unlocks request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_user_unlocks_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_user_unlocks_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_user_unlocks_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_user_unlocks_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_user_unlocks_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , hardcore) - 20usize] ; } ; # [doc = " Response data for a fetch user unlocks request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_user_unlocks_response_t { pub achievement_ids : * mut u32 , pub num_achievement_ids : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_user_unlocks_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_user_unlocks_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_user_unlocks_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_user_unlocks_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::achievement_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , achievement_ids) - 0usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::num_achievement_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , num_achievement_ids) - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_user_unlocks_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_user_unlocks_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_user_unlocks_response (response : * mut rc_api_fetch_user_unlocks_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_user_unlocks_server_response (response : * mut rc_api_fetch_user_unlocks_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_user_unlocks_response (response : * mut rc_api_fetch_user_unlocks_response_t) ; } # [doc = " API parameters for a fetch code notes request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_code_notes_request_t { pub game_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_code_notes_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_code_notes_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_code_notes_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_code_notes_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_code_notes_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_request_t , game_id) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_code_note_t { pub address : u32 , pub author : * const :: core :: ffi :: c_char , pub note : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_code_note_t"] [:: core :: mem :: size_of :: < rc_api_code_note_t > () - 24usize] ; ["Alignment of rc_api_code_note_t"] [:: core :: mem :: align_of :: < rc_api_code_note_t > () - 8usize] ; ["Offset of field: rc_api_code_note_t::address"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , address) - 0usize] ; ["Offset of field: rc_api_code_note_t::author"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , author) - 8usize] ; ["Offset of field: rc_api_code_note_t::note"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , note) - 16usize] ; } ; # [doc = " Response data for a fetch code notes request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_code_notes_response_t { pub notes : * mut rc_api_code_note_t , pub num_notes : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_code_notes_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_code_notes_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_code_notes_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_code_notes_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::notes"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , notes) - 0usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::num_notes"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , num_notes) - 8usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_code_notes_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_code_notes_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_code_notes_response (response : * mut rc_api_fetch_code_notes_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_code_notes_server_response (response : * mut rc_api_fetch_code_notes_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_code_notes_response (response : * mut rc_api_fetch_code_notes_response_t) ; } # [doc = " API parameters for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_code_note_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub address : u32 , pub note : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_code_note_request_t"] [:: core :: mem :: size_of :: < rc_api_update_code_note_request_t > () - 32usize] ; ["Alignment of rc_api_update_code_note_request_t"] [:: core :: mem :: align_of :: < rc_api_update_code_note_request_t > () - 8usize] ; ["Offset of field: rc_api_update_code_note_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_code_note_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_code_note_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_update_code_note_request_t::address"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , address) - 20usize] ; ["Offset of field: rc_api_update_code_note_request_t::note"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , note) - 24usize] ; } ; # [doc = " Response data for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_code_note_response_t { pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_code_note_response_t"] [:: core :: mem :: size_of :: < rc_api_update_code_note_response_t > () - 312usize] ; ["Alignment of rc_api_update_code_note_response_t"] [:: core :: mem :: align_of :: < rc_api_update_code_note_response_t > () - 8usize] ; ["Offset of field: rc_api_update_code_note_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_response_t , response) - 0usize] ; } ; extern "C" { pub fn rc_api_init_update_code_note_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_code_note_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_code_note_response (response : * mut rc_api_update_code_note_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_code_note_server_response (response : * mut rc_api_update_code_note_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_code_note_response (response : * mut rc_api_update_code_note_response_t) ; } # [doc = " API parameters for an update achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_achievement_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub game_id : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub badge : * const :: core :: ffi :: c_char , pub trigger : * const :: core :: ffi :: c_char , pub points : u32 , pub category : u32 , pub type_ : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_achievement_request_t"] [:: core :: mem :: size_of :: < rc_api_update_achievement_request_t > () - 72usize] ; ["Alignment of rc_api_update_achievement_request_t"] [:: core :: mem :: align_of :: < rc_api_update_achievement_request_t > () - 8usize] ; ["Offset of field: rc_api_update_achievement_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_achievement_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_achievement_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_update_achievement_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , game_id) - 20usize] ; ["Offset of field: rc_api_update_achievement_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , title) - 24usize] ; ["Offset of field: rc_api_update_achievement_request_t::description"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , description) - 32usize] ; ["Offset of field: rc_api_update_achievement_request_t::badge"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , badge) - 40usize] ; ["Offset of field: rc_api_update_achievement_request_t::trigger"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , trigger) - 48usize] ; ["Offset of field: rc_api_update_achievement_request_t::points"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , points) - 56usize] ; ["Offset of field: rc_api_update_achievement_request_t::category"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , category) - 60usize] ; ["Offset of field: rc_api_update_achievement_request_t::type_"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , type_) - 64usize] ; } ; # [doc = " Response data for an update achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_achievement_response_t { pub achievement_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_achievement_response_t"] [:: core :: mem :: size_of :: < rc_api_update_achievement_response_t > () - 320usize] ; ["Alignment of rc_api_update_achievement_response_t"] [:: core :: mem :: align_of :: < rc_api_update_achievement_response_t > () - 8usize] ; ["Offset of field: rc_api_update_achievement_response_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_response_t , achievement_id) - 0usize] ; ["Offset of field: rc_api_update_achievement_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_update_achievement_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_achievement_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_achievement_response (response : * mut rc_api_update_achievement_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_achievement_server_response (response : * mut rc_api_update_achievement_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_achievement_response (response : * mut rc_api_update_achievement_response_t) ; } # [doc = " API parameters for an update leaderboard request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_leaderboard_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub leaderboard_id : u32 , pub game_id : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub start_trigger : * const :: core :: ffi :: c_char , pub submit_trigger : * const :: core :: ffi :: c_char , pub cancel_trigger : * const :: core :: ffi :: c_char , pub value_definition : * const :: core :: ffi :: c_char , pub format : * const :: core :: ffi :: c_char , pub lower_is_better : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_leaderboard_request_t"] [:: core :: mem :: size_of :: < rc_api_update_leaderboard_request_t > () - 88usize] ; ["Alignment of rc_api_update_leaderboard_request_t"] [:: core :: mem :: align_of :: < rc_api_update_leaderboard_request_t > () - 8usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , leaderboard_id) - 16usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , game_id) - 20usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , title) - 24usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::description"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , description) - 32usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::start_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , start_trigger) - 40usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::submit_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , submit_trigger) - 48usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::cancel_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , cancel_trigger) - 56usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::value_definition"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , value_definition) - 64usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::format"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , format) - 72usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , lower_is_better) - 80usize] ; } ; # [doc = " Response data for an update leaderboard request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_leaderboard_response_t { pub leaderboard_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_leaderboard_response_t"] [:: core :: mem :: size_of :: < rc_api_update_leaderboard_response_t > () - 320usize] ; ["Alignment of rc_api_update_leaderboard_response_t"] [:: core :: mem :: align_of :: < rc_api_update_leaderboard_response_t > () - 8usize] ; ["Offset of field: rc_api_update_leaderboard_response_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_response_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_api_update_leaderboard_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_update_leaderboard_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_leaderboard_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_leaderboard_response (response : * mut rc_api_update_leaderboard_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_leaderboard_server_response (response : * mut rc_api_update_leaderboard_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_leaderboard_response (response : * mut rc_api_update_leaderboard_response_t) ; } # [doc = " API parameters for a fetch badge range request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_badge_range_request_t { pub unused : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_badge_range_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_badge_range_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_badge_range_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_badge_range_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_badge_range_request_t::unused"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_request_t , unused) - 0usize] ; } ; # [doc = " Response data for a fetch badge range request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_badge_range_response_t { pub first_badge_id : u32 , pub next_badge_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_badge_range_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_badge_range_response_t > () - 320usize] ; ["Alignment of rc_api_fetch_badge_range_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_badge_range_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::first_badge_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , first_badge_id) - 0usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::next_badge_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , next_badge_id) - 4usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_fetch_badge_range_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_badge_range_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_badge_range_response (response : * mut rc_api_fetch_badge_range_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_badge_range_server_response (response : * mut rc_api_fetch_badge_range_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_badge_range_response (response : * mut rc_api_fetch_badge_range_response_t) ; } # [doc = " API parameters for an add game hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_add_game_hash_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub hash : * const :: core :: ffi :: c_char , pub hash_description : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_add_game_hash_request_t"] [:: core :: mem :: size_of :: < rc_api_add_game_hash_request_t > () - 48usize] ; ["Alignment of rc_api_add_game_hash_request_t"] [:: core :: mem :: align_of :: < rc_api_add_game_hash_request_t > () - 8usize] ; ["Offset of field: rc_api_add_game_hash_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , username) - 0usize] ; ["Offset of field: rc_api_add_game_hash_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_add_game_hash_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_add_game_hash_request_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , console_id) - 20usize] ; ["Offset of field: rc_api_add_game_hash_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , title) - 24usize] ; ["Offset of field: rc_api_add_game_hash_request_t::hash"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , hash) - 32usize] ; ["Offset of field: rc_api_add_game_hash_request_t::hash_description"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , hash_description) - 40usize] ; } ; # [doc = " Response data for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_add_game_hash_response_t { pub game_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_add_game_hash_response_t"] [:: core :: mem :: size_of :: < rc_api_add_game_hash_response_t > () - 320usize] ; ["Alignment of rc_api_add_game_hash_response_t"] [:: core :: mem :: align_of :: < rc_api_add_game_hash_response_t > () - 8usize] ; ["Offset of field: rc_api_add_game_hash_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_response_t , game_id) - 0usize] ; ["Offset of field: rc_api_add_game_hash_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_add_game_hash_request (request : * mut rc_api_request_t , api_params : * const rc_api_add_game_hash_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_add_game_hash_response (response : * mut rc_api_add_game_hash_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_add_game_hash_server_response (response : * mut rc_api_add_game_hash_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_add_game_hash_response (response : * mut rc_api_add_game_hash_response_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_t { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_menu_item_t { pub label : * const :: core :: ffi :: c_char , pub id : u32 , pub checked : u8 , pub enabled : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_menu_item_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_menu_item_t > () - 16usize] ; ["Alignment of rc_client_raintegration_menu_item_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_menu_item_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::label"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , label) - 0usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::id"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , id) - 8usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::checked"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , checked) - 12usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::enabled"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , enabled) - 13usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_menu_t { pub items : * mut rc_client_raintegration_menu_item_t , pub num_items : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_menu_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_menu_t > () - 16usize] ; ["Alignment of rc_client_raintegration_menu_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_menu_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_menu_t::items"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_t , items) - 0usize] ; ["Offset of field: rc_client_raintegration_menu_t::num_items"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_t , num_items) - 8usize] ; } ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_NONE : _bindgen_ty_10 = 0 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_PUBLISHED : _bindgen_ty_10 = 1 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_LOCAL : _bindgen_ty_10 = 2 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_MODIFIED : _bindgen_ty_10 = 3 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_INSECURE : _bindgen_ty_10 = 4 ; pub type _bindgen_ty_10 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_RAINTEGRATION_EVENT_TYPE_NONE : _bindgen_ty_11 = 0 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_MENUITEM_CHECKED_CHANGED : _bindgen_ty_11 = 1 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_HARDCORE_CHANGED : _bindgen_ty_11 = 2 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_PAUSE : _bindgen_ty_11 = 3 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_MENU_CHANGED : _bindgen_ty_11 = 4 ; pub type _bindgen_ty_11 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_event_t { pub type_ : u32 , pub menu_item : * const rc_client_raintegration_menu_item_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_event_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_event_t > () - 16usize] ; ["Alignment of rc_client_raintegration_event_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_event_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_event_t::type_"] [:: core :: mem :: offset_of ! (rc_client_raintegration_event_t , type_) - 0usize] ; ["Offset of field: rc_client_raintegration_event_t::menu_item"] [:: core :: mem :: offset_of ! (rc_client_raintegration_event_t , menu_item) - 8usize] ; } ; pub type rc_client_raintegration_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (event : * const rc_client_raintegration_event_t , client : * mut rc_client_t) > ; pub type rc_client_raintegration_write_memory_func_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , buffer : * mut u8 , num_bytes : u32 , client : * mut rc_client_t) > ; pub type rc_client_raintegration_get_game_name_func_t = :: core :: option :: Option < unsafe extern "C" fn (buffer : * mut :: core :: ffi :: c_char , buffer_size : u32 , client : * mut rc_client_t) > ; # [doc = " API parameters for a fetch achievement info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_achievement_info_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub first_entry : u32 , pub count : u32 , pub friends_only : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_achievement_info_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_achievement_info_request_t > () - 32usize] ; ["Alignment of rc_api_fetch_achievement_info_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_achievement_info_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::first_entry"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , first_entry) - 20usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::count"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , count) - 24usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::friends_only"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , friends_only) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_achievement_awarded_entry_t { pub username : * const :: core :: ffi :: c_char , pub awarded : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_achievement_awarded_entry_t"] [:: core :: mem :: size_of :: < rc_api_achievement_awarded_entry_t > () - 16usize] ; ["Alignment of rc_api_achievement_awarded_entry_t"] [:: core :: mem :: align_of :: < rc_api_achievement_awarded_entry_t > () - 8usize] ; ["Offset of field: rc_api_achievement_awarded_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_achievement_awarded_entry_t , username) - 0usize] ; ["Offset of field: rc_api_achievement_awarded_entry_t::awarded"] [:: core :: mem :: offset_of ! (rc_api_achievement_awarded_entry_t , awarded) - 8usize] ; } ; # [doc = " Response data for a fetch achievement info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_achievement_info_response_t { pub id : u32 , pub game_id : u32 , pub num_awarded : u32 , pub num_players : u32 , pub recently_awarded : * mut rc_api_achievement_awarded_entry_t , pub num_recently_awarded : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_achievement_info_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_achievement_info_response_t > () - 344usize] ; ["Alignment of rc_api_fetch_achievement_info_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_achievement_info_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , game_id) - 4usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_awarded) - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_players"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_players) - 12usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::recently_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , recently_awarded) - 16usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_recently_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_recently_awarded) - 24usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_fetch_achievement_info_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_achievement_info_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_achievement_info_response (response : * mut rc_api_fetch_achievement_info_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_achievement_info_server_response (response : * mut rc_api_fetch_achievement_info_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_achievement_info_response (response : * mut rc_api_fetch_achievement_info_response_t) ; } # [doc = " API parameters for a fetch leaderboard info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_leaderboard_info_request_t { pub leaderboard_id : u32 , pub count : u32 , pub first_entry : u32 , pub username : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_leaderboard_info_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_leaderboard_info_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_leaderboard_info_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_leaderboard_info_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::count"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , count) - 4usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::first_entry"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , first_entry) - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , username) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_lboard_info_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub index : u32 , pub score : i32 , pub submitted : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_lboard_info_entry_t"] [:: core :: mem :: size_of :: < rc_api_lboard_info_entry_t > () - 32usize] ; ["Alignment of rc_api_lboard_info_entry_t"] [:: core :: mem :: align_of :: < rc_api_lboard_info_entry_t > () - 8usize] ; ["Offset of field: rc_api_lboard_info_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , username) - 0usize] ; ["Offset of field: rc_api_lboard_info_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , rank) - 8usize] ; ["Offset of field: rc_api_lboard_info_entry_t::index"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , index) - 12usize] ; ["Offset of field: rc_api_lboard_info_entry_t::score"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , score) - 16usize] ; ["Offset of field: rc_api_lboard_info_entry_t::submitted"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , submitted) - 24usize] ; } ; # [doc = " Response data for a fetch leaderboard info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_leaderboard_info_response_t { pub id : u32 , pub format : :: core :: ffi :: c_int , pub lower_is_better : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub game_id : u32 , pub author : * const :: core :: ffi :: c_char , pub created : time_t , pub updated : time_t , pub entries : * mut rc_api_lboard_info_entry_t , pub num_entries : u32 , pub total_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_leaderboard_info_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_leaderboard_info_response_t > () - 400usize] ; ["Alignment of rc_api_fetch_leaderboard_info_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_leaderboard_info_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::format"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , format) - 4usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , lower_is_better) - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::title"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , title) - 16usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::description"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , description) - 24usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::definition"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , definition) - 32usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , game_id) - 40usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::author"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , author) - 48usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::created"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , created) - 56usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::updated"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , updated) - 64usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , entries) - 72usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , num_entries) - 80usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::total_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , total_entries) - 84usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , response) - 88usize] ; } ; extern "C" { pub fn rc_api_init_fetch_leaderboard_info_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_leaderboard_info_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_leaderboard_info_response (response : * mut rc_api_fetch_leaderboard_info_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_leaderboard_info_server_response (response : * mut rc_api_fetch_leaderboard_info_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_leaderboard_info_response (response : * mut rc_api_fetch_leaderboard_info_response_t) ; } # [doc = " API parameters for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_games_list_request_t { pub console_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_games_list_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_games_list_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_games_list_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_games_list_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_games_list_request_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_request_t , console_id) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_game_list_entry_t { pub id : u32 , pub name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_game_list_entry_t"] [:: core :: mem :: size_of :: < rc_api_game_list_entry_t > () - 16usize] ; ["Alignment of rc_api_game_list_entry_t"] [:: core :: mem :: align_of :: < rc_api_game_list_entry_t > () - 8usize] ; ["Offset of field: rc_api_game_list_entry_t::id"] [:: core :: mem :: offset_of ! (rc_api_game_list_entry_t , id) - 0usize] ; ["Offset of field: rc_api_game_list_entry_t::name"] [:: core :: mem :: offset_of ! (rc_api_game_list_entry_t , name) - 8usize] ; } ; # [doc = " Response data for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_games_list_response_t { pub entries : * mut rc_api_game_list_entry_t , pub num_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_games_list_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_games_list_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_games_list_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_games_list_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , entries) - 0usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , num_entries) - 8usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_games_list_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_games_list_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_games_list_response (response : * mut rc_api_fetch_games_list_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_games_list_server_response (response : * mut rc_api_fetch_games_list_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_games_list_response (response : * mut rc_api_fetch_games_list_response_t) ; } # [doc = " API parameters for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_titles_request_t { pub game_ids : * const u32 , pub num_game_ids : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_titles_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_titles_request_t > () - 16usize] ; ["Alignment of rc_api_fetch_game_titles_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_titles_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_request_t::game_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_request_t , game_ids) - 0usize] ; ["Offset of field: rc_api_fetch_game_titles_request_t::num_game_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_request_t , num_game_ids) - 8usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_game_title_entry_t { pub id : u32 , pub title : * const :: core :: ffi :: c_char , pub image_name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_game_title_entry_t"] [:: core :: mem :: size_of :: < rc_api_game_title_entry_t > () - 24usize] ; ["Alignment of rc_api_game_title_entry_t"] [:: core :: mem :: align_of :: < rc_api_game_title_entry_t > () - 8usize] ; ["Offset of field: rc_api_game_title_entry_t::id"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , id) - 0usize] ; ["Offset of field: rc_api_game_title_entry_t::title"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , title) - 8usize] ; ["Offset of field: rc_api_game_title_entry_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , image_name) - 16usize] ; } ; # [doc = " Response data for a fetch games title request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_titles_response_t { pub entries : * mut rc_api_game_title_entry_t , pub num_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_titles_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_titles_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_game_titles_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_titles_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , entries) - 0usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , num_entries) - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_game_titles_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_game_titles_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_titles_server_response (response : * mut rc_api_fetch_game_titles_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_game_titles_response (response : * mut rc_api_fetch_game_titles_response_t) ; } pub type __gnuc_va_list = __builtin_va_list ; # [repr (C)] # [derive (Copy , Clone)] pub struct __mbstate_t { pub __count : :: core :: ffi :: c_int , pub __value : __mbstate_t__bindgen_ty_1 , } # [repr (C)] # [derive (Copy , Clone)] pub union __mbstate_t__bindgen_ty_1 { pub __wch : :: core :: ffi :: c_uint , pub __wchb : [:: core :: ffi :: c_char ; 4usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __mbstate_t__bindgen_ty_1"] [:: core :: mem :: size_of :: < __mbstate_t__bindgen_ty_1 > () - 4usize] ; ["Alignment of __mbstate_t__bindgen_ty_1"] [:: core :: mem :: align_of :: < __mbstate_t__bindgen_ty_1 > () - 4usize] ; ["Offset of field: __mbstate_t__bindgen_ty_1::__wch"] [:: core :: mem :: offset_of ! (__mbstate_t__bindgen_ty_1 , __wch) - 0usize] ; ["Offset of field: __mbstate_t__bindgen_ty_1::__wchb"] [:: core :: mem :: offset_of ! (__mbstate_t__bindgen_ty_1 , __wchb) - 0usize] ; } ; impl :: core :: fmt :: Debug for __mbstate_t__bindgen_ty_1 { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "__mbstate_t__bindgen_ty_1 {{ union }}") } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __mbstate_t"] [:: core :: mem :: size_of :: < __mbstate_t > () - 8usize] ; ["Alignment of __mbstate_t"] [:: core :: mem :: align_of :: < __mbstate_t > () - 4usize] ; ["Offset of field: __mbstate_t::__count"] [:: core :: mem :: offset_of ! (__mbstate_t , __count) - 0usize] ; ["Offset of field: __mbstate_t::__value"] [:: core :: mem :: offset_of ! (__mbstate_t , __value) - 4usize] ; } ; impl :: core :: fmt :: Debug for __mbstate_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "__mbstate_t {{ __count: {:?}, __value: {:?} }}" , self . __count , self . __value) } } # [repr (C)] # [derive (Copy , Clone)] pub struct _G_fpos_t { pub __pos : __off_t , pub __state : __mbstate_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _G_fpos_t"] [:: core :: mem :: size_of :: < _G_fpos_t > () - 16usize] ; ["Alignment of _G_fpos_t"] [:: core :: mem :: align_of :: < _G_fpos_t > () - 8usize] ; ["Offset of field: _G_fpos_t::__pos"] [:: core :: mem :: offset_of ! (_G_fpos_t , __pos) - 0usize] ; ["Offset of field: _G_fpos_t::__state"] [:: core :: mem :: offset_of ! (_G_fpos_t , __state) - 8usize] ; } ; impl :: core :: fmt :: Debug for _G_fpos_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "_G_fpos_t {{ __pos: {:?}, __state: {:?} }}" , self . __pos , self . __state) } } pub type __fpos_t = _G_fpos_t ; # [repr (C)] # [derive (Copy , Clone)] pub struct _G_fpos64_t { pub __pos : __off64_t , pub __state : __mbstate_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _G_fpos64_t"] [:: core :: mem :: size_of :: < _G_fpos64_t > () - 16usize] ; ["Alignment of _G_fpos64_t"] [:: core :: mem :: align_of :: < _G_fpos64_t > () - 8usize] ; ["Offset of field: _G_fpos64_t::__pos"] [:: core :: mem :: offset_of ! (_G_fpos64_t , __pos) - 0usize] ; ["Offset of field: _G_fpos64_t::__state"] [:: core :: mem :: offset_of ! (_G_fpos64_t , __state) - 8usize] ; } ; impl :: core :: fmt :: Debug for _G_fpos64_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "_G_fpos64_t {{ __pos: {:?}, __state: {:?} }}" , self . __pos , self . __state) } } pub type __fpos64_t = _G_fpos64_t ; pub type __FILE = _IO_FILE ; pub type FILE = _IO_FILE ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_marker { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_codecvt { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_wide_data { _unused : [u8 ; 0] , } pub type _IO_lock_t = :: core :: ffi :: c_void ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_FILE { pub _flags : :: core :: ffi :: c_int , pub _IO_read_ptr : * mut :: core :: ffi :: c_char , pub _IO_read_end : * mut :: core :: ffi :: c_char , pub _IO_read_base : * mut :: core :: ffi :: c_char , pub _IO_write_base : * mut :: core :: ffi :: c_char , pub _IO_write_ptr : * mut :: core :: ffi :: c_char , pub _IO_write_end : * mut :: core :: ffi :: c_char , pub _IO_buf_base : * mut :: core :: ffi :: c_char , pub _IO_buf_end : * mut :: core :: ffi :: c_char , pub _IO_save_base : * mut :: core :: ffi :: c_char , pub _IO_backup_base : * mut :: core :: ffi :: c_char , pub _IO_save_end : * mut :: core :: ffi :: c_char , pub _markers : * mut _IO_marker , pub _chain : * mut _IO_FILE , pub _fileno : :: core :: ffi :: c_int , pub _bitfield_align_1 : [u32 ; 0] , pub _bitfield_1 : __BindgenBitfieldUnit < [u8 ; 3usize] > , pub _short_backupbuf : [:: core :: ffi :: c_char ; 1usize] , pub _old_offset : __off_t , pub _cur_column : :: core :: ffi :: c_ushort , pub _vtable_offset : :: core :: ffi :: c_schar , pub _shortbuf : [:: core :: ffi :: c_char ; 1usize] , pub _lock : * mut _IO_lock_t , pub _offset : __off64_t , pub _codecvt : * mut _IO_codecvt , pub _wide_data : * mut _IO_wide_data , pub _freeres_list : * mut _IO_FILE , pub _freeres_buf : * mut :: core :: ffi :: c_void , pub _prevchain : * mut * mut _IO_FILE , pub _mode : :: core :: ffi :: c_int , pub _unused3 : :: core :: ffi :: c_int , pub _total_written : __uint64_t , pub _unused2 : [:: core :: ffi :: c_char ; 8usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _IO_FILE"] [:: core :: mem :: size_of :: < _IO_FILE > () - 216usize] ; ["Alignment of _IO_FILE"] [:: core :: mem :: align_of :: < _IO_FILE > () - 8usize] ; ["Offset of field: _IO_FILE::_flags"] [:: core :: mem :: offset_of ! (_IO_FILE , _flags) - 0usize] ; ["Offset of field: _IO_FILE::_IO_read_ptr"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_ptr) - 8usize] ; ["Offset of field: _IO_FILE::_IO_read_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_end) - 16usize] ; ["Offset of field: _IO_FILE::_IO_read_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_base) - 24usize] ; ["Offset of field: _IO_FILE::_IO_write_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_base) - 32usize] ; ["Offset of field: _IO_FILE::_IO_write_ptr"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_ptr) - 40usize] ; ["Offset of field: _IO_FILE::_IO_write_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_end) - 48usize] ; ["Offset of field: _IO_FILE::_IO_buf_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_buf_base) - 56usize] ; ["Offset of field: _IO_FILE::_IO_buf_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_buf_end) - 64usize] ; ["Offset of field: _IO_FILE::_IO_save_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_save_base) - 72usize] ; ["Offset of field: _IO_FILE::_IO_backup_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_backup_base) - 80usize] ; ["Offset of field: _IO_FILE::_IO_save_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_save_end) - 88usize] ; ["Offset of field: _IO_FILE::_markers"] [:: core :: mem :: offset_of ! (_IO_FILE , _markers) - 96usize] ; ["Offset of field: _IO_FILE::_chain"] [:: core :: mem :: offset_of ! (_IO_FILE , _chain) - 104usize] ; ["Offset of field: _IO_FILE::_fileno"] [:: core :: mem :: offset_of ! (_IO_FILE , _fileno) - 112usize] ; ["Offset of field: _IO_FILE::_short_backupbuf"] [:: core :: mem :: offset_of ! (_IO_FILE , _short_backupbuf) - 119usize] ; ["Offset of field: _IO_FILE::_old_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _old_offset) - 120usize] ; ["Offset of field: _IO_FILE::_cur_column"] [:: core :: mem :: offset_of ! (_IO_FILE , _cur_column) - 128usize] ; ["Offset of field: _IO_FILE::_vtable_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _vtable_offset) - 130usize] ; ["Offset of field: _IO_FILE::_shortbuf"] [:: core :: mem :: offset_of ! (_IO_FILE , _shortbuf) - 131usize] ; ["Offset of field: _IO_FILE::_lock"] [:: core :: mem :: offset_of ! (_IO_FILE , _lock) - 136usize] ; ["Offset of field: _IO_FILE::_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _offset) - 144usize] ; ["Offset of field: _IO_FILE::_codecvt"] [:: core :: mem :: offset_of ! (_IO_FILE , _codecvt) - 152usize] ; ["Offset of field: _IO_FILE::_wide_data"] [:: core :: mem :: offset_of ! (_IO_FILE , _wide_data) - 160usize] ; ["Offset of field: _IO_FILE::_freeres_list"] [:: core :: mem :: offset_of ! (_IO_FILE , _freeres_list) - 168usize] ; ["Offset of field: _IO_FILE::_freeres_buf"] [:: core :: mem :: offset_of ! (_IO_FILE , _freeres_buf) - 176usize] ; ["Offset of field: _IO_FILE::_prevchain"] [:: core :: mem :: offset_of ! (_IO_FILE , _prevchain) - 184usize] ; ["Offset of field: _IO_FILE::_mode"] [:: core :: mem :: offset_of ! (_IO_FILE , _mode) - 192usize] ; ["Offset of field: _IO_FILE::_unused3"] [:: core :: mem :: offset_of ! (_IO_FILE , _unused3) - 196usize] ; ["Offset of field: _IO_FILE::_total_written"] [:: core :: mem :: offset_of ! (_IO_FILE , _total_written) - 200usize] ; ["Offset of field: _IO_FILE::_unused2"] [:: core :: mem :: offset_of ! (_IO_FILE , _unused2) - 208usize] ; } ; impl _IO_FILE { # [inline] pub fn _flags2 (& self) -> :: core :: ffi :: c_int { unsafe { :: core :: mem :: transmute (self . _bitfield_1 . get (0usize , 24u8) as u32) } } # [inline] pub fn set__flags2 (& mut self , val : :: core :: ffi :: c_int) { unsafe { let val : u32 = :: core :: mem :: transmute (val) ; self . _bitfield_1 . set (0usize , 24u8 , val as u64) } } # [inline] pub fn new_bitfield_1 (_flags2 : :: core :: ffi :: c_int) -> __BindgenBitfieldUnit < [u8 ; 3usize] > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [u8 ; 3usize] > = Default :: default () ; __bindgen_bitfield_unit . set (0usize , 24u8 , { let _flags2 : u32 = unsafe { :: core :: mem :: transmute (_flags2) } ; _flags2 as u64 }) ; __bindgen_bitfield_unit } } pub type cookie_read_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __buf : * mut :: core :: ffi :: c_char , __nbytes : usize) -> __ssize_t > ; pub type cookie_write_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __buf : * const :: core :: ffi :: c_char , __nbytes : usize) -> __ssize_t > ; pub type cookie_seek_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __pos : * mut __off64_t , __w : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int > ; pub type cookie_close_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void) -> :: core :: ffi :: 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 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _IO_cookie_io_functions_t"] [:: core :: mem :: size_of :: < _IO_cookie_io_functions_t > () - 32usize] ; ["Alignment of _IO_cookie_io_functions_t"] [:: core :: mem :: align_of :: < _IO_cookie_io_functions_t > () - 8usize] ; ["Offset of field: _IO_cookie_io_functions_t::read"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , read) - 0usize] ; ["Offset of field: _IO_cookie_io_functions_t::write"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , write) - 8usize] ; ["Offset of field: _IO_cookie_io_functions_t::seek"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , seek) - 16usize] ; ["Offset of field: _IO_cookie_io_functions_t::close"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , close) - 24usize] ; } ; 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" { pub static mut stdin : * mut FILE ; } extern "C" { pub static mut stdout : * mut FILE ; } extern "C" { pub static mut stderr : * mut FILE ; } extern "C" { pub fn remove (__filename : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rename (__old : * const :: core :: ffi :: c_char , __new : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn renameat (__oldfd : :: core :: ffi :: c_int , __old : * const :: core :: ffi :: c_char , __newfd : :: core :: ffi :: c_int , __new : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fclose (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn tmpfile () -> * mut FILE ; } extern "C" { pub fn tmpnam (arg1 : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn tmpnam_r (__s : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn tempnam (__dir : * const :: core :: ffi :: c_char , __pfx : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn fflush (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fflush_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fopen (__filename : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn freopen (__filename : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char , __stream : * mut FILE) -> * mut FILE ; } extern "C" { pub fn fdopen (__fd : :: core :: ffi :: c_int , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn fopencookie (__magic_cookie : * mut :: core :: ffi :: c_void , __modes : * const :: core :: ffi :: c_char , __io_funcs : cookie_io_functions_t) -> * mut FILE ; } extern "C" { pub fn fmemopen (__s : * mut :: core :: ffi :: c_void , __len : usize , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn open_memstream (__bufloc : * mut * mut :: core :: ffi :: c_char , __sizeloc : * mut usize) -> * mut FILE ; } extern "C" { pub fn setbuf (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char) ; } extern "C" { pub fn setvbuf (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char , __modes : :: core :: ffi :: c_int , __n : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn setbuffer (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char , __size : usize) ; } extern "C" { pub fn setlinebuf (__stream : * mut FILE) ; } extern "C" { pub fn fprintf (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn printf (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn sprintf (__s : * mut :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vfprintf (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vprintf (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsprintf (__s : * mut :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn snprintf (__s : * mut :: core :: ffi :: c_char , __maxlen : :: core :: ffi :: c_ulong , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsnprintf (__s : * mut :: core :: ffi :: c_char , __maxlen : :: core :: ffi :: c_ulong , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vasprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __f : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn __asprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn asprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vdprintf (__fd : :: core :: ffi :: c_int , __fmt : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn dprintf (__fd : :: core :: ffi :: c_int , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fscanf (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn scanf (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn sscanf (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } pub type __cfloat128 = __BindgenComplex < u128 > ; pub type _Float128 = u128 ; pub type _Float32 = f32 ; pub type _Float64 = f64 ; pub type _Float32x = f64 ; pub type _Float64x = u128 ; extern "C" { # [link_name = "\u{1}__isoc99_fscanf"] pub fn fscanf1 (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_scanf"] pub fn scanf1 (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_sscanf"] pub fn sscanf1 (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vfscanf (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vscanf (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsscanf (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vfscanf"] pub fn vfscanf1 (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vscanf"] pub fn vscanf1 (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vsscanf"] pub fn vsscanf1 (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgetc (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getc (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getchar () -> :: core :: ffi :: c_int ; } extern "C" { pub fn getc_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getchar_unlocked () -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgetc_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fputc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putchar (__c : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fputc_unlocked (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putc_unlocked (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putchar_unlocked (__c : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getw (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putw (__w : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgets (__s : * mut :: core :: ffi :: c_char , __n : :: core :: ffi :: c_int , __stream : * mut FILE) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn __getdelim (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __delimiter : :: core :: ffi :: c_int , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn getdelim (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __delimiter : :: core :: ffi :: c_int , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn getline (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn fputs (__s : * const :: core :: ffi :: c_char , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn puts (__s : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ungetc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fread (__ptr : * mut :: core :: ffi :: c_void , __size : :: core :: ffi :: c_ulong , __n : :: core :: ffi :: c_ulong , __stream : * mut FILE) -> :: core :: ffi :: c_ulong ; } extern "C" { pub fn fwrite (__ptr : * const :: core :: ffi :: c_void , __size : :: core :: ffi :: c_ulong , __n : :: core :: ffi :: c_ulong , __s : * mut FILE) -> :: core :: ffi :: c_ulong ; } extern "C" { pub fn fread_unlocked (__ptr : * mut :: core :: ffi :: c_void , __size : usize , __n : usize , __stream : * mut FILE) -> usize ; } extern "C" { pub fn fwrite_unlocked (__ptr : * const :: core :: ffi :: c_void , __size : usize , __n : usize , __stream : * mut FILE) -> usize ; } extern "C" { pub fn fseek (__stream : * mut FILE , __off : :: core :: ffi :: c_long , __whence : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ftell (__stream : * mut FILE) -> :: core :: ffi :: c_long ; } extern "C" { pub fn rewind (__stream : * mut FILE) ; } extern "C" { pub fn fseeko (__stream : * mut FILE , __off : __off_t , __whence : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ftello (__stream : * mut FILE) -> __off_t ; } extern "C" { pub fn fgetpos (__stream : * mut FILE , __pos : * mut fpos_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fsetpos (__stream : * mut FILE , __pos : * const fpos_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clearerr (__stream : * mut FILE) ; } extern "C" { pub fn feof (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ferror (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clearerr_unlocked (__stream : * mut FILE) ; } extern "C" { pub fn feof_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ferror_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn perror (__s : * const :: core :: ffi :: c_char) ; } extern "C" { pub fn fileno (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fileno_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn pclose (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn popen (__command : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn ctermid (__s : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn flockfile (__stream : * mut FILE) ; } extern "C" { pub fn ftrylockfile (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn funlockfile (__stream : * mut FILE) ; } extern "C" { pub fn __uflow (arg1 : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn __overflow (arg1 : * mut FILE , arg2 : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } pub const RC_CONSOLE_UNKNOWN : _bindgen_ty_12 = 0 ; pub const RC_CONSOLE_MEGA_DRIVE : _bindgen_ty_12 = 1 ; pub const RC_CONSOLE_NINTENDO_64 : _bindgen_ty_12 = 2 ; pub const RC_CONSOLE_SUPER_NINTENDO : _bindgen_ty_12 = 3 ; pub const RC_CONSOLE_GAMEBOY : _bindgen_ty_12 = 4 ; pub const RC_CONSOLE_GAMEBOY_ADVANCE : _bindgen_ty_12 = 5 ; pub const RC_CONSOLE_GAMEBOY_COLOR : _bindgen_ty_12 = 6 ; pub const RC_CONSOLE_NINTENDO : _bindgen_ty_12 = 7 ; pub const RC_CONSOLE_PC_ENGINE : _bindgen_ty_12 = 8 ; pub const RC_CONSOLE_SEGA_CD : _bindgen_ty_12 = 9 ; pub const RC_CONSOLE_SEGA_32X : _bindgen_ty_12 = 10 ; pub const RC_CONSOLE_MASTER_SYSTEM : _bindgen_ty_12 = 11 ; pub const RC_CONSOLE_PLAYSTATION : _bindgen_ty_12 = 12 ; pub const RC_CONSOLE_ATARI_LYNX : _bindgen_ty_12 = 13 ; pub const RC_CONSOLE_NEOGEO_POCKET : _bindgen_ty_12 = 14 ; pub const RC_CONSOLE_GAME_GEAR : _bindgen_ty_12 = 15 ; pub const RC_CONSOLE_GAMECUBE : _bindgen_ty_12 = 16 ; pub const RC_CONSOLE_ATARI_JAGUAR : _bindgen_ty_12 = 17 ; pub const RC_CONSOLE_NINTENDO_DS : _bindgen_ty_12 = 18 ; pub const RC_CONSOLE_WII : _bindgen_ty_12 = 19 ; pub const RC_CONSOLE_WII_U : _bindgen_ty_12 = 20 ; pub const RC_CONSOLE_PLAYSTATION_2 : _bindgen_ty_12 = 21 ; pub const RC_CONSOLE_XBOX : _bindgen_ty_12 = 22 ; pub const RC_CONSOLE_MAGNAVOX_ODYSSEY2 : _bindgen_ty_12 = 23 ; pub const RC_CONSOLE_POKEMON_MINI : _bindgen_ty_12 = 24 ; pub const RC_CONSOLE_ATARI_2600 : _bindgen_ty_12 = 25 ; pub const RC_CONSOLE_MS_DOS : _bindgen_ty_12 = 26 ; pub const RC_CONSOLE_ARCADE : _bindgen_ty_12 = 27 ; pub const RC_CONSOLE_VIRTUAL_BOY : _bindgen_ty_12 = 28 ; pub const RC_CONSOLE_MSX : _bindgen_ty_12 = 29 ; pub const RC_CONSOLE_COMMODORE_64 : _bindgen_ty_12 = 30 ; pub const RC_CONSOLE_ZX81 : _bindgen_ty_12 = 31 ; pub const RC_CONSOLE_ORIC : _bindgen_ty_12 = 32 ; pub const RC_CONSOLE_SG1000 : _bindgen_ty_12 = 33 ; pub const RC_CONSOLE_VIC20 : _bindgen_ty_12 = 34 ; pub const RC_CONSOLE_AMIGA : _bindgen_ty_12 = 35 ; pub const RC_CONSOLE_ATARI_ST : _bindgen_ty_12 = 36 ; pub const RC_CONSOLE_AMSTRAD_PC : _bindgen_ty_12 = 37 ; pub const RC_CONSOLE_APPLE_II : _bindgen_ty_12 = 38 ; pub const RC_CONSOLE_SATURN : _bindgen_ty_12 = 39 ; pub const RC_CONSOLE_DREAMCAST : _bindgen_ty_12 = 40 ; pub const RC_CONSOLE_PSP : _bindgen_ty_12 = 41 ; pub const RC_CONSOLE_CDI : _bindgen_ty_12 = 42 ; pub const RC_CONSOLE_3DO : _bindgen_ty_12 = 43 ; pub const RC_CONSOLE_COLECOVISION : _bindgen_ty_12 = 44 ; pub const RC_CONSOLE_INTELLIVISION : _bindgen_ty_12 = 45 ; pub const RC_CONSOLE_VECTREX : _bindgen_ty_12 = 46 ; pub const RC_CONSOLE_PC8800 : _bindgen_ty_12 = 47 ; pub const RC_CONSOLE_PC9800 : _bindgen_ty_12 = 48 ; pub const RC_CONSOLE_PCFX : _bindgen_ty_12 = 49 ; pub const RC_CONSOLE_ATARI_5200 : _bindgen_ty_12 = 50 ; pub const RC_CONSOLE_ATARI_7800 : _bindgen_ty_12 = 51 ; pub const RC_CONSOLE_X68K : _bindgen_ty_12 = 52 ; pub const RC_CONSOLE_WONDERSWAN : _bindgen_ty_12 = 53 ; pub const RC_CONSOLE_CASSETTEVISION : _bindgen_ty_12 = 54 ; pub const RC_CONSOLE_SUPER_CASSETTEVISION : _bindgen_ty_12 = 55 ; pub const RC_CONSOLE_NEO_GEO_CD : _bindgen_ty_12 = 56 ; pub const RC_CONSOLE_FAIRCHILD_CHANNEL_F : _bindgen_ty_12 = 57 ; pub const RC_CONSOLE_FM_TOWNS : _bindgen_ty_12 = 58 ; pub const RC_CONSOLE_ZX_SPECTRUM : _bindgen_ty_12 = 59 ; pub const RC_CONSOLE_GAME_AND_WATCH : _bindgen_ty_12 = 60 ; pub const RC_CONSOLE_NOKIA_NGAGE : _bindgen_ty_12 = 61 ; pub const RC_CONSOLE_NINTENDO_3DS : _bindgen_ty_12 = 62 ; pub const RC_CONSOLE_SUPERVISION : _bindgen_ty_12 = 63 ; pub const RC_CONSOLE_SHARPX1 : _bindgen_ty_12 = 64 ; pub const RC_CONSOLE_TIC80 : _bindgen_ty_12 = 65 ; pub const RC_CONSOLE_THOMSONTO8 : _bindgen_ty_12 = 66 ; pub const RC_CONSOLE_PC6000 : _bindgen_ty_12 = 67 ; pub const RC_CONSOLE_PICO : _bindgen_ty_12 = 68 ; pub const RC_CONSOLE_MEGADUCK : _bindgen_ty_12 = 69 ; pub const RC_CONSOLE_ZEEBO : _bindgen_ty_12 = 70 ; pub const RC_CONSOLE_ARDUBOY : _bindgen_ty_12 = 71 ; pub const RC_CONSOLE_WASM4 : _bindgen_ty_12 = 72 ; pub const RC_CONSOLE_ARCADIA_2001 : _bindgen_ty_12 = 73 ; pub const RC_CONSOLE_INTERTON_VC_4000 : _bindgen_ty_12 = 74 ; pub const RC_CONSOLE_ELEKTOR_TV_GAMES_COMPUTER : _bindgen_ty_12 = 75 ; pub const RC_CONSOLE_PC_ENGINE_CD : _bindgen_ty_12 = 76 ; pub const RC_CONSOLE_ATARI_JAGUAR_CD : _bindgen_ty_12 = 77 ; pub const RC_CONSOLE_NINTENDO_DSI : _bindgen_ty_12 = 78 ; pub const RC_CONSOLE_TI83 : _bindgen_ty_12 = 79 ; pub const RC_CONSOLE_UZEBOX : _bindgen_ty_12 = 80 ; pub const RC_CONSOLE_HUBS : _bindgen_ty_12 = 100 ; pub const RC_CONSOLE_EVENTS : _bindgen_ty_12 = 101 ; pub const RC_CONSOLE_STANDALONE : _bindgen_ty_12 = 102 ; # [doc = "\\\n| Console identifiers                                                         |\n\\"] pub type _bindgen_ty_12 = :: core :: ffi :: c_uint ; extern "C" { pub fn rc_console_name (console_id : u32) -> * const :: core :: ffi :: c_char ; } pub const RC_MEMORY_TYPE_SYSTEM_RAM : _bindgen_ty_13 = 0 ; pub const RC_MEMORY_TYPE_SAVE_RAM : _bindgen_ty_13 = 1 ; pub const RC_MEMORY_TYPE_VIDEO_RAM : _bindgen_ty_13 = 2 ; pub const RC_MEMORY_TYPE_READONLY : _bindgen_ty_13 = 3 ; pub const RC_MEMORY_TYPE_HARDWARE_CONTROLLER : _bindgen_ty_13 = 4 ; pub const RC_MEMORY_TYPE_VIRTUAL_RAM : _bindgen_ty_13 = 5 ; pub const RC_MEMORY_TYPE_UNUSED : _bindgen_ty_13 = 6 ; # [doc = "\\\n| Memory mapping                                                              |\n\\"] pub type _bindgen_ty_13 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memory_region_t { pub start_address : u32 , pub end_address : u32 , pub real_address : u32 , pub type_ : u8 , pub description : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memory_region_t"] [:: core :: mem :: size_of :: < rc_memory_region_t > () - 24usize] ; ["Alignment of rc_memory_region_t"] [:: core :: mem :: align_of :: < rc_memory_region_t > () - 8usize] ; ["Offset of field: rc_memory_region_t::start_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , start_address) - 0usize] ; ["Offset of field: rc_memory_region_t::end_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , end_address) - 4usize] ; ["Offset of field: rc_memory_region_t::real_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , real_address) - 8usize] ; ["Offset of field: rc_memory_region_t::type_"] [:: core :: mem :: offset_of ! (rc_memory_region_t , type_) - 12usize] ; ["Offset of field: rc_memory_region_t::description"] [:: core :: mem :: offset_of ! (rc_memory_region_t , description) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memory_regions_t { pub region : * const rc_memory_region_t , pub num_regions : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memory_regions_t"] [:: core :: mem :: size_of :: < rc_memory_regions_t > () - 16usize] ; ["Alignment of rc_memory_regions_t"] [:: core :: mem :: align_of :: < rc_memory_regions_t > () - 8usize] ; ["Offset of field: rc_memory_regions_t::region"] [:: core :: mem :: offset_of ! (rc_memory_regions_t , region) - 0usize] ; ["Offset of field: rc_memory_regions_t::num_regions"] [:: core :: mem :: offset_of ! (rc_memory_regions_t , num_regions) - 8usize] ; } ; extern "C" { pub fn rc_console_memory_regions (console_id : u32) -> * const rc_memory_regions_t ; } extern "C" { pub fn rc_hash_generate_from_buffer (hash : * mut :: core :: ffi :: c_char , console_id : u32 , buffer : * const u8 , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_hash_generate_from_file (hash : * mut :: core :: ffi :: c_char , console_id : u32 , path : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_iterator { pub buffer : * const u8 , pub buffer_size : usize , pub consoles : [u8 ; 12usize] , pub index : :: core :: ffi :: c_int , pub path : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_iterator"] [:: core :: mem :: size_of :: < rc_hash_iterator > () - 40usize] ; ["Alignment of rc_hash_iterator"] [:: core :: mem :: align_of :: < rc_hash_iterator > () - 8usize] ; ["Offset of field: rc_hash_iterator::buffer"] [:: core :: mem :: offset_of ! (rc_hash_iterator , buffer) - 0usize] ; ["Offset of field: rc_hash_iterator::buffer_size"] [:: core :: mem :: offset_of ! (rc_hash_iterator , buffer_size) - 8usize] ; ["Offset of field: rc_hash_iterator::consoles"] [:: core :: mem :: offset_of ! (rc_hash_iterator , consoles) - 16usize] ; ["Offset of field: rc_hash_iterator::index"] [:: core :: mem :: offset_of ! (rc_hash_iterator , index) - 28usize] ; ["Offset of field: rc_hash_iterator::path"] [:: core :: mem :: offset_of ! (rc_hash_iterator , path) - 32usize] ; } ; pub type rc_hash_iterator_t = rc_hash_iterator ; extern "C" { pub fn rc_hash_initialize_iterator (iterator : * mut rc_hash_iterator , path : * const :: core :: ffi :: c_char , buffer : * const u8 , buffer_size : usize) ; } extern "C" { pub fn rc_hash_destroy_iterator (iterator : * mut rc_hash_iterator) ; } extern "C" { pub fn rc_hash_iterate (hash : * mut :: core :: ffi :: c_char , iterator : * mut rc_hash_iterator) -> :: core :: ffi :: c_int ; } pub type rc_hash_message_callback = :: core :: option :: Option < unsafe extern "C" fn (arg1 : * const :: core :: ffi :: c_char) > ; extern "C" { pub fn rc_hash_init_error_message_callback (callback : rc_hash_message_callback) ; } extern "C" { pub fn rc_hash_init_verbose_message_callback (callback : rc_hash_message_callback) ; } pub type rc_hash_filereader_open_file_handler = :: core :: option :: Option < unsafe extern "C" fn (path_utf8 : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_void > ; pub type rc_hash_filereader_seek_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void , offset : i64 , origin : :: core :: ffi :: c_int) > ; pub type rc_hash_filereader_tell_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void) -> i64 > ; pub type rc_hash_filereader_read_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void , buffer : * mut :: core :: ffi :: c_void , requested_bytes : usize) -> usize > ; pub type rc_hash_filereader_close_file_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void) > ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_filereader { pub open : rc_hash_filereader_open_file_handler , pub seek : rc_hash_filereader_seek_handler , pub tell : rc_hash_filereader_tell_handler , pub read : rc_hash_filereader_read_handler , pub close : rc_hash_filereader_close_file_handler , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_filereader"] [:: core :: mem :: size_of :: < rc_hash_filereader > () - 40usize] ; ["Alignment of rc_hash_filereader"] [:: core :: mem :: align_of :: < rc_hash_filereader > () - 8usize] ; ["Offset of field: rc_hash_filereader::open"] [:: core :: mem :: offset_of ! (rc_hash_filereader , open) - 0usize] ; ["Offset of field: rc_hash_filereader::seek"] [:: core :: mem :: offset_of ! (rc_hash_filereader , seek) - 8usize] ; ["Offset of field: rc_hash_filereader::tell"] [:: core :: mem :: offset_of ! (rc_hash_filereader , tell) - 16usize] ; ["Offset of field: rc_hash_filereader::read"] [:: core :: mem :: offset_of ! (rc_hash_filereader , read) - 24usize] ; ["Offset of field: rc_hash_filereader::close"] [:: core :: mem :: offset_of ! (rc_hash_filereader , close) - 32usize] ; } ; extern "C" { pub fn rc_hash_init_custom_filereader (reader : * mut rc_hash_filereader) ; } pub type rc_hash_cdreader_open_track_handler = :: core :: option :: Option < unsafe extern "C" fn (path : * const :: core :: ffi :: c_char , track : u32) -> * mut :: core :: ffi :: c_void > ; pub type rc_hash_cdreader_read_sector_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void , sector : u32 , buffer : * mut :: core :: ffi :: c_void , requested_bytes : usize) -> usize > ; pub type rc_hash_cdreader_close_track_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void) > ; pub type rc_hash_cdreader_first_track_sector_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void) -> u32 > ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_cdreader { pub open_track : rc_hash_cdreader_open_track_handler , pub read_sector : rc_hash_cdreader_read_sector_handler , pub close_track : rc_hash_cdreader_close_track_handler , pub first_track_sector : rc_hash_cdreader_first_track_sector_handler , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_cdreader"] [:: core :: mem :: size_of :: < rc_hash_cdreader > () - 32usize] ; ["Alignment of rc_hash_cdreader"] [:: core :: mem :: align_of :: < rc_hash_cdreader > () - 8usize] ; ["Offset of field: rc_hash_cdreader::open_track"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , open_track) - 0usize] ; ["Offset of field: rc_hash_cdreader::read_sector"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , read_sector) - 8usize] ; ["Offset of field: rc_hash_cdreader::close_track"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , close_track) - 16usize] ; ["Offset of field: rc_hash_cdreader::first_track_sector"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , first_track_sector) - 24usize] ; } ; extern "C" { pub fn rc_hash_get_default_cdreader (cdreader : * mut rc_hash_cdreader) ; } extern "C" { pub fn rc_hash_init_default_cdreader () ; } extern "C" { pub fn rc_hash_init_custom_cdreader (reader : * mut rc_hash_cdreader) ; } pub type rc_hash_3ds_get_cia_normal_key_func = :: core :: option :: Option < unsafe extern "C" fn (common_key_index : u8 , out_normal_key : * mut u8) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_hash_init_3ds_get_cia_normal_key_func (func : rc_hash_3ds_get_cia_normal_key_func) ; } pub type rc_hash_3ds_get_ncch_normal_keys_func = :: core :: option :: Option < unsafe extern "C" fn (primary_key_y : * mut u8 , secondary_key_x_slot : u8 , optional_program_id : * mut u8 , out_primary_key : * mut u8 , out_secondary_key : * mut u8) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_hash_init_3ds_get_ncch_normal_keys_func (func : rc_hash_3ds_get_ncch_normal_keys_func) ; } # [doc = " API parameters for a fetch image request.\n NOTE: fetch image server response is the raw image data. There is no rc_api_process_fetch_image_response function."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_image_request_t { pub image_name : * const :: core :: ffi :: c_char , pub image_type : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_image_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_image_request_t > () - 16usize] ; ["Alignment of rc_api_fetch_image_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_image_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_image_request_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_fetch_image_request_t , image_name) - 0usize] ; ["Offset of field: rc_api_fetch_image_request_t::image_type"] [:: core :: mem :: offset_of ! (rc_api_fetch_image_request_t , image_type) - 8usize] ; } ; extern "C" { pub fn rc_api_init_fetch_image_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_image_request_t) -> :: core :: ffi :: c_int ; } # [doc = " API parameters for a resolve hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_resolve_hash_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_hash : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_resolve_hash_request_t"] [:: core :: mem :: size_of :: < rc_api_resolve_hash_request_t > () - 24usize] ; ["Alignment of rc_api_resolve_hash_request_t"] [:: core :: mem :: align_of :: < rc_api_resolve_hash_request_t > () - 8usize] ; ["Offset of field: rc_api_resolve_hash_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , username) - 0usize] ; ["Offset of field: rc_api_resolve_hash_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_resolve_hash_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , game_hash) - 16usize] ; } ; # [doc = " Response data for a resolve hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_resolve_hash_response_t { pub game_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_resolve_hash_response_t"] [:: core :: mem :: size_of :: < rc_api_resolve_hash_response_t > () - 320usize] ; ["Alignment of rc_api_resolve_hash_response_t"] [:: core :: mem :: align_of :: < rc_api_resolve_hash_response_t > () - 8usize] ; ["Offset of field: rc_api_resolve_hash_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_response_t , game_id) - 0usize] ; ["Offset of field: rc_api_resolve_hash_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_resolve_hash_request (request : * mut rc_api_request_t , api_params : * const rc_api_resolve_hash_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_resolve_hash_response (response : * mut rc_api_resolve_hash_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_resolve_hash_server_response (response : * mut rc_api_resolve_hash_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_resolve_hash_response (response : * mut rc_api_resolve_hash_response_t) ; } # [doc = " API parameters for a fetch game data request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_data_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_data_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_data_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_game_data_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_data_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , game_id) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_leaderboard_definition_t { pub id : u32 , pub format : :: core :: ffi :: c_int , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub lower_is_better : u8 , pub hidden : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_leaderboard_definition_t"] [:: core :: mem :: size_of :: < rc_api_leaderboard_definition_t > () - 40usize] ; ["Alignment of rc_api_leaderboard_definition_t"] [:: core :: mem :: align_of :: < rc_api_leaderboard_definition_t > () - 8usize] ; ["Offset of field: rc_api_leaderboard_definition_t::id"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , id) - 0usize] ; ["Offset of field: rc_api_leaderboard_definition_t::format"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , format) - 4usize] ; ["Offset of field: rc_api_leaderboard_definition_t::title"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , title) - 8usize] ; ["Offset of field: rc_api_leaderboard_definition_t::description"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , description) - 16usize] ; ["Offset of field: rc_api_leaderboard_definition_t::definition"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , definition) - 24usize] ; ["Offset of field: rc_api_leaderboard_definition_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , lower_is_better) - 32usize] ; ["Offset of field: rc_api_leaderboard_definition_t::hidden"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , hidden) - 33usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_achievement_definition_t { pub id : u32 , pub points : u32 , pub category : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub author : * const :: core :: ffi :: c_char , pub badge_name : * const :: core :: ffi :: c_char , pub created : time_t , pub updated : time_t , pub type_ : u32 , pub rarity : f32 , pub rarity_hardcore : f32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_achievement_definition_t"] [:: core :: mem :: size_of :: < rc_api_achievement_definition_t > () - 88usize] ; ["Alignment of rc_api_achievement_definition_t"] [:: core :: mem :: align_of :: < rc_api_achievement_definition_t > () - 8usize] ; ["Offset of field: rc_api_achievement_definition_t::id"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , id) - 0usize] ; ["Offset of field: rc_api_achievement_definition_t::points"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , points) - 4usize] ; ["Offset of field: rc_api_achievement_definition_t::category"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , category) - 8usize] ; ["Offset of field: rc_api_achievement_definition_t::title"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , title) - 16usize] ; ["Offset of field: rc_api_achievement_definition_t::description"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , description) - 24usize] ; ["Offset of field: rc_api_achievement_definition_t::definition"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , definition) - 32usize] ; ["Offset of field: rc_api_achievement_definition_t::author"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , author) - 40usize] ; ["Offset of field: rc_api_achievement_definition_t::badge_name"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , badge_name) - 48usize] ; ["Offset of field: rc_api_achievement_definition_t::created"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , created) - 56usize] ; ["Offset of field: rc_api_achievement_definition_t::updated"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , updated) - 64usize] ; ["Offset of field: rc_api_achievement_definition_t::type_"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , type_) - 72usize] ; ["Offset of field: rc_api_achievement_definition_t::rarity"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , rarity) - 76usize] ; ["Offset of field: rc_api_achievement_definition_t::rarity_hardcore"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , rarity_hardcore) - 80usize] ; } ; # [doc = " Response data for a fetch game data request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_data_response_t { pub id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub image_name : * const :: core :: ffi :: c_char , pub rich_presence_script : * const :: core :: ffi :: c_char , pub achievements : * mut rc_api_achievement_definition_t , pub num_achievements : u32 , pub leaderboards : * mut rc_api_leaderboard_definition_t , pub num_leaderboards : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_data_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_data_response_t > () - 376usize] ; ["Alignment of rc_api_fetch_game_data_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_data_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , console_id) - 4usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::title"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , title) - 8usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , image_name) - 16usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::rich_presence_script"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , rich_presence_script) - 24usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::achievements"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , achievements) - 32usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , num_achievements) - 40usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::leaderboards"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , leaderboards) - 48usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , num_leaderboards) - 56usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , response) - 64usize] ; } ; extern "C" { pub fn rc_api_init_fetch_game_data_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_game_data_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_data_response (response : * mut rc_api_fetch_game_data_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_data_server_response (response : * mut rc_api_fetch_game_data_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_game_data_response (response : * mut rc_api_fetch_game_data_response_t) ; } # [doc = " API parameters for a ping request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_ping_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub rich_presence : * const :: core :: ffi :: c_char , pub game_hash : * const :: core :: ffi :: c_char , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_ping_request_t"] [:: core :: mem :: size_of :: < rc_api_ping_request_t > () - 48usize] ; ["Alignment of rc_api_ping_request_t"] [:: core :: mem :: align_of :: < rc_api_ping_request_t > () - 8usize] ; ["Offset of field: rc_api_ping_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , username) - 0usize] ; ["Offset of field: rc_api_ping_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_ping_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_ping_request_t::rich_presence"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , rich_presence) - 24usize] ; ["Offset of field: rc_api_ping_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , game_hash) - 32usize] ; ["Offset of field: rc_api_ping_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , hardcore) - 40usize] ; } ; # [doc = " Response data for a ping request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_ping_response_t { pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_ping_response_t"] [:: core :: mem :: size_of :: < rc_api_ping_response_t > () - 312usize] ; ["Alignment of rc_api_ping_response_t"] [:: core :: mem :: align_of :: < rc_api_ping_response_t > () - 8usize] ; ["Offset of field: rc_api_ping_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_ping_response_t , response) - 0usize] ; } ; extern "C" { pub fn rc_api_init_ping_request (request : * mut rc_api_request_t , api_params : * const rc_api_ping_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_ping_response (response : * mut rc_api_ping_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_ping_server_response (response : * mut rc_api_ping_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_ping_response (response : * mut rc_api_ping_response_t) ; } # [doc = " API parameters for an award achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_award_achievement_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub hardcore : u32 , pub game_hash : * const :: core :: ffi :: c_char , pub seconds_since_unlock : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_award_achievement_request_t"] [:: core :: mem :: size_of :: < rc_api_award_achievement_request_t > () - 40usize] ; ["Alignment of rc_api_award_achievement_request_t"] [:: core :: mem :: align_of :: < rc_api_award_achievement_request_t > () - 8usize] ; ["Offset of field: rc_api_award_achievement_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , username) - 0usize] ; ["Offset of field: rc_api_award_achievement_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_award_achievement_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_award_achievement_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , hardcore) - 20usize] ; ["Offset of field: rc_api_award_achievement_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_award_achievement_request_t::seconds_since_unlock"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , seconds_since_unlock) - 32usize] ; } ; # [doc = " Response data for an award achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_award_achievement_response_t { pub awarded_achievement_id : u32 , pub new_player_score : u32 , pub new_player_score_softcore : u32 , pub achievements_remaining : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_award_achievement_response_t"] [:: core :: mem :: size_of :: < rc_api_award_achievement_response_t > () - 328usize] ; ["Alignment of rc_api_award_achievement_response_t"] [:: core :: mem :: align_of :: < rc_api_award_achievement_response_t > () - 8usize] ; ["Offset of field: rc_api_award_achievement_response_t::awarded_achievement_id"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , awarded_achievement_id) - 0usize] ; ["Offset of field: rc_api_award_achievement_response_t::new_player_score"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , new_player_score) - 4usize] ; ["Offset of field: rc_api_award_achievement_response_t::new_player_score_softcore"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , new_player_score_softcore) - 8usize] ; ["Offset of field: rc_api_award_achievement_response_t::achievements_remaining"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , achievements_remaining) - 12usize] ; ["Offset of field: rc_api_award_achievement_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_award_achievement_request (request : * mut rc_api_request_t , api_params : * const rc_api_award_achievement_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_award_achievement_response (response : * mut rc_api_award_achievement_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_award_achievement_server_response (response : * mut rc_api_award_achievement_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_award_achievement_response (response : * mut rc_api_award_achievement_response_t) ; } # [doc = " API parameters for a submit lboard entry request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_submit_lboard_entry_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub leaderboard_id : u32 , pub score : i32 , pub game_hash : * const :: core :: ffi :: c_char , pub seconds_since_completion : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_submit_lboard_entry_request_t"] [:: core :: mem :: size_of :: < rc_api_submit_lboard_entry_request_t > () - 40usize] ; ["Alignment of rc_api_submit_lboard_entry_request_t"] [:: core :: mem :: align_of :: < rc_api_submit_lboard_entry_request_t > () - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , username) - 0usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , leaderboard_id) - 16usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , score) - 20usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::seconds_since_completion"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , seconds_since_completion) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_lboard_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub score : i32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_lboard_entry_t"] [:: core :: mem :: size_of :: < rc_api_lboard_entry_t > () - 16usize] ; ["Alignment of rc_api_lboard_entry_t"] [:: core :: mem :: align_of :: < rc_api_lboard_entry_t > () - 8usize] ; ["Offset of field: rc_api_lboard_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , username) - 0usize] ; ["Offset of field: rc_api_lboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , rank) - 8usize] ; ["Offset of field: rc_api_lboard_entry_t::score"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , score) - 12usize] ; } ; # [doc = " Response data for a submit lboard entry request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_submit_lboard_entry_response_t { pub submitted_score : i32 , pub best_score : i32 , pub new_rank : u32 , pub num_entries : u32 , pub top_entries : * mut rc_api_lboard_entry_t , pub num_top_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_submit_lboard_entry_response_t"] [:: core :: mem :: size_of :: < rc_api_submit_lboard_entry_response_t > () - 344usize] ; ["Alignment of rc_api_submit_lboard_entry_response_t"] [:: core :: mem :: align_of :: < rc_api_submit_lboard_entry_response_t > () - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::submitted_score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , submitted_score) - 0usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::best_score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , best_score) - 4usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::new_rank"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , new_rank) - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , num_entries) - 12usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::top_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , top_entries) - 16usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::num_top_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , num_top_entries) - 24usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_submit_lboard_entry_request (request : * mut rc_api_request_t , api_params : * const rc_api_submit_lboard_entry_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_submit_lboard_entry_response (response : * mut rc_api_submit_lboard_entry_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_submit_lboard_entry_server_response (response : * mut rc_api_submit_lboard_entry_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_submit_lboard_entry_response (response : * mut rc_api_submit_lboard_entry_response_t) ; } # [doc = " Callback used to read num_bytes bytes from memory starting at address. If\n num_bytes is greater than 1, the value is read in little-endian from\n memory."] pub type rc_runtime_peek_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , num_bytes : u32 , ud : * mut :: core :: ffi :: c_void) -> u32 > ; # [doc = "\\\n| Runtime                                                                     |\n\\"] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_trigger_t { pub id : u32 , pub trigger : * mut rc_trigger_t , pub buffer : * mut :: core :: ffi :: c_void , pub invalid_memref : * mut rc_memref_t , pub md5 : [u8 ; 16usize] , pub serialized_size : i32 , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_trigger_t"] [:: core :: mem :: size_of :: < rc_runtime_trigger_t > () - 56usize] ; ["Alignment of rc_runtime_trigger_t"] [:: core :: mem :: align_of :: < rc_runtime_trigger_t > () - 8usize] ; ["Offset of field: rc_runtime_trigger_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , id) - 0usize] ; ["Offset of field: rc_runtime_trigger_t::trigger"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , trigger) - 8usize] ; ["Offset of field: rc_runtime_trigger_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , buffer) - 16usize] ; ["Offset of field: rc_runtime_trigger_t::invalid_memref"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , invalid_memref) - 24usize] ; ["Offset of field: rc_runtime_trigger_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , md5) - 32usize] ; ["Offset of field: rc_runtime_trigger_t::serialized_size"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , serialized_size) - 48usize] ; ["Offset of field: rc_runtime_trigger_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , owns_memrefs) - 52usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_lboard_t { pub id : u32 , pub value : i32 , pub lboard : * mut rc_lboard_t , pub buffer : * mut :: core :: ffi :: c_void , pub invalid_memref : * mut rc_memref_t , pub md5 : [u8 ; 16usize] , pub serialized_size : u32 , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_lboard_t"] [:: core :: mem :: size_of :: < rc_runtime_lboard_t > () - 56usize] ; ["Alignment of rc_runtime_lboard_t"] [:: core :: mem :: align_of :: < rc_runtime_lboard_t > () - 8usize] ; ["Offset of field: rc_runtime_lboard_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , id) - 0usize] ; ["Offset of field: rc_runtime_lboard_t::value"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , value) - 4usize] ; ["Offset of field: rc_runtime_lboard_t::lboard"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , lboard) - 8usize] ; ["Offset of field: rc_runtime_lboard_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , buffer) - 16usize] ; ["Offset of field: rc_runtime_lboard_t::invalid_memref"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , invalid_memref) - 24usize] ; ["Offset of field: rc_runtime_lboard_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , md5) - 32usize] ; ["Offset of field: rc_runtime_lboard_t::serialized_size"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , serialized_size) - 48usize] ; ["Offset of field: rc_runtime_lboard_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , owns_memrefs) - 52usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_richpresence_t { pub richpresence : * mut rc_richpresence_t , pub buffer : * mut :: core :: ffi :: c_void , pub previous : * mut rc_runtime_richpresence_t , pub md5 : [u8 ; 16usize] , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_richpresence_t"] [:: core :: mem :: size_of :: < rc_runtime_richpresence_t > () - 48usize] ; ["Alignment of rc_runtime_richpresence_t"] [:: core :: mem :: align_of :: < rc_runtime_richpresence_t > () - 8usize] ; ["Offset of field: rc_runtime_richpresence_t::richpresence"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , richpresence) - 0usize] ; ["Offset of field: rc_runtime_richpresence_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , buffer) - 8usize] ; ["Offset of field: rc_runtime_richpresence_t::previous"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , previous) - 16usize] ; ["Offset of field: rc_runtime_richpresence_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , md5) - 24usize] ; ["Offset of field: rc_runtime_richpresence_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , owns_memrefs) - 40usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_t { pub triggers : * mut rc_runtime_trigger_t , pub trigger_count : u32 , pub trigger_capacity : u32 , pub lboards : * mut rc_runtime_lboard_t , pub lboard_count : u32 , pub lboard_capacity : u32 , pub richpresence : * mut rc_runtime_richpresence_t , pub memrefs : * mut rc_memref_t , pub next_memref : * mut * mut rc_memref_t , pub variables : * mut rc_value_t , pub next_variable : * mut * mut rc_value_t , pub owns_self : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_t"] [:: core :: mem :: size_of :: < rc_runtime_t > () - 80usize] ; ["Alignment of rc_runtime_t"] [:: core :: mem :: align_of :: < rc_runtime_t > () - 8usize] ; ["Offset of field: rc_runtime_t::triggers"] [:: core :: mem :: offset_of ! (rc_runtime_t , triggers) - 0usize] ; ["Offset of field: rc_runtime_t::trigger_count"] [:: core :: mem :: offset_of ! (rc_runtime_t , trigger_count) - 8usize] ; ["Offset of field: rc_runtime_t::trigger_capacity"] [:: core :: mem :: offset_of ! (rc_runtime_t , trigger_capacity) - 12usize] ; ["Offset of field: rc_runtime_t::lboards"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboards) - 16usize] ; ["Offset of field: rc_runtime_t::lboard_count"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboard_count) - 24usize] ; ["Offset of field: rc_runtime_t::lboard_capacity"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboard_capacity) - 28usize] ; ["Offset of field: rc_runtime_t::richpresence"] [:: core :: mem :: offset_of ! (rc_runtime_t , richpresence) - 32usize] ; ["Offset of field: rc_runtime_t::memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_t , memrefs) - 40usize] ; ["Offset of field: rc_runtime_t::next_memref"] [:: core :: mem :: offset_of ! (rc_runtime_t , next_memref) - 48usize] ; ["Offset of field: rc_runtime_t::variables"] [:: core :: mem :: offset_of ! (rc_runtime_t , variables) - 56usize] ; ["Offset of field: rc_runtime_t::next_variable"] [:: core :: mem :: offset_of ! (rc_runtime_t , next_variable) - 64usize] ; ["Offset of field: rc_runtime_t::owns_self"] [:: core :: mem :: offset_of ! (rc_runtime_t , owns_self) - 72usize] ; } ; extern "C" { pub fn rc_runtime_alloc () -> * mut rc_runtime_t ; } extern "C" { pub fn rc_runtime_init (runtime : * mut rc_runtime_t) ; } extern "C" { pub fn rc_runtime_destroy (runtime : * mut rc_runtime_t) ; } extern "C" { pub fn rc_runtime_activate_achievement (runtime : * mut rc_runtime_t , id : u32 , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deactivate_achievement (runtime : * mut rc_runtime_t , id : u32) ; } extern "C" { pub fn rc_runtime_get_achievement (runtime : * const rc_runtime_t , id : u32) -> * mut rc_trigger_t ; } extern "C" { pub fn rc_runtime_get_achievement_measured (runtime : * const rc_runtime_t , id : u32 , measured_value : * mut :: core :: ffi :: c_uint , measured_target : * mut :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_format_achievement_measured (runtime : * const rc_runtime_t , id : u32 , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_activate_lboard (runtime : * mut rc_runtime_t , id : u32 , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deactivate_lboard (runtime : * mut rc_runtime_t , id : u32) ; } extern "C" { pub fn rc_runtime_get_lboard (runtime : * const rc_runtime_t , id : u32) -> * mut rc_lboard_t ; } extern "C" { pub fn rc_runtime_format_lboard_value (buffer : * mut :: core :: ffi :: c_char , size : :: core :: ffi :: c_int , value : i32 , format : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_activate_richpresence (runtime : * mut rc_runtime_t , script : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_get_richpresence (runtime : * const rc_runtime_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_runtime_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } pub const RC_RUNTIME_EVENT_ACHIEVEMENT_ACTIVATED : _bindgen_ty_14 = 0 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PAUSED : _bindgen_ty_14 = 1 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_RESET : _bindgen_ty_14 = 2 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_TRIGGERED : _bindgen_ty_14 = 3 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PRIMED : _bindgen_ty_14 = 4 ; pub const RC_RUNTIME_EVENT_LBOARD_STARTED : _bindgen_ty_14 = 5 ; pub const RC_RUNTIME_EVENT_LBOARD_CANCELED : _bindgen_ty_14 = 6 ; pub const RC_RUNTIME_EVENT_LBOARD_UPDATED : _bindgen_ty_14 = 7 ; pub const RC_RUNTIME_EVENT_LBOARD_TRIGGERED : _bindgen_ty_14 = 8 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_DISABLED : _bindgen_ty_14 = 9 ; pub const RC_RUNTIME_EVENT_LBOARD_DISABLED : _bindgen_ty_14 = 10 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_UNPRIMED : _bindgen_ty_14 = 11 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PROGRESS_UPDATED : _bindgen_ty_14 = 12 ; pub type _bindgen_ty_14 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_event_t { pub id : u32 , pub value : i32 , pub type_ : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_event_t"] [:: core :: mem :: size_of :: < rc_runtime_event_t > () - 12usize] ; ["Alignment of rc_runtime_event_t"] [:: core :: mem :: align_of :: < rc_runtime_event_t > () - 4usize] ; ["Offset of field: rc_runtime_event_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , id) - 0usize] ; ["Offset of field: rc_runtime_event_t::value"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , value) - 4usize] ; ["Offset of field: rc_runtime_event_t::type_"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , type_) - 8usize] ; } ; pub type rc_runtime_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (runtime_event : * const rc_runtime_event_t) > ; extern "C" { pub fn rc_runtime_do_frame (runtime : * mut rc_runtime_t , event_handler : rc_runtime_event_handler_t , peek : rc_runtime_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) ; } extern "C" { pub fn rc_runtime_reset (runtime : * mut rc_runtime_t) ; } pub type rc_runtime_validate_address_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_runtime_validate_addresses (runtime : * mut rc_runtime_t , event_handler : rc_runtime_event_handler_t , validate_handler : rc_runtime_validate_address_t) ; } extern "C" { pub fn rc_runtime_invalidate_address (runtime : * mut rc_runtime_t , address : u32) ; } extern "C" { pub fn rc_runtime_progress_size (runtime : * const rc_runtime_t , L : * mut lua_State) -> u32 ; } extern "C" { pub fn rc_runtime_serialize_progress (buffer : * mut :: core :: ffi :: c_void , runtime : * const rc_runtime_t , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_serialize_progress_sized (buffer : * mut u8 , buffer_size : u32 , runtime : * const rc_runtime_t , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deserialize_progress (runtime : * mut rc_runtime_t , serialized : * const u8 , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deserialize_progress_sized (runtime : * mut rc_runtime_t , serialized : * const u8 , serialized_size : u32 , L : * mut lua_State) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_async_handle_t { _unused : [u8 ; 0] , } # [doc = " Callback used to read num_bytes bytes from memory starting at address into buffer.\n Returns the number of bytes read. A return value of 0 indicates the address was invalid."] pub type rc_client_read_memory_func_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , buffer : * mut u8 , num_bytes : u32 , client : * mut rc_client_t) -> u32 > ; # [doc = " Internal method passed to rc_client_server_call_t to process the server response."] pub type rc_client_server_callback_t = :: core :: option :: Option < unsafe extern "C" fn (server_response : * const rc_api_server_response_t , callback_data : * mut :: core :: ffi :: c_void) > ; # [doc = " Callback used to issue a request to the server."] pub type rc_client_server_call_t = :: core :: option :: Option < unsafe extern "C" fn (request : * const rc_api_request_t , callback : rc_client_server_callback_t , callback_data : * mut :: core :: ffi :: c_void , client : * mut rc_client_t) > ; # [doc = " Generic callback for asynchronous eventing."] pub type rc_client_callback_t = :: core :: option :: Option < unsafe extern "C" fn (result : :: core :: ffi :: c_int , error_message : * const :: core :: ffi :: c_char , client : * mut rc_client_t , userdata : * mut :: core :: ffi :: c_void) > ; # [doc = " Callback for logging or displaying a message."] pub type rc_client_message_callback_t = :: core :: option :: Option < unsafe extern "C" fn (message : * const :: core :: ffi :: c_char , client : * const rc_client_t) > ; extern "C" { # [doc = " Creates a new rc_client_t object."] pub fn rc_client_create (read_memory_function : rc_client_read_memory_func_t , server_call_function : rc_client_server_call_t) -> * mut rc_client_t ; } extern "C" { # [doc = " Releases resources associated to a rc_client_t object.\n Pointer will no longer be valid after making this call."] pub fn rc_client_destroy (client : * mut rc_client_t) ; } extern "C" { # [doc = " Sets whether hardcore is enabled (on by default).\n Can be called with a game loaded.\n Enabling hardcore with a game loaded will raise an RC_CLIENT_EVENT_RESET\n event. Processing will be disabled until rc_client_reset is called."] pub fn rc_client_set_hardcore_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether hardcore is enabled (on by default)."] pub fn rc_client_get_hardcore_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether encore mode is enabled (off by default).\n Evaluated when loading a game. Has no effect while a game is loaded."] pub fn rc_client_set_encore_mode_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether encore mode is enabled (off by default)."] pub fn rc_client_get_encore_mode_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether unofficial achievements should be loaded.\n Evaluated when loading a game. Has no effect while a game is loaded."] pub fn rc_client_set_unofficial_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether unofficial achievements should be loaded."] pub fn rc_client_get_unofficial_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether spectator mode is enabled (off by default).\n If enabled, events for achievement unlocks and leaderboard submissions will be\n raised, but server calls to actually perform the unlock/submit will not occur.\n Can be modified while a game is loaded. Evaluated at unlock/submit time.\n Cannot be modified if disabled before a game is loaded."] pub fn rc_client_set_spectator_mode_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether spectator mode is enabled (off by default)."] pub fn rc_client_get_spectator_mode_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Attaches client-specific data to the runtime."] pub fn rc_client_set_userdata (client : * mut rc_client_t , userdata : * mut :: core :: ffi :: c_void) ; } extern "C" { # [doc = " Gets the client-specific data attached to the runtime."] pub fn rc_client_get_userdata (client : * const rc_client_t) -> * mut :: core :: ffi :: c_void ; } extern "C" { # [doc = " Sets the name of the server to use."] pub fn rc_client_set_host (client : * const rc_client_t , hostname : * const :: core :: ffi :: c_char) ; } pub type rc_clock_t = u64 ; pub type rc_get_time_millisecs_func_t = :: core :: option :: Option < unsafe extern "C" fn (client : * const rc_client_t) -> rc_clock_t > ; extern "C" { # [doc = " Specifies a function that returns a value that increases once per millisecond."] pub fn rc_client_set_get_time_millisecs_function (client : * mut rc_client_t , handler : rc_get_time_millisecs_func_t) ; } extern "C" { # [doc = " Marks an async process as aborted. The associated callback will not be called."] pub fn rc_client_abort_async (client : * mut rc_client_t , async_handle : * mut rc_client_async_handle_t) ; } extern "C" { # [doc = " Gets a clause that can be added to the User-Agent to identify the version of rcheevos being used."] pub fn rc_client_get_user_agent_clause (client : * mut rc_client_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> usize ; } extern "C" { # [doc = " Sets the logging level and provides a callback to be called to do the logging."] pub fn rc_client_enable_logging (client : * mut rc_client_t , level : :: core :: ffi :: c_int , callback : rc_client_message_callback_t) ; } pub const RC_CLIENT_LOG_LEVEL_NONE : _bindgen_ty_15 = 0 ; pub const RC_CLIENT_LOG_LEVEL_ERROR : _bindgen_ty_15 = 1 ; pub const RC_CLIENT_LOG_LEVEL_WARN : _bindgen_ty_15 = 2 ; pub const RC_CLIENT_LOG_LEVEL_INFO : _bindgen_ty_15 = 3 ; pub const RC_CLIENT_LOG_LEVEL_VERBOSE : _bindgen_ty_15 = 4 ; pub const NUM_RC_CLIENT_LOG_LEVELS : _bindgen_ty_15 = 5 ; pub type _bindgen_ty_15 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Attempt to login a user."] pub fn rc_client_begin_login_with_password (client : * mut rc_client_t , username : * const :: core :: ffi :: c_char , password : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Attempt to login a user."] pub fn rc_client_begin_login_with_token (client : * mut rc_client_t , username : * const :: core :: ffi :: c_char , token : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Logout the user."] pub fn rc_client_logout (client : * mut rc_client_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_user_t { pub display_name : * const :: core :: ffi :: c_char , pub username : * const :: core :: ffi :: c_char , pub token : * const :: core :: ffi :: c_char , pub score : u32 , pub score_softcore : u32 , pub num_unread_messages : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_user_t"] [:: core :: mem :: size_of :: < rc_client_user_t > () - 40usize] ; ["Alignment of rc_client_user_t"] [:: core :: mem :: align_of :: < rc_client_user_t > () - 8usize] ; ["Offset of field: rc_client_user_t::display_name"] [:: core :: mem :: offset_of ! (rc_client_user_t , display_name) - 0usize] ; ["Offset of field: rc_client_user_t::username"] [:: core :: mem :: offset_of ! (rc_client_user_t , username) - 8usize] ; ["Offset of field: rc_client_user_t::token"] [:: core :: mem :: offset_of ! (rc_client_user_t , token) - 16usize] ; ["Offset of field: rc_client_user_t::score"] [:: core :: mem :: offset_of ! (rc_client_user_t , score) - 24usize] ; ["Offset of field: rc_client_user_t::score_softcore"] [:: core :: mem :: offset_of ! (rc_client_user_t , score_softcore) - 28usize] ; ["Offset of field: rc_client_user_t::num_unread_messages"] [:: core :: mem :: offset_of ! (rc_client_user_t , num_unread_messages) - 32usize] ; } ; extern "C" { # [doc = " Gets information about the logged in user. Will return NULL if the user is not logged in."] pub fn rc_client_get_user_info (client : * const rc_client_t) -> * const rc_client_user_t ; } extern "C" { # [doc = " Gets the URL for the user's profile picture.\n Returns RC_OK on success."] pub fn rc_client_user_get_image_url (user : * const rc_client_user_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_user_game_summary_t { pub num_core_achievements : u32 , pub num_unofficial_achievements : u32 , pub num_unlocked_achievements : u32 , pub num_unsupported_achievements : u32 , pub points_core : u32 , pub points_unlocked : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_user_game_summary_t"] [:: core :: mem :: size_of :: < rc_client_user_game_summary_t > () - 24usize] ; ["Alignment of rc_client_user_game_summary_t"] [:: core :: mem :: align_of :: < rc_client_user_game_summary_t > () - 4usize] ; ["Offset of field: rc_client_user_game_summary_t::num_core_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_core_achievements) - 0usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unofficial_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unofficial_achievements) - 4usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unlocked_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unlocked_achievements) - 8usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unsupported_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unsupported_achievements) - 12usize] ; ["Offset of field: rc_client_user_game_summary_t::points_core"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , points_core) - 16usize] ; ["Offset of field: rc_client_user_game_summary_t::points_unlocked"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , points_unlocked) - 20usize] ; } ; extern "C" { # [doc = " Gets a breakdown of the number of achievements in the game, and how many the user has unlocked.\n Used for the \"You have unlocked X of Y achievements\" message shown when the game starts."] pub fn rc_client_get_user_game_summary (client : * const rc_client_t , summary : * mut rc_client_user_game_summary_t) ; } extern "C" { # [doc = " Start loading an unidentified game."] pub fn rc_client_begin_identify_and_load_game (client : * mut rc_client_t , console_id : u32 , file_path : * const :: core :: ffi :: c_char , data : * const u8 , data_size : usize , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Start loading a game."] pub fn rc_client_begin_load_game (client : * mut rc_client_t , hash : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Gets the current progress of the asynchronous load game process."] pub fn rc_client_get_load_game_state (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } pub const RC_CLIENT_LOAD_GAME_STATE_NONE : _bindgen_ty_16 = 0 ; pub const RC_CLIENT_LOAD_GAME_STATE_IDENTIFYING_GAME : _bindgen_ty_16 = 1 ; pub const RC_CLIENT_LOAD_GAME_STATE_AWAIT_LOGIN : _bindgen_ty_16 = 2 ; pub const RC_CLIENT_LOAD_GAME_STATE_FETCHING_GAME_DATA : _bindgen_ty_16 = 3 ; pub const RC_CLIENT_LOAD_GAME_STATE_STARTING_SESSION : _bindgen_ty_16 = 4 ; pub const RC_CLIENT_LOAD_GAME_STATE_DONE : _bindgen_ty_16 = 5 ; pub const RC_CLIENT_LOAD_GAME_STATE_ABORTED : _bindgen_ty_16 = 6 ; pub type _bindgen_ty_16 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Determines if a game was successfully identified and loaded."] pub fn rc_client_is_game_loaded (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Unloads the current game."] pub fn rc_client_unload_game (client : * mut rc_client_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_game_t { pub id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub hash : * const :: core :: ffi :: c_char , pub badge_name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_game_t"] [:: core :: mem :: size_of :: < rc_client_game_t > () - 32usize] ; ["Alignment of rc_client_game_t"] [:: core :: mem :: align_of :: < rc_client_game_t > () - 8usize] ; ["Offset of field: rc_client_game_t::id"] [:: core :: mem :: offset_of ! (rc_client_game_t , id) - 0usize] ; ["Offset of field: rc_client_game_t::console_id"] [:: core :: mem :: offset_of ! (rc_client_game_t , console_id) - 4usize] ; ["Offset of field: rc_client_game_t::title"] [:: core :: mem :: offset_of ! (rc_client_game_t , title) - 8usize] ; ["Offset of field: rc_client_game_t::hash"] [:: core :: mem :: offset_of ! (rc_client_game_t , hash) - 16usize] ; ["Offset of field: rc_client_game_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_game_t , badge_name) - 24usize] ; } ; extern "C" { # [doc = " Get information about the current game. Returns NULL if no game is loaded.\n NOTE: returns a dummy game record if an unidentified game is loaded."] pub fn rc_client_get_game_info (client : * const rc_client_t) -> * const rc_client_game_t ; } extern "C" { # [doc = " Gets the URL for the game image.\n Returns RC_OK on success."] pub fn rc_client_game_get_image_url (game : * const rc_client_game_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Changes the active disc in a multi-disc game."] pub fn rc_client_begin_change_media (client : * mut rc_client_t , file_path : * const :: core :: ffi :: c_char , data : * const u8 , data_size : usize , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Changes the active disc in a multi-disc game."] pub fn rc_client_begin_change_media_from_hash (client : * mut rc_client_t , hash : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } # [doc = "\\\n| Subsets                                                                     |\n\\"] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_subset_t { pub id : u32 , pub title : * const :: core :: ffi :: c_char , pub badge_name : [:: core :: ffi :: c_char ; 16usize] , pub num_achievements : u32 , pub num_leaderboards : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_subset_t"] [:: core :: mem :: size_of :: < rc_client_subset_t > () - 40usize] ; ["Alignment of rc_client_subset_t"] [:: core :: mem :: align_of :: < rc_client_subset_t > () - 8usize] ; ["Offset of field: rc_client_subset_t::id"] [:: core :: mem :: offset_of ! (rc_client_subset_t , id) - 0usize] ; ["Offset of field: rc_client_subset_t::title"] [:: core :: mem :: offset_of ! (rc_client_subset_t , title) - 8usize] ; ["Offset of field: rc_client_subset_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_subset_t , badge_name) - 16usize] ; ["Offset of field: rc_client_subset_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_client_subset_t , num_achievements) - 32usize] ; ["Offset of field: rc_client_subset_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_client_subset_t , num_leaderboards) - 36usize] ; } ; extern "C" { pub fn rc_client_get_subset_info (client : * mut rc_client_t , subset_id : u32) -> * const rc_client_subset_t ; } pub const RC_CLIENT_ACHIEVEMENT_STATE_INACTIVE : _bindgen_ty_17 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_ACTIVE : _bindgen_ty_17 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_UNLOCKED : _bindgen_ty_17 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_DISABLED : _bindgen_ty_17 = 3 ; pub const NUM_RC_CLIENT_ACHIEVEMENT_STATES : _bindgen_ty_17 = 4 ; # [doc = "\\\n| Achievements                                                                |\n\\"] pub type _bindgen_ty_17 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_NONE : _bindgen_ty_18 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_CORE : _bindgen_ty_18 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_UNOFFICIAL : _bindgen_ty_18 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_CORE_AND_UNOFFICIAL : _bindgen_ty_18 = 3 ; pub type _bindgen_ty_18 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_STANDARD : _bindgen_ty_19 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_MISSABLE : _bindgen_ty_19 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_PROGRESSION : _bindgen_ty_19 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_WIN : _bindgen_ty_19 = 3 ; pub type _bindgen_ty_19 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNKNOWN : _bindgen_ty_20 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_LOCKED : _bindgen_ty_20 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNLOCKED : _bindgen_ty_20 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNSUPPORTED : _bindgen_ty_20 = 3 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNOFFICIAL : _bindgen_ty_20 = 4 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_RECENTLY_UNLOCKED : _bindgen_ty_20 = 5 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_ACTIVE_CHALLENGE : _bindgen_ty_20 = 6 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_ALMOST_THERE : _bindgen_ty_20 = 7 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNSYNCED : _bindgen_ty_20 = 8 ; pub const NUM_RC_CLIENT_ACHIEVEMENT_BUCKETS : _bindgen_ty_20 = 9 ; pub type _bindgen_ty_20 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_NONE : _bindgen_ty_21 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_SOFTCORE : _bindgen_ty_21 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_HARDCORE : _bindgen_ty_21 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_BOTH : _bindgen_ty_21 = 3 ; pub type _bindgen_ty_21 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_t { pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub badge_name : [:: core :: ffi :: c_char ; 8usize] , pub measured_progress : [:: core :: ffi :: c_char ; 24usize] , pub measured_percent : f32 , pub id : u32 , pub points : u32 , pub unlock_time : time_t , pub state : u8 , pub category : u8 , pub bucket : u8 , pub unlocked : u8 , pub rarity : f32 , pub rarity_hardcore : f32 , pub type_ : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_t"] [:: core :: mem :: size_of :: < rc_client_achievement_t > () - 88usize] ; ["Alignment of rc_client_achievement_t"] [:: core :: mem :: align_of :: < rc_client_achievement_t > () - 8usize] ; ["Offset of field: rc_client_achievement_t::title"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , title) - 0usize] ; ["Offset of field: rc_client_achievement_t::description"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , description) - 8usize] ; ["Offset of field: rc_client_achievement_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , badge_name) - 16usize] ; ["Offset of field: rc_client_achievement_t::measured_progress"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , measured_progress) - 24usize] ; ["Offset of field: rc_client_achievement_t::measured_percent"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , measured_percent) - 48usize] ; ["Offset of field: rc_client_achievement_t::id"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , id) - 52usize] ; ["Offset of field: rc_client_achievement_t::points"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , points) - 56usize] ; ["Offset of field: rc_client_achievement_t::unlock_time"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , unlock_time) - 64usize] ; ["Offset of field: rc_client_achievement_t::state"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , state) - 72usize] ; ["Offset of field: rc_client_achievement_t::category"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , category) - 73usize] ; ["Offset of field: rc_client_achievement_t::bucket"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , bucket) - 74usize] ; ["Offset of field: rc_client_achievement_t::unlocked"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , unlocked) - 75usize] ; ["Offset of field: rc_client_achievement_t::rarity"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , rarity) - 76usize] ; ["Offset of field: rc_client_achievement_t::rarity_hardcore"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , rarity_hardcore) - 80usize] ; ["Offset of field: rc_client_achievement_t::type_"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , type_) - 84usize] ; } ; extern "C" { # [doc = " Get information about an achievement. Returns NULL if not found."] pub fn rc_client_get_achievement_info (client : * mut rc_client_t , id : u32) -> * const rc_client_achievement_t ; } extern "C" { # [doc = " Gets the URL for the achievement image.\n Returns RC_OK on success."] pub fn rc_client_achievement_get_image_url (achievement : * const rc_client_achievement_t , state : :: core :: ffi :: c_int , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_bucket_t { pub achievements : * mut * mut rc_client_achievement_t , pub num_achievements : u32 , pub label : * const :: core :: ffi :: c_char , pub subset_id : u32 , pub bucket_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_bucket_t"] [:: core :: mem :: size_of :: < rc_client_achievement_bucket_t > () - 32usize] ; ["Alignment of rc_client_achievement_bucket_t"] [:: core :: mem :: align_of :: < rc_client_achievement_bucket_t > () - 8usize] ; ["Offset of field: rc_client_achievement_bucket_t::achievements"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , achievements) - 0usize] ; ["Offset of field: rc_client_achievement_bucket_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , num_achievements) - 8usize] ; ["Offset of field: rc_client_achievement_bucket_t::label"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , label) - 16usize] ; ["Offset of field: rc_client_achievement_bucket_t::subset_id"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , subset_id) - 24usize] ; ["Offset of field: rc_client_achievement_bucket_t::bucket_type"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , bucket_type) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_list_t { pub buckets : * mut rc_client_achievement_bucket_t , pub num_buckets : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_list_t"] [:: core :: mem :: size_of :: < rc_client_achievement_list_t > () - 16usize] ; ["Alignment of rc_client_achievement_list_t"] [:: core :: mem :: align_of :: < rc_client_achievement_list_t > () - 8usize] ; ["Offset of field: rc_client_achievement_list_t::buckets"] [:: core :: mem :: offset_of ! (rc_client_achievement_list_t , buckets) - 0usize] ; ["Offset of field: rc_client_achievement_list_t::num_buckets"] [:: core :: mem :: offset_of ! (rc_client_achievement_list_t , num_buckets) - 8usize] ; } ; pub const RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_LOCK_STATE : _bindgen_ty_22 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_PROGRESS : _bindgen_ty_22 = 1 ; pub type _bindgen_ty_22 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Creates a list of achievements matching the specified category and grouping.\n Returns an allocated list that must be free'd by calling rc_client_destroy_achievement_list."] pub fn rc_client_create_achievement_list (client : * mut rc_client_t , category : :: core :: ffi :: c_int , grouping : :: core :: ffi :: c_int) -> * mut rc_client_achievement_list_t ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_get_achievement_list."] pub fn rc_client_destroy_achievement_list (list : * mut rc_client_achievement_list_t) ; } extern "C" { # [doc = " Returns non-zero if there are any achievements that can be queried through rc_client_create_achievement_list()."] pub fn rc_client_has_achievements (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } pub const RC_CLIENT_LEADERBOARD_STATE_INACTIVE : _bindgen_ty_23 = 0 ; pub const RC_CLIENT_LEADERBOARD_STATE_ACTIVE : _bindgen_ty_23 = 1 ; pub const RC_CLIENT_LEADERBOARD_STATE_TRACKING : _bindgen_ty_23 = 2 ; pub const RC_CLIENT_LEADERBOARD_STATE_DISABLED : _bindgen_ty_23 = 3 ; pub const NUM_RC_CLIENT_LEADERBOARD_STATES : _bindgen_ty_23 = 4 ; # [doc = "\\\n| Leaderboards                                                                |\n\\"] pub type _bindgen_ty_23 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_LEADERBOARD_FORMAT_TIME : _bindgen_ty_24 = 0 ; pub const RC_CLIENT_LEADERBOARD_FORMAT_SCORE : _bindgen_ty_24 = 1 ; pub const RC_CLIENT_LEADERBOARD_FORMAT_VALUE : _bindgen_ty_24 = 2 ; pub const NUM_RC_CLIENT_LEADERBOARD_FORMATS : _bindgen_ty_24 = 3 ; pub type _bindgen_ty_24 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_t { pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub tracker_value : * const :: core :: ffi :: c_char , pub id : u32 , pub state : u8 , pub format : u8 , pub lower_is_better : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_t > () - 32usize] ; ["Alignment of rc_client_leaderboard_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_t::title"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , title) - 0usize] ; ["Offset of field: rc_client_leaderboard_t::description"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , description) - 8usize] ; ["Offset of field: rc_client_leaderboard_t::tracker_value"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , tracker_value) - 16usize] ; ["Offset of field: rc_client_leaderboard_t::id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , id) - 24usize] ; ["Offset of field: rc_client_leaderboard_t::state"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , state) - 28usize] ; ["Offset of field: rc_client_leaderboard_t::format"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , format) - 29usize] ; ["Offset of field: rc_client_leaderboard_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , lower_is_better) - 30usize] ; } ; extern "C" { # [doc = " Get information about a leaderboard. Returns NULL if not found."] pub fn rc_client_get_leaderboard_info (client : * const rc_client_t , id : u32) -> * const rc_client_leaderboard_t ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_tracker_t { pub display : [:: core :: ffi :: c_char ; 24usize] , pub id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_tracker_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_tracker_t > () - 28usize] ; ["Alignment of rc_client_leaderboard_tracker_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_tracker_t > () - 4usize] ; ["Offset of field: rc_client_leaderboard_tracker_t::display"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_tracker_t , display) - 0usize] ; ["Offset of field: rc_client_leaderboard_tracker_t::id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_tracker_t , id) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_bucket_t { pub leaderboards : * mut * mut rc_client_leaderboard_t , pub num_leaderboards : u32 , pub label : * const :: core :: ffi :: c_char , pub subset_id : u32 , pub bucket_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_bucket_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_bucket_t > () - 32usize] ; ["Alignment of rc_client_leaderboard_bucket_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_bucket_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::leaderboards"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , leaderboards) - 0usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , num_leaderboards) - 8usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::label"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , label) - 16usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::subset_id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , subset_id) - 24usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::bucket_type"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , bucket_type) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_list_t { pub buckets : * mut rc_client_leaderboard_bucket_t , pub num_buckets : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_list_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_list_t > () - 16usize] ; ["Alignment of rc_client_leaderboard_list_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_list_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_list_t::buckets"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_list_t , buckets) - 0usize] ; ["Offset of field: rc_client_leaderboard_list_t::num_buckets"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_list_t , num_buckets) - 8usize] ; } ; pub const RC_CLIENT_LEADERBOARD_BUCKET_UNKNOWN : _bindgen_ty_25 = 0 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_INACTIVE : _bindgen_ty_25 = 1 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_ACTIVE : _bindgen_ty_25 = 2 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_UNSUPPORTED : _bindgen_ty_25 = 3 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_ALL : _bindgen_ty_25 = 4 ; pub const NUM_RC_CLIENT_LEADERBOARD_BUCKETS : _bindgen_ty_25 = 5 ; pub type _bindgen_ty_25 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_LEADERBOARD_LIST_GROUPING_NONE : _bindgen_ty_26 = 0 ; pub const RC_CLIENT_LEADERBOARD_LIST_GROUPING_TRACKING : _bindgen_ty_26 = 1 ; pub type _bindgen_ty_26 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Creates a list of leaderboards matching the specified grouping.\n Returns an allocated list that must be free'd by calling rc_client_destroy_leaderboard_list."] pub fn rc_client_create_leaderboard_list (client : * mut rc_client_t , grouping : :: core :: ffi :: c_int) -> * mut rc_client_leaderboard_list_t ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_get_leaderboard_list."] pub fn rc_client_destroy_leaderboard_list (list : * mut rc_client_leaderboard_list_t) ; } extern "C" { # [doc = " Returns non-zero if the current game has any leaderboards."] pub fn rc_client_has_leaderboards (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_entry_t { pub user : * const :: core :: ffi :: c_char , pub display : [:: core :: ffi :: c_char ; 24usize] , pub submitted : time_t , pub rank : u32 , pub index : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_entry_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_entry_t > () - 48usize] ; ["Alignment of rc_client_leaderboard_entry_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_entry_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_t::user"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , user) - 0usize] ; ["Offset of field: rc_client_leaderboard_entry_t::display"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , display) - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_t::submitted"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , submitted) - 32usize] ; ["Offset of field: rc_client_leaderboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , rank) - 40usize] ; ["Offset of field: rc_client_leaderboard_entry_t::index"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , index) - 44usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_entry_list_t { pub entries : * mut rc_client_leaderboard_entry_t , pub num_entries : u32 , pub total_entries : u32 , pub user_index : i32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_entry_list_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_entry_list_t > () - 24usize] ; ["Alignment of rc_client_leaderboard_entry_list_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_entry_list_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , entries) - 0usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::num_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , num_entries) - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::total_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , total_entries) - 12usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::user_index"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , user_index) - 16usize] ; } ; pub type rc_client_fetch_leaderboard_entries_callback_t = :: core :: option :: Option < unsafe extern "C" fn (result : :: core :: ffi :: c_int , error_message : * const :: core :: ffi :: c_char , list : * mut rc_client_leaderboard_entry_list_t , client : * mut rc_client_t , callback_userdata : * mut :: core :: ffi :: c_void) > ; extern "C" { # [doc = " Fetches a list of leaderboard entries from the server.\n Callback receives an allocated list that must be free'd by calling rc_client_destroy_leaderboard_entry_list."] pub fn rc_client_begin_fetch_leaderboard_entries (client : * mut rc_client_t , leaderboard_id : u32 , first_entry : u32 , count : u32 , callback : rc_client_fetch_leaderboard_entries_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Fetches a list of leaderboard entries from the server containing the logged-in user.\n Callback receives an allocated list that must be free'd by calling rc_client_destroy_leaderboard_entry_list."] pub fn rc_client_begin_fetch_leaderboard_entries_around_user (client : * mut rc_client_t , leaderboard_id : u32 , count : u32 , callback : rc_client_fetch_leaderboard_entries_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Gets the URL for the profile picture of the user associated to a leaderboard entry.\n Returns RC_OK on success."] pub fn rc_client_leaderboard_entry_get_user_image_url (entry : * const rc_client_leaderboard_entry_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_begin_fetch_leaderboard_entries or rc_client_begin_fetch_leaderboard_entries_around_user."] pub fn rc_client_destroy_leaderboard_entry_list (list : * mut rc_client_leaderboard_entry_list_t) ; } # [doc = " Used for scoreboard events. Contains the response from the server when a leaderboard entry is submitted.\n NOTE: This structure is only valid within the event callback. If you want to make use of the data outside\n of the callback, you should create copies of both the top entries and usernames within."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_scoreboard_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub score : [:: core :: ffi :: c_char ; 24usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_scoreboard_entry_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_scoreboard_entry_t > () - 40usize] ; ["Alignment of rc_client_leaderboard_scoreboard_entry_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_scoreboard_entry_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::username"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , username) - 0usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , rank) - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , score) - 12usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_scoreboard_t { pub leaderboard_id : u32 , pub submitted_score : [:: core :: ffi :: c_char ; 24usize] , pub best_score : [:: core :: ffi :: c_char ; 24usize] , pub new_rank : u32 , pub num_entries : u32 , pub top_entries : * mut rc_client_leaderboard_scoreboard_entry_t , pub num_top_entries : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_scoreboard_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_scoreboard_t > () - 80usize] ; ["Alignment of rc_client_leaderboard_scoreboard_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_scoreboard_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::submitted_score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , submitted_score) - 4usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::best_score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , best_score) - 28usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::new_rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , new_rank) - 52usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::num_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , num_entries) - 56usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::top_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , top_entries) - 64usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::num_top_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , num_top_entries) - 72usize] ; } ; extern "C" { # [doc = " Returns non-zero if the current game supports rich presence."] pub fn rc_client_has_rich_presence (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Gets the current rich presence message.\n Returns the number of characters written to buffer."] pub fn rc_client_get_rich_presence_message (client : * mut rc_client_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> usize ; } pub const RC_CLIENT_EVENT_TYPE_NONE : _bindgen_ty_27 = 0 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_TRIGGERED : _bindgen_ty_27 = 1 ; pub const RC_CLIENT_EVENT_LEADERBOARD_STARTED : _bindgen_ty_27 = 2 ; pub const RC_CLIENT_EVENT_LEADERBOARD_FAILED : _bindgen_ty_27 = 3 ; pub const RC_CLIENT_EVENT_LEADERBOARD_SUBMITTED : _bindgen_ty_27 = 4 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_CHALLENGE_INDICATOR_SHOW : _bindgen_ty_27 = 5 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_CHALLENGE_INDICATOR_HIDE : _bindgen_ty_27 = 6 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_SHOW : _bindgen_ty_27 = 7 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_HIDE : _bindgen_ty_27 = 8 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_UPDATE : _bindgen_ty_27 = 9 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_SHOW : _bindgen_ty_27 = 10 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_HIDE : _bindgen_ty_27 = 11 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_UPDATE : _bindgen_ty_27 = 12 ; pub const RC_CLIENT_EVENT_LEADERBOARD_SCOREBOARD : _bindgen_ty_27 = 13 ; pub const RC_CLIENT_EVENT_RESET : _bindgen_ty_27 = 14 ; pub const RC_CLIENT_EVENT_GAME_COMPLETED : _bindgen_ty_27 = 15 ; pub const RC_CLIENT_EVENT_SERVER_ERROR : _bindgen_ty_27 = 16 ; pub const RC_CLIENT_EVENT_DISCONNECTED : _bindgen_ty_27 = 17 ; pub const RC_CLIENT_EVENT_RECONNECTED : _bindgen_ty_27 = 18 ; # [doc = "\\\n| Processing                                                                  |\n\\"] pub type _bindgen_ty_27 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_server_error_t { pub error_message : * const :: core :: ffi :: c_char , pub api : * const :: core :: ffi :: c_char , pub result : :: core :: ffi :: c_int , pub related_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_server_error_t"] [:: core :: mem :: size_of :: < rc_client_server_error_t > () - 24usize] ; ["Alignment of rc_client_server_error_t"] [:: core :: mem :: align_of :: < rc_client_server_error_t > () - 8usize] ; ["Offset of field: rc_client_server_error_t::error_message"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , error_message) - 0usize] ; ["Offset of field: rc_client_server_error_t::api"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , api) - 8usize] ; ["Offset of field: rc_client_server_error_t::result"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , result) - 16usize] ; ["Offset of field: rc_client_server_error_t::related_id"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , related_id) - 20usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_event_t { pub type_ : u32 , pub achievement : * mut rc_client_achievement_t , pub leaderboard : * mut rc_client_leaderboard_t , pub leaderboard_tracker : * mut rc_client_leaderboard_tracker_t , pub leaderboard_scoreboard : * mut rc_client_leaderboard_scoreboard_t , pub server_error : * mut rc_client_server_error_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_event_t"] [:: core :: mem :: size_of :: < rc_client_event_t > () - 48usize] ; ["Alignment of rc_client_event_t"] [:: core :: mem :: align_of :: < rc_client_event_t > () - 8usize] ; ["Offset of field: rc_client_event_t::type_"] [:: core :: mem :: offset_of ! (rc_client_event_t , type_) - 0usize] ; ["Offset of field: rc_client_event_t::achievement"] [:: core :: mem :: offset_of ! (rc_client_event_t , achievement) - 8usize] ; ["Offset of field: rc_client_event_t::leaderboard"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard) - 16usize] ; ["Offset of field: rc_client_event_t::leaderboard_tracker"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard_tracker) - 24usize] ; ["Offset of field: rc_client_event_t::leaderboard_scoreboard"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard_scoreboard) - 32usize] ; ["Offset of field: rc_client_event_t::server_error"] [:: core :: mem :: offset_of ! (rc_client_event_t , server_error) - 40usize] ; } ; # [doc = " Callback used to notify the client when certain events occur."] pub type rc_client_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (event : * const rc_client_event_t , client : * mut rc_client_t) > ; extern "C" { # [doc = " Provides a callback for event handling."] pub fn rc_client_set_event_handler (client : * mut rc_client_t , handler : rc_client_event_handler_t) ; } extern "C" { # [doc = " Provides a callback for reading memory."] pub fn rc_client_set_read_memory_function (client : * mut rc_client_t , handler : rc_client_read_memory_func_t) ; } extern "C" { # [doc = " Determines if there are any active achievements/leaderboards/rich presence that need processing."] pub fn rc_client_is_processing_required (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Processes achievements for the current frame."] pub fn rc_client_do_frame (client : * mut rc_client_t) ; } extern "C" { # [doc = " Processes the periodic queue.\n Called internally by rc_client_do_frame.\n Should be explicitly called if rc_client_do_frame is not being called because emulation is paused."] pub fn rc_client_idle (client : * mut rc_client_t) ; } extern "C" { # [doc = " Determines if a sufficient amount of frames have been processed since the last call to rc_client_can_pause.\n Should not be called unless the client is trying to pause.\n If false is returned, and frames_remaining is not NULL, frames_remaining will be set to the number of frames\n still required before pause is allowed, which can be converted to a time in seconds for displaying to the user."] pub fn rc_client_can_pause (client : * mut rc_client_t , frames_remaining : * mut u32) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Informs the runtime that the emulator has been reset. Will reset all achievements and leaderboards\n to their initial state (includes hiding indicators/trackers)."] pub fn rc_client_reset (client : * mut rc_client_t) ; } extern "C" { # [doc = " Gets the number of bytes needed to serialized the runtime state."] pub fn rc_client_progress_size (client : * mut rc_client_t) -> usize ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator.\n [deprecated] use rc_client_serialize_progress_sized instead"] pub fn rc_client_serialize_progress (client : * mut rc_client_t , buffer : * mut u8) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator."] pub fn rc_client_serialize_progress_sized (client : * mut rc_client_t , buffer : * mut u8 , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Deserializes the runtime state from a buffer.\n Returns RC_OK on success, or an error indicator.\n [deprecated] use rc_client_deserialize_progress_sized instead"] pub fn rc_client_deserialize_progress (client : * mut rc_client_t , serialized : * const u8) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator."] pub fn rc_client_deserialize_progress_sized (client : * mut rc_client_t , serialized : * const u8 , serialized_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __locale_data { pub _address : u8 , } pub type __builtin_va_list = [__va_list_tag ; 1usize] ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __va_list_tag { pub gp_offset : :: core :: ffi :: c_uint , pub fp_offset : :: core :: ffi :: c_uint , pub overflow_arg_area : * mut :: core :: ffi :: c_void , pub reg_save_area : * mut :: core :: ffi :: c_void , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __va_list_tag"] [:: core :: mem :: size_of :: < __va_list_tag > () - 24usize] ; ["Alignment of __va_list_tag"] [:: core :: mem :: align_of :: < __va_list_tag > () - 8usize] ; ["Offset of field: __va_list_tag::gp_offset"] [:: core :: mem :: offset_of ! (__va_list_tag , gp_offset) - 0usize] ; ["Offset of field: __va_list_tag::fp_offset"] [:: core :: mem :: offset_of ! (__va_list_tag , fp_offset) - 4usize] ; ["Offset of field: __va_list_tag::overflow_arg_area"] [:: core :: mem :: offset_of ! (__va_list_tag , overflow_arg_area) - 8usize] ; ["Offset of field: __va_list_tag::reg_save_area"] [:: core :: mem :: offset_of ! (__va_list_tag , reg_save_area) - 16usize] ; } ;
[INFO] [stdout] 3 + # [repr (C)] # [derive (Copy , Clone , Debug , Default , Eq , Hash , Ord , PartialEq , PartialOrd)] pub struct __BindgenBitfieldUnit < Storage > { storage : Storage , } impl < Storage > __BindgenBitfieldUnit < Storage > { # [inline] pub const fn new (storage : Storage) -> Self { Self { storage } } } impl < Storage > __BindgenBitfieldUnit < Storage > where Storage : AsRef < [u8] > + AsMut < [u8] >, { # [inline] pub fn get_bit (& self , index : usize) -> bool { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = self . storage . as_ref () [byte_index] ; let bit_index = if cfg ! (target_endian = "big") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; byte & mask == mask } # [inline] pub fn set_bit (& mut self , index : usize , val : bool) { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = & mut self . storage . as_mut () [byte_index] ; let bit_index = if cfg ! (target_endian = "big") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; if val { * byte |= mask ; } else { * byte &= ! mask ; } } # [inline] pub fn get (& self , bit_offset : usize , bit_width : u8) -> u64 { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; let mut val = 0 ; for i in 0 .. (bit_width as usize) { if self . get_bit (i + bit_offset) { let index = if cfg ! (target_endian = "big") { bit_width as usize - 1 - i } else { i } ; val |= 1 << index ; } } val } # [inline] pub fn set (& mut self , bit_offset : usize , bit_width : u8 , val : u64) { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; for i in 0 .. (bit_width as usize) { let mask = 1 << i ; let val_bit_is_set = val & mask == mask ; let index = if cfg ! (target_endian = "big") { bit_width as usize - 1 - i } else { i } ; self . set_bit (index + bit_offset , val_bit_is_set) ; } } } # [derive (PartialEq , Copy , Clone , Hash , Debug , Default)] # [repr (C)] pub struct __BindgenComplex < T > { pub re : T , pub im : T } pub const _STDINT_H : u32 = 1 ; pub const _FEATURES_H : u32 = 1 ; pub const _DEFAULT_SOURCE : u32 = 1 ; pub const __GLIBC_USE_ISOC2Y : u32 = 0 ; pub const __GLIBC_USE_ISOC23 : u32 = 0 ; pub const __USE_ISOC11 : u32 = 1 ; pub const __USE_ISOC99 : u32 = 1 ; pub const __USE_ISOC95 : u32 = 1 ; pub const __USE_POSIX_IMPLICITLY : u32 = 1 ; pub const _POSIX_SOURCE : u32 = 1 ; pub const _POSIX_C_SOURCE : u32 = 202405 ; pub const __USE_POSIX : u32 = 1 ; pub const __USE_POSIX2 : u32 = 1 ; pub const __USE_POSIX199309 : u32 = 1 ; pub const __USE_POSIX199506 : u32 = 1 ; pub const __USE_XOPEN2K : u32 = 1 ; pub const __USE_XOPEN2K8 : u32 = 1 ; pub const _ATFILE_SOURCE : u32 = 1 ; pub const __USE_XOPEN2K24 : u32 = 1 ; pub const __WORDSIZE : u32 = 64 ; pub const __WORDSIZE_TIME64_COMPAT32 : u32 = 1 ; pub const __SYSCALL_WORDSIZE : u32 = 64 ; pub const __TIMESIZE : u32 = 64 ; pub const __USE_TIME_BITS64 : u32 = 1 ; pub const __USE_MISC : u32 = 1 ; 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_C23_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 ; pub const __STDC_IEC_559_COMPLEX__ : u32 = 1 ; 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 = 43 ; pub const _SYS_CDEFS_H : u32 = 1 ; pub const __glibc_c99_flexarr_available : u32 = 1 ; pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI : u32 = 0 ; pub const __HAVE_GENERIC_SELECTION : u32 = 1 ; pub const __GLIBC_USE_LIB_EXT2 : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT_C23 : u32 = 0 ; 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_C23 : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_TYPES_EXT : u32 = 0 ; pub const _BITS_TYPES_H : u32 = 1 ; pub const _BITS_TYPESIZES_H : u32 = 1 ; pub const __OFF_T_MATCHES_OFF64_T : u32 = 1 ; pub const __INO_T_MATCHES_INO64_T : u32 = 1 ; pub const __RLIM_T_MATCHES_RLIM64_T : u32 = 1 ; pub const __STATFS_MATCHES_STATFS64 : u32 = 1 ; pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 : u32 = 1 ; pub const __FD_SETSIZE : u32 = 1024 ; pub const _BITS_TIME64_H : u32 = 1 ; pub const _BITS_WCHAR_H : u32 = 1 ; pub const _BITS_STDINT_INTN_H : u32 = 1 ; pub const _BITS_STDINT_UINTN_H : u32 = 1 ; pub const _BITS_STDINT_LEAST_H : u32 = 1 ; pub const INT8_MIN : i32 = - 128 ; pub const INT16_MIN : i32 = - 32768 ; pub const INT32_MIN : i32 = - 2147483648 ; pub const INT8_MAX : u32 = 127 ; pub const INT16_MAX : u32 = 32767 ; pub const INT32_MAX : u32 = 2147483647 ; pub const UINT8_MAX : u32 = 255 ; pub const UINT16_MAX : u32 = 65535 ; pub const UINT32_MAX : u32 = 4294967295 ; pub const INT_LEAST8_MIN : i32 = - 128 ; pub const INT_LEAST16_MIN : i32 = - 32768 ; pub const INT_LEAST32_MIN : i32 = - 2147483648 ; pub const INT_LEAST8_MAX : u32 = 127 ; pub const INT_LEAST16_MAX : u32 = 32767 ; pub const INT_LEAST32_MAX : u32 = 2147483647 ; pub const UINT_LEAST8_MAX : u32 = 255 ; pub const UINT_LEAST16_MAX : u32 = 65535 ; pub const UINT_LEAST32_MAX : u32 = 4294967295 ; pub const INT_FAST8_MIN : i32 = - 128 ; pub const INT_FAST16_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST32_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST8_MAX : u32 = 127 ; pub const INT_FAST16_MAX : u64 = 9223372036854775807 ; pub const INT_FAST32_MAX : u64 = 9223372036854775807 ; pub const UINT_FAST8_MAX : u32 = 255 ; pub const UINT_FAST16_MAX : i32 = - 1 ; pub const UINT_FAST32_MAX : i32 = - 1 ; pub const INTPTR_MIN : i64 = - 9223372036854775808 ; pub const INTPTR_MAX : u64 = 9223372036854775807 ; pub const UINTPTR_MAX : i32 = - 1 ; pub const PTRDIFF_MIN : i64 = - 9223372036854775808 ; pub const PTRDIFF_MAX : u64 = 9223372036854775807 ; pub const SIG_ATOMIC_MIN : i32 = - 2147483648 ; pub const SIG_ATOMIC_MAX : u32 = 2147483647 ; pub const SIZE_MAX : i32 = - 1 ; pub const WINT_MIN : u32 = 0 ; pub const WINT_MAX : u32 = 4294967295 ; pub const RC_VALUE_MAX_NAME_LENGTH : u32 = 15 ; pub const _TIME_H : u32 = 1 ; pub const _BITS_TIME_H : u32 = 1 ; pub const CLOCK_REALTIME : u32 = 0 ; pub const CLOCK_MONOTONIC : u32 = 1 ; pub const CLOCK_PROCESS_CPUTIME_ID : u32 = 2 ; pub const CLOCK_THREAD_CPUTIME_ID : u32 = 3 ; pub const CLOCK_MONOTONIC_RAW : u32 = 4 ; pub const CLOCK_REALTIME_COARSE : u32 = 5 ; pub const CLOCK_MONOTONIC_COARSE : u32 = 6 ; pub const CLOCK_BOOTTIME : u32 = 7 ; pub const CLOCK_REALTIME_ALARM : u32 = 8 ; pub const CLOCK_BOOTTIME_ALARM : u32 = 9 ; pub const CLOCK_TAI : u32 = 11 ; pub const TIMER_ABSTIME : u32 = 1 ; pub const __clock_t_defined : u32 = 1 ; pub const __time_t_defined : u32 = 1 ; pub const __struct_tm_defined : u32 = 1 ; pub const _STRUCT_TIMESPEC : u32 = 1 ; pub const _BITS_ENDIAN_H : u32 = 1 ; pub const __LITTLE_ENDIAN : u32 = 1234 ; pub const __BIG_ENDIAN : u32 = 4321 ; pub const __PDP_ENDIAN : u32 = 3412 ; pub const _BITS_ENDIANNESS_H : u32 = 1 ; pub const __BYTE_ORDER : u32 = 1234 ; pub const __FLOAT_WORD_ORDER : u32 = 1234 ; pub const __clockid_t_defined : u32 = 1 ; pub const __timer_t_defined : u32 = 1 ; pub const __itimerspec_defined : u32 = 1 ; pub const _BITS_TYPES_LOCALE_T_H : u32 = 1 ; pub const _BITS_TYPES___LOCALE_T_H : u32 = 1 ; pub const TIME_UTC : u32 = 1 ; pub const _STDIO_H : u32 = 1 ; pub const _____fpos_t_defined : u32 = 1 ; pub const ____mbstate_t_defined : u32 = 1 ; pub const _____fpos64_t_defined : u32 = 1 ; pub const ____FILE_defined : u32 = 1 ; pub const __FILE_defined : u32 = 1 ; 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 ; pub const BUFSIZ : u32 = 8192 ; pub const EOF : i32 = - 1 ; 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 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 ; pub const __HAVE_FLOAT128 : u32 = 1 ; pub const __HAVE_DISTINCT_FLOAT128 : u32 = 1 ; pub const __HAVE_FLOAT64X : u32 = 1 ; pub const __HAVE_FLOAT64X_LONG_DOUBLE : u32 = 1 ; pub const __HAVE_FLOAT16 : u32 = 0 ; pub const __HAVE_FLOAT32 : u32 = 1 ; pub const __HAVE_FLOAT64 : u32 = 1 ; pub const __HAVE_FLOAT32X : u32 = 1 ; pub const __HAVE_FLOAT128X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT16 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT32 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT64 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT32X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT64X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT128X : u32 = 0 ; pub const __HAVE_FLOATN_NOT_TYPEDEF : u32 = 0 ; pub const RC_IMAGE_TYPE_GAME : u32 = 1 ; pub const RC_IMAGE_TYPE_ACHIEVEMENT : u32 = 2 ; pub const RC_IMAGE_TYPE_ACHIEVEMENT_LOCKED : u32 = 3 ; pub const RC_IMAGE_TYPE_USER : u32 = 4 ; pub const RC_ACHIEVEMENT_CATEGORY_CORE : u32 = 3 ; pub const RC_ACHIEVEMENT_CATEGORY_UNOFFICIAL : u32 = 5 ; pub const RC_ACHIEVEMENT_TYPE_STANDARD : u32 = 0 ; pub const RC_ACHIEVEMENT_TYPE_MISSABLE : u32 = 1 ; pub const RC_ACHIEVEMENT_TYPE_PROGRESSION : u32 = 2 ; pub const RC_ACHIEVEMENT_TYPE_WIN : u32 = 3 ; pub const RC_CLIENT_LEADERBOARD_DISPLAY_SIZE : u32 = 24 ; pub const RC_OK : _bindgen_ty_1 = 0 ; pub const RC_INVALID_LUA_OPERAND : _bindgen_ty_1 = - 1 ; pub const RC_INVALID_MEMORY_OPERAND : _bindgen_ty_1 = - 2 ; pub const RC_INVALID_CONST_OPERAND : _bindgen_ty_1 = - 3 ; pub const RC_INVALID_FP_OPERAND : _bindgen_ty_1 = - 4 ; pub const RC_INVALID_CONDITION_TYPE : _bindgen_ty_1 = - 5 ; pub const RC_INVALID_OPERATOR : _bindgen_ty_1 = - 6 ; pub const RC_INVALID_REQUIRED_HITS : _bindgen_ty_1 = - 7 ; pub const RC_DUPLICATED_START : _bindgen_ty_1 = - 8 ; pub const RC_DUPLICATED_CANCEL : _bindgen_ty_1 = - 9 ; pub const RC_DUPLICATED_SUBMIT : _bindgen_ty_1 = - 10 ; pub const RC_DUPLICATED_VALUE : _bindgen_ty_1 = - 11 ; pub const RC_DUPLICATED_PROGRESS : _bindgen_ty_1 = - 12 ; pub const RC_MISSING_START : _bindgen_ty_1 = - 13 ; pub const RC_MISSING_CANCEL : _bindgen_ty_1 = - 14 ; pub const RC_MISSING_SUBMIT : _bindgen_ty_1 = - 15 ; pub const RC_MISSING_VALUE : _bindgen_ty_1 = - 16 ; pub const RC_INVALID_LBOARD_FIELD : _bindgen_ty_1 = - 17 ; pub const RC_MISSING_DISPLAY_STRING : _bindgen_ty_1 = - 18 ; pub const RC_OUT_OF_MEMORY : _bindgen_ty_1 = - 19 ; pub const RC_INVALID_VALUE_FLAG : _bindgen_ty_1 = - 20 ; pub const RC_MISSING_VALUE_MEASURED : _bindgen_ty_1 = - 21 ; pub const RC_MULTIPLE_MEASURED : _bindgen_ty_1 = - 22 ; pub const RC_INVALID_MEASURED_TARGET : _bindgen_ty_1 = - 23 ; pub const RC_INVALID_COMPARISON : _bindgen_ty_1 = - 24 ; pub const RC_INVALID_STATE : _bindgen_ty_1 = - 25 ; pub const RC_INVALID_JSON : _bindgen_ty_1 = - 26 ; pub const RC_API_FAILURE : _bindgen_ty_1 = - 27 ; pub const RC_LOGIN_REQUIRED : _bindgen_ty_1 = - 28 ; pub const RC_NO_GAME_LOADED : _bindgen_ty_1 = - 29 ; pub const RC_HARDCORE_DISABLED : _bindgen_ty_1 = - 30 ; pub const RC_ABORTED : _bindgen_ty_1 = - 31 ; pub const RC_NO_RESPONSE : _bindgen_ty_1 = - 32 ; pub const RC_ACCESS_DENIED : _bindgen_ty_1 = - 33 ; pub const RC_INVALID_CREDENTIALS : _bindgen_ty_1 = - 34 ; pub const RC_EXPIRED_TOKEN : _bindgen_ty_1 = - 35 ; pub const RC_INSUFFICIENT_BUFFER : _bindgen_ty_1 = - 36 ; pub const RC_INVALID_VARIABLE_NAME : _bindgen_ty_1 = - 37 ; pub const RC_UNKNOWN_VARIABLE_NAME : _bindgen_ty_1 = - 38 ; # [doc = "\\\n| Return values                                                               |\n\\"] pub type _bindgen_ty_1 = :: core :: ffi :: c_int ; extern "C" { pub fn rc_error_str (ret : :: core :: ffi :: c_int) -> * const :: core :: ffi :: c_char ; } pub type wchar_t = :: core :: ffi :: c_int ; # [repr (C)] # [repr (align (16))] # [derive (Debug , Copy , Clone)] pub struct max_align_t { pub __clang_max_align_nonce1 : :: core :: ffi :: c_longlong , pub __bindgen_padding_0 : u64 , pub __clang_max_align_nonce2 : u128 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of max_align_t"] [:: core :: mem :: size_of :: < max_align_t > () - 32usize] ; ["Alignment of max_align_t"] [:: core :: mem :: align_of :: < max_align_t > () - 16usize] ; ["Offset of field: max_align_t::__clang_max_align_nonce1"] [:: core :: mem :: offset_of ! (max_align_t , __clang_max_align_nonce1) - 0usize] ; ["Offset of field: max_align_t::__clang_max_align_nonce2"] [:: core :: mem :: offset_of ! (max_align_t , __clang_max_align_nonce2) - 16usize] ; } ; pub type __u_char = :: core :: ffi :: c_uchar ; pub type __u_short = :: core :: ffi :: c_ushort ; pub type __u_int = :: core :: ffi :: c_uint ; pub type __u_long = :: core :: ffi :: c_ulong ; pub type __int8_t = :: core :: ffi :: c_schar ; pub type __uint8_t = :: core :: ffi :: c_uchar ; pub type __int16_t = :: core :: ffi :: c_short ; pub type __uint16_t = :: core :: ffi :: c_ushort ; pub type __int32_t = :: core :: ffi :: c_int ; pub type __uint32_t = :: core :: ffi :: c_uint ; pub type __int64_t = :: core :: ffi :: c_long ; pub type __uint64_t = :: core :: ffi :: c_ulong ; pub type __int_least8_t = __int8_t ; pub type __uint_least8_t = __uint8_t ; pub type __int_least16_t = __int16_t ; pub type __uint_least16_t = __uint16_t ; pub type __int_least32_t = __int32_t ; pub type __uint_least32_t = __uint32_t ; pub type __int_least64_t = __int64_t ; pub type __uint_least64_t = __uint64_t ; pub type __quad_t = :: core :: ffi :: c_long ; pub type __u_quad_t = :: core :: ffi :: c_ulong ; pub type __intmax_t = :: core :: ffi :: c_long ; pub type __uintmax_t = :: core :: ffi :: c_ulong ; pub type __dev_t = :: core :: ffi :: c_ulong ; pub type __uid_t = :: core :: ffi :: c_uint ; pub type __gid_t = :: core :: ffi :: c_uint ; pub type __ino_t = :: core :: ffi :: c_ulong ; pub type __ino64_t = :: core :: ffi :: c_ulong ; pub type __mode_t = :: core :: ffi :: c_uint ; pub type __nlink_t = :: core :: ffi :: c_ulong ; pub type __off_t = :: core :: ffi :: c_long ; pub type __off64_t = :: core :: ffi :: c_long ; pub type __pid_t = :: core :: ffi :: c_int ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __fsid_t { pub __val : [:: core :: ffi :: c_int ; 2usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __fsid_t"] [:: core :: mem :: size_of :: < __fsid_t > () - 8usize] ; ["Alignment of __fsid_t"] [:: core :: mem :: align_of :: < __fsid_t > () - 4usize] ; ["Offset of field: __fsid_t::__val"] [:: core :: mem :: offset_of ! (__fsid_t , __val) - 0usize] ; } ; pub type __clock_t = :: core :: ffi :: c_long ; pub type __rlim_t = :: core :: ffi :: c_ulong ; pub type __rlim64_t = :: core :: ffi :: c_ulong ; pub type __id_t = :: core :: ffi :: c_uint ; pub type __time_t = :: core :: ffi :: c_long ; pub type __useconds_t = :: core :: ffi :: c_uint ; pub type __suseconds_t = :: core :: ffi :: c_long ; pub type __suseconds64_t = :: core :: ffi :: c_long ; pub type __daddr_t = :: core :: ffi :: c_int ; pub type __key_t = :: core :: ffi :: c_int ; pub type __clockid_t = :: core :: ffi :: c_int ; pub type __timer_t = * mut :: core :: ffi :: c_void ; pub type __blksize_t = :: core :: ffi :: c_long ; pub type __blkcnt_t = :: core :: ffi :: c_long ; pub type __blkcnt64_t = :: core :: ffi :: c_long ; pub type __fsblkcnt_t = :: core :: ffi :: c_ulong ; pub type __fsblkcnt64_t = :: core :: ffi :: c_ulong ; pub type __fsfilcnt_t = :: core :: ffi :: c_ulong ; pub type __fsfilcnt64_t = :: core :: ffi :: c_ulong ; pub type __fsword_t = :: core :: ffi :: c_long ; pub type __ssize_t = :: core :: ffi :: c_long ; pub type __syscall_slong_t = :: core :: ffi :: c_long ; pub type __syscall_ulong_t = :: core :: ffi :: c_ulong ; pub type __loff_t = __off64_t ; pub type __caddr_t = * mut :: core :: ffi :: c_char ; pub type __intptr_t = :: core :: ffi :: c_long ; pub type __socklen_t = :: core :: ffi :: c_uint ; pub type __sig_atomic_t = :: core :: ffi :: c_int ; pub type int_least8_t = __int_least8_t ; pub type int_least16_t = __int_least16_t ; pub type int_least32_t = __int_least32_t ; pub type int_least64_t = __int_least64_t ; pub type uint_least8_t = __uint_least8_t ; pub type uint_least16_t = __uint_least16_t ; pub type uint_least32_t = __uint_least32_t ; pub type uint_least64_t = __uint_least64_t ; pub type int_fast8_t = :: core :: ffi :: c_schar ; pub type int_fast16_t = :: core :: ffi :: c_long ; pub type int_fast32_t = :: core :: ffi :: c_long ; pub type int_fast64_t = :: core :: ffi :: c_long ; pub type uint_fast8_t = :: core :: ffi :: c_uchar ; pub type uint_fast16_t = :: core :: ffi :: c_ulong ; pub type uint_fast32_t = :: core :: ffi :: c_ulong ; pub type uint_fast64_t = :: core :: ffi :: c_ulong ; pub type intmax_t = __intmax_t ; pub type uintmax_t = __uintmax_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct lua_State { _unused : [u8 ; 0] , } # [doc = " Callback used to read num_bytes bytes from memory starting at address. If\n num_bytes is greater than 1, the value is read in little-endian from\n memory."] pub type rc_peek_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , num_bytes : u32 , ud : * mut :: core :: ffi :: c_void) -> u32 > ; pub const RC_MEMSIZE_8_BITS : _bindgen_ty_2 = 0 ; pub const RC_MEMSIZE_16_BITS : _bindgen_ty_2 = 1 ; pub const RC_MEMSIZE_24_BITS : _bindgen_ty_2 = 2 ; pub const RC_MEMSIZE_32_BITS : _bindgen_ty_2 = 3 ; pub const RC_MEMSIZE_LOW : _bindgen_ty_2 = 4 ; pub const RC_MEMSIZE_HIGH : _bindgen_ty_2 = 5 ; pub const RC_MEMSIZE_BIT_0 : _bindgen_ty_2 = 6 ; pub const RC_MEMSIZE_BIT_1 : _bindgen_ty_2 = 7 ; pub const RC_MEMSIZE_BIT_2 : _bindgen_ty_2 = 8 ; pub const RC_MEMSIZE_BIT_3 : _bindgen_ty_2 = 9 ; pub const RC_MEMSIZE_BIT_4 : _bindgen_ty_2 = 10 ; pub const RC_MEMSIZE_BIT_5 : _bindgen_ty_2 = 11 ; pub const RC_MEMSIZE_BIT_6 : _bindgen_ty_2 = 12 ; pub const RC_MEMSIZE_BIT_7 : _bindgen_ty_2 = 13 ; pub const RC_MEMSIZE_BITCOUNT : _bindgen_ty_2 = 14 ; pub const RC_MEMSIZE_16_BITS_BE : _bindgen_ty_2 = 15 ; pub const RC_MEMSIZE_24_BITS_BE : _bindgen_ty_2 = 16 ; pub const RC_MEMSIZE_32_BITS_BE : _bindgen_ty_2 = 17 ; pub const RC_MEMSIZE_FLOAT : _bindgen_ty_2 = 18 ; pub const RC_MEMSIZE_MBF32 : _bindgen_ty_2 = 19 ; pub const RC_MEMSIZE_MBF32_LE : _bindgen_ty_2 = 20 ; pub const RC_MEMSIZE_FLOAT_BE : _bindgen_ty_2 = 21 ; pub const RC_MEMSIZE_DOUBLE32 : _bindgen_ty_2 = 22 ; pub const RC_MEMSIZE_DOUBLE32_BE : _bindgen_ty_2 = 23 ; pub const RC_MEMSIZE_VARIABLE : _bindgen_ty_2 = 24 ; # [doc = "\\\n| Memory References                                                           |\n\\"] pub type _bindgen_ty_2 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memref_value_t { pub value : u32 , pub prior : u32 , pub size : u8 , pub changed : u8 , pub type_ : u8 , pub is_indirect : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memref_value_t"] [:: core :: mem :: size_of :: < rc_memref_value_t > () - 12usize] ; ["Alignment of rc_memref_value_t"] [:: core :: mem :: align_of :: < rc_memref_value_t > () - 4usize] ; ["Offset of field: rc_memref_value_t::value"] [:: core :: mem :: offset_of ! (rc_memref_value_t , value) - 0usize] ; ["Offset of field: rc_memref_value_t::prior"] [:: core :: mem :: offset_of ! (rc_memref_value_t , prior) - 4usize] ; ["Offset of field: rc_memref_value_t::size"] [:: core :: mem :: offset_of ! (rc_memref_value_t , size) - 8usize] ; ["Offset of field: rc_memref_value_t::changed"] [:: core :: mem :: offset_of ! (rc_memref_value_t , changed) - 9usize] ; ["Offset of field: rc_memref_value_t::type_"] [:: core :: mem :: offset_of ! (rc_memref_value_t , type_) - 10usize] ; ["Offset of field: rc_memref_value_t::is_indirect"] [:: core :: mem :: offset_of ! (rc_memref_value_t , is_indirect) - 11usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memref_t { pub value : rc_memref_value_t , pub address : u32 , pub next : * mut rc_memref_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memref_t"] [:: core :: mem :: size_of :: < rc_memref_t > () - 24usize] ; ["Alignment of rc_memref_t"] [:: core :: mem :: align_of :: < rc_memref_t > () - 8usize] ; ["Offset of field: rc_memref_t::value"] [:: core :: mem :: offset_of ! (rc_memref_t , value) - 0usize] ; ["Offset of field: rc_memref_t::address"] [:: core :: mem :: offset_of ! (rc_memref_t , address) - 12usize] ; ["Offset of field: rc_memref_t::next"] [:: core :: mem :: offset_of ! (rc_memref_t , next) - 16usize] ; } ; pub const RC_OPERAND_ADDRESS : _bindgen_ty_3 = 0 ; pub const RC_OPERAND_DELTA : _bindgen_ty_3 = 1 ; pub const RC_OPERAND_CONST : _bindgen_ty_3 = 2 ; pub const RC_OPERAND_FP : _bindgen_ty_3 = 3 ; pub const RC_OPERAND_LUA : _bindgen_ty_3 = 4 ; pub const RC_OPERAND_PRIOR : _bindgen_ty_3 = 5 ; pub const RC_OPERAND_BCD : _bindgen_ty_3 = 6 ; pub const RC_OPERAND_INVERTED : _bindgen_ty_3 = 7 ; pub const RC_OPERAND_RECALL : _bindgen_ty_3 = 8 ; # [doc = "\\\n| Operands                                                                    |\n\\"] pub type _bindgen_ty_3 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Copy , Clone)] pub struct rc_operand_t { pub value : rc_operand_t__bindgen_ty_1 , pub type_ : u8 , pub size : u8 , } # [repr (C)] # [derive (Copy , Clone)] pub union rc_operand_t__bindgen_ty_1 { pub memref : * mut rc_memref_t , pub num : u32 , pub dbl : f64 , pub luafunc : :: core :: ffi :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_operand_t__bindgen_ty_1"] [:: core :: mem :: size_of :: < rc_operand_t__bindgen_ty_1 > () - 8usize] ; ["Alignment of rc_operand_t__bindgen_ty_1"] [:: core :: mem :: align_of :: < rc_operand_t__bindgen_ty_1 > () - 8usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::memref"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , memref) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::num"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , num) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::dbl"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , dbl) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::luafunc"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , luafunc) - 0usize] ; } ; impl :: core :: fmt :: Debug for rc_operand_t__bindgen_ty_1 { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_operand_t__bindgen_ty_1 {{ union }}") } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_operand_t"] [:: core :: mem :: size_of :: < rc_operand_t > () - 16usize] ; ["Alignment of rc_operand_t"] [:: core :: mem :: align_of :: < rc_operand_t > () - 8usize] ; ["Offset of field: rc_operand_t::value"] [:: core :: mem :: offset_of ! (rc_operand_t , value) - 0usize] ; ["Offset of field: rc_operand_t::type_"] [:: core :: mem :: offset_of ! (rc_operand_t , type_) - 8usize] ; ["Offset of field: rc_operand_t::size"] [:: core :: mem :: offset_of ! (rc_operand_t , size) - 9usize] ; } ; impl :: core :: fmt :: Debug for rc_operand_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_operand_t {{ value: {:?}, type: {:?}, size: {:?} }}" , self . value , self . type_ , self . size) } } extern "C" { pub fn rc_operand_is_memref (operand : * const rc_operand_t) -> :: core :: ffi :: c_int ; } pub const RC_CONDITION_STANDARD : _bindgen_ty_4 = 0 ; pub const RC_CONDITION_PAUSE_IF : _bindgen_ty_4 = 1 ; pub const RC_CONDITION_RESET_IF : _bindgen_ty_4 = 2 ; pub const RC_CONDITION_MEASURED_IF : _bindgen_ty_4 = 3 ; pub const RC_CONDITION_TRIGGER : _bindgen_ty_4 = 4 ; pub const RC_CONDITION_MEASURED : _bindgen_ty_4 = 5 ; pub const RC_CONDITION_ADD_SOURCE : _bindgen_ty_4 = 6 ; pub const RC_CONDITION_SUB_SOURCE : _bindgen_ty_4 = 7 ; pub const RC_CONDITION_ADD_ADDRESS : _bindgen_ty_4 = 8 ; pub const RC_CONDITION_REMEMBER : _bindgen_ty_4 = 9 ; pub const RC_CONDITION_ADD_HITS : _bindgen_ty_4 = 10 ; pub const RC_CONDITION_SUB_HITS : _bindgen_ty_4 = 11 ; pub const RC_CONDITION_RESET_NEXT_IF : _bindgen_ty_4 = 12 ; pub const RC_CONDITION_AND_NEXT : _bindgen_ty_4 = 13 ; pub const RC_CONDITION_OR_NEXT : _bindgen_ty_4 = 14 ; # [doc = "\\\n| Conditions                                                                  |\n\\"] pub type _bindgen_ty_4 = :: core :: ffi :: c_uint ; pub const RC_OPERATOR_EQ : _bindgen_ty_5 = 0 ; pub const RC_OPERATOR_LT : _bindgen_ty_5 = 1 ; pub const RC_OPERATOR_LE : _bindgen_ty_5 = 2 ; pub const RC_OPERATOR_GT : _bindgen_ty_5 = 3 ; pub const RC_OPERATOR_GE : _bindgen_ty_5 = 4 ; pub const RC_OPERATOR_NE : _bindgen_ty_5 = 5 ; pub const RC_OPERATOR_NONE : _bindgen_ty_5 = 6 ; pub const RC_OPERATOR_MULT : _bindgen_ty_5 = 7 ; pub const RC_OPERATOR_DIV : _bindgen_ty_5 = 8 ; pub const RC_OPERATOR_AND : _bindgen_ty_5 = 9 ; pub const RC_OPERATOR_XOR : _bindgen_ty_5 = 10 ; pub const RC_OPERATOR_MOD : _bindgen_ty_5 = 11 ; pub const RC_OPERATOR_ADD : _bindgen_ty_5 = 12 ; pub const RC_OPERATOR_SUB : _bindgen_ty_5 = 13 ; pub type _bindgen_ty_5 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Copy , Clone)] pub struct rc_condition_t { pub operand1 : rc_operand_t , pub operand2 : rc_operand_t , pub required_hits : u32 , pub current_hits : u32 , pub next : * mut rc_condition_t , pub type_ : u8 , pub oper : u8 , pub pause : u8 , pub is_true : u8 , pub optimized_comparator : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_condition_t"] [:: core :: mem :: size_of :: < rc_condition_t > () - 56usize] ; ["Alignment of rc_condition_t"] [:: core :: mem :: align_of :: < rc_condition_t > () - 8usize] ; ["Offset of field: rc_condition_t::operand1"] [:: core :: mem :: offset_of ! (rc_condition_t , operand1) - 0usize] ; ["Offset of field: rc_condition_t::operand2"] [:: core :: mem :: offset_of ! (rc_condition_t , operand2) - 16usize] ; ["Offset of field: rc_condition_t::required_hits"] [:: core :: mem :: offset_of ! (rc_condition_t , required_hits) - 32usize] ; ["Offset of field: rc_condition_t::current_hits"] [:: core :: mem :: offset_of ! (rc_condition_t , current_hits) - 36usize] ; ["Offset of field: rc_condition_t::next"] [:: core :: mem :: offset_of ! (rc_condition_t , next) - 40usize] ; ["Offset of field: rc_condition_t::type_"] [:: core :: mem :: offset_of ! (rc_condition_t , type_) - 48usize] ; ["Offset of field: rc_condition_t::oper"] [:: core :: mem :: offset_of ! (rc_condition_t , oper) - 49usize] ; ["Offset of field: rc_condition_t::pause"] [:: core :: mem :: offset_of ! (rc_condition_t , pause) - 50usize] ; ["Offset of field: rc_condition_t::is_true"] [:: core :: mem :: offset_of ! (rc_condition_t , is_true) - 51usize] ; ["Offset of field: rc_condition_t::optimized_comparator"] [:: core :: mem :: offset_of ! (rc_condition_t , optimized_comparator) - 52usize] ; } ; impl :: core :: fmt :: Debug for rc_condition_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_condition_t {{ operand1: {:?}, operand2: {:?}, required_hits: {:?}, current_hits: {:?}, next: {:?}, type: {:?}, oper: {:?}, pause: {:?}, is_true: {:?}, optimized_comparator: {:?} }}" , self . operand1 , self . operand2 , self . required_hits , self . current_hits , self . next , self . type_ , self . oper , self . pause , self . is_true , self . optimized_comparator) } } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_condset_t { pub next : * mut rc_condset_t , pub conditions : * mut rc_condition_t , pub has_pause : u8 , pub is_paused : u8 , pub has_indirect_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_condset_t"] [:: core :: mem :: size_of :: < rc_condset_t > () - 24usize] ; ["Alignment of rc_condset_t"] [:: core :: mem :: align_of :: < rc_condset_t > () - 8usize] ; ["Offset of field: rc_condset_t::next"] [:: core :: mem :: offset_of ! (rc_condset_t , next) - 0usize] ; ["Offset of field: rc_condset_t::conditions"] [:: core :: mem :: offset_of ! (rc_condset_t , conditions) - 8usize] ; ["Offset of field: rc_condset_t::has_pause"] [:: core :: mem :: offset_of ! (rc_condset_t , has_pause) - 16usize] ; ["Offset of field: rc_condset_t::is_paused"] [:: core :: mem :: offset_of ! (rc_condset_t , is_paused) - 17usize] ; ["Offset of field: rc_condset_t::has_indirect_memrefs"] [:: core :: mem :: offset_of ! (rc_condset_t , has_indirect_memrefs) - 18usize] ; } ; pub const RC_TRIGGER_STATE_INACTIVE : _bindgen_ty_6 = 0 ; pub const RC_TRIGGER_STATE_WAITING : _bindgen_ty_6 = 1 ; pub const RC_TRIGGER_STATE_ACTIVE : _bindgen_ty_6 = 2 ; pub const RC_TRIGGER_STATE_PAUSED : _bindgen_ty_6 = 3 ; pub const RC_TRIGGER_STATE_RESET : _bindgen_ty_6 = 4 ; pub const RC_TRIGGER_STATE_TRIGGERED : _bindgen_ty_6 = 5 ; pub const RC_TRIGGER_STATE_PRIMED : _bindgen_ty_6 = 6 ; pub const RC_TRIGGER_STATE_DISABLED : _bindgen_ty_6 = 7 ; # [doc = "\\\n| Trigger                                                                     |\n\\"] pub type _bindgen_ty_6 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_trigger_t { pub requirement : * mut rc_condset_t , pub alternative : * mut rc_condset_t , pub memrefs : * mut rc_memref_t , pub measured_value : u32 , pub measured_target : u32 , pub state : u8 , pub has_hits : u8 , pub has_required_hits : u8 , pub measured_as_percent : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_trigger_t"] [:: core :: mem :: size_of :: < rc_trigger_t > () - 40usize] ; ["Alignment of rc_trigger_t"] [:: core :: mem :: align_of :: < rc_trigger_t > () - 8usize] ; ["Offset of field: rc_trigger_t::requirement"] [:: core :: mem :: offset_of ! (rc_trigger_t , requirement) - 0usize] ; ["Offset of field: rc_trigger_t::alternative"] [:: core :: mem :: offset_of ! (rc_trigger_t , alternative) - 8usize] ; ["Offset of field: rc_trigger_t::memrefs"] [:: core :: mem :: offset_of ! (rc_trigger_t , memrefs) - 16usize] ; ["Offset of field: rc_trigger_t::measured_value"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_value) - 24usize] ; ["Offset of field: rc_trigger_t::measured_target"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_target) - 28usize] ; ["Offset of field: rc_trigger_t::state"] [:: core :: mem :: offset_of ! (rc_trigger_t , state) - 32usize] ; ["Offset of field: rc_trigger_t::has_hits"] [:: core :: mem :: offset_of ! (rc_trigger_t , has_hits) - 33usize] ; ["Offset of field: rc_trigger_t::has_required_hits"] [:: core :: mem :: offset_of ! (rc_trigger_t , has_required_hits) - 34usize] ; ["Offset of field: rc_trigger_t::measured_as_percent"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_as_percent) - 35usize] ; } ; extern "C" { pub fn rc_trigger_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_trigger (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_trigger_t ; } extern "C" { pub fn rc_evaluate_trigger (trigger : * mut rc_trigger_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_test_trigger (trigger : * mut rc_trigger_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_trigger (self_ : * mut rc_trigger_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_value_t { pub value : rc_memref_value_t , pub conditions : * mut rc_condset_t , pub memrefs : * mut rc_memref_t , pub name : * const :: core :: ffi :: c_char , pub next : * mut rc_value_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_value_t"] [:: core :: mem :: size_of :: < rc_value_t > () - 48usize] ; ["Alignment of rc_value_t"] [:: core :: mem :: align_of :: < rc_value_t > () - 8usize] ; ["Offset of field: rc_value_t::value"] [:: core :: mem :: offset_of ! (rc_value_t , value) - 0usize] ; ["Offset of field: rc_value_t::conditions"] [:: core :: mem :: offset_of ! (rc_value_t , conditions) - 16usize] ; ["Offset of field: rc_value_t::memrefs"] [:: core :: mem :: offset_of ! (rc_value_t , memrefs) - 24usize] ; ["Offset of field: rc_value_t::name"] [:: core :: mem :: offset_of ! (rc_value_t , name) - 32usize] ; ["Offset of field: rc_value_t::next"] [:: core :: mem :: offset_of ! (rc_value_t , next) - 40usize] ; } ; extern "C" { pub fn rc_value_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_value (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_value_t ; } extern "C" { pub fn rc_evaluate_value (value : * mut rc_value_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> i32 ; } pub const RC_LBOARD_STATE_INACTIVE : _bindgen_ty_7 = 0 ; pub const RC_LBOARD_STATE_WAITING : _bindgen_ty_7 = 1 ; pub const RC_LBOARD_STATE_ACTIVE : _bindgen_ty_7 = 2 ; pub const RC_LBOARD_STATE_STARTED : _bindgen_ty_7 = 3 ; pub const RC_LBOARD_STATE_CANCELED : _bindgen_ty_7 = 4 ; pub const RC_LBOARD_STATE_TRIGGERED : _bindgen_ty_7 = 5 ; pub const RC_LBOARD_STATE_DISABLED : _bindgen_ty_7 = 6 ; # [doc = "\\\n| Leaderboards                                                                |\n\\"] pub type _bindgen_ty_7 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_lboard_t { pub start : rc_trigger_t , pub submit : rc_trigger_t , pub cancel : rc_trigger_t , pub value : rc_value_t , pub progress : * mut rc_value_t , pub memrefs : * mut rc_memref_t , pub state : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_lboard_t"] [:: core :: mem :: size_of :: < rc_lboard_t > () - 192usize] ; ["Alignment of rc_lboard_t"] [:: core :: mem :: align_of :: < rc_lboard_t > () - 8usize] ; ["Offset of field: rc_lboard_t::start"] [:: core :: mem :: offset_of ! (rc_lboard_t , start) - 0usize] ; ["Offset of field: rc_lboard_t::submit"] [:: core :: mem :: offset_of ! (rc_lboard_t , submit) - 40usize] ; ["Offset of field: rc_lboard_t::cancel"] [:: core :: mem :: offset_of ! (rc_lboard_t , cancel) - 80usize] ; ["Offset of field: rc_lboard_t::value"] [:: core :: mem :: offset_of ! (rc_lboard_t , value) - 120usize] ; ["Offset of field: rc_lboard_t::progress"] [:: core :: mem :: offset_of ! (rc_lboard_t , progress) - 168usize] ; ["Offset of field: rc_lboard_t::memrefs"] [:: core :: mem :: offset_of ! (rc_lboard_t , memrefs) - 176usize] ; ["Offset of field: rc_lboard_t::state"] [:: core :: mem :: offset_of ! (rc_lboard_t , state) - 184usize] ; } ; extern "C" { pub fn rc_lboard_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_lboard (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_lboard_t ; } extern "C" { pub fn rc_evaluate_lboard (lboard : * mut rc_lboard_t , value : * mut i32 , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_lboard (lboard : * mut rc_lboard_t) ; } pub const RC_FORMAT_FRAMES : _bindgen_ty_8 = 0 ; pub const RC_FORMAT_SECONDS : _bindgen_ty_8 = 1 ; pub const RC_FORMAT_CENTISECS : _bindgen_ty_8 = 2 ; pub const RC_FORMAT_SCORE : _bindgen_ty_8 = 3 ; pub const RC_FORMAT_VALUE : _bindgen_ty_8 = 4 ; pub const RC_FORMAT_MINUTES : _bindgen_ty_8 = 5 ; pub const RC_FORMAT_SECONDS_AS_MINUTES : _bindgen_ty_8 = 6 ; pub const RC_FORMAT_FLOAT1 : _bindgen_ty_8 = 7 ; pub const RC_FORMAT_FLOAT2 : _bindgen_ty_8 = 8 ; pub const RC_FORMAT_FLOAT3 : _bindgen_ty_8 = 9 ; pub const RC_FORMAT_FLOAT4 : _bindgen_ty_8 = 10 ; pub const RC_FORMAT_FLOAT5 : _bindgen_ty_8 = 11 ; pub const RC_FORMAT_FLOAT6 : _bindgen_ty_8 = 12 ; pub const RC_FORMAT_FIXED1 : _bindgen_ty_8 = 13 ; pub const RC_FORMAT_FIXED2 : _bindgen_ty_8 = 14 ; pub const RC_FORMAT_FIXED3 : _bindgen_ty_8 = 15 ; pub const RC_FORMAT_TENS : _bindgen_ty_8 = 16 ; pub const RC_FORMAT_HUNDREDS : _bindgen_ty_8 = 17 ; pub const RC_FORMAT_THOUSANDS : _bindgen_ty_8 = 18 ; pub const RC_FORMAT_UNSIGNED_VALUE : _bindgen_ty_8 = 19 ; # [doc = "\\\n| Value formatting                                                            |\n\\"] pub type _bindgen_ty_8 = :: core :: ffi :: c_uint ; extern "C" { pub fn rc_parse_format (format_str : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_format_value (buffer : * mut :: core :: ffi :: c_char , size : :: core :: ffi :: c_int , value : i32 , format : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_lookup_item_t { pub first : u32 , pub last : u32 , pub left : * mut rc_richpresence_lookup_item_t , pub right : * mut rc_richpresence_lookup_item_t , pub label : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_lookup_item_t"] [:: core :: mem :: size_of :: < rc_richpresence_lookup_item_t > () - 32usize] ; ["Alignment of rc_richpresence_lookup_item_t"] [:: core :: mem :: align_of :: < rc_richpresence_lookup_item_t > () - 8usize] ; ["Offset of field: rc_richpresence_lookup_item_t::first"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , first) - 0usize] ; ["Offset of field: rc_richpresence_lookup_item_t::last"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , last) - 4usize] ; ["Offset of field: rc_richpresence_lookup_item_t::left"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , left) - 8usize] ; ["Offset of field: rc_richpresence_lookup_item_t::right"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , right) - 16usize] ; ["Offset of field: rc_richpresence_lookup_item_t::label"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , label) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_lookup_t { pub root : * mut rc_richpresence_lookup_item_t , pub next : * mut rc_richpresence_lookup_t , pub name : * const :: core :: ffi :: c_char , pub default_label : * const :: core :: ffi :: c_char , pub format : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_lookup_t"] [:: core :: mem :: size_of :: < rc_richpresence_lookup_t > () - 40usize] ; ["Alignment of rc_richpresence_lookup_t"] [:: core :: mem :: align_of :: < rc_richpresence_lookup_t > () - 8usize] ; ["Offset of field: rc_richpresence_lookup_t::root"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , root) - 0usize] ; ["Offset of field: rc_richpresence_lookup_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , next) - 8usize] ; ["Offset of field: rc_richpresence_lookup_t::name"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , name) - 16usize] ; ["Offset of field: rc_richpresence_lookup_t::default_label"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , default_label) - 24usize] ; ["Offset of field: rc_richpresence_lookup_t::format"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , format) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_display_part_t { pub next : * mut rc_richpresence_display_part_t , pub text : * const :: core :: ffi :: c_char , pub lookup : * mut rc_richpresence_lookup_t , pub value : * mut rc_memref_value_t , pub display_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_display_part_t"] [:: core :: mem :: size_of :: < rc_richpresence_display_part_t > () - 40usize] ; ["Alignment of rc_richpresence_display_part_t"] [:: core :: mem :: align_of :: < rc_richpresence_display_part_t > () - 8usize] ; ["Offset of field: rc_richpresence_display_part_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , next) - 0usize] ; ["Offset of field: rc_richpresence_display_part_t::text"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , text) - 8usize] ; ["Offset of field: rc_richpresence_display_part_t::lookup"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , lookup) - 16usize] ; ["Offset of field: rc_richpresence_display_part_t::value"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , value) - 24usize] ; ["Offset of field: rc_richpresence_display_part_t::display_type"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , display_type) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_display_t { pub trigger : rc_trigger_t , pub next : * mut rc_richpresence_display_t , pub display : * mut rc_richpresence_display_part_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_display_t"] [:: core :: mem :: size_of :: < rc_richpresence_display_t > () - 56usize] ; ["Alignment of rc_richpresence_display_t"] [:: core :: mem :: align_of :: < rc_richpresence_display_t > () - 8usize] ; ["Offset of field: rc_richpresence_display_t::trigger"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , trigger) - 0usize] ; ["Offset of field: rc_richpresence_display_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , next) - 40usize] ; ["Offset of field: rc_richpresence_display_t::display"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , display) - 48usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_t { pub first_display : * mut rc_richpresence_display_t , pub first_lookup : * mut rc_richpresence_lookup_t , pub memrefs : * mut rc_memref_t , pub variables : * mut rc_value_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_t"] [:: core :: mem :: size_of :: < rc_richpresence_t > () - 32usize] ; ["Alignment of rc_richpresence_t"] [:: core :: mem :: align_of :: < rc_richpresence_t > () - 8usize] ; ["Offset of field: rc_richpresence_t::first_display"] [:: core :: mem :: offset_of ! (rc_richpresence_t , first_display) - 0usize] ; ["Offset of field: rc_richpresence_t::first_lookup"] [:: core :: mem :: offset_of ! (rc_richpresence_t , first_lookup) - 8usize] ; ["Offset of field: rc_richpresence_t::memrefs"] [:: core :: mem :: offset_of ! (rc_richpresence_t , memrefs) - 16usize] ; ["Offset of field: rc_richpresence_t::variables"] [:: core :: mem :: offset_of ! (rc_richpresence_t , variables) - 24usize] ; } ; extern "C" { pub fn rc_richpresence_size (script : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_richpresence_size_lines (script : * const :: core :: ffi :: c_char , lines_read : * mut :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_richpresence (buffer : * mut :: core :: ffi :: c_void , script : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_richpresence_t ; } extern "C" { pub fn rc_evaluate_richpresence (richpresence : * mut rc_richpresence_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_update_richpresence (richpresence : * mut rc_richpresence_t , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) ; } extern "C" { pub fn rc_get_richpresence_display_string (richpresence : * mut rc_richpresence_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_richpresence (self_ : * mut rc_richpresence_t) ; } # [doc = " A block of memory for variable length data (like strings and arrays)."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_buffer_chunk_t { pub write : * mut u8 , pub end : * mut u8 , pub start : * mut u8 , pub next : * mut rc_buffer_chunk_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_buffer_chunk_t"] [:: core :: mem :: size_of :: < rc_buffer_chunk_t > () - 32usize] ; ["Alignment of rc_buffer_chunk_t"] [:: core :: mem :: align_of :: < rc_buffer_chunk_t > () - 8usize] ; ["Offset of field: rc_buffer_chunk_t::write"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , write) - 0usize] ; ["Offset of field: rc_buffer_chunk_t::end"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , end) - 8usize] ; ["Offset of field: rc_buffer_chunk_t::start"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , start) - 16usize] ; ["Offset of field: rc_buffer_chunk_t::next"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , next) - 24usize] ; } ; # [doc = " A preallocated block of memory for variable length data (like strings and arrays)."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_buffer_t { pub chunk : rc_buffer_chunk_t , pub data : [u8 ; 256usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_buffer_t"] [:: core :: mem :: size_of :: < rc_buffer_t > () - 288usize] ; ["Alignment of rc_buffer_t"] [:: core :: mem :: align_of :: < rc_buffer_t > () - 8usize] ; ["Offset of field: rc_buffer_t::chunk"] [:: core :: mem :: offset_of ! (rc_buffer_t , chunk) - 0usize] ; ["Offset of field: rc_buffer_t::data"] [:: core :: mem :: offset_of ! (rc_buffer_t , data) - 32usize] ; } ; extern "C" { pub fn rc_buffer_init (buffer : * mut rc_buffer_t) ; } extern "C" { pub fn rc_buffer_destroy (buffer : * mut rc_buffer_t) ; } extern "C" { pub fn rc_buffer_reserve (buffer : * mut rc_buffer_t , amount : usize) -> * mut u8 ; } extern "C" { pub fn rc_buffer_consume (buffer : * mut rc_buffer_t , start : * const u8 , end : * mut u8) ; } extern "C" { pub fn rc_buffer_alloc (buffer : * mut rc_buffer_t , amount : usize) -> * mut :: core :: ffi :: c_void ; } extern "C" { pub fn rc_buffer_strcpy (buffer : * mut rc_buffer_t , src : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn rc_buffer_strncpy (buffer : * mut rc_buffer_t , src : * const :: core :: ffi :: c_char , len : usize) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn rc_djb2 (input : * const :: core :: ffi :: c_char) -> u32 ; } extern "C" { pub fn rc_format_md5 (checksum : * mut :: core :: ffi :: c_char , digest : * const u8) ; } # [doc = " A constructed request to send to the retroachievements server."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_request_t { pub url : * const :: core :: ffi :: c_char , pub post_data : * const :: core :: ffi :: c_char , pub content_type : * const :: core :: ffi :: c_char , pub buffer : rc_buffer_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_request_t"] [:: core :: mem :: size_of :: < rc_api_request_t > () - 312usize] ; ["Alignment of rc_api_request_t"] [:: core :: mem :: align_of :: < rc_api_request_t > () - 8usize] ; ["Offset of field: rc_api_request_t::url"] [:: core :: mem :: offset_of ! (rc_api_request_t , url) - 0usize] ; ["Offset of field: rc_api_request_t::post_data"] [:: core :: mem :: offset_of ! (rc_api_request_t , post_data) - 8usize] ; ["Offset of field: rc_api_request_t::content_type"] [:: core :: mem :: offset_of ! (rc_api_request_t , content_type) - 16usize] ; ["Offset of field: rc_api_request_t::buffer"] [:: core :: mem :: offset_of ! (rc_api_request_t , buffer) - 24usize] ; } ; # [doc = " Common attributes for all server responses."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_response_t { pub succeeded : :: core :: ffi :: c_int , pub error_message : * const :: core :: ffi :: c_char , pub error_code : * const :: core :: ffi :: c_char , pub buffer : rc_buffer_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_response_t"] [:: core :: mem :: size_of :: < rc_api_response_t > () - 312usize] ; ["Alignment of rc_api_response_t"] [:: core :: mem :: align_of :: < rc_api_response_t > () - 8usize] ; ["Offset of field: rc_api_response_t::succeeded"] [:: core :: mem :: offset_of ! (rc_api_response_t , succeeded) - 0usize] ; ["Offset of field: rc_api_response_t::error_message"] [:: core :: mem :: offset_of ! (rc_api_response_t , error_message) - 8usize] ; ["Offset of field: rc_api_response_t::error_code"] [:: core :: mem :: offset_of ! (rc_api_response_t , error_code) - 16usize] ; ["Offset of field: rc_api_response_t::buffer"] [:: core :: mem :: offset_of ! (rc_api_response_t , buffer) - 24usize] ; } ; extern "C" { pub fn rc_api_destroy_request (request : * mut rc_api_request_t) ; } extern "C" { pub fn rc_api_set_host (hostname : * const :: core :: ffi :: c_char) ; } extern "C" { pub fn rc_api_set_image_host (hostname : * const :: core :: ffi :: c_char) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_server_response_t { pub body : * const :: core :: ffi :: c_char , pub body_length : usize , pub http_status_code : :: core :: ffi :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_server_response_t"] [:: core :: mem :: size_of :: < rc_api_server_response_t > () - 24usize] ; ["Alignment of rc_api_server_response_t"] [:: core :: mem :: align_of :: < rc_api_server_response_t > () - 8usize] ; ["Offset of field: rc_api_server_response_t::body"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , body) - 0usize] ; ["Offset of field: rc_api_server_response_t::body_length"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , body_length) - 8usize] ; ["Offset of field: rc_api_server_response_t::http_status_code"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , http_status_code) - 16usize] ; } ; pub const RC_API_SERVER_RESPONSE_CLIENT_ERROR : _bindgen_ty_9 = - 1 ; pub const RC_API_SERVER_RESPONSE_RETRYABLE_CLIENT_ERROR : _bindgen_ty_9 = - 2 ; pub type _bindgen_ty_9 = :: core :: ffi :: c_int ; pub type clock_t = __clock_t ; pub type time_t = __time_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct tm { pub tm_sec : :: core :: ffi :: c_int , pub tm_min : :: core :: ffi :: c_int , pub tm_hour : :: core :: ffi :: c_int , pub tm_mday : :: core :: ffi :: c_int , pub tm_mon : :: core :: ffi :: c_int , pub tm_year : :: core :: ffi :: c_int , pub tm_wday : :: core :: ffi :: c_int , pub tm_yday : :: core :: ffi :: c_int , pub tm_isdst : :: core :: ffi :: c_int , pub tm_gmtoff : :: core :: ffi :: c_long , pub tm_zone : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of tm"] [:: core :: mem :: size_of :: < tm > () - 56usize] ; ["Alignment of tm"] [:: core :: mem :: align_of :: < tm > () - 8usize] ; ["Offset of field: tm::tm_sec"] [:: core :: mem :: offset_of ! (tm , tm_sec) - 0usize] ; ["Offset of field: tm::tm_min"] [:: core :: mem :: offset_of ! (tm , tm_min) - 4usize] ; ["Offset of field: tm::tm_hour"] [:: core :: mem :: offset_of ! (tm , tm_hour) - 8usize] ; ["Offset of field: tm::tm_mday"] [:: core :: mem :: offset_of ! (tm , tm_mday) - 12usize] ; ["Offset of field: tm::tm_mon"] [:: core :: mem :: offset_of ! (tm , tm_mon) - 16usize] ; ["Offset of field: tm::tm_year"] [:: core :: mem :: offset_of ! (tm , tm_year) - 20usize] ; ["Offset of field: tm::tm_wday"] [:: core :: mem :: offset_of ! (tm , tm_wday) - 24usize] ; ["Offset of field: tm::tm_yday"] [:: core :: mem :: offset_of ! (tm , tm_yday) - 28usize] ; ["Offset of field: tm::tm_isdst"] [:: core :: mem :: offset_of ! (tm , tm_isdst) - 32usize] ; ["Offset of field: tm::tm_gmtoff"] [:: core :: mem :: offset_of ! (tm , tm_gmtoff) - 40usize] ; ["Offset of field: tm::tm_zone"] [:: core :: mem :: offset_of ! (tm , tm_zone) - 48usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct timespec { pub tv_sec : __time_t , pub tv_nsec : __syscall_slong_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of timespec"] [:: core :: mem :: size_of :: < timespec > () - 16usize] ; ["Alignment of timespec"] [:: core :: mem :: align_of :: < timespec > () - 8usize] ; ["Offset of field: timespec::tv_sec"] [:: core :: mem :: offset_of ! (timespec , tv_sec) - 0usize] ; ["Offset of field: timespec::tv_nsec"] [:: core :: mem :: offset_of ! (timespec , tv_nsec) - 8usize] ; } ; pub type clockid_t = __clockid_t ; pub type timer_t = __timer_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct itimerspec { pub it_interval : timespec , pub it_value : timespec , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of itimerspec"] [:: core :: mem :: size_of :: < itimerspec > () - 32usize] ; ["Alignment of itimerspec"] [:: core :: mem :: align_of :: < itimerspec > () - 8usize] ; ["Offset of field: itimerspec::it_interval"] [:: core :: mem :: offset_of ! (itimerspec , it_interval) - 0usize] ; ["Offset of field: itimerspec::it_value"] [:: core :: mem :: offset_of ! (itimerspec , it_value) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct sigevent { _unused : [u8 ; 0] , } pub type pid_t = __pid_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __locale_struct { pub __locales : [* mut __locale_data ; 13usize] , pub __ctype_b : * const :: core :: ffi :: c_ushort , pub __ctype_tolower : * const :: core :: ffi :: c_int , pub __ctype_toupper : * const :: core :: ffi :: c_int , pub __names : [* const :: core :: ffi :: c_char ; 13usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __locale_struct"] [:: core :: mem :: size_of :: < __locale_struct > () - 232usize] ; ["Alignment of __locale_struct"] [:: core :: mem :: align_of :: < __locale_struct > () - 8usize] ; ["Offset of field: __locale_struct::__locales"] [:: core :: mem :: offset_of ! (__locale_struct , __locales) - 0usize] ; ["Offset of field: __locale_struct::__ctype_b"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_b) - 104usize] ; ["Offset of field: __locale_struct::__ctype_tolower"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_tolower) - 112usize] ; ["Offset of field: __locale_struct::__ctype_toupper"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_toupper) - 120usize] ; ["Offset of field: __locale_struct::__names"] [:: core :: mem :: offset_of ! (__locale_struct , __names) - 128usize] ; } ; pub type __locale_t = * mut __locale_struct ; pub type locale_t = __locale_t ; extern "C" { pub fn clock () -> clock_t ; } extern "C" { pub fn time (__timer : * mut time_t) -> time_t ; } extern "C" { pub fn difftime (__time1 : time_t , __time0 : time_t) -> f64 ; } extern "C" { pub fn mktime (__tp : * mut tm) -> time_t ; } extern "C" { pub fn strftime (__s : * mut :: core :: ffi :: c_char , __maxsize : usize , __format : * const :: core :: ffi :: c_char , __tp : * const tm) -> usize ; } extern "C" { pub fn strftime_l (__s : * mut :: core :: ffi :: c_char , __maxsize : usize , __format : * const :: core :: ffi :: c_char , __tp : * const tm , __loc : locale_t) -> usize ; } extern "C" { pub fn gmtime (__timer : * const time_t) -> * mut tm ; } extern "C" { pub fn localtime (__timer : * const time_t) -> * mut tm ; } extern "C" { pub fn gmtime_r (__timer : * const time_t , __tp : * mut tm) -> * mut tm ; } extern "C" { pub fn localtime_r (__timer : * const time_t , __tp : * mut tm) -> * mut tm ; } extern "C" { pub fn asctime (__tp : * const tm) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn ctime (__timer : * const time_t) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn asctime_r (__tp : * const tm , __buf : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn ctime_r (__timer : * const time_t , __buf : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub static mut __tzname : [* mut :: core :: ffi :: c_char ; 2usize] ; } extern "C" { pub static mut __daylight : :: core :: ffi :: c_int ; } extern "C" { pub static mut __timezone : :: core :: ffi :: c_long ; } extern "C" { pub static mut tzname : [* mut :: core :: ffi :: c_char ; 2usize] ; } extern "C" { pub fn tzset () ; } extern "C" { pub static mut daylight : :: core :: ffi :: c_int ; } extern "C" { pub static mut timezone : :: core :: ffi :: c_long ; } extern "C" { pub fn timegm (__tp : * mut tm) -> time_t ; } extern "C" { pub fn timelocal (__tp : * mut tm) -> time_t ; } extern "C" { pub fn dysize (__year : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn nanosleep (__requested_time : * const timespec , __remaining : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_getres (__clock_id : clockid_t , __res : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_gettime (__clock_id : clockid_t , __tp : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_settime (__clock_id : clockid_t , __tp : * const timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_nanosleep (__clock_id : clockid_t , __flags : :: core :: ffi :: c_int , __req : * const timespec , __rem : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_getcpuclockid (__pid : pid_t , __clock_id : * mut clockid_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_create (__clock_id : clockid_t , __evp : * mut sigevent , __timerid : * mut timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_delete (__timerid : timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_settime (__timerid : timer_t , __flags : :: core :: ffi :: c_int , __value : * const itimerspec , __ovalue : * mut itimerspec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_gettime (__timerid : timer_t , __value : * mut itimerspec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_getoverrun (__timerid : timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timespec_get (__ts : * mut timespec , __base : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } # [doc = " API parameters for a login request.\n If both password and api_token are provided, api_token will be ignored."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_login_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub password : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_login_request_t"] [:: core :: mem :: size_of :: < rc_api_login_request_t > () - 24usize] ; ["Alignment of rc_api_login_request_t"] [:: core :: mem :: align_of :: < rc_api_login_request_t > () - 8usize] ; ["Offset of field: rc_api_login_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , username) - 0usize] ; ["Offset of field: rc_api_login_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_login_request_t::password"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , password) - 16usize] ; } ; # [doc = " Response data for a login request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_login_response_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub score : u32 , pub score_softcore : u32 , pub num_unread_messages : u32 , pub display_name : * const :: core :: ffi :: c_char , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_login_response_t"] [:: core :: mem :: size_of :: < rc_api_login_response_t > () - 352usize] ; ["Alignment of rc_api_login_response_t"] [:: core :: mem :: align_of :: < rc_api_login_response_t > () - 8usize] ; ["Offset of field: rc_api_login_response_t::username"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , username) - 0usize] ; ["Offset of field: rc_api_login_response_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , api_token) - 8usize] ; ["Offset of field: rc_api_login_response_t::score"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , score) - 16usize] ; ["Offset of field: rc_api_login_response_t::score_softcore"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , score_softcore) - 20usize] ; ["Offset of field: rc_api_login_response_t::num_unread_messages"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , num_unread_messages) - 24usize] ; ["Offset of field: rc_api_login_response_t::display_name"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , display_name) - 32usize] ; ["Offset of field: rc_api_login_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , response) - 40usize] ; } ; extern "C" { pub fn rc_api_init_login_request (request : * mut rc_api_request_t , api_params : * const rc_api_login_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_login_response (response : * mut rc_api_login_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_login_server_response (response : * mut rc_api_login_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_login_response (response : * mut rc_api_login_response_t) ; } # [doc = " API parameters for a start session request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_start_session_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub game_hash : * const :: core :: ffi :: c_char , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_start_session_request_t"] [:: core :: mem :: size_of :: < rc_api_start_session_request_t > () - 40usize] ; ["Alignment of rc_api_start_session_request_t"] [:: core :: mem :: align_of :: < rc_api_start_session_request_t > () - 8usize] ; ["Offset of field: rc_api_start_session_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , username) - 0usize] ; ["Offset of field: rc_api_start_session_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_start_session_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_start_session_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_start_session_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , hardcore) - 32usize] ; } ; # [doc = " Response data for an achievement unlock."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_unlock_entry_t { pub achievement_id : u32 , pub when : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_unlock_entry_t"] [:: core :: mem :: size_of :: < rc_api_unlock_entry_t > () - 16usize] ; ["Alignment of rc_api_unlock_entry_t"] [:: core :: mem :: align_of :: < rc_api_unlock_entry_t > () - 8usize] ; ["Offset of field: rc_api_unlock_entry_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_unlock_entry_t , achievement_id) - 0usize] ; ["Offset of field: rc_api_unlock_entry_t::when"] [:: core :: mem :: offset_of ! (rc_api_unlock_entry_t , when) - 8usize] ; } ; # [doc = " Response data for a start session request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_start_session_response_t { pub hardcore_unlocks : * mut rc_api_unlock_entry_t , pub unlocks : * mut rc_api_unlock_entry_t , pub num_hardcore_unlocks : u32 , pub num_unlocks : u32 , pub server_now : time_t , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_start_session_response_t"] [:: core :: mem :: size_of :: < rc_api_start_session_response_t > () - 344usize] ; ["Alignment of rc_api_start_session_response_t"] [:: core :: mem :: align_of :: < rc_api_start_session_response_t > () - 8usize] ; ["Offset of field: rc_api_start_session_response_t::hardcore_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , hardcore_unlocks) - 0usize] ; ["Offset of field: rc_api_start_session_response_t::unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , unlocks) - 8usize] ; ["Offset of field: rc_api_start_session_response_t::num_hardcore_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , num_hardcore_unlocks) - 16usize] ; ["Offset of field: rc_api_start_session_response_t::num_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , num_unlocks) - 20usize] ; ["Offset of field: rc_api_start_session_response_t::server_now"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , server_now) - 24usize] ; ["Offset of field: rc_api_start_session_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_start_session_request (request : * mut rc_api_request_t , api_params : * const rc_api_start_session_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_start_session_response (response : * mut rc_api_start_session_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_start_session_server_response (response : * mut rc_api_start_session_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_start_session_response (response : * mut rc_api_start_session_response_t) ; } # [doc = " API parameters for a fetch user unlocks request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_user_unlocks_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_user_unlocks_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_user_unlocks_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_user_unlocks_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_user_unlocks_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , hardcore) - 20usize] ; } ; # [doc = " Response data for a fetch user unlocks request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_user_unlocks_response_t { pub achievement_ids : * mut u32 , pub num_achievement_ids : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_user_unlocks_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_user_unlocks_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_user_unlocks_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_user_unlocks_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::achievement_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , achievement_ids) - 0usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::num_achievement_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , num_achievement_ids) - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_user_unlocks_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_user_unlocks_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_user_unlocks_response (response : * mut rc_api_fetch_user_unlocks_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_user_unlocks_server_response (response : * mut rc_api_fetch_user_unlocks_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_user_unlocks_response (response : * mut rc_api_fetch_user_unlocks_response_t) ; } # [doc = " API parameters for a fetch code notes request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_code_notes_request_t { pub game_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_code_notes_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_code_notes_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_code_notes_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_code_notes_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_code_notes_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_request_t , game_id) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_code_note_t { pub address : u32 , pub author : * const :: core :: ffi :: c_char , pub note : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_code_note_t"] [:: core :: mem :: size_of :: < rc_api_code_note_t > () - 24usize] ; ["Alignment of rc_api_code_note_t"] [:: core :: mem :: align_of :: < rc_api_code_note_t > () - 8usize] ; ["Offset of field: rc_api_code_note_t::address"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , address) - 0usize] ; ["Offset of field: rc_api_code_note_t::author"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , author) - 8usize] ; ["Offset of field: rc_api_code_note_t::note"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , note) - 16usize] ; } ; # [doc = " Response data for a fetch code notes request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_code_notes_response_t { pub notes : * mut rc_api_code_note_t , pub num_notes : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_code_notes_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_code_notes_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_code_notes_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_code_notes_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::notes"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , notes) - 0usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::num_notes"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , num_notes) - 8usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_code_notes_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_code_notes_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_code_notes_response (response : * mut rc_api_fetch_code_notes_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_code_notes_server_response (response : * mut rc_api_fetch_code_notes_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_code_notes_response (response : * mut rc_api_fetch_code_notes_response_t) ; } # [doc = " API parameters for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_code_note_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub address : u32 , pub note : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_code_note_request_t"] [:: core :: mem :: size_of :: < rc_api_update_code_note_request_t > () - 32usize] ; ["Alignment of rc_api_update_code_note_request_t"] [:: core :: mem :: align_of :: < rc_api_update_code_note_request_t > () - 8usize] ; ["Offset of field: rc_api_update_code_note_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_code_note_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_code_note_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_update_code_note_request_t::address"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , address) - 20usize] ; ["Offset of field: rc_api_update_code_note_request_t::note"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , note) - 24usize] ; } ; # [doc = " Response data for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_code_note_response_t { pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_code_note_response_t"] [:: core :: mem :: size_of :: < rc_api_update_code_note_response_t > () - 312usize] ; ["Alignment of rc_api_update_code_note_response_t"] [:: core :: mem :: align_of :: < rc_api_update_code_note_response_t > () - 8usize] ; ["Offset of field: rc_api_update_code_note_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_response_t , response) - 0usize] ; } ; extern "C" { pub fn rc_api_init_update_code_note_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_code_note_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_code_note_response (response : * mut rc_api_update_code_note_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_code_note_server_response (response : * mut rc_api_update_code_note_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_code_note_response (response : * mut rc_api_update_code_note_response_t) ; } # [doc = " API parameters for an update achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_achievement_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub game_id : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub badge : * const :: core :: ffi :: c_char , pub trigger : * const :: core :: ffi :: c_char , pub points : u32 , pub category : u32 , pub type_ : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_achievement_request_t"] [:: core :: mem :: size_of :: < rc_api_update_achievement_request_t > () - 72usize] ; ["Alignment of rc_api_update_achievement_request_t"] [:: core :: mem :: align_of :: < rc_api_update_achievement_request_t > () - 8usize] ; ["Offset of field: rc_api_update_achievement_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_achievement_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_achievement_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_update_achievement_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , game_id) - 20usize] ; ["Offset of field: rc_api_update_achievement_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , title) - 24usize] ; ["Offset of field: rc_api_update_achievement_request_t::description"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , description) - 32usize] ; ["Offset of field: rc_api_update_achievement_request_t::badge"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , badge) - 40usize] ; ["Offset of field: rc_api_update_achievement_request_t::trigger"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , trigger) - 48usize] ; ["Offset of field: rc_api_update_achievement_request_t::points"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , points) - 56usize] ; ["Offset of field: rc_api_update_achievement_request_t::category"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , category) - 60usize] ; ["Offset of field: rc_api_update_achievement_request_t::type_"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , type_) - 64usize] ; } ; # [doc = " Response data for an update achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_achievement_response_t { pub achievement_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_achievement_response_t"] [:: core :: mem :: size_of :: < rc_api_update_achievement_response_t > () - 320usize] ; ["Alignment of rc_api_update_achievement_response_t"] [:: core :: mem :: align_of :: < rc_api_update_achievement_response_t > () - 8usize] ; ["Offset of field: rc_api_update_achievement_response_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_response_t , achievement_id) - 0usize] ; ["Offset of field: rc_api_update_achievement_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_update_achievement_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_achievement_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_achievement_response (response : * mut rc_api_update_achievement_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_achievement_server_response (response : * mut rc_api_update_achievement_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_achievement_response (response : * mut rc_api_update_achievement_response_t) ; } # [doc = " API parameters for an update leaderboard request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_leaderboard_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub leaderboard_id : u32 , pub game_id : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub start_trigger : * const :: core :: ffi :: c_char , pub submit_trigger : * const :: core :: ffi :: c_char , pub cancel_trigger : * const :: core :: ffi :: c_char , pub value_definition : * const :: core :: ffi :: c_char , pub format : * const :: core :: ffi :: c_char , pub lower_is_better : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_leaderboard_request_t"] [:: core :: mem :: size_of :: < rc_api_update_leaderboard_request_t > () - 88usize] ; ["Alignment of rc_api_update_leaderboard_request_t"] [:: core :: mem :: align_of :: < rc_api_update_leaderboard_request_t > () - 8usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , leaderboard_id) - 16usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , game_id) - 20usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , title) - 24usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::description"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , description) - 32usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::start_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , start_trigger) - 40usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::submit_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , submit_trigger) - 48usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::cancel_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , cancel_trigger) - 56usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::value_definition"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , value_definition) - 64usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::format"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , format) - 72usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , lower_is_better) - 80usize] ; } ; # [doc = " Response data for an update leaderboard request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_leaderboard_response_t { pub leaderboard_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_leaderboard_response_t"] [:: core :: mem :: size_of :: < rc_api_update_leaderboard_response_t > () - 320usize] ; ["Alignment of rc_api_update_leaderboard_response_t"] [:: core :: mem :: align_of :: < rc_api_update_leaderboard_response_t > () - 8usize] ; ["Offset of field: rc_api_update_leaderboard_response_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_response_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_api_update_leaderboard_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_update_leaderboard_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_leaderboard_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_leaderboard_response (response : * mut rc_api_update_leaderboard_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_leaderboard_server_response (response : * mut rc_api_update_leaderboard_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_leaderboard_response (response : * mut rc_api_update_leaderboard_response_t) ; } # [doc = " API parameters for a fetch badge range request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_badge_range_request_t { pub unused : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_badge_range_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_badge_range_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_badge_range_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_badge_range_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_badge_range_request_t::unused"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_request_t , unused) - 0usize] ; } ; # [doc = " Response data for a fetch badge range request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_badge_range_response_t { pub first_badge_id : u32 , pub next_badge_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_badge_range_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_badge_range_response_t > () - 320usize] ; ["Alignment of rc_api_fetch_badge_range_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_badge_range_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::first_badge_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , first_badge_id) - 0usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::next_badge_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , next_badge_id) - 4usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_fetch_badge_range_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_badge_range_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_badge_range_response (response : * mut rc_api_fetch_badge_range_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_badge_range_server_response (response : * mut rc_api_fetch_badge_range_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_badge_range_response (response : * mut rc_api_fetch_badge_range_response_t) ; } # [doc = " API parameters for an add game hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_add_game_hash_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub hash : * const :: core :: ffi :: c_char , pub hash_description : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_add_game_hash_request_t"] [:: core :: mem :: size_of :: < rc_api_add_game_hash_request_t > () - 48usize] ; ["Alignment of rc_api_add_game_hash_request_t"] [:: core :: mem :: align_of :: < rc_api_add_game_hash_request_t > () - 8usize] ; ["Offset of field: rc_api_add_game_hash_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , username) - 0usize] ; ["Offset of field: rc_api_add_game_hash_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_add_game_hash_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_add_game_hash_request_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , console_id) - 20usize] ; ["Offset of field: rc_api_add_game_hash_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , title) - 24usize] ; ["Offset of field: rc_api_add_game_hash_request_t::hash"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , hash) - 32usize] ; ["Offset of field: rc_api_add_game_hash_request_t::hash_description"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , hash_description) - 40usize] ; } ; # [doc = " Response data for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_add_game_hash_response_t { pub game_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_add_game_hash_response_t"] [:: core :: mem :: size_of :: < rc_api_add_game_hash_response_t > () - 320usize] ; ["Alignment of rc_api_add_game_hash_response_t"] [:: core :: mem :: align_of :: < rc_api_add_game_hash_response_t > () - 8usize] ; ["Offset of field: rc_api_add_game_hash_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_response_t , game_id) - 0usize] ; ["Offset of field: rc_api_add_game_hash_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_add_game_hash_request (request : * mut rc_api_request_t , api_params : * const rc_api_add_game_hash_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_add_game_hash_response (response : * mut rc_api_add_game_hash_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_add_game_hash_server_response (response : * mut rc_api_add_game_hash_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_add_game_hash_response (response : * mut rc_api_add_game_hash_response_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_t { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_menu_item_t { pub label : * const :: core :: ffi :: c_char , pub id : u32 , pub checked : u8 , pub enabled : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_menu_item_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_menu_item_t > () - 16usize] ; ["Alignment of rc_client_raintegration_menu_item_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_menu_item_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::label"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , label) - 0usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::id"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , id) - 8usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::checked"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , checked) - 12usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::enabled"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , enabled) - 13usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_menu_t { pub items : * mut rc_client_raintegration_menu_item_t , pub num_items : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_menu_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_menu_t > () - 16usize] ; ["Alignment of rc_client_raintegration_menu_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_menu_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_menu_t::items"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_t , items) - 0usize] ; ["Offset of field: rc_client_raintegration_menu_t::num_items"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_t , num_items) - 8usize] ; } ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_NONE : _bindgen_ty_10 = 0 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_PUBLISHED : _bindgen_ty_10 = 1 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_LOCAL : _bindgen_ty_10 = 2 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_MODIFIED : _bindgen_ty_10 = 3 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_INSECURE : _bindgen_ty_10 = 4 ; pub type _bindgen_ty_10 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_RAINTEGRATION_EVENT_TYPE_NONE : _bindgen_ty_11 = 0 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_MENUITEM_CHECKED_CHANGED : _bindgen_ty_11 = 1 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_HARDCORE_CHANGED : _bindgen_ty_11 = 2 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_PAUSE : _bindgen_ty_11 = 3 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_MENU_CHANGED : _bindgen_ty_11 = 4 ; pub type _bindgen_ty_11 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_event_t { pub type_ : u32 , pub menu_item : * const rc_client_raintegration_menu_item_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_event_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_event_t > () - 16usize] ; ["Alignment of rc_client_raintegration_event_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_event_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_event_t::type_"] [:: core :: mem :: offset_of ! (rc_client_raintegration_event_t , type_) - 0usize] ; ["Offset of field: rc_client_raintegration_event_t::menu_item"] [:: core :: mem :: offset_of ! (rc_client_raintegration_event_t , menu_item) - 8usize] ; } ; pub type rc_client_raintegration_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (event : * const rc_client_raintegration_event_t , client : * mut rc_client_t) > ; pub type rc_client_raintegration_write_memory_func_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , buffer : * mut u8 , num_bytes : u32 , client : * mut rc_client_t) > ; pub type rc_client_raintegration_get_game_name_func_t = :: core :: option :: Option < unsafe extern "C" fn (buffer : * mut :: core :: ffi :: c_char , buffer_size : u32 , client : * mut rc_client_t) > ; # [doc = " API parameters for a fetch achievement info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_achievement_info_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub first_entry : u32 , pub count : u32 , pub friends_only : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_achievement_info_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_achievement_info_request_t > () - 32usize] ; ["Alignment of rc_api_fetch_achievement_info_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_achievement_info_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::first_entry"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , first_entry) - 20usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::count"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , count) - 24usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::friends_only"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , friends_only) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_achievement_awarded_entry_t { pub username : * const :: core :: ffi :: c_char , pub awarded : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_achievement_awarded_entry_t"] [:: core :: mem :: size_of :: < rc_api_achievement_awarded_entry_t > () - 16usize] ; ["Alignment of rc_api_achievement_awarded_entry_t"] [:: core :: mem :: align_of :: < rc_api_achievement_awarded_entry_t > () - 8usize] ; ["Offset of field: rc_api_achievement_awarded_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_achievement_awarded_entry_t , username) - 0usize] ; ["Offset of field: rc_api_achievement_awarded_entry_t::awarded"] [:: core :: mem :: offset_of ! (rc_api_achievement_awarded_entry_t , awarded) - 8usize] ; } ; # [doc = " Response data for a fetch achievement info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_achievement_info_response_t { pub id : u32 , pub game_id : u32 , pub num_awarded : u32 , pub num_players : u32 , pub recently_awarded : * mut rc_api_achievement_awarded_entry_t , pub num_recently_awarded : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_achievement_info_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_achievement_info_response_t > () - 344usize] ; ["Alignment of rc_api_fetch_achievement_info_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_achievement_info_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , game_id) - 4usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_awarded) - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_players"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_players) - 12usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::recently_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , recently_awarded) - 16usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_recently_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_recently_awarded) - 24usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_fetch_achievement_info_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_achievement_info_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_achievement_info_response (response : * mut rc_api_fetch_achievement_info_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_achievement_info_server_response (response : * mut rc_api_fetch_achievement_info_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_achievement_info_response (response : * mut rc_api_fetch_achievement_info_response_t) ; } # [doc = " API parameters for a fetch leaderboard info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_leaderboard_info_request_t { pub leaderboard_id : u32 , pub count : u32 , pub first_entry : u32 , pub username : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_leaderboard_info_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_leaderboard_info_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_leaderboard_info_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_leaderboard_info_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::count"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , count) - 4usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::first_entry"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , first_entry) - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , username) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_lboard_info_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub index : u32 , pub score : i32 , pub submitted : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_lboard_info_entry_t"] [:: core :: mem :: size_of :: < rc_api_lboard_info_entry_t > () - 32usize] ; ["Alignment of rc_api_lboard_info_entry_t"] [:: core :: mem :: align_of :: < rc_api_lboard_info_entry_t > () - 8usize] ; ["Offset of field: rc_api_lboard_info_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , username) - 0usize] ; ["Offset of field: rc_api_lboard_info_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , rank) - 8usize] ; ["Offset of field: rc_api_lboard_info_entry_t::index"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , index) - 12usize] ; ["Offset of field: rc_api_lboard_info_entry_t::score"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , score) - 16usize] ; ["Offset of field: rc_api_lboard_info_entry_t::submitted"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , submitted) - 24usize] ; } ; # [doc = " Response data for a fetch leaderboard info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_leaderboard_info_response_t { pub id : u32 , pub format : :: core :: ffi :: c_int , pub lower_is_better : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub game_id : u32 , pub author : * const :: core :: ffi :: c_char , pub created : time_t , pub updated : time_t , pub entries : * mut rc_api_lboard_info_entry_t , pub num_entries : u32 , pub total_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_leaderboard_info_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_leaderboard_info_response_t > () - 400usize] ; ["Alignment of rc_api_fetch_leaderboard_info_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_leaderboard_info_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::format"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , format) - 4usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , lower_is_better) - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::title"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , title) - 16usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::description"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , description) - 24usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::definition"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , definition) - 32usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , game_id) - 40usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::author"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , author) - 48usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::created"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , created) - 56usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::updated"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , updated) - 64usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , entries) - 72usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , num_entries) - 80usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::total_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , total_entries) - 84usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , response) - 88usize] ; } ; extern "C" { pub fn rc_api_init_fetch_leaderboard_info_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_leaderboard_info_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_leaderboard_info_response (response : * mut rc_api_fetch_leaderboard_info_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_leaderboard_info_server_response (response : * mut rc_api_fetch_leaderboard_info_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_leaderboard_info_response (response : * mut rc_api_fetch_leaderboard_info_response_t) ; } # [doc = " API parameters for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_games_list_request_t { pub console_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_games_list_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_games_list_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_games_list_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_games_list_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_games_list_request_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_request_t , console_id) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_game_list_entry_t { pub id : u32 , pub name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_game_list_entry_t"] [:: core :: mem :: size_of :: < rc_api_game_list_entry_t > () - 16usize] ; ["Alignment of rc_api_game_list_entry_t"] [:: core :: mem :: align_of :: < rc_api_game_list_entry_t > () - 8usize] ; ["Offset of field: rc_api_game_list_entry_t::id"] [:: core :: mem :: offset_of ! (rc_api_game_list_entry_t , id) - 0usize] ; ["Offset of field: rc_api_game_list_entry_t::name"] [:: core :: mem :: offset_of ! (rc_api_game_list_entry_t , name) - 8usize] ; } ; # [doc = " Response data for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_games_list_response_t { pub entries : * mut rc_api_game_list_entry_t , pub num_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_games_list_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_games_list_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_games_list_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_games_list_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , entries) - 0usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , num_entries) - 8usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_games_list_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_games_list_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_games_list_response (response : * mut rc_api_fetch_games_list_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_games_list_server_response (response : * mut rc_api_fetch_games_list_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_games_list_response (response : * mut rc_api_fetch_games_list_response_t) ; } # [doc = " API parameters for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_titles_request_t { pub game_ids : * const u32 , pub num_game_ids : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_titles_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_titles_request_t > () - 16usize] ; ["Alignment of rc_api_fetch_game_titles_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_titles_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_request_t::game_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_request_t , game_ids) - 0usize] ; ["Offset of field: rc_api_fetch_game_titles_request_t::num_game_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_request_t , num_game_ids) - 8usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_game_title_entry_t { pub id : u32 , pub title : * const :: core :: ffi :: c_char , pub image_name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_game_title_entry_t"] [:: core :: mem :: size_of :: < rc_api_game_title_entry_t > () - 24usize] ; ["Alignment of rc_api_game_title_entry_t"] [:: core :: mem :: align_of :: < rc_api_game_title_entry_t > () - 8usize] ; ["Offset of field: rc_api_game_title_entry_t::id"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , id) - 0usize] ; ["Offset of field: rc_api_game_title_entry_t::title"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , title) - 8usize] ; ["Offset of field: rc_api_game_title_entry_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , image_name) - 16usize] ; } ; # [doc = " Response data for a fetch games title request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_titles_response_t { pub entries : * mut rc_api_game_title_entry_t , pub num_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_titles_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_titles_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_game_titles_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_titles_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , entries) - 0usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , num_entries) - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_game_titles_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_game_titles_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_titles_server_response (response : * mut rc_api_fetch_game_titles_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_game_titles_response (response : * mut rc_api_fetch_game_titles_response_t) ; } pub type __gnuc_va_list = __builtin_va_list ; # [repr (C)] # [derive (Copy , Clone)] pub struct __mbstate_t { pub __count : :: core :: ffi :: c_int , pub __value : __mbstate_t__bindgen_ty_1 , } # [repr (C)] # [derive (Copy , Clone)] pub union __mbstate_t__bindgen_ty_1 { pub __wch : :: core :: ffi :: c_uint , pub __wchb : [:: core :: ffi :: c_char ; 4usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __mbstate_t__bindgen_ty_1"] [:: core :: mem :: size_of :: < __mbstate_t__bindgen_ty_1 > () - 4usize] ; ["Alignment of __mbstate_t__bindgen_ty_1"] [:: core :: mem :: align_of :: < __mbstate_t__bindgen_ty_1 > () - 4usize] ; ["Offset of field: __mbstate_t__bindgen_ty_1::__wch"] [:: core :: mem :: offset_of ! (__mbstate_t__bindgen_ty_1 , __wch) - 0usize] ; ["Offset of field: __mbstate_t__bindgen_ty_1::__wchb"] [:: core :: mem :: offset_of ! (__mbstate_t__bindgen_ty_1 , __wchb) - 0usize] ; } ; impl :: core :: fmt :: Debug for __mbstate_t__bindgen_ty_1 { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "__mbstate_t__bindgen_ty_1 {{ union }}") } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __mbstate_t"] [:: core :: mem :: size_of :: < __mbstate_t > () - 8usize] ; ["Alignment of __mbstate_t"] [:: core :: mem :: align_of :: < __mbstate_t > () - 4usize] ; ["Offset of field: __mbstate_t::__count"] [:: core :: mem :: offset_of ! (__mbstate_t , __count) - 0usize] ; ["Offset of field: __mbstate_t::__value"] [:: core :: mem :: offset_of ! (__mbstate_t , __value) - 4usize] ; } ; impl :: core :: fmt :: Debug for __mbstate_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "__mbstate_t {{ __count: {:?}, __value: {:?} }}" , self . __count , self . __value) } } # [repr (C)] # [derive (Copy , Clone)] pub struct _G_fpos_t { pub __pos : __off_t , pub __state : __mbstate_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _G_fpos_t"] [:: core :: mem :: size_of :: < _G_fpos_t > () - 16usize] ; ["Alignment of _G_fpos_t"] [:: core :: mem :: align_of :: < _G_fpos_t > () - 8usize] ; ["Offset of field: _G_fpos_t::__pos"] [:: core :: mem :: offset_of ! (_G_fpos_t , __pos) - 0usize] ; ["Offset of field: _G_fpos_t::__state"] [:: core :: mem :: offset_of ! (_G_fpos_t , __state) - 8usize] ; } ; impl :: core :: fmt :: Debug for _G_fpos_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "_G_fpos_t {{ __pos: {:?}, __state: {:?} }}" , self . __pos , self . __state) } } pub type __fpos_t = _G_fpos_t ; # [repr (C)] # [derive (Copy , Clone)] pub struct _G_fpos64_t { pub __pos : __off64_t , pub __state : __mbstate_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _G_fpos64_t"] [:: core :: mem :: size_of :: < _G_fpos64_t > () - 16usize] ; ["Alignment of _G_fpos64_t"] [:: core :: mem :: align_of :: < _G_fpos64_t > () - 8usize] ; ["Offset of field: _G_fpos64_t::__pos"] [:: core :: mem :: offset_of ! (_G_fpos64_t , __pos) - 0usize] ; ["Offset of field: _G_fpos64_t::__state"] [:: core :: mem :: offset_of ! (_G_fpos64_t , __state) - 8usize] ; } ; impl :: core :: fmt :: Debug for _G_fpos64_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "_G_fpos64_t {{ __pos: {:?}, __state: {:?} }}" , self . __pos , self . __state) } } pub type __fpos64_t = _G_fpos64_t ; pub type __FILE = _IO_FILE ; pub type FILE = _IO_FILE ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_marker { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_codecvt { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_wide_data { _unused : [u8 ; 0] , } pub type _IO_lock_t = :: core :: ffi :: c_void ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_FILE { pub _flags : :: core :: ffi :: c_int , pub _IO_read_ptr : * mut :: core :: ffi :: c_char , pub _IO_read_end : * mut :: core :: ffi :: c_char , pub _IO_read_base : * mut :: core :: ffi :: c_char , pub _IO_write_base : * mut :: core :: ffi :: c_char , pub _IO_write_ptr : * mut :: core :: ffi :: c_char , pub _IO_write_end : * mut :: core :: ffi :: c_char , pub _IO_buf_base : * mut :: core :: ffi :: c_char , pub _IO_buf_end : * mut :: core :: ffi :: c_char , pub _IO_save_base : * mut :: core :: ffi :: c_char , pub _IO_backup_base : * mut :: core :: ffi :: c_char , pub _IO_save_end : * mut :: core :: ffi :: c_char , pub _markers : * mut _IO_marker , pub _chain : * mut _IO_FILE , pub _fileno : :: core :: ffi :: c_int , pub _bitfield_align_1 : [u32 ; 0] , pub _bitfield_1 : __BindgenBitfieldUnit < [u8 ; 3usize] > , pub _short_backupbuf : [:: core :: ffi :: c_char ; 1usize] , pub _old_offset : __off_t , pub _cur_column : :: core :: ffi :: c_ushort , pub _vtable_offset : :: core :: ffi :: c_schar , pub _shortbuf : [:: core :: ffi :: c_char ; 1usize] , pub _lock : * mut _IO_lock_t , pub _offset : __off64_t , pub _codecvt : * mut _IO_codecvt , pub _wide_data : * mut _IO_wide_data , pub _freeres_list : * mut _IO_FILE , pub _freeres_buf : * mut :: core :: ffi :: c_void , pub _prevchain : * mut * mut _IO_FILE , pub _mode : :: core :: ffi :: c_int , pub _unused3 : :: core :: ffi :: c_int , pub _total_written : __uint64_t , pub _unused2 : [:: core :: ffi :: c_char ; 8usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _IO_FILE"] [:: core :: mem :: size_of :: < _IO_FILE > () - 216usize] ; ["Alignment of _IO_FILE"] [:: core :: mem :: align_of :: < _IO_FILE > () - 8usize] ; ["Offset of field: _IO_FILE::_flags"] [:: core :: mem :: offset_of ! (_IO_FILE , _flags) - 0usize] ; ["Offset of field: _IO_FILE::_IO_read_ptr"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_ptr) - 8usize] ; ["Offset of field: _IO_FILE::_IO_read_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_end) - 16usize] ; ["Offset of field: _IO_FILE::_IO_read_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_base) - 24usize] ; ["Offset of field: _IO_FILE::_IO_write_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_base) - 32usize] ; ["Offset of field: _IO_FILE::_IO_write_ptr"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_ptr) - 40usize] ; ["Offset of field: _IO_FILE::_IO_write_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_end) - 48usize] ; ["Offset of field: _IO_FILE::_IO_buf_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_buf_base) - 56usize] ; ["Offset of field: _IO_FILE::_IO_buf_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_buf_end) - 64usize] ; ["Offset of field: _IO_FILE::_IO_save_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_save_base) - 72usize] ; ["Offset of field: _IO_FILE::_IO_backup_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_backup_base) - 80usize] ; ["Offset of field: _IO_FILE::_IO_save_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_save_end) - 88usize] ; ["Offset of field: _IO_FILE::_markers"] [:: core :: mem :: offset_of ! (_IO_FILE , _markers) - 96usize] ; ["Offset of field: _IO_FILE::_chain"] [:: core :: mem :: offset_of ! (_IO_FILE , _chain) - 104usize] ; ["Offset of field: _IO_FILE::_fileno"] [:: core :: mem :: offset_of ! (_IO_FILE , _fileno) - 112usize] ; ["Offset of field: _IO_FILE::_short_backupbuf"] [:: core :: mem :: offset_of ! (_IO_FILE , _short_backupbuf) - 119usize] ; ["Offset of field: _IO_FILE::_old_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _old_offset) - 120usize] ; ["Offset of field: _IO_FILE::_cur_column"] [:: core :: mem :: offset_of ! (_IO_FILE , _cur_column) - 128usize] ; ["Offset of field: _IO_FILE::_vtable_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _vtable_offset) - 130usize] ; ["Offset of field: _IO_FILE::_shortbuf"] [:: core :: mem :: offset_of ! (_IO_FILE , _shortbuf) - 131usize] ; ["Offset of field: _IO_FILE::_lock"] [:: core :: mem :: offset_of ! (_IO_FILE , _lock) - 136usize] ; ["Offset of field: _IO_FILE::_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _offset) - 144usize] ; ["Offset of field: _IO_FILE::_codecvt"] [:: core :: mem :: offset_of ! (_IO_FILE , _codecvt) - 152usize] ; ["Offset of field: _IO_FILE::_wide_data"] [:: core :: mem :: offset_of ! (_IO_FILE , _wide_data) - 160usize] ; ["Offset of field: _IO_FILE::_freeres_list"] [:: core :: mem :: offset_of ! (_IO_FILE , _freeres_list) - 168usize] ; ["Offset of field: _IO_FILE::_freeres_buf"] [:: core :: mem :: offset_of ! (_IO_FILE , _freeres_buf) - 176usize] ; ["Offset of field: _IO_FILE::_prevchain"] [:: core :: mem :: offset_of ! (_IO_FILE , _prevchain) - 184usize] ; ["Offset of field: _IO_FILE::_mode"] [:: core :: mem :: offset_of ! (_IO_FILE , _mode) - 192usize] ; ["Offset of field: _IO_FILE::_unused3"] [:: core :: mem :: offset_of ! (_IO_FILE , _unused3) - 196usize] ; ["Offset of field: _IO_FILE::_total_written"] [:: core :: mem :: offset_of ! (_IO_FILE , _total_written) - 200usize] ; ["Offset of field: _IO_FILE::_unused2"] [:: core :: mem :: offset_of ! (_IO_FILE , _unused2) - 208usize] ; } ; impl _IO_FILE { # [inline] pub fn _flags2 (& self) -> :: core :: ffi :: c_int { unsafe { :: core :: mem :: transmute (self . _bitfield_1 . get (0usize , 24u8) as u32) } } # [inline] pub fn set__flags2 (& mut self , val : :: core :: ffi :: c_int) { unsafe { let val : u32 = i32::cast_unsigned (val) ; self . _bitfield_1 . set (0usize , 24u8 , val as u64) } } # [inline] pub fn new_bitfield_1 (_flags2 : :: core :: ffi :: c_int) -> __BindgenBitfieldUnit < [u8 ; 3usize] > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [u8 ; 3usize] > = Default :: default () ; __bindgen_bitfield_unit . set (0usize , 24u8 , { let _flags2 : u32 = unsafe { :: core :: mem :: transmute (_flags2) } ; _flags2 as u64 }) ; __bindgen_bitfield_unit } } pub type cookie_read_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __buf : * mut :: core :: ffi :: c_char , __nbytes : usize) -> __ssize_t > ; pub type cookie_write_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __buf : * const :: core :: ffi :: c_char , __nbytes : usize) -> __ssize_t > ; pub type cookie_seek_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __pos : * mut __off64_t , __w : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int > ; pub type cookie_close_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void) -> :: core :: ffi :: 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 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _IO_cookie_io_functions_t"] [:: core :: mem :: size_of :: < _IO_cookie_io_functions_t > () - 32usize] ; ["Alignment of _IO_cookie_io_functions_t"] [:: core :: mem :: align_of :: < _IO_cookie_io_functions_t > () - 8usize] ; ["Offset of field: _IO_cookie_io_functions_t::read"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , read) - 0usize] ; ["Offset of field: _IO_cookie_io_functions_t::write"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , write) - 8usize] ; ["Offset of field: _IO_cookie_io_functions_t::seek"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , seek) - 16usize] ; ["Offset of field: _IO_cookie_io_functions_t::close"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , close) - 24usize] ; } ; 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" { pub static mut stdin : * mut FILE ; } extern "C" { pub static mut stdout : * mut FILE ; } extern "C" { pub static mut stderr : * mut FILE ; } extern "C" { pub fn remove (__filename : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rename (__old : * const :: core :: ffi :: c_char , __new : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn renameat (__oldfd : :: core :: ffi :: c_int , __old : * const :: core :: ffi :: c_char , __newfd : :: core :: ffi :: c_int , __new : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fclose (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn tmpfile () -> * mut FILE ; } extern "C" { pub fn tmpnam (arg1 : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn tmpnam_r (__s : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn tempnam (__dir : * const :: core :: ffi :: c_char , __pfx : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn fflush (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fflush_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fopen (__filename : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn freopen (__filename : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char , __stream : * mut FILE) -> * mut FILE ; } extern "C" { pub fn fdopen (__fd : :: core :: ffi :: c_int , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn fopencookie (__magic_cookie : * mut :: core :: ffi :: c_void , __modes : * const :: core :: ffi :: c_char , __io_funcs : cookie_io_functions_t) -> * mut FILE ; } extern "C" { pub fn fmemopen (__s : * mut :: core :: ffi :: c_void , __len : usize , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn open_memstream (__bufloc : * mut * mut :: core :: ffi :: c_char , __sizeloc : * mut usize) -> * mut FILE ; } extern "C" { pub fn setbuf (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char) ; } extern "C" { pub fn setvbuf (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char , __modes : :: core :: ffi :: c_int , __n : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn setbuffer (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char , __size : usize) ; } extern "C" { pub fn setlinebuf (__stream : * mut FILE) ; } extern "C" { pub fn fprintf (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn printf (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn sprintf (__s : * mut :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vfprintf (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vprintf (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsprintf (__s : * mut :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn snprintf (__s : * mut :: core :: ffi :: c_char , __maxlen : :: core :: ffi :: c_ulong , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsnprintf (__s : * mut :: core :: ffi :: c_char , __maxlen : :: core :: ffi :: c_ulong , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vasprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __f : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn __asprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn asprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vdprintf (__fd : :: core :: ffi :: c_int , __fmt : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn dprintf (__fd : :: core :: ffi :: c_int , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fscanf (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn scanf (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn sscanf (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } pub type __cfloat128 = __BindgenComplex < u128 > ; pub type _Float128 = u128 ; pub type _Float32 = f32 ; pub type _Float64 = f64 ; pub type _Float32x = f64 ; pub type _Float64x = u128 ; extern "C" { # [link_name = "\u{1}__isoc99_fscanf"] pub fn fscanf1 (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_scanf"] pub fn scanf1 (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_sscanf"] pub fn sscanf1 (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vfscanf (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vscanf (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsscanf (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vfscanf"] pub fn vfscanf1 (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vscanf"] pub fn vscanf1 (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vsscanf"] pub fn vsscanf1 (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgetc (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getc (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getchar () -> :: core :: ffi :: c_int ; } extern "C" { pub fn getc_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getchar_unlocked () -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgetc_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fputc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putchar (__c : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fputc_unlocked (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putc_unlocked (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putchar_unlocked (__c : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getw (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putw (__w : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgets (__s : * mut :: core :: ffi :: c_char , __n : :: core :: ffi :: c_int , __stream : * mut FILE) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn __getdelim (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __delimiter : :: core :: ffi :: c_int , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn getdelim (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __delimiter : :: core :: ffi :: c_int , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn getline (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn fputs (__s : * const :: core :: ffi :: c_char , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn puts (__s : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ungetc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fread (__ptr : * mut :: core :: ffi :: c_void , __size : :: core :: ffi :: c_ulong , __n : :: core :: ffi :: c_ulong , __stream : * mut FILE) -> :: core :: ffi :: c_ulong ; } extern "C" { pub fn fwrite (__ptr : * const :: core :: ffi :: c_void , __size : :: core :: ffi :: c_ulong , __n : :: core :: ffi :: c_ulong , __s : * mut FILE) -> :: core :: ffi :: c_ulong ; } extern "C" { pub fn fread_unlocked (__ptr : * mut :: core :: ffi :: c_void , __size : usize , __n : usize , __stream : * mut FILE) -> usize ; } extern "C" { pub fn fwrite_unlocked (__ptr : * const :: core :: ffi :: c_void , __size : usize , __n : usize , __stream : * mut FILE) -> usize ; } extern "C" { pub fn fseek (__stream : * mut FILE , __off : :: core :: ffi :: c_long , __whence : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ftell (__stream : * mut FILE) -> :: core :: ffi :: c_long ; } extern "C" { pub fn rewind (__stream : * mut FILE) ; } extern "C" { pub fn fseeko (__stream : * mut FILE , __off : __off_t , __whence : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ftello (__stream : * mut FILE) -> __off_t ; } extern "C" { pub fn fgetpos (__stream : * mut FILE , __pos : * mut fpos_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fsetpos (__stream : * mut FILE , __pos : * const fpos_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clearerr (__stream : * mut FILE) ; } extern "C" { pub fn feof (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ferror (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clearerr_unlocked (__stream : * mut FILE) ; } extern "C" { pub fn feof_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ferror_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn perror (__s : * const :: core :: ffi :: c_char) ; } extern "C" { pub fn fileno (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fileno_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn pclose (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn popen (__command : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn ctermid (__s : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn flockfile (__stream : * mut FILE) ; } extern "C" { pub fn ftrylockfile (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn funlockfile (__stream : * mut FILE) ; } extern "C" { pub fn __uflow (arg1 : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn __overflow (arg1 : * mut FILE , arg2 : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } pub const RC_CONSOLE_UNKNOWN : _bindgen_ty_12 = 0 ; pub const RC_CONSOLE_MEGA_DRIVE : _bindgen_ty_12 = 1 ; pub const RC_CONSOLE_NINTENDO_64 : _bindgen_ty_12 = 2 ; pub const RC_CONSOLE_SUPER_NINTENDO : _bindgen_ty_12 = 3 ; pub const RC_CONSOLE_GAMEBOY : _bindgen_ty_12 = 4 ; pub const RC_CONSOLE_GAMEBOY_ADVANCE : _bindgen_ty_12 = 5 ; pub const RC_CONSOLE_GAMEBOY_COLOR : _bindgen_ty_12 = 6 ; pub const RC_CONSOLE_NINTENDO : _bindgen_ty_12 = 7 ; pub const RC_CONSOLE_PC_ENGINE : _bindgen_ty_12 = 8 ; pub const RC_CONSOLE_SEGA_CD : _bindgen_ty_12 = 9 ; pub const RC_CONSOLE_SEGA_32X : _bindgen_ty_12 = 10 ; pub const RC_CONSOLE_MASTER_SYSTEM : _bindgen_ty_12 = 11 ; pub const RC_CONSOLE_PLAYSTATION : _bindgen_ty_12 = 12 ; pub const RC_CONSOLE_ATARI_LYNX : _bindgen_ty_12 = 13 ; pub const RC_CONSOLE_NEOGEO_POCKET : _bindgen_ty_12 = 14 ; pub const RC_CONSOLE_GAME_GEAR : _bindgen_ty_12 = 15 ; pub const RC_CONSOLE_GAMECUBE : _bindgen_ty_12 = 16 ; pub const RC_CONSOLE_ATARI_JAGUAR : _bindgen_ty_12 = 17 ; pub const RC_CONSOLE_NINTENDO_DS : _bindgen_ty_12 = 18 ; pub const RC_CONSOLE_WII : _bindgen_ty_12 = 19 ; pub const RC_CONSOLE_WII_U : _bindgen_ty_12 = 20 ; pub const RC_CONSOLE_PLAYSTATION_2 : _bindgen_ty_12 = 21 ; pub const RC_CONSOLE_XBOX : _bindgen_ty_12 = 22 ; pub const RC_CONSOLE_MAGNAVOX_ODYSSEY2 : _bindgen_ty_12 = 23 ; pub const RC_CONSOLE_POKEMON_MINI : _bindgen_ty_12 = 24 ; pub const RC_CONSOLE_ATARI_2600 : _bindgen_ty_12 = 25 ; pub const RC_CONSOLE_MS_DOS : _bindgen_ty_12 = 26 ; pub const RC_CONSOLE_ARCADE : _bindgen_ty_12 = 27 ; pub const RC_CONSOLE_VIRTUAL_BOY : _bindgen_ty_12 = 28 ; pub const RC_CONSOLE_MSX : _bindgen_ty_12 = 29 ; pub const RC_CONSOLE_COMMODORE_64 : _bindgen_ty_12 = 30 ; pub const RC_CONSOLE_ZX81 : _bindgen_ty_12 = 31 ; pub const RC_CONSOLE_ORIC : _bindgen_ty_12 = 32 ; pub const RC_CONSOLE_SG1000 : _bindgen_ty_12 = 33 ; pub const RC_CONSOLE_VIC20 : _bindgen_ty_12 = 34 ; pub const RC_CONSOLE_AMIGA : _bindgen_ty_12 = 35 ; pub const RC_CONSOLE_ATARI_ST : _bindgen_ty_12 = 36 ; pub const RC_CONSOLE_AMSTRAD_PC : _bindgen_ty_12 = 37 ; pub const RC_CONSOLE_APPLE_II : _bindgen_ty_12 = 38 ; pub const RC_CONSOLE_SATURN : _bindgen_ty_12 = 39 ; pub const RC_CONSOLE_DREAMCAST : _bindgen_ty_12 = 40 ; pub const RC_CONSOLE_PSP : _bindgen_ty_12 = 41 ; pub const RC_CONSOLE_CDI : _bindgen_ty_12 = 42 ; pub const RC_CONSOLE_3DO : _bindgen_ty_12 = 43 ; pub const RC_CONSOLE_COLECOVISION : _bindgen_ty_12 = 44 ; pub const RC_CONSOLE_INTELLIVISION : _bindgen_ty_12 = 45 ; pub const RC_CONSOLE_VECTREX : _bindgen_ty_12 = 46 ; pub const RC_CONSOLE_PC8800 : _bindgen_ty_12 = 47 ; pub const RC_CONSOLE_PC9800 : _bindgen_ty_12 = 48 ; pub const RC_CONSOLE_PCFX : _bindgen_ty_12 = 49 ; pub const RC_CONSOLE_ATARI_5200 : _bindgen_ty_12 = 50 ; pub const RC_CONSOLE_ATARI_7800 : _bindgen_ty_12 = 51 ; pub const RC_CONSOLE_X68K : _bindgen_ty_12 = 52 ; pub const RC_CONSOLE_WONDERSWAN : _bindgen_ty_12 = 53 ; pub const RC_CONSOLE_CASSETTEVISION : _bindgen_ty_12 = 54 ; pub const RC_CONSOLE_SUPER_CASSETTEVISION : _bindgen_ty_12 = 55 ; pub const RC_CONSOLE_NEO_GEO_CD : _bindgen_ty_12 = 56 ; pub const RC_CONSOLE_FAIRCHILD_CHANNEL_F : _bindgen_ty_12 = 57 ; pub const RC_CONSOLE_FM_TOWNS : _bindgen_ty_12 = 58 ; pub const RC_CONSOLE_ZX_SPECTRUM : _bindgen_ty_12 = 59 ; pub const RC_CONSOLE_GAME_AND_WATCH : _bindgen_ty_12 = 60 ; pub const RC_CONSOLE_NOKIA_NGAGE : _bindgen_ty_12 = 61 ; pub const RC_CONSOLE_NINTENDO_3DS : _bindgen_ty_12 = 62 ; pub const RC_CONSOLE_SUPERVISION : _bindgen_ty_12 = 63 ; pub const RC_CONSOLE_SHARPX1 : _bindgen_ty_12 = 64 ; pub const RC_CONSOLE_TIC80 : _bindgen_ty_12 = 65 ; pub const RC_CONSOLE_THOMSONTO8 : _bindgen_ty_12 = 66 ; pub const RC_CONSOLE_PC6000 : _bindgen_ty_12 = 67 ; pub const RC_CONSOLE_PICO : _bindgen_ty_12 = 68 ; pub const RC_CONSOLE_MEGADUCK : _bindgen_ty_12 = 69 ; pub const RC_CONSOLE_ZEEBO : _bindgen_ty_12 = 70 ; pub const RC_CONSOLE_ARDUBOY : _bindgen_ty_12 = 71 ; pub const RC_CONSOLE_WASM4 : _bindgen_ty_12 = 72 ; pub const RC_CONSOLE_ARCADIA_2001 : _bindgen_ty_12 = 73 ; pub const RC_CONSOLE_INTERTON_VC_4000 : _bindgen_ty_12 = 74 ; pub const RC_CONSOLE_ELEKTOR_TV_GAMES_COMPUTER : _bindgen_ty_12 = 75 ; pub const RC_CONSOLE_PC_ENGINE_CD : _bindgen_ty_12 = 76 ; pub const RC_CONSOLE_ATARI_JAGUAR_CD : _bindgen_ty_12 = 77 ; pub const RC_CONSOLE_NINTENDO_DSI : _bindgen_ty_12 = 78 ; pub const RC_CONSOLE_TI83 : _bindgen_ty_12 = 79 ; pub const RC_CONSOLE_UZEBOX : _bindgen_ty_12 = 80 ; pub const RC_CONSOLE_HUBS : _bindgen_ty_12 = 100 ; pub const RC_CONSOLE_EVENTS : _bindgen_ty_12 = 101 ; pub const RC_CONSOLE_STANDALONE : _bindgen_ty_12 = 102 ; # [doc = "\\\n| Console identifiers                                                         |\n\\"] pub type _bindgen_ty_12 = :: core :: ffi :: c_uint ; extern "C" { pub fn rc_console_name (console_id : u32) -> * const :: core :: ffi :: c_char ; } pub const RC_MEMORY_TYPE_SYSTEM_RAM : _bindgen_ty_13 = 0 ; pub const RC_MEMORY_TYPE_SAVE_RAM : _bindgen_ty_13 = 1 ; pub const RC_MEMORY_TYPE_VIDEO_RAM : _bindgen_ty_13 = 2 ; pub const RC_MEMORY_TYPE_READONLY : _bindgen_ty_13 = 3 ; pub const RC_MEMORY_TYPE_HARDWARE_CONTROLLER : _bindgen_ty_13 = 4 ; pub const RC_MEMORY_TYPE_VIRTUAL_RAM : _bindgen_ty_13 = 5 ; pub const RC_MEMORY_TYPE_UNUSED : _bindgen_ty_13 = 6 ; # [doc = "\\\n| Memory mapping                                                              |\n\\"] pub type _bindgen_ty_13 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memory_region_t { pub start_address : u32 , pub end_address : u32 , pub real_address : u32 , pub type_ : u8 , pub description : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memory_region_t"] [:: core :: mem :: size_of :: < rc_memory_region_t > () - 24usize] ; ["Alignment of rc_memory_region_t"] [:: core :: mem :: align_of :: < rc_memory_region_t > () - 8usize] ; ["Offset of field: rc_memory_region_t::start_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , start_address) - 0usize] ; ["Offset of field: rc_memory_region_t::end_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , end_address) - 4usize] ; ["Offset of field: rc_memory_region_t::real_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , real_address) - 8usize] ; ["Offset of field: rc_memory_region_t::type_"] [:: core :: mem :: offset_of ! (rc_memory_region_t , type_) - 12usize] ; ["Offset of field: rc_memory_region_t::description"] [:: core :: mem :: offset_of ! (rc_memory_region_t , description) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memory_regions_t { pub region : * const rc_memory_region_t , pub num_regions : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memory_regions_t"] [:: core :: mem :: size_of :: < rc_memory_regions_t > () - 16usize] ; ["Alignment of rc_memory_regions_t"] [:: core :: mem :: align_of :: < rc_memory_regions_t > () - 8usize] ; ["Offset of field: rc_memory_regions_t::region"] [:: core :: mem :: offset_of ! (rc_memory_regions_t , region) - 0usize] ; ["Offset of field: rc_memory_regions_t::num_regions"] [:: core :: mem :: offset_of ! (rc_memory_regions_t , num_regions) - 8usize] ; } ; extern "C" { pub fn rc_console_memory_regions (console_id : u32) -> * const rc_memory_regions_t ; } extern "C" { pub fn rc_hash_generate_from_buffer (hash : * mut :: core :: ffi :: c_char , console_id : u32 , buffer : * const u8 , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_hash_generate_from_file (hash : * mut :: core :: ffi :: c_char , console_id : u32 , path : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_iterator { pub buffer : * const u8 , pub buffer_size : usize , pub consoles : [u8 ; 12usize] , pub index : :: core :: ffi :: c_int , pub path : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_iterator"] [:: core :: mem :: size_of :: < rc_hash_iterator > () - 40usize] ; ["Alignment of rc_hash_iterator"] [:: core :: mem :: align_of :: < rc_hash_iterator > () - 8usize] ; ["Offset of field: rc_hash_iterator::buffer"] [:: core :: mem :: offset_of ! (rc_hash_iterator , buffer) - 0usize] ; ["Offset of field: rc_hash_iterator::buffer_size"] [:: core :: mem :: offset_of ! (rc_hash_iterator , buffer_size) - 8usize] ; ["Offset of field: rc_hash_iterator::consoles"] [:: core :: mem :: offset_of ! (rc_hash_iterator , consoles) - 16usize] ; ["Offset of field: rc_hash_iterator::index"] [:: core :: mem :: offset_of ! (rc_hash_iterator , index) - 28usize] ; ["Offset of field: rc_hash_iterator::path"] [:: core :: mem :: offset_of ! (rc_hash_iterator , path) - 32usize] ; } ; pub type rc_hash_iterator_t = rc_hash_iterator ; extern "C" { pub fn rc_hash_initialize_iterator (iterator : * mut rc_hash_iterator , path : * const :: core :: ffi :: c_char , buffer : * const u8 , buffer_size : usize) ; } extern "C" { pub fn rc_hash_destroy_iterator (iterator : * mut rc_hash_iterator) ; } extern "C" { pub fn rc_hash_iterate (hash : * mut :: core :: ffi :: c_char , iterator : * mut rc_hash_iterator) -> :: core :: ffi :: c_int ; } pub type rc_hash_message_callback = :: core :: option :: Option < unsafe extern "C" fn (arg1 : * const :: core :: ffi :: c_char) > ; extern "C" { pub fn rc_hash_init_error_message_callback (callback : rc_hash_message_callback) ; } extern "C" { pub fn rc_hash_init_verbose_message_callback (callback : rc_hash_message_callback) ; } pub type rc_hash_filereader_open_file_handler = :: core :: option :: Option < unsafe extern "C" fn (path_utf8 : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_void > ; pub type rc_hash_filereader_seek_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void , offset : i64 , origin : :: core :: ffi :: c_int) > ; pub type rc_hash_filereader_tell_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void) -> i64 > ; pub type rc_hash_filereader_read_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void , buffer : * mut :: core :: ffi :: c_void , requested_bytes : usize) -> usize > ; pub type rc_hash_filereader_close_file_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void) > ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_filereader { pub open : rc_hash_filereader_open_file_handler , pub seek : rc_hash_filereader_seek_handler , pub tell : rc_hash_filereader_tell_handler , pub read : rc_hash_filereader_read_handler , pub close : rc_hash_filereader_close_file_handler , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_filereader"] [:: core :: mem :: size_of :: < rc_hash_filereader > () - 40usize] ; ["Alignment of rc_hash_filereader"] [:: core :: mem :: align_of :: < rc_hash_filereader > () - 8usize] ; ["Offset of field: rc_hash_filereader::open"] [:: core :: mem :: offset_of ! (rc_hash_filereader , open) - 0usize] ; ["Offset of field: rc_hash_filereader::seek"] [:: core :: mem :: offset_of ! (rc_hash_filereader , seek) - 8usize] ; ["Offset of field: rc_hash_filereader::tell"] [:: core :: mem :: offset_of ! (rc_hash_filereader , tell) - 16usize] ; ["Offset of field: rc_hash_filereader::read"] [:: core :: mem :: offset_of ! (rc_hash_filereader , read) - 24usize] ; ["Offset of field: rc_hash_filereader::close"] [:: core :: mem :: offset_of ! (rc_hash_filereader , close) - 32usize] ; } ; extern "C" { pub fn rc_hash_init_custom_filereader (reader : * mut rc_hash_filereader) ; } pub type rc_hash_cdreader_open_track_handler = :: core :: option :: Option < unsafe extern "C" fn (path : * const :: core :: ffi :: c_char , track : u32) -> * mut :: core :: ffi :: c_void > ; pub type rc_hash_cdreader_read_sector_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void , sector : u32 , buffer : * mut :: core :: ffi :: c_void , requested_bytes : usize) -> usize > ; pub type rc_hash_cdreader_close_track_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void) > ; pub type rc_hash_cdreader_first_track_sector_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void) -> u32 > ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_cdreader { pub open_track : rc_hash_cdreader_open_track_handler , pub read_sector : rc_hash_cdreader_read_sector_handler , pub close_track : rc_hash_cdreader_close_track_handler , pub first_track_sector : rc_hash_cdreader_first_track_sector_handler , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_cdreader"] [:: core :: mem :: size_of :: < rc_hash_cdreader > () - 32usize] ; ["Alignment of rc_hash_cdreader"] [:: core :: mem :: align_of :: < rc_hash_cdreader > () - 8usize] ; ["Offset of field: rc_hash_cdreader::open_track"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , open_track) - 0usize] ; ["Offset of field: rc_hash_cdreader::read_sector"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , read_sector) - 8usize] ; ["Offset of field: rc_hash_cdreader::close_track"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , close_track) - 16usize] ; ["Offset of field: rc_hash_cdreader::first_track_sector"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , first_track_sector) - 24usize] ; } ; extern "C" { pub fn rc_hash_get_default_cdreader (cdreader : * mut rc_hash_cdreader) ; } extern "C" { pub fn rc_hash_init_default_cdreader () ; } extern "C" { pub fn rc_hash_init_custom_cdreader (reader : * mut rc_hash_cdreader) ; } pub type rc_hash_3ds_get_cia_normal_key_func = :: core :: option :: Option < unsafe extern "C" fn (common_key_index : u8 , out_normal_key : * mut u8) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_hash_init_3ds_get_cia_normal_key_func (func : rc_hash_3ds_get_cia_normal_key_func) ; } pub type rc_hash_3ds_get_ncch_normal_keys_func = :: core :: option :: Option < unsafe extern "C" fn (primary_key_y : * mut u8 , secondary_key_x_slot : u8 , optional_program_id : * mut u8 , out_primary_key : * mut u8 , out_secondary_key : * mut u8) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_hash_init_3ds_get_ncch_normal_keys_func (func : rc_hash_3ds_get_ncch_normal_keys_func) ; } # [doc = " API parameters for a fetch image request.\n NOTE: fetch image server response is the raw image data. There is no rc_api_process_fetch_image_response function."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_image_request_t { pub image_name : * const :: core :: ffi :: c_char , pub image_type : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_image_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_image_request_t > () - 16usize] ; ["Alignment of rc_api_fetch_image_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_image_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_image_request_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_fetch_image_request_t , image_name) - 0usize] ; ["Offset of field: rc_api_fetch_image_request_t::image_type"] [:: core :: mem :: offset_of ! (rc_api_fetch_image_request_t , image_type) - 8usize] ; } ; extern "C" { pub fn rc_api_init_fetch_image_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_image_request_t) -> :: core :: ffi :: c_int ; } # [doc = " API parameters for a resolve hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_resolve_hash_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_hash : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_resolve_hash_request_t"] [:: core :: mem :: size_of :: < rc_api_resolve_hash_request_t > () - 24usize] ; ["Alignment of rc_api_resolve_hash_request_t"] [:: core :: mem :: align_of :: < rc_api_resolve_hash_request_t > () - 8usize] ; ["Offset of field: rc_api_resolve_hash_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , username) - 0usize] ; ["Offset of field: rc_api_resolve_hash_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_resolve_hash_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , game_hash) - 16usize] ; } ; # [doc = " Response data for a resolve hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_resolve_hash_response_t { pub game_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_resolve_hash_response_t"] [:: core :: mem :: size_of :: < rc_api_resolve_hash_response_t > () - 320usize] ; ["Alignment of rc_api_resolve_hash_response_t"] [:: core :: mem :: align_of :: < rc_api_resolve_hash_response_t > () - 8usize] ; ["Offset of field: rc_api_resolve_hash_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_response_t , game_id) - 0usize] ; ["Offset of field: rc_api_resolve_hash_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_resolve_hash_request (request : * mut rc_api_request_t , api_params : * const rc_api_resolve_hash_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_resolve_hash_response (response : * mut rc_api_resolve_hash_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_resolve_hash_server_response (response : * mut rc_api_resolve_hash_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_resolve_hash_response (response : * mut rc_api_resolve_hash_response_t) ; } # [doc = " API parameters for a fetch game data request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_data_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_data_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_data_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_game_data_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_data_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , game_id) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_leaderboard_definition_t { pub id : u32 , pub format : :: core :: ffi :: c_int , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub lower_is_better : u8 , pub hidden : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_leaderboard_definition_t"] [:: core :: mem :: size_of :: < rc_api_leaderboard_definition_t > () - 40usize] ; ["Alignment of rc_api_leaderboard_definition_t"] [:: core :: mem :: align_of :: < rc_api_leaderboard_definition_t > () - 8usize] ; ["Offset of field: rc_api_leaderboard_definition_t::id"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , id) - 0usize] ; ["Offset of field: rc_api_leaderboard_definition_t::format"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , format) - 4usize] ; ["Offset of field: rc_api_leaderboard_definition_t::title"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , title) - 8usize] ; ["Offset of field: rc_api_leaderboard_definition_t::description"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , description) - 16usize] ; ["Offset of field: rc_api_leaderboard_definition_t::definition"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , definition) - 24usize] ; ["Offset of field: rc_api_leaderboard_definition_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , lower_is_better) - 32usize] ; ["Offset of field: rc_api_leaderboard_definition_t::hidden"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , hidden) - 33usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_achievement_definition_t { pub id : u32 , pub points : u32 , pub category : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub author : * const :: core :: ffi :: c_char , pub badge_name : * const :: core :: ffi :: c_char , pub created : time_t , pub updated : time_t , pub type_ : u32 , pub rarity : f32 , pub rarity_hardcore : f32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_achievement_definition_t"] [:: core :: mem :: size_of :: < rc_api_achievement_definition_t > () - 88usize] ; ["Alignment of rc_api_achievement_definition_t"] [:: core :: mem :: align_of :: < rc_api_achievement_definition_t > () - 8usize] ; ["Offset of field: rc_api_achievement_definition_t::id"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , id) - 0usize] ; ["Offset of field: rc_api_achievement_definition_t::points"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , points) - 4usize] ; ["Offset of field: rc_api_achievement_definition_t::category"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , category) - 8usize] ; ["Offset of field: rc_api_achievement_definition_t::title"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , title) - 16usize] ; ["Offset of field: rc_api_achievement_definition_t::description"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , description) - 24usize] ; ["Offset of field: rc_api_achievement_definition_t::definition"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , definition) - 32usize] ; ["Offset of field: rc_api_achievement_definition_t::author"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , author) - 40usize] ; ["Offset of field: rc_api_achievement_definition_t::badge_name"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , badge_name) - 48usize] ; ["Offset of field: rc_api_achievement_definition_t::created"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , created) - 56usize] ; ["Offset of field: rc_api_achievement_definition_t::updated"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , updated) - 64usize] ; ["Offset of field: rc_api_achievement_definition_t::type_"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , type_) - 72usize] ; ["Offset of field: rc_api_achievement_definition_t::rarity"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , rarity) - 76usize] ; ["Offset of field: rc_api_achievement_definition_t::rarity_hardcore"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , rarity_hardcore) - 80usize] ; } ; # [doc = " Response data for a fetch game data request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_data_response_t { pub id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub image_name : * const :: core :: ffi :: c_char , pub rich_presence_script : * const :: core :: ffi :: c_char , pub achievements : * mut rc_api_achievement_definition_t , pub num_achievements : u32 , pub leaderboards : * mut rc_api_leaderboard_definition_t , pub num_leaderboards : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_data_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_data_response_t > () - 376usize] ; ["Alignment of rc_api_fetch_game_data_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_data_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , console_id) - 4usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::title"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , title) - 8usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , image_name) - 16usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::rich_presence_script"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , rich_presence_script) - 24usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::achievements"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , achievements) - 32usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , num_achievements) - 40usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::leaderboards"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , leaderboards) - 48usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , num_leaderboards) - 56usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , response) - 64usize] ; } ; extern "C" { pub fn rc_api_init_fetch_game_data_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_game_data_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_data_response (response : * mut rc_api_fetch_game_data_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_data_server_response (response : * mut rc_api_fetch_game_data_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_game_data_response (response : * mut rc_api_fetch_game_data_response_t) ; } # [doc = " API parameters for a ping request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_ping_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub rich_presence : * const :: core :: ffi :: c_char , pub game_hash : * const :: core :: ffi :: c_char , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_ping_request_t"] [:: core :: mem :: size_of :: < rc_api_ping_request_t > () - 48usize] ; ["Alignment of rc_api_ping_request_t"] [:: core :: mem :: align_of :: < rc_api_ping_request_t > () - 8usize] ; ["Offset of field: rc_api_ping_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , username) - 0usize] ; ["Offset of field: rc_api_ping_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_ping_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_ping_request_t::rich_presence"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , rich_presence) - 24usize] ; ["Offset of field: rc_api_ping_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , game_hash) - 32usize] ; ["Offset of field: rc_api_ping_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , hardcore) - 40usize] ; } ; # [doc = " Response data for a ping request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_ping_response_t { pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_ping_response_t"] [:: core :: mem :: size_of :: < rc_api_ping_response_t > () - 312usize] ; ["Alignment of rc_api_ping_response_t"] [:: core :: mem :: align_of :: < rc_api_ping_response_t > () - 8usize] ; ["Offset of field: rc_api_ping_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_ping_response_t , response) - 0usize] ; } ; extern "C" { pub fn rc_api_init_ping_request (request : * mut rc_api_request_t , api_params : * const rc_api_ping_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_ping_response (response : * mut rc_api_ping_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_ping_server_response (response : * mut rc_api_ping_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_ping_response (response : * mut rc_api_ping_response_t) ; } # [doc = " API parameters for an award achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_award_achievement_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub hardcore : u32 , pub game_hash : * const :: core :: ffi :: c_char , pub seconds_since_unlock : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_award_achievement_request_t"] [:: core :: mem :: size_of :: < rc_api_award_achievement_request_t > () - 40usize] ; ["Alignment of rc_api_award_achievement_request_t"] [:: core :: mem :: align_of :: < rc_api_award_achievement_request_t > () - 8usize] ; ["Offset of field: rc_api_award_achievement_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , username) - 0usize] ; ["Offset of field: rc_api_award_achievement_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_award_achievement_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_award_achievement_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , hardcore) - 20usize] ; ["Offset of field: rc_api_award_achievement_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_award_achievement_request_t::seconds_since_unlock"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , seconds_since_unlock) - 32usize] ; } ; # [doc = " Response data for an award achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_award_achievement_response_t { pub awarded_achievement_id : u32 , pub new_player_score : u32 , pub new_player_score_softcore : u32 , pub achievements_remaining : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_award_achievement_response_t"] [:: core :: mem :: size_of :: < rc_api_award_achievement_response_t > () - 328usize] ; ["Alignment of rc_api_award_achievement_response_t"] [:: core :: mem :: align_of :: < rc_api_award_achievement_response_t > () - 8usize] ; ["Offset of field: rc_api_award_achievement_response_t::awarded_achievement_id"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , awarded_achievement_id) - 0usize] ; ["Offset of field: rc_api_award_achievement_response_t::new_player_score"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , new_player_score) - 4usize] ; ["Offset of field: rc_api_award_achievement_response_t::new_player_score_softcore"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , new_player_score_softcore) - 8usize] ; ["Offset of field: rc_api_award_achievement_response_t::achievements_remaining"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , achievements_remaining) - 12usize] ; ["Offset of field: rc_api_award_achievement_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_award_achievement_request (request : * mut rc_api_request_t , api_params : * const rc_api_award_achievement_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_award_achievement_response (response : * mut rc_api_award_achievement_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_award_achievement_server_response (response : * mut rc_api_award_achievement_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_award_achievement_response (response : * mut rc_api_award_achievement_response_t) ; } # [doc = " API parameters for a submit lboard entry request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_submit_lboard_entry_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub leaderboard_id : u32 , pub score : i32 , pub game_hash : * const :: core :: ffi :: c_char , pub seconds_since_completion : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_submit_lboard_entry_request_t"] [:: core :: mem :: size_of :: < rc_api_submit_lboard_entry_request_t > () - 40usize] ; ["Alignment of rc_api_submit_lboard_entry_request_t"] [:: core :: mem :: align_of :: < rc_api_submit_lboard_entry_request_t > () - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , username) - 0usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , leaderboard_id) - 16usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , score) - 20usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::seconds_since_completion"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , seconds_since_completion) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_lboard_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub score : i32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_lboard_entry_t"] [:: core :: mem :: size_of :: < rc_api_lboard_entry_t > () - 16usize] ; ["Alignment of rc_api_lboard_entry_t"] [:: core :: mem :: align_of :: < rc_api_lboard_entry_t > () - 8usize] ; ["Offset of field: rc_api_lboard_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , username) - 0usize] ; ["Offset of field: rc_api_lboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , rank) - 8usize] ; ["Offset of field: rc_api_lboard_entry_t::score"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , score) - 12usize] ; } ; # [doc = " Response data for a submit lboard entry request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_submit_lboard_entry_response_t { pub submitted_score : i32 , pub best_score : i32 , pub new_rank : u32 , pub num_entries : u32 , pub top_entries : * mut rc_api_lboard_entry_t , pub num_top_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_submit_lboard_entry_response_t"] [:: core :: mem :: size_of :: < rc_api_submit_lboard_entry_response_t > () - 344usize] ; ["Alignment of rc_api_submit_lboard_entry_response_t"] [:: core :: mem :: align_of :: < rc_api_submit_lboard_entry_response_t > () - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::submitted_score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , submitted_score) - 0usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::best_score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , best_score) - 4usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::new_rank"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , new_rank) - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , num_entries) - 12usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::top_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , top_entries) - 16usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::num_top_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , num_top_entries) - 24usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_submit_lboard_entry_request (request : * mut rc_api_request_t , api_params : * const rc_api_submit_lboard_entry_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_submit_lboard_entry_response (response : * mut rc_api_submit_lboard_entry_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_submit_lboard_entry_server_response (response : * mut rc_api_submit_lboard_entry_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_submit_lboard_entry_response (response : * mut rc_api_submit_lboard_entry_response_t) ; } # [doc = " Callback used to read num_bytes bytes from memory starting at address. If\n num_bytes is greater than 1, the value is read in little-endian from\n memory."] pub type rc_runtime_peek_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , num_bytes : u32 , ud : * mut :: core :: ffi :: c_void) -> u32 > ; # [doc = "\\\n| Runtime                                                                     |\n\\"] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_trigger_t { pub id : u32 , pub trigger : * mut rc_trigger_t , pub buffer : * mut :: core :: ffi :: c_void , pub invalid_memref : * mut rc_memref_t , pub md5 : [u8 ; 16usize] , pub serialized_size : i32 , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_trigger_t"] [:: core :: mem :: size_of :: < rc_runtime_trigger_t > () - 56usize] ; ["Alignment of rc_runtime_trigger_t"] [:: core :: mem :: align_of :: < rc_runtime_trigger_t > () - 8usize] ; ["Offset of field: rc_runtime_trigger_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , id) - 0usize] ; ["Offset of field: rc_runtime_trigger_t::trigger"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , trigger) - 8usize] ; ["Offset of field: rc_runtime_trigger_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , buffer) - 16usize] ; ["Offset of field: rc_runtime_trigger_t::invalid_memref"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , invalid_memref) - 24usize] ; ["Offset of field: rc_runtime_trigger_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , md5) - 32usize] ; ["Offset of field: rc_runtime_trigger_t::serialized_size"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , serialized_size) - 48usize] ; ["Offset of field: rc_runtime_trigger_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , owns_memrefs) - 52usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_lboard_t { pub id : u32 , pub value : i32 , pub lboard : * mut rc_lboard_t , pub buffer : * mut :: core :: ffi :: c_void , pub invalid_memref : * mut rc_memref_t , pub md5 : [u8 ; 16usize] , pub serialized_size : u32 , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_lboard_t"] [:: core :: mem :: size_of :: < rc_runtime_lboard_t > () - 56usize] ; ["Alignment of rc_runtime_lboard_t"] [:: core :: mem :: align_of :: < rc_runtime_lboard_t > () - 8usize] ; ["Offset of field: rc_runtime_lboard_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , id) - 0usize] ; ["Offset of field: rc_runtime_lboard_t::value"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , value) - 4usize] ; ["Offset of field: rc_runtime_lboard_t::lboard"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , lboard) - 8usize] ; ["Offset of field: rc_runtime_lboard_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , buffer) - 16usize] ; ["Offset of field: rc_runtime_lboard_t::invalid_memref"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , invalid_memref) - 24usize] ; ["Offset of field: rc_runtime_lboard_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , md5) - 32usize] ; ["Offset of field: rc_runtime_lboard_t::serialized_size"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , serialized_size) - 48usize] ; ["Offset of field: rc_runtime_lboard_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , owns_memrefs) - 52usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_richpresence_t { pub richpresence : * mut rc_richpresence_t , pub buffer : * mut :: core :: ffi :: c_void , pub previous : * mut rc_runtime_richpresence_t , pub md5 : [u8 ; 16usize] , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_richpresence_t"] [:: core :: mem :: size_of :: < rc_runtime_richpresence_t > () - 48usize] ; ["Alignment of rc_runtime_richpresence_t"] [:: core :: mem :: align_of :: < rc_runtime_richpresence_t > () - 8usize] ; ["Offset of field: rc_runtime_richpresence_t::richpresence"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , richpresence) - 0usize] ; ["Offset of field: rc_runtime_richpresence_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , buffer) - 8usize] ; ["Offset of field: rc_runtime_richpresence_t::previous"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , previous) - 16usize] ; ["Offset of field: rc_runtime_richpresence_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , md5) - 24usize] ; ["Offset of field: rc_runtime_richpresence_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , owns_memrefs) - 40usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_t { pub triggers : * mut rc_runtime_trigger_t , pub trigger_count : u32 , pub trigger_capacity : u32 , pub lboards : * mut rc_runtime_lboard_t , pub lboard_count : u32 , pub lboard_capacity : u32 , pub richpresence : * mut rc_runtime_richpresence_t , pub memrefs : * mut rc_memref_t , pub next_memref : * mut * mut rc_memref_t , pub variables : * mut rc_value_t , pub next_variable : * mut * mut rc_value_t , pub owns_self : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_t"] [:: core :: mem :: size_of :: < rc_runtime_t > () - 80usize] ; ["Alignment of rc_runtime_t"] [:: core :: mem :: align_of :: < rc_runtime_t > () - 8usize] ; ["Offset of field: rc_runtime_t::triggers"] [:: core :: mem :: offset_of ! (rc_runtime_t , triggers) - 0usize] ; ["Offset of field: rc_runtime_t::trigger_count"] [:: core :: mem :: offset_of ! (rc_runtime_t , trigger_count) - 8usize] ; ["Offset of field: rc_runtime_t::trigger_capacity"] [:: core :: mem :: offset_of ! (rc_runtime_t , trigger_capacity) - 12usize] ; ["Offset of field: rc_runtime_t::lboards"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboards) - 16usize] ; ["Offset of field: rc_runtime_t::lboard_count"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboard_count) - 24usize] ; ["Offset of field: rc_runtime_t::lboard_capacity"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboard_capacity) - 28usize] ; ["Offset of field: rc_runtime_t::richpresence"] [:: core :: mem :: offset_of ! (rc_runtime_t , richpresence) - 32usize] ; ["Offset of field: rc_runtime_t::memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_t , memrefs) - 40usize] ; ["Offset of field: rc_runtime_t::next_memref"] [:: core :: mem :: offset_of ! (rc_runtime_t , next_memref) - 48usize] ; ["Offset of field: rc_runtime_t::variables"] [:: core :: mem :: offset_of ! (rc_runtime_t , variables) - 56usize] ; ["Offset of field: rc_runtime_t::next_variable"] [:: core :: mem :: offset_of ! (rc_runtime_t , next_variable) - 64usize] ; ["Offset of field: rc_runtime_t::owns_self"] [:: core :: mem :: offset_of ! (rc_runtime_t , owns_self) - 72usize] ; } ; extern "C" { pub fn rc_runtime_alloc () -> * mut rc_runtime_t ; } extern "C" { pub fn rc_runtime_init (runtime : * mut rc_runtime_t) ; } extern "C" { pub fn rc_runtime_destroy (runtime : * mut rc_runtime_t) ; } extern "C" { pub fn rc_runtime_activate_achievement (runtime : * mut rc_runtime_t , id : u32 , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deactivate_achievement (runtime : * mut rc_runtime_t , id : u32) ; } extern "C" { pub fn rc_runtime_get_achievement (runtime : * const rc_runtime_t , id : u32) -> * mut rc_trigger_t ; } extern "C" { pub fn rc_runtime_get_achievement_measured (runtime : * const rc_runtime_t , id : u32 , measured_value : * mut :: core :: ffi :: c_uint , measured_target : * mut :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_format_achievement_measured (runtime : * const rc_runtime_t , id : u32 , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_activate_lboard (runtime : * mut rc_runtime_t , id : u32 , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deactivate_lboard (runtime : * mut rc_runtime_t , id : u32) ; } extern "C" { pub fn rc_runtime_get_lboard (runtime : * const rc_runtime_t , id : u32) -> * mut rc_lboard_t ; } extern "C" { pub fn rc_runtime_format_lboard_value (buffer : * mut :: core :: ffi :: c_char , size : :: core :: ffi :: c_int , value : i32 , format : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_activate_richpresence (runtime : * mut rc_runtime_t , script : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_get_richpresence (runtime : * const rc_runtime_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_runtime_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } pub const RC_RUNTIME_EVENT_ACHIEVEMENT_ACTIVATED : _bindgen_ty_14 = 0 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PAUSED : _bindgen_ty_14 = 1 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_RESET : _bindgen_ty_14 = 2 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_TRIGGERED : _bindgen_ty_14 = 3 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PRIMED : _bindgen_ty_14 = 4 ; pub const RC_RUNTIME_EVENT_LBOARD_STARTED : _bindgen_ty_14 = 5 ; pub const RC_RUNTIME_EVENT_LBOARD_CANCELED : _bindgen_ty_14 = 6 ; pub const RC_RUNTIME_EVENT_LBOARD_UPDATED : _bindgen_ty_14 = 7 ; pub const RC_RUNTIME_EVENT_LBOARD_TRIGGERED : _bindgen_ty_14 = 8 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_DISABLED : _bindgen_ty_14 = 9 ; pub const RC_RUNTIME_EVENT_LBOARD_DISABLED : _bindgen_ty_14 = 10 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_UNPRIMED : _bindgen_ty_14 = 11 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PROGRESS_UPDATED : _bindgen_ty_14 = 12 ; pub type _bindgen_ty_14 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_event_t { pub id : u32 , pub value : i32 , pub type_ : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_event_t"] [:: core :: mem :: size_of :: < rc_runtime_event_t > () - 12usize] ; ["Alignment of rc_runtime_event_t"] [:: core :: mem :: align_of :: < rc_runtime_event_t > () - 4usize] ; ["Offset of field: rc_runtime_event_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , id) - 0usize] ; ["Offset of field: rc_runtime_event_t::value"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , value) - 4usize] ; ["Offset of field: rc_runtime_event_t::type_"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , type_) - 8usize] ; } ; pub type rc_runtime_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (runtime_event : * const rc_runtime_event_t) > ; extern "C" { pub fn rc_runtime_do_frame (runtime : * mut rc_runtime_t , event_handler : rc_runtime_event_handler_t , peek : rc_runtime_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) ; } extern "C" { pub fn rc_runtime_reset (runtime : * mut rc_runtime_t) ; } pub type rc_runtime_validate_address_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_runtime_validate_addresses (runtime : * mut rc_runtime_t , event_handler : rc_runtime_event_handler_t , validate_handler : rc_runtime_validate_address_t) ; } extern "C" { pub fn rc_runtime_invalidate_address (runtime : * mut rc_runtime_t , address : u32) ; } extern "C" { pub fn rc_runtime_progress_size (runtime : * const rc_runtime_t , L : * mut lua_State) -> u32 ; } extern "C" { pub fn rc_runtime_serialize_progress (buffer : * mut :: core :: ffi :: c_void , runtime : * const rc_runtime_t , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_serialize_progress_sized (buffer : * mut u8 , buffer_size : u32 , runtime : * const rc_runtime_t , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deserialize_progress (runtime : * mut rc_runtime_t , serialized : * const u8 , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deserialize_progress_sized (runtime : * mut rc_runtime_t , serialized : * const u8 , serialized_size : u32 , L : * mut lua_State) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_async_handle_t { _unused : [u8 ; 0] , } # [doc = " Callback used to read num_bytes bytes from memory starting at address into buffer.\n Returns the number of bytes read. A return value of 0 indicates the address was invalid."] pub type rc_client_read_memory_func_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , buffer : * mut u8 , num_bytes : u32 , client : * mut rc_client_t) -> u32 > ; # [doc = " Internal method passed to rc_client_server_call_t to process the server response."] pub type rc_client_server_callback_t = :: core :: option :: Option < unsafe extern "C" fn (server_response : * const rc_api_server_response_t , callback_data : * mut :: core :: ffi :: c_void) > ; # [doc = " Callback used to issue a request to the server."] pub type rc_client_server_call_t = :: core :: option :: Option < unsafe extern "C" fn (request : * const rc_api_request_t , callback : rc_client_server_callback_t , callback_data : * mut :: core :: ffi :: c_void , client : * mut rc_client_t) > ; # [doc = " Generic callback for asynchronous eventing."] pub type rc_client_callback_t = :: core :: option :: Option < unsafe extern "C" fn (result : :: core :: ffi :: c_int , error_message : * const :: core :: ffi :: c_char , client : * mut rc_client_t , userdata : * mut :: core :: ffi :: c_void) > ; # [doc = " Callback for logging or displaying a message."] pub type rc_client_message_callback_t = :: core :: option :: Option < unsafe extern "C" fn (message : * const :: core :: ffi :: c_char , client : * const rc_client_t) > ; extern "C" { # [doc = " Creates a new rc_client_t object."] pub fn rc_client_create (read_memory_function : rc_client_read_memory_func_t , server_call_function : rc_client_server_call_t) -> * mut rc_client_t ; } extern "C" { # [doc = " Releases resources associated to a rc_client_t object.\n Pointer will no longer be valid after making this call."] pub fn rc_client_destroy (client : * mut rc_client_t) ; } extern "C" { # [doc = " Sets whether hardcore is enabled (on by default).\n Can be called with a game loaded.\n Enabling hardcore with a game loaded will raise an RC_CLIENT_EVENT_RESET\n event. Processing will be disabled until rc_client_reset is called."] pub fn rc_client_set_hardcore_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether hardcore is enabled (on by default)."] pub fn rc_client_get_hardcore_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether encore mode is enabled (off by default).\n Evaluated when loading a game. Has no effect while a game is loaded."] pub fn rc_client_set_encore_mode_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether encore mode is enabled (off by default)."] pub fn rc_client_get_encore_mode_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether unofficial achievements should be loaded.\n Evaluated when loading a game. Has no effect while a game is loaded."] pub fn rc_client_set_unofficial_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether unofficial achievements should be loaded."] pub fn rc_client_get_unofficial_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether spectator mode is enabled (off by default).\n If enabled, events for achievement unlocks and leaderboard submissions will be\n raised, but server calls to actually perform the unlock/submit will not occur.\n Can be modified while a game is loaded. Evaluated at unlock/submit time.\n Cannot be modified if disabled before a game is loaded."] pub fn rc_client_set_spectator_mode_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether spectator mode is enabled (off by default)."] pub fn rc_client_get_spectator_mode_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Attaches client-specific data to the runtime."] pub fn rc_client_set_userdata (client : * mut rc_client_t , userdata : * mut :: core :: ffi :: c_void) ; } extern "C" { # [doc = " Gets the client-specific data attached to the runtime."] pub fn rc_client_get_userdata (client : * const rc_client_t) -> * mut :: core :: ffi :: c_void ; } extern "C" { # [doc = " Sets the name of the server to use."] pub fn rc_client_set_host (client : * const rc_client_t , hostname : * const :: core :: ffi :: c_char) ; } pub type rc_clock_t = u64 ; pub type rc_get_time_millisecs_func_t = :: core :: option :: Option < unsafe extern "C" fn (client : * const rc_client_t) -> rc_clock_t > ; extern "C" { # [doc = " Specifies a function that returns a value that increases once per millisecond."] pub fn rc_client_set_get_time_millisecs_function (client : * mut rc_client_t , handler : rc_get_time_millisecs_func_t) ; } extern "C" { # [doc = " Marks an async process as aborted. The associated callback will not be called."] pub fn rc_client_abort_async (client : * mut rc_client_t , async_handle : * mut rc_client_async_handle_t) ; } extern "C" { # [doc = " Gets a clause that can be added to the User-Agent to identify the version of rcheevos being used."] pub fn rc_client_get_user_agent_clause (client : * mut rc_client_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> usize ; } extern "C" { # [doc = " Sets the logging level and provides a callback to be called to do the logging."] pub fn rc_client_enable_logging (client : * mut rc_client_t , level : :: core :: ffi :: c_int , callback : rc_client_message_callback_t) ; } pub const RC_CLIENT_LOG_LEVEL_NONE : _bindgen_ty_15 = 0 ; pub const RC_CLIENT_LOG_LEVEL_ERROR : _bindgen_ty_15 = 1 ; pub const RC_CLIENT_LOG_LEVEL_WARN : _bindgen_ty_15 = 2 ; pub const RC_CLIENT_LOG_LEVEL_INFO : _bindgen_ty_15 = 3 ; pub const RC_CLIENT_LOG_LEVEL_VERBOSE : _bindgen_ty_15 = 4 ; pub const NUM_RC_CLIENT_LOG_LEVELS : _bindgen_ty_15 = 5 ; pub type _bindgen_ty_15 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Attempt to login a user."] pub fn rc_client_begin_login_with_password (client : * mut rc_client_t , username : * const :: core :: ffi :: c_char , password : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Attempt to login a user."] pub fn rc_client_begin_login_with_token (client : * mut rc_client_t , username : * const :: core :: ffi :: c_char , token : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Logout the user."] pub fn rc_client_logout (client : * mut rc_client_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_user_t { pub display_name : * const :: core :: ffi :: c_char , pub username : * const :: core :: ffi :: c_char , pub token : * const :: core :: ffi :: c_char , pub score : u32 , pub score_softcore : u32 , pub num_unread_messages : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_user_t"] [:: core :: mem :: size_of :: < rc_client_user_t > () - 40usize] ; ["Alignment of rc_client_user_t"] [:: core :: mem :: align_of :: < rc_client_user_t > () - 8usize] ; ["Offset of field: rc_client_user_t::display_name"] [:: core :: mem :: offset_of ! (rc_client_user_t , display_name) - 0usize] ; ["Offset of field: rc_client_user_t::username"] [:: core :: mem :: offset_of ! (rc_client_user_t , username) - 8usize] ; ["Offset of field: rc_client_user_t::token"] [:: core :: mem :: offset_of ! (rc_client_user_t , token) - 16usize] ; ["Offset of field: rc_client_user_t::score"] [:: core :: mem :: offset_of ! (rc_client_user_t , score) - 24usize] ; ["Offset of field: rc_client_user_t::score_softcore"] [:: core :: mem :: offset_of ! (rc_client_user_t , score_softcore) - 28usize] ; ["Offset of field: rc_client_user_t::num_unread_messages"] [:: core :: mem :: offset_of ! (rc_client_user_t , num_unread_messages) - 32usize] ; } ; extern "C" { # [doc = " Gets information about the logged in user. Will return NULL if the user is not logged in."] pub fn rc_client_get_user_info (client : * const rc_client_t) -> * const rc_client_user_t ; } extern "C" { # [doc = " Gets the URL for the user's profile picture.\n Returns RC_OK on success."] pub fn rc_client_user_get_image_url (user : * const rc_client_user_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_user_game_summary_t { pub num_core_achievements : u32 , pub num_unofficial_achievements : u32 , pub num_unlocked_achievements : u32 , pub num_unsupported_achievements : u32 , pub points_core : u32 , pub points_unlocked : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_user_game_summary_t"] [:: core :: mem :: size_of :: < rc_client_user_game_summary_t > () - 24usize] ; ["Alignment of rc_client_user_game_summary_t"] [:: core :: mem :: align_of :: < rc_client_user_game_summary_t > () - 4usize] ; ["Offset of field: rc_client_user_game_summary_t::num_core_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_core_achievements) - 0usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unofficial_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unofficial_achievements) - 4usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unlocked_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unlocked_achievements) - 8usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unsupported_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unsupported_achievements) - 12usize] ; ["Offset of field: rc_client_user_game_summary_t::points_core"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , points_core) - 16usize] ; ["Offset of field: rc_client_user_game_summary_t::points_unlocked"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , points_unlocked) - 20usize] ; } ; extern "C" { # [doc = " Gets a breakdown of the number of achievements in the game, and how many the user has unlocked.\n Used for the \"You have unlocked X of Y achievements\" message shown when the game starts."] pub fn rc_client_get_user_game_summary (client : * const rc_client_t , summary : * mut rc_client_user_game_summary_t) ; } extern "C" { # [doc = " Start loading an unidentified game."] pub fn rc_client_begin_identify_and_load_game (client : * mut rc_client_t , console_id : u32 , file_path : * const :: core :: ffi :: c_char , data : * const u8 , data_size : usize , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Start loading a game."] pub fn rc_client_begin_load_game (client : * mut rc_client_t , hash : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Gets the current progress of the asynchronous load game process."] pub fn rc_client_get_load_game_state (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } pub const RC_CLIENT_LOAD_GAME_STATE_NONE : _bindgen_ty_16 = 0 ; pub const RC_CLIENT_LOAD_GAME_STATE_IDENTIFYING_GAME : _bindgen_ty_16 = 1 ; pub const RC_CLIENT_LOAD_GAME_STATE_AWAIT_LOGIN : _bindgen_ty_16 = 2 ; pub const RC_CLIENT_LOAD_GAME_STATE_FETCHING_GAME_DATA : _bindgen_ty_16 = 3 ; pub const RC_CLIENT_LOAD_GAME_STATE_STARTING_SESSION : _bindgen_ty_16 = 4 ; pub const RC_CLIENT_LOAD_GAME_STATE_DONE : _bindgen_ty_16 = 5 ; pub const RC_CLIENT_LOAD_GAME_STATE_ABORTED : _bindgen_ty_16 = 6 ; pub type _bindgen_ty_16 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Determines if a game was successfully identified and loaded."] pub fn rc_client_is_game_loaded (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Unloads the current game."] pub fn rc_client_unload_game (client : * mut rc_client_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_game_t { pub id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub hash : * const :: core :: ffi :: c_char , pub badge_name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_game_t"] [:: core :: mem :: size_of :: < rc_client_game_t > () - 32usize] ; ["Alignment of rc_client_game_t"] [:: core :: mem :: align_of :: < rc_client_game_t > () - 8usize] ; ["Offset of field: rc_client_game_t::id"] [:: core :: mem :: offset_of ! (rc_client_game_t , id) - 0usize] ; ["Offset of field: rc_client_game_t::console_id"] [:: core :: mem :: offset_of ! (rc_client_game_t , console_id) - 4usize] ; ["Offset of field: rc_client_game_t::title"] [:: core :: mem :: offset_of ! (rc_client_game_t , title) - 8usize] ; ["Offset of field: rc_client_game_t::hash"] [:: core :: mem :: offset_of ! (rc_client_game_t , hash) - 16usize] ; ["Offset of field: rc_client_game_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_game_t , badge_name) - 24usize] ; } ; extern "C" { # [doc = " Get information about the current game. Returns NULL if no game is loaded.\n NOTE: returns a dummy game record if an unidentified game is loaded."] pub fn rc_client_get_game_info (client : * const rc_client_t) -> * const rc_client_game_t ; } extern "C" { # [doc = " Gets the URL for the game image.\n Returns RC_OK on success."] pub fn rc_client_game_get_image_url (game : * const rc_client_game_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Changes the active disc in a multi-disc game."] pub fn rc_client_begin_change_media (client : * mut rc_client_t , file_path : * const :: core :: ffi :: c_char , data : * const u8 , data_size : usize , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Changes the active disc in a multi-disc game."] pub fn rc_client_begin_change_media_from_hash (client : * mut rc_client_t , hash : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } # [doc = "\\\n| Subsets                                                                     |\n\\"] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_subset_t { pub id : u32 , pub title : * const :: core :: ffi :: c_char , pub badge_name : [:: core :: ffi :: c_char ; 16usize] , pub num_achievements : u32 , pub num_leaderboards : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_subset_t"] [:: core :: mem :: size_of :: < rc_client_subset_t > () - 40usize] ; ["Alignment of rc_client_subset_t"] [:: core :: mem :: align_of :: < rc_client_subset_t > () - 8usize] ; ["Offset of field: rc_client_subset_t::id"] [:: core :: mem :: offset_of ! (rc_client_subset_t , id) - 0usize] ; ["Offset of field: rc_client_subset_t::title"] [:: core :: mem :: offset_of ! (rc_client_subset_t , title) - 8usize] ; ["Offset of field: rc_client_subset_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_subset_t , badge_name) - 16usize] ; ["Offset of field: rc_client_subset_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_client_subset_t , num_achievements) - 32usize] ; ["Offset of field: rc_client_subset_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_client_subset_t , num_leaderboards) - 36usize] ; } ; extern "C" { pub fn rc_client_get_subset_info (client : * mut rc_client_t , subset_id : u32) -> * const rc_client_subset_t ; } pub const RC_CLIENT_ACHIEVEMENT_STATE_INACTIVE : _bindgen_ty_17 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_ACTIVE : _bindgen_ty_17 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_UNLOCKED : _bindgen_ty_17 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_DISABLED : _bindgen_ty_17 = 3 ; pub const NUM_RC_CLIENT_ACHIEVEMENT_STATES : _bindgen_ty_17 = 4 ; # [doc = "\\\n| Achievements                                                                |\n\\"] pub type _bindgen_ty_17 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_NONE : _bindgen_ty_18 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_CORE : _bindgen_ty_18 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_UNOFFICIAL : _bindgen_ty_18 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_CORE_AND_UNOFFICIAL : _bindgen_ty_18 = 3 ; pub type _bindgen_ty_18 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_STANDARD : _bindgen_ty_19 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_MISSABLE : _bindgen_ty_19 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_PROGRESSION : _bindgen_ty_19 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_WIN : _bindgen_ty_19 = 3 ; pub type _bindgen_ty_19 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNKNOWN : _bindgen_ty_20 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_LOCKED : _bindgen_ty_20 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNLOCKED : _bindgen_ty_20 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNSUPPORTED : _bindgen_ty_20 = 3 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNOFFICIAL : _bindgen_ty_20 = 4 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_RECENTLY_UNLOCKED : _bindgen_ty_20 = 5 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_ACTIVE_CHALLENGE : _bindgen_ty_20 = 6 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_ALMOST_THERE : _bindgen_ty_20 = 7 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNSYNCED : _bindgen_ty_20 = 8 ; pub const NUM_RC_CLIENT_ACHIEVEMENT_BUCKETS : _bindgen_ty_20 = 9 ; pub type _bindgen_ty_20 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_NONE : _bindgen_ty_21 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_SOFTCORE : _bindgen_ty_21 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_HARDCORE : _bindgen_ty_21 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_BOTH : _bindgen_ty_21 = 3 ; pub type _bindgen_ty_21 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_t { pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub badge_name : [:: core :: ffi :: c_char ; 8usize] , pub measured_progress : [:: core :: ffi :: c_char ; 24usize] , pub measured_percent : f32 , pub id : u32 , pub points : u32 , pub unlock_time : time_t , pub state : u8 , pub category : u8 , pub bucket : u8 , pub unlocked : u8 , pub rarity : f32 , pub rarity_hardcore : f32 , pub type_ : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_t"] [:: core :: mem :: size_of :: < rc_client_achievement_t > () - 88usize] ; ["Alignment of rc_client_achievement_t"] [:: core :: mem :: align_of :: < rc_client_achievement_t > () - 8usize] ; ["Offset of field: rc_client_achievement_t::title"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , title) - 0usize] ; ["Offset of field: rc_client_achievement_t::description"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , description) - 8usize] ; ["Offset of field: rc_client_achievement_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , badge_name) - 16usize] ; ["Offset of field: rc_client_achievement_t::measured_progress"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , measured_progress) - 24usize] ; ["Offset of field: rc_client_achievement_t::measured_percent"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , measured_percent) - 48usize] ; ["Offset of field: rc_client_achievement_t::id"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , id) - 52usize] ; ["Offset of field: rc_client_achievement_t::points"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , points) - 56usize] ; ["Offset of field: rc_client_achievement_t::unlock_time"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , unlock_time) - 64usize] ; ["Offset of field: rc_client_achievement_t::state"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , state) - 72usize] ; ["Offset of field: rc_client_achievement_t::category"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , category) - 73usize] ; ["Offset of field: rc_client_achievement_t::bucket"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , bucket) - 74usize] ; ["Offset of field: rc_client_achievement_t::unlocked"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , unlocked) - 75usize] ; ["Offset of field: rc_client_achievement_t::rarity"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , rarity) - 76usize] ; ["Offset of field: rc_client_achievement_t::rarity_hardcore"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , rarity_hardcore) - 80usize] ; ["Offset of field: rc_client_achievement_t::type_"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , type_) - 84usize] ; } ; extern "C" { # [doc = " Get information about an achievement. Returns NULL if not found."] pub fn rc_client_get_achievement_info (client : * mut rc_client_t , id : u32) -> * const rc_client_achievement_t ; } extern "C" { # [doc = " Gets the URL for the achievement image.\n Returns RC_OK on success."] pub fn rc_client_achievement_get_image_url (achievement : * const rc_client_achievement_t , state : :: core :: ffi :: c_int , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_bucket_t { pub achievements : * mut * mut rc_client_achievement_t , pub num_achievements : u32 , pub label : * const :: core :: ffi :: c_char , pub subset_id : u32 , pub bucket_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_bucket_t"] [:: core :: mem :: size_of :: < rc_client_achievement_bucket_t > () - 32usize] ; ["Alignment of rc_client_achievement_bucket_t"] [:: core :: mem :: align_of :: < rc_client_achievement_bucket_t > () - 8usize] ; ["Offset of field: rc_client_achievement_bucket_t::achievements"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , achievements) - 0usize] ; ["Offset of field: rc_client_achievement_bucket_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , num_achievements) - 8usize] ; ["Offset of field: rc_client_achievement_bucket_t::label"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , label) - 16usize] ; ["Offset of field: rc_client_achievement_bucket_t::subset_id"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , subset_id) - 24usize] ; ["Offset of field: rc_client_achievement_bucket_t::bucket_type"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , bucket_type) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_list_t { pub buckets : * mut rc_client_achievement_bucket_t , pub num_buckets : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_list_t"] [:: core :: mem :: size_of :: < rc_client_achievement_list_t > () - 16usize] ; ["Alignment of rc_client_achievement_list_t"] [:: core :: mem :: align_of :: < rc_client_achievement_list_t > () - 8usize] ; ["Offset of field: rc_client_achievement_list_t::buckets"] [:: core :: mem :: offset_of ! (rc_client_achievement_list_t , buckets) - 0usize] ; ["Offset of field: rc_client_achievement_list_t::num_buckets"] [:: core :: mem :: offset_of ! (rc_client_achievement_list_t , num_buckets) - 8usize] ; } ; pub const RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_LOCK_STATE : _bindgen_ty_22 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_PROGRESS : _bindgen_ty_22 = 1 ; pub type _bindgen_ty_22 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Creates a list of achievements matching the specified category and grouping.\n Returns an allocated list that must be free'd by calling rc_client_destroy_achievement_list."] pub fn rc_client_create_achievement_list (client : * mut rc_client_t , category : :: core :: ffi :: c_int , grouping : :: core :: ffi :: c_int) -> * mut rc_client_achievement_list_t ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_get_achievement_list."] pub fn rc_client_destroy_achievement_list (list : * mut rc_client_achievement_list_t) ; } extern "C" { # [doc = " Returns non-zero if there are any achievements that can be queried through rc_client_create_achievement_list()."] pub fn rc_client_has_achievements (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } pub const RC_CLIENT_LEADERBOARD_STATE_INACTIVE : _bindgen_ty_23 = 0 ; pub const RC_CLIENT_LEADERBOARD_STATE_ACTIVE : _bindgen_ty_23 = 1 ; pub const RC_CLIENT_LEADERBOARD_STATE_TRACKING : _bindgen_ty_23 = 2 ; pub const RC_CLIENT_LEADERBOARD_STATE_DISABLED : _bindgen_ty_23 = 3 ; pub const NUM_RC_CLIENT_LEADERBOARD_STATES : _bindgen_ty_23 = 4 ; # [doc = "\\\n| Leaderboards                                                                |\n\\"] pub type _bindgen_ty_23 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_LEADERBOARD_FORMAT_TIME : _bindgen_ty_24 = 0 ; pub const RC_CLIENT_LEADERBOARD_FORMAT_SCORE : _bindgen_ty_24 = 1 ; pub const RC_CLIENT_LEADERBOARD_FORMAT_VALUE : _bindgen_ty_24 = 2 ; pub const NUM_RC_CLIENT_LEADERBOARD_FORMATS : _bindgen_ty_24 = 3 ; pub type _bindgen_ty_24 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_t { pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub tracker_value : * const :: core :: ffi :: c_char , pub id : u32 , pub state : u8 , pub format : u8 , pub lower_is_better : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_t > () - 32usize] ; ["Alignment of rc_client_leaderboard_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_t::title"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , title) - 0usize] ; ["Offset of field: rc_client_leaderboard_t::description"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , description) - 8usize] ; ["Offset of field: rc_client_leaderboard_t::tracker_value"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , tracker_value) - 16usize] ; ["Offset of field: rc_client_leaderboard_t::id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , id) - 24usize] ; ["Offset of field: rc_client_leaderboard_t::state"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , state) - 28usize] ; ["Offset of field: rc_client_leaderboard_t::format"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , format) - 29usize] ; ["Offset of field: rc_client_leaderboard_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , lower_is_better) - 30usize] ; } ; extern "C" { # [doc = " Get information about a leaderboard. Returns NULL if not found."] pub fn rc_client_get_leaderboard_info (client : * const rc_client_t , id : u32) -> * const rc_client_leaderboard_t ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_tracker_t { pub display : [:: core :: ffi :: c_char ; 24usize] , pub id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_tracker_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_tracker_t > () - 28usize] ; ["Alignment of rc_client_leaderboard_tracker_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_tracker_t > () - 4usize] ; ["Offset of field: rc_client_leaderboard_tracker_t::display"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_tracker_t , display) - 0usize] ; ["Offset of field: rc_client_leaderboard_tracker_t::id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_tracker_t , id) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_bucket_t { pub leaderboards : * mut * mut rc_client_leaderboard_t , pub num_leaderboards : u32 , pub label : * const :: core :: ffi :: c_char , pub subset_id : u32 , pub bucket_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_bucket_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_bucket_t > () - 32usize] ; ["Alignment of rc_client_leaderboard_bucket_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_bucket_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::leaderboards"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , leaderboards) - 0usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , num_leaderboards) - 8usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::label"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , label) - 16usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::subset_id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , subset_id) - 24usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::bucket_type"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , bucket_type) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_list_t { pub buckets : * mut rc_client_leaderboard_bucket_t , pub num_buckets : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_list_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_list_t > () - 16usize] ; ["Alignment of rc_client_leaderboard_list_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_list_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_list_t::buckets"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_list_t , buckets) - 0usize] ; ["Offset of field: rc_client_leaderboard_list_t::num_buckets"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_list_t , num_buckets) - 8usize] ; } ; pub const RC_CLIENT_LEADERBOARD_BUCKET_UNKNOWN : _bindgen_ty_25 = 0 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_INACTIVE : _bindgen_ty_25 = 1 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_ACTIVE : _bindgen_ty_25 = 2 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_UNSUPPORTED : _bindgen_ty_25 = 3 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_ALL : _bindgen_ty_25 = 4 ; pub const NUM_RC_CLIENT_LEADERBOARD_BUCKETS : _bindgen_ty_25 = 5 ; pub type _bindgen_ty_25 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_LEADERBOARD_LIST_GROUPING_NONE : _bindgen_ty_26 = 0 ; pub const RC_CLIENT_LEADERBOARD_LIST_GROUPING_TRACKING : _bindgen_ty_26 = 1 ; pub type _bindgen_ty_26 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Creates a list of leaderboards matching the specified grouping.\n Returns an allocated list that must be free'd by calling rc_client_destroy_leaderboard_list."] pub fn rc_client_create_leaderboard_list (client : * mut rc_client_t , grouping : :: core :: ffi :: c_int) -> * mut rc_client_leaderboard_list_t ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_get_leaderboard_list."] pub fn rc_client_destroy_leaderboard_list (list : * mut rc_client_leaderboard_list_t) ; } extern "C" { # [doc = " Returns non-zero if the current game has any leaderboards."] pub fn rc_client_has_leaderboards (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_entry_t { pub user : * const :: core :: ffi :: c_char , pub display : [:: core :: ffi :: c_char ; 24usize] , pub submitted : time_t , pub rank : u32 , pub index : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_entry_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_entry_t > () - 48usize] ; ["Alignment of rc_client_leaderboard_entry_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_entry_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_t::user"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , user) - 0usize] ; ["Offset of field: rc_client_leaderboard_entry_t::display"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , display) - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_t::submitted"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , submitted) - 32usize] ; ["Offset of field: rc_client_leaderboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , rank) - 40usize] ; ["Offset of field: rc_client_leaderboard_entry_t::index"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , index) - 44usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_entry_list_t { pub entries : * mut rc_client_leaderboard_entry_t , pub num_entries : u32 , pub total_entries : u32 , pub user_index : i32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_entry_list_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_entry_list_t > () - 24usize] ; ["Alignment of rc_client_leaderboard_entry_list_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_entry_list_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , entries) - 0usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::num_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , num_entries) - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::total_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , total_entries) - 12usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::user_index"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , user_index) - 16usize] ; } ; pub type rc_client_fetch_leaderboard_entries_callback_t = :: core :: option :: Option < unsafe extern "C" fn (result : :: core :: ffi :: c_int , error_message : * const :: core :: ffi :: c_char , list : * mut rc_client_leaderboard_entry_list_t , client : * mut rc_client_t , callback_userdata : * mut :: core :: ffi :: c_void) > ; extern "C" { # [doc = " Fetches a list of leaderboard entries from the server.\n Callback receives an allocated list that must be free'd by calling rc_client_destroy_leaderboard_entry_list."] pub fn rc_client_begin_fetch_leaderboard_entries (client : * mut rc_client_t , leaderboard_id : u32 , first_entry : u32 , count : u32 , callback : rc_client_fetch_leaderboard_entries_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Fetches a list of leaderboard entries from the server containing the logged-in user.\n Callback receives an allocated list that must be free'd by calling rc_client_destroy_leaderboard_entry_list."] pub fn rc_client_begin_fetch_leaderboard_entries_around_user (client : * mut rc_client_t , leaderboard_id : u32 , count : u32 , callback : rc_client_fetch_leaderboard_entries_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Gets the URL for the profile picture of the user associated to a leaderboard entry.\n Returns RC_OK on success."] pub fn rc_client_leaderboard_entry_get_user_image_url (entry : * const rc_client_leaderboard_entry_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_begin_fetch_leaderboard_entries or rc_client_begin_fetch_leaderboard_entries_around_user."] pub fn rc_client_destroy_leaderboard_entry_list (list : * mut rc_client_leaderboard_entry_list_t) ; } # [doc = " Used for scoreboard events. Contains the response from the server when a leaderboard entry is submitted.\n NOTE: This structure is only valid within the event callback. If you want to make use of the data outside\n of the callback, you should create copies of both the top entries and usernames within."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_scoreboard_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub score : [:: core :: ffi :: c_char ; 24usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_scoreboard_entry_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_scoreboard_entry_t > () - 40usize] ; ["Alignment of rc_client_leaderboard_scoreboard_entry_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_scoreboard_entry_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::username"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , username) - 0usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , rank) - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , score) - 12usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_scoreboard_t { pub leaderboard_id : u32 , pub submitted_score : [:: core :: ffi :: c_char ; 24usize] , pub best_score : [:: core :: ffi :: c_char ; 24usize] , pub new_rank : u32 , pub num_entries : u32 , pub top_entries : * mut rc_client_leaderboard_scoreboard_entry_t , pub num_top_entries : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_scoreboard_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_scoreboard_t > () - 80usize] ; ["Alignment of rc_client_leaderboard_scoreboard_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_scoreboard_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::submitted_score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , submitted_score) - 4usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::best_score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , best_score) - 28usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::new_rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , new_rank) - 52usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::num_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , num_entries) - 56usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::top_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , top_entries) - 64usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::num_top_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , num_top_entries) - 72usize] ; } ; extern "C" { # [doc = " Returns non-zero if the current game supports rich presence."] pub fn rc_client_has_rich_presence (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Gets the current rich presence message.\n Returns the number of characters written to buffer."] pub fn rc_client_get_rich_presence_message (client : * mut rc_client_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> usize ; } pub const RC_CLIENT_EVENT_TYPE_NONE : _bindgen_ty_27 = 0 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_TRIGGERED : _bindgen_ty_27 = 1 ; pub const RC_CLIENT_EVENT_LEADERBOARD_STARTED : _bindgen_ty_27 = 2 ; pub const RC_CLIENT_EVENT_LEADERBOARD_FAILED : _bindgen_ty_27 = 3 ; pub const RC_CLIENT_EVENT_LEADERBOARD_SUBMITTED : _bindgen_ty_27 = 4 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_CHALLENGE_INDICATOR_SHOW : _bindgen_ty_27 = 5 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_CHALLENGE_INDICATOR_HIDE : _bindgen_ty_27 = 6 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_SHOW : _bindgen_ty_27 = 7 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_HIDE : _bindgen_ty_27 = 8 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_UPDATE : _bindgen_ty_27 = 9 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_SHOW : _bindgen_ty_27 = 10 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_HIDE : _bindgen_ty_27 = 11 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_UPDATE : _bindgen_ty_27 = 12 ; pub const RC_CLIENT_EVENT_LEADERBOARD_SCOREBOARD : _bindgen_ty_27 = 13 ; pub const RC_CLIENT_EVENT_RESET : _bindgen_ty_27 = 14 ; pub const RC_CLIENT_EVENT_GAME_COMPLETED : _bindgen_ty_27 = 15 ; pub const RC_CLIENT_EVENT_SERVER_ERROR : _bindgen_ty_27 = 16 ; pub const RC_CLIENT_EVENT_DISCONNECTED : _bindgen_ty_27 = 17 ; pub const RC_CLIENT_EVENT_RECONNECTED : _bindgen_ty_27 = 18 ; # [doc = "\\\n| Processing                                                                  |\n\\"] pub type _bindgen_ty_27 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_server_error_t { pub error_message : * const :: core :: ffi :: c_char , pub api : * const :: core :: ffi :: c_char , pub result : :: core :: ffi :: c_int , pub related_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_server_error_t"] [:: core :: mem :: size_of :: < rc_client_server_error_t > () - 24usize] ; ["Alignment of rc_client_server_error_t"] [:: core :: mem :: align_of :: < rc_client_server_error_t > () - 8usize] ; ["Offset of field: rc_client_server_error_t::error_message"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , error_message) - 0usize] ; ["Offset of field: rc_client_server_error_t::api"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , api) - 8usize] ; ["Offset of field: rc_client_server_error_t::result"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , result) - 16usize] ; ["Offset of field: rc_client_server_error_t::related_id"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , related_id) - 20usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_event_t { pub type_ : u32 , pub achievement : * mut rc_client_achievement_t , pub leaderboard : * mut rc_client_leaderboard_t , pub leaderboard_tracker : * mut rc_client_leaderboard_tracker_t , pub leaderboard_scoreboard : * mut rc_client_leaderboard_scoreboard_t , pub server_error : * mut rc_client_server_error_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_event_t"] [:: core :: mem :: size_of :: < rc_client_event_t > () - 48usize] ; ["Alignment of rc_client_event_t"] [:: core :: mem :: align_of :: < rc_client_event_t > () - 8usize] ; ["Offset of field: rc_client_event_t::type_"] [:: core :: mem :: offset_of ! (rc_client_event_t , type_) - 0usize] ; ["Offset of field: rc_client_event_t::achievement"] [:: core :: mem :: offset_of ! (rc_client_event_t , achievement) - 8usize] ; ["Offset of field: rc_client_event_t::leaderboard"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard) - 16usize] ; ["Offset of field: rc_client_event_t::leaderboard_tracker"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard_tracker) - 24usize] ; ["Offset of field: rc_client_event_t::leaderboard_scoreboard"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard_scoreboard) - 32usize] ; ["Offset of field: rc_client_event_t::server_error"] [:: core :: mem :: offset_of ! (rc_client_event_t , server_error) - 40usize] ; } ; # [doc = " Callback used to notify the client when certain events occur."] pub type rc_client_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (event : * const rc_client_event_t , client : * mut rc_client_t) > ; extern "C" { # [doc = " Provides a callback for event handling."] pub fn rc_client_set_event_handler (client : * mut rc_client_t , handler : rc_client_event_handler_t) ; } extern "C" { # [doc = " Provides a callback for reading memory."] pub fn rc_client_set_read_memory_function (client : * mut rc_client_t , handler : rc_client_read_memory_func_t) ; } extern "C" { # [doc = " Determines if there are any active achievements/leaderboards/rich presence that need processing."] pub fn rc_client_is_processing_required (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Processes achievements for the current frame."] pub fn rc_client_do_frame (client : * mut rc_client_t) ; } extern "C" { # [doc = " Processes the periodic queue.\n Called internally by rc_client_do_frame.\n Should be explicitly called if rc_client_do_frame is not being called because emulation is paused."] pub fn rc_client_idle (client : * mut rc_client_t) ; } extern "C" { # [doc = " Determines if a sufficient amount of frames have been processed since the last call to rc_client_can_pause.\n Should not be called unless the client is trying to pause.\n If false is returned, and frames_remaining is not NULL, frames_remaining will be set to the number of frames\n still required before pause is allowed, which can be converted to a time in seconds for displaying to the user."] pub fn rc_client_can_pause (client : * mut rc_client_t , frames_remaining : * mut u32) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Informs the runtime that the emulator has been reset. Will reset all achievements and leaderboards\n to their initial state (includes hiding indicators/trackers)."] pub fn rc_client_reset (client : * mut rc_client_t) ; } extern "C" { # [doc = " Gets the number of bytes needed to serialized the runtime state."] pub fn rc_client_progress_size (client : * mut rc_client_t) -> usize ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator.\n [deprecated] use rc_client_serialize_progress_sized instead"] pub fn rc_client_serialize_progress (client : * mut rc_client_t , buffer : * mut u8) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator."] pub fn rc_client_serialize_progress_sized (client : * mut rc_client_t , buffer : * mut u8 , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Deserializes the runtime state from a buffer.\n Returns RC_OK on success, or an error indicator.\n [deprecated] use rc_client_deserialize_progress_sized instead"] pub fn rc_client_deserialize_progress (client : * mut rc_client_t , serialized : * const u8) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator."] pub fn rc_client_deserialize_progress_sized (client : * mut rc_client_t , serialized : * const u8 , serialized_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __locale_data { pub _address : u8 , } pub type __builtin_va_list = [__va_list_tag ; 1usize] ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __va_list_tag { pub gp_offset : :: core :: ffi :: c_uint , pub fp_offset : :: core :: ffi :: c_uint , pub overflow_arg_area : * mut :: core :: ffi :: c_void , pub reg_save_area : * mut :: core :: ffi :: c_void , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __va_list_tag"] [:: core :: mem :: size_of :: < __va_list_tag > () - 24usize] ; ["Alignment of __va_list_tag"] [:: core :: mem :: align_of :: < __va_list_tag > () - 8usize] ; ["Offset of field: __va_list_tag::gp_offset"] [:: core :: mem :: offset_of ! (__va_list_tag , gp_offset) - 0usize] ; ["Offset of field: __va_list_tag::fp_offset"] [:: core :: mem :: offset_of ! (__va_list_tag , fp_offset) - 4usize] ; ["Offset of field: __va_list_tag::overflow_arg_area"] [:: core :: mem :: offset_of ! (__va_list_tag , overflow_arg_area) - 8usize] ; ["Offset of field: __va_list_tag::reg_save_area"] [:: core :: mem :: offset_of ! (__va_list_tag , reg_save_area) - 16usize] ; } ;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]  --> /opt/rustwide/target/debug/build/rcheevos-sys/badd2487a33295ab/out/bindings.rs:3:124851
[INFO] [stdout]   |
[INFO] [stdout] 3 | ...usize , 24u8 , { let _flags2 : u32 = unsafe { :: core :: mem :: transmute (_flags2) } ; _flags2 as u64 }) ; __bindgen_bitfield_uni...
[INFO] [stdout]   |                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: replace this with
[INFO] [stdout]   |
[INFO] [stdout] 3 - # [repr (C)] # [derive (Copy , Clone , Debug , Default , Eq , Hash , Ord , PartialEq , PartialOrd)] pub struct __BindgenBitfieldUnit < Storage > { storage : Storage , } impl < Storage > __BindgenBitfieldUnit < Storage > { # [inline] pub const fn new (storage : Storage) -> Self { Self { storage } } } impl < Storage > __BindgenBitfieldUnit < Storage > where Storage : AsRef < [u8] > + AsMut < [u8] >, { # [inline] pub fn get_bit (& self , index : usize) -> bool { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = self . storage . as_ref () [byte_index] ; let bit_index = if cfg ! (target_endian = "big") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; byte & mask == mask } # [inline] pub fn set_bit (& mut self , index : usize , val : bool) { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = & mut self . storage . as_mut () [byte_index] ; let bit_index = if cfg ! (target_endian = "big") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; if val { * byte |= mask ; } else { * byte &= ! mask ; } } # [inline] pub fn get (& self , bit_offset : usize , bit_width : u8) -> u64 { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; let mut val = 0 ; for i in 0 .. (bit_width as usize) { if self . get_bit (i + bit_offset) { let index = if cfg ! (target_endian = "big") { bit_width as usize - 1 - i } else { i } ; val |= 1 << index ; } } val } # [inline] pub fn set (& mut self , bit_offset : usize , bit_width : u8 , val : u64) { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; for i in 0 .. (bit_width as usize) { let mask = 1 << i ; let val_bit_is_set = val & mask == mask ; let index = if cfg ! (target_endian = "big") { bit_width as usize - 1 - i } else { i } ; self . set_bit (index + bit_offset , val_bit_is_set) ; } } } # [derive (PartialEq , Copy , Clone , Hash , Debug , Default)] # [repr (C)] pub struct __BindgenComplex < T > { pub re : T , pub im : T } pub const _STDINT_H : u32 = 1 ; pub const _FEATURES_H : u32 = 1 ; pub const _DEFAULT_SOURCE : u32 = 1 ; pub const __GLIBC_USE_ISOC2Y : u32 = 0 ; pub const __GLIBC_USE_ISOC23 : u32 = 0 ; pub const __USE_ISOC11 : u32 = 1 ; pub const __USE_ISOC99 : u32 = 1 ; pub const __USE_ISOC95 : u32 = 1 ; pub const __USE_POSIX_IMPLICITLY : u32 = 1 ; pub const _POSIX_SOURCE : u32 = 1 ; pub const _POSIX_C_SOURCE : u32 = 202405 ; pub const __USE_POSIX : u32 = 1 ; pub const __USE_POSIX2 : u32 = 1 ; pub const __USE_POSIX199309 : u32 = 1 ; pub const __USE_POSIX199506 : u32 = 1 ; pub const __USE_XOPEN2K : u32 = 1 ; pub const __USE_XOPEN2K8 : u32 = 1 ; pub const _ATFILE_SOURCE : u32 = 1 ; pub const __USE_XOPEN2K24 : u32 = 1 ; pub const __WORDSIZE : u32 = 64 ; pub const __WORDSIZE_TIME64_COMPAT32 : u32 = 1 ; pub const __SYSCALL_WORDSIZE : u32 = 64 ; pub const __TIMESIZE : u32 = 64 ; pub const __USE_TIME_BITS64 : u32 = 1 ; pub const __USE_MISC : u32 = 1 ; 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_C23_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 ; pub const __STDC_IEC_559_COMPLEX__ : u32 = 1 ; 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 = 43 ; pub const _SYS_CDEFS_H : u32 = 1 ; pub const __glibc_c99_flexarr_available : u32 = 1 ; pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI : u32 = 0 ; pub const __HAVE_GENERIC_SELECTION : u32 = 1 ; pub const __GLIBC_USE_LIB_EXT2 : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT_C23 : u32 = 0 ; 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_C23 : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_TYPES_EXT : u32 = 0 ; pub const _BITS_TYPES_H : u32 = 1 ; pub const _BITS_TYPESIZES_H : u32 = 1 ; pub const __OFF_T_MATCHES_OFF64_T : u32 = 1 ; pub const __INO_T_MATCHES_INO64_T : u32 = 1 ; pub const __RLIM_T_MATCHES_RLIM64_T : u32 = 1 ; pub const __STATFS_MATCHES_STATFS64 : u32 = 1 ; pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 : u32 = 1 ; pub const __FD_SETSIZE : u32 = 1024 ; pub const _BITS_TIME64_H : u32 = 1 ; pub const _BITS_WCHAR_H : u32 = 1 ; pub const _BITS_STDINT_INTN_H : u32 = 1 ; pub const _BITS_STDINT_UINTN_H : u32 = 1 ; pub const _BITS_STDINT_LEAST_H : u32 = 1 ; pub const INT8_MIN : i32 = - 128 ; pub const INT16_MIN : i32 = - 32768 ; pub const INT32_MIN : i32 = - 2147483648 ; pub const INT8_MAX : u32 = 127 ; pub const INT16_MAX : u32 = 32767 ; pub const INT32_MAX : u32 = 2147483647 ; pub const UINT8_MAX : u32 = 255 ; pub const UINT16_MAX : u32 = 65535 ; pub const UINT32_MAX : u32 = 4294967295 ; pub const INT_LEAST8_MIN : i32 = - 128 ; pub const INT_LEAST16_MIN : i32 = - 32768 ; pub const INT_LEAST32_MIN : i32 = - 2147483648 ; pub const INT_LEAST8_MAX : u32 = 127 ; pub const INT_LEAST16_MAX : u32 = 32767 ; pub const INT_LEAST32_MAX : u32 = 2147483647 ; pub const UINT_LEAST8_MAX : u32 = 255 ; pub const UINT_LEAST16_MAX : u32 = 65535 ; pub const UINT_LEAST32_MAX : u32 = 4294967295 ; pub const INT_FAST8_MIN : i32 = - 128 ; pub const INT_FAST16_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST32_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST8_MAX : u32 = 127 ; pub const INT_FAST16_MAX : u64 = 9223372036854775807 ; pub const INT_FAST32_MAX : u64 = 9223372036854775807 ; pub const UINT_FAST8_MAX : u32 = 255 ; pub const UINT_FAST16_MAX : i32 = - 1 ; pub const UINT_FAST32_MAX : i32 = - 1 ; pub const INTPTR_MIN : i64 = - 9223372036854775808 ; pub const INTPTR_MAX : u64 = 9223372036854775807 ; pub const UINTPTR_MAX : i32 = - 1 ; pub const PTRDIFF_MIN : i64 = - 9223372036854775808 ; pub const PTRDIFF_MAX : u64 = 9223372036854775807 ; pub const SIG_ATOMIC_MIN : i32 = - 2147483648 ; pub const SIG_ATOMIC_MAX : u32 = 2147483647 ; pub const SIZE_MAX : i32 = - 1 ; pub const WINT_MIN : u32 = 0 ; pub const WINT_MAX : u32 = 4294967295 ; pub const RC_VALUE_MAX_NAME_LENGTH : u32 = 15 ; pub const _TIME_H : u32 = 1 ; pub const _BITS_TIME_H : u32 = 1 ; pub const CLOCK_REALTIME : u32 = 0 ; pub const CLOCK_MONOTONIC : u32 = 1 ; pub const CLOCK_PROCESS_CPUTIME_ID : u32 = 2 ; pub const CLOCK_THREAD_CPUTIME_ID : u32 = 3 ; pub const CLOCK_MONOTONIC_RAW : u32 = 4 ; pub const CLOCK_REALTIME_COARSE : u32 = 5 ; pub const CLOCK_MONOTONIC_COARSE : u32 = 6 ; pub const CLOCK_BOOTTIME : u32 = 7 ; pub const CLOCK_REALTIME_ALARM : u32 = 8 ; pub const CLOCK_BOOTTIME_ALARM : u32 = 9 ; pub const CLOCK_TAI : u32 = 11 ; pub const TIMER_ABSTIME : u32 = 1 ; pub const __clock_t_defined : u32 = 1 ; pub const __time_t_defined : u32 = 1 ; pub const __struct_tm_defined : u32 = 1 ; pub const _STRUCT_TIMESPEC : u32 = 1 ; pub const _BITS_ENDIAN_H : u32 = 1 ; pub const __LITTLE_ENDIAN : u32 = 1234 ; pub const __BIG_ENDIAN : u32 = 4321 ; pub const __PDP_ENDIAN : u32 = 3412 ; pub const _BITS_ENDIANNESS_H : u32 = 1 ; pub const __BYTE_ORDER : u32 = 1234 ; pub const __FLOAT_WORD_ORDER : u32 = 1234 ; pub const __clockid_t_defined : u32 = 1 ; pub const __timer_t_defined : u32 = 1 ; pub const __itimerspec_defined : u32 = 1 ; pub const _BITS_TYPES_LOCALE_T_H : u32 = 1 ; pub const _BITS_TYPES___LOCALE_T_H : u32 = 1 ; pub const TIME_UTC : u32 = 1 ; pub const _STDIO_H : u32 = 1 ; pub const _____fpos_t_defined : u32 = 1 ; pub const ____mbstate_t_defined : u32 = 1 ; pub const _____fpos64_t_defined : u32 = 1 ; pub const ____FILE_defined : u32 = 1 ; pub const __FILE_defined : u32 = 1 ; 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 ; pub const BUFSIZ : u32 = 8192 ; pub const EOF : i32 = - 1 ; 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 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 ; pub const __HAVE_FLOAT128 : u32 = 1 ; pub const __HAVE_DISTINCT_FLOAT128 : u32 = 1 ; pub const __HAVE_FLOAT64X : u32 = 1 ; pub const __HAVE_FLOAT64X_LONG_DOUBLE : u32 = 1 ; pub const __HAVE_FLOAT16 : u32 = 0 ; pub const __HAVE_FLOAT32 : u32 = 1 ; pub const __HAVE_FLOAT64 : u32 = 1 ; pub const __HAVE_FLOAT32X : u32 = 1 ; pub const __HAVE_FLOAT128X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT16 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT32 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT64 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT32X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT64X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT128X : u32 = 0 ; pub const __HAVE_FLOATN_NOT_TYPEDEF : u32 = 0 ; pub const RC_IMAGE_TYPE_GAME : u32 = 1 ; pub const RC_IMAGE_TYPE_ACHIEVEMENT : u32 = 2 ; pub const RC_IMAGE_TYPE_ACHIEVEMENT_LOCKED : u32 = 3 ; pub const RC_IMAGE_TYPE_USER : u32 = 4 ; pub const RC_ACHIEVEMENT_CATEGORY_CORE : u32 = 3 ; pub const RC_ACHIEVEMENT_CATEGORY_UNOFFICIAL : u32 = 5 ; pub const RC_ACHIEVEMENT_TYPE_STANDARD : u32 = 0 ; pub const RC_ACHIEVEMENT_TYPE_MISSABLE : u32 = 1 ; pub const RC_ACHIEVEMENT_TYPE_PROGRESSION : u32 = 2 ; pub const RC_ACHIEVEMENT_TYPE_WIN : u32 = 3 ; pub const RC_CLIENT_LEADERBOARD_DISPLAY_SIZE : u32 = 24 ; pub const RC_OK : _bindgen_ty_1 = 0 ; pub const RC_INVALID_LUA_OPERAND : _bindgen_ty_1 = - 1 ; pub const RC_INVALID_MEMORY_OPERAND : _bindgen_ty_1 = - 2 ; pub const RC_INVALID_CONST_OPERAND : _bindgen_ty_1 = - 3 ; pub const RC_INVALID_FP_OPERAND : _bindgen_ty_1 = - 4 ; pub const RC_INVALID_CONDITION_TYPE : _bindgen_ty_1 = - 5 ; pub const RC_INVALID_OPERATOR : _bindgen_ty_1 = - 6 ; pub const RC_INVALID_REQUIRED_HITS : _bindgen_ty_1 = - 7 ; pub const RC_DUPLICATED_START : _bindgen_ty_1 = - 8 ; pub const RC_DUPLICATED_CANCEL : _bindgen_ty_1 = - 9 ; pub const RC_DUPLICATED_SUBMIT : _bindgen_ty_1 = - 10 ; pub const RC_DUPLICATED_VALUE : _bindgen_ty_1 = - 11 ; pub const RC_DUPLICATED_PROGRESS : _bindgen_ty_1 = - 12 ; pub const RC_MISSING_START : _bindgen_ty_1 = - 13 ; pub const RC_MISSING_CANCEL : _bindgen_ty_1 = - 14 ; pub const RC_MISSING_SUBMIT : _bindgen_ty_1 = - 15 ; pub const RC_MISSING_VALUE : _bindgen_ty_1 = - 16 ; pub const RC_INVALID_LBOARD_FIELD : _bindgen_ty_1 = - 17 ; pub const RC_MISSING_DISPLAY_STRING : _bindgen_ty_1 = - 18 ; pub const RC_OUT_OF_MEMORY : _bindgen_ty_1 = - 19 ; pub const RC_INVALID_VALUE_FLAG : _bindgen_ty_1 = - 20 ; pub const RC_MISSING_VALUE_MEASURED : _bindgen_ty_1 = - 21 ; pub const RC_MULTIPLE_MEASURED : _bindgen_ty_1 = - 22 ; pub const RC_INVALID_MEASURED_TARGET : _bindgen_ty_1 = - 23 ; pub const RC_INVALID_COMPARISON : _bindgen_ty_1 = - 24 ; pub const RC_INVALID_STATE : _bindgen_ty_1 = - 25 ; pub const RC_INVALID_JSON : _bindgen_ty_1 = - 26 ; pub const RC_API_FAILURE : _bindgen_ty_1 = - 27 ; pub const RC_LOGIN_REQUIRED : _bindgen_ty_1 = - 28 ; pub const RC_NO_GAME_LOADED : _bindgen_ty_1 = - 29 ; pub const RC_HARDCORE_DISABLED : _bindgen_ty_1 = - 30 ; pub const RC_ABORTED : _bindgen_ty_1 = - 31 ; pub const RC_NO_RESPONSE : _bindgen_ty_1 = - 32 ; pub const RC_ACCESS_DENIED : _bindgen_ty_1 = - 33 ; pub const RC_INVALID_CREDENTIALS : _bindgen_ty_1 = - 34 ; pub const RC_EXPIRED_TOKEN : _bindgen_ty_1 = - 35 ; pub const RC_INSUFFICIENT_BUFFER : _bindgen_ty_1 = - 36 ; pub const RC_INVALID_VARIABLE_NAME : _bindgen_ty_1 = - 37 ; pub const RC_UNKNOWN_VARIABLE_NAME : _bindgen_ty_1 = - 38 ; # [doc = "\\\n| Return values                                                               |\n\\"] pub type _bindgen_ty_1 = :: core :: ffi :: c_int ; extern "C" { pub fn rc_error_str (ret : :: core :: ffi :: c_int) -> * const :: core :: ffi :: c_char ; } pub type wchar_t = :: core :: ffi :: c_int ; # [repr (C)] # [repr (align (16))] # [derive (Debug , Copy , Clone)] pub struct max_align_t { pub __clang_max_align_nonce1 : :: core :: ffi :: c_longlong , pub __bindgen_padding_0 : u64 , pub __clang_max_align_nonce2 : u128 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of max_align_t"] [:: core :: mem :: size_of :: < max_align_t > () - 32usize] ; ["Alignment of max_align_t"] [:: core :: mem :: align_of :: < max_align_t > () - 16usize] ; ["Offset of field: max_align_t::__clang_max_align_nonce1"] [:: core :: mem :: offset_of ! (max_align_t , __clang_max_align_nonce1) - 0usize] ; ["Offset of field: max_align_t::__clang_max_align_nonce2"] [:: core :: mem :: offset_of ! (max_align_t , __clang_max_align_nonce2) - 16usize] ; } ; pub type __u_char = :: core :: ffi :: c_uchar ; pub type __u_short = :: core :: ffi :: c_ushort ; pub type __u_int = :: core :: ffi :: c_uint ; pub type __u_long = :: core :: ffi :: c_ulong ; pub type __int8_t = :: core :: ffi :: c_schar ; pub type __uint8_t = :: core :: ffi :: c_uchar ; pub type __int16_t = :: core :: ffi :: c_short ; pub type __uint16_t = :: core :: ffi :: c_ushort ; pub type __int32_t = :: core :: ffi :: c_int ; pub type __uint32_t = :: core :: ffi :: c_uint ; pub type __int64_t = :: core :: ffi :: c_long ; pub type __uint64_t = :: core :: ffi :: c_ulong ; pub type __int_least8_t = __int8_t ; pub type __uint_least8_t = __uint8_t ; pub type __int_least16_t = __int16_t ; pub type __uint_least16_t = __uint16_t ; pub type __int_least32_t = __int32_t ; pub type __uint_least32_t = __uint32_t ; pub type __int_least64_t = __int64_t ; pub type __uint_least64_t = __uint64_t ; pub type __quad_t = :: core :: ffi :: c_long ; pub type __u_quad_t = :: core :: ffi :: c_ulong ; pub type __intmax_t = :: core :: ffi :: c_long ; pub type __uintmax_t = :: core :: ffi :: c_ulong ; pub type __dev_t = :: core :: ffi :: c_ulong ; pub type __uid_t = :: core :: ffi :: c_uint ; pub type __gid_t = :: core :: ffi :: c_uint ; pub type __ino_t = :: core :: ffi :: c_ulong ; pub type __ino64_t = :: core :: ffi :: c_ulong ; pub type __mode_t = :: core :: ffi :: c_uint ; pub type __nlink_t = :: core :: ffi :: c_ulong ; pub type __off_t = :: core :: ffi :: c_long ; pub type __off64_t = :: core :: ffi :: c_long ; pub type __pid_t = :: core :: ffi :: c_int ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __fsid_t { pub __val : [:: core :: ffi :: c_int ; 2usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __fsid_t"] [:: core :: mem :: size_of :: < __fsid_t > () - 8usize] ; ["Alignment of __fsid_t"] [:: core :: mem :: align_of :: < __fsid_t > () - 4usize] ; ["Offset of field: __fsid_t::__val"] [:: core :: mem :: offset_of ! (__fsid_t , __val) - 0usize] ; } ; pub type __clock_t = :: core :: ffi :: c_long ; pub type __rlim_t = :: core :: ffi :: c_ulong ; pub type __rlim64_t = :: core :: ffi :: c_ulong ; pub type __id_t = :: core :: ffi :: c_uint ; pub type __time_t = :: core :: ffi :: c_long ; pub type __useconds_t = :: core :: ffi :: c_uint ; pub type __suseconds_t = :: core :: ffi :: c_long ; pub type __suseconds64_t = :: core :: ffi :: c_long ; pub type __daddr_t = :: core :: ffi :: c_int ; pub type __key_t = :: core :: ffi :: c_int ; pub type __clockid_t = :: core :: ffi :: c_int ; pub type __timer_t = * mut :: core :: ffi :: c_void ; pub type __blksize_t = :: core :: ffi :: c_long ; pub type __blkcnt_t = :: core :: ffi :: c_long ; pub type __blkcnt64_t = :: core :: ffi :: c_long ; pub type __fsblkcnt_t = :: core :: ffi :: c_ulong ; pub type __fsblkcnt64_t = :: core :: ffi :: c_ulong ; pub type __fsfilcnt_t = :: core :: ffi :: c_ulong ; pub type __fsfilcnt64_t = :: core :: ffi :: c_ulong ; pub type __fsword_t = :: core :: ffi :: c_long ; pub type __ssize_t = :: core :: ffi :: c_long ; pub type __syscall_slong_t = :: core :: ffi :: c_long ; pub type __syscall_ulong_t = :: core :: ffi :: c_ulong ; pub type __loff_t = __off64_t ; pub type __caddr_t = * mut :: core :: ffi :: c_char ; pub type __intptr_t = :: core :: ffi :: c_long ; pub type __socklen_t = :: core :: ffi :: c_uint ; pub type __sig_atomic_t = :: core :: ffi :: c_int ; pub type int_least8_t = __int_least8_t ; pub type int_least16_t = __int_least16_t ; pub type int_least32_t = __int_least32_t ; pub type int_least64_t = __int_least64_t ; pub type uint_least8_t = __uint_least8_t ; pub type uint_least16_t = __uint_least16_t ; pub type uint_least32_t = __uint_least32_t ; pub type uint_least64_t = __uint_least64_t ; pub type int_fast8_t = :: core :: ffi :: c_schar ; pub type int_fast16_t = :: core :: ffi :: c_long ; pub type int_fast32_t = :: core :: ffi :: c_long ; pub type int_fast64_t = :: core :: ffi :: c_long ; pub type uint_fast8_t = :: core :: ffi :: c_uchar ; pub type uint_fast16_t = :: core :: ffi :: c_ulong ; pub type uint_fast32_t = :: core :: ffi :: c_ulong ; pub type uint_fast64_t = :: core :: ffi :: c_ulong ; pub type intmax_t = __intmax_t ; pub type uintmax_t = __uintmax_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct lua_State { _unused : [u8 ; 0] , } # [doc = " Callback used to read num_bytes bytes from memory starting at address. If\n num_bytes is greater than 1, the value is read in little-endian from\n memory."] pub type rc_peek_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , num_bytes : u32 , ud : * mut :: core :: ffi :: c_void) -> u32 > ; pub const RC_MEMSIZE_8_BITS : _bindgen_ty_2 = 0 ; pub const RC_MEMSIZE_16_BITS : _bindgen_ty_2 = 1 ; pub const RC_MEMSIZE_24_BITS : _bindgen_ty_2 = 2 ; pub const RC_MEMSIZE_32_BITS : _bindgen_ty_2 = 3 ; pub const RC_MEMSIZE_LOW : _bindgen_ty_2 = 4 ; pub const RC_MEMSIZE_HIGH : _bindgen_ty_2 = 5 ; pub const RC_MEMSIZE_BIT_0 : _bindgen_ty_2 = 6 ; pub const RC_MEMSIZE_BIT_1 : _bindgen_ty_2 = 7 ; pub const RC_MEMSIZE_BIT_2 : _bindgen_ty_2 = 8 ; pub const RC_MEMSIZE_BIT_3 : _bindgen_ty_2 = 9 ; pub const RC_MEMSIZE_BIT_4 : _bindgen_ty_2 = 10 ; pub const RC_MEMSIZE_BIT_5 : _bindgen_ty_2 = 11 ; pub const RC_MEMSIZE_BIT_6 : _bindgen_ty_2 = 12 ; pub const RC_MEMSIZE_BIT_7 : _bindgen_ty_2 = 13 ; pub const RC_MEMSIZE_BITCOUNT : _bindgen_ty_2 = 14 ; pub const RC_MEMSIZE_16_BITS_BE : _bindgen_ty_2 = 15 ; pub const RC_MEMSIZE_24_BITS_BE : _bindgen_ty_2 = 16 ; pub const RC_MEMSIZE_32_BITS_BE : _bindgen_ty_2 = 17 ; pub const RC_MEMSIZE_FLOAT : _bindgen_ty_2 = 18 ; pub const RC_MEMSIZE_MBF32 : _bindgen_ty_2 = 19 ; pub const RC_MEMSIZE_MBF32_LE : _bindgen_ty_2 = 20 ; pub const RC_MEMSIZE_FLOAT_BE : _bindgen_ty_2 = 21 ; pub const RC_MEMSIZE_DOUBLE32 : _bindgen_ty_2 = 22 ; pub const RC_MEMSIZE_DOUBLE32_BE : _bindgen_ty_2 = 23 ; pub const RC_MEMSIZE_VARIABLE : _bindgen_ty_2 = 24 ; # [doc = "\\\n| Memory References                                                           |\n\\"] pub type _bindgen_ty_2 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memref_value_t { pub value : u32 , pub prior : u32 , pub size : u8 , pub changed : u8 , pub type_ : u8 , pub is_indirect : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memref_value_t"] [:: core :: mem :: size_of :: < rc_memref_value_t > () - 12usize] ; ["Alignment of rc_memref_value_t"] [:: core :: mem :: align_of :: < rc_memref_value_t > () - 4usize] ; ["Offset of field: rc_memref_value_t::value"] [:: core :: mem :: offset_of ! (rc_memref_value_t , value) - 0usize] ; ["Offset of field: rc_memref_value_t::prior"] [:: core :: mem :: offset_of ! (rc_memref_value_t , prior) - 4usize] ; ["Offset of field: rc_memref_value_t::size"] [:: core :: mem :: offset_of ! (rc_memref_value_t , size) - 8usize] ; ["Offset of field: rc_memref_value_t::changed"] [:: core :: mem :: offset_of ! (rc_memref_value_t , changed) - 9usize] ; ["Offset of field: rc_memref_value_t::type_"] [:: core :: mem :: offset_of ! (rc_memref_value_t , type_) - 10usize] ; ["Offset of field: rc_memref_value_t::is_indirect"] [:: core :: mem :: offset_of ! (rc_memref_value_t , is_indirect) - 11usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memref_t { pub value : rc_memref_value_t , pub address : u32 , pub next : * mut rc_memref_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memref_t"] [:: core :: mem :: size_of :: < rc_memref_t > () - 24usize] ; ["Alignment of rc_memref_t"] [:: core :: mem :: align_of :: < rc_memref_t > () - 8usize] ; ["Offset of field: rc_memref_t::value"] [:: core :: mem :: offset_of ! (rc_memref_t , value) - 0usize] ; ["Offset of field: rc_memref_t::address"] [:: core :: mem :: offset_of ! (rc_memref_t , address) - 12usize] ; ["Offset of field: rc_memref_t::next"] [:: core :: mem :: offset_of ! (rc_memref_t , next) - 16usize] ; } ; pub const RC_OPERAND_ADDRESS : _bindgen_ty_3 = 0 ; pub const RC_OPERAND_DELTA : _bindgen_ty_3 = 1 ; pub const RC_OPERAND_CONST : _bindgen_ty_3 = 2 ; pub const RC_OPERAND_FP : _bindgen_ty_3 = 3 ; pub const RC_OPERAND_LUA : _bindgen_ty_3 = 4 ; pub const RC_OPERAND_PRIOR : _bindgen_ty_3 = 5 ; pub const RC_OPERAND_BCD : _bindgen_ty_3 = 6 ; pub const RC_OPERAND_INVERTED : _bindgen_ty_3 = 7 ; pub const RC_OPERAND_RECALL : _bindgen_ty_3 = 8 ; # [doc = "\\\n| Operands                                                                    |\n\\"] pub type _bindgen_ty_3 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Copy , Clone)] pub struct rc_operand_t { pub value : rc_operand_t__bindgen_ty_1 , pub type_ : u8 , pub size : u8 , } # [repr (C)] # [derive (Copy , Clone)] pub union rc_operand_t__bindgen_ty_1 { pub memref : * mut rc_memref_t , pub num : u32 , pub dbl : f64 , pub luafunc : :: core :: ffi :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_operand_t__bindgen_ty_1"] [:: core :: mem :: size_of :: < rc_operand_t__bindgen_ty_1 > () - 8usize] ; ["Alignment of rc_operand_t__bindgen_ty_1"] [:: core :: mem :: align_of :: < rc_operand_t__bindgen_ty_1 > () - 8usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::memref"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , memref) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::num"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , num) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::dbl"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , dbl) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::luafunc"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , luafunc) - 0usize] ; } ; impl :: core :: fmt :: Debug for rc_operand_t__bindgen_ty_1 { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_operand_t__bindgen_ty_1 {{ union }}") } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_operand_t"] [:: core :: mem :: size_of :: < rc_operand_t > () - 16usize] ; ["Alignment of rc_operand_t"] [:: core :: mem :: align_of :: < rc_operand_t > () - 8usize] ; ["Offset of field: rc_operand_t::value"] [:: core :: mem :: offset_of ! (rc_operand_t , value) - 0usize] ; ["Offset of field: rc_operand_t::type_"] [:: core :: mem :: offset_of ! (rc_operand_t , type_) - 8usize] ; ["Offset of field: rc_operand_t::size"] [:: core :: mem :: offset_of ! (rc_operand_t , size) - 9usize] ; } ; impl :: core :: fmt :: Debug for rc_operand_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_operand_t {{ value: {:?}, type: {:?}, size: {:?} }}" , self . value , self . type_ , self . size) } } extern "C" { pub fn rc_operand_is_memref (operand : * const rc_operand_t) -> :: core :: ffi :: c_int ; } pub const RC_CONDITION_STANDARD : _bindgen_ty_4 = 0 ; pub const RC_CONDITION_PAUSE_IF : _bindgen_ty_4 = 1 ; pub const RC_CONDITION_RESET_IF : _bindgen_ty_4 = 2 ; pub const RC_CONDITION_MEASURED_IF : _bindgen_ty_4 = 3 ; pub const RC_CONDITION_TRIGGER : _bindgen_ty_4 = 4 ; pub const RC_CONDITION_MEASURED : _bindgen_ty_4 = 5 ; pub const RC_CONDITION_ADD_SOURCE : _bindgen_ty_4 = 6 ; pub const RC_CONDITION_SUB_SOURCE : _bindgen_ty_4 = 7 ; pub const RC_CONDITION_ADD_ADDRESS : _bindgen_ty_4 = 8 ; pub const RC_CONDITION_REMEMBER : _bindgen_ty_4 = 9 ; pub const RC_CONDITION_ADD_HITS : _bindgen_ty_4 = 10 ; pub const RC_CONDITION_SUB_HITS : _bindgen_ty_4 = 11 ; pub const RC_CONDITION_RESET_NEXT_IF : _bindgen_ty_4 = 12 ; pub const RC_CONDITION_AND_NEXT : _bindgen_ty_4 = 13 ; pub const RC_CONDITION_OR_NEXT : _bindgen_ty_4 = 14 ; # [doc = "\\\n| Conditions                                                                  |\n\\"] pub type _bindgen_ty_4 = :: core :: ffi :: c_uint ; pub const RC_OPERATOR_EQ : _bindgen_ty_5 = 0 ; pub const RC_OPERATOR_LT : _bindgen_ty_5 = 1 ; pub const RC_OPERATOR_LE : _bindgen_ty_5 = 2 ; pub const RC_OPERATOR_GT : _bindgen_ty_5 = 3 ; pub const RC_OPERATOR_GE : _bindgen_ty_5 = 4 ; pub const RC_OPERATOR_NE : _bindgen_ty_5 = 5 ; pub const RC_OPERATOR_NONE : _bindgen_ty_5 = 6 ; pub const RC_OPERATOR_MULT : _bindgen_ty_5 = 7 ; pub const RC_OPERATOR_DIV : _bindgen_ty_5 = 8 ; pub const RC_OPERATOR_AND : _bindgen_ty_5 = 9 ; pub const RC_OPERATOR_XOR : _bindgen_ty_5 = 10 ; pub const RC_OPERATOR_MOD : _bindgen_ty_5 = 11 ; pub const RC_OPERATOR_ADD : _bindgen_ty_5 = 12 ; pub const RC_OPERATOR_SUB : _bindgen_ty_5 = 13 ; pub type _bindgen_ty_5 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Copy , Clone)] pub struct rc_condition_t { pub operand1 : rc_operand_t , pub operand2 : rc_operand_t , pub required_hits : u32 , pub current_hits : u32 , pub next : * mut rc_condition_t , pub type_ : u8 , pub oper : u8 , pub pause : u8 , pub is_true : u8 , pub optimized_comparator : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_condition_t"] [:: core :: mem :: size_of :: < rc_condition_t > () - 56usize] ; ["Alignment of rc_condition_t"] [:: core :: mem :: align_of :: < rc_condition_t > () - 8usize] ; ["Offset of field: rc_condition_t::operand1"] [:: core :: mem :: offset_of ! (rc_condition_t , operand1) - 0usize] ; ["Offset of field: rc_condition_t::operand2"] [:: core :: mem :: offset_of ! (rc_condition_t , operand2) - 16usize] ; ["Offset of field: rc_condition_t::required_hits"] [:: core :: mem :: offset_of ! (rc_condition_t , required_hits) - 32usize] ; ["Offset of field: rc_condition_t::current_hits"] [:: core :: mem :: offset_of ! (rc_condition_t , current_hits) - 36usize] ; ["Offset of field: rc_condition_t::next"] [:: core :: mem :: offset_of ! (rc_condition_t , next) - 40usize] ; ["Offset of field: rc_condition_t::type_"] [:: core :: mem :: offset_of ! (rc_condition_t , type_) - 48usize] ; ["Offset of field: rc_condition_t::oper"] [:: core :: mem :: offset_of ! (rc_condition_t , oper) - 49usize] ; ["Offset of field: rc_condition_t::pause"] [:: core :: mem :: offset_of ! (rc_condition_t , pause) - 50usize] ; ["Offset of field: rc_condition_t::is_true"] [:: core :: mem :: offset_of ! (rc_condition_t , is_true) - 51usize] ; ["Offset of field: rc_condition_t::optimized_comparator"] [:: core :: mem :: offset_of ! (rc_condition_t , optimized_comparator) - 52usize] ; } ; impl :: core :: fmt :: Debug for rc_condition_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_condition_t {{ operand1: {:?}, operand2: {:?}, required_hits: {:?}, current_hits: {:?}, next: {:?}, type: {:?}, oper: {:?}, pause: {:?}, is_true: {:?}, optimized_comparator: {:?} }}" , self . operand1 , self . operand2 , self . required_hits , self . current_hits , self . next , self . type_ , self . oper , self . pause , self . is_true , self . optimized_comparator) } } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_condset_t { pub next : * mut rc_condset_t , pub conditions : * mut rc_condition_t , pub has_pause : u8 , pub is_paused : u8 , pub has_indirect_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_condset_t"] [:: core :: mem :: size_of :: < rc_condset_t > () - 24usize] ; ["Alignment of rc_condset_t"] [:: core :: mem :: align_of :: < rc_condset_t > () - 8usize] ; ["Offset of field: rc_condset_t::next"] [:: core :: mem :: offset_of ! (rc_condset_t , next) - 0usize] ; ["Offset of field: rc_condset_t::conditions"] [:: core :: mem :: offset_of ! (rc_condset_t , conditions) - 8usize] ; ["Offset of field: rc_condset_t::has_pause"] [:: core :: mem :: offset_of ! (rc_condset_t , has_pause) - 16usize] ; ["Offset of field: rc_condset_t::is_paused"] [:: core :: mem :: offset_of ! (rc_condset_t , is_paused) - 17usize] ; ["Offset of field: rc_condset_t::has_indirect_memrefs"] [:: core :: mem :: offset_of ! (rc_condset_t , has_indirect_memrefs) - 18usize] ; } ; pub const RC_TRIGGER_STATE_INACTIVE : _bindgen_ty_6 = 0 ; pub const RC_TRIGGER_STATE_WAITING : _bindgen_ty_6 = 1 ; pub const RC_TRIGGER_STATE_ACTIVE : _bindgen_ty_6 = 2 ; pub const RC_TRIGGER_STATE_PAUSED : _bindgen_ty_6 = 3 ; pub const RC_TRIGGER_STATE_RESET : _bindgen_ty_6 = 4 ; pub const RC_TRIGGER_STATE_TRIGGERED : _bindgen_ty_6 = 5 ; pub const RC_TRIGGER_STATE_PRIMED : _bindgen_ty_6 = 6 ; pub const RC_TRIGGER_STATE_DISABLED : _bindgen_ty_6 = 7 ; # [doc = "\\\n| Trigger                                                                     |\n\\"] pub type _bindgen_ty_6 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_trigger_t { pub requirement : * mut rc_condset_t , pub alternative : * mut rc_condset_t , pub memrefs : * mut rc_memref_t , pub measured_value : u32 , pub measured_target : u32 , pub state : u8 , pub has_hits : u8 , pub has_required_hits : u8 , pub measured_as_percent : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_trigger_t"] [:: core :: mem :: size_of :: < rc_trigger_t > () - 40usize] ; ["Alignment of rc_trigger_t"] [:: core :: mem :: align_of :: < rc_trigger_t > () - 8usize] ; ["Offset of field: rc_trigger_t::requirement"] [:: core :: mem :: offset_of ! (rc_trigger_t , requirement) - 0usize] ; ["Offset of field: rc_trigger_t::alternative"] [:: core :: mem :: offset_of ! (rc_trigger_t , alternative) - 8usize] ; ["Offset of field: rc_trigger_t::memrefs"] [:: core :: mem :: offset_of ! (rc_trigger_t , memrefs) - 16usize] ; ["Offset of field: rc_trigger_t::measured_value"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_value) - 24usize] ; ["Offset of field: rc_trigger_t::measured_target"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_target) - 28usize] ; ["Offset of field: rc_trigger_t::state"] [:: core :: mem :: offset_of ! (rc_trigger_t , state) - 32usize] ; ["Offset of field: rc_trigger_t::has_hits"] [:: core :: mem :: offset_of ! (rc_trigger_t , has_hits) - 33usize] ; ["Offset of field: rc_trigger_t::has_required_hits"] [:: core :: mem :: offset_of ! (rc_trigger_t , has_required_hits) - 34usize] ; ["Offset of field: rc_trigger_t::measured_as_percent"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_as_percent) - 35usize] ; } ; extern "C" { pub fn rc_trigger_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_trigger (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_trigger_t ; } extern "C" { pub fn rc_evaluate_trigger (trigger : * mut rc_trigger_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_test_trigger (trigger : * mut rc_trigger_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_trigger (self_ : * mut rc_trigger_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_value_t { pub value : rc_memref_value_t , pub conditions : * mut rc_condset_t , pub memrefs : * mut rc_memref_t , pub name : * const :: core :: ffi :: c_char , pub next : * mut rc_value_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_value_t"] [:: core :: mem :: size_of :: < rc_value_t > () - 48usize] ; ["Alignment of rc_value_t"] [:: core :: mem :: align_of :: < rc_value_t > () - 8usize] ; ["Offset of field: rc_value_t::value"] [:: core :: mem :: offset_of ! (rc_value_t , value) - 0usize] ; ["Offset of field: rc_value_t::conditions"] [:: core :: mem :: offset_of ! (rc_value_t , conditions) - 16usize] ; ["Offset of field: rc_value_t::memrefs"] [:: core :: mem :: offset_of ! (rc_value_t , memrefs) - 24usize] ; ["Offset of field: rc_value_t::name"] [:: core :: mem :: offset_of ! (rc_value_t , name) - 32usize] ; ["Offset of field: rc_value_t::next"] [:: core :: mem :: offset_of ! (rc_value_t , next) - 40usize] ; } ; extern "C" { pub fn rc_value_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_value (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_value_t ; } extern "C" { pub fn rc_evaluate_value (value : * mut rc_value_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> i32 ; } pub const RC_LBOARD_STATE_INACTIVE : _bindgen_ty_7 = 0 ; pub const RC_LBOARD_STATE_WAITING : _bindgen_ty_7 = 1 ; pub const RC_LBOARD_STATE_ACTIVE : _bindgen_ty_7 = 2 ; pub const RC_LBOARD_STATE_STARTED : _bindgen_ty_7 = 3 ; pub const RC_LBOARD_STATE_CANCELED : _bindgen_ty_7 = 4 ; pub const RC_LBOARD_STATE_TRIGGERED : _bindgen_ty_7 = 5 ; pub const RC_LBOARD_STATE_DISABLED : _bindgen_ty_7 = 6 ; # [doc = "\\\n| Leaderboards                                                                |\n\\"] pub type _bindgen_ty_7 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_lboard_t { pub start : rc_trigger_t , pub submit : rc_trigger_t , pub cancel : rc_trigger_t , pub value : rc_value_t , pub progress : * mut rc_value_t , pub memrefs : * mut rc_memref_t , pub state : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_lboard_t"] [:: core :: mem :: size_of :: < rc_lboard_t > () - 192usize] ; ["Alignment of rc_lboard_t"] [:: core :: mem :: align_of :: < rc_lboard_t > () - 8usize] ; ["Offset of field: rc_lboard_t::start"] [:: core :: mem :: offset_of ! (rc_lboard_t , start) - 0usize] ; ["Offset of field: rc_lboard_t::submit"] [:: core :: mem :: offset_of ! (rc_lboard_t , submit) - 40usize] ; ["Offset of field: rc_lboard_t::cancel"] [:: core :: mem :: offset_of ! (rc_lboard_t , cancel) - 80usize] ; ["Offset of field: rc_lboard_t::value"] [:: core :: mem :: offset_of ! (rc_lboard_t , value) - 120usize] ; ["Offset of field: rc_lboard_t::progress"] [:: core :: mem :: offset_of ! (rc_lboard_t , progress) - 168usize] ; ["Offset of field: rc_lboard_t::memrefs"] [:: core :: mem :: offset_of ! (rc_lboard_t , memrefs) - 176usize] ; ["Offset of field: rc_lboard_t::state"] [:: core :: mem :: offset_of ! (rc_lboard_t , state) - 184usize] ; } ; extern "C" { pub fn rc_lboard_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_lboard (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_lboard_t ; } extern "C" { pub fn rc_evaluate_lboard (lboard : * mut rc_lboard_t , value : * mut i32 , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_lboard (lboard : * mut rc_lboard_t) ; } pub const RC_FORMAT_FRAMES : _bindgen_ty_8 = 0 ; pub const RC_FORMAT_SECONDS : _bindgen_ty_8 = 1 ; pub const RC_FORMAT_CENTISECS : _bindgen_ty_8 = 2 ; pub const RC_FORMAT_SCORE : _bindgen_ty_8 = 3 ; pub const RC_FORMAT_VALUE : _bindgen_ty_8 = 4 ; pub const RC_FORMAT_MINUTES : _bindgen_ty_8 = 5 ; pub const RC_FORMAT_SECONDS_AS_MINUTES : _bindgen_ty_8 = 6 ; pub const RC_FORMAT_FLOAT1 : _bindgen_ty_8 = 7 ; pub const RC_FORMAT_FLOAT2 : _bindgen_ty_8 = 8 ; pub const RC_FORMAT_FLOAT3 : _bindgen_ty_8 = 9 ; pub const RC_FORMAT_FLOAT4 : _bindgen_ty_8 = 10 ; pub const RC_FORMAT_FLOAT5 : _bindgen_ty_8 = 11 ; pub const RC_FORMAT_FLOAT6 : _bindgen_ty_8 = 12 ; pub const RC_FORMAT_FIXED1 : _bindgen_ty_8 = 13 ; pub const RC_FORMAT_FIXED2 : _bindgen_ty_8 = 14 ; pub const RC_FORMAT_FIXED3 : _bindgen_ty_8 = 15 ; pub const RC_FORMAT_TENS : _bindgen_ty_8 = 16 ; pub const RC_FORMAT_HUNDREDS : _bindgen_ty_8 = 17 ; pub const RC_FORMAT_THOUSANDS : _bindgen_ty_8 = 18 ; pub const RC_FORMAT_UNSIGNED_VALUE : _bindgen_ty_8 = 19 ; # [doc = "\\\n| Value formatting                                                            |\n\\"] pub type _bindgen_ty_8 = :: core :: ffi :: c_uint ; extern "C" { pub fn rc_parse_format (format_str : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_format_value (buffer : * mut :: core :: ffi :: c_char , size : :: core :: ffi :: c_int , value : i32 , format : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_lookup_item_t { pub first : u32 , pub last : u32 , pub left : * mut rc_richpresence_lookup_item_t , pub right : * mut rc_richpresence_lookup_item_t , pub label : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_lookup_item_t"] [:: core :: mem :: size_of :: < rc_richpresence_lookup_item_t > () - 32usize] ; ["Alignment of rc_richpresence_lookup_item_t"] [:: core :: mem :: align_of :: < rc_richpresence_lookup_item_t > () - 8usize] ; ["Offset of field: rc_richpresence_lookup_item_t::first"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , first) - 0usize] ; ["Offset of field: rc_richpresence_lookup_item_t::last"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , last) - 4usize] ; ["Offset of field: rc_richpresence_lookup_item_t::left"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , left) - 8usize] ; ["Offset of field: rc_richpresence_lookup_item_t::right"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , right) - 16usize] ; ["Offset of field: rc_richpresence_lookup_item_t::label"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , label) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_lookup_t { pub root : * mut rc_richpresence_lookup_item_t , pub next : * mut rc_richpresence_lookup_t , pub name : * const :: core :: ffi :: c_char , pub default_label : * const :: core :: ffi :: c_char , pub format : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_lookup_t"] [:: core :: mem :: size_of :: < rc_richpresence_lookup_t > () - 40usize] ; ["Alignment of rc_richpresence_lookup_t"] [:: core :: mem :: align_of :: < rc_richpresence_lookup_t > () - 8usize] ; ["Offset of field: rc_richpresence_lookup_t::root"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , root) - 0usize] ; ["Offset of field: rc_richpresence_lookup_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , next) - 8usize] ; ["Offset of field: rc_richpresence_lookup_t::name"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , name) - 16usize] ; ["Offset of field: rc_richpresence_lookup_t::default_label"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , default_label) - 24usize] ; ["Offset of field: rc_richpresence_lookup_t::format"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , format) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_display_part_t { pub next : * mut rc_richpresence_display_part_t , pub text : * const :: core :: ffi :: c_char , pub lookup : * mut rc_richpresence_lookup_t , pub value : * mut rc_memref_value_t , pub display_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_display_part_t"] [:: core :: mem :: size_of :: < rc_richpresence_display_part_t > () - 40usize] ; ["Alignment of rc_richpresence_display_part_t"] [:: core :: mem :: align_of :: < rc_richpresence_display_part_t > () - 8usize] ; ["Offset of field: rc_richpresence_display_part_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , next) - 0usize] ; ["Offset of field: rc_richpresence_display_part_t::text"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , text) - 8usize] ; ["Offset of field: rc_richpresence_display_part_t::lookup"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , lookup) - 16usize] ; ["Offset of field: rc_richpresence_display_part_t::value"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , value) - 24usize] ; ["Offset of field: rc_richpresence_display_part_t::display_type"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , display_type) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_display_t { pub trigger : rc_trigger_t , pub next : * mut rc_richpresence_display_t , pub display : * mut rc_richpresence_display_part_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_display_t"] [:: core :: mem :: size_of :: < rc_richpresence_display_t > () - 56usize] ; ["Alignment of rc_richpresence_display_t"] [:: core :: mem :: align_of :: < rc_richpresence_display_t > () - 8usize] ; ["Offset of field: rc_richpresence_display_t::trigger"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , trigger) - 0usize] ; ["Offset of field: rc_richpresence_display_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , next) - 40usize] ; ["Offset of field: rc_richpresence_display_t::display"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , display) - 48usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_t { pub first_display : * mut rc_richpresence_display_t , pub first_lookup : * mut rc_richpresence_lookup_t , pub memrefs : * mut rc_memref_t , pub variables : * mut rc_value_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_t"] [:: core :: mem :: size_of :: < rc_richpresence_t > () - 32usize] ; ["Alignment of rc_richpresence_t"] [:: core :: mem :: align_of :: < rc_richpresence_t > () - 8usize] ; ["Offset of field: rc_richpresence_t::first_display"] [:: core :: mem :: offset_of ! (rc_richpresence_t , first_display) - 0usize] ; ["Offset of field: rc_richpresence_t::first_lookup"] [:: core :: mem :: offset_of ! (rc_richpresence_t , first_lookup) - 8usize] ; ["Offset of field: rc_richpresence_t::memrefs"] [:: core :: mem :: offset_of ! (rc_richpresence_t , memrefs) - 16usize] ; ["Offset of field: rc_richpresence_t::variables"] [:: core :: mem :: offset_of ! (rc_richpresence_t , variables) - 24usize] ; } ; extern "C" { pub fn rc_richpresence_size (script : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_richpresence_size_lines (script : * const :: core :: ffi :: c_char , lines_read : * mut :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_richpresence (buffer : * mut :: core :: ffi :: c_void , script : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_richpresence_t ; } extern "C" { pub fn rc_evaluate_richpresence (richpresence : * mut rc_richpresence_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_update_richpresence (richpresence : * mut rc_richpresence_t , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) ; } extern "C" { pub fn rc_get_richpresence_display_string (richpresence : * mut rc_richpresence_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_richpresence (self_ : * mut rc_richpresence_t) ; } # [doc = " A block of memory for variable length data (like strings and arrays)."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_buffer_chunk_t { pub write : * mut u8 , pub end : * mut u8 , pub start : * mut u8 , pub next : * mut rc_buffer_chunk_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_buffer_chunk_t"] [:: core :: mem :: size_of :: < rc_buffer_chunk_t > () - 32usize] ; ["Alignment of rc_buffer_chunk_t"] [:: core :: mem :: align_of :: < rc_buffer_chunk_t > () - 8usize] ; ["Offset of field: rc_buffer_chunk_t::write"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , write) - 0usize] ; ["Offset of field: rc_buffer_chunk_t::end"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , end) - 8usize] ; ["Offset of field: rc_buffer_chunk_t::start"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , start) - 16usize] ; ["Offset of field: rc_buffer_chunk_t::next"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , next) - 24usize] ; } ; # [doc = " A preallocated block of memory for variable length data (like strings and arrays)."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_buffer_t { pub chunk : rc_buffer_chunk_t , pub data : [u8 ; 256usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_buffer_t"] [:: core :: mem :: size_of :: < rc_buffer_t > () - 288usize] ; ["Alignment of rc_buffer_t"] [:: core :: mem :: align_of :: < rc_buffer_t > () - 8usize] ; ["Offset of field: rc_buffer_t::chunk"] [:: core :: mem :: offset_of ! (rc_buffer_t , chunk) - 0usize] ; ["Offset of field: rc_buffer_t::data"] [:: core :: mem :: offset_of ! (rc_buffer_t , data) - 32usize] ; } ; extern "C" { pub fn rc_buffer_init (buffer : * mut rc_buffer_t) ; } extern "C" { pub fn rc_buffer_destroy (buffer : * mut rc_buffer_t) ; } extern "C" { pub fn rc_buffer_reserve (buffer : * mut rc_buffer_t , amount : usize) -> * mut u8 ; } extern "C" { pub fn rc_buffer_consume (buffer : * mut rc_buffer_t , start : * const u8 , end : * mut u8) ; } extern "C" { pub fn rc_buffer_alloc (buffer : * mut rc_buffer_t , amount : usize) -> * mut :: core :: ffi :: c_void ; } extern "C" { pub fn rc_buffer_strcpy (buffer : * mut rc_buffer_t , src : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn rc_buffer_strncpy (buffer : * mut rc_buffer_t , src : * const :: core :: ffi :: c_char , len : usize) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn rc_djb2 (input : * const :: core :: ffi :: c_char) -> u32 ; } extern "C" { pub fn rc_format_md5 (checksum : * mut :: core :: ffi :: c_char , digest : * const u8) ; } # [doc = " A constructed request to send to the retroachievements server."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_request_t { pub url : * const :: core :: ffi :: c_char , pub post_data : * const :: core :: ffi :: c_char , pub content_type : * const :: core :: ffi :: c_char , pub buffer : rc_buffer_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_request_t"] [:: core :: mem :: size_of :: < rc_api_request_t > () - 312usize] ; ["Alignment of rc_api_request_t"] [:: core :: mem :: align_of :: < rc_api_request_t > () - 8usize] ; ["Offset of field: rc_api_request_t::url"] [:: core :: mem :: offset_of ! (rc_api_request_t , url) - 0usize] ; ["Offset of field: rc_api_request_t::post_data"] [:: core :: mem :: offset_of ! (rc_api_request_t , post_data) - 8usize] ; ["Offset of field: rc_api_request_t::content_type"] [:: core :: mem :: offset_of ! (rc_api_request_t , content_type) - 16usize] ; ["Offset of field: rc_api_request_t::buffer"] [:: core :: mem :: offset_of ! (rc_api_request_t , buffer) - 24usize] ; } ; # [doc = " Common attributes for all server responses."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_response_t { pub succeeded : :: core :: ffi :: c_int , pub error_message : * const :: core :: ffi :: c_char , pub error_code : * const :: core :: ffi :: c_char , pub buffer : rc_buffer_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_response_t"] [:: core :: mem :: size_of :: < rc_api_response_t > () - 312usize] ; ["Alignment of rc_api_response_t"] [:: core :: mem :: align_of :: < rc_api_response_t > () - 8usize] ; ["Offset of field: rc_api_response_t::succeeded"] [:: core :: mem :: offset_of ! (rc_api_response_t , succeeded) - 0usize] ; ["Offset of field: rc_api_response_t::error_message"] [:: core :: mem :: offset_of ! (rc_api_response_t , error_message) - 8usize] ; ["Offset of field: rc_api_response_t::error_code"] [:: core :: mem :: offset_of ! (rc_api_response_t , error_code) - 16usize] ; ["Offset of field: rc_api_response_t::buffer"] [:: core :: mem :: offset_of ! (rc_api_response_t , buffer) - 24usize] ; } ; extern "C" { pub fn rc_api_destroy_request (request : * mut rc_api_request_t) ; } extern "C" { pub fn rc_api_set_host (hostname : * const :: core :: ffi :: c_char) ; } extern "C" { pub fn rc_api_set_image_host (hostname : * const :: core :: ffi :: c_char) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_server_response_t { pub body : * const :: core :: ffi :: c_char , pub body_length : usize , pub http_status_code : :: core :: ffi :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_server_response_t"] [:: core :: mem :: size_of :: < rc_api_server_response_t > () - 24usize] ; ["Alignment of rc_api_server_response_t"] [:: core :: mem :: align_of :: < rc_api_server_response_t > () - 8usize] ; ["Offset of field: rc_api_server_response_t::body"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , body) - 0usize] ; ["Offset of field: rc_api_server_response_t::body_length"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , body_length) - 8usize] ; ["Offset of field: rc_api_server_response_t::http_status_code"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , http_status_code) - 16usize] ; } ; pub const RC_API_SERVER_RESPONSE_CLIENT_ERROR : _bindgen_ty_9 = - 1 ; pub const RC_API_SERVER_RESPONSE_RETRYABLE_CLIENT_ERROR : _bindgen_ty_9 = - 2 ; pub type _bindgen_ty_9 = :: core :: ffi :: c_int ; pub type clock_t = __clock_t ; pub type time_t = __time_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct tm { pub tm_sec : :: core :: ffi :: c_int , pub tm_min : :: core :: ffi :: c_int , pub tm_hour : :: core :: ffi :: c_int , pub tm_mday : :: core :: ffi :: c_int , pub tm_mon : :: core :: ffi :: c_int , pub tm_year : :: core :: ffi :: c_int , pub tm_wday : :: core :: ffi :: c_int , pub tm_yday : :: core :: ffi :: c_int , pub tm_isdst : :: core :: ffi :: c_int , pub tm_gmtoff : :: core :: ffi :: c_long , pub tm_zone : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of tm"] [:: core :: mem :: size_of :: < tm > () - 56usize] ; ["Alignment of tm"] [:: core :: mem :: align_of :: < tm > () - 8usize] ; ["Offset of field: tm::tm_sec"] [:: core :: mem :: offset_of ! (tm , tm_sec) - 0usize] ; ["Offset of field: tm::tm_min"] [:: core :: mem :: offset_of ! (tm , tm_min) - 4usize] ; ["Offset of field: tm::tm_hour"] [:: core :: mem :: offset_of ! (tm , tm_hour) - 8usize] ; ["Offset of field: tm::tm_mday"] [:: core :: mem :: offset_of ! (tm , tm_mday) - 12usize] ; ["Offset of field: tm::tm_mon"] [:: core :: mem :: offset_of ! (tm , tm_mon) - 16usize] ; ["Offset of field: tm::tm_year"] [:: core :: mem :: offset_of ! (tm , tm_year) - 20usize] ; ["Offset of field: tm::tm_wday"] [:: core :: mem :: offset_of ! (tm , tm_wday) - 24usize] ; ["Offset of field: tm::tm_yday"] [:: core :: mem :: offset_of ! (tm , tm_yday) - 28usize] ; ["Offset of field: tm::tm_isdst"] [:: core :: mem :: offset_of ! (tm , tm_isdst) - 32usize] ; ["Offset of field: tm::tm_gmtoff"] [:: core :: mem :: offset_of ! (tm , tm_gmtoff) - 40usize] ; ["Offset of field: tm::tm_zone"] [:: core :: mem :: offset_of ! (tm , tm_zone) - 48usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct timespec { pub tv_sec : __time_t , pub tv_nsec : __syscall_slong_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of timespec"] [:: core :: mem :: size_of :: < timespec > () - 16usize] ; ["Alignment of timespec"] [:: core :: mem :: align_of :: < timespec > () - 8usize] ; ["Offset of field: timespec::tv_sec"] [:: core :: mem :: offset_of ! (timespec , tv_sec) - 0usize] ; ["Offset of field: timespec::tv_nsec"] [:: core :: mem :: offset_of ! (timespec , tv_nsec) - 8usize] ; } ; pub type clockid_t = __clockid_t ; pub type timer_t = __timer_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct itimerspec { pub it_interval : timespec , pub it_value : timespec , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of itimerspec"] [:: core :: mem :: size_of :: < itimerspec > () - 32usize] ; ["Alignment of itimerspec"] [:: core :: mem :: align_of :: < itimerspec > () - 8usize] ; ["Offset of field: itimerspec::it_interval"] [:: core :: mem :: offset_of ! (itimerspec , it_interval) - 0usize] ; ["Offset of field: itimerspec::it_value"] [:: core :: mem :: offset_of ! (itimerspec , it_value) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct sigevent { _unused : [u8 ; 0] , } pub type pid_t = __pid_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __locale_struct { pub __locales : [* mut __locale_data ; 13usize] , pub __ctype_b : * const :: core :: ffi :: c_ushort , pub __ctype_tolower : * const :: core :: ffi :: c_int , pub __ctype_toupper : * const :: core :: ffi :: c_int , pub __names : [* const :: core :: ffi :: c_char ; 13usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __locale_struct"] [:: core :: mem :: size_of :: < __locale_struct > () - 232usize] ; ["Alignment of __locale_struct"] [:: core :: mem :: align_of :: < __locale_struct > () - 8usize] ; ["Offset of field: __locale_struct::__locales"] [:: core :: mem :: offset_of ! (__locale_struct , __locales) - 0usize] ; ["Offset of field: __locale_struct::__ctype_b"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_b) - 104usize] ; ["Offset of field: __locale_struct::__ctype_tolower"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_tolower) - 112usize] ; ["Offset of field: __locale_struct::__ctype_toupper"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_toupper) - 120usize] ; ["Offset of field: __locale_struct::__names"] [:: core :: mem :: offset_of ! (__locale_struct , __names) - 128usize] ; } ; pub type __locale_t = * mut __locale_struct ; pub type locale_t = __locale_t ; extern "C" { pub fn clock () -> clock_t ; } extern "C" { pub fn time (__timer : * mut time_t) -> time_t ; } extern "C" { pub fn difftime (__time1 : time_t , __time0 : time_t) -> f64 ; } extern "C" { pub fn mktime (__tp : * mut tm) -> time_t ; } extern "C" { pub fn strftime (__s : * mut :: core :: ffi :: c_char , __maxsize : usize , __format : * const :: core :: ffi :: c_char , __tp : * const tm) -> usize ; } extern "C" { pub fn strftime_l (__s : * mut :: core :: ffi :: c_char , __maxsize : usize , __format : * const :: core :: ffi :: c_char , __tp : * const tm , __loc : locale_t) -> usize ; } extern "C" { pub fn gmtime (__timer : * const time_t) -> * mut tm ; } extern "C" { pub fn localtime (__timer : * const time_t) -> * mut tm ; } extern "C" { pub fn gmtime_r (__timer : * const time_t , __tp : * mut tm) -> * mut tm ; } extern "C" { pub fn localtime_r (__timer : * const time_t , __tp : * mut tm) -> * mut tm ; } extern "C" { pub fn asctime (__tp : * const tm) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn ctime (__timer : * const time_t) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn asctime_r (__tp : * const tm , __buf : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn ctime_r (__timer : * const time_t , __buf : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub static mut __tzname : [* mut :: core :: ffi :: c_char ; 2usize] ; } extern "C" { pub static mut __daylight : :: core :: ffi :: c_int ; } extern "C" { pub static mut __timezone : :: core :: ffi :: c_long ; } extern "C" { pub static mut tzname : [* mut :: core :: ffi :: c_char ; 2usize] ; } extern "C" { pub fn tzset () ; } extern "C" { pub static mut daylight : :: core :: ffi :: c_int ; } extern "C" { pub static mut timezone : :: core :: ffi :: c_long ; } extern "C" { pub fn timegm (__tp : * mut tm) -> time_t ; } extern "C" { pub fn timelocal (__tp : * mut tm) -> time_t ; } extern "C" { pub fn dysize (__year : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn nanosleep (__requested_time : * const timespec , __remaining : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_getres (__clock_id : clockid_t , __res : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_gettime (__clock_id : clockid_t , __tp : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_settime (__clock_id : clockid_t , __tp : * const timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_nanosleep (__clock_id : clockid_t , __flags : :: core :: ffi :: c_int , __req : * const timespec , __rem : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_getcpuclockid (__pid : pid_t , __clock_id : * mut clockid_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_create (__clock_id : clockid_t , __evp : * mut sigevent , __timerid : * mut timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_delete (__timerid : timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_settime (__timerid : timer_t , __flags : :: core :: ffi :: c_int , __value : * const itimerspec , __ovalue : * mut itimerspec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_gettime (__timerid : timer_t , __value : * mut itimerspec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_getoverrun (__timerid : timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timespec_get (__ts : * mut timespec , __base : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } # [doc = " API parameters for a login request.\n If both password and api_token are provided, api_token will be ignored."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_login_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub password : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_login_request_t"] [:: core :: mem :: size_of :: < rc_api_login_request_t > () - 24usize] ; ["Alignment of rc_api_login_request_t"] [:: core :: mem :: align_of :: < rc_api_login_request_t > () - 8usize] ; ["Offset of field: rc_api_login_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , username) - 0usize] ; ["Offset of field: rc_api_login_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_login_request_t::password"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , password) - 16usize] ; } ; # [doc = " Response data for a login request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_login_response_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub score : u32 , pub score_softcore : u32 , pub num_unread_messages : u32 , pub display_name : * const :: core :: ffi :: c_char , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_login_response_t"] [:: core :: mem :: size_of :: < rc_api_login_response_t > () - 352usize] ; ["Alignment of rc_api_login_response_t"] [:: core :: mem :: align_of :: < rc_api_login_response_t > () - 8usize] ; ["Offset of field: rc_api_login_response_t::username"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , username) - 0usize] ; ["Offset of field: rc_api_login_response_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , api_token) - 8usize] ; ["Offset of field: rc_api_login_response_t::score"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , score) - 16usize] ; ["Offset of field: rc_api_login_response_t::score_softcore"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , score_softcore) - 20usize] ; ["Offset of field: rc_api_login_response_t::num_unread_messages"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , num_unread_messages) - 24usize] ; ["Offset of field: rc_api_login_response_t::display_name"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , display_name) - 32usize] ; ["Offset of field: rc_api_login_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , response) - 40usize] ; } ; extern "C" { pub fn rc_api_init_login_request (request : * mut rc_api_request_t , api_params : * const rc_api_login_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_login_response (response : * mut rc_api_login_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_login_server_response (response : * mut rc_api_login_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_login_response (response : * mut rc_api_login_response_t) ; } # [doc = " API parameters for a start session request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_start_session_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub game_hash : * const :: core :: ffi :: c_char , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_start_session_request_t"] [:: core :: mem :: size_of :: < rc_api_start_session_request_t > () - 40usize] ; ["Alignment of rc_api_start_session_request_t"] [:: core :: mem :: align_of :: < rc_api_start_session_request_t > () - 8usize] ; ["Offset of field: rc_api_start_session_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , username) - 0usize] ; ["Offset of field: rc_api_start_session_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_start_session_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_start_session_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_start_session_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , hardcore) - 32usize] ; } ; # [doc = " Response data for an achievement unlock."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_unlock_entry_t { pub achievement_id : u32 , pub when : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_unlock_entry_t"] [:: core :: mem :: size_of :: < rc_api_unlock_entry_t > () - 16usize] ; ["Alignment of rc_api_unlock_entry_t"] [:: core :: mem :: align_of :: < rc_api_unlock_entry_t > () - 8usize] ; ["Offset of field: rc_api_unlock_entry_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_unlock_entry_t , achievement_id) - 0usize] ; ["Offset of field: rc_api_unlock_entry_t::when"] [:: core :: mem :: offset_of ! (rc_api_unlock_entry_t , when) - 8usize] ; } ; # [doc = " Response data for a start session request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_start_session_response_t { pub hardcore_unlocks : * mut rc_api_unlock_entry_t , pub unlocks : * mut rc_api_unlock_entry_t , pub num_hardcore_unlocks : u32 , pub num_unlocks : u32 , pub server_now : time_t , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_start_session_response_t"] [:: core :: mem :: size_of :: < rc_api_start_session_response_t > () - 344usize] ; ["Alignment of rc_api_start_session_response_t"] [:: core :: mem :: align_of :: < rc_api_start_session_response_t > () - 8usize] ; ["Offset of field: rc_api_start_session_response_t::hardcore_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , hardcore_unlocks) - 0usize] ; ["Offset of field: rc_api_start_session_response_t::unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , unlocks) - 8usize] ; ["Offset of field: rc_api_start_session_response_t::num_hardcore_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , num_hardcore_unlocks) - 16usize] ; ["Offset of field: rc_api_start_session_response_t::num_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , num_unlocks) - 20usize] ; ["Offset of field: rc_api_start_session_response_t::server_now"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , server_now) - 24usize] ; ["Offset of field: rc_api_start_session_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_start_session_request (request : * mut rc_api_request_t , api_params : * const rc_api_start_session_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_start_session_response (response : * mut rc_api_start_session_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_start_session_server_response (response : * mut rc_api_start_session_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_start_session_response (response : * mut rc_api_start_session_response_t) ; } # [doc = " API parameters for a fetch user unlocks request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_user_unlocks_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_user_unlocks_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_user_unlocks_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_user_unlocks_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_user_unlocks_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , hardcore) - 20usize] ; } ; # [doc = " Response data for a fetch user unlocks request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_user_unlocks_response_t { pub achievement_ids : * mut u32 , pub num_achievement_ids : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_user_unlocks_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_user_unlocks_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_user_unlocks_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_user_unlocks_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::achievement_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , achievement_ids) - 0usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::num_achievement_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , num_achievement_ids) - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_user_unlocks_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_user_unlocks_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_user_unlocks_response (response : * mut rc_api_fetch_user_unlocks_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_user_unlocks_server_response (response : * mut rc_api_fetch_user_unlocks_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_user_unlocks_response (response : * mut rc_api_fetch_user_unlocks_response_t) ; } # [doc = " API parameters for a fetch code notes request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_code_notes_request_t { pub game_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_code_notes_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_code_notes_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_code_notes_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_code_notes_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_code_notes_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_request_t , game_id) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_code_note_t { pub address : u32 , pub author : * const :: core :: ffi :: c_char , pub note : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_code_note_t"] [:: core :: mem :: size_of :: < rc_api_code_note_t > () - 24usize] ; ["Alignment of rc_api_code_note_t"] [:: core :: mem :: align_of :: < rc_api_code_note_t > () - 8usize] ; ["Offset of field: rc_api_code_note_t::address"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , address) - 0usize] ; ["Offset of field: rc_api_code_note_t::author"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , author) - 8usize] ; ["Offset of field: rc_api_code_note_t::note"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , note) - 16usize] ; } ; # [doc = " Response data for a fetch code notes request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_code_notes_response_t { pub notes : * mut rc_api_code_note_t , pub num_notes : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_code_notes_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_code_notes_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_code_notes_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_code_notes_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::notes"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , notes) - 0usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::num_notes"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , num_notes) - 8usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_code_notes_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_code_notes_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_code_notes_response (response : * mut rc_api_fetch_code_notes_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_code_notes_server_response (response : * mut rc_api_fetch_code_notes_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_code_notes_response (response : * mut rc_api_fetch_code_notes_response_t) ; } # [doc = " API parameters for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_code_note_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub address : u32 , pub note : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_code_note_request_t"] [:: core :: mem :: size_of :: < rc_api_update_code_note_request_t > () - 32usize] ; ["Alignment of rc_api_update_code_note_request_t"] [:: core :: mem :: align_of :: < rc_api_update_code_note_request_t > () - 8usize] ; ["Offset of field: rc_api_update_code_note_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_code_note_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_code_note_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_update_code_note_request_t::address"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , address) - 20usize] ; ["Offset of field: rc_api_update_code_note_request_t::note"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , note) - 24usize] ; } ; # [doc = " Response data for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_code_note_response_t { pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_code_note_response_t"] [:: core :: mem :: size_of :: < rc_api_update_code_note_response_t > () - 312usize] ; ["Alignment of rc_api_update_code_note_response_t"] [:: core :: mem :: align_of :: < rc_api_update_code_note_response_t > () - 8usize] ; ["Offset of field: rc_api_update_code_note_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_response_t , response) - 0usize] ; } ; extern "C" { pub fn rc_api_init_update_code_note_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_code_note_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_code_note_response (response : * mut rc_api_update_code_note_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_code_note_server_response (response : * mut rc_api_update_code_note_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_code_note_response (response : * mut rc_api_update_code_note_response_t) ; } # [doc = " API parameters for an update achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_achievement_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub game_id : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub badge : * const :: core :: ffi :: c_char , pub trigger : * const :: core :: ffi :: c_char , pub points : u32 , pub category : u32 , pub type_ : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_achievement_request_t"] [:: core :: mem :: size_of :: < rc_api_update_achievement_request_t > () - 72usize] ; ["Alignment of rc_api_update_achievement_request_t"] [:: core :: mem :: align_of :: < rc_api_update_achievement_request_t > () - 8usize] ; ["Offset of field: rc_api_update_achievement_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_achievement_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_achievement_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_update_achievement_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , game_id) - 20usize] ; ["Offset of field: rc_api_update_achievement_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , title) - 24usize] ; ["Offset of field: rc_api_update_achievement_request_t::description"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , description) - 32usize] ; ["Offset of field: rc_api_update_achievement_request_t::badge"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , badge) - 40usize] ; ["Offset of field: rc_api_update_achievement_request_t::trigger"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , trigger) - 48usize] ; ["Offset of field: rc_api_update_achievement_request_t::points"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , points) - 56usize] ; ["Offset of field: rc_api_update_achievement_request_t::category"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , category) - 60usize] ; ["Offset of field: rc_api_update_achievement_request_t::type_"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , type_) - 64usize] ; } ; # [doc = " Response data for an update achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_achievement_response_t { pub achievement_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_achievement_response_t"] [:: core :: mem :: size_of :: < rc_api_update_achievement_response_t > () - 320usize] ; ["Alignment of rc_api_update_achievement_response_t"] [:: core :: mem :: align_of :: < rc_api_update_achievement_response_t > () - 8usize] ; ["Offset of field: rc_api_update_achievement_response_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_response_t , achievement_id) - 0usize] ; ["Offset of field: rc_api_update_achievement_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_update_achievement_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_achievement_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_achievement_response (response : * mut rc_api_update_achievement_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_achievement_server_response (response : * mut rc_api_update_achievement_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_achievement_response (response : * mut rc_api_update_achievement_response_t) ; } # [doc = " API parameters for an update leaderboard request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_leaderboard_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub leaderboard_id : u32 , pub game_id : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub start_trigger : * const :: core :: ffi :: c_char , pub submit_trigger : * const :: core :: ffi :: c_char , pub cancel_trigger : * const :: core :: ffi :: c_char , pub value_definition : * const :: core :: ffi :: c_char , pub format : * const :: core :: ffi :: c_char , pub lower_is_better : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_leaderboard_request_t"] [:: core :: mem :: size_of :: < rc_api_update_leaderboard_request_t > () - 88usize] ; ["Alignment of rc_api_update_leaderboard_request_t"] [:: core :: mem :: align_of :: < rc_api_update_leaderboard_request_t > () - 8usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , leaderboard_id) - 16usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , game_id) - 20usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , title) - 24usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::description"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , description) - 32usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::start_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , start_trigger) - 40usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::submit_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , submit_trigger) - 48usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::cancel_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , cancel_trigger) - 56usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::value_definition"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , value_definition) - 64usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::format"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , format) - 72usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , lower_is_better) - 80usize] ; } ; # [doc = " Response data for an update leaderboard request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_leaderboard_response_t { pub leaderboard_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_leaderboard_response_t"] [:: core :: mem :: size_of :: < rc_api_update_leaderboard_response_t > () - 320usize] ; ["Alignment of rc_api_update_leaderboard_response_t"] [:: core :: mem :: align_of :: < rc_api_update_leaderboard_response_t > () - 8usize] ; ["Offset of field: rc_api_update_leaderboard_response_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_response_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_api_update_leaderboard_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_update_leaderboard_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_leaderboard_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_leaderboard_response (response : * mut rc_api_update_leaderboard_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_leaderboard_server_response (response : * mut rc_api_update_leaderboard_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_leaderboard_response (response : * mut rc_api_update_leaderboard_response_t) ; } # [doc = " API parameters for a fetch badge range request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_badge_range_request_t { pub unused : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_badge_range_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_badge_range_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_badge_range_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_badge_range_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_badge_range_request_t::unused"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_request_t , unused) - 0usize] ; } ; # [doc = " Response data for a fetch badge range request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_badge_range_response_t { pub first_badge_id : u32 , pub next_badge_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_badge_range_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_badge_range_response_t > () - 320usize] ; ["Alignment of rc_api_fetch_badge_range_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_badge_range_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::first_badge_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , first_badge_id) - 0usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::next_badge_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , next_badge_id) - 4usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_fetch_badge_range_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_badge_range_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_badge_range_response (response : * mut rc_api_fetch_badge_range_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_badge_range_server_response (response : * mut rc_api_fetch_badge_range_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_badge_range_response (response : * mut rc_api_fetch_badge_range_response_t) ; } # [doc = " API parameters for an add game hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_add_game_hash_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub hash : * const :: core :: ffi :: c_char , pub hash_description : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_add_game_hash_request_t"] [:: core :: mem :: size_of :: < rc_api_add_game_hash_request_t > () - 48usize] ; ["Alignment of rc_api_add_game_hash_request_t"] [:: core :: mem :: align_of :: < rc_api_add_game_hash_request_t > () - 8usize] ; ["Offset of field: rc_api_add_game_hash_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , username) - 0usize] ; ["Offset of field: rc_api_add_game_hash_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_add_game_hash_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_add_game_hash_request_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , console_id) - 20usize] ; ["Offset of field: rc_api_add_game_hash_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , title) - 24usize] ; ["Offset of field: rc_api_add_game_hash_request_t::hash"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , hash) - 32usize] ; ["Offset of field: rc_api_add_game_hash_request_t::hash_description"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , hash_description) - 40usize] ; } ; # [doc = " Response data for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_add_game_hash_response_t { pub game_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_add_game_hash_response_t"] [:: core :: mem :: size_of :: < rc_api_add_game_hash_response_t > () - 320usize] ; ["Alignment of rc_api_add_game_hash_response_t"] [:: core :: mem :: align_of :: < rc_api_add_game_hash_response_t > () - 8usize] ; ["Offset of field: rc_api_add_game_hash_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_response_t , game_id) - 0usize] ; ["Offset of field: rc_api_add_game_hash_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_add_game_hash_request (request : * mut rc_api_request_t , api_params : * const rc_api_add_game_hash_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_add_game_hash_response (response : * mut rc_api_add_game_hash_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_add_game_hash_server_response (response : * mut rc_api_add_game_hash_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_add_game_hash_response (response : * mut rc_api_add_game_hash_response_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_t { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_menu_item_t { pub label : * const :: core :: ffi :: c_char , pub id : u32 , pub checked : u8 , pub enabled : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_menu_item_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_menu_item_t > () - 16usize] ; ["Alignment of rc_client_raintegration_menu_item_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_menu_item_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::label"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , label) - 0usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::id"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , id) - 8usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::checked"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , checked) - 12usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::enabled"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , enabled) - 13usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_menu_t { pub items : * mut rc_client_raintegration_menu_item_t , pub num_items : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_menu_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_menu_t > () - 16usize] ; ["Alignment of rc_client_raintegration_menu_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_menu_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_menu_t::items"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_t , items) - 0usize] ; ["Offset of field: rc_client_raintegration_menu_t::num_items"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_t , num_items) - 8usize] ; } ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_NONE : _bindgen_ty_10 = 0 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_PUBLISHED : _bindgen_ty_10 = 1 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_LOCAL : _bindgen_ty_10 = 2 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_MODIFIED : _bindgen_ty_10 = 3 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_INSECURE : _bindgen_ty_10 = 4 ; pub type _bindgen_ty_10 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_RAINTEGRATION_EVENT_TYPE_NONE : _bindgen_ty_11 = 0 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_MENUITEM_CHECKED_CHANGED : _bindgen_ty_11 = 1 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_HARDCORE_CHANGED : _bindgen_ty_11 = 2 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_PAUSE : _bindgen_ty_11 = 3 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_MENU_CHANGED : _bindgen_ty_11 = 4 ; pub type _bindgen_ty_11 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_event_t { pub type_ : u32 , pub menu_item : * const rc_client_raintegration_menu_item_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_event_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_event_t > () - 16usize] ; ["Alignment of rc_client_raintegration_event_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_event_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_event_t::type_"] [:: core :: mem :: offset_of ! (rc_client_raintegration_event_t , type_) - 0usize] ; ["Offset of field: rc_client_raintegration_event_t::menu_item"] [:: core :: mem :: offset_of ! (rc_client_raintegration_event_t , menu_item) - 8usize] ; } ; pub type rc_client_raintegration_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (event : * const rc_client_raintegration_event_t , client : * mut rc_client_t) > ; pub type rc_client_raintegration_write_memory_func_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , buffer : * mut u8 , num_bytes : u32 , client : * mut rc_client_t) > ; pub type rc_client_raintegration_get_game_name_func_t = :: core :: option :: Option < unsafe extern "C" fn (buffer : * mut :: core :: ffi :: c_char , buffer_size : u32 , client : * mut rc_client_t) > ; # [doc = " API parameters for a fetch achievement info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_achievement_info_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub first_entry : u32 , pub count : u32 , pub friends_only : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_achievement_info_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_achievement_info_request_t > () - 32usize] ; ["Alignment of rc_api_fetch_achievement_info_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_achievement_info_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::first_entry"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , first_entry) - 20usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::count"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , count) - 24usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::friends_only"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , friends_only) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_achievement_awarded_entry_t { pub username : * const :: core :: ffi :: c_char , pub awarded : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_achievement_awarded_entry_t"] [:: core :: mem :: size_of :: < rc_api_achievement_awarded_entry_t > () - 16usize] ; ["Alignment of rc_api_achievement_awarded_entry_t"] [:: core :: mem :: align_of :: < rc_api_achievement_awarded_entry_t > () - 8usize] ; ["Offset of field: rc_api_achievement_awarded_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_achievement_awarded_entry_t , username) - 0usize] ; ["Offset of field: rc_api_achievement_awarded_entry_t::awarded"] [:: core :: mem :: offset_of ! (rc_api_achievement_awarded_entry_t , awarded) - 8usize] ; } ; # [doc = " Response data for a fetch achievement info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_achievement_info_response_t { pub id : u32 , pub game_id : u32 , pub num_awarded : u32 , pub num_players : u32 , pub recently_awarded : * mut rc_api_achievement_awarded_entry_t , pub num_recently_awarded : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_achievement_info_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_achievement_info_response_t > () - 344usize] ; ["Alignment of rc_api_fetch_achievement_info_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_achievement_info_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , game_id) - 4usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_awarded) - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_players"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_players) - 12usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::recently_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , recently_awarded) - 16usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_recently_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_recently_awarded) - 24usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_fetch_achievement_info_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_achievement_info_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_achievement_info_response (response : * mut rc_api_fetch_achievement_info_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_achievement_info_server_response (response : * mut rc_api_fetch_achievement_info_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_achievement_info_response (response : * mut rc_api_fetch_achievement_info_response_t) ; } # [doc = " API parameters for a fetch leaderboard info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_leaderboard_info_request_t { pub leaderboard_id : u32 , pub count : u32 , pub first_entry : u32 , pub username : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_leaderboard_info_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_leaderboard_info_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_leaderboard_info_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_leaderboard_info_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::count"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , count) - 4usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::first_entry"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , first_entry) - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , username) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_lboard_info_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub index : u32 , pub score : i32 , pub submitted : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_lboard_info_entry_t"] [:: core :: mem :: size_of :: < rc_api_lboard_info_entry_t > () - 32usize] ; ["Alignment of rc_api_lboard_info_entry_t"] [:: core :: mem :: align_of :: < rc_api_lboard_info_entry_t > () - 8usize] ; ["Offset of field: rc_api_lboard_info_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , username) - 0usize] ; ["Offset of field: rc_api_lboard_info_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , rank) - 8usize] ; ["Offset of field: rc_api_lboard_info_entry_t::index"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , index) - 12usize] ; ["Offset of field: rc_api_lboard_info_entry_t::score"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , score) - 16usize] ; ["Offset of field: rc_api_lboard_info_entry_t::submitted"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , submitted) - 24usize] ; } ; # [doc = " Response data for a fetch leaderboard info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_leaderboard_info_response_t { pub id : u32 , pub format : :: core :: ffi :: c_int , pub lower_is_better : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub game_id : u32 , pub author : * const :: core :: ffi :: c_char , pub created : time_t , pub updated : time_t , pub entries : * mut rc_api_lboard_info_entry_t , pub num_entries : u32 , pub total_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_leaderboard_info_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_leaderboard_info_response_t > () - 400usize] ; ["Alignment of rc_api_fetch_leaderboard_info_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_leaderboard_info_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::format"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , format) - 4usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , lower_is_better) - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::title"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , title) - 16usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::description"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , description) - 24usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::definition"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , definition) - 32usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , game_id) - 40usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::author"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , author) - 48usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::created"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , created) - 56usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::updated"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , updated) - 64usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , entries) - 72usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , num_entries) - 80usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::total_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , total_entries) - 84usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , response) - 88usize] ; } ; extern "C" { pub fn rc_api_init_fetch_leaderboard_info_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_leaderboard_info_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_leaderboard_info_response (response : * mut rc_api_fetch_leaderboard_info_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_leaderboard_info_server_response (response : * mut rc_api_fetch_leaderboard_info_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_leaderboard_info_response (response : * mut rc_api_fetch_leaderboard_info_response_t) ; } # [doc = " API parameters for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_games_list_request_t { pub console_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_games_list_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_games_list_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_games_list_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_games_list_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_games_list_request_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_request_t , console_id) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_game_list_entry_t { pub id : u32 , pub name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_game_list_entry_t"] [:: core :: mem :: size_of :: < rc_api_game_list_entry_t > () - 16usize] ; ["Alignment of rc_api_game_list_entry_t"] [:: core :: mem :: align_of :: < rc_api_game_list_entry_t > () - 8usize] ; ["Offset of field: rc_api_game_list_entry_t::id"] [:: core :: mem :: offset_of ! (rc_api_game_list_entry_t , id) - 0usize] ; ["Offset of field: rc_api_game_list_entry_t::name"] [:: core :: mem :: offset_of ! (rc_api_game_list_entry_t , name) - 8usize] ; } ; # [doc = " Response data for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_games_list_response_t { pub entries : * mut rc_api_game_list_entry_t , pub num_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_games_list_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_games_list_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_games_list_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_games_list_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , entries) - 0usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , num_entries) - 8usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_games_list_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_games_list_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_games_list_response (response : * mut rc_api_fetch_games_list_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_games_list_server_response (response : * mut rc_api_fetch_games_list_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_games_list_response (response : * mut rc_api_fetch_games_list_response_t) ; } # [doc = " API parameters for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_titles_request_t { pub game_ids : * const u32 , pub num_game_ids : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_titles_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_titles_request_t > () - 16usize] ; ["Alignment of rc_api_fetch_game_titles_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_titles_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_request_t::game_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_request_t , game_ids) - 0usize] ; ["Offset of field: rc_api_fetch_game_titles_request_t::num_game_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_request_t , num_game_ids) - 8usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_game_title_entry_t { pub id : u32 , pub title : * const :: core :: ffi :: c_char , pub image_name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_game_title_entry_t"] [:: core :: mem :: size_of :: < rc_api_game_title_entry_t > () - 24usize] ; ["Alignment of rc_api_game_title_entry_t"] [:: core :: mem :: align_of :: < rc_api_game_title_entry_t > () - 8usize] ; ["Offset of field: rc_api_game_title_entry_t::id"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , id) - 0usize] ; ["Offset of field: rc_api_game_title_entry_t::title"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , title) - 8usize] ; ["Offset of field: rc_api_game_title_entry_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , image_name) - 16usize] ; } ; # [doc = " Response data for a fetch games title request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_titles_response_t { pub entries : * mut rc_api_game_title_entry_t , pub num_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_titles_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_titles_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_game_titles_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_titles_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , entries) - 0usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , num_entries) - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_game_titles_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_game_titles_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_titles_server_response (response : * mut rc_api_fetch_game_titles_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_game_titles_response (response : * mut rc_api_fetch_game_titles_response_t) ; } pub type __gnuc_va_list = __builtin_va_list ; # [repr (C)] # [derive (Copy , Clone)] pub struct __mbstate_t { pub __count : :: core :: ffi :: c_int , pub __value : __mbstate_t__bindgen_ty_1 , } # [repr (C)] # [derive (Copy , Clone)] pub union __mbstate_t__bindgen_ty_1 { pub __wch : :: core :: ffi :: c_uint , pub __wchb : [:: core :: ffi :: c_char ; 4usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __mbstate_t__bindgen_ty_1"] [:: core :: mem :: size_of :: < __mbstate_t__bindgen_ty_1 > () - 4usize] ; ["Alignment of __mbstate_t__bindgen_ty_1"] [:: core :: mem :: align_of :: < __mbstate_t__bindgen_ty_1 > () - 4usize] ; ["Offset of field: __mbstate_t__bindgen_ty_1::__wch"] [:: core :: mem :: offset_of ! (__mbstate_t__bindgen_ty_1 , __wch) - 0usize] ; ["Offset of field: __mbstate_t__bindgen_ty_1::__wchb"] [:: core :: mem :: offset_of ! (__mbstate_t__bindgen_ty_1 , __wchb) - 0usize] ; } ; impl :: core :: fmt :: Debug for __mbstate_t__bindgen_ty_1 { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "__mbstate_t__bindgen_ty_1 {{ union }}") } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __mbstate_t"] [:: core :: mem :: size_of :: < __mbstate_t > () - 8usize] ; ["Alignment of __mbstate_t"] [:: core :: mem :: align_of :: < __mbstate_t > () - 4usize] ; ["Offset of field: __mbstate_t::__count"] [:: core :: mem :: offset_of ! (__mbstate_t , __count) - 0usize] ; ["Offset of field: __mbstate_t::__value"] [:: core :: mem :: offset_of ! (__mbstate_t , __value) - 4usize] ; } ; impl :: core :: fmt :: Debug for __mbstate_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "__mbstate_t {{ __count: {:?}, __value: {:?} }}" , self . __count , self . __value) } } # [repr (C)] # [derive (Copy , Clone)] pub struct _G_fpos_t { pub __pos : __off_t , pub __state : __mbstate_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _G_fpos_t"] [:: core :: mem :: size_of :: < _G_fpos_t > () - 16usize] ; ["Alignment of _G_fpos_t"] [:: core :: mem :: align_of :: < _G_fpos_t > () - 8usize] ; ["Offset of field: _G_fpos_t::__pos"] [:: core :: mem :: offset_of ! (_G_fpos_t , __pos) - 0usize] ; ["Offset of field: _G_fpos_t::__state"] [:: core :: mem :: offset_of ! (_G_fpos_t , __state) - 8usize] ; } ; impl :: core :: fmt :: Debug for _G_fpos_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "_G_fpos_t {{ __pos: {:?}, __state: {:?} }}" , self . __pos , self . __state) } } pub type __fpos_t = _G_fpos_t ; # [repr (C)] # [derive (Copy , Clone)] pub struct _G_fpos64_t { pub __pos : __off64_t , pub __state : __mbstate_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _G_fpos64_t"] [:: core :: mem :: size_of :: < _G_fpos64_t > () - 16usize] ; ["Alignment of _G_fpos64_t"] [:: core :: mem :: align_of :: < _G_fpos64_t > () - 8usize] ; ["Offset of field: _G_fpos64_t::__pos"] [:: core :: mem :: offset_of ! (_G_fpos64_t , __pos) - 0usize] ; ["Offset of field: _G_fpos64_t::__state"] [:: core :: mem :: offset_of ! (_G_fpos64_t , __state) - 8usize] ; } ; impl :: core :: fmt :: Debug for _G_fpos64_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "_G_fpos64_t {{ __pos: {:?}, __state: {:?} }}" , self . __pos , self . __state) } } pub type __fpos64_t = _G_fpos64_t ; pub type __FILE = _IO_FILE ; pub type FILE = _IO_FILE ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_marker { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_codecvt { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_wide_data { _unused : [u8 ; 0] , } pub type _IO_lock_t = :: core :: ffi :: c_void ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_FILE { pub _flags : :: core :: ffi :: c_int , pub _IO_read_ptr : * mut :: core :: ffi :: c_char , pub _IO_read_end : * mut :: core :: ffi :: c_char , pub _IO_read_base : * mut :: core :: ffi :: c_char , pub _IO_write_base : * mut :: core :: ffi :: c_char , pub _IO_write_ptr : * mut :: core :: ffi :: c_char , pub _IO_write_end : * mut :: core :: ffi :: c_char , pub _IO_buf_base : * mut :: core :: ffi :: c_char , pub _IO_buf_end : * mut :: core :: ffi :: c_char , pub _IO_save_base : * mut :: core :: ffi :: c_char , pub _IO_backup_base : * mut :: core :: ffi :: c_char , pub _IO_save_end : * mut :: core :: ffi :: c_char , pub _markers : * mut _IO_marker , pub _chain : * mut _IO_FILE , pub _fileno : :: core :: ffi :: c_int , pub _bitfield_align_1 : [u32 ; 0] , pub _bitfield_1 : __BindgenBitfieldUnit < [u8 ; 3usize] > , pub _short_backupbuf : [:: core :: ffi :: c_char ; 1usize] , pub _old_offset : __off_t , pub _cur_column : :: core :: ffi :: c_ushort , pub _vtable_offset : :: core :: ffi :: c_schar , pub _shortbuf : [:: core :: ffi :: c_char ; 1usize] , pub _lock : * mut _IO_lock_t , pub _offset : __off64_t , pub _codecvt : * mut _IO_codecvt , pub _wide_data : * mut _IO_wide_data , pub _freeres_list : * mut _IO_FILE , pub _freeres_buf : * mut :: core :: ffi :: c_void , pub _prevchain : * mut * mut _IO_FILE , pub _mode : :: core :: ffi :: c_int , pub _unused3 : :: core :: ffi :: c_int , pub _total_written : __uint64_t , pub _unused2 : [:: core :: ffi :: c_char ; 8usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _IO_FILE"] [:: core :: mem :: size_of :: < _IO_FILE > () - 216usize] ; ["Alignment of _IO_FILE"] [:: core :: mem :: align_of :: < _IO_FILE > () - 8usize] ; ["Offset of field: _IO_FILE::_flags"] [:: core :: mem :: offset_of ! (_IO_FILE , _flags) - 0usize] ; ["Offset of field: _IO_FILE::_IO_read_ptr"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_ptr) - 8usize] ; ["Offset of field: _IO_FILE::_IO_read_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_end) - 16usize] ; ["Offset of field: _IO_FILE::_IO_read_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_base) - 24usize] ; ["Offset of field: _IO_FILE::_IO_write_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_base) - 32usize] ; ["Offset of field: _IO_FILE::_IO_write_ptr"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_ptr) - 40usize] ; ["Offset of field: _IO_FILE::_IO_write_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_end) - 48usize] ; ["Offset of field: _IO_FILE::_IO_buf_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_buf_base) - 56usize] ; ["Offset of field: _IO_FILE::_IO_buf_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_buf_end) - 64usize] ; ["Offset of field: _IO_FILE::_IO_save_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_save_base) - 72usize] ; ["Offset of field: _IO_FILE::_IO_backup_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_backup_base) - 80usize] ; ["Offset of field: _IO_FILE::_IO_save_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_save_end) - 88usize] ; ["Offset of field: _IO_FILE::_markers"] [:: core :: mem :: offset_of ! (_IO_FILE , _markers) - 96usize] ; ["Offset of field: _IO_FILE::_chain"] [:: core :: mem :: offset_of ! (_IO_FILE , _chain) - 104usize] ; ["Offset of field: _IO_FILE::_fileno"] [:: core :: mem :: offset_of ! (_IO_FILE , _fileno) - 112usize] ; ["Offset of field: _IO_FILE::_short_backupbuf"] [:: core :: mem :: offset_of ! (_IO_FILE , _short_backupbuf) - 119usize] ; ["Offset of field: _IO_FILE::_old_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _old_offset) - 120usize] ; ["Offset of field: _IO_FILE::_cur_column"] [:: core :: mem :: offset_of ! (_IO_FILE , _cur_column) - 128usize] ; ["Offset of field: _IO_FILE::_vtable_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _vtable_offset) - 130usize] ; ["Offset of field: _IO_FILE::_shortbuf"] [:: core :: mem :: offset_of ! (_IO_FILE , _shortbuf) - 131usize] ; ["Offset of field: _IO_FILE::_lock"] [:: core :: mem :: offset_of ! (_IO_FILE , _lock) - 136usize] ; ["Offset of field: _IO_FILE::_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _offset) - 144usize] ; ["Offset of field: _IO_FILE::_codecvt"] [:: core :: mem :: offset_of ! (_IO_FILE , _codecvt) - 152usize] ; ["Offset of field: _IO_FILE::_wide_data"] [:: core :: mem :: offset_of ! (_IO_FILE , _wide_data) - 160usize] ; ["Offset of field: _IO_FILE::_freeres_list"] [:: core :: mem :: offset_of ! (_IO_FILE , _freeres_list) - 168usize] ; ["Offset of field: _IO_FILE::_freeres_buf"] [:: core :: mem :: offset_of ! (_IO_FILE , _freeres_buf) - 176usize] ; ["Offset of field: _IO_FILE::_prevchain"] [:: core :: mem :: offset_of ! (_IO_FILE , _prevchain) - 184usize] ; ["Offset of field: _IO_FILE::_mode"] [:: core :: mem :: offset_of ! (_IO_FILE , _mode) - 192usize] ; ["Offset of field: _IO_FILE::_unused3"] [:: core :: mem :: offset_of ! (_IO_FILE , _unused3) - 196usize] ; ["Offset of field: _IO_FILE::_total_written"] [:: core :: mem :: offset_of ! (_IO_FILE , _total_written) - 200usize] ; ["Offset of field: _IO_FILE::_unused2"] [:: core :: mem :: offset_of ! (_IO_FILE , _unused2) - 208usize] ; } ; impl _IO_FILE { # [inline] pub fn _flags2 (& self) -> :: core :: ffi :: c_int { unsafe { :: core :: mem :: transmute (self . _bitfield_1 . get (0usize , 24u8) as u32) } } # [inline] pub fn set__flags2 (& mut self , val : :: core :: ffi :: c_int) { unsafe { let val : u32 = :: core :: mem :: transmute (val) ; self . _bitfield_1 . set (0usize , 24u8 , val as u64) } } # [inline] pub fn new_bitfield_1 (_flags2 : :: core :: ffi :: c_int) -> __BindgenBitfieldUnit < [u8 ; 3usize] > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [u8 ; 3usize] > = Default :: default () ; __bindgen_bitfield_unit . set (0usize , 24u8 , { let _flags2 : u32 = unsafe { :: core :: mem :: transmute (_flags2) } ; _flags2 as u64 }) ; __bindgen_bitfield_unit } } pub type cookie_read_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __buf : * mut :: core :: ffi :: c_char , __nbytes : usize) -> __ssize_t > ; pub type cookie_write_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __buf : * const :: core :: ffi :: c_char , __nbytes : usize) -> __ssize_t > ; pub type cookie_seek_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __pos : * mut __off64_t , __w : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int > ; pub type cookie_close_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void) -> :: core :: ffi :: 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 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _IO_cookie_io_functions_t"] [:: core :: mem :: size_of :: < _IO_cookie_io_functions_t > () - 32usize] ; ["Alignment of _IO_cookie_io_functions_t"] [:: core :: mem :: align_of :: < _IO_cookie_io_functions_t > () - 8usize] ; ["Offset of field: _IO_cookie_io_functions_t::read"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , read) - 0usize] ; ["Offset of field: _IO_cookie_io_functions_t::write"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , write) - 8usize] ; ["Offset of field: _IO_cookie_io_functions_t::seek"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , seek) - 16usize] ; ["Offset of field: _IO_cookie_io_functions_t::close"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , close) - 24usize] ; } ; 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" { pub static mut stdin : * mut FILE ; } extern "C" { pub static mut stdout : * mut FILE ; } extern "C" { pub static mut stderr : * mut FILE ; } extern "C" { pub fn remove (__filename : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rename (__old : * const :: core :: ffi :: c_char , __new : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn renameat (__oldfd : :: core :: ffi :: c_int , __old : * const :: core :: ffi :: c_char , __newfd : :: core :: ffi :: c_int , __new : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fclose (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn tmpfile () -> * mut FILE ; } extern "C" { pub fn tmpnam (arg1 : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn tmpnam_r (__s : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn tempnam (__dir : * const :: core :: ffi :: c_char , __pfx : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn fflush (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fflush_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fopen (__filename : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn freopen (__filename : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char , __stream : * mut FILE) -> * mut FILE ; } extern "C" { pub fn fdopen (__fd : :: core :: ffi :: c_int , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn fopencookie (__magic_cookie : * mut :: core :: ffi :: c_void , __modes : * const :: core :: ffi :: c_char , __io_funcs : cookie_io_functions_t) -> * mut FILE ; } extern "C" { pub fn fmemopen (__s : * mut :: core :: ffi :: c_void , __len : usize , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn open_memstream (__bufloc : * mut * mut :: core :: ffi :: c_char , __sizeloc : * mut usize) -> * mut FILE ; } extern "C" { pub fn setbuf (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char) ; } extern "C" { pub fn setvbuf (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char , __modes : :: core :: ffi :: c_int , __n : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn setbuffer (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char , __size : usize) ; } extern "C" { pub fn setlinebuf (__stream : * mut FILE) ; } extern "C" { pub fn fprintf (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn printf (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn sprintf (__s : * mut :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vfprintf (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vprintf (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsprintf (__s : * mut :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn snprintf (__s : * mut :: core :: ffi :: c_char , __maxlen : :: core :: ffi :: c_ulong , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsnprintf (__s : * mut :: core :: ffi :: c_char , __maxlen : :: core :: ffi :: c_ulong , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vasprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __f : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn __asprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn asprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vdprintf (__fd : :: core :: ffi :: c_int , __fmt : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn dprintf (__fd : :: core :: ffi :: c_int , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fscanf (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn scanf (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn sscanf (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } pub type __cfloat128 = __BindgenComplex < u128 > ; pub type _Float128 = u128 ; pub type _Float32 = f32 ; pub type _Float64 = f64 ; pub type _Float32x = f64 ; pub type _Float64x = u128 ; extern "C" { # [link_name = "\u{1}__isoc99_fscanf"] pub fn fscanf1 (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_scanf"] pub fn scanf1 (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_sscanf"] pub fn sscanf1 (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vfscanf (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vscanf (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsscanf (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vfscanf"] pub fn vfscanf1 (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vscanf"] pub fn vscanf1 (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vsscanf"] pub fn vsscanf1 (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgetc (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getc (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getchar () -> :: core :: ffi :: c_int ; } extern "C" { pub fn getc_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getchar_unlocked () -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgetc_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fputc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putchar (__c : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fputc_unlocked (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putc_unlocked (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putchar_unlocked (__c : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getw (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putw (__w : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgets (__s : * mut :: core :: ffi :: c_char , __n : :: core :: ffi :: c_int , __stream : * mut FILE) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn __getdelim (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __delimiter : :: core :: ffi :: c_int , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn getdelim (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __delimiter : :: core :: ffi :: c_int , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn getline (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn fputs (__s : * const :: core :: ffi :: c_char , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn puts (__s : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ungetc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fread (__ptr : * mut :: core :: ffi :: c_void , __size : :: core :: ffi :: c_ulong , __n : :: core :: ffi :: c_ulong , __stream : * mut FILE) -> :: core :: ffi :: c_ulong ; } extern "C" { pub fn fwrite (__ptr : * const :: core :: ffi :: c_void , __size : :: core :: ffi :: c_ulong , __n : :: core :: ffi :: c_ulong , __s : * mut FILE) -> :: core :: ffi :: c_ulong ; } extern "C" { pub fn fread_unlocked (__ptr : * mut :: core :: ffi :: c_void , __size : usize , __n : usize , __stream : * mut FILE) -> usize ; } extern "C" { pub fn fwrite_unlocked (__ptr : * const :: core :: ffi :: c_void , __size : usize , __n : usize , __stream : * mut FILE) -> usize ; } extern "C" { pub fn fseek (__stream : * mut FILE , __off : :: core :: ffi :: c_long , __whence : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ftell (__stream : * mut FILE) -> :: core :: ffi :: c_long ; } extern "C" { pub fn rewind (__stream : * mut FILE) ; } extern "C" { pub fn fseeko (__stream : * mut FILE , __off : __off_t , __whence : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ftello (__stream : * mut FILE) -> __off_t ; } extern "C" { pub fn fgetpos (__stream : * mut FILE , __pos : * mut fpos_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fsetpos (__stream : * mut FILE , __pos : * const fpos_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clearerr (__stream : * mut FILE) ; } extern "C" { pub fn feof (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ferror (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clearerr_unlocked (__stream : * mut FILE) ; } extern "C" { pub fn feof_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ferror_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn perror (__s : * const :: core :: ffi :: c_char) ; } extern "C" { pub fn fileno (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fileno_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn pclose (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn popen (__command : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn ctermid (__s : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn flockfile (__stream : * mut FILE) ; } extern "C" { pub fn ftrylockfile (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn funlockfile (__stream : * mut FILE) ; } extern "C" { pub fn __uflow (arg1 : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn __overflow (arg1 : * mut FILE , arg2 : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } pub const RC_CONSOLE_UNKNOWN : _bindgen_ty_12 = 0 ; pub const RC_CONSOLE_MEGA_DRIVE : _bindgen_ty_12 = 1 ; pub const RC_CONSOLE_NINTENDO_64 : _bindgen_ty_12 = 2 ; pub const RC_CONSOLE_SUPER_NINTENDO : _bindgen_ty_12 = 3 ; pub const RC_CONSOLE_GAMEBOY : _bindgen_ty_12 = 4 ; pub const RC_CONSOLE_GAMEBOY_ADVANCE : _bindgen_ty_12 = 5 ; pub const RC_CONSOLE_GAMEBOY_COLOR : _bindgen_ty_12 = 6 ; pub const RC_CONSOLE_NINTENDO : _bindgen_ty_12 = 7 ; pub const RC_CONSOLE_PC_ENGINE : _bindgen_ty_12 = 8 ; pub const RC_CONSOLE_SEGA_CD : _bindgen_ty_12 = 9 ; pub const RC_CONSOLE_SEGA_32X : _bindgen_ty_12 = 10 ; pub const RC_CONSOLE_MASTER_SYSTEM : _bindgen_ty_12 = 11 ; pub const RC_CONSOLE_PLAYSTATION : _bindgen_ty_12 = 12 ; pub const RC_CONSOLE_ATARI_LYNX : _bindgen_ty_12 = 13 ; pub const RC_CONSOLE_NEOGEO_POCKET : _bindgen_ty_12 = 14 ; pub const RC_CONSOLE_GAME_GEAR : _bindgen_ty_12 = 15 ; pub const RC_CONSOLE_GAMECUBE : _bindgen_ty_12 = 16 ; pub const RC_CONSOLE_ATARI_JAGUAR : _bindgen_ty_12 = 17 ; pub const RC_CONSOLE_NINTENDO_DS : _bindgen_ty_12 = 18 ; pub const RC_CONSOLE_WII : _bindgen_ty_12 = 19 ; pub const RC_CONSOLE_WII_U : _bindgen_ty_12 = 20 ; pub const RC_CONSOLE_PLAYSTATION_2 : _bindgen_ty_12 = 21 ; pub const RC_CONSOLE_XBOX : _bindgen_ty_12 = 22 ; pub const RC_CONSOLE_MAGNAVOX_ODYSSEY2 : _bindgen_ty_12 = 23 ; pub const RC_CONSOLE_POKEMON_MINI : _bindgen_ty_12 = 24 ; pub const RC_CONSOLE_ATARI_2600 : _bindgen_ty_12 = 25 ; pub const RC_CONSOLE_MS_DOS : _bindgen_ty_12 = 26 ; pub const RC_CONSOLE_ARCADE : _bindgen_ty_12 = 27 ; pub const RC_CONSOLE_VIRTUAL_BOY : _bindgen_ty_12 = 28 ; pub const RC_CONSOLE_MSX : _bindgen_ty_12 = 29 ; pub const RC_CONSOLE_COMMODORE_64 : _bindgen_ty_12 = 30 ; pub const RC_CONSOLE_ZX81 : _bindgen_ty_12 = 31 ; pub const RC_CONSOLE_ORIC : _bindgen_ty_12 = 32 ; pub const RC_CONSOLE_SG1000 : _bindgen_ty_12 = 33 ; pub const RC_CONSOLE_VIC20 : _bindgen_ty_12 = 34 ; pub const RC_CONSOLE_AMIGA : _bindgen_ty_12 = 35 ; pub const RC_CONSOLE_ATARI_ST : _bindgen_ty_12 = 36 ; pub const RC_CONSOLE_AMSTRAD_PC : _bindgen_ty_12 = 37 ; pub const RC_CONSOLE_APPLE_II : _bindgen_ty_12 = 38 ; pub const RC_CONSOLE_SATURN : _bindgen_ty_12 = 39 ; pub const RC_CONSOLE_DREAMCAST : _bindgen_ty_12 = 40 ; pub const RC_CONSOLE_PSP : _bindgen_ty_12 = 41 ; pub const RC_CONSOLE_CDI : _bindgen_ty_12 = 42 ; pub const RC_CONSOLE_3DO : _bindgen_ty_12 = 43 ; pub const RC_CONSOLE_COLECOVISION : _bindgen_ty_12 = 44 ; pub const RC_CONSOLE_INTELLIVISION : _bindgen_ty_12 = 45 ; pub const RC_CONSOLE_VECTREX : _bindgen_ty_12 = 46 ; pub const RC_CONSOLE_PC8800 : _bindgen_ty_12 = 47 ; pub const RC_CONSOLE_PC9800 : _bindgen_ty_12 = 48 ; pub const RC_CONSOLE_PCFX : _bindgen_ty_12 = 49 ; pub const RC_CONSOLE_ATARI_5200 : _bindgen_ty_12 = 50 ; pub const RC_CONSOLE_ATARI_7800 : _bindgen_ty_12 = 51 ; pub const RC_CONSOLE_X68K : _bindgen_ty_12 = 52 ; pub const RC_CONSOLE_WONDERSWAN : _bindgen_ty_12 = 53 ; pub const RC_CONSOLE_CASSETTEVISION : _bindgen_ty_12 = 54 ; pub const RC_CONSOLE_SUPER_CASSETTEVISION : _bindgen_ty_12 = 55 ; pub const RC_CONSOLE_NEO_GEO_CD : _bindgen_ty_12 = 56 ; pub const RC_CONSOLE_FAIRCHILD_CHANNEL_F : _bindgen_ty_12 = 57 ; pub const RC_CONSOLE_FM_TOWNS : _bindgen_ty_12 = 58 ; pub const RC_CONSOLE_ZX_SPECTRUM : _bindgen_ty_12 = 59 ; pub const RC_CONSOLE_GAME_AND_WATCH : _bindgen_ty_12 = 60 ; pub const RC_CONSOLE_NOKIA_NGAGE : _bindgen_ty_12 = 61 ; pub const RC_CONSOLE_NINTENDO_3DS : _bindgen_ty_12 = 62 ; pub const RC_CONSOLE_SUPERVISION : _bindgen_ty_12 = 63 ; pub const RC_CONSOLE_SHARPX1 : _bindgen_ty_12 = 64 ; pub const RC_CONSOLE_TIC80 : _bindgen_ty_12 = 65 ; pub const RC_CONSOLE_THOMSONTO8 : _bindgen_ty_12 = 66 ; pub const RC_CONSOLE_PC6000 : _bindgen_ty_12 = 67 ; pub const RC_CONSOLE_PICO : _bindgen_ty_12 = 68 ; pub const RC_CONSOLE_MEGADUCK : _bindgen_ty_12 = 69 ; pub const RC_CONSOLE_ZEEBO : _bindgen_ty_12 = 70 ; pub const RC_CONSOLE_ARDUBOY : _bindgen_ty_12 = 71 ; pub const RC_CONSOLE_WASM4 : _bindgen_ty_12 = 72 ; pub const RC_CONSOLE_ARCADIA_2001 : _bindgen_ty_12 = 73 ; pub const RC_CONSOLE_INTERTON_VC_4000 : _bindgen_ty_12 = 74 ; pub const RC_CONSOLE_ELEKTOR_TV_GAMES_COMPUTER : _bindgen_ty_12 = 75 ; pub const RC_CONSOLE_PC_ENGINE_CD : _bindgen_ty_12 = 76 ; pub const RC_CONSOLE_ATARI_JAGUAR_CD : _bindgen_ty_12 = 77 ; pub const RC_CONSOLE_NINTENDO_DSI : _bindgen_ty_12 = 78 ; pub const RC_CONSOLE_TI83 : _bindgen_ty_12 = 79 ; pub const RC_CONSOLE_UZEBOX : _bindgen_ty_12 = 80 ; pub const RC_CONSOLE_HUBS : _bindgen_ty_12 = 100 ; pub const RC_CONSOLE_EVENTS : _bindgen_ty_12 = 101 ; pub const RC_CONSOLE_STANDALONE : _bindgen_ty_12 = 102 ; # [doc = "\\\n| Console identifiers                                                         |\n\\"] pub type _bindgen_ty_12 = :: core :: ffi :: c_uint ; extern "C" { pub fn rc_console_name (console_id : u32) -> * const :: core :: ffi :: c_char ; } pub const RC_MEMORY_TYPE_SYSTEM_RAM : _bindgen_ty_13 = 0 ; pub const RC_MEMORY_TYPE_SAVE_RAM : _bindgen_ty_13 = 1 ; pub const RC_MEMORY_TYPE_VIDEO_RAM : _bindgen_ty_13 = 2 ; pub const RC_MEMORY_TYPE_READONLY : _bindgen_ty_13 = 3 ; pub const RC_MEMORY_TYPE_HARDWARE_CONTROLLER : _bindgen_ty_13 = 4 ; pub const RC_MEMORY_TYPE_VIRTUAL_RAM : _bindgen_ty_13 = 5 ; pub const RC_MEMORY_TYPE_UNUSED : _bindgen_ty_13 = 6 ; # [doc = "\\\n| Memory mapping                                                              |\n\\"] pub type _bindgen_ty_13 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memory_region_t { pub start_address : u32 , pub end_address : u32 , pub real_address : u32 , pub type_ : u8 , pub description : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memory_region_t"] [:: core :: mem :: size_of :: < rc_memory_region_t > () - 24usize] ; ["Alignment of rc_memory_region_t"] [:: core :: mem :: align_of :: < rc_memory_region_t > () - 8usize] ; ["Offset of field: rc_memory_region_t::start_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , start_address) - 0usize] ; ["Offset of field: rc_memory_region_t::end_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , end_address) - 4usize] ; ["Offset of field: rc_memory_region_t::real_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , real_address) - 8usize] ; ["Offset of field: rc_memory_region_t::type_"] [:: core :: mem :: offset_of ! (rc_memory_region_t , type_) - 12usize] ; ["Offset of field: rc_memory_region_t::description"] [:: core :: mem :: offset_of ! (rc_memory_region_t , description) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memory_regions_t { pub region : * const rc_memory_region_t , pub num_regions : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memory_regions_t"] [:: core :: mem :: size_of :: < rc_memory_regions_t > () - 16usize] ; ["Alignment of rc_memory_regions_t"] [:: core :: mem :: align_of :: < rc_memory_regions_t > () - 8usize] ; ["Offset of field: rc_memory_regions_t::region"] [:: core :: mem :: offset_of ! (rc_memory_regions_t , region) - 0usize] ; ["Offset of field: rc_memory_regions_t::num_regions"] [:: core :: mem :: offset_of ! (rc_memory_regions_t , num_regions) - 8usize] ; } ; extern "C" { pub fn rc_console_memory_regions (console_id : u32) -> * const rc_memory_regions_t ; } extern "C" { pub fn rc_hash_generate_from_buffer (hash : * mut :: core :: ffi :: c_char , console_id : u32 , buffer : * const u8 , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_hash_generate_from_file (hash : * mut :: core :: ffi :: c_char , console_id : u32 , path : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_iterator { pub buffer : * const u8 , pub buffer_size : usize , pub consoles : [u8 ; 12usize] , pub index : :: core :: ffi :: c_int , pub path : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_iterator"] [:: core :: mem :: size_of :: < rc_hash_iterator > () - 40usize] ; ["Alignment of rc_hash_iterator"] [:: core :: mem :: align_of :: < rc_hash_iterator > () - 8usize] ; ["Offset of field: rc_hash_iterator::buffer"] [:: core :: mem :: offset_of ! (rc_hash_iterator , buffer) - 0usize] ; ["Offset of field: rc_hash_iterator::buffer_size"] [:: core :: mem :: offset_of ! (rc_hash_iterator , buffer_size) - 8usize] ; ["Offset of field: rc_hash_iterator::consoles"] [:: core :: mem :: offset_of ! (rc_hash_iterator , consoles) - 16usize] ; ["Offset of field: rc_hash_iterator::index"] [:: core :: mem :: offset_of ! (rc_hash_iterator , index) - 28usize] ; ["Offset of field: rc_hash_iterator::path"] [:: core :: mem :: offset_of ! (rc_hash_iterator , path) - 32usize] ; } ; pub type rc_hash_iterator_t = rc_hash_iterator ; extern "C" { pub fn rc_hash_initialize_iterator (iterator : * mut rc_hash_iterator , path : * const :: core :: ffi :: c_char , buffer : * const u8 , buffer_size : usize) ; } extern "C" { pub fn rc_hash_destroy_iterator (iterator : * mut rc_hash_iterator) ; } extern "C" { pub fn rc_hash_iterate (hash : * mut :: core :: ffi :: c_char , iterator : * mut rc_hash_iterator) -> :: core :: ffi :: c_int ; } pub type rc_hash_message_callback = :: core :: option :: Option < unsafe extern "C" fn (arg1 : * const :: core :: ffi :: c_char) > ; extern "C" { pub fn rc_hash_init_error_message_callback (callback : rc_hash_message_callback) ; } extern "C" { pub fn rc_hash_init_verbose_message_callback (callback : rc_hash_message_callback) ; } pub type rc_hash_filereader_open_file_handler = :: core :: option :: Option < unsafe extern "C" fn (path_utf8 : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_void > ; pub type rc_hash_filereader_seek_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void , offset : i64 , origin : :: core :: ffi :: c_int) > ; pub type rc_hash_filereader_tell_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void) -> i64 > ; pub type rc_hash_filereader_read_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void , buffer : * mut :: core :: ffi :: c_void , requested_bytes : usize) -> usize > ; pub type rc_hash_filereader_close_file_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void) > ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_filereader { pub open : rc_hash_filereader_open_file_handler , pub seek : rc_hash_filereader_seek_handler , pub tell : rc_hash_filereader_tell_handler , pub read : rc_hash_filereader_read_handler , pub close : rc_hash_filereader_close_file_handler , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_filereader"] [:: core :: mem :: size_of :: < rc_hash_filereader > () - 40usize] ; ["Alignment of rc_hash_filereader"] [:: core :: mem :: align_of :: < rc_hash_filereader > () - 8usize] ; ["Offset of field: rc_hash_filereader::open"] [:: core :: mem :: offset_of ! (rc_hash_filereader , open) - 0usize] ; ["Offset of field: rc_hash_filereader::seek"] [:: core :: mem :: offset_of ! (rc_hash_filereader , seek) - 8usize] ; ["Offset of field: rc_hash_filereader::tell"] [:: core :: mem :: offset_of ! (rc_hash_filereader , tell) - 16usize] ; ["Offset of field: rc_hash_filereader::read"] [:: core :: mem :: offset_of ! (rc_hash_filereader , read) - 24usize] ; ["Offset of field: rc_hash_filereader::close"] [:: core :: mem :: offset_of ! (rc_hash_filereader , close) - 32usize] ; } ; extern "C" { pub fn rc_hash_init_custom_filereader (reader : * mut rc_hash_filereader) ; } pub type rc_hash_cdreader_open_track_handler = :: core :: option :: Option < unsafe extern "C" fn (path : * const :: core :: ffi :: c_char , track : u32) -> * mut :: core :: ffi :: c_void > ; pub type rc_hash_cdreader_read_sector_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void , sector : u32 , buffer : * mut :: core :: ffi :: c_void , requested_bytes : usize) -> usize > ; pub type rc_hash_cdreader_close_track_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void) > ; pub type rc_hash_cdreader_first_track_sector_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void) -> u32 > ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_cdreader { pub open_track : rc_hash_cdreader_open_track_handler , pub read_sector : rc_hash_cdreader_read_sector_handler , pub close_track : rc_hash_cdreader_close_track_handler , pub first_track_sector : rc_hash_cdreader_first_track_sector_handler , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_cdreader"] [:: core :: mem :: size_of :: < rc_hash_cdreader > () - 32usize] ; ["Alignment of rc_hash_cdreader"] [:: core :: mem :: align_of :: < rc_hash_cdreader > () - 8usize] ; ["Offset of field: rc_hash_cdreader::open_track"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , open_track) - 0usize] ; ["Offset of field: rc_hash_cdreader::read_sector"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , read_sector) - 8usize] ; ["Offset of field: rc_hash_cdreader::close_track"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , close_track) - 16usize] ; ["Offset of field: rc_hash_cdreader::first_track_sector"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , first_track_sector) - 24usize] ; } ; extern "C" { pub fn rc_hash_get_default_cdreader (cdreader : * mut rc_hash_cdreader) ; } extern "C" { pub fn rc_hash_init_default_cdreader () ; } extern "C" { pub fn rc_hash_init_custom_cdreader (reader : * mut rc_hash_cdreader) ; } pub type rc_hash_3ds_get_cia_normal_key_func = :: core :: option :: Option < unsafe extern "C" fn (common_key_index : u8 , out_normal_key : * mut u8) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_hash_init_3ds_get_cia_normal_key_func (func : rc_hash_3ds_get_cia_normal_key_func) ; } pub type rc_hash_3ds_get_ncch_normal_keys_func = :: core :: option :: Option < unsafe extern "C" fn (primary_key_y : * mut u8 , secondary_key_x_slot : u8 , optional_program_id : * mut u8 , out_primary_key : * mut u8 , out_secondary_key : * mut u8) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_hash_init_3ds_get_ncch_normal_keys_func (func : rc_hash_3ds_get_ncch_normal_keys_func) ; } # [doc = " API parameters for a fetch image request.\n NOTE: fetch image server response is the raw image data. There is no rc_api_process_fetch_image_response function."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_image_request_t { pub image_name : * const :: core :: ffi :: c_char , pub image_type : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_image_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_image_request_t > () - 16usize] ; ["Alignment of rc_api_fetch_image_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_image_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_image_request_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_fetch_image_request_t , image_name) - 0usize] ; ["Offset of field: rc_api_fetch_image_request_t::image_type"] [:: core :: mem :: offset_of ! (rc_api_fetch_image_request_t , image_type) - 8usize] ; } ; extern "C" { pub fn rc_api_init_fetch_image_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_image_request_t) -> :: core :: ffi :: c_int ; } # [doc = " API parameters for a resolve hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_resolve_hash_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_hash : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_resolve_hash_request_t"] [:: core :: mem :: size_of :: < rc_api_resolve_hash_request_t > () - 24usize] ; ["Alignment of rc_api_resolve_hash_request_t"] [:: core :: mem :: align_of :: < rc_api_resolve_hash_request_t > () - 8usize] ; ["Offset of field: rc_api_resolve_hash_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , username) - 0usize] ; ["Offset of field: rc_api_resolve_hash_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_resolve_hash_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , game_hash) - 16usize] ; } ; # [doc = " Response data for a resolve hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_resolve_hash_response_t { pub game_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_resolve_hash_response_t"] [:: core :: mem :: size_of :: < rc_api_resolve_hash_response_t > () - 320usize] ; ["Alignment of rc_api_resolve_hash_response_t"] [:: core :: mem :: align_of :: < rc_api_resolve_hash_response_t > () - 8usize] ; ["Offset of field: rc_api_resolve_hash_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_response_t , game_id) - 0usize] ; ["Offset of field: rc_api_resolve_hash_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_resolve_hash_request (request : * mut rc_api_request_t , api_params : * const rc_api_resolve_hash_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_resolve_hash_response (response : * mut rc_api_resolve_hash_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_resolve_hash_server_response (response : * mut rc_api_resolve_hash_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_resolve_hash_response (response : * mut rc_api_resolve_hash_response_t) ; } # [doc = " API parameters for a fetch game data request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_data_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_data_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_data_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_game_data_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_data_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , game_id) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_leaderboard_definition_t { pub id : u32 , pub format : :: core :: ffi :: c_int , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub lower_is_better : u8 , pub hidden : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_leaderboard_definition_t"] [:: core :: mem :: size_of :: < rc_api_leaderboard_definition_t > () - 40usize] ; ["Alignment of rc_api_leaderboard_definition_t"] [:: core :: mem :: align_of :: < rc_api_leaderboard_definition_t > () - 8usize] ; ["Offset of field: rc_api_leaderboard_definition_t::id"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , id) - 0usize] ; ["Offset of field: rc_api_leaderboard_definition_t::format"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , format) - 4usize] ; ["Offset of field: rc_api_leaderboard_definition_t::title"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , title) - 8usize] ; ["Offset of field: rc_api_leaderboard_definition_t::description"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , description) - 16usize] ; ["Offset of field: rc_api_leaderboard_definition_t::definition"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , definition) - 24usize] ; ["Offset of field: rc_api_leaderboard_definition_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , lower_is_better) - 32usize] ; ["Offset of field: rc_api_leaderboard_definition_t::hidden"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , hidden) - 33usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_achievement_definition_t { pub id : u32 , pub points : u32 , pub category : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub author : * const :: core :: ffi :: c_char , pub badge_name : * const :: core :: ffi :: c_char , pub created : time_t , pub updated : time_t , pub type_ : u32 , pub rarity : f32 , pub rarity_hardcore : f32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_achievement_definition_t"] [:: core :: mem :: size_of :: < rc_api_achievement_definition_t > () - 88usize] ; ["Alignment of rc_api_achievement_definition_t"] [:: core :: mem :: align_of :: < rc_api_achievement_definition_t > () - 8usize] ; ["Offset of field: rc_api_achievement_definition_t::id"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , id) - 0usize] ; ["Offset of field: rc_api_achievement_definition_t::points"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , points) - 4usize] ; ["Offset of field: rc_api_achievement_definition_t::category"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , category) - 8usize] ; ["Offset of field: rc_api_achievement_definition_t::title"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , title) - 16usize] ; ["Offset of field: rc_api_achievement_definition_t::description"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , description) - 24usize] ; ["Offset of field: rc_api_achievement_definition_t::definition"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , definition) - 32usize] ; ["Offset of field: rc_api_achievement_definition_t::author"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , author) - 40usize] ; ["Offset of field: rc_api_achievement_definition_t::badge_name"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , badge_name) - 48usize] ; ["Offset of field: rc_api_achievement_definition_t::created"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , created) - 56usize] ; ["Offset of field: rc_api_achievement_definition_t::updated"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , updated) - 64usize] ; ["Offset of field: rc_api_achievement_definition_t::type_"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , type_) - 72usize] ; ["Offset of field: rc_api_achievement_definition_t::rarity"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , rarity) - 76usize] ; ["Offset of field: rc_api_achievement_definition_t::rarity_hardcore"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , rarity_hardcore) - 80usize] ; } ; # [doc = " Response data for a fetch game data request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_data_response_t { pub id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub image_name : * const :: core :: ffi :: c_char , pub rich_presence_script : * const :: core :: ffi :: c_char , pub achievements : * mut rc_api_achievement_definition_t , pub num_achievements : u32 , pub leaderboards : * mut rc_api_leaderboard_definition_t , pub num_leaderboards : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_data_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_data_response_t > () - 376usize] ; ["Alignment of rc_api_fetch_game_data_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_data_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , console_id) - 4usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::title"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , title) - 8usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , image_name) - 16usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::rich_presence_script"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , rich_presence_script) - 24usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::achievements"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , achievements) - 32usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , num_achievements) - 40usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::leaderboards"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , leaderboards) - 48usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , num_leaderboards) - 56usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , response) - 64usize] ; } ; extern "C" { pub fn rc_api_init_fetch_game_data_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_game_data_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_data_response (response : * mut rc_api_fetch_game_data_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_data_server_response (response : * mut rc_api_fetch_game_data_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_game_data_response (response : * mut rc_api_fetch_game_data_response_t) ; } # [doc = " API parameters for a ping request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_ping_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub rich_presence : * const :: core :: ffi :: c_char , pub game_hash : * const :: core :: ffi :: c_char , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_ping_request_t"] [:: core :: mem :: size_of :: < rc_api_ping_request_t > () - 48usize] ; ["Alignment of rc_api_ping_request_t"] [:: core :: mem :: align_of :: < rc_api_ping_request_t > () - 8usize] ; ["Offset of field: rc_api_ping_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , username) - 0usize] ; ["Offset of field: rc_api_ping_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_ping_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_ping_request_t::rich_presence"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , rich_presence) - 24usize] ; ["Offset of field: rc_api_ping_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , game_hash) - 32usize] ; ["Offset of field: rc_api_ping_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , hardcore) - 40usize] ; } ; # [doc = " Response data for a ping request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_ping_response_t { pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_ping_response_t"] [:: core :: mem :: size_of :: < rc_api_ping_response_t > () - 312usize] ; ["Alignment of rc_api_ping_response_t"] [:: core :: mem :: align_of :: < rc_api_ping_response_t > () - 8usize] ; ["Offset of field: rc_api_ping_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_ping_response_t , response) - 0usize] ; } ; extern "C" { pub fn rc_api_init_ping_request (request : * mut rc_api_request_t , api_params : * const rc_api_ping_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_ping_response (response : * mut rc_api_ping_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_ping_server_response (response : * mut rc_api_ping_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_ping_response (response : * mut rc_api_ping_response_t) ; } # [doc = " API parameters for an award achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_award_achievement_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub hardcore : u32 , pub game_hash : * const :: core :: ffi :: c_char , pub seconds_since_unlock : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_award_achievement_request_t"] [:: core :: mem :: size_of :: < rc_api_award_achievement_request_t > () - 40usize] ; ["Alignment of rc_api_award_achievement_request_t"] [:: core :: mem :: align_of :: < rc_api_award_achievement_request_t > () - 8usize] ; ["Offset of field: rc_api_award_achievement_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , username) - 0usize] ; ["Offset of field: rc_api_award_achievement_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_award_achievement_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_award_achievement_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , hardcore) - 20usize] ; ["Offset of field: rc_api_award_achievement_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_award_achievement_request_t::seconds_since_unlock"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , seconds_since_unlock) - 32usize] ; } ; # [doc = " Response data for an award achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_award_achievement_response_t { pub awarded_achievement_id : u32 , pub new_player_score : u32 , pub new_player_score_softcore : u32 , pub achievements_remaining : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_award_achievement_response_t"] [:: core :: mem :: size_of :: < rc_api_award_achievement_response_t > () - 328usize] ; ["Alignment of rc_api_award_achievement_response_t"] [:: core :: mem :: align_of :: < rc_api_award_achievement_response_t > () - 8usize] ; ["Offset of field: rc_api_award_achievement_response_t::awarded_achievement_id"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , awarded_achievement_id) - 0usize] ; ["Offset of field: rc_api_award_achievement_response_t::new_player_score"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , new_player_score) - 4usize] ; ["Offset of field: rc_api_award_achievement_response_t::new_player_score_softcore"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , new_player_score_softcore) - 8usize] ; ["Offset of field: rc_api_award_achievement_response_t::achievements_remaining"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , achievements_remaining) - 12usize] ; ["Offset of field: rc_api_award_achievement_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_award_achievement_request (request : * mut rc_api_request_t , api_params : * const rc_api_award_achievement_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_award_achievement_response (response : * mut rc_api_award_achievement_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_award_achievement_server_response (response : * mut rc_api_award_achievement_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_award_achievement_response (response : * mut rc_api_award_achievement_response_t) ; } # [doc = " API parameters for a submit lboard entry request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_submit_lboard_entry_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub leaderboard_id : u32 , pub score : i32 , pub game_hash : * const :: core :: ffi :: c_char , pub seconds_since_completion : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_submit_lboard_entry_request_t"] [:: core :: mem :: size_of :: < rc_api_submit_lboard_entry_request_t > () - 40usize] ; ["Alignment of rc_api_submit_lboard_entry_request_t"] [:: core :: mem :: align_of :: < rc_api_submit_lboard_entry_request_t > () - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , username) - 0usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , leaderboard_id) - 16usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , score) - 20usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::seconds_since_completion"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , seconds_since_completion) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_lboard_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub score : i32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_lboard_entry_t"] [:: core :: mem :: size_of :: < rc_api_lboard_entry_t > () - 16usize] ; ["Alignment of rc_api_lboard_entry_t"] [:: core :: mem :: align_of :: < rc_api_lboard_entry_t > () - 8usize] ; ["Offset of field: rc_api_lboard_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , username) - 0usize] ; ["Offset of field: rc_api_lboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , rank) - 8usize] ; ["Offset of field: rc_api_lboard_entry_t::score"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , score) - 12usize] ; } ; # [doc = " Response data for a submit lboard entry request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_submit_lboard_entry_response_t { pub submitted_score : i32 , pub best_score : i32 , pub new_rank : u32 , pub num_entries : u32 , pub top_entries : * mut rc_api_lboard_entry_t , pub num_top_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_submit_lboard_entry_response_t"] [:: core :: mem :: size_of :: < rc_api_submit_lboard_entry_response_t > () - 344usize] ; ["Alignment of rc_api_submit_lboard_entry_response_t"] [:: core :: mem :: align_of :: < rc_api_submit_lboard_entry_response_t > () - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::submitted_score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , submitted_score) - 0usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::best_score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , best_score) - 4usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::new_rank"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , new_rank) - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , num_entries) - 12usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::top_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , top_entries) - 16usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::num_top_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , num_top_entries) - 24usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_submit_lboard_entry_request (request : * mut rc_api_request_t , api_params : * const rc_api_submit_lboard_entry_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_submit_lboard_entry_response (response : * mut rc_api_submit_lboard_entry_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_submit_lboard_entry_server_response (response : * mut rc_api_submit_lboard_entry_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_submit_lboard_entry_response (response : * mut rc_api_submit_lboard_entry_response_t) ; } # [doc = " Callback used to read num_bytes bytes from memory starting at address. If\n num_bytes is greater than 1, the value is read in little-endian from\n memory."] pub type rc_runtime_peek_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , num_bytes : u32 , ud : * mut :: core :: ffi :: c_void) -> u32 > ; # [doc = "\\\n| Runtime                                                                     |\n\\"] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_trigger_t { pub id : u32 , pub trigger : * mut rc_trigger_t , pub buffer : * mut :: core :: ffi :: c_void , pub invalid_memref : * mut rc_memref_t , pub md5 : [u8 ; 16usize] , pub serialized_size : i32 , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_trigger_t"] [:: core :: mem :: size_of :: < rc_runtime_trigger_t > () - 56usize] ; ["Alignment of rc_runtime_trigger_t"] [:: core :: mem :: align_of :: < rc_runtime_trigger_t > () - 8usize] ; ["Offset of field: rc_runtime_trigger_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , id) - 0usize] ; ["Offset of field: rc_runtime_trigger_t::trigger"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , trigger) - 8usize] ; ["Offset of field: rc_runtime_trigger_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , buffer) - 16usize] ; ["Offset of field: rc_runtime_trigger_t::invalid_memref"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , invalid_memref) - 24usize] ; ["Offset of field: rc_runtime_trigger_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , md5) - 32usize] ; ["Offset of field: rc_runtime_trigger_t::serialized_size"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , serialized_size) - 48usize] ; ["Offset of field: rc_runtime_trigger_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , owns_memrefs) - 52usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_lboard_t { pub id : u32 , pub value : i32 , pub lboard : * mut rc_lboard_t , pub buffer : * mut :: core :: ffi :: c_void , pub invalid_memref : * mut rc_memref_t , pub md5 : [u8 ; 16usize] , pub serialized_size : u32 , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_lboard_t"] [:: core :: mem :: size_of :: < rc_runtime_lboard_t > () - 56usize] ; ["Alignment of rc_runtime_lboard_t"] [:: core :: mem :: align_of :: < rc_runtime_lboard_t > () - 8usize] ; ["Offset of field: rc_runtime_lboard_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , id) - 0usize] ; ["Offset of field: rc_runtime_lboard_t::value"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , value) - 4usize] ; ["Offset of field: rc_runtime_lboard_t::lboard"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , lboard) - 8usize] ; ["Offset of field: rc_runtime_lboard_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , buffer) - 16usize] ; ["Offset of field: rc_runtime_lboard_t::invalid_memref"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , invalid_memref) - 24usize] ; ["Offset of field: rc_runtime_lboard_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , md5) - 32usize] ; ["Offset of field: rc_runtime_lboard_t::serialized_size"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , serialized_size) - 48usize] ; ["Offset of field: rc_runtime_lboard_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , owns_memrefs) - 52usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_richpresence_t { pub richpresence : * mut rc_richpresence_t , pub buffer : * mut :: core :: ffi :: c_void , pub previous : * mut rc_runtime_richpresence_t , pub md5 : [u8 ; 16usize] , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_richpresence_t"] [:: core :: mem :: size_of :: < rc_runtime_richpresence_t > () - 48usize] ; ["Alignment of rc_runtime_richpresence_t"] [:: core :: mem :: align_of :: < rc_runtime_richpresence_t > () - 8usize] ; ["Offset of field: rc_runtime_richpresence_t::richpresence"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , richpresence) - 0usize] ; ["Offset of field: rc_runtime_richpresence_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , buffer) - 8usize] ; ["Offset of field: rc_runtime_richpresence_t::previous"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , previous) - 16usize] ; ["Offset of field: rc_runtime_richpresence_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , md5) - 24usize] ; ["Offset of field: rc_runtime_richpresence_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , owns_memrefs) - 40usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_t { pub triggers : * mut rc_runtime_trigger_t , pub trigger_count : u32 , pub trigger_capacity : u32 , pub lboards : * mut rc_runtime_lboard_t , pub lboard_count : u32 , pub lboard_capacity : u32 , pub richpresence : * mut rc_runtime_richpresence_t , pub memrefs : * mut rc_memref_t , pub next_memref : * mut * mut rc_memref_t , pub variables : * mut rc_value_t , pub next_variable : * mut * mut rc_value_t , pub owns_self : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_t"] [:: core :: mem :: size_of :: < rc_runtime_t > () - 80usize] ; ["Alignment of rc_runtime_t"] [:: core :: mem :: align_of :: < rc_runtime_t > () - 8usize] ; ["Offset of field: rc_runtime_t::triggers"] [:: core :: mem :: offset_of ! (rc_runtime_t , triggers) - 0usize] ; ["Offset of field: rc_runtime_t::trigger_count"] [:: core :: mem :: offset_of ! (rc_runtime_t , trigger_count) - 8usize] ; ["Offset of field: rc_runtime_t::trigger_capacity"] [:: core :: mem :: offset_of ! (rc_runtime_t , trigger_capacity) - 12usize] ; ["Offset of field: rc_runtime_t::lboards"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboards) - 16usize] ; ["Offset of field: rc_runtime_t::lboard_count"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboard_count) - 24usize] ; ["Offset of field: rc_runtime_t::lboard_capacity"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboard_capacity) - 28usize] ; ["Offset of field: rc_runtime_t::richpresence"] [:: core :: mem :: offset_of ! (rc_runtime_t , richpresence) - 32usize] ; ["Offset of field: rc_runtime_t::memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_t , memrefs) - 40usize] ; ["Offset of field: rc_runtime_t::next_memref"] [:: core :: mem :: offset_of ! (rc_runtime_t , next_memref) - 48usize] ; ["Offset of field: rc_runtime_t::variables"] [:: core :: mem :: offset_of ! (rc_runtime_t , variables) - 56usize] ; ["Offset of field: rc_runtime_t::next_variable"] [:: core :: mem :: offset_of ! (rc_runtime_t , next_variable) - 64usize] ; ["Offset of field: rc_runtime_t::owns_self"] [:: core :: mem :: offset_of ! (rc_runtime_t , owns_self) - 72usize] ; } ; extern "C" { pub fn rc_runtime_alloc () -> * mut rc_runtime_t ; } extern "C" { pub fn rc_runtime_init (runtime : * mut rc_runtime_t) ; } extern "C" { pub fn rc_runtime_destroy (runtime : * mut rc_runtime_t) ; } extern "C" { pub fn rc_runtime_activate_achievement (runtime : * mut rc_runtime_t , id : u32 , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deactivate_achievement (runtime : * mut rc_runtime_t , id : u32) ; } extern "C" { pub fn rc_runtime_get_achievement (runtime : * const rc_runtime_t , id : u32) -> * mut rc_trigger_t ; } extern "C" { pub fn rc_runtime_get_achievement_measured (runtime : * const rc_runtime_t , id : u32 , measured_value : * mut :: core :: ffi :: c_uint , measured_target : * mut :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_format_achievement_measured (runtime : * const rc_runtime_t , id : u32 , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_activate_lboard (runtime : * mut rc_runtime_t , id : u32 , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deactivate_lboard (runtime : * mut rc_runtime_t , id : u32) ; } extern "C" { pub fn rc_runtime_get_lboard (runtime : * const rc_runtime_t , id : u32) -> * mut rc_lboard_t ; } extern "C" { pub fn rc_runtime_format_lboard_value (buffer : * mut :: core :: ffi :: c_char , size : :: core :: ffi :: c_int , value : i32 , format : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_activate_richpresence (runtime : * mut rc_runtime_t , script : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_get_richpresence (runtime : * const rc_runtime_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_runtime_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } pub const RC_RUNTIME_EVENT_ACHIEVEMENT_ACTIVATED : _bindgen_ty_14 = 0 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PAUSED : _bindgen_ty_14 = 1 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_RESET : _bindgen_ty_14 = 2 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_TRIGGERED : _bindgen_ty_14 = 3 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PRIMED : _bindgen_ty_14 = 4 ; pub const RC_RUNTIME_EVENT_LBOARD_STARTED : _bindgen_ty_14 = 5 ; pub const RC_RUNTIME_EVENT_LBOARD_CANCELED : _bindgen_ty_14 = 6 ; pub const RC_RUNTIME_EVENT_LBOARD_UPDATED : _bindgen_ty_14 = 7 ; pub const RC_RUNTIME_EVENT_LBOARD_TRIGGERED : _bindgen_ty_14 = 8 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_DISABLED : _bindgen_ty_14 = 9 ; pub const RC_RUNTIME_EVENT_LBOARD_DISABLED : _bindgen_ty_14 = 10 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_UNPRIMED : _bindgen_ty_14 = 11 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PROGRESS_UPDATED : _bindgen_ty_14 = 12 ; pub type _bindgen_ty_14 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_event_t { pub id : u32 , pub value : i32 , pub type_ : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_event_t"] [:: core :: mem :: size_of :: < rc_runtime_event_t > () - 12usize] ; ["Alignment of rc_runtime_event_t"] [:: core :: mem :: align_of :: < rc_runtime_event_t > () - 4usize] ; ["Offset of field: rc_runtime_event_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , id) - 0usize] ; ["Offset of field: rc_runtime_event_t::value"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , value) - 4usize] ; ["Offset of field: rc_runtime_event_t::type_"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , type_) - 8usize] ; } ; pub type rc_runtime_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (runtime_event : * const rc_runtime_event_t) > ; extern "C" { pub fn rc_runtime_do_frame (runtime : * mut rc_runtime_t , event_handler : rc_runtime_event_handler_t , peek : rc_runtime_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) ; } extern "C" { pub fn rc_runtime_reset (runtime : * mut rc_runtime_t) ; } pub type rc_runtime_validate_address_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_runtime_validate_addresses (runtime : * mut rc_runtime_t , event_handler : rc_runtime_event_handler_t , validate_handler : rc_runtime_validate_address_t) ; } extern "C" { pub fn rc_runtime_invalidate_address (runtime : * mut rc_runtime_t , address : u32) ; } extern "C" { pub fn rc_runtime_progress_size (runtime : * const rc_runtime_t , L : * mut lua_State) -> u32 ; } extern "C" { pub fn rc_runtime_serialize_progress (buffer : * mut :: core :: ffi :: c_void , runtime : * const rc_runtime_t , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_serialize_progress_sized (buffer : * mut u8 , buffer_size : u32 , runtime : * const rc_runtime_t , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deserialize_progress (runtime : * mut rc_runtime_t , serialized : * const u8 , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deserialize_progress_sized (runtime : * mut rc_runtime_t , serialized : * const u8 , serialized_size : u32 , L : * mut lua_State) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_async_handle_t { _unused : [u8 ; 0] , } # [doc = " Callback used to read num_bytes bytes from memory starting at address into buffer.\n Returns the number of bytes read. A return value of 0 indicates the address was invalid."] pub type rc_client_read_memory_func_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , buffer : * mut u8 , num_bytes : u32 , client : * mut rc_client_t) -> u32 > ; # [doc = " Internal method passed to rc_client_server_call_t to process the server response."] pub type rc_client_server_callback_t = :: core :: option :: Option < unsafe extern "C" fn (server_response : * const rc_api_server_response_t , callback_data : * mut :: core :: ffi :: c_void) > ; # [doc = " Callback used to issue a request to the server."] pub type rc_client_server_call_t = :: core :: option :: Option < unsafe extern "C" fn (request : * const rc_api_request_t , callback : rc_client_server_callback_t , callback_data : * mut :: core :: ffi :: c_void , client : * mut rc_client_t) > ; # [doc = " Generic callback for asynchronous eventing."] pub type rc_client_callback_t = :: core :: option :: Option < unsafe extern "C" fn (result : :: core :: ffi :: c_int , error_message : * const :: core :: ffi :: c_char , client : * mut rc_client_t , userdata : * mut :: core :: ffi :: c_void) > ; # [doc = " Callback for logging or displaying a message."] pub type rc_client_message_callback_t = :: core :: option :: Option < unsafe extern "C" fn (message : * const :: core :: ffi :: c_char , client : * const rc_client_t) > ; extern "C" { # [doc = " Creates a new rc_client_t object."] pub fn rc_client_create (read_memory_function : rc_client_read_memory_func_t , server_call_function : rc_client_server_call_t) -> * mut rc_client_t ; } extern "C" { # [doc = " Releases resources associated to a rc_client_t object.\n Pointer will no longer be valid after making this call."] pub fn rc_client_destroy (client : * mut rc_client_t) ; } extern "C" { # [doc = " Sets whether hardcore is enabled (on by default).\n Can be called with a game loaded.\n Enabling hardcore with a game loaded will raise an RC_CLIENT_EVENT_RESET\n event. Processing will be disabled until rc_client_reset is called."] pub fn rc_client_set_hardcore_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether hardcore is enabled (on by default)."] pub fn rc_client_get_hardcore_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether encore mode is enabled (off by default).\n Evaluated when loading a game. Has no effect while a game is loaded."] pub fn rc_client_set_encore_mode_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether encore mode is enabled (off by default)."] pub fn rc_client_get_encore_mode_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether unofficial achievements should be loaded.\n Evaluated when loading a game. Has no effect while a game is loaded."] pub fn rc_client_set_unofficial_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether unofficial achievements should be loaded."] pub fn rc_client_get_unofficial_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether spectator mode is enabled (off by default).\n If enabled, events for achievement unlocks and leaderboard submissions will be\n raised, but server calls to actually perform the unlock/submit will not occur.\n Can be modified while a game is loaded. Evaluated at unlock/submit time.\n Cannot be modified if disabled before a game is loaded."] pub fn rc_client_set_spectator_mode_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether spectator mode is enabled (off by default)."] pub fn rc_client_get_spectator_mode_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Attaches client-specific data to the runtime."] pub fn rc_client_set_userdata (client : * mut rc_client_t , userdata : * mut :: core :: ffi :: c_void) ; } extern "C" { # [doc = " Gets the client-specific data attached to the runtime."] pub fn rc_client_get_userdata (client : * const rc_client_t) -> * mut :: core :: ffi :: c_void ; } extern "C" { # [doc = " Sets the name of the server to use."] pub fn rc_client_set_host (client : * const rc_client_t , hostname : * const :: core :: ffi :: c_char) ; } pub type rc_clock_t = u64 ; pub type rc_get_time_millisecs_func_t = :: core :: option :: Option < unsafe extern "C" fn (client : * const rc_client_t) -> rc_clock_t > ; extern "C" { # [doc = " Specifies a function that returns a value that increases once per millisecond."] pub fn rc_client_set_get_time_millisecs_function (client : * mut rc_client_t , handler : rc_get_time_millisecs_func_t) ; } extern "C" { # [doc = " Marks an async process as aborted. The associated callback will not be called."] pub fn rc_client_abort_async (client : * mut rc_client_t , async_handle : * mut rc_client_async_handle_t) ; } extern "C" { # [doc = " Gets a clause that can be added to the User-Agent to identify the version of rcheevos being used."] pub fn rc_client_get_user_agent_clause (client : * mut rc_client_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> usize ; } extern "C" { # [doc = " Sets the logging level and provides a callback to be called to do the logging."] pub fn rc_client_enable_logging (client : * mut rc_client_t , level : :: core :: ffi :: c_int , callback : rc_client_message_callback_t) ; } pub const RC_CLIENT_LOG_LEVEL_NONE : _bindgen_ty_15 = 0 ; pub const RC_CLIENT_LOG_LEVEL_ERROR : _bindgen_ty_15 = 1 ; pub const RC_CLIENT_LOG_LEVEL_WARN : _bindgen_ty_15 = 2 ; pub const RC_CLIENT_LOG_LEVEL_INFO : _bindgen_ty_15 = 3 ; pub const RC_CLIENT_LOG_LEVEL_VERBOSE : _bindgen_ty_15 = 4 ; pub const NUM_RC_CLIENT_LOG_LEVELS : _bindgen_ty_15 = 5 ; pub type _bindgen_ty_15 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Attempt to login a user."] pub fn rc_client_begin_login_with_password (client : * mut rc_client_t , username : * const :: core :: ffi :: c_char , password : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Attempt to login a user."] pub fn rc_client_begin_login_with_token (client : * mut rc_client_t , username : * const :: core :: ffi :: c_char , token : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Logout the user."] pub fn rc_client_logout (client : * mut rc_client_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_user_t { pub display_name : * const :: core :: ffi :: c_char , pub username : * const :: core :: ffi :: c_char , pub token : * const :: core :: ffi :: c_char , pub score : u32 , pub score_softcore : u32 , pub num_unread_messages : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_user_t"] [:: core :: mem :: size_of :: < rc_client_user_t > () - 40usize] ; ["Alignment of rc_client_user_t"] [:: core :: mem :: align_of :: < rc_client_user_t > () - 8usize] ; ["Offset of field: rc_client_user_t::display_name"] [:: core :: mem :: offset_of ! (rc_client_user_t , display_name) - 0usize] ; ["Offset of field: rc_client_user_t::username"] [:: core :: mem :: offset_of ! (rc_client_user_t , username) - 8usize] ; ["Offset of field: rc_client_user_t::token"] [:: core :: mem :: offset_of ! (rc_client_user_t , token) - 16usize] ; ["Offset of field: rc_client_user_t::score"] [:: core :: mem :: offset_of ! (rc_client_user_t , score) - 24usize] ; ["Offset of field: rc_client_user_t::score_softcore"] [:: core :: mem :: offset_of ! (rc_client_user_t , score_softcore) - 28usize] ; ["Offset of field: rc_client_user_t::num_unread_messages"] [:: core :: mem :: offset_of ! (rc_client_user_t , num_unread_messages) - 32usize] ; } ; extern "C" { # [doc = " Gets information about the logged in user. Will return NULL if the user is not logged in."] pub fn rc_client_get_user_info (client : * const rc_client_t) -> * const rc_client_user_t ; } extern "C" { # [doc = " Gets the URL for the user's profile picture.\n Returns RC_OK on success."] pub fn rc_client_user_get_image_url (user : * const rc_client_user_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_user_game_summary_t { pub num_core_achievements : u32 , pub num_unofficial_achievements : u32 , pub num_unlocked_achievements : u32 , pub num_unsupported_achievements : u32 , pub points_core : u32 , pub points_unlocked : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_user_game_summary_t"] [:: core :: mem :: size_of :: < rc_client_user_game_summary_t > () - 24usize] ; ["Alignment of rc_client_user_game_summary_t"] [:: core :: mem :: align_of :: < rc_client_user_game_summary_t > () - 4usize] ; ["Offset of field: rc_client_user_game_summary_t::num_core_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_core_achievements) - 0usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unofficial_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unofficial_achievements) - 4usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unlocked_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unlocked_achievements) - 8usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unsupported_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unsupported_achievements) - 12usize] ; ["Offset of field: rc_client_user_game_summary_t::points_core"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , points_core) - 16usize] ; ["Offset of field: rc_client_user_game_summary_t::points_unlocked"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , points_unlocked) - 20usize] ; } ; extern "C" { # [doc = " Gets a breakdown of the number of achievements in the game, and how many the user has unlocked.\n Used for the \"You have unlocked X of Y achievements\" message shown when the game starts."] pub fn rc_client_get_user_game_summary (client : * const rc_client_t , summary : * mut rc_client_user_game_summary_t) ; } extern "C" { # [doc = " Start loading an unidentified game."] pub fn rc_client_begin_identify_and_load_game (client : * mut rc_client_t , console_id : u32 , file_path : * const :: core :: ffi :: c_char , data : * const u8 , data_size : usize , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Start loading a game."] pub fn rc_client_begin_load_game (client : * mut rc_client_t , hash : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Gets the current progress of the asynchronous load game process."] pub fn rc_client_get_load_game_state (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } pub const RC_CLIENT_LOAD_GAME_STATE_NONE : _bindgen_ty_16 = 0 ; pub const RC_CLIENT_LOAD_GAME_STATE_IDENTIFYING_GAME : _bindgen_ty_16 = 1 ; pub const RC_CLIENT_LOAD_GAME_STATE_AWAIT_LOGIN : _bindgen_ty_16 = 2 ; pub const RC_CLIENT_LOAD_GAME_STATE_FETCHING_GAME_DATA : _bindgen_ty_16 = 3 ; pub const RC_CLIENT_LOAD_GAME_STATE_STARTING_SESSION : _bindgen_ty_16 = 4 ; pub const RC_CLIENT_LOAD_GAME_STATE_DONE : _bindgen_ty_16 = 5 ; pub const RC_CLIENT_LOAD_GAME_STATE_ABORTED : _bindgen_ty_16 = 6 ; pub type _bindgen_ty_16 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Determines if a game was successfully identified and loaded."] pub fn rc_client_is_game_loaded (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Unloads the current game."] pub fn rc_client_unload_game (client : * mut rc_client_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_game_t { pub id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub hash : * const :: core :: ffi :: c_char , pub badge_name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_game_t"] [:: core :: mem :: size_of :: < rc_client_game_t > () - 32usize] ; ["Alignment of rc_client_game_t"] [:: core :: mem :: align_of :: < rc_client_game_t > () - 8usize] ; ["Offset of field: rc_client_game_t::id"] [:: core :: mem :: offset_of ! (rc_client_game_t , id) - 0usize] ; ["Offset of field: rc_client_game_t::console_id"] [:: core :: mem :: offset_of ! (rc_client_game_t , console_id) - 4usize] ; ["Offset of field: rc_client_game_t::title"] [:: core :: mem :: offset_of ! (rc_client_game_t , title) - 8usize] ; ["Offset of field: rc_client_game_t::hash"] [:: core :: mem :: offset_of ! (rc_client_game_t , hash) - 16usize] ; ["Offset of field: rc_client_game_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_game_t , badge_name) - 24usize] ; } ; extern "C" { # [doc = " Get information about the current game. Returns NULL if no game is loaded.\n NOTE: returns a dummy game record if an unidentified game is loaded."] pub fn rc_client_get_game_info (client : * const rc_client_t) -> * const rc_client_game_t ; } extern "C" { # [doc = " Gets the URL for the game image.\n Returns RC_OK on success."] pub fn rc_client_game_get_image_url (game : * const rc_client_game_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Changes the active disc in a multi-disc game."] pub fn rc_client_begin_change_media (client : * mut rc_client_t , file_path : * const :: core :: ffi :: c_char , data : * const u8 , data_size : usize , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Changes the active disc in a multi-disc game."] pub fn rc_client_begin_change_media_from_hash (client : * mut rc_client_t , hash : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } # [doc = "\\\n| Subsets                                                                     |\n\\"] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_subset_t { pub id : u32 , pub title : * const :: core :: ffi :: c_char , pub badge_name : [:: core :: ffi :: c_char ; 16usize] , pub num_achievements : u32 , pub num_leaderboards : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_subset_t"] [:: core :: mem :: size_of :: < rc_client_subset_t > () - 40usize] ; ["Alignment of rc_client_subset_t"] [:: core :: mem :: align_of :: < rc_client_subset_t > () - 8usize] ; ["Offset of field: rc_client_subset_t::id"] [:: core :: mem :: offset_of ! (rc_client_subset_t , id) - 0usize] ; ["Offset of field: rc_client_subset_t::title"] [:: core :: mem :: offset_of ! (rc_client_subset_t , title) - 8usize] ; ["Offset of field: rc_client_subset_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_subset_t , badge_name) - 16usize] ; ["Offset of field: rc_client_subset_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_client_subset_t , num_achievements) - 32usize] ; ["Offset of field: rc_client_subset_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_client_subset_t , num_leaderboards) - 36usize] ; } ; extern "C" { pub fn rc_client_get_subset_info (client : * mut rc_client_t , subset_id : u32) -> * const rc_client_subset_t ; } pub const RC_CLIENT_ACHIEVEMENT_STATE_INACTIVE : _bindgen_ty_17 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_ACTIVE : _bindgen_ty_17 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_UNLOCKED : _bindgen_ty_17 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_DISABLED : _bindgen_ty_17 = 3 ; pub const NUM_RC_CLIENT_ACHIEVEMENT_STATES : _bindgen_ty_17 = 4 ; # [doc = "\\\n| Achievements                                                                |\n\\"] pub type _bindgen_ty_17 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_NONE : _bindgen_ty_18 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_CORE : _bindgen_ty_18 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_UNOFFICIAL : _bindgen_ty_18 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_CORE_AND_UNOFFICIAL : _bindgen_ty_18 = 3 ; pub type _bindgen_ty_18 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_STANDARD : _bindgen_ty_19 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_MISSABLE : _bindgen_ty_19 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_PROGRESSION : _bindgen_ty_19 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_WIN : _bindgen_ty_19 = 3 ; pub type _bindgen_ty_19 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNKNOWN : _bindgen_ty_20 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_LOCKED : _bindgen_ty_20 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNLOCKED : _bindgen_ty_20 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNSUPPORTED : _bindgen_ty_20 = 3 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNOFFICIAL : _bindgen_ty_20 = 4 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_RECENTLY_UNLOCKED : _bindgen_ty_20 = 5 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_ACTIVE_CHALLENGE : _bindgen_ty_20 = 6 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_ALMOST_THERE : _bindgen_ty_20 = 7 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNSYNCED : _bindgen_ty_20 = 8 ; pub const NUM_RC_CLIENT_ACHIEVEMENT_BUCKETS : _bindgen_ty_20 = 9 ; pub type _bindgen_ty_20 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_NONE : _bindgen_ty_21 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_SOFTCORE : _bindgen_ty_21 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_HARDCORE : _bindgen_ty_21 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_BOTH : _bindgen_ty_21 = 3 ; pub type _bindgen_ty_21 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_t { pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub badge_name : [:: core :: ffi :: c_char ; 8usize] , pub measured_progress : [:: core :: ffi :: c_char ; 24usize] , pub measured_percent : f32 , pub id : u32 , pub points : u32 , pub unlock_time : time_t , pub state : u8 , pub category : u8 , pub bucket : u8 , pub unlocked : u8 , pub rarity : f32 , pub rarity_hardcore : f32 , pub type_ : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_t"] [:: core :: mem :: size_of :: < rc_client_achievement_t > () - 88usize] ; ["Alignment of rc_client_achievement_t"] [:: core :: mem :: align_of :: < rc_client_achievement_t > () - 8usize] ; ["Offset of field: rc_client_achievement_t::title"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , title) - 0usize] ; ["Offset of field: rc_client_achievement_t::description"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , description) - 8usize] ; ["Offset of field: rc_client_achievement_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , badge_name) - 16usize] ; ["Offset of field: rc_client_achievement_t::measured_progress"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , measured_progress) - 24usize] ; ["Offset of field: rc_client_achievement_t::measured_percent"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , measured_percent) - 48usize] ; ["Offset of field: rc_client_achievement_t::id"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , id) - 52usize] ; ["Offset of field: rc_client_achievement_t::points"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , points) - 56usize] ; ["Offset of field: rc_client_achievement_t::unlock_time"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , unlock_time) - 64usize] ; ["Offset of field: rc_client_achievement_t::state"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , state) - 72usize] ; ["Offset of field: rc_client_achievement_t::category"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , category) - 73usize] ; ["Offset of field: rc_client_achievement_t::bucket"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , bucket) - 74usize] ; ["Offset of field: rc_client_achievement_t::unlocked"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , unlocked) - 75usize] ; ["Offset of field: rc_client_achievement_t::rarity"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , rarity) - 76usize] ; ["Offset of field: rc_client_achievement_t::rarity_hardcore"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , rarity_hardcore) - 80usize] ; ["Offset of field: rc_client_achievement_t::type_"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , type_) - 84usize] ; } ; extern "C" { # [doc = " Get information about an achievement. Returns NULL if not found."] pub fn rc_client_get_achievement_info (client : * mut rc_client_t , id : u32) -> * const rc_client_achievement_t ; } extern "C" { # [doc = " Gets the URL for the achievement image.\n Returns RC_OK on success."] pub fn rc_client_achievement_get_image_url (achievement : * const rc_client_achievement_t , state : :: core :: ffi :: c_int , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_bucket_t { pub achievements : * mut * mut rc_client_achievement_t , pub num_achievements : u32 , pub label : * const :: core :: ffi :: c_char , pub subset_id : u32 , pub bucket_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_bucket_t"] [:: core :: mem :: size_of :: < rc_client_achievement_bucket_t > () - 32usize] ; ["Alignment of rc_client_achievement_bucket_t"] [:: core :: mem :: align_of :: < rc_client_achievement_bucket_t > () - 8usize] ; ["Offset of field: rc_client_achievement_bucket_t::achievements"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , achievements) - 0usize] ; ["Offset of field: rc_client_achievement_bucket_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , num_achievements) - 8usize] ; ["Offset of field: rc_client_achievement_bucket_t::label"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , label) - 16usize] ; ["Offset of field: rc_client_achievement_bucket_t::subset_id"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , subset_id) - 24usize] ; ["Offset of field: rc_client_achievement_bucket_t::bucket_type"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , bucket_type) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_list_t { pub buckets : * mut rc_client_achievement_bucket_t , pub num_buckets : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_list_t"] [:: core :: mem :: size_of :: < rc_client_achievement_list_t > () - 16usize] ; ["Alignment of rc_client_achievement_list_t"] [:: core :: mem :: align_of :: < rc_client_achievement_list_t > () - 8usize] ; ["Offset of field: rc_client_achievement_list_t::buckets"] [:: core :: mem :: offset_of ! (rc_client_achievement_list_t , buckets) - 0usize] ; ["Offset of field: rc_client_achievement_list_t::num_buckets"] [:: core :: mem :: offset_of ! (rc_client_achievement_list_t , num_buckets) - 8usize] ; } ; pub const RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_LOCK_STATE : _bindgen_ty_22 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_PROGRESS : _bindgen_ty_22 = 1 ; pub type _bindgen_ty_22 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Creates a list of achievements matching the specified category and grouping.\n Returns an allocated list that must be free'd by calling rc_client_destroy_achievement_list."] pub fn rc_client_create_achievement_list (client : * mut rc_client_t , category : :: core :: ffi :: c_int , grouping : :: core :: ffi :: c_int) -> * mut rc_client_achievement_list_t ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_get_achievement_list."] pub fn rc_client_destroy_achievement_list (list : * mut rc_client_achievement_list_t) ; } extern "C" { # [doc = " Returns non-zero if there are any achievements that can be queried through rc_client_create_achievement_list()."] pub fn rc_client_has_achievements (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } pub const RC_CLIENT_LEADERBOARD_STATE_INACTIVE : _bindgen_ty_23 = 0 ; pub const RC_CLIENT_LEADERBOARD_STATE_ACTIVE : _bindgen_ty_23 = 1 ; pub const RC_CLIENT_LEADERBOARD_STATE_TRACKING : _bindgen_ty_23 = 2 ; pub const RC_CLIENT_LEADERBOARD_STATE_DISABLED : _bindgen_ty_23 = 3 ; pub const NUM_RC_CLIENT_LEADERBOARD_STATES : _bindgen_ty_23 = 4 ; # [doc = "\\\n| Leaderboards                                                                |\n\\"] pub type _bindgen_ty_23 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_LEADERBOARD_FORMAT_TIME : _bindgen_ty_24 = 0 ; pub const RC_CLIENT_LEADERBOARD_FORMAT_SCORE : _bindgen_ty_24 = 1 ; pub const RC_CLIENT_LEADERBOARD_FORMAT_VALUE : _bindgen_ty_24 = 2 ; pub const NUM_RC_CLIENT_LEADERBOARD_FORMATS : _bindgen_ty_24 = 3 ; pub type _bindgen_ty_24 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_t { pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub tracker_value : * const :: core :: ffi :: c_char , pub id : u32 , pub state : u8 , pub format : u8 , pub lower_is_better : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_t > () - 32usize] ; ["Alignment of rc_client_leaderboard_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_t::title"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , title) - 0usize] ; ["Offset of field: rc_client_leaderboard_t::description"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , description) - 8usize] ; ["Offset of field: rc_client_leaderboard_t::tracker_value"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , tracker_value) - 16usize] ; ["Offset of field: rc_client_leaderboard_t::id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , id) - 24usize] ; ["Offset of field: rc_client_leaderboard_t::state"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , state) - 28usize] ; ["Offset of field: rc_client_leaderboard_t::format"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , format) - 29usize] ; ["Offset of field: rc_client_leaderboard_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , lower_is_better) - 30usize] ; } ; extern "C" { # [doc = " Get information about a leaderboard. Returns NULL if not found."] pub fn rc_client_get_leaderboard_info (client : * const rc_client_t , id : u32) -> * const rc_client_leaderboard_t ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_tracker_t { pub display : [:: core :: ffi :: c_char ; 24usize] , pub id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_tracker_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_tracker_t > () - 28usize] ; ["Alignment of rc_client_leaderboard_tracker_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_tracker_t > () - 4usize] ; ["Offset of field: rc_client_leaderboard_tracker_t::display"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_tracker_t , display) - 0usize] ; ["Offset of field: rc_client_leaderboard_tracker_t::id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_tracker_t , id) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_bucket_t { pub leaderboards : * mut * mut rc_client_leaderboard_t , pub num_leaderboards : u32 , pub label : * const :: core :: ffi :: c_char , pub subset_id : u32 , pub bucket_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_bucket_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_bucket_t > () - 32usize] ; ["Alignment of rc_client_leaderboard_bucket_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_bucket_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::leaderboards"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , leaderboards) - 0usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , num_leaderboards) - 8usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::label"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , label) - 16usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::subset_id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , subset_id) - 24usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::bucket_type"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , bucket_type) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_list_t { pub buckets : * mut rc_client_leaderboard_bucket_t , pub num_buckets : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_list_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_list_t > () - 16usize] ; ["Alignment of rc_client_leaderboard_list_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_list_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_list_t::buckets"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_list_t , buckets) - 0usize] ; ["Offset of field: rc_client_leaderboard_list_t::num_buckets"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_list_t , num_buckets) - 8usize] ; } ; pub const RC_CLIENT_LEADERBOARD_BUCKET_UNKNOWN : _bindgen_ty_25 = 0 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_INACTIVE : _bindgen_ty_25 = 1 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_ACTIVE : _bindgen_ty_25 = 2 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_UNSUPPORTED : _bindgen_ty_25 = 3 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_ALL : _bindgen_ty_25 = 4 ; pub const NUM_RC_CLIENT_LEADERBOARD_BUCKETS : _bindgen_ty_25 = 5 ; pub type _bindgen_ty_25 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_LEADERBOARD_LIST_GROUPING_NONE : _bindgen_ty_26 = 0 ; pub const RC_CLIENT_LEADERBOARD_LIST_GROUPING_TRACKING : _bindgen_ty_26 = 1 ; pub type _bindgen_ty_26 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Creates a list of leaderboards matching the specified grouping.\n Returns an allocated list that must be free'd by calling rc_client_destroy_leaderboard_list."] pub fn rc_client_create_leaderboard_list (client : * mut rc_client_t , grouping : :: core :: ffi :: c_int) -> * mut rc_client_leaderboard_list_t ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_get_leaderboard_list."] pub fn rc_client_destroy_leaderboard_list (list : * mut rc_client_leaderboard_list_t) ; } extern "C" { # [doc = " Returns non-zero if the current game has any leaderboards."] pub fn rc_client_has_leaderboards (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_entry_t { pub user : * const :: core :: ffi :: c_char , pub display : [:: core :: ffi :: c_char ; 24usize] , pub submitted : time_t , pub rank : u32 , pub index : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_entry_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_entry_t > () - 48usize] ; ["Alignment of rc_client_leaderboard_entry_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_entry_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_t::user"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , user) - 0usize] ; ["Offset of field: rc_client_leaderboard_entry_t::display"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , display) - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_t::submitted"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , submitted) - 32usize] ; ["Offset of field: rc_client_leaderboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , rank) - 40usize] ; ["Offset of field: rc_client_leaderboard_entry_t::index"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , index) - 44usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_entry_list_t { pub entries : * mut rc_client_leaderboard_entry_t , pub num_entries : u32 , pub total_entries : u32 , pub user_index : i32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_entry_list_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_entry_list_t > () - 24usize] ; ["Alignment of rc_client_leaderboard_entry_list_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_entry_list_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , entries) - 0usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::num_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , num_entries) - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::total_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , total_entries) - 12usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::user_index"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , user_index) - 16usize] ; } ; pub type rc_client_fetch_leaderboard_entries_callback_t = :: core :: option :: Option < unsafe extern "C" fn (result : :: core :: ffi :: c_int , error_message : * const :: core :: ffi :: c_char , list : * mut rc_client_leaderboard_entry_list_t , client : * mut rc_client_t , callback_userdata : * mut :: core :: ffi :: c_void) > ; extern "C" { # [doc = " Fetches a list of leaderboard entries from the server.\n Callback receives an allocated list that must be free'd by calling rc_client_destroy_leaderboard_entry_list."] pub fn rc_client_begin_fetch_leaderboard_entries (client : * mut rc_client_t , leaderboard_id : u32 , first_entry : u32 , count : u32 , callback : rc_client_fetch_leaderboard_entries_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Fetches a list of leaderboard entries from the server containing the logged-in user.\n Callback receives an allocated list that must be free'd by calling rc_client_destroy_leaderboard_entry_list."] pub fn rc_client_begin_fetch_leaderboard_entries_around_user (client : * mut rc_client_t , leaderboard_id : u32 , count : u32 , callback : rc_client_fetch_leaderboard_entries_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Gets the URL for the profile picture of the user associated to a leaderboard entry.\n Returns RC_OK on success."] pub fn rc_client_leaderboard_entry_get_user_image_url (entry : * const rc_client_leaderboard_entry_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_begin_fetch_leaderboard_entries or rc_client_begin_fetch_leaderboard_entries_around_user."] pub fn rc_client_destroy_leaderboard_entry_list (list : * mut rc_client_leaderboard_entry_list_t) ; } # [doc = " Used for scoreboard events. Contains the response from the server when a leaderboard entry is submitted.\n NOTE: This structure is only valid within the event callback. If you want to make use of the data outside\n of the callback, you should create copies of both the top entries and usernames within."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_scoreboard_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub score : [:: core :: ffi :: c_char ; 24usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_scoreboard_entry_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_scoreboard_entry_t > () - 40usize] ; ["Alignment of rc_client_leaderboard_scoreboard_entry_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_scoreboard_entry_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::username"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , username) - 0usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , rank) - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , score) - 12usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_scoreboard_t { pub leaderboard_id : u32 , pub submitted_score : [:: core :: ffi :: c_char ; 24usize] , pub best_score : [:: core :: ffi :: c_char ; 24usize] , pub new_rank : u32 , pub num_entries : u32 , pub top_entries : * mut rc_client_leaderboard_scoreboard_entry_t , pub num_top_entries : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_scoreboard_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_scoreboard_t > () - 80usize] ; ["Alignment of rc_client_leaderboard_scoreboard_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_scoreboard_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::submitted_score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , submitted_score) - 4usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::best_score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , best_score) - 28usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::new_rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , new_rank) - 52usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::num_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , num_entries) - 56usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::top_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , top_entries) - 64usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::num_top_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , num_top_entries) - 72usize] ; } ; extern "C" { # [doc = " Returns non-zero if the current game supports rich presence."] pub fn rc_client_has_rich_presence (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Gets the current rich presence message.\n Returns the number of characters written to buffer."] pub fn rc_client_get_rich_presence_message (client : * mut rc_client_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> usize ; } pub const RC_CLIENT_EVENT_TYPE_NONE : _bindgen_ty_27 = 0 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_TRIGGERED : _bindgen_ty_27 = 1 ; pub const RC_CLIENT_EVENT_LEADERBOARD_STARTED : _bindgen_ty_27 = 2 ; pub const RC_CLIENT_EVENT_LEADERBOARD_FAILED : _bindgen_ty_27 = 3 ; pub const RC_CLIENT_EVENT_LEADERBOARD_SUBMITTED : _bindgen_ty_27 = 4 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_CHALLENGE_INDICATOR_SHOW : _bindgen_ty_27 = 5 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_CHALLENGE_INDICATOR_HIDE : _bindgen_ty_27 = 6 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_SHOW : _bindgen_ty_27 = 7 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_HIDE : _bindgen_ty_27 = 8 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_UPDATE : _bindgen_ty_27 = 9 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_SHOW : _bindgen_ty_27 = 10 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_HIDE : _bindgen_ty_27 = 11 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_UPDATE : _bindgen_ty_27 = 12 ; pub const RC_CLIENT_EVENT_LEADERBOARD_SCOREBOARD : _bindgen_ty_27 = 13 ; pub const RC_CLIENT_EVENT_RESET : _bindgen_ty_27 = 14 ; pub const RC_CLIENT_EVENT_GAME_COMPLETED : _bindgen_ty_27 = 15 ; pub const RC_CLIENT_EVENT_SERVER_ERROR : _bindgen_ty_27 = 16 ; pub const RC_CLIENT_EVENT_DISCONNECTED : _bindgen_ty_27 = 17 ; pub const RC_CLIENT_EVENT_RECONNECTED : _bindgen_ty_27 = 18 ; # [doc = "\\\n| Processing                                                                  |\n\\"] pub type _bindgen_ty_27 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_server_error_t { pub error_message : * const :: core :: ffi :: c_char , pub api : * const :: core :: ffi :: c_char , pub result : :: core :: ffi :: c_int , pub related_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_server_error_t"] [:: core :: mem :: size_of :: < rc_client_server_error_t > () - 24usize] ; ["Alignment of rc_client_server_error_t"] [:: core :: mem :: align_of :: < rc_client_server_error_t > () - 8usize] ; ["Offset of field: rc_client_server_error_t::error_message"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , error_message) - 0usize] ; ["Offset of field: rc_client_server_error_t::api"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , api) - 8usize] ; ["Offset of field: rc_client_server_error_t::result"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , result) - 16usize] ; ["Offset of field: rc_client_server_error_t::related_id"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , related_id) - 20usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_event_t { pub type_ : u32 , pub achievement : * mut rc_client_achievement_t , pub leaderboard : * mut rc_client_leaderboard_t , pub leaderboard_tracker : * mut rc_client_leaderboard_tracker_t , pub leaderboard_scoreboard : * mut rc_client_leaderboard_scoreboard_t , pub server_error : * mut rc_client_server_error_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_event_t"] [:: core :: mem :: size_of :: < rc_client_event_t > () - 48usize] ; ["Alignment of rc_client_event_t"] [:: core :: mem :: align_of :: < rc_client_event_t > () - 8usize] ; ["Offset of field: rc_client_event_t::type_"] [:: core :: mem :: offset_of ! (rc_client_event_t , type_) - 0usize] ; ["Offset of field: rc_client_event_t::achievement"] [:: core :: mem :: offset_of ! (rc_client_event_t , achievement) - 8usize] ; ["Offset of field: rc_client_event_t::leaderboard"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard) - 16usize] ; ["Offset of field: rc_client_event_t::leaderboard_tracker"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard_tracker) - 24usize] ; ["Offset of field: rc_client_event_t::leaderboard_scoreboard"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard_scoreboard) - 32usize] ; ["Offset of field: rc_client_event_t::server_error"] [:: core :: mem :: offset_of ! (rc_client_event_t , server_error) - 40usize] ; } ; # [doc = " Callback used to notify the client when certain events occur."] pub type rc_client_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (event : * const rc_client_event_t , client : * mut rc_client_t) > ; extern "C" { # [doc = " Provides a callback for event handling."] pub fn rc_client_set_event_handler (client : * mut rc_client_t , handler : rc_client_event_handler_t) ; } extern "C" { # [doc = " Provides a callback for reading memory."] pub fn rc_client_set_read_memory_function (client : * mut rc_client_t , handler : rc_client_read_memory_func_t) ; } extern "C" { # [doc = " Determines if there are any active achievements/leaderboards/rich presence that need processing."] pub fn rc_client_is_processing_required (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Processes achievements for the current frame."] pub fn rc_client_do_frame (client : * mut rc_client_t) ; } extern "C" { # [doc = " Processes the periodic queue.\n Called internally by rc_client_do_frame.\n Should be explicitly called if rc_client_do_frame is not being called because emulation is paused."] pub fn rc_client_idle (client : * mut rc_client_t) ; } extern "C" { # [doc = " Determines if a sufficient amount of frames have been processed since the last call to rc_client_can_pause.\n Should not be called unless the client is trying to pause.\n If false is returned, and frames_remaining is not NULL, frames_remaining will be set to the number of frames\n still required before pause is allowed, which can be converted to a time in seconds for displaying to the user."] pub fn rc_client_can_pause (client : * mut rc_client_t , frames_remaining : * mut u32) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Informs the runtime that the emulator has been reset. Will reset all achievements and leaderboards\n to their initial state (includes hiding indicators/trackers)."] pub fn rc_client_reset (client : * mut rc_client_t) ; } extern "C" { # [doc = " Gets the number of bytes needed to serialized the runtime state."] pub fn rc_client_progress_size (client : * mut rc_client_t) -> usize ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator.\n [deprecated] use rc_client_serialize_progress_sized instead"] pub fn rc_client_serialize_progress (client : * mut rc_client_t , buffer : * mut u8) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator."] pub fn rc_client_serialize_progress_sized (client : * mut rc_client_t , buffer : * mut u8 , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Deserializes the runtime state from a buffer.\n Returns RC_OK on success, or an error indicator.\n [deprecated] use rc_client_deserialize_progress_sized instead"] pub fn rc_client_deserialize_progress (client : * mut rc_client_t , serialized : * const u8) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator."] pub fn rc_client_deserialize_progress_sized (client : * mut rc_client_t , serialized : * const u8 , serialized_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __locale_data { pub _address : u8 , } pub type __builtin_va_list = [__va_list_tag ; 1usize] ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __va_list_tag { pub gp_offset : :: core :: ffi :: c_uint , pub fp_offset : :: core :: ffi :: c_uint , pub overflow_arg_area : * mut :: core :: ffi :: c_void , pub reg_save_area : * mut :: core :: ffi :: c_void , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __va_list_tag"] [:: core :: mem :: size_of :: < __va_list_tag > () - 24usize] ; ["Alignment of __va_list_tag"] [:: core :: mem :: align_of :: < __va_list_tag > () - 8usize] ; ["Offset of field: __va_list_tag::gp_offset"] [:: core :: mem :: offset_of ! (__va_list_tag , gp_offset) - 0usize] ; ["Offset of field: __va_list_tag::fp_offset"] [:: core :: mem :: offset_of ! (__va_list_tag , fp_offset) - 4usize] ; ["Offset of field: __va_list_tag::overflow_arg_area"] [:: core :: mem :: offset_of ! (__va_list_tag , overflow_arg_area) - 8usize] ; ["Offset of field: __va_list_tag::reg_save_area"] [:: core :: mem :: offset_of ! (__va_list_tag , reg_save_area) - 16usize] ; } ;
[INFO] [stdout] 3 + # [repr (C)] # [derive (Copy , Clone , Debug , Default , Eq , Hash , Ord , PartialEq , PartialOrd)] pub struct __BindgenBitfieldUnit < Storage > { storage : Storage , } impl < Storage > __BindgenBitfieldUnit < Storage > { # [inline] pub const fn new (storage : Storage) -> Self { Self { storage } } } impl < Storage > __BindgenBitfieldUnit < Storage > where Storage : AsRef < [u8] > + AsMut < [u8] >, { # [inline] pub fn get_bit (& self , index : usize) -> bool { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = self . storage . as_ref () [byte_index] ; let bit_index = if cfg ! (target_endian = "big") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; byte & mask == mask } # [inline] pub fn set_bit (& mut self , index : usize , val : bool) { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = & mut self . storage . as_mut () [byte_index] ; let bit_index = if cfg ! (target_endian = "big") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; if val { * byte |= mask ; } else { * byte &= ! mask ; } } # [inline] pub fn get (& self , bit_offset : usize , bit_width : u8) -> u64 { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; let mut val = 0 ; for i in 0 .. (bit_width as usize) { if self . get_bit (i + bit_offset) { let index = if cfg ! (target_endian = "big") { bit_width as usize - 1 - i } else { i } ; val |= 1 << index ; } } val } # [inline] pub fn set (& mut self , bit_offset : usize , bit_width : u8 , val : u64) { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; for i in 0 .. (bit_width as usize) { let mask = 1 << i ; let val_bit_is_set = val & mask == mask ; let index = if cfg ! (target_endian = "big") { bit_width as usize - 1 - i } else { i } ; self . set_bit (index + bit_offset , val_bit_is_set) ; } } } # [derive (PartialEq , Copy , Clone , Hash , Debug , Default)] # [repr (C)] pub struct __BindgenComplex < T > { pub re : T , pub im : T } pub const _STDINT_H : u32 = 1 ; pub const _FEATURES_H : u32 = 1 ; pub const _DEFAULT_SOURCE : u32 = 1 ; pub const __GLIBC_USE_ISOC2Y : u32 = 0 ; pub const __GLIBC_USE_ISOC23 : u32 = 0 ; pub const __USE_ISOC11 : u32 = 1 ; pub const __USE_ISOC99 : u32 = 1 ; pub const __USE_ISOC95 : u32 = 1 ; pub const __USE_POSIX_IMPLICITLY : u32 = 1 ; pub const _POSIX_SOURCE : u32 = 1 ; pub const _POSIX_C_SOURCE : u32 = 202405 ; pub const __USE_POSIX : u32 = 1 ; pub const __USE_POSIX2 : u32 = 1 ; pub const __USE_POSIX199309 : u32 = 1 ; pub const __USE_POSIX199506 : u32 = 1 ; pub const __USE_XOPEN2K : u32 = 1 ; pub const __USE_XOPEN2K8 : u32 = 1 ; pub const _ATFILE_SOURCE : u32 = 1 ; pub const __USE_XOPEN2K24 : u32 = 1 ; pub const __WORDSIZE : u32 = 64 ; pub const __WORDSIZE_TIME64_COMPAT32 : u32 = 1 ; pub const __SYSCALL_WORDSIZE : u32 = 64 ; pub const __TIMESIZE : u32 = 64 ; pub const __USE_TIME_BITS64 : u32 = 1 ; pub const __USE_MISC : u32 = 1 ; 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_C23_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 ; pub const __STDC_IEC_559_COMPLEX__ : u32 = 1 ; 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 = 43 ; pub const _SYS_CDEFS_H : u32 = 1 ; pub const __glibc_c99_flexarr_available : u32 = 1 ; pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI : u32 = 0 ; pub const __HAVE_GENERIC_SELECTION : u32 = 1 ; pub const __GLIBC_USE_LIB_EXT2 : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT_C23 : u32 = 0 ; 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_C23 : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_TYPES_EXT : u32 = 0 ; pub const _BITS_TYPES_H : u32 = 1 ; pub const _BITS_TYPESIZES_H : u32 = 1 ; pub const __OFF_T_MATCHES_OFF64_T : u32 = 1 ; pub const __INO_T_MATCHES_INO64_T : u32 = 1 ; pub const __RLIM_T_MATCHES_RLIM64_T : u32 = 1 ; pub const __STATFS_MATCHES_STATFS64 : u32 = 1 ; pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 : u32 = 1 ; pub const __FD_SETSIZE : u32 = 1024 ; pub const _BITS_TIME64_H : u32 = 1 ; pub const _BITS_WCHAR_H : u32 = 1 ; pub const _BITS_STDINT_INTN_H : u32 = 1 ; pub const _BITS_STDINT_UINTN_H : u32 = 1 ; pub const _BITS_STDINT_LEAST_H : u32 = 1 ; pub const INT8_MIN : i32 = - 128 ; pub const INT16_MIN : i32 = - 32768 ; pub const INT32_MIN : i32 = - 2147483648 ; pub const INT8_MAX : u32 = 127 ; pub const INT16_MAX : u32 = 32767 ; pub const INT32_MAX : u32 = 2147483647 ; pub const UINT8_MAX : u32 = 255 ; pub const UINT16_MAX : u32 = 65535 ; pub const UINT32_MAX : u32 = 4294967295 ; pub const INT_LEAST8_MIN : i32 = - 128 ; pub const INT_LEAST16_MIN : i32 = - 32768 ; pub const INT_LEAST32_MIN : i32 = - 2147483648 ; pub const INT_LEAST8_MAX : u32 = 127 ; pub const INT_LEAST16_MAX : u32 = 32767 ; pub const INT_LEAST32_MAX : u32 = 2147483647 ; pub const UINT_LEAST8_MAX : u32 = 255 ; pub const UINT_LEAST16_MAX : u32 = 65535 ; pub const UINT_LEAST32_MAX : u32 = 4294967295 ; pub const INT_FAST8_MIN : i32 = - 128 ; pub const INT_FAST16_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST32_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST8_MAX : u32 = 127 ; pub const INT_FAST16_MAX : u64 = 9223372036854775807 ; pub const INT_FAST32_MAX : u64 = 9223372036854775807 ; pub const UINT_FAST8_MAX : u32 = 255 ; pub const UINT_FAST16_MAX : i32 = - 1 ; pub const UINT_FAST32_MAX : i32 = - 1 ; pub const INTPTR_MIN : i64 = - 9223372036854775808 ; pub const INTPTR_MAX : u64 = 9223372036854775807 ; pub const UINTPTR_MAX : i32 = - 1 ; pub const PTRDIFF_MIN : i64 = - 9223372036854775808 ; pub const PTRDIFF_MAX : u64 = 9223372036854775807 ; pub const SIG_ATOMIC_MIN : i32 = - 2147483648 ; pub const SIG_ATOMIC_MAX : u32 = 2147483647 ; pub const SIZE_MAX : i32 = - 1 ; pub const WINT_MIN : u32 = 0 ; pub const WINT_MAX : u32 = 4294967295 ; pub const RC_VALUE_MAX_NAME_LENGTH : u32 = 15 ; pub const _TIME_H : u32 = 1 ; pub const _BITS_TIME_H : u32 = 1 ; pub const CLOCK_REALTIME : u32 = 0 ; pub const CLOCK_MONOTONIC : u32 = 1 ; pub const CLOCK_PROCESS_CPUTIME_ID : u32 = 2 ; pub const CLOCK_THREAD_CPUTIME_ID : u32 = 3 ; pub const CLOCK_MONOTONIC_RAW : u32 = 4 ; pub const CLOCK_REALTIME_COARSE : u32 = 5 ; pub const CLOCK_MONOTONIC_COARSE : u32 = 6 ; pub const CLOCK_BOOTTIME : u32 = 7 ; pub const CLOCK_REALTIME_ALARM : u32 = 8 ; pub const CLOCK_BOOTTIME_ALARM : u32 = 9 ; pub const CLOCK_TAI : u32 = 11 ; pub const TIMER_ABSTIME : u32 = 1 ; pub const __clock_t_defined : u32 = 1 ; pub const __time_t_defined : u32 = 1 ; pub const __struct_tm_defined : u32 = 1 ; pub const _STRUCT_TIMESPEC : u32 = 1 ; pub const _BITS_ENDIAN_H : u32 = 1 ; pub const __LITTLE_ENDIAN : u32 = 1234 ; pub const __BIG_ENDIAN : u32 = 4321 ; pub const __PDP_ENDIAN : u32 = 3412 ; pub const _BITS_ENDIANNESS_H : u32 = 1 ; pub const __BYTE_ORDER : u32 = 1234 ; pub const __FLOAT_WORD_ORDER : u32 = 1234 ; pub const __clockid_t_defined : u32 = 1 ; pub const __timer_t_defined : u32 = 1 ; pub const __itimerspec_defined : u32 = 1 ; pub const _BITS_TYPES_LOCALE_T_H : u32 = 1 ; pub const _BITS_TYPES___LOCALE_T_H : u32 = 1 ; pub const TIME_UTC : u32 = 1 ; pub const _STDIO_H : u32 = 1 ; pub const _____fpos_t_defined : u32 = 1 ; pub const ____mbstate_t_defined : u32 = 1 ; pub const _____fpos64_t_defined : u32 = 1 ; pub const ____FILE_defined : u32 = 1 ; pub const __FILE_defined : u32 = 1 ; 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 ; pub const BUFSIZ : u32 = 8192 ; pub const EOF : i32 = - 1 ; 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 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 ; pub const __HAVE_FLOAT128 : u32 = 1 ; pub const __HAVE_DISTINCT_FLOAT128 : u32 = 1 ; pub const __HAVE_FLOAT64X : u32 = 1 ; pub const __HAVE_FLOAT64X_LONG_DOUBLE : u32 = 1 ; pub const __HAVE_FLOAT16 : u32 = 0 ; pub const __HAVE_FLOAT32 : u32 = 1 ; pub const __HAVE_FLOAT64 : u32 = 1 ; pub const __HAVE_FLOAT32X : u32 = 1 ; pub const __HAVE_FLOAT128X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT16 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT32 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT64 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT32X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT64X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT128X : u32 = 0 ; pub const __HAVE_FLOATN_NOT_TYPEDEF : u32 = 0 ; pub const RC_IMAGE_TYPE_GAME : u32 = 1 ; pub const RC_IMAGE_TYPE_ACHIEVEMENT : u32 = 2 ; pub const RC_IMAGE_TYPE_ACHIEVEMENT_LOCKED : u32 = 3 ; pub const RC_IMAGE_TYPE_USER : u32 = 4 ; pub const RC_ACHIEVEMENT_CATEGORY_CORE : u32 = 3 ; pub const RC_ACHIEVEMENT_CATEGORY_UNOFFICIAL : u32 = 5 ; pub const RC_ACHIEVEMENT_TYPE_STANDARD : u32 = 0 ; pub const RC_ACHIEVEMENT_TYPE_MISSABLE : u32 = 1 ; pub const RC_ACHIEVEMENT_TYPE_PROGRESSION : u32 = 2 ; pub const RC_ACHIEVEMENT_TYPE_WIN : u32 = 3 ; pub const RC_CLIENT_LEADERBOARD_DISPLAY_SIZE : u32 = 24 ; pub const RC_OK : _bindgen_ty_1 = 0 ; pub const RC_INVALID_LUA_OPERAND : _bindgen_ty_1 = - 1 ; pub const RC_INVALID_MEMORY_OPERAND : _bindgen_ty_1 = - 2 ; pub const RC_INVALID_CONST_OPERAND : _bindgen_ty_1 = - 3 ; pub const RC_INVALID_FP_OPERAND : _bindgen_ty_1 = - 4 ; pub const RC_INVALID_CONDITION_TYPE : _bindgen_ty_1 = - 5 ; pub const RC_INVALID_OPERATOR : _bindgen_ty_1 = - 6 ; pub const RC_INVALID_REQUIRED_HITS : _bindgen_ty_1 = - 7 ; pub const RC_DUPLICATED_START : _bindgen_ty_1 = - 8 ; pub const RC_DUPLICATED_CANCEL : _bindgen_ty_1 = - 9 ; pub const RC_DUPLICATED_SUBMIT : _bindgen_ty_1 = - 10 ; pub const RC_DUPLICATED_VALUE : _bindgen_ty_1 = - 11 ; pub const RC_DUPLICATED_PROGRESS : _bindgen_ty_1 = - 12 ; pub const RC_MISSING_START : _bindgen_ty_1 = - 13 ; pub const RC_MISSING_CANCEL : _bindgen_ty_1 = - 14 ; pub const RC_MISSING_SUBMIT : _bindgen_ty_1 = - 15 ; pub const RC_MISSING_VALUE : _bindgen_ty_1 = - 16 ; pub const RC_INVALID_LBOARD_FIELD : _bindgen_ty_1 = - 17 ; pub const RC_MISSING_DISPLAY_STRING : _bindgen_ty_1 = - 18 ; pub const RC_OUT_OF_MEMORY : _bindgen_ty_1 = - 19 ; pub const RC_INVALID_VALUE_FLAG : _bindgen_ty_1 = - 20 ; pub const RC_MISSING_VALUE_MEASURED : _bindgen_ty_1 = - 21 ; pub const RC_MULTIPLE_MEASURED : _bindgen_ty_1 = - 22 ; pub const RC_INVALID_MEASURED_TARGET : _bindgen_ty_1 = - 23 ; pub const RC_INVALID_COMPARISON : _bindgen_ty_1 = - 24 ; pub const RC_INVALID_STATE : _bindgen_ty_1 = - 25 ; pub const RC_INVALID_JSON : _bindgen_ty_1 = - 26 ; pub const RC_API_FAILURE : _bindgen_ty_1 = - 27 ; pub const RC_LOGIN_REQUIRED : _bindgen_ty_1 = - 28 ; pub const RC_NO_GAME_LOADED : _bindgen_ty_1 = - 29 ; pub const RC_HARDCORE_DISABLED : _bindgen_ty_1 = - 30 ; pub const RC_ABORTED : _bindgen_ty_1 = - 31 ; pub const RC_NO_RESPONSE : _bindgen_ty_1 = - 32 ; pub const RC_ACCESS_DENIED : _bindgen_ty_1 = - 33 ; pub const RC_INVALID_CREDENTIALS : _bindgen_ty_1 = - 34 ; pub const RC_EXPIRED_TOKEN : _bindgen_ty_1 = - 35 ; pub const RC_INSUFFICIENT_BUFFER : _bindgen_ty_1 = - 36 ; pub const RC_INVALID_VARIABLE_NAME : _bindgen_ty_1 = - 37 ; pub const RC_UNKNOWN_VARIABLE_NAME : _bindgen_ty_1 = - 38 ; # [doc = "\\\n| Return values                                                               |\n\\"] pub type _bindgen_ty_1 = :: core :: ffi :: c_int ; extern "C" { pub fn rc_error_str (ret : :: core :: ffi :: c_int) -> * const :: core :: ffi :: c_char ; } pub type wchar_t = :: core :: ffi :: c_int ; # [repr (C)] # [repr (align (16))] # [derive (Debug , Copy , Clone)] pub struct max_align_t { pub __clang_max_align_nonce1 : :: core :: ffi :: c_longlong , pub __bindgen_padding_0 : u64 , pub __clang_max_align_nonce2 : u128 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of max_align_t"] [:: core :: mem :: size_of :: < max_align_t > () - 32usize] ; ["Alignment of max_align_t"] [:: core :: mem :: align_of :: < max_align_t > () - 16usize] ; ["Offset of field: max_align_t::__clang_max_align_nonce1"] [:: core :: mem :: offset_of ! (max_align_t , __clang_max_align_nonce1) - 0usize] ; ["Offset of field: max_align_t::__clang_max_align_nonce2"] [:: core :: mem :: offset_of ! (max_align_t , __clang_max_align_nonce2) - 16usize] ; } ; pub type __u_char = :: core :: ffi :: c_uchar ; pub type __u_short = :: core :: ffi :: c_ushort ; pub type __u_int = :: core :: ffi :: c_uint ; pub type __u_long = :: core :: ffi :: c_ulong ; pub type __int8_t = :: core :: ffi :: c_schar ; pub type __uint8_t = :: core :: ffi :: c_uchar ; pub type __int16_t = :: core :: ffi :: c_short ; pub type __uint16_t = :: core :: ffi :: c_ushort ; pub type __int32_t = :: core :: ffi :: c_int ; pub type __uint32_t = :: core :: ffi :: c_uint ; pub type __int64_t = :: core :: ffi :: c_long ; pub type __uint64_t = :: core :: ffi :: c_ulong ; pub type __int_least8_t = __int8_t ; pub type __uint_least8_t = __uint8_t ; pub type __int_least16_t = __int16_t ; pub type __uint_least16_t = __uint16_t ; pub type __int_least32_t = __int32_t ; pub type __uint_least32_t = __uint32_t ; pub type __int_least64_t = __int64_t ; pub type __uint_least64_t = __uint64_t ; pub type __quad_t = :: core :: ffi :: c_long ; pub type __u_quad_t = :: core :: ffi :: c_ulong ; pub type __intmax_t = :: core :: ffi :: c_long ; pub type __uintmax_t = :: core :: ffi :: c_ulong ; pub type __dev_t = :: core :: ffi :: c_ulong ; pub type __uid_t = :: core :: ffi :: c_uint ; pub type __gid_t = :: core :: ffi :: c_uint ; pub type __ino_t = :: core :: ffi :: c_ulong ; pub type __ino64_t = :: core :: ffi :: c_ulong ; pub type __mode_t = :: core :: ffi :: c_uint ; pub type __nlink_t = :: core :: ffi :: c_ulong ; pub type __off_t = :: core :: ffi :: c_long ; pub type __off64_t = :: core :: ffi :: c_long ; pub type __pid_t = :: core :: ffi :: c_int ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __fsid_t { pub __val : [:: core :: ffi :: c_int ; 2usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __fsid_t"] [:: core :: mem :: size_of :: < __fsid_t > () - 8usize] ; ["Alignment of __fsid_t"] [:: core :: mem :: align_of :: < __fsid_t > () - 4usize] ; ["Offset of field: __fsid_t::__val"] [:: core :: mem :: offset_of ! (__fsid_t , __val) - 0usize] ; } ; pub type __clock_t = :: core :: ffi :: c_long ; pub type __rlim_t = :: core :: ffi :: c_ulong ; pub type __rlim64_t = :: core :: ffi :: c_ulong ; pub type __id_t = :: core :: ffi :: c_uint ; pub type __time_t = :: core :: ffi :: c_long ; pub type __useconds_t = :: core :: ffi :: c_uint ; pub type __suseconds_t = :: core :: ffi :: c_long ; pub type __suseconds64_t = :: core :: ffi :: c_long ; pub type __daddr_t = :: core :: ffi :: c_int ; pub type __key_t = :: core :: ffi :: c_int ; pub type __clockid_t = :: core :: ffi :: c_int ; pub type __timer_t = * mut :: core :: ffi :: c_void ; pub type __blksize_t = :: core :: ffi :: c_long ; pub type __blkcnt_t = :: core :: ffi :: c_long ; pub type __blkcnt64_t = :: core :: ffi :: c_long ; pub type __fsblkcnt_t = :: core :: ffi :: c_ulong ; pub type __fsblkcnt64_t = :: core :: ffi :: c_ulong ; pub type __fsfilcnt_t = :: core :: ffi :: c_ulong ; pub type __fsfilcnt64_t = :: core :: ffi :: c_ulong ; pub type __fsword_t = :: core :: ffi :: c_long ; pub type __ssize_t = :: core :: ffi :: c_long ; pub type __syscall_slong_t = :: core :: ffi :: c_long ; pub type __syscall_ulong_t = :: core :: ffi :: c_ulong ; pub type __loff_t = __off64_t ; pub type __caddr_t = * mut :: core :: ffi :: c_char ; pub type __intptr_t = :: core :: ffi :: c_long ; pub type __socklen_t = :: core :: ffi :: c_uint ; pub type __sig_atomic_t = :: core :: ffi :: c_int ; pub type int_least8_t = __int_least8_t ; pub type int_least16_t = __int_least16_t ; pub type int_least32_t = __int_least32_t ; pub type int_least64_t = __int_least64_t ; pub type uint_least8_t = __uint_least8_t ; pub type uint_least16_t = __uint_least16_t ; pub type uint_least32_t = __uint_least32_t ; pub type uint_least64_t = __uint_least64_t ; pub type int_fast8_t = :: core :: ffi :: c_schar ; pub type int_fast16_t = :: core :: ffi :: c_long ; pub type int_fast32_t = :: core :: ffi :: c_long ; pub type int_fast64_t = :: core :: ffi :: c_long ; pub type uint_fast8_t = :: core :: ffi :: c_uchar ; pub type uint_fast16_t = :: core :: ffi :: c_ulong ; pub type uint_fast32_t = :: core :: ffi :: c_ulong ; pub type uint_fast64_t = :: core :: ffi :: c_ulong ; pub type intmax_t = __intmax_t ; pub type uintmax_t = __uintmax_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct lua_State { _unused : [u8 ; 0] , } # [doc = " Callback used to read num_bytes bytes from memory starting at address. If\n num_bytes is greater than 1, the value is read in little-endian from\n memory."] pub type rc_peek_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , num_bytes : u32 , ud : * mut :: core :: ffi :: c_void) -> u32 > ; pub const RC_MEMSIZE_8_BITS : _bindgen_ty_2 = 0 ; pub const RC_MEMSIZE_16_BITS : _bindgen_ty_2 = 1 ; pub const RC_MEMSIZE_24_BITS : _bindgen_ty_2 = 2 ; pub const RC_MEMSIZE_32_BITS : _bindgen_ty_2 = 3 ; pub const RC_MEMSIZE_LOW : _bindgen_ty_2 = 4 ; pub const RC_MEMSIZE_HIGH : _bindgen_ty_2 = 5 ; pub const RC_MEMSIZE_BIT_0 : _bindgen_ty_2 = 6 ; pub const RC_MEMSIZE_BIT_1 : _bindgen_ty_2 = 7 ; pub const RC_MEMSIZE_BIT_2 : _bindgen_ty_2 = 8 ; pub const RC_MEMSIZE_BIT_3 : _bindgen_ty_2 = 9 ; pub const RC_MEMSIZE_BIT_4 : _bindgen_ty_2 = 10 ; pub const RC_MEMSIZE_BIT_5 : _bindgen_ty_2 = 11 ; pub const RC_MEMSIZE_BIT_6 : _bindgen_ty_2 = 12 ; pub const RC_MEMSIZE_BIT_7 : _bindgen_ty_2 = 13 ; pub const RC_MEMSIZE_BITCOUNT : _bindgen_ty_2 = 14 ; pub const RC_MEMSIZE_16_BITS_BE : _bindgen_ty_2 = 15 ; pub const RC_MEMSIZE_24_BITS_BE : _bindgen_ty_2 = 16 ; pub const RC_MEMSIZE_32_BITS_BE : _bindgen_ty_2 = 17 ; pub const RC_MEMSIZE_FLOAT : _bindgen_ty_2 = 18 ; pub const RC_MEMSIZE_MBF32 : _bindgen_ty_2 = 19 ; pub const RC_MEMSIZE_MBF32_LE : _bindgen_ty_2 = 20 ; pub const RC_MEMSIZE_FLOAT_BE : _bindgen_ty_2 = 21 ; pub const RC_MEMSIZE_DOUBLE32 : _bindgen_ty_2 = 22 ; pub const RC_MEMSIZE_DOUBLE32_BE : _bindgen_ty_2 = 23 ; pub const RC_MEMSIZE_VARIABLE : _bindgen_ty_2 = 24 ; # [doc = "\\\n| Memory References                                                           |\n\\"] pub type _bindgen_ty_2 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memref_value_t { pub value : u32 , pub prior : u32 , pub size : u8 , pub changed : u8 , pub type_ : u8 , pub is_indirect : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memref_value_t"] [:: core :: mem :: size_of :: < rc_memref_value_t > () - 12usize] ; ["Alignment of rc_memref_value_t"] [:: core :: mem :: align_of :: < rc_memref_value_t > () - 4usize] ; ["Offset of field: rc_memref_value_t::value"] [:: core :: mem :: offset_of ! (rc_memref_value_t , value) - 0usize] ; ["Offset of field: rc_memref_value_t::prior"] [:: core :: mem :: offset_of ! (rc_memref_value_t , prior) - 4usize] ; ["Offset of field: rc_memref_value_t::size"] [:: core :: mem :: offset_of ! (rc_memref_value_t , size) - 8usize] ; ["Offset of field: rc_memref_value_t::changed"] [:: core :: mem :: offset_of ! (rc_memref_value_t , changed) - 9usize] ; ["Offset of field: rc_memref_value_t::type_"] [:: core :: mem :: offset_of ! (rc_memref_value_t , type_) - 10usize] ; ["Offset of field: rc_memref_value_t::is_indirect"] [:: core :: mem :: offset_of ! (rc_memref_value_t , is_indirect) - 11usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memref_t { pub value : rc_memref_value_t , pub address : u32 , pub next : * mut rc_memref_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memref_t"] [:: core :: mem :: size_of :: < rc_memref_t > () - 24usize] ; ["Alignment of rc_memref_t"] [:: core :: mem :: align_of :: < rc_memref_t > () - 8usize] ; ["Offset of field: rc_memref_t::value"] [:: core :: mem :: offset_of ! (rc_memref_t , value) - 0usize] ; ["Offset of field: rc_memref_t::address"] [:: core :: mem :: offset_of ! (rc_memref_t , address) - 12usize] ; ["Offset of field: rc_memref_t::next"] [:: core :: mem :: offset_of ! (rc_memref_t , next) - 16usize] ; } ; pub const RC_OPERAND_ADDRESS : _bindgen_ty_3 = 0 ; pub const RC_OPERAND_DELTA : _bindgen_ty_3 = 1 ; pub const RC_OPERAND_CONST : _bindgen_ty_3 = 2 ; pub const RC_OPERAND_FP : _bindgen_ty_3 = 3 ; pub const RC_OPERAND_LUA : _bindgen_ty_3 = 4 ; pub const RC_OPERAND_PRIOR : _bindgen_ty_3 = 5 ; pub const RC_OPERAND_BCD : _bindgen_ty_3 = 6 ; pub const RC_OPERAND_INVERTED : _bindgen_ty_3 = 7 ; pub const RC_OPERAND_RECALL : _bindgen_ty_3 = 8 ; # [doc = "\\\n| Operands                                                                    |\n\\"] pub type _bindgen_ty_3 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Copy , Clone)] pub struct rc_operand_t { pub value : rc_operand_t__bindgen_ty_1 , pub type_ : u8 , pub size : u8 , } # [repr (C)] # [derive (Copy , Clone)] pub union rc_operand_t__bindgen_ty_1 { pub memref : * mut rc_memref_t , pub num : u32 , pub dbl : f64 , pub luafunc : :: core :: ffi :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_operand_t__bindgen_ty_1"] [:: core :: mem :: size_of :: < rc_operand_t__bindgen_ty_1 > () - 8usize] ; ["Alignment of rc_operand_t__bindgen_ty_1"] [:: core :: mem :: align_of :: < rc_operand_t__bindgen_ty_1 > () - 8usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::memref"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , memref) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::num"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , num) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::dbl"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , dbl) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::luafunc"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , luafunc) - 0usize] ; } ; impl :: core :: fmt :: Debug for rc_operand_t__bindgen_ty_1 { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_operand_t__bindgen_ty_1 {{ union }}") } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_operand_t"] [:: core :: mem :: size_of :: < rc_operand_t > () - 16usize] ; ["Alignment of rc_operand_t"] [:: core :: mem :: align_of :: < rc_operand_t > () - 8usize] ; ["Offset of field: rc_operand_t::value"] [:: core :: mem :: offset_of ! (rc_operand_t , value) - 0usize] ; ["Offset of field: rc_operand_t::type_"] [:: core :: mem :: offset_of ! (rc_operand_t , type_) - 8usize] ; ["Offset of field: rc_operand_t::size"] [:: core :: mem :: offset_of ! (rc_operand_t , size) - 9usize] ; } ; impl :: core :: fmt :: Debug for rc_operand_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_operand_t {{ value: {:?}, type: {:?}, size: {:?} }}" , self . value , self . type_ , self . size) } } extern "C" { pub fn rc_operand_is_memref (operand : * const rc_operand_t) -> :: core :: ffi :: c_int ; } pub const RC_CONDITION_STANDARD : _bindgen_ty_4 = 0 ; pub const RC_CONDITION_PAUSE_IF : _bindgen_ty_4 = 1 ; pub const RC_CONDITION_RESET_IF : _bindgen_ty_4 = 2 ; pub const RC_CONDITION_MEASURED_IF : _bindgen_ty_4 = 3 ; pub const RC_CONDITION_TRIGGER : _bindgen_ty_4 = 4 ; pub const RC_CONDITION_MEASURED : _bindgen_ty_4 = 5 ; pub const RC_CONDITION_ADD_SOURCE : _bindgen_ty_4 = 6 ; pub const RC_CONDITION_SUB_SOURCE : _bindgen_ty_4 = 7 ; pub const RC_CONDITION_ADD_ADDRESS : _bindgen_ty_4 = 8 ; pub const RC_CONDITION_REMEMBER : _bindgen_ty_4 = 9 ; pub const RC_CONDITION_ADD_HITS : _bindgen_ty_4 = 10 ; pub const RC_CONDITION_SUB_HITS : _bindgen_ty_4 = 11 ; pub const RC_CONDITION_RESET_NEXT_IF : _bindgen_ty_4 = 12 ; pub const RC_CONDITION_AND_NEXT : _bindgen_ty_4 = 13 ; pub const RC_CONDITION_OR_NEXT : _bindgen_ty_4 = 14 ; # [doc = "\\\n| Conditions                                                                  |\n\\"] pub type _bindgen_ty_4 = :: core :: ffi :: c_uint ; pub const RC_OPERATOR_EQ : _bindgen_ty_5 = 0 ; pub const RC_OPERATOR_LT : _bindgen_ty_5 = 1 ; pub const RC_OPERATOR_LE : _bindgen_ty_5 = 2 ; pub const RC_OPERATOR_GT : _bindgen_ty_5 = 3 ; pub const RC_OPERATOR_GE : _bindgen_ty_5 = 4 ; pub const RC_OPERATOR_NE : _bindgen_ty_5 = 5 ; pub const RC_OPERATOR_NONE : _bindgen_ty_5 = 6 ; pub const RC_OPERATOR_MULT : _bindgen_ty_5 = 7 ; pub const RC_OPERATOR_DIV : _bindgen_ty_5 = 8 ; pub const RC_OPERATOR_AND : _bindgen_ty_5 = 9 ; pub const RC_OPERATOR_XOR : _bindgen_ty_5 = 10 ; pub const RC_OPERATOR_MOD : _bindgen_ty_5 = 11 ; pub const RC_OPERATOR_ADD : _bindgen_ty_5 = 12 ; pub const RC_OPERATOR_SUB : _bindgen_ty_5 = 13 ; pub type _bindgen_ty_5 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Copy , Clone)] pub struct rc_condition_t { pub operand1 : rc_operand_t , pub operand2 : rc_operand_t , pub required_hits : u32 , pub current_hits : u32 , pub next : * mut rc_condition_t , pub type_ : u8 , pub oper : u8 , pub pause : u8 , pub is_true : u8 , pub optimized_comparator : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_condition_t"] [:: core :: mem :: size_of :: < rc_condition_t > () - 56usize] ; ["Alignment of rc_condition_t"] [:: core :: mem :: align_of :: < rc_condition_t > () - 8usize] ; ["Offset of field: rc_condition_t::operand1"] [:: core :: mem :: offset_of ! (rc_condition_t , operand1) - 0usize] ; ["Offset of field: rc_condition_t::operand2"] [:: core :: mem :: offset_of ! (rc_condition_t , operand2) - 16usize] ; ["Offset of field: rc_condition_t::required_hits"] [:: core :: mem :: offset_of ! (rc_condition_t , required_hits) - 32usize] ; ["Offset of field: rc_condition_t::current_hits"] [:: core :: mem :: offset_of ! (rc_condition_t , current_hits) - 36usize] ; ["Offset of field: rc_condition_t::next"] [:: core :: mem :: offset_of ! (rc_condition_t , next) - 40usize] ; ["Offset of field: rc_condition_t::type_"] [:: core :: mem :: offset_of ! (rc_condition_t , type_) - 48usize] ; ["Offset of field: rc_condition_t::oper"] [:: core :: mem :: offset_of ! (rc_condition_t , oper) - 49usize] ; ["Offset of field: rc_condition_t::pause"] [:: core :: mem :: offset_of ! (rc_condition_t , pause) - 50usize] ; ["Offset of field: rc_condition_t::is_true"] [:: core :: mem :: offset_of ! (rc_condition_t , is_true) - 51usize] ; ["Offset of field: rc_condition_t::optimized_comparator"] [:: core :: mem :: offset_of ! (rc_condition_t , optimized_comparator) - 52usize] ; } ; impl :: core :: fmt :: Debug for rc_condition_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_condition_t {{ operand1: {:?}, operand2: {:?}, required_hits: {:?}, current_hits: {:?}, next: {:?}, type: {:?}, oper: {:?}, pause: {:?}, is_true: {:?}, optimized_comparator: {:?} }}" , self . operand1 , self . operand2 , self . required_hits , self . current_hits , self . next , self . type_ , self . oper , self . pause , self . is_true , self . optimized_comparator) } } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_condset_t { pub next : * mut rc_condset_t , pub conditions : * mut rc_condition_t , pub has_pause : u8 , pub is_paused : u8 , pub has_indirect_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_condset_t"] [:: core :: mem :: size_of :: < rc_condset_t > () - 24usize] ; ["Alignment of rc_condset_t"] [:: core :: mem :: align_of :: < rc_condset_t > () - 8usize] ; ["Offset of field: rc_condset_t::next"] [:: core :: mem :: offset_of ! (rc_condset_t , next) - 0usize] ; ["Offset of field: rc_condset_t::conditions"] [:: core :: mem :: offset_of ! (rc_condset_t , conditions) - 8usize] ; ["Offset of field: rc_condset_t::has_pause"] [:: core :: mem :: offset_of ! (rc_condset_t , has_pause) - 16usize] ; ["Offset of field: rc_condset_t::is_paused"] [:: core :: mem :: offset_of ! (rc_condset_t , is_paused) - 17usize] ; ["Offset of field: rc_condset_t::has_indirect_memrefs"] [:: core :: mem :: offset_of ! (rc_condset_t , has_indirect_memrefs) - 18usize] ; } ; pub const RC_TRIGGER_STATE_INACTIVE : _bindgen_ty_6 = 0 ; pub const RC_TRIGGER_STATE_WAITING : _bindgen_ty_6 = 1 ; pub const RC_TRIGGER_STATE_ACTIVE : _bindgen_ty_6 = 2 ; pub const RC_TRIGGER_STATE_PAUSED : _bindgen_ty_6 = 3 ; pub const RC_TRIGGER_STATE_RESET : _bindgen_ty_6 = 4 ; pub const RC_TRIGGER_STATE_TRIGGERED : _bindgen_ty_6 = 5 ; pub const RC_TRIGGER_STATE_PRIMED : _bindgen_ty_6 = 6 ; pub const RC_TRIGGER_STATE_DISABLED : _bindgen_ty_6 = 7 ; # [doc = "\\\n| Trigger                                                                     |\n\\"] pub type _bindgen_ty_6 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_trigger_t { pub requirement : * mut rc_condset_t , pub alternative : * mut rc_condset_t , pub memrefs : * mut rc_memref_t , pub measured_value : u32 , pub measured_target : u32 , pub state : u8 , pub has_hits : u8 , pub has_required_hits : u8 , pub measured_as_percent : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_trigger_t"] [:: core :: mem :: size_of :: < rc_trigger_t > () - 40usize] ; ["Alignment of rc_trigger_t"] [:: core :: mem :: align_of :: < rc_trigger_t > () - 8usize] ; ["Offset of field: rc_trigger_t::requirement"] [:: core :: mem :: offset_of ! (rc_trigger_t , requirement) - 0usize] ; ["Offset of field: rc_trigger_t::alternative"] [:: core :: mem :: offset_of ! (rc_trigger_t , alternative) - 8usize] ; ["Offset of field: rc_trigger_t::memrefs"] [:: core :: mem :: offset_of ! (rc_trigger_t , memrefs) - 16usize] ; ["Offset of field: rc_trigger_t::measured_value"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_value) - 24usize] ; ["Offset of field: rc_trigger_t::measured_target"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_target) - 28usize] ; ["Offset of field: rc_trigger_t::state"] [:: core :: mem :: offset_of ! (rc_trigger_t , state) - 32usize] ; ["Offset of field: rc_trigger_t::has_hits"] [:: core :: mem :: offset_of ! (rc_trigger_t , has_hits) - 33usize] ; ["Offset of field: rc_trigger_t::has_required_hits"] [:: core :: mem :: offset_of ! (rc_trigger_t , has_required_hits) - 34usize] ; ["Offset of field: rc_trigger_t::measured_as_percent"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_as_percent) - 35usize] ; } ; extern "C" { pub fn rc_trigger_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_trigger (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_trigger_t ; } extern "C" { pub fn rc_evaluate_trigger (trigger : * mut rc_trigger_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_test_trigger (trigger : * mut rc_trigger_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_trigger (self_ : * mut rc_trigger_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_value_t { pub value : rc_memref_value_t , pub conditions : * mut rc_condset_t , pub memrefs : * mut rc_memref_t , pub name : * const :: core :: ffi :: c_char , pub next : * mut rc_value_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_value_t"] [:: core :: mem :: size_of :: < rc_value_t > () - 48usize] ; ["Alignment of rc_value_t"] [:: core :: mem :: align_of :: < rc_value_t > () - 8usize] ; ["Offset of field: rc_value_t::value"] [:: core :: mem :: offset_of ! (rc_value_t , value) - 0usize] ; ["Offset of field: rc_value_t::conditions"] [:: core :: mem :: offset_of ! (rc_value_t , conditions) - 16usize] ; ["Offset of field: rc_value_t::memrefs"] [:: core :: mem :: offset_of ! (rc_value_t , memrefs) - 24usize] ; ["Offset of field: rc_value_t::name"] [:: core :: mem :: offset_of ! (rc_value_t , name) - 32usize] ; ["Offset of field: rc_value_t::next"] [:: core :: mem :: offset_of ! (rc_value_t , next) - 40usize] ; } ; extern "C" { pub fn rc_value_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_value (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_value_t ; } extern "C" { pub fn rc_evaluate_value (value : * mut rc_value_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> i32 ; } pub const RC_LBOARD_STATE_INACTIVE : _bindgen_ty_7 = 0 ; pub const RC_LBOARD_STATE_WAITING : _bindgen_ty_7 = 1 ; pub const RC_LBOARD_STATE_ACTIVE : _bindgen_ty_7 = 2 ; pub const RC_LBOARD_STATE_STARTED : _bindgen_ty_7 = 3 ; pub const RC_LBOARD_STATE_CANCELED : _bindgen_ty_7 = 4 ; pub const RC_LBOARD_STATE_TRIGGERED : _bindgen_ty_7 = 5 ; pub const RC_LBOARD_STATE_DISABLED : _bindgen_ty_7 = 6 ; # [doc = "\\\n| Leaderboards                                                                |\n\\"] pub type _bindgen_ty_7 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_lboard_t { pub start : rc_trigger_t , pub submit : rc_trigger_t , pub cancel : rc_trigger_t , pub value : rc_value_t , pub progress : * mut rc_value_t , pub memrefs : * mut rc_memref_t , pub state : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_lboard_t"] [:: core :: mem :: size_of :: < rc_lboard_t > () - 192usize] ; ["Alignment of rc_lboard_t"] [:: core :: mem :: align_of :: < rc_lboard_t > () - 8usize] ; ["Offset of field: rc_lboard_t::start"] [:: core :: mem :: offset_of ! (rc_lboard_t , start) - 0usize] ; ["Offset of field: rc_lboard_t::submit"] [:: core :: mem :: offset_of ! (rc_lboard_t , submit) - 40usize] ; ["Offset of field: rc_lboard_t::cancel"] [:: core :: mem :: offset_of ! (rc_lboard_t , cancel) - 80usize] ; ["Offset of field: rc_lboard_t::value"] [:: core :: mem :: offset_of ! (rc_lboard_t , value) - 120usize] ; ["Offset of field: rc_lboard_t::progress"] [:: core :: mem :: offset_of ! (rc_lboard_t , progress) - 168usize] ; ["Offset of field: rc_lboard_t::memrefs"] [:: core :: mem :: offset_of ! (rc_lboard_t , memrefs) - 176usize] ; ["Offset of field: rc_lboard_t::state"] [:: core :: mem :: offset_of ! (rc_lboard_t , state) - 184usize] ; } ; extern "C" { pub fn rc_lboard_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_lboard (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_lboard_t ; } extern "C" { pub fn rc_evaluate_lboard (lboard : * mut rc_lboard_t , value : * mut i32 , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_lboard (lboard : * mut rc_lboard_t) ; } pub const RC_FORMAT_FRAMES : _bindgen_ty_8 = 0 ; pub const RC_FORMAT_SECONDS : _bindgen_ty_8 = 1 ; pub const RC_FORMAT_CENTISECS : _bindgen_ty_8 = 2 ; pub const RC_FORMAT_SCORE : _bindgen_ty_8 = 3 ; pub const RC_FORMAT_VALUE : _bindgen_ty_8 = 4 ; pub const RC_FORMAT_MINUTES : _bindgen_ty_8 = 5 ; pub const RC_FORMAT_SECONDS_AS_MINUTES : _bindgen_ty_8 = 6 ; pub const RC_FORMAT_FLOAT1 : _bindgen_ty_8 = 7 ; pub const RC_FORMAT_FLOAT2 : _bindgen_ty_8 = 8 ; pub const RC_FORMAT_FLOAT3 : _bindgen_ty_8 = 9 ; pub const RC_FORMAT_FLOAT4 : _bindgen_ty_8 = 10 ; pub const RC_FORMAT_FLOAT5 : _bindgen_ty_8 = 11 ; pub const RC_FORMAT_FLOAT6 : _bindgen_ty_8 = 12 ; pub const RC_FORMAT_FIXED1 : _bindgen_ty_8 = 13 ; pub const RC_FORMAT_FIXED2 : _bindgen_ty_8 = 14 ; pub const RC_FORMAT_FIXED3 : _bindgen_ty_8 = 15 ; pub const RC_FORMAT_TENS : _bindgen_ty_8 = 16 ; pub const RC_FORMAT_HUNDREDS : _bindgen_ty_8 = 17 ; pub const RC_FORMAT_THOUSANDS : _bindgen_ty_8 = 18 ; pub const RC_FORMAT_UNSIGNED_VALUE : _bindgen_ty_8 = 19 ; # [doc = "\\\n| Value formatting                                                            |\n\\"] pub type _bindgen_ty_8 = :: core :: ffi :: c_uint ; extern "C" { pub fn rc_parse_format (format_str : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_format_value (buffer : * mut :: core :: ffi :: c_char , size : :: core :: ffi :: c_int , value : i32 , format : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_lookup_item_t { pub first : u32 , pub last : u32 , pub left : * mut rc_richpresence_lookup_item_t , pub right : * mut rc_richpresence_lookup_item_t , pub label : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_lookup_item_t"] [:: core :: mem :: size_of :: < rc_richpresence_lookup_item_t > () - 32usize] ; ["Alignment of rc_richpresence_lookup_item_t"] [:: core :: mem :: align_of :: < rc_richpresence_lookup_item_t > () - 8usize] ; ["Offset of field: rc_richpresence_lookup_item_t::first"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , first) - 0usize] ; ["Offset of field: rc_richpresence_lookup_item_t::last"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , last) - 4usize] ; ["Offset of field: rc_richpresence_lookup_item_t::left"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , left) - 8usize] ; ["Offset of field: rc_richpresence_lookup_item_t::right"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , right) - 16usize] ; ["Offset of field: rc_richpresence_lookup_item_t::label"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , label) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_lookup_t { pub root : * mut rc_richpresence_lookup_item_t , pub next : * mut rc_richpresence_lookup_t , pub name : * const :: core :: ffi :: c_char , pub default_label : * const :: core :: ffi :: c_char , pub format : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_lookup_t"] [:: core :: mem :: size_of :: < rc_richpresence_lookup_t > () - 40usize] ; ["Alignment of rc_richpresence_lookup_t"] [:: core :: mem :: align_of :: < rc_richpresence_lookup_t > () - 8usize] ; ["Offset of field: rc_richpresence_lookup_t::root"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , root) - 0usize] ; ["Offset of field: rc_richpresence_lookup_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , next) - 8usize] ; ["Offset of field: rc_richpresence_lookup_t::name"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , name) - 16usize] ; ["Offset of field: rc_richpresence_lookup_t::default_label"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , default_label) - 24usize] ; ["Offset of field: rc_richpresence_lookup_t::format"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , format) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_display_part_t { pub next : * mut rc_richpresence_display_part_t , pub text : * const :: core :: ffi :: c_char , pub lookup : * mut rc_richpresence_lookup_t , pub value : * mut rc_memref_value_t , pub display_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_display_part_t"] [:: core :: mem :: size_of :: < rc_richpresence_display_part_t > () - 40usize] ; ["Alignment of rc_richpresence_display_part_t"] [:: core :: mem :: align_of :: < rc_richpresence_display_part_t > () - 8usize] ; ["Offset of field: rc_richpresence_display_part_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , next) - 0usize] ; ["Offset of field: rc_richpresence_display_part_t::text"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , text) - 8usize] ; ["Offset of field: rc_richpresence_display_part_t::lookup"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , lookup) - 16usize] ; ["Offset of field: rc_richpresence_display_part_t::value"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , value) - 24usize] ; ["Offset of field: rc_richpresence_display_part_t::display_type"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , display_type) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_display_t { pub trigger : rc_trigger_t , pub next : * mut rc_richpresence_display_t , pub display : * mut rc_richpresence_display_part_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_display_t"] [:: core :: mem :: size_of :: < rc_richpresence_display_t > () - 56usize] ; ["Alignment of rc_richpresence_display_t"] [:: core :: mem :: align_of :: < rc_richpresence_display_t > () - 8usize] ; ["Offset of field: rc_richpresence_display_t::trigger"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , trigger) - 0usize] ; ["Offset of field: rc_richpresence_display_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , next) - 40usize] ; ["Offset of field: rc_richpresence_display_t::display"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , display) - 48usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_t { pub first_display : * mut rc_richpresence_display_t , pub first_lookup : * mut rc_richpresence_lookup_t , pub memrefs : * mut rc_memref_t , pub variables : * mut rc_value_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_t"] [:: core :: mem :: size_of :: < rc_richpresence_t > () - 32usize] ; ["Alignment of rc_richpresence_t"] [:: core :: mem :: align_of :: < rc_richpresence_t > () - 8usize] ; ["Offset of field: rc_richpresence_t::first_display"] [:: core :: mem :: offset_of ! (rc_richpresence_t , first_display) - 0usize] ; ["Offset of field: rc_richpresence_t::first_lookup"] [:: core :: mem :: offset_of ! (rc_richpresence_t , first_lookup) - 8usize] ; ["Offset of field: rc_richpresence_t::memrefs"] [:: core :: mem :: offset_of ! (rc_richpresence_t , memrefs) - 16usize] ; ["Offset of field: rc_richpresence_t::variables"] [:: core :: mem :: offset_of ! (rc_richpresence_t , variables) - 24usize] ; } ; extern "C" { pub fn rc_richpresence_size (script : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_richpresence_size_lines (script : * const :: core :: ffi :: c_char , lines_read : * mut :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_richpresence (buffer : * mut :: core :: ffi :: c_void , script : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_richpresence_t ; } extern "C" { pub fn rc_evaluate_richpresence (richpresence : * mut rc_richpresence_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_update_richpresence (richpresence : * mut rc_richpresence_t , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) ; } extern "C" { pub fn rc_get_richpresence_display_string (richpresence : * mut rc_richpresence_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_richpresence (self_ : * mut rc_richpresence_t) ; } # [doc = " A block of memory for variable length data (like strings and arrays)."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_buffer_chunk_t { pub write : * mut u8 , pub end : * mut u8 , pub start : * mut u8 , pub next : * mut rc_buffer_chunk_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_buffer_chunk_t"] [:: core :: mem :: size_of :: < rc_buffer_chunk_t > () - 32usize] ; ["Alignment of rc_buffer_chunk_t"] [:: core :: mem :: align_of :: < rc_buffer_chunk_t > () - 8usize] ; ["Offset of field: rc_buffer_chunk_t::write"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , write) - 0usize] ; ["Offset of field: rc_buffer_chunk_t::end"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , end) - 8usize] ; ["Offset of field: rc_buffer_chunk_t::start"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , start) - 16usize] ; ["Offset of field: rc_buffer_chunk_t::next"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , next) - 24usize] ; } ; # [doc = " A preallocated block of memory for variable length data (like strings and arrays)."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_buffer_t { pub chunk : rc_buffer_chunk_t , pub data : [u8 ; 256usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_buffer_t"] [:: core :: mem :: size_of :: < rc_buffer_t > () - 288usize] ; ["Alignment of rc_buffer_t"] [:: core :: mem :: align_of :: < rc_buffer_t > () - 8usize] ; ["Offset of field: rc_buffer_t::chunk"] [:: core :: mem :: offset_of ! (rc_buffer_t , chunk) - 0usize] ; ["Offset of field: rc_buffer_t::data"] [:: core :: mem :: offset_of ! (rc_buffer_t , data) - 32usize] ; } ; extern "C" { pub fn rc_buffer_init (buffer : * mut rc_buffer_t) ; } extern "C" { pub fn rc_buffer_destroy (buffer : * mut rc_buffer_t) ; } extern "C" { pub fn rc_buffer_reserve (buffer : * mut rc_buffer_t , amount : usize) -> * mut u8 ; } extern "C" { pub fn rc_buffer_consume (buffer : * mut rc_buffer_t , start : * const u8 , end : * mut u8) ; } extern "C" { pub fn rc_buffer_alloc (buffer : * mut rc_buffer_t , amount : usize) -> * mut :: core :: ffi :: c_void ; } extern "C" { pub fn rc_buffer_strcpy (buffer : * mut rc_buffer_t , src : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn rc_buffer_strncpy (buffer : * mut rc_buffer_t , src : * const :: core :: ffi :: c_char , len : usize) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn rc_djb2 (input : * const :: core :: ffi :: c_char) -> u32 ; } extern "C" { pub fn rc_format_md5 (checksum : * mut :: core :: ffi :: c_char , digest : * const u8) ; } # [doc = " A constructed request to send to the retroachievements server."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_request_t { pub url : * const :: core :: ffi :: c_char , pub post_data : * const :: core :: ffi :: c_char , pub content_type : * const :: core :: ffi :: c_char , pub buffer : rc_buffer_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_request_t"] [:: core :: mem :: size_of :: < rc_api_request_t > () - 312usize] ; ["Alignment of rc_api_request_t"] [:: core :: mem :: align_of :: < rc_api_request_t > () - 8usize] ; ["Offset of field: rc_api_request_t::url"] [:: core :: mem :: offset_of ! (rc_api_request_t , url) - 0usize] ; ["Offset of field: rc_api_request_t::post_data"] [:: core :: mem :: offset_of ! (rc_api_request_t , post_data) - 8usize] ; ["Offset of field: rc_api_request_t::content_type"] [:: core :: mem :: offset_of ! (rc_api_request_t , content_type) - 16usize] ; ["Offset of field: rc_api_request_t::buffer"] [:: core :: mem :: offset_of ! (rc_api_request_t , buffer) - 24usize] ; } ; # [doc = " Common attributes for all server responses."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_response_t { pub succeeded : :: core :: ffi :: c_int , pub error_message : * const :: core :: ffi :: c_char , pub error_code : * const :: core :: ffi :: c_char , pub buffer : rc_buffer_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_response_t"] [:: core :: mem :: size_of :: < rc_api_response_t > () - 312usize] ; ["Alignment of rc_api_response_t"] [:: core :: mem :: align_of :: < rc_api_response_t > () - 8usize] ; ["Offset of field: rc_api_response_t::succeeded"] [:: core :: mem :: offset_of ! (rc_api_response_t , succeeded) - 0usize] ; ["Offset of field: rc_api_response_t::error_message"] [:: core :: mem :: offset_of ! (rc_api_response_t , error_message) - 8usize] ; ["Offset of field: rc_api_response_t::error_code"] [:: core :: mem :: offset_of ! (rc_api_response_t , error_code) - 16usize] ; ["Offset of field: rc_api_response_t::buffer"] [:: core :: mem :: offset_of ! (rc_api_response_t , buffer) - 24usize] ; } ; extern "C" { pub fn rc_api_destroy_request (request : * mut rc_api_request_t) ; } extern "C" { pub fn rc_api_set_host (hostname : * const :: core :: ffi :: c_char) ; } extern "C" { pub fn rc_api_set_image_host (hostname : * const :: core :: ffi :: c_char) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_server_response_t { pub body : * const :: core :: ffi :: c_char , pub body_length : usize , pub http_status_code : :: core :: ffi :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_server_response_t"] [:: core :: mem :: size_of :: < rc_api_server_response_t > () - 24usize] ; ["Alignment of rc_api_server_response_t"] [:: core :: mem :: align_of :: < rc_api_server_response_t > () - 8usize] ; ["Offset of field: rc_api_server_response_t::body"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , body) - 0usize] ; ["Offset of field: rc_api_server_response_t::body_length"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , body_length) - 8usize] ; ["Offset of field: rc_api_server_response_t::http_status_code"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , http_status_code) - 16usize] ; } ; pub const RC_API_SERVER_RESPONSE_CLIENT_ERROR : _bindgen_ty_9 = - 1 ; pub const RC_API_SERVER_RESPONSE_RETRYABLE_CLIENT_ERROR : _bindgen_ty_9 = - 2 ; pub type _bindgen_ty_9 = :: core :: ffi :: c_int ; pub type clock_t = __clock_t ; pub type time_t = __time_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct tm { pub tm_sec : :: core :: ffi :: c_int , pub tm_min : :: core :: ffi :: c_int , pub tm_hour : :: core :: ffi :: c_int , pub tm_mday : :: core :: ffi :: c_int , pub tm_mon : :: core :: ffi :: c_int , pub tm_year : :: core :: ffi :: c_int , pub tm_wday : :: core :: ffi :: c_int , pub tm_yday : :: core :: ffi :: c_int , pub tm_isdst : :: core :: ffi :: c_int , pub tm_gmtoff : :: core :: ffi :: c_long , pub tm_zone : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of tm"] [:: core :: mem :: size_of :: < tm > () - 56usize] ; ["Alignment of tm"] [:: core :: mem :: align_of :: < tm > () - 8usize] ; ["Offset of field: tm::tm_sec"] [:: core :: mem :: offset_of ! (tm , tm_sec) - 0usize] ; ["Offset of field: tm::tm_min"] [:: core :: mem :: offset_of ! (tm , tm_min) - 4usize] ; ["Offset of field: tm::tm_hour"] [:: core :: mem :: offset_of ! (tm , tm_hour) - 8usize] ; ["Offset of field: tm::tm_mday"] [:: core :: mem :: offset_of ! (tm , tm_mday) - 12usize] ; ["Offset of field: tm::tm_mon"] [:: core :: mem :: offset_of ! (tm , tm_mon) - 16usize] ; ["Offset of field: tm::tm_year"] [:: core :: mem :: offset_of ! (tm , tm_year) - 20usize] ; ["Offset of field: tm::tm_wday"] [:: core :: mem :: offset_of ! (tm , tm_wday) - 24usize] ; ["Offset of field: tm::tm_yday"] [:: core :: mem :: offset_of ! (tm , tm_yday) - 28usize] ; ["Offset of field: tm::tm_isdst"] [:: core :: mem :: offset_of ! (tm , tm_isdst) - 32usize] ; ["Offset of field: tm::tm_gmtoff"] [:: core :: mem :: offset_of ! (tm , tm_gmtoff) - 40usize] ; ["Offset of field: tm::tm_zone"] [:: core :: mem :: offset_of ! (tm , tm_zone) - 48usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct timespec { pub tv_sec : __time_t , pub tv_nsec : __syscall_slong_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of timespec"] [:: core :: mem :: size_of :: < timespec > () - 16usize] ; ["Alignment of timespec"] [:: core :: mem :: align_of :: < timespec > () - 8usize] ; ["Offset of field: timespec::tv_sec"] [:: core :: mem :: offset_of ! (timespec , tv_sec) - 0usize] ; ["Offset of field: timespec::tv_nsec"] [:: core :: mem :: offset_of ! (timespec , tv_nsec) - 8usize] ; } ; pub type clockid_t = __clockid_t ; pub type timer_t = __timer_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct itimerspec { pub it_interval : timespec , pub it_value : timespec , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of itimerspec"] [:: core :: mem :: size_of :: < itimerspec > () - 32usize] ; ["Alignment of itimerspec"] [:: core :: mem :: align_of :: < itimerspec > () - 8usize] ; ["Offset of field: itimerspec::it_interval"] [:: core :: mem :: offset_of ! (itimerspec , it_interval) - 0usize] ; ["Offset of field: itimerspec::it_value"] [:: core :: mem :: offset_of ! (itimerspec , it_value) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct sigevent { _unused : [u8 ; 0] , } pub type pid_t = __pid_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __locale_struct { pub __locales : [* mut __locale_data ; 13usize] , pub __ctype_b : * const :: core :: ffi :: c_ushort , pub __ctype_tolower : * const :: core :: ffi :: c_int , pub __ctype_toupper : * const :: core :: ffi :: c_int , pub __names : [* const :: core :: ffi :: c_char ; 13usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __locale_struct"] [:: core :: mem :: size_of :: < __locale_struct > () - 232usize] ; ["Alignment of __locale_struct"] [:: core :: mem :: align_of :: < __locale_struct > () - 8usize] ; ["Offset of field: __locale_struct::__locales"] [:: core :: mem :: offset_of ! (__locale_struct , __locales) - 0usize] ; ["Offset of field: __locale_struct::__ctype_b"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_b) - 104usize] ; ["Offset of field: __locale_struct::__ctype_tolower"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_tolower) - 112usize] ; ["Offset of field: __locale_struct::__ctype_toupper"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_toupper) - 120usize] ; ["Offset of field: __locale_struct::__names"] [:: core :: mem :: offset_of ! (__locale_struct , __names) - 128usize] ; } ; pub type __locale_t = * mut __locale_struct ; pub type locale_t = __locale_t ; extern "C" { pub fn clock () -> clock_t ; } extern "C" { pub fn time (__timer : * mut time_t) -> time_t ; } extern "C" { pub fn difftime (__time1 : time_t , __time0 : time_t) -> f64 ; } extern "C" { pub fn mktime (__tp : * mut tm) -> time_t ; } extern "C" { pub fn strftime (__s : * mut :: core :: ffi :: c_char , __maxsize : usize , __format : * const :: core :: ffi :: c_char , __tp : * const tm) -> usize ; } extern "C" { pub fn strftime_l (__s : * mut :: core :: ffi :: c_char , __maxsize : usize , __format : * const :: core :: ffi :: c_char , __tp : * const tm , __loc : locale_t) -> usize ; } extern "C" { pub fn gmtime (__timer : * const time_t) -> * mut tm ; } extern "C" { pub fn localtime (__timer : * const time_t) -> * mut tm ; } extern "C" { pub fn gmtime_r (__timer : * const time_t , __tp : * mut tm) -> * mut tm ; } extern "C" { pub fn localtime_r (__timer : * const time_t , __tp : * mut tm) -> * mut tm ; } extern "C" { pub fn asctime (__tp : * const tm) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn ctime (__timer : * const time_t) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn asctime_r (__tp : * const tm , __buf : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn ctime_r (__timer : * const time_t , __buf : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub static mut __tzname : [* mut :: core :: ffi :: c_char ; 2usize] ; } extern "C" { pub static mut __daylight : :: core :: ffi :: c_int ; } extern "C" { pub static mut __timezone : :: core :: ffi :: c_long ; } extern "C" { pub static mut tzname : [* mut :: core :: ffi :: c_char ; 2usize] ; } extern "C" { pub fn tzset () ; } extern "C" { pub static mut daylight : :: core :: ffi :: c_int ; } extern "C" { pub static mut timezone : :: core :: ffi :: c_long ; } extern "C" { pub fn timegm (__tp : * mut tm) -> time_t ; } extern "C" { pub fn timelocal (__tp : * mut tm) -> time_t ; } extern "C" { pub fn dysize (__year : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn nanosleep (__requested_time : * const timespec , __remaining : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_getres (__clock_id : clockid_t , __res : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_gettime (__clock_id : clockid_t , __tp : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_settime (__clock_id : clockid_t , __tp : * const timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_nanosleep (__clock_id : clockid_t , __flags : :: core :: ffi :: c_int , __req : * const timespec , __rem : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_getcpuclockid (__pid : pid_t , __clock_id : * mut clockid_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_create (__clock_id : clockid_t , __evp : * mut sigevent , __timerid : * mut timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_delete (__timerid : timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_settime (__timerid : timer_t , __flags : :: core :: ffi :: c_int , __value : * const itimerspec , __ovalue : * mut itimerspec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_gettime (__timerid : timer_t , __value : * mut itimerspec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_getoverrun (__timerid : timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timespec_get (__ts : * mut timespec , __base : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } # [doc = " API parameters for a login request.\n If both password and api_token are provided, api_token will be ignored."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_login_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub password : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_login_request_t"] [:: core :: mem :: size_of :: < rc_api_login_request_t > () - 24usize] ; ["Alignment of rc_api_login_request_t"] [:: core :: mem :: align_of :: < rc_api_login_request_t > () - 8usize] ; ["Offset of field: rc_api_login_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , username) - 0usize] ; ["Offset of field: rc_api_login_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_login_request_t::password"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , password) - 16usize] ; } ; # [doc = " Response data for a login request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_login_response_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub score : u32 , pub score_softcore : u32 , pub num_unread_messages : u32 , pub display_name : * const :: core :: ffi :: c_char , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_login_response_t"] [:: core :: mem :: size_of :: < rc_api_login_response_t > () - 352usize] ; ["Alignment of rc_api_login_response_t"] [:: core :: mem :: align_of :: < rc_api_login_response_t > () - 8usize] ; ["Offset of field: rc_api_login_response_t::username"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , username) - 0usize] ; ["Offset of field: rc_api_login_response_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , api_token) - 8usize] ; ["Offset of field: rc_api_login_response_t::score"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , score) - 16usize] ; ["Offset of field: rc_api_login_response_t::score_softcore"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , score_softcore) - 20usize] ; ["Offset of field: rc_api_login_response_t::num_unread_messages"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , num_unread_messages) - 24usize] ; ["Offset of field: rc_api_login_response_t::display_name"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , display_name) - 32usize] ; ["Offset of field: rc_api_login_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , response) - 40usize] ; } ; extern "C" { pub fn rc_api_init_login_request (request : * mut rc_api_request_t , api_params : * const rc_api_login_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_login_response (response : * mut rc_api_login_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_login_server_response (response : * mut rc_api_login_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_login_response (response : * mut rc_api_login_response_t) ; } # [doc = " API parameters for a start session request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_start_session_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub game_hash : * const :: core :: ffi :: c_char , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_start_session_request_t"] [:: core :: mem :: size_of :: < rc_api_start_session_request_t > () - 40usize] ; ["Alignment of rc_api_start_session_request_t"] [:: core :: mem :: align_of :: < rc_api_start_session_request_t > () - 8usize] ; ["Offset of field: rc_api_start_session_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , username) - 0usize] ; ["Offset of field: rc_api_start_session_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_start_session_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_start_session_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_start_session_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , hardcore) - 32usize] ; } ; # [doc = " Response data for an achievement unlock."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_unlock_entry_t { pub achievement_id : u32 , pub when : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_unlock_entry_t"] [:: core :: mem :: size_of :: < rc_api_unlock_entry_t > () - 16usize] ; ["Alignment of rc_api_unlock_entry_t"] [:: core :: mem :: align_of :: < rc_api_unlock_entry_t > () - 8usize] ; ["Offset of field: rc_api_unlock_entry_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_unlock_entry_t , achievement_id) - 0usize] ; ["Offset of field: rc_api_unlock_entry_t::when"] [:: core :: mem :: offset_of ! (rc_api_unlock_entry_t , when) - 8usize] ; } ; # [doc = " Response data for a start session request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_start_session_response_t { pub hardcore_unlocks : * mut rc_api_unlock_entry_t , pub unlocks : * mut rc_api_unlock_entry_t , pub num_hardcore_unlocks : u32 , pub num_unlocks : u32 , pub server_now : time_t , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_start_session_response_t"] [:: core :: mem :: size_of :: < rc_api_start_session_response_t > () - 344usize] ; ["Alignment of rc_api_start_session_response_t"] [:: core :: mem :: align_of :: < rc_api_start_session_response_t > () - 8usize] ; ["Offset of field: rc_api_start_session_response_t::hardcore_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , hardcore_unlocks) - 0usize] ; ["Offset of field: rc_api_start_session_response_t::unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , unlocks) - 8usize] ; ["Offset of field: rc_api_start_session_response_t::num_hardcore_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , num_hardcore_unlocks) - 16usize] ; ["Offset of field: rc_api_start_session_response_t::num_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , num_unlocks) - 20usize] ; ["Offset of field: rc_api_start_session_response_t::server_now"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , server_now) - 24usize] ; ["Offset of field: rc_api_start_session_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_start_session_request (request : * mut rc_api_request_t , api_params : * const rc_api_start_session_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_start_session_response (response : * mut rc_api_start_session_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_start_session_server_response (response : * mut rc_api_start_session_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_start_session_response (response : * mut rc_api_start_session_response_t) ; } # [doc = " API parameters for a fetch user unlocks request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_user_unlocks_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_user_unlocks_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_user_unlocks_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_user_unlocks_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_user_unlocks_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , hardcore) - 20usize] ; } ; # [doc = " Response data for a fetch user unlocks request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_user_unlocks_response_t { pub achievement_ids : * mut u32 , pub num_achievement_ids : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_user_unlocks_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_user_unlocks_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_user_unlocks_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_user_unlocks_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::achievement_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , achievement_ids) - 0usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::num_achievement_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , num_achievement_ids) - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_user_unlocks_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_user_unlocks_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_user_unlocks_response (response : * mut rc_api_fetch_user_unlocks_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_user_unlocks_server_response (response : * mut rc_api_fetch_user_unlocks_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_user_unlocks_response (response : * mut rc_api_fetch_user_unlocks_response_t) ; } # [doc = " API parameters for a fetch code notes request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_code_notes_request_t { pub game_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_code_notes_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_code_notes_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_code_notes_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_code_notes_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_code_notes_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_request_t , game_id) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_code_note_t { pub address : u32 , pub author : * const :: core :: ffi :: c_char , pub note : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_code_note_t"] [:: core :: mem :: size_of :: < rc_api_code_note_t > () - 24usize] ; ["Alignment of rc_api_code_note_t"] [:: core :: mem :: align_of :: < rc_api_code_note_t > () - 8usize] ; ["Offset of field: rc_api_code_note_t::address"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , address) - 0usize] ; ["Offset of field: rc_api_code_note_t::author"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , author) - 8usize] ; ["Offset of field: rc_api_code_note_t::note"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , note) - 16usize] ; } ; # [doc = " Response data for a fetch code notes request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_code_notes_response_t { pub notes : * mut rc_api_code_note_t , pub num_notes : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_code_notes_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_code_notes_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_code_notes_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_code_notes_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::notes"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , notes) - 0usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::num_notes"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , num_notes) - 8usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_code_notes_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_code_notes_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_code_notes_response (response : * mut rc_api_fetch_code_notes_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_code_notes_server_response (response : * mut rc_api_fetch_code_notes_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_code_notes_response (response : * mut rc_api_fetch_code_notes_response_t) ; } # [doc = " API parameters for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_code_note_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub address : u32 , pub note : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_code_note_request_t"] [:: core :: mem :: size_of :: < rc_api_update_code_note_request_t > () - 32usize] ; ["Alignment of rc_api_update_code_note_request_t"] [:: core :: mem :: align_of :: < rc_api_update_code_note_request_t > () - 8usize] ; ["Offset of field: rc_api_update_code_note_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_code_note_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_code_note_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_update_code_note_request_t::address"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , address) - 20usize] ; ["Offset of field: rc_api_update_code_note_request_t::note"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , note) - 24usize] ; } ; # [doc = " Response data for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_code_note_response_t { pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_code_note_response_t"] [:: core :: mem :: size_of :: < rc_api_update_code_note_response_t > () - 312usize] ; ["Alignment of rc_api_update_code_note_response_t"] [:: core :: mem :: align_of :: < rc_api_update_code_note_response_t > () - 8usize] ; ["Offset of field: rc_api_update_code_note_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_response_t , response) - 0usize] ; } ; extern "C" { pub fn rc_api_init_update_code_note_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_code_note_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_code_note_response (response : * mut rc_api_update_code_note_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_code_note_server_response (response : * mut rc_api_update_code_note_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_code_note_response (response : * mut rc_api_update_code_note_response_t) ; } # [doc = " API parameters for an update achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_achievement_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub game_id : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub badge : * const :: core :: ffi :: c_char , pub trigger : * const :: core :: ffi :: c_char , pub points : u32 , pub category : u32 , pub type_ : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_achievement_request_t"] [:: core :: mem :: size_of :: < rc_api_update_achievement_request_t > () - 72usize] ; ["Alignment of rc_api_update_achievement_request_t"] [:: core :: mem :: align_of :: < rc_api_update_achievement_request_t > () - 8usize] ; ["Offset of field: rc_api_update_achievement_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_achievement_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_achievement_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_update_achievement_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , game_id) - 20usize] ; ["Offset of field: rc_api_update_achievement_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , title) - 24usize] ; ["Offset of field: rc_api_update_achievement_request_t::description"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , description) - 32usize] ; ["Offset of field: rc_api_update_achievement_request_t::badge"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , badge) - 40usize] ; ["Offset of field: rc_api_update_achievement_request_t::trigger"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , trigger) - 48usize] ; ["Offset of field: rc_api_update_achievement_request_t::points"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , points) - 56usize] ; ["Offset of field: rc_api_update_achievement_request_t::category"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , category) - 60usize] ; ["Offset of field: rc_api_update_achievement_request_t::type_"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , type_) - 64usize] ; } ; # [doc = " Response data for an update achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_achievement_response_t { pub achievement_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_achievement_response_t"] [:: core :: mem :: size_of :: < rc_api_update_achievement_response_t > () - 320usize] ; ["Alignment of rc_api_update_achievement_response_t"] [:: core :: mem :: align_of :: < rc_api_update_achievement_response_t > () - 8usize] ; ["Offset of field: rc_api_update_achievement_response_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_response_t , achievement_id) - 0usize] ; ["Offset of field: rc_api_update_achievement_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_update_achievement_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_achievement_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_achievement_response (response : * mut rc_api_update_achievement_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_achievement_server_response (response : * mut rc_api_update_achievement_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_achievement_response (response : * mut rc_api_update_achievement_response_t) ; } # [doc = " API parameters for an update leaderboard request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_leaderboard_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub leaderboard_id : u32 , pub game_id : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub start_trigger : * const :: core :: ffi :: c_char , pub submit_trigger : * const :: core :: ffi :: c_char , pub cancel_trigger : * const :: core :: ffi :: c_char , pub value_definition : * const :: core :: ffi :: c_char , pub format : * const :: core :: ffi :: c_char , pub lower_is_better : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_leaderboard_request_t"] [:: core :: mem :: size_of :: < rc_api_update_leaderboard_request_t > () - 88usize] ; ["Alignment of rc_api_update_leaderboard_request_t"] [:: core :: mem :: align_of :: < rc_api_update_leaderboard_request_t > () - 8usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , leaderboard_id) - 16usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , game_id) - 20usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , title) - 24usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::description"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , description) - 32usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::start_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , start_trigger) - 40usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::submit_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , submit_trigger) - 48usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::cancel_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , cancel_trigger) - 56usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::value_definition"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , value_definition) - 64usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::format"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , format) - 72usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , lower_is_better) - 80usize] ; } ; # [doc = " Response data for an update leaderboard request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_leaderboard_response_t { pub leaderboard_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_leaderboard_response_t"] [:: core :: mem :: size_of :: < rc_api_update_leaderboard_response_t > () - 320usize] ; ["Alignment of rc_api_update_leaderboard_response_t"] [:: core :: mem :: align_of :: < rc_api_update_leaderboard_response_t > () - 8usize] ; ["Offset of field: rc_api_update_leaderboard_response_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_response_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_api_update_leaderboard_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_update_leaderboard_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_leaderboard_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_leaderboard_response (response : * mut rc_api_update_leaderboard_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_leaderboard_server_response (response : * mut rc_api_update_leaderboard_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_leaderboard_response (response : * mut rc_api_update_leaderboard_response_t) ; } # [doc = " API parameters for a fetch badge range request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_badge_range_request_t { pub unused : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_badge_range_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_badge_range_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_badge_range_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_badge_range_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_badge_range_request_t::unused"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_request_t , unused) - 0usize] ; } ; # [doc = " Response data for a fetch badge range request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_badge_range_response_t { pub first_badge_id : u32 , pub next_badge_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_badge_range_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_badge_range_response_t > () - 320usize] ; ["Alignment of rc_api_fetch_badge_range_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_badge_range_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::first_badge_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , first_badge_id) - 0usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::next_badge_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , next_badge_id) - 4usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_fetch_badge_range_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_badge_range_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_badge_range_response (response : * mut rc_api_fetch_badge_range_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_badge_range_server_response (response : * mut rc_api_fetch_badge_range_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_badge_range_response (response : * mut rc_api_fetch_badge_range_response_t) ; } # [doc = " API parameters for an add game hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_add_game_hash_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub hash : * const :: core :: ffi :: c_char , pub hash_description : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_add_game_hash_request_t"] [:: core :: mem :: size_of :: < rc_api_add_game_hash_request_t > () - 48usize] ; ["Alignment of rc_api_add_game_hash_request_t"] [:: core :: mem :: align_of :: < rc_api_add_game_hash_request_t > () - 8usize] ; ["Offset of field: rc_api_add_game_hash_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , username) - 0usize] ; ["Offset of field: rc_api_add_game_hash_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_add_game_hash_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_add_game_hash_request_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , console_id) - 20usize] ; ["Offset of field: rc_api_add_game_hash_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , title) - 24usize] ; ["Offset of field: rc_api_add_game_hash_request_t::hash"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , hash) - 32usize] ; ["Offset of field: rc_api_add_game_hash_request_t::hash_description"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , hash_description) - 40usize] ; } ; # [doc = " Response data for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_add_game_hash_response_t { pub game_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_add_game_hash_response_t"] [:: core :: mem :: size_of :: < rc_api_add_game_hash_response_t > () - 320usize] ; ["Alignment of rc_api_add_game_hash_response_t"] [:: core :: mem :: align_of :: < rc_api_add_game_hash_response_t > () - 8usize] ; ["Offset of field: rc_api_add_game_hash_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_response_t , game_id) - 0usize] ; ["Offset of field: rc_api_add_game_hash_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_add_game_hash_request (request : * mut rc_api_request_t , api_params : * const rc_api_add_game_hash_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_add_game_hash_response (response : * mut rc_api_add_game_hash_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_add_game_hash_server_response (response : * mut rc_api_add_game_hash_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_add_game_hash_response (response : * mut rc_api_add_game_hash_response_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_t { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_menu_item_t { pub label : * const :: core :: ffi :: c_char , pub id : u32 , pub checked : u8 , pub enabled : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_menu_item_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_menu_item_t > () - 16usize] ; ["Alignment of rc_client_raintegration_menu_item_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_menu_item_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::label"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , label) - 0usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::id"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , id) - 8usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::checked"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , checked) - 12usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::enabled"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , enabled) - 13usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_menu_t { pub items : * mut rc_client_raintegration_menu_item_t , pub num_items : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_menu_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_menu_t > () - 16usize] ; ["Alignment of rc_client_raintegration_menu_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_menu_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_menu_t::items"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_t , items) - 0usize] ; ["Offset of field: rc_client_raintegration_menu_t::num_items"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_t , num_items) - 8usize] ; } ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_NONE : _bindgen_ty_10 = 0 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_PUBLISHED : _bindgen_ty_10 = 1 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_LOCAL : _bindgen_ty_10 = 2 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_MODIFIED : _bindgen_ty_10 = 3 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_INSECURE : _bindgen_ty_10 = 4 ; pub type _bindgen_ty_10 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_RAINTEGRATION_EVENT_TYPE_NONE : _bindgen_ty_11 = 0 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_MENUITEM_CHECKED_CHANGED : _bindgen_ty_11 = 1 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_HARDCORE_CHANGED : _bindgen_ty_11 = 2 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_PAUSE : _bindgen_ty_11 = 3 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_MENU_CHANGED : _bindgen_ty_11 = 4 ; pub type _bindgen_ty_11 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_event_t { pub type_ : u32 , pub menu_item : * const rc_client_raintegration_menu_item_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_event_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_event_t > () - 16usize] ; ["Alignment of rc_client_raintegration_event_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_event_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_event_t::type_"] [:: core :: mem :: offset_of ! (rc_client_raintegration_event_t , type_) - 0usize] ; ["Offset of field: rc_client_raintegration_event_t::menu_item"] [:: core :: mem :: offset_of ! (rc_client_raintegration_event_t , menu_item) - 8usize] ; } ; pub type rc_client_raintegration_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (event : * const rc_client_raintegration_event_t , client : * mut rc_client_t) > ; pub type rc_client_raintegration_write_memory_func_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , buffer : * mut u8 , num_bytes : u32 , client : * mut rc_client_t) > ; pub type rc_client_raintegration_get_game_name_func_t = :: core :: option :: Option < unsafe extern "C" fn (buffer : * mut :: core :: ffi :: c_char , buffer_size : u32 , client : * mut rc_client_t) > ; # [doc = " API parameters for a fetch achievement info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_achievement_info_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub first_entry : u32 , pub count : u32 , pub friends_only : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_achievement_info_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_achievement_info_request_t > () - 32usize] ; ["Alignment of rc_api_fetch_achievement_info_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_achievement_info_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::first_entry"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , first_entry) - 20usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::count"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , count) - 24usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::friends_only"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , friends_only) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_achievement_awarded_entry_t { pub username : * const :: core :: ffi :: c_char , pub awarded : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_achievement_awarded_entry_t"] [:: core :: mem :: size_of :: < rc_api_achievement_awarded_entry_t > () - 16usize] ; ["Alignment of rc_api_achievement_awarded_entry_t"] [:: core :: mem :: align_of :: < rc_api_achievement_awarded_entry_t > () - 8usize] ; ["Offset of field: rc_api_achievement_awarded_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_achievement_awarded_entry_t , username) - 0usize] ; ["Offset of field: rc_api_achievement_awarded_entry_t::awarded"] [:: core :: mem :: offset_of ! (rc_api_achievement_awarded_entry_t , awarded) - 8usize] ; } ; # [doc = " Response data for a fetch achievement info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_achievement_info_response_t { pub id : u32 , pub game_id : u32 , pub num_awarded : u32 , pub num_players : u32 , pub recently_awarded : * mut rc_api_achievement_awarded_entry_t , pub num_recently_awarded : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_achievement_info_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_achievement_info_response_t > () - 344usize] ; ["Alignment of rc_api_fetch_achievement_info_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_achievement_info_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , game_id) - 4usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_awarded) - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_players"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_players) - 12usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::recently_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , recently_awarded) - 16usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_recently_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_recently_awarded) - 24usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_fetch_achievement_info_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_achievement_info_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_achievement_info_response (response : * mut rc_api_fetch_achievement_info_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_achievement_info_server_response (response : * mut rc_api_fetch_achievement_info_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_achievement_info_response (response : * mut rc_api_fetch_achievement_info_response_t) ; } # [doc = " API parameters for a fetch leaderboard info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_leaderboard_info_request_t { pub leaderboard_id : u32 , pub count : u32 , pub first_entry : u32 , pub username : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_leaderboard_info_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_leaderboard_info_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_leaderboard_info_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_leaderboard_info_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::count"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , count) - 4usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::first_entry"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , first_entry) - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , username) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_lboard_info_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub index : u32 , pub score : i32 , pub submitted : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_lboard_info_entry_t"] [:: core :: mem :: size_of :: < rc_api_lboard_info_entry_t > () - 32usize] ; ["Alignment of rc_api_lboard_info_entry_t"] [:: core :: mem :: align_of :: < rc_api_lboard_info_entry_t > () - 8usize] ; ["Offset of field: rc_api_lboard_info_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , username) - 0usize] ; ["Offset of field: rc_api_lboard_info_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , rank) - 8usize] ; ["Offset of field: rc_api_lboard_info_entry_t::index"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , index) - 12usize] ; ["Offset of field: rc_api_lboard_info_entry_t::score"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , score) - 16usize] ; ["Offset of field: rc_api_lboard_info_entry_t::submitted"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , submitted) - 24usize] ; } ; # [doc = " Response data for a fetch leaderboard info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_leaderboard_info_response_t { pub id : u32 , pub format : :: core :: ffi :: c_int , pub lower_is_better : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub game_id : u32 , pub author : * const :: core :: ffi :: c_char , pub created : time_t , pub updated : time_t , pub entries : * mut rc_api_lboard_info_entry_t , pub num_entries : u32 , pub total_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_leaderboard_info_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_leaderboard_info_response_t > () - 400usize] ; ["Alignment of rc_api_fetch_leaderboard_info_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_leaderboard_info_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::format"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , format) - 4usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , lower_is_better) - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::title"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , title) - 16usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::description"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , description) - 24usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::definition"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , definition) - 32usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , game_id) - 40usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::author"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , author) - 48usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::created"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , created) - 56usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::updated"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , updated) - 64usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , entries) - 72usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , num_entries) - 80usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::total_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , total_entries) - 84usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , response) - 88usize] ; } ; extern "C" { pub fn rc_api_init_fetch_leaderboard_info_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_leaderboard_info_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_leaderboard_info_response (response : * mut rc_api_fetch_leaderboard_info_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_leaderboard_info_server_response (response : * mut rc_api_fetch_leaderboard_info_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_leaderboard_info_response (response : * mut rc_api_fetch_leaderboard_info_response_t) ; } # [doc = " API parameters for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_games_list_request_t { pub console_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_games_list_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_games_list_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_games_list_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_games_list_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_games_list_request_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_request_t , console_id) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_game_list_entry_t { pub id : u32 , pub name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_game_list_entry_t"] [:: core :: mem :: size_of :: < rc_api_game_list_entry_t > () - 16usize] ; ["Alignment of rc_api_game_list_entry_t"] [:: core :: mem :: align_of :: < rc_api_game_list_entry_t > () - 8usize] ; ["Offset of field: rc_api_game_list_entry_t::id"] [:: core :: mem :: offset_of ! (rc_api_game_list_entry_t , id) - 0usize] ; ["Offset of field: rc_api_game_list_entry_t::name"] [:: core :: mem :: offset_of ! (rc_api_game_list_entry_t , name) - 8usize] ; } ; # [doc = " Response data for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_games_list_response_t { pub entries : * mut rc_api_game_list_entry_t , pub num_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_games_list_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_games_list_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_games_list_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_games_list_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , entries) - 0usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , num_entries) - 8usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_games_list_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_games_list_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_games_list_response (response : * mut rc_api_fetch_games_list_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_games_list_server_response (response : * mut rc_api_fetch_games_list_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_games_list_response (response : * mut rc_api_fetch_games_list_response_t) ; } # [doc = " API parameters for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_titles_request_t { pub game_ids : * const u32 , pub num_game_ids : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_titles_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_titles_request_t > () - 16usize] ; ["Alignment of rc_api_fetch_game_titles_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_titles_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_request_t::game_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_request_t , game_ids) - 0usize] ; ["Offset of field: rc_api_fetch_game_titles_request_t::num_game_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_request_t , num_game_ids) - 8usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_game_title_entry_t { pub id : u32 , pub title : * const :: core :: ffi :: c_char , pub image_name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_game_title_entry_t"] [:: core :: mem :: size_of :: < rc_api_game_title_entry_t > () - 24usize] ; ["Alignment of rc_api_game_title_entry_t"] [:: core :: mem :: align_of :: < rc_api_game_title_entry_t > () - 8usize] ; ["Offset of field: rc_api_game_title_entry_t::id"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , id) - 0usize] ; ["Offset of field: rc_api_game_title_entry_t::title"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , title) - 8usize] ; ["Offset of field: rc_api_game_title_entry_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , image_name) - 16usize] ; } ; # [doc = " Response data for a fetch games title request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_titles_response_t { pub entries : * mut rc_api_game_title_entry_t , pub num_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_titles_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_titles_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_game_titles_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_titles_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , entries) - 0usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , num_entries) - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_game_titles_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_game_titles_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_titles_server_response (response : * mut rc_api_fetch_game_titles_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_game_titles_response (response : * mut rc_api_fetch_game_titles_response_t) ; } pub type __gnuc_va_list = __builtin_va_list ; # [repr (C)] # [derive (Copy , Clone)] pub struct __mbstate_t { pub __count : :: core :: ffi :: c_int , pub __value : __mbstate_t__bindgen_ty_1 , } # [repr (C)] # [derive (Copy , Clone)] pub union __mbstate_t__bindgen_ty_1 { pub __wch : :: core :: ffi :: c_uint , pub __wchb : [:: core :: ffi :: c_char ; 4usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __mbstate_t__bindgen_ty_1"] [:: core :: mem :: size_of :: < __mbstate_t__bindgen_ty_1 > () - 4usize] ; ["Alignment of __mbstate_t__bindgen_ty_1"] [:: core :: mem :: align_of :: < __mbstate_t__bindgen_ty_1 > () - 4usize] ; ["Offset of field: __mbstate_t__bindgen_ty_1::__wch"] [:: core :: mem :: offset_of ! (__mbstate_t__bindgen_ty_1 , __wch) - 0usize] ; ["Offset of field: __mbstate_t__bindgen_ty_1::__wchb"] [:: core :: mem :: offset_of ! (__mbstate_t__bindgen_ty_1 , __wchb) - 0usize] ; } ; impl :: core :: fmt :: Debug for __mbstate_t__bindgen_ty_1 { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "__mbstate_t__bindgen_ty_1 {{ union }}") } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __mbstate_t"] [:: core :: mem :: size_of :: < __mbstate_t > () - 8usize] ; ["Alignment of __mbstate_t"] [:: core :: mem :: align_of :: < __mbstate_t > () - 4usize] ; ["Offset of field: __mbstate_t::__count"] [:: core :: mem :: offset_of ! (__mbstate_t , __count) - 0usize] ; ["Offset of field: __mbstate_t::__value"] [:: core :: mem :: offset_of ! (__mbstate_t , __value) - 4usize] ; } ; impl :: core :: fmt :: Debug for __mbstate_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "__mbstate_t {{ __count: {:?}, __value: {:?} }}" , self . __count , self . __value) } } # [repr (C)] # [derive (Copy , Clone)] pub struct _G_fpos_t { pub __pos : __off_t , pub __state : __mbstate_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _G_fpos_t"] [:: core :: mem :: size_of :: < _G_fpos_t > () - 16usize] ; ["Alignment of _G_fpos_t"] [:: core :: mem :: align_of :: < _G_fpos_t > () - 8usize] ; ["Offset of field: _G_fpos_t::__pos"] [:: core :: mem :: offset_of ! (_G_fpos_t , __pos) - 0usize] ; ["Offset of field: _G_fpos_t::__state"] [:: core :: mem :: offset_of ! (_G_fpos_t , __state) - 8usize] ; } ; impl :: core :: fmt :: Debug for _G_fpos_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "_G_fpos_t {{ __pos: {:?}, __state: {:?} }}" , self . __pos , self . __state) } } pub type __fpos_t = _G_fpos_t ; # [repr (C)] # [derive (Copy , Clone)] pub struct _G_fpos64_t { pub __pos : __off64_t , pub __state : __mbstate_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _G_fpos64_t"] [:: core :: mem :: size_of :: < _G_fpos64_t > () - 16usize] ; ["Alignment of _G_fpos64_t"] [:: core :: mem :: align_of :: < _G_fpos64_t > () - 8usize] ; ["Offset of field: _G_fpos64_t::__pos"] [:: core :: mem :: offset_of ! (_G_fpos64_t , __pos) - 0usize] ; ["Offset of field: _G_fpos64_t::__state"] [:: core :: mem :: offset_of ! (_G_fpos64_t , __state) - 8usize] ; } ; impl :: core :: fmt :: Debug for _G_fpos64_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "_G_fpos64_t {{ __pos: {:?}, __state: {:?} }}" , self . __pos , self . __state) } } pub type __fpos64_t = _G_fpos64_t ; pub type __FILE = _IO_FILE ; pub type FILE = _IO_FILE ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_marker { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_codecvt { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_wide_data { _unused : [u8 ; 0] , } pub type _IO_lock_t = :: core :: ffi :: c_void ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_FILE { pub _flags : :: core :: ffi :: c_int , pub _IO_read_ptr : * mut :: core :: ffi :: c_char , pub _IO_read_end : * mut :: core :: ffi :: c_char , pub _IO_read_base : * mut :: core :: ffi :: c_char , pub _IO_write_base : * mut :: core :: ffi :: c_char , pub _IO_write_ptr : * mut :: core :: ffi :: c_char , pub _IO_write_end : * mut :: core :: ffi :: c_char , pub _IO_buf_base : * mut :: core :: ffi :: c_char , pub _IO_buf_end : * mut :: core :: ffi :: c_char , pub _IO_save_base : * mut :: core :: ffi :: c_char , pub _IO_backup_base : * mut :: core :: ffi :: c_char , pub _IO_save_end : * mut :: core :: ffi :: c_char , pub _markers : * mut _IO_marker , pub _chain : * mut _IO_FILE , pub _fileno : :: core :: ffi :: c_int , pub _bitfield_align_1 : [u32 ; 0] , pub _bitfield_1 : __BindgenBitfieldUnit < [u8 ; 3usize] > , pub _short_backupbuf : [:: core :: ffi :: c_char ; 1usize] , pub _old_offset : __off_t , pub _cur_column : :: core :: ffi :: c_ushort , pub _vtable_offset : :: core :: ffi :: c_schar , pub _shortbuf : [:: core :: ffi :: c_char ; 1usize] , pub _lock : * mut _IO_lock_t , pub _offset : __off64_t , pub _codecvt : * mut _IO_codecvt , pub _wide_data : * mut _IO_wide_data , pub _freeres_list : * mut _IO_FILE , pub _freeres_buf : * mut :: core :: ffi :: c_void , pub _prevchain : * mut * mut _IO_FILE , pub _mode : :: core :: ffi :: c_int , pub _unused3 : :: core :: ffi :: c_int , pub _total_written : __uint64_t , pub _unused2 : [:: core :: ffi :: c_char ; 8usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _IO_FILE"] [:: core :: mem :: size_of :: < _IO_FILE > () - 216usize] ; ["Alignment of _IO_FILE"] [:: core :: mem :: align_of :: < _IO_FILE > () - 8usize] ; ["Offset of field: _IO_FILE::_flags"] [:: core :: mem :: offset_of ! (_IO_FILE , _flags) - 0usize] ; ["Offset of field: _IO_FILE::_IO_read_ptr"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_ptr) - 8usize] ; ["Offset of field: _IO_FILE::_IO_read_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_end) - 16usize] ; ["Offset of field: _IO_FILE::_IO_read_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_base) - 24usize] ; ["Offset of field: _IO_FILE::_IO_write_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_base) - 32usize] ; ["Offset of field: _IO_FILE::_IO_write_ptr"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_ptr) - 40usize] ; ["Offset of field: _IO_FILE::_IO_write_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_end) - 48usize] ; ["Offset of field: _IO_FILE::_IO_buf_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_buf_base) - 56usize] ; ["Offset of field: _IO_FILE::_IO_buf_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_buf_end) - 64usize] ; ["Offset of field: _IO_FILE::_IO_save_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_save_base) - 72usize] ; ["Offset of field: _IO_FILE::_IO_backup_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_backup_base) - 80usize] ; ["Offset of field: _IO_FILE::_IO_save_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_save_end) - 88usize] ; ["Offset of field: _IO_FILE::_markers"] [:: core :: mem :: offset_of ! (_IO_FILE , _markers) - 96usize] ; ["Offset of field: _IO_FILE::_chain"] [:: core :: mem :: offset_of ! (_IO_FILE , _chain) - 104usize] ; ["Offset of field: _IO_FILE::_fileno"] [:: core :: mem :: offset_of ! (_IO_FILE , _fileno) - 112usize] ; ["Offset of field: _IO_FILE::_short_backupbuf"] [:: core :: mem :: offset_of ! (_IO_FILE , _short_backupbuf) - 119usize] ; ["Offset of field: _IO_FILE::_old_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _old_offset) - 120usize] ; ["Offset of field: _IO_FILE::_cur_column"] [:: core :: mem :: offset_of ! (_IO_FILE , _cur_column) - 128usize] ; ["Offset of field: _IO_FILE::_vtable_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _vtable_offset) - 130usize] ; ["Offset of field: _IO_FILE::_shortbuf"] [:: core :: mem :: offset_of ! (_IO_FILE , _shortbuf) - 131usize] ; ["Offset of field: _IO_FILE::_lock"] [:: core :: mem :: offset_of ! (_IO_FILE , _lock) - 136usize] ; ["Offset of field: _IO_FILE::_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _offset) - 144usize] ; ["Offset of field: _IO_FILE::_codecvt"] [:: core :: mem :: offset_of ! (_IO_FILE , _codecvt) - 152usize] ; ["Offset of field: _IO_FILE::_wide_data"] [:: core :: mem :: offset_of ! (_IO_FILE , _wide_data) - 160usize] ; ["Offset of field: _IO_FILE::_freeres_list"] [:: core :: mem :: offset_of ! (_IO_FILE , _freeres_list) - 168usize] ; ["Offset of field: _IO_FILE::_freeres_buf"] [:: core :: mem :: offset_of ! (_IO_FILE , _freeres_buf) - 176usize] ; ["Offset of field: _IO_FILE::_prevchain"] [:: core :: mem :: offset_of ! (_IO_FILE , _prevchain) - 184usize] ; ["Offset of field: _IO_FILE::_mode"] [:: core :: mem :: offset_of ! (_IO_FILE , _mode) - 192usize] ; ["Offset of field: _IO_FILE::_unused3"] [:: core :: mem :: offset_of ! (_IO_FILE , _unused3) - 196usize] ; ["Offset of field: _IO_FILE::_total_written"] [:: core :: mem :: offset_of ! (_IO_FILE , _total_written) - 200usize] ; ["Offset of field: _IO_FILE::_unused2"] [:: core :: mem :: offset_of ! (_IO_FILE , _unused2) - 208usize] ; } ; impl _IO_FILE { # [inline] pub fn _flags2 (& self) -> :: core :: ffi :: c_int { unsafe { :: core :: mem :: transmute (self . _bitfield_1 . get (0usize , 24u8) as u32) } } # [inline] pub fn set__flags2 (& mut self , val : :: core :: ffi :: c_int) { unsafe { let val : u32 = :: core :: mem :: transmute (val) ; self . _bitfield_1 . set (0usize , 24u8 , val as u64) } } # [inline] pub fn new_bitfield_1 (_flags2 : :: core :: ffi :: c_int) -> __BindgenBitfieldUnit < [u8 ; 3usize] > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [u8 ; 3usize] > = Default :: default () ; __bindgen_bitfield_unit . set (0usize , 24u8 , { let _flags2 : u32 = unsafe { i32::cast_unsigned (_flags2) } ; _flags2 as u64 }) ; __bindgen_bitfield_unit } } pub type cookie_read_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __buf : * mut :: core :: ffi :: c_char , __nbytes : usize) -> __ssize_t > ; pub type cookie_write_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __buf : * const :: core :: ffi :: c_char , __nbytes : usize) -> __ssize_t > ; pub type cookie_seek_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __pos : * mut __off64_t , __w : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int > ; pub type cookie_close_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void) -> :: core :: ffi :: 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 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _IO_cookie_io_functions_t"] [:: core :: mem :: size_of :: < _IO_cookie_io_functions_t > () - 32usize] ; ["Alignment of _IO_cookie_io_functions_t"] [:: core :: mem :: align_of :: < _IO_cookie_io_functions_t > () - 8usize] ; ["Offset of field: _IO_cookie_io_functions_t::read"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , read) - 0usize] ; ["Offset of field: _IO_cookie_io_functions_t::write"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , write) - 8usize] ; ["Offset of field: _IO_cookie_io_functions_t::seek"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , seek) - 16usize] ; ["Offset of field: _IO_cookie_io_functions_t::close"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , close) - 24usize] ; } ; 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" { pub static mut stdin : * mut FILE ; } extern "C" { pub static mut stdout : * mut FILE ; } extern "C" { pub static mut stderr : * mut FILE ; } extern "C" { pub fn remove (__filename : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rename (__old : * const :: core :: ffi :: c_char , __new : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn renameat (__oldfd : :: core :: ffi :: c_int , __old : * const :: core :: ffi :: c_char , __newfd : :: core :: ffi :: c_int , __new : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fclose (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn tmpfile () -> * mut FILE ; } extern "C" { pub fn tmpnam (arg1 : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn tmpnam_r (__s : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn tempnam (__dir : * const :: core :: ffi :: c_char , __pfx : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn fflush (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fflush_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fopen (__filename : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn freopen (__filename : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char , __stream : * mut FILE) -> * mut FILE ; } extern "C" { pub fn fdopen (__fd : :: core :: ffi :: c_int , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn fopencookie (__magic_cookie : * mut :: core :: ffi :: c_void , __modes : * const :: core :: ffi :: c_char , __io_funcs : cookie_io_functions_t) -> * mut FILE ; } extern "C" { pub fn fmemopen (__s : * mut :: core :: ffi :: c_void , __len : usize , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn open_memstream (__bufloc : * mut * mut :: core :: ffi :: c_char , __sizeloc : * mut usize) -> * mut FILE ; } extern "C" { pub fn setbuf (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char) ; } extern "C" { pub fn setvbuf (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char , __modes : :: core :: ffi :: c_int , __n : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn setbuffer (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char , __size : usize) ; } extern "C" { pub fn setlinebuf (__stream : * mut FILE) ; } extern "C" { pub fn fprintf (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn printf (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn sprintf (__s : * mut :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vfprintf (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vprintf (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsprintf (__s : * mut :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn snprintf (__s : * mut :: core :: ffi :: c_char , __maxlen : :: core :: ffi :: c_ulong , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsnprintf (__s : * mut :: core :: ffi :: c_char , __maxlen : :: core :: ffi :: c_ulong , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vasprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __f : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn __asprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn asprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vdprintf (__fd : :: core :: ffi :: c_int , __fmt : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn dprintf (__fd : :: core :: ffi :: c_int , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fscanf (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn scanf (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn sscanf (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } pub type __cfloat128 = __BindgenComplex < u128 > ; pub type _Float128 = u128 ; pub type _Float32 = f32 ; pub type _Float64 = f64 ; pub type _Float32x = f64 ; pub type _Float64x = u128 ; extern "C" { # [link_name = "\u{1}__isoc99_fscanf"] pub fn fscanf1 (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_scanf"] pub fn scanf1 (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_sscanf"] pub fn sscanf1 (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vfscanf (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vscanf (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsscanf (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vfscanf"] pub fn vfscanf1 (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vscanf"] pub fn vscanf1 (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vsscanf"] pub fn vsscanf1 (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgetc (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getc (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getchar () -> :: core :: ffi :: c_int ; } extern "C" { pub fn getc_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getchar_unlocked () -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgetc_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fputc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putchar (__c : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fputc_unlocked (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putc_unlocked (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putchar_unlocked (__c : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getw (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putw (__w : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgets (__s : * mut :: core :: ffi :: c_char , __n : :: core :: ffi :: c_int , __stream : * mut FILE) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn __getdelim (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __delimiter : :: core :: ffi :: c_int , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn getdelim (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __delimiter : :: core :: ffi :: c_int , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn getline (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn fputs (__s : * const :: core :: ffi :: c_char , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn puts (__s : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ungetc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fread (__ptr : * mut :: core :: ffi :: c_void , __size : :: core :: ffi :: c_ulong , __n : :: core :: ffi :: c_ulong , __stream : * mut FILE) -> :: core :: ffi :: c_ulong ; } extern "C" { pub fn fwrite (__ptr : * const :: core :: ffi :: c_void , __size : :: core :: ffi :: c_ulong , __n : :: core :: ffi :: c_ulong , __s : * mut FILE) -> :: core :: ffi :: c_ulong ; } extern "C" { pub fn fread_unlocked (__ptr : * mut :: core :: ffi :: c_void , __size : usize , __n : usize , __stream : * mut FILE) -> usize ; } extern "C" { pub fn fwrite_unlocked (__ptr : * const :: core :: ffi :: c_void , __size : usize , __n : usize , __stream : * mut FILE) -> usize ; } extern "C" { pub fn fseek (__stream : * mut FILE , __off : :: core :: ffi :: c_long , __whence : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ftell (__stream : * mut FILE) -> :: core :: ffi :: c_long ; } extern "C" { pub fn rewind (__stream : * mut FILE) ; } extern "C" { pub fn fseeko (__stream : * mut FILE , __off : __off_t , __whence : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ftello (__stream : * mut FILE) -> __off_t ; } extern "C" { pub fn fgetpos (__stream : * mut FILE , __pos : * mut fpos_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fsetpos (__stream : * mut FILE , __pos : * const fpos_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clearerr (__stream : * mut FILE) ; } extern "C" { pub fn feof (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ferror (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clearerr_unlocked (__stream : * mut FILE) ; } extern "C" { pub fn feof_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ferror_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn perror (__s : * const :: core :: ffi :: c_char) ; } extern "C" { pub fn fileno (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fileno_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn pclose (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn popen (__command : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn ctermid (__s : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn flockfile (__stream : * mut FILE) ; } extern "C" { pub fn ftrylockfile (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn funlockfile (__stream : * mut FILE) ; } extern "C" { pub fn __uflow (arg1 : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn __overflow (arg1 : * mut FILE , arg2 : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } pub const RC_CONSOLE_UNKNOWN : _bindgen_ty_12 = 0 ; pub const RC_CONSOLE_MEGA_DRIVE : _bindgen_ty_12 = 1 ; pub const RC_CONSOLE_NINTENDO_64 : _bindgen_ty_12 = 2 ; pub const RC_CONSOLE_SUPER_NINTENDO : _bindgen_ty_12 = 3 ; pub const RC_CONSOLE_GAMEBOY : _bindgen_ty_12 = 4 ; pub const RC_CONSOLE_GAMEBOY_ADVANCE : _bindgen_ty_12 = 5 ; pub const RC_CONSOLE_GAMEBOY_COLOR : _bindgen_ty_12 = 6 ; pub const RC_CONSOLE_NINTENDO : _bindgen_ty_12 = 7 ; pub const RC_CONSOLE_PC_ENGINE : _bindgen_ty_12 = 8 ; pub const RC_CONSOLE_SEGA_CD : _bindgen_ty_12 = 9 ; pub const RC_CONSOLE_SEGA_32X : _bindgen_ty_12 = 10 ; pub const RC_CONSOLE_MASTER_SYSTEM : _bindgen_ty_12 = 11 ; pub const RC_CONSOLE_PLAYSTATION : _bindgen_ty_12 = 12 ; pub const RC_CONSOLE_ATARI_LYNX : _bindgen_ty_12 = 13 ; pub const RC_CONSOLE_NEOGEO_POCKET : _bindgen_ty_12 = 14 ; pub const RC_CONSOLE_GAME_GEAR : _bindgen_ty_12 = 15 ; pub const RC_CONSOLE_GAMECUBE : _bindgen_ty_12 = 16 ; pub const RC_CONSOLE_ATARI_JAGUAR : _bindgen_ty_12 = 17 ; pub const RC_CONSOLE_NINTENDO_DS : _bindgen_ty_12 = 18 ; pub const RC_CONSOLE_WII : _bindgen_ty_12 = 19 ; pub const RC_CONSOLE_WII_U : _bindgen_ty_12 = 20 ; pub const RC_CONSOLE_PLAYSTATION_2 : _bindgen_ty_12 = 21 ; pub const RC_CONSOLE_XBOX : _bindgen_ty_12 = 22 ; pub const RC_CONSOLE_MAGNAVOX_ODYSSEY2 : _bindgen_ty_12 = 23 ; pub const RC_CONSOLE_POKEMON_MINI : _bindgen_ty_12 = 24 ; pub const RC_CONSOLE_ATARI_2600 : _bindgen_ty_12 = 25 ; pub const RC_CONSOLE_MS_DOS : _bindgen_ty_12 = 26 ; pub const RC_CONSOLE_ARCADE : _bindgen_ty_12 = 27 ; pub const RC_CONSOLE_VIRTUAL_BOY : _bindgen_ty_12 = 28 ; pub const RC_CONSOLE_MSX : _bindgen_ty_12 = 29 ; pub const RC_CONSOLE_COMMODORE_64 : _bindgen_ty_12 = 30 ; pub const RC_CONSOLE_ZX81 : _bindgen_ty_12 = 31 ; pub const RC_CONSOLE_ORIC : _bindgen_ty_12 = 32 ; pub const RC_CONSOLE_SG1000 : _bindgen_ty_12 = 33 ; pub const RC_CONSOLE_VIC20 : _bindgen_ty_12 = 34 ; pub const RC_CONSOLE_AMIGA : _bindgen_ty_12 = 35 ; pub const RC_CONSOLE_ATARI_ST : _bindgen_ty_12 = 36 ; pub const RC_CONSOLE_AMSTRAD_PC : _bindgen_ty_12 = 37 ; pub const RC_CONSOLE_APPLE_II : _bindgen_ty_12 = 38 ; pub const RC_CONSOLE_SATURN : _bindgen_ty_12 = 39 ; pub const RC_CONSOLE_DREAMCAST : _bindgen_ty_12 = 40 ; pub const RC_CONSOLE_PSP : _bindgen_ty_12 = 41 ; pub const RC_CONSOLE_CDI : _bindgen_ty_12 = 42 ; pub const RC_CONSOLE_3DO : _bindgen_ty_12 = 43 ; pub const RC_CONSOLE_COLECOVISION : _bindgen_ty_12 = 44 ; pub const RC_CONSOLE_INTELLIVISION : _bindgen_ty_12 = 45 ; pub const RC_CONSOLE_VECTREX : _bindgen_ty_12 = 46 ; pub const RC_CONSOLE_PC8800 : _bindgen_ty_12 = 47 ; pub const RC_CONSOLE_PC9800 : _bindgen_ty_12 = 48 ; pub const RC_CONSOLE_PCFX : _bindgen_ty_12 = 49 ; pub const RC_CONSOLE_ATARI_5200 : _bindgen_ty_12 = 50 ; pub const RC_CONSOLE_ATARI_7800 : _bindgen_ty_12 = 51 ; pub const RC_CONSOLE_X68K : _bindgen_ty_12 = 52 ; pub const RC_CONSOLE_WONDERSWAN : _bindgen_ty_12 = 53 ; pub const RC_CONSOLE_CASSETTEVISION : _bindgen_ty_12 = 54 ; pub const RC_CONSOLE_SUPER_CASSETTEVISION : _bindgen_ty_12 = 55 ; pub const RC_CONSOLE_NEO_GEO_CD : _bindgen_ty_12 = 56 ; pub const RC_CONSOLE_FAIRCHILD_CHANNEL_F : _bindgen_ty_12 = 57 ; pub const RC_CONSOLE_FM_TOWNS : _bindgen_ty_12 = 58 ; pub const RC_CONSOLE_ZX_SPECTRUM : _bindgen_ty_12 = 59 ; pub const RC_CONSOLE_GAME_AND_WATCH : _bindgen_ty_12 = 60 ; pub const RC_CONSOLE_NOKIA_NGAGE : _bindgen_ty_12 = 61 ; pub const RC_CONSOLE_NINTENDO_3DS : _bindgen_ty_12 = 62 ; pub const RC_CONSOLE_SUPERVISION : _bindgen_ty_12 = 63 ; pub const RC_CONSOLE_SHARPX1 : _bindgen_ty_12 = 64 ; pub const RC_CONSOLE_TIC80 : _bindgen_ty_12 = 65 ; pub const RC_CONSOLE_THOMSONTO8 : _bindgen_ty_12 = 66 ; pub const RC_CONSOLE_PC6000 : _bindgen_ty_12 = 67 ; pub const RC_CONSOLE_PICO : _bindgen_ty_12 = 68 ; pub const RC_CONSOLE_MEGADUCK : _bindgen_ty_12 = 69 ; pub const RC_CONSOLE_ZEEBO : _bindgen_ty_12 = 70 ; pub const RC_CONSOLE_ARDUBOY : _bindgen_ty_12 = 71 ; pub const RC_CONSOLE_WASM4 : _bindgen_ty_12 = 72 ; pub const RC_CONSOLE_ARCADIA_2001 : _bindgen_ty_12 = 73 ; pub const RC_CONSOLE_INTERTON_VC_4000 : _bindgen_ty_12 = 74 ; pub const RC_CONSOLE_ELEKTOR_TV_GAMES_COMPUTER : _bindgen_ty_12 = 75 ; pub const RC_CONSOLE_PC_ENGINE_CD : _bindgen_ty_12 = 76 ; pub const RC_CONSOLE_ATARI_JAGUAR_CD : _bindgen_ty_12 = 77 ; pub const RC_CONSOLE_NINTENDO_DSI : _bindgen_ty_12 = 78 ; pub const RC_CONSOLE_TI83 : _bindgen_ty_12 = 79 ; pub const RC_CONSOLE_UZEBOX : _bindgen_ty_12 = 80 ; pub const RC_CONSOLE_HUBS : _bindgen_ty_12 = 100 ; pub const RC_CONSOLE_EVENTS : _bindgen_ty_12 = 101 ; pub const RC_CONSOLE_STANDALONE : _bindgen_ty_12 = 102 ; # [doc = "\\\n| Console identifiers                                                         |\n\\"] pub type _bindgen_ty_12 = :: core :: ffi :: c_uint ; extern "C" { pub fn rc_console_name (console_id : u32) -> * const :: core :: ffi :: c_char ; } pub const RC_MEMORY_TYPE_SYSTEM_RAM : _bindgen_ty_13 = 0 ; pub const RC_MEMORY_TYPE_SAVE_RAM : _bindgen_ty_13 = 1 ; pub const RC_MEMORY_TYPE_VIDEO_RAM : _bindgen_ty_13 = 2 ; pub const RC_MEMORY_TYPE_READONLY : _bindgen_ty_13 = 3 ; pub const RC_MEMORY_TYPE_HARDWARE_CONTROLLER : _bindgen_ty_13 = 4 ; pub const RC_MEMORY_TYPE_VIRTUAL_RAM : _bindgen_ty_13 = 5 ; pub const RC_MEMORY_TYPE_UNUSED : _bindgen_ty_13 = 6 ; # [doc = "\\\n| Memory mapping                                                              |\n\\"] pub type _bindgen_ty_13 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memory_region_t { pub start_address : u32 , pub end_address : u32 , pub real_address : u32 , pub type_ : u8 , pub description : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memory_region_t"] [:: core :: mem :: size_of :: < rc_memory_region_t > () - 24usize] ; ["Alignment of rc_memory_region_t"] [:: core :: mem :: align_of :: < rc_memory_region_t > () - 8usize] ; ["Offset of field: rc_memory_region_t::start_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , start_address) - 0usize] ; ["Offset of field: rc_memory_region_t::end_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , end_address) - 4usize] ; ["Offset of field: rc_memory_region_t::real_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , real_address) - 8usize] ; ["Offset of field: rc_memory_region_t::type_"] [:: core :: mem :: offset_of ! (rc_memory_region_t , type_) - 12usize] ; ["Offset of field: rc_memory_region_t::description"] [:: core :: mem :: offset_of ! (rc_memory_region_t , description) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memory_regions_t { pub region : * const rc_memory_region_t , pub num_regions : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memory_regions_t"] [:: core :: mem :: size_of :: < rc_memory_regions_t > () - 16usize] ; ["Alignment of rc_memory_regions_t"] [:: core :: mem :: align_of :: < rc_memory_regions_t > () - 8usize] ; ["Offset of field: rc_memory_regions_t::region"] [:: core :: mem :: offset_of ! (rc_memory_regions_t , region) - 0usize] ; ["Offset of field: rc_memory_regions_t::num_regions"] [:: core :: mem :: offset_of ! (rc_memory_regions_t , num_regions) - 8usize] ; } ; extern "C" { pub fn rc_console_memory_regions (console_id : u32) -> * const rc_memory_regions_t ; } extern "C" { pub fn rc_hash_generate_from_buffer (hash : * mut :: core :: ffi :: c_char , console_id : u32 , buffer : * const u8 , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_hash_generate_from_file (hash : * mut :: core :: ffi :: c_char , console_id : u32 , path : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_iterator { pub buffer : * const u8 , pub buffer_size : usize , pub consoles : [u8 ; 12usize] , pub index : :: core :: ffi :: c_int , pub path : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_iterator"] [:: core :: mem :: size_of :: < rc_hash_iterator > () - 40usize] ; ["Alignment of rc_hash_iterator"] [:: core :: mem :: align_of :: < rc_hash_iterator > () - 8usize] ; ["Offset of field: rc_hash_iterator::buffer"] [:: core :: mem :: offset_of ! (rc_hash_iterator , buffer) - 0usize] ; ["Offset of field: rc_hash_iterator::buffer_size"] [:: core :: mem :: offset_of ! (rc_hash_iterator , buffer_size) - 8usize] ; ["Offset of field: rc_hash_iterator::consoles"] [:: core :: mem :: offset_of ! (rc_hash_iterator , consoles) - 16usize] ; ["Offset of field: rc_hash_iterator::index"] [:: core :: mem :: offset_of ! (rc_hash_iterator , index) - 28usize] ; ["Offset of field: rc_hash_iterator::path"] [:: core :: mem :: offset_of ! (rc_hash_iterator , path) - 32usize] ; } ; pub type rc_hash_iterator_t = rc_hash_iterator ; extern "C" { pub fn rc_hash_initialize_iterator (iterator : * mut rc_hash_iterator , path : * const :: core :: ffi :: c_char , buffer : * const u8 , buffer_size : usize) ; } extern "C" { pub fn rc_hash_destroy_iterator (iterator : * mut rc_hash_iterator) ; } extern "C" { pub fn rc_hash_iterate (hash : * mut :: core :: ffi :: c_char , iterator : * mut rc_hash_iterator) -> :: core :: ffi :: c_int ; } pub type rc_hash_message_callback = :: core :: option :: Option < unsafe extern "C" fn (arg1 : * const :: core :: ffi :: c_char) > ; extern "C" { pub fn rc_hash_init_error_message_callback (callback : rc_hash_message_callback) ; } extern "C" { pub fn rc_hash_init_verbose_message_callback (callback : rc_hash_message_callback) ; } pub type rc_hash_filereader_open_file_handler = :: core :: option :: Option < unsafe extern "C" fn (path_utf8 : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_void > ; pub type rc_hash_filereader_seek_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void , offset : i64 , origin : :: core :: ffi :: c_int) > ; pub type rc_hash_filereader_tell_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void) -> i64 > ; pub type rc_hash_filereader_read_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void , buffer : * mut :: core :: ffi :: c_void , requested_bytes : usize) -> usize > ; pub type rc_hash_filereader_close_file_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void) > ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_filereader { pub open : rc_hash_filereader_open_file_handler , pub seek : rc_hash_filereader_seek_handler , pub tell : rc_hash_filereader_tell_handler , pub read : rc_hash_filereader_read_handler , pub close : rc_hash_filereader_close_file_handler , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_filereader"] [:: core :: mem :: size_of :: < rc_hash_filereader > () - 40usize] ; ["Alignment of rc_hash_filereader"] [:: core :: mem :: align_of :: < rc_hash_filereader > () - 8usize] ; ["Offset of field: rc_hash_filereader::open"] [:: core :: mem :: offset_of ! (rc_hash_filereader , open) - 0usize] ; ["Offset of field: rc_hash_filereader::seek"] [:: core :: mem :: offset_of ! (rc_hash_filereader , seek) - 8usize] ; ["Offset of field: rc_hash_filereader::tell"] [:: core :: mem :: offset_of ! (rc_hash_filereader , tell) - 16usize] ; ["Offset of field: rc_hash_filereader::read"] [:: core :: mem :: offset_of ! (rc_hash_filereader , read) - 24usize] ; ["Offset of field: rc_hash_filereader::close"] [:: core :: mem :: offset_of ! (rc_hash_filereader , close) - 32usize] ; } ; extern "C" { pub fn rc_hash_init_custom_filereader (reader : * mut rc_hash_filereader) ; } pub type rc_hash_cdreader_open_track_handler = :: core :: option :: Option < unsafe extern "C" fn (path : * const :: core :: ffi :: c_char , track : u32) -> * mut :: core :: ffi :: c_void > ; pub type rc_hash_cdreader_read_sector_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void , sector : u32 , buffer : * mut :: core :: ffi :: c_void , requested_bytes : usize) -> usize > ; pub type rc_hash_cdreader_close_track_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void) > ; pub type rc_hash_cdreader_first_track_sector_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void) -> u32 > ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_cdreader { pub open_track : rc_hash_cdreader_open_track_handler , pub read_sector : rc_hash_cdreader_read_sector_handler , pub close_track : rc_hash_cdreader_close_track_handler , pub first_track_sector : rc_hash_cdreader_first_track_sector_handler , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_cdreader"] [:: core :: mem :: size_of :: < rc_hash_cdreader > () - 32usize] ; ["Alignment of rc_hash_cdreader"] [:: core :: mem :: align_of :: < rc_hash_cdreader > () - 8usize] ; ["Offset of field: rc_hash_cdreader::open_track"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , open_track) - 0usize] ; ["Offset of field: rc_hash_cdreader::read_sector"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , read_sector) - 8usize] ; ["Offset of field: rc_hash_cdreader::close_track"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , close_track) - 16usize] ; ["Offset of field: rc_hash_cdreader::first_track_sector"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , first_track_sector) - 24usize] ; } ; extern "C" { pub fn rc_hash_get_default_cdreader (cdreader : * mut rc_hash_cdreader) ; } extern "C" { pub fn rc_hash_init_default_cdreader () ; } extern "C" { pub fn rc_hash_init_custom_cdreader (reader : * mut rc_hash_cdreader) ; } pub type rc_hash_3ds_get_cia_normal_key_func = :: core :: option :: Option < unsafe extern "C" fn (common_key_index : u8 , out_normal_key : * mut u8) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_hash_init_3ds_get_cia_normal_key_func (func : rc_hash_3ds_get_cia_normal_key_func) ; } pub type rc_hash_3ds_get_ncch_normal_keys_func = :: core :: option :: Option < unsafe extern "C" fn (primary_key_y : * mut u8 , secondary_key_x_slot : u8 , optional_program_id : * mut u8 , out_primary_key : * mut u8 , out_secondary_key : * mut u8) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_hash_init_3ds_get_ncch_normal_keys_func (func : rc_hash_3ds_get_ncch_normal_keys_func) ; } # [doc = " API parameters for a fetch image request.\n NOTE: fetch image server response is the raw image data. There is no rc_api_process_fetch_image_response function."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_image_request_t { pub image_name : * const :: core :: ffi :: c_char , pub image_type : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_image_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_image_request_t > () - 16usize] ; ["Alignment of rc_api_fetch_image_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_image_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_image_request_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_fetch_image_request_t , image_name) - 0usize] ; ["Offset of field: rc_api_fetch_image_request_t::image_type"] [:: core :: mem :: offset_of ! (rc_api_fetch_image_request_t , image_type) - 8usize] ; } ; extern "C" { pub fn rc_api_init_fetch_image_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_image_request_t) -> :: core :: ffi :: c_int ; } # [doc = " API parameters for a resolve hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_resolve_hash_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_hash : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_resolve_hash_request_t"] [:: core :: mem :: size_of :: < rc_api_resolve_hash_request_t > () - 24usize] ; ["Alignment of rc_api_resolve_hash_request_t"] [:: core :: mem :: align_of :: < rc_api_resolve_hash_request_t > () - 8usize] ; ["Offset of field: rc_api_resolve_hash_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , username) - 0usize] ; ["Offset of field: rc_api_resolve_hash_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_resolve_hash_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , game_hash) - 16usize] ; } ; # [doc = " Response data for a resolve hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_resolve_hash_response_t { pub game_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_resolve_hash_response_t"] [:: core :: mem :: size_of :: < rc_api_resolve_hash_response_t > () - 320usize] ; ["Alignment of rc_api_resolve_hash_response_t"] [:: core :: mem :: align_of :: < rc_api_resolve_hash_response_t > () - 8usize] ; ["Offset of field: rc_api_resolve_hash_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_response_t , game_id) - 0usize] ; ["Offset of field: rc_api_resolve_hash_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_resolve_hash_request (request : * mut rc_api_request_t , api_params : * const rc_api_resolve_hash_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_resolve_hash_response (response : * mut rc_api_resolve_hash_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_resolve_hash_server_response (response : * mut rc_api_resolve_hash_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_resolve_hash_response (response : * mut rc_api_resolve_hash_response_t) ; } # [doc = " API parameters for a fetch game data request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_data_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_data_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_data_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_game_data_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_data_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , game_id) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_leaderboard_definition_t { pub id : u32 , pub format : :: core :: ffi :: c_int , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub lower_is_better : u8 , pub hidden : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_leaderboard_definition_t"] [:: core :: mem :: size_of :: < rc_api_leaderboard_definition_t > () - 40usize] ; ["Alignment of rc_api_leaderboard_definition_t"] [:: core :: mem :: align_of :: < rc_api_leaderboard_definition_t > () - 8usize] ; ["Offset of field: rc_api_leaderboard_definition_t::id"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , id) - 0usize] ; ["Offset of field: rc_api_leaderboard_definition_t::format"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , format) - 4usize] ; ["Offset of field: rc_api_leaderboard_definition_t::title"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , title) - 8usize] ; ["Offset of field: rc_api_leaderboard_definition_t::description"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , description) - 16usize] ; ["Offset of field: rc_api_leaderboard_definition_t::definition"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , definition) - 24usize] ; ["Offset of field: rc_api_leaderboard_definition_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , lower_is_better) - 32usize] ; ["Offset of field: rc_api_leaderboard_definition_t::hidden"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , hidden) - 33usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_achievement_definition_t { pub id : u32 , pub points : u32 , pub category : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub author : * const :: core :: ffi :: c_char , pub badge_name : * const :: core :: ffi :: c_char , pub created : time_t , pub updated : time_t , pub type_ : u32 , pub rarity : f32 , pub rarity_hardcore : f32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_achievement_definition_t"] [:: core :: mem :: size_of :: < rc_api_achievement_definition_t > () - 88usize] ; ["Alignment of rc_api_achievement_definition_t"] [:: core :: mem :: align_of :: < rc_api_achievement_definition_t > () - 8usize] ; ["Offset of field: rc_api_achievement_definition_t::id"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , id) - 0usize] ; ["Offset of field: rc_api_achievement_definition_t::points"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , points) - 4usize] ; ["Offset of field: rc_api_achievement_definition_t::category"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , category) - 8usize] ; ["Offset of field: rc_api_achievement_definition_t::title"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , title) - 16usize] ; ["Offset of field: rc_api_achievement_definition_t::description"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , description) - 24usize] ; ["Offset of field: rc_api_achievement_definition_t::definition"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , definition) - 32usize] ; ["Offset of field: rc_api_achievement_definition_t::author"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , author) - 40usize] ; ["Offset of field: rc_api_achievement_definition_t::badge_name"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , badge_name) - 48usize] ; ["Offset of field: rc_api_achievement_definition_t::created"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , created) - 56usize] ; ["Offset of field: rc_api_achievement_definition_t::updated"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , updated) - 64usize] ; ["Offset of field: rc_api_achievement_definition_t::type_"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , type_) - 72usize] ; ["Offset of field: rc_api_achievement_definition_t::rarity"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , rarity) - 76usize] ; ["Offset of field: rc_api_achievement_definition_t::rarity_hardcore"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , rarity_hardcore) - 80usize] ; } ; # [doc = " Response data for a fetch game data request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_data_response_t { pub id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub image_name : * const :: core :: ffi :: c_char , pub rich_presence_script : * const :: core :: ffi :: c_char , pub achievements : * mut rc_api_achievement_definition_t , pub num_achievements : u32 , pub leaderboards : * mut rc_api_leaderboard_definition_t , pub num_leaderboards : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_data_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_data_response_t > () - 376usize] ; ["Alignment of rc_api_fetch_game_data_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_data_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , console_id) - 4usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::title"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , title) - 8usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , image_name) - 16usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::rich_presence_script"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , rich_presence_script) - 24usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::achievements"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , achievements) - 32usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , num_achievements) - 40usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::leaderboards"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , leaderboards) - 48usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , num_leaderboards) - 56usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , response) - 64usize] ; } ; extern "C" { pub fn rc_api_init_fetch_game_data_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_game_data_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_data_response (response : * mut rc_api_fetch_game_data_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_data_server_response (response : * mut rc_api_fetch_game_data_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_game_data_response (response : * mut rc_api_fetch_game_data_response_t) ; } # [doc = " API parameters for a ping request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_ping_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub rich_presence : * const :: core :: ffi :: c_char , pub game_hash : * const :: core :: ffi :: c_char , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_ping_request_t"] [:: core :: mem :: size_of :: < rc_api_ping_request_t > () - 48usize] ; ["Alignment of rc_api_ping_request_t"] [:: core :: mem :: align_of :: < rc_api_ping_request_t > () - 8usize] ; ["Offset of field: rc_api_ping_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , username) - 0usize] ; ["Offset of field: rc_api_ping_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_ping_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_ping_request_t::rich_presence"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , rich_presence) - 24usize] ; ["Offset of field: rc_api_ping_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , game_hash) - 32usize] ; ["Offset of field: rc_api_ping_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , hardcore) - 40usize] ; } ; # [doc = " Response data for a ping request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_ping_response_t { pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_ping_response_t"] [:: core :: mem :: size_of :: < rc_api_ping_response_t > () - 312usize] ; ["Alignment of rc_api_ping_response_t"] [:: core :: mem :: align_of :: < rc_api_ping_response_t > () - 8usize] ; ["Offset of field: rc_api_ping_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_ping_response_t , response) - 0usize] ; } ; extern "C" { pub fn rc_api_init_ping_request (request : * mut rc_api_request_t , api_params : * const rc_api_ping_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_ping_response (response : * mut rc_api_ping_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_ping_server_response (response : * mut rc_api_ping_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_ping_response (response : * mut rc_api_ping_response_t) ; } # [doc = " API parameters for an award achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_award_achievement_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub hardcore : u32 , pub game_hash : * const :: core :: ffi :: c_char , pub seconds_since_unlock : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_award_achievement_request_t"] [:: core :: mem :: size_of :: < rc_api_award_achievement_request_t > () - 40usize] ; ["Alignment of rc_api_award_achievement_request_t"] [:: core :: mem :: align_of :: < rc_api_award_achievement_request_t > () - 8usize] ; ["Offset of field: rc_api_award_achievement_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , username) - 0usize] ; ["Offset of field: rc_api_award_achievement_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_award_achievement_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_award_achievement_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , hardcore) - 20usize] ; ["Offset of field: rc_api_award_achievement_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_award_achievement_request_t::seconds_since_unlock"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , seconds_since_unlock) - 32usize] ; } ; # [doc = " Response data for an award achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_award_achievement_response_t { pub awarded_achievement_id : u32 , pub new_player_score : u32 , pub new_player_score_softcore : u32 , pub achievements_remaining : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_award_achievement_response_t"] [:: core :: mem :: size_of :: < rc_api_award_achievement_response_t > () - 328usize] ; ["Alignment of rc_api_award_achievement_response_t"] [:: core :: mem :: align_of :: < rc_api_award_achievement_response_t > () - 8usize] ; ["Offset of field: rc_api_award_achievement_response_t::awarded_achievement_id"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , awarded_achievement_id) - 0usize] ; ["Offset of field: rc_api_award_achievement_response_t::new_player_score"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , new_player_score) - 4usize] ; ["Offset of field: rc_api_award_achievement_response_t::new_player_score_softcore"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , new_player_score_softcore) - 8usize] ; ["Offset of field: rc_api_award_achievement_response_t::achievements_remaining"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , achievements_remaining) - 12usize] ; ["Offset of field: rc_api_award_achievement_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_award_achievement_request (request : * mut rc_api_request_t , api_params : * const rc_api_award_achievement_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_award_achievement_response (response : * mut rc_api_award_achievement_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_award_achievement_server_response (response : * mut rc_api_award_achievement_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_award_achievement_response (response : * mut rc_api_award_achievement_response_t) ; } # [doc = " API parameters for a submit lboard entry request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_submit_lboard_entry_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub leaderboard_id : u32 , pub score : i32 , pub game_hash : * const :: core :: ffi :: c_char , pub seconds_since_completion : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_submit_lboard_entry_request_t"] [:: core :: mem :: size_of :: < rc_api_submit_lboard_entry_request_t > () - 40usize] ; ["Alignment of rc_api_submit_lboard_entry_request_t"] [:: core :: mem :: align_of :: < rc_api_submit_lboard_entry_request_t > () - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , username) - 0usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , leaderboard_id) - 16usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , score) - 20usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::seconds_since_completion"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , seconds_since_completion) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_lboard_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub score : i32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_lboard_entry_t"] [:: core :: mem :: size_of :: < rc_api_lboard_entry_t > () - 16usize] ; ["Alignment of rc_api_lboard_entry_t"] [:: core :: mem :: align_of :: < rc_api_lboard_entry_t > () - 8usize] ; ["Offset of field: rc_api_lboard_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , username) - 0usize] ; ["Offset of field: rc_api_lboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , rank) - 8usize] ; ["Offset of field: rc_api_lboard_entry_t::score"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , score) - 12usize] ; } ; # [doc = " Response data for a submit lboard entry request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_submit_lboard_entry_response_t { pub submitted_score : i32 , pub best_score : i32 , pub new_rank : u32 , pub num_entries : u32 , pub top_entries : * mut rc_api_lboard_entry_t , pub num_top_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_submit_lboard_entry_response_t"] [:: core :: mem :: size_of :: < rc_api_submit_lboard_entry_response_t > () - 344usize] ; ["Alignment of rc_api_submit_lboard_entry_response_t"] [:: core :: mem :: align_of :: < rc_api_submit_lboard_entry_response_t > () - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::submitted_score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , submitted_score) - 0usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::best_score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , best_score) - 4usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::new_rank"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , new_rank) - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , num_entries) - 12usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::top_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , top_entries) - 16usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::num_top_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , num_top_entries) - 24usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_submit_lboard_entry_request (request : * mut rc_api_request_t , api_params : * const rc_api_submit_lboard_entry_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_submit_lboard_entry_response (response : * mut rc_api_submit_lboard_entry_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_submit_lboard_entry_server_response (response : * mut rc_api_submit_lboard_entry_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_submit_lboard_entry_response (response : * mut rc_api_submit_lboard_entry_response_t) ; } # [doc = " Callback used to read num_bytes bytes from memory starting at address. If\n num_bytes is greater than 1, the value is read in little-endian from\n memory."] pub type rc_runtime_peek_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , num_bytes : u32 , ud : * mut :: core :: ffi :: c_void) -> u32 > ; # [doc = "\\\n| Runtime                                                                     |\n\\"] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_trigger_t { pub id : u32 , pub trigger : * mut rc_trigger_t , pub buffer : * mut :: core :: ffi :: c_void , pub invalid_memref : * mut rc_memref_t , pub md5 : [u8 ; 16usize] , pub serialized_size : i32 , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_trigger_t"] [:: core :: mem :: size_of :: < rc_runtime_trigger_t > () - 56usize] ; ["Alignment of rc_runtime_trigger_t"] [:: core :: mem :: align_of :: < rc_runtime_trigger_t > () - 8usize] ; ["Offset of field: rc_runtime_trigger_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , id) - 0usize] ; ["Offset of field: rc_runtime_trigger_t::trigger"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , trigger) - 8usize] ; ["Offset of field: rc_runtime_trigger_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , buffer) - 16usize] ; ["Offset of field: rc_runtime_trigger_t::invalid_memref"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , invalid_memref) - 24usize] ; ["Offset of field: rc_runtime_trigger_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , md5) - 32usize] ; ["Offset of field: rc_runtime_trigger_t::serialized_size"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , serialized_size) - 48usize] ; ["Offset of field: rc_runtime_trigger_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , owns_memrefs) - 52usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_lboard_t { pub id : u32 , pub value : i32 , pub lboard : * mut rc_lboard_t , pub buffer : * mut :: core :: ffi :: c_void , pub invalid_memref : * mut rc_memref_t , pub md5 : [u8 ; 16usize] , pub serialized_size : u32 , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_lboard_t"] [:: core :: mem :: size_of :: < rc_runtime_lboard_t > () - 56usize] ; ["Alignment of rc_runtime_lboard_t"] [:: core :: mem :: align_of :: < rc_runtime_lboard_t > () - 8usize] ; ["Offset of field: rc_runtime_lboard_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , id) - 0usize] ; ["Offset of field: rc_runtime_lboard_t::value"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , value) - 4usize] ; ["Offset of field: rc_runtime_lboard_t::lboard"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , lboard) - 8usize] ; ["Offset of field: rc_runtime_lboard_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , buffer) - 16usize] ; ["Offset of field: rc_runtime_lboard_t::invalid_memref"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , invalid_memref) - 24usize] ; ["Offset of field: rc_runtime_lboard_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , md5) - 32usize] ; ["Offset of field: rc_runtime_lboard_t::serialized_size"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , serialized_size) - 48usize] ; ["Offset of field: rc_runtime_lboard_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , owns_memrefs) - 52usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_richpresence_t { pub richpresence : * mut rc_richpresence_t , pub buffer : * mut :: core :: ffi :: c_void , pub previous : * mut rc_runtime_richpresence_t , pub md5 : [u8 ; 16usize] , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_richpresence_t"] [:: core :: mem :: size_of :: < rc_runtime_richpresence_t > () - 48usize] ; ["Alignment of rc_runtime_richpresence_t"] [:: core :: mem :: align_of :: < rc_runtime_richpresence_t > () - 8usize] ; ["Offset of field: rc_runtime_richpresence_t::richpresence"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , richpresence) - 0usize] ; ["Offset of field: rc_runtime_richpresence_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , buffer) - 8usize] ; ["Offset of field: rc_runtime_richpresence_t::previous"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , previous) - 16usize] ; ["Offset of field: rc_runtime_richpresence_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , md5) - 24usize] ; ["Offset of field: rc_runtime_richpresence_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , owns_memrefs) - 40usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_t { pub triggers : * mut rc_runtime_trigger_t , pub trigger_count : u32 , pub trigger_capacity : u32 , pub lboards : * mut rc_runtime_lboard_t , pub lboard_count : u32 , pub lboard_capacity : u32 , pub richpresence : * mut rc_runtime_richpresence_t , pub memrefs : * mut rc_memref_t , pub next_memref : * mut * mut rc_memref_t , pub variables : * mut rc_value_t , pub next_variable : * mut * mut rc_value_t , pub owns_self : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_t"] [:: core :: mem :: size_of :: < rc_runtime_t > () - 80usize] ; ["Alignment of rc_runtime_t"] [:: core :: mem :: align_of :: < rc_runtime_t > () - 8usize] ; ["Offset of field: rc_runtime_t::triggers"] [:: core :: mem :: offset_of ! (rc_runtime_t , triggers) - 0usize] ; ["Offset of field: rc_runtime_t::trigger_count"] [:: core :: mem :: offset_of ! (rc_runtime_t , trigger_count) - 8usize] ; ["Offset of field: rc_runtime_t::trigger_capacity"] [:: core :: mem :: offset_of ! (rc_runtime_t , trigger_capacity) - 12usize] ; ["Offset of field: rc_runtime_t::lboards"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboards) - 16usize] ; ["Offset of field: rc_runtime_t::lboard_count"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboard_count) - 24usize] ; ["Offset of field: rc_runtime_t::lboard_capacity"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboard_capacity) - 28usize] ; ["Offset of field: rc_runtime_t::richpresence"] [:: core :: mem :: offset_of ! (rc_runtime_t , richpresence) - 32usize] ; ["Offset of field: rc_runtime_t::memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_t , memrefs) - 40usize] ; ["Offset of field: rc_runtime_t::next_memref"] [:: core :: mem :: offset_of ! (rc_runtime_t , next_memref) - 48usize] ; ["Offset of field: rc_runtime_t::variables"] [:: core :: mem :: offset_of ! (rc_runtime_t , variables) - 56usize] ; ["Offset of field: rc_runtime_t::next_variable"] [:: core :: mem :: offset_of ! (rc_runtime_t , next_variable) - 64usize] ; ["Offset of field: rc_runtime_t::owns_self"] [:: core :: mem :: offset_of ! (rc_runtime_t , owns_self) - 72usize] ; } ; extern "C" { pub fn rc_runtime_alloc () -> * mut rc_runtime_t ; } extern "C" { pub fn rc_runtime_init (runtime : * mut rc_runtime_t) ; } extern "C" { pub fn rc_runtime_destroy (runtime : * mut rc_runtime_t) ; } extern "C" { pub fn rc_runtime_activate_achievement (runtime : * mut rc_runtime_t , id : u32 , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deactivate_achievement (runtime : * mut rc_runtime_t , id : u32) ; } extern "C" { pub fn rc_runtime_get_achievement (runtime : * const rc_runtime_t , id : u32) -> * mut rc_trigger_t ; } extern "C" { pub fn rc_runtime_get_achievement_measured (runtime : * const rc_runtime_t , id : u32 , measured_value : * mut :: core :: ffi :: c_uint , measured_target : * mut :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_format_achievement_measured (runtime : * const rc_runtime_t , id : u32 , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_activate_lboard (runtime : * mut rc_runtime_t , id : u32 , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deactivate_lboard (runtime : * mut rc_runtime_t , id : u32) ; } extern "C" { pub fn rc_runtime_get_lboard (runtime : * const rc_runtime_t , id : u32) -> * mut rc_lboard_t ; } extern "C" { pub fn rc_runtime_format_lboard_value (buffer : * mut :: core :: ffi :: c_char , size : :: core :: ffi :: c_int , value : i32 , format : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_activate_richpresence (runtime : * mut rc_runtime_t , script : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_get_richpresence (runtime : * const rc_runtime_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_runtime_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } pub const RC_RUNTIME_EVENT_ACHIEVEMENT_ACTIVATED : _bindgen_ty_14 = 0 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PAUSED : _bindgen_ty_14 = 1 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_RESET : _bindgen_ty_14 = 2 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_TRIGGERED : _bindgen_ty_14 = 3 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PRIMED : _bindgen_ty_14 = 4 ; pub const RC_RUNTIME_EVENT_LBOARD_STARTED : _bindgen_ty_14 = 5 ; pub const RC_RUNTIME_EVENT_LBOARD_CANCELED : _bindgen_ty_14 = 6 ; pub const RC_RUNTIME_EVENT_LBOARD_UPDATED : _bindgen_ty_14 = 7 ; pub const RC_RUNTIME_EVENT_LBOARD_TRIGGERED : _bindgen_ty_14 = 8 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_DISABLED : _bindgen_ty_14 = 9 ; pub const RC_RUNTIME_EVENT_LBOARD_DISABLED : _bindgen_ty_14 = 10 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_UNPRIMED : _bindgen_ty_14 = 11 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PROGRESS_UPDATED : _bindgen_ty_14 = 12 ; pub type _bindgen_ty_14 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_event_t { pub id : u32 , pub value : i32 , pub type_ : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_event_t"] [:: core :: mem :: size_of :: < rc_runtime_event_t > () - 12usize] ; ["Alignment of rc_runtime_event_t"] [:: core :: mem :: align_of :: < rc_runtime_event_t > () - 4usize] ; ["Offset of field: rc_runtime_event_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , id) - 0usize] ; ["Offset of field: rc_runtime_event_t::value"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , value) - 4usize] ; ["Offset of field: rc_runtime_event_t::type_"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , type_) - 8usize] ; } ; pub type rc_runtime_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (runtime_event : * const rc_runtime_event_t) > ; extern "C" { pub fn rc_runtime_do_frame (runtime : * mut rc_runtime_t , event_handler : rc_runtime_event_handler_t , peek : rc_runtime_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) ; } extern "C" { pub fn rc_runtime_reset (runtime : * mut rc_runtime_t) ; } pub type rc_runtime_validate_address_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_runtime_validate_addresses (runtime : * mut rc_runtime_t , event_handler : rc_runtime_event_handler_t , validate_handler : rc_runtime_validate_address_t) ; } extern "C" { pub fn rc_runtime_invalidate_address (runtime : * mut rc_runtime_t , address : u32) ; } extern "C" { pub fn rc_runtime_progress_size (runtime : * const rc_runtime_t , L : * mut lua_State) -> u32 ; } extern "C" { pub fn rc_runtime_serialize_progress (buffer : * mut :: core :: ffi :: c_void , runtime : * const rc_runtime_t , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_serialize_progress_sized (buffer : * mut u8 , buffer_size : u32 , runtime : * const rc_runtime_t , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deserialize_progress (runtime : * mut rc_runtime_t , serialized : * const u8 , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deserialize_progress_sized (runtime : * mut rc_runtime_t , serialized : * const u8 , serialized_size : u32 , L : * mut lua_State) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_async_handle_t { _unused : [u8 ; 0] , } # [doc = " Callback used to read num_bytes bytes from memory starting at address into buffer.\n Returns the number of bytes read. A return value of 0 indicates the address was invalid."] pub type rc_client_read_memory_func_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , buffer : * mut u8 , num_bytes : u32 , client : * mut rc_client_t) -> u32 > ; # [doc = " Internal method passed to rc_client_server_call_t to process the server response."] pub type rc_client_server_callback_t = :: core :: option :: Option < unsafe extern "C" fn (server_response : * const rc_api_server_response_t , callback_data : * mut :: core :: ffi :: c_void) > ; # [doc = " Callback used to issue a request to the server."] pub type rc_client_server_call_t = :: core :: option :: Option < unsafe extern "C" fn (request : * const rc_api_request_t , callback : rc_client_server_callback_t , callback_data : * mut :: core :: ffi :: c_void , client : * mut rc_client_t) > ; # [doc = " Generic callback for asynchronous eventing."] pub type rc_client_callback_t = :: core :: option :: Option < unsafe extern "C" fn (result : :: core :: ffi :: c_int , error_message : * const :: core :: ffi :: c_char , client : * mut rc_client_t , userdata : * mut :: core :: ffi :: c_void) > ; # [doc = " Callback for logging or displaying a message."] pub type rc_client_message_callback_t = :: core :: option :: Option < unsafe extern "C" fn (message : * const :: core :: ffi :: c_char , client : * const rc_client_t) > ; extern "C" { # [doc = " Creates a new rc_client_t object."] pub fn rc_client_create (read_memory_function : rc_client_read_memory_func_t , server_call_function : rc_client_server_call_t) -> * mut rc_client_t ; } extern "C" { # [doc = " Releases resources associated to a rc_client_t object.\n Pointer will no longer be valid after making this call."] pub fn rc_client_destroy (client : * mut rc_client_t) ; } extern "C" { # [doc = " Sets whether hardcore is enabled (on by default).\n Can be called with a game loaded.\n Enabling hardcore with a game loaded will raise an RC_CLIENT_EVENT_RESET\n event. Processing will be disabled until rc_client_reset is called."] pub fn rc_client_set_hardcore_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether hardcore is enabled (on by default)."] pub fn rc_client_get_hardcore_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether encore mode is enabled (off by default).\n Evaluated when loading a game. Has no effect while a game is loaded."] pub fn rc_client_set_encore_mode_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether encore mode is enabled (off by default)."] pub fn rc_client_get_encore_mode_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether unofficial achievements should be loaded.\n Evaluated when loading a game. Has no effect while a game is loaded."] pub fn rc_client_set_unofficial_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether unofficial achievements should be loaded."] pub fn rc_client_get_unofficial_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether spectator mode is enabled (off by default).\n If enabled, events for achievement unlocks and leaderboard submissions will be\n raised, but server calls to actually perform the unlock/submit will not occur.\n Can be modified while a game is loaded. Evaluated at unlock/submit time.\n Cannot be modified if disabled before a game is loaded."] pub fn rc_client_set_spectator_mode_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether spectator mode is enabled (off by default)."] pub fn rc_client_get_spectator_mode_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Attaches client-specific data to the runtime."] pub fn rc_client_set_userdata (client : * mut rc_client_t , userdata : * mut :: core :: ffi :: c_void) ; } extern "C" { # [doc = " Gets the client-specific data attached to the runtime."] pub fn rc_client_get_userdata (client : * const rc_client_t) -> * mut :: core :: ffi :: c_void ; } extern "C" { # [doc = " Sets the name of the server to use."] pub fn rc_client_set_host (client : * const rc_client_t , hostname : * const :: core :: ffi :: c_char) ; } pub type rc_clock_t = u64 ; pub type rc_get_time_millisecs_func_t = :: core :: option :: Option < unsafe extern "C" fn (client : * const rc_client_t) -> rc_clock_t > ; extern "C" { # [doc = " Specifies a function that returns a value that increases once per millisecond."] pub fn rc_client_set_get_time_millisecs_function (client : * mut rc_client_t , handler : rc_get_time_millisecs_func_t) ; } extern "C" { # [doc = " Marks an async process as aborted. The associated callback will not be called."] pub fn rc_client_abort_async (client : * mut rc_client_t , async_handle : * mut rc_client_async_handle_t) ; } extern "C" { # [doc = " Gets a clause that can be added to the User-Agent to identify the version of rcheevos being used."] pub fn rc_client_get_user_agent_clause (client : * mut rc_client_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> usize ; } extern "C" { # [doc = " Sets the logging level and provides a callback to be called to do the logging."] pub fn rc_client_enable_logging (client : * mut rc_client_t , level : :: core :: ffi :: c_int , callback : rc_client_message_callback_t) ; } pub const RC_CLIENT_LOG_LEVEL_NONE : _bindgen_ty_15 = 0 ; pub const RC_CLIENT_LOG_LEVEL_ERROR : _bindgen_ty_15 = 1 ; pub const RC_CLIENT_LOG_LEVEL_WARN : _bindgen_ty_15 = 2 ; pub const RC_CLIENT_LOG_LEVEL_INFO : _bindgen_ty_15 = 3 ; pub const RC_CLIENT_LOG_LEVEL_VERBOSE : _bindgen_ty_15 = 4 ; pub const NUM_RC_CLIENT_LOG_LEVELS : _bindgen_ty_15 = 5 ; pub type _bindgen_ty_15 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Attempt to login a user."] pub fn rc_client_begin_login_with_password (client : * mut rc_client_t , username : * const :: core :: ffi :: c_char , password : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Attempt to login a user."] pub fn rc_client_begin_login_with_token (client : * mut rc_client_t , username : * const :: core :: ffi :: c_char , token : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Logout the user."] pub fn rc_client_logout (client : * mut rc_client_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_user_t { pub display_name : * const :: core :: ffi :: c_char , pub username : * const :: core :: ffi :: c_char , pub token : * const :: core :: ffi :: c_char , pub score : u32 , pub score_softcore : u32 , pub num_unread_messages : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_user_t"] [:: core :: mem :: size_of :: < rc_client_user_t > () - 40usize] ; ["Alignment of rc_client_user_t"] [:: core :: mem :: align_of :: < rc_client_user_t > () - 8usize] ; ["Offset of field: rc_client_user_t::display_name"] [:: core :: mem :: offset_of ! (rc_client_user_t , display_name) - 0usize] ; ["Offset of field: rc_client_user_t::username"] [:: core :: mem :: offset_of ! (rc_client_user_t , username) - 8usize] ; ["Offset of field: rc_client_user_t::token"] [:: core :: mem :: offset_of ! (rc_client_user_t , token) - 16usize] ; ["Offset of field: rc_client_user_t::score"] [:: core :: mem :: offset_of ! (rc_client_user_t , score) - 24usize] ; ["Offset of field: rc_client_user_t::score_softcore"] [:: core :: mem :: offset_of ! (rc_client_user_t , score_softcore) - 28usize] ; ["Offset of field: rc_client_user_t::num_unread_messages"] [:: core :: mem :: offset_of ! (rc_client_user_t , num_unread_messages) - 32usize] ; } ; extern "C" { # [doc = " Gets information about the logged in user. Will return NULL if the user is not logged in."] pub fn rc_client_get_user_info (client : * const rc_client_t) -> * const rc_client_user_t ; } extern "C" { # [doc = " Gets the URL for the user's profile picture.\n Returns RC_OK on success."] pub fn rc_client_user_get_image_url (user : * const rc_client_user_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_user_game_summary_t { pub num_core_achievements : u32 , pub num_unofficial_achievements : u32 , pub num_unlocked_achievements : u32 , pub num_unsupported_achievements : u32 , pub points_core : u32 , pub points_unlocked : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_user_game_summary_t"] [:: core :: mem :: size_of :: < rc_client_user_game_summary_t > () - 24usize] ; ["Alignment of rc_client_user_game_summary_t"] [:: core :: mem :: align_of :: < rc_client_user_game_summary_t > () - 4usize] ; ["Offset of field: rc_client_user_game_summary_t::num_core_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_core_achievements) - 0usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unofficial_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unofficial_achievements) - 4usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unlocked_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unlocked_achievements) - 8usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unsupported_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unsupported_achievements) - 12usize] ; ["Offset of field: rc_client_user_game_summary_t::points_core"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , points_core) - 16usize] ; ["Offset of field: rc_client_user_game_summary_t::points_unlocked"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , points_unlocked) - 20usize] ; } ; extern "C" { # [doc = " Gets a breakdown of the number of achievements in the game, and how many the user has unlocked.\n Used for the \"You have unlocked X of Y achievements\" message shown when the game starts."] pub fn rc_client_get_user_game_summary (client : * const rc_client_t , summary : * mut rc_client_user_game_summary_t) ; } extern "C" { # [doc = " Start loading an unidentified game."] pub fn rc_client_begin_identify_and_load_game (client : * mut rc_client_t , console_id : u32 , file_path : * const :: core :: ffi :: c_char , data : * const u8 , data_size : usize , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Start loading a game."] pub fn rc_client_begin_load_game (client : * mut rc_client_t , hash : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Gets the current progress of the asynchronous load game process."] pub fn rc_client_get_load_game_state (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } pub const RC_CLIENT_LOAD_GAME_STATE_NONE : _bindgen_ty_16 = 0 ; pub const RC_CLIENT_LOAD_GAME_STATE_IDENTIFYING_GAME : _bindgen_ty_16 = 1 ; pub const RC_CLIENT_LOAD_GAME_STATE_AWAIT_LOGIN : _bindgen_ty_16 = 2 ; pub const RC_CLIENT_LOAD_GAME_STATE_FETCHING_GAME_DATA : _bindgen_ty_16 = 3 ; pub const RC_CLIENT_LOAD_GAME_STATE_STARTING_SESSION : _bindgen_ty_16 = 4 ; pub const RC_CLIENT_LOAD_GAME_STATE_DONE : _bindgen_ty_16 = 5 ; pub const RC_CLIENT_LOAD_GAME_STATE_ABORTED : _bindgen_ty_16 = 6 ; pub type _bindgen_ty_16 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Determines if a game was successfully identified and loaded."] pub fn rc_client_is_game_loaded (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Unloads the current game."] pub fn rc_client_unload_game (client : * mut rc_client_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_game_t { pub id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub hash : * const :: core :: ffi :: c_char , pub badge_name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_game_t"] [:: core :: mem :: size_of :: < rc_client_game_t > () - 32usize] ; ["Alignment of rc_client_game_t"] [:: core :: mem :: align_of :: < rc_client_game_t > () - 8usize] ; ["Offset of field: rc_client_game_t::id"] [:: core :: mem :: offset_of ! (rc_client_game_t , id) - 0usize] ; ["Offset of field: rc_client_game_t::console_id"] [:: core :: mem :: offset_of ! (rc_client_game_t , console_id) - 4usize] ; ["Offset of field: rc_client_game_t::title"] [:: core :: mem :: offset_of ! (rc_client_game_t , title) - 8usize] ; ["Offset of field: rc_client_game_t::hash"] [:: core :: mem :: offset_of ! (rc_client_game_t , hash) - 16usize] ; ["Offset of field: rc_client_game_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_game_t , badge_name) - 24usize] ; } ; extern "C" { # [doc = " Get information about the current game. Returns NULL if no game is loaded.\n NOTE: returns a dummy game record if an unidentified game is loaded."] pub fn rc_client_get_game_info (client : * const rc_client_t) -> * const rc_client_game_t ; } extern "C" { # [doc = " Gets the URL for the game image.\n Returns RC_OK on success."] pub fn rc_client_game_get_image_url (game : * const rc_client_game_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Changes the active disc in a multi-disc game."] pub fn rc_client_begin_change_media (client : * mut rc_client_t , file_path : * const :: core :: ffi :: c_char , data : * const u8 , data_size : usize , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Changes the active disc in a multi-disc game."] pub fn rc_client_begin_change_media_from_hash (client : * mut rc_client_t , hash : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } # [doc = "\\\n| Subsets                                                                     |\n\\"] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_subset_t { pub id : u32 , pub title : * const :: core :: ffi :: c_char , pub badge_name : [:: core :: ffi :: c_char ; 16usize] , pub num_achievements : u32 , pub num_leaderboards : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_subset_t"] [:: core :: mem :: size_of :: < rc_client_subset_t > () - 40usize] ; ["Alignment of rc_client_subset_t"] [:: core :: mem :: align_of :: < rc_client_subset_t > () - 8usize] ; ["Offset of field: rc_client_subset_t::id"] [:: core :: mem :: offset_of ! (rc_client_subset_t , id) - 0usize] ; ["Offset of field: rc_client_subset_t::title"] [:: core :: mem :: offset_of ! (rc_client_subset_t , title) - 8usize] ; ["Offset of field: rc_client_subset_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_subset_t , badge_name) - 16usize] ; ["Offset of field: rc_client_subset_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_client_subset_t , num_achievements) - 32usize] ; ["Offset of field: rc_client_subset_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_client_subset_t , num_leaderboards) - 36usize] ; } ; extern "C" { pub fn rc_client_get_subset_info (client : * mut rc_client_t , subset_id : u32) -> * const rc_client_subset_t ; } pub const RC_CLIENT_ACHIEVEMENT_STATE_INACTIVE : _bindgen_ty_17 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_ACTIVE : _bindgen_ty_17 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_UNLOCKED : _bindgen_ty_17 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_DISABLED : _bindgen_ty_17 = 3 ; pub const NUM_RC_CLIENT_ACHIEVEMENT_STATES : _bindgen_ty_17 = 4 ; # [doc = "\\\n| Achievements                                                                |\n\\"] pub type _bindgen_ty_17 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_NONE : _bindgen_ty_18 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_CORE : _bindgen_ty_18 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_UNOFFICIAL : _bindgen_ty_18 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_CORE_AND_UNOFFICIAL : _bindgen_ty_18 = 3 ; pub type _bindgen_ty_18 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_STANDARD : _bindgen_ty_19 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_MISSABLE : _bindgen_ty_19 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_PROGRESSION : _bindgen_ty_19 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_WIN : _bindgen_ty_19 = 3 ; pub type _bindgen_ty_19 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNKNOWN : _bindgen_ty_20 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_LOCKED : _bindgen_ty_20 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNLOCKED : _bindgen_ty_20 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNSUPPORTED : _bindgen_ty_20 = 3 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNOFFICIAL : _bindgen_ty_20 = 4 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_RECENTLY_UNLOCKED : _bindgen_ty_20 = 5 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_ACTIVE_CHALLENGE : _bindgen_ty_20 = 6 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_ALMOST_THERE : _bindgen_ty_20 = 7 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNSYNCED : _bindgen_ty_20 = 8 ; pub const NUM_RC_CLIENT_ACHIEVEMENT_BUCKETS : _bindgen_ty_20 = 9 ; pub type _bindgen_ty_20 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_NONE : _bindgen_ty_21 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_SOFTCORE : _bindgen_ty_21 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_HARDCORE : _bindgen_ty_21 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_BOTH : _bindgen_ty_21 = 3 ; pub type _bindgen_ty_21 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_t { pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub badge_name : [:: core :: ffi :: c_char ; 8usize] , pub measured_progress : [:: core :: ffi :: c_char ; 24usize] , pub measured_percent : f32 , pub id : u32 , pub points : u32 , pub unlock_time : time_t , pub state : u8 , pub category : u8 , pub bucket : u8 , pub unlocked : u8 , pub rarity : f32 , pub rarity_hardcore : f32 , pub type_ : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_t"] [:: core :: mem :: size_of :: < rc_client_achievement_t > () - 88usize] ; ["Alignment of rc_client_achievement_t"] [:: core :: mem :: align_of :: < rc_client_achievement_t > () - 8usize] ; ["Offset of field: rc_client_achievement_t::title"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , title) - 0usize] ; ["Offset of field: rc_client_achievement_t::description"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , description) - 8usize] ; ["Offset of field: rc_client_achievement_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , badge_name) - 16usize] ; ["Offset of field: rc_client_achievement_t::measured_progress"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , measured_progress) - 24usize] ; ["Offset of field: rc_client_achievement_t::measured_percent"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , measured_percent) - 48usize] ; ["Offset of field: rc_client_achievement_t::id"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , id) - 52usize] ; ["Offset of field: rc_client_achievement_t::points"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , points) - 56usize] ; ["Offset of field: rc_client_achievement_t::unlock_time"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , unlock_time) - 64usize] ; ["Offset of field: rc_client_achievement_t::state"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , state) - 72usize] ; ["Offset of field: rc_client_achievement_t::category"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , category) - 73usize] ; ["Offset of field: rc_client_achievement_t::bucket"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , bucket) - 74usize] ; ["Offset of field: rc_client_achievement_t::unlocked"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , unlocked) - 75usize] ; ["Offset of field: rc_client_achievement_t::rarity"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , rarity) - 76usize] ; ["Offset of field: rc_client_achievement_t::rarity_hardcore"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , rarity_hardcore) - 80usize] ; ["Offset of field: rc_client_achievement_t::type_"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , type_) - 84usize] ; } ; extern "C" { # [doc = " Get information about an achievement. Returns NULL if not found."] pub fn rc_client_get_achievement_info (client : * mut rc_client_t , id : u32) -> * const rc_client_achievement_t ; } extern "C" { # [doc = " Gets the URL for the achievement image.\n Returns RC_OK on success."] pub fn rc_client_achievement_get_image_url (achievement : * const rc_client_achievement_t , state : :: core :: ffi :: c_int , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_bucket_t { pub achievements : * mut * mut rc_client_achievement_t , pub num_achievements : u32 , pub label : * const :: core :: ffi :: c_char , pub subset_id : u32 , pub bucket_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_bucket_t"] [:: core :: mem :: size_of :: < rc_client_achievement_bucket_t > () - 32usize] ; ["Alignment of rc_client_achievement_bucket_t"] [:: core :: mem :: align_of :: < rc_client_achievement_bucket_t > () - 8usize] ; ["Offset of field: rc_client_achievement_bucket_t::achievements"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , achievements) - 0usize] ; ["Offset of field: rc_client_achievement_bucket_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , num_achievements) - 8usize] ; ["Offset of field: rc_client_achievement_bucket_t::label"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , label) - 16usize] ; ["Offset of field: rc_client_achievement_bucket_t::subset_id"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , subset_id) - 24usize] ; ["Offset of field: rc_client_achievement_bucket_t::bucket_type"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , bucket_type) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_list_t { pub buckets : * mut rc_client_achievement_bucket_t , pub num_buckets : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_list_t"] [:: core :: mem :: size_of :: < rc_client_achievement_list_t > () - 16usize] ; ["Alignment of rc_client_achievement_list_t"] [:: core :: mem :: align_of :: < rc_client_achievement_list_t > () - 8usize] ; ["Offset of field: rc_client_achievement_list_t::buckets"] [:: core :: mem :: offset_of ! (rc_client_achievement_list_t , buckets) - 0usize] ; ["Offset of field: rc_client_achievement_list_t::num_buckets"] [:: core :: mem :: offset_of ! (rc_client_achievement_list_t , num_buckets) - 8usize] ; } ; pub const RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_LOCK_STATE : _bindgen_ty_22 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_PROGRESS : _bindgen_ty_22 = 1 ; pub type _bindgen_ty_22 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Creates a list of achievements matching the specified category and grouping.\n Returns an allocated list that must be free'd by calling rc_client_destroy_achievement_list."] pub fn rc_client_create_achievement_list (client : * mut rc_client_t , category : :: core :: ffi :: c_int , grouping : :: core :: ffi :: c_int) -> * mut rc_client_achievement_list_t ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_get_achievement_list."] pub fn rc_client_destroy_achievement_list (list : * mut rc_client_achievement_list_t) ; } extern "C" { # [doc = " Returns non-zero if there are any achievements that can be queried through rc_client_create_achievement_list()."] pub fn rc_client_has_achievements (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } pub const RC_CLIENT_LEADERBOARD_STATE_INACTIVE : _bindgen_ty_23 = 0 ; pub const RC_CLIENT_LEADERBOARD_STATE_ACTIVE : _bindgen_ty_23 = 1 ; pub const RC_CLIENT_LEADERBOARD_STATE_TRACKING : _bindgen_ty_23 = 2 ; pub const RC_CLIENT_LEADERBOARD_STATE_DISABLED : _bindgen_ty_23 = 3 ; pub const NUM_RC_CLIENT_LEADERBOARD_STATES : _bindgen_ty_23 = 4 ; # [doc = "\\\n| Leaderboards                                                                |\n\\"] pub type _bindgen_ty_23 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_LEADERBOARD_FORMAT_TIME : _bindgen_ty_24 = 0 ; pub const RC_CLIENT_LEADERBOARD_FORMAT_SCORE : _bindgen_ty_24 = 1 ; pub const RC_CLIENT_LEADERBOARD_FORMAT_VALUE : _bindgen_ty_24 = 2 ; pub const NUM_RC_CLIENT_LEADERBOARD_FORMATS : _bindgen_ty_24 = 3 ; pub type _bindgen_ty_24 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_t { pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub tracker_value : * const :: core :: ffi :: c_char , pub id : u32 , pub state : u8 , pub format : u8 , pub lower_is_better : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_t > () - 32usize] ; ["Alignment of rc_client_leaderboard_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_t::title"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , title) - 0usize] ; ["Offset of field: rc_client_leaderboard_t::description"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , description) - 8usize] ; ["Offset of field: rc_client_leaderboard_t::tracker_value"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , tracker_value) - 16usize] ; ["Offset of field: rc_client_leaderboard_t::id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , id) - 24usize] ; ["Offset of field: rc_client_leaderboard_t::state"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , state) - 28usize] ; ["Offset of field: rc_client_leaderboard_t::format"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , format) - 29usize] ; ["Offset of field: rc_client_leaderboard_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , lower_is_better) - 30usize] ; } ; extern "C" { # [doc = " Get information about a leaderboard. Returns NULL if not found."] pub fn rc_client_get_leaderboard_info (client : * const rc_client_t , id : u32) -> * const rc_client_leaderboard_t ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_tracker_t { pub display : [:: core :: ffi :: c_char ; 24usize] , pub id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_tracker_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_tracker_t > () - 28usize] ; ["Alignment of rc_client_leaderboard_tracker_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_tracker_t > () - 4usize] ; ["Offset of field: rc_client_leaderboard_tracker_t::display"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_tracker_t , display) - 0usize] ; ["Offset of field: rc_client_leaderboard_tracker_t::id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_tracker_t , id) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_bucket_t { pub leaderboards : * mut * mut rc_client_leaderboard_t , pub num_leaderboards : u32 , pub label : * const :: core :: ffi :: c_char , pub subset_id : u32 , pub bucket_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_bucket_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_bucket_t > () - 32usize] ; ["Alignment of rc_client_leaderboard_bucket_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_bucket_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::leaderboards"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , leaderboards) - 0usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , num_leaderboards) - 8usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::label"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , label) - 16usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::subset_id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , subset_id) - 24usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::bucket_type"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , bucket_type) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_list_t { pub buckets : * mut rc_client_leaderboard_bucket_t , pub num_buckets : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_list_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_list_t > () - 16usize] ; ["Alignment of rc_client_leaderboard_list_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_list_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_list_t::buckets"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_list_t , buckets) - 0usize] ; ["Offset of field: rc_client_leaderboard_list_t::num_buckets"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_list_t , num_buckets) - 8usize] ; } ; pub const RC_CLIENT_LEADERBOARD_BUCKET_UNKNOWN : _bindgen_ty_25 = 0 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_INACTIVE : _bindgen_ty_25 = 1 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_ACTIVE : _bindgen_ty_25 = 2 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_UNSUPPORTED : _bindgen_ty_25 = 3 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_ALL : _bindgen_ty_25 = 4 ; pub const NUM_RC_CLIENT_LEADERBOARD_BUCKETS : _bindgen_ty_25 = 5 ; pub type _bindgen_ty_25 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_LEADERBOARD_LIST_GROUPING_NONE : _bindgen_ty_26 = 0 ; pub const RC_CLIENT_LEADERBOARD_LIST_GROUPING_TRACKING : _bindgen_ty_26 = 1 ; pub type _bindgen_ty_26 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Creates a list of leaderboards matching the specified grouping.\n Returns an allocated list that must be free'd by calling rc_client_destroy_leaderboard_list."] pub fn rc_client_create_leaderboard_list (client : * mut rc_client_t , grouping : :: core :: ffi :: c_int) -> * mut rc_client_leaderboard_list_t ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_get_leaderboard_list."] pub fn rc_client_destroy_leaderboard_list (list : * mut rc_client_leaderboard_list_t) ; } extern "C" { # [doc = " Returns non-zero if the current game has any leaderboards."] pub fn rc_client_has_leaderboards (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_entry_t { pub user : * const :: core :: ffi :: c_char , pub display : [:: core :: ffi :: c_char ; 24usize] , pub submitted : time_t , pub rank : u32 , pub index : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_entry_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_entry_t > () - 48usize] ; ["Alignment of rc_client_leaderboard_entry_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_entry_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_t::user"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , user) - 0usize] ; ["Offset of field: rc_client_leaderboard_entry_t::display"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , display) - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_t::submitted"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , submitted) - 32usize] ; ["Offset of field: rc_client_leaderboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , rank) - 40usize] ; ["Offset of field: rc_client_leaderboard_entry_t::index"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , index) - 44usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_entry_list_t { pub entries : * mut rc_client_leaderboard_entry_t , pub num_entries : u32 , pub total_entries : u32 , pub user_index : i32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_entry_list_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_entry_list_t > () - 24usize] ; ["Alignment of rc_client_leaderboard_entry_list_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_entry_list_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , entries) - 0usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::num_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , num_entries) - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::total_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , total_entries) - 12usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::user_index"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , user_index) - 16usize] ; } ; pub type rc_client_fetch_leaderboard_entries_callback_t = :: core :: option :: Option < unsafe extern "C" fn (result : :: core :: ffi :: c_int , error_message : * const :: core :: ffi :: c_char , list : * mut rc_client_leaderboard_entry_list_t , client : * mut rc_client_t , callback_userdata : * mut :: core :: ffi :: c_void) > ; extern "C" { # [doc = " Fetches a list of leaderboard entries from the server.\n Callback receives an allocated list that must be free'd by calling rc_client_destroy_leaderboard_entry_list."] pub fn rc_client_begin_fetch_leaderboard_entries (client : * mut rc_client_t , leaderboard_id : u32 , first_entry : u32 , count : u32 , callback : rc_client_fetch_leaderboard_entries_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Fetches a list of leaderboard entries from the server containing the logged-in user.\n Callback receives an allocated list that must be free'd by calling rc_client_destroy_leaderboard_entry_list."] pub fn rc_client_begin_fetch_leaderboard_entries_around_user (client : * mut rc_client_t , leaderboard_id : u32 , count : u32 , callback : rc_client_fetch_leaderboard_entries_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Gets the URL for the profile picture of the user associated to a leaderboard entry.\n Returns RC_OK on success."] pub fn rc_client_leaderboard_entry_get_user_image_url (entry : * const rc_client_leaderboard_entry_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_begin_fetch_leaderboard_entries or rc_client_begin_fetch_leaderboard_entries_around_user."] pub fn rc_client_destroy_leaderboard_entry_list (list : * mut rc_client_leaderboard_entry_list_t) ; } # [doc = " Used for scoreboard events. Contains the response from the server when a leaderboard entry is submitted.\n NOTE: This structure is only valid within the event callback. If you want to make use of the data outside\n of the callback, you should create copies of both the top entries and usernames within."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_scoreboard_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub score : [:: core :: ffi :: c_char ; 24usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_scoreboard_entry_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_scoreboard_entry_t > () - 40usize] ; ["Alignment of rc_client_leaderboard_scoreboard_entry_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_scoreboard_entry_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::username"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , username) - 0usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , rank) - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , score) - 12usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_scoreboard_t { pub leaderboard_id : u32 , pub submitted_score : [:: core :: ffi :: c_char ; 24usize] , pub best_score : [:: core :: ffi :: c_char ; 24usize] , pub new_rank : u32 , pub num_entries : u32 , pub top_entries : * mut rc_client_leaderboard_scoreboard_entry_t , pub num_top_entries : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_scoreboard_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_scoreboard_t > () - 80usize] ; ["Alignment of rc_client_leaderboard_scoreboard_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_scoreboard_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::submitted_score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , submitted_score) - 4usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::best_score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , best_score) - 28usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::new_rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , new_rank) - 52usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::num_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , num_entries) - 56usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::top_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , top_entries) - 64usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::num_top_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , num_top_entries) - 72usize] ; } ; extern "C" { # [doc = " Returns non-zero if the current game supports rich presence."] pub fn rc_client_has_rich_presence (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Gets the current rich presence message.\n Returns the number of characters written to buffer."] pub fn rc_client_get_rich_presence_message (client : * mut rc_client_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> usize ; } pub const RC_CLIENT_EVENT_TYPE_NONE : _bindgen_ty_27 = 0 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_TRIGGERED : _bindgen_ty_27 = 1 ; pub const RC_CLIENT_EVENT_LEADERBOARD_STARTED : _bindgen_ty_27 = 2 ; pub const RC_CLIENT_EVENT_LEADERBOARD_FAILED : _bindgen_ty_27 = 3 ; pub const RC_CLIENT_EVENT_LEADERBOARD_SUBMITTED : _bindgen_ty_27 = 4 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_CHALLENGE_INDICATOR_SHOW : _bindgen_ty_27 = 5 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_CHALLENGE_INDICATOR_HIDE : _bindgen_ty_27 = 6 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_SHOW : _bindgen_ty_27 = 7 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_HIDE : _bindgen_ty_27 = 8 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_UPDATE : _bindgen_ty_27 = 9 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_SHOW : _bindgen_ty_27 = 10 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_HIDE : _bindgen_ty_27 = 11 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_UPDATE : _bindgen_ty_27 = 12 ; pub const RC_CLIENT_EVENT_LEADERBOARD_SCOREBOARD : _bindgen_ty_27 = 13 ; pub const RC_CLIENT_EVENT_RESET : _bindgen_ty_27 = 14 ; pub const RC_CLIENT_EVENT_GAME_COMPLETED : _bindgen_ty_27 = 15 ; pub const RC_CLIENT_EVENT_SERVER_ERROR : _bindgen_ty_27 = 16 ; pub const RC_CLIENT_EVENT_DISCONNECTED : _bindgen_ty_27 = 17 ; pub const RC_CLIENT_EVENT_RECONNECTED : _bindgen_ty_27 = 18 ; # [doc = "\\\n| Processing                                                                  |\n\\"] pub type _bindgen_ty_27 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_server_error_t { pub error_message : * const :: core :: ffi :: c_char , pub api : * const :: core :: ffi :: c_char , pub result : :: core :: ffi :: c_int , pub related_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_server_error_t"] [:: core :: mem :: size_of :: < rc_client_server_error_t > () - 24usize] ; ["Alignment of rc_client_server_error_t"] [:: core :: mem :: align_of :: < rc_client_server_error_t > () - 8usize] ; ["Offset of field: rc_client_server_error_t::error_message"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , error_message) - 0usize] ; ["Offset of field: rc_client_server_error_t::api"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , api) - 8usize] ; ["Offset of field: rc_client_server_error_t::result"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , result) - 16usize] ; ["Offset of field: rc_client_server_error_t::related_id"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , related_id) - 20usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_event_t { pub type_ : u32 , pub achievement : * mut rc_client_achievement_t , pub leaderboard : * mut rc_client_leaderboard_t , pub leaderboard_tracker : * mut rc_client_leaderboard_tracker_t , pub leaderboard_scoreboard : * mut rc_client_leaderboard_scoreboard_t , pub server_error : * mut rc_client_server_error_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_event_t"] [:: core :: mem :: size_of :: < rc_client_event_t > () - 48usize] ; ["Alignment of rc_client_event_t"] [:: core :: mem :: align_of :: < rc_client_event_t > () - 8usize] ; ["Offset of field: rc_client_event_t::type_"] [:: core :: mem :: offset_of ! (rc_client_event_t , type_) - 0usize] ; ["Offset of field: rc_client_event_t::achievement"] [:: core :: mem :: offset_of ! (rc_client_event_t , achievement) - 8usize] ; ["Offset of field: rc_client_event_t::leaderboard"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard) - 16usize] ; ["Offset of field: rc_client_event_t::leaderboard_tracker"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard_tracker) - 24usize] ; ["Offset of field: rc_client_event_t::leaderboard_scoreboard"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard_scoreboard) - 32usize] ; ["Offset of field: rc_client_event_t::server_error"] [:: core :: mem :: offset_of ! (rc_client_event_t , server_error) - 40usize] ; } ; # [doc = " Callback used to notify the client when certain events occur."] pub type rc_client_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (event : * const rc_client_event_t , client : * mut rc_client_t) > ; extern "C" { # [doc = " Provides a callback for event handling."] pub fn rc_client_set_event_handler (client : * mut rc_client_t , handler : rc_client_event_handler_t) ; } extern "C" { # [doc = " Provides a callback for reading memory."] pub fn rc_client_set_read_memory_function (client : * mut rc_client_t , handler : rc_client_read_memory_func_t) ; } extern "C" { # [doc = " Determines if there are any active achievements/leaderboards/rich presence that need processing."] pub fn rc_client_is_processing_required (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Processes achievements for the current frame."] pub fn rc_client_do_frame (client : * mut rc_client_t) ; } extern "C" { # [doc = " Processes the periodic queue.\n Called internally by rc_client_do_frame.\n Should be explicitly called if rc_client_do_frame is not being called because emulation is paused."] pub fn rc_client_idle (client : * mut rc_client_t) ; } extern "C" { # [doc = " Determines if a sufficient amount of frames have been processed since the last call to rc_client_can_pause.\n Should not be called unless the client is trying to pause.\n If false is returned, and frames_remaining is not NULL, frames_remaining will be set to the number of frames\n still required before pause is allowed, which can be converted to a time in seconds for displaying to the user."] pub fn rc_client_can_pause (client : * mut rc_client_t , frames_remaining : * mut u32) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Informs the runtime that the emulator has been reset. Will reset all achievements and leaderboards\n to their initial state (includes hiding indicators/trackers)."] pub fn rc_client_reset (client : * mut rc_client_t) ; } extern "C" { # [doc = " Gets the number of bytes needed to serialized the runtime state."] pub fn rc_client_progress_size (client : * mut rc_client_t) -> usize ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator.\n [deprecated] use rc_client_serialize_progress_sized instead"] pub fn rc_client_serialize_progress (client : * mut rc_client_t , buffer : * mut u8) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator."] pub fn rc_client_serialize_progress_sized (client : * mut rc_client_t , buffer : * mut u8 , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Deserializes the runtime state from a buffer.\n Returns RC_OK on success, or an error indicator.\n [deprecated] use rc_client_deserialize_progress_sized instead"] pub fn rc_client_deserialize_progress (client : * mut rc_client_t , serialized : * const u8) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator."] pub fn rc_client_deserialize_progress_sized (client : * mut rc_client_t , serialized : * const u8 , serialized_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __locale_data { pub _address : u8 , } pub type __builtin_va_list = [__va_list_tag ; 1usize] ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __va_list_tag { pub gp_offset : :: core :: ffi :: c_uint , pub fp_offset : :: core :: ffi :: c_uint , pub overflow_arg_area : * mut :: core :: ffi :: c_void , pub reg_save_area : * mut :: core :: ffi :: c_void , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __va_list_tag"] [:: core :: mem :: size_of :: < __va_list_tag > () - 24usize] ; ["Alignment of __va_list_tag"] [:: core :: mem :: align_of :: < __va_list_tag > () - 8usize] ; ["Offset of field: __va_list_tag::gp_offset"] [:: core :: mem :: offset_of ! (__va_list_tag , gp_offset) - 0usize] ; ["Offset of field: __va_list_tag::fp_offset"] [:: core :: mem :: offset_of ! (__va_list_tag , fp_offset) - 4usize] ; ["Offset of field: __va_list_tag::overflow_arg_area"] [:: core :: mem :: offset_of ! (__va_list_tag , overflow_arg_area) - 8usize] ; ["Offset of field: __va_list_tag::reg_save_area"] [:: core :: mem :: offset_of ! (__va_list_tag , reg_save_area) - 16usize] ; } ;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 37.44s
[INFO] running `Command { std: "docker" "inspect" "a77a9d3e286acf7e42949ba5f48ca7cf84435c704901c0d785b3b1c5fca5e6f6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "a77a9d3e286acf7e42949ba5f48ca7cf84435c704901c0d785b3b1c5fca5e6f6" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]  --> /opt/rustwide/target/debug/build/rcheevos-sys/badd2487a33295ab/out/bindings.rs:3:124281
[INFO] [stdout]   |
[INFO] [stdout] 3 | ...: ffi :: c_int { unsafe { :: core :: mem :: transmute (self . _bitfield_1 . get (0usize , 24u8) as u32) } } # [inline] pub fn set_...
[INFO] [stdout]   |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] help: replace this with
[INFO] [stdout]   |
[INFO] [stdout] 3 - # [repr (C)] # [derive (Copy , Clone , Debug , Default , Eq , Hash , Ord , PartialEq , PartialOrd)] pub struct __BindgenBitfieldUnit < Storage > { storage : Storage , } impl < Storage > __BindgenBitfieldUnit < Storage > { # [inline] pub const fn new (storage : Storage) -> Self { Self { storage } } } impl < Storage > __BindgenBitfieldUnit < Storage > where Storage : AsRef < [u8] > + AsMut < [u8] >, { # [inline] pub fn get_bit (& self , index : usize) -> bool { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = self . storage . as_ref () [byte_index] ; let bit_index = if cfg ! (target_endian = "big") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; byte & mask == mask } # [inline] pub fn set_bit (& mut self , index : usize , val : bool) { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = & mut self . storage . as_mut () [byte_index] ; let bit_index = if cfg ! (target_endian = "big") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; if val { * byte |= mask ; } else { * byte &= ! mask ; } } # [inline] pub fn get (& self , bit_offset : usize , bit_width : u8) -> u64 { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; let mut val = 0 ; for i in 0 .. (bit_width as usize) { if self . get_bit (i + bit_offset) { let index = if cfg ! (target_endian = "big") { bit_width as usize - 1 - i } else { i } ; val |= 1 << index ; } } val } # [inline] pub fn set (& mut self , bit_offset : usize , bit_width : u8 , val : u64) { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; for i in 0 .. (bit_width as usize) { let mask = 1 << i ; let val_bit_is_set = val & mask == mask ; let index = if cfg ! (target_endian = "big") { bit_width as usize - 1 - i } else { i } ; self . set_bit (index + bit_offset , val_bit_is_set) ; } } } # [derive (PartialEq , Copy , Clone , Hash , Debug , Default)] # [repr (C)] pub struct __BindgenComplex < T > { pub re : T , pub im : T } pub const _STDINT_H : u32 = 1 ; pub const _FEATURES_H : u32 = 1 ; pub const _DEFAULT_SOURCE : u32 = 1 ; pub const __GLIBC_USE_ISOC2Y : u32 = 0 ; pub const __GLIBC_USE_ISOC23 : u32 = 0 ; pub const __USE_ISOC11 : u32 = 1 ; pub const __USE_ISOC99 : u32 = 1 ; pub const __USE_ISOC95 : u32 = 1 ; pub const __USE_POSIX_IMPLICITLY : u32 = 1 ; pub const _POSIX_SOURCE : u32 = 1 ; pub const _POSIX_C_SOURCE : u32 = 202405 ; pub const __USE_POSIX : u32 = 1 ; pub const __USE_POSIX2 : u32 = 1 ; pub const __USE_POSIX199309 : u32 = 1 ; pub const __USE_POSIX199506 : u32 = 1 ; pub const __USE_XOPEN2K : u32 = 1 ; pub const __USE_XOPEN2K8 : u32 = 1 ; pub const _ATFILE_SOURCE : u32 = 1 ; pub const __USE_XOPEN2K24 : u32 = 1 ; pub const __WORDSIZE : u32 = 64 ; pub const __WORDSIZE_TIME64_COMPAT32 : u32 = 1 ; pub const __SYSCALL_WORDSIZE : u32 = 64 ; pub const __TIMESIZE : u32 = 64 ; pub const __USE_TIME_BITS64 : u32 = 1 ; pub const __USE_MISC : u32 = 1 ; 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_C23_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 ; pub const __STDC_IEC_559_COMPLEX__ : u32 = 1 ; 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 = 43 ; pub const _SYS_CDEFS_H : u32 = 1 ; pub const __glibc_c99_flexarr_available : u32 = 1 ; pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI : u32 = 0 ; pub const __HAVE_GENERIC_SELECTION : u32 = 1 ; pub const __GLIBC_USE_LIB_EXT2 : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT_C23 : u32 = 0 ; 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_C23 : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_TYPES_EXT : u32 = 0 ; pub const _BITS_TYPES_H : u32 = 1 ; pub const _BITS_TYPESIZES_H : u32 = 1 ; pub const __OFF_T_MATCHES_OFF64_T : u32 = 1 ; pub const __INO_T_MATCHES_INO64_T : u32 = 1 ; pub const __RLIM_T_MATCHES_RLIM64_T : u32 = 1 ; pub const __STATFS_MATCHES_STATFS64 : u32 = 1 ; pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 : u32 = 1 ; pub const __FD_SETSIZE : u32 = 1024 ; pub const _BITS_TIME64_H : u32 = 1 ; pub const _BITS_WCHAR_H : u32 = 1 ; pub const _BITS_STDINT_INTN_H : u32 = 1 ; pub const _BITS_STDINT_UINTN_H : u32 = 1 ; pub const _BITS_STDINT_LEAST_H : u32 = 1 ; pub const INT8_MIN : i32 = - 128 ; pub const INT16_MIN : i32 = - 32768 ; pub const INT32_MIN : i32 = - 2147483648 ; pub const INT8_MAX : u32 = 127 ; pub const INT16_MAX : u32 = 32767 ; pub const INT32_MAX : u32 = 2147483647 ; pub const UINT8_MAX : u32 = 255 ; pub const UINT16_MAX : u32 = 65535 ; pub const UINT32_MAX : u32 = 4294967295 ; pub const INT_LEAST8_MIN : i32 = - 128 ; pub const INT_LEAST16_MIN : i32 = - 32768 ; pub const INT_LEAST32_MIN : i32 = - 2147483648 ; pub const INT_LEAST8_MAX : u32 = 127 ; pub const INT_LEAST16_MAX : u32 = 32767 ; pub const INT_LEAST32_MAX : u32 = 2147483647 ; pub const UINT_LEAST8_MAX : u32 = 255 ; pub const UINT_LEAST16_MAX : u32 = 65535 ; pub const UINT_LEAST32_MAX : u32 = 4294967295 ; pub const INT_FAST8_MIN : i32 = - 128 ; pub const INT_FAST16_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST32_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST8_MAX : u32 = 127 ; pub const INT_FAST16_MAX : u64 = 9223372036854775807 ; pub const INT_FAST32_MAX : u64 = 9223372036854775807 ; pub const UINT_FAST8_MAX : u32 = 255 ; pub const UINT_FAST16_MAX : i32 = - 1 ; pub const UINT_FAST32_MAX : i32 = - 1 ; pub const INTPTR_MIN : i64 = - 9223372036854775808 ; pub const INTPTR_MAX : u64 = 9223372036854775807 ; pub const UINTPTR_MAX : i32 = - 1 ; pub const PTRDIFF_MIN : i64 = - 9223372036854775808 ; pub const PTRDIFF_MAX : u64 = 9223372036854775807 ; pub const SIG_ATOMIC_MIN : i32 = - 2147483648 ; pub const SIG_ATOMIC_MAX : u32 = 2147483647 ; pub const SIZE_MAX : i32 = - 1 ; pub const WINT_MIN : u32 = 0 ; pub const WINT_MAX : u32 = 4294967295 ; pub const RC_VALUE_MAX_NAME_LENGTH : u32 = 15 ; pub const _TIME_H : u32 = 1 ; pub const _BITS_TIME_H : u32 = 1 ; pub const CLOCK_REALTIME : u32 = 0 ; pub const CLOCK_MONOTONIC : u32 = 1 ; pub const CLOCK_PROCESS_CPUTIME_ID : u32 = 2 ; pub const CLOCK_THREAD_CPUTIME_ID : u32 = 3 ; pub const CLOCK_MONOTONIC_RAW : u32 = 4 ; pub const CLOCK_REALTIME_COARSE : u32 = 5 ; pub const CLOCK_MONOTONIC_COARSE : u32 = 6 ; pub const CLOCK_BOOTTIME : u32 = 7 ; pub const CLOCK_REALTIME_ALARM : u32 = 8 ; pub const CLOCK_BOOTTIME_ALARM : u32 = 9 ; pub const CLOCK_TAI : u32 = 11 ; pub const TIMER_ABSTIME : u32 = 1 ; pub const __clock_t_defined : u32 = 1 ; pub const __time_t_defined : u32 = 1 ; pub const __struct_tm_defined : u32 = 1 ; pub const _STRUCT_TIMESPEC : u32 = 1 ; pub const _BITS_ENDIAN_H : u32 = 1 ; pub const __LITTLE_ENDIAN : u32 = 1234 ; pub const __BIG_ENDIAN : u32 = 4321 ; pub const __PDP_ENDIAN : u32 = 3412 ; pub const _BITS_ENDIANNESS_H : u32 = 1 ; pub const __BYTE_ORDER : u32 = 1234 ; pub const __FLOAT_WORD_ORDER : u32 = 1234 ; pub const __clockid_t_defined : u32 = 1 ; pub const __timer_t_defined : u32 = 1 ; pub const __itimerspec_defined : u32 = 1 ; pub const _BITS_TYPES_LOCALE_T_H : u32 = 1 ; pub const _BITS_TYPES___LOCALE_T_H : u32 = 1 ; pub const TIME_UTC : u32 = 1 ; pub const _STDIO_H : u32 = 1 ; pub const _____fpos_t_defined : u32 = 1 ; pub const ____mbstate_t_defined : u32 = 1 ; pub const _____fpos64_t_defined : u32 = 1 ; pub const ____FILE_defined : u32 = 1 ; pub const __FILE_defined : u32 = 1 ; 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 ; pub const BUFSIZ : u32 = 8192 ; pub const EOF : i32 = - 1 ; 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 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 ; pub const __HAVE_FLOAT128 : u32 = 1 ; pub const __HAVE_DISTINCT_FLOAT128 : u32 = 1 ; pub const __HAVE_FLOAT64X : u32 = 1 ; pub const __HAVE_FLOAT64X_LONG_DOUBLE : u32 = 1 ; pub const __HAVE_FLOAT16 : u32 = 0 ; pub const __HAVE_FLOAT32 : u32 = 1 ; pub const __HAVE_FLOAT64 : u32 = 1 ; pub const __HAVE_FLOAT32X : u32 = 1 ; pub const __HAVE_FLOAT128X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT16 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT32 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT64 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT32X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT64X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT128X : u32 = 0 ; pub const __HAVE_FLOATN_NOT_TYPEDEF : u32 = 0 ; pub const RC_IMAGE_TYPE_GAME : u32 = 1 ; pub const RC_IMAGE_TYPE_ACHIEVEMENT : u32 = 2 ; pub const RC_IMAGE_TYPE_ACHIEVEMENT_LOCKED : u32 = 3 ; pub const RC_IMAGE_TYPE_USER : u32 = 4 ; pub const RC_ACHIEVEMENT_CATEGORY_CORE : u32 = 3 ; pub const RC_ACHIEVEMENT_CATEGORY_UNOFFICIAL : u32 = 5 ; pub const RC_ACHIEVEMENT_TYPE_STANDARD : u32 = 0 ; pub const RC_ACHIEVEMENT_TYPE_MISSABLE : u32 = 1 ; pub const RC_ACHIEVEMENT_TYPE_PROGRESSION : u32 = 2 ; pub const RC_ACHIEVEMENT_TYPE_WIN : u32 = 3 ; pub const RC_CLIENT_LEADERBOARD_DISPLAY_SIZE : u32 = 24 ; pub const RC_OK : _bindgen_ty_1 = 0 ; pub const RC_INVALID_LUA_OPERAND : _bindgen_ty_1 = - 1 ; pub const RC_INVALID_MEMORY_OPERAND : _bindgen_ty_1 = - 2 ; pub const RC_INVALID_CONST_OPERAND : _bindgen_ty_1 = - 3 ; pub const RC_INVALID_FP_OPERAND : _bindgen_ty_1 = - 4 ; pub const RC_INVALID_CONDITION_TYPE : _bindgen_ty_1 = - 5 ; pub const RC_INVALID_OPERATOR : _bindgen_ty_1 = - 6 ; pub const RC_INVALID_REQUIRED_HITS : _bindgen_ty_1 = - 7 ; pub const RC_DUPLICATED_START : _bindgen_ty_1 = - 8 ; pub const RC_DUPLICATED_CANCEL : _bindgen_ty_1 = - 9 ; pub const RC_DUPLICATED_SUBMIT : _bindgen_ty_1 = - 10 ; pub const RC_DUPLICATED_VALUE : _bindgen_ty_1 = - 11 ; pub const RC_DUPLICATED_PROGRESS : _bindgen_ty_1 = - 12 ; pub const RC_MISSING_START : _bindgen_ty_1 = - 13 ; pub const RC_MISSING_CANCEL : _bindgen_ty_1 = - 14 ; pub const RC_MISSING_SUBMIT : _bindgen_ty_1 = - 15 ; pub const RC_MISSING_VALUE : _bindgen_ty_1 = - 16 ; pub const RC_INVALID_LBOARD_FIELD : _bindgen_ty_1 = - 17 ; pub const RC_MISSING_DISPLAY_STRING : _bindgen_ty_1 = - 18 ; pub const RC_OUT_OF_MEMORY : _bindgen_ty_1 = - 19 ; pub const RC_INVALID_VALUE_FLAG : _bindgen_ty_1 = - 20 ; pub const RC_MISSING_VALUE_MEASURED : _bindgen_ty_1 = - 21 ; pub const RC_MULTIPLE_MEASURED : _bindgen_ty_1 = - 22 ; pub const RC_INVALID_MEASURED_TARGET : _bindgen_ty_1 = - 23 ; pub const RC_INVALID_COMPARISON : _bindgen_ty_1 = - 24 ; pub const RC_INVALID_STATE : _bindgen_ty_1 = - 25 ; pub const RC_INVALID_JSON : _bindgen_ty_1 = - 26 ; pub const RC_API_FAILURE : _bindgen_ty_1 = - 27 ; pub const RC_LOGIN_REQUIRED : _bindgen_ty_1 = - 28 ; pub const RC_NO_GAME_LOADED : _bindgen_ty_1 = - 29 ; pub const RC_HARDCORE_DISABLED : _bindgen_ty_1 = - 30 ; pub const RC_ABORTED : _bindgen_ty_1 = - 31 ; pub const RC_NO_RESPONSE : _bindgen_ty_1 = - 32 ; pub const RC_ACCESS_DENIED : _bindgen_ty_1 = - 33 ; pub const RC_INVALID_CREDENTIALS : _bindgen_ty_1 = - 34 ; pub const RC_EXPIRED_TOKEN : _bindgen_ty_1 = - 35 ; pub const RC_INSUFFICIENT_BUFFER : _bindgen_ty_1 = - 36 ; pub const RC_INVALID_VARIABLE_NAME : _bindgen_ty_1 = - 37 ; pub const RC_UNKNOWN_VARIABLE_NAME : _bindgen_ty_1 = - 38 ; # [doc = "\\\n| Return values                                                               |\n\\"] pub type _bindgen_ty_1 = :: core :: ffi :: c_int ; extern "C" { pub fn rc_error_str (ret : :: core :: ffi :: c_int) -> * const :: core :: ffi :: c_char ; } pub type wchar_t = :: core :: ffi :: c_int ; # [repr (C)] # [repr (align (16))] # [derive (Debug , Copy , Clone)] pub struct max_align_t { pub __clang_max_align_nonce1 : :: core :: ffi :: c_longlong , pub __bindgen_padding_0 : u64 , pub __clang_max_align_nonce2 : u128 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of max_align_t"] [:: core :: mem :: size_of :: < max_align_t > () - 32usize] ; ["Alignment of max_align_t"] [:: core :: mem :: align_of :: < max_align_t > () - 16usize] ; ["Offset of field: max_align_t::__clang_max_align_nonce1"] [:: core :: mem :: offset_of ! (max_align_t , __clang_max_align_nonce1) - 0usize] ; ["Offset of field: max_align_t::__clang_max_align_nonce2"] [:: core :: mem :: offset_of ! (max_align_t , __clang_max_align_nonce2) - 16usize] ; } ; pub type __u_char = :: core :: ffi :: c_uchar ; pub type __u_short = :: core :: ffi :: c_ushort ; pub type __u_int = :: core :: ffi :: c_uint ; pub type __u_long = :: core :: ffi :: c_ulong ; pub type __int8_t = :: core :: ffi :: c_schar ; pub type __uint8_t = :: core :: ffi :: c_uchar ; pub type __int16_t = :: core :: ffi :: c_short ; pub type __uint16_t = :: core :: ffi :: c_ushort ; pub type __int32_t = :: core :: ffi :: c_int ; pub type __uint32_t = :: core :: ffi :: c_uint ; pub type __int64_t = :: core :: ffi :: c_long ; pub type __uint64_t = :: core :: ffi :: c_ulong ; pub type __int_least8_t = __int8_t ; pub type __uint_least8_t = __uint8_t ; pub type __int_least16_t = __int16_t ; pub type __uint_least16_t = __uint16_t ; pub type __int_least32_t = __int32_t ; pub type __uint_least32_t = __uint32_t ; pub type __int_least64_t = __int64_t ; pub type __uint_least64_t = __uint64_t ; pub type __quad_t = :: core :: ffi :: c_long ; pub type __u_quad_t = :: core :: ffi :: c_ulong ; pub type __intmax_t = :: core :: ffi :: c_long ; pub type __uintmax_t = :: core :: ffi :: c_ulong ; pub type __dev_t = :: core :: ffi :: c_ulong ; pub type __uid_t = :: core :: ffi :: c_uint ; pub type __gid_t = :: core :: ffi :: c_uint ; pub type __ino_t = :: core :: ffi :: c_ulong ; pub type __ino64_t = :: core :: ffi :: c_ulong ; pub type __mode_t = :: core :: ffi :: c_uint ; pub type __nlink_t = :: core :: ffi :: c_ulong ; pub type __off_t = :: core :: ffi :: c_long ; pub type __off64_t = :: core :: ffi :: c_long ; pub type __pid_t = :: core :: ffi :: c_int ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __fsid_t { pub __val : [:: core :: ffi :: c_int ; 2usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __fsid_t"] [:: core :: mem :: size_of :: < __fsid_t > () - 8usize] ; ["Alignment of __fsid_t"] [:: core :: mem :: align_of :: < __fsid_t > () - 4usize] ; ["Offset of field: __fsid_t::__val"] [:: core :: mem :: offset_of ! (__fsid_t , __val) - 0usize] ; } ; pub type __clock_t = :: core :: ffi :: c_long ; pub type __rlim_t = :: core :: ffi :: c_ulong ; pub type __rlim64_t = :: core :: ffi :: c_ulong ; pub type __id_t = :: core :: ffi :: c_uint ; pub type __time_t = :: core :: ffi :: c_long ; pub type __useconds_t = :: core :: ffi :: c_uint ; pub type __suseconds_t = :: core :: ffi :: c_long ; pub type __suseconds64_t = :: core :: ffi :: c_long ; pub type __daddr_t = :: core :: ffi :: c_int ; pub type __key_t = :: core :: ffi :: c_int ; pub type __clockid_t = :: core :: ffi :: c_int ; pub type __timer_t = * mut :: core :: ffi :: c_void ; pub type __blksize_t = :: core :: ffi :: c_long ; pub type __blkcnt_t = :: core :: ffi :: c_long ; pub type __blkcnt64_t = :: core :: ffi :: c_long ; pub type __fsblkcnt_t = :: core :: ffi :: c_ulong ; pub type __fsblkcnt64_t = :: core :: ffi :: c_ulong ; pub type __fsfilcnt_t = :: core :: ffi :: c_ulong ; pub type __fsfilcnt64_t = :: core :: ffi :: c_ulong ; pub type __fsword_t = :: core :: ffi :: c_long ; pub type __ssize_t = :: core :: ffi :: c_long ; pub type __syscall_slong_t = :: core :: ffi :: c_long ; pub type __syscall_ulong_t = :: core :: ffi :: c_ulong ; pub type __loff_t = __off64_t ; pub type __caddr_t = * mut :: core :: ffi :: c_char ; pub type __intptr_t = :: core :: ffi :: c_long ; pub type __socklen_t = :: core :: ffi :: c_uint ; pub type __sig_atomic_t = :: core :: ffi :: c_int ; pub type int_least8_t = __int_least8_t ; pub type int_least16_t = __int_least16_t ; pub type int_least32_t = __int_least32_t ; pub type int_least64_t = __int_least64_t ; pub type uint_least8_t = __uint_least8_t ; pub type uint_least16_t = __uint_least16_t ; pub type uint_least32_t = __uint_least32_t ; pub type uint_least64_t = __uint_least64_t ; pub type int_fast8_t = :: core :: ffi :: c_schar ; pub type int_fast16_t = :: core :: ffi :: c_long ; pub type int_fast32_t = :: core :: ffi :: c_long ; pub type int_fast64_t = :: core :: ffi :: c_long ; pub type uint_fast8_t = :: core :: ffi :: c_uchar ; pub type uint_fast16_t = :: core :: ffi :: c_ulong ; pub type uint_fast32_t = :: core :: ffi :: c_ulong ; pub type uint_fast64_t = :: core :: ffi :: c_ulong ; pub type intmax_t = __intmax_t ; pub type uintmax_t = __uintmax_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct lua_State { _unused : [u8 ; 0] , } # [doc = " Callback used to read num_bytes bytes from memory starting at address. If\n num_bytes is greater than 1, the value is read in little-endian from\n memory."] pub type rc_peek_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , num_bytes : u32 , ud : * mut :: core :: ffi :: c_void) -> u32 > ; pub const RC_MEMSIZE_8_BITS : _bindgen_ty_2 = 0 ; pub const RC_MEMSIZE_16_BITS : _bindgen_ty_2 = 1 ; pub const RC_MEMSIZE_24_BITS : _bindgen_ty_2 = 2 ; pub const RC_MEMSIZE_32_BITS : _bindgen_ty_2 = 3 ; pub const RC_MEMSIZE_LOW : _bindgen_ty_2 = 4 ; pub const RC_MEMSIZE_HIGH : _bindgen_ty_2 = 5 ; pub const RC_MEMSIZE_BIT_0 : _bindgen_ty_2 = 6 ; pub const RC_MEMSIZE_BIT_1 : _bindgen_ty_2 = 7 ; pub const RC_MEMSIZE_BIT_2 : _bindgen_ty_2 = 8 ; pub const RC_MEMSIZE_BIT_3 : _bindgen_ty_2 = 9 ; pub const RC_MEMSIZE_BIT_4 : _bindgen_ty_2 = 10 ; pub const RC_MEMSIZE_BIT_5 : _bindgen_ty_2 = 11 ; pub const RC_MEMSIZE_BIT_6 : _bindgen_ty_2 = 12 ; pub const RC_MEMSIZE_BIT_7 : _bindgen_ty_2 = 13 ; pub const RC_MEMSIZE_BITCOUNT : _bindgen_ty_2 = 14 ; pub const RC_MEMSIZE_16_BITS_BE : _bindgen_ty_2 = 15 ; pub const RC_MEMSIZE_24_BITS_BE : _bindgen_ty_2 = 16 ; pub const RC_MEMSIZE_32_BITS_BE : _bindgen_ty_2 = 17 ; pub const RC_MEMSIZE_FLOAT : _bindgen_ty_2 = 18 ; pub const RC_MEMSIZE_MBF32 : _bindgen_ty_2 = 19 ; pub const RC_MEMSIZE_MBF32_LE : _bindgen_ty_2 = 20 ; pub const RC_MEMSIZE_FLOAT_BE : _bindgen_ty_2 = 21 ; pub const RC_MEMSIZE_DOUBLE32 : _bindgen_ty_2 = 22 ; pub const RC_MEMSIZE_DOUBLE32_BE : _bindgen_ty_2 = 23 ; pub const RC_MEMSIZE_VARIABLE : _bindgen_ty_2 = 24 ; # [doc = "\\\n| Memory References                                                           |\n\\"] pub type _bindgen_ty_2 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memref_value_t { pub value : u32 , pub prior : u32 , pub size : u8 , pub changed : u8 , pub type_ : u8 , pub is_indirect : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memref_value_t"] [:: core :: mem :: size_of :: < rc_memref_value_t > () - 12usize] ; ["Alignment of rc_memref_value_t"] [:: core :: mem :: align_of :: < rc_memref_value_t > () - 4usize] ; ["Offset of field: rc_memref_value_t::value"] [:: core :: mem :: offset_of ! (rc_memref_value_t , value) - 0usize] ; ["Offset of field: rc_memref_value_t::prior"] [:: core :: mem :: offset_of ! (rc_memref_value_t , prior) - 4usize] ; ["Offset of field: rc_memref_value_t::size"] [:: core :: mem :: offset_of ! (rc_memref_value_t , size) - 8usize] ; ["Offset of field: rc_memref_value_t::changed"] [:: core :: mem :: offset_of ! (rc_memref_value_t , changed) - 9usize] ; ["Offset of field: rc_memref_value_t::type_"] [:: core :: mem :: offset_of ! (rc_memref_value_t , type_) - 10usize] ; ["Offset of field: rc_memref_value_t::is_indirect"] [:: core :: mem :: offset_of ! (rc_memref_value_t , is_indirect) - 11usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memref_t { pub value : rc_memref_value_t , pub address : u32 , pub next : * mut rc_memref_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memref_t"] [:: core :: mem :: size_of :: < rc_memref_t > () - 24usize] ; ["Alignment of rc_memref_t"] [:: core :: mem :: align_of :: < rc_memref_t > () - 8usize] ; ["Offset of field: rc_memref_t::value"] [:: core :: mem :: offset_of ! (rc_memref_t , value) - 0usize] ; ["Offset of field: rc_memref_t::address"] [:: core :: mem :: offset_of ! (rc_memref_t , address) - 12usize] ; ["Offset of field: rc_memref_t::next"] [:: core :: mem :: offset_of ! (rc_memref_t , next) - 16usize] ; } ; pub const RC_OPERAND_ADDRESS : _bindgen_ty_3 = 0 ; pub const RC_OPERAND_DELTA : _bindgen_ty_3 = 1 ; pub const RC_OPERAND_CONST : _bindgen_ty_3 = 2 ; pub const RC_OPERAND_FP : _bindgen_ty_3 = 3 ; pub const RC_OPERAND_LUA : _bindgen_ty_3 = 4 ; pub const RC_OPERAND_PRIOR : _bindgen_ty_3 = 5 ; pub const RC_OPERAND_BCD : _bindgen_ty_3 = 6 ; pub const RC_OPERAND_INVERTED : _bindgen_ty_3 = 7 ; pub const RC_OPERAND_RECALL : _bindgen_ty_3 = 8 ; # [doc = "\\\n| Operands                                                                    |\n\\"] pub type _bindgen_ty_3 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Copy , Clone)] pub struct rc_operand_t { pub value : rc_operand_t__bindgen_ty_1 , pub type_ : u8 , pub size : u8 , } # [repr (C)] # [derive (Copy , Clone)] pub union rc_operand_t__bindgen_ty_1 { pub memref : * mut rc_memref_t , pub num : u32 , pub dbl : f64 , pub luafunc : :: core :: ffi :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_operand_t__bindgen_ty_1"] [:: core :: mem :: size_of :: < rc_operand_t__bindgen_ty_1 > () - 8usize] ; ["Alignment of rc_operand_t__bindgen_ty_1"] [:: core :: mem :: align_of :: < rc_operand_t__bindgen_ty_1 > () - 8usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::memref"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , memref) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::num"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , num) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::dbl"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , dbl) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::luafunc"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , luafunc) - 0usize] ; } ; impl :: core :: fmt :: Debug for rc_operand_t__bindgen_ty_1 { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_operand_t__bindgen_ty_1 {{ union }}") } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_operand_t"] [:: core :: mem :: size_of :: < rc_operand_t > () - 16usize] ; ["Alignment of rc_operand_t"] [:: core :: mem :: align_of :: < rc_operand_t > () - 8usize] ; ["Offset of field: rc_operand_t::value"] [:: core :: mem :: offset_of ! (rc_operand_t , value) - 0usize] ; ["Offset of field: rc_operand_t::type_"] [:: core :: mem :: offset_of ! (rc_operand_t , type_) - 8usize] ; ["Offset of field: rc_operand_t::size"] [:: core :: mem :: offset_of ! (rc_operand_t , size) - 9usize] ; } ; impl :: core :: fmt :: Debug for rc_operand_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_operand_t {{ value: {:?}, type: {:?}, size: {:?} }}" , self . value , self . type_ , self . size) } } extern "C" { pub fn rc_operand_is_memref (operand : * const rc_operand_t) -> :: core :: ffi :: c_int ; } pub const RC_CONDITION_STANDARD : _bindgen_ty_4 = 0 ; pub const RC_CONDITION_PAUSE_IF : _bindgen_ty_4 = 1 ; pub const RC_CONDITION_RESET_IF : _bindgen_ty_4 = 2 ; pub const RC_CONDITION_MEASURED_IF : _bindgen_ty_4 = 3 ; pub const RC_CONDITION_TRIGGER : _bindgen_ty_4 = 4 ; pub const RC_CONDITION_MEASURED : _bindgen_ty_4 = 5 ; pub const RC_CONDITION_ADD_SOURCE : _bindgen_ty_4 = 6 ; pub const RC_CONDITION_SUB_SOURCE : _bindgen_ty_4 = 7 ; pub const RC_CONDITION_ADD_ADDRESS : _bindgen_ty_4 = 8 ; pub const RC_CONDITION_REMEMBER : _bindgen_ty_4 = 9 ; pub const RC_CONDITION_ADD_HITS : _bindgen_ty_4 = 10 ; pub const RC_CONDITION_SUB_HITS : _bindgen_ty_4 = 11 ; pub const RC_CONDITION_RESET_NEXT_IF : _bindgen_ty_4 = 12 ; pub const RC_CONDITION_AND_NEXT : _bindgen_ty_4 = 13 ; pub const RC_CONDITION_OR_NEXT : _bindgen_ty_4 = 14 ; # [doc = "\\\n| Conditions                                                                  |\n\\"] pub type _bindgen_ty_4 = :: core :: ffi :: c_uint ; pub const RC_OPERATOR_EQ : _bindgen_ty_5 = 0 ; pub const RC_OPERATOR_LT : _bindgen_ty_5 = 1 ; pub const RC_OPERATOR_LE : _bindgen_ty_5 = 2 ; pub const RC_OPERATOR_GT : _bindgen_ty_5 = 3 ; pub const RC_OPERATOR_GE : _bindgen_ty_5 = 4 ; pub const RC_OPERATOR_NE : _bindgen_ty_5 = 5 ; pub const RC_OPERATOR_NONE : _bindgen_ty_5 = 6 ; pub const RC_OPERATOR_MULT : _bindgen_ty_5 = 7 ; pub const RC_OPERATOR_DIV : _bindgen_ty_5 = 8 ; pub const RC_OPERATOR_AND : _bindgen_ty_5 = 9 ; pub const RC_OPERATOR_XOR : _bindgen_ty_5 = 10 ; pub const RC_OPERATOR_MOD : _bindgen_ty_5 = 11 ; pub const RC_OPERATOR_ADD : _bindgen_ty_5 = 12 ; pub const RC_OPERATOR_SUB : _bindgen_ty_5 = 13 ; pub type _bindgen_ty_5 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Copy , Clone)] pub struct rc_condition_t { pub operand1 : rc_operand_t , pub operand2 : rc_operand_t , pub required_hits : u32 , pub current_hits : u32 , pub next : * mut rc_condition_t , pub type_ : u8 , pub oper : u8 , pub pause : u8 , pub is_true : u8 , pub optimized_comparator : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_condition_t"] [:: core :: mem :: size_of :: < rc_condition_t > () - 56usize] ; ["Alignment of rc_condition_t"] [:: core :: mem :: align_of :: < rc_condition_t > () - 8usize] ; ["Offset of field: rc_condition_t::operand1"] [:: core :: mem :: offset_of ! (rc_condition_t , operand1) - 0usize] ; ["Offset of field: rc_condition_t::operand2"] [:: core :: mem :: offset_of ! (rc_condition_t , operand2) - 16usize] ; ["Offset of field: rc_condition_t::required_hits"] [:: core :: mem :: offset_of ! (rc_condition_t , required_hits) - 32usize] ; ["Offset of field: rc_condition_t::current_hits"] [:: core :: mem :: offset_of ! (rc_condition_t , current_hits) - 36usize] ; ["Offset of field: rc_condition_t::next"] [:: core :: mem :: offset_of ! (rc_condition_t , next) - 40usize] ; ["Offset of field: rc_condition_t::type_"] [:: core :: mem :: offset_of ! (rc_condition_t , type_) - 48usize] ; ["Offset of field: rc_condition_t::oper"] [:: core :: mem :: offset_of ! (rc_condition_t , oper) - 49usize] ; ["Offset of field: rc_condition_t::pause"] [:: core :: mem :: offset_of ! (rc_condition_t , pause) - 50usize] ; ["Offset of field: rc_condition_t::is_true"] [:: core :: mem :: offset_of ! (rc_condition_t , is_true) - 51usize] ; ["Offset of field: rc_condition_t::optimized_comparator"] [:: core :: mem :: offset_of ! (rc_condition_t , optimized_comparator) - 52usize] ; } ; impl :: core :: fmt :: Debug for rc_condition_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_condition_t {{ operand1: {:?}, operand2: {:?}, required_hits: {:?}, current_hits: {:?}, next: {:?}, type: {:?}, oper: {:?}, pause: {:?}, is_true: {:?}, optimized_comparator: {:?} }}" , self . operand1 , self . operand2 , self . required_hits , self . current_hits , self . next , self . type_ , self . oper , self . pause , self . is_true , self . optimized_comparator) } } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_condset_t { pub next : * mut rc_condset_t , pub conditions : * mut rc_condition_t , pub has_pause : u8 , pub is_paused : u8 , pub has_indirect_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_condset_t"] [:: core :: mem :: size_of :: < rc_condset_t > () - 24usize] ; ["Alignment of rc_condset_t"] [:: core :: mem :: align_of :: < rc_condset_t > () - 8usize] ; ["Offset of field: rc_condset_t::next"] [:: core :: mem :: offset_of ! (rc_condset_t , next) - 0usize] ; ["Offset of field: rc_condset_t::conditions"] [:: core :: mem :: offset_of ! (rc_condset_t , conditions) - 8usize] ; ["Offset of field: rc_condset_t::has_pause"] [:: core :: mem :: offset_of ! (rc_condset_t , has_pause) - 16usize] ; ["Offset of field: rc_condset_t::is_paused"] [:: core :: mem :: offset_of ! (rc_condset_t , is_paused) - 17usize] ; ["Offset of field: rc_condset_t::has_indirect_memrefs"] [:: core :: mem :: offset_of ! (rc_condset_t , has_indirect_memrefs) - 18usize] ; } ; pub const RC_TRIGGER_STATE_INACTIVE : _bindgen_ty_6 = 0 ; pub const RC_TRIGGER_STATE_WAITING : _bindgen_ty_6 = 1 ; pub const RC_TRIGGER_STATE_ACTIVE : _bindgen_ty_6 = 2 ; pub const RC_TRIGGER_STATE_PAUSED : _bindgen_ty_6 = 3 ; pub const RC_TRIGGER_STATE_RESET : _bindgen_ty_6 = 4 ; pub const RC_TRIGGER_STATE_TRIGGERED : _bindgen_ty_6 = 5 ; pub const RC_TRIGGER_STATE_PRIMED : _bindgen_ty_6 = 6 ; pub const RC_TRIGGER_STATE_DISABLED : _bindgen_ty_6 = 7 ; # [doc = "\\\n| Trigger                                                                     |\n\\"] pub type _bindgen_ty_6 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_trigger_t { pub requirement : * mut rc_condset_t , pub alternative : * mut rc_condset_t , pub memrefs : * mut rc_memref_t , pub measured_value : u32 , pub measured_target : u32 , pub state : u8 , pub has_hits : u8 , pub has_required_hits : u8 , pub measured_as_percent : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_trigger_t"] [:: core :: mem :: size_of :: < rc_trigger_t > () - 40usize] ; ["Alignment of rc_trigger_t"] [:: core :: mem :: align_of :: < rc_trigger_t > () - 8usize] ; ["Offset of field: rc_trigger_t::requirement"] [:: core :: mem :: offset_of ! (rc_trigger_t , requirement) - 0usize] ; ["Offset of field: rc_trigger_t::alternative"] [:: core :: mem :: offset_of ! (rc_trigger_t , alternative) - 8usize] ; ["Offset of field: rc_trigger_t::memrefs"] [:: core :: mem :: offset_of ! (rc_trigger_t , memrefs) - 16usize] ; ["Offset of field: rc_trigger_t::measured_value"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_value) - 24usize] ; ["Offset of field: rc_trigger_t::measured_target"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_target) - 28usize] ; ["Offset of field: rc_trigger_t::state"] [:: core :: mem :: offset_of ! (rc_trigger_t , state) - 32usize] ; ["Offset of field: rc_trigger_t::has_hits"] [:: core :: mem :: offset_of ! (rc_trigger_t , has_hits) - 33usize] ; ["Offset of field: rc_trigger_t::has_required_hits"] [:: core :: mem :: offset_of ! (rc_trigger_t , has_required_hits) - 34usize] ; ["Offset of field: rc_trigger_t::measured_as_percent"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_as_percent) - 35usize] ; } ; extern "C" { pub fn rc_trigger_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_trigger (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_trigger_t ; } extern "C" { pub fn rc_evaluate_trigger (trigger : * mut rc_trigger_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_test_trigger (trigger : * mut rc_trigger_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_trigger (self_ : * mut rc_trigger_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_value_t { pub value : rc_memref_value_t , pub conditions : * mut rc_condset_t , pub memrefs : * mut rc_memref_t , pub name : * const :: core :: ffi :: c_char , pub next : * mut rc_value_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_value_t"] [:: core :: mem :: size_of :: < rc_value_t > () - 48usize] ; ["Alignment of rc_value_t"] [:: core :: mem :: align_of :: < rc_value_t > () - 8usize] ; ["Offset of field: rc_value_t::value"] [:: core :: mem :: offset_of ! (rc_value_t , value) - 0usize] ; ["Offset of field: rc_value_t::conditions"] [:: core :: mem :: offset_of ! (rc_value_t , conditions) - 16usize] ; ["Offset of field: rc_value_t::memrefs"] [:: core :: mem :: offset_of ! (rc_value_t , memrefs) - 24usize] ; ["Offset of field: rc_value_t::name"] [:: core :: mem :: offset_of ! (rc_value_t , name) - 32usize] ; ["Offset of field: rc_value_t::next"] [:: core :: mem :: offset_of ! (rc_value_t , next) - 40usize] ; } ; extern "C" { pub fn rc_value_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_value (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_value_t ; } extern "C" { pub fn rc_evaluate_value (value : * mut rc_value_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> i32 ; } pub const RC_LBOARD_STATE_INACTIVE : _bindgen_ty_7 = 0 ; pub const RC_LBOARD_STATE_WAITING : _bindgen_ty_7 = 1 ; pub const RC_LBOARD_STATE_ACTIVE : _bindgen_ty_7 = 2 ; pub const RC_LBOARD_STATE_STARTED : _bindgen_ty_7 = 3 ; pub const RC_LBOARD_STATE_CANCELED : _bindgen_ty_7 = 4 ; pub const RC_LBOARD_STATE_TRIGGERED : _bindgen_ty_7 = 5 ; pub const RC_LBOARD_STATE_DISABLED : _bindgen_ty_7 = 6 ; # [doc = "\\\n| Leaderboards                                                                |\n\\"] pub type _bindgen_ty_7 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_lboard_t { pub start : rc_trigger_t , pub submit : rc_trigger_t , pub cancel : rc_trigger_t , pub value : rc_value_t , pub progress : * mut rc_value_t , pub memrefs : * mut rc_memref_t , pub state : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_lboard_t"] [:: core :: mem :: size_of :: < rc_lboard_t > () - 192usize] ; ["Alignment of rc_lboard_t"] [:: core :: mem :: align_of :: < rc_lboard_t > () - 8usize] ; ["Offset of field: rc_lboard_t::start"] [:: core :: mem :: offset_of ! (rc_lboard_t , start) - 0usize] ; ["Offset of field: rc_lboard_t::submit"] [:: core :: mem :: offset_of ! (rc_lboard_t , submit) - 40usize] ; ["Offset of field: rc_lboard_t::cancel"] [:: core :: mem :: offset_of ! (rc_lboard_t , cancel) - 80usize] ; ["Offset of field: rc_lboard_t::value"] [:: core :: mem :: offset_of ! (rc_lboard_t , value) - 120usize] ; ["Offset of field: rc_lboard_t::progress"] [:: core :: mem :: offset_of ! (rc_lboard_t , progress) - 168usize] ; ["Offset of field: rc_lboard_t::memrefs"] [:: core :: mem :: offset_of ! (rc_lboard_t , memrefs) - 176usize] ; ["Offset of field: rc_lboard_t::state"] [:: core :: mem :: offset_of ! (rc_lboard_t , state) - 184usize] ; } ; extern "C" { pub fn rc_lboard_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_lboard (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_lboard_t ; } extern "C" { pub fn rc_evaluate_lboard (lboard : * mut rc_lboard_t , value : * mut i32 , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_lboard (lboard : * mut rc_lboard_t) ; } pub const RC_FORMAT_FRAMES : _bindgen_ty_8 = 0 ; pub const RC_FORMAT_SECONDS : _bindgen_ty_8 = 1 ; pub const RC_FORMAT_CENTISECS : _bindgen_ty_8 = 2 ; pub const RC_FORMAT_SCORE : _bindgen_ty_8 = 3 ; pub const RC_FORMAT_VALUE : _bindgen_ty_8 = 4 ; pub const RC_FORMAT_MINUTES : _bindgen_ty_8 = 5 ; pub const RC_FORMAT_SECONDS_AS_MINUTES : _bindgen_ty_8 = 6 ; pub const RC_FORMAT_FLOAT1 : _bindgen_ty_8 = 7 ; pub const RC_FORMAT_FLOAT2 : _bindgen_ty_8 = 8 ; pub const RC_FORMAT_FLOAT3 : _bindgen_ty_8 = 9 ; pub const RC_FORMAT_FLOAT4 : _bindgen_ty_8 = 10 ; pub const RC_FORMAT_FLOAT5 : _bindgen_ty_8 = 11 ; pub const RC_FORMAT_FLOAT6 : _bindgen_ty_8 = 12 ; pub const RC_FORMAT_FIXED1 : _bindgen_ty_8 = 13 ; pub const RC_FORMAT_FIXED2 : _bindgen_ty_8 = 14 ; pub const RC_FORMAT_FIXED3 : _bindgen_ty_8 = 15 ; pub const RC_FORMAT_TENS : _bindgen_ty_8 = 16 ; pub const RC_FORMAT_HUNDREDS : _bindgen_ty_8 = 17 ; pub const RC_FORMAT_THOUSANDS : _bindgen_ty_8 = 18 ; pub const RC_FORMAT_UNSIGNED_VALUE : _bindgen_ty_8 = 19 ; # [doc = "\\\n| Value formatting                                                            |\n\\"] pub type _bindgen_ty_8 = :: core :: ffi :: c_uint ; extern "C" { pub fn rc_parse_format (format_str : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_format_value (buffer : * mut :: core :: ffi :: c_char , size : :: core :: ffi :: c_int , value : i32 , format : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_lookup_item_t { pub first : u32 , pub last : u32 , pub left : * mut rc_richpresence_lookup_item_t , pub right : * mut rc_richpresence_lookup_item_t , pub label : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_lookup_item_t"] [:: core :: mem :: size_of :: < rc_richpresence_lookup_item_t > () - 32usize] ; ["Alignment of rc_richpresence_lookup_item_t"] [:: core :: mem :: align_of :: < rc_richpresence_lookup_item_t > () - 8usize] ; ["Offset of field: rc_richpresence_lookup_item_t::first"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , first) - 0usize] ; ["Offset of field: rc_richpresence_lookup_item_t::last"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , last) - 4usize] ; ["Offset of field: rc_richpresence_lookup_item_t::left"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , left) - 8usize] ; ["Offset of field: rc_richpresence_lookup_item_t::right"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , right) - 16usize] ; ["Offset of field: rc_richpresence_lookup_item_t::label"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , label) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_lookup_t { pub root : * mut rc_richpresence_lookup_item_t , pub next : * mut rc_richpresence_lookup_t , pub name : * const :: core :: ffi :: c_char , pub default_label : * const :: core :: ffi :: c_char , pub format : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_lookup_t"] [:: core :: mem :: size_of :: < rc_richpresence_lookup_t > () - 40usize] ; ["Alignment of rc_richpresence_lookup_t"] [:: core :: mem :: align_of :: < rc_richpresence_lookup_t > () - 8usize] ; ["Offset of field: rc_richpresence_lookup_t::root"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , root) - 0usize] ; ["Offset of field: rc_richpresence_lookup_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , next) - 8usize] ; ["Offset of field: rc_richpresence_lookup_t::name"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , name) - 16usize] ; ["Offset of field: rc_richpresence_lookup_t::default_label"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , default_label) - 24usize] ; ["Offset of field: rc_richpresence_lookup_t::format"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , format) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_display_part_t { pub next : * mut rc_richpresence_display_part_t , pub text : * const :: core :: ffi :: c_char , pub lookup : * mut rc_richpresence_lookup_t , pub value : * mut rc_memref_value_t , pub display_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_display_part_t"] [:: core :: mem :: size_of :: < rc_richpresence_display_part_t > () - 40usize] ; ["Alignment of rc_richpresence_display_part_t"] [:: core :: mem :: align_of :: < rc_richpresence_display_part_t > () - 8usize] ; ["Offset of field: rc_richpresence_display_part_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , next) - 0usize] ; ["Offset of field: rc_richpresence_display_part_t::text"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , text) - 8usize] ; ["Offset of field: rc_richpresence_display_part_t::lookup"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , lookup) - 16usize] ; ["Offset of field: rc_richpresence_display_part_t::value"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , value) - 24usize] ; ["Offset of field: rc_richpresence_display_part_t::display_type"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , display_type) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_display_t { pub trigger : rc_trigger_t , pub next : * mut rc_richpresence_display_t , pub display : * mut rc_richpresence_display_part_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_display_t"] [:: core :: mem :: size_of :: < rc_richpresence_display_t > () - 56usize] ; ["Alignment of rc_richpresence_display_t"] [:: core :: mem :: align_of :: < rc_richpresence_display_t > () - 8usize] ; ["Offset of field: rc_richpresence_display_t::trigger"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , trigger) - 0usize] ; ["Offset of field: rc_richpresence_display_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , next) - 40usize] ; ["Offset of field: rc_richpresence_display_t::display"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , display) - 48usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_t { pub first_display : * mut rc_richpresence_display_t , pub first_lookup : * mut rc_richpresence_lookup_t , pub memrefs : * mut rc_memref_t , pub variables : * mut rc_value_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_t"] [:: core :: mem :: size_of :: < rc_richpresence_t > () - 32usize] ; ["Alignment of rc_richpresence_t"] [:: core :: mem :: align_of :: < rc_richpresence_t > () - 8usize] ; ["Offset of field: rc_richpresence_t::first_display"] [:: core :: mem :: offset_of ! (rc_richpresence_t , first_display) - 0usize] ; ["Offset of field: rc_richpresence_t::first_lookup"] [:: core :: mem :: offset_of ! (rc_richpresence_t , first_lookup) - 8usize] ; ["Offset of field: rc_richpresence_t::memrefs"] [:: core :: mem :: offset_of ! (rc_richpresence_t , memrefs) - 16usize] ; ["Offset of field: rc_richpresence_t::variables"] [:: core :: mem :: offset_of ! (rc_richpresence_t , variables) - 24usize] ; } ; extern "C" { pub fn rc_richpresence_size (script : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_richpresence_size_lines (script : * const :: core :: ffi :: c_char , lines_read : * mut :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_richpresence (buffer : * mut :: core :: ffi :: c_void , script : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_richpresence_t ; } extern "C" { pub fn rc_evaluate_richpresence (richpresence : * mut rc_richpresence_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_update_richpresence (richpresence : * mut rc_richpresence_t , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) ; } extern "C" { pub fn rc_get_richpresence_display_string (richpresence : * mut rc_richpresence_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_richpresence (self_ : * mut rc_richpresence_t) ; } # [doc = " A block of memory for variable length data (like strings and arrays)."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_buffer_chunk_t { pub write : * mut u8 , pub end : * mut u8 , pub start : * mut u8 , pub next : * mut rc_buffer_chunk_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_buffer_chunk_t"] [:: core :: mem :: size_of :: < rc_buffer_chunk_t > () - 32usize] ; ["Alignment of rc_buffer_chunk_t"] [:: core :: mem :: align_of :: < rc_buffer_chunk_t > () - 8usize] ; ["Offset of field: rc_buffer_chunk_t::write"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , write) - 0usize] ; ["Offset of field: rc_buffer_chunk_t::end"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , end) - 8usize] ; ["Offset of field: rc_buffer_chunk_t::start"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , start) - 16usize] ; ["Offset of field: rc_buffer_chunk_t::next"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , next) - 24usize] ; } ; # [doc = " A preallocated block of memory for variable length data (like strings and arrays)."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_buffer_t { pub chunk : rc_buffer_chunk_t , pub data : [u8 ; 256usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_buffer_t"] [:: core :: mem :: size_of :: < rc_buffer_t > () - 288usize] ; ["Alignment of rc_buffer_t"] [:: core :: mem :: align_of :: < rc_buffer_t > () - 8usize] ; ["Offset of field: rc_buffer_t::chunk"] [:: core :: mem :: offset_of ! (rc_buffer_t , chunk) - 0usize] ; ["Offset of field: rc_buffer_t::data"] [:: core :: mem :: offset_of ! (rc_buffer_t , data) - 32usize] ; } ; extern "C" { pub fn rc_buffer_init (buffer : * mut rc_buffer_t) ; } extern "C" { pub fn rc_buffer_destroy (buffer : * mut rc_buffer_t) ; } extern "C" { pub fn rc_buffer_reserve (buffer : * mut rc_buffer_t , amount : usize) -> * mut u8 ; } extern "C" { pub fn rc_buffer_consume (buffer : * mut rc_buffer_t , start : * const u8 , end : * mut u8) ; } extern "C" { pub fn rc_buffer_alloc (buffer : * mut rc_buffer_t , amount : usize) -> * mut :: core :: ffi :: c_void ; } extern "C" { pub fn rc_buffer_strcpy (buffer : * mut rc_buffer_t , src : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn rc_buffer_strncpy (buffer : * mut rc_buffer_t , src : * const :: core :: ffi :: c_char , len : usize) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn rc_djb2 (input : * const :: core :: ffi :: c_char) -> u32 ; } extern "C" { pub fn rc_format_md5 (checksum : * mut :: core :: ffi :: c_char , digest : * const u8) ; } # [doc = " A constructed request to send to the retroachievements server."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_request_t { pub url : * const :: core :: ffi :: c_char , pub post_data : * const :: core :: ffi :: c_char , pub content_type : * const :: core :: ffi :: c_char , pub buffer : rc_buffer_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_request_t"] [:: core :: mem :: size_of :: < rc_api_request_t > () - 312usize] ; ["Alignment of rc_api_request_t"] [:: core :: mem :: align_of :: < rc_api_request_t > () - 8usize] ; ["Offset of field: rc_api_request_t::url"] [:: core :: mem :: offset_of ! (rc_api_request_t , url) - 0usize] ; ["Offset of field: rc_api_request_t::post_data"] [:: core :: mem :: offset_of ! (rc_api_request_t , post_data) - 8usize] ; ["Offset of field: rc_api_request_t::content_type"] [:: core :: mem :: offset_of ! (rc_api_request_t , content_type) - 16usize] ; ["Offset of field: rc_api_request_t::buffer"] [:: core :: mem :: offset_of ! (rc_api_request_t , buffer) - 24usize] ; } ; # [doc = " Common attributes for all server responses."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_response_t { pub succeeded : :: core :: ffi :: c_int , pub error_message : * const :: core :: ffi :: c_char , pub error_code : * const :: core :: ffi :: c_char , pub buffer : rc_buffer_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_response_t"] [:: core :: mem :: size_of :: < rc_api_response_t > () - 312usize] ; ["Alignment of rc_api_response_t"] [:: core :: mem :: align_of :: < rc_api_response_t > () - 8usize] ; ["Offset of field: rc_api_response_t::succeeded"] [:: core :: mem :: offset_of ! (rc_api_response_t , succeeded) - 0usize] ; ["Offset of field: rc_api_response_t::error_message"] [:: core :: mem :: offset_of ! (rc_api_response_t , error_message) - 8usize] ; ["Offset of field: rc_api_response_t::error_code"] [:: core :: mem :: offset_of ! (rc_api_response_t , error_code) - 16usize] ; ["Offset of field: rc_api_response_t::buffer"] [:: core :: mem :: offset_of ! (rc_api_response_t , buffer) - 24usize] ; } ; extern "C" { pub fn rc_api_destroy_request (request : * mut rc_api_request_t) ; } extern "C" { pub fn rc_api_set_host (hostname : * const :: core :: ffi :: c_char) ; } extern "C" { pub fn rc_api_set_image_host (hostname : * const :: core :: ffi :: c_char) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_server_response_t { pub body : * const :: core :: ffi :: c_char , pub body_length : usize , pub http_status_code : :: core :: ffi :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_server_response_t"] [:: core :: mem :: size_of :: < rc_api_server_response_t > () - 24usize] ; ["Alignment of rc_api_server_response_t"] [:: core :: mem :: align_of :: < rc_api_server_response_t > () - 8usize] ; ["Offset of field: rc_api_server_response_t::body"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , body) - 0usize] ; ["Offset of field: rc_api_server_response_t::body_length"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , body_length) - 8usize] ; ["Offset of field: rc_api_server_response_t::http_status_code"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , http_status_code) - 16usize] ; } ; pub const RC_API_SERVER_RESPONSE_CLIENT_ERROR : _bindgen_ty_9 = - 1 ; pub const RC_API_SERVER_RESPONSE_RETRYABLE_CLIENT_ERROR : _bindgen_ty_9 = - 2 ; pub type _bindgen_ty_9 = :: core :: ffi :: c_int ; pub type clock_t = __clock_t ; pub type time_t = __time_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct tm { pub tm_sec : :: core :: ffi :: c_int , pub tm_min : :: core :: ffi :: c_int , pub tm_hour : :: core :: ffi :: c_int , pub tm_mday : :: core :: ffi :: c_int , pub tm_mon : :: core :: ffi :: c_int , pub tm_year : :: core :: ffi :: c_int , pub tm_wday : :: core :: ffi :: c_int , pub tm_yday : :: core :: ffi :: c_int , pub tm_isdst : :: core :: ffi :: c_int , pub tm_gmtoff : :: core :: ffi :: c_long , pub tm_zone : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of tm"] [:: core :: mem :: size_of :: < tm > () - 56usize] ; ["Alignment of tm"] [:: core :: mem :: align_of :: < tm > () - 8usize] ; ["Offset of field: tm::tm_sec"] [:: core :: mem :: offset_of ! (tm , tm_sec) - 0usize] ; ["Offset of field: tm::tm_min"] [:: core :: mem :: offset_of ! (tm , tm_min) - 4usize] ; ["Offset of field: tm::tm_hour"] [:: core :: mem :: offset_of ! (tm , tm_hour) - 8usize] ; ["Offset of field: tm::tm_mday"] [:: core :: mem :: offset_of ! (tm , tm_mday) - 12usize] ; ["Offset of field: tm::tm_mon"] [:: core :: mem :: offset_of ! (tm , tm_mon) - 16usize] ; ["Offset of field: tm::tm_year"] [:: core :: mem :: offset_of ! (tm , tm_year) - 20usize] ; ["Offset of field: tm::tm_wday"] [:: core :: mem :: offset_of ! (tm , tm_wday) - 24usize] ; ["Offset of field: tm::tm_yday"] [:: core :: mem :: offset_of ! (tm , tm_yday) - 28usize] ; ["Offset of field: tm::tm_isdst"] [:: core :: mem :: offset_of ! (tm , tm_isdst) - 32usize] ; ["Offset of field: tm::tm_gmtoff"] [:: core :: mem :: offset_of ! (tm , tm_gmtoff) - 40usize] ; ["Offset of field: tm::tm_zone"] [:: core :: mem :: offset_of ! (tm , tm_zone) - 48usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct timespec { pub tv_sec : __time_t , pub tv_nsec : __syscall_slong_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of timespec"] [:: core :: mem :: size_of :: < timespec > () - 16usize] ; ["Alignment of timespec"] [:: core :: mem :: align_of :: < timespec > () - 8usize] ; ["Offset of field: timespec::tv_sec"] [:: core :: mem :: offset_of ! (timespec , tv_sec) - 0usize] ; ["Offset of field: timespec::tv_nsec"] [:: core :: mem :: offset_of ! (timespec , tv_nsec) - 8usize] ; } ; pub type clockid_t = __clockid_t ; pub type timer_t = __timer_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct itimerspec { pub it_interval : timespec , pub it_value : timespec , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of itimerspec"] [:: core :: mem :: size_of :: < itimerspec > () - 32usize] ; ["Alignment of itimerspec"] [:: core :: mem :: align_of :: < itimerspec > () - 8usize] ; ["Offset of field: itimerspec::it_interval"] [:: core :: mem :: offset_of ! (itimerspec , it_interval) - 0usize] ; ["Offset of field: itimerspec::it_value"] [:: core :: mem :: offset_of ! (itimerspec , it_value) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct sigevent { _unused : [u8 ; 0] , } pub type pid_t = __pid_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __locale_struct { pub __locales : [* mut __locale_data ; 13usize] , pub __ctype_b : * const :: core :: ffi :: c_ushort , pub __ctype_tolower : * const :: core :: ffi :: c_int , pub __ctype_toupper : * const :: core :: ffi :: c_int , pub __names : [* const :: core :: ffi :: c_char ; 13usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __locale_struct"] [:: core :: mem :: size_of :: < __locale_struct > () - 232usize] ; ["Alignment of __locale_struct"] [:: core :: mem :: align_of :: < __locale_struct > () - 8usize] ; ["Offset of field: __locale_struct::__locales"] [:: core :: mem :: offset_of ! (__locale_struct , __locales) - 0usize] ; ["Offset of field: __locale_struct::__ctype_b"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_b) - 104usize] ; ["Offset of field: __locale_struct::__ctype_tolower"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_tolower) - 112usize] ; ["Offset of field: __locale_struct::__ctype_toupper"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_toupper) - 120usize] ; ["Offset of field: __locale_struct::__names"] [:: core :: mem :: offset_of ! (__locale_struct , __names) - 128usize] ; } ; pub type __locale_t = * mut __locale_struct ; pub type locale_t = __locale_t ; extern "C" { pub fn clock () -> clock_t ; } extern "C" { pub fn time (__timer : * mut time_t) -> time_t ; } extern "C" { pub fn difftime (__time1 : time_t , __time0 : time_t) -> f64 ; } extern "C" { pub fn mktime (__tp : * mut tm) -> time_t ; } extern "C" { pub fn strftime (__s : * mut :: core :: ffi :: c_char , __maxsize : usize , __format : * const :: core :: ffi :: c_char , __tp : * const tm) -> usize ; } extern "C" { pub fn strftime_l (__s : * mut :: core :: ffi :: c_char , __maxsize : usize , __format : * const :: core :: ffi :: c_char , __tp : * const tm , __loc : locale_t) -> usize ; } extern "C" { pub fn gmtime (__timer : * const time_t) -> * mut tm ; } extern "C" { pub fn localtime (__timer : * const time_t) -> * mut tm ; } extern "C" { pub fn gmtime_r (__timer : * const time_t , __tp : * mut tm) -> * mut tm ; } extern "C" { pub fn localtime_r (__timer : * const time_t , __tp : * mut tm) -> * mut tm ; } extern "C" { pub fn asctime (__tp : * const tm) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn ctime (__timer : * const time_t) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn asctime_r (__tp : * const tm , __buf : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn ctime_r (__timer : * const time_t , __buf : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub static mut __tzname : [* mut :: core :: ffi :: c_char ; 2usize] ; } extern "C" { pub static mut __daylight : :: core :: ffi :: c_int ; } extern "C" { pub static mut __timezone : :: core :: ffi :: c_long ; } extern "C" { pub static mut tzname : [* mut :: core :: ffi :: c_char ; 2usize] ; } extern "C" { pub fn tzset () ; } extern "C" { pub static mut daylight : :: core :: ffi :: c_int ; } extern "C" { pub static mut timezone : :: core :: ffi :: c_long ; } extern "C" { pub fn timegm (__tp : * mut tm) -> time_t ; } extern "C" { pub fn timelocal (__tp : * mut tm) -> time_t ; } extern "C" { pub fn dysize (__year : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn nanosleep (__requested_time : * const timespec , __remaining : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_getres (__clock_id : clockid_t , __res : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_gettime (__clock_id : clockid_t , __tp : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_settime (__clock_id : clockid_t , __tp : * const timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_nanosleep (__clock_id : clockid_t , __flags : :: core :: ffi :: c_int , __req : * const timespec , __rem : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_getcpuclockid (__pid : pid_t , __clock_id : * mut clockid_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_create (__clock_id : clockid_t , __evp : * mut sigevent , __timerid : * mut timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_delete (__timerid : timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_settime (__timerid : timer_t , __flags : :: core :: ffi :: c_int , __value : * const itimerspec , __ovalue : * mut itimerspec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_gettime (__timerid : timer_t , __value : * mut itimerspec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_getoverrun (__timerid : timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timespec_get (__ts : * mut timespec , __base : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } # [doc = " API parameters for a login request.\n If both password and api_token are provided, api_token will be ignored."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_login_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub password : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_login_request_t"] [:: core :: mem :: size_of :: < rc_api_login_request_t > () - 24usize] ; ["Alignment of rc_api_login_request_t"] [:: core :: mem :: align_of :: < rc_api_login_request_t > () - 8usize] ; ["Offset of field: rc_api_login_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , username) - 0usize] ; ["Offset of field: rc_api_login_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_login_request_t::password"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , password) - 16usize] ; } ; # [doc = " Response data for a login request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_login_response_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub score : u32 , pub score_softcore : u32 , pub num_unread_messages : u32 , pub display_name : * const :: core :: ffi :: c_char , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_login_response_t"] [:: core :: mem :: size_of :: < rc_api_login_response_t > () - 352usize] ; ["Alignment of rc_api_login_response_t"] [:: core :: mem :: align_of :: < rc_api_login_response_t > () - 8usize] ; ["Offset of field: rc_api_login_response_t::username"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , username) - 0usize] ; ["Offset of field: rc_api_login_response_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , api_token) - 8usize] ; ["Offset of field: rc_api_login_response_t::score"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , score) - 16usize] ; ["Offset of field: rc_api_login_response_t::score_softcore"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , score_softcore) - 20usize] ; ["Offset of field: rc_api_login_response_t::num_unread_messages"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , num_unread_messages) - 24usize] ; ["Offset of field: rc_api_login_response_t::display_name"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , display_name) - 32usize] ; ["Offset of field: rc_api_login_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , response) - 40usize] ; } ; extern "C" { pub fn rc_api_init_login_request (request : * mut rc_api_request_t , api_params : * const rc_api_login_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_login_response (response : * mut rc_api_login_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_login_server_response (response : * mut rc_api_login_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_login_response (response : * mut rc_api_login_response_t) ; } # [doc = " API parameters for a start session request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_start_session_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub game_hash : * const :: core :: ffi :: c_char , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_start_session_request_t"] [:: core :: mem :: size_of :: < rc_api_start_session_request_t > () - 40usize] ; ["Alignment of rc_api_start_session_request_t"] [:: core :: mem :: align_of :: < rc_api_start_session_request_t > () - 8usize] ; ["Offset of field: rc_api_start_session_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , username) - 0usize] ; ["Offset of field: rc_api_start_session_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_start_session_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_start_session_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_start_session_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , hardcore) - 32usize] ; } ; # [doc = " Response data for an achievement unlock."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_unlock_entry_t { pub achievement_id : u32 , pub when : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_unlock_entry_t"] [:: core :: mem :: size_of :: < rc_api_unlock_entry_t > () - 16usize] ; ["Alignment of rc_api_unlock_entry_t"] [:: core :: mem :: align_of :: < rc_api_unlock_entry_t > () - 8usize] ; ["Offset of field: rc_api_unlock_entry_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_unlock_entry_t , achievement_id) - 0usize] ; ["Offset of field: rc_api_unlock_entry_t::when"] [:: core :: mem :: offset_of ! (rc_api_unlock_entry_t , when) - 8usize] ; } ; # [doc = " Response data for a start session request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_start_session_response_t { pub hardcore_unlocks : * mut rc_api_unlock_entry_t , pub unlocks : * mut rc_api_unlock_entry_t , pub num_hardcore_unlocks : u32 , pub num_unlocks : u32 , pub server_now : time_t , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_start_session_response_t"] [:: core :: mem :: size_of :: < rc_api_start_session_response_t > () - 344usize] ; ["Alignment of rc_api_start_session_response_t"] [:: core :: mem :: align_of :: < rc_api_start_session_response_t > () - 8usize] ; ["Offset of field: rc_api_start_session_response_t::hardcore_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , hardcore_unlocks) - 0usize] ; ["Offset of field: rc_api_start_session_response_t::unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , unlocks) - 8usize] ; ["Offset of field: rc_api_start_session_response_t::num_hardcore_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , num_hardcore_unlocks) - 16usize] ; ["Offset of field: rc_api_start_session_response_t::num_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , num_unlocks) - 20usize] ; ["Offset of field: rc_api_start_session_response_t::server_now"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , server_now) - 24usize] ; ["Offset of field: rc_api_start_session_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_start_session_request (request : * mut rc_api_request_t , api_params : * const rc_api_start_session_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_start_session_response (response : * mut rc_api_start_session_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_start_session_server_response (response : * mut rc_api_start_session_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_start_session_response (response : * mut rc_api_start_session_response_t) ; } # [doc = " API parameters for a fetch user unlocks request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_user_unlocks_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_user_unlocks_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_user_unlocks_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_user_unlocks_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_user_unlocks_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , hardcore) - 20usize] ; } ; # [doc = " Response data for a fetch user unlocks request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_user_unlocks_response_t { pub achievement_ids : * mut u32 , pub num_achievement_ids : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_user_unlocks_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_user_unlocks_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_user_unlocks_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_user_unlocks_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::achievement_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , achievement_ids) - 0usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::num_achievement_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , num_achievement_ids) - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_user_unlocks_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_user_unlocks_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_user_unlocks_response (response : * mut rc_api_fetch_user_unlocks_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_user_unlocks_server_response (response : * mut rc_api_fetch_user_unlocks_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_user_unlocks_response (response : * mut rc_api_fetch_user_unlocks_response_t) ; } # [doc = " API parameters for a fetch code notes request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_code_notes_request_t { pub game_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_code_notes_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_code_notes_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_code_notes_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_code_notes_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_code_notes_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_request_t , game_id) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_code_note_t { pub address : u32 , pub author : * const :: core :: ffi :: c_char , pub note : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_code_note_t"] [:: core :: mem :: size_of :: < rc_api_code_note_t > () - 24usize] ; ["Alignment of rc_api_code_note_t"] [:: core :: mem :: align_of :: < rc_api_code_note_t > () - 8usize] ; ["Offset of field: rc_api_code_note_t::address"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , address) - 0usize] ; ["Offset of field: rc_api_code_note_t::author"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , author) - 8usize] ; ["Offset of field: rc_api_code_note_t::note"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , note) - 16usize] ; } ; # [doc = " Response data for a fetch code notes request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_code_notes_response_t { pub notes : * mut rc_api_code_note_t , pub num_notes : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_code_notes_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_code_notes_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_code_notes_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_code_notes_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::notes"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , notes) - 0usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::num_notes"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , num_notes) - 8usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_code_notes_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_code_notes_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_code_notes_response (response : * mut rc_api_fetch_code_notes_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_code_notes_server_response (response : * mut rc_api_fetch_code_notes_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_code_notes_response (response : * mut rc_api_fetch_code_notes_response_t) ; } # [doc = " API parameters for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_code_note_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub address : u32 , pub note : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_code_note_request_t"] [:: core :: mem :: size_of :: < rc_api_update_code_note_request_t > () - 32usize] ; ["Alignment of rc_api_update_code_note_request_t"] [:: core :: mem :: align_of :: < rc_api_update_code_note_request_t > () - 8usize] ; ["Offset of field: rc_api_update_code_note_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_code_note_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_code_note_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_update_code_note_request_t::address"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , address) - 20usize] ; ["Offset of field: rc_api_update_code_note_request_t::note"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , note) - 24usize] ; } ; # [doc = " Response data for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_code_note_response_t { pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_code_note_response_t"] [:: core :: mem :: size_of :: < rc_api_update_code_note_response_t > () - 312usize] ; ["Alignment of rc_api_update_code_note_response_t"] [:: core :: mem :: align_of :: < rc_api_update_code_note_response_t > () - 8usize] ; ["Offset of field: rc_api_update_code_note_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_response_t , response) - 0usize] ; } ; extern "C" { pub fn rc_api_init_update_code_note_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_code_note_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_code_note_response (response : * mut rc_api_update_code_note_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_code_note_server_response (response : * mut rc_api_update_code_note_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_code_note_response (response : * mut rc_api_update_code_note_response_t) ; } # [doc = " API parameters for an update achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_achievement_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub game_id : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub badge : * const :: core :: ffi :: c_char , pub trigger : * const :: core :: ffi :: c_char , pub points : u32 , pub category : u32 , pub type_ : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_achievement_request_t"] [:: core :: mem :: size_of :: < rc_api_update_achievement_request_t > () - 72usize] ; ["Alignment of rc_api_update_achievement_request_t"] [:: core :: mem :: align_of :: < rc_api_update_achievement_request_t > () - 8usize] ; ["Offset of field: rc_api_update_achievement_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_achievement_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_achievement_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_update_achievement_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , game_id) - 20usize] ; ["Offset of field: rc_api_update_achievement_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , title) - 24usize] ; ["Offset of field: rc_api_update_achievement_request_t::description"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , description) - 32usize] ; ["Offset of field: rc_api_update_achievement_request_t::badge"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , badge) - 40usize] ; ["Offset of field: rc_api_update_achievement_request_t::trigger"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , trigger) - 48usize] ; ["Offset of field: rc_api_update_achievement_request_t::points"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , points) - 56usize] ; ["Offset of field: rc_api_update_achievement_request_t::category"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , category) - 60usize] ; ["Offset of field: rc_api_update_achievement_request_t::type_"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , type_) - 64usize] ; } ; # [doc = " Response data for an update achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_achievement_response_t { pub achievement_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_achievement_response_t"] [:: core :: mem :: size_of :: < rc_api_update_achievement_response_t > () - 320usize] ; ["Alignment of rc_api_update_achievement_response_t"] [:: core :: mem :: align_of :: < rc_api_update_achievement_response_t > () - 8usize] ; ["Offset of field: rc_api_update_achievement_response_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_response_t , achievement_id) - 0usize] ; ["Offset of field: rc_api_update_achievement_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_update_achievement_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_achievement_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_achievement_response (response : * mut rc_api_update_achievement_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_achievement_server_response (response : * mut rc_api_update_achievement_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_achievement_response (response : * mut rc_api_update_achievement_response_t) ; } # [doc = " API parameters for an update leaderboard request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_leaderboard_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub leaderboard_id : u32 , pub game_id : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub start_trigger : * const :: core :: ffi :: c_char , pub submit_trigger : * const :: core :: ffi :: c_char , pub cancel_trigger : * const :: core :: ffi :: c_char , pub value_definition : * const :: core :: ffi :: c_char , pub format : * const :: core :: ffi :: c_char , pub lower_is_better : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_leaderboard_request_t"] [:: core :: mem :: size_of :: < rc_api_update_leaderboard_request_t > () - 88usize] ; ["Alignment of rc_api_update_leaderboard_request_t"] [:: core :: mem :: align_of :: < rc_api_update_leaderboard_request_t > () - 8usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , leaderboard_id) - 16usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , game_id) - 20usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , title) - 24usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::description"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , description) - 32usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::start_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , start_trigger) - 40usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::submit_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , submit_trigger) - 48usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::cancel_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , cancel_trigger) - 56usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::value_definition"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , value_definition) - 64usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::format"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , format) - 72usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , lower_is_better) - 80usize] ; } ; # [doc = " Response data for an update leaderboard request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_leaderboard_response_t { pub leaderboard_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_leaderboard_response_t"] [:: core :: mem :: size_of :: < rc_api_update_leaderboard_response_t > () - 320usize] ; ["Alignment of rc_api_update_leaderboard_response_t"] [:: core :: mem :: align_of :: < rc_api_update_leaderboard_response_t > () - 8usize] ; ["Offset of field: rc_api_update_leaderboard_response_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_response_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_api_update_leaderboard_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_update_leaderboard_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_leaderboard_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_leaderboard_response (response : * mut rc_api_update_leaderboard_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_leaderboard_server_response (response : * mut rc_api_update_leaderboard_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_leaderboard_response (response : * mut rc_api_update_leaderboard_response_t) ; } # [doc = " API parameters for a fetch badge range request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_badge_range_request_t { pub unused : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_badge_range_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_badge_range_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_badge_range_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_badge_range_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_badge_range_request_t::unused"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_request_t , unused) - 0usize] ; } ; # [doc = " Response data for a fetch badge range request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_badge_range_response_t { pub first_badge_id : u32 , pub next_badge_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_badge_range_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_badge_range_response_t > () - 320usize] ; ["Alignment of rc_api_fetch_badge_range_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_badge_range_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::first_badge_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , first_badge_id) - 0usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::next_badge_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , next_badge_id) - 4usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_fetch_badge_range_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_badge_range_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_badge_range_response (response : * mut rc_api_fetch_badge_range_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_badge_range_server_response (response : * mut rc_api_fetch_badge_range_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_badge_range_response (response : * mut rc_api_fetch_badge_range_response_t) ; } # [doc = " API parameters for an add game hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_add_game_hash_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub hash : * const :: core :: ffi :: c_char , pub hash_description : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_add_game_hash_request_t"] [:: core :: mem :: size_of :: < rc_api_add_game_hash_request_t > () - 48usize] ; ["Alignment of rc_api_add_game_hash_request_t"] [:: core :: mem :: align_of :: < rc_api_add_game_hash_request_t > () - 8usize] ; ["Offset of field: rc_api_add_game_hash_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , username) - 0usize] ; ["Offset of field: rc_api_add_game_hash_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_add_game_hash_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_add_game_hash_request_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , console_id) - 20usize] ; ["Offset of field: rc_api_add_game_hash_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , title) - 24usize] ; ["Offset of field: rc_api_add_game_hash_request_t::hash"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , hash) - 32usize] ; ["Offset of field: rc_api_add_game_hash_request_t::hash_description"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , hash_description) - 40usize] ; } ; # [doc = " Response data for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_add_game_hash_response_t { pub game_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_add_game_hash_response_t"] [:: core :: mem :: size_of :: < rc_api_add_game_hash_response_t > () - 320usize] ; ["Alignment of rc_api_add_game_hash_response_t"] [:: core :: mem :: align_of :: < rc_api_add_game_hash_response_t > () - 8usize] ; ["Offset of field: rc_api_add_game_hash_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_response_t , game_id) - 0usize] ; ["Offset of field: rc_api_add_game_hash_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_add_game_hash_request (request : * mut rc_api_request_t , api_params : * const rc_api_add_game_hash_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_add_game_hash_response (response : * mut rc_api_add_game_hash_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_add_game_hash_server_response (response : * mut rc_api_add_game_hash_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_add_game_hash_response (response : * mut rc_api_add_game_hash_response_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_t { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_menu_item_t { pub label : * const :: core :: ffi :: c_char , pub id : u32 , pub checked : u8 , pub enabled : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_menu_item_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_menu_item_t > () - 16usize] ; ["Alignment of rc_client_raintegration_menu_item_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_menu_item_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::label"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , label) - 0usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::id"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , id) - 8usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::checked"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , checked) - 12usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::enabled"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , enabled) - 13usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_menu_t { pub items : * mut rc_client_raintegration_menu_item_t , pub num_items : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_menu_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_menu_t > () - 16usize] ; ["Alignment of rc_client_raintegration_menu_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_menu_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_menu_t::items"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_t , items) - 0usize] ; ["Offset of field: rc_client_raintegration_menu_t::num_items"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_t , num_items) - 8usize] ; } ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_NONE : _bindgen_ty_10 = 0 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_PUBLISHED : _bindgen_ty_10 = 1 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_LOCAL : _bindgen_ty_10 = 2 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_MODIFIED : _bindgen_ty_10 = 3 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_INSECURE : _bindgen_ty_10 = 4 ; pub type _bindgen_ty_10 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_RAINTEGRATION_EVENT_TYPE_NONE : _bindgen_ty_11 = 0 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_MENUITEM_CHECKED_CHANGED : _bindgen_ty_11 = 1 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_HARDCORE_CHANGED : _bindgen_ty_11 = 2 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_PAUSE : _bindgen_ty_11 = 3 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_MENU_CHANGED : _bindgen_ty_11 = 4 ; pub type _bindgen_ty_11 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_event_t { pub type_ : u32 , pub menu_item : * const rc_client_raintegration_menu_item_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_event_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_event_t > () - 16usize] ; ["Alignment of rc_client_raintegration_event_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_event_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_event_t::type_"] [:: core :: mem :: offset_of ! (rc_client_raintegration_event_t , type_) - 0usize] ; ["Offset of field: rc_client_raintegration_event_t::menu_item"] [:: core :: mem :: offset_of ! (rc_client_raintegration_event_t , menu_item) - 8usize] ; } ; pub type rc_client_raintegration_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (event : * const rc_client_raintegration_event_t , client : * mut rc_client_t) > ; pub type rc_client_raintegration_write_memory_func_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , buffer : * mut u8 , num_bytes : u32 , client : * mut rc_client_t) > ; pub type rc_client_raintegration_get_game_name_func_t = :: core :: option :: Option < unsafe extern "C" fn (buffer : * mut :: core :: ffi :: c_char , buffer_size : u32 , client : * mut rc_client_t) > ; # [doc = " API parameters for a fetch achievement info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_achievement_info_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub first_entry : u32 , pub count : u32 , pub friends_only : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_achievement_info_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_achievement_info_request_t > () - 32usize] ; ["Alignment of rc_api_fetch_achievement_info_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_achievement_info_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::first_entry"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , first_entry) - 20usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::count"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , count) - 24usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::friends_only"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , friends_only) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_achievement_awarded_entry_t { pub username : * const :: core :: ffi :: c_char , pub awarded : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_achievement_awarded_entry_t"] [:: core :: mem :: size_of :: < rc_api_achievement_awarded_entry_t > () - 16usize] ; ["Alignment of rc_api_achievement_awarded_entry_t"] [:: core :: mem :: align_of :: < rc_api_achievement_awarded_entry_t > () - 8usize] ; ["Offset of field: rc_api_achievement_awarded_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_achievement_awarded_entry_t , username) - 0usize] ; ["Offset of field: rc_api_achievement_awarded_entry_t::awarded"] [:: core :: mem :: offset_of ! (rc_api_achievement_awarded_entry_t , awarded) - 8usize] ; } ; # [doc = " Response data for a fetch achievement info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_achievement_info_response_t { pub id : u32 , pub game_id : u32 , pub num_awarded : u32 , pub num_players : u32 , pub recently_awarded : * mut rc_api_achievement_awarded_entry_t , pub num_recently_awarded : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_achievement_info_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_achievement_info_response_t > () - 344usize] ; ["Alignment of rc_api_fetch_achievement_info_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_achievement_info_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , game_id) - 4usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_awarded) - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_players"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_players) - 12usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::recently_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , recently_awarded) - 16usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_recently_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_recently_awarded) - 24usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_fetch_achievement_info_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_achievement_info_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_achievement_info_response (response : * mut rc_api_fetch_achievement_info_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_achievement_info_server_response (response : * mut rc_api_fetch_achievement_info_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_achievement_info_response (response : * mut rc_api_fetch_achievement_info_response_t) ; } # [doc = " API parameters for a fetch leaderboard info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_leaderboard_info_request_t { pub leaderboard_id : u32 , pub count : u32 , pub first_entry : u32 , pub username : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_leaderboard_info_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_leaderboard_info_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_leaderboard_info_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_leaderboard_info_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::count"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , count) - 4usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::first_entry"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , first_entry) - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , username) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_lboard_info_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub index : u32 , pub score : i32 , pub submitted : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_lboard_info_entry_t"] [:: core :: mem :: size_of :: < rc_api_lboard_info_entry_t > () - 32usize] ; ["Alignment of rc_api_lboard_info_entry_t"] [:: core :: mem :: align_of :: < rc_api_lboard_info_entry_t > () - 8usize] ; ["Offset of field: rc_api_lboard_info_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , username) - 0usize] ; ["Offset of field: rc_api_lboard_info_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , rank) - 8usize] ; ["Offset of field: rc_api_lboard_info_entry_t::index"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , index) - 12usize] ; ["Offset of field: rc_api_lboard_info_entry_t::score"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , score) - 16usize] ; ["Offset of field: rc_api_lboard_info_entry_t::submitted"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , submitted) - 24usize] ; } ; # [doc = " Response data for a fetch leaderboard info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_leaderboard_info_response_t { pub id : u32 , pub format : :: core :: ffi :: c_int , pub lower_is_better : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub game_id : u32 , pub author : * const :: core :: ffi :: c_char , pub created : time_t , pub updated : time_t , pub entries : * mut rc_api_lboard_info_entry_t , pub num_entries : u32 , pub total_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_leaderboard_info_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_leaderboard_info_response_t > () - 400usize] ; ["Alignment of rc_api_fetch_leaderboard_info_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_leaderboard_info_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::format"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , format) - 4usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , lower_is_better) - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::title"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , title) - 16usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::description"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , description) - 24usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::definition"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , definition) - 32usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , game_id) - 40usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::author"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , author) - 48usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::created"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , created) - 56usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::updated"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , updated) - 64usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , entries) - 72usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , num_entries) - 80usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::total_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , total_entries) - 84usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , response) - 88usize] ; } ; extern "C" { pub fn rc_api_init_fetch_leaderboard_info_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_leaderboard_info_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_leaderboard_info_response (response : * mut rc_api_fetch_leaderboard_info_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_leaderboard_info_server_response (response : * mut rc_api_fetch_leaderboard_info_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_leaderboard_info_response (response : * mut rc_api_fetch_leaderboard_info_response_t) ; } # [doc = " API parameters for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_games_list_request_t { pub console_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_games_list_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_games_list_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_games_list_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_games_list_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_games_list_request_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_request_t , console_id) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_game_list_entry_t { pub id : u32 , pub name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_game_list_entry_t"] [:: core :: mem :: size_of :: < rc_api_game_list_entry_t > () - 16usize] ; ["Alignment of rc_api_game_list_entry_t"] [:: core :: mem :: align_of :: < rc_api_game_list_entry_t > () - 8usize] ; ["Offset of field: rc_api_game_list_entry_t::id"] [:: core :: mem :: offset_of ! (rc_api_game_list_entry_t , id) - 0usize] ; ["Offset of field: rc_api_game_list_entry_t::name"] [:: core :: mem :: offset_of ! (rc_api_game_list_entry_t , name) - 8usize] ; } ; # [doc = " Response data for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_games_list_response_t { pub entries : * mut rc_api_game_list_entry_t , pub num_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_games_list_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_games_list_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_games_list_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_games_list_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , entries) - 0usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , num_entries) - 8usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_games_list_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_games_list_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_games_list_response (response : * mut rc_api_fetch_games_list_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_games_list_server_response (response : * mut rc_api_fetch_games_list_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_games_list_response (response : * mut rc_api_fetch_games_list_response_t) ; } # [doc = " API parameters for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_titles_request_t { pub game_ids : * const u32 , pub num_game_ids : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_titles_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_titles_request_t > () - 16usize] ; ["Alignment of rc_api_fetch_game_titles_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_titles_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_request_t::game_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_request_t , game_ids) - 0usize] ; ["Offset of field: rc_api_fetch_game_titles_request_t::num_game_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_request_t , num_game_ids) - 8usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_game_title_entry_t { pub id : u32 , pub title : * const :: core :: ffi :: c_char , pub image_name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_game_title_entry_t"] [:: core :: mem :: size_of :: < rc_api_game_title_entry_t > () - 24usize] ; ["Alignment of rc_api_game_title_entry_t"] [:: core :: mem :: align_of :: < rc_api_game_title_entry_t > () - 8usize] ; ["Offset of field: rc_api_game_title_entry_t::id"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , id) - 0usize] ; ["Offset of field: rc_api_game_title_entry_t::title"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , title) - 8usize] ; ["Offset of field: rc_api_game_title_entry_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , image_name) - 16usize] ; } ; # [doc = " Response data for a fetch games title request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_titles_response_t { pub entries : * mut rc_api_game_title_entry_t , pub num_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_titles_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_titles_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_game_titles_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_titles_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , entries) - 0usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , num_entries) - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_game_titles_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_game_titles_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_titles_server_response (response : * mut rc_api_fetch_game_titles_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_game_titles_response (response : * mut rc_api_fetch_game_titles_response_t) ; } pub type __gnuc_va_list = __builtin_va_list ; # [repr (C)] # [derive (Copy , Clone)] pub struct __mbstate_t { pub __count : :: core :: ffi :: c_int , pub __value : __mbstate_t__bindgen_ty_1 , } # [repr (C)] # [derive (Copy , Clone)] pub union __mbstate_t__bindgen_ty_1 { pub __wch : :: core :: ffi :: c_uint , pub __wchb : [:: core :: ffi :: c_char ; 4usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __mbstate_t__bindgen_ty_1"] [:: core :: mem :: size_of :: < __mbstate_t__bindgen_ty_1 > () - 4usize] ; ["Alignment of __mbstate_t__bindgen_ty_1"] [:: core :: mem :: align_of :: < __mbstate_t__bindgen_ty_1 > () - 4usize] ; ["Offset of field: __mbstate_t__bindgen_ty_1::__wch"] [:: core :: mem :: offset_of ! (__mbstate_t__bindgen_ty_1 , __wch) - 0usize] ; ["Offset of field: __mbstate_t__bindgen_ty_1::__wchb"] [:: core :: mem :: offset_of ! (__mbstate_t__bindgen_ty_1 , __wchb) - 0usize] ; } ; impl :: core :: fmt :: Debug for __mbstate_t__bindgen_ty_1 { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "__mbstate_t__bindgen_ty_1 {{ union }}") } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __mbstate_t"] [:: core :: mem :: size_of :: < __mbstate_t > () - 8usize] ; ["Alignment of __mbstate_t"] [:: core :: mem :: align_of :: < __mbstate_t > () - 4usize] ; ["Offset of field: __mbstate_t::__count"] [:: core :: mem :: offset_of ! (__mbstate_t , __count) - 0usize] ; ["Offset of field: __mbstate_t::__value"] [:: core :: mem :: offset_of ! (__mbstate_t , __value) - 4usize] ; } ; impl :: core :: fmt :: Debug for __mbstate_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "__mbstate_t {{ __count: {:?}, __value: {:?} }}" , self . __count , self . __value) } } # [repr (C)] # [derive (Copy , Clone)] pub struct _G_fpos_t { pub __pos : __off_t , pub __state : __mbstate_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _G_fpos_t"] [:: core :: mem :: size_of :: < _G_fpos_t > () - 16usize] ; ["Alignment of _G_fpos_t"] [:: core :: mem :: align_of :: < _G_fpos_t > () - 8usize] ; ["Offset of field: _G_fpos_t::__pos"] [:: core :: mem :: offset_of ! (_G_fpos_t , __pos) - 0usize] ; ["Offset of field: _G_fpos_t::__state"] [:: core :: mem :: offset_of ! (_G_fpos_t , __state) - 8usize] ; } ; impl :: core :: fmt :: Debug for _G_fpos_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "_G_fpos_t {{ __pos: {:?}, __state: {:?} }}" , self . __pos , self . __state) } } pub type __fpos_t = _G_fpos_t ; # [repr (C)] # [derive (Copy , Clone)] pub struct _G_fpos64_t { pub __pos : __off64_t , pub __state : __mbstate_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _G_fpos64_t"] [:: core :: mem :: size_of :: < _G_fpos64_t > () - 16usize] ; ["Alignment of _G_fpos64_t"] [:: core :: mem :: align_of :: < _G_fpos64_t > () - 8usize] ; ["Offset of field: _G_fpos64_t::__pos"] [:: core :: mem :: offset_of ! (_G_fpos64_t , __pos) - 0usize] ; ["Offset of field: _G_fpos64_t::__state"] [:: core :: mem :: offset_of ! (_G_fpos64_t , __state) - 8usize] ; } ; impl :: core :: fmt :: Debug for _G_fpos64_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "_G_fpos64_t {{ __pos: {:?}, __state: {:?} }}" , self . __pos , self . __state) } } pub type __fpos64_t = _G_fpos64_t ; pub type __FILE = _IO_FILE ; pub type FILE = _IO_FILE ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_marker { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_codecvt { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_wide_data { _unused : [u8 ; 0] , } pub type _IO_lock_t = :: core :: ffi :: c_void ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_FILE { pub _flags : :: core :: ffi :: c_int , pub _IO_read_ptr : * mut :: core :: ffi :: c_char , pub _IO_read_end : * mut :: core :: ffi :: c_char , pub _IO_read_base : * mut :: core :: ffi :: c_char , pub _IO_write_base : * mut :: core :: ffi :: c_char , pub _IO_write_ptr : * mut :: core :: ffi :: c_char , pub _IO_write_end : * mut :: core :: ffi :: c_char , pub _IO_buf_base : * mut :: core :: ffi :: c_char , pub _IO_buf_end : * mut :: core :: ffi :: c_char , pub _IO_save_base : * mut :: core :: ffi :: c_char , pub _IO_backup_base : * mut :: core :: ffi :: c_char , pub _IO_save_end : * mut :: core :: ffi :: c_char , pub _markers : * mut _IO_marker , pub _chain : * mut _IO_FILE , pub _fileno : :: core :: ffi :: c_int , pub _bitfield_align_1 : [u32 ; 0] , pub _bitfield_1 : __BindgenBitfieldUnit < [u8 ; 3usize] > , pub _short_backupbuf : [:: core :: ffi :: c_char ; 1usize] , pub _old_offset : __off_t , pub _cur_column : :: core :: ffi :: c_ushort , pub _vtable_offset : :: core :: ffi :: c_schar , pub _shortbuf : [:: core :: ffi :: c_char ; 1usize] , pub _lock : * mut _IO_lock_t , pub _offset : __off64_t , pub _codecvt : * mut _IO_codecvt , pub _wide_data : * mut _IO_wide_data , pub _freeres_list : * mut _IO_FILE , pub _freeres_buf : * mut :: core :: ffi :: c_void , pub _prevchain : * mut * mut _IO_FILE , pub _mode : :: core :: ffi :: c_int , pub _unused3 : :: core :: ffi :: c_int , pub _total_written : __uint64_t , pub _unused2 : [:: core :: ffi :: c_char ; 8usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _IO_FILE"] [:: core :: mem :: size_of :: < _IO_FILE > () - 216usize] ; ["Alignment of _IO_FILE"] [:: core :: mem :: align_of :: < _IO_FILE > () - 8usize] ; ["Offset of field: _IO_FILE::_flags"] [:: core :: mem :: offset_of ! (_IO_FILE , _flags) - 0usize] ; ["Offset of field: _IO_FILE::_IO_read_ptr"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_ptr) - 8usize] ; ["Offset of field: _IO_FILE::_IO_read_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_end) - 16usize] ; ["Offset of field: _IO_FILE::_IO_read_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_base) - 24usize] ; ["Offset of field: _IO_FILE::_IO_write_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_base) - 32usize] ; ["Offset of field: _IO_FILE::_IO_write_ptr"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_ptr) - 40usize] ; ["Offset of field: _IO_FILE::_IO_write_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_end) - 48usize] ; ["Offset of field: _IO_FILE::_IO_buf_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_buf_base) - 56usize] ; ["Offset of field: _IO_FILE::_IO_buf_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_buf_end) - 64usize] ; ["Offset of field: _IO_FILE::_IO_save_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_save_base) - 72usize] ; ["Offset of field: _IO_FILE::_IO_backup_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_backup_base) - 80usize] ; ["Offset of field: _IO_FILE::_IO_save_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_save_end) - 88usize] ; ["Offset of field: _IO_FILE::_markers"] [:: core :: mem :: offset_of ! (_IO_FILE , _markers) - 96usize] ; ["Offset of field: _IO_FILE::_chain"] [:: core :: mem :: offset_of ! (_IO_FILE , _chain) - 104usize] ; ["Offset of field: _IO_FILE::_fileno"] [:: core :: mem :: offset_of ! (_IO_FILE , _fileno) - 112usize] ; ["Offset of field: _IO_FILE::_short_backupbuf"] [:: core :: mem :: offset_of ! (_IO_FILE , _short_backupbuf) - 119usize] ; ["Offset of field: _IO_FILE::_old_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _old_offset) - 120usize] ; ["Offset of field: _IO_FILE::_cur_column"] [:: core :: mem :: offset_of ! (_IO_FILE , _cur_column) - 128usize] ; ["Offset of field: _IO_FILE::_vtable_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _vtable_offset) - 130usize] ; ["Offset of field: _IO_FILE::_shortbuf"] [:: core :: mem :: offset_of ! (_IO_FILE , _shortbuf) - 131usize] ; ["Offset of field: _IO_FILE::_lock"] [:: core :: mem :: offset_of ! (_IO_FILE , _lock) - 136usize] ; ["Offset of field: _IO_FILE::_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _offset) - 144usize] ; ["Offset of field: _IO_FILE::_codecvt"] [:: core :: mem :: offset_of ! (_IO_FILE , _codecvt) - 152usize] ; ["Offset of field: _IO_FILE::_wide_data"] [:: core :: mem :: offset_of ! (_IO_FILE , _wide_data) - 160usize] ; ["Offset of field: _IO_FILE::_freeres_list"] [:: core :: mem :: offset_of ! (_IO_FILE , _freeres_list) - 168usize] ; ["Offset of field: _IO_FILE::_freeres_buf"] [:: core :: mem :: offset_of ! (_IO_FILE , _freeres_buf) - 176usize] ; ["Offset of field: _IO_FILE::_prevchain"] [:: core :: mem :: offset_of ! (_IO_FILE , _prevchain) - 184usize] ; ["Offset of field: _IO_FILE::_mode"] [:: core :: mem :: offset_of ! (_IO_FILE , _mode) - 192usize] ; ["Offset of field: _IO_FILE::_unused3"] [:: core :: mem :: offset_of ! (_IO_FILE , _unused3) - 196usize] ; ["Offset of field: _IO_FILE::_total_written"] [:: core :: mem :: offset_of ! (_IO_FILE , _total_written) - 200usize] ; ["Offset of field: _IO_FILE::_unused2"] [:: core :: mem :: offset_of ! (_IO_FILE , _unused2) - 208usize] ; } ; impl _IO_FILE { # [inline] pub fn _flags2 (& self) -> :: core :: ffi :: c_int { unsafe { :: core :: mem :: transmute (self . _bitfield_1 . get (0usize , 24u8) as u32) } } # [inline] pub fn set__flags2 (& mut self , val : :: core :: ffi :: c_int) { unsafe { let val : u32 = :: core :: mem :: transmute (val) ; self . _bitfield_1 . set (0usize , 24u8 , val as u64) } } # [inline] pub fn new_bitfield_1 (_flags2 : :: core :: ffi :: c_int) -> __BindgenBitfieldUnit < [u8 ; 3usize] > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [u8 ; 3usize] > = Default :: default () ; __bindgen_bitfield_unit . set (0usize , 24u8 , { let _flags2 : u32 = unsafe { :: core :: mem :: transmute (_flags2) } ; _flags2 as u64 }) ; __bindgen_bitfield_unit } } pub type cookie_read_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __buf : * mut :: core :: ffi :: c_char , __nbytes : usize) -> __ssize_t > ; pub type cookie_write_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __buf : * const :: core :: ffi :: c_char , __nbytes : usize) -> __ssize_t > ; pub type cookie_seek_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __pos : * mut __off64_t , __w : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int > ; pub type cookie_close_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void) -> :: core :: ffi :: 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 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _IO_cookie_io_functions_t"] [:: core :: mem :: size_of :: < _IO_cookie_io_functions_t > () - 32usize] ; ["Alignment of _IO_cookie_io_functions_t"] [:: core :: mem :: align_of :: < _IO_cookie_io_functions_t > () - 8usize] ; ["Offset of field: _IO_cookie_io_functions_t::read"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , read) - 0usize] ; ["Offset of field: _IO_cookie_io_functions_t::write"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , write) - 8usize] ; ["Offset of field: _IO_cookie_io_functions_t::seek"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , seek) - 16usize] ; ["Offset of field: _IO_cookie_io_functions_t::close"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , close) - 24usize] ; } ; 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" { pub static mut stdin : * mut FILE ; } extern "C" { pub static mut stdout : * mut FILE ; } extern "C" { pub static mut stderr : * mut FILE ; } extern "C" { pub fn remove (__filename : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rename (__old : * const :: core :: ffi :: c_char , __new : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn renameat (__oldfd : :: core :: ffi :: c_int , __old : * const :: core :: ffi :: c_char , __newfd : :: core :: ffi :: c_int , __new : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fclose (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn tmpfile () -> * mut FILE ; } extern "C" { pub fn tmpnam (arg1 : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn tmpnam_r (__s : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn tempnam (__dir : * const :: core :: ffi :: c_char , __pfx : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn fflush (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fflush_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fopen (__filename : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn freopen (__filename : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char , __stream : * mut FILE) -> * mut FILE ; } extern "C" { pub fn fdopen (__fd : :: core :: ffi :: c_int , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn fopencookie (__magic_cookie : * mut :: core :: ffi :: c_void , __modes : * const :: core :: ffi :: c_char , __io_funcs : cookie_io_functions_t) -> * mut FILE ; } extern "C" { pub fn fmemopen (__s : * mut :: core :: ffi :: c_void , __len : usize , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn open_memstream (__bufloc : * mut * mut :: core :: ffi :: c_char , __sizeloc : * mut usize) -> * mut FILE ; } extern "C" { pub fn setbuf (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char) ; } extern "C" { pub fn setvbuf (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char , __modes : :: core :: ffi :: c_int , __n : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn setbuffer (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char , __size : usize) ; } extern "C" { pub fn setlinebuf (__stream : * mut FILE) ; } extern "C" { pub fn fprintf (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn printf (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn sprintf (__s : * mut :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vfprintf (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vprintf (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsprintf (__s : * mut :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn snprintf (__s : * mut :: core :: ffi :: c_char , __maxlen : :: core :: ffi :: c_ulong , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsnprintf (__s : * mut :: core :: ffi :: c_char , __maxlen : :: core :: ffi :: c_ulong , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vasprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __f : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn __asprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn asprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vdprintf (__fd : :: core :: ffi :: c_int , __fmt : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn dprintf (__fd : :: core :: ffi :: c_int , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fscanf (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn scanf (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn sscanf (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } pub type __cfloat128 = __BindgenComplex < u128 > ; pub type _Float128 = u128 ; pub type _Float32 = f32 ; pub type _Float64 = f64 ; pub type _Float32x = f64 ; pub type _Float64x = u128 ; extern "C" { # [link_name = "\u{1}__isoc99_fscanf"] pub fn fscanf1 (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_scanf"] pub fn scanf1 (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_sscanf"] pub fn sscanf1 (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vfscanf (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vscanf (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsscanf (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vfscanf"] pub fn vfscanf1 (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vscanf"] pub fn vscanf1 (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vsscanf"] pub fn vsscanf1 (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgetc (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getc (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getchar () -> :: core :: ffi :: c_int ; } extern "C" { pub fn getc_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getchar_unlocked () -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgetc_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fputc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putchar (__c : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fputc_unlocked (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putc_unlocked (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putchar_unlocked (__c : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getw (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putw (__w : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgets (__s : * mut :: core :: ffi :: c_char , __n : :: core :: ffi :: c_int , __stream : * mut FILE) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn __getdelim (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __delimiter : :: core :: ffi :: c_int , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn getdelim (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __delimiter : :: core :: ffi :: c_int , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn getline (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn fputs (__s : * const :: core :: ffi :: c_char , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn puts (__s : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ungetc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fread (__ptr : * mut :: core :: ffi :: c_void , __size : :: core :: ffi :: c_ulong , __n : :: core :: ffi :: c_ulong , __stream : * mut FILE) -> :: core :: ffi :: c_ulong ; } extern "C" { pub fn fwrite (__ptr : * const :: core :: ffi :: c_void , __size : :: core :: ffi :: c_ulong , __n : :: core :: ffi :: c_ulong , __s : * mut FILE) -> :: core :: ffi :: c_ulong ; } extern "C" { pub fn fread_unlocked (__ptr : * mut :: core :: ffi :: c_void , __size : usize , __n : usize , __stream : * mut FILE) -> usize ; } extern "C" { pub fn fwrite_unlocked (__ptr : * const :: core :: ffi :: c_void , __size : usize , __n : usize , __stream : * mut FILE) -> usize ; } extern "C" { pub fn fseek (__stream : * mut FILE , __off : :: core :: ffi :: c_long , __whence : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ftell (__stream : * mut FILE) -> :: core :: ffi :: c_long ; } extern "C" { pub fn rewind (__stream : * mut FILE) ; } extern "C" { pub fn fseeko (__stream : * mut FILE , __off : __off_t , __whence : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ftello (__stream : * mut FILE) -> __off_t ; } extern "C" { pub fn fgetpos (__stream : * mut FILE , __pos : * mut fpos_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fsetpos (__stream : * mut FILE , __pos : * const fpos_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clearerr (__stream : * mut FILE) ; } extern "C" { pub fn feof (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ferror (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clearerr_unlocked (__stream : * mut FILE) ; } extern "C" { pub fn feof_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ferror_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn perror (__s : * const :: core :: ffi :: c_char) ; } extern "C" { pub fn fileno (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fileno_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn pclose (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn popen (__command : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn ctermid (__s : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn flockfile (__stream : * mut FILE) ; } extern "C" { pub fn ftrylockfile (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn funlockfile (__stream : * mut FILE) ; } extern "C" { pub fn __uflow (arg1 : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn __overflow (arg1 : * mut FILE , arg2 : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } pub const RC_CONSOLE_UNKNOWN : _bindgen_ty_12 = 0 ; pub const RC_CONSOLE_MEGA_DRIVE : _bindgen_ty_12 = 1 ; pub const RC_CONSOLE_NINTENDO_64 : _bindgen_ty_12 = 2 ; pub const RC_CONSOLE_SUPER_NINTENDO : _bindgen_ty_12 = 3 ; pub const RC_CONSOLE_GAMEBOY : _bindgen_ty_12 = 4 ; pub const RC_CONSOLE_GAMEBOY_ADVANCE : _bindgen_ty_12 = 5 ; pub const RC_CONSOLE_GAMEBOY_COLOR : _bindgen_ty_12 = 6 ; pub const RC_CONSOLE_NINTENDO : _bindgen_ty_12 = 7 ; pub const RC_CONSOLE_PC_ENGINE : _bindgen_ty_12 = 8 ; pub const RC_CONSOLE_SEGA_CD : _bindgen_ty_12 = 9 ; pub const RC_CONSOLE_SEGA_32X : _bindgen_ty_12 = 10 ; pub const RC_CONSOLE_MASTER_SYSTEM : _bindgen_ty_12 = 11 ; pub const RC_CONSOLE_PLAYSTATION : _bindgen_ty_12 = 12 ; pub const RC_CONSOLE_ATARI_LYNX : _bindgen_ty_12 = 13 ; pub const RC_CONSOLE_NEOGEO_POCKET : _bindgen_ty_12 = 14 ; pub const RC_CONSOLE_GAME_GEAR : _bindgen_ty_12 = 15 ; pub const RC_CONSOLE_GAMECUBE : _bindgen_ty_12 = 16 ; pub const RC_CONSOLE_ATARI_JAGUAR : _bindgen_ty_12 = 17 ; pub const RC_CONSOLE_NINTENDO_DS : _bindgen_ty_12 = 18 ; pub const RC_CONSOLE_WII : _bindgen_ty_12 = 19 ; pub const RC_CONSOLE_WII_U : _bindgen_ty_12 = 20 ; pub const RC_CONSOLE_PLAYSTATION_2 : _bindgen_ty_12 = 21 ; pub const RC_CONSOLE_XBOX : _bindgen_ty_12 = 22 ; pub const RC_CONSOLE_MAGNAVOX_ODYSSEY2 : _bindgen_ty_12 = 23 ; pub const RC_CONSOLE_POKEMON_MINI : _bindgen_ty_12 = 24 ; pub const RC_CONSOLE_ATARI_2600 : _bindgen_ty_12 = 25 ; pub const RC_CONSOLE_MS_DOS : _bindgen_ty_12 = 26 ; pub const RC_CONSOLE_ARCADE : _bindgen_ty_12 = 27 ; pub const RC_CONSOLE_VIRTUAL_BOY : _bindgen_ty_12 = 28 ; pub const RC_CONSOLE_MSX : _bindgen_ty_12 = 29 ; pub const RC_CONSOLE_COMMODORE_64 : _bindgen_ty_12 = 30 ; pub const RC_CONSOLE_ZX81 : _bindgen_ty_12 = 31 ; pub const RC_CONSOLE_ORIC : _bindgen_ty_12 = 32 ; pub const RC_CONSOLE_SG1000 : _bindgen_ty_12 = 33 ; pub const RC_CONSOLE_VIC20 : _bindgen_ty_12 = 34 ; pub const RC_CONSOLE_AMIGA : _bindgen_ty_12 = 35 ; pub const RC_CONSOLE_ATARI_ST : _bindgen_ty_12 = 36 ; pub const RC_CONSOLE_AMSTRAD_PC : _bindgen_ty_12 = 37 ; pub const RC_CONSOLE_APPLE_II : _bindgen_ty_12 = 38 ; pub const RC_CONSOLE_SATURN : _bindgen_ty_12 = 39 ; pub const RC_CONSOLE_DREAMCAST : _bindgen_ty_12 = 40 ; pub const RC_CONSOLE_PSP : _bindgen_ty_12 = 41 ; pub const RC_CONSOLE_CDI : _bindgen_ty_12 = 42 ; pub const RC_CONSOLE_3DO : _bindgen_ty_12 = 43 ; pub const RC_CONSOLE_COLECOVISION : _bindgen_ty_12 = 44 ; pub const RC_CONSOLE_INTELLIVISION : _bindgen_ty_12 = 45 ; pub const RC_CONSOLE_VECTREX : _bindgen_ty_12 = 46 ; pub const RC_CONSOLE_PC8800 : _bindgen_ty_12 = 47 ; pub const RC_CONSOLE_PC9800 : _bindgen_ty_12 = 48 ; pub const RC_CONSOLE_PCFX : _bindgen_ty_12 = 49 ; pub const RC_CONSOLE_ATARI_5200 : _bindgen_ty_12 = 50 ; pub const RC_CONSOLE_ATARI_7800 : _bindgen_ty_12 = 51 ; pub const RC_CONSOLE_X68K : _bindgen_ty_12 = 52 ; pub const RC_CONSOLE_WONDERSWAN : _bindgen_ty_12 = 53 ; pub const RC_CONSOLE_CASSETTEVISION : _bindgen_ty_12 = 54 ; pub const RC_CONSOLE_SUPER_CASSETTEVISION : _bindgen_ty_12 = 55 ; pub const RC_CONSOLE_NEO_GEO_CD : _bindgen_ty_12 = 56 ; pub const RC_CONSOLE_FAIRCHILD_CHANNEL_F : _bindgen_ty_12 = 57 ; pub const RC_CONSOLE_FM_TOWNS : _bindgen_ty_12 = 58 ; pub const RC_CONSOLE_ZX_SPECTRUM : _bindgen_ty_12 = 59 ; pub const RC_CONSOLE_GAME_AND_WATCH : _bindgen_ty_12 = 60 ; pub const RC_CONSOLE_NOKIA_NGAGE : _bindgen_ty_12 = 61 ; pub const RC_CONSOLE_NINTENDO_3DS : _bindgen_ty_12 = 62 ; pub const RC_CONSOLE_SUPERVISION : _bindgen_ty_12 = 63 ; pub const RC_CONSOLE_SHARPX1 : _bindgen_ty_12 = 64 ; pub const RC_CONSOLE_TIC80 : _bindgen_ty_12 = 65 ; pub const RC_CONSOLE_THOMSONTO8 : _bindgen_ty_12 = 66 ; pub const RC_CONSOLE_PC6000 : _bindgen_ty_12 = 67 ; pub const RC_CONSOLE_PICO : _bindgen_ty_12 = 68 ; pub const RC_CONSOLE_MEGADUCK : _bindgen_ty_12 = 69 ; pub const RC_CONSOLE_ZEEBO : _bindgen_ty_12 = 70 ; pub const RC_CONSOLE_ARDUBOY : _bindgen_ty_12 = 71 ; pub const RC_CONSOLE_WASM4 : _bindgen_ty_12 = 72 ; pub const RC_CONSOLE_ARCADIA_2001 : _bindgen_ty_12 = 73 ; pub const RC_CONSOLE_INTERTON_VC_4000 : _bindgen_ty_12 = 74 ; pub const RC_CONSOLE_ELEKTOR_TV_GAMES_COMPUTER : _bindgen_ty_12 = 75 ; pub const RC_CONSOLE_PC_ENGINE_CD : _bindgen_ty_12 = 76 ; pub const RC_CONSOLE_ATARI_JAGUAR_CD : _bindgen_ty_12 = 77 ; pub const RC_CONSOLE_NINTENDO_DSI : _bindgen_ty_12 = 78 ; pub const RC_CONSOLE_TI83 : _bindgen_ty_12 = 79 ; pub const RC_CONSOLE_UZEBOX : _bindgen_ty_12 = 80 ; pub const RC_CONSOLE_HUBS : _bindgen_ty_12 = 100 ; pub const RC_CONSOLE_EVENTS : _bindgen_ty_12 = 101 ; pub const RC_CONSOLE_STANDALONE : _bindgen_ty_12 = 102 ; # [doc = "\\\n| Console identifiers                                                         |\n\\"] pub type _bindgen_ty_12 = :: core :: ffi :: c_uint ; extern "C" { pub fn rc_console_name (console_id : u32) -> * const :: core :: ffi :: c_char ; } pub const RC_MEMORY_TYPE_SYSTEM_RAM : _bindgen_ty_13 = 0 ; pub const RC_MEMORY_TYPE_SAVE_RAM : _bindgen_ty_13 = 1 ; pub const RC_MEMORY_TYPE_VIDEO_RAM : _bindgen_ty_13 = 2 ; pub const RC_MEMORY_TYPE_READONLY : _bindgen_ty_13 = 3 ; pub const RC_MEMORY_TYPE_HARDWARE_CONTROLLER : _bindgen_ty_13 = 4 ; pub const RC_MEMORY_TYPE_VIRTUAL_RAM : _bindgen_ty_13 = 5 ; pub const RC_MEMORY_TYPE_UNUSED : _bindgen_ty_13 = 6 ; # [doc = "\\\n| Memory mapping                                                              |\n\\"] pub type _bindgen_ty_13 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memory_region_t { pub start_address : u32 , pub end_address : u32 , pub real_address : u32 , pub type_ : u8 , pub description : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memory_region_t"] [:: core :: mem :: size_of :: < rc_memory_region_t > () - 24usize] ; ["Alignment of rc_memory_region_t"] [:: core :: mem :: align_of :: < rc_memory_region_t > () - 8usize] ; ["Offset of field: rc_memory_region_t::start_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , start_address) - 0usize] ; ["Offset of field: rc_memory_region_t::end_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , end_address) - 4usize] ; ["Offset of field: rc_memory_region_t::real_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , real_address) - 8usize] ; ["Offset of field: rc_memory_region_t::type_"] [:: core :: mem :: offset_of ! (rc_memory_region_t , type_) - 12usize] ; ["Offset of field: rc_memory_region_t::description"] [:: core :: mem :: offset_of ! (rc_memory_region_t , description) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memory_regions_t { pub region : * const rc_memory_region_t , pub num_regions : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memory_regions_t"] [:: core :: mem :: size_of :: < rc_memory_regions_t > () - 16usize] ; ["Alignment of rc_memory_regions_t"] [:: core :: mem :: align_of :: < rc_memory_regions_t > () - 8usize] ; ["Offset of field: rc_memory_regions_t::region"] [:: core :: mem :: offset_of ! (rc_memory_regions_t , region) - 0usize] ; ["Offset of field: rc_memory_regions_t::num_regions"] [:: core :: mem :: offset_of ! (rc_memory_regions_t , num_regions) - 8usize] ; } ; extern "C" { pub fn rc_console_memory_regions (console_id : u32) -> * const rc_memory_regions_t ; } extern "C" { pub fn rc_hash_generate_from_buffer (hash : * mut :: core :: ffi :: c_char , console_id : u32 , buffer : * const u8 , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_hash_generate_from_file (hash : * mut :: core :: ffi :: c_char , console_id : u32 , path : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_iterator { pub buffer : * const u8 , pub buffer_size : usize , pub consoles : [u8 ; 12usize] , pub index : :: core :: ffi :: c_int , pub path : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_iterator"] [:: core :: mem :: size_of :: < rc_hash_iterator > () - 40usize] ; ["Alignment of rc_hash_iterator"] [:: core :: mem :: align_of :: < rc_hash_iterator > () - 8usize] ; ["Offset of field: rc_hash_iterator::buffer"] [:: core :: mem :: offset_of ! (rc_hash_iterator , buffer) - 0usize] ; ["Offset of field: rc_hash_iterator::buffer_size"] [:: core :: mem :: offset_of ! (rc_hash_iterator , buffer_size) - 8usize] ; ["Offset of field: rc_hash_iterator::consoles"] [:: core :: mem :: offset_of ! (rc_hash_iterator , consoles) - 16usize] ; ["Offset of field: rc_hash_iterator::index"] [:: core :: mem :: offset_of ! (rc_hash_iterator , index) - 28usize] ; ["Offset of field: rc_hash_iterator::path"] [:: core :: mem :: offset_of ! (rc_hash_iterator , path) - 32usize] ; } ; pub type rc_hash_iterator_t = rc_hash_iterator ; extern "C" { pub fn rc_hash_initialize_iterator (iterator : * mut rc_hash_iterator , path : * const :: core :: ffi :: c_char , buffer : * const u8 , buffer_size : usize) ; } extern "C" { pub fn rc_hash_destroy_iterator (iterator : * mut rc_hash_iterator) ; } extern "C" { pub fn rc_hash_iterate (hash : * mut :: core :: ffi :: c_char , iterator : * mut rc_hash_iterator) -> :: core :: ffi :: c_int ; } pub type rc_hash_message_callback = :: core :: option :: Option < unsafe extern "C" fn (arg1 : * const :: core :: ffi :: c_char) > ; extern "C" { pub fn rc_hash_init_error_message_callback (callback : rc_hash_message_callback) ; } extern "C" { pub fn rc_hash_init_verbose_message_callback (callback : rc_hash_message_callback) ; } pub type rc_hash_filereader_open_file_handler = :: core :: option :: Option < unsafe extern "C" fn (path_utf8 : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_void > ; pub type rc_hash_filereader_seek_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void , offset : i64 , origin : :: core :: ffi :: c_int) > ; pub type rc_hash_filereader_tell_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void) -> i64 > ; pub type rc_hash_filereader_read_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void , buffer : * mut :: core :: ffi :: c_void , requested_bytes : usize) -> usize > ; pub type rc_hash_filereader_close_file_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void) > ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_filereader { pub open : rc_hash_filereader_open_file_handler , pub seek : rc_hash_filereader_seek_handler , pub tell : rc_hash_filereader_tell_handler , pub read : rc_hash_filereader_read_handler , pub close : rc_hash_filereader_close_file_handler , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_filereader"] [:: core :: mem :: size_of :: < rc_hash_filereader > () - 40usize] ; ["Alignment of rc_hash_filereader"] [:: core :: mem :: align_of :: < rc_hash_filereader > () - 8usize] ; ["Offset of field: rc_hash_filereader::open"] [:: core :: mem :: offset_of ! (rc_hash_filereader , open) - 0usize] ; ["Offset of field: rc_hash_filereader::seek"] [:: core :: mem :: offset_of ! (rc_hash_filereader , seek) - 8usize] ; ["Offset of field: rc_hash_filereader::tell"] [:: core :: mem :: offset_of ! (rc_hash_filereader , tell) - 16usize] ; ["Offset of field: rc_hash_filereader::read"] [:: core :: mem :: offset_of ! (rc_hash_filereader , read) - 24usize] ; ["Offset of field: rc_hash_filereader::close"] [:: core :: mem :: offset_of ! (rc_hash_filereader , close) - 32usize] ; } ; extern "C" { pub fn rc_hash_init_custom_filereader (reader : * mut rc_hash_filereader) ; } pub type rc_hash_cdreader_open_track_handler = :: core :: option :: Option < unsafe extern "C" fn (path : * const :: core :: ffi :: c_char , track : u32) -> * mut :: core :: ffi :: c_void > ; pub type rc_hash_cdreader_read_sector_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void , sector : u32 , buffer : * mut :: core :: ffi :: c_void , requested_bytes : usize) -> usize > ; pub type rc_hash_cdreader_close_track_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void) > ; pub type rc_hash_cdreader_first_track_sector_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void) -> u32 > ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_cdreader { pub open_track : rc_hash_cdreader_open_track_handler , pub read_sector : rc_hash_cdreader_read_sector_handler , pub close_track : rc_hash_cdreader_close_track_handler , pub first_track_sector : rc_hash_cdreader_first_track_sector_handler , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_cdreader"] [:: core :: mem :: size_of :: < rc_hash_cdreader > () - 32usize] ; ["Alignment of rc_hash_cdreader"] [:: core :: mem :: align_of :: < rc_hash_cdreader > () - 8usize] ; ["Offset of field: rc_hash_cdreader::open_track"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , open_track) - 0usize] ; ["Offset of field: rc_hash_cdreader::read_sector"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , read_sector) - 8usize] ; ["Offset of field: rc_hash_cdreader::close_track"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , close_track) - 16usize] ; ["Offset of field: rc_hash_cdreader::first_track_sector"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , first_track_sector) - 24usize] ; } ; extern "C" { pub fn rc_hash_get_default_cdreader (cdreader : * mut rc_hash_cdreader) ; } extern "C" { pub fn rc_hash_init_default_cdreader () ; } extern "C" { pub fn rc_hash_init_custom_cdreader (reader : * mut rc_hash_cdreader) ; } pub type rc_hash_3ds_get_cia_normal_key_func = :: core :: option :: Option < unsafe extern "C" fn (common_key_index : u8 , out_normal_key : * mut u8) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_hash_init_3ds_get_cia_normal_key_func (func : rc_hash_3ds_get_cia_normal_key_func) ; } pub type rc_hash_3ds_get_ncch_normal_keys_func = :: core :: option :: Option < unsafe extern "C" fn (primary_key_y : * mut u8 , secondary_key_x_slot : u8 , optional_program_id : * mut u8 , out_primary_key : * mut u8 , out_secondary_key : * mut u8) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_hash_init_3ds_get_ncch_normal_keys_func (func : rc_hash_3ds_get_ncch_normal_keys_func) ; } # [doc = " API parameters for a fetch image request.\n NOTE: fetch image server response is the raw image data. There is no rc_api_process_fetch_image_response function."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_image_request_t { pub image_name : * const :: core :: ffi :: c_char , pub image_type : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_image_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_image_request_t > () - 16usize] ; ["Alignment of rc_api_fetch_image_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_image_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_image_request_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_fetch_image_request_t , image_name) - 0usize] ; ["Offset of field: rc_api_fetch_image_request_t::image_type"] [:: core :: mem :: offset_of ! (rc_api_fetch_image_request_t , image_type) - 8usize] ; } ; extern "C" { pub fn rc_api_init_fetch_image_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_image_request_t) -> :: core :: ffi :: c_int ; } # [doc = " API parameters for a resolve hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_resolve_hash_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_hash : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_resolve_hash_request_t"] [:: core :: mem :: size_of :: < rc_api_resolve_hash_request_t > () - 24usize] ; ["Alignment of rc_api_resolve_hash_request_t"] [:: core :: mem :: align_of :: < rc_api_resolve_hash_request_t > () - 8usize] ; ["Offset of field: rc_api_resolve_hash_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , username) - 0usize] ; ["Offset of field: rc_api_resolve_hash_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_resolve_hash_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , game_hash) - 16usize] ; } ; # [doc = " Response data for a resolve hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_resolve_hash_response_t { pub game_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_resolve_hash_response_t"] [:: core :: mem :: size_of :: < rc_api_resolve_hash_response_t > () - 320usize] ; ["Alignment of rc_api_resolve_hash_response_t"] [:: core :: mem :: align_of :: < rc_api_resolve_hash_response_t > () - 8usize] ; ["Offset of field: rc_api_resolve_hash_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_response_t , game_id) - 0usize] ; ["Offset of field: rc_api_resolve_hash_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_resolve_hash_request (request : * mut rc_api_request_t , api_params : * const rc_api_resolve_hash_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_resolve_hash_response (response : * mut rc_api_resolve_hash_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_resolve_hash_server_response (response : * mut rc_api_resolve_hash_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_resolve_hash_response (response : * mut rc_api_resolve_hash_response_t) ; } # [doc = " API parameters for a fetch game data request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_data_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_data_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_data_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_game_data_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_data_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , game_id) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_leaderboard_definition_t { pub id : u32 , pub format : :: core :: ffi :: c_int , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub lower_is_better : u8 , pub hidden : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_leaderboard_definition_t"] [:: core :: mem :: size_of :: < rc_api_leaderboard_definition_t > () - 40usize] ; ["Alignment of rc_api_leaderboard_definition_t"] [:: core :: mem :: align_of :: < rc_api_leaderboard_definition_t > () - 8usize] ; ["Offset of field: rc_api_leaderboard_definition_t::id"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , id) - 0usize] ; ["Offset of field: rc_api_leaderboard_definition_t::format"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , format) - 4usize] ; ["Offset of field: rc_api_leaderboard_definition_t::title"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , title) - 8usize] ; ["Offset of field: rc_api_leaderboard_definition_t::description"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , description) - 16usize] ; ["Offset of field: rc_api_leaderboard_definition_t::definition"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , definition) - 24usize] ; ["Offset of field: rc_api_leaderboard_definition_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , lower_is_better) - 32usize] ; ["Offset of field: rc_api_leaderboard_definition_t::hidden"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , hidden) - 33usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_achievement_definition_t { pub id : u32 , pub points : u32 , pub category : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub author : * const :: core :: ffi :: c_char , pub badge_name : * const :: core :: ffi :: c_char , pub created : time_t , pub updated : time_t , pub type_ : u32 , pub rarity : f32 , pub rarity_hardcore : f32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_achievement_definition_t"] [:: core :: mem :: size_of :: < rc_api_achievement_definition_t > () - 88usize] ; ["Alignment of rc_api_achievement_definition_t"] [:: core :: mem :: align_of :: < rc_api_achievement_definition_t > () - 8usize] ; ["Offset of field: rc_api_achievement_definition_t::id"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , id) - 0usize] ; ["Offset of field: rc_api_achievement_definition_t::points"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , points) - 4usize] ; ["Offset of field: rc_api_achievement_definition_t::category"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , category) - 8usize] ; ["Offset of field: rc_api_achievement_definition_t::title"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , title) - 16usize] ; ["Offset of field: rc_api_achievement_definition_t::description"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , description) - 24usize] ; ["Offset of field: rc_api_achievement_definition_t::definition"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , definition) - 32usize] ; ["Offset of field: rc_api_achievement_definition_t::author"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , author) - 40usize] ; ["Offset of field: rc_api_achievement_definition_t::badge_name"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , badge_name) - 48usize] ; ["Offset of field: rc_api_achievement_definition_t::created"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , created) - 56usize] ; ["Offset of field: rc_api_achievement_definition_t::updated"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , updated) - 64usize] ; ["Offset of field: rc_api_achievement_definition_t::type_"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , type_) - 72usize] ; ["Offset of field: rc_api_achievement_definition_t::rarity"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , rarity) - 76usize] ; ["Offset of field: rc_api_achievement_definition_t::rarity_hardcore"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , rarity_hardcore) - 80usize] ; } ; # [doc = " Response data for a fetch game data request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_data_response_t { pub id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub image_name : * const :: core :: ffi :: c_char , pub rich_presence_script : * const :: core :: ffi :: c_char , pub achievements : * mut rc_api_achievement_definition_t , pub num_achievements : u32 , pub leaderboards : * mut rc_api_leaderboard_definition_t , pub num_leaderboards : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_data_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_data_response_t > () - 376usize] ; ["Alignment of rc_api_fetch_game_data_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_data_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , console_id) - 4usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::title"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , title) - 8usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , image_name) - 16usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::rich_presence_script"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , rich_presence_script) - 24usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::achievements"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , achievements) - 32usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , num_achievements) - 40usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::leaderboards"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , leaderboards) - 48usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , num_leaderboards) - 56usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , response) - 64usize] ; } ; extern "C" { pub fn rc_api_init_fetch_game_data_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_game_data_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_data_response (response : * mut rc_api_fetch_game_data_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_data_server_response (response : * mut rc_api_fetch_game_data_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_game_data_response (response : * mut rc_api_fetch_game_data_response_t) ; } # [doc = " API parameters for a ping request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_ping_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub rich_presence : * const :: core :: ffi :: c_char , pub game_hash : * const :: core :: ffi :: c_char , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_ping_request_t"] [:: core :: mem :: size_of :: < rc_api_ping_request_t > () - 48usize] ; ["Alignment of rc_api_ping_request_t"] [:: core :: mem :: align_of :: < rc_api_ping_request_t > () - 8usize] ; ["Offset of field: rc_api_ping_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , username) - 0usize] ; ["Offset of field: rc_api_ping_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_ping_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_ping_request_t::rich_presence"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , rich_presence) - 24usize] ; ["Offset of field: rc_api_ping_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , game_hash) - 32usize] ; ["Offset of field: rc_api_ping_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , hardcore) - 40usize] ; } ; # [doc = " Response data for a ping request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_ping_response_t { pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_ping_response_t"] [:: core :: mem :: size_of :: < rc_api_ping_response_t > () - 312usize] ; ["Alignment of rc_api_ping_response_t"] [:: core :: mem :: align_of :: < rc_api_ping_response_t > () - 8usize] ; ["Offset of field: rc_api_ping_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_ping_response_t , response) - 0usize] ; } ; extern "C" { pub fn rc_api_init_ping_request (request : * mut rc_api_request_t , api_params : * const rc_api_ping_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_ping_response (response : * mut rc_api_ping_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_ping_server_response (response : * mut rc_api_ping_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_ping_response (response : * mut rc_api_ping_response_t) ; } # [doc = " API parameters for an award achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_award_achievement_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub hardcore : u32 , pub game_hash : * const :: core :: ffi :: c_char , pub seconds_since_unlock : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_award_achievement_request_t"] [:: core :: mem :: size_of :: < rc_api_award_achievement_request_t > () - 40usize] ; ["Alignment of rc_api_award_achievement_request_t"] [:: core :: mem :: align_of :: < rc_api_award_achievement_request_t > () - 8usize] ; ["Offset of field: rc_api_award_achievement_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , username) - 0usize] ; ["Offset of field: rc_api_award_achievement_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_award_achievement_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_award_achievement_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , hardcore) - 20usize] ; ["Offset of field: rc_api_award_achievement_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_award_achievement_request_t::seconds_since_unlock"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , seconds_since_unlock) - 32usize] ; } ; # [doc = " Response data for an award achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_award_achievement_response_t { pub awarded_achievement_id : u32 , pub new_player_score : u32 , pub new_player_score_softcore : u32 , pub achievements_remaining : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_award_achievement_response_t"] [:: core :: mem :: size_of :: < rc_api_award_achievement_response_t > () - 328usize] ; ["Alignment of rc_api_award_achievement_response_t"] [:: core :: mem :: align_of :: < rc_api_award_achievement_response_t > () - 8usize] ; ["Offset of field: rc_api_award_achievement_response_t::awarded_achievement_id"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , awarded_achievement_id) - 0usize] ; ["Offset of field: rc_api_award_achievement_response_t::new_player_score"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , new_player_score) - 4usize] ; ["Offset of field: rc_api_award_achievement_response_t::new_player_score_softcore"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , new_player_score_softcore) - 8usize] ; ["Offset of field: rc_api_award_achievement_response_t::achievements_remaining"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , achievements_remaining) - 12usize] ; ["Offset of field: rc_api_award_achievement_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_award_achievement_request (request : * mut rc_api_request_t , api_params : * const rc_api_award_achievement_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_award_achievement_response (response : * mut rc_api_award_achievement_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_award_achievement_server_response (response : * mut rc_api_award_achievement_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_award_achievement_response (response : * mut rc_api_award_achievement_response_t) ; } # [doc = " API parameters for a submit lboard entry request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_submit_lboard_entry_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub leaderboard_id : u32 , pub score : i32 , pub game_hash : * const :: core :: ffi :: c_char , pub seconds_since_completion : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_submit_lboard_entry_request_t"] [:: core :: mem :: size_of :: < rc_api_submit_lboard_entry_request_t > () - 40usize] ; ["Alignment of rc_api_submit_lboard_entry_request_t"] [:: core :: mem :: align_of :: < rc_api_submit_lboard_entry_request_t > () - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , username) - 0usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , leaderboard_id) - 16usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , score) - 20usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::seconds_since_completion"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , seconds_since_completion) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_lboard_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub score : i32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_lboard_entry_t"] [:: core :: mem :: size_of :: < rc_api_lboard_entry_t > () - 16usize] ; ["Alignment of rc_api_lboard_entry_t"] [:: core :: mem :: align_of :: < rc_api_lboard_entry_t > () - 8usize] ; ["Offset of field: rc_api_lboard_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , username) - 0usize] ; ["Offset of field: rc_api_lboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , rank) - 8usize] ; ["Offset of field: rc_api_lboard_entry_t::score"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , score) - 12usize] ; } ; # [doc = " Response data for a submit lboard entry request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_submit_lboard_entry_response_t { pub submitted_score : i32 , pub best_score : i32 , pub new_rank : u32 , pub num_entries : u32 , pub top_entries : * mut rc_api_lboard_entry_t , pub num_top_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_submit_lboard_entry_response_t"] [:: core :: mem :: size_of :: < rc_api_submit_lboard_entry_response_t > () - 344usize] ; ["Alignment of rc_api_submit_lboard_entry_response_t"] [:: core :: mem :: align_of :: < rc_api_submit_lboard_entry_response_t > () - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::submitted_score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , submitted_score) - 0usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::best_score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , best_score) - 4usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::new_rank"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , new_rank) - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , num_entries) - 12usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::top_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , top_entries) - 16usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::num_top_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , num_top_entries) - 24usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_submit_lboard_entry_request (request : * mut rc_api_request_t , api_params : * const rc_api_submit_lboard_entry_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_submit_lboard_entry_response (response : * mut rc_api_submit_lboard_entry_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_submit_lboard_entry_server_response (response : * mut rc_api_submit_lboard_entry_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_submit_lboard_entry_response (response : * mut rc_api_submit_lboard_entry_response_t) ; } # [doc = " Callback used to read num_bytes bytes from memory starting at address. If\n num_bytes is greater than 1, the value is read in little-endian from\n memory."] pub type rc_runtime_peek_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , num_bytes : u32 , ud : * mut :: core :: ffi :: c_void) -> u32 > ; # [doc = "\\\n| Runtime                                                                     |\n\\"] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_trigger_t { pub id : u32 , pub trigger : * mut rc_trigger_t , pub buffer : * mut :: core :: ffi :: c_void , pub invalid_memref : * mut rc_memref_t , pub md5 : [u8 ; 16usize] , pub serialized_size : i32 , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_trigger_t"] [:: core :: mem :: size_of :: < rc_runtime_trigger_t > () - 56usize] ; ["Alignment of rc_runtime_trigger_t"] [:: core :: mem :: align_of :: < rc_runtime_trigger_t > () - 8usize] ; ["Offset of field: rc_runtime_trigger_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , id) - 0usize] ; ["Offset of field: rc_runtime_trigger_t::trigger"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , trigger) - 8usize] ; ["Offset of field: rc_runtime_trigger_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , buffer) - 16usize] ; ["Offset of field: rc_runtime_trigger_t::invalid_memref"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , invalid_memref) - 24usize] ; ["Offset of field: rc_runtime_trigger_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , md5) - 32usize] ; ["Offset of field: rc_runtime_trigger_t::serialized_size"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , serialized_size) - 48usize] ; ["Offset of field: rc_runtime_trigger_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , owns_memrefs) - 52usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_lboard_t { pub id : u32 , pub value : i32 , pub lboard : * mut rc_lboard_t , pub buffer : * mut :: core :: ffi :: c_void , pub invalid_memref : * mut rc_memref_t , pub md5 : [u8 ; 16usize] , pub serialized_size : u32 , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_lboard_t"] [:: core :: mem :: size_of :: < rc_runtime_lboard_t > () - 56usize] ; ["Alignment of rc_runtime_lboard_t"] [:: core :: mem :: align_of :: < rc_runtime_lboard_t > () - 8usize] ; ["Offset of field: rc_runtime_lboard_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , id) - 0usize] ; ["Offset of field: rc_runtime_lboard_t::value"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , value) - 4usize] ; ["Offset of field: rc_runtime_lboard_t::lboard"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , lboard) - 8usize] ; ["Offset of field: rc_runtime_lboard_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , buffer) - 16usize] ; ["Offset of field: rc_runtime_lboard_t::invalid_memref"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , invalid_memref) - 24usize] ; ["Offset of field: rc_runtime_lboard_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , md5) - 32usize] ; ["Offset of field: rc_runtime_lboard_t::serialized_size"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , serialized_size) - 48usize] ; ["Offset of field: rc_runtime_lboard_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , owns_memrefs) - 52usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_richpresence_t { pub richpresence : * mut rc_richpresence_t , pub buffer : * mut :: core :: ffi :: c_void , pub previous : * mut rc_runtime_richpresence_t , pub md5 : [u8 ; 16usize] , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_richpresence_t"] [:: core :: mem :: size_of :: < rc_runtime_richpresence_t > () - 48usize] ; ["Alignment of rc_runtime_richpresence_t"] [:: core :: mem :: align_of :: < rc_runtime_richpresence_t > () - 8usize] ; ["Offset of field: rc_runtime_richpresence_t::richpresence"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , richpresence) - 0usize] ; ["Offset of field: rc_runtime_richpresence_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , buffer) - 8usize] ; ["Offset of field: rc_runtime_richpresence_t::previous"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , previous) - 16usize] ; ["Offset of field: rc_runtime_richpresence_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , md5) - 24usize] ; ["Offset of field: rc_runtime_richpresence_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , owns_memrefs) - 40usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_t { pub triggers : * mut rc_runtime_trigger_t , pub trigger_count : u32 , pub trigger_capacity : u32 , pub lboards : * mut rc_runtime_lboard_t , pub lboard_count : u32 , pub lboard_capacity : u32 , pub richpresence : * mut rc_runtime_richpresence_t , pub memrefs : * mut rc_memref_t , pub next_memref : * mut * mut rc_memref_t , pub variables : * mut rc_value_t , pub next_variable : * mut * mut rc_value_t , pub owns_self : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_t"] [:: core :: mem :: size_of :: < rc_runtime_t > () - 80usize] ; ["Alignment of rc_runtime_t"] [:: core :: mem :: align_of :: < rc_runtime_t > () - 8usize] ; ["Offset of field: rc_runtime_t::triggers"] [:: core :: mem :: offset_of ! (rc_runtime_t , triggers) - 0usize] ; ["Offset of field: rc_runtime_t::trigger_count"] [:: core :: mem :: offset_of ! (rc_runtime_t , trigger_count) - 8usize] ; ["Offset of field: rc_runtime_t::trigger_capacity"] [:: core :: mem :: offset_of ! (rc_runtime_t , trigger_capacity) - 12usize] ; ["Offset of field: rc_runtime_t::lboards"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboards) - 16usize] ; ["Offset of field: rc_runtime_t::lboard_count"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboard_count) - 24usize] ; ["Offset of field: rc_runtime_t::lboard_capacity"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboard_capacity) - 28usize] ; ["Offset of field: rc_runtime_t::richpresence"] [:: core :: mem :: offset_of ! (rc_runtime_t , richpresence) - 32usize] ; ["Offset of field: rc_runtime_t::memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_t , memrefs) - 40usize] ; ["Offset of field: rc_runtime_t::next_memref"] [:: core :: mem :: offset_of ! (rc_runtime_t , next_memref) - 48usize] ; ["Offset of field: rc_runtime_t::variables"] [:: core :: mem :: offset_of ! (rc_runtime_t , variables) - 56usize] ; ["Offset of field: rc_runtime_t::next_variable"] [:: core :: mem :: offset_of ! (rc_runtime_t , next_variable) - 64usize] ; ["Offset of field: rc_runtime_t::owns_self"] [:: core :: mem :: offset_of ! (rc_runtime_t , owns_self) - 72usize] ; } ; extern "C" { pub fn rc_runtime_alloc () -> * mut rc_runtime_t ; } extern "C" { pub fn rc_runtime_init (runtime : * mut rc_runtime_t) ; } extern "C" { pub fn rc_runtime_destroy (runtime : * mut rc_runtime_t) ; } extern "C" { pub fn rc_runtime_activate_achievement (runtime : * mut rc_runtime_t , id : u32 , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deactivate_achievement (runtime : * mut rc_runtime_t , id : u32) ; } extern "C" { pub fn rc_runtime_get_achievement (runtime : * const rc_runtime_t , id : u32) -> * mut rc_trigger_t ; } extern "C" { pub fn rc_runtime_get_achievement_measured (runtime : * const rc_runtime_t , id : u32 , measured_value : * mut :: core :: ffi :: c_uint , measured_target : * mut :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_format_achievement_measured (runtime : * const rc_runtime_t , id : u32 , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_activate_lboard (runtime : * mut rc_runtime_t , id : u32 , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deactivate_lboard (runtime : * mut rc_runtime_t , id : u32) ; } extern "C" { pub fn rc_runtime_get_lboard (runtime : * const rc_runtime_t , id : u32) -> * mut rc_lboard_t ; } extern "C" { pub fn rc_runtime_format_lboard_value (buffer : * mut :: core :: ffi :: c_char , size : :: core :: ffi :: c_int , value : i32 , format : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_activate_richpresence (runtime : * mut rc_runtime_t , script : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_get_richpresence (runtime : * const rc_runtime_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_runtime_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } pub const RC_RUNTIME_EVENT_ACHIEVEMENT_ACTIVATED : _bindgen_ty_14 = 0 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PAUSED : _bindgen_ty_14 = 1 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_RESET : _bindgen_ty_14 = 2 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_TRIGGERED : _bindgen_ty_14 = 3 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PRIMED : _bindgen_ty_14 = 4 ; pub const RC_RUNTIME_EVENT_LBOARD_STARTED : _bindgen_ty_14 = 5 ; pub const RC_RUNTIME_EVENT_LBOARD_CANCELED : _bindgen_ty_14 = 6 ; pub const RC_RUNTIME_EVENT_LBOARD_UPDATED : _bindgen_ty_14 = 7 ; pub const RC_RUNTIME_EVENT_LBOARD_TRIGGERED : _bindgen_ty_14 = 8 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_DISABLED : _bindgen_ty_14 = 9 ; pub const RC_RUNTIME_EVENT_LBOARD_DISABLED : _bindgen_ty_14 = 10 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_UNPRIMED : _bindgen_ty_14 = 11 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PROGRESS_UPDATED : _bindgen_ty_14 = 12 ; pub type _bindgen_ty_14 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_event_t { pub id : u32 , pub value : i32 , pub type_ : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_event_t"] [:: core :: mem :: size_of :: < rc_runtime_event_t > () - 12usize] ; ["Alignment of rc_runtime_event_t"] [:: core :: mem :: align_of :: < rc_runtime_event_t > () - 4usize] ; ["Offset of field: rc_runtime_event_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , id) - 0usize] ; ["Offset of field: rc_runtime_event_t::value"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , value) - 4usize] ; ["Offset of field: rc_runtime_event_t::type_"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , type_) - 8usize] ; } ; pub type rc_runtime_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (runtime_event : * const rc_runtime_event_t) > ; extern "C" { pub fn rc_runtime_do_frame (runtime : * mut rc_runtime_t , event_handler : rc_runtime_event_handler_t , peek : rc_runtime_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) ; } extern "C" { pub fn rc_runtime_reset (runtime : * mut rc_runtime_t) ; } pub type rc_runtime_validate_address_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_runtime_validate_addresses (runtime : * mut rc_runtime_t , event_handler : rc_runtime_event_handler_t , validate_handler : rc_runtime_validate_address_t) ; } extern "C" { pub fn rc_runtime_invalidate_address (runtime : * mut rc_runtime_t , address : u32) ; } extern "C" { pub fn rc_runtime_progress_size (runtime : * const rc_runtime_t , L : * mut lua_State) -> u32 ; } extern "C" { pub fn rc_runtime_serialize_progress (buffer : * mut :: core :: ffi :: c_void , runtime : * const rc_runtime_t , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_serialize_progress_sized (buffer : * mut u8 , buffer_size : u32 , runtime : * const rc_runtime_t , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deserialize_progress (runtime : * mut rc_runtime_t , serialized : * const u8 , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deserialize_progress_sized (runtime : * mut rc_runtime_t , serialized : * const u8 , serialized_size : u32 , L : * mut lua_State) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_async_handle_t { _unused : [u8 ; 0] , } # [doc = " Callback used to read num_bytes bytes from memory starting at address into buffer.\n Returns the number of bytes read. A return value of 0 indicates the address was invalid."] pub type rc_client_read_memory_func_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , buffer : * mut u8 , num_bytes : u32 , client : * mut rc_client_t) -> u32 > ; # [doc = " Internal method passed to rc_client_server_call_t to process the server response."] pub type rc_client_server_callback_t = :: core :: option :: Option < unsafe extern "C" fn (server_response : * const rc_api_server_response_t , callback_data : * mut :: core :: ffi :: c_void) > ; # [doc = " Callback used to issue a request to the server."] pub type rc_client_server_call_t = :: core :: option :: Option < unsafe extern "C" fn (request : * const rc_api_request_t , callback : rc_client_server_callback_t , callback_data : * mut :: core :: ffi :: c_void , client : * mut rc_client_t) > ; # [doc = " Generic callback for asynchronous eventing."] pub type rc_client_callback_t = :: core :: option :: Option < unsafe extern "C" fn (result : :: core :: ffi :: c_int , error_message : * const :: core :: ffi :: c_char , client : * mut rc_client_t , userdata : * mut :: core :: ffi :: c_void) > ; # [doc = " Callback for logging or displaying a message."] pub type rc_client_message_callback_t = :: core :: option :: Option < unsafe extern "C" fn (message : * const :: core :: ffi :: c_char , client : * const rc_client_t) > ; extern "C" { # [doc = " Creates a new rc_client_t object."] pub fn rc_client_create (read_memory_function : rc_client_read_memory_func_t , server_call_function : rc_client_server_call_t) -> * mut rc_client_t ; } extern "C" { # [doc = " Releases resources associated to a rc_client_t object.\n Pointer will no longer be valid after making this call."] pub fn rc_client_destroy (client : * mut rc_client_t) ; } extern "C" { # [doc = " Sets whether hardcore is enabled (on by default).\n Can be called with a game loaded.\n Enabling hardcore with a game loaded will raise an RC_CLIENT_EVENT_RESET\n event. Processing will be disabled until rc_client_reset is called."] pub fn rc_client_set_hardcore_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether hardcore is enabled (on by default)."] pub fn rc_client_get_hardcore_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether encore mode is enabled (off by default).\n Evaluated when loading a game. Has no effect while a game is loaded."] pub fn rc_client_set_encore_mode_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether encore mode is enabled (off by default)."] pub fn rc_client_get_encore_mode_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether unofficial achievements should be loaded.\n Evaluated when loading a game. Has no effect while a game is loaded."] pub fn rc_client_set_unofficial_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether unofficial achievements should be loaded."] pub fn rc_client_get_unofficial_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether spectator mode is enabled (off by default).\n If enabled, events for achievement unlocks and leaderboard submissions will be\n raised, but server calls to actually perform the unlock/submit will not occur.\n Can be modified while a game is loaded. Evaluated at unlock/submit time.\n Cannot be modified if disabled before a game is loaded."] pub fn rc_client_set_spectator_mode_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether spectator mode is enabled (off by default)."] pub fn rc_client_get_spectator_mode_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Attaches client-specific data to the runtime."] pub fn rc_client_set_userdata (client : * mut rc_client_t , userdata : * mut :: core :: ffi :: c_void) ; } extern "C" { # [doc = " Gets the client-specific data attached to the runtime."] pub fn rc_client_get_userdata (client : * const rc_client_t) -> * mut :: core :: ffi :: c_void ; } extern "C" { # [doc = " Sets the name of the server to use."] pub fn rc_client_set_host (client : * const rc_client_t , hostname : * const :: core :: ffi :: c_char) ; } pub type rc_clock_t = u64 ; pub type rc_get_time_millisecs_func_t = :: core :: option :: Option < unsafe extern "C" fn (client : * const rc_client_t) -> rc_clock_t > ; extern "C" { # [doc = " Specifies a function that returns a value that increases once per millisecond."] pub fn rc_client_set_get_time_millisecs_function (client : * mut rc_client_t , handler : rc_get_time_millisecs_func_t) ; } extern "C" { # [doc = " Marks an async process as aborted. The associated callback will not be called."] pub fn rc_client_abort_async (client : * mut rc_client_t , async_handle : * mut rc_client_async_handle_t) ; } extern "C" { # [doc = " Gets a clause that can be added to the User-Agent to identify the version of rcheevos being used."] pub fn rc_client_get_user_agent_clause (client : * mut rc_client_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> usize ; } extern "C" { # [doc = " Sets the logging level and provides a callback to be called to do the logging."] pub fn rc_client_enable_logging (client : * mut rc_client_t , level : :: core :: ffi :: c_int , callback : rc_client_message_callback_t) ; } pub const RC_CLIENT_LOG_LEVEL_NONE : _bindgen_ty_15 = 0 ; pub const RC_CLIENT_LOG_LEVEL_ERROR : _bindgen_ty_15 = 1 ; pub const RC_CLIENT_LOG_LEVEL_WARN : _bindgen_ty_15 = 2 ; pub const RC_CLIENT_LOG_LEVEL_INFO : _bindgen_ty_15 = 3 ; pub const RC_CLIENT_LOG_LEVEL_VERBOSE : _bindgen_ty_15 = 4 ; pub const NUM_RC_CLIENT_LOG_LEVELS : _bindgen_ty_15 = 5 ; pub type _bindgen_ty_15 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Attempt to login a user."] pub fn rc_client_begin_login_with_password (client : * mut rc_client_t , username : * const :: core :: ffi :: c_char , password : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Attempt to login a user."] pub fn rc_client_begin_login_with_token (client : * mut rc_client_t , username : * const :: core :: ffi :: c_char , token : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Logout the user."] pub fn rc_client_logout (client : * mut rc_client_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_user_t { pub display_name : * const :: core :: ffi :: c_char , pub username : * const :: core :: ffi :: c_char , pub token : * const :: core :: ffi :: c_char , pub score : u32 , pub score_softcore : u32 , pub num_unread_messages : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_user_t"] [:: core :: mem :: size_of :: < rc_client_user_t > () - 40usize] ; ["Alignment of rc_client_user_t"] [:: core :: mem :: align_of :: < rc_client_user_t > () - 8usize] ; ["Offset of field: rc_client_user_t::display_name"] [:: core :: mem :: offset_of ! (rc_client_user_t , display_name) - 0usize] ; ["Offset of field: rc_client_user_t::username"] [:: core :: mem :: offset_of ! (rc_client_user_t , username) - 8usize] ; ["Offset of field: rc_client_user_t::token"] [:: core :: mem :: offset_of ! (rc_client_user_t , token) - 16usize] ; ["Offset of field: rc_client_user_t::score"] [:: core :: mem :: offset_of ! (rc_client_user_t , score) - 24usize] ; ["Offset of field: rc_client_user_t::score_softcore"] [:: core :: mem :: offset_of ! (rc_client_user_t , score_softcore) - 28usize] ; ["Offset of field: rc_client_user_t::num_unread_messages"] [:: core :: mem :: offset_of ! (rc_client_user_t , num_unread_messages) - 32usize] ; } ; extern "C" { # [doc = " Gets information about the logged in user. Will return NULL if the user is not logged in."] pub fn rc_client_get_user_info (client : * const rc_client_t) -> * const rc_client_user_t ; } extern "C" { # [doc = " Gets the URL for the user's profile picture.\n Returns RC_OK on success."] pub fn rc_client_user_get_image_url (user : * const rc_client_user_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_user_game_summary_t { pub num_core_achievements : u32 , pub num_unofficial_achievements : u32 , pub num_unlocked_achievements : u32 , pub num_unsupported_achievements : u32 , pub points_core : u32 , pub points_unlocked : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_user_game_summary_t"] [:: core :: mem :: size_of :: < rc_client_user_game_summary_t > () - 24usize] ; ["Alignment of rc_client_user_game_summary_t"] [:: core :: mem :: align_of :: < rc_client_user_game_summary_t > () - 4usize] ; ["Offset of field: rc_client_user_game_summary_t::num_core_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_core_achievements) - 0usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unofficial_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unofficial_achievements) - 4usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unlocked_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unlocked_achievements) - 8usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unsupported_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unsupported_achievements) - 12usize] ; ["Offset of field: rc_client_user_game_summary_t::points_core"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , points_core) - 16usize] ; ["Offset of field: rc_client_user_game_summary_t::points_unlocked"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , points_unlocked) - 20usize] ; } ; extern "C" { # [doc = " Gets a breakdown of the number of achievements in the game, and how many the user has unlocked.\n Used for the \"You have unlocked X of Y achievements\" message shown when the game starts."] pub fn rc_client_get_user_game_summary (client : * const rc_client_t , summary : * mut rc_client_user_game_summary_t) ; } extern "C" { # [doc = " Start loading an unidentified game."] pub fn rc_client_begin_identify_and_load_game (client : * mut rc_client_t , console_id : u32 , file_path : * const :: core :: ffi :: c_char , data : * const u8 , data_size : usize , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Start loading a game."] pub fn rc_client_begin_load_game (client : * mut rc_client_t , hash : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Gets the current progress of the asynchronous load game process."] pub fn rc_client_get_load_game_state (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } pub const RC_CLIENT_LOAD_GAME_STATE_NONE : _bindgen_ty_16 = 0 ; pub const RC_CLIENT_LOAD_GAME_STATE_IDENTIFYING_GAME : _bindgen_ty_16 = 1 ; pub const RC_CLIENT_LOAD_GAME_STATE_AWAIT_LOGIN : _bindgen_ty_16 = 2 ; pub const RC_CLIENT_LOAD_GAME_STATE_FETCHING_GAME_DATA : _bindgen_ty_16 = 3 ; pub const RC_CLIENT_LOAD_GAME_STATE_STARTING_SESSION : _bindgen_ty_16 = 4 ; pub const RC_CLIENT_LOAD_GAME_STATE_DONE : _bindgen_ty_16 = 5 ; pub const RC_CLIENT_LOAD_GAME_STATE_ABORTED : _bindgen_ty_16 = 6 ; pub type _bindgen_ty_16 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Determines if a game was successfully identified and loaded."] pub fn rc_client_is_game_loaded (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Unloads the current game."] pub fn rc_client_unload_game (client : * mut rc_client_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_game_t { pub id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub hash : * const :: core :: ffi :: c_char , pub badge_name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_game_t"] [:: core :: mem :: size_of :: < rc_client_game_t > () - 32usize] ; ["Alignment of rc_client_game_t"] [:: core :: mem :: align_of :: < rc_client_game_t > () - 8usize] ; ["Offset of field: rc_client_game_t::id"] [:: core :: mem :: offset_of ! (rc_client_game_t , id) - 0usize] ; ["Offset of field: rc_client_game_t::console_id"] [:: core :: mem :: offset_of ! (rc_client_game_t , console_id) - 4usize] ; ["Offset of field: rc_client_game_t::title"] [:: core :: mem :: offset_of ! (rc_client_game_t , title) - 8usize] ; ["Offset of field: rc_client_game_t::hash"] [:: core :: mem :: offset_of ! (rc_client_game_t , hash) - 16usize] ; ["Offset of field: rc_client_game_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_game_t , badge_name) - 24usize] ; } ; extern "C" { # [doc = " Get information about the current game. Returns NULL if no game is loaded.\n NOTE: returns a dummy game record if an unidentified game is loaded."] pub fn rc_client_get_game_info (client : * const rc_client_t) -> * const rc_client_game_t ; } extern "C" { # [doc = " Gets the URL for the game image.\n Returns RC_OK on success."] pub fn rc_client_game_get_image_url (game : * const rc_client_game_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Changes the active disc in a multi-disc game."] pub fn rc_client_begin_change_media (client : * mut rc_client_t , file_path : * const :: core :: ffi :: c_char , data : * const u8 , data_size : usize , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Changes the active disc in a multi-disc game."] pub fn rc_client_begin_change_media_from_hash (client : * mut rc_client_t , hash : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } # [doc = "\\\n| Subsets                                                                     |\n\\"] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_subset_t { pub id : u32 , pub title : * const :: core :: ffi :: c_char , pub badge_name : [:: core :: ffi :: c_char ; 16usize] , pub num_achievements : u32 , pub num_leaderboards : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_subset_t"] [:: core :: mem :: size_of :: < rc_client_subset_t > () - 40usize] ; ["Alignment of rc_client_subset_t"] [:: core :: mem :: align_of :: < rc_client_subset_t > () - 8usize] ; ["Offset of field: rc_client_subset_t::id"] [:: core :: mem :: offset_of ! (rc_client_subset_t , id) - 0usize] ; ["Offset of field: rc_client_subset_t::title"] [:: core :: mem :: offset_of ! (rc_client_subset_t , title) - 8usize] ; ["Offset of field: rc_client_subset_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_subset_t , badge_name) - 16usize] ; ["Offset of field: rc_client_subset_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_client_subset_t , num_achievements) - 32usize] ; ["Offset of field: rc_client_subset_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_client_subset_t , num_leaderboards) - 36usize] ; } ; extern "C" { pub fn rc_client_get_subset_info (client : * mut rc_client_t , subset_id : u32) -> * const rc_client_subset_t ; } pub const RC_CLIENT_ACHIEVEMENT_STATE_INACTIVE : _bindgen_ty_17 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_ACTIVE : _bindgen_ty_17 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_UNLOCKED : _bindgen_ty_17 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_DISABLED : _bindgen_ty_17 = 3 ; pub const NUM_RC_CLIENT_ACHIEVEMENT_STATES : _bindgen_ty_17 = 4 ; # [doc = "\\\n| Achievements                                                                |\n\\"] pub type _bindgen_ty_17 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_NONE : _bindgen_ty_18 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_CORE : _bindgen_ty_18 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_UNOFFICIAL : _bindgen_ty_18 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_CORE_AND_UNOFFICIAL : _bindgen_ty_18 = 3 ; pub type _bindgen_ty_18 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_STANDARD : _bindgen_ty_19 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_MISSABLE : _bindgen_ty_19 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_PROGRESSION : _bindgen_ty_19 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_WIN : _bindgen_ty_19 = 3 ; pub type _bindgen_ty_19 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNKNOWN : _bindgen_ty_20 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_LOCKED : _bindgen_ty_20 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNLOCKED : _bindgen_ty_20 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNSUPPORTED : _bindgen_ty_20 = 3 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNOFFICIAL : _bindgen_ty_20 = 4 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_RECENTLY_UNLOCKED : _bindgen_ty_20 = 5 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_ACTIVE_CHALLENGE : _bindgen_ty_20 = 6 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_ALMOST_THERE : _bindgen_ty_20 = 7 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNSYNCED : _bindgen_ty_20 = 8 ; pub const NUM_RC_CLIENT_ACHIEVEMENT_BUCKETS : _bindgen_ty_20 = 9 ; pub type _bindgen_ty_20 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_NONE : _bindgen_ty_21 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_SOFTCORE : _bindgen_ty_21 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_HARDCORE : _bindgen_ty_21 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_BOTH : _bindgen_ty_21 = 3 ; pub type _bindgen_ty_21 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_t { pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub badge_name : [:: core :: ffi :: c_char ; 8usize] , pub measured_progress : [:: core :: ffi :: c_char ; 24usize] , pub measured_percent : f32 , pub id : u32 , pub points : u32 , pub unlock_time : time_t , pub state : u8 , pub category : u8 , pub bucket : u8 , pub unlocked : u8 , pub rarity : f32 , pub rarity_hardcore : f32 , pub type_ : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_t"] [:: core :: mem :: size_of :: < rc_client_achievement_t > () - 88usize] ; ["Alignment of rc_client_achievement_t"] [:: core :: mem :: align_of :: < rc_client_achievement_t > () - 8usize] ; ["Offset of field: rc_client_achievement_t::title"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , title) - 0usize] ; ["Offset of field: rc_client_achievement_t::description"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , description) - 8usize] ; ["Offset of field: rc_client_achievement_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , badge_name) - 16usize] ; ["Offset of field: rc_client_achievement_t::measured_progress"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , measured_progress) - 24usize] ; ["Offset of field: rc_client_achievement_t::measured_percent"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , measured_percent) - 48usize] ; ["Offset of field: rc_client_achievement_t::id"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , id) - 52usize] ; ["Offset of field: rc_client_achievement_t::points"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , points) - 56usize] ; ["Offset of field: rc_client_achievement_t::unlock_time"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , unlock_time) - 64usize] ; ["Offset of field: rc_client_achievement_t::state"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , state) - 72usize] ; ["Offset of field: rc_client_achievement_t::category"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , category) - 73usize] ; ["Offset of field: rc_client_achievement_t::bucket"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , bucket) - 74usize] ; ["Offset of field: rc_client_achievement_t::unlocked"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , unlocked) - 75usize] ; ["Offset of field: rc_client_achievement_t::rarity"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , rarity) - 76usize] ; ["Offset of field: rc_client_achievement_t::rarity_hardcore"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , rarity_hardcore) - 80usize] ; ["Offset of field: rc_client_achievement_t::type_"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , type_) - 84usize] ; } ; extern "C" { # [doc = " Get information about an achievement. Returns NULL if not found."] pub fn rc_client_get_achievement_info (client : * mut rc_client_t , id : u32) -> * const rc_client_achievement_t ; } extern "C" { # [doc = " Gets the URL for the achievement image.\n Returns RC_OK on success."] pub fn rc_client_achievement_get_image_url (achievement : * const rc_client_achievement_t , state : :: core :: ffi :: c_int , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_bucket_t { pub achievements : * mut * mut rc_client_achievement_t , pub num_achievements : u32 , pub label : * const :: core :: ffi :: c_char , pub subset_id : u32 , pub bucket_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_bucket_t"] [:: core :: mem :: size_of :: < rc_client_achievement_bucket_t > () - 32usize] ; ["Alignment of rc_client_achievement_bucket_t"] [:: core :: mem :: align_of :: < rc_client_achievement_bucket_t > () - 8usize] ; ["Offset of field: rc_client_achievement_bucket_t::achievements"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , achievements) - 0usize] ; ["Offset of field: rc_client_achievement_bucket_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , num_achievements) - 8usize] ; ["Offset of field: rc_client_achievement_bucket_t::label"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , label) - 16usize] ; ["Offset of field: rc_client_achievement_bucket_t::subset_id"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , subset_id) - 24usize] ; ["Offset of field: rc_client_achievement_bucket_t::bucket_type"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , bucket_type) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_list_t { pub buckets : * mut rc_client_achievement_bucket_t , pub num_buckets : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_list_t"] [:: core :: mem :: size_of :: < rc_client_achievement_list_t > () - 16usize] ; ["Alignment of rc_client_achievement_list_t"] [:: core :: mem :: align_of :: < rc_client_achievement_list_t > () - 8usize] ; ["Offset of field: rc_client_achievement_list_t::buckets"] [:: core :: mem :: offset_of ! (rc_client_achievement_list_t , buckets) - 0usize] ; ["Offset of field: rc_client_achievement_list_t::num_buckets"] [:: core :: mem :: offset_of ! (rc_client_achievement_list_t , num_buckets) - 8usize] ; } ; pub const RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_LOCK_STATE : _bindgen_ty_22 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_PROGRESS : _bindgen_ty_22 = 1 ; pub type _bindgen_ty_22 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Creates a list of achievements matching the specified category and grouping.\n Returns an allocated list that must be free'd by calling rc_client_destroy_achievement_list."] pub fn rc_client_create_achievement_list (client : * mut rc_client_t , category : :: core :: ffi :: c_int , grouping : :: core :: ffi :: c_int) -> * mut rc_client_achievement_list_t ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_get_achievement_list."] pub fn rc_client_destroy_achievement_list (list : * mut rc_client_achievement_list_t) ; } extern "C" { # [doc = " Returns non-zero if there are any achievements that can be queried through rc_client_create_achievement_list()."] pub fn rc_client_has_achievements (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } pub const RC_CLIENT_LEADERBOARD_STATE_INACTIVE : _bindgen_ty_23 = 0 ; pub const RC_CLIENT_LEADERBOARD_STATE_ACTIVE : _bindgen_ty_23 = 1 ; pub const RC_CLIENT_LEADERBOARD_STATE_TRACKING : _bindgen_ty_23 = 2 ; pub const RC_CLIENT_LEADERBOARD_STATE_DISABLED : _bindgen_ty_23 = 3 ; pub const NUM_RC_CLIENT_LEADERBOARD_STATES : _bindgen_ty_23 = 4 ; # [doc = "\\\n| Leaderboards                                                                |\n\\"] pub type _bindgen_ty_23 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_LEADERBOARD_FORMAT_TIME : _bindgen_ty_24 = 0 ; pub const RC_CLIENT_LEADERBOARD_FORMAT_SCORE : _bindgen_ty_24 = 1 ; pub const RC_CLIENT_LEADERBOARD_FORMAT_VALUE : _bindgen_ty_24 = 2 ; pub const NUM_RC_CLIENT_LEADERBOARD_FORMATS : _bindgen_ty_24 = 3 ; pub type _bindgen_ty_24 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_t { pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub tracker_value : * const :: core :: ffi :: c_char , pub id : u32 , pub state : u8 , pub format : u8 , pub lower_is_better : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_t > () - 32usize] ; ["Alignment of rc_client_leaderboard_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_t::title"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , title) - 0usize] ; ["Offset of field: rc_client_leaderboard_t::description"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , description) - 8usize] ; ["Offset of field: rc_client_leaderboard_t::tracker_value"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , tracker_value) - 16usize] ; ["Offset of field: rc_client_leaderboard_t::id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , id) - 24usize] ; ["Offset of field: rc_client_leaderboard_t::state"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , state) - 28usize] ; ["Offset of field: rc_client_leaderboard_t::format"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , format) - 29usize] ; ["Offset of field: rc_client_leaderboard_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , lower_is_better) - 30usize] ; } ; extern "C" { # [doc = " Get information about a leaderboard. Returns NULL if not found."] pub fn rc_client_get_leaderboard_info (client : * const rc_client_t , id : u32) -> * const rc_client_leaderboard_t ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_tracker_t { pub display : [:: core :: ffi :: c_char ; 24usize] , pub id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_tracker_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_tracker_t > () - 28usize] ; ["Alignment of rc_client_leaderboard_tracker_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_tracker_t > () - 4usize] ; ["Offset of field: rc_client_leaderboard_tracker_t::display"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_tracker_t , display) - 0usize] ; ["Offset of field: rc_client_leaderboard_tracker_t::id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_tracker_t , id) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_bucket_t { pub leaderboards : * mut * mut rc_client_leaderboard_t , pub num_leaderboards : u32 , pub label : * const :: core :: ffi :: c_char , pub subset_id : u32 , pub bucket_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_bucket_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_bucket_t > () - 32usize] ; ["Alignment of rc_client_leaderboard_bucket_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_bucket_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::leaderboards"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , leaderboards) - 0usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , num_leaderboards) - 8usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::label"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , label) - 16usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::subset_id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , subset_id) - 24usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::bucket_type"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , bucket_type) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_list_t { pub buckets : * mut rc_client_leaderboard_bucket_t , pub num_buckets : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_list_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_list_t > () - 16usize] ; ["Alignment of rc_client_leaderboard_list_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_list_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_list_t::buckets"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_list_t , buckets) - 0usize] ; ["Offset of field: rc_client_leaderboard_list_t::num_buckets"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_list_t , num_buckets) - 8usize] ; } ; pub const RC_CLIENT_LEADERBOARD_BUCKET_UNKNOWN : _bindgen_ty_25 = 0 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_INACTIVE : _bindgen_ty_25 = 1 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_ACTIVE : _bindgen_ty_25 = 2 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_UNSUPPORTED : _bindgen_ty_25 = 3 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_ALL : _bindgen_ty_25 = 4 ; pub const NUM_RC_CLIENT_LEADERBOARD_BUCKETS : _bindgen_ty_25 = 5 ; pub type _bindgen_ty_25 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_LEADERBOARD_LIST_GROUPING_NONE : _bindgen_ty_26 = 0 ; pub const RC_CLIENT_LEADERBOARD_LIST_GROUPING_TRACKING : _bindgen_ty_26 = 1 ; pub type _bindgen_ty_26 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Creates a list of leaderboards matching the specified grouping.\n Returns an allocated list that must be free'd by calling rc_client_destroy_leaderboard_list."] pub fn rc_client_create_leaderboard_list (client : * mut rc_client_t , grouping : :: core :: ffi :: c_int) -> * mut rc_client_leaderboard_list_t ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_get_leaderboard_list."] pub fn rc_client_destroy_leaderboard_list (list : * mut rc_client_leaderboard_list_t) ; } extern "C" { # [doc = " Returns non-zero if the current game has any leaderboards."] pub fn rc_client_has_leaderboards (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_entry_t { pub user : * const :: core :: ffi :: c_char , pub display : [:: core :: ffi :: c_char ; 24usize] , pub submitted : time_t , pub rank : u32 , pub index : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_entry_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_entry_t > () - 48usize] ; ["Alignment of rc_client_leaderboard_entry_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_entry_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_t::user"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , user) - 0usize] ; ["Offset of field: rc_client_leaderboard_entry_t::display"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , display) - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_t::submitted"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , submitted) - 32usize] ; ["Offset of field: rc_client_leaderboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , rank) - 40usize] ; ["Offset of field: rc_client_leaderboard_entry_t::index"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , index) - 44usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_entry_list_t { pub entries : * mut rc_client_leaderboard_entry_t , pub num_entries : u32 , pub total_entries : u32 , pub user_index : i32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_entry_list_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_entry_list_t > () - 24usize] ; ["Alignment of rc_client_leaderboard_entry_list_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_entry_list_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , entries) - 0usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::num_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , num_entries) - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::total_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , total_entries) - 12usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::user_index"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , user_index) - 16usize] ; } ; pub type rc_client_fetch_leaderboard_entries_callback_t = :: core :: option :: Option < unsafe extern "C" fn (result : :: core :: ffi :: c_int , error_message : * const :: core :: ffi :: c_char , list : * mut rc_client_leaderboard_entry_list_t , client : * mut rc_client_t , callback_userdata : * mut :: core :: ffi :: c_void) > ; extern "C" { # [doc = " Fetches a list of leaderboard entries from the server.\n Callback receives an allocated list that must be free'd by calling rc_client_destroy_leaderboard_entry_list."] pub fn rc_client_begin_fetch_leaderboard_entries (client : * mut rc_client_t , leaderboard_id : u32 , first_entry : u32 , count : u32 , callback : rc_client_fetch_leaderboard_entries_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Fetches a list of leaderboard entries from the server containing the logged-in user.\n Callback receives an allocated list that must be free'd by calling rc_client_destroy_leaderboard_entry_list."] pub fn rc_client_begin_fetch_leaderboard_entries_around_user (client : * mut rc_client_t , leaderboard_id : u32 , count : u32 , callback : rc_client_fetch_leaderboard_entries_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Gets the URL for the profile picture of the user associated to a leaderboard entry.\n Returns RC_OK on success."] pub fn rc_client_leaderboard_entry_get_user_image_url (entry : * const rc_client_leaderboard_entry_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_begin_fetch_leaderboard_entries or rc_client_begin_fetch_leaderboard_entries_around_user."] pub fn rc_client_destroy_leaderboard_entry_list (list : * mut rc_client_leaderboard_entry_list_t) ; } # [doc = " Used for scoreboard events. Contains the response from the server when a leaderboard entry is submitted.\n NOTE: This structure is only valid within the event callback. If you want to make use of the data outside\n of the callback, you should create copies of both the top entries and usernames within."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_scoreboard_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub score : [:: core :: ffi :: c_char ; 24usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_scoreboard_entry_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_scoreboard_entry_t > () - 40usize] ; ["Alignment of rc_client_leaderboard_scoreboard_entry_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_scoreboard_entry_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::username"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , username) - 0usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , rank) - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , score) - 12usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_scoreboard_t { pub leaderboard_id : u32 , pub submitted_score : [:: core :: ffi :: c_char ; 24usize] , pub best_score : [:: core :: ffi :: c_char ; 24usize] , pub new_rank : u32 , pub num_entries : u32 , pub top_entries : * mut rc_client_leaderboard_scoreboard_entry_t , pub num_top_entries : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_scoreboard_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_scoreboard_t > () - 80usize] ; ["Alignment of rc_client_leaderboard_scoreboard_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_scoreboard_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::submitted_score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , submitted_score) - 4usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::best_score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , best_score) - 28usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::new_rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , new_rank) - 52usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::num_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , num_entries) - 56usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::top_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , top_entries) - 64usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::num_top_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , num_top_entries) - 72usize] ; } ; extern "C" { # [doc = " Returns non-zero if the current game supports rich presence."] pub fn rc_client_has_rich_presence (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Gets the current rich presence message.\n Returns the number of characters written to buffer."] pub fn rc_client_get_rich_presence_message (client : * mut rc_client_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> usize ; } pub const RC_CLIENT_EVENT_TYPE_NONE : _bindgen_ty_27 = 0 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_TRIGGERED : _bindgen_ty_27 = 1 ; pub const RC_CLIENT_EVENT_LEADERBOARD_STARTED : _bindgen_ty_27 = 2 ; pub const RC_CLIENT_EVENT_LEADERBOARD_FAILED : _bindgen_ty_27 = 3 ; pub const RC_CLIENT_EVENT_LEADERBOARD_SUBMITTED : _bindgen_ty_27 = 4 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_CHALLENGE_INDICATOR_SHOW : _bindgen_ty_27 = 5 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_CHALLENGE_INDICATOR_HIDE : _bindgen_ty_27 = 6 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_SHOW : _bindgen_ty_27 = 7 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_HIDE : _bindgen_ty_27 = 8 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_UPDATE : _bindgen_ty_27 = 9 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_SHOW : _bindgen_ty_27 = 10 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_HIDE : _bindgen_ty_27 = 11 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_UPDATE : _bindgen_ty_27 = 12 ; pub const RC_CLIENT_EVENT_LEADERBOARD_SCOREBOARD : _bindgen_ty_27 = 13 ; pub const RC_CLIENT_EVENT_RESET : _bindgen_ty_27 = 14 ; pub const RC_CLIENT_EVENT_GAME_COMPLETED : _bindgen_ty_27 = 15 ; pub const RC_CLIENT_EVENT_SERVER_ERROR : _bindgen_ty_27 = 16 ; pub const RC_CLIENT_EVENT_DISCONNECTED : _bindgen_ty_27 = 17 ; pub const RC_CLIENT_EVENT_RECONNECTED : _bindgen_ty_27 = 18 ; # [doc = "\\\n| Processing                                                                  |\n\\"] pub type _bindgen_ty_27 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_server_error_t { pub error_message : * const :: core :: ffi :: c_char , pub api : * const :: core :: ffi :: c_char , pub result : :: core :: ffi :: c_int , pub related_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_server_error_t"] [:: core :: mem :: size_of :: < rc_client_server_error_t > () - 24usize] ; ["Alignment of rc_client_server_error_t"] [:: core :: mem :: align_of :: < rc_client_server_error_t > () - 8usize] ; ["Offset of field: rc_client_server_error_t::error_message"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , error_message) - 0usize] ; ["Offset of field: rc_client_server_error_t::api"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , api) - 8usize] ; ["Offset of field: rc_client_server_error_t::result"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , result) - 16usize] ; ["Offset of field: rc_client_server_error_t::related_id"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , related_id) - 20usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_event_t { pub type_ : u32 , pub achievement : * mut rc_client_achievement_t , pub leaderboard : * mut rc_client_leaderboard_t , pub leaderboard_tracker : * mut rc_client_leaderboard_tracker_t , pub leaderboard_scoreboard : * mut rc_client_leaderboard_scoreboard_t , pub server_error : * mut rc_client_server_error_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_event_t"] [:: core :: mem :: size_of :: < rc_client_event_t > () - 48usize] ; ["Alignment of rc_client_event_t"] [:: core :: mem :: align_of :: < rc_client_event_t > () - 8usize] ; ["Offset of field: rc_client_event_t::type_"] [:: core :: mem :: offset_of ! (rc_client_event_t , type_) - 0usize] ; ["Offset of field: rc_client_event_t::achievement"] [:: core :: mem :: offset_of ! (rc_client_event_t , achievement) - 8usize] ; ["Offset of field: rc_client_event_t::leaderboard"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard) - 16usize] ; ["Offset of field: rc_client_event_t::leaderboard_tracker"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard_tracker) - 24usize] ; ["Offset of field: rc_client_event_t::leaderboard_scoreboard"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard_scoreboard) - 32usize] ; ["Offset of field: rc_client_event_t::server_error"] [:: core :: mem :: offset_of ! (rc_client_event_t , server_error) - 40usize] ; } ; # [doc = " Callback used to notify the client when certain events occur."] pub type rc_client_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (event : * const rc_client_event_t , client : * mut rc_client_t) > ; extern "C" { # [doc = " Provides a callback for event handling."] pub fn rc_client_set_event_handler (client : * mut rc_client_t , handler : rc_client_event_handler_t) ; } extern "C" { # [doc = " Provides a callback for reading memory."] pub fn rc_client_set_read_memory_function (client : * mut rc_client_t , handler : rc_client_read_memory_func_t) ; } extern "C" { # [doc = " Determines if there are any active achievements/leaderboards/rich presence that need processing."] pub fn rc_client_is_processing_required (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Processes achievements for the current frame."] pub fn rc_client_do_frame (client : * mut rc_client_t) ; } extern "C" { # [doc = " Processes the periodic queue.\n Called internally by rc_client_do_frame.\n Should be explicitly called if rc_client_do_frame is not being called because emulation is paused."] pub fn rc_client_idle (client : * mut rc_client_t) ; } extern "C" { # [doc = " Determines if a sufficient amount of frames have been processed since the last call to rc_client_can_pause.\n Should not be called unless the client is trying to pause.\n If false is returned, and frames_remaining is not NULL, frames_remaining will be set to the number of frames\n still required before pause is allowed, which can be converted to a time in seconds for displaying to the user."] pub fn rc_client_can_pause (client : * mut rc_client_t , frames_remaining : * mut u32) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Informs the runtime that the emulator has been reset. Will reset all achievements and leaderboards\n to their initial state (includes hiding indicators/trackers)."] pub fn rc_client_reset (client : * mut rc_client_t) ; } extern "C" { # [doc = " Gets the number of bytes needed to serialized the runtime state."] pub fn rc_client_progress_size (client : * mut rc_client_t) -> usize ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator.\n [deprecated] use rc_client_serialize_progress_sized instead"] pub fn rc_client_serialize_progress (client : * mut rc_client_t , buffer : * mut u8) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator."] pub fn rc_client_serialize_progress_sized (client : * mut rc_client_t , buffer : * mut u8 , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Deserializes the runtime state from a buffer.\n Returns RC_OK on success, or an error indicator.\n [deprecated] use rc_client_deserialize_progress_sized instead"] pub fn rc_client_deserialize_progress (client : * mut rc_client_t , serialized : * const u8) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator."] pub fn rc_client_deserialize_progress_sized (client : * mut rc_client_t , serialized : * const u8 , serialized_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __locale_data { pub _address : u8 , } pub type __builtin_va_list = [__va_list_tag ; 1usize] ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __va_list_tag { pub gp_offset : :: core :: ffi :: c_uint , pub fp_offset : :: core :: ffi :: c_uint , pub overflow_arg_area : * mut :: core :: ffi :: c_void , pub reg_save_area : * mut :: core :: ffi :: c_void , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __va_list_tag"] [:: core :: mem :: size_of :: < __va_list_tag > () - 24usize] ; ["Alignment of __va_list_tag"] [:: core :: mem :: align_of :: < __va_list_tag > () - 8usize] ; ["Offset of field: __va_list_tag::gp_offset"] [:: core :: mem :: offset_of ! (__va_list_tag , gp_offset) - 0usize] ; ["Offset of field: __va_list_tag::fp_offset"] [:: core :: mem :: offset_of ! (__va_list_tag , fp_offset) - 4usize] ; ["Offset of field: __va_list_tag::overflow_arg_area"] [:: core :: mem :: offset_of ! (__va_list_tag , overflow_arg_area) - 8usize] ; ["Offset of field: __va_list_tag::reg_save_area"] [:: core :: mem :: offset_of ! (__va_list_tag , reg_save_area) - 16usize] ; } ;
[INFO] [stdout] 3 + # [repr (C)] # [derive (Copy , Clone , Debug , Default , Eq , Hash , Ord , PartialEq , PartialOrd)] pub struct __BindgenBitfieldUnit < Storage > { storage : Storage , } impl < Storage > __BindgenBitfieldUnit < Storage > { # [inline] pub const fn new (storage : Storage) -> Self { Self { storage } } } impl < Storage > __BindgenBitfieldUnit < Storage > where Storage : AsRef < [u8] > + AsMut < [u8] >, { # [inline] pub fn get_bit (& self , index : usize) -> bool { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = self . storage . as_ref () [byte_index] ; let bit_index = if cfg ! (target_endian = "big") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; byte & mask == mask } # [inline] pub fn set_bit (& mut self , index : usize , val : bool) { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = & mut self . storage . as_mut () [byte_index] ; let bit_index = if cfg ! (target_endian = "big") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; if val { * byte |= mask ; } else { * byte &= ! mask ; } } # [inline] pub fn get (& self , bit_offset : usize , bit_width : u8) -> u64 { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; let mut val = 0 ; for i in 0 .. (bit_width as usize) { if self . get_bit (i + bit_offset) { let index = if cfg ! (target_endian = "big") { bit_width as usize - 1 - i } else { i } ; val |= 1 << index ; } } val } # [inline] pub fn set (& mut self , bit_offset : usize , bit_width : u8 , val : u64) { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; for i in 0 .. (bit_width as usize) { let mask = 1 << i ; let val_bit_is_set = val & mask == mask ; let index = if cfg ! (target_endian = "big") { bit_width as usize - 1 - i } else { i } ; self . set_bit (index + bit_offset , val_bit_is_set) ; } } } # [derive (PartialEq , Copy , Clone , Hash , Debug , Default)] # [repr (C)] pub struct __BindgenComplex < T > { pub re : T , pub im : T } pub const _STDINT_H : u32 = 1 ; pub const _FEATURES_H : u32 = 1 ; pub const _DEFAULT_SOURCE : u32 = 1 ; pub const __GLIBC_USE_ISOC2Y : u32 = 0 ; pub const __GLIBC_USE_ISOC23 : u32 = 0 ; pub const __USE_ISOC11 : u32 = 1 ; pub const __USE_ISOC99 : u32 = 1 ; pub const __USE_ISOC95 : u32 = 1 ; pub const __USE_POSIX_IMPLICITLY : u32 = 1 ; pub const _POSIX_SOURCE : u32 = 1 ; pub const _POSIX_C_SOURCE : u32 = 202405 ; pub const __USE_POSIX : u32 = 1 ; pub const __USE_POSIX2 : u32 = 1 ; pub const __USE_POSIX199309 : u32 = 1 ; pub const __USE_POSIX199506 : u32 = 1 ; pub const __USE_XOPEN2K : u32 = 1 ; pub const __USE_XOPEN2K8 : u32 = 1 ; pub const _ATFILE_SOURCE : u32 = 1 ; pub const __USE_XOPEN2K24 : u32 = 1 ; pub const __WORDSIZE : u32 = 64 ; pub const __WORDSIZE_TIME64_COMPAT32 : u32 = 1 ; pub const __SYSCALL_WORDSIZE : u32 = 64 ; pub const __TIMESIZE : u32 = 64 ; pub const __USE_TIME_BITS64 : u32 = 1 ; pub const __USE_MISC : u32 = 1 ; 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_C23_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 ; pub const __STDC_IEC_559_COMPLEX__ : u32 = 1 ; 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 = 43 ; pub const _SYS_CDEFS_H : u32 = 1 ; pub const __glibc_c99_flexarr_available : u32 = 1 ; pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI : u32 = 0 ; pub const __HAVE_GENERIC_SELECTION : u32 = 1 ; pub const __GLIBC_USE_LIB_EXT2 : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT_C23 : u32 = 0 ; 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_C23 : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_TYPES_EXT : u32 = 0 ; pub const _BITS_TYPES_H : u32 = 1 ; pub const _BITS_TYPESIZES_H : u32 = 1 ; pub const __OFF_T_MATCHES_OFF64_T : u32 = 1 ; pub const __INO_T_MATCHES_INO64_T : u32 = 1 ; pub const __RLIM_T_MATCHES_RLIM64_T : u32 = 1 ; pub const __STATFS_MATCHES_STATFS64 : u32 = 1 ; pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 : u32 = 1 ; pub const __FD_SETSIZE : u32 = 1024 ; pub const _BITS_TIME64_H : u32 = 1 ; pub const _BITS_WCHAR_H : u32 = 1 ; pub const _BITS_STDINT_INTN_H : u32 = 1 ; pub const _BITS_STDINT_UINTN_H : u32 = 1 ; pub const _BITS_STDINT_LEAST_H : u32 = 1 ; pub const INT8_MIN : i32 = - 128 ; pub const INT16_MIN : i32 = - 32768 ; pub const INT32_MIN : i32 = - 2147483648 ; pub const INT8_MAX : u32 = 127 ; pub const INT16_MAX : u32 = 32767 ; pub const INT32_MAX : u32 = 2147483647 ; pub const UINT8_MAX : u32 = 255 ; pub const UINT16_MAX : u32 = 65535 ; pub const UINT32_MAX : u32 = 4294967295 ; pub const INT_LEAST8_MIN : i32 = - 128 ; pub const INT_LEAST16_MIN : i32 = - 32768 ; pub const INT_LEAST32_MIN : i32 = - 2147483648 ; pub const INT_LEAST8_MAX : u32 = 127 ; pub const INT_LEAST16_MAX : u32 = 32767 ; pub const INT_LEAST32_MAX : u32 = 2147483647 ; pub const UINT_LEAST8_MAX : u32 = 255 ; pub const UINT_LEAST16_MAX : u32 = 65535 ; pub const UINT_LEAST32_MAX : u32 = 4294967295 ; pub const INT_FAST8_MIN : i32 = - 128 ; pub const INT_FAST16_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST32_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST8_MAX : u32 = 127 ; pub const INT_FAST16_MAX : u64 = 9223372036854775807 ; pub const INT_FAST32_MAX : u64 = 9223372036854775807 ; pub const UINT_FAST8_MAX : u32 = 255 ; pub const UINT_FAST16_MAX : i32 = - 1 ; pub const UINT_FAST32_MAX : i32 = - 1 ; pub const INTPTR_MIN : i64 = - 9223372036854775808 ; pub const INTPTR_MAX : u64 = 9223372036854775807 ; pub const UINTPTR_MAX : i32 = - 1 ; pub const PTRDIFF_MIN : i64 = - 9223372036854775808 ; pub const PTRDIFF_MAX : u64 = 9223372036854775807 ; pub const SIG_ATOMIC_MIN : i32 = - 2147483648 ; pub const SIG_ATOMIC_MAX : u32 = 2147483647 ; pub const SIZE_MAX : i32 = - 1 ; pub const WINT_MIN : u32 = 0 ; pub const WINT_MAX : u32 = 4294967295 ; pub const RC_VALUE_MAX_NAME_LENGTH : u32 = 15 ; pub const _TIME_H : u32 = 1 ; pub const _BITS_TIME_H : u32 = 1 ; pub const CLOCK_REALTIME : u32 = 0 ; pub const CLOCK_MONOTONIC : u32 = 1 ; pub const CLOCK_PROCESS_CPUTIME_ID : u32 = 2 ; pub const CLOCK_THREAD_CPUTIME_ID : u32 = 3 ; pub const CLOCK_MONOTONIC_RAW : u32 = 4 ; pub const CLOCK_REALTIME_COARSE : u32 = 5 ; pub const CLOCK_MONOTONIC_COARSE : u32 = 6 ; pub const CLOCK_BOOTTIME : u32 = 7 ; pub const CLOCK_REALTIME_ALARM : u32 = 8 ; pub const CLOCK_BOOTTIME_ALARM : u32 = 9 ; pub const CLOCK_TAI : u32 = 11 ; pub const TIMER_ABSTIME : u32 = 1 ; pub const __clock_t_defined : u32 = 1 ; pub const __time_t_defined : u32 = 1 ; pub const __struct_tm_defined : u32 = 1 ; pub const _STRUCT_TIMESPEC : u32 = 1 ; pub const _BITS_ENDIAN_H : u32 = 1 ; pub const __LITTLE_ENDIAN : u32 = 1234 ; pub const __BIG_ENDIAN : u32 = 4321 ; pub const __PDP_ENDIAN : u32 = 3412 ; pub const _BITS_ENDIANNESS_H : u32 = 1 ; pub const __BYTE_ORDER : u32 = 1234 ; pub const __FLOAT_WORD_ORDER : u32 = 1234 ; pub const __clockid_t_defined : u32 = 1 ; pub const __timer_t_defined : u32 = 1 ; pub const __itimerspec_defined : u32 = 1 ; pub const _BITS_TYPES_LOCALE_T_H : u32 = 1 ; pub const _BITS_TYPES___LOCALE_T_H : u32 = 1 ; pub const TIME_UTC : u32 = 1 ; pub const _STDIO_H : u32 = 1 ; pub const _____fpos_t_defined : u32 = 1 ; pub const ____mbstate_t_defined : u32 = 1 ; pub const _____fpos64_t_defined : u32 = 1 ; pub const ____FILE_defined : u32 = 1 ; pub const __FILE_defined : u32 = 1 ; 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 ; pub const BUFSIZ : u32 = 8192 ; pub const EOF : i32 = - 1 ; 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 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 ; pub const __HAVE_FLOAT128 : u32 = 1 ; pub const __HAVE_DISTINCT_FLOAT128 : u32 = 1 ; pub const __HAVE_FLOAT64X : u32 = 1 ; pub const __HAVE_FLOAT64X_LONG_DOUBLE : u32 = 1 ; pub const __HAVE_FLOAT16 : u32 = 0 ; pub const __HAVE_FLOAT32 : u32 = 1 ; pub const __HAVE_FLOAT64 : u32 = 1 ; pub const __HAVE_FLOAT32X : u32 = 1 ; pub const __HAVE_FLOAT128X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT16 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT32 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT64 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT32X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT64X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT128X : u32 = 0 ; pub const __HAVE_FLOATN_NOT_TYPEDEF : u32 = 0 ; pub const RC_IMAGE_TYPE_GAME : u32 = 1 ; pub const RC_IMAGE_TYPE_ACHIEVEMENT : u32 = 2 ; pub const RC_IMAGE_TYPE_ACHIEVEMENT_LOCKED : u32 = 3 ; pub const RC_IMAGE_TYPE_USER : u32 = 4 ; pub const RC_ACHIEVEMENT_CATEGORY_CORE : u32 = 3 ; pub const RC_ACHIEVEMENT_CATEGORY_UNOFFICIAL : u32 = 5 ; pub const RC_ACHIEVEMENT_TYPE_STANDARD : u32 = 0 ; pub const RC_ACHIEVEMENT_TYPE_MISSABLE : u32 = 1 ; pub const RC_ACHIEVEMENT_TYPE_PROGRESSION : u32 = 2 ; pub const RC_ACHIEVEMENT_TYPE_WIN : u32 = 3 ; pub const RC_CLIENT_LEADERBOARD_DISPLAY_SIZE : u32 = 24 ; pub const RC_OK : _bindgen_ty_1 = 0 ; pub const RC_INVALID_LUA_OPERAND : _bindgen_ty_1 = - 1 ; pub const RC_INVALID_MEMORY_OPERAND : _bindgen_ty_1 = - 2 ; pub const RC_INVALID_CONST_OPERAND : _bindgen_ty_1 = - 3 ; pub const RC_INVALID_FP_OPERAND : _bindgen_ty_1 = - 4 ; pub const RC_INVALID_CONDITION_TYPE : _bindgen_ty_1 = - 5 ; pub const RC_INVALID_OPERATOR : _bindgen_ty_1 = - 6 ; pub const RC_INVALID_REQUIRED_HITS : _bindgen_ty_1 = - 7 ; pub const RC_DUPLICATED_START : _bindgen_ty_1 = - 8 ; pub const RC_DUPLICATED_CANCEL : _bindgen_ty_1 = - 9 ; pub const RC_DUPLICATED_SUBMIT : _bindgen_ty_1 = - 10 ; pub const RC_DUPLICATED_VALUE : _bindgen_ty_1 = - 11 ; pub const RC_DUPLICATED_PROGRESS : _bindgen_ty_1 = - 12 ; pub const RC_MISSING_START : _bindgen_ty_1 = - 13 ; pub const RC_MISSING_CANCEL : _bindgen_ty_1 = - 14 ; pub const RC_MISSING_SUBMIT : _bindgen_ty_1 = - 15 ; pub const RC_MISSING_VALUE : _bindgen_ty_1 = - 16 ; pub const RC_INVALID_LBOARD_FIELD : _bindgen_ty_1 = - 17 ; pub const RC_MISSING_DISPLAY_STRING : _bindgen_ty_1 = - 18 ; pub const RC_OUT_OF_MEMORY : _bindgen_ty_1 = - 19 ; pub const RC_INVALID_VALUE_FLAG : _bindgen_ty_1 = - 20 ; pub const RC_MISSING_VALUE_MEASURED : _bindgen_ty_1 = - 21 ; pub const RC_MULTIPLE_MEASURED : _bindgen_ty_1 = - 22 ; pub const RC_INVALID_MEASURED_TARGET : _bindgen_ty_1 = - 23 ; pub const RC_INVALID_COMPARISON : _bindgen_ty_1 = - 24 ; pub const RC_INVALID_STATE : _bindgen_ty_1 = - 25 ; pub const RC_INVALID_JSON : _bindgen_ty_1 = - 26 ; pub const RC_API_FAILURE : _bindgen_ty_1 = - 27 ; pub const RC_LOGIN_REQUIRED : _bindgen_ty_1 = - 28 ; pub const RC_NO_GAME_LOADED : _bindgen_ty_1 = - 29 ; pub const RC_HARDCORE_DISABLED : _bindgen_ty_1 = - 30 ; pub const RC_ABORTED : _bindgen_ty_1 = - 31 ; pub const RC_NO_RESPONSE : _bindgen_ty_1 = - 32 ; pub const RC_ACCESS_DENIED : _bindgen_ty_1 = - 33 ; pub const RC_INVALID_CREDENTIALS : _bindgen_ty_1 = - 34 ; pub const RC_EXPIRED_TOKEN : _bindgen_ty_1 = - 35 ; pub const RC_INSUFFICIENT_BUFFER : _bindgen_ty_1 = - 36 ; pub const RC_INVALID_VARIABLE_NAME : _bindgen_ty_1 = - 37 ; pub const RC_UNKNOWN_VARIABLE_NAME : _bindgen_ty_1 = - 38 ; # [doc = "\\\n| Return values                                                               |\n\\"] pub type _bindgen_ty_1 = :: core :: ffi :: c_int ; extern "C" { pub fn rc_error_str (ret : :: core :: ffi :: c_int) -> * const :: core :: ffi :: c_char ; } pub type wchar_t = :: core :: ffi :: c_int ; # [repr (C)] # [repr (align (16))] # [derive (Debug , Copy , Clone)] pub struct max_align_t { pub __clang_max_align_nonce1 : :: core :: ffi :: c_longlong , pub __bindgen_padding_0 : u64 , pub __clang_max_align_nonce2 : u128 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of max_align_t"] [:: core :: mem :: size_of :: < max_align_t > () - 32usize] ; ["Alignment of max_align_t"] [:: core :: mem :: align_of :: < max_align_t > () - 16usize] ; ["Offset of field: max_align_t::__clang_max_align_nonce1"] [:: core :: mem :: offset_of ! (max_align_t , __clang_max_align_nonce1) - 0usize] ; ["Offset of field: max_align_t::__clang_max_align_nonce2"] [:: core :: mem :: offset_of ! (max_align_t , __clang_max_align_nonce2) - 16usize] ; } ; pub type __u_char = :: core :: ffi :: c_uchar ; pub type __u_short = :: core :: ffi :: c_ushort ; pub type __u_int = :: core :: ffi :: c_uint ; pub type __u_long = :: core :: ffi :: c_ulong ; pub type __int8_t = :: core :: ffi :: c_schar ; pub type __uint8_t = :: core :: ffi :: c_uchar ; pub type __int16_t = :: core :: ffi :: c_short ; pub type __uint16_t = :: core :: ffi :: c_ushort ; pub type __int32_t = :: core :: ffi :: c_int ; pub type __uint32_t = :: core :: ffi :: c_uint ; pub type __int64_t = :: core :: ffi :: c_long ; pub type __uint64_t = :: core :: ffi :: c_ulong ; pub type __int_least8_t = __int8_t ; pub type __uint_least8_t = __uint8_t ; pub type __int_least16_t = __int16_t ; pub type __uint_least16_t = __uint16_t ; pub type __int_least32_t = __int32_t ; pub type __uint_least32_t = __uint32_t ; pub type __int_least64_t = __int64_t ; pub type __uint_least64_t = __uint64_t ; pub type __quad_t = :: core :: ffi :: c_long ; pub type __u_quad_t = :: core :: ffi :: c_ulong ; pub type __intmax_t = :: core :: ffi :: c_long ; pub type __uintmax_t = :: core :: ffi :: c_ulong ; pub type __dev_t = :: core :: ffi :: c_ulong ; pub type __uid_t = :: core :: ffi :: c_uint ; pub type __gid_t = :: core :: ffi :: c_uint ; pub type __ino_t = :: core :: ffi :: c_ulong ; pub type __ino64_t = :: core :: ffi :: c_ulong ; pub type __mode_t = :: core :: ffi :: c_uint ; pub type __nlink_t = :: core :: ffi :: c_ulong ; pub type __off_t = :: core :: ffi :: c_long ; pub type __off64_t = :: core :: ffi :: c_long ; pub type __pid_t = :: core :: ffi :: c_int ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __fsid_t { pub __val : [:: core :: ffi :: c_int ; 2usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __fsid_t"] [:: core :: mem :: size_of :: < __fsid_t > () - 8usize] ; ["Alignment of __fsid_t"] [:: core :: mem :: align_of :: < __fsid_t > () - 4usize] ; ["Offset of field: __fsid_t::__val"] [:: core :: mem :: offset_of ! (__fsid_t , __val) - 0usize] ; } ; pub type __clock_t = :: core :: ffi :: c_long ; pub type __rlim_t = :: core :: ffi :: c_ulong ; pub type __rlim64_t = :: core :: ffi :: c_ulong ; pub type __id_t = :: core :: ffi :: c_uint ; pub type __time_t = :: core :: ffi :: c_long ; pub type __useconds_t = :: core :: ffi :: c_uint ; pub type __suseconds_t = :: core :: ffi :: c_long ; pub type __suseconds64_t = :: core :: ffi :: c_long ; pub type __daddr_t = :: core :: ffi :: c_int ; pub type __key_t = :: core :: ffi :: c_int ; pub type __clockid_t = :: core :: ffi :: c_int ; pub type __timer_t = * mut :: core :: ffi :: c_void ; pub type __blksize_t = :: core :: ffi :: c_long ; pub type __blkcnt_t = :: core :: ffi :: c_long ; pub type __blkcnt64_t = :: core :: ffi :: c_long ; pub type __fsblkcnt_t = :: core :: ffi :: c_ulong ; pub type __fsblkcnt64_t = :: core :: ffi :: c_ulong ; pub type __fsfilcnt_t = :: core :: ffi :: c_ulong ; pub type __fsfilcnt64_t = :: core :: ffi :: c_ulong ; pub type __fsword_t = :: core :: ffi :: c_long ; pub type __ssize_t = :: core :: ffi :: c_long ; pub type __syscall_slong_t = :: core :: ffi :: c_long ; pub type __syscall_ulong_t = :: core :: ffi :: c_ulong ; pub type __loff_t = __off64_t ; pub type __caddr_t = * mut :: core :: ffi :: c_char ; pub type __intptr_t = :: core :: ffi :: c_long ; pub type __socklen_t = :: core :: ffi :: c_uint ; pub type __sig_atomic_t = :: core :: ffi :: c_int ; pub type int_least8_t = __int_least8_t ; pub type int_least16_t = __int_least16_t ; pub type int_least32_t = __int_least32_t ; pub type int_least64_t = __int_least64_t ; pub type uint_least8_t = __uint_least8_t ; pub type uint_least16_t = __uint_least16_t ; pub type uint_least32_t = __uint_least32_t ; pub type uint_least64_t = __uint_least64_t ; pub type int_fast8_t = :: core :: ffi :: c_schar ; pub type int_fast16_t = :: core :: ffi :: c_long ; pub type int_fast32_t = :: core :: ffi :: c_long ; pub type int_fast64_t = :: core :: ffi :: c_long ; pub type uint_fast8_t = :: core :: ffi :: c_uchar ; pub type uint_fast16_t = :: core :: ffi :: c_ulong ; pub type uint_fast32_t = :: core :: ffi :: c_ulong ; pub type uint_fast64_t = :: core :: ffi :: c_ulong ; pub type intmax_t = __intmax_t ; pub type uintmax_t = __uintmax_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct lua_State { _unused : [u8 ; 0] , } # [doc = " Callback used to read num_bytes bytes from memory starting at address. If\n num_bytes is greater than 1, the value is read in little-endian from\n memory."] pub type rc_peek_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , num_bytes : u32 , ud : * mut :: core :: ffi :: c_void) -> u32 > ; pub const RC_MEMSIZE_8_BITS : _bindgen_ty_2 = 0 ; pub const RC_MEMSIZE_16_BITS : _bindgen_ty_2 = 1 ; pub const RC_MEMSIZE_24_BITS : _bindgen_ty_2 = 2 ; pub const RC_MEMSIZE_32_BITS : _bindgen_ty_2 = 3 ; pub const RC_MEMSIZE_LOW : _bindgen_ty_2 = 4 ; pub const RC_MEMSIZE_HIGH : _bindgen_ty_2 = 5 ; pub const RC_MEMSIZE_BIT_0 : _bindgen_ty_2 = 6 ; pub const RC_MEMSIZE_BIT_1 : _bindgen_ty_2 = 7 ; pub const RC_MEMSIZE_BIT_2 : _bindgen_ty_2 = 8 ; pub const RC_MEMSIZE_BIT_3 : _bindgen_ty_2 = 9 ; pub const RC_MEMSIZE_BIT_4 : _bindgen_ty_2 = 10 ; pub const RC_MEMSIZE_BIT_5 : _bindgen_ty_2 = 11 ; pub const RC_MEMSIZE_BIT_6 : _bindgen_ty_2 = 12 ; pub const RC_MEMSIZE_BIT_7 : _bindgen_ty_2 = 13 ; pub const RC_MEMSIZE_BITCOUNT : _bindgen_ty_2 = 14 ; pub const RC_MEMSIZE_16_BITS_BE : _bindgen_ty_2 = 15 ; pub const RC_MEMSIZE_24_BITS_BE : _bindgen_ty_2 = 16 ; pub const RC_MEMSIZE_32_BITS_BE : _bindgen_ty_2 = 17 ; pub const RC_MEMSIZE_FLOAT : _bindgen_ty_2 = 18 ; pub const RC_MEMSIZE_MBF32 : _bindgen_ty_2 = 19 ; pub const RC_MEMSIZE_MBF32_LE : _bindgen_ty_2 = 20 ; pub const RC_MEMSIZE_FLOAT_BE : _bindgen_ty_2 = 21 ; pub const RC_MEMSIZE_DOUBLE32 : _bindgen_ty_2 = 22 ; pub const RC_MEMSIZE_DOUBLE32_BE : _bindgen_ty_2 = 23 ; pub const RC_MEMSIZE_VARIABLE : _bindgen_ty_2 = 24 ; # [doc = "\\\n| Memory References                                                           |\n\\"] pub type _bindgen_ty_2 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memref_value_t { pub value : u32 , pub prior : u32 , pub size : u8 , pub changed : u8 , pub type_ : u8 , pub is_indirect : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memref_value_t"] [:: core :: mem :: size_of :: < rc_memref_value_t > () - 12usize] ; ["Alignment of rc_memref_value_t"] [:: core :: mem :: align_of :: < rc_memref_value_t > () - 4usize] ; ["Offset of field: rc_memref_value_t::value"] [:: core :: mem :: offset_of ! (rc_memref_value_t , value) - 0usize] ; ["Offset of field: rc_memref_value_t::prior"] [:: core :: mem :: offset_of ! (rc_memref_value_t , prior) - 4usize] ; ["Offset of field: rc_memref_value_t::size"] [:: core :: mem :: offset_of ! (rc_memref_value_t , size) - 8usize] ; ["Offset of field: rc_memref_value_t::changed"] [:: core :: mem :: offset_of ! (rc_memref_value_t , changed) - 9usize] ; ["Offset of field: rc_memref_value_t::type_"] [:: core :: mem :: offset_of ! (rc_memref_value_t , type_) - 10usize] ; ["Offset of field: rc_memref_value_t::is_indirect"] [:: core :: mem :: offset_of ! (rc_memref_value_t , is_indirect) - 11usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memref_t { pub value : rc_memref_value_t , pub address : u32 , pub next : * mut rc_memref_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memref_t"] [:: core :: mem :: size_of :: < rc_memref_t > () - 24usize] ; ["Alignment of rc_memref_t"] [:: core :: mem :: align_of :: < rc_memref_t > () - 8usize] ; ["Offset of field: rc_memref_t::value"] [:: core :: mem :: offset_of ! (rc_memref_t , value) - 0usize] ; ["Offset of field: rc_memref_t::address"] [:: core :: mem :: offset_of ! (rc_memref_t , address) - 12usize] ; ["Offset of field: rc_memref_t::next"] [:: core :: mem :: offset_of ! (rc_memref_t , next) - 16usize] ; } ; pub const RC_OPERAND_ADDRESS : _bindgen_ty_3 = 0 ; pub const RC_OPERAND_DELTA : _bindgen_ty_3 = 1 ; pub const RC_OPERAND_CONST : _bindgen_ty_3 = 2 ; pub const RC_OPERAND_FP : _bindgen_ty_3 = 3 ; pub const RC_OPERAND_LUA : _bindgen_ty_3 = 4 ; pub const RC_OPERAND_PRIOR : _bindgen_ty_3 = 5 ; pub const RC_OPERAND_BCD : _bindgen_ty_3 = 6 ; pub const RC_OPERAND_INVERTED : _bindgen_ty_3 = 7 ; pub const RC_OPERAND_RECALL : _bindgen_ty_3 = 8 ; # [doc = "\\\n| Operands                                                                    |\n\\"] pub type _bindgen_ty_3 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Copy , Clone)] pub struct rc_operand_t { pub value : rc_operand_t__bindgen_ty_1 , pub type_ : u8 , pub size : u8 , } # [repr (C)] # [derive (Copy , Clone)] pub union rc_operand_t__bindgen_ty_1 { pub memref : * mut rc_memref_t , pub num : u32 , pub dbl : f64 , pub luafunc : :: core :: ffi :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_operand_t__bindgen_ty_1"] [:: core :: mem :: size_of :: < rc_operand_t__bindgen_ty_1 > () - 8usize] ; ["Alignment of rc_operand_t__bindgen_ty_1"] [:: core :: mem :: align_of :: < rc_operand_t__bindgen_ty_1 > () - 8usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::memref"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , memref) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::num"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , num) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::dbl"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , dbl) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::luafunc"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , luafunc) - 0usize] ; } ; impl :: core :: fmt :: Debug for rc_operand_t__bindgen_ty_1 { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_operand_t__bindgen_ty_1 {{ union }}") } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_operand_t"] [:: core :: mem :: size_of :: < rc_operand_t > () - 16usize] ; ["Alignment of rc_operand_t"] [:: core :: mem :: align_of :: < rc_operand_t > () - 8usize] ; ["Offset of field: rc_operand_t::value"] [:: core :: mem :: offset_of ! (rc_operand_t , value) - 0usize] ; ["Offset of field: rc_operand_t::type_"] [:: core :: mem :: offset_of ! (rc_operand_t , type_) - 8usize] ; ["Offset of field: rc_operand_t::size"] [:: core :: mem :: offset_of ! (rc_operand_t , size) - 9usize] ; } ; impl :: core :: fmt :: Debug for rc_operand_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_operand_t {{ value: {:?}, type: {:?}, size: {:?} }}" , self . value , self . type_ , self . size) } } extern "C" { pub fn rc_operand_is_memref (operand : * const rc_operand_t) -> :: core :: ffi :: c_int ; } pub const RC_CONDITION_STANDARD : _bindgen_ty_4 = 0 ; pub const RC_CONDITION_PAUSE_IF : _bindgen_ty_4 = 1 ; pub const RC_CONDITION_RESET_IF : _bindgen_ty_4 = 2 ; pub const RC_CONDITION_MEASURED_IF : _bindgen_ty_4 = 3 ; pub const RC_CONDITION_TRIGGER : _bindgen_ty_4 = 4 ; pub const RC_CONDITION_MEASURED : _bindgen_ty_4 = 5 ; pub const RC_CONDITION_ADD_SOURCE : _bindgen_ty_4 = 6 ; pub const RC_CONDITION_SUB_SOURCE : _bindgen_ty_4 = 7 ; pub const RC_CONDITION_ADD_ADDRESS : _bindgen_ty_4 = 8 ; pub const RC_CONDITION_REMEMBER : _bindgen_ty_4 = 9 ; pub const RC_CONDITION_ADD_HITS : _bindgen_ty_4 = 10 ; pub const RC_CONDITION_SUB_HITS : _bindgen_ty_4 = 11 ; pub const RC_CONDITION_RESET_NEXT_IF : _bindgen_ty_4 = 12 ; pub const RC_CONDITION_AND_NEXT : _bindgen_ty_4 = 13 ; pub const RC_CONDITION_OR_NEXT : _bindgen_ty_4 = 14 ; # [doc = "\\\n| Conditions                                                                  |\n\\"] pub type _bindgen_ty_4 = :: core :: ffi :: c_uint ; pub const RC_OPERATOR_EQ : _bindgen_ty_5 = 0 ; pub const RC_OPERATOR_LT : _bindgen_ty_5 = 1 ; pub const RC_OPERATOR_LE : _bindgen_ty_5 = 2 ; pub const RC_OPERATOR_GT : _bindgen_ty_5 = 3 ; pub const RC_OPERATOR_GE : _bindgen_ty_5 = 4 ; pub const RC_OPERATOR_NE : _bindgen_ty_5 = 5 ; pub const RC_OPERATOR_NONE : _bindgen_ty_5 = 6 ; pub const RC_OPERATOR_MULT : _bindgen_ty_5 = 7 ; pub const RC_OPERATOR_DIV : _bindgen_ty_5 = 8 ; pub const RC_OPERATOR_AND : _bindgen_ty_5 = 9 ; pub const RC_OPERATOR_XOR : _bindgen_ty_5 = 10 ; pub const RC_OPERATOR_MOD : _bindgen_ty_5 = 11 ; pub const RC_OPERATOR_ADD : _bindgen_ty_5 = 12 ; pub const RC_OPERATOR_SUB : _bindgen_ty_5 = 13 ; pub type _bindgen_ty_5 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Copy , Clone)] pub struct rc_condition_t { pub operand1 : rc_operand_t , pub operand2 : rc_operand_t , pub required_hits : u32 , pub current_hits : u32 , pub next : * mut rc_condition_t , pub type_ : u8 , pub oper : u8 , pub pause : u8 , pub is_true : u8 , pub optimized_comparator : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_condition_t"] [:: core :: mem :: size_of :: < rc_condition_t > () - 56usize] ; ["Alignment of rc_condition_t"] [:: core :: mem :: align_of :: < rc_condition_t > () - 8usize] ; ["Offset of field: rc_condition_t::operand1"] [:: core :: mem :: offset_of ! (rc_condition_t , operand1) - 0usize] ; ["Offset of field: rc_condition_t::operand2"] [:: core :: mem :: offset_of ! (rc_condition_t , operand2) - 16usize] ; ["Offset of field: rc_condition_t::required_hits"] [:: core :: mem :: offset_of ! (rc_condition_t , required_hits) - 32usize] ; ["Offset of field: rc_condition_t::current_hits"] [:: core :: mem :: offset_of ! (rc_condition_t , current_hits) - 36usize] ; ["Offset of field: rc_condition_t::next"] [:: core :: mem :: offset_of ! (rc_condition_t , next) - 40usize] ; ["Offset of field: rc_condition_t::type_"] [:: core :: mem :: offset_of ! (rc_condition_t , type_) - 48usize] ; ["Offset of field: rc_condition_t::oper"] [:: core :: mem :: offset_of ! (rc_condition_t , oper) - 49usize] ; ["Offset of field: rc_condition_t::pause"] [:: core :: mem :: offset_of ! (rc_condition_t , pause) - 50usize] ; ["Offset of field: rc_condition_t::is_true"] [:: core :: mem :: offset_of ! (rc_condition_t , is_true) - 51usize] ; ["Offset of field: rc_condition_t::optimized_comparator"] [:: core :: mem :: offset_of ! (rc_condition_t , optimized_comparator) - 52usize] ; } ; impl :: core :: fmt :: Debug for rc_condition_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_condition_t {{ operand1: {:?}, operand2: {:?}, required_hits: {:?}, current_hits: {:?}, next: {:?}, type: {:?}, oper: {:?}, pause: {:?}, is_true: {:?}, optimized_comparator: {:?} }}" , self . operand1 , self . operand2 , self . required_hits , self . current_hits , self . next , self . type_ , self . oper , self . pause , self . is_true , self . optimized_comparator) } } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_condset_t { pub next : * mut rc_condset_t , pub conditions : * mut rc_condition_t , pub has_pause : u8 , pub is_paused : u8 , pub has_indirect_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_condset_t"] [:: core :: mem :: size_of :: < rc_condset_t > () - 24usize] ; ["Alignment of rc_condset_t"] [:: core :: mem :: align_of :: < rc_condset_t > () - 8usize] ; ["Offset of field: rc_condset_t::next"] [:: core :: mem :: offset_of ! (rc_condset_t , next) - 0usize] ; ["Offset of field: rc_condset_t::conditions"] [:: core :: mem :: offset_of ! (rc_condset_t , conditions) - 8usize] ; ["Offset of field: rc_condset_t::has_pause"] [:: core :: mem :: offset_of ! (rc_condset_t , has_pause) - 16usize] ; ["Offset of field: rc_condset_t::is_paused"] [:: core :: mem :: offset_of ! (rc_condset_t , is_paused) - 17usize] ; ["Offset of field: rc_condset_t::has_indirect_memrefs"] [:: core :: mem :: offset_of ! (rc_condset_t , has_indirect_memrefs) - 18usize] ; } ; pub const RC_TRIGGER_STATE_INACTIVE : _bindgen_ty_6 = 0 ; pub const RC_TRIGGER_STATE_WAITING : _bindgen_ty_6 = 1 ; pub const RC_TRIGGER_STATE_ACTIVE : _bindgen_ty_6 = 2 ; pub const RC_TRIGGER_STATE_PAUSED : _bindgen_ty_6 = 3 ; pub const RC_TRIGGER_STATE_RESET : _bindgen_ty_6 = 4 ; pub const RC_TRIGGER_STATE_TRIGGERED : _bindgen_ty_6 = 5 ; pub const RC_TRIGGER_STATE_PRIMED : _bindgen_ty_6 = 6 ; pub const RC_TRIGGER_STATE_DISABLED : _bindgen_ty_6 = 7 ; # [doc = "\\\n| Trigger                                                                     |\n\\"] pub type _bindgen_ty_6 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_trigger_t { pub requirement : * mut rc_condset_t , pub alternative : * mut rc_condset_t , pub memrefs : * mut rc_memref_t , pub measured_value : u32 , pub measured_target : u32 , pub state : u8 , pub has_hits : u8 , pub has_required_hits : u8 , pub measured_as_percent : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_trigger_t"] [:: core :: mem :: size_of :: < rc_trigger_t > () - 40usize] ; ["Alignment of rc_trigger_t"] [:: core :: mem :: align_of :: < rc_trigger_t > () - 8usize] ; ["Offset of field: rc_trigger_t::requirement"] [:: core :: mem :: offset_of ! (rc_trigger_t , requirement) - 0usize] ; ["Offset of field: rc_trigger_t::alternative"] [:: core :: mem :: offset_of ! (rc_trigger_t , alternative) - 8usize] ; ["Offset of field: rc_trigger_t::memrefs"] [:: core :: mem :: offset_of ! (rc_trigger_t , memrefs) - 16usize] ; ["Offset of field: rc_trigger_t::measured_value"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_value) - 24usize] ; ["Offset of field: rc_trigger_t::measured_target"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_target) - 28usize] ; ["Offset of field: rc_trigger_t::state"] [:: core :: mem :: offset_of ! (rc_trigger_t , state) - 32usize] ; ["Offset of field: rc_trigger_t::has_hits"] [:: core :: mem :: offset_of ! (rc_trigger_t , has_hits) - 33usize] ; ["Offset of field: rc_trigger_t::has_required_hits"] [:: core :: mem :: offset_of ! (rc_trigger_t , has_required_hits) - 34usize] ; ["Offset of field: rc_trigger_t::measured_as_percent"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_as_percent) - 35usize] ; } ; extern "C" { pub fn rc_trigger_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_trigger (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_trigger_t ; } extern "C" { pub fn rc_evaluate_trigger (trigger : * mut rc_trigger_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_test_trigger (trigger : * mut rc_trigger_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_trigger (self_ : * mut rc_trigger_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_value_t { pub value : rc_memref_value_t , pub conditions : * mut rc_condset_t , pub memrefs : * mut rc_memref_t , pub name : * const :: core :: ffi :: c_char , pub next : * mut rc_value_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_value_t"] [:: core :: mem :: size_of :: < rc_value_t > () - 48usize] ; ["Alignment of rc_value_t"] [:: core :: mem :: align_of :: < rc_value_t > () - 8usize] ; ["Offset of field: rc_value_t::value"] [:: core :: mem :: offset_of ! (rc_value_t , value) - 0usize] ; ["Offset of field: rc_value_t::conditions"] [:: core :: mem :: offset_of ! (rc_value_t , conditions) - 16usize] ; ["Offset of field: rc_value_t::memrefs"] [:: core :: mem :: offset_of ! (rc_value_t , memrefs) - 24usize] ; ["Offset of field: rc_value_t::name"] [:: core :: mem :: offset_of ! (rc_value_t , name) - 32usize] ; ["Offset of field: rc_value_t::next"] [:: core :: mem :: offset_of ! (rc_value_t , next) - 40usize] ; } ; extern "C" { pub fn rc_value_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_value (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_value_t ; } extern "C" { pub fn rc_evaluate_value (value : * mut rc_value_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> i32 ; } pub const RC_LBOARD_STATE_INACTIVE : _bindgen_ty_7 = 0 ; pub const RC_LBOARD_STATE_WAITING : _bindgen_ty_7 = 1 ; pub const RC_LBOARD_STATE_ACTIVE : _bindgen_ty_7 = 2 ; pub const RC_LBOARD_STATE_STARTED : _bindgen_ty_7 = 3 ; pub const RC_LBOARD_STATE_CANCELED : _bindgen_ty_7 = 4 ; pub const RC_LBOARD_STATE_TRIGGERED : _bindgen_ty_7 = 5 ; pub const RC_LBOARD_STATE_DISABLED : _bindgen_ty_7 = 6 ; # [doc = "\\\n| Leaderboards                                                                |\n\\"] pub type _bindgen_ty_7 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_lboard_t { pub start : rc_trigger_t , pub submit : rc_trigger_t , pub cancel : rc_trigger_t , pub value : rc_value_t , pub progress : * mut rc_value_t , pub memrefs : * mut rc_memref_t , pub state : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_lboard_t"] [:: core :: mem :: size_of :: < rc_lboard_t > () - 192usize] ; ["Alignment of rc_lboard_t"] [:: core :: mem :: align_of :: < rc_lboard_t > () - 8usize] ; ["Offset of field: rc_lboard_t::start"] [:: core :: mem :: offset_of ! (rc_lboard_t , start) - 0usize] ; ["Offset of field: rc_lboard_t::submit"] [:: core :: mem :: offset_of ! (rc_lboard_t , submit) - 40usize] ; ["Offset of field: rc_lboard_t::cancel"] [:: core :: mem :: offset_of ! (rc_lboard_t , cancel) - 80usize] ; ["Offset of field: rc_lboard_t::value"] [:: core :: mem :: offset_of ! (rc_lboard_t , value) - 120usize] ; ["Offset of field: rc_lboard_t::progress"] [:: core :: mem :: offset_of ! (rc_lboard_t , progress) - 168usize] ; ["Offset of field: rc_lboard_t::memrefs"] [:: core :: mem :: offset_of ! (rc_lboard_t , memrefs) - 176usize] ; ["Offset of field: rc_lboard_t::state"] [:: core :: mem :: offset_of ! (rc_lboard_t , state) - 184usize] ; } ; extern "C" { pub fn rc_lboard_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_lboard (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_lboard_t ; } extern "C" { pub fn rc_evaluate_lboard (lboard : * mut rc_lboard_t , value : * mut i32 , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_lboard (lboard : * mut rc_lboard_t) ; } pub const RC_FORMAT_FRAMES : _bindgen_ty_8 = 0 ; pub const RC_FORMAT_SECONDS : _bindgen_ty_8 = 1 ; pub const RC_FORMAT_CENTISECS : _bindgen_ty_8 = 2 ; pub const RC_FORMAT_SCORE : _bindgen_ty_8 = 3 ; pub const RC_FORMAT_VALUE : _bindgen_ty_8 = 4 ; pub const RC_FORMAT_MINUTES : _bindgen_ty_8 = 5 ; pub const RC_FORMAT_SECONDS_AS_MINUTES : _bindgen_ty_8 = 6 ; pub const RC_FORMAT_FLOAT1 : _bindgen_ty_8 = 7 ; pub const RC_FORMAT_FLOAT2 : _bindgen_ty_8 = 8 ; pub const RC_FORMAT_FLOAT3 : _bindgen_ty_8 = 9 ; pub const RC_FORMAT_FLOAT4 : _bindgen_ty_8 = 10 ; pub const RC_FORMAT_FLOAT5 : _bindgen_ty_8 = 11 ; pub const RC_FORMAT_FLOAT6 : _bindgen_ty_8 = 12 ; pub const RC_FORMAT_FIXED1 : _bindgen_ty_8 = 13 ; pub const RC_FORMAT_FIXED2 : _bindgen_ty_8 = 14 ; pub const RC_FORMAT_FIXED3 : _bindgen_ty_8 = 15 ; pub const RC_FORMAT_TENS : _bindgen_ty_8 = 16 ; pub const RC_FORMAT_HUNDREDS : _bindgen_ty_8 = 17 ; pub const RC_FORMAT_THOUSANDS : _bindgen_ty_8 = 18 ; pub const RC_FORMAT_UNSIGNED_VALUE : _bindgen_ty_8 = 19 ; # [doc = "\\\n| Value formatting                                                            |\n\\"] pub type _bindgen_ty_8 = :: core :: ffi :: c_uint ; extern "C" { pub fn rc_parse_format (format_str : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_format_value (buffer : * mut :: core :: ffi :: c_char , size : :: core :: ffi :: c_int , value : i32 , format : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_lookup_item_t { pub first : u32 , pub last : u32 , pub left : * mut rc_richpresence_lookup_item_t , pub right : * mut rc_richpresence_lookup_item_t , pub label : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_lookup_item_t"] [:: core :: mem :: size_of :: < rc_richpresence_lookup_item_t > () - 32usize] ; ["Alignment of rc_richpresence_lookup_item_t"] [:: core :: mem :: align_of :: < rc_richpresence_lookup_item_t > () - 8usize] ; ["Offset of field: rc_richpresence_lookup_item_t::first"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , first) - 0usize] ; ["Offset of field: rc_richpresence_lookup_item_t::last"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , last) - 4usize] ; ["Offset of field: rc_richpresence_lookup_item_t::left"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , left) - 8usize] ; ["Offset of field: rc_richpresence_lookup_item_t::right"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , right) - 16usize] ; ["Offset of field: rc_richpresence_lookup_item_t::label"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , label) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_lookup_t { pub root : * mut rc_richpresence_lookup_item_t , pub next : * mut rc_richpresence_lookup_t , pub name : * const :: core :: ffi :: c_char , pub default_label : * const :: core :: ffi :: c_char , pub format : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_lookup_t"] [:: core :: mem :: size_of :: < rc_richpresence_lookup_t > () - 40usize] ; ["Alignment of rc_richpresence_lookup_t"] [:: core :: mem :: align_of :: < rc_richpresence_lookup_t > () - 8usize] ; ["Offset of field: rc_richpresence_lookup_t::root"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , root) - 0usize] ; ["Offset of field: rc_richpresence_lookup_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , next) - 8usize] ; ["Offset of field: rc_richpresence_lookup_t::name"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , name) - 16usize] ; ["Offset of field: rc_richpresence_lookup_t::default_label"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , default_label) - 24usize] ; ["Offset of field: rc_richpresence_lookup_t::format"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , format) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_display_part_t { pub next : * mut rc_richpresence_display_part_t , pub text : * const :: core :: ffi :: c_char , pub lookup : * mut rc_richpresence_lookup_t , pub value : * mut rc_memref_value_t , pub display_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_display_part_t"] [:: core :: mem :: size_of :: < rc_richpresence_display_part_t > () - 40usize] ; ["Alignment of rc_richpresence_display_part_t"] [:: core :: mem :: align_of :: < rc_richpresence_display_part_t > () - 8usize] ; ["Offset of field: rc_richpresence_display_part_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , next) - 0usize] ; ["Offset of field: rc_richpresence_display_part_t::text"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , text) - 8usize] ; ["Offset of field: rc_richpresence_display_part_t::lookup"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , lookup) - 16usize] ; ["Offset of field: rc_richpresence_display_part_t::value"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , value) - 24usize] ; ["Offset of field: rc_richpresence_display_part_t::display_type"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , display_type) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_display_t { pub trigger : rc_trigger_t , pub next : * mut rc_richpresence_display_t , pub display : * mut rc_richpresence_display_part_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_display_t"] [:: core :: mem :: size_of :: < rc_richpresence_display_t > () - 56usize] ; ["Alignment of rc_richpresence_display_t"] [:: core :: mem :: align_of :: < rc_richpresence_display_t > () - 8usize] ; ["Offset of field: rc_richpresence_display_t::trigger"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , trigger) - 0usize] ; ["Offset of field: rc_richpresence_display_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , next) - 40usize] ; ["Offset of field: rc_richpresence_display_t::display"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , display) - 48usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_t { pub first_display : * mut rc_richpresence_display_t , pub first_lookup : * mut rc_richpresence_lookup_t , pub memrefs : * mut rc_memref_t , pub variables : * mut rc_value_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_t"] [:: core :: mem :: size_of :: < rc_richpresence_t > () - 32usize] ; ["Alignment of rc_richpresence_t"] [:: core :: mem :: align_of :: < rc_richpresence_t > () - 8usize] ; ["Offset of field: rc_richpresence_t::first_display"] [:: core :: mem :: offset_of ! (rc_richpresence_t , first_display) - 0usize] ; ["Offset of field: rc_richpresence_t::first_lookup"] [:: core :: mem :: offset_of ! (rc_richpresence_t , first_lookup) - 8usize] ; ["Offset of field: rc_richpresence_t::memrefs"] [:: core :: mem :: offset_of ! (rc_richpresence_t , memrefs) - 16usize] ; ["Offset of field: rc_richpresence_t::variables"] [:: core :: mem :: offset_of ! (rc_richpresence_t , variables) - 24usize] ; } ; extern "C" { pub fn rc_richpresence_size (script : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_richpresence_size_lines (script : * const :: core :: ffi :: c_char , lines_read : * mut :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_richpresence (buffer : * mut :: core :: ffi :: c_void , script : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_richpresence_t ; } extern "C" { pub fn rc_evaluate_richpresence (richpresence : * mut rc_richpresence_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_update_richpresence (richpresence : * mut rc_richpresence_t , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) ; } extern "C" { pub fn rc_get_richpresence_display_string (richpresence : * mut rc_richpresence_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_richpresence (self_ : * mut rc_richpresence_t) ; } # [doc = " A block of memory for variable length data (like strings and arrays)."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_buffer_chunk_t { pub write : * mut u8 , pub end : * mut u8 , pub start : * mut u8 , pub next : * mut rc_buffer_chunk_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_buffer_chunk_t"] [:: core :: mem :: size_of :: < rc_buffer_chunk_t > () - 32usize] ; ["Alignment of rc_buffer_chunk_t"] [:: core :: mem :: align_of :: < rc_buffer_chunk_t > () - 8usize] ; ["Offset of field: rc_buffer_chunk_t::write"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , write) - 0usize] ; ["Offset of field: rc_buffer_chunk_t::end"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , end) - 8usize] ; ["Offset of field: rc_buffer_chunk_t::start"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , start) - 16usize] ; ["Offset of field: rc_buffer_chunk_t::next"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , next) - 24usize] ; } ; # [doc = " A preallocated block of memory for variable length data (like strings and arrays)."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_buffer_t { pub chunk : rc_buffer_chunk_t , pub data : [u8 ; 256usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_buffer_t"] [:: core :: mem :: size_of :: < rc_buffer_t > () - 288usize] ; ["Alignment of rc_buffer_t"] [:: core :: mem :: align_of :: < rc_buffer_t > () - 8usize] ; ["Offset of field: rc_buffer_t::chunk"] [:: core :: mem :: offset_of ! (rc_buffer_t , chunk) - 0usize] ; ["Offset of field: rc_buffer_t::data"] [:: core :: mem :: offset_of ! (rc_buffer_t , data) - 32usize] ; } ; extern "C" { pub fn rc_buffer_init (buffer : * mut rc_buffer_t) ; } extern "C" { pub fn rc_buffer_destroy (buffer : * mut rc_buffer_t) ; } extern "C" { pub fn rc_buffer_reserve (buffer : * mut rc_buffer_t , amount : usize) -> * mut u8 ; } extern "C" { pub fn rc_buffer_consume (buffer : * mut rc_buffer_t , start : * const u8 , end : * mut u8) ; } extern "C" { pub fn rc_buffer_alloc (buffer : * mut rc_buffer_t , amount : usize) -> * mut :: core :: ffi :: c_void ; } extern "C" { pub fn rc_buffer_strcpy (buffer : * mut rc_buffer_t , src : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn rc_buffer_strncpy (buffer : * mut rc_buffer_t , src : * const :: core :: ffi :: c_char , len : usize) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn rc_djb2 (input : * const :: core :: ffi :: c_char) -> u32 ; } extern "C" { pub fn rc_format_md5 (checksum : * mut :: core :: ffi :: c_char , digest : * const u8) ; } # [doc = " A constructed request to send to the retroachievements server."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_request_t { pub url : * const :: core :: ffi :: c_char , pub post_data : * const :: core :: ffi :: c_char , pub content_type : * const :: core :: ffi :: c_char , pub buffer : rc_buffer_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_request_t"] [:: core :: mem :: size_of :: < rc_api_request_t > () - 312usize] ; ["Alignment of rc_api_request_t"] [:: core :: mem :: align_of :: < rc_api_request_t > () - 8usize] ; ["Offset of field: rc_api_request_t::url"] [:: core :: mem :: offset_of ! (rc_api_request_t , url) - 0usize] ; ["Offset of field: rc_api_request_t::post_data"] [:: core :: mem :: offset_of ! (rc_api_request_t , post_data) - 8usize] ; ["Offset of field: rc_api_request_t::content_type"] [:: core :: mem :: offset_of ! (rc_api_request_t , content_type) - 16usize] ; ["Offset of field: rc_api_request_t::buffer"] [:: core :: mem :: offset_of ! (rc_api_request_t , buffer) - 24usize] ; } ; # [doc = " Common attributes for all server responses."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_response_t { pub succeeded : :: core :: ffi :: c_int , pub error_message : * const :: core :: ffi :: c_char , pub error_code : * const :: core :: ffi :: c_char , pub buffer : rc_buffer_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_response_t"] [:: core :: mem :: size_of :: < rc_api_response_t > () - 312usize] ; ["Alignment of rc_api_response_t"] [:: core :: mem :: align_of :: < rc_api_response_t > () - 8usize] ; ["Offset of field: rc_api_response_t::succeeded"] [:: core :: mem :: offset_of ! (rc_api_response_t , succeeded) - 0usize] ; ["Offset of field: rc_api_response_t::error_message"] [:: core :: mem :: offset_of ! (rc_api_response_t , error_message) - 8usize] ; ["Offset of field: rc_api_response_t::error_code"] [:: core :: mem :: offset_of ! (rc_api_response_t , error_code) - 16usize] ; ["Offset of field: rc_api_response_t::buffer"] [:: core :: mem :: offset_of ! (rc_api_response_t , buffer) - 24usize] ; } ; extern "C" { pub fn rc_api_destroy_request (request : * mut rc_api_request_t) ; } extern "C" { pub fn rc_api_set_host (hostname : * const :: core :: ffi :: c_char) ; } extern "C" { pub fn rc_api_set_image_host (hostname : * const :: core :: ffi :: c_char) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_server_response_t { pub body : * const :: core :: ffi :: c_char , pub body_length : usize , pub http_status_code : :: core :: ffi :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_server_response_t"] [:: core :: mem :: size_of :: < rc_api_server_response_t > () - 24usize] ; ["Alignment of rc_api_server_response_t"] [:: core :: mem :: align_of :: < rc_api_server_response_t > () - 8usize] ; ["Offset of field: rc_api_server_response_t::body"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , body) - 0usize] ; ["Offset of field: rc_api_server_response_t::body_length"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , body_length) - 8usize] ; ["Offset of field: rc_api_server_response_t::http_status_code"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , http_status_code) - 16usize] ; } ; pub const RC_API_SERVER_RESPONSE_CLIENT_ERROR : _bindgen_ty_9 = - 1 ; pub const RC_API_SERVER_RESPONSE_RETRYABLE_CLIENT_ERROR : _bindgen_ty_9 = - 2 ; pub type _bindgen_ty_9 = :: core :: ffi :: c_int ; pub type clock_t = __clock_t ; pub type time_t = __time_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct tm { pub tm_sec : :: core :: ffi :: c_int , pub tm_min : :: core :: ffi :: c_int , pub tm_hour : :: core :: ffi :: c_int , pub tm_mday : :: core :: ffi :: c_int , pub tm_mon : :: core :: ffi :: c_int , pub tm_year : :: core :: ffi :: c_int , pub tm_wday : :: core :: ffi :: c_int , pub tm_yday : :: core :: ffi :: c_int , pub tm_isdst : :: core :: ffi :: c_int , pub tm_gmtoff : :: core :: ffi :: c_long , pub tm_zone : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of tm"] [:: core :: mem :: size_of :: < tm > () - 56usize] ; ["Alignment of tm"] [:: core :: mem :: align_of :: < tm > () - 8usize] ; ["Offset of field: tm::tm_sec"] [:: core :: mem :: offset_of ! (tm , tm_sec) - 0usize] ; ["Offset of field: tm::tm_min"] [:: core :: mem :: offset_of ! (tm , tm_min) - 4usize] ; ["Offset of field: tm::tm_hour"] [:: core :: mem :: offset_of ! (tm , tm_hour) - 8usize] ; ["Offset of field: tm::tm_mday"] [:: core :: mem :: offset_of ! (tm , tm_mday) - 12usize] ; ["Offset of field: tm::tm_mon"] [:: core :: mem :: offset_of ! (tm , tm_mon) - 16usize] ; ["Offset of field: tm::tm_year"] [:: core :: mem :: offset_of ! (tm , tm_year) - 20usize] ; ["Offset of field: tm::tm_wday"] [:: core :: mem :: offset_of ! (tm , tm_wday) - 24usize] ; ["Offset of field: tm::tm_yday"] [:: core :: mem :: offset_of ! (tm , tm_yday) - 28usize] ; ["Offset of field: tm::tm_isdst"] [:: core :: mem :: offset_of ! (tm , tm_isdst) - 32usize] ; ["Offset of field: tm::tm_gmtoff"] [:: core :: mem :: offset_of ! (tm , tm_gmtoff) - 40usize] ; ["Offset of field: tm::tm_zone"] [:: core :: mem :: offset_of ! (tm , tm_zone) - 48usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct timespec { pub tv_sec : __time_t , pub tv_nsec : __syscall_slong_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of timespec"] [:: core :: mem :: size_of :: < timespec > () - 16usize] ; ["Alignment of timespec"] [:: core :: mem :: align_of :: < timespec > () - 8usize] ; ["Offset of field: timespec::tv_sec"] [:: core :: mem :: offset_of ! (timespec , tv_sec) - 0usize] ; ["Offset of field: timespec::tv_nsec"] [:: core :: mem :: offset_of ! (timespec , tv_nsec) - 8usize] ; } ; pub type clockid_t = __clockid_t ; pub type timer_t = __timer_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct itimerspec { pub it_interval : timespec , pub it_value : timespec , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of itimerspec"] [:: core :: mem :: size_of :: < itimerspec > () - 32usize] ; ["Alignment of itimerspec"] [:: core :: mem :: align_of :: < itimerspec > () - 8usize] ; ["Offset of field: itimerspec::it_interval"] [:: core :: mem :: offset_of ! (itimerspec , it_interval) - 0usize] ; ["Offset of field: itimerspec::it_value"] [:: core :: mem :: offset_of ! (itimerspec , it_value) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct sigevent { _unused : [u8 ; 0] , } pub type pid_t = __pid_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __locale_struct { pub __locales : [* mut __locale_data ; 13usize] , pub __ctype_b : * const :: core :: ffi :: c_ushort , pub __ctype_tolower : * const :: core :: ffi :: c_int , pub __ctype_toupper : * const :: core :: ffi :: c_int , pub __names : [* const :: core :: ffi :: c_char ; 13usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __locale_struct"] [:: core :: mem :: size_of :: < __locale_struct > () - 232usize] ; ["Alignment of __locale_struct"] [:: core :: mem :: align_of :: < __locale_struct > () - 8usize] ; ["Offset of field: __locale_struct::__locales"] [:: core :: mem :: offset_of ! (__locale_struct , __locales) - 0usize] ; ["Offset of field: __locale_struct::__ctype_b"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_b) - 104usize] ; ["Offset of field: __locale_struct::__ctype_tolower"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_tolower) - 112usize] ; ["Offset of field: __locale_struct::__ctype_toupper"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_toupper) - 120usize] ; ["Offset of field: __locale_struct::__names"] [:: core :: mem :: offset_of ! (__locale_struct , __names) - 128usize] ; } ; pub type __locale_t = * mut __locale_struct ; pub type locale_t = __locale_t ; extern "C" { pub fn clock () -> clock_t ; } extern "C" { pub fn time (__timer : * mut time_t) -> time_t ; } extern "C" { pub fn difftime (__time1 : time_t , __time0 : time_t) -> f64 ; } extern "C" { pub fn mktime (__tp : * mut tm) -> time_t ; } extern "C" { pub fn strftime (__s : * mut :: core :: ffi :: c_char , __maxsize : usize , __format : * const :: core :: ffi :: c_char , __tp : * const tm) -> usize ; } extern "C" { pub fn strftime_l (__s : * mut :: core :: ffi :: c_char , __maxsize : usize , __format : * const :: core :: ffi :: c_char , __tp : * const tm , __loc : locale_t) -> usize ; } extern "C" { pub fn gmtime (__timer : * const time_t) -> * mut tm ; } extern "C" { pub fn localtime (__timer : * const time_t) -> * mut tm ; } extern "C" { pub fn gmtime_r (__timer : * const time_t , __tp : * mut tm) -> * mut tm ; } extern "C" { pub fn localtime_r (__timer : * const time_t , __tp : * mut tm) -> * mut tm ; } extern "C" { pub fn asctime (__tp : * const tm) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn ctime (__timer : * const time_t) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn asctime_r (__tp : * const tm , __buf : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn ctime_r (__timer : * const time_t , __buf : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub static mut __tzname : [* mut :: core :: ffi :: c_char ; 2usize] ; } extern "C" { pub static mut __daylight : :: core :: ffi :: c_int ; } extern "C" { pub static mut __timezone : :: core :: ffi :: c_long ; } extern "C" { pub static mut tzname : [* mut :: core :: ffi :: c_char ; 2usize] ; } extern "C" { pub fn tzset () ; } extern "C" { pub static mut daylight : :: core :: ffi :: c_int ; } extern "C" { pub static mut timezone : :: core :: ffi :: c_long ; } extern "C" { pub fn timegm (__tp : * mut tm) -> time_t ; } extern "C" { pub fn timelocal (__tp : * mut tm) -> time_t ; } extern "C" { pub fn dysize (__year : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn nanosleep (__requested_time : * const timespec , __remaining : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_getres (__clock_id : clockid_t , __res : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_gettime (__clock_id : clockid_t , __tp : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_settime (__clock_id : clockid_t , __tp : * const timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_nanosleep (__clock_id : clockid_t , __flags : :: core :: ffi :: c_int , __req : * const timespec , __rem : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_getcpuclockid (__pid : pid_t , __clock_id : * mut clockid_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_create (__clock_id : clockid_t , __evp : * mut sigevent , __timerid : * mut timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_delete (__timerid : timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_settime (__timerid : timer_t , __flags : :: core :: ffi :: c_int , __value : * const itimerspec , __ovalue : * mut itimerspec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_gettime (__timerid : timer_t , __value : * mut itimerspec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_getoverrun (__timerid : timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timespec_get (__ts : * mut timespec , __base : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } # [doc = " API parameters for a login request.\n If both password and api_token are provided, api_token will be ignored."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_login_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub password : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_login_request_t"] [:: core :: mem :: size_of :: < rc_api_login_request_t > () - 24usize] ; ["Alignment of rc_api_login_request_t"] [:: core :: mem :: align_of :: < rc_api_login_request_t > () - 8usize] ; ["Offset of field: rc_api_login_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , username) - 0usize] ; ["Offset of field: rc_api_login_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_login_request_t::password"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , password) - 16usize] ; } ; # [doc = " Response data for a login request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_login_response_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub score : u32 , pub score_softcore : u32 , pub num_unread_messages : u32 , pub display_name : * const :: core :: ffi :: c_char , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_login_response_t"] [:: core :: mem :: size_of :: < rc_api_login_response_t > () - 352usize] ; ["Alignment of rc_api_login_response_t"] [:: core :: mem :: align_of :: < rc_api_login_response_t > () - 8usize] ; ["Offset of field: rc_api_login_response_t::username"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , username) - 0usize] ; ["Offset of field: rc_api_login_response_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , api_token) - 8usize] ; ["Offset of field: rc_api_login_response_t::score"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , score) - 16usize] ; ["Offset of field: rc_api_login_response_t::score_softcore"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , score_softcore) - 20usize] ; ["Offset of field: rc_api_login_response_t::num_unread_messages"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , num_unread_messages) - 24usize] ; ["Offset of field: rc_api_login_response_t::display_name"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , display_name) - 32usize] ; ["Offset of field: rc_api_login_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , response) - 40usize] ; } ; extern "C" { pub fn rc_api_init_login_request (request : * mut rc_api_request_t , api_params : * const rc_api_login_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_login_response (response : * mut rc_api_login_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_login_server_response (response : * mut rc_api_login_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_login_response (response : * mut rc_api_login_response_t) ; } # [doc = " API parameters for a start session request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_start_session_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub game_hash : * const :: core :: ffi :: c_char , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_start_session_request_t"] [:: core :: mem :: size_of :: < rc_api_start_session_request_t > () - 40usize] ; ["Alignment of rc_api_start_session_request_t"] [:: core :: mem :: align_of :: < rc_api_start_session_request_t > () - 8usize] ; ["Offset of field: rc_api_start_session_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , username) - 0usize] ; ["Offset of field: rc_api_start_session_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_start_session_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_start_session_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_start_session_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , hardcore) - 32usize] ; } ; # [doc = " Response data for an achievement unlock."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_unlock_entry_t { pub achievement_id : u32 , pub when : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_unlock_entry_t"] [:: core :: mem :: size_of :: < rc_api_unlock_entry_t > () - 16usize] ; ["Alignment of rc_api_unlock_entry_t"] [:: core :: mem :: align_of :: < rc_api_unlock_entry_t > () - 8usize] ; ["Offset of field: rc_api_unlock_entry_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_unlock_entry_t , achievement_id) - 0usize] ; ["Offset of field: rc_api_unlock_entry_t::when"] [:: core :: mem :: offset_of ! (rc_api_unlock_entry_t , when) - 8usize] ; } ; # [doc = " Response data for a start session request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_start_session_response_t { pub hardcore_unlocks : * mut rc_api_unlock_entry_t , pub unlocks : * mut rc_api_unlock_entry_t , pub num_hardcore_unlocks : u32 , pub num_unlocks : u32 , pub server_now : time_t , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_start_session_response_t"] [:: core :: mem :: size_of :: < rc_api_start_session_response_t > () - 344usize] ; ["Alignment of rc_api_start_session_response_t"] [:: core :: mem :: align_of :: < rc_api_start_session_response_t > () - 8usize] ; ["Offset of field: rc_api_start_session_response_t::hardcore_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , hardcore_unlocks) - 0usize] ; ["Offset of field: rc_api_start_session_response_t::unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , unlocks) - 8usize] ; ["Offset of field: rc_api_start_session_response_t::num_hardcore_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , num_hardcore_unlocks) - 16usize] ; ["Offset of field: rc_api_start_session_response_t::num_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , num_unlocks) - 20usize] ; ["Offset of field: rc_api_start_session_response_t::server_now"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , server_now) - 24usize] ; ["Offset of field: rc_api_start_session_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_start_session_request (request : * mut rc_api_request_t , api_params : * const rc_api_start_session_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_start_session_response (response : * mut rc_api_start_session_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_start_session_server_response (response : * mut rc_api_start_session_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_start_session_response (response : * mut rc_api_start_session_response_t) ; } # [doc = " API parameters for a fetch user unlocks request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_user_unlocks_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_user_unlocks_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_user_unlocks_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_user_unlocks_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_user_unlocks_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , hardcore) - 20usize] ; } ; # [doc = " Response data for a fetch user unlocks request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_user_unlocks_response_t { pub achievement_ids : * mut u32 , pub num_achievement_ids : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_user_unlocks_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_user_unlocks_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_user_unlocks_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_user_unlocks_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::achievement_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , achievement_ids) - 0usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::num_achievement_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , num_achievement_ids) - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_user_unlocks_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_user_unlocks_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_user_unlocks_response (response : * mut rc_api_fetch_user_unlocks_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_user_unlocks_server_response (response : * mut rc_api_fetch_user_unlocks_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_user_unlocks_response (response : * mut rc_api_fetch_user_unlocks_response_t) ; } # [doc = " API parameters for a fetch code notes request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_code_notes_request_t { pub game_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_code_notes_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_code_notes_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_code_notes_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_code_notes_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_code_notes_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_request_t , game_id) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_code_note_t { pub address : u32 , pub author : * const :: core :: ffi :: c_char , pub note : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_code_note_t"] [:: core :: mem :: size_of :: < rc_api_code_note_t > () - 24usize] ; ["Alignment of rc_api_code_note_t"] [:: core :: mem :: align_of :: < rc_api_code_note_t > () - 8usize] ; ["Offset of field: rc_api_code_note_t::address"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , address) - 0usize] ; ["Offset of field: rc_api_code_note_t::author"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , author) - 8usize] ; ["Offset of field: rc_api_code_note_t::note"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , note) - 16usize] ; } ; # [doc = " Response data for a fetch code notes request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_code_notes_response_t { pub notes : * mut rc_api_code_note_t , pub num_notes : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_code_notes_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_code_notes_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_code_notes_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_code_notes_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::notes"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , notes) - 0usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::num_notes"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , num_notes) - 8usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_code_notes_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_code_notes_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_code_notes_response (response : * mut rc_api_fetch_code_notes_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_code_notes_server_response (response : * mut rc_api_fetch_code_notes_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_code_notes_response (response : * mut rc_api_fetch_code_notes_response_t) ; } # [doc = " API parameters for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_code_note_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub address : u32 , pub note : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_code_note_request_t"] [:: core :: mem :: size_of :: < rc_api_update_code_note_request_t > () - 32usize] ; ["Alignment of rc_api_update_code_note_request_t"] [:: core :: mem :: align_of :: < rc_api_update_code_note_request_t > () - 8usize] ; ["Offset of field: rc_api_update_code_note_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_code_note_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_code_note_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_update_code_note_request_t::address"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , address) - 20usize] ; ["Offset of field: rc_api_update_code_note_request_t::note"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , note) - 24usize] ; } ; # [doc = " Response data for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_code_note_response_t { pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_code_note_response_t"] [:: core :: mem :: size_of :: < rc_api_update_code_note_response_t > () - 312usize] ; ["Alignment of rc_api_update_code_note_response_t"] [:: core :: mem :: align_of :: < rc_api_update_code_note_response_t > () - 8usize] ; ["Offset of field: rc_api_update_code_note_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_response_t , response) - 0usize] ; } ; extern "C" { pub fn rc_api_init_update_code_note_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_code_note_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_code_note_response (response : * mut rc_api_update_code_note_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_code_note_server_response (response : * mut rc_api_update_code_note_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_code_note_response (response : * mut rc_api_update_code_note_response_t) ; } # [doc = " API parameters for an update achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_achievement_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub game_id : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub badge : * const :: core :: ffi :: c_char , pub trigger : * const :: core :: ffi :: c_char , pub points : u32 , pub category : u32 , pub type_ : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_achievement_request_t"] [:: core :: mem :: size_of :: < rc_api_update_achievement_request_t > () - 72usize] ; ["Alignment of rc_api_update_achievement_request_t"] [:: core :: mem :: align_of :: < rc_api_update_achievement_request_t > () - 8usize] ; ["Offset of field: rc_api_update_achievement_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_achievement_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_achievement_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_update_achievement_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , game_id) - 20usize] ; ["Offset of field: rc_api_update_achievement_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , title) - 24usize] ; ["Offset of field: rc_api_update_achievement_request_t::description"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , description) - 32usize] ; ["Offset of field: rc_api_update_achievement_request_t::badge"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , badge) - 40usize] ; ["Offset of field: rc_api_update_achievement_request_t::trigger"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , trigger) - 48usize] ; ["Offset of field: rc_api_update_achievement_request_t::points"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , points) - 56usize] ; ["Offset of field: rc_api_update_achievement_request_t::category"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , category) - 60usize] ; ["Offset of field: rc_api_update_achievement_request_t::type_"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , type_) - 64usize] ; } ; # [doc = " Response data for an update achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_achievement_response_t { pub achievement_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_achievement_response_t"] [:: core :: mem :: size_of :: < rc_api_update_achievement_response_t > () - 320usize] ; ["Alignment of rc_api_update_achievement_response_t"] [:: core :: mem :: align_of :: < rc_api_update_achievement_response_t > () - 8usize] ; ["Offset of field: rc_api_update_achievement_response_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_response_t , achievement_id) - 0usize] ; ["Offset of field: rc_api_update_achievement_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_update_achievement_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_achievement_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_achievement_response (response : * mut rc_api_update_achievement_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_achievement_server_response (response : * mut rc_api_update_achievement_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_achievement_response (response : * mut rc_api_update_achievement_response_t) ; } # [doc = " API parameters for an update leaderboard request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_leaderboard_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub leaderboard_id : u32 , pub game_id : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub start_trigger : * const :: core :: ffi :: c_char , pub submit_trigger : * const :: core :: ffi :: c_char , pub cancel_trigger : * const :: core :: ffi :: c_char , pub value_definition : * const :: core :: ffi :: c_char , pub format : * const :: core :: ffi :: c_char , pub lower_is_better : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_leaderboard_request_t"] [:: core :: mem :: size_of :: < rc_api_update_leaderboard_request_t > () - 88usize] ; ["Alignment of rc_api_update_leaderboard_request_t"] [:: core :: mem :: align_of :: < rc_api_update_leaderboard_request_t > () - 8usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , leaderboard_id) - 16usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , game_id) - 20usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , title) - 24usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::description"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , description) - 32usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::start_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , start_trigger) - 40usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::submit_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , submit_trigger) - 48usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::cancel_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , cancel_trigger) - 56usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::value_definition"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , value_definition) - 64usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::format"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , format) - 72usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , lower_is_better) - 80usize] ; } ; # [doc = " Response data for an update leaderboard request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_leaderboard_response_t { pub leaderboard_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_leaderboard_response_t"] [:: core :: mem :: size_of :: < rc_api_update_leaderboard_response_t > () - 320usize] ; ["Alignment of rc_api_update_leaderboard_response_t"] [:: core :: mem :: align_of :: < rc_api_update_leaderboard_response_t > () - 8usize] ; ["Offset of field: rc_api_update_leaderboard_response_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_response_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_api_update_leaderboard_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_update_leaderboard_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_leaderboard_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_leaderboard_response (response : * mut rc_api_update_leaderboard_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_leaderboard_server_response (response : * mut rc_api_update_leaderboard_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_leaderboard_response (response : * mut rc_api_update_leaderboard_response_t) ; } # [doc = " API parameters for a fetch badge range request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_badge_range_request_t { pub unused : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_badge_range_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_badge_range_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_badge_range_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_badge_range_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_badge_range_request_t::unused"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_request_t , unused) - 0usize] ; } ; # [doc = " Response data for a fetch badge range request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_badge_range_response_t { pub first_badge_id : u32 , pub next_badge_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_badge_range_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_badge_range_response_t > () - 320usize] ; ["Alignment of rc_api_fetch_badge_range_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_badge_range_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::first_badge_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , first_badge_id) - 0usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::next_badge_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , next_badge_id) - 4usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_fetch_badge_range_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_badge_range_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_badge_range_response (response : * mut rc_api_fetch_badge_range_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_badge_range_server_response (response : * mut rc_api_fetch_badge_range_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_badge_range_response (response : * mut rc_api_fetch_badge_range_response_t) ; } # [doc = " API parameters for an add game hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_add_game_hash_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub hash : * const :: core :: ffi :: c_char , pub hash_description : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_add_game_hash_request_t"] [:: core :: mem :: size_of :: < rc_api_add_game_hash_request_t > () - 48usize] ; ["Alignment of rc_api_add_game_hash_request_t"] [:: core :: mem :: align_of :: < rc_api_add_game_hash_request_t > () - 8usize] ; ["Offset of field: rc_api_add_game_hash_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , username) - 0usize] ; ["Offset of field: rc_api_add_game_hash_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_add_game_hash_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_add_game_hash_request_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , console_id) - 20usize] ; ["Offset of field: rc_api_add_game_hash_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , title) - 24usize] ; ["Offset of field: rc_api_add_game_hash_request_t::hash"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , hash) - 32usize] ; ["Offset of field: rc_api_add_game_hash_request_t::hash_description"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , hash_description) - 40usize] ; } ; # [doc = " Response data for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_add_game_hash_response_t { pub game_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_add_game_hash_response_t"] [:: core :: mem :: size_of :: < rc_api_add_game_hash_response_t > () - 320usize] ; ["Alignment of rc_api_add_game_hash_response_t"] [:: core :: mem :: align_of :: < rc_api_add_game_hash_response_t > () - 8usize] ; ["Offset of field: rc_api_add_game_hash_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_response_t , game_id) - 0usize] ; ["Offset of field: rc_api_add_game_hash_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_add_game_hash_request (request : * mut rc_api_request_t , api_params : * const rc_api_add_game_hash_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_add_game_hash_response (response : * mut rc_api_add_game_hash_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_add_game_hash_server_response (response : * mut rc_api_add_game_hash_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_add_game_hash_response (response : * mut rc_api_add_game_hash_response_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_t { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_menu_item_t { pub label : * const :: core :: ffi :: c_char , pub id : u32 , pub checked : u8 , pub enabled : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_menu_item_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_menu_item_t > () - 16usize] ; ["Alignment of rc_client_raintegration_menu_item_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_menu_item_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::label"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , label) - 0usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::id"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , id) - 8usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::checked"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , checked) - 12usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::enabled"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , enabled) - 13usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_menu_t { pub items : * mut rc_client_raintegration_menu_item_t , pub num_items : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_menu_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_menu_t > () - 16usize] ; ["Alignment of rc_client_raintegration_menu_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_menu_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_menu_t::items"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_t , items) - 0usize] ; ["Offset of field: rc_client_raintegration_menu_t::num_items"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_t , num_items) - 8usize] ; } ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_NONE : _bindgen_ty_10 = 0 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_PUBLISHED : _bindgen_ty_10 = 1 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_LOCAL : _bindgen_ty_10 = 2 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_MODIFIED : _bindgen_ty_10 = 3 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_INSECURE : _bindgen_ty_10 = 4 ; pub type _bindgen_ty_10 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_RAINTEGRATION_EVENT_TYPE_NONE : _bindgen_ty_11 = 0 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_MENUITEM_CHECKED_CHANGED : _bindgen_ty_11 = 1 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_HARDCORE_CHANGED : _bindgen_ty_11 = 2 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_PAUSE : _bindgen_ty_11 = 3 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_MENU_CHANGED : _bindgen_ty_11 = 4 ; pub type _bindgen_ty_11 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_event_t { pub type_ : u32 , pub menu_item : * const rc_client_raintegration_menu_item_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_event_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_event_t > () - 16usize] ; ["Alignment of rc_client_raintegration_event_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_event_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_event_t::type_"] [:: core :: mem :: offset_of ! (rc_client_raintegration_event_t , type_) - 0usize] ; ["Offset of field: rc_client_raintegration_event_t::menu_item"] [:: core :: mem :: offset_of ! (rc_client_raintegration_event_t , menu_item) - 8usize] ; } ; pub type rc_client_raintegration_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (event : * const rc_client_raintegration_event_t , client : * mut rc_client_t) > ; pub type rc_client_raintegration_write_memory_func_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , buffer : * mut u8 , num_bytes : u32 , client : * mut rc_client_t) > ; pub type rc_client_raintegration_get_game_name_func_t = :: core :: option :: Option < unsafe extern "C" fn (buffer : * mut :: core :: ffi :: c_char , buffer_size : u32 , client : * mut rc_client_t) > ; # [doc = " API parameters for a fetch achievement info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_achievement_info_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub first_entry : u32 , pub count : u32 , pub friends_only : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_achievement_info_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_achievement_info_request_t > () - 32usize] ; ["Alignment of rc_api_fetch_achievement_info_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_achievement_info_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::first_entry"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , first_entry) - 20usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::count"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , count) - 24usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::friends_only"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , friends_only) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_achievement_awarded_entry_t { pub username : * const :: core :: ffi :: c_char , pub awarded : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_achievement_awarded_entry_t"] [:: core :: mem :: size_of :: < rc_api_achievement_awarded_entry_t > () - 16usize] ; ["Alignment of rc_api_achievement_awarded_entry_t"] [:: core :: mem :: align_of :: < rc_api_achievement_awarded_entry_t > () - 8usize] ; ["Offset of field: rc_api_achievement_awarded_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_achievement_awarded_entry_t , username) - 0usize] ; ["Offset of field: rc_api_achievement_awarded_entry_t::awarded"] [:: core :: mem :: offset_of ! (rc_api_achievement_awarded_entry_t , awarded) - 8usize] ; } ; # [doc = " Response data for a fetch achievement info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_achievement_info_response_t { pub id : u32 , pub game_id : u32 , pub num_awarded : u32 , pub num_players : u32 , pub recently_awarded : * mut rc_api_achievement_awarded_entry_t , pub num_recently_awarded : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_achievement_info_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_achievement_info_response_t > () - 344usize] ; ["Alignment of rc_api_fetch_achievement_info_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_achievement_info_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , game_id) - 4usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_awarded) - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_players"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_players) - 12usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::recently_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , recently_awarded) - 16usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_recently_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_recently_awarded) - 24usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_fetch_achievement_info_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_achievement_info_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_achievement_info_response (response : * mut rc_api_fetch_achievement_info_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_achievement_info_server_response (response : * mut rc_api_fetch_achievement_info_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_achievement_info_response (response : * mut rc_api_fetch_achievement_info_response_t) ; } # [doc = " API parameters for a fetch leaderboard info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_leaderboard_info_request_t { pub leaderboard_id : u32 , pub count : u32 , pub first_entry : u32 , pub username : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_leaderboard_info_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_leaderboard_info_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_leaderboard_info_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_leaderboard_info_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::count"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , count) - 4usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::first_entry"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , first_entry) - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , username) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_lboard_info_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub index : u32 , pub score : i32 , pub submitted : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_lboard_info_entry_t"] [:: core :: mem :: size_of :: < rc_api_lboard_info_entry_t > () - 32usize] ; ["Alignment of rc_api_lboard_info_entry_t"] [:: core :: mem :: align_of :: < rc_api_lboard_info_entry_t > () - 8usize] ; ["Offset of field: rc_api_lboard_info_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , username) - 0usize] ; ["Offset of field: rc_api_lboard_info_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , rank) - 8usize] ; ["Offset of field: rc_api_lboard_info_entry_t::index"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , index) - 12usize] ; ["Offset of field: rc_api_lboard_info_entry_t::score"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , score) - 16usize] ; ["Offset of field: rc_api_lboard_info_entry_t::submitted"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , submitted) - 24usize] ; } ; # [doc = " Response data for a fetch leaderboard info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_leaderboard_info_response_t { pub id : u32 , pub format : :: core :: ffi :: c_int , pub lower_is_better : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub game_id : u32 , pub author : * const :: core :: ffi :: c_char , pub created : time_t , pub updated : time_t , pub entries : * mut rc_api_lboard_info_entry_t , pub num_entries : u32 , pub total_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_leaderboard_info_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_leaderboard_info_response_t > () - 400usize] ; ["Alignment of rc_api_fetch_leaderboard_info_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_leaderboard_info_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::format"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , format) - 4usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , lower_is_better) - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::title"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , title) - 16usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::description"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , description) - 24usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::definition"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , definition) - 32usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , game_id) - 40usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::author"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , author) - 48usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::created"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , created) - 56usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::updated"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , updated) - 64usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , entries) - 72usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , num_entries) - 80usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::total_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , total_entries) - 84usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , response) - 88usize] ; } ; extern "C" { pub fn rc_api_init_fetch_leaderboard_info_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_leaderboard_info_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_leaderboard_info_response (response : * mut rc_api_fetch_leaderboard_info_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_leaderboard_info_server_response (response : * mut rc_api_fetch_leaderboard_info_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_leaderboard_info_response (response : * mut rc_api_fetch_leaderboard_info_response_t) ; } # [doc = " API parameters for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_games_list_request_t { pub console_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_games_list_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_games_list_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_games_list_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_games_list_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_games_list_request_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_request_t , console_id) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_game_list_entry_t { pub id : u32 , pub name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_game_list_entry_t"] [:: core :: mem :: size_of :: < rc_api_game_list_entry_t > () - 16usize] ; ["Alignment of rc_api_game_list_entry_t"] [:: core :: mem :: align_of :: < rc_api_game_list_entry_t > () - 8usize] ; ["Offset of field: rc_api_game_list_entry_t::id"] [:: core :: mem :: offset_of ! (rc_api_game_list_entry_t , id) - 0usize] ; ["Offset of field: rc_api_game_list_entry_t::name"] [:: core :: mem :: offset_of ! (rc_api_game_list_entry_t , name) - 8usize] ; } ; # [doc = " Response data for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_games_list_response_t { pub entries : * mut rc_api_game_list_entry_t , pub num_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_games_list_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_games_list_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_games_list_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_games_list_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , entries) - 0usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , num_entries) - 8usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_games_list_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_games_list_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_games_list_response (response : * mut rc_api_fetch_games_list_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_games_list_server_response (response : * mut rc_api_fetch_games_list_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_games_list_response (response : * mut rc_api_fetch_games_list_response_t) ; } # [doc = " API parameters for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_titles_request_t { pub game_ids : * const u32 , pub num_game_ids : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_titles_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_titles_request_t > () - 16usize] ; ["Alignment of rc_api_fetch_game_titles_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_titles_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_request_t::game_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_request_t , game_ids) - 0usize] ; ["Offset of field: rc_api_fetch_game_titles_request_t::num_game_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_request_t , num_game_ids) - 8usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_game_title_entry_t { pub id : u32 , pub title : * const :: core :: ffi :: c_char , pub image_name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_game_title_entry_t"] [:: core :: mem :: size_of :: < rc_api_game_title_entry_t > () - 24usize] ; ["Alignment of rc_api_game_title_entry_t"] [:: core :: mem :: align_of :: < rc_api_game_title_entry_t > () - 8usize] ; ["Offset of field: rc_api_game_title_entry_t::id"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , id) - 0usize] ; ["Offset of field: rc_api_game_title_entry_t::title"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , title) - 8usize] ; ["Offset of field: rc_api_game_title_entry_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , image_name) - 16usize] ; } ; # [doc = " Response data for a fetch games title request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_titles_response_t { pub entries : * mut rc_api_game_title_entry_t , pub num_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_titles_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_titles_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_game_titles_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_titles_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , entries) - 0usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , num_entries) - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_game_titles_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_game_titles_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_titles_server_response (response : * mut rc_api_fetch_game_titles_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_game_titles_response (response : * mut rc_api_fetch_game_titles_response_t) ; } pub type __gnuc_va_list = __builtin_va_list ; # [repr (C)] # [derive (Copy , Clone)] pub struct __mbstate_t { pub __count : :: core :: ffi :: c_int , pub __value : __mbstate_t__bindgen_ty_1 , } # [repr (C)] # [derive (Copy , Clone)] pub union __mbstate_t__bindgen_ty_1 { pub __wch : :: core :: ffi :: c_uint , pub __wchb : [:: core :: ffi :: c_char ; 4usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __mbstate_t__bindgen_ty_1"] [:: core :: mem :: size_of :: < __mbstate_t__bindgen_ty_1 > () - 4usize] ; ["Alignment of __mbstate_t__bindgen_ty_1"] [:: core :: mem :: align_of :: < __mbstate_t__bindgen_ty_1 > () - 4usize] ; ["Offset of field: __mbstate_t__bindgen_ty_1::__wch"] [:: core :: mem :: offset_of ! (__mbstate_t__bindgen_ty_1 , __wch) - 0usize] ; ["Offset of field: __mbstate_t__bindgen_ty_1::__wchb"] [:: core :: mem :: offset_of ! (__mbstate_t__bindgen_ty_1 , __wchb) - 0usize] ; } ; impl :: core :: fmt :: Debug for __mbstate_t__bindgen_ty_1 { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "__mbstate_t__bindgen_ty_1 {{ union }}") } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __mbstate_t"] [:: core :: mem :: size_of :: < __mbstate_t > () - 8usize] ; ["Alignment of __mbstate_t"] [:: core :: mem :: align_of :: < __mbstate_t > () - 4usize] ; ["Offset of field: __mbstate_t::__count"] [:: core :: mem :: offset_of ! (__mbstate_t , __count) - 0usize] ; ["Offset of field: __mbstate_t::__value"] [:: core :: mem :: offset_of ! (__mbstate_t , __value) - 4usize] ; } ; impl :: core :: fmt :: Debug for __mbstate_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "__mbstate_t {{ __count: {:?}, __value: {:?} }}" , self . __count , self . __value) } } # [repr (C)] # [derive (Copy , Clone)] pub struct _G_fpos_t { pub __pos : __off_t , pub __state : __mbstate_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _G_fpos_t"] [:: core :: mem :: size_of :: < _G_fpos_t > () - 16usize] ; ["Alignment of _G_fpos_t"] [:: core :: mem :: align_of :: < _G_fpos_t > () - 8usize] ; ["Offset of field: _G_fpos_t::__pos"] [:: core :: mem :: offset_of ! (_G_fpos_t , __pos) - 0usize] ; ["Offset of field: _G_fpos_t::__state"] [:: core :: mem :: offset_of ! (_G_fpos_t , __state) - 8usize] ; } ; impl :: core :: fmt :: Debug for _G_fpos_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "_G_fpos_t {{ __pos: {:?}, __state: {:?} }}" , self . __pos , self . __state) } } pub type __fpos_t = _G_fpos_t ; # [repr (C)] # [derive (Copy , Clone)] pub struct _G_fpos64_t { pub __pos : __off64_t , pub __state : __mbstate_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _G_fpos64_t"] [:: core :: mem :: size_of :: < _G_fpos64_t > () - 16usize] ; ["Alignment of _G_fpos64_t"] [:: core :: mem :: align_of :: < _G_fpos64_t > () - 8usize] ; ["Offset of field: _G_fpos64_t::__pos"] [:: core :: mem :: offset_of ! (_G_fpos64_t , __pos) - 0usize] ; ["Offset of field: _G_fpos64_t::__state"] [:: core :: mem :: offset_of ! (_G_fpos64_t , __state) - 8usize] ; } ; impl :: core :: fmt :: Debug for _G_fpos64_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "_G_fpos64_t {{ __pos: {:?}, __state: {:?} }}" , self . __pos , self . __state) } } pub type __fpos64_t = _G_fpos64_t ; pub type __FILE = _IO_FILE ; pub type FILE = _IO_FILE ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_marker { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_codecvt { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_wide_data { _unused : [u8 ; 0] , } pub type _IO_lock_t = :: core :: ffi :: c_void ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_FILE { pub _flags : :: core :: ffi :: c_int , pub _IO_read_ptr : * mut :: core :: ffi :: c_char , pub _IO_read_end : * mut :: core :: ffi :: c_char , pub _IO_read_base : * mut :: core :: ffi :: c_char , pub _IO_write_base : * mut :: core :: ffi :: c_char , pub _IO_write_ptr : * mut :: core :: ffi :: c_char , pub _IO_write_end : * mut :: core :: ffi :: c_char , pub _IO_buf_base : * mut :: core :: ffi :: c_char , pub _IO_buf_end : * mut :: core :: ffi :: c_char , pub _IO_save_base : * mut :: core :: ffi :: c_char , pub _IO_backup_base : * mut :: core :: ffi :: c_char , pub _IO_save_end : * mut :: core :: ffi :: c_char , pub _markers : * mut _IO_marker , pub _chain : * mut _IO_FILE , pub _fileno : :: core :: ffi :: c_int , pub _bitfield_align_1 : [u32 ; 0] , pub _bitfield_1 : __BindgenBitfieldUnit < [u8 ; 3usize] > , pub _short_backupbuf : [:: core :: ffi :: c_char ; 1usize] , pub _old_offset : __off_t , pub _cur_column : :: core :: ffi :: c_ushort , pub _vtable_offset : :: core :: ffi :: c_schar , pub _shortbuf : [:: core :: ffi :: c_char ; 1usize] , pub _lock : * mut _IO_lock_t , pub _offset : __off64_t , pub _codecvt : * mut _IO_codecvt , pub _wide_data : * mut _IO_wide_data , pub _freeres_list : * mut _IO_FILE , pub _freeres_buf : * mut :: core :: ffi :: c_void , pub _prevchain : * mut * mut _IO_FILE , pub _mode : :: core :: ffi :: c_int , pub _unused3 : :: core :: ffi :: c_int , pub _total_written : __uint64_t , pub _unused2 : [:: core :: ffi :: c_char ; 8usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _IO_FILE"] [:: core :: mem :: size_of :: < _IO_FILE > () - 216usize] ; ["Alignment of _IO_FILE"] [:: core :: mem :: align_of :: < _IO_FILE > () - 8usize] ; ["Offset of field: _IO_FILE::_flags"] [:: core :: mem :: offset_of ! (_IO_FILE , _flags) - 0usize] ; ["Offset of field: _IO_FILE::_IO_read_ptr"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_ptr) - 8usize] ; ["Offset of field: _IO_FILE::_IO_read_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_end) - 16usize] ; ["Offset of field: _IO_FILE::_IO_read_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_base) - 24usize] ; ["Offset of field: _IO_FILE::_IO_write_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_base) - 32usize] ; ["Offset of field: _IO_FILE::_IO_write_ptr"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_ptr) - 40usize] ; ["Offset of field: _IO_FILE::_IO_write_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_end) - 48usize] ; ["Offset of field: _IO_FILE::_IO_buf_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_buf_base) - 56usize] ; ["Offset of field: _IO_FILE::_IO_buf_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_buf_end) - 64usize] ; ["Offset of field: _IO_FILE::_IO_save_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_save_base) - 72usize] ; ["Offset of field: _IO_FILE::_IO_backup_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_backup_base) - 80usize] ; ["Offset of field: _IO_FILE::_IO_save_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_save_end) - 88usize] ; ["Offset of field: _IO_FILE::_markers"] [:: core :: mem :: offset_of ! (_IO_FILE , _markers) - 96usize] ; ["Offset of field: _IO_FILE::_chain"] [:: core :: mem :: offset_of ! (_IO_FILE , _chain) - 104usize] ; ["Offset of field: _IO_FILE::_fileno"] [:: core :: mem :: offset_of ! (_IO_FILE , _fileno) - 112usize] ; ["Offset of field: _IO_FILE::_short_backupbuf"] [:: core :: mem :: offset_of ! (_IO_FILE , _short_backupbuf) - 119usize] ; ["Offset of field: _IO_FILE::_old_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _old_offset) - 120usize] ; ["Offset of field: _IO_FILE::_cur_column"] [:: core :: mem :: offset_of ! (_IO_FILE , _cur_column) - 128usize] ; ["Offset of field: _IO_FILE::_vtable_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _vtable_offset) - 130usize] ; ["Offset of field: _IO_FILE::_shortbuf"] [:: core :: mem :: offset_of ! (_IO_FILE , _shortbuf) - 131usize] ; ["Offset of field: _IO_FILE::_lock"] [:: core :: mem :: offset_of ! (_IO_FILE , _lock) - 136usize] ; ["Offset of field: _IO_FILE::_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _offset) - 144usize] ; ["Offset of field: _IO_FILE::_codecvt"] [:: core :: mem :: offset_of ! (_IO_FILE , _codecvt) - 152usize] ; ["Offset of field: _IO_FILE::_wide_data"] [:: core :: mem :: offset_of ! (_IO_FILE , _wide_data) - 160usize] ; ["Offset of field: _IO_FILE::_freeres_list"] [:: core :: mem :: offset_of ! (_IO_FILE , _freeres_list) - 168usize] ; ["Offset of field: _IO_FILE::_freeres_buf"] [:: core :: mem :: offset_of ! (_IO_FILE , _freeres_buf) - 176usize] ; ["Offset of field: _IO_FILE::_prevchain"] [:: core :: mem :: offset_of ! (_IO_FILE , _prevchain) - 184usize] ; ["Offset of field: _IO_FILE::_mode"] [:: core :: mem :: offset_of ! (_IO_FILE , _mode) - 192usize] ; ["Offset of field: _IO_FILE::_unused3"] [:: core :: mem :: offset_of ! (_IO_FILE , _unused3) - 196usize] ; ["Offset of field: _IO_FILE::_total_written"] [:: core :: mem :: offset_of ! (_IO_FILE , _total_written) - 200usize] ; ["Offset of field: _IO_FILE::_unused2"] [:: core :: mem :: offset_of ! (_IO_FILE , _unused2) - 208usize] ; } ; impl _IO_FILE { # [inline] pub fn _flags2 (& self) -> :: core :: ffi :: c_int { unsafe { u32::cast_signed (self . _bitfield_1 . get (0usize , 24u8) as u32) } } # [inline] pub fn set__flags2 (& mut self , val : :: core :: ffi :: c_int) { unsafe { let val : u32 = :: core :: mem :: transmute (val) ; self . _bitfield_1 . set (0usize , 24u8 , val as u64) } } # [inline] pub fn new_bitfield_1 (_flags2 : :: core :: ffi :: c_int) -> __BindgenBitfieldUnit < [u8 ; 3usize] > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [u8 ; 3usize] > = Default :: default () ; __bindgen_bitfield_unit . set (0usize , 24u8 , { let _flags2 : u32 = unsafe { :: core :: mem :: transmute (_flags2) } ; _flags2 as u64 }) ; __bindgen_bitfield_unit } } pub type cookie_read_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __buf : * mut :: core :: ffi :: c_char , __nbytes : usize) -> __ssize_t > ; pub type cookie_write_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __buf : * const :: core :: ffi :: c_char , __nbytes : usize) -> __ssize_t > ; pub type cookie_seek_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __pos : * mut __off64_t , __w : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int > ; pub type cookie_close_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void) -> :: core :: ffi :: 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 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _IO_cookie_io_functions_t"] [:: core :: mem :: size_of :: < _IO_cookie_io_functions_t > () - 32usize] ; ["Alignment of _IO_cookie_io_functions_t"] [:: core :: mem :: align_of :: < _IO_cookie_io_functions_t > () - 8usize] ; ["Offset of field: _IO_cookie_io_functions_t::read"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , read) - 0usize] ; ["Offset of field: _IO_cookie_io_functions_t::write"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , write) - 8usize] ; ["Offset of field: _IO_cookie_io_functions_t::seek"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , seek) - 16usize] ; ["Offset of field: _IO_cookie_io_functions_t::close"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , close) - 24usize] ; } ; 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" { pub static mut stdin : * mut FILE ; } extern "C" { pub static mut stdout : * mut FILE ; } extern "C" { pub static mut stderr : * mut FILE ; } extern "C" { pub fn remove (__filename : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rename (__old : * const :: core :: ffi :: c_char , __new : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn renameat (__oldfd : :: core :: ffi :: c_int , __old : * const :: core :: ffi :: c_char , __newfd : :: core :: ffi :: c_int , __new : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fclose (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn tmpfile () -> * mut FILE ; } extern "C" { pub fn tmpnam (arg1 : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn tmpnam_r (__s : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn tempnam (__dir : * const :: core :: ffi :: c_char , __pfx : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn fflush (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fflush_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fopen (__filename : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn freopen (__filename : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char , __stream : * mut FILE) -> * mut FILE ; } extern "C" { pub fn fdopen (__fd : :: core :: ffi :: c_int , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn fopencookie (__magic_cookie : * mut :: core :: ffi :: c_void , __modes : * const :: core :: ffi :: c_char , __io_funcs : cookie_io_functions_t) -> * mut FILE ; } extern "C" { pub fn fmemopen (__s : * mut :: core :: ffi :: c_void , __len : usize , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn open_memstream (__bufloc : * mut * mut :: core :: ffi :: c_char , __sizeloc : * mut usize) -> * mut FILE ; } extern "C" { pub fn setbuf (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char) ; } extern "C" { pub fn setvbuf (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char , __modes : :: core :: ffi :: c_int , __n : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn setbuffer (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char , __size : usize) ; } extern "C" { pub fn setlinebuf (__stream : * mut FILE) ; } extern "C" { pub fn fprintf (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn printf (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn sprintf (__s : * mut :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vfprintf (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vprintf (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsprintf (__s : * mut :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn snprintf (__s : * mut :: core :: ffi :: c_char , __maxlen : :: core :: ffi :: c_ulong , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsnprintf (__s : * mut :: core :: ffi :: c_char , __maxlen : :: core :: ffi :: c_ulong , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vasprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __f : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn __asprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn asprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vdprintf (__fd : :: core :: ffi :: c_int , __fmt : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn dprintf (__fd : :: core :: ffi :: c_int , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fscanf (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn scanf (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn sscanf (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } pub type __cfloat128 = __BindgenComplex < u128 > ; pub type _Float128 = u128 ; pub type _Float32 = f32 ; pub type _Float64 = f64 ; pub type _Float32x = f64 ; pub type _Float64x = u128 ; extern "C" { # [link_name = "\u{1}__isoc99_fscanf"] pub fn fscanf1 (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_scanf"] pub fn scanf1 (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_sscanf"] pub fn sscanf1 (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vfscanf (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vscanf (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsscanf (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vfscanf"] pub fn vfscanf1 (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vscanf"] pub fn vscanf1 (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vsscanf"] pub fn vsscanf1 (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgetc (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getc (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getchar () -> :: core :: ffi :: c_int ; } extern "C" { pub fn getc_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getchar_unlocked () -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgetc_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fputc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putchar (__c : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fputc_unlocked (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putc_unlocked (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putchar_unlocked (__c : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getw (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putw (__w : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgets (__s : * mut :: core :: ffi :: c_char , __n : :: core :: ffi :: c_int , __stream : * mut FILE) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn __getdelim (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __delimiter : :: core :: ffi :: c_int , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn getdelim (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __delimiter : :: core :: ffi :: c_int , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn getline (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn fputs (__s : * const :: core :: ffi :: c_char , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn puts (__s : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ungetc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fread (__ptr : * mut :: core :: ffi :: c_void , __size : :: core :: ffi :: c_ulong , __n : :: core :: ffi :: c_ulong , __stream : * mut FILE) -> :: core :: ffi :: c_ulong ; } extern "C" { pub fn fwrite (__ptr : * const :: core :: ffi :: c_void , __size : :: core :: ffi :: c_ulong , __n : :: core :: ffi :: c_ulong , __s : * mut FILE) -> :: core :: ffi :: c_ulong ; } extern "C" { pub fn fread_unlocked (__ptr : * mut :: core :: ffi :: c_void , __size : usize , __n : usize , __stream : * mut FILE) -> usize ; } extern "C" { pub fn fwrite_unlocked (__ptr : * const :: core :: ffi :: c_void , __size : usize , __n : usize , __stream : * mut FILE) -> usize ; } extern "C" { pub fn fseek (__stream : * mut FILE , __off : :: core :: ffi :: c_long , __whence : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ftell (__stream : * mut FILE) -> :: core :: ffi :: c_long ; } extern "C" { pub fn rewind (__stream : * mut FILE) ; } extern "C" { pub fn fseeko (__stream : * mut FILE , __off : __off_t , __whence : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ftello (__stream : * mut FILE) -> __off_t ; } extern "C" { pub fn fgetpos (__stream : * mut FILE , __pos : * mut fpos_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fsetpos (__stream : * mut FILE , __pos : * const fpos_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clearerr (__stream : * mut FILE) ; } extern "C" { pub fn feof (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ferror (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clearerr_unlocked (__stream : * mut FILE) ; } extern "C" { pub fn feof_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ferror_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn perror (__s : * const :: core :: ffi :: c_char) ; } extern "C" { pub fn fileno (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fileno_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn pclose (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn popen (__command : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn ctermid (__s : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn flockfile (__stream : * mut FILE) ; } extern "C" { pub fn ftrylockfile (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn funlockfile (__stream : * mut FILE) ; } extern "C" { pub fn __uflow (arg1 : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn __overflow (arg1 : * mut FILE , arg2 : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } pub const RC_CONSOLE_UNKNOWN : _bindgen_ty_12 = 0 ; pub const RC_CONSOLE_MEGA_DRIVE : _bindgen_ty_12 = 1 ; pub const RC_CONSOLE_NINTENDO_64 : _bindgen_ty_12 = 2 ; pub const RC_CONSOLE_SUPER_NINTENDO : _bindgen_ty_12 = 3 ; pub const RC_CONSOLE_GAMEBOY : _bindgen_ty_12 = 4 ; pub const RC_CONSOLE_GAMEBOY_ADVANCE : _bindgen_ty_12 = 5 ; pub const RC_CONSOLE_GAMEBOY_COLOR : _bindgen_ty_12 = 6 ; pub const RC_CONSOLE_NINTENDO : _bindgen_ty_12 = 7 ; pub const RC_CONSOLE_PC_ENGINE : _bindgen_ty_12 = 8 ; pub const RC_CONSOLE_SEGA_CD : _bindgen_ty_12 = 9 ; pub const RC_CONSOLE_SEGA_32X : _bindgen_ty_12 = 10 ; pub const RC_CONSOLE_MASTER_SYSTEM : _bindgen_ty_12 = 11 ; pub const RC_CONSOLE_PLAYSTATION : _bindgen_ty_12 = 12 ; pub const RC_CONSOLE_ATARI_LYNX : _bindgen_ty_12 = 13 ; pub const RC_CONSOLE_NEOGEO_POCKET : _bindgen_ty_12 = 14 ; pub const RC_CONSOLE_GAME_GEAR : _bindgen_ty_12 = 15 ; pub const RC_CONSOLE_GAMECUBE : _bindgen_ty_12 = 16 ; pub const RC_CONSOLE_ATARI_JAGUAR : _bindgen_ty_12 = 17 ; pub const RC_CONSOLE_NINTENDO_DS : _bindgen_ty_12 = 18 ; pub const RC_CONSOLE_WII : _bindgen_ty_12 = 19 ; pub const RC_CONSOLE_WII_U : _bindgen_ty_12 = 20 ; pub const RC_CONSOLE_PLAYSTATION_2 : _bindgen_ty_12 = 21 ; pub const RC_CONSOLE_XBOX : _bindgen_ty_12 = 22 ; pub const RC_CONSOLE_MAGNAVOX_ODYSSEY2 : _bindgen_ty_12 = 23 ; pub const RC_CONSOLE_POKEMON_MINI : _bindgen_ty_12 = 24 ; pub const RC_CONSOLE_ATARI_2600 : _bindgen_ty_12 = 25 ; pub const RC_CONSOLE_MS_DOS : _bindgen_ty_12 = 26 ; pub const RC_CONSOLE_ARCADE : _bindgen_ty_12 = 27 ; pub const RC_CONSOLE_VIRTUAL_BOY : _bindgen_ty_12 = 28 ; pub const RC_CONSOLE_MSX : _bindgen_ty_12 = 29 ; pub const RC_CONSOLE_COMMODORE_64 : _bindgen_ty_12 = 30 ; pub const RC_CONSOLE_ZX81 : _bindgen_ty_12 = 31 ; pub const RC_CONSOLE_ORIC : _bindgen_ty_12 = 32 ; pub const RC_CONSOLE_SG1000 : _bindgen_ty_12 = 33 ; pub const RC_CONSOLE_VIC20 : _bindgen_ty_12 = 34 ; pub const RC_CONSOLE_AMIGA : _bindgen_ty_12 = 35 ; pub const RC_CONSOLE_ATARI_ST : _bindgen_ty_12 = 36 ; pub const RC_CONSOLE_AMSTRAD_PC : _bindgen_ty_12 = 37 ; pub const RC_CONSOLE_APPLE_II : _bindgen_ty_12 = 38 ; pub const RC_CONSOLE_SATURN : _bindgen_ty_12 = 39 ; pub const RC_CONSOLE_DREAMCAST : _bindgen_ty_12 = 40 ; pub const RC_CONSOLE_PSP : _bindgen_ty_12 = 41 ; pub const RC_CONSOLE_CDI : _bindgen_ty_12 = 42 ; pub const RC_CONSOLE_3DO : _bindgen_ty_12 = 43 ; pub const RC_CONSOLE_COLECOVISION : _bindgen_ty_12 = 44 ; pub const RC_CONSOLE_INTELLIVISION : _bindgen_ty_12 = 45 ; pub const RC_CONSOLE_VECTREX : _bindgen_ty_12 = 46 ; pub const RC_CONSOLE_PC8800 : _bindgen_ty_12 = 47 ; pub const RC_CONSOLE_PC9800 : _bindgen_ty_12 = 48 ; pub const RC_CONSOLE_PCFX : _bindgen_ty_12 = 49 ; pub const RC_CONSOLE_ATARI_5200 : _bindgen_ty_12 = 50 ; pub const RC_CONSOLE_ATARI_7800 : _bindgen_ty_12 = 51 ; pub const RC_CONSOLE_X68K : _bindgen_ty_12 = 52 ; pub const RC_CONSOLE_WONDERSWAN : _bindgen_ty_12 = 53 ; pub const RC_CONSOLE_CASSETTEVISION : _bindgen_ty_12 = 54 ; pub const RC_CONSOLE_SUPER_CASSETTEVISION : _bindgen_ty_12 = 55 ; pub const RC_CONSOLE_NEO_GEO_CD : _bindgen_ty_12 = 56 ; pub const RC_CONSOLE_FAIRCHILD_CHANNEL_F : _bindgen_ty_12 = 57 ; pub const RC_CONSOLE_FM_TOWNS : _bindgen_ty_12 = 58 ; pub const RC_CONSOLE_ZX_SPECTRUM : _bindgen_ty_12 = 59 ; pub const RC_CONSOLE_GAME_AND_WATCH : _bindgen_ty_12 = 60 ; pub const RC_CONSOLE_NOKIA_NGAGE : _bindgen_ty_12 = 61 ; pub const RC_CONSOLE_NINTENDO_3DS : _bindgen_ty_12 = 62 ; pub const RC_CONSOLE_SUPERVISION : _bindgen_ty_12 = 63 ; pub const RC_CONSOLE_SHARPX1 : _bindgen_ty_12 = 64 ; pub const RC_CONSOLE_TIC80 : _bindgen_ty_12 = 65 ; pub const RC_CONSOLE_THOMSONTO8 : _bindgen_ty_12 = 66 ; pub const RC_CONSOLE_PC6000 : _bindgen_ty_12 = 67 ; pub const RC_CONSOLE_PICO : _bindgen_ty_12 = 68 ; pub const RC_CONSOLE_MEGADUCK : _bindgen_ty_12 = 69 ; pub const RC_CONSOLE_ZEEBO : _bindgen_ty_12 = 70 ; pub const RC_CONSOLE_ARDUBOY : _bindgen_ty_12 = 71 ; pub const RC_CONSOLE_WASM4 : _bindgen_ty_12 = 72 ; pub const RC_CONSOLE_ARCADIA_2001 : _bindgen_ty_12 = 73 ; pub const RC_CONSOLE_INTERTON_VC_4000 : _bindgen_ty_12 = 74 ; pub const RC_CONSOLE_ELEKTOR_TV_GAMES_COMPUTER : _bindgen_ty_12 = 75 ; pub const RC_CONSOLE_PC_ENGINE_CD : _bindgen_ty_12 = 76 ; pub const RC_CONSOLE_ATARI_JAGUAR_CD : _bindgen_ty_12 = 77 ; pub const RC_CONSOLE_NINTENDO_DSI : _bindgen_ty_12 = 78 ; pub const RC_CONSOLE_TI83 : _bindgen_ty_12 = 79 ; pub const RC_CONSOLE_UZEBOX : _bindgen_ty_12 = 80 ; pub const RC_CONSOLE_HUBS : _bindgen_ty_12 = 100 ; pub const RC_CONSOLE_EVENTS : _bindgen_ty_12 = 101 ; pub const RC_CONSOLE_STANDALONE : _bindgen_ty_12 = 102 ; # [doc = "\\\n| Console identifiers                                                         |\n\\"] pub type _bindgen_ty_12 = :: core :: ffi :: c_uint ; extern "C" { pub fn rc_console_name (console_id : u32) -> * const :: core :: ffi :: c_char ; } pub const RC_MEMORY_TYPE_SYSTEM_RAM : _bindgen_ty_13 = 0 ; pub const RC_MEMORY_TYPE_SAVE_RAM : _bindgen_ty_13 = 1 ; pub const RC_MEMORY_TYPE_VIDEO_RAM : _bindgen_ty_13 = 2 ; pub const RC_MEMORY_TYPE_READONLY : _bindgen_ty_13 = 3 ; pub const RC_MEMORY_TYPE_HARDWARE_CONTROLLER : _bindgen_ty_13 = 4 ; pub const RC_MEMORY_TYPE_VIRTUAL_RAM : _bindgen_ty_13 = 5 ; pub const RC_MEMORY_TYPE_UNUSED : _bindgen_ty_13 = 6 ; # [doc = "\\\n| Memory mapping                                                              |\n\\"] pub type _bindgen_ty_13 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memory_region_t { pub start_address : u32 , pub end_address : u32 , pub real_address : u32 , pub type_ : u8 , pub description : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memory_region_t"] [:: core :: mem :: size_of :: < rc_memory_region_t > () - 24usize] ; ["Alignment of rc_memory_region_t"] [:: core :: mem :: align_of :: < rc_memory_region_t > () - 8usize] ; ["Offset of field: rc_memory_region_t::start_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , start_address) - 0usize] ; ["Offset of field: rc_memory_region_t::end_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , end_address) - 4usize] ; ["Offset of field: rc_memory_region_t::real_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , real_address) - 8usize] ; ["Offset of field: rc_memory_region_t::type_"] [:: core :: mem :: offset_of ! (rc_memory_region_t , type_) - 12usize] ; ["Offset of field: rc_memory_region_t::description"] [:: core :: mem :: offset_of ! (rc_memory_region_t , description) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memory_regions_t { pub region : * const rc_memory_region_t , pub num_regions : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memory_regions_t"] [:: core :: mem :: size_of :: < rc_memory_regions_t > () - 16usize] ; ["Alignment of rc_memory_regions_t"] [:: core :: mem :: align_of :: < rc_memory_regions_t > () - 8usize] ; ["Offset of field: rc_memory_regions_t::region"] [:: core :: mem :: offset_of ! (rc_memory_regions_t , region) - 0usize] ; ["Offset of field: rc_memory_regions_t::num_regions"] [:: core :: mem :: offset_of ! (rc_memory_regions_t , num_regions) - 8usize] ; } ; extern "C" { pub fn rc_console_memory_regions (console_id : u32) -> * const rc_memory_regions_t ; } extern "C" { pub fn rc_hash_generate_from_buffer (hash : * mut :: core :: ffi :: c_char , console_id : u32 , buffer : * const u8 , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_hash_generate_from_file (hash : * mut :: core :: ffi :: c_char , console_id : u32 , path : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_iterator { pub buffer : * const u8 , pub buffer_size : usize , pub consoles : [u8 ; 12usize] , pub index : :: core :: ffi :: c_int , pub path : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_iterator"] [:: core :: mem :: size_of :: < rc_hash_iterator > () - 40usize] ; ["Alignment of rc_hash_iterator"] [:: core :: mem :: align_of :: < rc_hash_iterator > () - 8usize] ; ["Offset of field: rc_hash_iterator::buffer"] [:: core :: mem :: offset_of ! (rc_hash_iterator , buffer) - 0usize] ; ["Offset of field: rc_hash_iterator::buffer_size"] [:: core :: mem :: offset_of ! (rc_hash_iterator , buffer_size) - 8usize] ; ["Offset of field: rc_hash_iterator::consoles"] [:: core :: mem :: offset_of ! (rc_hash_iterator , consoles) - 16usize] ; ["Offset of field: rc_hash_iterator::index"] [:: core :: mem :: offset_of ! (rc_hash_iterator , index) - 28usize] ; ["Offset of field: rc_hash_iterator::path"] [:: core :: mem :: offset_of ! (rc_hash_iterator , path) - 32usize] ; } ; pub type rc_hash_iterator_t = rc_hash_iterator ; extern "C" { pub fn rc_hash_initialize_iterator (iterator : * mut rc_hash_iterator , path : * const :: core :: ffi :: c_char , buffer : * const u8 , buffer_size : usize) ; } extern "C" { pub fn rc_hash_destroy_iterator (iterator : * mut rc_hash_iterator) ; } extern "C" { pub fn rc_hash_iterate (hash : * mut :: core :: ffi :: c_char , iterator : * mut rc_hash_iterator) -> :: core :: ffi :: c_int ; } pub type rc_hash_message_callback = :: core :: option :: Option < unsafe extern "C" fn (arg1 : * const :: core :: ffi :: c_char) > ; extern "C" { pub fn rc_hash_init_error_message_callback (callback : rc_hash_message_callback) ; } extern "C" { pub fn rc_hash_init_verbose_message_callback (callback : rc_hash_message_callback) ; } pub type rc_hash_filereader_open_file_handler = :: core :: option :: Option < unsafe extern "C" fn (path_utf8 : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_void > ; pub type rc_hash_filereader_seek_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void , offset : i64 , origin : :: core :: ffi :: c_int) > ; pub type rc_hash_filereader_tell_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void) -> i64 > ; pub type rc_hash_filereader_read_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void , buffer : * mut :: core :: ffi :: c_void , requested_bytes : usize) -> usize > ; pub type rc_hash_filereader_close_file_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void) > ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_filereader { pub open : rc_hash_filereader_open_file_handler , pub seek : rc_hash_filereader_seek_handler , pub tell : rc_hash_filereader_tell_handler , pub read : rc_hash_filereader_read_handler , pub close : rc_hash_filereader_close_file_handler , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_filereader"] [:: core :: mem :: size_of :: < rc_hash_filereader > () - 40usize] ; ["Alignment of rc_hash_filereader"] [:: core :: mem :: align_of :: < rc_hash_filereader > () - 8usize] ; ["Offset of field: rc_hash_filereader::open"] [:: core :: mem :: offset_of ! (rc_hash_filereader , open) - 0usize] ; ["Offset of field: rc_hash_filereader::seek"] [:: core :: mem :: offset_of ! (rc_hash_filereader , seek) - 8usize] ; ["Offset of field: rc_hash_filereader::tell"] [:: core :: mem :: offset_of ! (rc_hash_filereader , tell) - 16usize] ; ["Offset of field: rc_hash_filereader::read"] [:: core :: mem :: offset_of ! (rc_hash_filereader , read) - 24usize] ; ["Offset of field: rc_hash_filereader::close"] [:: core :: mem :: offset_of ! (rc_hash_filereader , close) - 32usize] ; } ; extern "C" { pub fn rc_hash_init_custom_filereader (reader : * mut rc_hash_filereader) ; } pub type rc_hash_cdreader_open_track_handler = :: core :: option :: Option < unsafe extern "C" fn (path : * const :: core :: ffi :: c_char , track : u32) -> * mut :: core :: ffi :: c_void > ; pub type rc_hash_cdreader_read_sector_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void , sector : u32 , buffer : * mut :: core :: ffi :: c_void , requested_bytes : usize) -> usize > ; pub type rc_hash_cdreader_close_track_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void) > ; pub type rc_hash_cdreader_first_track_sector_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void) -> u32 > ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_cdreader { pub open_track : rc_hash_cdreader_open_track_handler , pub read_sector : rc_hash_cdreader_read_sector_handler , pub close_track : rc_hash_cdreader_close_track_handler , pub first_track_sector : rc_hash_cdreader_first_track_sector_handler , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_cdreader"] [:: core :: mem :: size_of :: < rc_hash_cdreader > () - 32usize] ; ["Alignment of rc_hash_cdreader"] [:: core :: mem :: align_of :: < rc_hash_cdreader > () - 8usize] ; ["Offset of field: rc_hash_cdreader::open_track"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , open_track) - 0usize] ; ["Offset of field: rc_hash_cdreader::read_sector"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , read_sector) - 8usize] ; ["Offset of field: rc_hash_cdreader::close_track"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , close_track) - 16usize] ; ["Offset of field: rc_hash_cdreader::first_track_sector"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , first_track_sector) - 24usize] ; } ; extern "C" { pub fn rc_hash_get_default_cdreader (cdreader : * mut rc_hash_cdreader) ; } extern "C" { pub fn rc_hash_init_default_cdreader () ; } extern "C" { pub fn rc_hash_init_custom_cdreader (reader : * mut rc_hash_cdreader) ; } pub type rc_hash_3ds_get_cia_normal_key_func = :: core :: option :: Option < unsafe extern "C" fn (common_key_index : u8 , out_normal_key : * mut u8) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_hash_init_3ds_get_cia_normal_key_func (func : rc_hash_3ds_get_cia_normal_key_func) ; } pub type rc_hash_3ds_get_ncch_normal_keys_func = :: core :: option :: Option < unsafe extern "C" fn (primary_key_y : * mut u8 , secondary_key_x_slot : u8 , optional_program_id : * mut u8 , out_primary_key : * mut u8 , out_secondary_key : * mut u8) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_hash_init_3ds_get_ncch_normal_keys_func (func : rc_hash_3ds_get_ncch_normal_keys_func) ; } # [doc = " API parameters for a fetch image request.\n NOTE: fetch image server response is the raw image data. There is no rc_api_process_fetch_image_response function."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_image_request_t { pub image_name : * const :: core :: ffi :: c_char , pub image_type : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_image_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_image_request_t > () - 16usize] ; ["Alignment of rc_api_fetch_image_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_image_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_image_request_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_fetch_image_request_t , image_name) - 0usize] ; ["Offset of field: rc_api_fetch_image_request_t::image_type"] [:: core :: mem :: offset_of ! (rc_api_fetch_image_request_t , image_type) - 8usize] ; } ; extern "C" { pub fn rc_api_init_fetch_image_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_image_request_t) -> :: core :: ffi :: c_int ; } # [doc = " API parameters for a resolve hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_resolve_hash_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_hash : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_resolve_hash_request_t"] [:: core :: mem :: size_of :: < rc_api_resolve_hash_request_t > () - 24usize] ; ["Alignment of rc_api_resolve_hash_request_t"] [:: core :: mem :: align_of :: < rc_api_resolve_hash_request_t > () - 8usize] ; ["Offset of field: rc_api_resolve_hash_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , username) - 0usize] ; ["Offset of field: rc_api_resolve_hash_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_resolve_hash_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , game_hash) - 16usize] ; } ; # [doc = " Response data for a resolve hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_resolve_hash_response_t { pub game_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_resolve_hash_response_t"] [:: core :: mem :: size_of :: < rc_api_resolve_hash_response_t > () - 320usize] ; ["Alignment of rc_api_resolve_hash_response_t"] [:: core :: mem :: align_of :: < rc_api_resolve_hash_response_t > () - 8usize] ; ["Offset of field: rc_api_resolve_hash_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_response_t , game_id) - 0usize] ; ["Offset of field: rc_api_resolve_hash_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_resolve_hash_request (request : * mut rc_api_request_t , api_params : * const rc_api_resolve_hash_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_resolve_hash_response (response : * mut rc_api_resolve_hash_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_resolve_hash_server_response (response : * mut rc_api_resolve_hash_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_resolve_hash_response (response : * mut rc_api_resolve_hash_response_t) ; } # [doc = " API parameters for a fetch game data request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_data_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_data_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_data_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_game_data_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_data_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , game_id) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_leaderboard_definition_t { pub id : u32 , pub format : :: core :: ffi :: c_int , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub lower_is_better : u8 , pub hidden : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_leaderboard_definition_t"] [:: core :: mem :: size_of :: < rc_api_leaderboard_definition_t > () - 40usize] ; ["Alignment of rc_api_leaderboard_definition_t"] [:: core :: mem :: align_of :: < rc_api_leaderboard_definition_t > () - 8usize] ; ["Offset of field: rc_api_leaderboard_definition_t::id"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , id) - 0usize] ; ["Offset of field: rc_api_leaderboard_definition_t::format"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , format) - 4usize] ; ["Offset of field: rc_api_leaderboard_definition_t::title"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , title) - 8usize] ; ["Offset of field: rc_api_leaderboard_definition_t::description"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , description) - 16usize] ; ["Offset of field: rc_api_leaderboard_definition_t::definition"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , definition) - 24usize] ; ["Offset of field: rc_api_leaderboard_definition_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , lower_is_better) - 32usize] ; ["Offset of field: rc_api_leaderboard_definition_t::hidden"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , hidden) - 33usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_achievement_definition_t { pub id : u32 , pub points : u32 , pub category : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub author : * const :: core :: ffi :: c_char , pub badge_name : * const :: core :: ffi :: c_char , pub created : time_t , pub updated : time_t , pub type_ : u32 , pub rarity : f32 , pub rarity_hardcore : f32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_achievement_definition_t"] [:: core :: mem :: size_of :: < rc_api_achievement_definition_t > () - 88usize] ; ["Alignment of rc_api_achievement_definition_t"] [:: core :: mem :: align_of :: < rc_api_achievement_definition_t > () - 8usize] ; ["Offset of field: rc_api_achievement_definition_t::id"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , id) - 0usize] ; ["Offset of field: rc_api_achievement_definition_t::points"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , points) - 4usize] ; ["Offset of field: rc_api_achievement_definition_t::category"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , category) - 8usize] ; ["Offset of field: rc_api_achievement_definition_t::title"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , title) - 16usize] ; ["Offset of field: rc_api_achievement_definition_t::description"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , description) - 24usize] ; ["Offset of field: rc_api_achievement_definition_t::definition"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , definition) - 32usize] ; ["Offset of field: rc_api_achievement_definition_t::author"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , author) - 40usize] ; ["Offset of field: rc_api_achievement_definition_t::badge_name"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , badge_name) - 48usize] ; ["Offset of field: rc_api_achievement_definition_t::created"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , created) - 56usize] ; ["Offset of field: rc_api_achievement_definition_t::updated"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , updated) - 64usize] ; ["Offset of field: rc_api_achievement_definition_t::type_"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , type_) - 72usize] ; ["Offset of field: rc_api_achievement_definition_t::rarity"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , rarity) - 76usize] ; ["Offset of field: rc_api_achievement_definition_t::rarity_hardcore"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , rarity_hardcore) - 80usize] ; } ; # [doc = " Response data for a fetch game data request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_data_response_t { pub id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub image_name : * const :: core :: ffi :: c_char , pub rich_presence_script : * const :: core :: ffi :: c_char , pub achievements : * mut rc_api_achievement_definition_t , pub num_achievements : u32 , pub leaderboards : * mut rc_api_leaderboard_definition_t , pub num_leaderboards : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_data_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_data_response_t > () - 376usize] ; ["Alignment of rc_api_fetch_game_data_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_data_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , console_id) - 4usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::title"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , title) - 8usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , image_name) - 16usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::rich_presence_script"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , rich_presence_script) - 24usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::achievements"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , achievements) - 32usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , num_achievements) - 40usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::leaderboards"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , leaderboards) - 48usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , num_leaderboards) - 56usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , response) - 64usize] ; } ; extern "C" { pub fn rc_api_init_fetch_game_data_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_game_data_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_data_response (response : * mut rc_api_fetch_game_data_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_data_server_response (response : * mut rc_api_fetch_game_data_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_game_data_response (response : * mut rc_api_fetch_game_data_response_t) ; } # [doc = " API parameters for a ping request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_ping_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub rich_presence : * const :: core :: ffi :: c_char , pub game_hash : * const :: core :: ffi :: c_char , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_ping_request_t"] [:: core :: mem :: size_of :: < rc_api_ping_request_t > () - 48usize] ; ["Alignment of rc_api_ping_request_t"] [:: core :: mem :: align_of :: < rc_api_ping_request_t > () - 8usize] ; ["Offset of field: rc_api_ping_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , username) - 0usize] ; ["Offset of field: rc_api_ping_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_ping_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_ping_request_t::rich_presence"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , rich_presence) - 24usize] ; ["Offset of field: rc_api_ping_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , game_hash) - 32usize] ; ["Offset of field: rc_api_ping_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , hardcore) - 40usize] ; } ; # [doc = " Response data for a ping request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_ping_response_t { pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_ping_response_t"] [:: core :: mem :: size_of :: < rc_api_ping_response_t > () - 312usize] ; ["Alignment of rc_api_ping_response_t"] [:: core :: mem :: align_of :: < rc_api_ping_response_t > () - 8usize] ; ["Offset of field: rc_api_ping_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_ping_response_t , response) - 0usize] ; } ; extern "C" { pub fn rc_api_init_ping_request (request : * mut rc_api_request_t , api_params : * const rc_api_ping_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_ping_response (response : * mut rc_api_ping_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_ping_server_response (response : * mut rc_api_ping_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_ping_response (response : * mut rc_api_ping_response_t) ; } # [doc = " API parameters for an award achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_award_achievement_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub hardcore : u32 , pub game_hash : * const :: core :: ffi :: c_char , pub seconds_since_unlock : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_award_achievement_request_t"] [:: core :: mem :: size_of :: < rc_api_award_achievement_request_t > () - 40usize] ; ["Alignment of rc_api_award_achievement_request_t"] [:: core :: mem :: align_of :: < rc_api_award_achievement_request_t > () - 8usize] ; ["Offset of field: rc_api_award_achievement_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , username) - 0usize] ; ["Offset of field: rc_api_award_achievement_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_award_achievement_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_award_achievement_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , hardcore) - 20usize] ; ["Offset of field: rc_api_award_achievement_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_award_achievement_request_t::seconds_since_unlock"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , seconds_since_unlock) - 32usize] ; } ; # [doc = " Response data for an award achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_award_achievement_response_t { pub awarded_achievement_id : u32 , pub new_player_score : u32 , pub new_player_score_softcore : u32 , pub achievements_remaining : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_award_achievement_response_t"] [:: core :: mem :: size_of :: < rc_api_award_achievement_response_t > () - 328usize] ; ["Alignment of rc_api_award_achievement_response_t"] [:: core :: mem :: align_of :: < rc_api_award_achievement_response_t > () - 8usize] ; ["Offset of field: rc_api_award_achievement_response_t::awarded_achievement_id"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , awarded_achievement_id) - 0usize] ; ["Offset of field: rc_api_award_achievement_response_t::new_player_score"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , new_player_score) - 4usize] ; ["Offset of field: rc_api_award_achievement_response_t::new_player_score_softcore"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , new_player_score_softcore) - 8usize] ; ["Offset of field: rc_api_award_achievement_response_t::achievements_remaining"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , achievements_remaining) - 12usize] ; ["Offset of field: rc_api_award_achievement_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_award_achievement_request (request : * mut rc_api_request_t , api_params : * const rc_api_award_achievement_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_award_achievement_response (response : * mut rc_api_award_achievement_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_award_achievement_server_response (response : * mut rc_api_award_achievement_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_award_achievement_response (response : * mut rc_api_award_achievement_response_t) ; } # [doc = " API parameters for a submit lboard entry request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_submit_lboard_entry_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub leaderboard_id : u32 , pub score : i32 , pub game_hash : * const :: core :: ffi :: c_char , pub seconds_since_completion : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_submit_lboard_entry_request_t"] [:: core :: mem :: size_of :: < rc_api_submit_lboard_entry_request_t > () - 40usize] ; ["Alignment of rc_api_submit_lboard_entry_request_t"] [:: core :: mem :: align_of :: < rc_api_submit_lboard_entry_request_t > () - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , username) - 0usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , leaderboard_id) - 16usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , score) - 20usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::seconds_since_completion"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , seconds_since_completion) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_lboard_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub score : i32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_lboard_entry_t"] [:: core :: mem :: size_of :: < rc_api_lboard_entry_t > () - 16usize] ; ["Alignment of rc_api_lboard_entry_t"] [:: core :: mem :: align_of :: < rc_api_lboard_entry_t > () - 8usize] ; ["Offset of field: rc_api_lboard_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , username) - 0usize] ; ["Offset of field: rc_api_lboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , rank) - 8usize] ; ["Offset of field: rc_api_lboard_entry_t::score"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , score) - 12usize] ; } ; # [doc = " Response data for a submit lboard entry request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_submit_lboard_entry_response_t { pub submitted_score : i32 , pub best_score : i32 , pub new_rank : u32 , pub num_entries : u32 , pub top_entries : * mut rc_api_lboard_entry_t , pub num_top_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_submit_lboard_entry_response_t"] [:: core :: mem :: size_of :: < rc_api_submit_lboard_entry_response_t > () - 344usize] ; ["Alignment of rc_api_submit_lboard_entry_response_t"] [:: core :: mem :: align_of :: < rc_api_submit_lboard_entry_response_t > () - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::submitted_score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , submitted_score) - 0usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::best_score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , best_score) - 4usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::new_rank"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , new_rank) - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , num_entries) - 12usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::top_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , top_entries) - 16usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::num_top_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , num_top_entries) - 24usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_submit_lboard_entry_request (request : * mut rc_api_request_t , api_params : * const rc_api_submit_lboard_entry_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_submit_lboard_entry_response (response : * mut rc_api_submit_lboard_entry_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_submit_lboard_entry_server_response (response : * mut rc_api_submit_lboard_entry_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_submit_lboard_entry_response (response : * mut rc_api_submit_lboard_entry_response_t) ; } # [doc = " Callback used to read num_bytes bytes from memory starting at address. If\n num_bytes is greater than 1, the value is read in little-endian from\n memory."] pub type rc_runtime_peek_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , num_bytes : u32 , ud : * mut :: core :: ffi :: c_void) -> u32 > ; # [doc = "\\\n| Runtime                                                                     |\n\\"] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_trigger_t { pub id : u32 , pub trigger : * mut rc_trigger_t , pub buffer : * mut :: core :: ffi :: c_void , pub invalid_memref : * mut rc_memref_t , pub md5 : [u8 ; 16usize] , pub serialized_size : i32 , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_trigger_t"] [:: core :: mem :: size_of :: < rc_runtime_trigger_t > () - 56usize] ; ["Alignment of rc_runtime_trigger_t"] [:: core :: mem :: align_of :: < rc_runtime_trigger_t > () - 8usize] ; ["Offset of field: rc_runtime_trigger_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , id) - 0usize] ; ["Offset of field: rc_runtime_trigger_t::trigger"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , trigger) - 8usize] ; ["Offset of field: rc_runtime_trigger_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , buffer) - 16usize] ; ["Offset of field: rc_runtime_trigger_t::invalid_memref"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , invalid_memref) - 24usize] ; ["Offset of field: rc_runtime_trigger_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , md5) - 32usize] ; ["Offset of field: rc_runtime_trigger_t::serialized_size"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , serialized_size) - 48usize] ; ["Offset of field: rc_runtime_trigger_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , owns_memrefs) - 52usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_lboard_t { pub id : u32 , pub value : i32 , pub lboard : * mut rc_lboard_t , pub buffer : * mut :: core :: ffi :: c_void , pub invalid_memref : * mut rc_memref_t , pub md5 : [u8 ; 16usize] , pub serialized_size : u32 , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_lboard_t"] [:: core :: mem :: size_of :: < rc_runtime_lboard_t > () - 56usize] ; ["Alignment of rc_runtime_lboard_t"] [:: core :: mem :: align_of :: < rc_runtime_lboard_t > () - 8usize] ; ["Offset of field: rc_runtime_lboard_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , id) - 0usize] ; ["Offset of field: rc_runtime_lboard_t::value"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , value) - 4usize] ; ["Offset of field: rc_runtime_lboard_t::lboard"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , lboard) - 8usize] ; ["Offset of field: rc_runtime_lboard_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , buffer) - 16usize] ; ["Offset of field: rc_runtime_lboard_t::invalid_memref"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , invalid_memref) - 24usize] ; ["Offset of field: rc_runtime_lboard_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , md5) - 32usize] ; ["Offset of field: rc_runtime_lboard_t::serialized_size"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , serialized_size) - 48usize] ; ["Offset of field: rc_runtime_lboard_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , owns_memrefs) - 52usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_richpresence_t { pub richpresence : * mut rc_richpresence_t , pub buffer : * mut :: core :: ffi :: c_void , pub previous : * mut rc_runtime_richpresence_t , pub md5 : [u8 ; 16usize] , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_richpresence_t"] [:: core :: mem :: size_of :: < rc_runtime_richpresence_t > () - 48usize] ; ["Alignment of rc_runtime_richpresence_t"] [:: core :: mem :: align_of :: < rc_runtime_richpresence_t > () - 8usize] ; ["Offset of field: rc_runtime_richpresence_t::richpresence"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , richpresence) - 0usize] ; ["Offset of field: rc_runtime_richpresence_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , buffer) - 8usize] ; ["Offset of field: rc_runtime_richpresence_t::previous"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , previous) - 16usize] ; ["Offset of field: rc_runtime_richpresence_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , md5) - 24usize] ; ["Offset of field: rc_runtime_richpresence_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , owns_memrefs) - 40usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_t { pub triggers : * mut rc_runtime_trigger_t , pub trigger_count : u32 , pub trigger_capacity : u32 , pub lboards : * mut rc_runtime_lboard_t , pub lboard_count : u32 , pub lboard_capacity : u32 , pub richpresence : * mut rc_runtime_richpresence_t , pub memrefs : * mut rc_memref_t , pub next_memref : * mut * mut rc_memref_t , pub variables : * mut rc_value_t , pub next_variable : * mut * mut rc_value_t , pub owns_self : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_t"] [:: core :: mem :: size_of :: < rc_runtime_t > () - 80usize] ; ["Alignment of rc_runtime_t"] [:: core :: mem :: align_of :: < rc_runtime_t > () - 8usize] ; ["Offset of field: rc_runtime_t::triggers"] [:: core :: mem :: offset_of ! (rc_runtime_t , triggers) - 0usize] ; ["Offset of field: rc_runtime_t::trigger_count"] [:: core :: mem :: offset_of ! (rc_runtime_t , trigger_count) - 8usize] ; ["Offset of field: rc_runtime_t::trigger_capacity"] [:: core :: mem :: offset_of ! (rc_runtime_t , trigger_capacity) - 12usize] ; ["Offset of field: rc_runtime_t::lboards"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboards) - 16usize] ; ["Offset of field: rc_runtime_t::lboard_count"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboard_count) - 24usize] ; ["Offset of field: rc_runtime_t::lboard_capacity"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboard_capacity) - 28usize] ; ["Offset of field: rc_runtime_t::richpresence"] [:: core :: mem :: offset_of ! (rc_runtime_t , richpresence) - 32usize] ; ["Offset of field: rc_runtime_t::memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_t , memrefs) - 40usize] ; ["Offset of field: rc_runtime_t::next_memref"] [:: core :: mem :: offset_of ! (rc_runtime_t , next_memref) - 48usize] ; ["Offset of field: rc_runtime_t::variables"] [:: core :: mem :: offset_of ! (rc_runtime_t , variables) - 56usize] ; ["Offset of field: rc_runtime_t::next_variable"] [:: core :: mem :: offset_of ! (rc_runtime_t , next_variable) - 64usize] ; ["Offset of field: rc_runtime_t::owns_self"] [:: core :: mem :: offset_of ! (rc_runtime_t , owns_self) - 72usize] ; } ; extern "C" { pub fn rc_runtime_alloc () -> * mut rc_runtime_t ; } extern "C" { pub fn rc_runtime_init (runtime : * mut rc_runtime_t) ; } extern "C" { pub fn rc_runtime_destroy (runtime : * mut rc_runtime_t) ; } extern "C" { pub fn rc_runtime_activate_achievement (runtime : * mut rc_runtime_t , id : u32 , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deactivate_achievement (runtime : * mut rc_runtime_t , id : u32) ; } extern "C" { pub fn rc_runtime_get_achievement (runtime : * const rc_runtime_t , id : u32) -> * mut rc_trigger_t ; } extern "C" { pub fn rc_runtime_get_achievement_measured (runtime : * const rc_runtime_t , id : u32 , measured_value : * mut :: core :: ffi :: c_uint , measured_target : * mut :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_format_achievement_measured (runtime : * const rc_runtime_t , id : u32 , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_activate_lboard (runtime : * mut rc_runtime_t , id : u32 , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deactivate_lboard (runtime : * mut rc_runtime_t , id : u32) ; } extern "C" { pub fn rc_runtime_get_lboard (runtime : * const rc_runtime_t , id : u32) -> * mut rc_lboard_t ; } extern "C" { pub fn rc_runtime_format_lboard_value (buffer : * mut :: core :: ffi :: c_char , size : :: core :: ffi :: c_int , value : i32 , format : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_activate_richpresence (runtime : * mut rc_runtime_t , script : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_get_richpresence (runtime : * const rc_runtime_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_runtime_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } pub const RC_RUNTIME_EVENT_ACHIEVEMENT_ACTIVATED : _bindgen_ty_14 = 0 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PAUSED : _bindgen_ty_14 = 1 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_RESET : _bindgen_ty_14 = 2 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_TRIGGERED : _bindgen_ty_14 = 3 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PRIMED : _bindgen_ty_14 = 4 ; pub const RC_RUNTIME_EVENT_LBOARD_STARTED : _bindgen_ty_14 = 5 ; pub const RC_RUNTIME_EVENT_LBOARD_CANCELED : _bindgen_ty_14 = 6 ; pub const RC_RUNTIME_EVENT_LBOARD_UPDATED : _bindgen_ty_14 = 7 ; pub const RC_RUNTIME_EVENT_LBOARD_TRIGGERED : _bindgen_ty_14 = 8 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_DISABLED : _bindgen_ty_14 = 9 ; pub const RC_RUNTIME_EVENT_LBOARD_DISABLED : _bindgen_ty_14 = 10 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_UNPRIMED : _bindgen_ty_14 = 11 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PROGRESS_UPDATED : _bindgen_ty_14 = 12 ; pub type _bindgen_ty_14 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_event_t { pub id : u32 , pub value : i32 , pub type_ : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_event_t"] [:: core :: mem :: size_of :: < rc_runtime_event_t > () - 12usize] ; ["Alignment of rc_runtime_event_t"] [:: core :: mem :: align_of :: < rc_runtime_event_t > () - 4usize] ; ["Offset of field: rc_runtime_event_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , id) - 0usize] ; ["Offset of field: rc_runtime_event_t::value"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , value) - 4usize] ; ["Offset of field: rc_runtime_event_t::type_"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , type_) - 8usize] ; } ; pub type rc_runtime_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (runtime_event : * const rc_runtime_event_t) > ; extern "C" { pub fn rc_runtime_do_frame (runtime : * mut rc_runtime_t , event_handler : rc_runtime_event_handler_t , peek : rc_runtime_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) ; } extern "C" { pub fn rc_runtime_reset (runtime : * mut rc_runtime_t) ; } pub type rc_runtime_validate_address_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_runtime_validate_addresses (runtime : * mut rc_runtime_t , event_handler : rc_runtime_event_handler_t , validate_handler : rc_runtime_validate_address_t) ; } extern "C" { pub fn rc_runtime_invalidate_address (runtime : * mut rc_runtime_t , address : u32) ; } extern "C" { pub fn rc_runtime_progress_size (runtime : * const rc_runtime_t , L : * mut lua_State) -> u32 ; } extern "C" { pub fn rc_runtime_serialize_progress (buffer : * mut :: core :: ffi :: c_void , runtime : * const rc_runtime_t , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_serialize_progress_sized (buffer : * mut u8 , buffer_size : u32 , runtime : * const rc_runtime_t , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deserialize_progress (runtime : * mut rc_runtime_t , serialized : * const u8 , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deserialize_progress_sized (runtime : * mut rc_runtime_t , serialized : * const u8 , serialized_size : u32 , L : * mut lua_State) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_async_handle_t { _unused : [u8 ; 0] , } # [doc = " Callback used to read num_bytes bytes from memory starting at address into buffer.\n Returns the number of bytes read. A return value of 0 indicates the address was invalid."] pub type rc_client_read_memory_func_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , buffer : * mut u8 , num_bytes : u32 , client : * mut rc_client_t) -> u32 > ; # [doc = " Internal method passed to rc_client_server_call_t to process the server response."] pub type rc_client_server_callback_t = :: core :: option :: Option < unsafe extern "C" fn (server_response : * const rc_api_server_response_t , callback_data : * mut :: core :: ffi :: c_void) > ; # [doc = " Callback used to issue a request to the server."] pub type rc_client_server_call_t = :: core :: option :: Option < unsafe extern "C" fn (request : * const rc_api_request_t , callback : rc_client_server_callback_t , callback_data : * mut :: core :: ffi :: c_void , client : * mut rc_client_t) > ; # [doc = " Generic callback for asynchronous eventing."] pub type rc_client_callback_t = :: core :: option :: Option < unsafe extern "C" fn (result : :: core :: ffi :: c_int , error_message : * const :: core :: ffi :: c_char , client : * mut rc_client_t , userdata : * mut :: core :: ffi :: c_void) > ; # [doc = " Callback for logging or displaying a message."] pub type rc_client_message_callback_t = :: core :: option :: Option < unsafe extern "C" fn (message : * const :: core :: ffi :: c_char , client : * const rc_client_t) > ; extern "C" { # [doc = " Creates a new rc_client_t object."] pub fn rc_client_create (read_memory_function : rc_client_read_memory_func_t , server_call_function : rc_client_server_call_t) -> * mut rc_client_t ; } extern "C" { # [doc = " Releases resources associated to a rc_client_t object.\n Pointer will no longer be valid after making this call."] pub fn rc_client_destroy (client : * mut rc_client_t) ; } extern "C" { # [doc = " Sets whether hardcore is enabled (on by default).\n Can be called with a game loaded.\n Enabling hardcore with a game loaded will raise an RC_CLIENT_EVENT_RESET\n event. Processing will be disabled until rc_client_reset is called."] pub fn rc_client_set_hardcore_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether hardcore is enabled (on by default)."] pub fn rc_client_get_hardcore_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether encore mode is enabled (off by default).\n Evaluated when loading a game. Has no effect while a game is loaded."] pub fn rc_client_set_encore_mode_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether encore mode is enabled (off by default)."] pub fn rc_client_get_encore_mode_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether unofficial achievements should be loaded.\n Evaluated when loading a game. Has no effect while a game is loaded."] pub fn rc_client_set_unofficial_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether unofficial achievements should be loaded."] pub fn rc_client_get_unofficial_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether spectator mode is enabled (off by default).\n If enabled, events for achievement unlocks and leaderboard submissions will be\n raised, but server calls to actually perform the unlock/submit will not occur.\n Can be modified while a game is loaded. Evaluated at unlock/submit time.\n Cannot be modified if disabled before a game is loaded."] pub fn rc_client_set_spectator_mode_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether spectator mode is enabled (off by default)."] pub fn rc_client_get_spectator_mode_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Attaches client-specific data to the runtime."] pub fn rc_client_set_userdata (client : * mut rc_client_t , userdata : * mut :: core :: ffi :: c_void) ; } extern "C" { # [doc = " Gets the client-specific data attached to the runtime."] pub fn rc_client_get_userdata (client : * const rc_client_t) -> * mut :: core :: ffi :: c_void ; } extern "C" { # [doc = " Sets the name of the server to use."] pub fn rc_client_set_host (client : * const rc_client_t , hostname : * const :: core :: ffi :: c_char) ; } pub type rc_clock_t = u64 ; pub type rc_get_time_millisecs_func_t = :: core :: option :: Option < unsafe extern "C" fn (client : * const rc_client_t) -> rc_clock_t > ; extern "C" { # [doc = " Specifies a function that returns a value that increases once per millisecond."] pub fn rc_client_set_get_time_millisecs_function (client : * mut rc_client_t , handler : rc_get_time_millisecs_func_t) ; } extern "C" { # [doc = " Marks an async process as aborted. The associated callback will not be called."] pub fn rc_client_abort_async (client : * mut rc_client_t , async_handle : * mut rc_client_async_handle_t) ; } extern "C" { # [doc = " Gets a clause that can be added to the User-Agent to identify the version of rcheevos being used."] pub fn rc_client_get_user_agent_clause (client : * mut rc_client_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> usize ; } extern "C" { # [doc = " Sets the logging level and provides a callback to be called to do the logging."] pub fn rc_client_enable_logging (client : * mut rc_client_t , level : :: core :: ffi :: c_int , callback : rc_client_message_callback_t) ; } pub const RC_CLIENT_LOG_LEVEL_NONE : _bindgen_ty_15 = 0 ; pub const RC_CLIENT_LOG_LEVEL_ERROR : _bindgen_ty_15 = 1 ; pub const RC_CLIENT_LOG_LEVEL_WARN : _bindgen_ty_15 = 2 ; pub const RC_CLIENT_LOG_LEVEL_INFO : _bindgen_ty_15 = 3 ; pub const RC_CLIENT_LOG_LEVEL_VERBOSE : _bindgen_ty_15 = 4 ; pub const NUM_RC_CLIENT_LOG_LEVELS : _bindgen_ty_15 = 5 ; pub type _bindgen_ty_15 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Attempt to login a user."] pub fn rc_client_begin_login_with_password (client : * mut rc_client_t , username : * const :: core :: ffi :: c_char , password : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Attempt to login a user."] pub fn rc_client_begin_login_with_token (client : * mut rc_client_t , username : * const :: core :: ffi :: c_char , token : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Logout the user."] pub fn rc_client_logout (client : * mut rc_client_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_user_t { pub display_name : * const :: core :: ffi :: c_char , pub username : * const :: core :: ffi :: c_char , pub token : * const :: core :: ffi :: c_char , pub score : u32 , pub score_softcore : u32 , pub num_unread_messages : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_user_t"] [:: core :: mem :: size_of :: < rc_client_user_t > () - 40usize] ; ["Alignment of rc_client_user_t"] [:: core :: mem :: align_of :: < rc_client_user_t > () - 8usize] ; ["Offset of field: rc_client_user_t::display_name"] [:: core :: mem :: offset_of ! (rc_client_user_t , display_name) - 0usize] ; ["Offset of field: rc_client_user_t::username"] [:: core :: mem :: offset_of ! (rc_client_user_t , username) - 8usize] ; ["Offset of field: rc_client_user_t::token"] [:: core :: mem :: offset_of ! (rc_client_user_t , token) - 16usize] ; ["Offset of field: rc_client_user_t::score"] [:: core :: mem :: offset_of ! (rc_client_user_t , score) - 24usize] ; ["Offset of field: rc_client_user_t::score_softcore"] [:: core :: mem :: offset_of ! (rc_client_user_t , score_softcore) - 28usize] ; ["Offset of field: rc_client_user_t::num_unread_messages"] [:: core :: mem :: offset_of ! (rc_client_user_t , num_unread_messages) - 32usize] ; } ; extern "C" { # [doc = " Gets information about the logged in user. Will return NULL if the user is not logged in."] pub fn rc_client_get_user_info (client : * const rc_client_t) -> * const rc_client_user_t ; } extern "C" { # [doc = " Gets the URL for the user's profile picture.\n Returns RC_OK on success."] pub fn rc_client_user_get_image_url (user : * const rc_client_user_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_user_game_summary_t { pub num_core_achievements : u32 , pub num_unofficial_achievements : u32 , pub num_unlocked_achievements : u32 , pub num_unsupported_achievements : u32 , pub points_core : u32 , pub points_unlocked : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_user_game_summary_t"] [:: core :: mem :: size_of :: < rc_client_user_game_summary_t > () - 24usize] ; ["Alignment of rc_client_user_game_summary_t"] [:: core :: mem :: align_of :: < rc_client_user_game_summary_t > () - 4usize] ; ["Offset of field: rc_client_user_game_summary_t::num_core_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_core_achievements) - 0usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unofficial_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unofficial_achievements) - 4usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unlocked_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unlocked_achievements) - 8usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unsupported_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unsupported_achievements) - 12usize] ; ["Offset of field: rc_client_user_game_summary_t::points_core"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , points_core) - 16usize] ; ["Offset of field: rc_client_user_game_summary_t::points_unlocked"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , points_unlocked) - 20usize] ; } ; extern "C" { # [doc = " Gets a breakdown of the number of achievements in the game, and how many the user has unlocked.\n Used for the \"You have unlocked X of Y achievements\" message shown when the game starts."] pub fn rc_client_get_user_game_summary (client : * const rc_client_t , summary : * mut rc_client_user_game_summary_t) ; } extern "C" { # [doc = " Start loading an unidentified game."] pub fn rc_client_begin_identify_and_load_game (client : * mut rc_client_t , console_id : u32 , file_path : * const :: core :: ffi :: c_char , data : * const u8 , data_size : usize , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Start loading a game."] pub fn rc_client_begin_load_game (client : * mut rc_client_t , hash : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Gets the current progress of the asynchronous load game process."] pub fn rc_client_get_load_game_state (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } pub const RC_CLIENT_LOAD_GAME_STATE_NONE : _bindgen_ty_16 = 0 ; pub const RC_CLIENT_LOAD_GAME_STATE_IDENTIFYING_GAME : _bindgen_ty_16 = 1 ; pub const RC_CLIENT_LOAD_GAME_STATE_AWAIT_LOGIN : _bindgen_ty_16 = 2 ; pub const RC_CLIENT_LOAD_GAME_STATE_FETCHING_GAME_DATA : _bindgen_ty_16 = 3 ; pub const RC_CLIENT_LOAD_GAME_STATE_STARTING_SESSION : _bindgen_ty_16 = 4 ; pub const RC_CLIENT_LOAD_GAME_STATE_DONE : _bindgen_ty_16 = 5 ; pub const RC_CLIENT_LOAD_GAME_STATE_ABORTED : _bindgen_ty_16 = 6 ; pub type _bindgen_ty_16 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Determines if a game was successfully identified and loaded."] pub fn rc_client_is_game_loaded (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Unloads the current game."] pub fn rc_client_unload_game (client : * mut rc_client_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_game_t { pub id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub hash : * const :: core :: ffi :: c_char , pub badge_name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_game_t"] [:: core :: mem :: size_of :: < rc_client_game_t > () - 32usize] ; ["Alignment of rc_client_game_t"] [:: core :: mem :: align_of :: < rc_client_game_t > () - 8usize] ; ["Offset of field: rc_client_game_t::id"] [:: core :: mem :: offset_of ! (rc_client_game_t , id) - 0usize] ; ["Offset of field: rc_client_game_t::console_id"] [:: core :: mem :: offset_of ! (rc_client_game_t , console_id) - 4usize] ; ["Offset of field: rc_client_game_t::title"] [:: core :: mem :: offset_of ! (rc_client_game_t , title) - 8usize] ; ["Offset of field: rc_client_game_t::hash"] [:: core :: mem :: offset_of ! (rc_client_game_t , hash) - 16usize] ; ["Offset of field: rc_client_game_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_game_t , badge_name) - 24usize] ; } ; extern "C" { # [doc = " Get information about the current game. Returns NULL if no game is loaded.\n NOTE: returns a dummy game record if an unidentified game is loaded."] pub fn rc_client_get_game_info (client : * const rc_client_t) -> * const rc_client_game_t ; } extern "C" { # [doc = " Gets the URL for the game image.\n Returns RC_OK on success."] pub fn rc_client_game_get_image_url (game : * const rc_client_game_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Changes the active disc in a multi-disc game."] pub fn rc_client_begin_change_media (client : * mut rc_client_t , file_path : * const :: core :: ffi :: c_char , data : * const u8 , data_size : usize , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Changes the active disc in a multi-disc game."] pub fn rc_client_begin_change_media_from_hash (client : * mut rc_client_t , hash : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } # [doc = "\\\n| Subsets                                                                     |\n\\"] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_subset_t { pub id : u32 , pub title : * const :: core :: ffi :: c_char , pub badge_name : [:: core :: ffi :: c_char ; 16usize] , pub num_achievements : u32 , pub num_leaderboards : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_subset_t"] [:: core :: mem :: size_of :: < rc_client_subset_t > () - 40usize] ; ["Alignment of rc_client_subset_t"] [:: core :: mem :: align_of :: < rc_client_subset_t > () - 8usize] ; ["Offset of field: rc_client_subset_t::id"] [:: core :: mem :: offset_of ! (rc_client_subset_t , id) - 0usize] ; ["Offset of field: rc_client_subset_t::title"] [:: core :: mem :: offset_of ! (rc_client_subset_t , title) - 8usize] ; ["Offset of field: rc_client_subset_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_subset_t , badge_name) - 16usize] ; ["Offset of field: rc_client_subset_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_client_subset_t , num_achievements) - 32usize] ; ["Offset of field: rc_client_subset_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_client_subset_t , num_leaderboards) - 36usize] ; } ; extern "C" { pub fn rc_client_get_subset_info (client : * mut rc_client_t , subset_id : u32) -> * const rc_client_subset_t ; } pub const RC_CLIENT_ACHIEVEMENT_STATE_INACTIVE : _bindgen_ty_17 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_ACTIVE : _bindgen_ty_17 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_UNLOCKED : _bindgen_ty_17 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_DISABLED : _bindgen_ty_17 = 3 ; pub const NUM_RC_CLIENT_ACHIEVEMENT_STATES : _bindgen_ty_17 = 4 ; # [doc = "\\\n| Achievements                                                                |\n\\"] pub type _bindgen_ty_17 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_NONE : _bindgen_ty_18 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_CORE : _bindgen_ty_18 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_UNOFFICIAL : _bindgen_ty_18 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_CORE_AND_UNOFFICIAL : _bindgen_ty_18 = 3 ; pub type _bindgen_ty_18 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_STANDARD : _bindgen_ty_19 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_MISSABLE : _bindgen_ty_19 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_PROGRESSION : _bindgen_ty_19 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_WIN : _bindgen_ty_19 = 3 ; pub type _bindgen_ty_19 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNKNOWN : _bindgen_ty_20 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_LOCKED : _bindgen_ty_20 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNLOCKED : _bindgen_ty_20 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNSUPPORTED : _bindgen_ty_20 = 3 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNOFFICIAL : _bindgen_ty_20 = 4 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_RECENTLY_UNLOCKED : _bindgen_ty_20 = 5 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_ACTIVE_CHALLENGE : _bindgen_ty_20 = 6 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_ALMOST_THERE : _bindgen_ty_20 = 7 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNSYNCED : _bindgen_ty_20 = 8 ; pub const NUM_RC_CLIENT_ACHIEVEMENT_BUCKETS : _bindgen_ty_20 = 9 ; pub type _bindgen_ty_20 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_NONE : _bindgen_ty_21 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_SOFTCORE : _bindgen_ty_21 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_HARDCORE : _bindgen_ty_21 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_BOTH : _bindgen_ty_21 = 3 ; pub type _bindgen_ty_21 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_t { pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub badge_name : [:: core :: ffi :: c_char ; 8usize] , pub measured_progress : [:: core :: ffi :: c_char ; 24usize] , pub measured_percent : f32 , pub id : u32 , pub points : u32 , pub unlock_time : time_t , pub state : u8 , pub category : u8 , pub bucket : u8 , pub unlocked : u8 , pub rarity : f32 , pub rarity_hardcore : f32 , pub type_ : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_t"] [:: core :: mem :: size_of :: < rc_client_achievement_t > () - 88usize] ; ["Alignment of rc_client_achievement_t"] [:: core :: mem :: align_of :: < rc_client_achievement_t > () - 8usize] ; ["Offset of field: rc_client_achievement_t::title"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , title) - 0usize] ; ["Offset of field: rc_client_achievement_t::description"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , description) - 8usize] ; ["Offset of field: rc_client_achievement_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , badge_name) - 16usize] ; ["Offset of field: rc_client_achievement_t::measured_progress"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , measured_progress) - 24usize] ; ["Offset of field: rc_client_achievement_t::measured_percent"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , measured_percent) - 48usize] ; ["Offset of field: rc_client_achievement_t::id"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , id) - 52usize] ; ["Offset of field: rc_client_achievement_t::points"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , points) - 56usize] ; ["Offset of field: rc_client_achievement_t::unlock_time"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , unlock_time) - 64usize] ; ["Offset of field: rc_client_achievement_t::state"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , state) - 72usize] ; ["Offset of field: rc_client_achievement_t::category"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , category) - 73usize] ; ["Offset of field: rc_client_achievement_t::bucket"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , bucket) - 74usize] ; ["Offset of field: rc_client_achievement_t::unlocked"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , unlocked) - 75usize] ; ["Offset of field: rc_client_achievement_t::rarity"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , rarity) - 76usize] ; ["Offset of field: rc_client_achievement_t::rarity_hardcore"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , rarity_hardcore) - 80usize] ; ["Offset of field: rc_client_achievement_t::type_"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , type_) - 84usize] ; } ; extern "C" { # [doc = " Get information about an achievement. Returns NULL if not found."] pub fn rc_client_get_achievement_info (client : * mut rc_client_t , id : u32) -> * const rc_client_achievement_t ; } extern "C" { # [doc = " Gets the URL for the achievement image.\n Returns RC_OK on success."] pub fn rc_client_achievement_get_image_url (achievement : * const rc_client_achievement_t , state : :: core :: ffi :: c_int , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_bucket_t { pub achievements : * mut * mut rc_client_achievement_t , pub num_achievements : u32 , pub label : * const :: core :: ffi :: c_char , pub subset_id : u32 , pub bucket_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_bucket_t"] [:: core :: mem :: size_of :: < rc_client_achievement_bucket_t > () - 32usize] ; ["Alignment of rc_client_achievement_bucket_t"] [:: core :: mem :: align_of :: < rc_client_achievement_bucket_t > () - 8usize] ; ["Offset of field: rc_client_achievement_bucket_t::achievements"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , achievements) - 0usize] ; ["Offset of field: rc_client_achievement_bucket_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , num_achievements) - 8usize] ; ["Offset of field: rc_client_achievement_bucket_t::label"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , label) - 16usize] ; ["Offset of field: rc_client_achievement_bucket_t::subset_id"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , subset_id) - 24usize] ; ["Offset of field: rc_client_achievement_bucket_t::bucket_type"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , bucket_type) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_list_t { pub buckets : * mut rc_client_achievement_bucket_t , pub num_buckets : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_list_t"] [:: core :: mem :: size_of :: < rc_client_achievement_list_t > () - 16usize] ; ["Alignment of rc_client_achievement_list_t"] [:: core :: mem :: align_of :: < rc_client_achievement_list_t > () - 8usize] ; ["Offset of field: rc_client_achievement_list_t::buckets"] [:: core :: mem :: offset_of ! (rc_client_achievement_list_t , buckets) - 0usize] ; ["Offset of field: rc_client_achievement_list_t::num_buckets"] [:: core :: mem :: offset_of ! (rc_client_achievement_list_t , num_buckets) - 8usize] ; } ; pub const RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_LOCK_STATE : _bindgen_ty_22 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_PROGRESS : _bindgen_ty_22 = 1 ; pub type _bindgen_ty_22 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Creates a list of achievements matching the specified category and grouping.\n Returns an allocated list that must be free'd by calling rc_client_destroy_achievement_list."] pub fn rc_client_create_achievement_list (client : * mut rc_client_t , category : :: core :: ffi :: c_int , grouping : :: core :: ffi :: c_int) -> * mut rc_client_achievement_list_t ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_get_achievement_list."] pub fn rc_client_destroy_achievement_list (list : * mut rc_client_achievement_list_t) ; } extern "C" { # [doc = " Returns non-zero if there are any achievements that can be queried through rc_client_create_achievement_list()."] pub fn rc_client_has_achievements (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } pub const RC_CLIENT_LEADERBOARD_STATE_INACTIVE : _bindgen_ty_23 = 0 ; pub const RC_CLIENT_LEADERBOARD_STATE_ACTIVE : _bindgen_ty_23 = 1 ; pub const RC_CLIENT_LEADERBOARD_STATE_TRACKING : _bindgen_ty_23 = 2 ; pub const RC_CLIENT_LEADERBOARD_STATE_DISABLED : _bindgen_ty_23 = 3 ; pub const NUM_RC_CLIENT_LEADERBOARD_STATES : _bindgen_ty_23 = 4 ; # [doc = "\\\n| Leaderboards                                                                |\n\\"] pub type _bindgen_ty_23 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_LEADERBOARD_FORMAT_TIME : _bindgen_ty_24 = 0 ; pub const RC_CLIENT_LEADERBOARD_FORMAT_SCORE : _bindgen_ty_24 = 1 ; pub const RC_CLIENT_LEADERBOARD_FORMAT_VALUE : _bindgen_ty_24 = 2 ; pub const NUM_RC_CLIENT_LEADERBOARD_FORMATS : _bindgen_ty_24 = 3 ; pub type _bindgen_ty_24 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_t { pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub tracker_value : * const :: core :: ffi :: c_char , pub id : u32 , pub state : u8 , pub format : u8 , pub lower_is_better : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_t > () - 32usize] ; ["Alignment of rc_client_leaderboard_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_t::title"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , title) - 0usize] ; ["Offset of field: rc_client_leaderboard_t::description"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , description) - 8usize] ; ["Offset of field: rc_client_leaderboard_t::tracker_value"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , tracker_value) - 16usize] ; ["Offset of field: rc_client_leaderboard_t::id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , id) - 24usize] ; ["Offset of field: rc_client_leaderboard_t::state"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , state) - 28usize] ; ["Offset of field: rc_client_leaderboard_t::format"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , format) - 29usize] ; ["Offset of field: rc_client_leaderboard_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , lower_is_better) - 30usize] ; } ; extern "C" { # [doc = " Get information about a leaderboard. Returns NULL if not found."] pub fn rc_client_get_leaderboard_info (client : * const rc_client_t , id : u32) -> * const rc_client_leaderboard_t ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_tracker_t { pub display : [:: core :: ffi :: c_char ; 24usize] , pub id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_tracker_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_tracker_t > () - 28usize] ; ["Alignment of rc_client_leaderboard_tracker_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_tracker_t > () - 4usize] ; ["Offset of field: rc_client_leaderboard_tracker_t::display"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_tracker_t , display) - 0usize] ; ["Offset of field: rc_client_leaderboard_tracker_t::id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_tracker_t , id) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_bucket_t { pub leaderboards : * mut * mut rc_client_leaderboard_t , pub num_leaderboards : u32 , pub label : * const :: core :: ffi :: c_char , pub subset_id : u32 , pub bucket_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_bucket_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_bucket_t > () - 32usize] ; ["Alignment of rc_client_leaderboard_bucket_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_bucket_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::leaderboards"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , leaderboards) - 0usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , num_leaderboards) - 8usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::label"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , label) - 16usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::subset_id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , subset_id) - 24usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::bucket_type"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , bucket_type) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_list_t { pub buckets : * mut rc_client_leaderboard_bucket_t , pub num_buckets : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_list_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_list_t > () - 16usize] ; ["Alignment of rc_client_leaderboard_list_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_list_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_list_t::buckets"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_list_t , buckets) - 0usize] ; ["Offset of field: rc_client_leaderboard_list_t::num_buckets"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_list_t , num_buckets) - 8usize] ; } ; pub const RC_CLIENT_LEADERBOARD_BUCKET_UNKNOWN : _bindgen_ty_25 = 0 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_INACTIVE : _bindgen_ty_25 = 1 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_ACTIVE : _bindgen_ty_25 = 2 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_UNSUPPORTED : _bindgen_ty_25 = 3 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_ALL : _bindgen_ty_25 = 4 ; pub const NUM_RC_CLIENT_LEADERBOARD_BUCKETS : _bindgen_ty_25 = 5 ; pub type _bindgen_ty_25 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_LEADERBOARD_LIST_GROUPING_NONE : _bindgen_ty_26 = 0 ; pub const RC_CLIENT_LEADERBOARD_LIST_GROUPING_TRACKING : _bindgen_ty_26 = 1 ; pub type _bindgen_ty_26 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Creates a list of leaderboards matching the specified grouping.\n Returns an allocated list that must be free'd by calling rc_client_destroy_leaderboard_list."] pub fn rc_client_create_leaderboard_list (client : * mut rc_client_t , grouping : :: core :: ffi :: c_int) -> * mut rc_client_leaderboard_list_t ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_get_leaderboard_list."] pub fn rc_client_destroy_leaderboard_list (list : * mut rc_client_leaderboard_list_t) ; } extern "C" { # [doc = " Returns non-zero if the current game has any leaderboards."] pub fn rc_client_has_leaderboards (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_entry_t { pub user : * const :: core :: ffi :: c_char , pub display : [:: core :: ffi :: c_char ; 24usize] , pub submitted : time_t , pub rank : u32 , pub index : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_entry_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_entry_t > () - 48usize] ; ["Alignment of rc_client_leaderboard_entry_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_entry_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_t::user"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , user) - 0usize] ; ["Offset of field: rc_client_leaderboard_entry_t::display"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , display) - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_t::submitted"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , submitted) - 32usize] ; ["Offset of field: rc_client_leaderboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , rank) - 40usize] ; ["Offset of field: rc_client_leaderboard_entry_t::index"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , index) - 44usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_entry_list_t { pub entries : * mut rc_client_leaderboard_entry_t , pub num_entries : u32 , pub total_entries : u32 , pub user_index : i32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_entry_list_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_entry_list_t > () - 24usize] ; ["Alignment of rc_client_leaderboard_entry_list_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_entry_list_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , entries) - 0usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::num_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , num_entries) - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::total_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , total_entries) - 12usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::user_index"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , user_index) - 16usize] ; } ; pub type rc_client_fetch_leaderboard_entries_callback_t = :: core :: option :: Option < unsafe extern "C" fn (result : :: core :: ffi :: c_int , error_message : * const :: core :: ffi :: c_char , list : * mut rc_client_leaderboard_entry_list_t , client : * mut rc_client_t , callback_userdata : * mut :: core :: ffi :: c_void) > ; extern "C" { # [doc = " Fetches a list of leaderboard entries from the server.\n Callback receives an allocated list that must be free'd by calling rc_client_destroy_leaderboard_entry_list."] pub fn rc_client_begin_fetch_leaderboard_entries (client : * mut rc_client_t , leaderboard_id : u32 , first_entry : u32 , count : u32 , callback : rc_client_fetch_leaderboard_entries_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Fetches a list of leaderboard entries from the server containing the logged-in user.\n Callback receives an allocated list that must be free'd by calling rc_client_destroy_leaderboard_entry_list."] pub fn rc_client_begin_fetch_leaderboard_entries_around_user (client : * mut rc_client_t , leaderboard_id : u32 , count : u32 , callback : rc_client_fetch_leaderboard_entries_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Gets the URL for the profile picture of the user associated to a leaderboard entry.\n Returns RC_OK on success."] pub fn rc_client_leaderboard_entry_get_user_image_url (entry : * const rc_client_leaderboard_entry_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_begin_fetch_leaderboard_entries or rc_client_begin_fetch_leaderboard_entries_around_user."] pub fn rc_client_destroy_leaderboard_entry_list (list : * mut rc_client_leaderboard_entry_list_t) ; } # [doc = " Used for scoreboard events. Contains the response from the server when a leaderboard entry is submitted.\n NOTE: This structure is only valid within the event callback. If you want to make use of the data outside\n of the callback, you should create copies of both the top entries and usernames within."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_scoreboard_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub score : [:: core :: ffi :: c_char ; 24usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_scoreboard_entry_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_scoreboard_entry_t > () - 40usize] ; ["Alignment of rc_client_leaderboard_scoreboard_entry_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_scoreboard_entry_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::username"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , username) - 0usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , rank) - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , score) - 12usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_scoreboard_t { pub leaderboard_id : u32 , pub submitted_score : [:: core :: ffi :: c_char ; 24usize] , pub best_score : [:: core :: ffi :: c_char ; 24usize] , pub new_rank : u32 , pub num_entries : u32 , pub top_entries : * mut rc_client_leaderboard_scoreboard_entry_t , pub num_top_entries : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_scoreboard_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_scoreboard_t > () - 80usize] ; ["Alignment of rc_client_leaderboard_scoreboard_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_scoreboard_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::submitted_score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , submitted_score) - 4usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::best_score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , best_score) - 28usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::new_rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , new_rank) - 52usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::num_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , num_entries) - 56usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::top_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , top_entries) - 64usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::num_top_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , num_top_entries) - 72usize] ; } ; extern "C" { # [doc = " Returns non-zero if the current game supports rich presence."] pub fn rc_client_has_rich_presence (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Gets the current rich presence message.\n Returns the number of characters written to buffer."] pub fn rc_client_get_rich_presence_message (client : * mut rc_client_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> usize ; } pub const RC_CLIENT_EVENT_TYPE_NONE : _bindgen_ty_27 = 0 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_TRIGGERED : _bindgen_ty_27 = 1 ; pub const RC_CLIENT_EVENT_LEADERBOARD_STARTED : _bindgen_ty_27 = 2 ; pub const RC_CLIENT_EVENT_LEADERBOARD_FAILED : _bindgen_ty_27 = 3 ; pub const RC_CLIENT_EVENT_LEADERBOARD_SUBMITTED : _bindgen_ty_27 = 4 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_CHALLENGE_INDICATOR_SHOW : _bindgen_ty_27 = 5 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_CHALLENGE_INDICATOR_HIDE : _bindgen_ty_27 = 6 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_SHOW : _bindgen_ty_27 = 7 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_HIDE : _bindgen_ty_27 = 8 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_UPDATE : _bindgen_ty_27 = 9 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_SHOW : _bindgen_ty_27 = 10 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_HIDE : _bindgen_ty_27 = 11 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_UPDATE : _bindgen_ty_27 = 12 ; pub const RC_CLIENT_EVENT_LEADERBOARD_SCOREBOARD : _bindgen_ty_27 = 13 ; pub const RC_CLIENT_EVENT_RESET : _bindgen_ty_27 = 14 ; pub const RC_CLIENT_EVENT_GAME_COMPLETED : _bindgen_ty_27 = 15 ; pub const RC_CLIENT_EVENT_SERVER_ERROR : _bindgen_ty_27 = 16 ; pub const RC_CLIENT_EVENT_DISCONNECTED : _bindgen_ty_27 = 17 ; pub const RC_CLIENT_EVENT_RECONNECTED : _bindgen_ty_27 = 18 ; # [doc = "\\\n| Processing                                                                  |\n\\"] pub type _bindgen_ty_27 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_server_error_t { pub error_message : * const :: core :: ffi :: c_char , pub api : * const :: core :: ffi :: c_char , pub result : :: core :: ffi :: c_int , pub related_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_server_error_t"] [:: core :: mem :: size_of :: < rc_client_server_error_t > () - 24usize] ; ["Alignment of rc_client_server_error_t"] [:: core :: mem :: align_of :: < rc_client_server_error_t > () - 8usize] ; ["Offset of field: rc_client_server_error_t::error_message"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , error_message) - 0usize] ; ["Offset of field: rc_client_server_error_t::api"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , api) - 8usize] ; ["Offset of field: rc_client_server_error_t::result"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , result) - 16usize] ; ["Offset of field: rc_client_server_error_t::related_id"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , related_id) - 20usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_event_t { pub type_ : u32 , pub achievement : * mut rc_client_achievement_t , pub leaderboard : * mut rc_client_leaderboard_t , pub leaderboard_tracker : * mut rc_client_leaderboard_tracker_t , pub leaderboard_scoreboard : * mut rc_client_leaderboard_scoreboard_t , pub server_error : * mut rc_client_server_error_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_event_t"] [:: core :: mem :: size_of :: < rc_client_event_t > () - 48usize] ; ["Alignment of rc_client_event_t"] [:: core :: mem :: align_of :: < rc_client_event_t > () - 8usize] ; ["Offset of field: rc_client_event_t::type_"] [:: core :: mem :: offset_of ! (rc_client_event_t , type_) - 0usize] ; ["Offset of field: rc_client_event_t::achievement"] [:: core :: mem :: offset_of ! (rc_client_event_t , achievement) - 8usize] ; ["Offset of field: rc_client_event_t::leaderboard"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard) - 16usize] ; ["Offset of field: rc_client_event_t::leaderboard_tracker"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard_tracker) - 24usize] ; ["Offset of field: rc_client_event_t::leaderboard_scoreboard"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard_scoreboard) - 32usize] ; ["Offset of field: rc_client_event_t::server_error"] [:: core :: mem :: offset_of ! (rc_client_event_t , server_error) - 40usize] ; } ; # [doc = " Callback used to notify the client when certain events occur."] pub type rc_client_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (event : * const rc_client_event_t , client : * mut rc_client_t) > ; extern "C" { # [doc = " Provides a callback for event handling."] pub fn rc_client_set_event_handler (client : * mut rc_client_t , handler : rc_client_event_handler_t) ; } extern "C" { # [doc = " Provides a callback for reading memory."] pub fn rc_client_set_read_memory_function (client : * mut rc_client_t , handler : rc_client_read_memory_func_t) ; } extern "C" { # [doc = " Determines if there are any active achievements/leaderboards/rich presence that need processing."] pub fn rc_client_is_processing_required (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Processes achievements for the current frame."] pub fn rc_client_do_frame (client : * mut rc_client_t) ; } extern "C" { # [doc = " Processes the periodic queue.\n Called internally by rc_client_do_frame.\n Should be explicitly called if rc_client_do_frame is not being called because emulation is paused."] pub fn rc_client_idle (client : * mut rc_client_t) ; } extern "C" { # [doc = " Determines if a sufficient amount of frames have been processed since the last call to rc_client_can_pause.\n Should not be called unless the client is trying to pause.\n If false is returned, and frames_remaining is not NULL, frames_remaining will be set to the number of frames\n still required before pause is allowed, which can be converted to a time in seconds for displaying to the user."] pub fn rc_client_can_pause (client : * mut rc_client_t , frames_remaining : * mut u32) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Informs the runtime that the emulator has been reset. Will reset all achievements and leaderboards\n to their initial state (includes hiding indicators/trackers)."] pub fn rc_client_reset (client : * mut rc_client_t) ; } extern "C" { # [doc = " Gets the number of bytes needed to serialized the runtime state."] pub fn rc_client_progress_size (client : * mut rc_client_t) -> usize ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator.\n [deprecated] use rc_client_serialize_progress_sized instead"] pub fn rc_client_serialize_progress (client : * mut rc_client_t , buffer : * mut u8) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator."] pub fn rc_client_serialize_progress_sized (client : * mut rc_client_t , buffer : * mut u8 , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Deserializes the runtime state from a buffer.\n Returns RC_OK on success, or an error indicator.\n [deprecated] use rc_client_deserialize_progress_sized instead"] pub fn rc_client_deserialize_progress (client : * mut rc_client_t , serialized : * const u8) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator."] pub fn rc_client_deserialize_progress_sized (client : * mut rc_client_t , serialized : * const u8 , serialized_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __locale_data { pub _address : u8 , } pub type __builtin_va_list = [__va_list_tag ; 1usize] ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __va_list_tag { pub gp_offset : :: core :: ffi :: c_uint , pub fp_offset : :: core :: ffi :: c_uint , pub overflow_arg_area : * mut :: core :: ffi :: c_void , pub reg_save_area : * mut :: core :: ffi :: c_void , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __va_list_tag"] [:: core :: mem :: size_of :: < __va_list_tag > () - 24usize] ; ["Alignment of __va_list_tag"] [:: core :: mem :: align_of :: < __va_list_tag > () - 8usize] ; ["Offset of field: __va_list_tag::gp_offset"] [:: core :: mem :: offset_of ! (__va_list_tag , gp_offset) - 0usize] ; ["Offset of field: __va_list_tag::fp_offset"] [:: core :: mem :: offset_of ! (__va_list_tag , fp_offset) - 4usize] ; ["Offset of field: __va_list_tag::overflow_arg_area"] [:: core :: mem :: offset_of ! (__va_list_tag , overflow_arg_area) - 8usize] ; ["Offset of field: __va_list_tag::reg_save_area"] [:: core :: mem :: offset_of ! (__va_list_tag , reg_save_area) - 16usize] ; } ;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]  --> /opt/rustwide/target/debug/build/rcheevos-sys/badd2487a33295ab/out/bindings.rs:3:124465
[INFO] [stdout]   |
[INFO] [stdout] 3 | ...ore :: ffi :: c_int) { unsafe { let val : u32 = :: core :: mem :: transmute (val) ; self . _bitfield_1 . set (0usize , 24u8 , val ...
[INFO] [stdout]   |                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: replace this with
[INFO] [stdout]   |
[INFO] [stdout] 3 - # [repr (C)] # [derive (Copy , Clone , Debug , Default , Eq , Hash , Ord , PartialEq , PartialOrd)] pub struct __BindgenBitfieldUnit < Storage > { storage : Storage , } impl < Storage > __BindgenBitfieldUnit < Storage > { # [inline] pub const fn new (storage : Storage) -> Self { Self { storage } } } impl < Storage > __BindgenBitfieldUnit < Storage > where Storage : AsRef < [u8] > + AsMut < [u8] >, { # [inline] pub fn get_bit (& self , index : usize) -> bool { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = self . storage . as_ref () [byte_index] ; let bit_index = if cfg ! (target_endian = "big") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; byte & mask == mask } # [inline] pub fn set_bit (& mut self , index : usize , val : bool) { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = & mut self . storage . as_mut () [byte_index] ; let bit_index = if cfg ! (target_endian = "big") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; if val { * byte |= mask ; } else { * byte &= ! mask ; } } # [inline] pub fn get (& self , bit_offset : usize , bit_width : u8) -> u64 { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; let mut val = 0 ; for i in 0 .. (bit_width as usize) { if self . get_bit (i + bit_offset) { let index = if cfg ! (target_endian = "big") { bit_width as usize - 1 - i } else { i } ; val |= 1 << index ; } } val } # [inline] pub fn set (& mut self , bit_offset : usize , bit_width : u8 , val : u64) { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; for i in 0 .. (bit_width as usize) { let mask = 1 << i ; let val_bit_is_set = val & mask == mask ; let index = if cfg ! (target_endian = "big") { bit_width as usize - 1 - i } else { i } ; self . set_bit (index + bit_offset , val_bit_is_set) ; } } } # [derive (PartialEq , Copy , Clone , Hash , Debug , Default)] # [repr (C)] pub struct __BindgenComplex < T > { pub re : T , pub im : T } pub const _STDINT_H : u32 = 1 ; pub const _FEATURES_H : u32 = 1 ; pub const _DEFAULT_SOURCE : u32 = 1 ; pub const __GLIBC_USE_ISOC2Y : u32 = 0 ; pub const __GLIBC_USE_ISOC23 : u32 = 0 ; pub const __USE_ISOC11 : u32 = 1 ; pub const __USE_ISOC99 : u32 = 1 ; pub const __USE_ISOC95 : u32 = 1 ; pub const __USE_POSIX_IMPLICITLY : u32 = 1 ; pub const _POSIX_SOURCE : u32 = 1 ; pub const _POSIX_C_SOURCE : u32 = 202405 ; pub const __USE_POSIX : u32 = 1 ; pub const __USE_POSIX2 : u32 = 1 ; pub const __USE_POSIX199309 : u32 = 1 ; pub const __USE_POSIX199506 : u32 = 1 ; pub const __USE_XOPEN2K : u32 = 1 ; pub const __USE_XOPEN2K8 : u32 = 1 ; pub const _ATFILE_SOURCE : u32 = 1 ; pub const __USE_XOPEN2K24 : u32 = 1 ; pub const __WORDSIZE : u32 = 64 ; pub const __WORDSIZE_TIME64_COMPAT32 : u32 = 1 ; pub const __SYSCALL_WORDSIZE : u32 = 64 ; pub const __TIMESIZE : u32 = 64 ; pub const __USE_TIME_BITS64 : u32 = 1 ; pub const __USE_MISC : u32 = 1 ; 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_C23_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 ; pub const __STDC_IEC_559_COMPLEX__ : u32 = 1 ; 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 = 43 ; pub const _SYS_CDEFS_H : u32 = 1 ; pub const __glibc_c99_flexarr_available : u32 = 1 ; pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI : u32 = 0 ; pub const __HAVE_GENERIC_SELECTION : u32 = 1 ; pub const __GLIBC_USE_LIB_EXT2 : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT_C23 : u32 = 0 ; 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_C23 : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_TYPES_EXT : u32 = 0 ; pub const _BITS_TYPES_H : u32 = 1 ; pub const _BITS_TYPESIZES_H : u32 = 1 ; pub const __OFF_T_MATCHES_OFF64_T : u32 = 1 ; pub const __INO_T_MATCHES_INO64_T : u32 = 1 ; pub const __RLIM_T_MATCHES_RLIM64_T : u32 = 1 ; pub const __STATFS_MATCHES_STATFS64 : u32 = 1 ; pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 : u32 = 1 ; pub const __FD_SETSIZE : u32 = 1024 ; pub const _BITS_TIME64_H : u32 = 1 ; pub const _BITS_WCHAR_H : u32 = 1 ; pub const _BITS_STDINT_INTN_H : u32 = 1 ; pub const _BITS_STDINT_UINTN_H : u32 = 1 ; pub const _BITS_STDINT_LEAST_H : u32 = 1 ; pub const INT8_MIN : i32 = - 128 ; pub const INT16_MIN : i32 = - 32768 ; pub const INT32_MIN : i32 = - 2147483648 ; pub const INT8_MAX : u32 = 127 ; pub const INT16_MAX : u32 = 32767 ; pub const INT32_MAX : u32 = 2147483647 ; pub const UINT8_MAX : u32 = 255 ; pub const UINT16_MAX : u32 = 65535 ; pub const UINT32_MAX : u32 = 4294967295 ; pub const INT_LEAST8_MIN : i32 = - 128 ; pub const INT_LEAST16_MIN : i32 = - 32768 ; pub const INT_LEAST32_MIN : i32 = - 2147483648 ; pub const INT_LEAST8_MAX : u32 = 127 ; pub const INT_LEAST16_MAX : u32 = 32767 ; pub const INT_LEAST32_MAX : u32 = 2147483647 ; pub const UINT_LEAST8_MAX : u32 = 255 ; pub const UINT_LEAST16_MAX : u32 = 65535 ; pub const UINT_LEAST32_MAX : u32 = 4294967295 ; pub const INT_FAST8_MIN : i32 = - 128 ; pub const INT_FAST16_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST32_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST8_MAX : u32 = 127 ; pub const INT_FAST16_MAX : u64 = 9223372036854775807 ; pub const INT_FAST32_MAX : u64 = 9223372036854775807 ; pub const UINT_FAST8_MAX : u32 = 255 ; pub const UINT_FAST16_MAX : i32 = - 1 ; pub const UINT_FAST32_MAX : i32 = - 1 ; pub const INTPTR_MIN : i64 = - 9223372036854775808 ; pub const INTPTR_MAX : u64 = 9223372036854775807 ; pub const UINTPTR_MAX : i32 = - 1 ; pub const PTRDIFF_MIN : i64 = - 9223372036854775808 ; pub const PTRDIFF_MAX : u64 = 9223372036854775807 ; pub const SIG_ATOMIC_MIN : i32 = - 2147483648 ; pub const SIG_ATOMIC_MAX : u32 = 2147483647 ; pub const SIZE_MAX : i32 = - 1 ; pub const WINT_MIN : u32 = 0 ; pub const WINT_MAX : u32 = 4294967295 ; pub const RC_VALUE_MAX_NAME_LENGTH : u32 = 15 ; pub const _TIME_H : u32 = 1 ; pub const _BITS_TIME_H : u32 = 1 ; pub const CLOCK_REALTIME : u32 = 0 ; pub const CLOCK_MONOTONIC : u32 = 1 ; pub const CLOCK_PROCESS_CPUTIME_ID : u32 = 2 ; pub const CLOCK_THREAD_CPUTIME_ID : u32 = 3 ; pub const CLOCK_MONOTONIC_RAW : u32 = 4 ; pub const CLOCK_REALTIME_COARSE : u32 = 5 ; pub const CLOCK_MONOTONIC_COARSE : u32 = 6 ; pub const CLOCK_BOOTTIME : u32 = 7 ; pub const CLOCK_REALTIME_ALARM : u32 = 8 ; pub const CLOCK_BOOTTIME_ALARM : u32 = 9 ; pub const CLOCK_TAI : u32 = 11 ; pub const TIMER_ABSTIME : u32 = 1 ; pub const __clock_t_defined : u32 = 1 ; pub const __time_t_defined : u32 = 1 ; pub const __struct_tm_defined : u32 = 1 ; pub const _STRUCT_TIMESPEC : u32 = 1 ; pub const _BITS_ENDIAN_H : u32 = 1 ; pub const __LITTLE_ENDIAN : u32 = 1234 ; pub const __BIG_ENDIAN : u32 = 4321 ; pub const __PDP_ENDIAN : u32 = 3412 ; pub const _BITS_ENDIANNESS_H : u32 = 1 ; pub const __BYTE_ORDER : u32 = 1234 ; pub const __FLOAT_WORD_ORDER : u32 = 1234 ; pub const __clockid_t_defined : u32 = 1 ; pub const __timer_t_defined : u32 = 1 ; pub const __itimerspec_defined : u32 = 1 ; pub const _BITS_TYPES_LOCALE_T_H : u32 = 1 ; pub const _BITS_TYPES___LOCALE_T_H : u32 = 1 ; pub const TIME_UTC : u32 = 1 ; pub const _STDIO_H : u32 = 1 ; pub const _____fpos_t_defined : u32 = 1 ; pub const ____mbstate_t_defined : u32 = 1 ; pub const _____fpos64_t_defined : u32 = 1 ; pub const ____FILE_defined : u32 = 1 ; pub const __FILE_defined : u32 = 1 ; 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 ; pub const BUFSIZ : u32 = 8192 ; pub const EOF : i32 = - 1 ; 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 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 ; pub const __HAVE_FLOAT128 : u32 = 1 ; pub const __HAVE_DISTINCT_FLOAT128 : u32 = 1 ; pub const __HAVE_FLOAT64X : u32 = 1 ; pub const __HAVE_FLOAT64X_LONG_DOUBLE : u32 = 1 ; pub const __HAVE_FLOAT16 : u32 = 0 ; pub const __HAVE_FLOAT32 : u32 = 1 ; pub const __HAVE_FLOAT64 : u32 = 1 ; pub const __HAVE_FLOAT32X : u32 = 1 ; pub const __HAVE_FLOAT128X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT16 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT32 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT64 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT32X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT64X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT128X : u32 = 0 ; pub const __HAVE_FLOATN_NOT_TYPEDEF : u32 = 0 ; pub const RC_IMAGE_TYPE_GAME : u32 = 1 ; pub const RC_IMAGE_TYPE_ACHIEVEMENT : u32 = 2 ; pub const RC_IMAGE_TYPE_ACHIEVEMENT_LOCKED : u32 = 3 ; pub const RC_IMAGE_TYPE_USER : u32 = 4 ; pub const RC_ACHIEVEMENT_CATEGORY_CORE : u32 = 3 ; pub const RC_ACHIEVEMENT_CATEGORY_UNOFFICIAL : u32 = 5 ; pub const RC_ACHIEVEMENT_TYPE_STANDARD : u32 = 0 ; pub const RC_ACHIEVEMENT_TYPE_MISSABLE : u32 = 1 ; pub const RC_ACHIEVEMENT_TYPE_PROGRESSION : u32 = 2 ; pub const RC_ACHIEVEMENT_TYPE_WIN : u32 = 3 ; pub const RC_CLIENT_LEADERBOARD_DISPLAY_SIZE : u32 = 24 ; pub const RC_OK : _bindgen_ty_1 = 0 ; pub const RC_INVALID_LUA_OPERAND : _bindgen_ty_1 = - 1 ; pub const RC_INVALID_MEMORY_OPERAND : _bindgen_ty_1 = - 2 ; pub const RC_INVALID_CONST_OPERAND : _bindgen_ty_1 = - 3 ; pub const RC_INVALID_FP_OPERAND : _bindgen_ty_1 = - 4 ; pub const RC_INVALID_CONDITION_TYPE : _bindgen_ty_1 = - 5 ; pub const RC_INVALID_OPERATOR : _bindgen_ty_1 = - 6 ; pub const RC_INVALID_REQUIRED_HITS : _bindgen_ty_1 = - 7 ; pub const RC_DUPLICATED_START : _bindgen_ty_1 = - 8 ; pub const RC_DUPLICATED_CANCEL : _bindgen_ty_1 = - 9 ; pub const RC_DUPLICATED_SUBMIT : _bindgen_ty_1 = - 10 ; pub const RC_DUPLICATED_VALUE : _bindgen_ty_1 = - 11 ; pub const RC_DUPLICATED_PROGRESS : _bindgen_ty_1 = - 12 ; pub const RC_MISSING_START : _bindgen_ty_1 = - 13 ; pub const RC_MISSING_CANCEL : _bindgen_ty_1 = - 14 ; pub const RC_MISSING_SUBMIT : _bindgen_ty_1 = - 15 ; pub const RC_MISSING_VALUE : _bindgen_ty_1 = - 16 ; pub const RC_INVALID_LBOARD_FIELD : _bindgen_ty_1 = - 17 ; pub const RC_MISSING_DISPLAY_STRING : _bindgen_ty_1 = - 18 ; pub const RC_OUT_OF_MEMORY : _bindgen_ty_1 = - 19 ; pub const RC_INVALID_VALUE_FLAG : _bindgen_ty_1 = - 20 ; pub const RC_MISSING_VALUE_MEASURED : _bindgen_ty_1 = - 21 ; pub const RC_MULTIPLE_MEASURED : _bindgen_ty_1 = - 22 ; pub const RC_INVALID_MEASURED_TARGET : _bindgen_ty_1 = - 23 ; pub const RC_INVALID_COMPARISON : _bindgen_ty_1 = - 24 ; pub const RC_INVALID_STATE : _bindgen_ty_1 = - 25 ; pub const RC_INVALID_JSON : _bindgen_ty_1 = - 26 ; pub const RC_API_FAILURE : _bindgen_ty_1 = - 27 ; pub const RC_LOGIN_REQUIRED : _bindgen_ty_1 = - 28 ; pub const RC_NO_GAME_LOADED : _bindgen_ty_1 = - 29 ; pub const RC_HARDCORE_DISABLED : _bindgen_ty_1 = - 30 ; pub const RC_ABORTED : _bindgen_ty_1 = - 31 ; pub const RC_NO_RESPONSE : _bindgen_ty_1 = - 32 ; pub const RC_ACCESS_DENIED : _bindgen_ty_1 = - 33 ; pub const RC_INVALID_CREDENTIALS : _bindgen_ty_1 = - 34 ; pub const RC_EXPIRED_TOKEN : _bindgen_ty_1 = - 35 ; pub const RC_INSUFFICIENT_BUFFER : _bindgen_ty_1 = - 36 ; pub const RC_INVALID_VARIABLE_NAME : _bindgen_ty_1 = - 37 ; pub const RC_UNKNOWN_VARIABLE_NAME : _bindgen_ty_1 = - 38 ; # [doc = "\\\n| Return values                                                               |\n\\"] pub type _bindgen_ty_1 = :: core :: ffi :: c_int ; extern "C" { pub fn rc_error_str (ret : :: core :: ffi :: c_int) -> * const :: core :: ffi :: c_char ; } pub type wchar_t = :: core :: ffi :: c_int ; # [repr (C)] # [repr (align (16))] # [derive (Debug , Copy , Clone)] pub struct max_align_t { pub __clang_max_align_nonce1 : :: core :: ffi :: c_longlong , pub __bindgen_padding_0 : u64 , pub __clang_max_align_nonce2 : u128 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of max_align_t"] [:: core :: mem :: size_of :: < max_align_t > () - 32usize] ; ["Alignment of max_align_t"] [:: core :: mem :: align_of :: < max_align_t > () - 16usize] ; ["Offset of field: max_align_t::__clang_max_align_nonce1"] [:: core :: mem :: offset_of ! (max_align_t , __clang_max_align_nonce1) - 0usize] ; ["Offset of field: max_align_t::__clang_max_align_nonce2"] [:: core :: mem :: offset_of ! (max_align_t , __clang_max_align_nonce2) - 16usize] ; } ; pub type __u_char = :: core :: ffi :: c_uchar ; pub type __u_short = :: core :: ffi :: c_ushort ; pub type __u_int = :: core :: ffi :: c_uint ; pub type __u_long = :: core :: ffi :: c_ulong ; pub type __int8_t = :: core :: ffi :: c_schar ; pub type __uint8_t = :: core :: ffi :: c_uchar ; pub type __int16_t = :: core :: ffi :: c_short ; pub type __uint16_t = :: core :: ffi :: c_ushort ; pub type __int32_t = :: core :: ffi :: c_int ; pub type __uint32_t = :: core :: ffi :: c_uint ; pub type __int64_t = :: core :: ffi :: c_long ; pub type __uint64_t = :: core :: ffi :: c_ulong ; pub type __int_least8_t = __int8_t ; pub type __uint_least8_t = __uint8_t ; pub type __int_least16_t = __int16_t ; pub type __uint_least16_t = __uint16_t ; pub type __int_least32_t = __int32_t ; pub type __uint_least32_t = __uint32_t ; pub type __int_least64_t = __int64_t ; pub type __uint_least64_t = __uint64_t ; pub type __quad_t = :: core :: ffi :: c_long ; pub type __u_quad_t = :: core :: ffi :: c_ulong ; pub type __intmax_t = :: core :: ffi :: c_long ; pub type __uintmax_t = :: core :: ffi :: c_ulong ; pub type __dev_t = :: core :: ffi :: c_ulong ; pub type __uid_t = :: core :: ffi :: c_uint ; pub type __gid_t = :: core :: ffi :: c_uint ; pub type __ino_t = :: core :: ffi :: c_ulong ; pub type __ino64_t = :: core :: ffi :: c_ulong ; pub type __mode_t = :: core :: ffi :: c_uint ; pub type __nlink_t = :: core :: ffi :: c_ulong ; pub type __off_t = :: core :: ffi :: c_long ; pub type __off64_t = :: core :: ffi :: c_long ; pub type __pid_t = :: core :: ffi :: c_int ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __fsid_t { pub __val : [:: core :: ffi :: c_int ; 2usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __fsid_t"] [:: core :: mem :: size_of :: < __fsid_t > () - 8usize] ; ["Alignment of __fsid_t"] [:: core :: mem :: align_of :: < __fsid_t > () - 4usize] ; ["Offset of field: __fsid_t::__val"] [:: core :: mem :: offset_of ! (__fsid_t , __val) - 0usize] ; } ; pub type __clock_t = :: core :: ffi :: c_long ; pub type __rlim_t = :: core :: ffi :: c_ulong ; pub type __rlim64_t = :: core :: ffi :: c_ulong ; pub type __id_t = :: core :: ffi :: c_uint ; pub type __time_t = :: core :: ffi :: c_long ; pub type __useconds_t = :: core :: ffi :: c_uint ; pub type __suseconds_t = :: core :: ffi :: c_long ; pub type __suseconds64_t = :: core :: ffi :: c_long ; pub type __daddr_t = :: core :: ffi :: c_int ; pub type __key_t = :: core :: ffi :: c_int ; pub type __clockid_t = :: core :: ffi :: c_int ; pub type __timer_t = * mut :: core :: ffi :: c_void ; pub type __blksize_t = :: core :: ffi :: c_long ; pub type __blkcnt_t = :: core :: ffi :: c_long ; pub type __blkcnt64_t = :: core :: ffi :: c_long ; pub type __fsblkcnt_t = :: core :: ffi :: c_ulong ; pub type __fsblkcnt64_t = :: core :: ffi :: c_ulong ; pub type __fsfilcnt_t = :: core :: ffi :: c_ulong ; pub type __fsfilcnt64_t = :: core :: ffi :: c_ulong ; pub type __fsword_t = :: core :: ffi :: c_long ; pub type __ssize_t = :: core :: ffi :: c_long ; pub type __syscall_slong_t = :: core :: ffi :: c_long ; pub type __syscall_ulong_t = :: core :: ffi :: c_ulong ; pub type __loff_t = __off64_t ; pub type __caddr_t = * mut :: core :: ffi :: c_char ; pub type __intptr_t = :: core :: ffi :: c_long ; pub type __socklen_t = :: core :: ffi :: c_uint ; pub type __sig_atomic_t = :: core :: ffi :: c_int ; pub type int_least8_t = __int_least8_t ; pub type int_least16_t = __int_least16_t ; pub type int_least32_t = __int_least32_t ; pub type int_least64_t = __int_least64_t ; pub type uint_least8_t = __uint_least8_t ; pub type uint_least16_t = __uint_least16_t ; pub type uint_least32_t = __uint_least32_t ; pub type uint_least64_t = __uint_least64_t ; pub type int_fast8_t = :: core :: ffi :: c_schar ; pub type int_fast16_t = :: core :: ffi :: c_long ; pub type int_fast32_t = :: core :: ffi :: c_long ; pub type int_fast64_t = :: core :: ffi :: c_long ; pub type uint_fast8_t = :: core :: ffi :: c_uchar ; pub type uint_fast16_t = :: core :: ffi :: c_ulong ; pub type uint_fast32_t = :: core :: ffi :: c_ulong ; pub type uint_fast64_t = :: core :: ffi :: c_ulong ; pub type intmax_t = __intmax_t ; pub type uintmax_t = __uintmax_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct lua_State { _unused : [u8 ; 0] , } # [doc = " Callback used to read num_bytes bytes from memory starting at address. If\n num_bytes is greater than 1, the value is read in little-endian from\n memory."] pub type rc_peek_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , num_bytes : u32 , ud : * mut :: core :: ffi :: c_void) -> u32 > ; pub const RC_MEMSIZE_8_BITS : _bindgen_ty_2 = 0 ; pub const RC_MEMSIZE_16_BITS : _bindgen_ty_2 = 1 ; pub const RC_MEMSIZE_24_BITS : _bindgen_ty_2 = 2 ; pub const RC_MEMSIZE_32_BITS : _bindgen_ty_2 = 3 ; pub const RC_MEMSIZE_LOW : _bindgen_ty_2 = 4 ; pub const RC_MEMSIZE_HIGH : _bindgen_ty_2 = 5 ; pub const RC_MEMSIZE_BIT_0 : _bindgen_ty_2 = 6 ; pub const RC_MEMSIZE_BIT_1 : _bindgen_ty_2 = 7 ; pub const RC_MEMSIZE_BIT_2 : _bindgen_ty_2 = 8 ; pub const RC_MEMSIZE_BIT_3 : _bindgen_ty_2 = 9 ; pub const RC_MEMSIZE_BIT_4 : _bindgen_ty_2 = 10 ; pub const RC_MEMSIZE_BIT_5 : _bindgen_ty_2 = 11 ; pub const RC_MEMSIZE_BIT_6 : _bindgen_ty_2 = 12 ; pub const RC_MEMSIZE_BIT_7 : _bindgen_ty_2 = 13 ; pub const RC_MEMSIZE_BITCOUNT : _bindgen_ty_2 = 14 ; pub const RC_MEMSIZE_16_BITS_BE : _bindgen_ty_2 = 15 ; pub const RC_MEMSIZE_24_BITS_BE : _bindgen_ty_2 = 16 ; pub const RC_MEMSIZE_32_BITS_BE : _bindgen_ty_2 = 17 ; pub const RC_MEMSIZE_FLOAT : _bindgen_ty_2 = 18 ; pub const RC_MEMSIZE_MBF32 : _bindgen_ty_2 = 19 ; pub const RC_MEMSIZE_MBF32_LE : _bindgen_ty_2 = 20 ; pub const RC_MEMSIZE_FLOAT_BE : _bindgen_ty_2 = 21 ; pub const RC_MEMSIZE_DOUBLE32 : _bindgen_ty_2 = 22 ; pub const RC_MEMSIZE_DOUBLE32_BE : _bindgen_ty_2 = 23 ; pub const RC_MEMSIZE_VARIABLE : _bindgen_ty_2 = 24 ; # [doc = "\\\n| Memory References                                                           |\n\\"] pub type _bindgen_ty_2 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memref_value_t { pub value : u32 , pub prior : u32 , pub size : u8 , pub changed : u8 , pub type_ : u8 , pub is_indirect : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memref_value_t"] [:: core :: mem :: size_of :: < rc_memref_value_t > () - 12usize] ; ["Alignment of rc_memref_value_t"] [:: core :: mem :: align_of :: < rc_memref_value_t > () - 4usize] ; ["Offset of field: rc_memref_value_t::value"] [:: core :: mem :: offset_of ! (rc_memref_value_t , value) - 0usize] ; ["Offset of field: rc_memref_value_t::prior"] [:: core :: mem :: offset_of ! (rc_memref_value_t , prior) - 4usize] ; ["Offset of field: rc_memref_value_t::size"] [:: core :: mem :: offset_of ! (rc_memref_value_t , size) - 8usize] ; ["Offset of field: rc_memref_value_t::changed"] [:: core :: mem :: offset_of ! (rc_memref_value_t , changed) - 9usize] ; ["Offset of field: rc_memref_value_t::type_"] [:: core :: mem :: offset_of ! (rc_memref_value_t , type_) - 10usize] ; ["Offset of field: rc_memref_value_t::is_indirect"] [:: core :: mem :: offset_of ! (rc_memref_value_t , is_indirect) - 11usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memref_t { pub value : rc_memref_value_t , pub address : u32 , pub next : * mut rc_memref_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memref_t"] [:: core :: mem :: size_of :: < rc_memref_t > () - 24usize] ; ["Alignment of rc_memref_t"] [:: core :: mem :: align_of :: < rc_memref_t > () - 8usize] ; ["Offset of field: rc_memref_t::value"] [:: core :: mem :: offset_of ! (rc_memref_t , value) - 0usize] ; ["Offset of field: rc_memref_t::address"] [:: core :: mem :: offset_of ! (rc_memref_t , address) - 12usize] ; ["Offset of field: rc_memref_t::next"] [:: core :: mem :: offset_of ! (rc_memref_t , next) - 16usize] ; } ; pub const RC_OPERAND_ADDRESS : _bindgen_ty_3 = 0 ; pub const RC_OPERAND_DELTA : _bindgen_ty_3 = 1 ; pub const RC_OPERAND_CONST : _bindgen_ty_3 = 2 ; pub const RC_OPERAND_FP : _bindgen_ty_3 = 3 ; pub const RC_OPERAND_LUA : _bindgen_ty_3 = 4 ; pub const RC_OPERAND_PRIOR : _bindgen_ty_3 = 5 ; pub const RC_OPERAND_BCD : _bindgen_ty_3 = 6 ; pub const RC_OPERAND_INVERTED : _bindgen_ty_3 = 7 ; pub const RC_OPERAND_RECALL : _bindgen_ty_3 = 8 ; # [doc = "\\\n| Operands                                                                    |\n\\"] pub type _bindgen_ty_3 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Copy , Clone)] pub struct rc_operand_t { pub value : rc_operand_t__bindgen_ty_1 , pub type_ : u8 , pub size : u8 , } # [repr (C)] # [derive (Copy , Clone)] pub union rc_operand_t__bindgen_ty_1 { pub memref : * mut rc_memref_t , pub num : u32 , pub dbl : f64 , pub luafunc : :: core :: ffi :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_operand_t__bindgen_ty_1"] [:: core :: mem :: size_of :: < rc_operand_t__bindgen_ty_1 > () - 8usize] ; ["Alignment of rc_operand_t__bindgen_ty_1"] [:: core :: mem :: align_of :: < rc_operand_t__bindgen_ty_1 > () - 8usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::memref"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , memref) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::num"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , num) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::dbl"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , dbl) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::luafunc"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , luafunc) - 0usize] ; } ; impl :: core :: fmt :: Debug for rc_operand_t__bindgen_ty_1 { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_operand_t__bindgen_ty_1 {{ union }}") } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_operand_t"] [:: core :: mem :: size_of :: < rc_operand_t > () - 16usize] ; ["Alignment of rc_operand_t"] [:: core :: mem :: align_of :: < rc_operand_t > () - 8usize] ; ["Offset of field: rc_operand_t::value"] [:: core :: mem :: offset_of ! (rc_operand_t , value) - 0usize] ; ["Offset of field: rc_operand_t::type_"] [:: core :: mem :: offset_of ! (rc_operand_t , type_) - 8usize] ; ["Offset of field: rc_operand_t::size"] [:: core :: mem :: offset_of ! (rc_operand_t , size) - 9usize] ; } ; impl :: core :: fmt :: Debug for rc_operand_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_operand_t {{ value: {:?}, type: {:?}, size: {:?} }}" , self . value , self . type_ , self . size) } } extern "C" { pub fn rc_operand_is_memref (operand : * const rc_operand_t) -> :: core :: ffi :: c_int ; } pub const RC_CONDITION_STANDARD : _bindgen_ty_4 = 0 ; pub const RC_CONDITION_PAUSE_IF : _bindgen_ty_4 = 1 ; pub const RC_CONDITION_RESET_IF : _bindgen_ty_4 = 2 ; pub const RC_CONDITION_MEASURED_IF : _bindgen_ty_4 = 3 ; pub const RC_CONDITION_TRIGGER : _bindgen_ty_4 = 4 ; pub const RC_CONDITION_MEASURED : _bindgen_ty_4 = 5 ; pub const RC_CONDITION_ADD_SOURCE : _bindgen_ty_4 = 6 ; pub const RC_CONDITION_SUB_SOURCE : _bindgen_ty_4 = 7 ; pub const RC_CONDITION_ADD_ADDRESS : _bindgen_ty_4 = 8 ; pub const RC_CONDITION_REMEMBER : _bindgen_ty_4 = 9 ; pub const RC_CONDITION_ADD_HITS : _bindgen_ty_4 = 10 ; pub const RC_CONDITION_SUB_HITS : _bindgen_ty_4 = 11 ; pub const RC_CONDITION_RESET_NEXT_IF : _bindgen_ty_4 = 12 ; pub const RC_CONDITION_AND_NEXT : _bindgen_ty_4 = 13 ; pub const RC_CONDITION_OR_NEXT : _bindgen_ty_4 = 14 ; # [doc = "\\\n| Conditions                                                                  |\n\\"] pub type _bindgen_ty_4 = :: core :: ffi :: c_uint ; pub const RC_OPERATOR_EQ : _bindgen_ty_5 = 0 ; pub const RC_OPERATOR_LT : _bindgen_ty_5 = 1 ; pub const RC_OPERATOR_LE : _bindgen_ty_5 = 2 ; pub const RC_OPERATOR_GT : _bindgen_ty_5 = 3 ; pub const RC_OPERATOR_GE : _bindgen_ty_5 = 4 ; pub const RC_OPERATOR_NE : _bindgen_ty_5 = 5 ; pub const RC_OPERATOR_NONE : _bindgen_ty_5 = 6 ; pub const RC_OPERATOR_MULT : _bindgen_ty_5 = 7 ; pub const RC_OPERATOR_DIV : _bindgen_ty_5 = 8 ; pub const RC_OPERATOR_AND : _bindgen_ty_5 = 9 ; pub const RC_OPERATOR_XOR : _bindgen_ty_5 = 10 ; pub const RC_OPERATOR_MOD : _bindgen_ty_5 = 11 ; pub const RC_OPERATOR_ADD : _bindgen_ty_5 = 12 ; pub const RC_OPERATOR_SUB : _bindgen_ty_5 = 13 ; pub type _bindgen_ty_5 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Copy , Clone)] pub struct rc_condition_t { pub operand1 : rc_operand_t , pub operand2 : rc_operand_t , pub required_hits : u32 , pub current_hits : u32 , pub next : * mut rc_condition_t , pub type_ : u8 , pub oper : u8 , pub pause : u8 , pub is_true : u8 , pub optimized_comparator : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_condition_t"] [:: core :: mem :: size_of :: < rc_condition_t > () - 56usize] ; ["Alignment of rc_condition_t"] [:: core :: mem :: align_of :: < rc_condition_t > () - 8usize] ; ["Offset of field: rc_condition_t::operand1"] [:: core :: mem :: offset_of ! (rc_condition_t , operand1) - 0usize] ; ["Offset of field: rc_condition_t::operand2"] [:: core :: mem :: offset_of ! (rc_condition_t , operand2) - 16usize] ; ["Offset of field: rc_condition_t::required_hits"] [:: core :: mem :: offset_of ! (rc_condition_t , required_hits) - 32usize] ; ["Offset of field: rc_condition_t::current_hits"] [:: core :: mem :: offset_of ! (rc_condition_t , current_hits) - 36usize] ; ["Offset of field: rc_condition_t::next"] [:: core :: mem :: offset_of ! (rc_condition_t , next) - 40usize] ; ["Offset of field: rc_condition_t::type_"] [:: core :: mem :: offset_of ! (rc_condition_t , type_) - 48usize] ; ["Offset of field: rc_condition_t::oper"] [:: core :: mem :: offset_of ! (rc_condition_t , oper) - 49usize] ; ["Offset of field: rc_condition_t::pause"] [:: core :: mem :: offset_of ! (rc_condition_t , pause) - 50usize] ; ["Offset of field: rc_condition_t::is_true"] [:: core :: mem :: offset_of ! (rc_condition_t , is_true) - 51usize] ; ["Offset of field: rc_condition_t::optimized_comparator"] [:: core :: mem :: offset_of ! (rc_condition_t , optimized_comparator) - 52usize] ; } ; impl :: core :: fmt :: Debug for rc_condition_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_condition_t {{ operand1: {:?}, operand2: {:?}, required_hits: {:?}, current_hits: {:?}, next: {:?}, type: {:?}, oper: {:?}, pause: {:?}, is_true: {:?}, optimized_comparator: {:?} }}" , self . operand1 , self . operand2 , self . required_hits , self . current_hits , self . next , self . type_ , self . oper , self . pause , self . is_true , self . optimized_comparator) } } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_condset_t { pub next : * mut rc_condset_t , pub conditions : * mut rc_condition_t , pub has_pause : u8 , pub is_paused : u8 , pub has_indirect_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_condset_t"] [:: core :: mem :: size_of :: < rc_condset_t > () - 24usize] ; ["Alignment of rc_condset_t"] [:: core :: mem :: align_of :: < rc_condset_t > () - 8usize] ; ["Offset of field: rc_condset_t::next"] [:: core :: mem :: offset_of ! (rc_condset_t , next) - 0usize] ; ["Offset of field: rc_condset_t::conditions"] [:: core :: mem :: offset_of ! (rc_condset_t , conditions) - 8usize] ; ["Offset of field: rc_condset_t::has_pause"] [:: core :: mem :: offset_of ! (rc_condset_t , has_pause) - 16usize] ; ["Offset of field: rc_condset_t::is_paused"] [:: core :: mem :: offset_of ! (rc_condset_t , is_paused) - 17usize] ; ["Offset of field: rc_condset_t::has_indirect_memrefs"] [:: core :: mem :: offset_of ! (rc_condset_t , has_indirect_memrefs) - 18usize] ; } ; pub const RC_TRIGGER_STATE_INACTIVE : _bindgen_ty_6 = 0 ; pub const RC_TRIGGER_STATE_WAITING : _bindgen_ty_6 = 1 ; pub const RC_TRIGGER_STATE_ACTIVE : _bindgen_ty_6 = 2 ; pub const RC_TRIGGER_STATE_PAUSED : _bindgen_ty_6 = 3 ; pub const RC_TRIGGER_STATE_RESET : _bindgen_ty_6 = 4 ; pub const RC_TRIGGER_STATE_TRIGGERED : _bindgen_ty_6 = 5 ; pub const RC_TRIGGER_STATE_PRIMED : _bindgen_ty_6 = 6 ; pub const RC_TRIGGER_STATE_DISABLED : _bindgen_ty_6 = 7 ; # [doc = "\\\n| Trigger                                                                     |\n\\"] pub type _bindgen_ty_6 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_trigger_t { pub requirement : * mut rc_condset_t , pub alternative : * mut rc_condset_t , pub memrefs : * mut rc_memref_t , pub measured_value : u32 , pub measured_target : u32 , pub state : u8 , pub has_hits : u8 , pub has_required_hits : u8 , pub measured_as_percent : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_trigger_t"] [:: core :: mem :: size_of :: < rc_trigger_t > () - 40usize] ; ["Alignment of rc_trigger_t"] [:: core :: mem :: align_of :: < rc_trigger_t > () - 8usize] ; ["Offset of field: rc_trigger_t::requirement"] [:: core :: mem :: offset_of ! (rc_trigger_t , requirement) - 0usize] ; ["Offset of field: rc_trigger_t::alternative"] [:: core :: mem :: offset_of ! (rc_trigger_t , alternative) - 8usize] ; ["Offset of field: rc_trigger_t::memrefs"] [:: core :: mem :: offset_of ! (rc_trigger_t , memrefs) - 16usize] ; ["Offset of field: rc_trigger_t::measured_value"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_value) - 24usize] ; ["Offset of field: rc_trigger_t::measured_target"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_target) - 28usize] ; ["Offset of field: rc_trigger_t::state"] [:: core :: mem :: offset_of ! (rc_trigger_t , state) - 32usize] ; ["Offset of field: rc_trigger_t::has_hits"] [:: core :: mem :: offset_of ! (rc_trigger_t , has_hits) - 33usize] ; ["Offset of field: rc_trigger_t::has_required_hits"] [:: core :: mem :: offset_of ! (rc_trigger_t , has_required_hits) - 34usize] ; ["Offset of field: rc_trigger_t::measured_as_percent"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_as_percent) - 35usize] ; } ; extern "C" { pub fn rc_trigger_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_trigger (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_trigger_t ; } extern "C" { pub fn rc_evaluate_trigger (trigger : * mut rc_trigger_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_test_trigger (trigger : * mut rc_trigger_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_trigger (self_ : * mut rc_trigger_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_value_t { pub value : rc_memref_value_t , pub conditions : * mut rc_condset_t , pub memrefs : * mut rc_memref_t , pub name : * const :: core :: ffi :: c_char , pub next : * mut rc_value_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_value_t"] [:: core :: mem :: size_of :: < rc_value_t > () - 48usize] ; ["Alignment of rc_value_t"] [:: core :: mem :: align_of :: < rc_value_t > () - 8usize] ; ["Offset of field: rc_value_t::value"] [:: core :: mem :: offset_of ! (rc_value_t , value) - 0usize] ; ["Offset of field: rc_value_t::conditions"] [:: core :: mem :: offset_of ! (rc_value_t , conditions) - 16usize] ; ["Offset of field: rc_value_t::memrefs"] [:: core :: mem :: offset_of ! (rc_value_t , memrefs) - 24usize] ; ["Offset of field: rc_value_t::name"] [:: core :: mem :: offset_of ! (rc_value_t , name) - 32usize] ; ["Offset of field: rc_value_t::next"] [:: core :: mem :: offset_of ! (rc_value_t , next) - 40usize] ; } ; extern "C" { pub fn rc_value_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_value (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_value_t ; } extern "C" { pub fn rc_evaluate_value (value : * mut rc_value_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> i32 ; } pub const RC_LBOARD_STATE_INACTIVE : _bindgen_ty_7 = 0 ; pub const RC_LBOARD_STATE_WAITING : _bindgen_ty_7 = 1 ; pub const RC_LBOARD_STATE_ACTIVE : _bindgen_ty_7 = 2 ; pub const RC_LBOARD_STATE_STARTED : _bindgen_ty_7 = 3 ; pub const RC_LBOARD_STATE_CANCELED : _bindgen_ty_7 = 4 ; pub const RC_LBOARD_STATE_TRIGGERED : _bindgen_ty_7 = 5 ; pub const RC_LBOARD_STATE_DISABLED : _bindgen_ty_7 = 6 ; # [doc = "\\\n| Leaderboards                                                                |\n\\"] pub type _bindgen_ty_7 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_lboard_t { pub start : rc_trigger_t , pub submit : rc_trigger_t , pub cancel : rc_trigger_t , pub value : rc_value_t , pub progress : * mut rc_value_t , pub memrefs : * mut rc_memref_t , pub state : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_lboard_t"] [:: core :: mem :: size_of :: < rc_lboard_t > () - 192usize] ; ["Alignment of rc_lboard_t"] [:: core :: mem :: align_of :: < rc_lboard_t > () - 8usize] ; ["Offset of field: rc_lboard_t::start"] [:: core :: mem :: offset_of ! (rc_lboard_t , start) - 0usize] ; ["Offset of field: rc_lboard_t::submit"] [:: core :: mem :: offset_of ! (rc_lboard_t , submit) - 40usize] ; ["Offset of field: rc_lboard_t::cancel"] [:: core :: mem :: offset_of ! (rc_lboard_t , cancel) - 80usize] ; ["Offset of field: rc_lboard_t::value"] [:: core :: mem :: offset_of ! (rc_lboard_t , value) - 120usize] ; ["Offset of field: rc_lboard_t::progress"] [:: core :: mem :: offset_of ! (rc_lboard_t , progress) - 168usize] ; ["Offset of field: rc_lboard_t::memrefs"] [:: core :: mem :: offset_of ! (rc_lboard_t , memrefs) - 176usize] ; ["Offset of field: rc_lboard_t::state"] [:: core :: mem :: offset_of ! (rc_lboard_t , state) - 184usize] ; } ; extern "C" { pub fn rc_lboard_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_lboard (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_lboard_t ; } extern "C" { pub fn rc_evaluate_lboard (lboard : * mut rc_lboard_t , value : * mut i32 , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_lboard (lboard : * mut rc_lboard_t) ; } pub const RC_FORMAT_FRAMES : _bindgen_ty_8 = 0 ; pub const RC_FORMAT_SECONDS : _bindgen_ty_8 = 1 ; pub const RC_FORMAT_CENTISECS : _bindgen_ty_8 = 2 ; pub const RC_FORMAT_SCORE : _bindgen_ty_8 = 3 ; pub const RC_FORMAT_VALUE : _bindgen_ty_8 = 4 ; pub const RC_FORMAT_MINUTES : _bindgen_ty_8 = 5 ; pub const RC_FORMAT_SECONDS_AS_MINUTES : _bindgen_ty_8 = 6 ; pub const RC_FORMAT_FLOAT1 : _bindgen_ty_8 = 7 ; pub const RC_FORMAT_FLOAT2 : _bindgen_ty_8 = 8 ; pub const RC_FORMAT_FLOAT3 : _bindgen_ty_8 = 9 ; pub const RC_FORMAT_FLOAT4 : _bindgen_ty_8 = 10 ; pub const RC_FORMAT_FLOAT5 : _bindgen_ty_8 = 11 ; pub const RC_FORMAT_FLOAT6 : _bindgen_ty_8 = 12 ; pub const RC_FORMAT_FIXED1 : _bindgen_ty_8 = 13 ; pub const RC_FORMAT_FIXED2 : _bindgen_ty_8 = 14 ; pub const RC_FORMAT_FIXED3 : _bindgen_ty_8 = 15 ; pub const RC_FORMAT_TENS : _bindgen_ty_8 = 16 ; pub const RC_FORMAT_HUNDREDS : _bindgen_ty_8 = 17 ; pub const RC_FORMAT_THOUSANDS : _bindgen_ty_8 = 18 ; pub const RC_FORMAT_UNSIGNED_VALUE : _bindgen_ty_8 = 19 ; # [doc = "\\\n| Value formatting                                                            |\n\\"] pub type _bindgen_ty_8 = :: core :: ffi :: c_uint ; extern "C" { pub fn rc_parse_format (format_str : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_format_value (buffer : * mut :: core :: ffi :: c_char , size : :: core :: ffi :: c_int , value : i32 , format : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_lookup_item_t { pub first : u32 , pub last : u32 , pub left : * mut rc_richpresence_lookup_item_t , pub right : * mut rc_richpresence_lookup_item_t , pub label : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_lookup_item_t"] [:: core :: mem :: size_of :: < rc_richpresence_lookup_item_t > () - 32usize] ; ["Alignment of rc_richpresence_lookup_item_t"] [:: core :: mem :: align_of :: < rc_richpresence_lookup_item_t > () - 8usize] ; ["Offset of field: rc_richpresence_lookup_item_t::first"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , first) - 0usize] ; ["Offset of field: rc_richpresence_lookup_item_t::last"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , last) - 4usize] ; ["Offset of field: rc_richpresence_lookup_item_t::left"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , left) - 8usize] ; ["Offset of field: rc_richpresence_lookup_item_t::right"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , right) - 16usize] ; ["Offset of field: rc_richpresence_lookup_item_t::label"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , label) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_lookup_t { pub root : * mut rc_richpresence_lookup_item_t , pub next : * mut rc_richpresence_lookup_t , pub name : * const :: core :: ffi :: c_char , pub default_label : * const :: core :: ffi :: c_char , pub format : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_lookup_t"] [:: core :: mem :: size_of :: < rc_richpresence_lookup_t > () - 40usize] ; ["Alignment of rc_richpresence_lookup_t"] [:: core :: mem :: align_of :: < rc_richpresence_lookup_t > () - 8usize] ; ["Offset of field: rc_richpresence_lookup_t::root"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , root) - 0usize] ; ["Offset of field: rc_richpresence_lookup_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , next) - 8usize] ; ["Offset of field: rc_richpresence_lookup_t::name"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , name) - 16usize] ; ["Offset of field: rc_richpresence_lookup_t::default_label"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , default_label) - 24usize] ; ["Offset of field: rc_richpresence_lookup_t::format"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , format) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_display_part_t { pub next : * mut rc_richpresence_display_part_t , pub text : * const :: core :: ffi :: c_char , pub lookup : * mut rc_richpresence_lookup_t , pub value : * mut rc_memref_value_t , pub display_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_display_part_t"] [:: core :: mem :: size_of :: < rc_richpresence_display_part_t > () - 40usize] ; ["Alignment of rc_richpresence_display_part_t"] [:: core :: mem :: align_of :: < rc_richpresence_display_part_t > () - 8usize] ; ["Offset of field: rc_richpresence_display_part_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , next) - 0usize] ; ["Offset of field: rc_richpresence_display_part_t::text"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , text) - 8usize] ; ["Offset of field: rc_richpresence_display_part_t::lookup"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , lookup) - 16usize] ; ["Offset of field: rc_richpresence_display_part_t::value"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , value) - 24usize] ; ["Offset of field: rc_richpresence_display_part_t::display_type"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , display_type) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_display_t { pub trigger : rc_trigger_t , pub next : * mut rc_richpresence_display_t , pub display : * mut rc_richpresence_display_part_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_display_t"] [:: core :: mem :: size_of :: < rc_richpresence_display_t > () - 56usize] ; ["Alignment of rc_richpresence_display_t"] [:: core :: mem :: align_of :: < rc_richpresence_display_t > () - 8usize] ; ["Offset of field: rc_richpresence_display_t::trigger"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , trigger) - 0usize] ; ["Offset of field: rc_richpresence_display_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , next) - 40usize] ; ["Offset of field: rc_richpresence_display_t::display"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , display) - 48usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_t { pub first_display : * mut rc_richpresence_display_t , pub first_lookup : * mut rc_richpresence_lookup_t , pub memrefs : * mut rc_memref_t , pub variables : * mut rc_value_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_t"] [:: core :: mem :: size_of :: < rc_richpresence_t > () - 32usize] ; ["Alignment of rc_richpresence_t"] [:: core :: mem :: align_of :: < rc_richpresence_t > () - 8usize] ; ["Offset of field: rc_richpresence_t::first_display"] [:: core :: mem :: offset_of ! (rc_richpresence_t , first_display) - 0usize] ; ["Offset of field: rc_richpresence_t::first_lookup"] [:: core :: mem :: offset_of ! (rc_richpresence_t , first_lookup) - 8usize] ; ["Offset of field: rc_richpresence_t::memrefs"] [:: core :: mem :: offset_of ! (rc_richpresence_t , memrefs) - 16usize] ; ["Offset of field: rc_richpresence_t::variables"] [:: core :: mem :: offset_of ! (rc_richpresence_t , variables) - 24usize] ; } ; extern "C" { pub fn rc_richpresence_size (script : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_richpresence_size_lines (script : * const :: core :: ffi :: c_char , lines_read : * mut :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_richpresence (buffer : * mut :: core :: ffi :: c_void , script : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_richpresence_t ; } extern "C" { pub fn rc_evaluate_richpresence (richpresence : * mut rc_richpresence_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_update_richpresence (richpresence : * mut rc_richpresence_t , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) ; } extern "C" { pub fn rc_get_richpresence_display_string (richpresence : * mut rc_richpresence_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_richpresence (self_ : * mut rc_richpresence_t) ; } # [doc = " A block of memory for variable length data (like strings and arrays)."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_buffer_chunk_t { pub write : * mut u8 , pub end : * mut u8 , pub start : * mut u8 , pub next : * mut rc_buffer_chunk_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_buffer_chunk_t"] [:: core :: mem :: size_of :: < rc_buffer_chunk_t > () - 32usize] ; ["Alignment of rc_buffer_chunk_t"] [:: core :: mem :: align_of :: < rc_buffer_chunk_t > () - 8usize] ; ["Offset of field: rc_buffer_chunk_t::write"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , write) - 0usize] ; ["Offset of field: rc_buffer_chunk_t::end"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , end) - 8usize] ; ["Offset of field: rc_buffer_chunk_t::start"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , start) - 16usize] ; ["Offset of field: rc_buffer_chunk_t::next"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , next) - 24usize] ; } ; # [doc = " A preallocated block of memory for variable length data (like strings and arrays)."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_buffer_t { pub chunk : rc_buffer_chunk_t , pub data : [u8 ; 256usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_buffer_t"] [:: core :: mem :: size_of :: < rc_buffer_t > () - 288usize] ; ["Alignment of rc_buffer_t"] [:: core :: mem :: align_of :: < rc_buffer_t > () - 8usize] ; ["Offset of field: rc_buffer_t::chunk"] [:: core :: mem :: offset_of ! (rc_buffer_t , chunk) - 0usize] ; ["Offset of field: rc_buffer_t::data"] [:: core :: mem :: offset_of ! (rc_buffer_t , data) - 32usize] ; } ; extern "C" { pub fn rc_buffer_init (buffer : * mut rc_buffer_t) ; } extern "C" { pub fn rc_buffer_destroy (buffer : * mut rc_buffer_t) ; } extern "C" { pub fn rc_buffer_reserve (buffer : * mut rc_buffer_t , amount : usize) -> * mut u8 ; } extern "C" { pub fn rc_buffer_consume (buffer : * mut rc_buffer_t , start : * const u8 , end : * mut u8) ; } extern "C" { pub fn rc_buffer_alloc (buffer : * mut rc_buffer_t , amount : usize) -> * mut :: core :: ffi :: c_void ; } extern "C" { pub fn rc_buffer_strcpy (buffer : * mut rc_buffer_t , src : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn rc_buffer_strncpy (buffer : * mut rc_buffer_t , src : * const :: core :: ffi :: c_char , len : usize) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn rc_djb2 (input : * const :: core :: ffi :: c_char) -> u32 ; } extern "C" { pub fn rc_format_md5 (checksum : * mut :: core :: ffi :: c_char , digest : * const u8) ; } # [doc = " A constructed request to send to the retroachievements server."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_request_t { pub url : * const :: core :: ffi :: c_char , pub post_data : * const :: core :: ffi :: c_char , pub content_type : * const :: core :: ffi :: c_char , pub buffer : rc_buffer_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_request_t"] [:: core :: mem :: size_of :: < rc_api_request_t > () - 312usize] ; ["Alignment of rc_api_request_t"] [:: core :: mem :: align_of :: < rc_api_request_t > () - 8usize] ; ["Offset of field: rc_api_request_t::url"] [:: core :: mem :: offset_of ! (rc_api_request_t , url) - 0usize] ; ["Offset of field: rc_api_request_t::post_data"] [:: core :: mem :: offset_of ! (rc_api_request_t , post_data) - 8usize] ; ["Offset of field: rc_api_request_t::content_type"] [:: core :: mem :: offset_of ! (rc_api_request_t , content_type) - 16usize] ; ["Offset of field: rc_api_request_t::buffer"] [:: core :: mem :: offset_of ! (rc_api_request_t , buffer) - 24usize] ; } ; # [doc = " Common attributes for all server responses."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_response_t { pub succeeded : :: core :: ffi :: c_int , pub error_message : * const :: core :: ffi :: c_char , pub error_code : * const :: core :: ffi :: c_char , pub buffer : rc_buffer_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_response_t"] [:: core :: mem :: size_of :: < rc_api_response_t > () - 312usize] ; ["Alignment of rc_api_response_t"] [:: core :: mem :: align_of :: < rc_api_response_t > () - 8usize] ; ["Offset of field: rc_api_response_t::succeeded"] [:: core :: mem :: offset_of ! (rc_api_response_t , succeeded) - 0usize] ; ["Offset of field: rc_api_response_t::error_message"] [:: core :: mem :: offset_of ! (rc_api_response_t , error_message) - 8usize] ; ["Offset of field: rc_api_response_t::error_code"] [:: core :: mem :: offset_of ! (rc_api_response_t , error_code) - 16usize] ; ["Offset of field: rc_api_response_t::buffer"] [:: core :: mem :: offset_of ! (rc_api_response_t , buffer) - 24usize] ; } ; extern "C" { pub fn rc_api_destroy_request (request : * mut rc_api_request_t) ; } extern "C" { pub fn rc_api_set_host (hostname : * const :: core :: ffi :: c_char) ; } extern "C" { pub fn rc_api_set_image_host (hostname : * const :: core :: ffi :: c_char) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_server_response_t { pub body : * const :: core :: ffi :: c_char , pub body_length : usize , pub http_status_code : :: core :: ffi :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_server_response_t"] [:: core :: mem :: size_of :: < rc_api_server_response_t > () - 24usize] ; ["Alignment of rc_api_server_response_t"] [:: core :: mem :: align_of :: < rc_api_server_response_t > () - 8usize] ; ["Offset of field: rc_api_server_response_t::body"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , body) - 0usize] ; ["Offset of field: rc_api_server_response_t::body_length"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , body_length) - 8usize] ; ["Offset of field: rc_api_server_response_t::http_status_code"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , http_status_code) - 16usize] ; } ; pub const RC_API_SERVER_RESPONSE_CLIENT_ERROR : _bindgen_ty_9 = - 1 ; pub const RC_API_SERVER_RESPONSE_RETRYABLE_CLIENT_ERROR : _bindgen_ty_9 = - 2 ; pub type _bindgen_ty_9 = :: core :: ffi :: c_int ; pub type clock_t = __clock_t ; pub type time_t = __time_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct tm { pub tm_sec : :: core :: ffi :: c_int , pub tm_min : :: core :: ffi :: c_int , pub tm_hour : :: core :: ffi :: c_int , pub tm_mday : :: core :: ffi :: c_int , pub tm_mon : :: core :: ffi :: c_int , pub tm_year : :: core :: ffi :: c_int , pub tm_wday : :: core :: ffi :: c_int , pub tm_yday : :: core :: ffi :: c_int , pub tm_isdst : :: core :: ffi :: c_int , pub tm_gmtoff : :: core :: ffi :: c_long , pub tm_zone : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of tm"] [:: core :: mem :: size_of :: < tm > () - 56usize] ; ["Alignment of tm"] [:: core :: mem :: align_of :: < tm > () - 8usize] ; ["Offset of field: tm::tm_sec"] [:: core :: mem :: offset_of ! (tm , tm_sec) - 0usize] ; ["Offset of field: tm::tm_min"] [:: core :: mem :: offset_of ! (tm , tm_min) - 4usize] ; ["Offset of field: tm::tm_hour"] [:: core :: mem :: offset_of ! (tm , tm_hour) - 8usize] ; ["Offset of field: tm::tm_mday"] [:: core :: mem :: offset_of ! (tm , tm_mday) - 12usize] ; ["Offset of field: tm::tm_mon"] [:: core :: mem :: offset_of ! (tm , tm_mon) - 16usize] ; ["Offset of field: tm::tm_year"] [:: core :: mem :: offset_of ! (tm , tm_year) - 20usize] ; ["Offset of field: tm::tm_wday"] [:: core :: mem :: offset_of ! (tm , tm_wday) - 24usize] ; ["Offset of field: tm::tm_yday"] [:: core :: mem :: offset_of ! (tm , tm_yday) - 28usize] ; ["Offset of field: tm::tm_isdst"] [:: core :: mem :: offset_of ! (tm , tm_isdst) - 32usize] ; ["Offset of field: tm::tm_gmtoff"] [:: core :: mem :: offset_of ! (tm , tm_gmtoff) - 40usize] ; ["Offset of field: tm::tm_zone"] [:: core :: mem :: offset_of ! (tm , tm_zone) - 48usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct timespec { pub tv_sec : __time_t , pub tv_nsec : __syscall_slong_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of timespec"] [:: core :: mem :: size_of :: < timespec > () - 16usize] ; ["Alignment of timespec"] [:: core :: mem :: align_of :: < timespec > () - 8usize] ; ["Offset of field: timespec::tv_sec"] [:: core :: mem :: offset_of ! (timespec , tv_sec) - 0usize] ; ["Offset of field: timespec::tv_nsec"] [:: core :: mem :: offset_of ! (timespec , tv_nsec) - 8usize] ; } ; pub type clockid_t = __clockid_t ; pub type timer_t = __timer_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct itimerspec { pub it_interval : timespec , pub it_value : timespec , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of itimerspec"] [:: core :: mem :: size_of :: < itimerspec > () - 32usize] ; ["Alignment of itimerspec"] [:: core :: mem :: align_of :: < itimerspec > () - 8usize] ; ["Offset of field: itimerspec::it_interval"] [:: core :: mem :: offset_of ! (itimerspec , it_interval) - 0usize] ; ["Offset of field: itimerspec::it_value"] [:: core :: mem :: offset_of ! (itimerspec , it_value) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct sigevent { _unused : [u8 ; 0] , } pub type pid_t = __pid_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __locale_struct { pub __locales : [* mut __locale_data ; 13usize] , pub __ctype_b : * const :: core :: ffi :: c_ushort , pub __ctype_tolower : * const :: core :: ffi :: c_int , pub __ctype_toupper : * const :: core :: ffi :: c_int , pub __names : [* const :: core :: ffi :: c_char ; 13usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __locale_struct"] [:: core :: mem :: size_of :: < __locale_struct > () - 232usize] ; ["Alignment of __locale_struct"] [:: core :: mem :: align_of :: < __locale_struct > () - 8usize] ; ["Offset of field: __locale_struct::__locales"] [:: core :: mem :: offset_of ! (__locale_struct , __locales) - 0usize] ; ["Offset of field: __locale_struct::__ctype_b"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_b) - 104usize] ; ["Offset of field: __locale_struct::__ctype_tolower"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_tolower) - 112usize] ; ["Offset of field: __locale_struct::__ctype_toupper"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_toupper) - 120usize] ; ["Offset of field: __locale_struct::__names"] [:: core :: mem :: offset_of ! (__locale_struct , __names) - 128usize] ; } ; pub type __locale_t = * mut __locale_struct ; pub type locale_t = __locale_t ; extern "C" { pub fn clock () -> clock_t ; } extern "C" { pub fn time (__timer : * mut time_t) -> time_t ; } extern "C" { pub fn difftime (__time1 : time_t , __time0 : time_t) -> f64 ; } extern "C" { pub fn mktime (__tp : * mut tm) -> time_t ; } extern "C" { pub fn strftime (__s : * mut :: core :: ffi :: c_char , __maxsize : usize , __format : * const :: core :: ffi :: c_char , __tp : * const tm) -> usize ; } extern "C" { pub fn strftime_l (__s : * mut :: core :: ffi :: c_char , __maxsize : usize , __format : * const :: core :: ffi :: c_char , __tp : * const tm , __loc : locale_t) -> usize ; } extern "C" { pub fn gmtime (__timer : * const time_t) -> * mut tm ; } extern "C" { pub fn localtime (__timer : * const time_t) -> * mut tm ; } extern "C" { pub fn gmtime_r (__timer : * const time_t , __tp : * mut tm) -> * mut tm ; } extern "C" { pub fn localtime_r (__timer : * const time_t , __tp : * mut tm) -> * mut tm ; } extern "C" { pub fn asctime (__tp : * const tm) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn ctime (__timer : * const time_t) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn asctime_r (__tp : * const tm , __buf : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn ctime_r (__timer : * const time_t , __buf : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub static mut __tzname : [* mut :: core :: ffi :: c_char ; 2usize] ; } extern "C" { pub static mut __daylight : :: core :: ffi :: c_int ; } extern "C" { pub static mut __timezone : :: core :: ffi :: c_long ; } extern "C" { pub static mut tzname : [* mut :: core :: ffi :: c_char ; 2usize] ; } extern "C" { pub fn tzset () ; } extern "C" { pub static mut daylight : :: core :: ffi :: c_int ; } extern "C" { pub static mut timezone : :: core :: ffi :: c_long ; } extern "C" { pub fn timegm (__tp : * mut tm) -> time_t ; } extern "C" { pub fn timelocal (__tp : * mut tm) -> time_t ; } extern "C" { pub fn dysize (__year : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn nanosleep (__requested_time : * const timespec , __remaining : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_getres (__clock_id : clockid_t , __res : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_gettime (__clock_id : clockid_t , __tp : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_settime (__clock_id : clockid_t , __tp : * const timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_nanosleep (__clock_id : clockid_t , __flags : :: core :: ffi :: c_int , __req : * const timespec , __rem : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_getcpuclockid (__pid : pid_t , __clock_id : * mut clockid_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_create (__clock_id : clockid_t , __evp : * mut sigevent , __timerid : * mut timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_delete (__timerid : timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_settime (__timerid : timer_t , __flags : :: core :: ffi :: c_int , __value : * const itimerspec , __ovalue : * mut itimerspec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_gettime (__timerid : timer_t , __value : * mut itimerspec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_getoverrun (__timerid : timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timespec_get (__ts : * mut timespec , __base : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } # [doc = " API parameters for a login request.\n If both password and api_token are provided, api_token will be ignored."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_login_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub password : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_login_request_t"] [:: core :: mem :: size_of :: < rc_api_login_request_t > () - 24usize] ; ["Alignment of rc_api_login_request_t"] [:: core :: mem :: align_of :: < rc_api_login_request_t > () - 8usize] ; ["Offset of field: rc_api_login_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , username) - 0usize] ; ["Offset of field: rc_api_login_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_login_request_t::password"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , password) - 16usize] ; } ; # [doc = " Response data for a login request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_login_response_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub score : u32 , pub score_softcore : u32 , pub num_unread_messages : u32 , pub display_name : * const :: core :: ffi :: c_char , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_login_response_t"] [:: core :: mem :: size_of :: < rc_api_login_response_t > () - 352usize] ; ["Alignment of rc_api_login_response_t"] [:: core :: mem :: align_of :: < rc_api_login_response_t > () - 8usize] ; ["Offset of field: rc_api_login_response_t::username"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , username) - 0usize] ; ["Offset of field: rc_api_login_response_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , api_token) - 8usize] ; ["Offset of field: rc_api_login_response_t::score"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , score) - 16usize] ; ["Offset of field: rc_api_login_response_t::score_softcore"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , score_softcore) - 20usize] ; ["Offset of field: rc_api_login_response_t::num_unread_messages"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , num_unread_messages) - 24usize] ; ["Offset of field: rc_api_login_response_t::display_name"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , display_name) - 32usize] ; ["Offset of field: rc_api_login_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , response) - 40usize] ; } ; extern "C" { pub fn rc_api_init_login_request (request : * mut rc_api_request_t , api_params : * const rc_api_login_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_login_response (response : * mut rc_api_login_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_login_server_response (response : * mut rc_api_login_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_login_response (response : * mut rc_api_login_response_t) ; } # [doc = " API parameters for a start session request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_start_session_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub game_hash : * const :: core :: ffi :: c_char , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_start_session_request_t"] [:: core :: mem :: size_of :: < rc_api_start_session_request_t > () - 40usize] ; ["Alignment of rc_api_start_session_request_t"] [:: core :: mem :: align_of :: < rc_api_start_session_request_t > () - 8usize] ; ["Offset of field: rc_api_start_session_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , username) - 0usize] ; ["Offset of field: rc_api_start_session_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_start_session_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_start_session_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_start_session_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , hardcore) - 32usize] ; } ; # [doc = " Response data for an achievement unlock."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_unlock_entry_t { pub achievement_id : u32 , pub when : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_unlock_entry_t"] [:: core :: mem :: size_of :: < rc_api_unlock_entry_t > () - 16usize] ; ["Alignment of rc_api_unlock_entry_t"] [:: core :: mem :: align_of :: < rc_api_unlock_entry_t > () - 8usize] ; ["Offset of field: rc_api_unlock_entry_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_unlock_entry_t , achievement_id) - 0usize] ; ["Offset of field: rc_api_unlock_entry_t::when"] [:: core :: mem :: offset_of ! (rc_api_unlock_entry_t , when) - 8usize] ; } ; # [doc = " Response data for a start session request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_start_session_response_t { pub hardcore_unlocks : * mut rc_api_unlock_entry_t , pub unlocks : * mut rc_api_unlock_entry_t , pub num_hardcore_unlocks : u32 , pub num_unlocks : u32 , pub server_now : time_t , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_start_session_response_t"] [:: core :: mem :: size_of :: < rc_api_start_session_response_t > () - 344usize] ; ["Alignment of rc_api_start_session_response_t"] [:: core :: mem :: align_of :: < rc_api_start_session_response_t > () - 8usize] ; ["Offset of field: rc_api_start_session_response_t::hardcore_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , hardcore_unlocks) - 0usize] ; ["Offset of field: rc_api_start_session_response_t::unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , unlocks) - 8usize] ; ["Offset of field: rc_api_start_session_response_t::num_hardcore_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , num_hardcore_unlocks) - 16usize] ; ["Offset of field: rc_api_start_session_response_t::num_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , num_unlocks) - 20usize] ; ["Offset of field: rc_api_start_session_response_t::server_now"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , server_now) - 24usize] ; ["Offset of field: rc_api_start_session_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_start_session_request (request : * mut rc_api_request_t , api_params : * const rc_api_start_session_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_start_session_response (response : * mut rc_api_start_session_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_start_session_server_response (response : * mut rc_api_start_session_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_start_session_response (response : * mut rc_api_start_session_response_t) ; } # [doc = " API parameters for a fetch user unlocks request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_user_unlocks_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_user_unlocks_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_user_unlocks_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_user_unlocks_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_user_unlocks_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , hardcore) - 20usize] ; } ; # [doc = " Response data for a fetch user unlocks request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_user_unlocks_response_t { pub achievement_ids : * mut u32 , pub num_achievement_ids : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_user_unlocks_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_user_unlocks_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_user_unlocks_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_user_unlocks_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::achievement_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , achievement_ids) - 0usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::num_achievement_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , num_achievement_ids) - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_user_unlocks_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_user_unlocks_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_user_unlocks_response (response : * mut rc_api_fetch_user_unlocks_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_user_unlocks_server_response (response : * mut rc_api_fetch_user_unlocks_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_user_unlocks_response (response : * mut rc_api_fetch_user_unlocks_response_t) ; } # [doc = " API parameters for a fetch code notes request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_code_notes_request_t { pub game_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_code_notes_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_code_notes_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_code_notes_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_code_notes_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_code_notes_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_request_t , game_id) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_code_note_t { pub address : u32 , pub author : * const :: core :: ffi :: c_char , pub note : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_code_note_t"] [:: core :: mem :: size_of :: < rc_api_code_note_t > () - 24usize] ; ["Alignment of rc_api_code_note_t"] [:: core :: mem :: align_of :: < rc_api_code_note_t > () - 8usize] ; ["Offset of field: rc_api_code_note_t::address"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , address) - 0usize] ; ["Offset of field: rc_api_code_note_t::author"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , author) - 8usize] ; ["Offset of field: rc_api_code_note_t::note"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , note) - 16usize] ; } ; # [doc = " Response data for a fetch code notes request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_code_notes_response_t { pub notes : * mut rc_api_code_note_t , pub num_notes : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_code_notes_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_code_notes_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_code_notes_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_code_notes_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::notes"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , notes) - 0usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::num_notes"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , num_notes) - 8usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_code_notes_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_code_notes_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_code_notes_response (response : * mut rc_api_fetch_code_notes_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_code_notes_server_response (response : * mut rc_api_fetch_code_notes_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_code_notes_response (response : * mut rc_api_fetch_code_notes_response_t) ; } # [doc = " API parameters for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_code_note_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub address : u32 , pub note : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_code_note_request_t"] [:: core :: mem :: size_of :: < rc_api_update_code_note_request_t > () - 32usize] ; ["Alignment of rc_api_update_code_note_request_t"] [:: core :: mem :: align_of :: < rc_api_update_code_note_request_t > () - 8usize] ; ["Offset of field: rc_api_update_code_note_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_code_note_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_code_note_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_update_code_note_request_t::address"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , address) - 20usize] ; ["Offset of field: rc_api_update_code_note_request_t::note"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , note) - 24usize] ; } ; # [doc = " Response data for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_code_note_response_t { pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_code_note_response_t"] [:: core :: mem :: size_of :: < rc_api_update_code_note_response_t > () - 312usize] ; ["Alignment of rc_api_update_code_note_response_t"] [:: core :: mem :: align_of :: < rc_api_update_code_note_response_t > () - 8usize] ; ["Offset of field: rc_api_update_code_note_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_response_t , response) - 0usize] ; } ; extern "C" { pub fn rc_api_init_update_code_note_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_code_note_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_code_note_response (response : * mut rc_api_update_code_note_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_code_note_server_response (response : * mut rc_api_update_code_note_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_code_note_response (response : * mut rc_api_update_code_note_response_t) ; } # [doc = " API parameters for an update achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_achievement_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub game_id : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub badge : * const :: core :: ffi :: c_char , pub trigger : * const :: core :: ffi :: c_char , pub points : u32 , pub category : u32 , pub type_ : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_achievement_request_t"] [:: core :: mem :: size_of :: < rc_api_update_achievement_request_t > () - 72usize] ; ["Alignment of rc_api_update_achievement_request_t"] [:: core :: mem :: align_of :: < rc_api_update_achievement_request_t > () - 8usize] ; ["Offset of field: rc_api_update_achievement_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_achievement_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_achievement_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_update_achievement_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , game_id) - 20usize] ; ["Offset of field: rc_api_update_achievement_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , title) - 24usize] ; ["Offset of field: rc_api_update_achievement_request_t::description"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , description) - 32usize] ; ["Offset of field: rc_api_update_achievement_request_t::badge"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , badge) - 40usize] ; ["Offset of field: rc_api_update_achievement_request_t::trigger"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , trigger) - 48usize] ; ["Offset of field: rc_api_update_achievement_request_t::points"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , points) - 56usize] ; ["Offset of field: rc_api_update_achievement_request_t::category"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , category) - 60usize] ; ["Offset of field: rc_api_update_achievement_request_t::type_"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , type_) - 64usize] ; } ; # [doc = " Response data for an update achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_achievement_response_t { pub achievement_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_achievement_response_t"] [:: core :: mem :: size_of :: < rc_api_update_achievement_response_t > () - 320usize] ; ["Alignment of rc_api_update_achievement_response_t"] [:: core :: mem :: align_of :: < rc_api_update_achievement_response_t > () - 8usize] ; ["Offset of field: rc_api_update_achievement_response_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_response_t , achievement_id) - 0usize] ; ["Offset of field: rc_api_update_achievement_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_update_achievement_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_achievement_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_achievement_response (response : * mut rc_api_update_achievement_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_achievement_server_response (response : * mut rc_api_update_achievement_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_achievement_response (response : * mut rc_api_update_achievement_response_t) ; } # [doc = " API parameters for an update leaderboard request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_leaderboard_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub leaderboard_id : u32 , pub game_id : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub start_trigger : * const :: core :: ffi :: c_char , pub submit_trigger : * const :: core :: ffi :: c_char , pub cancel_trigger : * const :: core :: ffi :: c_char , pub value_definition : * const :: core :: ffi :: c_char , pub format : * const :: core :: ffi :: c_char , pub lower_is_better : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_leaderboard_request_t"] [:: core :: mem :: size_of :: < rc_api_update_leaderboard_request_t > () - 88usize] ; ["Alignment of rc_api_update_leaderboard_request_t"] [:: core :: mem :: align_of :: < rc_api_update_leaderboard_request_t > () - 8usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , leaderboard_id) - 16usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , game_id) - 20usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , title) - 24usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::description"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , description) - 32usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::start_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , start_trigger) - 40usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::submit_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , submit_trigger) - 48usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::cancel_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , cancel_trigger) - 56usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::value_definition"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , value_definition) - 64usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::format"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , format) - 72usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , lower_is_better) - 80usize] ; } ; # [doc = " Response data for an update leaderboard request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_leaderboard_response_t { pub leaderboard_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_leaderboard_response_t"] [:: core :: mem :: size_of :: < rc_api_update_leaderboard_response_t > () - 320usize] ; ["Alignment of rc_api_update_leaderboard_response_t"] [:: core :: mem :: align_of :: < rc_api_update_leaderboard_response_t > () - 8usize] ; ["Offset of field: rc_api_update_leaderboard_response_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_response_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_api_update_leaderboard_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_update_leaderboard_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_leaderboard_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_leaderboard_response (response : * mut rc_api_update_leaderboard_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_leaderboard_server_response (response : * mut rc_api_update_leaderboard_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_leaderboard_response (response : * mut rc_api_update_leaderboard_response_t) ; } # [doc = " API parameters for a fetch badge range request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_badge_range_request_t { pub unused : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_badge_range_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_badge_range_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_badge_range_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_badge_range_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_badge_range_request_t::unused"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_request_t , unused) - 0usize] ; } ; # [doc = " Response data for a fetch badge range request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_badge_range_response_t { pub first_badge_id : u32 , pub next_badge_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_badge_range_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_badge_range_response_t > () - 320usize] ; ["Alignment of rc_api_fetch_badge_range_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_badge_range_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::first_badge_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , first_badge_id) - 0usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::next_badge_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , next_badge_id) - 4usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_fetch_badge_range_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_badge_range_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_badge_range_response (response : * mut rc_api_fetch_badge_range_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_badge_range_server_response (response : * mut rc_api_fetch_badge_range_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_badge_range_response (response : * mut rc_api_fetch_badge_range_response_t) ; } # [doc = " API parameters for an add game hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_add_game_hash_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub hash : * const :: core :: ffi :: c_char , pub hash_description : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_add_game_hash_request_t"] [:: core :: mem :: size_of :: < rc_api_add_game_hash_request_t > () - 48usize] ; ["Alignment of rc_api_add_game_hash_request_t"] [:: core :: mem :: align_of :: < rc_api_add_game_hash_request_t > () - 8usize] ; ["Offset of field: rc_api_add_game_hash_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , username) - 0usize] ; ["Offset of field: rc_api_add_game_hash_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_add_game_hash_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_add_game_hash_request_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , console_id) - 20usize] ; ["Offset of field: rc_api_add_game_hash_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , title) - 24usize] ; ["Offset of field: rc_api_add_game_hash_request_t::hash"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , hash) - 32usize] ; ["Offset of field: rc_api_add_game_hash_request_t::hash_description"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , hash_description) - 40usize] ; } ; # [doc = " Response data for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_add_game_hash_response_t { pub game_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_add_game_hash_response_t"] [:: core :: mem :: size_of :: < rc_api_add_game_hash_response_t > () - 320usize] ; ["Alignment of rc_api_add_game_hash_response_t"] [:: core :: mem :: align_of :: < rc_api_add_game_hash_response_t > () - 8usize] ; ["Offset of field: rc_api_add_game_hash_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_response_t , game_id) - 0usize] ; ["Offset of field: rc_api_add_game_hash_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_add_game_hash_request (request : * mut rc_api_request_t , api_params : * const rc_api_add_game_hash_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_add_game_hash_response (response : * mut rc_api_add_game_hash_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_add_game_hash_server_response (response : * mut rc_api_add_game_hash_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_add_game_hash_response (response : * mut rc_api_add_game_hash_response_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_t { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_menu_item_t { pub label : * const :: core :: ffi :: c_char , pub id : u32 , pub checked : u8 , pub enabled : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_menu_item_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_menu_item_t > () - 16usize] ; ["Alignment of rc_client_raintegration_menu_item_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_menu_item_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::label"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , label) - 0usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::id"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , id) - 8usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::checked"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , checked) - 12usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::enabled"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , enabled) - 13usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_menu_t { pub items : * mut rc_client_raintegration_menu_item_t , pub num_items : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_menu_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_menu_t > () - 16usize] ; ["Alignment of rc_client_raintegration_menu_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_menu_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_menu_t::items"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_t , items) - 0usize] ; ["Offset of field: rc_client_raintegration_menu_t::num_items"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_t , num_items) - 8usize] ; } ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_NONE : _bindgen_ty_10 = 0 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_PUBLISHED : _bindgen_ty_10 = 1 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_LOCAL : _bindgen_ty_10 = 2 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_MODIFIED : _bindgen_ty_10 = 3 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_INSECURE : _bindgen_ty_10 = 4 ; pub type _bindgen_ty_10 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_RAINTEGRATION_EVENT_TYPE_NONE : _bindgen_ty_11 = 0 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_MENUITEM_CHECKED_CHANGED : _bindgen_ty_11 = 1 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_HARDCORE_CHANGED : _bindgen_ty_11 = 2 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_PAUSE : _bindgen_ty_11 = 3 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_MENU_CHANGED : _bindgen_ty_11 = 4 ; pub type _bindgen_ty_11 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_event_t { pub type_ : u32 , pub menu_item : * const rc_client_raintegration_menu_item_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_event_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_event_t > () - 16usize] ; ["Alignment of rc_client_raintegration_event_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_event_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_event_t::type_"] [:: core :: mem :: offset_of ! (rc_client_raintegration_event_t , type_) - 0usize] ; ["Offset of field: rc_client_raintegration_event_t::menu_item"] [:: core :: mem :: offset_of ! (rc_client_raintegration_event_t , menu_item) - 8usize] ; } ; pub type rc_client_raintegration_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (event : * const rc_client_raintegration_event_t , client : * mut rc_client_t) > ; pub type rc_client_raintegration_write_memory_func_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , buffer : * mut u8 , num_bytes : u32 , client : * mut rc_client_t) > ; pub type rc_client_raintegration_get_game_name_func_t = :: core :: option :: Option < unsafe extern "C" fn (buffer : * mut :: core :: ffi :: c_char , buffer_size : u32 , client : * mut rc_client_t) > ; # [doc = " API parameters for a fetch achievement info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_achievement_info_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub first_entry : u32 , pub count : u32 , pub friends_only : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_achievement_info_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_achievement_info_request_t > () - 32usize] ; ["Alignment of rc_api_fetch_achievement_info_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_achievement_info_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::first_entry"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , first_entry) - 20usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::count"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , count) - 24usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::friends_only"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , friends_only) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_achievement_awarded_entry_t { pub username : * const :: core :: ffi :: c_char , pub awarded : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_achievement_awarded_entry_t"] [:: core :: mem :: size_of :: < rc_api_achievement_awarded_entry_t > () - 16usize] ; ["Alignment of rc_api_achievement_awarded_entry_t"] [:: core :: mem :: align_of :: < rc_api_achievement_awarded_entry_t > () - 8usize] ; ["Offset of field: rc_api_achievement_awarded_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_achievement_awarded_entry_t , username) - 0usize] ; ["Offset of field: rc_api_achievement_awarded_entry_t::awarded"] [:: core :: mem :: offset_of ! (rc_api_achievement_awarded_entry_t , awarded) - 8usize] ; } ; # [doc = " Response data for a fetch achievement info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_achievement_info_response_t { pub id : u32 , pub game_id : u32 , pub num_awarded : u32 , pub num_players : u32 , pub recently_awarded : * mut rc_api_achievement_awarded_entry_t , pub num_recently_awarded : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_achievement_info_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_achievement_info_response_t > () - 344usize] ; ["Alignment of rc_api_fetch_achievement_info_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_achievement_info_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , game_id) - 4usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_awarded) - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_players"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_players) - 12usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::recently_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , recently_awarded) - 16usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_recently_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_recently_awarded) - 24usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_fetch_achievement_info_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_achievement_info_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_achievement_info_response (response : * mut rc_api_fetch_achievement_info_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_achievement_info_server_response (response : * mut rc_api_fetch_achievement_info_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_achievement_info_response (response : * mut rc_api_fetch_achievement_info_response_t) ; } # [doc = " API parameters for a fetch leaderboard info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_leaderboard_info_request_t { pub leaderboard_id : u32 , pub count : u32 , pub first_entry : u32 , pub username : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_leaderboard_info_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_leaderboard_info_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_leaderboard_info_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_leaderboard_info_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::count"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , count) - 4usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::first_entry"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , first_entry) - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , username) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_lboard_info_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub index : u32 , pub score : i32 , pub submitted : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_lboard_info_entry_t"] [:: core :: mem :: size_of :: < rc_api_lboard_info_entry_t > () - 32usize] ; ["Alignment of rc_api_lboard_info_entry_t"] [:: core :: mem :: align_of :: < rc_api_lboard_info_entry_t > () - 8usize] ; ["Offset of field: rc_api_lboard_info_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , username) - 0usize] ; ["Offset of field: rc_api_lboard_info_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , rank) - 8usize] ; ["Offset of field: rc_api_lboard_info_entry_t::index"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , index) - 12usize] ; ["Offset of field: rc_api_lboard_info_entry_t::score"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , score) - 16usize] ; ["Offset of field: rc_api_lboard_info_entry_t::submitted"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , submitted) - 24usize] ; } ; # [doc = " Response data for a fetch leaderboard info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_leaderboard_info_response_t { pub id : u32 , pub format : :: core :: ffi :: c_int , pub lower_is_better : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub game_id : u32 , pub author : * const :: core :: ffi :: c_char , pub created : time_t , pub updated : time_t , pub entries : * mut rc_api_lboard_info_entry_t , pub num_entries : u32 , pub total_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_leaderboard_info_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_leaderboard_info_response_t > () - 400usize] ; ["Alignment of rc_api_fetch_leaderboard_info_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_leaderboard_info_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::format"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , format) - 4usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , lower_is_better) - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::title"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , title) - 16usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::description"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , description) - 24usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::definition"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , definition) - 32usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , game_id) - 40usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::author"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , author) - 48usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::created"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , created) - 56usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::updated"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , updated) - 64usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , entries) - 72usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , num_entries) - 80usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::total_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , total_entries) - 84usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , response) - 88usize] ; } ; extern "C" { pub fn rc_api_init_fetch_leaderboard_info_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_leaderboard_info_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_leaderboard_info_response (response : * mut rc_api_fetch_leaderboard_info_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_leaderboard_info_server_response (response : * mut rc_api_fetch_leaderboard_info_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_leaderboard_info_response (response : * mut rc_api_fetch_leaderboard_info_response_t) ; } # [doc = " API parameters for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_games_list_request_t { pub console_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_games_list_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_games_list_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_games_list_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_games_list_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_games_list_request_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_request_t , console_id) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_game_list_entry_t { pub id : u32 , pub name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_game_list_entry_t"] [:: core :: mem :: size_of :: < rc_api_game_list_entry_t > () - 16usize] ; ["Alignment of rc_api_game_list_entry_t"] [:: core :: mem :: align_of :: < rc_api_game_list_entry_t > () - 8usize] ; ["Offset of field: rc_api_game_list_entry_t::id"] [:: core :: mem :: offset_of ! (rc_api_game_list_entry_t , id) - 0usize] ; ["Offset of field: rc_api_game_list_entry_t::name"] [:: core :: mem :: offset_of ! (rc_api_game_list_entry_t , name) - 8usize] ; } ; # [doc = " Response data for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_games_list_response_t { pub entries : * mut rc_api_game_list_entry_t , pub num_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_games_list_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_games_list_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_games_list_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_games_list_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , entries) - 0usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , num_entries) - 8usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_games_list_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_games_list_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_games_list_response (response : * mut rc_api_fetch_games_list_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_games_list_server_response (response : * mut rc_api_fetch_games_list_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_games_list_response (response : * mut rc_api_fetch_games_list_response_t) ; } # [doc = " API parameters for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_titles_request_t { pub game_ids : * const u32 , pub num_game_ids : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_titles_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_titles_request_t > () - 16usize] ; ["Alignment of rc_api_fetch_game_titles_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_titles_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_request_t::game_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_request_t , game_ids) - 0usize] ; ["Offset of field: rc_api_fetch_game_titles_request_t::num_game_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_request_t , num_game_ids) - 8usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_game_title_entry_t { pub id : u32 , pub title : * const :: core :: ffi :: c_char , pub image_name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_game_title_entry_t"] [:: core :: mem :: size_of :: < rc_api_game_title_entry_t > () - 24usize] ; ["Alignment of rc_api_game_title_entry_t"] [:: core :: mem :: align_of :: < rc_api_game_title_entry_t > () - 8usize] ; ["Offset of field: rc_api_game_title_entry_t::id"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , id) - 0usize] ; ["Offset of field: rc_api_game_title_entry_t::title"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , title) - 8usize] ; ["Offset of field: rc_api_game_title_entry_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , image_name) - 16usize] ; } ; # [doc = " Response data for a fetch games title request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_titles_response_t { pub entries : * mut rc_api_game_title_entry_t , pub num_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_titles_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_titles_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_game_titles_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_titles_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , entries) - 0usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , num_entries) - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_game_titles_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_game_titles_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_titles_server_response (response : * mut rc_api_fetch_game_titles_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_game_titles_response (response : * mut rc_api_fetch_game_titles_response_t) ; } pub type __gnuc_va_list = __builtin_va_list ; # [repr (C)] # [derive (Copy , Clone)] pub struct __mbstate_t { pub __count : :: core :: ffi :: c_int , pub __value : __mbstate_t__bindgen_ty_1 , } # [repr (C)] # [derive (Copy , Clone)] pub union __mbstate_t__bindgen_ty_1 { pub __wch : :: core :: ffi :: c_uint , pub __wchb : [:: core :: ffi :: c_char ; 4usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __mbstate_t__bindgen_ty_1"] [:: core :: mem :: size_of :: < __mbstate_t__bindgen_ty_1 > () - 4usize] ; ["Alignment of __mbstate_t__bindgen_ty_1"] [:: core :: mem :: align_of :: < __mbstate_t__bindgen_ty_1 > () - 4usize] ; ["Offset of field: __mbstate_t__bindgen_ty_1::__wch"] [:: core :: mem :: offset_of ! (__mbstate_t__bindgen_ty_1 , __wch) - 0usize] ; ["Offset of field: __mbstate_t__bindgen_ty_1::__wchb"] [:: core :: mem :: offset_of ! (__mbstate_t__bindgen_ty_1 , __wchb) - 0usize] ; } ; impl :: core :: fmt :: Debug for __mbstate_t__bindgen_ty_1 { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "__mbstate_t__bindgen_ty_1 {{ union }}") } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __mbstate_t"] [:: core :: mem :: size_of :: < __mbstate_t > () - 8usize] ; ["Alignment of __mbstate_t"] [:: core :: mem :: align_of :: < __mbstate_t > () - 4usize] ; ["Offset of field: __mbstate_t::__count"] [:: core :: mem :: offset_of ! (__mbstate_t , __count) - 0usize] ; ["Offset of field: __mbstate_t::__value"] [:: core :: mem :: offset_of ! (__mbstate_t , __value) - 4usize] ; } ; impl :: core :: fmt :: Debug for __mbstate_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "__mbstate_t {{ __count: {:?}, __value: {:?} }}" , self . __count , self . __value) } } # [repr (C)] # [derive (Copy , Clone)] pub struct _G_fpos_t { pub __pos : __off_t , pub __state : __mbstate_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _G_fpos_t"] [:: core :: mem :: size_of :: < _G_fpos_t > () - 16usize] ; ["Alignment of _G_fpos_t"] [:: core :: mem :: align_of :: < _G_fpos_t > () - 8usize] ; ["Offset of field: _G_fpos_t::__pos"] [:: core :: mem :: offset_of ! (_G_fpos_t , __pos) - 0usize] ; ["Offset of field: _G_fpos_t::__state"] [:: core :: mem :: offset_of ! (_G_fpos_t , __state) - 8usize] ; } ; impl :: core :: fmt :: Debug for _G_fpos_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "_G_fpos_t {{ __pos: {:?}, __state: {:?} }}" , self . __pos , self . __state) } } pub type __fpos_t = _G_fpos_t ; # [repr (C)] # [derive (Copy , Clone)] pub struct _G_fpos64_t { pub __pos : __off64_t , pub __state : __mbstate_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _G_fpos64_t"] [:: core :: mem :: size_of :: < _G_fpos64_t > () - 16usize] ; ["Alignment of _G_fpos64_t"] [:: core :: mem :: align_of :: < _G_fpos64_t > () - 8usize] ; ["Offset of field: _G_fpos64_t::__pos"] [:: core :: mem :: offset_of ! (_G_fpos64_t , __pos) - 0usize] ; ["Offset of field: _G_fpos64_t::__state"] [:: core :: mem :: offset_of ! (_G_fpos64_t , __state) - 8usize] ; } ; impl :: core :: fmt :: Debug for _G_fpos64_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "_G_fpos64_t {{ __pos: {:?}, __state: {:?} }}" , self . __pos , self . __state) } } pub type __fpos64_t = _G_fpos64_t ; pub type __FILE = _IO_FILE ; pub type FILE = _IO_FILE ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_marker { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_codecvt { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_wide_data { _unused : [u8 ; 0] , } pub type _IO_lock_t = :: core :: ffi :: c_void ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_FILE { pub _flags : :: core :: ffi :: c_int , pub _IO_read_ptr : * mut :: core :: ffi :: c_char , pub _IO_read_end : * mut :: core :: ffi :: c_char , pub _IO_read_base : * mut :: core :: ffi :: c_char , pub _IO_write_base : * mut :: core :: ffi :: c_char , pub _IO_write_ptr : * mut :: core :: ffi :: c_char , pub _IO_write_end : * mut :: core :: ffi :: c_char , pub _IO_buf_base : * mut :: core :: ffi :: c_char , pub _IO_buf_end : * mut :: core :: ffi :: c_char , pub _IO_save_base : * mut :: core :: ffi :: c_char , pub _IO_backup_base : * mut :: core :: ffi :: c_char , pub _IO_save_end : * mut :: core :: ffi :: c_char , pub _markers : * mut _IO_marker , pub _chain : * mut _IO_FILE , pub _fileno : :: core :: ffi :: c_int , pub _bitfield_align_1 : [u32 ; 0] , pub _bitfield_1 : __BindgenBitfieldUnit < [u8 ; 3usize] > , pub _short_backupbuf : [:: core :: ffi :: c_char ; 1usize] , pub _old_offset : __off_t , pub _cur_column : :: core :: ffi :: c_ushort , pub _vtable_offset : :: core :: ffi :: c_schar , pub _shortbuf : [:: core :: ffi :: c_char ; 1usize] , pub _lock : * mut _IO_lock_t , pub _offset : __off64_t , pub _codecvt : * mut _IO_codecvt , pub _wide_data : * mut _IO_wide_data , pub _freeres_list : * mut _IO_FILE , pub _freeres_buf : * mut :: core :: ffi :: c_void , pub _prevchain : * mut * mut _IO_FILE , pub _mode : :: core :: ffi :: c_int , pub _unused3 : :: core :: ffi :: c_int , pub _total_written : __uint64_t , pub _unused2 : [:: core :: ffi :: c_char ; 8usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _IO_FILE"] [:: core :: mem :: size_of :: < _IO_FILE > () - 216usize] ; ["Alignment of _IO_FILE"] [:: core :: mem :: align_of :: < _IO_FILE > () - 8usize] ; ["Offset of field: _IO_FILE::_flags"] [:: core :: mem :: offset_of ! (_IO_FILE , _flags) - 0usize] ; ["Offset of field: _IO_FILE::_IO_read_ptr"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_ptr) - 8usize] ; ["Offset of field: _IO_FILE::_IO_read_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_end) - 16usize] ; ["Offset of field: _IO_FILE::_IO_read_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_base) - 24usize] ; ["Offset of field: _IO_FILE::_IO_write_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_base) - 32usize] ; ["Offset of field: _IO_FILE::_IO_write_ptr"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_ptr) - 40usize] ; ["Offset of field: _IO_FILE::_IO_write_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_end) - 48usize] ; ["Offset of field: _IO_FILE::_IO_buf_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_buf_base) - 56usize] ; ["Offset of field: _IO_FILE::_IO_buf_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_buf_end) - 64usize] ; ["Offset of field: _IO_FILE::_IO_save_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_save_base) - 72usize] ; ["Offset of field: _IO_FILE::_IO_backup_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_backup_base) - 80usize] ; ["Offset of field: _IO_FILE::_IO_save_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_save_end) - 88usize] ; ["Offset of field: _IO_FILE::_markers"] [:: core :: mem :: offset_of ! (_IO_FILE , _markers) - 96usize] ; ["Offset of field: _IO_FILE::_chain"] [:: core :: mem :: offset_of ! (_IO_FILE , _chain) - 104usize] ; ["Offset of field: _IO_FILE::_fileno"] [:: core :: mem :: offset_of ! (_IO_FILE , _fileno) - 112usize] ; ["Offset of field: _IO_FILE::_short_backupbuf"] [:: core :: mem :: offset_of ! (_IO_FILE , _short_backupbuf) - 119usize] ; ["Offset of field: _IO_FILE::_old_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _old_offset) - 120usize] ; ["Offset of field: _IO_FILE::_cur_column"] [:: core :: mem :: offset_of ! (_IO_FILE , _cur_column) - 128usize] ; ["Offset of field: _IO_FILE::_vtable_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _vtable_offset) - 130usize] ; ["Offset of field: _IO_FILE::_shortbuf"] [:: core :: mem :: offset_of ! (_IO_FILE , _shortbuf) - 131usize] ; ["Offset of field: _IO_FILE::_lock"] [:: core :: mem :: offset_of ! (_IO_FILE , _lock) - 136usize] ; ["Offset of field: _IO_FILE::_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _offset) - 144usize] ; ["Offset of field: _IO_FILE::_codecvt"] [:: core :: mem :: offset_of ! (_IO_FILE , _codecvt) - 152usize] ; ["Offset of field: _IO_FILE::_wide_data"] [:: core :: mem :: offset_of ! (_IO_FILE , _wide_data) - 160usize] ; ["Offset of field: _IO_FILE::_freeres_list"] [:: core :: mem :: offset_of ! (_IO_FILE , _freeres_list) - 168usize] ; ["Offset of field: _IO_FILE::_freeres_buf"] [:: core :: mem :: offset_of ! (_IO_FILE , _freeres_buf) - 176usize] ; ["Offset of field: _IO_FILE::_prevchain"] [:: core :: mem :: offset_of ! (_IO_FILE , _prevchain) - 184usize] ; ["Offset of field: _IO_FILE::_mode"] [:: core :: mem :: offset_of ! (_IO_FILE , _mode) - 192usize] ; ["Offset of field: _IO_FILE::_unused3"] [:: core :: mem :: offset_of ! (_IO_FILE , _unused3) - 196usize] ; ["Offset of field: _IO_FILE::_total_written"] [:: core :: mem :: offset_of ! (_IO_FILE , _total_written) - 200usize] ; ["Offset of field: _IO_FILE::_unused2"] [:: core :: mem :: offset_of ! (_IO_FILE , _unused2) - 208usize] ; } ; impl _IO_FILE { # [inline] pub fn _flags2 (& self) -> :: core :: ffi :: c_int { unsafe { :: core :: mem :: transmute (self . _bitfield_1 . get (0usize , 24u8) as u32) } } # [inline] pub fn set__flags2 (& mut self , val : :: core :: ffi :: c_int) { unsafe { let val : u32 = :: core :: mem :: transmute (val) ; self . _bitfield_1 . set (0usize , 24u8 , val as u64) } } # [inline] pub fn new_bitfield_1 (_flags2 : :: core :: ffi :: c_int) -> __BindgenBitfieldUnit < [u8 ; 3usize] > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [u8 ; 3usize] > = Default :: default () ; __bindgen_bitfield_unit . set (0usize , 24u8 , { let _flags2 : u32 = unsafe { :: core :: mem :: transmute (_flags2) } ; _flags2 as u64 }) ; __bindgen_bitfield_unit } } pub type cookie_read_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __buf : * mut :: core :: ffi :: c_char , __nbytes : usize) -> __ssize_t > ; pub type cookie_write_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __buf : * const :: core :: ffi :: c_char , __nbytes : usize) -> __ssize_t > ; pub type cookie_seek_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __pos : * mut __off64_t , __w : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int > ; pub type cookie_close_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void) -> :: core :: ffi :: 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 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _IO_cookie_io_functions_t"] [:: core :: mem :: size_of :: < _IO_cookie_io_functions_t > () - 32usize] ; ["Alignment of _IO_cookie_io_functions_t"] [:: core :: mem :: align_of :: < _IO_cookie_io_functions_t > () - 8usize] ; ["Offset of field: _IO_cookie_io_functions_t::read"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , read) - 0usize] ; ["Offset of field: _IO_cookie_io_functions_t::write"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , write) - 8usize] ; ["Offset of field: _IO_cookie_io_functions_t::seek"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , seek) - 16usize] ; ["Offset of field: _IO_cookie_io_functions_t::close"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , close) - 24usize] ; } ; 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" { pub static mut stdin : * mut FILE ; } extern "C" { pub static mut stdout : * mut FILE ; } extern "C" { pub static mut stderr : * mut FILE ; } extern "C" { pub fn remove (__filename : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rename (__old : * const :: core :: ffi :: c_char , __new : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn renameat (__oldfd : :: core :: ffi :: c_int , __old : * const :: core :: ffi :: c_char , __newfd : :: core :: ffi :: c_int , __new : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fclose (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn tmpfile () -> * mut FILE ; } extern "C" { pub fn tmpnam (arg1 : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn tmpnam_r (__s : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn tempnam (__dir : * const :: core :: ffi :: c_char , __pfx : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn fflush (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fflush_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fopen (__filename : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn freopen (__filename : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char , __stream : * mut FILE) -> * mut FILE ; } extern "C" { pub fn fdopen (__fd : :: core :: ffi :: c_int , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn fopencookie (__magic_cookie : * mut :: core :: ffi :: c_void , __modes : * const :: core :: ffi :: c_char , __io_funcs : cookie_io_functions_t) -> * mut FILE ; } extern "C" { pub fn fmemopen (__s : * mut :: core :: ffi :: c_void , __len : usize , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn open_memstream (__bufloc : * mut * mut :: core :: ffi :: c_char , __sizeloc : * mut usize) -> * mut FILE ; } extern "C" { pub fn setbuf (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char) ; } extern "C" { pub fn setvbuf (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char , __modes : :: core :: ffi :: c_int , __n : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn setbuffer (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char , __size : usize) ; } extern "C" { pub fn setlinebuf (__stream : * mut FILE) ; } extern "C" { pub fn fprintf (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn printf (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn sprintf (__s : * mut :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vfprintf (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vprintf (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsprintf (__s : * mut :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn snprintf (__s : * mut :: core :: ffi :: c_char , __maxlen : :: core :: ffi :: c_ulong , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsnprintf (__s : * mut :: core :: ffi :: c_char , __maxlen : :: core :: ffi :: c_ulong , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vasprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __f : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn __asprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn asprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vdprintf (__fd : :: core :: ffi :: c_int , __fmt : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn dprintf (__fd : :: core :: ffi :: c_int , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fscanf (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn scanf (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn sscanf (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } pub type __cfloat128 = __BindgenComplex < u128 > ; pub type _Float128 = u128 ; pub type _Float32 = f32 ; pub type _Float64 = f64 ; pub type _Float32x = f64 ; pub type _Float64x = u128 ; extern "C" { # [link_name = "\u{1}__isoc99_fscanf"] pub fn fscanf1 (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_scanf"] pub fn scanf1 (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_sscanf"] pub fn sscanf1 (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vfscanf (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vscanf (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsscanf (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vfscanf"] pub fn vfscanf1 (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vscanf"] pub fn vscanf1 (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vsscanf"] pub fn vsscanf1 (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgetc (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getc (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getchar () -> :: core :: ffi :: c_int ; } extern "C" { pub fn getc_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getchar_unlocked () -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgetc_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fputc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putchar (__c : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fputc_unlocked (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putc_unlocked (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putchar_unlocked (__c : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getw (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putw (__w : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgets (__s : * mut :: core :: ffi :: c_char , __n : :: core :: ffi :: c_int , __stream : * mut FILE) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn __getdelim (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __delimiter : :: core :: ffi :: c_int , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn getdelim (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __delimiter : :: core :: ffi :: c_int , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn getline (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn fputs (__s : * const :: core :: ffi :: c_char , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn puts (__s : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ungetc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fread (__ptr : * mut :: core :: ffi :: c_void , __size : :: core :: ffi :: c_ulong , __n : :: core :: ffi :: c_ulong , __stream : * mut FILE) -> :: core :: ffi :: c_ulong ; } extern "C" { pub fn fwrite (__ptr : * const :: core :: ffi :: c_void , __size : :: core :: ffi :: c_ulong , __n : :: core :: ffi :: c_ulong , __s : * mut FILE) -> :: core :: ffi :: c_ulong ; } extern "C" { pub fn fread_unlocked (__ptr : * mut :: core :: ffi :: c_void , __size : usize , __n : usize , __stream : * mut FILE) -> usize ; } extern "C" { pub fn fwrite_unlocked (__ptr : * const :: core :: ffi :: c_void , __size : usize , __n : usize , __stream : * mut FILE) -> usize ; } extern "C" { pub fn fseek (__stream : * mut FILE , __off : :: core :: ffi :: c_long , __whence : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ftell (__stream : * mut FILE) -> :: core :: ffi :: c_long ; } extern "C" { pub fn rewind (__stream : * mut FILE) ; } extern "C" { pub fn fseeko (__stream : * mut FILE , __off : __off_t , __whence : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ftello (__stream : * mut FILE) -> __off_t ; } extern "C" { pub fn fgetpos (__stream : * mut FILE , __pos : * mut fpos_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fsetpos (__stream : * mut FILE , __pos : * const fpos_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clearerr (__stream : * mut FILE) ; } extern "C" { pub fn feof (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ferror (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clearerr_unlocked (__stream : * mut FILE) ; } extern "C" { pub fn feof_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ferror_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn perror (__s : * const :: core :: ffi :: c_char) ; } extern "C" { pub fn fileno (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fileno_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn pclose (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn popen (__command : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn ctermid (__s : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn flockfile (__stream : * mut FILE) ; } extern "C" { pub fn ftrylockfile (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn funlockfile (__stream : * mut FILE) ; } extern "C" { pub fn __uflow (arg1 : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn __overflow (arg1 : * mut FILE , arg2 : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } pub const RC_CONSOLE_UNKNOWN : _bindgen_ty_12 = 0 ; pub const RC_CONSOLE_MEGA_DRIVE : _bindgen_ty_12 = 1 ; pub const RC_CONSOLE_NINTENDO_64 : _bindgen_ty_12 = 2 ; pub const RC_CONSOLE_SUPER_NINTENDO : _bindgen_ty_12 = 3 ; pub const RC_CONSOLE_GAMEBOY : _bindgen_ty_12 = 4 ; pub const RC_CONSOLE_GAMEBOY_ADVANCE : _bindgen_ty_12 = 5 ; pub const RC_CONSOLE_GAMEBOY_COLOR : _bindgen_ty_12 = 6 ; pub const RC_CONSOLE_NINTENDO : _bindgen_ty_12 = 7 ; pub const RC_CONSOLE_PC_ENGINE : _bindgen_ty_12 = 8 ; pub const RC_CONSOLE_SEGA_CD : _bindgen_ty_12 = 9 ; pub const RC_CONSOLE_SEGA_32X : _bindgen_ty_12 = 10 ; pub const RC_CONSOLE_MASTER_SYSTEM : _bindgen_ty_12 = 11 ; pub const RC_CONSOLE_PLAYSTATION : _bindgen_ty_12 = 12 ; pub const RC_CONSOLE_ATARI_LYNX : _bindgen_ty_12 = 13 ; pub const RC_CONSOLE_NEOGEO_POCKET : _bindgen_ty_12 = 14 ; pub const RC_CONSOLE_GAME_GEAR : _bindgen_ty_12 = 15 ; pub const RC_CONSOLE_GAMECUBE : _bindgen_ty_12 = 16 ; pub const RC_CONSOLE_ATARI_JAGUAR : _bindgen_ty_12 = 17 ; pub const RC_CONSOLE_NINTENDO_DS : _bindgen_ty_12 = 18 ; pub const RC_CONSOLE_WII : _bindgen_ty_12 = 19 ; pub const RC_CONSOLE_WII_U : _bindgen_ty_12 = 20 ; pub const RC_CONSOLE_PLAYSTATION_2 : _bindgen_ty_12 = 21 ; pub const RC_CONSOLE_XBOX : _bindgen_ty_12 = 22 ; pub const RC_CONSOLE_MAGNAVOX_ODYSSEY2 : _bindgen_ty_12 = 23 ; pub const RC_CONSOLE_POKEMON_MINI : _bindgen_ty_12 = 24 ; pub const RC_CONSOLE_ATARI_2600 : _bindgen_ty_12 = 25 ; pub const RC_CONSOLE_MS_DOS : _bindgen_ty_12 = 26 ; pub const RC_CONSOLE_ARCADE : _bindgen_ty_12 = 27 ; pub const RC_CONSOLE_VIRTUAL_BOY : _bindgen_ty_12 = 28 ; pub const RC_CONSOLE_MSX : _bindgen_ty_12 = 29 ; pub const RC_CONSOLE_COMMODORE_64 : _bindgen_ty_12 = 30 ; pub const RC_CONSOLE_ZX81 : _bindgen_ty_12 = 31 ; pub const RC_CONSOLE_ORIC : _bindgen_ty_12 = 32 ; pub const RC_CONSOLE_SG1000 : _bindgen_ty_12 = 33 ; pub const RC_CONSOLE_VIC20 : _bindgen_ty_12 = 34 ; pub const RC_CONSOLE_AMIGA : _bindgen_ty_12 = 35 ; pub const RC_CONSOLE_ATARI_ST : _bindgen_ty_12 = 36 ; pub const RC_CONSOLE_AMSTRAD_PC : _bindgen_ty_12 = 37 ; pub const RC_CONSOLE_APPLE_II : _bindgen_ty_12 = 38 ; pub const RC_CONSOLE_SATURN : _bindgen_ty_12 = 39 ; pub const RC_CONSOLE_DREAMCAST : _bindgen_ty_12 = 40 ; pub const RC_CONSOLE_PSP : _bindgen_ty_12 = 41 ; pub const RC_CONSOLE_CDI : _bindgen_ty_12 = 42 ; pub const RC_CONSOLE_3DO : _bindgen_ty_12 = 43 ; pub const RC_CONSOLE_COLECOVISION : _bindgen_ty_12 = 44 ; pub const RC_CONSOLE_INTELLIVISION : _bindgen_ty_12 = 45 ; pub const RC_CONSOLE_VECTREX : _bindgen_ty_12 = 46 ; pub const RC_CONSOLE_PC8800 : _bindgen_ty_12 = 47 ; pub const RC_CONSOLE_PC9800 : _bindgen_ty_12 = 48 ; pub const RC_CONSOLE_PCFX : _bindgen_ty_12 = 49 ; pub const RC_CONSOLE_ATARI_5200 : _bindgen_ty_12 = 50 ; pub const RC_CONSOLE_ATARI_7800 : _bindgen_ty_12 = 51 ; pub const RC_CONSOLE_X68K : _bindgen_ty_12 = 52 ; pub const RC_CONSOLE_WONDERSWAN : _bindgen_ty_12 = 53 ; pub const RC_CONSOLE_CASSETTEVISION : _bindgen_ty_12 = 54 ; pub const RC_CONSOLE_SUPER_CASSETTEVISION : _bindgen_ty_12 = 55 ; pub const RC_CONSOLE_NEO_GEO_CD : _bindgen_ty_12 = 56 ; pub const RC_CONSOLE_FAIRCHILD_CHANNEL_F : _bindgen_ty_12 = 57 ; pub const RC_CONSOLE_FM_TOWNS : _bindgen_ty_12 = 58 ; pub const RC_CONSOLE_ZX_SPECTRUM : _bindgen_ty_12 = 59 ; pub const RC_CONSOLE_GAME_AND_WATCH : _bindgen_ty_12 = 60 ; pub const RC_CONSOLE_NOKIA_NGAGE : _bindgen_ty_12 = 61 ; pub const RC_CONSOLE_NINTENDO_3DS : _bindgen_ty_12 = 62 ; pub const RC_CONSOLE_SUPERVISION : _bindgen_ty_12 = 63 ; pub const RC_CONSOLE_SHARPX1 : _bindgen_ty_12 = 64 ; pub const RC_CONSOLE_TIC80 : _bindgen_ty_12 = 65 ; pub const RC_CONSOLE_THOMSONTO8 : _bindgen_ty_12 = 66 ; pub const RC_CONSOLE_PC6000 : _bindgen_ty_12 = 67 ; pub const RC_CONSOLE_PICO : _bindgen_ty_12 = 68 ; pub const RC_CONSOLE_MEGADUCK : _bindgen_ty_12 = 69 ; pub const RC_CONSOLE_ZEEBO : _bindgen_ty_12 = 70 ; pub const RC_CONSOLE_ARDUBOY : _bindgen_ty_12 = 71 ; pub const RC_CONSOLE_WASM4 : _bindgen_ty_12 = 72 ; pub const RC_CONSOLE_ARCADIA_2001 : _bindgen_ty_12 = 73 ; pub const RC_CONSOLE_INTERTON_VC_4000 : _bindgen_ty_12 = 74 ; pub const RC_CONSOLE_ELEKTOR_TV_GAMES_COMPUTER : _bindgen_ty_12 = 75 ; pub const RC_CONSOLE_PC_ENGINE_CD : _bindgen_ty_12 = 76 ; pub const RC_CONSOLE_ATARI_JAGUAR_CD : _bindgen_ty_12 = 77 ; pub const RC_CONSOLE_NINTENDO_DSI : _bindgen_ty_12 = 78 ; pub const RC_CONSOLE_TI83 : _bindgen_ty_12 = 79 ; pub const RC_CONSOLE_UZEBOX : _bindgen_ty_12 = 80 ; pub const RC_CONSOLE_HUBS : _bindgen_ty_12 = 100 ; pub const RC_CONSOLE_EVENTS : _bindgen_ty_12 = 101 ; pub const RC_CONSOLE_STANDALONE : _bindgen_ty_12 = 102 ; # [doc = "\\\n| Console identifiers                                                         |\n\\"] pub type _bindgen_ty_12 = :: core :: ffi :: c_uint ; extern "C" { pub fn rc_console_name (console_id : u32) -> * const :: core :: ffi :: c_char ; } pub const RC_MEMORY_TYPE_SYSTEM_RAM : _bindgen_ty_13 = 0 ; pub const RC_MEMORY_TYPE_SAVE_RAM : _bindgen_ty_13 = 1 ; pub const RC_MEMORY_TYPE_VIDEO_RAM : _bindgen_ty_13 = 2 ; pub const RC_MEMORY_TYPE_READONLY : _bindgen_ty_13 = 3 ; pub const RC_MEMORY_TYPE_HARDWARE_CONTROLLER : _bindgen_ty_13 = 4 ; pub const RC_MEMORY_TYPE_VIRTUAL_RAM : _bindgen_ty_13 = 5 ; pub const RC_MEMORY_TYPE_UNUSED : _bindgen_ty_13 = 6 ; # [doc = "\\\n| Memory mapping                                                              |\n\\"] pub type _bindgen_ty_13 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memory_region_t { pub start_address : u32 , pub end_address : u32 , pub real_address : u32 , pub type_ : u8 , pub description : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memory_region_t"] [:: core :: mem :: size_of :: < rc_memory_region_t > () - 24usize] ; ["Alignment of rc_memory_region_t"] [:: core :: mem :: align_of :: < rc_memory_region_t > () - 8usize] ; ["Offset of field: rc_memory_region_t::start_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , start_address) - 0usize] ; ["Offset of field: rc_memory_region_t::end_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , end_address) - 4usize] ; ["Offset of field: rc_memory_region_t::real_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , real_address) - 8usize] ; ["Offset of field: rc_memory_region_t::type_"] [:: core :: mem :: offset_of ! (rc_memory_region_t , type_) - 12usize] ; ["Offset of field: rc_memory_region_t::description"] [:: core :: mem :: offset_of ! (rc_memory_region_t , description) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memory_regions_t { pub region : * const rc_memory_region_t , pub num_regions : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memory_regions_t"] [:: core :: mem :: size_of :: < rc_memory_regions_t > () - 16usize] ; ["Alignment of rc_memory_regions_t"] [:: core :: mem :: align_of :: < rc_memory_regions_t > () - 8usize] ; ["Offset of field: rc_memory_regions_t::region"] [:: core :: mem :: offset_of ! (rc_memory_regions_t , region) - 0usize] ; ["Offset of field: rc_memory_regions_t::num_regions"] [:: core :: mem :: offset_of ! (rc_memory_regions_t , num_regions) - 8usize] ; } ; extern "C" { pub fn rc_console_memory_regions (console_id : u32) -> * const rc_memory_regions_t ; } extern "C" { pub fn rc_hash_generate_from_buffer (hash : * mut :: core :: ffi :: c_char , console_id : u32 , buffer : * const u8 , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_hash_generate_from_file (hash : * mut :: core :: ffi :: c_char , console_id : u32 , path : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_iterator { pub buffer : * const u8 , pub buffer_size : usize , pub consoles : [u8 ; 12usize] , pub index : :: core :: ffi :: c_int , pub path : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_iterator"] [:: core :: mem :: size_of :: < rc_hash_iterator > () - 40usize] ; ["Alignment of rc_hash_iterator"] [:: core :: mem :: align_of :: < rc_hash_iterator > () - 8usize] ; ["Offset of field: rc_hash_iterator::buffer"] [:: core :: mem :: offset_of ! (rc_hash_iterator , buffer) - 0usize] ; ["Offset of field: rc_hash_iterator::buffer_size"] [:: core :: mem :: offset_of ! (rc_hash_iterator , buffer_size) - 8usize] ; ["Offset of field: rc_hash_iterator::consoles"] [:: core :: mem :: offset_of ! (rc_hash_iterator , consoles) - 16usize] ; ["Offset of field: rc_hash_iterator::index"] [:: core :: mem :: offset_of ! (rc_hash_iterator , index) - 28usize] ; ["Offset of field: rc_hash_iterator::path"] [:: core :: mem :: offset_of ! (rc_hash_iterator , path) - 32usize] ; } ; pub type rc_hash_iterator_t = rc_hash_iterator ; extern "C" { pub fn rc_hash_initialize_iterator (iterator : * mut rc_hash_iterator , path : * const :: core :: ffi :: c_char , buffer : * const u8 , buffer_size : usize) ; } extern "C" { pub fn rc_hash_destroy_iterator (iterator : * mut rc_hash_iterator) ; } extern "C" { pub fn rc_hash_iterate (hash : * mut :: core :: ffi :: c_char , iterator : * mut rc_hash_iterator) -> :: core :: ffi :: c_int ; } pub type rc_hash_message_callback = :: core :: option :: Option < unsafe extern "C" fn (arg1 : * const :: core :: ffi :: c_char) > ; extern "C" { pub fn rc_hash_init_error_message_callback (callback : rc_hash_message_callback) ; } extern "C" { pub fn rc_hash_init_verbose_message_callback (callback : rc_hash_message_callback) ; } pub type rc_hash_filereader_open_file_handler = :: core :: option :: Option < unsafe extern "C" fn (path_utf8 : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_void > ; pub type rc_hash_filereader_seek_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void , offset : i64 , origin : :: core :: ffi :: c_int) > ; pub type rc_hash_filereader_tell_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void) -> i64 > ; pub type rc_hash_filereader_read_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void , buffer : * mut :: core :: ffi :: c_void , requested_bytes : usize) -> usize > ; pub type rc_hash_filereader_close_file_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void) > ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_filereader { pub open : rc_hash_filereader_open_file_handler , pub seek : rc_hash_filereader_seek_handler , pub tell : rc_hash_filereader_tell_handler , pub read : rc_hash_filereader_read_handler , pub close : rc_hash_filereader_close_file_handler , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_filereader"] [:: core :: mem :: size_of :: < rc_hash_filereader > () - 40usize] ; ["Alignment of rc_hash_filereader"] [:: core :: mem :: align_of :: < rc_hash_filereader > () - 8usize] ; ["Offset of field: rc_hash_filereader::open"] [:: core :: mem :: offset_of ! (rc_hash_filereader , open) - 0usize] ; ["Offset of field: rc_hash_filereader::seek"] [:: core :: mem :: offset_of ! (rc_hash_filereader , seek) - 8usize] ; ["Offset of field: rc_hash_filereader::tell"] [:: core :: mem :: offset_of ! (rc_hash_filereader , tell) - 16usize] ; ["Offset of field: rc_hash_filereader::read"] [:: core :: mem :: offset_of ! (rc_hash_filereader , read) - 24usize] ; ["Offset of field: rc_hash_filereader::close"] [:: core :: mem :: offset_of ! (rc_hash_filereader , close) - 32usize] ; } ; extern "C" { pub fn rc_hash_init_custom_filereader (reader : * mut rc_hash_filereader) ; } pub type rc_hash_cdreader_open_track_handler = :: core :: option :: Option < unsafe extern "C" fn (path : * const :: core :: ffi :: c_char , track : u32) -> * mut :: core :: ffi :: c_void > ; pub type rc_hash_cdreader_read_sector_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void , sector : u32 , buffer : * mut :: core :: ffi :: c_void , requested_bytes : usize) -> usize > ; pub type rc_hash_cdreader_close_track_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void) > ; pub type rc_hash_cdreader_first_track_sector_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void) -> u32 > ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_cdreader { pub open_track : rc_hash_cdreader_open_track_handler , pub read_sector : rc_hash_cdreader_read_sector_handler , pub close_track : rc_hash_cdreader_close_track_handler , pub first_track_sector : rc_hash_cdreader_first_track_sector_handler , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_cdreader"] [:: core :: mem :: size_of :: < rc_hash_cdreader > () - 32usize] ; ["Alignment of rc_hash_cdreader"] [:: core :: mem :: align_of :: < rc_hash_cdreader > () - 8usize] ; ["Offset of field: rc_hash_cdreader::open_track"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , open_track) - 0usize] ; ["Offset of field: rc_hash_cdreader::read_sector"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , read_sector) - 8usize] ; ["Offset of field: rc_hash_cdreader::close_track"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , close_track) - 16usize] ; ["Offset of field: rc_hash_cdreader::first_track_sector"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , first_track_sector) - 24usize] ; } ; extern "C" { pub fn rc_hash_get_default_cdreader (cdreader : * mut rc_hash_cdreader) ; } extern "C" { pub fn rc_hash_init_default_cdreader () ; } extern "C" { pub fn rc_hash_init_custom_cdreader (reader : * mut rc_hash_cdreader) ; } pub type rc_hash_3ds_get_cia_normal_key_func = :: core :: option :: Option < unsafe extern "C" fn (common_key_index : u8 , out_normal_key : * mut u8) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_hash_init_3ds_get_cia_normal_key_func (func : rc_hash_3ds_get_cia_normal_key_func) ; } pub type rc_hash_3ds_get_ncch_normal_keys_func = :: core :: option :: Option < unsafe extern "C" fn (primary_key_y : * mut u8 , secondary_key_x_slot : u8 , optional_program_id : * mut u8 , out_primary_key : * mut u8 , out_secondary_key : * mut u8) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_hash_init_3ds_get_ncch_normal_keys_func (func : rc_hash_3ds_get_ncch_normal_keys_func) ; } # [doc = " API parameters for a fetch image request.\n NOTE: fetch image server response is the raw image data. There is no rc_api_process_fetch_image_response function."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_image_request_t { pub image_name : * const :: core :: ffi :: c_char , pub image_type : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_image_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_image_request_t > () - 16usize] ; ["Alignment of rc_api_fetch_image_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_image_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_image_request_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_fetch_image_request_t , image_name) - 0usize] ; ["Offset of field: rc_api_fetch_image_request_t::image_type"] [:: core :: mem :: offset_of ! (rc_api_fetch_image_request_t , image_type) - 8usize] ; } ; extern "C" { pub fn rc_api_init_fetch_image_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_image_request_t) -> :: core :: ffi :: c_int ; } # [doc = " API parameters for a resolve hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_resolve_hash_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_hash : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_resolve_hash_request_t"] [:: core :: mem :: size_of :: < rc_api_resolve_hash_request_t > () - 24usize] ; ["Alignment of rc_api_resolve_hash_request_t"] [:: core :: mem :: align_of :: < rc_api_resolve_hash_request_t > () - 8usize] ; ["Offset of field: rc_api_resolve_hash_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , username) - 0usize] ; ["Offset of field: rc_api_resolve_hash_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_resolve_hash_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , game_hash) - 16usize] ; } ; # [doc = " Response data for a resolve hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_resolve_hash_response_t { pub game_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_resolve_hash_response_t"] [:: core :: mem :: size_of :: < rc_api_resolve_hash_response_t > () - 320usize] ; ["Alignment of rc_api_resolve_hash_response_t"] [:: core :: mem :: align_of :: < rc_api_resolve_hash_response_t > () - 8usize] ; ["Offset of field: rc_api_resolve_hash_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_response_t , game_id) - 0usize] ; ["Offset of field: rc_api_resolve_hash_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_resolve_hash_request (request : * mut rc_api_request_t , api_params : * const rc_api_resolve_hash_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_resolve_hash_response (response : * mut rc_api_resolve_hash_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_resolve_hash_server_response (response : * mut rc_api_resolve_hash_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_resolve_hash_response (response : * mut rc_api_resolve_hash_response_t) ; } # [doc = " API parameters for a fetch game data request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_data_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_data_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_data_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_game_data_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_data_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , game_id) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_leaderboard_definition_t { pub id : u32 , pub format : :: core :: ffi :: c_int , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub lower_is_better : u8 , pub hidden : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_leaderboard_definition_t"] [:: core :: mem :: size_of :: < rc_api_leaderboard_definition_t > () - 40usize] ; ["Alignment of rc_api_leaderboard_definition_t"] [:: core :: mem :: align_of :: < rc_api_leaderboard_definition_t > () - 8usize] ; ["Offset of field: rc_api_leaderboard_definition_t::id"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , id) - 0usize] ; ["Offset of field: rc_api_leaderboard_definition_t::format"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , format) - 4usize] ; ["Offset of field: rc_api_leaderboard_definition_t::title"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , title) - 8usize] ; ["Offset of field: rc_api_leaderboard_definition_t::description"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , description) - 16usize] ; ["Offset of field: rc_api_leaderboard_definition_t::definition"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , definition) - 24usize] ; ["Offset of field: rc_api_leaderboard_definition_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , lower_is_better) - 32usize] ; ["Offset of field: rc_api_leaderboard_definition_t::hidden"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , hidden) - 33usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_achievement_definition_t { pub id : u32 , pub points : u32 , pub category : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub author : * const :: core :: ffi :: c_char , pub badge_name : * const :: core :: ffi :: c_char , pub created : time_t , pub updated : time_t , pub type_ : u32 , pub rarity : f32 , pub rarity_hardcore : f32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_achievement_definition_t"] [:: core :: mem :: size_of :: < rc_api_achievement_definition_t > () - 88usize] ; ["Alignment of rc_api_achievement_definition_t"] [:: core :: mem :: align_of :: < rc_api_achievement_definition_t > () - 8usize] ; ["Offset of field: rc_api_achievement_definition_t::id"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , id) - 0usize] ; ["Offset of field: rc_api_achievement_definition_t::points"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , points) - 4usize] ; ["Offset of field: rc_api_achievement_definition_t::category"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , category) - 8usize] ; ["Offset of field: rc_api_achievement_definition_t::title"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , title) - 16usize] ; ["Offset of field: rc_api_achievement_definition_t::description"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , description) - 24usize] ; ["Offset of field: rc_api_achievement_definition_t::definition"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , definition) - 32usize] ; ["Offset of field: rc_api_achievement_definition_t::author"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , author) - 40usize] ; ["Offset of field: rc_api_achievement_definition_t::badge_name"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , badge_name) - 48usize] ; ["Offset of field: rc_api_achievement_definition_t::created"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , created) - 56usize] ; ["Offset of field: rc_api_achievement_definition_t::updated"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , updated) - 64usize] ; ["Offset of field: rc_api_achievement_definition_t::type_"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , type_) - 72usize] ; ["Offset of field: rc_api_achievement_definition_t::rarity"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , rarity) - 76usize] ; ["Offset of field: rc_api_achievement_definition_t::rarity_hardcore"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , rarity_hardcore) - 80usize] ; } ; # [doc = " Response data for a fetch game data request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_data_response_t { pub id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub image_name : * const :: core :: ffi :: c_char , pub rich_presence_script : * const :: core :: ffi :: c_char , pub achievements : * mut rc_api_achievement_definition_t , pub num_achievements : u32 , pub leaderboards : * mut rc_api_leaderboard_definition_t , pub num_leaderboards : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_data_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_data_response_t > () - 376usize] ; ["Alignment of rc_api_fetch_game_data_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_data_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , console_id) - 4usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::title"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , title) - 8usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , image_name) - 16usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::rich_presence_script"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , rich_presence_script) - 24usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::achievements"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , achievements) - 32usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , num_achievements) - 40usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::leaderboards"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , leaderboards) - 48usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , num_leaderboards) - 56usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , response) - 64usize] ; } ; extern "C" { pub fn rc_api_init_fetch_game_data_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_game_data_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_data_response (response : * mut rc_api_fetch_game_data_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_data_server_response (response : * mut rc_api_fetch_game_data_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_game_data_response (response : * mut rc_api_fetch_game_data_response_t) ; } # [doc = " API parameters for a ping request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_ping_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub rich_presence : * const :: core :: ffi :: c_char , pub game_hash : * const :: core :: ffi :: c_char , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_ping_request_t"] [:: core :: mem :: size_of :: < rc_api_ping_request_t > () - 48usize] ; ["Alignment of rc_api_ping_request_t"] [:: core :: mem :: align_of :: < rc_api_ping_request_t > () - 8usize] ; ["Offset of field: rc_api_ping_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , username) - 0usize] ; ["Offset of field: rc_api_ping_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_ping_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_ping_request_t::rich_presence"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , rich_presence) - 24usize] ; ["Offset of field: rc_api_ping_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , game_hash) - 32usize] ; ["Offset of field: rc_api_ping_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , hardcore) - 40usize] ; } ; # [doc = " Response data for a ping request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_ping_response_t { pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_ping_response_t"] [:: core :: mem :: size_of :: < rc_api_ping_response_t > () - 312usize] ; ["Alignment of rc_api_ping_response_t"] [:: core :: mem :: align_of :: < rc_api_ping_response_t > () - 8usize] ; ["Offset of field: rc_api_ping_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_ping_response_t , response) - 0usize] ; } ; extern "C" { pub fn rc_api_init_ping_request (request : * mut rc_api_request_t , api_params : * const rc_api_ping_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_ping_response (response : * mut rc_api_ping_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_ping_server_response (response : * mut rc_api_ping_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_ping_response (response : * mut rc_api_ping_response_t) ; } # [doc = " API parameters for an award achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_award_achievement_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub hardcore : u32 , pub game_hash : * const :: core :: ffi :: c_char , pub seconds_since_unlock : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_award_achievement_request_t"] [:: core :: mem :: size_of :: < rc_api_award_achievement_request_t > () - 40usize] ; ["Alignment of rc_api_award_achievement_request_t"] [:: core :: mem :: align_of :: < rc_api_award_achievement_request_t > () - 8usize] ; ["Offset of field: rc_api_award_achievement_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , username) - 0usize] ; ["Offset of field: rc_api_award_achievement_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_award_achievement_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_award_achievement_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , hardcore) - 20usize] ; ["Offset of field: rc_api_award_achievement_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_award_achievement_request_t::seconds_since_unlock"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , seconds_since_unlock) - 32usize] ; } ; # [doc = " Response data for an award achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_award_achievement_response_t { pub awarded_achievement_id : u32 , pub new_player_score : u32 , pub new_player_score_softcore : u32 , pub achievements_remaining : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_award_achievement_response_t"] [:: core :: mem :: size_of :: < rc_api_award_achievement_response_t > () - 328usize] ; ["Alignment of rc_api_award_achievement_response_t"] [:: core :: mem :: align_of :: < rc_api_award_achievement_response_t > () - 8usize] ; ["Offset of field: rc_api_award_achievement_response_t::awarded_achievement_id"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , awarded_achievement_id) - 0usize] ; ["Offset of field: rc_api_award_achievement_response_t::new_player_score"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , new_player_score) - 4usize] ; ["Offset of field: rc_api_award_achievement_response_t::new_player_score_softcore"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , new_player_score_softcore) - 8usize] ; ["Offset of field: rc_api_award_achievement_response_t::achievements_remaining"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , achievements_remaining) - 12usize] ; ["Offset of field: rc_api_award_achievement_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_award_achievement_request (request : * mut rc_api_request_t , api_params : * const rc_api_award_achievement_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_award_achievement_response (response : * mut rc_api_award_achievement_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_award_achievement_server_response (response : * mut rc_api_award_achievement_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_award_achievement_response (response : * mut rc_api_award_achievement_response_t) ; } # [doc = " API parameters for a submit lboard entry request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_submit_lboard_entry_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub leaderboard_id : u32 , pub score : i32 , pub game_hash : * const :: core :: ffi :: c_char , pub seconds_since_completion : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_submit_lboard_entry_request_t"] [:: core :: mem :: size_of :: < rc_api_submit_lboard_entry_request_t > () - 40usize] ; ["Alignment of rc_api_submit_lboard_entry_request_t"] [:: core :: mem :: align_of :: < rc_api_submit_lboard_entry_request_t > () - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , username) - 0usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , leaderboard_id) - 16usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , score) - 20usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::seconds_since_completion"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , seconds_since_completion) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_lboard_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub score : i32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_lboard_entry_t"] [:: core :: mem :: size_of :: < rc_api_lboard_entry_t > () - 16usize] ; ["Alignment of rc_api_lboard_entry_t"] [:: core :: mem :: align_of :: < rc_api_lboard_entry_t > () - 8usize] ; ["Offset of field: rc_api_lboard_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , username) - 0usize] ; ["Offset of field: rc_api_lboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , rank) - 8usize] ; ["Offset of field: rc_api_lboard_entry_t::score"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , score) - 12usize] ; } ; # [doc = " Response data for a submit lboard entry request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_submit_lboard_entry_response_t { pub submitted_score : i32 , pub best_score : i32 , pub new_rank : u32 , pub num_entries : u32 , pub top_entries : * mut rc_api_lboard_entry_t , pub num_top_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_submit_lboard_entry_response_t"] [:: core :: mem :: size_of :: < rc_api_submit_lboard_entry_response_t > () - 344usize] ; ["Alignment of rc_api_submit_lboard_entry_response_t"] [:: core :: mem :: align_of :: < rc_api_submit_lboard_entry_response_t > () - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::submitted_score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , submitted_score) - 0usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::best_score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , best_score) - 4usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::new_rank"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , new_rank) - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , num_entries) - 12usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::top_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , top_entries) - 16usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::num_top_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , num_top_entries) - 24usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_submit_lboard_entry_request (request : * mut rc_api_request_t , api_params : * const rc_api_submit_lboard_entry_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_submit_lboard_entry_response (response : * mut rc_api_submit_lboard_entry_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_submit_lboard_entry_server_response (response : * mut rc_api_submit_lboard_entry_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_submit_lboard_entry_response (response : * mut rc_api_submit_lboard_entry_response_t) ; } # [doc = " Callback used to read num_bytes bytes from memory starting at address. If\n num_bytes is greater than 1, the value is read in little-endian from\n memory."] pub type rc_runtime_peek_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , num_bytes : u32 , ud : * mut :: core :: ffi :: c_void) -> u32 > ; # [doc = "\\\n| Runtime                                                                     |\n\\"] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_trigger_t { pub id : u32 , pub trigger : * mut rc_trigger_t , pub buffer : * mut :: core :: ffi :: c_void , pub invalid_memref : * mut rc_memref_t , pub md5 : [u8 ; 16usize] , pub serialized_size : i32 , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_trigger_t"] [:: core :: mem :: size_of :: < rc_runtime_trigger_t > () - 56usize] ; ["Alignment of rc_runtime_trigger_t"] [:: core :: mem :: align_of :: < rc_runtime_trigger_t > () - 8usize] ; ["Offset of field: rc_runtime_trigger_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , id) - 0usize] ; ["Offset of field: rc_runtime_trigger_t::trigger"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , trigger) - 8usize] ; ["Offset of field: rc_runtime_trigger_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , buffer) - 16usize] ; ["Offset of field: rc_runtime_trigger_t::invalid_memref"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , invalid_memref) - 24usize] ; ["Offset of field: rc_runtime_trigger_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , md5) - 32usize] ; ["Offset of field: rc_runtime_trigger_t::serialized_size"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , serialized_size) - 48usize] ; ["Offset of field: rc_runtime_trigger_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , owns_memrefs) - 52usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_lboard_t { pub id : u32 , pub value : i32 , pub lboard : * mut rc_lboard_t , pub buffer : * mut :: core :: ffi :: c_void , pub invalid_memref : * mut rc_memref_t , pub md5 : [u8 ; 16usize] , pub serialized_size : u32 , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_lboard_t"] [:: core :: mem :: size_of :: < rc_runtime_lboard_t > () - 56usize] ; ["Alignment of rc_runtime_lboard_t"] [:: core :: mem :: align_of :: < rc_runtime_lboard_t > () - 8usize] ; ["Offset of field: rc_runtime_lboard_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , id) - 0usize] ; ["Offset of field: rc_runtime_lboard_t::value"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , value) - 4usize] ; ["Offset of field: rc_runtime_lboard_t::lboard"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , lboard) - 8usize] ; ["Offset of field: rc_runtime_lboard_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , buffer) - 16usize] ; ["Offset of field: rc_runtime_lboard_t::invalid_memref"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , invalid_memref) - 24usize] ; ["Offset of field: rc_runtime_lboard_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , md5) - 32usize] ; ["Offset of field: rc_runtime_lboard_t::serialized_size"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , serialized_size) - 48usize] ; ["Offset of field: rc_runtime_lboard_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , owns_memrefs) - 52usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_richpresence_t { pub richpresence : * mut rc_richpresence_t , pub buffer : * mut :: core :: ffi :: c_void , pub previous : * mut rc_runtime_richpresence_t , pub md5 : [u8 ; 16usize] , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_richpresence_t"] [:: core :: mem :: size_of :: < rc_runtime_richpresence_t > () - 48usize] ; ["Alignment of rc_runtime_richpresence_t"] [:: core :: mem :: align_of :: < rc_runtime_richpresence_t > () - 8usize] ; ["Offset of field: rc_runtime_richpresence_t::richpresence"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , richpresence) - 0usize] ; ["Offset of field: rc_runtime_richpresence_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , buffer) - 8usize] ; ["Offset of field: rc_runtime_richpresence_t::previous"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , previous) - 16usize] ; ["Offset of field: rc_runtime_richpresence_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , md5) - 24usize] ; ["Offset of field: rc_runtime_richpresence_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , owns_memrefs) - 40usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_t { pub triggers : * mut rc_runtime_trigger_t , pub trigger_count : u32 , pub trigger_capacity : u32 , pub lboards : * mut rc_runtime_lboard_t , pub lboard_count : u32 , pub lboard_capacity : u32 , pub richpresence : * mut rc_runtime_richpresence_t , pub memrefs : * mut rc_memref_t , pub next_memref : * mut * mut rc_memref_t , pub variables : * mut rc_value_t , pub next_variable : * mut * mut rc_value_t , pub owns_self : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_t"] [:: core :: mem :: size_of :: < rc_runtime_t > () - 80usize] ; ["Alignment of rc_runtime_t"] [:: core :: mem :: align_of :: < rc_runtime_t > () - 8usize] ; ["Offset of field: rc_runtime_t::triggers"] [:: core :: mem :: offset_of ! (rc_runtime_t , triggers) - 0usize] ; ["Offset of field: rc_runtime_t::trigger_count"] [:: core :: mem :: offset_of ! (rc_runtime_t , trigger_count) - 8usize] ; ["Offset of field: rc_runtime_t::trigger_capacity"] [:: core :: mem :: offset_of ! (rc_runtime_t , trigger_capacity) - 12usize] ; ["Offset of field: rc_runtime_t::lboards"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboards) - 16usize] ; ["Offset of field: rc_runtime_t::lboard_count"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboard_count) - 24usize] ; ["Offset of field: rc_runtime_t::lboard_capacity"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboard_capacity) - 28usize] ; ["Offset of field: rc_runtime_t::richpresence"] [:: core :: mem :: offset_of ! (rc_runtime_t , richpresence) - 32usize] ; ["Offset of field: rc_runtime_t::memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_t , memrefs) - 40usize] ; ["Offset of field: rc_runtime_t::next_memref"] [:: core :: mem :: offset_of ! (rc_runtime_t , next_memref) - 48usize] ; ["Offset of field: rc_runtime_t::variables"] [:: core :: mem :: offset_of ! (rc_runtime_t , variables) - 56usize] ; ["Offset of field: rc_runtime_t::next_variable"] [:: core :: mem :: offset_of ! (rc_runtime_t , next_variable) - 64usize] ; ["Offset of field: rc_runtime_t::owns_self"] [:: core :: mem :: offset_of ! (rc_runtime_t , owns_self) - 72usize] ; } ; extern "C" { pub fn rc_runtime_alloc () -> * mut rc_runtime_t ; } extern "C" { pub fn rc_runtime_init (runtime : * mut rc_runtime_t) ; } extern "C" { pub fn rc_runtime_destroy (runtime : * mut rc_runtime_t) ; } extern "C" { pub fn rc_runtime_activate_achievement (runtime : * mut rc_runtime_t , id : u32 , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deactivate_achievement (runtime : * mut rc_runtime_t , id : u32) ; } extern "C" { pub fn rc_runtime_get_achievement (runtime : * const rc_runtime_t , id : u32) -> * mut rc_trigger_t ; } extern "C" { pub fn rc_runtime_get_achievement_measured (runtime : * const rc_runtime_t , id : u32 , measured_value : * mut :: core :: ffi :: c_uint , measured_target : * mut :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_format_achievement_measured (runtime : * const rc_runtime_t , id : u32 , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_activate_lboard (runtime : * mut rc_runtime_t , id : u32 , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deactivate_lboard (runtime : * mut rc_runtime_t , id : u32) ; } extern "C" { pub fn rc_runtime_get_lboard (runtime : * const rc_runtime_t , id : u32) -> * mut rc_lboard_t ; } extern "C" { pub fn rc_runtime_format_lboard_value (buffer : * mut :: core :: ffi :: c_char , size : :: core :: ffi :: c_int , value : i32 , format : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_activate_richpresence (runtime : * mut rc_runtime_t , script : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_get_richpresence (runtime : * const rc_runtime_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_runtime_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } pub const RC_RUNTIME_EVENT_ACHIEVEMENT_ACTIVATED : _bindgen_ty_14 = 0 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PAUSED : _bindgen_ty_14 = 1 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_RESET : _bindgen_ty_14 = 2 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_TRIGGERED : _bindgen_ty_14 = 3 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PRIMED : _bindgen_ty_14 = 4 ; pub const RC_RUNTIME_EVENT_LBOARD_STARTED : _bindgen_ty_14 = 5 ; pub const RC_RUNTIME_EVENT_LBOARD_CANCELED : _bindgen_ty_14 = 6 ; pub const RC_RUNTIME_EVENT_LBOARD_UPDATED : _bindgen_ty_14 = 7 ; pub const RC_RUNTIME_EVENT_LBOARD_TRIGGERED : _bindgen_ty_14 = 8 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_DISABLED : _bindgen_ty_14 = 9 ; pub const RC_RUNTIME_EVENT_LBOARD_DISABLED : _bindgen_ty_14 = 10 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_UNPRIMED : _bindgen_ty_14 = 11 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PROGRESS_UPDATED : _bindgen_ty_14 = 12 ; pub type _bindgen_ty_14 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_event_t { pub id : u32 , pub value : i32 , pub type_ : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_event_t"] [:: core :: mem :: size_of :: < rc_runtime_event_t > () - 12usize] ; ["Alignment of rc_runtime_event_t"] [:: core :: mem :: align_of :: < rc_runtime_event_t > () - 4usize] ; ["Offset of field: rc_runtime_event_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , id) - 0usize] ; ["Offset of field: rc_runtime_event_t::value"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , value) - 4usize] ; ["Offset of field: rc_runtime_event_t::type_"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , type_) - 8usize] ; } ; pub type rc_runtime_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (runtime_event : * const rc_runtime_event_t) > ; extern "C" { pub fn rc_runtime_do_frame (runtime : * mut rc_runtime_t , event_handler : rc_runtime_event_handler_t , peek : rc_runtime_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) ; } extern "C" { pub fn rc_runtime_reset (runtime : * mut rc_runtime_t) ; } pub type rc_runtime_validate_address_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_runtime_validate_addresses (runtime : * mut rc_runtime_t , event_handler : rc_runtime_event_handler_t , validate_handler : rc_runtime_validate_address_t) ; } extern "C" { pub fn rc_runtime_invalidate_address (runtime : * mut rc_runtime_t , address : u32) ; } extern "C" { pub fn rc_runtime_progress_size (runtime : * const rc_runtime_t , L : * mut lua_State) -> u32 ; } extern "C" { pub fn rc_runtime_serialize_progress (buffer : * mut :: core :: ffi :: c_void , runtime : * const rc_runtime_t , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_serialize_progress_sized (buffer : * mut u8 , buffer_size : u32 , runtime : * const rc_runtime_t , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deserialize_progress (runtime : * mut rc_runtime_t , serialized : * const u8 , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deserialize_progress_sized (runtime : * mut rc_runtime_t , serialized : * const u8 , serialized_size : u32 , L : * mut lua_State) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_async_handle_t { _unused : [u8 ; 0] , } # [doc = " Callback used to read num_bytes bytes from memory starting at address into buffer.\n Returns the number of bytes read. A return value of 0 indicates the address was invalid."] pub type rc_client_read_memory_func_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , buffer : * mut u8 , num_bytes : u32 , client : * mut rc_client_t) -> u32 > ; # [doc = " Internal method passed to rc_client_server_call_t to process the server response."] pub type rc_client_server_callback_t = :: core :: option :: Option < unsafe extern "C" fn (server_response : * const rc_api_server_response_t , callback_data : * mut :: core :: ffi :: c_void) > ; # [doc = " Callback used to issue a request to the server."] pub type rc_client_server_call_t = :: core :: option :: Option < unsafe extern "C" fn (request : * const rc_api_request_t , callback : rc_client_server_callback_t , callback_data : * mut :: core :: ffi :: c_void , client : * mut rc_client_t) > ; # [doc = " Generic callback for asynchronous eventing."] pub type rc_client_callback_t = :: core :: option :: Option < unsafe extern "C" fn (result : :: core :: ffi :: c_int , error_message : * const :: core :: ffi :: c_char , client : * mut rc_client_t , userdata : * mut :: core :: ffi :: c_void) > ; # [doc = " Callback for logging or displaying a message."] pub type rc_client_message_callback_t = :: core :: option :: Option < unsafe extern "C" fn (message : * const :: core :: ffi :: c_char , client : * const rc_client_t) > ; extern "C" { # [doc = " Creates a new rc_client_t object."] pub fn rc_client_create (read_memory_function : rc_client_read_memory_func_t , server_call_function : rc_client_server_call_t) -> * mut rc_client_t ; } extern "C" { # [doc = " Releases resources associated to a rc_client_t object.\n Pointer will no longer be valid after making this call."] pub fn rc_client_destroy (client : * mut rc_client_t) ; } extern "C" { # [doc = " Sets whether hardcore is enabled (on by default).\n Can be called with a game loaded.\n Enabling hardcore with a game loaded will raise an RC_CLIENT_EVENT_RESET\n event. Processing will be disabled until rc_client_reset is called."] pub fn rc_client_set_hardcore_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether hardcore is enabled (on by default)."] pub fn rc_client_get_hardcore_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether encore mode is enabled (off by default).\n Evaluated when loading a game. Has no effect while a game is loaded."] pub fn rc_client_set_encore_mode_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether encore mode is enabled (off by default)."] pub fn rc_client_get_encore_mode_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether unofficial achievements should be loaded.\n Evaluated when loading a game. Has no effect while a game is loaded."] pub fn rc_client_set_unofficial_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether unofficial achievements should be loaded."] pub fn rc_client_get_unofficial_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether spectator mode is enabled (off by default).\n If enabled, events for achievement unlocks and leaderboard submissions will be\n raised, but server calls to actually perform the unlock/submit will not occur.\n Can be modified while a game is loaded. Evaluated at unlock/submit time.\n Cannot be modified if disabled before a game is loaded."] pub fn rc_client_set_spectator_mode_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether spectator mode is enabled (off by default)."] pub fn rc_client_get_spectator_mode_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Attaches client-specific data to the runtime."] pub fn rc_client_set_userdata (client : * mut rc_client_t , userdata : * mut :: core :: ffi :: c_void) ; } extern "C" { # [doc = " Gets the client-specific data attached to the runtime."] pub fn rc_client_get_userdata (client : * const rc_client_t) -> * mut :: core :: ffi :: c_void ; } extern "C" { # [doc = " Sets the name of the server to use."] pub fn rc_client_set_host (client : * const rc_client_t , hostname : * const :: core :: ffi :: c_char) ; } pub type rc_clock_t = u64 ; pub type rc_get_time_millisecs_func_t = :: core :: option :: Option < unsafe extern "C" fn (client : * const rc_client_t) -> rc_clock_t > ; extern "C" { # [doc = " Specifies a function that returns a value that increases once per millisecond."] pub fn rc_client_set_get_time_millisecs_function (client : * mut rc_client_t , handler : rc_get_time_millisecs_func_t) ; } extern "C" { # [doc = " Marks an async process as aborted. The associated callback will not be called."] pub fn rc_client_abort_async (client : * mut rc_client_t , async_handle : * mut rc_client_async_handle_t) ; } extern "C" { # [doc = " Gets a clause that can be added to the User-Agent to identify the version of rcheevos being used."] pub fn rc_client_get_user_agent_clause (client : * mut rc_client_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> usize ; } extern "C" { # [doc = " Sets the logging level and provides a callback to be called to do the logging."] pub fn rc_client_enable_logging (client : * mut rc_client_t , level : :: core :: ffi :: c_int , callback : rc_client_message_callback_t) ; } pub const RC_CLIENT_LOG_LEVEL_NONE : _bindgen_ty_15 = 0 ; pub const RC_CLIENT_LOG_LEVEL_ERROR : _bindgen_ty_15 = 1 ; pub const RC_CLIENT_LOG_LEVEL_WARN : _bindgen_ty_15 = 2 ; pub const RC_CLIENT_LOG_LEVEL_INFO : _bindgen_ty_15 = 3 ; pub const RC_CLIENT_LOG_LEVEL_VERBOSE : _bindgen_ty_15 = 4 ; pub const NUM_RC_CLIENT_LOG_LEVELS : _bindgen_ty_15 = 5 ; pub type _bindgen_ty_15 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Attempt to login a user."] pub fn rc_client_begin_login_with_password (client : * mut rc_client_t , username : * const :: core :: ffi :: c_char , password : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Attempt to login a user."] pub fn rc_client_begin_login_with_token (client : * mut rc_client_t , username : * const :: core :: ffi :: c_char , token : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Logout the user."] pub fn rc_client_logout (client : * mut rc_client_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_user_t { pub display_name : * const :: core :: ffi :: c_char , pub username : * const :: core :: ffi :: c_char , pub token : * const :: core :: ffi :: c_char , pub score : u32 , pub score_softcore : u32 , pub num_unread_messages : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_user_t"] [:: core :: mem :: size_of :: < rc_client_user_t > () - 40usize] ; ["Alignment of rc_client_user_t"] [:: core :: mem :: align_of :: < rc_client_user_t > () - 8usize] ; ["Offset of field: rc_client_user_t::display_name"] [:: core :: mem :: offset_of ! (rc_client_user_t , display_name) - 0usize] ; ["Offset of field: rc_client_user_t::username"] [:: core :: mem :: offset_of ! (rc_client_user_t , username) - 8usize] ; ["Offset of field: rc_client_user_t::token"] [:: core :: mem :: offset_of ! (rc_client_user_t , token) - 16usize] ; ["Offset of field: rc_client_user_t::score"] [:: core :: mem :: offset_of ! (rc_client_user_t , score) - 24usize] ; ["Offset of field: rc_client_user_t::score_softcore"] [:: core :: mem :: offset_of ! (rc_client_user_t , score_softcore) - 28usize] ; ["Offset of field: rc_client_user_t::num_unread_messages"] [:: core :: mem :: offset_of ! (rc_client_user_t , num_unread_messages) - 32usize] ; } ; extern "C" { # [doc = " Gets information about the logged in user. Will return NULL if the user is not logged in."] pub fn rc_client_get_user_info (client : * const rc_client_t) -> * const rc_client_user_t ; } extern "C" { # [doc = " Gets the URL for the user's profile picture.\n Returns RC_OK on success."] pub fn rc_client_user_get_image_url (user : * const rc_client_user_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_user_game_summary_t { pub num_core_achievements : u32 , pub num_unofficial_achievements : u32 , pub num_unlocked_achievements : u32 , pub num_unsupported_achievements : u32 , pub points_core : u32 , pub points_unlocked : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_user_game_summary_t"] [:: core :: mem :: size_of :: < rc_client_user_game_summary_t > () - 24usize] ; ["Alignment of rc_client_user_game_summary_t"] [:: core :: mem :: align_of :: < rc_client_user_game_summary_t > () - 4usize] ; ["Offset of field: rc_client_user_game_summary_t::num_core_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_core_achievements) - 0usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unofficial_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unofficial_achievements) - 4usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unlocked_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unlocked_achievements) - 8usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unsupported_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unsupported_achievements) - 12usize] ; ["Offset of field: rc_client_user_game_summary_t::points_core"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , points_core) - 16usize] ; ["Offset of field: rc_client_user_game_summary_t::points_unlocked"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , points_unlocked) - 20usize] ; } ; extern "C" { # [doc = " Gets a breakdown of the number of achievements in the game, and how many the user has unlocked.\n Used for the \"You have unlocked X of Y achievements\" message shown when the game starts."] pub fn rc_client_get_user_game_summary (client : * const rc_client_t , summary : * mut rc_client_user_game_summary_t) ; } extern "C" { # [doc = " Start loading an unidentified game."] pub fn rc_client_begin_identify_and_load_game (client : * mut rc_client_t , console_id : u32 , file_path : * const :: core :: ffi :: c_char , data : * const u8 , data_size : usize , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Start loading a game."] pub fn rc_client_begin_load_game (client : * mut rc_client_t , hash : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Gets the current progress of the asynchronous load game process."] pub fn rc_client_get_load_game_state (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } pub const RC_CLIENT_LOAD_GAME_STATE_NONE : _bindgen_ty_16 = 0 ; pub const RC_CLIENT_LOAD_GAME_STATE_IDENTIFYING_GAME : _bindgen_ty_16 = 1 ; pub const RC_CLIENT_LOAD_GAME_STATE_AWAIT_LOGIN : _bindgen_ty_16 = 2 ; pub const RC_CLIENT_LOAD_GAME_STATE_FETCHING_GAME_DATA : _bindgen_ty_16 = 3 ; pub const RC_CLIENT_LOAD_GAME_STATE_STARTING_SESSION : _bindgen_ty_16 = 4 ; pub const RC_CLIENT_LOAD_GAME_STATE_DONE : _bindgen_ty_16 = 5 ; pub const RC_CLIENT_LOAD_GAME_STATE_ABORTED : _bindgen_ty_16 = 6 ; pub type _bindgen_ty_16 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Determines if a game was successfully identified and loaded."] pub fn rc_client_is_game_loaded (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Unloads the current game."] pub fn rc_client_unload_game (client : * mut rc_client_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_game_t { pub id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub hash : * const :: core :: ffi :: c_char , pub badge_name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_game_t"] [:: core :: mem :: size_of :: < rc_client_game_t > () - 32usize] ; ["Alignment of rc_client_game_t"] [:: core :: mem :: align_of :: < rc_client_game_t > () - 8usize] ; ["Offset of field: rc_client_game_t::id"] [:: core :: mem :: offset_of ! (rc_client_game_t , id) - 0usize] ; ["Offset of field: rc_client_game_t::console_id"] [:: core :: mem :: offset_of ! (rc_client_game_t , console_id) - 4usize] ; ["Offset of field: rc_client_game_t::title"] [:: core :: mem :: offset_of ! (rc_client_game_t , title) - 8usize] ; ["Offset of field: rc_client_game_t::hash"] [:: core :: mem :: offset_of ! (rc_client_game_t , hash) - 16usize] ; ["Offset of field: rc_client_game_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_game_t , badge_name) - 24usize] ; } ; extern "C" { # [doc = " Get information about the current game. Returns NULL if no game is loaded.\n NOTE: returns a dummy game record if an unidentified game is loaded."] pub fn rc_client_get_game_info (client : * const rc_client_t) -> * const rc_client_game_t ; } extern "C" { # [doc = " Gets the URL for the game image.\n Returns RC_OK on success."] pub fn rc_client_game_get_image_url (game : * const rc_client_game_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Changes the active disc in a multi-disc game."] pub fn rc_client_begin_change_media (client : * mut rc_client_t , file_path : * const :: core :: ffi :: c_char , data : * const u8 , data_size : usize , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Changes the active disc in a multi-disc game."] pub fn rc_client_begin_change_media_from_hash (client : * mut rc_client_t , hash : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } # [doc = "\\\n| Subsets                                                                     |\n\\"] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_subset_t { pub id : u32 , pub title : * const :: core :: ffi :: c_char , pub badge_name : [:: core :: ffi :: c_char ; 16usize] , pub num_achievements : u32 , pub num_leaderboards : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_subset_t"] [:: core :: mem :: size_of :: < rc_client_subset_t > () - 40usize] ; ["Alignment of rc_client_subset_t"] [:: core :: mem :: align_of :: < rc_client_subset_t > () - 8usize] ; ["Offset of field: rc_client_subset_t::id"] [:: core :: mem :: offset_of ! (rc_client_subset_t , id) - 0usize] ; ["Offset of field: rc_client_subset_t::title"] [:: core :: mem :: offset_of ! (rc_client_subset_t , title) - 8usize] ; ["Offset of field: rc_client_subset_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_subset_t , badge_name) - 16usize] ; ["Offset of field: rc_client_subset_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_client_subset_t , num_achievements) - 32usize] ; ["Offset of field: rc_client_subset_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_client_subset_t , num_leaderboards) - 36usize] ; } ; extern "C" { pub fn rc_client_get_subset_info (client : * mut rc_client_t , subset_id : u32) -> * const rc_client_subset_t ; } pub const RC_CLIENT_ACHIEVEMENT_STATE_INACTIVE : _bindgen_ty_17 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_ACTIVE : _bindgen_ty_17 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_UNLOCKED : _bindgen_ty_17 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_DISABLED : _bindgen_ty_17 = 3 ; pub const NUM_RC_CLIENT_ACHIEVEMENT_STATES : _bindgen_ty_17 = 4 ; # [doc = "\\\n| Achievements                                                                |\n\\"] pub type _bindgen_ty_17 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_NONE : _bindgen_ty_18 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_CORE : _bindgen_ty_18 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_UNOFFICIAL : _bindgen_ty_18 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_CORE_AND_UNOFFICIAL : _bindgen_ty_18 = 3 ; pub type _bindgen_ty_18 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_STANDARD : _bindgen_ty_19 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_MISSABLE : _bindgen_ty_19 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_PROGRESSION : _bindgen_ty_19 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_WIN : _bindgen_ty_19 = 3 ; pub type _bindgen_ty_19 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNKNOWN : _bindgen_ty_20 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_LOCKED : _bindgen_ty_20 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNLOCKED : _bindgen_ty_20 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNSUPPORTED : _bindgen_ty_20 = 3 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNOFFICIAL : _bindgen_ty_20 = 4 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_RECENTLY_UNLOCKED : _bindgen_ty_20 = 5 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_ACTIVE_CHALLENGE : _bindgen_ty_20 = 6 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_ALMOST_THERE : _bindgen_ty_20 = 7 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNSYNCED : _bindgen_ty_20 = 8 ; pub const NUM_RC_CLIENT_ACHIEVEMENT_BUCKETS : _bindgen_ty_20 = 9 ; pub type _bindgen_ty_20 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_NONE : _bindgen_ty_21 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_SOFTCORE : _bindgen_ty_21 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_HARDCORE : _bindgen_ty_21 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_BOTH : _bindgen_ty_21 = 3 ; pub type _bindgen_ty_21 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_t { pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub badge_name : [:: core :: ffi :: c_char ; 8usize] , pub measured_progress : [:: core :: ffi :: c_char ; 24usize] , pub measured_percent : f32 , pub id : u32 , pub points : u32 , pub unlock_time : time_t , pub state : u8 , pub category : u8 , pub bucket : u8 , pub unlocked : u8 , pub rarity : f32 , pub rarity_hardcore : f32 , pub type_ : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_t"] [:: core :: mem :: size_of :: < rc_client_achievement_t > () - 88usize] ; ["Alignment of rc_client_achievement_t"] [:: core :: mem :: align_of :: < rc_client_achievement_t > () - 8usize] ; ["Offset of field: rc_client_achievement_t::title"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , title) - 0usize] ; ["Offset of field: rc_client_achievement_t::description"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , description) - 8usize] ; ["Offset of field: rc_client_achievement_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , badge_name) - 16usize] ; ["Offset of field: rc_client_achievement_t::measured_progress"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , measured_progress) - 24usize] ; ["Offset of field: rc_client_achievement_t::measured_percent"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , measured_percent) - 48usize] ; ["Offset of field: rc_client_achievement_t::id"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , id) - 52usize] ; ["Offset of field: rc_client_achievement_t::points"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , points) - 56usize] ; ["Offset of field: rc_client_achievement_t::unlock_time"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , unlock_time) - 64usize] ; ["Offset of field: rc_client_achievement_t::state"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , state) - 72usize] ; ["Offset of field: rc_client_achievement_t::category"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , category) - 73usize] ; ["Offset of field: rc_client_achievement_t::bucket"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , bucket) - 74usize] ; ["Offset of field: rc_client_achievement_t::unlocked"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , unlocked) - 75usize] ; ["Offset of field: rc_client_achievement_t::rarity"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , rarity) - 76usize] ; ["Offset of field: rc_client_achievement_t::rarity_hardcore"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , rarity_hardcore) - 80usize] ; ["Offset of field: rc_client_achievement_t::type_"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , type_) - 84usize] ; } ; extern "C" { # [doc = " Get information about an achievement. Returns NULL if not found."] pub fn rc_client_get_achievement_info (client : * mut rc_client_t , id : u32) -> * const rc_client_achievement_t ; } extern "C" { # [doc = " Gets the URL for the achievement image.\n Returns RC_OK on success."] pub fn rc_client_achievement_get_image_url (achievement : * const rc_client_achievement_t , state : :: core :: ffi :: c_int , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_bucket_t { pub achievements : * mut * mut rc_client_achievement_t , pub num_achievements : u32 , pub label : * const :: core :: ffi :: c_char , pub subset_id : u32 , pub bucket_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_bucket_t"] [:: core :: mem :: size_of :: < rc_client_achievement_bucket_t > () - 32usize] ; ["Alignment of rc_client_achievement_bucket_t"] [:: core :: mem :: align_of :: < rc_client_achievement_bucket_t > () - 8usize] ; ["Offset of field: rc_client_achievement_bucket_t::achievements"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , achievements) - 0usize] ; ["Offset of field: rc_client_achievement_bucket_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , num_achievements) - 8usize] ; ["Offset of field: rc_client_achievement_bucket_t::label"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , label) - 16usize] ; ["Offset of field: rc_client_achievement_bucket_t::subset_id"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , subset_id) - 24usize] ; ["Offset of field: rc_client_achievement_bucket_t::bucket_type"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , bucket_type) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_list_t { pub buckets : * mut rc_client_achievement_bucket_t , pub num_buckets : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_list_t"] [:: core :: mem :: size_of :: < rc_client_achievement_list_t > () - 16usize] ; ["Alignment of rc_client_achievement_list_t"] [:: core :: mem :: align_of :: < rc_client_achievement_list_t > () - 8usize] ; ["Offset of field: rc_client_achievement_list_t::buckets"] [:: core :: mem :: offset_of ! (rc_client_achievement_list_t , buckets) - 0usize] ; ["Offset of field: rc_client_achievement_list_t::num_buckets"] [:: core :: mem :: offset_of ! (rc_client_achievement_list_t , num_buckets) - 8usize] ; } ; pub const RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_LOCK_STATE : _bindgen_ty_22 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_PROGRESS : _bindgen_ty_22 = 1 ; pub type _bindgen_ty_22 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Creates a list of achievements matching the specified category and grouping.\n Returns an allocated list that must be free'd by calling rc_client_destroy_achievement_list."] pub fn rc_client_create_achievement_list (client : * mut rc_client_t , category : :: core :: ffi :: c_int , grouping : :: core :: ffi :: c_int) -> * mut rc_client_achievement_list_t ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_get_achievement_list."] pub fn rc_client_destroy_achievement_list (list : * mut rc_client_achievement_list_t) ; } extern "C" { # [doc = " Returns non-zero if there are any achievements that can be queried through rc_client_create_achievement_list()."] pub fn rc_client_has_achievements (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } pub const RC_CLIENT_LEADERBOARD_STATE_INACTIVE : _bindgen_ty_23 = 0 ; pub const RC_CLIENT_LEADERBOARD_STATE_ACTIVE : _bindgen_ty_23 = 1 ; pub const RC_CLIENT_LEADERBOARD_STATE_TRACKING : _bindgen_ty_23 = 2 ; pub const RC_CLIENT_LEADERBOARD_STATE_DISABLED : _bindgen_ty_23 = 3 ; pub const NUM_RC_CLIENT_LEADERBOARD_STATES : _bindgen_ty_23 = 4 ; # [doc = "\\\n| Leaderboards                                                                |\n\\"] pub type _bindgen_ty_23 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_LEADERBOARD_FORMAT_TIME : _bindgen_ty_24 = 0 ; pub const RC_CLIENT_LEADERBOARD_FORMAT_SCORE : _bindgen_ty_24 = 1 ; pub const RC_CLIENT_LEADERBOARD_FORMAT_VALUE : _bindgen_ty_24 = 2 ; pub const NUM_RC_CLIENT_LEADERBOARD_FORMATS : _bindgen_ty_24 = 3 ; pub type _bindgen_ty_24 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_t { pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub tracker_value : * const :: core :: ffi :: c_char , pub id : u32 , pub state : u8 , pub format : u8 , pub lower_is_better : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_t > () - 32usize] ; ["Alignment of rc_client_leaderboard_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_t::title"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , title) - 0usize] ; ["Offset of field: rc_client_leaderboard_t::description"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , description) - 8usize] ; ["Offset of field: rc_client_leaderboard_t::tracker_value"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , tracker_value) - 16usize] ; ["Offset of field: rc_client_leaderboard_t::id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , id) - 24usize] ; ["Offset of field: rc_client_leaderboard_t::state"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , state) - 28usize] ; ["Offset of field: rc_client_leaderboard_t::format"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , format) - 29usize] ; ["Offset of field: rc_client_leaderboard_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , lower_is_better) - 30usize] ; } ; extern "C" { # [doc = " Get information about a leaderboard. Returns NULL if not found."] pub fn rc_client_get_leaderboard_info (client : * const rc_client_t , id : u32) -> * const rc_client_leaderboard_t ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_tracker_t { pub display : [:: core :: ffi :: c_char ; 24usize] , pub id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_tracker_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_tracker_t > () - 28usize] ; ["Alignment of rc_client_leaderboard_tracker_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_tracker_t > () - 4usize] ; ["Offset of field: rc_client_leaderboard_tracker_t::display"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_tracker_t , display) - 0usize] ; ["Offset of field: rc_client_leaderboard_tracker_t::id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_tracker_t , id) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_bucket_t { pub leaderboards : * mut * mut rc_client_leaderboard_t , pub num_leaderboards : u32 , pub label : * const :: core :: ffi :: c_char , pub subset_id : u32 , pub bucket_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_bucket_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_bucket_t > () - 32usize] ; ["Alignment of rc_client_leaderboard_bucket_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_bucket_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::leaderboards"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , leaderboards) - 0usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , num_leaderboards) - 8usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::label"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , label) - 16usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::subset_id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , subset_id) - 24usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::bucket_type"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , bucket_type) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_list_t { pub buckets : * mut rc_client_leaderboard_bucket_t , pub num_buckets : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_list_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_list_t > () - 16usize] ; ["Alignment of rc_client_leaderboard_list_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_list_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_list_t::buckets"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_list_t , buckets) - 0usize] ; ["Offset of field: rc_client_leaderboard_list_t::num_buckets"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_list_t , num_buckets) - 8usize] ; } ; pub const RC_CLIENT_LEADERBOARD_BUCKET_UNKNOWN : _bindgen_ty_25 = 0 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_INACTIVE : _bindgen_ty_25 = 1 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_ACTIVE : _bindgen_ty_25 = 2 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_UNSUPPORTED : _bindgen_ty_25 = 3 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_ALL : _bindgen_ty_25 = 4 ; pub const NUM_RC_CLIENT_LEADERBOARD_BUCKETS : _bindgen_ty_25 = 5 ; pub type _bindgen_ty_25 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_LEADERBOARD_LIST_GROUPING_NONE : _bindgen_ty_26 = 0 ; pub const RC_CLIENT_LEADERBOARD_LIST_GROUPING_TRACKING : _bindgen_ty_26 = 1 ; pub type _bindgen_ty_26 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Creates a list of leaderboards matching the specified grouping.\n Returns an allocated list that must be free'd by calling rc_client_destroy_leaderboard_list."] pub fn rc_client_create_leaderboard_list (client : * mut rc_client_t , grouping : :: core :: ffi :: c_int) -> * mut rc_client_leaderboard_list_t ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_get_leaderboard_list."] pub fn rc_client_destroy_leaderboard_list (list : * mut rc_client_leaderboard_list_t) ; } extern "C" { # [doc = " Returns non-zero if the current game has any leaderboards."] pub fn rc_client_has_leaderboards (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_entry_t { pub user : * const :: core :: ffi :: c_char , pub display : [:: core :: ffi :: c_char ; 24usize] , pub submitted : time_t , pub rank : u32 , pub index : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_entry_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_entry_t > () - 48usize] ; ["Alignment of rc_client_leaderboard_entry_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_entry_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_t::user"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , user) - 0usize] ; ["Offset of field: rc_client_leaderboard_entry_t::display"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , display) - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_t::submitted"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , submitted) - 32usize] ; ["Offset of field: rc_client_leaderboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , rank) - 40usize] ; ["Offset of field: rc_client_leaderboard_entry_t::index"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , index) - 44usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_entry_list_t { pub entries : * mut rc_client_leaderboard_entry_t , pub num_entries : u32 , pub total_entries : u32 , pub user_index : i32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_entry_list_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_entry_list_t > () - 24usize] ; ["Alignment of rc_client_leaderboard_entry_list_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_entry_list_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , entries) - 0usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::num_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , num_entries) - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::total_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , total_entries) - 12usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::user_index"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , user_index) - 16usize] ; } ; pub type rc_client_fetch_leaderboard_entries_callback_t = :: core :: option :: Option < unsafe extern "C" fn (result : :: core :: ffi :: c_int , error_message : * const :: core :: ffi :: c_char , list : * mut rc_client_leaderboard_entry_list_t , client : * mut rc_client_t , callback_userdata : * mut :: core :: ffi :: c_void) > ; extern "C" { # [doc = " Fetches a list of leaderboard entries from the server.\n Callback receives an allocated list that must be free'd by calling rc_client_destroy_leaderboard_entry_list."] pub fn rc_client_begin_fetch_leaderboard_entries (client : * mut rc_client_t , leaderboard_id : u32 , first_entry : u32 , count : u32 , callback : rc_client_fetch_leaderboard_entries_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Fetches a list of leaderboard entries from the server containing the logged-in user.\n Callback receives an allocated list that must be free'd by calling rc_client_destroy_leaderboard_entry_list."] pub fn rc_client_begin_fetch_leaderboard_entries_around_user (client : * mut rc_client_t , leaderboard_id : u32 , count : u32 , callback : rc_client_fetch_leaderboard_entries_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Gets the URL for the profile picture of the user associated to a leaderboard entry.\n Returns RC_OK on success."] pub fn rc_client_leaderboard_entry_get_user_image_url (entry : * const rc_client_leaderboard_entry_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_begin_fetch_leaderboard_entries or rc_client_begin_fetch_leaderboard_entries_around_user."] pub fn rc_client_destroy_leaderboard_entry_list (list : * mut rc_client_leaderboard_entry_list_t) ; } # [doc = " Used for scoreboard events. Contains the response from the server when a leaderboard entry is submitted.\n NOTE: This structure is only valid within the event callback. If you want to make use of the data outside\n of the callback, you should create copies of both the top entries and usernames within."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_scoreboard_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub score : [:: core :: ffi :: c_char ; 24usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_scoreboard_entry_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_scoreboard_entry_t > () - 40usize] ; ["Alignment of rc_client_leaderboard_scoreboard_entry_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_scoreboard_entry_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::username"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , username) - 0usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , rank) - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , score) - 12usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_scoreboard_t { pub leaderboard_id : u32 , pub submitted_score : [:: core :: ffi :: c_char ; 24usize] , pub best_score : [:: core :: ffi :: c_char ; 24usize] , pub new_rank : u32 , pub num_entries : u32 , pub top_entries : * mut rc_client_leaderboard_scoreboard_entry_t , pub num_top_entries : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_scoreboard_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_scoreboard_t > () - 80usize] ; ["Alignment of rc_client_leaderboard_scoreboard_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_scoreboard_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::submitted_score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , submitted_score) - 4usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::best_score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , best_score) - 28usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::new_rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , new_rank) - 52usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::num_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , num_entries) - 56usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::top_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , top_entries) - 64usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::num_top_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , num_top_entries) - 72usize] ; } ; extern "C" { # [doc = " Returns non-zero if the current game supports rich presence."] pub fn rc_client_has_rich_presence (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Gets the current rich presence message.\n Returns the number of characters written to buffer."] pub fn rc_client_get_rich_presence_message (client : * mut rc_client_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> usize ; } pub const RC_CLIENT_EVENT_TYPE_NONE : _bindgen_ty_27 = 0 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_TRIGGERED : _bindgen_ty_27 = 1 ; pub const RC_CLIENT_EVENT_LEADERBOARD_STARTED : _bindgen_ty_27 = 2 ; pub const RC_CLIENT_EVENT_LEADERBOARD_FAILED : _bindgen_ty_27 = 3 ; pub const RC_CLIENT_EVENT_LEADERBOARD_SUBMITTED : _bindgen_ty_27 = 4 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_CHALLENGE_INDICATOR_SHOW : _bindgen_ty_27 = 5 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_CHALLENGE_INDICATOR_HIDE : _bindgen_ty_27 = 6 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_SHOW : _bindgen_ty_27 = 7 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_HIDE : _bindgen_ty_27 = 8 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_UPDATE : _bindgen_ty_27 = 9 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_SHOW : _bindgen_ty_27 = 10 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_HIDE : _bindgen_ty_27 = 11 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_UPDATE : _bindgen_ty_27 = 12 ; pub const RC_CLIENT_EVENT_LEADERBOARD_SCOREBOARD : _bindgen_ty_27 = 13 ; pub const RC_CLIENT_EVENT_RESET : _bindgen_ty_27 = 14 ; pub const RC_CLIENT_EVENT_GAME_COMPLETED : _bindgen_ty_27 = 15 ; pub const RC_CLIENT_EVENT_SERVER_ERROR : _bindgen_ty_27 = 16 ; pub const RC_CLIENT_EVENT_DISCONNECTED : _bindgen_ty_27 = 17 ; pub const RC_CLIENT_EVENT_RECONNECTED : _bindgen_ty_27 = 18 ; # [doc = "\\\n| Processing                                                                  |\n\\"] pub type _bindgen_ty_27 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_server_error_t { pub error_message : * const :: core :: ffi :: c_char , pub api : * const :: core :: ffi :: c_char , pub result : :: core :: ffi :: c_int , pub related_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_server_error_t"] [:: core :: mem :: size_of :: < rc_client_server_error_t > () - 24usize] ; ["Alignment of rc_client_server_error_t"] [:: core :: mem :: align_of :: < rc_client_server_error_t > () - 8usize] ; ["Offset of field: rc_client_server_error_t::error_message"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , error_message) - 0usize] ; ["Offset of field: rc_client_server_error_t::api"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , api) - 8usize] ; ["Offset of field: rc_client_server_error_t::result"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , result) - 16usize] ; ["Offset of field: rc_client_server_error_t::related_id"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , related_id) - 20usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_event_t { pub type_ : u32 , pub achievement : * mut rc_client_achievement_t , pub leaderboard : * mut rc_client_leaderboard_t , pub leaderboard_tracker : * mut rc_client_leaderboard_tracker_t , pub leaderboard_scoreboard : * mut rc_client_leaderboard_scoreboard_t , pub server_error : * mut rc_client_server_error_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_event_t"] [:: core :: mem :: size_of :: < rc_client_event_t > () - 48usize] ; ["Alignment of rc_client_event_t"] [:: core :: mem :: align_of :: < rc_client_event_t > () - 8usize] ; ["Offset of field: rc_client_event_t::type_"] [:: core :: mem :: offset_of ! (rc_client_event_t , type_) - 0usize] ; ["Offset of field: rc_client_event_t::achievement"] [:: core :: mem :: offset_of ! (rc_client_event_t , achievement) - 8usize] ; ["Offset of field: rc_client_event_t::leaderboard"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard) - 16usize] ; ["Offset of field: rc_client_event_t::leaderboard_tracker"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard_tracker) - 24usize] ; ["Offset of field: rc_client_event_t::leaderboard_scoreboard"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard_scoreboard) - 32usize] ; ["Offset of field: rc_client_event_t::server_error"] [:: core :: mem :: offset_of ! (rc_client_event_t , server_error) - 40usize] ; } ; # [doc = " Callback used to notify the client when certain events occur."] pub type rc_client_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (event : * const rc_client_event_t , client : * mut rc_client_t) > ; extern "C" { # [doc = " Provides a callback for event handling."] pub fn rc_client_set_event_handler (client : * mut rc_client_t , handler : rc_client_event_handler_t) ; } extern "C" { # [doc = " Provides a callback for reading memory."] pub fn rc_client_set_read_memory_function (client : * mut rc_client_t , handler : rc_client_read_memory_func_t) ; } extern "C" { # [doc = " Determines if there are any active achievements/leaderboards/rich presence that need processing."] pub fn rc_client_is_processing_required (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Processes achievements for the current frame."] pub fn rc_client_do_frame (client : * mut rc_client_t) ; } extern "C" { # [doc = " Processes the periodic queue.\n Called internally by rc_client_do_frame.\n Should be explicitly called if rc_client_do_frame is not being called because emulation is paused."] pub fn rc_client_idle (client : * mut rc_client_t) ; } extern "C" { # [doc = " Determines if a sufficient amount of frames have been processed since the last call to rc_client_can_pause.\n Should not be called unless the client is trying to pause.\n If false is returned, and frames_remaining is not NULL, frames_remaining will be set to the number of frames\n still required before pause is allowed, which can be converted to a time in seconds for displaying to the user."] pub fn rc_client_can_pause (client : * mut rc_client_t , frames_remaining : * mut u32) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Informs the runtime that the emulator has been reset. Will reset all achievements and leaderboards\n to their initial state (includes hiding indicators/trackers)."] pub fn rc_client_reset (client : * mut rc_client_t) ; } extern "C" { # [doc = " Gets the number of bytes needed to serialized the runtime state."] pub fn rc_client_progress_size (client : * mut rc_client_t) -> usize ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator.\n [deprecated] use rc_client_serialize_progress_sized instead"] pub fn rc_client_serialize_progress (client : * mut rc_client_t , buffer : * mut u8) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator."] pub fn rc_client_serialize_progress_sized (client : * mut rc_client_t , buffer : * mut u8 , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Deserializes the runtime state from a buffer.\n Returns RC_OK on success, or an error indicator.\n [deprecated] use rc_client_deserialize_progress_sized instead"] pub fn rc_client_deserialize_progress (client : * mut rc_client_t , serialized : * const u8) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator."] pub fn rc_client_deserialize_progress_sized (client : * mut rc_client_t , serialized : * const u8 , serialized_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __locale_data { pub _address : u8 , } pub type __builtin_va_list = [__va_list_tag ; 1usize] ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __va_list_tag { pub gp_offset : :: core :: ffi :: c_uint , pub fp_offset : :: core :: ffi :: c_uint , pub overflow_arg_area : * mut :: core :: ffi :: c_void , pub reg_save_area : * mut :: core :: ffi :: c_void , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __va_list_tag"] [:: core :: mem :: size_of :: < __va_list_tag > () - 24usize] ; ["Alignment of __va_list_tag"] [:: core :: mem :: align_of :: < __va_list_tag > () - 8usize] ; ["Offset of field: __va_list_tag::gp_offset"] [:: core :: mem :: offset_of ! (__va_list_tag , gp_offset) - 0usize] ; ["Offset of field: __va_list_tag::fp_offset"] [:: core :: mem :: offset_of ! (__va_list_tag , fp_offset) - 4usize] ; ["Offset of field: __va_list_tag::overflow_arg_area"] [:: core :: mem :: offset_of ! (__va_list_tag , overflow_arg_area) - 8usize] ; ["Offset of field: __va_list_tag::reg_save_area"] [:: core :: mem :: offset_of ! (__va_list_tag , reg_save_area) - 16usize] ; } ;
[INFO] [stdout] 3 + # [repr (C)] # [derive (Copy , Clone , Debug , Default , Eq , Hash , Ord , PartialEq , PartialOrd)] pub struct __BindgenBitfieldUnit < Storage > { storage : Storage , } impl < Storage > __BindgenBitfieldUnit < Storage > { # [inline] pub const fn new (storage : Storage) -> Self { Self { storage } } } impl < Storage > __BindgenBitfieldUnit < Storage > where Storage : AsRef < [u8] > + AsMut < [u8] >, { # [inline] pub fn get_bit (& self , index : usize) -> bool { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = self . storage . as_ref () [byte_index] ; let bit_index = if cfg ! (target_endian = "big") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; byte & mask == mask } # [inline] pub fn set_bit (& mut self , index : usize , val : bool) { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = & mut self . storage . as_mut () [byte_index] ; let bit_index = if cfg ! (target_endian = "big") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; if val { * byte |= mask ; } else { * byte &= ! mask ; } } # [inline] pub fn get (& self , bit_offset : usize , bit_width : u8) -> u64 { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; let mut val = 0 ; for i in 0 .. (bit_width as usize) { if self . get_bit (i + bit_offset) { let index = if cfg ! (target_endian = "big") { bit_width as usize - 1 - i } else { i } ; val |= 1 << index ; } } val } # [inline] pub fn set (& mut self , bit_offset : usize , bit_width : u8 , val : u64) { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; for i in 0 .. (bit_width as usize) { let mask = 1 << i ; let val_bit_is_set = val & mask == mask ; let index = if cfg ! (target_endian = "big") { bit_width as usize - 1 - i } else { i } ; self . set_bit (index + bit_offset , val_bit_is_set) ; } } } # [derive (PartialEq , Copy , Clone , Hash , Debug , Default)] # [repr (C)] pub struct __BindgenComplex < T > { pub re : T , pub im : T } pub const _STDINT_H : u32 = 1 ; pub const _FEATURES_H : u32 = 1 ; pub const _DEFAULT_SOURCE : u32 = 1 ; pub const __GLIBC_USE_ISOC2Y : u32 = 0 ; pub const __GLIBC_USE_ISOC23 : u32 = 0 ; pub const __USE_ISOC11 : u32 = 1 ; pub const __USE_ISOC99 : u32 = 1 ; pub const __USE_ISOC95 : u32 = 1 ; pub const __USE_POSIX_IMPLICITLY : u32 = 1 ; pub const _POSIX_SOURCE : u32 = 1 ; pub const _POSIX_C_SOURCE : u32 = 202405 ; pub const __USE_POSIX : u32 = 1 ; pub const __USE_POSIX2 : u32 = 1 ; pub const __USE_POSIX199309 : u32 = 1 ; pub const __USE_POSIX199506 : u32 = 1 ; pub const __USE_XOPEN2K : u32 = 1 ; pub const __USE_XOPEN2K8 : u32 = 1 ; pub const _ATFILE_SOURCE : u32 = 1 ; pub const __USE_XOPEN2K24 : u32 = 1 ; pub const __WORDSIZE : u32 = 64 ; pub const __WORDSIZE_TIME64_COMPAT32 : u32 = 1 ; pub const __SYSCALL_WORDSIZE : u32 = 64 ; pub const __TIMESIZE : u32 = 64 ; pub const __USE_TIME_BITS64 : u32 = 1 ; pub const __USE_MISC : u32 = 1 ; 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_C23_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 ; pub const __STDC_IEC_559_COMPLEX__ : u32 = 1 ; 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 = 43 ; pub const _SYS_CDEFS_H : u32 = 1 ; pub const __glibc_c99_flexarr_available : u32 = 1 ; pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI : u32 = 0 ; pub const __HAVE_GENERIC_SELECTION : u32 = 1 ; pub const __GLIBC_USE_LIB_EXT2 : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT_C23 : u32 = 0 ; 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_C23 : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_TYPES_EXT : u32 = 0 ; pub const _BITS_TYPES_H : u32 = 1 ; pub const _BITS_TYPESIZES_H : u32 = 1 ; pub const __OFF_T_MATCHES_OFF64_T : u32 = 1 ; pub const __INO_T_MATCHES_INO64_T : u32 = 1 ; pub const __RLIM_T_MATCHES_RLIM64_T : u32 = 1 ; pub const __STATFS_MATCHES_STATFS64 : u32 = 1 ; pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 : u32 = 1 ; pub const __FD_SETSIZE : u32 = 1024 ; pub const _BITS_TIME64_H : u32 = 1 ; pub const _BITS_WCHAR_H : u32 = 1 ; pub const _BITS_STDINT_INTN_H : u32 = 1 ; pub const _BITS_STDINT_UINTN_H : u32 = 1 ; pub const _BITS_STDINT_LEAST_H : u32 = 1 ; pub const INT8_MIN : i32 = - 128 ; pub const INT16_MIN : i32 = - 32768 ; pub const INT32_MIN : i32 = - 2147483648 ; pub const INT8_MAX : u32 = 127 ; pub const INT16_MAX : u32 = 32767 ; pub const INT32_MAX : u32 = 2147483647 ; pub const UINT8_MAX : u32 = 255 ; pub const UINT16_MAX : u32 = 65535 ; pub const UINT32_MAX : u32 = 4294967295 ; pub const INT_LEAST8_MIN : i32 = - 128 ; pub const INT_LEAST16_MIN : i32 = - 32768 ; pub const INT_LEAST32_MIN : i32 = - 2147483648 ; pub const INT_LEAST8_MAX : u32 = 127 ; pub const INT_LEAST16_MAX : u32 = 32767 ; pub const INT_LEAST32_MAX : u32 = 2147483647 ; pub const UINT_LEAST8_MAX : u32 = 255 ; pub const UINT_LEAST16_MAX : u32 = 65535 ; pub const UINT_LEAST32_MAX : u32 = 4294967295 ; pub const INT_FAST8_MIN : i32 = - 128 ; pub const INT_FAST16_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST32_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST8_MAX : u32 = 127 ; pub const INT_FAST16_MAX : u64 = 9223372036854775807 ; pub const INT_FAST32_MAX : u64 = 9223372036854775807 ; pub const UINT_FAST8_MAX : u32 = 255 ; pub const UINT_FAST16_MAX : i32 = - 1 ; pub const UINT_FAST32_MAX : i32 = - 1 ; pub const INTPTR_MIN : i64 = - 9223372036854775808 ; pub const INTPTR_MAX : u64 = 9223372036854775807 ; pub const UINTPTR_MAX : i32 = - 1 ; pub const PTRDIFF_MIN : i64 = - 9223372036854775808 ; pub const PTRDIFF_MAX : u64 = 9223372036854775807 ; pub const SIG_ATOMIC_MIN : i32 = - 2147483648 ; pub const SIG_ATOMIC_MAX : u32 = 2147483647 ; pub const SIZE_MAX : i32 = - 1 ; pub const WINT_MIN : u32 = 0 ; pub const WINT_MAX : u32 = 4294967295 ; pub const RC_VALUE_MAX_NAME_LENGTH : u32 = 15 ; pub const _TIME_H : u32 = 1 ; pub const _BITS_TIME_H : u32 = 1 ; pub const CLOCK_REALTIME : u32 = 0 ; pub const CLOCK_MONOTONIC : u32 = 1 ; pub const CLOCK_PROCESS_CPUTIME_ID : u32 = 2 ; pub const CLOCK_THREAD_CPUTIME_ID : u32 = 3 ; pub const CLOCK_MONOTONIC_RAW : u32 = 4 ; pub const CLOCK_REALTIME_COARSE : u32 = 5 ; pub const CLOCK_MONOTONIC_COARSE : u32 = 6 ; pub const CLOCK_BOOTTIME : u32 = 7 ; pub const CLOCK_REALTIME_ALARM : u32 = 8 ; pub const CLOCK_BOOTTIME_ALARM : u32 = 9 ; pub const CLOCK_TAI : u32 = 11 ; pub const TIMER_ABSTIME : u32 = 1 ; pub const __clock_t_defined : u32 = 1 ; pub const __time_t_defined : u32 = 1 ; pub const __struct_tm_defined : u32 = 1 ; pub const _STRUCT_TIMESPEC : u32 = 1 ; pub const _BITS_ENDIAN_H : u32 = 1 ; pub const __LITTLE_ENDIAN : u32 = 1234 ; pub const __BIG_ENDIAN : u32 = 4321 ; pub const __PDP_ENDIAN : u32 = 3412 ; pub const _BITS_ENDIANNESS_H : u32 = 1 ; pub const __BYTE_ORDER : u32 = 1234 ; pub const __FLOAT_WORD_ORDER : u32 = 1234 ; pub const __clockid_t_defined : u32 = 1 ; pub const __timer_t_defined : u32 = 1 ; pub const __itimerspec_defined : u32 = 1 ; pub const _BITS_TYPES_LOCALE_T_H : u32 = 1 ; pub const _BITS_TYPES___LOCALE_T_H : u32 = 1 ; pub const TIME_UTC : u32 = 1 ; pub const _STDIO_H : u32 = 1 ; pub const _____fpos_t_defined : u32 = 1 ; pub const ____mbstate_t_defined : u32 = 1 ; pub const _____fpos64_t_defined : u32 = 1 ; pub const ____FILE_defined : u32 = 1 ; pub const __FILE_defined : u32 = 1 ; 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 ; pub const BUFSIZ : u32 = 8192 ; pub const EOF : i32 = - 1 ; 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 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 ; pub const __HAVE_FLOAT128 : u32 = 1 ; pub const __HAVE_DISTINCT_FLOAT128 : u32 = 1 ; pub const __HAVE_FLOAT64X : u32 = 1 ; pub const __HAVE_FLOAT64X_LONG_DOUBLE : u32 = 1 ; pub const __HAVE_FLOAT16 : u32 = 0 ; pub const __HAVE_FLOAT32 : u32 = 1 ; pub const __HAVE_FLOAT64 : u32 = 1 ; pub const __HAVE_FLOAT32X : u32 = 1 ; pub const __HAVE_FLOAT128X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT16 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT32 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT64 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT32X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT64X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT128X : u32 = 0 ; pub const __HAVE_FLOATN_NOT_TYPEDEF : u32 = 0 ; pub const RC_IMAGE_TYPE_GAME : u32 = 1 ; pub const RC_IMAGE_TYPE_ACHIEVEMENT : u32 = 2 ; pub const RC_IMAGE_TYPE_ACHIEVEMENT_LOCKED : u32 = 3 ; pub const RC_IMAGE_TYPE_USER : u32 = 4 ; pub const RC_ACHIEVEMENT_CATEGORY_CORE : u32 = 3 ; pub const RC_ACHIEVEMENT_CATEGORY_UNOFFICIAL : u32 = 5 ; pub const RC_ACHIEVEMENT_TYPE_STANDARD : u32 = 0 ; pub const RC_ACHIEVEMENT_TYPE_MISSABLE : u32 = 1 ; pub const RC_ACHIEVEMENT_TYPE_PROGRESSION : u32 = 2 ; pub const RC_ACHIEVEMENT_TYPE_WIN : u32 = 3 ; pub const RC_CLIENT_LEADERBOARD_DISPLAY_SIZE : u32 = 24 ; pub const RC_OK : _bindgen_ty_1 = 0 ; pub const RC_INVALID_LUA_OPERAND : _bindgen_ty_1 = - 1 ; pub const RC_INVALID_MEMORY_OPERAND : _bindgen_ty_1 = - 2 ; pub const RC_INVALID_CONST_OPERAND : _bindgen_ty_1 = - 3 ; pub const RC_INVALID_FP_OPERAND : _bindgen_ty_1 = - 4 ; pub const RC_INVALID_CONDITION_TYPE : _bindgen_ty_1 = - 5 ; pub const RC_INVALID_OPERATOR : _bindgen_ty_1 = - 6 ; pub const RC_INVALID_REQUIRED_HITS : _bindgen_ty_1 = - 7 ; pub const RC_DUPLICATED_START : _bindgen_ty_1 = - 8 ; pub const RC_DUPLICATED_CANCEL : _bindgen_ty_1 = - 9 ; pub const RC_DUPLICATED_SUBMIT : _bindgen_ty_1 = - 10 ; pub const RC_DUPLICATED_VALUE : _bindgen_ty_1 = - 11 ; pub const RC_DUPLICATED_PROGRESS : _bindgen_ty_1 = - 12 ; pub const RC_MISSING_START : _bindgen_ty_1 = - 13 ; pub const RC_MISSING_CANCEL : _bindgen_ty_1 = - 14 ; pub const RC_MISSING_SUBMIT : _bindgen_ty_1 = - 15 ; pub const RC_MISSING_VALUE : _bindgen_ty_1 = - 16 ; pub const RC_INVALID_LBOARD_FIELD : _bindgen_ty_1 = - 17 ; pub const RC_MISSING_DISPLAY_STRING : _bindgen_ty_1 = - 18 ; pub const RC_OUT_OF_MEMORY : _bindgen_ty_1 = - 19 ; pub const RC_INVALID_VALUE_FLAG : _bindgen_ty_1 = - 20 ; pub const RC_MISSING_VALUE_MEASURED : _bindgen_ty_1 = - 21 ; pub const RC_MULTIPLE_MEASURED : _bindgen_ty_1 = - 22 ; pub const RC_INVALID_MEASURED_TARGET : _bindgen_ty_1 = - 23 ; pub const RC_INVALID_COMPARISON : _bindgen_ty_1 = - 24 ; pub const RC_INVALID_STATE : _bindgen_ty_1 = - 25 ; pub const RC_INVALID_JSON : _bindgen_ty_1 = - 26 ; pub const RC_API_FAILURE : _bindgen_ty_1 = - 27 ; pub const RC_LOGIN_REQUIRED : _bindgen_ty_1 = - 28 ; pub const RC_NO_GAME_LOADED : _bindgen_ty_1 = - 29 ; pub const RC_HARDCORE_DISABLED : _bindgen_ty_1 = - 30 ; pub const RC_ABORTED : _bindgen_ty_1 = - 31 ; pub const RC_NO_RESPONSE : _bindgen_ty_1 = - 32 ; pub const RC_ACCESS_DENIED : _bindgen_ty_1 = - 33 ; pub const RC_INVALID_CREDENTIALS : _bindgen_ty_1 = - 34 ; pub const RC_EXPIRED_TOKEN : _bindgen_ty_1 = - 35 ; pub const RC_INSUFFICIENT_BUFFER : _bindgen_ty_1 = - 36 ; pub const RC_INVALID_VARIABLE_NAME : _bindgen_ty_1 = - 37 ; pub const RC_UNKNOWN_VARIABLE_NAME : _bindgen_ty_1 = - 38 ; # [doc = "\\\n| Return values                                                               |\n\\"] pub type _bindgen_ty_1 = :: core :: ffi :: c_int ; extern "C" { pub fn rc_error_str (ret : :: core :: ffi :: c_int) -> * const :: core :: ffi :: c_char ; } pub type wchar_t = :: core :: ffi :: c_int ; # [repr (C)] # [repr (align (16))] # [derive (Debug , Copy , Clone)] pub struct max_align_t { pub __clang_max_align_nonce1 : :: core :: ffi :: c_longlong , pub __bindgen_padding_0 : u64 , pub __clang_max_align_nonce2 : u128 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of max_align_t"] [:: core :: mem :: size_of :: < max_align_t > () - 32usize] ; ["Alignment of max_align_t"] [:: core :: mem :: align_of :: < max_align_t > () - 16usize] ; ["Offset of field: max_align_t::__clang_max_align_nonce1"] [:: core :: mem :: offset_of ! (max_align_t , __clang_max_align_nonce1) - 0usize] ; ["Offset of field: max_align_t::__clang_max_align_nonce2"] [:: core :: mem :: offset_of ! (max_align_t , __clang_max_align_nonce2) - 16usize] ; } ; pub type __u_char = :: core :: ffi :: c_uchar ; pub type __u_short = :: core :: ffi :: c_ushort ; pub type __u_int = :: core :: ffi :: c_uint ; pub type __u_long = :: core :: ffi :: c_ulong ; pub type __int8_t = :: core :: ffi :: c_schar ; pub type __uint8_t = :: core :: ffi :: c_uchar ; pub type __int16_t = :: core :: ffi :: c_short ; pub type __uint16_t = :: core :: ffi :: c_ushort ; pub type __int32_t = :: core :: ffi :: c_int ; pub type __uint32_t = :: core :: ffi :: c_uint ; pub type __int64_t = :: core :: ffi :: c_long ; pub type __uint64_t = :: core :: ffi :: c_ulong ; pub type __int_least8_t = __int8_t ; pub type __uint_least8_t = __uint8_t ; pub type __int_least16_t = __int16_t ; pub type __uint_least16_t = __uint16_t ; pub type __int_least32_t = __int32_t ; pub type __uint_least32_t = __uint32_t ; pub type __int_least64_t = __int64_t ; pub type __uint_least64_t = __uint64_t ; pub type __quad_t = :: core :: ffi :: c_long ; pub type __u_quad_t = :: core :: ffi :: c_ulong ; pub type __intmax_t = :: core :: ffi :: c_long ; pub type __uintmax_t = :: core :: ffi :: c_ulong ; pub type __dev_t = :: core :: ffi :: c_ulong ; pub type __uid_t = :: core :: ffi :: c_uint ; pub type __gid_t = :: core :: ffi :: c_uint ; pub type __ino_t = :: core :: ffi :: c_ulong ; pub type __ino64_t = :: core :: ffi :: c_ulong ; pub type __mode_t = :: core :: ffi :: c_uint ; pub type __nlink_t = :: core :: ffi :: c_ulong ; pub type __off_t = :: core :: ffi :: c_long ; pub type __off64_t = :: core :: ffi :: c_long ; pub type __pid_t = :: core :: ffi :: c_int ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __fsid_t { pub __val : [:: core :: ffi :: c_int ; 2usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __fsid_t"] [:: core :: mem :: size_of :: < __fsid_t > () - 8usize] ; ["Alignment of __fsid_t"] [:: core :: mem :: align_of :: < __fsid_t > () - 4usize] ; ["Offset of field: __fsid_t::__val"] [:: core :: mem :: offset_of ! (__fsid_t , __val) - 0usize] ; } ; pub type __clock_t = :: core :: ffi :: c_long ; pub type __rlim_t = :: core :: ffi :: c_ulong ; pub type __rlim64_t = :: core :: ffi :: c_ulong ; pub type __id_t = :: core :: ffi :: c_uint ; pub type __time_t = :: core :: ffi :: c_long ; pub type __useconds_t = :: core :: ffi :: c_uint ; pub type __suseconds_t = :: core :: ffi :: c_long ; pub type __suseconds64_t = :: core :: ffi :: c_long ; pub type __daddr_t = :: core :: ffi :: c_int ; pub type __key_t = :: core :: ffi :: c_int ; pub type __clockid_t = :: core :: ffi :: c_int ; pub type __timer_t = * mut :: core :: ffi :: c_void ; pub type __blksize_t = :: core :: ffi :: c_long ; pub type __blkcnt_t = :: core :: ffi :: c_long ; pub type __blkcnt64_t = :: core :: ffi :: c_long ; pub type __fsblkcnt_t = :: core :: ffi :: c_ulong ; pub type __fsblkcnt64_t = :: core :: ffi :: c_ulong ; pub type __fsfilcnt_t = :: core :: ffi :: c_ulong ; pub type __fsfilcnt64_t = :: core :: ffi :: c_ulong ; pub type __fsword_t = :: core :: ffi :: c_long ; pub type __ssize_t = :: core :: ffi :: c_long ; pub type __syscall_slong_t = :: core :: ffi :: c_long ; pub type __syscall_ulong_t = :: core :: ffi :: c_ulong ; pub type __loff_t = __off64_t ; pub type __caddr_t = * mut :: core :: ffi :: c_char ; pub type __intptr_t = :: core :: ffi :: c_long ; pub type __socklen_t = :: core :: ffi :: c_uint ; pub type __sig_atomic_t = :: core :: ffi :: c_int ; pub type int_least8_t = __int_least8_t ; pub type int_least16_t = __int_least16_t ; pub type int_least32_t = __int_least32_t ; pub type int_least64_t = __int_least64_t ; pub type uint_least8_t = __uint_least8_t ; pub type uint_least16_t = __uint_least16_t ; pub type uint_least32_t = __uint_least32_t ; pub type uint_least64_t = __uint_least64_t ; pub type int_fast8_t = :: core :: ffi :: c_schar ; pub type int_fast16_t = :: core :: ffi :: c_long ; pub type int_fast32_t = :: core :: ffi :: c_long ; pub type int_fast64_t = :: core :: ffi :: c_long ; pub type uint_fast8_t = :: core :: ffi :: c_uchar ; pub type uint_fast16_t = :: core :: ffi :: c_ulong ; pub type uint_fast32_t = :: core :: ffi :: c_ulong ; pub type uint_fast64_t = :: core :: ffi :: c_ulong ; pub type intmax_t = __intmax_t ; pub type uintmax_t = __uintmax_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct lua_State { _unused : [u8 ; 0] , } # [doc = " Callback used to read num_bytes bytes from memory starting at address. If\n num_bytes is greater than 1, the value is read in little-endian from\n memory."] pub type rc_peek_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , num_bytes : u32 , ud : * mut :: core :: ffi :: c_void) -> u32 > ; pub const RC_MEMSIZE_8_BITS : _bindgen_ty_2 = 0 ; pub const RC_MEMSIZE_16_BITS : _bindgen_ty_2 = 1 ; pub const RC_MEMSIZE_24_BITS : _bindgen_ty_2 = 2 ; pub const RC_MEMSIZE_32_BITS : _bindgen_ty_2 = 3 ; pub const RC_MEMSIZE_LOW : _bindgen_ty_2 = 4 ; pub const RC_MEMSIZE_HIGH : _bindgen_ty_2 = 5 ; pub const RC_MEMSIZE_BIT_0 : _bindgen_ty_2 = 6 ; pub const RC_MEMSIZE_BIT_1 : _bindgen_ty_2 = 7 ; pub const RC_MEMSIZE_BIT_2 : _bindgen_ty_2 = 8 ; pub const RC_MEMSIZE_BIT_3 : _bindgen_ty_2 = 9 ; pub const RC_MEMSIZE_BIT_4 : _bindgen_ty_2 = 10 ; pub const RC_MEMSIZE_BIT_5 : _bindgen_ty_2 = 11 ; pub const RC_MEMSIZE_BIT_6 : _bindgen_ty_2 = 12 ; pub const RC_MEMSIZE_BIT_7 : _bindgen_ty_2 = 13 ; pub const RC_MEMSIZE_BITCOUNT : _bindgen_ty_2 = 14 ; pub const RC_MEMSIZE_16_BITS_BE : _bindgen_ty_2 = 15 ; pub const RC_MEMSIZE_24_BITS_BE : _bindgen_ty_2 = 16 ; pub const RC_MEMSIZE_32_BITS_BE : _bindgen_ty_2 = 17 ; pub const RC_MEMSIZE_FLOAT : _bindgen_ty_2 = 18 ; pub const RC_MEMSIZE_MBF32 : _bindgen_ty_2 = 19 ; pub const RC_MEMSIZE_MBF32_LE : _bindgen_ty_2 = 20 ; pub const RC_MEMSIZE_FLOAT_BE : _bindgen_ty_2 = 21 ; pub const RC_MEMSIZE_DOUBLE32 : _bindgen_ty_2 = 22 ; pub const RC_MEMSIZE_DOUBLE32_BE : _bindgen_ty_2 = 23 ; pub const RC_MEMSIZE_VARIABLE : _bindgen_ty_2 = 24 ; # [doc = "\\\n| Memory References                                                           |\n\\"] pub type _bindgen_ty_2 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memref_value_t { pub value : u32 , pub prior : u32 , pub size : u8 , pub changed : u8 , pub type_ : u8 , pub is_indirect : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memref_value_t"] [:: core :: mem :: size_of :: < rc_memref_value_t > () - 12usize] ; ["Alignment of rc_memref_value_t"] [:: core :: mem :: align_of :: < rc_memref_value_t > () - 4usize] ; ["Offset of field: rc_memref_value_t::value"] [:: core :: mem :: offset_of ! (rc_memref_value_t , value) - 0usize] ; ["Offset of field: rc_memref_value_t::prior"] [:: core :: mem :: offset_of ! (rc_memref_value_t , prior) - 4usize] ; ["Offset of field: rc_memref_value_t::size"] [:: core :: mem :: offset_of ! (rc_memref_value_t , size) - 8usize] ; ["Offset of field: rc_memref_value_t::changed"] [:: core :: mem :: offset_of ! (rc_memref_value_t , changed) - 9usize] ; ["Offset of field: rc_memref_value_t::type_"] [:: core :: mem :: offset_of ! (rc_memref_value_t , type_) - 10usize] ; ["Offset of field: rc_memref_value_t::is_indirect"] [:: core :: mem :: offset_of ! (rc_memref_value_t , is_indirect) - 11usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memref_t { pub value : rc_memref_value_t , pub address : u32 , pub next : * mut rc_memref_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memref_t"] [:: core :: mem :: size_of :: < rc_memref_t > () - 24usize] ; ["Alignment of rc_memref_t"] [:: core :: mem :: align_of :: < rc_memref_t > () - 8usize] ; ["Offset of field: rc_memref_t::value"] [:: core :: mem :: offset_of ! (rc_memref_t , value) - 0usize] ; ["Offset of field: rc_memref_t::address"] [:: core :: mem :: offset_of ! (rc_memref_t , address) - 12usize] ; ["Offset of field: rc_memref_t::next"] [:: core :: mem :: offset_of ! (rc_memref_t , next) - 16usize] ; } ; pub const RC_OPERAND_ADDRESS : _bindgen_ty_3 = 0 ; pub const RC_OPERAND_DELTA : _bindgen_ty_3 = 1 ; pub const RC_OPERAND_CONST : _bindgen_ty_3 = 2 ; pub const RC_OPERAND_FP : _bindgen_ty_3 = 3 ; pub const RC_OPERAND_LUA : _bindgen_ty_3 = 4 ; pub const RC_OPERAND_PRIOR : _bindgen_ty_3 = 5 ; pub const RC_OPERAND_BCD : _bindgen_ty_3 = 6 ; pub const RC_OPERAND_INVERTED : _bindgen_ty_3 = 7 ; pub const RC_OPERAND_RECALL : _bindgen_ty_3 = 8 ; # [doc = "\\\n| Operands                                                                    |\n\\"] pub type _bindgen_ty_3 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Copy , Clone)] pub struct rc_operand_t { pub value : rc_operand_t__bindgen_ty_1 , pub type_ : u8 , pub size : u8 , } # [repr (C)] # [derive (Copy , Clone)] pub union rc_operand_t__bindgen_ty_1 { pub memref : * mut rc_memref_t , pub num : u32 , pub dbl : f64 , pub luafunc : :: core :: ffi :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_operand_t__bindgen_ty_1"] [:: core :: mem :: size_of :: < rc_operand_t__bindgen_ty_1 > () - 8usize] ; ["Alignment of rc_operand_t__bindgen_ty_1"] [:: core :: mem :: align_of :: < rc_operand_t__bindgen_ty_1 > () - 8usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::memref"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , memref) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::num"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , num) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::dbl"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , dbl) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::luafunc"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , luafunc) - 0usize] ; } ; impl :: core :: fmt :: Debug for rc_operand_t__bindgen_ty_1 { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_operand_t__bindgen_ty_1 {{ union }}") } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_operand_t"] [:: core :: mem :: size_of :: < rc_operand_t > () - 16usize] ; ["Alignment of rc_operand_t"] [:: core :: mem :: align_of :: < rc_operand_t > () - 8usize] ; ["Offset of field: rc_operand_t::value"] [:: core :: mem :: offset_of ! (rc_operand_t , value) - 0usize] ; ["Offset of field: rc_operand_t::type_"] [:: core :: mem :: offset_of ! (rc_operand_t , type_) - 8usize] ; ["Offset of field: rc_operand_t::size"] [:: core :: mem :: offset_of ! (rc_operand_t , size) - 9usize] ; } ; impl :: core :: fmt :: Debug for rc_operand_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_operand_t {{ value: {:?}, type: {:?}, size: {:?} }}" , self . value , self . type_ , self . size) } } extern "C" { pub fn rc_operand_is_memref (operand : * const rc_operand_t) -> :: core :: ffi :: c_int ; } pub const RC_CONDITION_STANDARD : _bindgen_ty_4 = 0 ; pub const RC_CONDITION_PAUSE_IF : _bindgen_ty_4 = 1 ; pub const RC_CONDITION_RESET_IF : _bindgen_ty_4 = 2 ; pub const RC_CONDITION_MEASURED_IF : _bindgen_ty_4 = 3 ; pub const RC_CONDITION_TRIGGER : _bindgen_ty_4 = 4 ; pub const RC_CONDITION_MEASURED : _bindgen_ty_4 = 5 ; pub const RC_CONDITION_ADD_SOURCE : _bindgen_ty_4 = 6 ; pub const RC_CONDITION_SUB_SOURCE : _bindgen_ty_4 = 7 ; pub const RC_CONDITION_ADD_ADDRESS : _bindgen_ty_4 = 8 ; pub const RC_CONDITION_REMEMBER : _bindgen_ty_4 = 9 ; pub const RC_CONDITION_ADD_HITS : _bindgen_ty_4 = 10 ; pub const RC_CONDITION_SUB_HITS : _bindgen_ty_4 = 11 ; pub const RC_CONDITION_RESET_NEXT_IF : _bindgen_ty_4 = 12 ; pub const RC_CONDITION_AND_NEXT : _bindgen_ty_4 = 13 ; pub const RC_CONDITION_OR_NEXT : _bindgen_ty_4 = 14 ; # [doc = "\\\n| Conditions                                                                  |\n\\"] pub type _bindgen_ty_4 = :: core :: ffi :: c_uint ; pub const RC_OPERATOR_EQ : _bindgen_ty_5 = 0 ; pub const RC_OPERATOR_LT : _bindgen_ty_5 = 1 ; pub const RC_OPERATOR_LE : _bindgen_ty_5 = 2 ; pub const RC_OPERATOR_GT : _bindgen_ty_5 = 3 ; pub const RC_OPERATOR_GE : _bindgen_ty_5 = 4 ; pub const RC_OPERATOR_NE : _bindgen_ty_5 = 5 ; pub const RC_OPERATOR_NONE : _bindgen_ty_5 = 6 ; pub const RC_OPERATOR_MULT : _bindgen_ty_5 = 7 ; pub const RC_OPERATOR_DIV : _bindgen_ty_5 = 8 ; pub const RC_OPERATOR_AND : _bindgen_ty_5 = 9 ; pub const RC_OPERATOR_XOR : _bindgen_ty_5 = 10 ; pub const RC_OPERATOR_MOD : _bindgen_ty_5 = 11 ; pub const RC_OPERATOR_ADD : _bindgen_ty_5 = 12 ; pub const RC_OPERATOR_SUB : _bindgen_ty_5 = 13 ; pub type _bindgen_ty_5 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Copy , Clone)] pub struct rc_condition_t { pub operand1 : rc_operand_t , pub operand2 : rc_operand_t , pub required_hits : u32 , pub current_hits : u32 , pub next : * mut rc_condition_t , pub type_ : u8 , pub oper : u8 , pub pause : u8 , pub is_true : u8 , pub optimized_comparator : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_condition_t"] [:: core :: mem :: size_of :: < rc_condition_t > () - 56usize] ; ["Alignment of rc_condition_t"] [:: core :: mem :: align_of :: < rc_condition_t > () - 8usize] ; ["Offset of field: rc_condition_t::operand1"] [:: core :: mem :: offset_of ! (rc_condition_t , operand1) - 0usize] ; ["Offset of field: rc_condition_t::operand2"] [:: core :: mem :: offset_of ! (rc_condition_t , operand2) - 16usize] ; ["Offset of field: rc_condition_t::required_hits"] [:: core :: mem :: offset_of ! (rc_condition_t , required_hits) - 32usize] ; ["Offset of field: rc_condition_t::current_hits"] [:: core :: mem :: offset_of ! (rc_condition_t , current_hits) - 36usize] ; ["Offset of field: rc_condition_t::next"] [:: core :: mem :: offset_of ! (rc_condition_t , next) - 40usize] ; ["Offset of field: rc_condition_t::type_"] [:: core :: mem :: offset_of ! (rc_condition_t , type_) - 48usize] ; ["Offset of field: rc_condition_t::oper"] [:: core :: mem :: offset_of ! (rc_condition_t , oper) - 49usize] ; ["Offset of field: rc_condition_t::pause"] [:: core :: mem :: offset_of ! (rc_condition_t , pause) - 50usize] ; ["Offset of field: rc_condition_t::is_true"] [:: core :: mem :: offset_of ! (rc_condition_t , is_true) - 51usize] ; ["Offset of field: rc_condition_t::optimized_comparator"] [:: core :: mem :: offset_of ! (rc_condition_t , optimized_comparator) - 52usize] ; } ; impl :: core :: fmt :: Debug for rc_condition_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_condition_t {{ operand1: {:?}, operand2: {:?}, required_hits: {:?}, current_hits: {:?}, next: {:?}, type: {:?}, oper: {:?}, pause: {:?}, is_true: {:?}, optimized_comparator: {:?} }}" , self . operand1 , self . operand2 , self . required_hits , self . current_hits , self . next , self . type_ , self . oper , self . pause , self . is_true , self . optimized_comparator) } } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_condset_t { pub next : * mut rc_condset_t , pub conditions : * mut rc_condition_t , pub has_pause : u8 , pub is_paused : u8 , pub has_indirect_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_condset_t"] [:: core :: mem :: size_of :: < rc_condset_t > () - 24usize] ; ["Alignment of rc_condset_t"] [:: core :: mem :: align_of :: < rc_condset_t > () - 8usize] ; ["Offset of field: rc_condset_t::next"] [:: core :: mem :: offset_of ! (rc_condset_t , next) - 0usize] ; ["Offset of field: rc_condset_t::conditions"] [:: core :: mem :: offset_of ! (rc_condset_t , conditions) - 8usize] ; ["Offset of field: rc_condset_t::has_pause"] [:: core :: mem :: offset_of ! (rc_condset_t , has_pause) - 16usize] ; ["Offset of field: rc_condset_t::is_paused"] [:: core :: mem :: offset_of ! (rc_condset_t , is_paused) - 17usize] ; ["Offset of field: rc_condset_t::has_indirect_memrefs"] [:: core :: mem :: offset_of ! (rc_condset_t , has_indirect_memrefs) - 18usize] ; } ; pub const RC_TRIGGER_STATE_INACTIVE : _bindgen_ty_6 = 0 ; pub const RC_TRIGGER_STATE_WAITING : _bindgen_ty_6 = 1 ; pub const RC_TRIGGER_STATE_ACTIVE : _bindgen_ty_6 = 2 ; pub const RC_TRIGGER_STATE_PAUSED : _bindgen_ty_6 = 3 ; pub const RC_TRIGGER_STATE_RESET : _bindgen_ty_6 = 4 ; pub const RC_TRIGGER_STATE_TRIGGERED : _bindgen_ty_6 = 5 ; pub const RC_TRIGGER_STATE_PRIMED : _bindgen_ty_6 = 6 ; pub const RC_TRIGGER_STATE_DISABLED : _bindgen_ty_6 = 7 ; # [doc = "\\\n| Trigger                                                                     |\n\\"] pub type _bindgen_ty_6 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_trigger_t { pub requirement : * mut rc_condset_t , pub alternative : * mut rc_condset_t , pub memrefs : * mut rc_memref_t , pub measured_value : u32 , pub measured_target : u32 , pub state : u8 , pub has_hits : u8 , pub has_required_hits : u8 , pub measured_as_percent : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_trigger_t"] [:: core :: mem :: size_of :: < rc_trigger_t > () - 40usize] ; ["Alignment of rc_trigger_t"] [:: core :: mem :: align_of :: < rc_trigger_t > () - 8usize] ; ["Offset of field: rc_trigger_t::requirement"] [:: core :: mem :: offset_of ! (rc_trigger_t , requirement) - 0usize] ; ["Offset of field: rc_trigger_t::alternative"] [:: core :: mem :: offset_of ! (rc_trigger_t , alternative) - 8usize] ; ["Offset of field: rc_trigger_t::memrefs"] [:: core :: mem :: offset_of ! (rc_trigger_t , memrefs) - 16usize] ; ["Offset of field: rc_trigger_t::measured_value"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_value) - 24usize] ; ["Offset of field: rc_trigger_t::measured_target"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_target) - 28usize] ; ["Offset of field: rc_trigger_t::state"] [:: core :: mem :: offset_of ! (rc_trigger_t , state) - 32usize] ; ["Offset of field: rc_trigger_t::has_hits"] [:: core :: mem :: offset_of ! (rc_trigger_t , has_hits) - 33usize] ; ["Offset of field: rc_trigger_t::has_required_hits"] [:: core :: mem :: offset_of ! (rc_trigger_t , has_required_hits) - 34usize] ; ["Offset of field: rc_trigger_t::measured_as_percent"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_as_percent) - 35usize] ; } ; extern "C" { pub fn rc_trigger_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_trigger (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_trigger_t ; } extern "C" { pub fn rc_evaluate_trigger (trigger : * mut rc_trigger_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_test_trigger (trigger : * mut rc_trigger_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_trigger (self_ : * mut rc_trigger_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_value_t { pub value : rc_memref_value_t , pub conditions : * mut rc_condset_t , pub memrefs : * mut rc_memref_t , pub name : * const :: core :: ffi :: c_char , pub next : * mut rc_value_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_value_t"] [:: core :: mem :: size_of :: < rc_value_t > () - 48usize] ; ["Alignment of rc_value_t"] [:: core :: mem :: align_of :: < rc_value_t > () - 8usize] ; ["Offset of field: rc_value_t::value"] [:: core :: mem :: offset_of ! (rc_value_t , value) - 0usize] ; ["Offset of field: rc_value_t::conditions"] [:: core :: mem :: offset_of ! (rc_value_t , conditions) - 16usize] ; ["Offset of field: rc_value_t::memrefs"] [:: core :: mem :: offset_of ! (rc_value_t , memrefs) - 24usize] ; ["Offset of field: rc_value_t::name"] [:: core :: mem :: offset_of ! (rc_value_t , name) - 32usize] ; ["Offset of field: rc_value_t::next"] [:: core :: mem :: offset_of ! (rc_value_t , next) - 40usize] ; } ; extern "C" { pub fn rc_value_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_value (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_value_t ; } extern "C" { pub fn rc_evaluate_value (value : * mut rc_value_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> i32 ; } pub const RC_LBOARD_STATE_INACTIVE : _bindgen_ty_7 = 0 ; pub const RC_LBOARD_STATE_WAITING : _bindgen_ty_7 = 1 ; pub const RC_LBOARD_STATE_ACTIVE : _bindgen_ty_7 = 2 ; pub const RC_LBOARD_STATE_STARTED : _bindgen_ty_7 = 3 ; pub const RC_LBOARD_STATE_CANCELED : _bindgen_ty_7 = 4 ; pub const RC_LBOARD_STATE_TRIGGERED : _bindgen_ty_7 = 5 ; pub const RC_LBOARD_STATE_DISABLED : _bindgen_ty_7 = 6 ; # [doc = "\\\n| Leaderboards                                                                |\n\\"] pub type _bindgen_ty_7 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_lboard_t { pub start : rc_trigger_t , pub submit : rc_trigger_t , pub cancel : rc_trigger_t , pub value : rc_value_t , pub progress : * mut rc_value_t , pub memrefs : * mut rc_memref_t , pub state : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_lboard_t"] [:: core :: mem :: size_of :: < rc_lboard_t > () - 192usize] ; ["Alignment of rc_lboard_t"] [:: core :: mem :: align_of :: < rc_lboard_t > () - 8usize] ; ["Offset of field: rc_lboard_t::start"] [:: core :: mem :: offset_of ! (rc_lboard_t , start) - 0usize] ; ["Offset of field: rc_lboard_t::submit"] [:: core :: mem :: offset_of ! (rc_lboard_t , submit) - 40usize] ; ["Offset of field: rc_lboard_t::cancel"] [:: core :: mem :: offset_of ! (rc_lboard_t , cancel) - 80usize] ; ["Offset of field: rc_lboard_t::value"] [:: core :: mem :: offset_of ! (rc_lboard_t , value) - 120usize] ; ["Offset of field: rc_lboard_t::progress"] [:: core :: mem :: offset_of ! (rc_lboard_t , progress) - 168usize] ; ["Offset of field: rc_lboard_t::memrefs"] [:: core :: mem :: offset_of ! (rc_lboard_t , memrefs) - 176usize] ; ["Offset of field: rc_lboard_t::state"] [:: core :: mem :: offset_of ! (rc_lboard_t , state) - 184usize] ; } ; extern "C" { pub fn rc_lboard_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_lboard (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_lboard_t ; } extern "C" { pub fn rc_evaluate_lboard (lboard : * mut rc_lboard_t , value : * mut i32 , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_lboard (lboard : * mut rc_lboard_t) ; } pub const RC_FORMAT_FRAMES : _bindgen_ty_8 = 0 ; pub const RC_FORMAT_SECONDS : _bindgen_ty_8 = 1 ; pub const RC_FORMAT_CENTISECS : _bindgen_ty_8 = 2 ; pub const RC_FORMAT_SCORE : _bindgen_ty_8 = 3 ; pub const RC_FORMAT_VALUE : _bindgen_ty_8 = 4 ; pub const RC_FORMAT_MINUTES : _bindgen_ty_8 = 5 ; pub const RC_FORMAT_SECONDS_AS_MINUTES : _bindgen_ty_8 = 6 ; pub const RC_FORMAT_FLOAT1 : _bindgen_ty_8 = 7 ; pub const RC_FORMAT_FLOAT2 : _bindgen_ty_8 = 8 ; pub const RC_FORMAT_FLOAT3 : _bindgen_ty_8 = 9 ; pub const RC_FORMAT_FLOAT4 : _bindgen_ty_8 = 10 ; pub const RC_FORMAT_FLOAT5 : _bindgen_ty_8 = 11 ; pub const RC_FORMAT_FLOAT6 : _bindgen_ty_8 = 12 ; pub const RC_FORMAT_FIXED1 : _bindgen_ty_8 = 13 ; pub const RC_FORMAT_FIXED2 : _bindgen_ty_8 = 14 ; pub const RC_FORMAT_FIXED3 : _bindgen_ty_8 = 15 ; pub const RC_FORMAT_TENS : _bindgen_ty_8 = 16 ; pub const RC_FORMAT_HUNDREDS : _bindgen_ty_8 = 17 ; pub const RC_FORMAT_THOUSANDS : _bindgen_ty_8 = 18 ; pub const RC_FORMAT_UNSIGNED_VALUE : _bindgen_ty_8 = 19 ; # [doc = "\\\n| Value formatting                                                            |\n\\"] pub type _bindgen_ty_8 = :: core :: ffi :: c_uint ; extern "C" { pub fn rc_parse_format (format_str : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_format_value (buffer : * mut :: core :: ffi :: c_char , size : :: core :: ffi :: c_int , value : i32 , format : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_lookup_item_t { pub first : u32 , pub last : u32 , pub left : * mut rc_richpresence_lookup_item_t , pub right : * mut rc_richpresence_lookup_item_t , pub label : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_lookup_item_t"] [:: core :: mem :: size_of :: < rc_richpresence_lookup_item_t > () - 32usize] ; ["Alignment of rc_richpresence_lookup_item_t"] [:: core :: mem :: align_of :: < rc_richpresence_lookup_item_t > () - 8usize] ; ["Offset of field: rc_richpresence_lookup_item_t::first"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , first) - 0usize] ; ["Offset of field: rc_richpresence_lookup_item_t::last"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , last) - 4usize] ; ["Offset of field: rc_richpresence_lookup_item_t::left"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , left) - 8usize] ; ["Offset of field: rc_richpresence_lookup_item_t::right"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , right) - 16usize] ; ["Offset of field: rc_richpresence_lookup_item_t::label"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , label) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_lookup_t { pub root : * mut rc_richpresence_lookup_item_t , pub next : * mut rc_richpresence_lookup_t , pub name : * const :: core :: ffi :: c_char , pub default_label : * const :: core :: ffi :: c_char , pub format : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_lookup_t"] [:: core :: mem :: size_of :: < rc_richpresence_lookup_t > () - 40usize] ; ["Alignment of rc_richpresence_lookup_t"] [:: core :: mem :: align_of :: < rc_richpresence_lookup_t > () - 8usize] ; ["Offset of field: rc_richpresence_lookup_t::root"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , root) - 0usize] ; ["Offset of field: rc_richpresence_lookup_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , next) - 8usize] ; ["Offset of field: rc_richpresence_lookup_t::name"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , name) - 16usize] ; ["Offset of field: rc_richpresence_lookup_t::default_label"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , default_label) - 24usize] ; ["Offset of field: rc_richpresence_lookup_t::format"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , format) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_display_part_t { pub next : * mut rc_richpresence_display_part_t , pub text : * const :: core :: ffi :: c_char , pub lookup : * mut rc_richpresence_lookup_t , pub value : * mut rc_memref_value_t , pub display_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_display_part_t"] [:: core :: mem :: size_of :: < rc_richpresence_display_part_t > () - 40usize] ; ["Alignment of rc_richpresence_display_part_t"] [:: core :: mem :: align_of :: < rc_richpresence_display_part_t > () - 8usize] ; ["Offset of field: rc_richpresence_display_part_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , next) - 0usize] ; ["Offset of field: rc_richpresence_display_part_t::text"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , text) - 8usize] ; ["Offset of field: rc_richpresence_display_part_t::lookup"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , lookup) - 16usize] ; ["Offset of field: rc_richpresence_display_part_t::value"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , value) - 24usize] ; ["Offset of field: rc_richpresence_display_part_t::display_type"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , display_type) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_display_t { pub trigger : rc_trigger_t , pub next : * mut rc_richpresence_display_t , pub display : * mut rc_richpresence_display_part_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_display_t"] [:: core :: mem :: size_of :: < rc_richpresence_display_t > () - 56usize] ; ["Alignment of rc_richpresence_display_t"] [:: core :: mem :: align_of :: < rc_richpresence_display_t > () - 8usize] ; ["Offset of field: rc_richpresence_display_t::trigger"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , trigger) - 0usize] ; ["Offset of field: rc_richpresence_display_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , next) - 40usize] ; ["Offset of field: rc_richpresence_display_t::display"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , display) - 48usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_t { pub first_display : * mut rc_richpresence_display_t , pub first_lookup : * mut rc_richpresence_lookup_t , pub memrefs : * mut rc_memref_t , pub variables : * mut rc_value_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_t"] [:: core :: mem :: size_of :: < rc_richpresence_t > () - 32usize] ; ["Alignment of rc_richpresence_t"] [:: core :: mem :: align_of :: < rc_richpresence_t > () - 8usize] ; ["Offset of field: rc_richpresence_t::first_display"] [:: core :: mem :: offset_of ! (rc_richpresence_t , first_display) - 0usize] ; ["Offset of field: rc_richpresence_t::first_lookup"] [:: core :: mem :: offset_of ! (rc_richpresence_t , first_lookup) - 8usize] ; ["Offset of field: rc_richpresence_t::memrefs"] [:: core :: mem :: offset_of ! (rc_richpresence_t , memrefs) - 16usize] ; ["Offset of field: rc_richpresence_t::variables"] [:: core :: mem :: offset_of ! (rc_richpresence_t , variables) - 24usize] ; } ; extern "C" { pub fn rc_richpresence_size (script : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_richpresence_size_lines (script : * const :: core :: ffi :: c_char , lines_read : * mut :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_richpresence (buffer : * mut :: core :: ffi :: c_void , script : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_richpresence_t ; } extern "C" { pub fn rc_evaluate_richpresence (richpresence : * mut rc_richpresence_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_update_richpresence (richpresence : * mut rc_richpresence_t , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) ; } extern "C" { pub fn rc_get_richpresence_display_string (richpresence : * mut rc_richpresence_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_richpresence (self_ : * mut rc_richpresence_t) ; } # [doc = " A block of memory for variable length data (like strings and arrays)."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_buffer_chunk_t { pub write : * mut u8 , pub end : * mut u8 , pub start : * mut u8 , pub next : * mut rc_buffer_chunk_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_buffer_chunk_t"] [:: core :: mem :: size_of :: < rc_buffer_chunk_t > () - 32usize] ; ["Alignment of rc_buffer_chunk_t"] [:: core :: mem :: align_of :: < rc_buffer_chunk_t > () - 8usize] ; ["Offset of field: rc_buffer_chunk_t::write"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , write) - 0usize] ; ["Offset of field: rc_buffer_chunk_t::end"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , end) - 8usize] ; ["Offset of field: rc_buffer_chunk_t::start"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , start) - 16usize] ; ["Offset of field: rc_buffer_chunk_t::next"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , next) - 24usize] ; } ; # [doc = " A preallocated block of memory for variable length data (like strings and arrays)."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_buffer_t { pub chunk : rc_buffer_chunk_t , pub data : [u8 ; 256usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_buffer_t"] [:: core :: mem :: size_of :: < rc_buffer_t > () - 288usize] ; ["Alignment of rc_buffer_t"] [:: core :: mem :: align_of :: < rc_buffer_t > () - 8usize] ; ["Offset of field: rc_buffer_t::chunk"] [:: core :: mem :: offset_of ! (rc_buffer_t , chunk) - 0usize] ; ["Offset of field: rc_buffer_t::data"] [:: core :: mem :: offset_of ! (rc_buffer_t , data) - 32usize] ; } ; extern "C" { pub fn rc_buffer_init (buffer : * mut rc_buffer_t) ; } extern "C" { pub fn rc_buffer_destroy (buffer : * mut rc_buffer_t) ; } extern "C" { pub fn rc_buffer_reserve (buffer : * mut rc_buffer_t , amount : usize) -> * mut u8 ; } extern "C" { pub fn rc_buffer_consume (buffer : * mut rc_buffer_t , start : * const u8 , end : * mut u8) ; } extern "C" { pub fn rc_buffer_alloc (buffer : * mut rc_buffer_t , amount : usize) -> * mut :: core :: ffi :: c_void ; } extern "C" { pub fn rc_buffer_strcpy (buffer : * mut rc_buffer_t , src : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn rc_buffer_strncpy (buffer : * mut rc_buffer_t , src : * const :: core :: ffi :: c_char , len : usize) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn rc_djb2 (input : * const :: core :: ffi :: c_char) -> u32 ; } extern "C" { pub fn rc_format_md5 (checksum : * mut :: core :: ffi :: c_char , digest : * const u8) ; } # [doc = " A constructed request to send to the retroachievements server."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_request_t { pub url : * const :: core :: ffi :: c_char , pub post_data : * const :: core :: ffi :: c_char , pub content_type : * const :: core :: ffi :: c_char , pub buffer : rc_buffer_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_request_t"] [:: core :: mem :: size_of :: < rc_api_request_t > () - 312usize] ; ["Alignment of rc_api_request_t"] [:: core :: mem :: align_of :: < rc_api_request_t > () - 8usize] ; ["Offset of field: rc_api_request_t::url"] [:: core :: mem :: offset_of ! (rc_api_request_t , url) - 0usize] ; ["Offset of field: rc_api_request_t::post_data"] [:: core :: mem :: offset_of ! (rc_api_request_t , post_data) - 8usize] ; ["Offset of field: rc_api_request_t::content_type"] [:: core :: mem :: offset_of ! (rc_api_request_t , content_type) - 16usize] ; ["Offset of field: rc_api_request_t::buffer"] [:: core :: mem :: offset_of ! (rc_api_request_t , buffer) - 24usize] ; } ; # [doc = " Common attributes for all server responses."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_response_t { pub succeeded : :: core :: ffi :: c_int , pub error_message : * const :: core :: ffi :: c_char , pub error_code : * const :: core :: ffi :: c_char , pub buffer : rc_buffer_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_response_t"] [:: core :: mem :: size_of :: < rc_api_response_t > () - 312usize] ; ["Alignment of rc_api_response_t"] [:: core :: mem :: align_of :: < rc_api_response_t > () - 8usize] ; ["Offset of field: rc_api_response_t::succeeded"] [:: core :: mem :: offset_of ! (rc_api_response_t , succeeded) - 0usize] ; ["Offset of field: rc_api_response_t::error_message"] [:: core :: mem :: offset_of ! (rc_api_response_t , error_message) - 8usize] ; ["Offset of field: rc_api_response_t::error_code"] [:: core :: mem :: offset_of ! (rc_api_response_t , error_code) - 16usize] ; ["Offset of field: rc_api_response_t::buffer"] [:: core :: mem :: offset_of ! (rc_api_response_t , buffer) - 24usize] ; } ; extern "C" { pub fn rc_api_destroy_request (request : * mut rc_api_request_t) ; } extern "C" { pub fn rc_api_set_host (hostname : * const :: core :: ffi :: c_char) ; } extern "C" { pub fn rc_api_set_image_host (hostname : * const :: core :: ffi :: c_char) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_server_response_t { pub body : * const :: core :: ffi :: c_char , pub body_length : usize , pub http_status_code : :: core :: ffi :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_server_response_t"] [:: core :: mem :: size_of :: < rc_api_server_response_t > () - 24usize] ; ["Alignment of rc_api_server_response_t"] [:: core :: mem :: align_of :: < rc_api_server_response_t > () - 8usize] ; ["Offset of field: rc_api_server_response_t::body"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , body) - 0usize] ; ["Offset of field: rc_api_server_response_t::body_length"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , body_length) - 8usize] ; ["Offset of field: rc_api_server_response_t::http_status_code"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , http_status_code) - 16usize] ; } ; pub const RC_API_SERVER_RESPONSE_CLIENT_ERROR : _bindgen_ty_9 = - 1 ; pub const RC_API_SERVER_RESPONSE_RETRYABLE_CLIENT_ERROR : _bindgen_ty_9 = - 2 ; pub type _bindgen_ty_9 = :: core :: ffi :: c_int ; pub type clock_t = __clock_t ; pub type time_t = __time_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct tm { pub tm_sec : :: core :: ffi :: c_int , pub tm_min : :: core :: ffi :: c_int , pub tm_hour : :: core :: ffi :: c_int , pub tm_mday : :: core :: ffi :: c_int , pub tm_mon : :: core :: ffi :: c_int , pub tm_year : :: core :: ffi :: c_int , pub tm_wday : :: core :: ffi :: c_int , pub tm_yday : :: core :: ffi :: c_int , pub tm_isdst : :: core :: ffi :: c_int , pub tm_gmtoff : :: core :: ffi :: c_long , pub tm_zone : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of tm"] [:: core :: mem :: size_of :: < tm > () - 56usize] ; ["Alignment of tm"] [:: core :: mem :: align_of :: < tm > () - 8usize] ; ["Offset of field: tm::tm_sec"] [:: core :: mem :: offset_of ! (tm , tm_sec) - 0usize] ; ["Offset of field: tm::tm_min"] [:: core :: mem :: offset_of ! (tm , tm_min) - 4usize] ; ["Offset of field: tm::tm_hour"] [:: core :: mem :: offset_of ! (tm , tm_hour) - 8usize] ; ["Offset of field: tm::tm_mday"] [:: core :: mem :: offset_of ! (tm , tm_mday) - 12usize] ; ["Offset of field: tm::tm_mon"] [:: core :: mem :: offset_of ! (tm , tm_mon) - 16usize] ; ["Offset of field: tm::tm_year"] [:: core :: mem :: offset_of ! (tm , tm_year) - 20usize] ; ["Offset of field: tm::tm_wday"] [:: core :: mem :: offset_of ! (tm , tm_wday) - 24usize] ; ["Offset of field: tm::tm_yday"] [:: core :: mem :: offset_of ! (tm , tm_yday) - 28usize] ; ["Offset of field: tm::tm_isdst"] [:: core :: mem :: offset_of ! (tm , tm_isdst) - 32usize] ; ["Offset of field: tm::tm_gmtoff"] [:: core :: mem :: offset_of ! (tm , tm_gmtoff) - 40usize] ; ["Offset of field: tm::tm_zone"] [:: core :: mem :: offset_of ! (tm , tm_zone) - 48usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct timespec { pub tv_sec : __time_t , pub tv_nsec : __syscall_slong_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of timespec"] [:: core :: mem :: size_of :: < timespec > () - 16usize] ; ["Alignment of timespec"] [:: core :: mem :: align_of :: < timespec > () - 8usize] ; ["Offset of field: timespec::tv_sec"] [:: core :: mem :: offset_of ! (timespec , tv_sec) - 0usize] ; ["Offset of field: timespec::tv_nsec"] [:: core :: mem :: offset_of ! (timespec , tv_nsec) - 8usize] ; } ; pub type clockid_t = __clockid_t ; pub type timer_t = __timer_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct itimerspec { pub it_interval : timespec , pub it_value : timespec , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of itimerspec"] [:: core :: mem :: size_of :: < itimerspec > () - 32usize] ; ["Alignment of itimerspec"] [:: core :: mem :: align_of :: < itimerspec > () - 8usize] ; ["Offset of field: itimerspec::it_interval"] [:: core :: mem :: offset_of ! (itimerspec , it_interval) - 0usize] ; ["Offset of field: itimerspec::it_value"] [:: core :: mem :: offset_of ! (itimerspec , it_value) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct sigevent { _unused : [u8 ; 0] , } pub type pid_t = __pid_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __locale_struct { pub __locales : [* mut __locale_data ; 13usize] , pub __ctype_b : * const :: core :: ffi :: c_ushort , pub __ctype_tolower : * const :: core :: ffi :: c_int , pub __ctype_toupper : * const :: core :: ffi :: c_int , pub __names : [* const :: core :: ffi :: c_char ; 13usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __locale_struct"] [:: core :: mem :: size_of :: < __locale_struct > () - 232usize] ; ["Alignment of __locale_struct"] [:: core :: mem :: align_of :: < __locale_struct > () - 8usize] ; ["Offset of field: __locale_struct::__locales"] [:: core :: mem :: offset_of ! (__locale_struct , __locales) - 0usize] ; ["Offset of field: __locale_struct::__ctype_b"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_b) - 104usize] ; ["Offset of field: __locale_struct::__ctype_tolower"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_tolower) - 112usize] ; ["Offset of field: __locale_struct::__ctype_toupper"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_toupper) - 120usize] ; ["Offset of field: __locale_struct::__names"] [:: core :: mem :: offset_of ! (__locale_struct , __names) - 128usize] ; } ; pub type __locale_t = * mut __locale_struct ; pub type locale_t = __locale_t ; extern "C" { pub fn clock () -> clock_t ; } extern "C" { pub fn time (__timer : * mut time_t) -> time_t ; } extern "C" { pub fn difftime (__time1 : time_t , __time0 : time_t) -> f64 ; } extern "C" { pub fn mktime (__tp : * mut tm) -> time_t ; } extern "C" { pub fn strftime (__s : * mut :: core :: ffi :: c_char , __maxsize : usize , __format : * const :: core :: ffi :: c_char , __tp : * const tm) -> usize ; } extern "C" { pub fn strftime_l (__s : * mut :: core :: ffi :: c_char , __maxsize : usize , __format : * const :: core :: ffi :: c_char , __tp : * const tm , __loc : locale_t) -> usize ; } extern "C" { pub fn gmtime (__timer : * const time_t) -> * mut tm ; } extern "C" { pub fn localtime (__timer : * const time_t) -> * mut tm ; } extern "C" { pub fn gmtime_r (__timer : * const time_t , __tp : * mut tm) -> * mut tm ; } extern "C" { pub fn localtime_r (__timer : * const time_t , __tp : * mut tm) -> * mut tm ; } extern "C" { pub fn asctime (__tp : * const tm) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn ctime (__timer : * const time_t) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn asctime_r (__tp : * const tm , __buf : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn ctime_r (__timer : * const time_t , __buf : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub static mut __tzname : [* mut :: core :: ffi :: c_char ; 2usize] ; } extern "C" { pub static mut __daylight : :: core :: ffi :: c_int ; } extern "C" { pub static mut __timezone : :: core :: ffi :: c_long ; } extern "C" { pub static mut tzname : [* mut :: core :: ffi :: c_char ; 2usize] ; } extern "C" { pub fn tzset () ; } extern "C" { pub static mut daylight : :: core :: ffi :: c_int ; } extern "C" { pub static mut timezone : :: core :: ffi :: c_long ; } extern "C" { pub fn timegm (__tp : * mut tm) -> time_t ; } extern "C" { pub fn timelocal (__tp : * mut tm) -> time_t ; } extern "C" { pub fn dysize (__year : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn nanosleep (__requested_time : * const timespec , __remaining : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_getres (__clock_id : clockid_t , __res : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_gettime (__clock_id : clockid_t , __tp : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_settime (__clock_id : clockid_t , __tp : * const timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_nanosleep (__clock_id : clockid_t , __flags : :: core :: ffi :: c_int , __req : * const timespec , __rem : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_getcpuclockid (__pid : pid_t , __clock_id : * mut clockid_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_create (__clock_id : clockid_t , __evp : * mut sigevent , __timerid : * mut timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_delete (__timerid : timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_settime (__timerid : timer_t , __flags : :: core :: ffi :: c_int , __value : * const itimerspec , __ovalue : * mut itimerspec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_gettime (__timerid : timer_t , __value : * mut itimerspec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_getoverrun (__timerid : timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timespec_get (__ts : * mut timespec , __base : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } # [doc = " API parameters for a login request.\n If both password and api_token are provided, api_token will be ignored."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_login_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub password : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_login_request_t"] [:: core :: mem :: size_of :: < rc_api_login_request_t > () - 24usize] ; ["Alignment of rc_api_login_request_t"] [:: core :: mem :: align_of :: < rc_api_login_request_t > () - 8usize] ; ["Offset of field: rc_api_login_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , username) - 0usize] ; ["Offset of field: rc_api_login_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_login_request_t::password"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , password) - 16usize] ; } ; # [doc = " Response data for a login request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_login_response_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub score : u32 , pub score_softcore : u32 , pub num_unread_messages : u32 , pub display_name : * const :: core :: ffi :: c_char , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_login_response_t"] [:: core :: mem :: size_of :: < rc_api_login_response_t > () - 352usize] ; ["Alignment of rc_api_login_response_t"] [:: core :: mem :: align_of :: < rc_api_login_response_t > () - 8usize] ; ["Offset of field: rc_api_login_response_t::username"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , username) - 0usize] ; ["Offset of field: rc_api_login_response_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , api_token) - 8usize] ; ["Offset of field: rc_api_login_response_t::score"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , score) - 16usize] ; ["Offset of field: rc_api_login_response_t::score_softcore"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , score_softcore) - 20usize] ; ["Offset of field: rc_api_login_response_t::num_unread_messages"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , num_unread_messages) - 24usize] ; ["Offset of field: rc_api_login_response_t::display_name"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , display_name) - 32usize] ; ["Offset of field: rc_api_login_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , response) - 40usize] ; } ; extern "C" { pub fn rc_api_init_login_request (request : * mut rc_api_request_t , api_params : * const rc_api_login_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_login_response (response : * mut rc_api_login_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_login_server_response (response : * mut rc_api_login_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_login_response (response : * mut rc_api_login_response_t) ; } # [doc = " API parameters for a start session request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_start_session_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub game_hash : * const :: core :: ffi :: c_char , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_start_session_request_t"] [:: core :: mem :: size_of :: < rc_api_start_session_request_t > () - 40usize] ; ["Alignment of rc_api_start_session_request_t"] [:: core :: mem :: align_of :: < rc_api_start_session_request_t > () - 8usize] ; ["Offset of field: rc_api_start_session_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , username) - 0usize] ; ["Offset of field: rc_api_start_session_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_start_session_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_start_session_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_start_session_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , hardcore) - 32usize] ; } ; # [doc = " Response data for an achievement unlock."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_unlock_entry_t { pub achievement_id : u32 , pub when : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_unlock_entry_t"] [:: core :: mem :: size_of :: < rc_api_unlock_entry_t > () - 16usize] ; ["Alignment of rc_api_unlock_entry_t"] [:: core :: mem :: align_of :: < rc_api_unlock_entry_t > () - 8usize] ; ["Offset of field: rc_api_unlock_entry_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_unlock_entry_t , achievement_id) - 0usize] ; ["Offset of field: rc_api_unlock_entry_t::when"] [:: core :: mem :: offset_of ! (rc_api_unlock_entry_t , when) - 8usize] ; } ; # [doc = " Response data for a start session request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_start_session_response_t { pub hardcore_unlocks : * mut rc_api_unlock_entry_t , pub unlocks : * mut rc_api_unlock_entry_t , pub num_hardcore_unlocks : u32 , pub num_unlocks : u32 , pub server_now : time_t , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_start_session_response_t"] [:: core :: mem :: size_of :: < rc_api_start_session_response_t > () - 344usize] ; ["Alignment of rc_api_start_session_response_t"] [:: core :: mem :: align_of :: < rc_api_start_session_response_t > () - 8usize] ; ["Offset of field: rc_api_start_session_response_t::hardcore_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , hardcore_unlocks) - 0usize] ; ["Offset of field: rc_api_start_session_response_t::unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , unlocks) - 8usize] ; ["Offset of field: rc_api_start_session_response_t::num_hardcore_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , num_hardcore_unlocks) - 16usize] ; ["Offset of field: rc_api_start_session_response_t::num_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , num_unlocks) - 20usize] ; ["Offset of field: rc_api_start_session_response_t::server_now"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , server_now) - 24usize] ; ["Offset of field: rc_api_start_session_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_start_session_request (request : * mut rc_api_request_t , api_params : * const rc_api_start_session_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_start_session_response (response : * mut rc_api_start_session_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_start_session_server_response (response : * mut rc_api_start_session_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_start_session_response (response : * mut rc_api_start_session_response_t) ; } # [doc = " API parameters for a fetch user unlocks request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_user_unlocks_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_user_unlocks_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_user_unlocks_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_user_unlocks_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_user_unlocks_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , hardcore) - 20usize] ; } ; # [doc = " Response data for a fetch user unlocks request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_user_unlocks_response_t { pub achievement_ids : * mut u32 , pub num_achievement_ids : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_user_unlocks_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_user_unlocks_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_user_unlocks_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_user_unlocks_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::achievement_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , achievement_ids) - 0usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::num_achievement_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , num_achievement_ids) - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_user_unlocks_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_user_unlocks_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_user_unlocks_response (response : * mut rc_api_fetch_user_unlocks_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_user_unlocks_server_response (response : * mut rc_api_fetch_user_unlocks_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_user_unlocks_response (response : * mut rc_api_fetch_user_unlocks_response_t) ; } # [doc = " API parameters for a fetch code notes request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_code_notes_request_t { pub game_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_code_notes_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_code_notes_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_code_notes_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_code_notes_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_code_notes_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_request_t , game_id) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_code_note_t { pub address : u32 , pub author : * const :: core :: ffi :: c_char , pub note : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_code_note_t"] [:: core :: mem :: size_of :: < rc_api_code_note_t > () - 24usize] ; ["Alignment of rc_api_code_note_t"] [:: core :: mem :: align_of :: < rc_api_code_note_t > () - 8usize] ; ["Offset of field: rc_api_code_note_t::address"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , address) - 0usize] ; ["Offset of field: rc_api_code_note_t::author"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , author) - 8usize] ; ["Offset of field: rc_api_code_note_t::note"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , note) - 16usize] ; } ; # [doc = " Response data for a fetch code notes request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_code_notes_response_t { pub notes : * mut rc_api_code_note_t , pub num_notes : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_code_notes_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_code_notes_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_code_notes_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_code_notes_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::notes"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , notes) - 0usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::num_notes"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , num_notes) - 8usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_code_notes_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_code_notes_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_code_notes_response (response : * mut rc_api_fetch_code_notes_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_code_notes_server_response (response : * mut rc_api_fetch_code_notes_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_code_notes_response (response : * mut rc_api_fetch_code_notes_response_t) ; } # [doc = " API parameters for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_code_note_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub address : u32 , pub note : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_code_note_request_t"] [:: core :: mem :: size_of :: < rc_api_update_code_note_request_t > () - 32usize] ; ["Alignment of rc_api_update_code_note_request_t"] [:: core :: mem :: align_of :: < rc_api_update_code_note_request_t > () - 8usize] ; ["Offset of field: rc_api_update_code_note_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_code_note_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_code_note_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_update_code_note_request_t::address"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , address) - 20usize] ; ["Offset of field: rc_api_update_code_note_request_t::note"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , note) - 24usize] ; } ; # [doc = " Response data for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_code_note_response_t { pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_code_note_response_t"] [:: core :: mem :: size_of :: < rc_api_update_code_note_response_t > () - 312usize] ; ["Alignment of rc_api_update_code_note_response_t"] [:: core :: mem :: align_of :: < rc_api_update_code_note_response_t > () - 8usize] ; ["Offset of field: rc_api_update_code_note_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_response_t , response) - 0usize] ; } ; extern "C" { pub fn rc_api_init_update_code_note_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_code_note_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_code_note_response (response : * mut rc_api_update_code_note_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_code_note_server_response (response : * mut rc_api_update_code_note_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_code_note_response (response : * mut rc_api_update_code_note_response_t) ; } # [doc = " API parameters for an update achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_achievement_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub game_id : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub badge : * const :: core :: ffi :: c_char , pub trigger : * const :: core :: ffi :: c_char , pub points : u32 , pub category : u32 , pub type_ : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_achievement_request_t"] [:: core :: mem :: size_of :: < rc_api_update_achievement_request_t > () - 72usize] ; ["Alignment of rc_api_update_achievement_request_t"] [:: core :: mem :: align_of :: < rc_api_update_achievement_request_t > () - 8usize] ; ["Offset of field: rc_api_update_achievement_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_achievement_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_achievement_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_update_achievement_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , game_id) - 20usize] ; ["Offset of field: rc_api_update_achievement_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , title) - 24usize] ; ["Offset of field: rc_api_update_achievement_request_t::description"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , description) - 32usize] ; ["Offset of field: rc_api_update_achievement_request_t::badge"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , badge) - 40usize] ; ["Offset of field: rc_api_update_achievement_request_t::trigger"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , trigger) - 48usize] ; ["Offset of field: rc_api_update_achievement_request_t::points"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , points) - 56usize] ; ["Offset of field: rc_api_update_achievement_request_t::category"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , category) - 60usize] ; ["Offset of field: rc_api_update_achievement_request_t::type_"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , type_) - 64usize] ; } ; # [doc = " Response data for an update achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_achievement_response_t { pub achievement_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_achievement_response_t"] [:: core :: mem :: size_of :: < rc_api_update_achievement_response_t > () - 320usize] ; ["Alignment of rc_api_update_achievement_response_t"] [:: core :: mem :: align_of :: < rc_api_update_achievement_response_t > () - 8usize] ; ["Offset of field: rc_api_update_achievement_response_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_response_t , achievement_id) - 0usize] ; ["Offset of field: rc_api_update_achievement_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_update_achievement_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_achievement_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_achievement_response (response : * mut rc_api_update_achievement_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_achievement_server_response (response : * mut rc_api_update_achievement_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_achievement_response (response : * mut rc_api_update_achievement_response_t) ; } # [doc = " API parameters for an update leaderboard request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_leaderboard_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub leaderboard_id : u32 , pub game_id : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub start_trigger : * const :: core :: ffi :: c_char , pub submit_trigger : * const :: core :: ffi :: c_char , pub cancel_trigger : * const :: core :: ffi :: c_char , pub value_definition : * const :: core :: ffi :: c_char , pub format : * const :: core :: ffi :: c_char , pub lower_is_better : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_leaderboard_request_t"] [:: core :: mem :: size_of :: < rc_api_update_leaderboard_request_t > () - 88usize] ; ["Alignment of rc_api_update_leaderboard_request_t"] [:: core :: mem :: align_of :: < rc_api_update_leaderboard_request_t > () - 8usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , leaderboard_id) - 16usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , game_id) - 20usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , title) - 24usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::description"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , description) - 32usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::start_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , start_trigger) - 40usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::submit_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , submit_trigger) - 48usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::cancel_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , cancel_trigger) - 56usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::value_definition"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , value_definition) - 64usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::format"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , format) - 72usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , lower_is_better) - 80usize] ; } ; # [doc = " Response data for an update leaderboard request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_leaderboard_response_t { pub leaderboard_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_leaderboard_response_t"] [:: core :: mem :: size_of :: < rc_api_update_leaderboard_response_t > () - 320usize] ; ["Alignment of rc_api_update_leaderboard_response_t"] [:: core :: mem :: align_of :: < rc_api_update_leaderboard_response_t > () - 8usize] ; ["Offset of field: rc_api_update_leaderboard_response_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_response_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_api_update_leaderboard_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_update_leaderboard_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_leaderboard_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_leaderboard_response (response : * mut rc_api_update_leaderboard_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_leaderboard_server_response (response : * mut rc_api_update_leaderboard_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_leaderboard_response (response : * mut rc_api_update_leaderboard_response_t) ; } # [doc = " API parameters for a fetch badge range request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_badge_range_request_t { pub unused : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_badge_range_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_badge_range_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_badge_range_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_badge_range_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_badge_range_request_t::unused"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_request_t , unused) - 0usize] ; } ; # [doc = " Response data for a fetch badge range request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_badge_range_response_t { pub first_badge_id : u32 , pub next_badge_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_badge_range_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_badge_range_response_t > () - 320usize] ; ["Alignment of rc_api_fetch_badge_range_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_badge_range_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::first_badge_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , first_badge_id) - 0usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::next_badge_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , next_badge_id) - 4usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_fetch_badge_range_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_badge_range_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_badge_range_response (response : * mut rc_api_fetch_badge_range_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_badge_range_server_response (response : * mut rc_api_fetch_badge_range_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_badge_range_response (response : * mut rc_api_fetch_badge_range_response_t) ; } # [doc = " API parameters for an add game hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_add_game_hash_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub hash : * const :: core :: ffi :: c_char , pub hash_description : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_add_game_hash_request_t"] [:: core :: mem :: size_of :: < rc_api_add_game_hash_request_t > () - 48usize] ; ["Alignment of rc_api_add_game_hash_request_t"] [:: core :: mem :: align_of :: < rc_api_add_game_hash_request_t > () - 8usize] ; ["Offset of field: rc_api_add_game_hash_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , username) - 0usize] ; ["Offset of field: rc_api_add_game_hash_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_add_game_hash_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_add_game_hash_request_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , console_id) - 20usize] ; ["Offset of field: rc_api_add_game_hash_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , title) - 24usize] ; ["Offset of field: rc_api_add_game_hash_request_t::hash"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , hash) - 32usize] ; ["Offset of field: rc_api_add_game_hash_request_t::hash_description"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , hash_description) - 40usize] ; } ; # [doc = " Response data for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_add_game_hash_response_t { pub game_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_add_game_hash_response_t"] [:: core :: mem :: size_of :: < rc_api_add_game_hash_response_t > () - 320usize] ; ["Alignment of rc_api_add_game_hash_response_t"] [:: core :: mem :: align_of :: < rc_api_add_game_hash_response_t > () - 8usize] ; ["Offset of field: rc_api_add_game_hash_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_response_t , game_id) - 0usize] ; ["Offset of field: rc_api_add_game_hash_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_add_game_hash_request (request : * mut rc_api_request_t , api_params : * const rc_api_add_game_hash_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_add_game_hash_response (response : * mut rc_api_add_game_hash_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_add_game_hash_server_response (response : * mut rc_api_add_game_hash_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_add_game_hash_response (response : * mut rc_api_add_game_hash_response_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_t { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_menu_item_t { pub label : * const :: core :: ffi :: c_char , pub id : u32 , pub checked : u8 , pub enabled : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_menu_item_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_menu_item_t > () - 16usize] ; ["Alignment of rc_client_raintegration_menu_item_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_menu_item_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::label"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , label) - 0usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::id"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , id) - 8usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::checked"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , checked) - 12usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::enabled"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , enabled) - 13usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_menu_t { pub items : * mut rc_client_raintegration_menu_item_t , pub num_items : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_menu_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_menu_t > () - 16usize] ; ["Alignment of rc_client_raintegration_menu_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_menu_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_menu_t::items"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_t , items) - 0usize] ; ["Offset of field: rc_client_raintegration_menu_t::num_items"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_t , num_items) - 8usize] ; } ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_NONE : _bindgen_ty_10 = 0 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_PUBLISHED : _bindgen_ty_10 = 1 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_LOCAL : _bindgen_ty_10 = 2 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_MODIFIED : _bindgen_ty_10 = 3 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_INSECURE : _bindgen_ty_10 = 4 ; pub type _bindgen_ty_10 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_RAINTEGRATION_EVENT_TYPE_NONE : _bindgen_ty_11 = 0 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_MENUITEM_CHECKED_CHANGED : _bindgen_ty_11 = 1 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_HARDCORE_CHANGED : _bindgen_ty_11 = 2 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_PAUSE : _bindgen_ty_11 = 3 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_MENU_CHANGED : _bindgen_ty_11 = 4 ; pub type _bindgen_ty_11 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_event_t { pub type_ : u32 , pub menu_item : * const rc_client_raintegration_menu_item_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_event_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_event_t > () - 16usize] ; ["Alignment of rc_client_raintegration_event_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_event_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_event_t::type_"] [:: core :: mem :: offset_of ! (rc_client_raintegration_event_t , type_) - 0usize] ; ["Offset of field: rc_client_raintegration_event_t::menu_item"] [:: core :: mem :: offset_of ! (rc_client_raintegration_event_t , menu_item) - 8usize] ; } ; pub type rc_client_raintegration_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (event : * const rc_client_raintegration_event_t , client : * mut rc_client_t) > ; pub type rc_client_raintegration_write_memory_func_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , buffer : * mut u8 , num_bytes : u32 , client : * mut rc_client_t) > ; pub type rc_client_raintegration_get_game_name_func_t = :: core :: option :: Option < unsafe extern "C" fn (buffer : * mut :: core :: ffi :: c_char , buffer_size : u32 , client : * mut rc_client_t) > ; # [doc = " API parameters for a fetch achievement info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_achievement_info_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub first_entry : u32 , pub count : u32 , pub friends_only : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_achievement_info_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_achievement_info_request_t > () - 32usize] ; ["Alignment of rc_api_fetch_achievement_info_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_achievement_info_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::first_entry"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , first_entry) - 20usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::count"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , count) - 24usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::friends_only"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , friends_only) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_achievement_awarded_entry_t { pub username : * const :: core :: ffi :: c_char , pub awarded : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_achievement_awarded_entry_t"] [:: core :: mem :: size_of :: < rc_api_achievement_awarded_entry_t > () - 16usize] ; ["Alignment of rc_api_achievement_awarded_entry_t"] [:: core :: mem :: align_of :: < rc_api_achievement_awarded_entry_t > () - 8usize] ; ["Offset of field: rc_api_achievement_awarded_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_achievement_awarded_entry_t , username) - 0usize] ; ["Offset of field: rc_api_achievement_awarded_entry_t::awarded"] [:: core :: mem :: offset_of ! (rc_api_achievement_awarded_entry_t , awarded) - 8usize] ; } ; # [doc = " Response data for a fetch achievement info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_achievement_info_response_t { pub id : u32 , pub game_id : u32 , pub num_awarded : u32 , pub num_players : u32 , pub recently_awarded : * mut rc_api_achievement_awarded_entry_t , pub num_recently_awarded : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_achievement_info_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_achievement_info_response_t > () - 344usize] ; ["Alignment of rc_api_fetch_achievement_info_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_achievement_info_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , game_id) - 4usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_awarded) - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_players"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_players) - 12usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::recently_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , recently_awarded) - 16usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_recently_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_recently_awarded) - 24usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_fetch_achievement_info_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_achievement_info_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_achievement_info_response (response : * mut rc_api_fetch_achievement_info_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_achievement_info_server_response (response : * mut rc_api_fetch_achievement_info_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_achievement_info_response (response : * mut rc_api_fetch_achievement_info_response_t) ; } # [doc = " API parameters for a fetch leaderboard info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_leaderboard_info_request_t { pub leaderboard_id : u32 , pub count : u32 , pub first_entry : u32 , pub username : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_leaderboard_info_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_leaderboard_info_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_leaderboard_info_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_leaderboard_info_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::count"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , count) - 4usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::first_entry"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , first_entry) - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , username) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_lboard_info_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub index : u32 , pub score : i32 , pub submitted : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_lboard_info_entry_t"] [:: core :: mem :: size_of :: < rc_api_lboard_info_entry_t > () - 32usize] ; ["Alignment of rc_api_lboard_info_entry_t"] [:: core :: mem :: align_of :: < rc_api_lboard_info_entry_t > () - 8usize] ; ["Offset of field: rc_api_lboard_info_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , username) - 0usize] ; ["Offset of field: rc_api_lboard_info_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , rank) - 8usize] ; ["Offset of field: rc_api_lboard_info_entry_t::index"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , index) - 12usize] ; ["Offset of field: rc_api_lboard_info_entry_t::score"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , score) - 16usize] ; ["Offset of field: rc_api_lboard_info_entry_t::submitted"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , submitted) - 24usize] ; } ; # [doc = " Response data for a fetch leaderboard info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_leaderboard_info_response_t { pub id : u32 , pub format : :: core :: ffi :: c_int , pub lower_is_better : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub game_id : u32 , pub author : * const :: core :: ffi :: c_char , pub created : time_t , pub updated : time_t , pub entries : * mut rc_api_lboard_info_entry_t , pub num_entries : u32 , pub total_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_leaderboard_info_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_leaderboard_info_response_t > () - 400usize] ; ["Alignment of rc_api_fetch_leaderboard_info_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_leaderboard_info_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::format"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , format) - 4usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , lower_is_better) - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::title"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , title) - 16usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::description"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , description) - 24usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::definition"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , definition) - 32usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , game_id) - 40usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::author"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , author) - 48usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::created"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , created) - 56usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::updated"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , updated) - 64usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , entries) - 72usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , num_entries) - 80usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::total_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , total_entries) - 84usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , response) - 88usize] ; } ; extern "C" { pub fn rc_api_init_fetch_leaderboard_info_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_leaderboard_info_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_leaderboard_info_response (response : * mut rc_api_fetch_leaderboard_info_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_leaderboard_info_server_response (response : * mut rc_api_fetch_leaderboard_info_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_leaderboard_info_response (response : * mut rc_api_fetch_leaderboard_info_response_t) ; } # [doc = " API parameters for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_games_list_request_t { pub console_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_games_list_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_games_list_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_games_list_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_games_list_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_games_list_request_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_request_t , console_id) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_game_list_entry_t { pub id : u32 , pub name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_game_list_entry_t"] [:: core :: mem :: size_of :: < rc_api_game_list_entry_t > () - 16usize] ; ["Alignment of rc_api_game_list_entry_t"] [:: core :: mem :: align_of :: < rc_api_game_list_entry_t > () - 8usize] ; ["Offset of field: rc_api_game_list_entry_t::id"] [:: core :: mem :: offset_of ! (rc_api_game_list_entry_t , id) - 0usize] ; ["Offset of field: rc_api_game_list_entry_t::name"] [:: core :: mem :: offset_of ! (rc_api_game_list_entry_t , name) - 8usize] ; } ; # [doc = " Response data for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_games_list_response_t { pub entries : * mut rc_api_game_list_entry_t , pub num_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_games_list_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_games_list_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_games_list_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_games_list_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , entries) - 0usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , num_entries) - 8usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_games_list_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_games_list_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_games_list_response (response : * mut rc_api_fetch_games_list_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_games_list_server_response (response : * mut rc_api_fetch_games_list_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_games_list_response (response : * mut rc_api_fetch_games_list_response_t) ; } # [doc = " API parameters for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_titles_request_t { pub game_ids : * const u32 , pub num_game_ids : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_titles_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_titles_request_t > () - 16usize] ; ["Alignment of rc_api_fetch_game_titles_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_titles_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_request_t::game_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_request_t , game_ids) - 0usize] ; ["Offset of field: rc_api_fetch_game_titles_request_t::num_game_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_request_t , num_game_ids) - 8usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_game_title_entry_t { pub id : u32 , pub title : * const :: core :: ffi :: c_char , pub image_name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_game_title_entry_t"] [:: core :: mem :: size_of :: < rc_api_game_title_entry_t > () - 24usize] ; ["Alignment of rc_api_game_title_entry_t"] [:: core :: mem :: align_of :: < rc_api_game_title_entry_t > () - 8usize] ; ["Offset of field: rc_api_game_title_entry_t::id"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , id) - 0usize] ; ["Offset of field: rc_api_game_title_entry_t::title"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , title) - 8usize] ; ["Offset of field: rc_api_game_title_entry_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , image_name) - 16usize] ; } ; # [doc = " Response data for a fetch games title request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_titles_response_t { pub entries : * mut rc_api_game_title_entry_t , pub num_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_titles_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_titles_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_game_titles_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_titles_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , entries) - 0usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , num_entries) - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_game_titles_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_game_titles_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_titles_server_response (response : * mut rc_api_fetch_game_titles_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_game_titles_response (response : * mut rc_api_fetch_game_titles_response_t) ; } pub type __gnuc_va_list = __builtin_va_list ; # [repr (C)] # [derive (Copy , Clone)] pub struct __mbstate_t { pub __count : :: core :: ffi :: c_int , pub __value : __mbstate_t__bindgen_ty_1 , } # [repr (C)] # [derive (Copy , Clone)] pub union __mbstate_t__bindgen_ty_1 { pub __wch : :: core :: ffi :: c_uint , pub __wchb : [:: core :: ffi :: c_char ; 4usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __mbstate_t__bindgen_ty_1"] [:: core :: mem :: size_of :: < __mbstate_t__bindgen_ty_1 > () - 4usize] ; ["Alignment of __mbstate_t__bindgen_ty_1"] [:: core :: mem :: align_of :: < __mbstate_t__bindgen_ty_1 > () - 4usize] ; ["Offset of field: __mbstate_t__bindgen_ty_1::__wch"] [:: core :: mem :: offset_of ! (__mbstate_t__bindgen_ty_1 , __wch) - 0usize] ; ["Offset of field: __mbstate_t__bindgen_ty_1::__wchb"] [:: core :: mem :: offset_of ! (__mbstate_t__bindgen_ty_1 , __wchb) - 0usize] ; } ; impl :: core :: fmt :: Debug for __mbstate_t__bindgen_ty_1 { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "__mbstate_t__bindgen_ty_1 {{ union }}") } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __mbstate_t"] [:: core :: mem :: size_of :: < __mbstate_t > () - 8usize] ; ["Alignment of __mbstate_t"] [:: core :: mem :: align_of :: < __mbstate_t > () - 4usize] ; ["Offset of field: __mbstate_t::__count"] [:: core :: mem :: offset_of ! (__mbstate_t , __count) - 0usize] ; ["Offset of field: __mbstate_t::__value"] [:: core :: mem :: offset_of ! (__mbstate_t , __value) - 4usize] ; } ; impl :: core :: fmt :: Debug for __mbstate_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "__mbstate_t {{ __count: {:?}, __value: {:?} }}" , self . __count , self . __value) } } # [repr (C)] # [derive (Copy , Clone)] pub struct _G_fpos_t { pub __pos : __off_t , pub __state : __mbstate_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _G_fpos_t"] [:: core :: mem :: size_of :: < _G_fpos_t > () - 16usize] ; ["Alignment of _G_fpos_t"] [:: core :: mem :: align_of :: < _G_fpos_t > () - 8usize] ; ["Offset of field: _G_fpos_t::__pos"] [:: core :: mem :: offset_of ! (_G_fpos_t , __pos) - 0usize] ; ["Offset of field: _G_fpos_t::__state"] [:: core :: mem :: offset_of ! (_G_fpos_t , __state) - 8usize] ; } ; impl :: core :: fmt :: Debug for _G_fpos_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "_G_fpos_t {{ __pos: {:?}, __state: {:?} }}" , self . __pos , self . __state) } } pub type __fpos_t = _G_fpos_t ; # [repr (C)] # [derive (Copy , Clone)] pub struct _G_fpos64_t { pub __pos : __off64_t , pub __state : __mbstate_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _G_fpos64_t"] [:: core :: mem :: size_of :: < _G_fpos64_t > () - 16usize] ; ["Alignment of _G_fpos64_t"] [:: core :: mem :: align_of :: < _G_fpos64_t > () - 8usize] ; ["Offset of field: _G_fpos64_t::__pos"] [:: core :: mem :: offset_of ! (_G_fpos64_t , __pos) - 0usize] ; ["Offset of field: _G_fpos64_t::__state"] [:: core :: mem :: offset_of ! (_G_fpos64_t , __state) - 8usize] ; } ; impl :: core :: fmt :: Debug for _G_fpos64_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "_G_fpos64_t {{ __pos: {:?}, __state: {:?} }}" , self . __pos , self . __state) } } pub type __fpos64_t = _G_fpos64_t ; pub type __FILE = _IO_FILE ; pub type FILE = _IO_FILE ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_marker { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_codecvt { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_wide_data { _unused : [u8 ; 0] , } pub type _IO_lock_t = :: core :: ffi :: c_void ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_FILE { pub _flags : :: core :: ffi :: c_int , pub _IO_read_ptr : * mut :: core :: ffi :: c_char , pub _IO_read_end : * mut :: core :: ffi :: c_char , pub _IO_read_base : * mut :: core :: ffi :: c_char , pub _IO_write_base : * mut :: core :: ffi :: c_char , pub _IO_write_ptr : * mut :: core :: ffi :: c_char , pub _IO_write_end : * mut :: core :: ffi :: c_char , pub _IO_buf_base : * mut :: core :: ffi :: c_char , pub _IO_buf_end : * mut :: core :: ffi :: c_char , pub _IO_save_base : * mut :: core :: ffi :: c_char , pub _IO_backup_base : * mut :: core :: ffi :: c_char , pub _IO_save_end : * mut :: core :: ffi :: c_char , pub _markers : * mut _IO_marker , pub _chain : * mut _IO_FILE , pub _fileno : :: core :: ffi :: c_int , pub _bitfield_align_1 : [u32 ; 0] , pub _bitfield_1 : __BindgenBitfieldUnit < [u8 ; 3usize] > , pub _short_backupbuf : [:: core :: ffi :: c_char ; 1usize] , pub _old_offset : __off_t , pub _cur_column : :: core :: ffi :: c_ushort , pub _vtable_offset : :: core :: ffi :: c_schar , pub _shortbuf : [:: core :: ffi :: c_char ; 1usize] , pub _lock : * mut _IO_lock_t , pub _offset : __off64_t , pub _codecvt : * mut _IO_codecvt , pub _wide_data : * mut _IO_wide_data , pub _freeres_list : * mut _IO_FILE , pub _freeres_buf : * mut :: core :: ffi :: c_void , pub _prevchain : * mut * mut _IO_FILE , pub _mode : :: core :: ffi :: c_int , pub _unused3 : :: core :: ffi :: c_int , pub _total_written : __uint64_t , pub _unused2 : [:: core :: ffi :: c_char ; 8usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _IO_FILE"] [:: core :: mem :: size_of :: < _IO_FILE > () - 216usize] ; ["Alignment of _IO_FILE"] [:: core :: mem :: align_of :: < _IO_FILE > () - 8usize] ; ["Offset of field: _IO_FILE::_flags"] [:: core :: mem :: offset_of ! (_IO_FILE , _flags) - 0usize] ; ["Offset of field: _IO_FILE::_IO_read_ptr"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_ptr) - 8usize] ; ["Offset of field: _IO_FILE::_IO_read_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_end) - 16usize] ; ["Offset of field: _IO_FILE::_IO_read_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_base) - 24usize] ; ["Offset of field: _IO_FILE::_IO_write_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_base) - 32usize] ; ["Offset of field: _IO_FILE::_IO_write_ptr"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_ptr) - 40usize] ; ["Offset of field: _IO_FILE::_IO_write_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_end) - 48usize] ; ["Offset of field: _IO_FILE::_IO_buf_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_buf_base) - 56usize] ; ["Offset of field: _IO_FILE::_IO_buf_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_buf_end) - 64usize] ; ["Offset of field: _IO_FILE::_IO_save_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_save_base) - 72usize] ; ["Offset of field: _IO_FILE::_IO_backup_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_backup_base) - 80usize] ; ["Offset of field: _IO_FILE::_IO_save_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_save_end) - 88usize] ; ["Offset of field: _IO_FILE::_markers"] [:: core :: mem :: offset_of ! (_IO_FILE , _markers) - 96usize] ; ["Offset of field: _IO_FILE::_chain"] [:: core :: mem :: offset_of ! (_IO_FILE , _chain) - 104usize] ; ["Offset of field: _IO_FILE::_fileno"] [:: core :: mem :: offset_of ! (_IO_FILE , _fileno) - 112usize] ; ["Offset of field: _IO_FILE::_short_backupbuf"] [:: core :: mem :: offset_of ! (_IO_FILE , _short_backupbuf) - 119usize] ; ["Offset of field: _IO_FILE::_old_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _old_offset) - 120usize] ; ["Offset of field: _IO_FILE::_cur_column"] [:: core :: mem :: offset_of ! (_IO_FILE , _cur_column) - 128usize] ; ["Offset of field: _IO_FILE::_vtable_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _vtable_offset) - 130usize] ; ["Offset of field: _IO_FILE::_shortbuf"] [:: core :: mem :: offset_of ! (_IO_FILE , _shortbuf) - 131usize] ; ["Offset of field: _IO_FILE::_lock"] [:: core :: mem :: offset_of ! (_IO_FILE , _lock) - 136usize] ; ["Offset of field: _IO_FILE::_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _offset) - 144usize] ; ["Offset of field: _IO_FILE::_codecvt"] [:: core :: mem :: offset_of ! (_IO_FILE , _codecvt) - 152usize] ; ["Offset of field: _IO_FILE::_wide_data"] [:: core :: mem :: offset_of ! (_IO_FILE , _wide_data) - 160usize] ; ["Offset of field: _IO_FILE::_freeres_list"] [:: core :: mem :: offset_of ! (_IO_FILE , _freeres_list) - 168usize] ; ["Offset of field: _IO_FILE::_freeres_buf"] [:: core :: mem :: offset_of ! (_IO_FILE , _freeres_buf) - 176usize] ; ["Offset of field: _IO_FILE::_prevchain"] [:: core :: mem :: offset_of ! (_IO_FILE , _prevchain) - 184usize] ; ["Offset of field: _IO_FILE::_mode"] [:: core :: mem :: offset_of ! (_IO_FILE , _mode) - 192usize] ; ["Offset of field: _IO_FILE::_unused3"] [:: core :: mem :: offset_of ! (_IO_FILE , _unused3) - 196usize] ; ["Offset of field: _IO_FILE::_total_written"] [:: core :: mem :: offset_of ! (_IO_FILE , _total_written) - 200usize] ; ["Offset of field: _IO_FILE::_unused2"] [:: core :: mem :: offset_of ! (_IO_FILE , _unused2) - 208usize] ; } ; impl _IO_FILE { # [inline] pub fn _flags2 (& self) -> :: core :: ffi :: c_int { unsafe { :: core :: mem :: transmute (self . _bitfield_1 . get (0usize , 24u8) as u32) } } # [inline] pub fn set__flags2 (& mut self , val : :: core :: ffi :: c_int) { unsafe { let val : u32 = i32::cast_unsigned (val) ; self . _bitfield_1 . set (0usize , 24u8 , val as u64) } } # [inline] pub fn new_bitfield_1 (_flags2 : :: core :: ffi :: c_int) -> __BindgenBitfieldUnit < [u8 ; 3usize] > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [u8 ; 3usize] > = Default :: default () ; __bindgen_bitfield_unit . set (0usize , 24u8 , { let _flags2 : u32 = unsafe { :: core :: mem :: transmute (_flags2) } ; _flags2 as u64 }) ; __bindgen_bitfield_unit } } pub type cookie_read_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __buf : * mut :: core :: ffi :: c_char , __nbytes : usize) -> __ssize_t > ; pub type cookie_write_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __buf : * const :: core :: ffi :: c_char , __nbytes : usize) -> __ssize_t > ; pub type cookie_seek_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __pos : * mut __off64_t , __w : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int > ; pub type cookie_close_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void) -> :: core :: ffi :: 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 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _IO_cookie_io_functions_t"] [:: core :: mem :: size_of :: < _IO_cookie_io_functions_t > () - 32usize] ; ["Alignment of _IO_cookie_io_functions_t"] [:: core :: mem :: align_of :: < _IO_cookie_io_functions_t > () - 8usize] ; ["Offset of field: _IO_cookie_io_functions_t::read"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , read) - 0usize] ; ["Offset of field: _IO_cookie_io_functions_t::write"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , write) - 8usize] ; ["Offset of field: _IO_cookie_io_functions_t::seek"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , seek) - 16usize] ; ["Offset of field: _IO_cookie_io_functions_t::close"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , close) - 24usize] ; } ; 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" { pub static mut stdin : * mut FILE ; } extern "C" { pub static mut stdout : * mut FILE ; } extern "C" { pub static mut stderr : * mut FILE ; } extern "C" { pub fn remove (__filename : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rename (__old : * const :: core :: ffi :: c_char , __new : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn renameat (__oldfd : :: core :: ffi :: c_int , __old : * const :: core :: ffi :: c_char , __newfd : :: core :: ffi :: c_int , __new : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fclose (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn tmpfile () -> * mut FILE ; } extern "C" { pub fn tmpnam (arg1 : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn tmpnam_r (__s : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn tempnam (__dir : * const :: core :: ffi :: c_char , __pfx : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn fflush (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fflush_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fopen (__filename : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn freopen (__filename : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char , __stream : * mut FILE) -> * mut FILE ; } extern "C" { pub fn fdopen (__fd : :: core :: ffi :: c_int , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn fopencookie (__magic_cookie : * mut :: core :: ffi :: c_void , __modes : * const :: core :: ffi :: c_char , __io_funcs : cookie_io_functions_t) -> * mut FILE ; } extern "C" { pub fn fmemopen (__s : * mut :: core :: ffi :: c_void , __len : usize , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn open_memstream (__bufloc : * mut * mut :: core :: ffi :: c_char , __sizeloc : * mut usize) -> * mut FILE ; } extern "C" { pub fn setbuf (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char) ; } extern "C" { pub fn setvbuf (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char , __modes : :: core :: ffi :: c_int , __n : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn setbuffer (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char , __size : usize) ; } extern "C" { pub fn setlinebuf (__stream : * mut FILE) ; } extern "C" { pub fn fprintf (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn printf (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn sprintf (__s : * mut :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vfprintf (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vprintf (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsprintf (__s : * mut :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn snprintf (__s : * mut :: core :: ffi :: c_char , __maxlen : :: core :: ffi :: c_ulong , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsnprintf (__s : * mut :: core :: ffi :: c_char , __maxlen : :: core :: ffi :: c_ulong , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vasprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __f : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn __asprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn asprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vdprintf (__fd : :: core :: ffi :: c_int , __fmt : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn dprintf (__fd : :: core :: ffi :: c_int , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fscanf (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn scanf (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn sscanf (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } pub type __cfloat128 = __BindgenComplex < u128 > ; pub type _Float128 = u128 ; pub type _Float32 = f32 ; pub type _Float64 = f64 ; pub type _Float32x = f64 ; pub type _Float64x = u128 ; extern "C" { # [link_name = "\u{1}__isoc99_fscanf"] pub fn fscanf1 (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_scanf"] pub fn scanf1 (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_sscanf"] pub fn sscanf1 (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vfscanf (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vscanf (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsscanf (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vfscanf"] pub fn vfscanf1 (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vscanf"] pub fn vscanf1 (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vsscanf"] pub fn vsscanf1 (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgetc (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getc (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getchar () -> :: core :: ffi :: c_int ; } extern "C" { pub fn getc_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getchar_unlocked () -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgetc_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fputc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putchar (__c : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fputc_unlocked (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putc_unlocked (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putchar_unlocked (__c : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getw (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putw (__w : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgets (__s : * mut :: core :: ffi :: c_char , __n : :: core :: ffi :: c_int , __stream : * mut FILE) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn __getdelim (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __delimiter : :: core :: ffi :: c_int , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn getdelim (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __delimiter : :: core :: ffi :: c_int , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn getline (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn fputs (__s : * const :: core :: ffi :: c_char , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn puts (__s : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ungetc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fread (__ptr : * mut :: core :: ffi :: c_void , __size : :: core :: ffi :: c_ulong , __n : :: core :: ffi :: c_ulong , __stream : * mut FILE) -> :: core :: ffi :: c_ulong ; } extern "C" { pub fn fwrite (__ptr : * const :: core :: ffi :: c_void , __size : :: core :: ffi :: c_ulong , __n : :: core :: ffi :: c_ulong , __s : * mut FILE) -> :: core :: ffi :: c_ulong ; } extern "C" { pub fn fread_unlocked (__ptr : * mut :: core :: ffi :: c_void , __size : usize , __n : usize , __stream : * mut FILE) -> usize ; } extern "C" { pub fn fwrite_unlocked (__ptr : * const :: core :: ffi :: c_void , __size : usize , __n : usize , __stream : * mut FILE) -> usize ; } extern "C" { pub fn fseek (__stream : * mut FILE , __off : :: core :: ffi :: c_long , __whence : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ftell (__stream : * mut FILE) -> :: core :: ffi :: c_long ; } extern "C" { pub fn rewind (__stream : * mut FILE) ; } extern "C" { pub fn fseeko (__stream : * mut FILE , __off : __off_t , __whence : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ftello (__stream : * mut FILE) -> __off_t ; } extern "C" { pub fn fgetpos (__stream : * mut FILE , __pos : * mut fpos_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fsetpos (__stream : * mut FILE , __pos : * const fpos_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clearerr (__stream : * mut FILE) ; } extern "C" { pub fn feof (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ferror (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clearerr_unlocked (__stream : * mut FILE) ; } extern "C" { pub fn feof_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ferror_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn perror (__s : * const :: core :: ffi :: c_char) ; } extern "C" { pub fn fileno (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fileno_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn pclose (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn popen (__command : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn ctermid (__s : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn flockfile (__stream : * mut FILE) ; } extern "C" { pub fn ftrylockfile (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn funlockfile (__stream : * mut FILE) ; } extern "C" { pub fn __uflow (arg1 : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn __overflow (arg1 : * mut FILE , arg2 : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } pub const RC_CONSOLE_UNKNOWN : _bindgen_ty_12 = 0 ; pub const RC_CONSOLE_MEGA_DRIVE : _bindgen_ty_12 = 1 ; pub const RC_CONSOLE_NINTENDO_64 : _bindgen_ty_12 = 2 ; pub const RC_CONSOLE_SUPER_NINTENDO : _bindgen_ty_12 = 3 ; pub const RC_CONSOLE_GAMEBOY : _bindgen_ty_12 = 4 ; pub const RC_CONSOLE_GAMEBOY_ADVANCE : _bindgen_ty_12 = 5 ; pub const RC_CONSOLE_GAMEBOY_COLOR : _bindgen_ty_12 = 6 ; pub const RC_CONSOLE_NINTENDO : _bindgen_ty_12 = 7 ; pub const RC_CONSOLE_PC_ENGINE : _bindgen_ty_12 = 8 ; pub const RC_CONSOLE_SEGA_CD : _bindgen_ty_12 = 9 ; pub const RC_CONSOLE_SEGA_32X : _bindgen_ty_12 = 10 ; pub const RC_CONSOLE_MASTER_SYSTEM : _bindgen_ty_12 = 11 ; pub const RC_CONSOLE_PLAYSTATION : _bindgen_ty_12 = 12 ; pub const RC_CONSOLE_ATARI_LYNX : _bindgen_ty_12 = 13 ; pub const RC_CONSOLE_NEOGEO_POCKET : _bindgen_ty_12 = 14 ; pub const RC_CONSOLE_GAME_GEAR : _bindgen_ty_12 = 15 ; pub const RC_CONSOLE_GAMECUBE : _bindgen_ty_12 = 16 ; pub const RC_CONSOLE_ATARI_JAGUAR : _bindgen_ty_12 = 17 ; pub const RC_CONSOLE_NINTENDO_DS : _bindgen_ty_12 = 18 ; pub const RC_CONSOLE_WII : _bindgen_ty_12 = 19 ; pub const RC_CONSOLE_WII_U : _bindgen_ty_12 = 20 ; pub const RC_CONSOLE_PLAYSTATION_2 : _bindgen_ty_12 = 21 ; pub const RC_CONSOLE_XBOX : _bindgen_ty_12 = 22 ; pub const RC_CONSOLE_MAGNAVOX_ODYSSEY2 : _bindgen_ty_12 = 23 ; pub const RC_CONSOLE_POKEMON_MINI : _bindgen_ty_12 = 24 ; pub const RC_CONSOLE_ATARI_2600 : _bindgen_ty_12 = 25 ; pub const RC_CONSOLE_MS_DOS : _bindgen_ty_12 = 26 ; pub const RC_CONSOLE_ARCADE : _bindgen_ty_12 = 27 ; pub const RC_CONSOLE_VIRTUAL_BOY : _bindgen_ty_12 = 28 ; pub const RC_CONSOLE_MSX : _bindgen_ty_12 = 29 ; pub const RC_CONSOLE_COMMODORE_64 : _bindgen_ty_12 = 30 ; pub const RC_CONSOLE_ZX81 : _bindgen_ty_12 = 31 ; pub const RC_CONSOLE_ORIC : _bindgen_ty_12 = 32 ; pub const RC_CONSOLE_SG1000 : _bindgen_ty_12 = 33 ; pub const RC_CONSOLE_VIC20 : _bindgen_ty_12 = 34 ; pub const RC_CONSOLE_AMIGA : _bindgen_ty_12 = 35 ; pub const RC_CONSOLE_ATARI_ST : _bindgen_ty_12 = 36 ; pub const RC_CONSOLE_AMSTRAD_PC : _bindgen_ty_12 = 37 ; pub const RC_CONSOLE_APPLE_II : _bindgen_ty_12 = 38 ; pub const RC_CONSOLE_SATURN : _bindgen_ty_12 = 39 ; pub const RC_CONSOLE_DREAMCAST : _bindgen_ty_12 = 40 ; pub const RC_CONSOLE_PSP : _bindgen_ty_12 = 41 ; pub const RC_CONSOLE_CDI : _bindgen_ty_12 = 42 ; pub const RC_CONSOLE_3DO : _bindgen_ty_12 = 43 ; pub const RC_CONSOLE_COLECOVISION : _bindgen_ty_12 = 44 ; pub const RC_CONSOLE_INTELLIVISION : _bindgen_ty_12 = 45 ; pub const RC_CONSOLE_VECTREX : _bindgen_ty_12 = 46 ; pub const RC_CONSOLE_PC8800 : _bindgen_ty_12 = 47 ; pub const RC_CONSOLE_PC9800 : _bindgen_ty_12 = 48 ; pub const RC_CONSOLE_PCFX : _bindgen_ty_12 = 49 ; pub const RC_CONSOLE_ATARI_5200 : _bindgen_ty_12 = 50 ; pub const RC_CONSOLE_ATARI_7800 : _bindgen_ty_12 = 51 ; pub const RC_CONSOLE_X68K : _bindgen_ty_12 = 52 ; pub const RC_CONSOLE_WONDERSWAN : _bindgen_ty_12 = 53 ; pub const RC_CONSOLE_CASSETTEVISION : _bindgen_ty_12 = 54 ; pub const RC_CONSOLE_SUPER_CASSETTEVISION : _bindgen_ty_12 = 55 ; pub const RC_CONSOLE_NEO_GEO_CD : _bindgen_ty_12 = 56 ; pub const RC_CONSOLE_FAIRCHILD_CHANNEL_F : _bindgen_ty_12 = 57 ; pub const RC_CONSOLE_FM_TOWNS : _bindgen_ty_12 = 58 ; pub const RC_CONSOLE_ZX_SPECTRUM : _bindgen_ty_12 = 59 ; pub const RC_CONSOLE_GAME_AND_WATCH : _bindgen_ty_12 = 60 ; pub const RC_CONSOLE_NOKIA_NGAGE : _bindgen_ty_12 = 61 ; pub const RC_CONSOLE_NINTENDO_3DS : _bindgen_ty_12 = 62 ; pub const RC_CONSOLE_SUPERVISION : _bindgen_ty_12 = 63 ; pub const RC_CONSOLE_SHARPX1 : _bindgen_ty_12 = 64 ; pub const RC_CONSOLE_TIC80 : _bindgen_ty_12 = 65 ; pub const RC_CONSOLE_THOMSONTO8 : _bindgen_ty_12 = 66 ; pub const RC_CONSOLE_PC6000 : _bindgen_ty_12 = 67 ; pub const RC_CONSOLE_PICO : _bindgen_ty_12 = 68 ; pub const RC_CONSOLE_MEGADUCK : _bindgen_ty_12 = 69 ; pub const RC_CONSOLE_ZEEBO : _bindgen_ty_12 = 70 ; pub const RC_CONSOLE_ARDUBOY : _bindgen_ty_12 = 71 ; pub const RC_CONSOLE_WASM4 : _bindgen_ty_12 = 72 ; pub const RC_CONSOLE_ARCADIA_2001 : _bindgen_ty_12 = 73 ; pub const RC_CONSOLE_INTERTON_VC_4000 : _bindgen_ty_12 = 74 ; pub const RC_CONSOLE_ELEKTOR_TV_GAMES_COMPUTER : _bindgen_ty_12 = 75 ; pub const RC_CONSOLE_PC_ENGINE_CD : _bindgen_ty_12 = 76 ; pub const RC_CONSOLE_ATARI_JAGUAR_CD : _bindgen_ty_12 = 77 ; pub const RC_CONSOLE_NINTENDO_DSI : _bindgen_ty_12 = 78 ; pub const RC_CONSOLE_TI83 : _bindgen_ty_12 = 79 ; pub const RC_CONSOLE_UZEBOX : _bindgen_ty_12 = 80 ; pub const RC_CONSOLE_HUBS : _bindgen_ty_12 = 100 ; pub const RC_CONSOLE_EVENTS : _bindgen_ty_12 = 101 ; pub const RC_CONSOLE_STANDALONE : _bindgen_ty_12 = 102 ; # [doc = "\\\n| Console identifiers                                                         |\n\\"] pub type _bindgen_ty_12 = :: core :: ffi :: c_uint ; extern "C" { pub fn rc_console_name (console_id : u32) -> * const :: core :: ffi :: c_char ; } pub const RC_MEMORY_TYPE_SYSTEM_RAM : _bindgen_ty_13 = 0 ; pub const RC_MEMORY_TYPE_SAVE_RAM : _bindgen_ty_13 = 1 ; pub const RC_MEMORY_TYPE_VIDEO_RAM : _bindgen_ty_13 = 2 ; pub const RC_MEMORY_TYPE_READONLY : _bindgen_ty_13 = 3 ; pub const RC_MEMORY_TYPE_HARDWARE_CONTROLLER : _bindgen_ty_13 = 4 ; pub const RC_MEMORY_TYPE_VIRTUAL_RAM : _bindgen_ty_13 = 5 ; pub const RC_MEMORY_TYPE_UNUSED : _bindgen_ty_13 = 6 ; # [doc = "\\\n| Memory mapping                                                              |\n\\"] pub type _bindgen_ty_13 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memory_region_t { pub start_address : u32 , pub end_address : u32 , pub real_address : u32 , pub type_ : u8 , pub description : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memory_region_t"] [:: core :: mem :: size_of :: < rc_memory_region_t > () - 24usize] ; ["Alignment of rc_memory_region_t"] [:: core :: mem :: align_of :: < rc_memory_region_t > () - 8usize] ; ["Offset of field: rc_memory_region_t::start_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , start_address) - 0usize] ; ["Offset of field: rc_memory_region_t::end_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , end_address) - 4usize] ; ["Offset of field: rc_memory_region_t::real_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , real_address) - 8usize] ; ["Offset of field: rc_memory_region_t::type_"] [:: core :: mem :: offset_of ! (rc_memory_region_t , type_) - 12usize] ; ["Offset of field: rc_memory_region_t::description"] [:: core :: mem :: offset_of ! (rc_memory_region_t , description) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memory_regions_t { pub region : * const rc_memory_region_t , pub num_regions : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memory_regions_t"] [:: core :: mem :: size_of :: < rc_memory_regions_t > () - 16usize] ; ["Alignment of rc_memory_regions_t"] [:: core :: mem :: align_of :: < rc_memory_regions_t > () - 8usize] ; ["Offset of field: rc_memory_regions_t::region"] [:: core :: mem :: offset_of ! (rc_memory_regions_t , region) - 0usize] ; ["Offset of field: rc_memory_regions_t::num_regions"] [:: core :: mem :: offset_of ! (rc_memory_regions_t , num_regions) - 8usize] ; } ; extern "C" { pub fn rc_console_memory_regions (console_id : u32) -> * const rc_memory_regions_t ; } extern "C" { pub fn rc_hash_generate_from_buffer (hash : * mut :: core :: ffi :: c_char , console_id : u32 , buffer : * const u8 , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_hash_generate_from_file (hash : * mut :: core :: ffi :: c_char , console_id : u32 , path : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_iterator { pub buffer : * const u8 , pub buffer_size : usize , pub consoles : [u8 ; 12usize] , pub index : :: core :: ffi :: c_int , pub path : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_iterator"] [:: core :: mem :: size_of :: < rc_hash_iterator > () - 40usize] ; ["Alignment of rc_hash_iterator"] [:: core :: mem :: align_of :: < rc_hash_iterator > () - 8usize] ; ["Offset of field: rc_hash_iterator::buffer"] [:: core :: mem :: offset_of ! (rc_hash_iterator , buffer) - 0usize] ; ["Offset of field: rc_hash_iterator::buffer_size"] [:: core :: mem :: offset_of ! (rc_hash_iterator , buffer_size) - 8usize] ; ["Offset of field: rc_hash_iterator::consoles"] [:: core :: mem :: offset_of ! (rc_hash_iterator , consoles) - 16usize] ; ["Offset of field: rc_hash_iterator::index"] [:: core :: mem :: offset_of ! (rc_hash_iterator , index) - 28usize] ; ["Offset of field: rc_hash_iterator::path"] [:: core :: mem :: offset_of ! (rc_hash_iterator , path) - 32usize] ; } ; pub type rc_hash_iterator_t = rc_hash_iterator ; extern "C" { pub fn rc_hash_initialize_iterator (iterator : * mut rc_hash_iterator , path : * const :: core :: ffi :: c_char , buffer : * const u8 , buffer_size : usize) ; } extern "C" { pub fn rc_hash_destroy_iterator (iterator : * mut rc_hash_iterator) ; } extern "C" { pub fn rc_hash_iterate (hash : * mut :: core :: ffi :: c_char , iterator : * mut rc_hash_iterator) -> :: core :: ffi :: c_int ; } pub type rc_hash_message_callback = :: core :: option :: Option < unsafe extern "C" fn (arg1 : * const :: core :: ffi :: c_char) > ; extern "C" { pub fn rc_hash_init_error_message_callback (callback : rc_hash_message_callback) ; } extern "C" { pub fn rc_hash_init_verbose_message_callback (callback : rc_hash_message_callback) ; } pub type rc_hash_filereader_open_file_handler = :: core :: option :: Option < unsafe extern "C" fn (path_utf8 : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_void > ; pub type rc_hash_filereader_seek_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void , offset : i64 , origin : :: core :: ffi :: c_int) > ; pub type rc_hash_filereader_tell_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void) -> i64 > ; pub type rc_hash_filereader_read_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void , buffer : * mut :: core :: ffi :: c_void , requested_bytes : usize) -> usize > ; pub type rc_hash_filereader_close_file_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void) > ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_filereader { pub open : rc_hash_filereader_open_file_handler , pub seek : rc_hash_filereader_seek_handler , pub tell : rc_hash_filereader_tell_handler , pub read : rc_hash_filereader_read_handler , pub close : rc_hash_filereader_close_file_handler , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_filereader"] [:: core :: mem :: size_of :: < rc_hash_filereader > () - 40usize] ; ["Alignment of rc_hash_filereader"] [:: core :: mem :: align_of :: < rc_hash_filereader > () - 8usize] ; ["Offset of field: rc_hash_filereader::open"] [:: core :: mem :: offset_of ! (rc_hash_filereader , open) - 0usize] ; ["Offset of field: rc_hash_filereader::seek"] [:: core :: mem :: offset_of ! (rc_hash_filereader , seek) - 8usize] ; ["Offset of field: rc_hash_filereader::tell"] [:: core :: mem :: offset_of ! (rc_hash_filereader , tell) - 16usize] ; ["Offset of field: rc_hash_filereader::read"] [:: core :: mem :: offset_of ! (rc_hash_filereader , read) - 24usize] ; ["Offset of field: rc_hash_filereader::close"] [:: core :: mem :: offset_of ! (rc_hash_filereader , close) - 32usize] ; } ; extern "C" { pub fn rc_hash_init_custom_filereader (reader : * mut rc_hash_filereader) ; } pub type rc_hash_cdreader_open_track_handler = :: core :: option :: Option < unsafe extern "C" fn (path : * const :: core :: ffi :: c_char , track : u32) -> * mut :: core :: ffi :: c_void > ; pub type rc_hash_cdreader_read_sector_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void , sector : u32 , buffer : * mut :: core :: ffi :: c_void , requested_bytes : usize) -> usize > ; pub type rc_hash_cdreader_close_track_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void) > ; pub type rc_hash_cdreader_first_track_sector_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void) -> u32 > ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_cdreader { pub open_track : rc_hash_cdreader_open_track_handler , pub read_sector : rc_hash_cdreader_read_sector_handler , pub close_track : rc_hash_cdreader_close_track_handler , pub first_track_sector : rc_hash_cdreader_first_track_sector_handler , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_cdreader"] [:: core :: mem :: size_of :: < rc_hash_cdreader > () - 32usize] ; ["Alignment of rc_hash_cdreader"] [:: core :: mem :: align_of :: < rc_hash_cdreader > () - 8usize] ; ["Offset of field: rc_hash_cdreader::open_track"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , open_track) - 0usize] ; ["Offset of field: rc_hash_cdreader::read_sector"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , read_sector) - 8usize] ; ["Offset of field: rc_hash_cdreader::close_track"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , close_track) - 16usize] ; ["Offset of field: rc_hash_cdreader::first_track_sector"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , first_track_sector) - 24usize] ; } ; extern "C" { pub fn rc_hash_get_default_cdreader (cdreader : * mut rc_hash_cdreader) ; } extern "C" { pub fn rc_hash_init_default_cdreader () ; } extern "C" { pub fn rc_hash_init_custom_cdreader (reader : * mut rc_hash_cdreader) ; } pub type rc_hash_3ds_get_cia_normal_key_func = :: core :: option :: Option < unsafe extern "C" fn (common_key_index : u8 , out_normal_key : * mut u8) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_hash_init_3ds_get_cia_normal_key_func (func : rc_hash_3ds_get_cia_normal_key_func) ; } pub type rc_hash_3ds_get_ncch_normal_keys_func = :: core :: option :: Option < unsafe extern "C" fn (primary_key_y : * mut u8 , secondary_key_x_slot : u8 , optional_program_id : * mut u8 , out_primary_key : * mut u8 , out_secondary_key : * mut u8) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_hash_init_3ds_get_ncch_normal_keys_func (func : rc_hash_3ds_get_ncch_normal_keys_func) ; } # [doc = " API parameters for a fetch image request.\n NOTE: fetch image server response is the raw image data. There is no rc_api_process_fetch_image_response function."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_image_request_t { pub image_name : * const :: core :: ffi :: c_char , pub image_type : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_image_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_image_request_t > () - 16usize] ; ["Alignment of rc_api_fetch_image_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_image_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_image_request_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_fetch_image_request_t , image_name) - 0usize] ; ["Offset of field: rc_api_fetch_image_request_t::image_type"] [:: core :: mem :: offset_of ! (rc_api_fetch_image_request_t , image_type) - 8usize] ; } ; extern "C" { pub fn rc_api_init_fetch_image_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_image_request_t) -> :: core :: ffi :: c_int ; } # [doc = " API parameters for a resolve hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_resolve_hash_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_hash : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_resolve_hash_request_t"] [:: core :: mem :: size_of :: < rc_api_resolve_hash_request_t > () - 24usize] ; ["Alignment of rc_api_resolve_hash_request_t"] [:: core :: mem :: align_of :: < rc_api_resolve_hash_request_t > () - 8usize] ; ["Offset of field: rc_api_resolve_hash_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , username) - 0usize] ; ["Offset of field: rc_api_resolve_hash_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_resolve_hash_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , game_hash) - 16usize] ; } ; # [doc = " Response data for a resolve hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_resolve_hash_response_t { pub game_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_resolve_hash_response_t"] [:: core :: mem :: size_of :: < rc_api_resolve_hash_response_t > () - 320usize] ; ["Alignment of rc_api_resolve_hash_response_t"] [:: core :: mem :: align_of :: < rc_api_resolve_hash_response_t > () - 8usize] ; ["Offset of field: rc_api_resolve_hash_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_response_t , game_id) - 0usize] ; ["Offset of field: rc_api_resolve_hash_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_resolve_hash_request (request : * mut rc_api_request_t , api_params : * const rc_api_resolve_hash_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_resolve_hash_response (response : * mut rc_api_resolve_hash_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_resolve_hash_server_response (response : * mut rc_api_resolve_hash_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_resolve_hash_response (response : * mut rc_api_resolve_hash_response_t) ; } # [doc = " API parameters for a fetch game data request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_data_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_data_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_data_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_game_data_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_data_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , game_id) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_leaderboard_definition_t { pub id : u32 , pub format : :: core :: ffi :: c_int , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub lower_is_better : u8 , pub hidden : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_leaderboard_definition_t"] [:: core :: mem :: size_of :: < rc_api_leaderboard_definition_t > () - 40usize] ; ["Alignment of rc_api_leaderboard_definition_t"] [:: core :: mem :: align_of :: < rc_api_leaderboard_definition_t > () - 8usize] ; ["Offset of field: rc_api_leaderboard_definition_t::id"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , id) - 0usize] ; ["Offset of field: rc_api_leaderboard_definition_t::format"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , format) - 4usize] ; ["Offset of field: rc_api_leaderboard_definition_t::title"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , title) - 8usize] ; ["Offset of field: rc_api_leaderboard_definition_t::description"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , description) - 16usize] ; ["Offset of field: rc_api_leaderboard_definition_t::definition"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , definition) - 24usize] ; ["Offset of field: rc_api_leaderboard_definition_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , lower_is_better) - 32usize] ; ["Offset of field: rc_api_leaderboard_definition_t::hidden"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , hidden) - 33usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_achievement_definition_t { pub id : u32 , pub points : u32 , pub category : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub author : * const :: core :: ffi :: c_char , pub badge_name : * const :: core :: ffi :: c_char , pub created : time_t , pub updated : time_t , pub type_ : u32 , pub rarity : f32 , pub rarity_hardcore : f32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_achievement_definition_t"] [:: core :: mem :: size_of :: < rc_api_achievement_definition_t > () - 88usize] ; ["Alignment of rc_api_achievement_definition_t"] [:: core :: mem :: align_of :: < rc_api_achievement_definition_t > () - 8usize] ; ["Offset of field: rc_api_achievement_definition_t::id"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , id) - 0usize] ; ["Offset of field: rc_api_achievement_definition_t::points"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , points) - 4usize] ; ["Offset of field: rc_api_achievement_definition_t::category"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , category) - 8usize] ; ["Offset of field: rc_api_achievement_definition_t::title"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , title) - 16usize] ; ["Offset of field: rc_api_achievement_definition_t::description"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , description) - 24usize] ; ["Offset of field: rc_api_achievement_definition_t::definition"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , definition) - 32usize] ; ["Offset of field: rc_api_achievement_definition_t::author"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , author) - 40usize] ; ["Offset of field: rc_api_achievement_definition_t::badge_name"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , badge_name) - 48usize] ; ["Offset of field: rc_api_achievement_definition_t::created"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , created) - 56usize] ; ["Offset of field: rc_api_achievement_definition_t::updated"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , updated) - 64usize] ; ["Offset of field: rc_api_achievement_definition_t::type_"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , type_) - 72usize] ; ["Offset of field: rc_api_achievement_definition_t::rarity"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , rarity) - 76usize] ; ["Offset of field: rc_api_achievement_definition_t::rarity_hardcore"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , rarity_hardcore) - 80usize] ; } ; # [doc = " Response data for a fetch game data request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_data_response_t { pub id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub image_name : * const :: core :: ffi :: c_char , pub rich_presence_script : * const :: core :: ffi :: c_char , pub achievements : * mut rc_api_achievement_definition_t , pub num_achievements : u32 , pub leaderboards : * mut rc_api_leaderboard_definition_t , pub num_leaderboards : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_data_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_data_response_t > () - 376usize] ; ["Alignment of rc_api_fetch_game_data_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_data_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , console_id) - 4usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::title"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , title) - 8usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , image_name) - 16usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::rich_presence_script"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , rich_presence_script) - 24usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::achievements"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , achievements) - 32usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , num_achievements) - 40usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::leaderboards"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , leaderboards) - 48usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , num_leaderboards) - 56usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , response) - 64usize] ; } ; extern "C" { pub fn rc_api_init_fetch_game_data_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_game_data_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_data_response (response : * mut rc_api_fetch_game_data_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_data_server_response (response : * mut rc_api_fetch_game_data_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_game_data_response (response : * mut rc_api_fetch_game_data_response_t) ; } # [doc = " API parameters for a ping request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_ping_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub rich_presence : * const :: core :: ffi :: c_char , pub game_hash : * const :: core :: ffi :: c_char , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_ping_request_t"] [:: core :: mem :: size_of :: < rc_api_ping_request_t > () - 48usize] ; ["Alignment of rc_api_ping_request_t"] [:: core :: mem :: align_of :: < rc_api_ping_request_t > () - 8usize] ; ["Offset of field: rc_api_ping_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , username) - 0usize] ; ["Offset of field: rc_api_ping_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_ping_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_ping_request_t::rich_presence"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , rich_presence) - 24usize] ; ["Offset of field: rc_api_ping_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , game_hash) - 32usize] ; ["Offset of field: rc_api_ping_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , hardcore) - 40usize] ; } ; # [doc = " Response data for a ping request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_ping_response_t { pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_ping_response_t"] [:: core :: mem :: size_of :: < rc_api_ping_response_t > () - 312usize] ; ["Alignment of rc_api_ping_response_t"] [:: core :: mem :: align_of :: < rc_api_ping_response_t > () - 8usize] ; ["Offset of field: rc_api_ping_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_ping_response_t , response) - 0usize] ; } ; extern "C" { pub fn rc_api_init_ping_request (request : * mut rc_api_request_t , api_params : * const rc_api_ping_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_ping_response (response : * mut rc_api_ping_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_ping_server_response (response : * mut rc_api_ping_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_ping_response (response : * mut rc_api_ping_response_t) ; } # [doc = " API parameters for an award achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_award_achievement_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub hardcore : u32 , pub game_hash : * const :: core :: ffi :: c_char , pub seconds_since_unlock : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_award_achievement_request_t"] [:: core :: mem :: size_of :: < rc_api_award_achievement_request_t > () - 40usize] ; ["Alignment of rc_api_award_achievement_request_t"] [:: core :: mem :: align_of :: < rc_api_award_achievement_request_t > () - 8usize] ; ["Offset of field: rc_api_award_achievement_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , username) - 0usize] ; ["Offset of field: rc_api_award_achievement_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_award_achievement_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_award_achievement_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , hardcore) - 20usize] ; ["Offset of field: rc_api_award_achievement_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_award_achievement_request_t::seconds_since_unlock"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , seconds_since_unlock) - 32usize] ; } ; # [doc = " Response data for an award achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_award_achievement_response_t { pub awarded_achievement_id : u32 , pub new_player_score : u32 , pub new_player_score_softcore : u32 , pub achievements_remaining : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_award_achievement_response_t"] [:: core :: mem :: size_of :: < rc_api_award_achievement_response_t > () - 328usize] ; ["Alignment of rc_api_award_achievement_response_t"] [:: core :: mem :: align_of :: < rc_api_award_achievement_response_t > () - 8usize] ; ["Offset of field: rc_api_award_achievement_response_t::awarded_achievement_id"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , awarded_achievement_id) - 0usize] ; ["Offset of field: rc_api_award_achievement_response_t::new_player_score"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , new_player_score) - 4usize] ; ["Offset of field: rc_api_award_achievement_response_t::new_player_score_softcore"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , new_player_score_softcore) - 8usize] ; ["Offset of field: rc_api_award_achievement_response_t::achievements_remaining"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , achievements_remaining) - 12usize] ; ["Offset of field: rc_api_award_achievement_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_award_achievement_request (request : * mut rc_api_request_t , api_params : * const rc_api_award_achievement_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_award_achievement_response (response : * mut rc_api_award_achievement_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_award_achievement_server_response (response : * mut rc_api_award_achievement_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_award_achievement_response (response : * mut rc_api_award_achievement_response_t) ; } # [doc = " API parameters for a submit lboard entry request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_submit_lboard_entry_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub leaderboard_id : u32 , pub score : i32 , pub game_hash : * const :: core :: ffi :: c_char , pub seconds_since_completion : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_submit_lboard_entry_request_t"] [:: core :: mem :: size_of :: < rc_api_submit_lboard_entry_request_t > () - 40usize] ; ["Alignment of rc_api_submit_lboard_entry_request_t"] [:: core :: mem :: align_of :: < rc_api_submit_lboard_entry_request_t > () - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , username) - 0usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , leaderboard_id) - 16usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , score) - 20usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::seconds_since_completion"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , seconds_since_completion) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_lboard_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub score : i32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_lboard_entry_t"] [:: core :: mem :: size_of :: < rc_api_lboard_entry_t > () - 16usize] ; ["Alignment of rc_api_lboard_entry_t"] [:: core :: mem :: align_of :: < rc_api_lboard_entry_t > () - 8usize] ; ["Offset of field: rc_api_lboard_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , username) - 0usize] ; ["Offset of field: rc_api_lboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , rank) - 8usize] ; ["Offset of field: rc_api_lboard_entry_t::score"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , score) - 12usize] ; } ; # [doc = " Response data for a submit lboard entry request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_submit_lboard_entry_response_t { pub submitted_score : i32 , pub best_score : i32 , pub new_rank : u32 , pub num_entries : u32 , pub top_entries : * mut rc_api_lboard_entry_t , pub num_top_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_submit_lboard_entry_response_t"] [:: core :: mem :: size_of :: < rc_api_submit_lboard_entry_response_t > () - 344usize] ; ["Alignment of rc_api_submit_lboard_entry_response_t"] [:: core :: mem :: align_of :: < rc_api_submit_lboard_entry_response_t > () - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::submitted_score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , submitted_score) - 0usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::best_score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , best_score) - 4usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::new_rank"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , new_rank) - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , num_entries) - 12usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::top_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , top_entries) - 16usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::num_top_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , num_top_entries) - 24usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_submit_lboard_entry_request (request : * mut rc_api_request_t , api_params : * const rc_api_submit_lboard_entry_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_submit_lboard_entry_response (response : * mut rc_api_submit_lboard_entry_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_submit_lboard_entry_server_response (response : * mut rc_api_submit_lboard_entry_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_submit_lboard_entry_response (response : * mut rc_api_submit_lboard_entry_response_t) ; } # [doc = " Callback used to read num_bytes bytes from memory starting at address. If\n num_bytes is greater than 1, the value is read in little-endian from\n memory."] pub type rc_runtime_peek_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , num_bytes : u32 , ud : * mut :: core :: ffi :: c_void) -> u32 > ; # [doc = "\\\n| Runtime                                                                     |\n\\"] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_trigger_t { pub id : u32 , pub trigger : * mut rc_trigger_t , pub buffer : * mut :: core :: ffi :: c_void , pub invalid_memref : * mut rc_memref_t , pub md5 : [u8 ; 16usize] , pub serialized_size : i32 , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_trigger_t"] [:: core :: mem :: size_of :: < rc_runtime_trigger_t > () - 56usize] ; ["Alignment of rc_runtime_trigger_t"] [:: core :: mem :: align_of :: < rc_runtime_trigger_t > () - 8usize] ; ["Offset of field: rc_runtime_trigger_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , id) - 0usize] ; ["Offset of field: rc_runtime_trigger_t::trigger"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , trigger) - 8usize] ; ["Offset of field: rc_runtime_trigger_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , buffer) - 16usize] ; ["Offset of field: rc_runtime_trigger_t::invalid_memref"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , invalid_memref) - 24usize] ; ["Offset of field: rc_runtime_trigger_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , md5) - 32usize] ; ["Offset of field: rc_runtime_trigger_t::serialized_size"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , serialized_size) - 48usize] ; ["Offset of field: rc_runtime_trigger_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , owns_memrefs) - 52usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_lboard_t { pub id : u32 , pub value : i32 , pub lboard : * mut rc_lboard_t , pub buffer : * mut :: core :: ffi :: c_void , pub invalid_memref : * mut rc_memref_t , pub md5 : [u8 ; 16usize] , pub serialized_size : u32 , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_lboard_t"] [:: core :: mem :: size_of :: < rc_runtime_lboard_t > () - 56usize] ; ["Alignment of rc_runtime_lboard_t"] [:: core :: mem :: align_of :: < rc_runtime_lboard_t > () - 8usize] ; ["Offset of field: rc_runtime_lboard_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , id) - 0usize] ; ["Offset of field: rc_runtime_lboard_t::value"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , value) - 4usize] ; ["Offset of field: rc_runtime_lboard_t::lboard"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , lboard) - 8usize] ; ["Offset of field: rc_runtime_lboard_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , buffer) - 16usize] ; ["Offset of field: rc_runtime_lboard_t::invalid_memref"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , invalid_memref) - 24usize] ; ["Offset of field: rc_runtime_lboard_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , md5) - 32usize] ; ["Offset of field: rc_runtime_lboard_t::serialized_size"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , serialized_size) - 48usize] ; ["Offset of field: rc_runtime_lboard_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , owns_memrefs) - 52usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_richpresence_t { pub richpresence : * mut rc_richpresence_t , pub buffer : * mut :: core :: ffi :: c_void , pub previous : * mut rc_runtime_richpresence_t , pub md5 : [u8 ; 16usize] , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_richpresence_t"] [:: core :: mem :: size_of :: < rc_runtime_richpresence_t > () - 48usize] ; ["Alignment of rc_runtime_richpresence_t"] [:: core :: mem :: align_of :: < rc_runtime_richpresence_t > () - 8usize] ; ["Offset of field: rc_runtime_richpresence_t::richpresence"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , richpresence) - 0usize] ; ["Offset of field: rc_runtime_richpresence_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , buffer) - 8usize] ; ["Offset of field: rc_runtime_richpresence_t::previous"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , previous) - 16usize] ; ["Offset of field: rc_runtime_richpresence_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , md5) - 24usize] ; ["Offset of field: rc_runtime_richpresence_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , owns_memrefs) - 40usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_t { pub triggers : * mut rc_runtime_trigger_t , pub trigger_count : u32 , pub trigger_capacity : u32 , pub lboards : * mut rc_runtime_lboard_t , pub lboard_count : u32 , pub lboard_capacity : u32 , pub richpresence : * mut rc_runtime_richpresence_t , pub memrefs : * mut rc_memref_t , pub next_memref : * mut * mut rc_memref_t , pub variables : * mut rc_value_t , pub next_variable : * mut * mut rc_value_t , pub owns_self : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_t"] [:: core :: mem :: size_of :: < rc_runtime_t > () - 80usize] ; ["Alignment of rc_runtime_t"] [:: core :: mem :: align_of :: < rc_runtime_t > () - 8usize] ; ["Offset of field: rc_runtime_t::triggers"] [:: core :: mem :: offset_of ! (rc_runtime_t , triggers) - 0usize] ; ["Offset of field: rc_runtime_t::trigger_count"] [:: core :: mem :: offset_of ! (rc_runtime_t , trigger_count) - 8usize] ; ["Offset of field: rc_runtime_t::trigger_capacity"] [:: core :: mem :: offset_of ! (rc_runtime_t , trigger_capacity) - 12usize] ; ["Offset of field: rc_runtime_t::lboards"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboards) - 16usize] ; ["Offset of field: rc_runtime_t::lboard_count"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboard_count) - 24usize] ; ["Offset of field: rc_runtime_t::lboard_capacity"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboard_capacity) - 28usize] ; ["Offset of field: rc_runtime_t::richpresence"] [:: core :: mem :: offset_of ! (rc_runtime_t , richpresence) - 32usize] ; ["Offset of field: rc_runtime_t::memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_t , memrefs) - 40usize] ; ["Offset of field: rc_runtime_t::next_memref"] [:: core :: mem :: offset_of ! (rc_runtime_t , next_memref) - 48usize] ; ["Offset of field: rc_runtime_t::variables"] [:: core :: mem :: offset_of ! (rc_runtime_t , variables) - 56usize] ; ["Offset of field: rc_runtime_t::next_variable"] [:: core :: mem :: offset_of ! (rc_runtime_t , next_variable) - 64usize] ; ["Offset of field: rc_runtime_t::owns_self"] [:: core :: mem :: offset_of ! (rc_runtime_t , owns_self) - 72usize] ; } ; extern "C" { pub fn rc_runtime_alloc () -> * mut rc_runtime_t ; } extern "C" { pub fn rc_runtime_init (runtime : * mut rc_runtime_t) ; } extern "C" { pub fn rc_runtime_destroy (runtime : * mut rc_runtime_t) ; } extern "C" { pub fn rc_runtime_activate_achievement (runtime : * mut rc_runtime_t , id : u32 , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deactivate_achievement (runtime : * mut rc_runtime_t , id : u32) ; } extern "C" { pub fn rc_runtime_get_achievement (runtime : * const rc_runtime_t , id : u32) -> * mut rc_trigger_t ; } extern "C" { pub fn rc_runtime_get_achievement_measured (runtime : * const rc_runtime_t , id : u32 , measured_value : * mut :: core :: ffi :: c_uint , measured_target : * mut :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_format_achievement_measured (runtime : * const rc_runtime_t , id : u32 , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_activate_lboard (runtime : * mut rc_runtime_t , id : u32 , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deactivate_lboard (runtime : * mut rc_runtime_t , id : u32) ; } extern "C" { pub fn rc_runtime_get_lboard (runtime : * const rc_runtime_t , id : u32) -> * mut rc_lboard_t ; } extern "C" { pub fn rc_runtime_format_lboard_value (buffer : * mut :: core :: ffi :: c_char , size : :: core :: ffi :: c_int , value : i32 , format : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_activate_richpresence (runtime : * mut rc_runtime_t , script : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_get_richpresence (runtime : * const rc_runtime_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_runtime_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } pub const RC_RUNTIME_EVENT_ACHIEVEMENT_ACTIVATED : _bindgen_ty_14 = 0 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PAUSED : _bindgen_ty_14 = 1 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_RESET : _bindgen_ty_14 = 2 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_TRIGGERED : _bindgen_ty_14 = 3 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PRIMED : _bindgen_ty_14 = 4 ; pub const RC_RUNTIME_EVENT_LBOARD_STARTED : _bindgen_ty_14 = 5 ; pub const RC_RUNTIME_EVENT_LBOARD_CANCELED : _bindgen_ty_14 = 6 ; pub const RC_RUNTIME_EVENT_LBOARD_UPDATED : _bindgen_ty_14 = 7 ; pub const RC_RUNTIME_EVENT_LBOARD_TRIGGERED : _bindgen_ty_14 = 8 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_DISABLED : _bindgen_ty_14 = 9 ; pub const RC_RUNTIME_EVENT_LBOARD_DISABLED : _bindgen_ty_14 = 10 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_UNPRIMED : _bindgen_ty_14 = 11 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PROGRESS_UPDATED : _bindgen_ty_14 = 12 ; pub type _bindgen_ty_14 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_event_t { pub id : u32 , pub value : i32 , pub type_ : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_event_t"] [:: core :: mem :: size_of :: < rc_runtime_event_t > () - 12usize] ; ["Alignment of rc_runtime_event_t"] [:: core :: mem :: align_of :: < rc_runtime_event_t > () - 4usize] ; ["Offset of field: rc_runtime_event_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , id) - 0usize] ; ["Offset of field: rc_runtime_event_t::value"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , value) - 4usize] ; ["Offset of field: rc_runtime_event_t::type_"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , type_) - 8usize] ; } ; pub type rc_runtime_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (runtime_event : * const rc_runtime_event_t) > ; extern "C" { pub fn rc_runtime_do_frame (runtime : * mut rc_runtime_t , event_handler : rc_runtime_event_handler_t , peek : rc_runtime_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) ; } extern "C" { pub fn rc_runtime_reset (runtime : * mut rc_runtime_t) ; } pub type rc_runtime_validate_address_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_runtime_validate_addresses (runtime : * mut rc_runtime_t , event_handler : rc_runtime_event_handler_t , validate_handler : rc_runtime_validate_address_t) ; } extern "C" { pub fn rc_runtime_invalidate_address (runtime : * mut rc_runtime_t , address : u32) ; } extern "C" { pub fn rc_runtime_progress_size (runtime : * const rc_runtime_t , L : * mut lua_State) -> u32 ; } extern "C" { pub fn rc_runtime_serialize_progress (buffer : * mut :: core :: ffi :: c_void , runtime : * const rc_runtime_t , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_serialize_progress_sized (buffer : * mut u8 , buffer_size : u32 , runtime : * const rc_runtime_t , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deserialize_progress (runtime : * mut rc_runtime_t , serialized : * const u8 , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deserialize_progress_sized (runtime : * mut rc_runtime_t , serialized : * const u8 , serialized_size : u32 , L : * mut lua_State) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_async_handle_t { _unused : [u8 ; 0] , } # [doc = " Callback used to read num_bytes bytes from memory starting at address into buffer.\n Returns the number of bytes read. A return value of 0 indicates the address was invalid."] pub type rc_client_read_memory_func_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , buffer : * mut u8 , num_bytes : u32 , client : * mut rc_client_t) -> u32 > ; # [doc = " Internal method passed to rc_client_server_call_t to process the server response."] pub type rc_client_server_callback_t = :: core :: option :: Option < unsafe extern "C" fn (server_response : * const rc_api_server_response_t , callback_data : * mut :: core :: ffi :: c_void) > ; # [doc = " Callback used to issue a request to the server."] pub type rc_client_server_call_t = :: core :: option :: Option < unsafe extern "C" fn (request : * const rc_api_request_t , callback : rc_client_server_callback_t , callback_data : * mut :: core :: ffi :: c_void , client : * mut rc_client_t) > ; # [doc = " Generic callback for asynchronous eventing."] pub type rc_client_callback_t = :: core :: option :: Option < unsafe extern "C" fn (result : :: core :: ffi :: c_int , error_message : * const :: core :: ffi :: c_char , client : * mut rc_client_t , userdata : * mut :: core :: ffi :: c_void) > ; # [doc = " Callback for logging or displaying a message."] pub type rc_client_message_callback_t = :: core :: option :: Option < unsafe extern "C" fn (message : * const :: core :: ffi :: c_char , client : * const rc_client_t) > ; extern "C" { # [doc = " Creates a new rc_client_t object."] pub fn rc_client_create (read_memory_function : rc_client_read_memory_func_t , server_call_function : rc_client_server_call_t) -> * mut rc_client_t ; } extern "C" { # [doc = " Releases resources associated to a rc_client_t object.\n Pointer will no longer be valid after making this call."] pub fn rc_client_destroy (client : * mut rc_client_t) ; } extern "C" { # [doc = " Sets whether hardcore is enabled (on by default).\n Can be called with a game loaded.\n Enabling hardcore with a game loaded will raise an RC_CLIENT_EVENT_RESET\n event. Processing will be disabled until rc_client_reset is called."] pub fn rc_client_set_hardcore_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether hardcore is enabled (on by default)."] pub fn rc_client_get_hardcore_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether encore mode is enabled (off by default).\n Evaluated when loading a game. Has no effect while a game is loaded."] pub fn rc_client_set_encore_mode_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether encore mode is enabled (off by default)."] pub fn rc_client_get_encore_mode_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether unofficial achievements should be loaded.\n Evaluated when loading a game. Has no effect while a game is loaded."] pub fn rc_client_set_unofficial_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether unofficial achievements should be loaded."] pub fn rc_client_get_unofficial_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether spectator mode is enabled (off by default).\n If enabled, events for achievement unlocks and leaderboard submissions will be\n raised, but server calls to actually perform the unlock/submit will not occur.\n Can be modified while a game is loaded. Evaluated at unlock/submit time.\n Cannot be modified if disabled before a game is loaded."] pub fn rc_client_set_spectator_mode_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether spectator mode is enabled (off by default)."] pub fn rc_client_get_spectator_mode_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Attaches client-specific data to the runtime."] pub fn rc_client_set_userdata (client : * mut rc_client_t , userdata : * mut :: core :: ffi :: c_void) ; } extern "C" { # [doc = " Gets the client-specific data attached to the runtime."] pub fn rc_client_get_userdata (client : * const rc_client_t) -> * mut :: core :: ffi :: c_void ; } extern "C" { # [doc = " Sets the name of the server to use."] pub fn rc_client_set_host (client : * const rc_client_t , hostname : * const :: core :: ffi :: c_char) ; } pub type rc_clock_t = u64 ; pub type rc_get_time_millisecs_func_t = :: core :: option :: Option < unsafe extern "C" fn (client : * const rc_client_t) -> rc_clock_t > ; extern "C" { # [doc = " Specifies a function that returns a value that increases once per millisecond."] pub fn rc_client_set_get_time_millisecs_function (client : * mut rc_client_t , handler : rc_get_time_millisecs_func_t) ; } extern "C" { # [doc = " Marks an async process as aborted. The associated callback will not be called."] pub fn rc_client_abort_async (client : * mut rc_client_t , async_handle : * mut rc_client_async_handle_t) ; } extern "C" { # [doc = " Gets a clause that can be added to the User-Agent to identify the version of rcheevos being used."] pub fn rc_client_get_user_agent_clause (client : * mut rc_client_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> usize ; } extern "C" { # [doc = " Sets the logging level and provides a callback to be called to do the logging."] pub fn rc_client_enable_logging (client : * mut rc_client_t , level : :: core :: ffi :: c_int , callback : rc_client_message_callback_t) ; } pub const RC_CLIENT_LOG_LEVEL_NONE : _bindgen_ty_15 = 0 ; pub const RC_CLIENT_LOG_LEVEL_ERROR : _bindgen_ty_15 = 1 ; pub const RC_CLIENT_LOG_LEVEL_WARN : _bindgen_ty_15 = 2 ; pub const RC_CLIENT_LOG_LEVEL_INFO : _bindgen_ty_15 = 3 ; pub const RC_CLIENT_LOG_LEVEL_VERBOSE : _bindgen_ty_15 = 4 ; pub const NUM_RC_CLIENT_LOG_LEVELS : _bindgen_ty_15 = 5 ; pub type _bindgen_ty_15 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Attempt to login a user."] pub fn rc_client_begin_login_with_password (client : * mut rc_client_t , username : * const :: core :: ffi :: c_char , password : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Attempt to login a user."] pub fn rc_client_begin_login_with_token (client : * mut rc_client_t , username : * const :: core :: ffi :: c_char , token : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Logout the user."] pub fn rc_client_logout (client : * mut rc_client_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_user_t { pub display_name : * const :: core :: ffi :: c_char , pub username : * const :: core :: ffi :: c_char , pub token : * const :: core :: ffi :: c_char , pub score : u32 , pub score_softcore : u32 , pub num_unread_messages : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_user_t"] [:: core :: mem :: size_of :: < rc_client_user_t > () - 40usize] ; ["Alignment of rc_client_user_t"] [:: core :: mem :: align_of :: < rc_client_user_t > () - 8usize] ; ["Offset of field: rc_client_user_t::display_name"] [:: core :: mem :: offset_of ! (rc_client_user_t , display_name) - 0usize] ; ["Offset of field: rc_client_user_t::username"] [:: core :: mem :: offset_of ! (rc_client_user_t , username) - 8usize] ; ["Offset of field: rc_client_user_t::token"] [:: core :: mem :: offset_of ! (rc_client_user_t , token) - 16usize] ; ["Offset of field: rc_client_user_t::score"] [:: core :: mem :: offset_of ! (rc_client_user_t , score) - 24usize] ; ["Offset of field: rc_client_user_t::score_softcore"] [:: core :: mem :: offset_of ! (rc_client_user_t , score_softcore) - 28usize] ; ["Offset of field: rc_client_user_t::num_unread_messages"] [:: core :: mem :: offset_of ! (rc_client_user_t , num_unread_messages) - 32usize] ; } ; extern "C" { # [doc = " Gets information about the logged in user. Will return NULL if the user is not logged in."] pub fn rc_client_get_user_info (client : * const rc_client_t) -> * const rc_client_user_t ; } extern "C" { # [doc = " Gets the URL for the user's profile picture.\n Returns RC_OK on success."] pub fn rc_client_user_get_image_url (user : * const rc_client_user_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_user_game_summary_t { pub num_core_achievements : u32 , pub num_unofficial_achievements : u32 , pub num_unlocked_achievements : u32 , pub num_unsupported_achievements : u32 , pub points_core : u32 , pub points_unlocked : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_user_game_summary_t"] [:: core :: mem :: size_of :: < rc_client_user_game_summary_t > () - 24usize] ; ["Alignment of rc_client_user_game_summary_t"] [:: core :: mem :: align_of :: < rc_client_user_game_summary_t > () - 4usize] ; ["Offset of field: rc_client_user_game_summary_t::num_core_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_core_achievements) - 0usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unofficial_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unofficial_achievements) - 4usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unlocked_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unlocked_achievements) - 8usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unsupported_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unsupported_achievements) - 12usize] ; ["Offset of field: rc_client_user_game_summary_t::points_core"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , points_core) - 16usize] ; ["Offset of field: rc_client_user_game_summary_t::points_unlocked"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , points_unlocked) - 20usize] ; } ; extern "C" { # [doc = " Gets a breakdown of the number of achievements in the game, and how many the user has unlocked.\n Used for the \"You have unlocked X of Y achievements\" message shown when the game starts."] pub fn rc_client_get_user_game_summary (client : * const rc_client_t , summary : * mut rc_client_user_game_summary_t) ; } extern "C" { # [doc = " Start loading an unidentified game."] pub fn rc_client_begin_identify_and_load_game (client : * mut rc_client_t , console_id : u32 , file_path : * const :: core :: ffi :: c_char , data : * const u8 , data_size : usize , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Start loading a game."] pub fn rc_client_begin_load_game (client : * mut rc_client_t , hash : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Gets the current progress of the asynchronous load game process."] pub fn rc_client_get_load_game_state (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } pub const RC_CLIENT_LOAD_GAME_STATE_NONE : _bindgen_ty_16 = 0 ; pub const RC_CLIENT_LOAD_GAME_STATE_IDENTIFYING_GAME : _bindgen_ty_16 = 1 ; pub const RC_CLIENT_LOAD_GAME_STATE_AWAIT_LOGIN : _bindgen_ty_16 = 2 ; pub const RC_CLIENT_LOAD_GAME_STATE_FETCHING_GAME_DATA : _bindgen_ty_16 = 3 ; pub const RC_CLIENT_LOAD_GAME_STATE_STARTING_SESSION : _bindgen_ty_16 = 4 ; pub const RC_CLIENT_LOAD_GAME_STATE_DONE : _bindgen_ty_16 = 5 ; pub const RC_CLIENT_LOAD_GAME_STATE_ABORTED : _bindgen_ty_16 = 6 ; pub type _bindgen_ty_16 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Determines if a game was successfully identified and loaded."] pub fn rc_client_is_game_loaded (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Unloads the current game."] pub fn rc_client_unload_game (client : * mut rc_client_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_game_t { pub id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub hash : * const :: core :: ffi :: c_char , pub badge_name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_game_t"] [:: core :: mem :: size_of :: < rc_client_game_t > () - 32usize] ; ["Alignment of rc_client_game_t"] [:: core :: mem :: align_of :: < rc_client_game_t > () - 8usize] ; ["Offset of field: rc_client_game_t::id"] [:: core :: mem :: offset_of ! (rc_client_game_t , id) - 0usize] ; ["Offset of field: rc_client_game_t::console_id"] [:: core :: mem :: offset_of ! (rc_client_game_t , console_id) - 4usize] ; ["Offset of field: rc_client_game_t::title"] [:: core :: mem :: offset_of ! (rc_client_game_t , title) - 8usize] ; ["Offset of field: rc_client_game_t::hash"] [:: core :: mem :: offset_of ! (rc_client_game_t , hash) - 16usize] ; ["Offset of field: rc_client_game_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_game_t , badge_name) - 24usize] ; } ; extern "C" { # [doc = " Get information about the current game. Returns NULL if no game is loaded.\n NOTE: returns a dummy game record if an unidentified game is loaded."] pub fn rc_client_get_game_info (client : * const rc_client_t) -> * const rc_client_game_t ; } extern "C" { # [doc = " Gets the URL for the game image.\n Returns RC_OK on success."] pub fn rc_client_game_get_image_url (game : * const rc_client_game_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Changes the active disc in a multi-disc game."] pub fn rc_client_begin_change_media (client : * mut rc_client_t , file_path : * const :: core :: ffi :: c_char , data : * const u8 , data_size : usize , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Changes the active disc in a multi-disc game."] pub fn rc_client_begin_change_media_from_hash (client : * mut rc_client_t , hash : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } # [doc = "\\\n| Subsets                                                                     |\n\\"] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_subset_t { pub id : u32 , pub title : * const :: core :: ffi :: c_char , pub badge_name : [:: core :: ffi :: c_char ; 16usize] , pub num_achievements : u32 , pub num_leaderboards : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_subset_t"] [:: core :: mem :: size_of :: < rc_client_subset_t > () - 40usize] ; ["Alignment of rc_client_subset_t"] [:: core :: mem :: align_of :: < rc_client_subset_t > () - 8usize] ; ["Offset of field: rc_client_subset_t::id"] [:: core :: mem :: offset_of ! (rc_client_subset_t , id) - 0usize] ; ["Offset of field: rc_client_subset_t::title"] [:: core :: mem :: offset_of ! (rc_client_subset_t , title) - 8usize] ; ["Offset of field: rc_client_subset_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_subset_t , badge_name) - 16usize] ; ["Offset of field: rc_client_subset_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_client_subset_t , num_achievements) - 32usize] ; ["Offset of field: rc_client_subset_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_client_subset_t , num_leaderboards) - 36usize] ; } ; extern "C" { pub fn rc_client_get_subset_info (client : * mut rc_client_t , subset_id : u32) -> * const rc_client_subset_t ; } pub const RC_CLIENT_ACHIEVEMENT_STATE_INACTIVE : _bindgen_ty_17 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_ACTIVE : _bindgen_ty_17 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_UNLOCKED : _bindgen_ty_17 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_DISABLED : _bindgen_ty_17 = 3 ; pub const NUM_RC_CLIENT_ACHIEVEMENT_STATES : _bindgen_ty_17 = 4 ; # [doc = "\\\n| Achievements                                                                |\n\\"] pub type _bindgen_ty_17 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_NONE : _bindgen_ty_18 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_CORE : _bindgen_ty_18 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_UNOFFICIAL : _bindgen_ty_18 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_CORE_AND_UNOFFICIAL : _bindgen_ty_18 = 3 ; pub type _bindgen_ty_18 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_STANDARD : _bindgen_ty_19 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_MISSABLE : _bindgen_ty_19 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_PROGRESSION : _bindgen_ty_19 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_WIN : _bindgen_ty_19 = 3 ; pub type _bindgen_ty_19 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNKNOWN : _bindgen_ty_20 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_LOCKED : _bindgen_ty_20 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNLOCKED : _bindgen_ty_20 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNSUPPORTED : _bindgen_ty_20 = 3 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNOFFICIAL : _bindgen_ty_20 = 4 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_RECENTLY_UNLOCKED : _bindgen_ty_20 = 5 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_ACTIVE_CHALLENGE : _bindgen_ty_20 = 6 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_ALMOST_THERE : _bindgen_ty_20 = 7 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNSYNCED : _bindgen_ty_20 = 8 ; pub const NUM_RC_CLIENT_ACHIEVEMENT_BUCKETS : _bindgen_ty_20 = 9 ; pub type _bindgen_ty_20 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_NONE : _bindgen_ty_21 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_SOFTCORE : _bindgen_ty_21 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_HARDCORE : _bindgen_ty_21 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_BOTH : _bindgen_ty_21 = 3 ; pub type _bindgen_ty_21 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_t { pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub badge_name : [:: core :: ffi :: c_char ; 8usize] , pub measured_progress : [:: core :: ffi :: c_char ; 24usize] , pub measured_percent : f32 , pub id : u32 , pub points : u32 , pub unlock_time : time_t , pub state : u8 , pub category : u8 , pub bucket : u8 , pub unlocked : u8 , pub rarity : f32 , pub rarity_hardcore : f32 , pub type_ : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_t"] [:: core :: mem :: size_of :: < rc_client_achievement_t > () - 88usize] ; ["Alignment of rc_client_achievement_t"] [:: core :: mem :: align_of :: < rc_client_achievement_t > () - 8usize] ; ["Offset of field: rc_client_achievement_t::title"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , title) - 0usize] ; ["Offset of field: rc_client_achievement_t::description"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , description) - 8usize] ; ["Offset of field: rc_client_achievement_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , badge_name) - 16usize] ; ["Offset of field: rc_client_achievement_t::measured_progress"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , measured_progress) - 24usize] ; ["Offset of field: rc_client_achievement_t::measured_percent"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , measured_percent) - 48usize] ; ["Offset of field: rc_client_achievement_t::id"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , id) - 52usize] ; ["Offset of field: rc_client_achievement_t::points"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , points) - 56usize] ; ["Offset of field: rc_client_achievement_t::unlock_time"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , unlock_time) - 64usize] ; ["Offset of field: rc_client_achievement_t::state"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , state) - 72usize] ; ["Offset of field: rc_client_achievement_t::category"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , category) - 73usize] ; ["Offset of field: rc_client_achievement_t::bucket"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , bucket) - 74usize] ; ["Offset of field: rc_client_achievement_t::unlocked"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , unlocked) - 75usize] ; ["Offset of field: rc_client_achievement_t::rarity"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , rarity) - 76usize] ; ["Offset of field: rc_client_achievement_t::rarity_hardcore"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , rarity_hardcore) - 80usize] ; ["Offset of field: rc_client_achievement_t::type_"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , type_) - 84usize] ; } ; extern "C" { # [doc = " Get information about an achievement. Returns NULL if not found."] pub fn rc_client_get_achievement_info (client : * mut rc_client_t , id : u32) -> * const rc_client_achievement_t ; } extern "C" { # [doc = " Gets the URL for the achievement image.\n Returns RC_OK on success."] pub fn rc_client_achievement_get_image_url (achievement : * const rc_client_achievement_t , state : :: core :: ffi :: c_int , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_bucket_t { pub achievements : * mut * mut rc_client_achievement_t , pub num_achievements : u32 , pub label : * const :: core :: ffi :: c_char , pub subset_id : u32 , pub bucket_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_bucket_t"] [:: core :: mem :: size_of :: < rc_client_achievement_bucket_t > () - 32usize] ; ["Alignment of rc_client_achievement_bucket_t"] [:: core :: mem :: align_of :: < rc_client_achievement_bucket_t > () - 8usize] ; ["Offset of field: rc_client_achievement_bucket_t::achievements"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , achievements) - 0usize] ; ["Offset of field: rc_client_achievement_bucket_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , num_achievements) - 8usize] ; ["Offset of field: rc_client_achievement_bucket_t::label"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , label) - 16usize] ; ["Offset of field: rc_client_achievement_bucket_t::subset_id"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , subset_id) - 24usize] ; ["Offset of field: rc_client_achievement_bucket_t::bucket_type"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , bucket_type) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_list_t { pub buckets : * mut rc_client_achievement_bucket_t , pub num_buckets : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_list_t"] [:: core :: mem :: size_of :: < rc_client_achievement_list_t > () - 16usize] ; ["Alignment of rc_client_achievement_list_t"] [:: core :: mem :: align_of :: < rc_client_achievement_list_t > () - 8usize] ; ["Offset of field: rc_client_achievement_list_t::buckets"] [:: core :: mem :: offset_of ! (rc_client_achievement_list_t , buckets) - 0usize] ; ["Offset of field: rc_client_achievement_list_t::num_buckets"] [:: core :: mem :: offset_of ! (rc_client_achievement_list_t , num_buckets) - 8usize] ; } ; pub const RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_LOCK_STATE : _bindgen_ty_22 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_PROGRESS : _bindgen_ty_22 = 1 ; pub type _bindgen_ty_22 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Creates a list of achievements matching the specified category and grouping.\n Returns an allocated list that must be free'd by calling rc_client_destroy_achievement_list."] pub fn rc_client_create_achievement_list (client : * mut rc_client_t , category : :: core :: ffi :: c_int , grouping : :: core :: ffi :: c_int) -> * mut rc_client_achievement_list_t ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_get_achievement_list."] pub fn rc_client_destroy_achievement_list (list : * mut rc_client_achievement_list_t) ; } extern "C" { # [doc = " Returns non-zero if there are any achievements that can be queried through rc_client_create_achievement_list()."] pub fn rc_client_has_achievements (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } pub const RC_CLIENT_LEADERBOARD_STATE_INACTIVE : _bindgen_ty_23 = 0 ; pub const RC_CLIENT_LEADERBOARD_STATE_ACTIVE : _bindgen_ty_23 = 1 ; pub const RC_CLIENT_LEADERBOARD_STATE_TRACKING : _bindgen_ty_23 = 2 ; pub const RC_CLIENT_LEADERBOARD_STATE_DISABLED : _bindgen_ty_23 = 3 ; pub const NUM_RC_CLIENT_LEADERBOARD_STATES : _bindgen_ty_23 = 4 ; # [doc = "\\\n| Leaderboards                                                                |\n\\"] pub type _bindgen_ty_23 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_LEADERBOARD_FORMAT_TIME : _bindgen_ty_24 = 0 ; pub const RC_CLIENT_LEADERBOARD_FORMAT_SCORE : _bindgen_ty_24 = 1 ; pub const RC_CLIENT_LEADERBOARD_FORMAT_VALUE : _bindgen_ty_24 = 2 ; pub const NUM_RC_CLIENT_LEADERBOARD_FORMATS : _bindgen_ty_24 = 3 ; pub type _bindgen_ty_24 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_t { pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub tracker_value : * const :: core :: ffi :: c_char , pub id : u32 , pub state : u8 , pub format : u8 , pub lower_is_better : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_t > () - 32usize] ; ["Alignment of rc_client_leaderboard_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_t::title"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , title) - 0usize] ; ["Offset of field: rc_client_leaderboard_t::description"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , description) - 8usize] ; ["Offset of field: rc_client_leaderboard_t::tracker_value"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , tracker_value) - 16usize] ; ["Offset of field: rc_client_leaderboard_t::id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , id) - 24usize] ; ["Offset of field: rc_client_leaderboard_t::state"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , state) - 28usize] ; ["Offset of field: rc_client_leaderboard_t::format"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , format) - 29usize] ; ["Offset of field: rc_client_leaderboard_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , lower_is_better) - 30usize] ; } ; extern "C" { # [doc = " Get information about a leaderboard. Returns NULL if not found."] pub fn rc_client_get_leaderboard_info (client : * const rc_client_t , id : u32) -> * const rc_client_leaderboard_t ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_tracker_t { pub display : [:: core :: ffi :: c_char ; 24usize] , pub id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_tracker_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_tracker_t > () - 28usize] ; ["Alignment of rc_client_leaderboard_tracker_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_tracker_t > () - 4usize] ; ["Offset of field: rc_client_leaderboard_tracker_t::display"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_tracker_t , display) - 0usize] ; ["Offset of field: rc_client_leaderboard_tracker_t::id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_tracker_t , id) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_bucket_t { pub leaderboards : * mut * mut rc_client_leaderboard_t , pub num_leaderboards : u32 , pub label : * const :: core :: ffi :: c_char , pub subset_id : u32 , pub bucket_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_bucket_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_bucket_t > () - 32usize] ; ["Alignment of rc_client_leaderboard_bucket_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_bucket_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::leaderboards"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , leaderboards) - 0usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , num_leaderboards) - 8usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::label"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , label) - 16usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::subset_id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , subset_id) - 24usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::bucket_type"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , bucket_type) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_list_t { pub buckets : * mut rc_client_leaderboard_bucket_t , pub num_buckets : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_list_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_list_t > () - 16usize] ; ["Alignment of rc_client_leaderboard_list_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_list_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_list_t::buckets"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_list_t , buckets) - 0usize] ; ["Offset of field: rc_client_leaderboard_list_t::num_buckets"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_list_t , num_buckets) - 8usize] ; } ; pub const RC_CLIENT_LEADERBOARD_BUCKET_UNKNOWN : _bindgen_ty_25 = 0 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_INACTIVE : _bindgen_ty_25 = 1 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_ACTIVE : _bindgen_ty_25 = 2 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_UNSUPPORTED : _bindgen_ty_25 = 3 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_ALL : _bindgen_ty_25 = 4 ; pub const NUM_RC_CLIENT_LEADERBOARD_BUCKETS : _bindgen_ty_25 = 5 ; pub type _bindgen_ty_25 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_LEADERBOARD_LIST_GROUPING_NONE : _bindgen_ty_26 = 0 ; pub const RC_CLIENT_LEADERBOARD_LIST_GROUPING_TRACKING : _bindgen_ty_26 = 1 ; pub type _bindgen_ty_26 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Creates a list of leaderboards matching the specified grouping.\n Returns an allocated list that must be free'd by calling rc_client_destroy_leaderboard_list."] pub fn rc_client_create_leaderboard_list (client : * mut rc_client_t , grouping : :: core :: ffi :: c_int) -> * mut rc_client_leaderboard_list_t ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_get_leaderboard_list."] pub fn rc_client_destroy_leaderboard_list (list : * mut rc_client_leaderboard_list_t) ; } extern "C" { # [doc = " Returns non-zero if the current game has any leaderboards."] pub fn rc_client_has_leaderboards (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_entry_t { pub user : * const :: core :: ffi :: c_char , pub display : [:: core :: ffi :: c_char ; 24usize] , pub submitted : time_t , pub rank : u32 , pub index : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_entry_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_entry_t > () - 48usize] ; ["Alignment of rc_client_leaderboard_entry_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_entry_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_t::user"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , user) - 0usize] ; ["Offset of field: rc_client_leaderboard_entry_t::display"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , display) - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_t::submitted"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , submitted) - 32usize] ; ["Offset of field: rc_client_leaderboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , rank) - 40usize] ; ["Offset of field: rc_client_leaderboard_entry_t::index"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , index) - 44usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_entry_list_t { pub entries : * mut rc_client_leaderboard_entry_t , pub num_entries : u32 , pub total_entries : u32 , pub user_index : i32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_entry_list_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_entry_list_t > () - 24usize] ; ["Alignment of rc_client_leaderboard_entry_list_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_entry_list_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , entries) - 0usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::num_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , num_entries) - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::total_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , total_entries) - 12usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::user_index"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , user_index) - 16usize] ; } ; pub type rc_client_fetch_leaderboard_entries_callback_t = :: core :: option :: Option < unsafe extern "C" fn (result : :: core :: ffi :: c_int , error_message : * const :: core :: ffi :: c_char , list : * mut rc_client_leaderboard_entry_list_t , client : * mut rc_client_t , callback_userdata : * mut :: core :: ffi :: c_void) > ; extern "C" { # [doc = " Fetches a list of leaderboard entries from the server.\n Callback receives an allocated list that must be free'd by calling rc_client_destroy_leaderboard_entry_list."] pub fn rc_client_begin_fetch_leaderboard_entries (client : * mut rc_client_t , leaderboard_id : u32 , first_entry : u32 , count : u32 , callback : rc_client_fetch_leaderboard_entries_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Fetches a list of leaderboard entries from the server containing the logged-in user.\n Callback receives an allocated list that must be free'd by calling rc_client_destroy_leaderboard_entry_list."] pub fn rc_client_begin_fetch_leaderboard_entries_around_user (client : * mut rc_client_t , leaderboard_id : u32 , count : u32 , callback : rc_client_fetch_leaderboard_entries_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Gets the URL for the profile picture of the user associated to a leaderboard entry.\n Returns RC_OK on success."] pub fn rc_client_leaderboard_entry_get_user_image_url (entry : * const rc_client_leaderboard_entry_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_begin_fetch_leaderboard_entries or rc_client_begin_fetch_leaderboard_entries_around_user."] pub fn rc_client_destroy_leaderboard_entry_list (list : * mut rc_client_leaderboard_entry_list_t) ; } # [doc = " Used for scoreboard events. Contains the response from the server when a leaderboard entry is submitted.\n NOTE: This structure is only valid within the event callback. If you want to make use of the data outside\n of the callback, you should create copies of both the top entries and usernames within."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_scoreboard_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub score : [:: core :: ffi :: c_char ; 24usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_scoreboard_entry_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_scoreboard_entry_t > () - 40usize] ; ["Alignment of rc_client_leaderboard_scoreboard_entry_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_scoreboard_entry_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::username"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , username) - 0usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , rank) - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , score) - 12usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_scoreboard_t { pub leaderboard_id : u32 , pub submitted_score : [:: core :: ffi :: c_char ; 24usize] , pub best_score : [:: core :: ffi :: c_char ; 24usize] , pub new_rank : u32 , pub num_entries : u32 , pub top_entries : * mut rc_client_leaderboard_scoreboard_entry_t , pub num_top_entries : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_scoreboard_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_scoreboard_t > () - 80usize] ; ["Alignment of rc_client_leaderboard_scoreboard_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_scoreboard_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::submitted_score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , submitted_score) - 4usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::best_score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , best_score) - 28usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::new_rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , new_rank) - 52usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::num_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , num_entries) - 56usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::top_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , top_entries) - 64usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::num_top_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , num_top_entries) - 72usize] ; } ; extern "C" { # [doc = " Returns non-zero if the current game supports rich presence."] pub fn rc_client_has_rich_presence (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Gets the current rich presence message.\n Returns the number of characters written to buffer."] pub fn rc_client_get_rich_presence_message (client : * mut rc_client_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> usize ; } pub const RC_CLIENT_EVENT_TYPE_NONE : _bindgen_ty_27 = 0 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_TRIGGERED : _bindgen_ty_27 = 1 ; pub const RC_CLIENT_EVENT_LEADERBOARD_STARTED : _bindgen_ty_27 = 2 ; pub const RC_CLIENT_EVENT_LEADERBOARD_FAILED : _bindgen_ty_27 = 3 ; pub const RC_CLIENT_EVENT_LEADERBOARD_SUBMITTED : _bindgen_ty_27 = 4 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_CHALLENGE_INDICATOR_SHOW : _bindgen_ty_27 = 5 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_CHALLENGE_INDICATOR_HIDE : _bindgen_ty_27 = 6 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_SHOW : _bindgen_ty_27 = 7 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_HIDE : _bindgen_ty_27 = 8 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_UPDATE : _bindgen_ty_27 = 9 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_SHOW : _bindgen_ty_27 = 10 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_HIDE : _bindgen_ty_27 = 11 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_UPDATE : _bindgen_ty_27 = 12 ; pub const RC_CLIENT_EVENT_LEADERBOARD_SCOREBOARD : _bindgen_ty_27 = 13 ; pub const RC_CLIENT_EVENT_RESET : _bindgen_ty_27 = 14 ; pub const RC_CLIENT_EVENT_GAME_COMPLETED : _bindgen_ty_27 = 15 ; pub const RC_CLIENT_EVENT_SERVER_ERROR : _bindgen_ty_27 = 16 ; pub const RC_CLIENT_EVENT_DISCONNECTED : _bindgen_ty_27 = 17 ; pub const RC_CLIENT_EVENT_RECONNECTED : _bindgen_ty_27 = 18 ; # [doc = "\\\n| Processing                                                                  |\n\\"] pub type _bindgen_ty_27 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_server_error_t { pub error_message : * const :: core :: ffi :: c_char , pub api : * const :: core :: ffi :: c_char , pub result : :: core :: ffi :: c_int , pub related_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_server_error_t"] [:: core :: mem :: size_of :: < rc_client_server_error_t > () - 24usize] ; ["Alignment of rc_client_server_error_t"] [:: core :: mem :: align_of :: < rc_client_server_error_t > () - 8usize] ; ["Offset of field: rc_client_server_error_t::error_message"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , error_message) - 0usize] ; ["Offset of field: rc_client_server_error_t::api"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , api) - 8usize] ; ["Offset of field: rc_client_server_error_t::result"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , result) - 16usize] ; ["Offset of field: rc_client_server_error_t::related_id"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , related_id) - 20usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_event_t { pub type_ : u32 , pub achievement : * mut rc_client_achievement_t , pub leaderboard : * mut rc_client_leaderboard_t , pub leaderboard_tracker : * mut rc_client_leaderboard_tracker_t , pub leaderboard_scoreboard : * mut rc_client_leaderboard_scoreboard_t , pub server_error : * mut rc_client_server_error_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_event_t"] [:: core :: mem :: size_of :: < rc_client_event_t > () - 48usize] ; ["Alignment of rc_client_event_t"] [:: core :: mem :: align_of :: < rc_client_event_t > () - 8usize] ; ["Offset of field: rc_client_event_t::type_"] [:: core :: mem :: offset_of ! (rc_client_event_t , type_) - 0usize] ; ["Offset of field: rc_client_event_t::achievement"] [:: core :: mem :: offset_of ! (rc_client_event_t , achievement) - 8usize] ; ["Offset of field: rc_client_event_t::leaderboard"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard) - 16usize] ; ["Offset of field: rc_client_event_t::leaderboard_tracker"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard_tracker) - 24usize] ; ["Offset of field: rc_client_event_t::leaderboard_scoreboard"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard_scoreboard) - 32usize] ; ["Offset of field: rc_client_event_t::server_error"] [:: core :: mem :: offset_of ! (rc_client_event_t , server_error) - 40usize] ; } ; # [doc = " Callback used to notify the client when certain events occur."] pub type rc_client_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (event : * const rc_client_event_t , client : * mut rc_client_t) > ; extern "C" { # [doc = " Provides a callback for event handling."] pub fn rc_client_set_event_handler (client : * mut rc_client_t , handler : rc_client_event_handler_t) ; } extern "C" { # [doc = " Provides a callback for reading memory."] pub fn rc_client_set_read_memory_function (client : * mut rc_client_t , handler : rc_client_read_memory_func_t) ; } extern "C" { # [doc = " Determines if there are any active achievements/leaderboards/rich presence that need processing."] pub fn rc_client_is_processing_required (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Processes achievements for the current frame."] pub fn rc_client_do_frame (client : * mut rc_client_t) ; } extern "C" { # [doc = " Processes the periodic queue.\n Called internally by rc_client_do_frame.\n Should be explicitly called if rc_client_do_frame is not being called because emulation is paused."] pub fn rc_client_idle (client : * mut rc_client_t) ; } extern "C" { # [doc = " Determines if a sufficient amount of frames have been processed since the last call to rc_client_can_pause.\n Should not be called unless the client is trying to pause.\n If false is returned, and frames_remaining is not NULL, frames_remaining will be set to the number of frames\n still required before pause is allowed, which can be converted to a time in seconds for displaying to the user."] pub fn rc_client_can_pause (client : * mut rc_client_t , frames_remaining : * mut u32) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Informs the runtime that the emulator has been reset. Will reset all achievements and leaderboards\n to their initial state (includes hiding indicators/trackers)."] pub fn rc_client_reset (client : * mut rc_client_t) ; } extern "C" { # [doc = " Gets the number of bytes needed to serialized the runtime state."] pub fn rc_client_progress_size (client : * mut rc_client_t) -> usize ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator.\n [deprecated] use rc_client_serialize_progress_sized instead"] pub fn rc_client_serialize_progress (client : * mut rc_client_t , buffer : * mut u8) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator."] pub fn rc_client_serialize_progress_sized (client : * mut rc_client_t , buffer : * mut u8 , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Deserializes the runtime state from a buffer.\n Returns RC_OK on success, or an error indicator.\n [deprecated] use rc_client_deserialize_progress_sized instead"] pub fn rc_client_deserialize_progress (client : * mut rc_client_t , serialized : * const u8) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator."] pub fn rc_client_deserialize_progress_sized (client : * mut rc_client_t , serialized : * const u8 , serialized_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __locale_data { pub _address : u8 , } pub type __builtin_va_list = [__va_list_tag ; 1usize] ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __va_list_tag { pub gp_offset : :: core :: ffi :: c_uint , pub fp_offset : :: core :: ffi :: c_uint , pub overflow_arg_area : * mut :: core :: ffi :: c_void , pub reg_save_area : * mut :: core :: ffi :: c_void , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __va_list_tag"] [:: core :: mem :: size_of :: < __va_list_tag > () - 24usize] ; ["Alignment of __va_list_tag"] [:: core :: mem :: align_of :: < __va_list_tag > () - 8usize] ; ["Offset of field: __va_list_tag::gp_offset"] [:: core :: mem :: offset_of ! (__va_list_tag , gp_offset) - 0usize] ; ["Offset of field: __va_list_tag::fp_offset"] [:: core :: mem :: offset_of ! (__va_list_tag , fp_offset) - 4usize] ; ["Offset of field: __va_list_tag::overflow_arg_area"] [:: core :: mem :: offset_of ! (__va_list_tag , overflow_arg_area) - 8usize] ; ["Offset of field: __va_list_tag::reg_save_area"] [:: core :: mem :: offset_of ! (__va_list_tag , reg_save_area) - 16usize] ; } ;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]  --> /opt/rustwide/target/debug/build/rcheevos-sys/badd2487a33295ab/out/bindings.rs:3:124851
[INFO] [stdout]   |
[INFO] [stdout] 3 | ...usize , 24u8 , { let _flags2 : u32 = unsafe { :: core :: mem :: transmute (_flags2) } ; _flags2 as u64 }) ; __bindgen_bitfield_uni...
[INFO] [stdout]   |                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: replace this with
[INFO] [stdout]   |
[INFO] [stdout] 3 - # [repr (C)] # [derive (Copy , Clone , Debug , Default , Eq , Hash , Ord , PartialEq , PartialOrd)] pub struct __BindgenBitfieldUnit < Storage > { storage : Storage , } impl < Storage > __BindgenBitfieldUnit < Storage > { # [inline] pub const fn new (storage : Storage) -> Self { Self { storage } } } impl < Storage > __BindgenBitfieldUnit < Storage > where Storage : AsRef < [u8] > + AsMut < [u8] >, { # [inline] pub fn get_bit (& self , index : usize) -> bool { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = self . storage . as_ref () [byte_index] ; let bit_index = if cfg ! (target_endian = "big") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; byte & mask == mask } # [inline] pub fn set_bit (& mut self , index : usize , val : bool) { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = & mut self . storage . as_mut () [byte_index] ; let bit_index = if cfg ! (target_endian = "big") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; if val { * byte |= mask ; } else { * byte &= ! mask ; } } # [inline] pub fn get (& self , bit_offset : usize , bit_width : u8) -> u64 { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; let mut val = 0 ; for i in 0 .. (bit_width as usize) { if self . get_bit (i + bit_offset) { let index = if cfg ! (target_endian = "big") { bit_width as usize - 1 - i } else { i } ; val |= 1 << index ; } } val } # [inline] pub fn set (& mut self , bit_offset : usize , bit_width : u8 , val : u64) { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; for i in 0 .. (bit_width as usize) { let mask = 1 << i ; let val_bit_is_set = val & mask == mask ; let index = if cfg ! (target_endian = "big") { bit_width as usize - 1 - i } else { i } ; self . set_bit (index + bit_offset , val_bit_is_set) ; } } } # [derive (PartialEq , Copy , Clone , Hash , Debug , Default)] # [repr (C)] pub struct __BindgenComplex < T > { pub re : T , pub im : T } pub const _STDINT_H : u32 = 1 ; pub const _FEATURES_H : u32 = 1 ; pub const _DEFAULT_SOURCE : u32 = 1 ; pub const __GLIBC_USE_ISOC2Y : u32 = 0 ; pub const __GLIBC_USE_ISOC23 : u32 = 0 ; pub const __USE_ISOC11 : u32 = 1 ; pub const __USE_ISOC99 : u32 = 1 ; pub const __USE_ISOC95 : u32 = 1 ; pub const __USE_POSIX_IMPLICITLY : u32 = 1 ; pub const _POSIX_SOURCE : u32 = 1 ; pub const _POSIX_C_SOURCE : u32 = 202405 ; pub const __USE_POSIX : u32 = 1 ; pub const __USE_POSIX2 : u32 = 1 ; pub const __USE_POSIX199309 : u32 = 1 ; pub const __USE_POSIX199506 : u32 = 1 ; pub const __USE_XOPEN2K : u32 = 1 ; pub const __USE_XOPEN2K8 : u32 = 1 ; pub const _ATFILE_SOURCE : u32 = 1 ; pub const __USE_XOPEN2K24 : u32 = 1 ; pub const __WORDSIZE : u32 = 64 ; pub const __WORDSIZE_TIME64_COMPAT32 : u32 = 1 ; pub const __SYSCALL_WORDSIZE : u32 = 64 ; pub const __TIMESIZE : u32 = 64 ; pub const __USE_TIME_BITS64 : u32 = 1 ; pub const __USE_MISC : u32 = 1 ; 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_C23_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 ; pub const __STDC_IEC_559_COMPLEX__ : u32 = 1 ; 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 = 43 ; pub const _SYS_CDEFS_H : u32 = 1 ; pub const __glibc_c99_flexarr_available : u32 = 1 ; pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI : u32 = 0 ; pub const __HAVE_GENERIC_SELECTION : u32 = 1 ; pub const __GLIBC_USE_LIB_EXT2 : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT_C23 : u32 = 0 ; 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_C23 : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_TYPES_EXT : u32 = 0 ; pub const _BITS_TYPES_H : u32 = 1 ; pub const _BITS_TYPESIZES_H : u32 = 1 ; pub const __OFF_T_MATCHES_OFF64_T : u32 = 1 ; pub const __INO_T_MATCHES_INO64_T : u32 = 1 ; pub const __RLIM_T_MATCHES_RLIM64_T : u32 = 1 ; pub const __STATFS_MATCHES_STATFS64 : u32 = 1 ; pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 : u32 = 1 ; pub const __FD_SETSIZE : u32 = 1024 ; pub const _BITS_TIME64_H : u32 = 1 ; pub const _BITS_WCHAR_H : u32 = 1 ; pub const _BITS_STDINT_INTN_H : u32 = 1 ; pub const _BITS_STDINT_UINTN_H : u32 = 1 ; pub const _BITS_STDINT_LEAST_H : u32 = 1 ; pub const INT8_MIN : i32 = - 128 ; pub const INT16_MIN : i32 = - 32768 ; pub const INT32_MIN : i32 = - 2147483648 ; pub const INT8_MAX : u32 = 127 ; pub const INT16_MAX : u32 = 32767 ; pub const INT32_MAX : u32 = 2147483647 ; pub const UINT8_MAX : u32 = 255 ; pub const UINT16_MAX : u32 = 65535 ; pub const UINT32_MAX : u32 = 4294967295 ; pub const INT_LEAST8_MIN : i32 = - 128 ; pub const INT_LEAST16_MIN : i32 = - 32768 ; pub const INT_LEAST32_MIN : i32 = - 2147483648 ; pub const INT_LEAST8_MAX : u32 = 127 ; pub const INT_LEAST16_MAX : u32 = 32767 ; pub const INT_LEAST32_MAX : u32 = 2147483647 ; pub const UINT_LEAST8_MAX : u32 = 255 ; pub const UINT_LEAST16_MAX : u32 = 65535 ; pub const UINT_LEAST32_MAX : u32 = 4294967295 ; pub const INT_FAST8_MIN : i32 = - 128 ; pub const INT_FAST16_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST32_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST8_MAX : u32 = 127 ; pub const INT_FAST16_MAX : u64 = 9223372036854775807 ; pub const INT_FAST32_MAX : u64 = 9223372036854775807 ; pub const UINT_FAST8_MAX : u32 = 255 ; pub const UINT_FAST16_MAX : i32 = - 1 ; pub const UINT_FAST32_MAX : i32 = - 1 ; pub const INTPTR_MIN : i64 = - 9223372036854775808 ; pub const INTPTR_MAX : u64 = 9223372036854775807 ; pub const UINTPTR_MAX : i32 = - 1 ; pub const PTRDIFF_MIN : i64 = - 9223372036854775808 ; pub const PTRDIFF_MAX : u64 = 9223372036854775807 ; pub const SIG_ATOMIC_MIN : i32 = - 2147483648 ; pub const SIG_ATOMIC_MAX : u32 = 2147483647 ; pub const SIZE_MAX : i32 = - 1 ; pub const WINT_MIN : u32 = 0 ; pub const WINT_MAX : u32 = 4294967295 ; pub const RC_VALUE_MAX_NAME_LENGTH : u32 = 15 ; pub const _TIME_H : u32 = 1 ; pub const _BITS_TIME_H : u32 = 1 ; pub const CLOCK_REALTIME : u32 = 0 ; pub const CLOCK_MONOTONIC : u32 = 1 ; pub const CLOCK_PROCESS_CPUTIME_ID : u32 = 2 ; pub const CLOCK_THREAD_CPUTIME_ID : u32 = 3 ; pub const CLOCK_MONOTONIC_RAW : u32 = 4 ; pub const CLOCK_REALTIME_COARSE : u32 = 5 ; pub const CLOCK_MONOTONIC_COARSE : u32 = 6 ; pub const CLOCK_BOOTTIME : u32 = 7 ; pub const CLOCK_REALTIME_ALARM : u32 = 8 ; pub const CLOCK_BOOTTIME_ALARM : u32 = 9 ; pub const CLOCK_TAI : u32 = 11 ; pub const TIMER_ABSTIME : u32 = 1 ; pub const __clock_t_defined : u32 = 1 ; pub const __time_t_defined : u32 = 1 ; pub const __struct_tm_defined : u32 = 1 ; pub const _STRUCT_TIMESPEC : u32 = 1 ; pub const _BITS_ENDIAN_H : u32 = 1 ; pub const __LITTLE_ENDIAN : u32 = 1234 ; pub const __BIG_ENDIAN : u32 = 4321 ; pub const __PDP_ENDIAN : u32 = 3412 ; pub const _BITS_ENDIANNESS_H : u32 = 1 ; pub const __BYTE_ORDER : u32 = 1234 ; pub const __FLOAT_WORD_ORDER : u32 = 1234 ; pub const __clockid_t_defined : u32 = 1 ; pub const __timer_t_defined : u32 = 1 ; pub const __itimerspec_defined : u32 = 1 ; pub const _BITS_TYPES_LOCALE_T_H : u32 = 1 ; pub const _BITS_TYPES___LOCALE_T_H : u32 = 1 ; pub const TIME_UTC : u32 = 1 ; pub const _STDIO_H : u32 = 1 ; pub const _____fpos_t_defined : u32 = 1 ; pub const ____mbstate_t_defined : u32 = 1 ; pub const _____fpos64_t_defined : u32 = 1 ; pub const ____FILE_defined : u32 = 1 ; pub const __FILE_defined : u32 = 1 ; 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 ; pub const BUFSIZ : u32 = 8192 ; pub const EOF : i32 = - 1 ; 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 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 ; pub const __HAVE_FLOAT128 : u32 = 1 ; pub const __HAVE_DISTINCT_FLOAT128 : u32 = 1 ; pub const __HAVE_FLOAT64X : u32 = 1 ; pub const __HAVE_FLOAT64X_LONG_DOUBLE : u32 = 1 ; pub const __HAVE_FLOAT16 : u32 = 0 ; pub const __HAVE_FLOAT32 : u32 = 1 ; pub const __HAVE_FLOAT64 : u32 = 1 ; pub const __HAVE_FLOAT32X : u32 = 1 ; pub const __HAVE_FLOAT128X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT16 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT32 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT64 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT32X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT64X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT128X : u32 = 0 ; pub const __HAVE_FLOATN_NOT_TYPEDEF : u32 = 0 ; pub const RC_IMAGE_TYPE_GAME : u32 = 1 ; pub const RC_IMAGE_TYPE_ACHIEVEMENT : u32 = 2 ; pub const RC_IMAGE_TYPE_ACHIEVEMENT_LOCKED : u32 = 3 ; pub const RC_IMAGE_TYPE_USER : u32 = 4 ; pub const RC_ACHIEVEMENT_CATEGORY_CORE : u32 = 3 ; pub const RC_ACHIEVEMENT_CATEGORY_UNOFFICIAL : u32 = 5 ; pub const RC_ACHIEVEMENT_TYPE_STANDARD : u32 = 0 ; pub const RC_ACHIEVEMENT_TYPE_MISSABLE : u32 = 1 ; pub const RC_ACHIEVEMENT_TYPE_PROGRESSION : u32 = 2 ; pub const RC_ACHIEVEMENT_TYPE_WIN : u32 = 3 ; pub const RC_CLIENT_LEADERBOARD_DISPLAY_SIZE : u32 = 24 ; pub const RC_OK : _bindgen_ty_1 = 0 ; pub const RC_INVALID_LUA_OPERAND : _bindgen_ty_1 = - 1 ; pub const RC_INVALID_MEMORY_OPERAND : _bindgen_ty_1 = - 2 ; pub const RC_INVALID_CONST_OPERAND : _bindgen_ty_1 = - 3 ; pub const RC_INVALID_FP_OPERAND : _bindgen_ty_1 = - 4 ; pub const RC_INVALID_CONDITION_TYPE : _bindgen_ty_1 = - 5 ; pub const RC_INVALID_OPERATOR : _bindgen_ty_1 = - 6 ; pub const RC_INVALID_REQUIRED_HITS : _bindgen_ty_1 = - 7 ; pub const RC_DUPLICATED_START : _bindgen_ty_1 = - 8 ; pub const RC_DUPLICATED_CANCEL : _bindgen_ty_1 = - 9 ; pub const RC_DUPLICATED_SUBMIT : _bindgen_ty_1 = - 10 ; pub const RC_DUPLICATED_VALUE : _bindgen_ty_1 = - 11 ; pub const RC_DUPLICATED_PROGRESS : _bindgen_ty_1 = - 12 ; pub const RC_MISSING_START : _bindgen_ty_1 = - 13 ; pub const RC_MISSING_CANCEL : _bindgen_ty_1 = - 14 ; pub const RC_MISSING_SUBMIT : _bindgen_ty_1 = - 15 ; pub const RC_MISSING_VALUE : _bindgen_ty_1 = - 16 ; pub const RC_INVALID_LBOARD_FIELD : _bindgen_ty_1 = - 17 ; pub const RC_MISSING_DISPLAY_STRING : _bindgen_ty_1 = - 18 ; pub const RC_OUT_OF_MEMORY : _bindgen_ty_1 = - 19 ; pub const RC_INVALID_VALUE_FLAG : _bindgen_ty_1 = - 20 ; pub const RC_MISSING_VALUE_MEASURED : _bindgen_ty_1 = - 21 ; pub const RC_MULTIPLE_MEASURED : _bindgen_ty_1 = - 22 ; pub const RC_INVALID_MEASURED_TARGET : _bindgen_ty_1 = - 23 ; pub const RC_INVALID_COMPARISON : _bindgen_ty_1 = - 24 ; pub const RC_INVALID_STATE : _bindgen_ty_1 = - 25 ; pub const RC_INVALID_JSON : _bindgen_ty_1 = - 26 ; pub const RC_API_FAILURE : _bindgen_ty_1 = - 27 ; pub const RC_LOGIN_REQUIRED : _bindgen_ty_1 = - 28 ; pub const RC_NO_GAME_LOADED : _bindgen_ty_1 = - 29 ; pub const RC_HARDCORE_DISABLED : _bindgen_ty_1 = - 30 ; pub const RC_ABORTED : _bindgen_ty_1 = - 31 ; pub const RC_NO_RESPONSE : _bindgen_ty_1 = - 32 ; pub const RC_ACCESS_DENIED : _bindgen_ty_1 = - 33 ; pub const RC_INVALID_CREDENTIALS : _bindgen_ty_1 = - 34 ; pub const RC_EXPIRED_TOKEN : _bindgen_ty_1 = - 35 ; pub const RC_INSUFFICIENT_BUFFER : _bindgen_ty_1 = - 36 ; pub const RC_INVALID_VARIABLE_NAME : _bindgen_ty_1 = - 37 ; pub const RC_UNKNOWN_VARIABLE_NAME : _bindgen_ty_1 = - 38 ; # [doc = "\\\n| Return values                                                               |\n\\"] pub type _bindgen_ty_1 = :: core :: ffi :: c_int ; extern "C" { pub fn rc_error_str (ret : :: core :: ffi :: c_int) -> * const :: core :: ffi :: c_char ; } pub type wchar_t = :: core :: ffi :: c_int ; # [repr (C)] # [repr (align (16))] # [derive (Debug , Copy , Clone)] pub struct max_align_t { pub __clang_max_align_nonce1 : :: core :: ffi :: c_longlong , pub __bindgen_padding_0 : u64 , pub __clang_max_align_nonce2 : u128 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of max_align_t"] [:: core :: mem :: size_of :: < max_align_t > () - 32usize] ; ["Alignment of max_align_t"] [:: core :: mem :: align_of :: < max_align_t > () - 16usize] ; ["Offset of field: max_align_t::__clang_max_align_nonce1"] [:: core :: mem :: offset_of ! (max_align_t , __clang_max_align_nonce1) - 0usize] ; ["Offset of field: max_align_t::__clang_max_align_nonce2"] [:: core :: mem :: offset_of ! (max_align_t , __clang_max_align_nonce2) - 16usize] ; } ; pub type __u_char = :: core :: ffi :: c_uchar ; pub type __u_short = :: core :: ffi :: c_ushort ; pub type __u_int = :: core :: ffi :: c_uint ; pub type __u_long = :: core :: ffi :: c_ulong ; pub type __int8_t = :: core :: ffi :: c_schar ; pub type __uint8_t = :: core :: ffi :: c_uchar ; pub type __int16_t = :: core :: ffi :: c_short ; pub type __uint16_t = :: core :: ffi :: c_ushort ; pub type __int32_t = :: core :: ffi :: c_int ; pub type __uint32_t = :: core :: ffi :: c_uint ; pub type __int64_t = :: core :: ffi :: c_long ; pub type __uint64_t = :: core :: ffi :: c_ulong ; pub type __int_least8_t = __int8_t ; pub type __uint_least8_t = __uint8_t ; pub type __int_least16_t = __int16_t ; pub type __uint_least16_t = __uint16_t ; pub type __int_least32_t = __int32_t ; pub type __uint_least32_t = __uint32_t ; pub type __int_least64_t = __int64_t ; pub type __uint_least64_t = __uint64_t ; pub type __quad_t = :: core :: ffi :: c_long ; pub type __u_quad_t = :: core :: ffi :: c_ulong ; pub type __intmax_t = :: core :: ffi :: c_long ; pub type __uintmax_t = :: core :: ffi :: c_ulong ; pub type __dev_t = :: core :: ffi :: c_ulong ; pub type __uid_t = :: core :: ffi :: c_uint ; pub type __gid_t = :: core :: ffi :: c_uint ; pub type __ino_t = :: core :: ffi :: c_ulong ; pub type __ino64_t = :: core :: ffi :: c_ulong ; pub type __mode_t = :: core :: ffi :: c_uint ; pub type __nlink_t = :: core :: ffi :: c_ulong ; pub type __off_t = :: core :: ffi :: c_long ; pub type __off64_t = :: core :: ffi :: c_long ; pub type __pid_t = :: core :: ffi :: c_int ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __fsid_t { pub __val : [:: core :: ffi :: c_int ; 2usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __fsid_t"] [:: core :: mem :: size_of :: < __fsid_t > () - 8usize] ; ["Alignment of __fsid_t"] [:: core :: mem :: align_of :: < __fsid_t > () - 4usize] ; ["Offset of field: __fsid_t::__val"] [:: core :: mem :: offset_of ! (__fsid_t , __val) - 0usize] ; } ; pub type __clock_t = :: core :: ffi :: c_long ; pub type __rlim_t = :: core :: ffi :: c_ulong ; pub type __rlim64_t = :: core :: ffi :: c_ulong ; pub type __id_t = :: core :: ffi :: c_uint ; pub type __time_t = :: core :: ffi :: c_long ; pub type __useconds_t = :: core :: ffi :: c_uint ; pub type __suseconds_t = :: core :: ffi :: c_long ; pub type __suseconds64_t = :: core :: ffi :: c_long ; pub type __daddr_t = :: core :: ffi :: c_int ; pub type __key_t = :: core :: ffi :: c_int ; pub type __clockid_t = :: core :: ffi :: c_int ; pub type __timer_t = * mut :: core :: ffi :: c_void ; pub type __blksize_t = :: core :: ffi :: c_long ; pub type __blkcnt_t = :: core :: ffi :: c_long ; pub type __blkcnt64_t = :: core :: ffi :: c_long ; pub type __fsblkcnt_t = :: core :: ffi :: c_ulong ; pub type __fsblkcnt64_t = :: core :: ffi :: c_ulong ; pub type __fsfilcnt_t = :: core :: ffi :: c_ulong ; pub type __fsfilcnt64_t = :: core :: ffi :: c_ulong ; pub type __fsword_t = :: core :: ffi :: c_long ; pub type __ssize_t = :: core :: ffi :: c_long ; pub type __syscall_slong_t = :: core :: ffi :: c_long ; pub type __syscall_ulong_t = :: core :: ffi :: c_ulong ; pub type __loff_t = __off64_t ; pub type __caddr_t = * mut :: core :: ffi :: c_char ; pub type __intptr_t = :: core :: ffi :: c_long ; pub type __socklen_t = :: core :: ffi :: c_uint ; pub type __sig_atomic_t = :: core :: ffi :: c_int ; pub type int_least8_t = __int_least8_t ; pub type int_least16_t = __int_least16_t ; pub type int_least32_t = __int_least32_t ; pub type int_least64_t = __int_least64_t ; pub type uint_least8_t = __uint_least8_t ; pub type uint_least16_t = __uint_least16_t ; pub type uint_least32_t = __uint_least32_t ; pub type uint_least64_t = __uint_least64_t ; pub type int_fast8_t = :: core :: ffi :: c_schar ; pub type int_fast16_t = :: core :: ffi :: c_long ; pub type int_fast32_t = :: core :: ffi :: c_long ; pub type int_fast64_t = :: core :: ffi :: c_long ; pub type uint_fast8_t = :: core :: ffi :: c_uchar ; pub type uint_fast16_t = :: core :: ffi :: c_ulong ; pub type uint_fast32_t = :: core :: ffi :: c_ulong ; pub type uint_fast64_t = :: core :: ffi :: c_ulong ; pub type intmax_t = __intmax_t ; pub type uintmax_t = __uintmax_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct lua_State { _unused : [u8 ; 0] , } # [doc = " Callback used to read num_bytes bytes from memory starting at address. If\n num_bytes is greater than 1, the value is read in little-endian from\n memory."] pub type rc_peek_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , num_bytes : u32 , ud : * mut :: core :: ffi :: c_void) -> u32 > ; pub const RC_MEMSIZE_8_BITS : _bindgen_ty_2 = 0 ; pub const RC_MEMSIZE_16_BITS : _bindgen_ty_2 = 1 ; pub const RC_MEMSIZE_24_BITS : _bindgen_ty_2 = 2 ; pub const RC_MEMSIZE_32_BITS : _bindgen_ty_2 = 3 ; pub const RC_MEMSIZE_LOW : _bindgen_ty_2 = 4 ; pub const RC_MEMSIZE_HIGH : _bindgen_ty_2 = 5 ; pub const RC_MEMSIZE_BIT_0 : _bindgen_ty_2 = 6 ; pub const RC_MEMSIZE_BIT_1 : _bindgen_ty_2 = 7 ; pub const RC_MEMSIZE_BIT_2 : _bindgen_ty_2 = 8 ; pub const RC_MEMSIZE_BIT_3 : _bindgen_ty_2 = 9 ; pub const RC_MEMSIZE_BIT_4 : _bindgen_ty_2 = 10 ; pub const RC_MEMSIZE_BIT_5 : _bindgen_ty_2 = 11 ; pub const RC_MEMSIZE_BIT_6 : _bindgen_ty_2 = 12 ; pub const RC_MEMSIZE_BIT_7 : _bindgen_ty_2 = 13 ; pub const RC_MEMSIZE_BITCOUNT : _bindgen_ty_2 = 14 ; pub const RC_MEMSIZE_16_BITS_BE : _bindgen_ty_2 = 15 ; pub const RC_MEMSIZE_24_BITS_BE : _bindgen_ty_2 = 16 ; pub const RC_MEMSIZE_32_BITS_BE : _bindgen_ty_2 = 17 ; pub const RC_MEMSIZE_FLOAT : _bindgen_ty_2 = 18 ; pub const RC_MEMSIZE_MBF32 : _bindgen_ty_2 = 19 ; pub const RC_MEMSIZE_MBF32_LE : _bindgen_ty_2 = 20 ; pub const RC_MEMSIZE_FLOAT_BE : _bindgen_ty_2 = 21 ; pub const RC_MEMSIZE_DOUBLE32 : _bindgen_ty_2 = 22 ; pub const RC_MEMSIZE_DOUBLE32_BE : _bindgen_ty_2 = 23 ; pub const RC_MEMSIZE_VARIABLE : _bindgen_ty_2 = 24 ; # [doc = "\\\n| Memory References                                                           |\n\\"] pub type _bindgen_ty_2 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memref_value_t { pub value : u32 , pub prior : u32 , pub size : u8 , pub changed : u8 , pub type_ : u8 , pub is_indirect : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memref_value_t"] [:: core :: mem :: size_of :: < rc_memref_value_t > () - 12usize] ; ["Alignment of rc_memref_value_t"] [:: core :: mem :: align_of :: < rc_memref_value_t > () - 4usize] ; ["Offset of field: rc_memref_value_t::value"] [:: core :: mem :: offset_of ! (rc_memref_value_t , value) - 0usize] ; ["Offset of field: rc_memref_value_t::prior"] [:: core :: mem :: offset_of ! (rc_memref_value_t , prior) - 4usize] ; ["Offset of field: rc_memref_value_t::size"] [:: core :: mem :: offset_of ! (rc_memref_value_t , size) - 8usize] ; ["Offset of field: rc_memref_value_t::changed"] [:: core :: mem :: offset_of ! (rc_memref_value_t , changed) - 9usize] ; ["Offset of field: rc_memref_value_t::type_"] [:: core :: mem :: offset_of ! (rc_memref_value_t , type_) - 10usize] ; ["Offset of field: rc_memref_value_t::is_indirect"] [:: core :: mem :: offset_of ! (rc_memref_value_t , is_indirect) - 11usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memref_t { pub value : rc_memref_value_t , pub address : u32 , pub next : * mut rc_memref_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memref_t"] [:: core :: mem :: size_of :: < rc_memref_t > () - 24usize] ; ["Alignment of rc_memref_t"] [:: core :: mem :: align_of :: < rc_memref_t > () - 8usize] ; ["Offset of field: rc_memref_t::value"] [:: core :: mem :: offset_of ! (rc_memref_t , value) - 0usize] ; ["Offset of field: rc_memref_t::address"] [:: core :: mem :: offset_of ! (rc_memref_t , address) - 12usize] ; ["Offset of field: rc_memref_t::next"] [:: core :: mem :: offset_of ! (rc_memref_t , next) - 16usize] ; } ; pub const RC_OPERAND_ADDRESS : _bindgen_ty_3 = 0 ; pub const RC_OPERAND_DELTA : _bindgen_ty_3 = 1 ; pub const RC_OPERAND_CONST : _bindgen_ty_3 = 2 ; pub const RC_OPERAND_FP : _bindgen_ty_3 = 3 ; pub const RC_OPERAND_LUA : _bindgen_ty_3 = 4 ; pub const RC_OPERAND_PRIOR : _bindgen_ty_3 = 5 ; pub const RC_OPERAND_BCD : _bindgen_ty_3 = 6 ; pub const RC_OPERAND_INVERTED : _bindgen_ty_3 = 7 ; pub const RC_OPERAND_RECALL : _bindgen_ty_3 = 8 ; # [doc = "\\\n| Operands                                                                    |\n\\"] pub type _bindgen_ty_3 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Copy , Clone)] pub struct rc_operand_t { pub value : rc_operand_t__bindgen_ty_1 , pub type_ : u8 , pub size : u8 , } # [repr (C)] # [derive (Copy , Clone)] pub union rc_operand_t__bindgen_ty_1 { pub memref : * mut rc_memref_t , pub num : u32 , pub dbl : f64 , pub luafunc : :: core :: ffi :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_operand_t__bindgen_ty_1"] [:: core :: mem :: size_of :: < rc_operand_t__bindgen_ty_1 > () - 8usize] ; ["Alignment of rc_operand_t__bindgen_ty_1"] [:: core :: mem :: align_of :: < rc_operand_t__bindgen_ty_1 > () - 8usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::memref"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , memref) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::num"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , num) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::dbl"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , dbl) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::luafunc"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , luafunc) - 0usize] ; } ; impl :: core :: fmt :: Debug for rc_operand_t__bindgen_ty_1 { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_operand_t__bindgen_ty_1 {{ union }}") } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_operand_t"] [:: core :: mem :: size_of :: < rc_operand_t > () - 16usize] ; ["Alignment of rc_operand_t"] [:: core :: mem :: align_of :: < rc_operand_t > () - 8usize] ; ["Offset of field: rc_operand_t::value"] [:: core :: mem :: offset_of ! (rc_operand_t , value) - 0usize] ; ["Offset of field: rc_operand_t::type_"] [:: core :: mem :: offset_of ! (rc_operand_t , type_) - 8usize] ; ["Offset of field: rc_operand_t::size"] [:: core :: mem :: offset_of ! (rc_operand_t , size) - 9usize] ; } ; impl :: core :: fmt :: Debug for rc_operand_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_operand_t {{ value: {:?}, type: {:?}, size: {:?} }}" , self . value , self . type_ , self . size) } } extern "C" { pub fn rc_operand_is_memref (operand : * const rc_operand_t) -> :: core :: ffi :: c_int ; } pub const RC_CONDITION_STANDARD : _bindgen_ty_4 = 0 ; pub const RC_CONDITION_PAUSE_IF : _bindgen_ty_4 = 1 ; pub const RC_CONDITION_RESET_IF : _bindgen_ty_4 = 2 ; pub const RC_CONDITION_MEASURED_IF : _bindgen_ty_4 = 3 ; pub const RC_CONDITION_TRIGGER : _bindgen_ty_4 = 4 ; pub const RC_CONDITION_MEASURED : _bindgen_ty_4 = 5 ; pub const RC_CONDITION_ADD_SOURCE : _bindgen_ty_4 = 6 ; pub const RC_CONDITION_SUB_SOURCE : _bindgen_ty_4 = 7 ; pub const RC_CONDITION_ADD_ADDRESS : _bindgen_ty_4 = 8 ; pub const RC_CONDITION_REMEMBER : _bindgen_ty_4 = 9 ; pub const RC_CONDITION_ADD_HITS : _bindgen_ty_4 = 10 ; pub const RC_CONDITION_SUB_HITS : _bindgen_ty_4 = 11 ; pub const RC_CONDITION_RESET_NEXT_IF : _bindgen_ty_4 = 12 ; pub const RC_CONDITION_AND_NEXT : _bindgen_ty_4 = 13 ; pub const RC_CONDITION_OR_NEXT : _bindgen_ty_4 = 14 ; # [doc = "\\\n| Conditions                                                                  |\n\\"] pub type _bindgen_ty_4 = :: core :: ffi :: c_uint ; pub const RC_OPERATOR_EQ : _bindgen_ty_5 = 0 ; pub const RC_OPERATOR_LT : _bindgen_ty_5 = 1 ; pub const RC_OPERATOR_LE : _bindgen_ty_5 = 2 ; pub const RC_OPERATOR_GT : _bindgen_ty_5 = 3 ; pub const RC_OPERATOR_GE : _bindgen_ty_5 = 4 ; pub const RC_OPERATOR_NE : _bindgen_ty_5 = 5 ; pub const RC_OPERATOR_NONE : _bindgen_ty_5 = 6 ; pub const RC_OPERATOR_MULT : _bindgen_ty_5 = 7 ; pub const RC_OPERATOR_DIV : _bindgen_ty_5 = 8 ; pub const RC_OPERATOR_AND : _bindgen_ty_5 = 9 ; pub const RC_OPERATOR_XOR : _bindgen_ty_5 = 10 ; pub const RC_OPERATOR_MOD : _bindgen_ty_5 = 11 ; pub const RC_OPERATOR_ADD : _bindgen_ty_5 = 12 ; pub const RC_OPERATOR_SUB : _bindgen_ty_5 = 13 ; pub type _bindgen_ty_5 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Copy , Clone)] pub struct rc_condition_t { pub operand1 : rc_operand_t , pub operand2 : rc_operand_t , pub required_hits : u32 , pub current_hits : u32 , pub next : * mut rc_condition_t , pub type_ : u8 , pub oper : u8 , pub pause : u8 , pub is_true : u8 , pub optimized_comparator : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_condition_t"] [:: core :: mem :: size_of :: < rc_condition_t > () - 56usize] ; ["Alignment of rc_condition_t"] [:: core :: mem :: align_of :: < rc_condition_t > () - 8usize] ; ["Offset of field: rc_condition_t::operand1"] [:: core :: mem :: offset_of ! (rc_condition_t , operand1) - 0usize] ; ["Offset of field: rc_condition_t::operand2"] [:: core :: mem :: offset_of ! (rc_condition_t , operand2) - 16usize] ; ["Offset of field: rc_condition_t::required_hits"] [:: core :: mem :: offset_of ! (rc_condition_t , required_hits) - 32usize] ; ["Offset of field: rc_condition_t::current_hits"] [:: core :: mem :: offset_of ! (rc_condition_t , current_hits) - 36usize] ; ["Offset of field: rc_condition_t::next"] [:: core :: mem :: offset_of ! (rc_condition_t , next) - 40usize] ; ["Offset of field: rc_condition_t::type_"] [:: core :: mem :: offset_of ! (rc_condition_t , type_) - 48usize] ; ["Offset of field: rc_condition_t::oper"] [:: core :: mem :: offset_of ! (rc_condition_t , oper) - 49usize] ; ["Offset of field: rc_condition_t::pause"] [:: core :: mem :: offset_of ! (rc_condition_t , pause) - 50usize] ; ["Offset of field: rc_condition_t::is_true"] [:: core :: mem :: offset_of ! (rc_condition_t , is_true) - 51usize] ; ["Offset of field: rc_condition_t::optimized_comparator"] [:: core :: mem :: offset_of ! (rc_condition_t , optimized_comparator) - 52usize] ; } ; impl :: core :: fmt :: Debug for rc_condition_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_condition_t {{ operand1: {:?}, operand2: {:?}, required_hits: {:?}, current_hits: {:?}, next: {:?}, type: {:?}, oper: {:?}, pause: {:?}, is_true: {:?}, optimized_comparator: {:?} }}" , self . operand1 , self . operand2 , self . required_hits , self . current_hits , self . next , self . type_ , self . oper , self . pause , self . is_true , self . optimized_comparator) } } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_condset_t { pub next : * mut rc_condset_t , pub conditions : * mut rc_condition_t , pub has_pause : u8 , pub is_paused : u8 , pub has_indirect_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_condset_t"] [:: core :: mem :: size_of :: < rc_condset_t > () - 24usize] ; ["Alignment of rc_condset_t"] [:: core :: mem :: align_of :: < rc_condset_t > () - 8usize] ; ["Offset of field: rc_condset_t::next"] [:: core :: mem :: offset_of ! (rc_condset_t , next) - 0usize] ; ["Offset of field: rc_condset_t::conditions"] [:: core :: mem :: offset_of ! (rc_condset_t , conditions) - 8usize] ; ["Offset of field: rc_condset_t::has_pause"] [:: core :: mem :: offset_of ! (rc_condset_t , has_pause) - 16usize] ; ["Offset of field: rc_condset_t::is_paused"] [:: core :: mem :: offset_of ! (rc_condset_t , is_paused) - 17usize] ; ["Offset of field: rc_condset_t::has_indirect_memrefs"] [:: core :: mem :: offset_of ! (rc_condset_t , has_indirect_memrefs) - 18usize] ; } ; pub const RC_TRIGGER_STATE_INACTIVE : _bindgen_ty_6 = 0 ; pub const RC_TRIGGER_STATE_WAITING : _bindgen_ty_6 = 1 ; pub const RC_TRIGGER_STATE_ACTIVE : _bindgen_ty_6 = 2 ; pub const RC_TRIGGER_STATE_PAUSED : _bindgen_ty_6 = 3 ; pub const RC_TRIGGER_STATE_RESET : _bindgen_ty_6 = 4 ; pub const RC_TRIGGER_STATE_TRIGGERED : _bindgen_ty_6 = 5 ; pub const RC_TRIGGER_STATE_PRIMED : _bindgen_ty_6 = 6 ; pub const RC_TRIGGER_STATE_DISABLED : _bindgen_ty_6 = 7 ; # [doc = "\\\n| Trigger                                                                     |\n\\"] pub type _bindgen_ty_6 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_trigger_t { pub requirement : * mut rc_condset_t , pub alternative : * mut rc_condset_t , pub memrefs : * mut rc_memref_t , pub measured_value : u32 , pub measured_target : u32 , pub state : u8 , pub has_hits : u8 , pub has_required_hits : u8 , pub measured_as_percent : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_trigger_t"] [:: core :: mem :: size_of :: < rc_trigger_t > () - 40usize] ; ["Alignment of rc_trigger_t"] [:: core :: mem :: align_of :: < rc_trigger_t > () - 8usize] ; ["Offset of field: rc_trigger_t::requirement"] [:: core :: mem :: offset_of ! (rc_trigger_t , requirement) - 0usize] ; ["Offset of field: rc_trigger_t::alternative"] [:: core :: mem :: offset_of ! (rc_trigger_t , alternative) - 8usize] ; ["Offset of field: rc_trigger_t::memrefs"] [:: core :: mem :: offset_of ! (rc_trigger_t , memrefs) - 16usize] ; ["Offset of field: rc_trigger_t::measured_value"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_value) - 24usize] ; ["Offset of field: rc_trigger_t::measured_target"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_target) - 28usize] ; ["Offset of field: rc_trigger_t::state"] [:: core :: mem :: offset_of ! (rc_trigger_t , state) - 32usize] ; ["Offset of field: rc_trigger_t::has_hits"] [:: core :: mem :: offset_of ! (rc_trigger_t , has_hits) - 33usize] ; ["Offset of field: rc_trigger_t::has_required_hits"] [:: core :: mem :: offset_of ! (rc_trigger_t , has_required_hits) - 34usize] ; ["Offset of field: rc_trigger_t::measured_as_percent"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_as_percent) - 35usize] ; } ; extern "C" { pub fn rc_trigger_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_trigger (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_trigger_t ; } extern "C" { pub fn rc_evaluate_trigger (trigger : * mut rc_trigger_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_test_trigger (trigger : * mut rc_trigger_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_trigger (self_ : * mut rc_trigger_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_value_t { pub value : rc_memref_value_t , pub conditions : * mut rc_condset_t , pub memrefs : * mut rc_memref_t , pub name : * const :: core :: ffi :: c_char , pub next : * mut rc_value_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_value_t"] [:: core :: mem :: size_of :: < rc_value_t > () - 48usize] ; ["Alignment of rc_value_t"] [:: core :: mem :: align_of :: < rc_value_t > () - 8usize] ; ["Offset of field: rc_value_t::value"] [:: core :: mem :: offset_of ! (rc_value_t , value) - 0usize] ; ["Offset of field: rc_value_t::conditions"] [:: core :: mem :: offset_of ! (rc_value_t , conditions) - 16usize] ; ["Offset of field: rc_value_t::memrefs"] [:: core :: mem :: offset_of ! (rc_value_t , memrefs) - 24usize] ; ["Offset of field: rc_value_t::name"] [:: core :: mem :: offset_of ! (rc_value_t , name) - 32usize] ; ["Offset of field: rc_value_t::next"] [:: core :: mem :: offset_of ! (rc_value_t , next) - 40usize] ; } ; extern "C" { pub fn rc_value_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_value (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_value_t ; } extern "C" { pub fn rc_evaluate_value (value : * mut rc_value_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> i32 ; } pub const RC_LBOARD_STATE_INACTIVE : _bindgen_ty_7 = 0 ; pub const RC_LBOARD_STATE_WAITING : _bindgen_ty_7 = 1 ; pub const RC_LBOARD_STATE_ACTIVE : _bindgen_ty_7 = 2 ; pub const RC_LBOARD_STATE_STARTED : _bindgen_ty_7 = 3 ; pub const RC_LBOARD_STATE_CANCELED : _bindgen_ty_7 = 4 ; pub const RC_LBOARD_STATE_TRIGGERED : _bindgen_ty_7 = 5 ; pub const RC_LBOARD_STATE_DISABLED : _bindgen_ty_7 = 6 ; # [doc = "\\\n| Leaderboards                                                                |\n\\"] pub type _bindgen_ty_7 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_lboard_t { pub start : rc_trigger_t , pub submit : rc_trigger_t , pub cancel : rc_trigger_t , pub value : rc_value_t , pub progress : * mut rc_value_t , pub memrefs : * mut rc_memref_t , pub state : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_lboard_t"] [:: core :: mem :: size_of :: < rc_lboard_t > () - 192usize] ; ["Alignment of rc_lboard_t"] [:: core :: mem :: align_of :: < rc_lboard_t > () - 8usize] ; ["Offset of field: rc_lboard_t::start"] [:: core :: mem :: offset_of ! (rc_lboard_t , start) - 0usize] ; ["Offset of field: rc_lboard_t::submit"] [:: core :: mem :: offset_of ! (rc_lboard_t , submit) - 40usize] ; ["Offset of field: rc_lboard_t::cancel"] [:: core :: mem :: offset_of ! (rc_lboard_t , cancel) - 80usize] ; ["Offset of field: rc_lboard_t::value"] [:: core :: mem :: offset_of ! (rc_lboard_t , value) - 120usize] ; ["Offset of field: rc_lboard_t::progress"] [:: core :: mem :: offset_of ! (rc_lboard_t , progress) - 168usize] ; ["Offset of field: rc_lboard_t::memrefs"] [:: core :: mem :: offset_of ! (rc_lboard_t , memrefs) - 176usize] ; ["Offset of field: rc_lboard_t::state"] [:: core :: mem :: offset_of ! (rc_lboard_t , state) - 184usize] ; } ; extern "C" { pub fn rc_lboard_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_lboard (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_lboard_t ; } extern "C" { pub fn rc_evaluate_lboard (lboard : * mut rc_lboard_t , value : * mut i32 , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_lboard (lboard : * mut rc_lboard_t) ; } pub const RC_FORMAT_FRAMES : _bindgen_ty_8 = 0 ; pub const RC_FORMAT_SECONDS : _bindgen_ty_8 = 1 ; pub const RC_FORMAT_CENTISECS : _bindgen_ty_8 = 2 ; pub const RC_FORMAT_SCORE : _bindgen_ty_8 = 3 ; pub const RC_FORMAT_VALUE : _bindgen_ty_8 = 4 ; pub const RC_FORMAT_MINUTES : _bindgen_ty_8 = 5 ; pub const RC_FORMAT_SECONDS_AS_MINUTES : _bindgen_ty_8 = 6 ; pub const RC_FORMAT_FLOAT1 : _bindgen_ty_8 = 7 ; pub const RC_FORMAT_FLOAT2 : _bindgen_ty_8 = 8 ; pub const RC_FORMAT_FLOAT3 : _bindgen_ty_8 = 9 ; pub const RC_FORMAT_FLOAT4 : _bindgen_ty_8 = 10 ; pub const RC_FORMAT_FLOAT5 : _bindgen_ty_8 = 11 ; pub const RC_FORMAT_FLOAT6 : _bindgen_ty_8 = 12 ; pub const RC_FORMAT_FIXED1 : _bindgen_ty_8 = 13 ; pub const RC_FORMAT_FIXED2 : _bindgen_ty_8 = 14 ; pub const RC_FORMAT_FIXED3 : _bindgen_ty_8 = 15 ; pub const RC_FORMAT_TENS : _bindgen_ty_8 = 16 ; pub const RC_FORMAT_HUNDREDS : _bindgen_ty_8 = 17 ; pub const RC_FORMAT_THOUSANDS : _bindgen_ty_8 = 18 ; pub const RC_FORMAT_UNSIGNED_VALUE : _bindgen_ty_8 = 19 ; # [doc = "\\\n| Value formatting                                                            |\n\\"] pub type _bindgen_ty_8 = :: core :: ffi :: c_uint ; extern "C" { pub fn rc_parse_format (format_str : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_format_value (buffer : * mut :: core :: ffi :: c_char , size : :: core :: ffi :: c_int , value : i32 , format : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_lookup_item_t { pub first : u32 , pub last : u32 , pub left : * mut rc_richpresence_lookup_item_t , pub right : * mut rc_richpresence_lookup_item_t , pub label : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_lookup_item_t"] [:: core :: mem :: size_of :: < rc_richpresence_lookup_item_t > () - 32usize] ; ["Alignment of rc_richpresence_lookup_item_t"] [:: core :: mem :: align_of :: < rc_richpresence_lookup_item_t > () - 8usize] ; ["Offset of field: rc_richpresence_lookup_item_t::first"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , first) - 0usize] ; ["Offset of field: rc_richpresence_lookup_item_t::last"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , last) - 4usize] ; ["Offset of field: rc_richpresence_lookup_item_t::left"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , left) - 8usize] ; ["Offset of field: rc_richpresence_lookup_item_t::right"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , right) - 16usize] ; ["Offset of field: rc_richpresence_lookup_item_t::label"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , label) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_lookup_t { pub root : * mut rc_richpresence_lookup_item_t , pub next : * mut rc_richpresence_lookup_t , pub name : * const :: core :: ffi :: c_char , pub default_label : * const :: core :: ffi :: c_char , pub format : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_lookup_t"] [:: core :: mem :: size_of :: < rc_richpresence_lookup_t > () - 40usize] ; ["Alignment of rc_richpresence_lookup_t"] [:: core :: mem :: align_of :: < rc_richpresence_lookup_t > () - 8usize] ; ["Offset of field: rc_richpresence_lookup_t::root"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , root) - 0usize] ; ["Offset of field: rc_richpresence_lookup_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , next) - 8usize] ; ["Offset of field: rc_richpresence_lookup_t::name"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , name) - 16usize] ; ["Offset of field: rc_richpresence_lookup_t::default_label"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , default_label) - 24usize] ; ["Offset of field: rc_richpresence_lookup_t::format"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , format) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_display_part_t { pub next : * mut rc_richpresence_display_part_t , pub text : * const :: core :: ffi :: c_char , pub lookup : * mut rc_richpresence_lookup_t , pub value : * mut rc_memref_value_t , pub display_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_display_part_t"] [:: core :: mem :: size_of :: < rc_richpresence_display_part_t > () - 40usize] ; ["Alignment of rc_richpresence_display_part_t"] [:: core :: mem :: align_of :: < rc_richpresence_display_part_t > () - 8usize] ; ["Offset of field: rc_richpresence_display_part_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , next) - 0usize] ; ["Offset of field: rc_richpresence_display_part_t::text"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , text) - 8usize] ; ["Offset of field: rc_richpresence_display_part_t::lookup"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , lookup) - 16usize] ; ["Offset of field: rc_richpresence_display_part_t::value"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , value) - 24usize] ; ["Offset of field: rc_richpresence_display_part_t::display_type"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , display_type) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_display_t { pub trigger : rc_trigger_t , pub next : * mut rc_richpresence_display_t , pub display : * mut rc_richpresence_display_part_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_display_t"] [:: core :: mem :: size_of :: < rc_richpresence_display_t > () - 56usize] ; ["Alignment of rc_richpresence_display_t"] [:: core :: mem :: align_of :: < rc_richpresence_display_t > () - 8usize] ; ["Offset of field: rc_richpresence_display_t::trigger"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , trigger) - 0usize] ; ["Offset of field: rc_richpresence_display_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , next) - 40usize] ; ["Offset of field: rc_richpresence_display_t::display"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , display) - 48usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_t { pub first_display : * mut rc_richpresence_display_t , pub first_lookup : * mut rc_richpresence_lookup_t , pub memrefs : * mut rc_memref_t , pub variables : * mut rc_value_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_t"] [:: core :: mem :: size_of :: < rc_richpresence_t > () - 32usize] ; ["Alignment of rc_richpresence_t"] [:: core :: mem :: align_of :: < rc_richpresence_t > () - 8usize] ; ["Offset of field: rc_richpresence_t::first_display"] [:: core :: mem :: offset_of ! (rc_richpresence_t , first_display) - 0usize] ; ["Offset of field: rc_richpresence_t::first_lookup"] [:: core :: mem :: offset_of ! (rc_richpresence_t , first_lookup) - 8usize] ; ["Offset of field: rc_richpresence_t::memrefs"] [:: core :: mem :: offset_of ! (rc_richpresence_t , memrefs) - 16usize] ; ["Offset of field: rc_richpresence_t::variables"] [:: core :: mem :: offset_of ! (rc_richpresence_t , variables) - 24usize] ; } ; extern "C" { pub fn rc_richpresence_size (script : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_richpresence_size_lines (script : * const :: core :: ffi :: c_char , lines_read : * mut :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_richpresence (buffer : * mut :: core :: ffi :: c_void , script : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_richpresence_t ; } extern "C" { pub fn rc_evaluate_richpresence (richpresence : * mut rc_richpresence_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_update_richpresence (richpresence : * mut rc_richpresence_t , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) ; } extern "C" { pub fn rc_get_richpresence_display_string (richpresence : * mut rc_richpresence_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_richpresence (self_ : * mut rc_richpresence_t) ; } # [doc = " A block of memory for variable length data (like strings and arrays)."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_buffer_chunk_t { pub write : * mut u8 , pub end : * mut u8 , pub start : * mut u8 , pub next : * mut rc_buffer_chunk_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_buffer_chunk_t"] [:: core :: mem :: size_of :: < rc_buffer_chunk_t > () - 32usize] ; ["Alignment of rc_buffer_chunk_t"] [:: core :: mem :: align_of :: < rc_buffer_chunk_t > () - 8usize] ; ["Offset of field: rc_buffer_chunk_t::write"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , write) - 0usize] ; ["Offset of field: rc_buffer_chunk_t::end"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , end) - 8usize] ; ["Offset of field: rc_buffer_chunk_t::start"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , start) - 16usize] ; ["Offset of field: rc_buffer_chunk_t::next"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , next) - 24usize] ; } ; # [doc = " A preallocated block of memory for variable length data (like strings and arrays)."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_buffer_t { pub chunk : rc_buffer_chunk_t , pub data : [u8 ; 256usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_buffer_t"] [:: core :: mem :: size_of :: < rc_buffer_t > () - 288usize] ; ["Alignment of rc_buffer_t"] [:: core :: mem :: align_of :: < rc_buffer_t > () - 8usize] ; ["Offset of field: rc_buffer_t::chunk"] [:: core :: mem :: offset_of ! (rc_buffer_t , chunk) - 0usize] ; ["Offset of field: rc_buffer_t::data"] [:: core :: mem :: offset_of ! (rc_buffer_t , data) - 32usize] ; } ; extern "C" { pub fn rc_buffer_init (buffer : * mut rc_buffer_t) ; } extern "C" { pub fn rc_buffer_destroy (buffer : * mut rc_buffer_t) ; } extern "C" { pub fn rc_buffer_reserve (buffer : * mut rc_buffer_t , amount : usize) -> * mut u8 ; } extern "C" { pub fn rc_buffer_consume (buffer : * mut rc_buffer_t , start : * const u8 , end : * mut u8) ; } extern "C" { pub fn rc_buffer_alloc (buffer : * mut rc_buffer_t , amount : usize) -> * mut :: core :: ffi :: c_void ; } extern "C" { pub fn rc_buffer_strcpy (buffer : * mut rc_buffer_t , src : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn rc_buffer_strncpy (buffer : * mut rc_buffer_t , src : * const :: core :: ffi :: c_char , len : usize) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn rc_djb2 (input : * const :: core :: ffi :: c_char) -> u32 ; } extern "C" { pub fn rc_format_md5 (checksum : * mut :: core :: ffi :: c_char , digest : * const u8) ; } # [doc = " A constructed request to send to the retroachievements server."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_request_t { pub url : * const :: core :: ffi :: c_char , pub post_data : * const :: core :: ffi :: c_char , pub content_type : * const :: core :: ffi :: c_char , pub buffer : rc_buffer_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_request_t"] [:: core :: mem :: size_of :: < rc_api_request_t > () - 312usize] ; ["Alignment of rc_api_request_t"] [:: core :: mem :: align_of :: < rc_api_request_t > () - 8usize] ; ["Offset of field: rc_api_request_t::url"] [:: core :: mem :: offset_of ! (rc_api_request_t , url) - 0usize] ; ["Offset of field: rc_api_request_t::post_data"] [:: core :: mem :: offset_of ! (rc_api_request_t , post_data) - 8usize] ; ["Offset of field: rc_api_request_t::content_type"] [:: core :: mem :: offset_of ! (rc_api_request_t , content_type) - 16usize] ; ["Offset of field: rc_api_request_t::buffer"] [:: core :: mem :: offset_of ! (rc_api_request_t , buffer) - 24usize] ; } ; # [doc = " Common attributes for all server responses."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_response_t { pub succeeded : :: core :: ffi :: c_int , pub error_message : * const :: core :: ffi :: c_char , pub error_code : * const :: core :: ffi :: c_char , pub buffer : rc_buffer_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_response_t"] [:: core :: mem :: size_of :: < rc_api_response_t > () - 312usize] ; ["Alignment of rc_api_response_t"] [:: core :: mem :: align_of :: < rc_api_response_t > () - 8usize] ; ["Offset of field: rc_api_response_t::succeeded"] [:: core :: mem :: offset_of ! (rc_api_response_t , succeeded) - 0usize] ; ["Offset of field: rc_api_response_t::error_message"] [:: core :: mem :: offset_of ! (rc_api_response_t , error_message) - 8usize] ; ["Offset of field: rc_api_response_t::error_code"] [:: core :: mem :: offset_of ! (rc_api_response_t , error_code) - 16usize] ; ["Offset of field: rc_api_response_t::buffer"] [:: core :: mem :: offset_of ! (rc_api_response_t , buffer) - 24usize] ; } ; extern "C" { pub fn rc_api_destroy_request (request : * mut rc_api_request_t) ; } extern "C" { pub fn rc_api_set_host (hostname : * const :: core :: ffi :: c_char) ; } extern "C" { pub fn rc_api_set_image_host (hostname : * const :: core :: ffi :: c_char) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_server_response_t { pub body : * const :: core :: ffi :: c_char , pub body_length : usize , pub http_status_code : :: core :: ffi :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_server_response_t"] [:: core :: mem :: size_of :: < rc_api_server_response_t > () - 24usize] ; ["Alignment of rc_api_server_response_t"] [:: core :: mem :: align_of :: < rc_api_server_response_t > () - 8usize] ; ["Offset of field: rc_api_server_response_t::body"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , body) - 0usize] ; ["Offset of field: rc_api_server_response_t::body_length"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , body_length) - 8usize] ; ["Offset of field: rc_api_server_response_t::http_status_code"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , http_status_code) - 16usize] ; } ; pub const RC_API_SERVER_RESPONSE_CLIENT_ERROR : _bindgen_ty_9 = - 1 ; pub const RC_API_SERVER_RESPONSE_RETRYABLE_CLIENT_ERROR : _bindgen_ty_9 = - 2 ; pub type _bindgen_ty_9 = :: core :: ffi :: c_int ; pub type clock_t = __clock_t ; pub type time_t = __time_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct tm { pub tm_sec : :: core :: ffi :: c_int , pub tm_min : :: core :: ffi :: c_int , pub tm_hour : :: core :: ffi :: c_int , pub tm_mday : :: core :: ffi :: c_int , pub tm_mon : :: core :: ffi :: c_int , pub tm_year : :: core :: ffi :: c_int , pub tm_wday : :: core :: ffi :: c_int , pub tm_yday : :: core :: ffi :: c_int , pub tm_isdst : :: core :: ffi :: c_int , pub tm_gmtoff : :: core :: ffi :: c_long , pub tm_zone : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of tm"] [:: core :: mem :: size_of :: < tm > () - 56usize] ; ["Alignment of tm"] [:: core :: mem :: align_of :: < tm > () - 8usize] ; ["Offset of field: tm::tm_sec"] [:: core :: mem :: offset_of ! (tm , tm_sec) - 0usize] ; ["Offset of field: tm::tm_min"] [:: core :: mem :: offset_of ! (tm , tm_min) - 4usize] ; ["Offset of field: tm::tm_hour"] [:: core :: mem :: offset_of ! (tm , tm_hour) - 8usize] ; ["Offset of field: tm::tm_mday"] [:: core :: mem :: offset_of ! (tm , tm_mday) - 12usize] ; ["Offset of field: tm::tm_mon"] [:: core :: mem :: offset_of ! (tm , tm_mon) - 16usize] ; ["Offset of field: tm::tm_year"] [:: core :: mem :: offset_of ! (tm , tm_year) - 20usize] ; ["Offset of field: tm::tm_wday"] [:: core :: mem :: offset_of ! (tm , tm_wday) - 24usize] ; ["Offset of field: tm::tm_yday"] [:: core :: mem :: offset_of ! (tm , tm_yday) - 28usize] ; ["Offset of field: tm::tm_isdst"] [:: core :: mem :: offset_of ! (tm , tm_isdst) - 32usize] ; ["Offset of field: tm::tm_gmtoff"] [:: core :: mem :: offset_of ! (tm , tm_gmtoff) - 40usize] ; ["Offset of field: tm::tm_zone"] [:: core :: mem :: offset_of ! (tm , tm_zone) - 48usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct timespec { pub tv_sec : __time_t , pub tv_nsec : __syscall_slong_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of timespec"] [:: core :: mem :: size_of :: < timespec > () - 16usize] ; ["Alignment of timespec"] [:: core :: mem :: align_of :: < timespec > () - 8usize] ; ["Offset of field: timespec::tv_sec"] [:: core :: mem :: offset_of ! (timespec , tv_sec) - 0usize] ; ["Offset of field: timespec::tv_nsec"] [:: core :: mem :: offset_of ! (timespec , tv_nsec) - 8usize] ; } ; pub type clockid_t = __clockid_t ; pub type timer_t = __timer_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct itimerspec { pub it_interval : timespec , pub it_value : timespec , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of itimerspec"] [:: core :: mem :: size_of :: < itimerspec > () - 32usize] ; ["Alignment of itimerspec"] [:: core :: mem :: align_of :: < itimerspec > () - 8usize] ; ["Offset of field: itimerspec::it_interval"] [:: core :: mem :: offset_of ! (itimerspec , it_interval) - 0usize] ; ["Offset of field: itimerspec::it_value"] [:: core :: mem :: offset_of ! (itimerspec , it_value) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct sigevent { _unused : [u8 ; 0] , } pub type pid_t = __pid_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __locale_struct { pub __locales : [* mut __locale_data ; 13usize] , pub __ctype_b : * const :: core :: ffi :: c_ushort , pub __ctype_tolower : * const :: core :: ffi :: c_int , pub __ctype_toupper : * const :: core :: ffi :: c_int , pub __names : [* const :: core :: ffi :: c_char ; 13usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __locale_struct"] [:: core :: mem :: size_of :: < __locale_struct > () - 232usize] ; ["Alignment of __locale_struct"] [:: core :: mem :: align_of :: < __locale_struct > () - 8usize] ; ["Offset of field: __locale_struct::__locales"] [:: core :: mem :: offset_of ! (__locale_struct , __locales) - 0usize] ; ["Offset of field: __locale_struct::__ctype_b"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_b) - 104usize] ; ["Offset of field: __locale_struct::__ctype_tolower"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_tolower) - 112usize] ; ["Offset of field: __locale_struct::__ctype_toupper"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_toupper) - 120usize] ; ["Offset of field: __locale_struct::__names"] [:: core :: mem :: offset_of ! (__locale_struct , __names) - 128usize] ; } ; pub type __locale_t = * mut __locale_struct ; pub type locale_t = __locale_t ; extern "C" { pub fn clock () -> clock_t ; } extern "C" { pub fn time (__timer : * mut time_t) -> time_t ; } extern "C" { pub fn difftime (__time1 : time_t , __time0 : time_t) -> f64 ; } extern "C" { pub fn mktime (__tp : * mut tm) -> time_t ; } extern "C" { pub fn strftime (__s : * mut :: core :: ffi :: c_char , __maxsize : usize , __format : * const :: core :: ffi :: c_char , __tp : * const tm) -> usize ; } extern "C" { pub fn strftime_l (__s : * mut :: core :: ffi :: c_char , __maxsize : usize , __format : * const :: core :: ffi :: c_char , __tp : * const tm , __loc : locale_t) -> usize ; } extern "C" { pub fn gmtime (__timer : * const time_t) -> * mut tm ; } extern "C" { pub fn localtime (__timer : * const time_t) -> * mut tm ; } extern "C" { pub fn gmtime_r (__timer : * const time_t , __tp : * mut tm) -> * mut tm ; } extern "C" { pub fn localtime_r (__timer : * const time_t , __tp : * mut tm) -> * mut tm ; } extern "C" { pub fn asctime (__tp : * const tm) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn ctime (__timer : * const time_t) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn asctime_r (__tp : * const tm , __buf : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn ctime_r (__timer : * const time_t , __buf : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub static mut __tzname : [* mut :: core :: ffi :: c_char ; 2usize] ; } extern "C" { pub static mut __daylight : :: core :: ffi :: c_int ; } extern "C" { pub static mut __timezone : :: core :: ffi :: c_long ; } extern "C" { pub static mut tzname : [* mut :: core :: ffi :: c_char ; 2usize] ; } extern "C" { pub fn tzset () ; } extern "C" { pub static mut daylight : :: core :: ffi :: c_int ; } extern "C" { pub static mut timezone : :: core :: ffi :: c_long ; } extern "C" { pub fn timegm (__tp : * mut tm) -> time_t ; } extern "C" { pub fn timelocal (__tp : * mut tm) -> time_t ; } extern "C" { pub fn dysize (__year : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn nanosleep (__requested_time : * const timespec , __remaining : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_getres (__clock_id : clockid_t , __res : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_gettime (__clock_id : clockid_t , __tp : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_settime (__clock_id : clockid_t , __tp : * const timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_nanosleep (__clock_id : clockid_t , __flags : :: core :: ffi :: c_int , __req : * const timespec , __rem : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_getcpuclockid (__pid : pid_t , __clock_id : * mut clockid_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_create (__clock_id : clockid_t , __evp : * mut sigevent , __timerid : * mut timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_delete (__timerid : timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_settime (__timerid : timer_t , __flags : :: core :: ffi :: c_int , __value : * const itimerspec , __ovalue : * mut itimerspec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_gettime (__timerid : timer_t , __value : * mut itimerspec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_getoverrun (__timerid : timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timespec_get (__ts : * mut timespec , __base : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } # [doc = " API parameters for a login request.\n If both password and api_token are provided, api_token will be ignored."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_login_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub password : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_login_request_t"] [:: core :: mem :: size_of :: < rc_api_login_request_t > () - 24usize] ; ["Alignment of rc_api_login_request_t"] [:: core :: mem :: align_of :: < rc_api_login_request_t > () - 8usize] ; ["Offset of field: rc_api_login_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , username) - 0usize] ; ["Offset of field: rc_api_login_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_login_request_t::password"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , password) - 16usize] ; } ; # [doc = " Response data for a login request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_login_response_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub score : u32 , pub score_softcore : u32 , pub num_unread_messages : u32 , pub display_name : * const :: core :: ffi :: c_char , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_login_response_t"] [:: core :: mem :: size_of :: < rc_api_login_response_t > () - 352usize] ; ["Alignment of rc_api_login_response_t"] [:: core :: mem :: align_of :: < rc_api_login_response_t > () - 8usize] ; ["Offset of field: rc_api_login_response_t::username"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , username) - 0usize] ; ["Offset of field: rc_api_login_response_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , api_token) - 8usize] ; ["Offset of field: rc_api_login_response_t::score"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , score) - 16usize] ; ["Offset of field: rc_api_login_response_t::score_softcore"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , score_softcore) - 20usize] ; ["Offset of field: rc_api_login_response_t::num_unread_messages"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , num_unread_messages) - 24usize] ; ["Offset of field: rc_api_login_response_t::display_name"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , display_name) - 32usize] ; ["Offset of field: rc_api_login_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , response) - 40usize] ; } ; extern "C" { pub fn rc_api_init_login_request (request : * mut rc_api_request_t , api_params : * const rc_api_login_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_login_response (response : * mut rc_api_login_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_login_server_response (response : * mut rc_api_login_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_login_response (response : * mut rc_api_login_response_t) ; } # [doc = " API parameters for a start session request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_start_session_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub game_hash : * const :: core :: ffi :: c_char , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_start_session_request_t"] [:: core :: mem :: size_of :: < rc_api_start_session_request_t > () - 40usize] ; ["Alignment of rc_api_start_session_request_t"] [:: core :: mem :: align_of :: < rc_api_start_session_request_t > () - 8usize] ; ["Offset of field: rc_api_start_session_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , username) - 0usize] ; ["Offset of field: rc_api_start_session_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_start_session_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_start_session_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_start_session_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , hardcore) - 32usize] ; } ; # [doc = " Response data for an achievement unlock."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_unlock_entry_t { pub achievement_id : u32 , pub when : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_unlock_entry_t"] [:: core :: mem :: size_of :: < rc_api_unlock_entry_t > () - 16usize] ; ["Alignment of rc_api_unlock_entry_t"] [:: core :: mem :: align_of :: < rc_api_unlock_entry_t > () - 8usize] ; ["Offset of field: rc_api_unlock_entry_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_unlock_entry_t , achievement_id) - 0usize] ; ["Offset of field: rc_api_unlock_entry_t::when"] [:: core :: mem :: offset_of ! (rc_api_unlock_entry_t , when) - 8usize] ; } ; # [doc = " Response data for a start session request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_start_session_response_t { pub hardcore_unlocks : * mut rc_api_unlock_entry_t , pub unlocks : * mut rc_api_unlock_entry_t , pub num_hardcore_unlocks : u32 , pub num_unlocks : u32 , pub server_now : time_t , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_start_session_response_t"] [:: core :: mem :: size_of :: < rc_api_start_session_response_t > () - 344usize] ; ["Alignment of rc_api_start_session_response_t"] [:: core :: mem :: align_of :: < rc_api_start_session_response_t > () - 8usize] ; ["Offset of field: rc_api_start_session_response_t::hardcore_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , hardcore_unlocks) - 0usize] ; ["Offset of field: rc_api_start_session_response_t::unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , unlocks) - 8usize] ; ["Offset of field: rc_api_start_session_response_t::num_hardcore_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , num_hardcore_unlocks) - 16usize] ; ["Offset of field: rc_api_start_session_response_t::num_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , num_unlocks) - 20usize] ; ["Offset of field: rc_api_start_session_response_t::server_now"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , server_now) - 24usize] ; ["Offset of field: rc_api_start_session_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_start_session_request (request : * mut rc_api_request_t , api_params : * const rc_api_start_session_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_start_session_response (response : * mut rc_api_start_session_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_start_session_server_response (response : * mut rc_api_start_session_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_start_session_response (response : * mut rc_api_start_session_response_t) ; } # [doc = " API parameters for a fetch user unlocks request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_user_unlocks_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_user_unlocks_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_user_unlocks_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_user_unlocks_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_user_unlocks_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , hardcore) - 20usize] ; } ; # [doc = " Response data for a fetch user unlocks request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_user_unlocks_response_t { pub achievement_ids : * mut u32 , pub num_achievement_ids : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_user_unlocks_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_user_unlocks_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_user_unlocks_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_user_unlocks_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::achievement_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , achievement_ids) - 0usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::num_achievement_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , num_achievement_ids) - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_user_unlocks_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_user_unlocks_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_user_unlocks_response (response : * mut rc_api_fetch_user_unlocks_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_user_unlocks_server_response (response : * mut rc_api_fetch_user_unlocks_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_user_unlocks_response (response : * mut rc_api_fetch_user_unlocks_response_t) ; } # [doc = " API parameters for a fetch code notes request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_code_notes_request_t { pub game_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_code_notes_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_code_notes_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_code_notes_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_code_notes_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_code_notes_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_request_t , game_id) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_code_note_t { pub address : u32 , pub author : * const :: core :: ffi :: c_char , pub note : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_code_note_t"] [:: core :: mem :: size_of :: < rc_api_code_note_t > () - 24usize] ; ["Alignment of rc_api_code_note_t"] [:: core :: mem :: align_of :: < rc_api_code_note_t > () - 8usize] ; ["Offset of field: rc_api_code_note_t::address"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , address) - 0usize] ; ["Offset of field: rc_api_code_note_t::author"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , author) - 8usize] ; ["Offset of field: rc_api_code_note_t::note"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , note) - 16usize] ; } ; # [doc = " Response data for a fetch code notes request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_code_notes_response_t { pub notes : * mut rc_api_code_note_t , pub num_notes : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_code_notes_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_code_notes_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_code_notes_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_code_notes_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::notes"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , notes) - 0usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::num_notes"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , num_notes) - 8usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_code_notes_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_code_notes_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_code_notes_response (response : * mut rc_api_fetch_code_notes_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_code_notes_server_response (response : * mut rc_api_fetch_code_notes_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_code_notes_response (response : * mut rc_api_fetch_code_notes_response_t) ; } # [doc = " API parameters for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_code_note_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub address : u32 , pub note : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_code_note_request_t"] [:: core :: mem :: size_of :: < rc_api_update_code_note_request_t > () - 32usize] ; ["Alignment of rc_api_update_code_note_request_t"] [:: core :: mem :: align_of :: < rc_api_update_code_note_request_t > () - 8usize] ; ["Offset of field: rc_api_update_code_note_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_code_note_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_code_note_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_update_code_note_request_t::address"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , address) - 20usize] ; ["Offset of field: rc_api_update_code_note_request_t::note"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , note) - 24usize] ; } ; # [doc = " Response data for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_code_note_response_t { pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_code_note_response_t"] [:: core :: mem :: size_of :: < rc_api_update_code_note_response_t > () - 312usize] ; ["Alignment of rc_api_update_code_note_response_t"] [:: core :: mem :: align_of :: < rc_api_update_code_note_response_t > () - 8usize] ; ["Offset of field: rc_api_update_code_note_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_response_t , response) - 0usize] ; } ; extern "C" { pub fn rc_api_init_update_code_note_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_code_note_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_code_note_response (response : * mut rc_api_update_code_note_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_code_note_server_response (response : * mut rc_api_update_code_note_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_code_note_response (response : * mut rc_api_update_code_note_response_t) ; } # [doc = " API parameters for an update achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_achievement_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub game_id : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub badge : * const :: core :: ffi :: c_char , pub trigger : * const :: core :: ffi :: c_char , pub points : u32 , pub category : u32 , pub type_ : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_achievement_request_t"] [:: core :: mem :: size_of :: < rc_api_update_achievement_request_t > () - 72usize] ; ["Alignment of rc_api_update_achievement_request_t"] [:: core :: mem :: align_of :: < rc_api_update_achievement_request_t > () - 8usize] ; ["Offset of field: rc_api_update_achievement_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_achievement_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_achievement_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_update_achievement_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , game_id) - 20usize] ; ["Offset of field: rc_api_update_achievement_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , title) - 24usize] ; ["Offset of field: rc_api_update_achievement_request_t::description"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , description) - 32usize] ; ["Offset of field: rc_api_update_achievement_request_t::badge"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , badge) - 40usize] ; ["Offset of field: rc_api_update_achievement_request_t::trigger"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , trigger) - 48usize] ; ["Offset of field: rc_api_update_achievement_request_t::points"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , points) - 56usize] ; ["Offset of field: rc_api_update_achievement_request_t::category"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , category) - 60usize] ; ["Offset of field: rc_api_update_achievement_request_t::type_"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , type_) - 64usize] ; } ; # [doc = " Response data for an update achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_achievement_response_t { pub achievement_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_achievement_response_t"] [:: core :: mem :: size_of :: < rc_api_update_achievement_response_t > () - 320usize] ; ["Alignment of rc_api_update_achievement_response_t"] [:: core :: mem :: align_of :: < rc_api_update_achievement_response_t > () - 8usize] ; ["Offset of field: rc_api_update_achievement_response_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_response_t , achievement_id) - 0usize] ; ["Offset of field: rc_api_update_achievement_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_update_achievement_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_achievement_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_achievement_response (response : * mut rc_api_update_achievement_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_achievement_server_response (response : * mut rc_api_update_achievement_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_achievement_response (response : * mut rc_api_update_achievement_response_t) ; } # [doc = " API parameters for an update leaderboard request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_leaderboard_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub leaderboard_id : u32 , pub game_id : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub start_trigger : * const :: core :: ffi :: c_char , pub submit_trigger : * const :: core :: ffi :: c_char , pub cancel_trigger : * const :: core :: ffi :: c_char , pub value_definition : * const :: core :: ffi :: c_char , pub format : * const :: core :: ffi :: c_char , pub lower_is_better : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_leaderboard_request_t"] [:: core :: mem :: size_of :: < rc_api_update_leaderboard_request_t > () - 88usize] ; ["Alignment of rc_api_update_leaderboard_request_t"] [:: core :: mem :: align_of :: < rc_api_update_leaderboard_request_t > () - 8usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , leaderboard_id) - 16usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , game_id) - 20usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , title) - 24usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::description"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , description) - 32usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::start_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , start_trigger) - 40usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::submit_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , submit_trigger) - 48usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::cancel_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , cancel_trigger) - 56usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::value_definition"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , value_definition) - 64usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::format"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , format) - 72usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , lower_is_better) - 80usize] ; } ; # [doc = " Response data for an update leaderboard request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_leaderboard_response_t { pub leaderboard_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_leaderboard_response_t"] [:: core :: mem :: size_of :: < rc_api_update_leaderboard_response_t > () - 320usize] ; ["Alignment of rc_api_update_leaderboard_response_t"] [:: core :: mem :: align_of :: < rc_api_update_leaderboard_response_t > () - 8usize] ; ["Offset of field: rc_api_update_leaderboard_response_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_response_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_api_update_leaderboard_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_update_leaderboard_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_leaderboard_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_leaderboard_response (response : * mut rc_api_update_leaderboard_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_leaderboard_server_response (response : * mut rc_api_update_leaderboard_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_leaderboard_response (response : * mut rc_api_update_leaderboard_response_t) ; } # [doc = " API parameters for a fetch badge range request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_badge_range_request_t { pub unused : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_badge_range_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_badge_range_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_badge_range_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_badge_range_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_badge_range_request_t::unused"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_request_t , unused) - 0usize] ; } ; # [doc = " Response data for a fetch badge range request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_badge_range_response_t { pub first_badge_id : u32 , pub next_badge_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_badge_range_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_badge_range_response_t > () - 320usize] ; ["Alignment of rc_api_fetch_badge_range_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_badge_range_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::first_badge_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , first_badge_id) - 0usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::next_badge_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , next_badge_id) - 4usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_fetch_badge_range_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_badge_range_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_badge_range_response (response : * mut rc_api_fetch_badge_range_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_badge_range_server_response (response : * mut rc_api_fetch_badge_range_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_badge_range_response (response : * mut rc_api_fetch_badge_range_response_t) ; } # [doc = " API parameters for an add game hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_add_game_hash_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub hash : * const :: core :: ffi :: c_char , pub hash_description : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_add_game_hash_request_t"] [:: core :: mem :: size_of :: < rc_api_add_game_hash_request_t > () - 48usize] ; ["Alignment of rc_api_add_game_hash_request_t"] [:: core :: mem :: align_of :: < rc_api_add_game_hash_request_t > () - 8usize] ; ["Offset of field: rc_api_add_game_hash_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , username) - 0usize] ; ["Offset of field: rc_api_add_game_hash_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_add_game_hash_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_add_game_hash_request_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , console_id) - 20usize] ; ["Offset of field: rc_api_add_game_hash_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , title) - 24usize] ; ["Offset of field: rc_api_add_game_hash_request_t::hash"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , hash) - 32usize] ; ["Offset of field: rc_api_add_game_hash_request_t::hash_description"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , hash_description) - 40usize] ; } ; # [doc = " Response data for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_add_game_hash_response_t { pub game_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_add_game_hash_response_t"] [:: core :: mem :: size_of :: < rc_api_add_game_hash_response_t > () - 320usize] ; ["Alignment of rc_api_add_game_hash_response_t"] [:: core :: mem :: align_of :: < rc_api_add_game_hash_response_t > () - 8usize] ; ["Offset of field: rc_api_add_game_hash_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_response_t , game_id) - 0usize] ; ["Offset of field: rc_api_add_game_hash_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_add_game_hash_request (request : * mut rc_api_request_t , api_params : * const rc_api_add_game_hash_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_add_game_hash_response (response : * mut rc_api_add_game_hash_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_add_game_hash_server_response (response : * mut rc_api_add_game_hash_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_add_game_hash_response (response : * mut rc_api_add_game_hash_response_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_t { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_menu_item_t { pub label : * const :: core :: ffi :: c_char , pub id : u32 , pub checked : u8 , pub enabled : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_menu_item_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_menu_item_t > () - 16usize] ; ["Alignment of rc_client_raintegration_menu_item_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_menu_item_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::label"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , label) - 0usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::id"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , id) - 8usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::checked"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , checked) - 12usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::enabled"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , enabled) - 13usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_menu_t { pub items : * mut rc_client_raintegration_menu_item_t , pub num_items : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_menu_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_menu_t > () - 16usize] ; ["Alignment of rc_client_raintegration_menu_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_menu_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_menu_t::items"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_t , items) - 0usize] ; ["Offset of field: rc_client_raintegration_menu_t::num_items"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_t , num_items) - 8usize] ; } ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_NONE : _bindgen_ty_10 = 0 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_PUBLISHED : _bindgen_ty_10 = 1 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_LOCAL : _bindgen_ty_10 = 2 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_MODIFIED : _bindgen_ty_10 = 3 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_INSECURE : _bindgen_ty_10 = 4 ; pub type _bindgen_ty_10 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_RAINTEGRATION_EVENT_TYPE_NONE : _bindgen_ty_11 = 0 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_MENUITEM_CHECKED_CHANGED : _bindgen_ty_11 = 1 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_HARDCORE_CHANGED : _bindgen_ty_11 = 2 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_PAUSE : _bindgen_ty_11 = 3 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_MENU_CHANGED : _bindgen_ty_11 = 4 ; pub type _bindgen_ty_11 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_event_t { pub type_ : u32 , pub menu_item : * const rc_client_raintegration_menu_item_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_event_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_event_t > () - 16usize] ; ["Alignment of rc_client_raintegration_event_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_event_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_event_t::type_"] [:: core :: mem :: offset_of ! (rc_client_raintegration_event_t , type_) - 0usize] ; ["Offset of field: rc_client_raintegration_event_t::menu_item"] [:: core :: mem :: offset_of ! (rc_client_raintegration_event_t , menu_item) - 8usize] ; } ; pub type rc_client_raintegration_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (event : * const rc_client_raintegration_event_t , client : * mut rc_client_t) > ; pub type rc_client_raintegration_write_memory_func_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , buffer : * mut u8 , num_bytes : u32 , client : * mut rc_client_t) > ; pub type rc_client_raintegration_get_game_name_func_t = :: core :: option :: Option < unsafe extern "C" fn (buffer : * mut :: core :: ffi :: c_char , buffer_size : u32 , client : * mut rc_client_t) > ; # [doc = " API parameters for a fetch achievement info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_achievement_info_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub first_entry : u32 , pub count : u32 , pub friends_only : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_achievement_info_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_achievement_info_request_t > () - 32usize] ; ["Alignment of rc_api_fetch_achievement_info_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_achievement_info_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::first_entry"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , first_entry) - 20usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::count"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , count) - 24usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::friends_only"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , friends_only) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_achievement_awarded_entry_t { pub username : * const :: core :: ffi :: c_char , pub awarded : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_achievement_awarded_entry_t"] [:: core :: mem :: size_of :: < rc_api_achievement_awarded_entry_t > () - 16usize] ; ["Alignment of rc_api_achievement_awarded_entry_t"] [:: core :: mem :: align_of :: < rc_api_achievement_awarded_entry_t > () - 8usize] ; ["Offset of field: rc_api_achievement_awarded_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_achievement_awarded_entry_t , username) - 0usize] ; ["Offset of field: rc_api_achievement_awarded_entry_t::awarded"] [:: core :: mem :: offset_of ! (rc_api_achievement_awarded_entry_t , awarded) - 8usize] ; } ; # [doc = " Response data for a fetch achievement info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_achievement_info_response_t { pub id : u32 , pub game_id : u32 , pub num_awarded : u32 , pub num_players : u32 , pub recently_awarded : * mut rc_api_achievement_awarded_entry_t , pub num_recently_awarded : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_achievement_info_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_achievement_info_response_t > () - 344usize] ; ["Alignment of rc_api_fetch_achievement_info_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_achievement_info_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , game_id) - 4usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_awarded) - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_players"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_players) - 12usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::recently_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , recently_awarded) - 16usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_recently_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_recently_awarded) - 24usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_fetch_achievement_info_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_achievement_info_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_achievement_info_response (response : * mut rc_api_fetch_achievement_info_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_achievement_info_server_response (response : * mut rc_api_fetch_achievement_info_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_achievement_info_response (response : * mut rc_api_fetch_achievement_info_response_t) ; } # [doc = " API parameters for a fetch leaderboard info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_leaderboard_info_request_t { pub leaderboard_id : u32 , pub count : u32 , pub first_entry : u32 , pub username : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_leaderboard_info_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_leaderboard_info_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_leaderboard_info_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_leaderboard_info_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::count"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , count) - 4usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::first_entry"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , first_entry) - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , username) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_lboard_info_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub index : u32 , pub score : i32 , pub submitted : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_lboard_info_entry_t"] [:: core :: mem :: size_of :: < rc_api_lboard_info_entry_t > () - 32usize] ; ["Alignment of rc_api_lboard_info_entry_t"] [:: core :: mem :: align_of :: < rc_api_lboard_info_entry_t > () - 8usize] ; ["Offset of field: rc_api_lboard_info_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , username) - 0usize] ; ["Offset of field: rc_api_lboard_info_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , rank) - 8usize] ; ["Offset of field: rc_api_lboard_info_entry_t::index"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , index) - 12usize] ; ["Offset of field: rc_api_lboard_info_entry_t::score"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , score) - 16usize] ; ["Offset of field: rc_api_lboard_info_entry_t::submitted"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , submitted) - 24usize] ; } ; # [doc = " Response data for a fetch leaderboard info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_leaderboard_info_response_t { pub id : u32 , pub format : :: core :: ffi :: c_int , pub lower_is_better : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub game_id : u32 , pub author : * const :: core :: ffi :: c_char , pub created : time_t , pub updated : time_t , pub entries : * mut rc_api_lboard_info_entry_t , pub num_entries : u32 , pub total_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_leaderboard_info_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_leaderboard_info_response_t > () - 400usize] ; ["Alignment of rc_api_fetch_leaderboard_info_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_leaderboard_info_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::format"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , format) - 4usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , lower_is_better) - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::title"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , title) - 16usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::description"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , description) - 24usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::definition"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , definition) - 32usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , game_id) - 40usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::author"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , author) - 48usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::created"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , created) - 56usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::updated"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , updated) - 64usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , entries) - 72usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , num_entries) - 80usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::total_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , total_entries) - 84usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , response) - 88usize] ; } ; extern "C" { pub fn rc_api_init_fetch_leaderboard_info_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_leaderboard_info_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_leaderboard_info_response (response : * mut rc_api_fetch_leaderboard_info_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_leaderboard_info_server_response (response : * mut rc_api_fetch_leaderboard_info_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_leaderboard_info_response (response : * mut rc_api_fetch_leaderboard_info_response_t) ; } # [doc = " API parameters for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_games_list_request_t { pub console_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_games_list_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_games_list_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_games_list_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_games_list_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_games_list_request_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_request_t , console_id) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_game_list_entry_t { pub id : u32 , pub name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_game_list_entry_t"] [:: core :: mem :: size_of :: < rc_api_game_list_entry_t > () - 16usize] ; ["Alignment of rc_api_game_list_entry_t"] [:: core :: mem :: align_of :: < rc_api_game_list_entry_t > () - 8usize] ; ["Offset of field: rc_api_game_list_entry_t::id"] [:: core :: mem :: offset_of ! (rc_api_game_list_entry_t , id) - 0usize] ; ["Offset of field: rc_api_game_list_entry_t::name"] [:: core :: mem :: offset_of ! (rc_api_game_list_entry_t , name) - 8usize] ; } ; # [doc = " Response data for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_games_list_response_t { pub entries : * mut rc_api_game_list_entry_t , pub num_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_games_list_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_games_list_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_games_list_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_games_list_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , entries) - 0usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , num_entries) - 8usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_games_list_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_games_list_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_games_list_response (response : * mut rc_api_fetch_games_list_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_games_list_server_response (response : * mut rc_api_fetch_games_list_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_games_list_response (response : * mut rc_api_fetch_games_list_response_t) ; } # [doc = " API parameters for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_titles_request_t { pub game_ids : * const u32 , pub num_game_ids : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_titles_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_titles_request_t > () - 16usize] ; ["Alignment of rc_api_fetch_game_titles_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_titles_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_request_t::game_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_request_t , game_ids) - 0usize] ; ["Offset of field: rc_api_fetch_game_titles_request_t::num_game_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_request_t , num_game_ids) - 8usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_game_title_entry_t { pub id : u32 , pub title : * const :: core :: ffi :: c_char , pub image_name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_game_title_entry_t"] [:: core :: mem :: size_of :: < rc_api_game_title_entry_t > () - 24usize] ; ["Alignment of rc_api_game_title_entry_t"] [:: core :: mem :: align_of :: < rc_api_game_title_entry_t > () - 8usize] ; ["Offset of field: rc_api_game_title_entry_t::id"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , id) - 0usize] ; ["Offset of field: rc_api_game_title_entry_t::title"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , title) - 8usize] ; ["Offset of field: rc_api_game_title_entry_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , image_name) - 16usize] ; } ; # [doc = " Response data for a fetch games title request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_titles_response_t { pub entries : * mut rc_api_game_title_entry_t , pub num_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_titles_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_titles_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_game_titles_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_titles_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , entries) - 0usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , num_entries) - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_game_titles_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_game_titles_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_titles_server_response (response : * mut rc_api_fetch_game_titles_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_game_titles_response (response : * mut rc_api_fetch_game_titles_response_t) ; } pub type __gnuc_va_list = __builtin_va_list ; # [repr (C)] # [derive (Copy , Clone)] pub struct __mbstate_t { pub __count : :: core :: ffi :: c_int , pub __value : __mbstate_t__bindgen_ty_1 , } # [repr (C)] # [derive (Copy , Clone)] pub union __mbstate_t__bindgen_ty_1 { pub __wch : :: core :: ffi :: c_uint , pub __wchb : [:: core :: ffi :: c_char ; 4usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __mbstate_t__bindgen_ty_1"] [:: core :: mem :: size_of :: < __mbstate_t__bindgen_ty_1 > () - 4usize] ; ["Alignment of __mbstate_t__bindgen_ty_1"] [:: core :: mem :: align_of :: < __mbstate_t__bindgen_ty_1 > () - 4usize] ; ["Offset of field: __mbstate_t__bindgen_ty_1::__wch"] [:: core :: mem :: offset_of ! (__mbstate_t__bindgen_ty_1 , __wch) - 0usize] ; ["Offset of field: __mbstate_t__bindgen_ty_1::__wchb"] [:: core :: mem :: offset_of ! (__mbstate_t__bindgen_ty_1 , __wchb) - 0usize] ; } ; impl :: core :: fmt :: Debug for __mbstate_t__bindgen_ty_1 { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "__mbstate_t__bindgen_ty_1 {{ union }}") } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __mbstate_t"] [:: core :: mem :: size_of :: < __mbstate_t > () - 8usize] ; ["Alignment of __mbstate_t"] [:: core :: mem :: align_of :: < __mbstate_t > () - 4usize] ; ["Offset of field: __mbstate_t::__count"] [:: core :: mem :: offset_of ! (__mbstate_t , __count) - 0usize] ; ["Offset of field: __mbstate_t::__value"] [:: core :: mem :: offset_of ! (__mbstate_t , __value) - 4usize] ; } ; impl :: core :: fmt :: Debug for __mbstate_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "__mbstate_t {{ __count: {:?}, __value: {:?} }}" , self . __count , self . __value) } } # [repr (C)] # [derive (Copy , Clone)] pub struct _G_fpos_t { pub __pos : __off_t , pub __state : __mbstate_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _G_fpos_t"] [:: core :: mem :: size_of :: < _G_fpos_t > () - 16usize] ; ["Alignment of _G_fpos_t"] [:: core :: mem :: align_of :: < _G_fpos_t > () - 8usize] ; ["Offset of field: _G_fpos_t::__pos"] [:: core :: mem :: offset_of ! (_G_fpos_t , __pos) - 0usize] ; ["Offset of field: _G_fpos_t::__state"] [:: core :: mem :: offset_of ! (_G_fpos_t , __state) - 8usize] ; } ; impl :: core :: fmt :: Debug for _G_fpos_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "_G_fpos_t {{ __pos: {:?}, __state: {:?} }}" , self . __pos , self . __state) } } pub type __fpos_t = _G_fpos_t ; # [repr (C)] # [derive (Copy , Clone)] pub struct _G_fpos64_t { pub __pos : __off64_t , pub __state : __mbstate_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _G_fpos64_t"] [:: core :: mem :: size_of :: < _G_fpos64_t > () - 16usize] ; ["Alignment of _G_fpos64_t"] [:: core :: mem :: align_of :: < _G_fpos64_t > () - 8usize] ; ["Offset of field: _G_fpos64_t::__pos"] [:: core :: mem :: offset_of ! (_G_fpos64_t , __pos) - 0usize] ; ["Offset of field: _G_fpos64_t::__state"] [:: core :: mem :: offset_of ! (_G_fpos64_t , __state) - 8usize] ; } ; impl :: core :: fmt :: Debug for _G_fpos64_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "_G_fpos64_t {{ __pos: {:?}, __state: {:?} }}" , self . __pos , self . __state) } } pub type __fpos64_t = _G_fpos64_t ; pub type __FILE = _IO_FILE ; pub type FILE = _IO_FILE ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_marker { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_codecvt { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_wide_data { _unused : [u8 ; 0] , } pub type _IO_lock_t = :: core :: ffi :: c_void ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_FILE { pub _flags : :: core :: ffi :: c_int , pub _IO_read_ptr : * mut :: core :: ffi :: c_char , pub _IO_read_end : * mut :: core :: ffi :: c_char , pub _IO_read_base : * mut :: core :: ffi :: c_char , pub _IO_write_base : * mut :: core :: ffi :: c_char , pub _IO_write_ptr : * mut :: core :: ffi :: c_char , pub _IO_write_end : * mut :: core :: ffi :: c_char , pub _IO_buf_base : * mut :: core :: ffi :: c_char , pub _IO_buf_end : * mut :: core :: ffi :: c_char , pub _IO_save_base : * mut :: core :: ffi :: c_char , pub _IO_backup_base : * mut :: core :: ffi :: c_char , pub _IO_save_end : * mut :: core :: ffi :: c_char , pub _markers : * mut _IO_marker , pub _chain : * mut _IO_FILE , pub _fileno : :: core :: ffi :: c_int , pub _bitfield_align_1 : [u32 ; 0] , pub _bitfield_1 : __BindgenBitfieldUnit < [u8 ; 3usize] > , pub _short_backupbuf : [:: core :: ffi :: c_char ; 1usize] , pub _old_offset : __off_t , pub _cur_column : :: core :: ffi :: c_ushort , pub _vtable_offset : :: core :: ffi :: c_schar , pub _shortbuf : [:: core :: ffi :: c_char ; 1usize] , pub _lock : * mut _IO_lock_t , pub _offset : __off64_t , pub _codecvt : * mut _IO_codecvt , pub _wide_data : * mut _IO_wide_data , pub _freeres_list : * mut _IO_FILE , pub _freeres_buf : * mut :: core :: ffi :: c_void , pub _prevchain : * mut * mut _IO_FILE , pub _mode : :: core :: ffi :: c_int , pub _unused3 : :: core :: ffi :: c_int , pub _total_written : __uint64_t , pub _unused2 : [:: core :: ffi :: c_char ; 8usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _IO_FILE"] [:: core :: mem :: size_of :: < _IO_FILE > () - 216usize] ; ["Alignment of _IO_FILE"] [:: core :: mem :: align_of :: < _IO_FILE > () - 8usize] ; ["Offset of field: _IO_FILE::_flags"] [:: core :: mem :: offset_of ! (_IO_FILE , _flags) - 0usize] ; ["Offset of field: _IO_FILE::_IO_read_ptr"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_ptr) - 8usize] ; ["Offset of field: _IO_FILE::_IO_read_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_end) - 16usize] ; ["Offset of field: _IO_FILE::_IO_read_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_base) - 24usize] ; ["Offset of field: _IO_FILE::_IO_write_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_base) - 32usize] ; ["Offset of field: _IO_FILE::_IO_write_ptr"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_ptr) - 40usize] ; ["Offset of field: _IO_FILE::_IO_write_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_end) - 48usize] ; ["Offset of field: _IO_FILE::_IO_buf_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_buf_base) - 56usize] ; ["Offset of field: _IO_FILE::_IO_buf_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_buf_end) - 64usize] ; ["Offset of field: _IO_FILE::_IO_save_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_save_base) - 72usize] ; ["Offset of field: _IO_FILE::_IO_backup_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_backup_base) - 80usize] ; ["Offset of field: _IO_FILE::_IO_save_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_save_end) - 88usize] ; ["Offset of field: _IO_FILE::_markers"] [:: core :: mem :: offset_of ! (_IO_FILE , _markers) - 96usize] ; ["Offset of field: _IO_FILE::_chain"] [:: core :: mem :: offset_of ! (_IO_FILE , _chain) - 104usize] ; ["Offset of field: _IO_FILE::_fileno"] [:: core :: mem :: offset_of ! (_IO_FILE , _fileno) - 112usize] ; ["Offset of field: _IO_FILE::_short_backupbuf"] [:: core :: mem :: offset_of ! (_IO_FILE , _short_backupbuf) - 119usize] ; ["Offset of field: _IO_FILE::_old_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _old_offset) - 120usize] ; ["Offset of field: _IO_FILE::_cur_column"] [:: core :: mem :: offset_of ! (_IO_FILE , _cur_column) - 128usize] ; ["Offset of field: _IO_FILE::_vtable_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _vtable_offset) - 130usize] ; ["Offset of field: _IO_FILE::_shortbuf"] [:: core :: mem :: offset_of ! (_IO_FILE , _shortbuf) - 131usize] ; ["Offset of field: _IO_FILE::_lock"] [:: core :: mem :: offset_of ! (_IO_FILE , _lock) - 136usize] ; ["Offset of field: _IO_FILE::_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _offset) - 144usize] ; ["Offset of field: _IO_FILE::_codecvt"] [:: core :: mem :: offset_of ! (_IO_FILE , _codecvt) - 152usize] ; ["Offset of field: _IO_FILE::_wide_data"] [:: core :: mem :: offset_of ! (_IO_FILE , _wide_data) - 160usize] ; ["Offset of field: _IO_FILE::_freeres_list"] [:: core :: mem :: offset_of ! (_IO_FILE , _freeres_list) - 168usize] ; ["Offset of field: _IO_FILE::_freeres_buf"] [:: core :: mem :: offset_of ! (_IO_FILE , _freeres_buf) - 176usize] ; ["Offset of field: _IO_FILE::_prevchain"] [:: core :: mem :: offset_of ! (_IO_FILE , _prevchain) - 184usize] ; ["Offset of field: _IO_FILE::_mode"] [:: core :: mem :: offset_of ! (_IO_FILE , _mode) - 192usize] ; ["Offset of field: _IO_FILE::_unused3"] [:: core :: mem :: offset_of ! (_IO_FILE , _unused3) - 196usize] ; ["Offset of field: _IO_FILE::_total_written"] [:: core :: mem :: offset_of ! (_IO_FILE , _total_written) - 200usize] ; ["Offset of field: _IO_FILE::_unused2"] [:: core :: mem :: offset_of ! (_IO_FILE , _unused2) - 208usize] ; } ; impl _IO_FILE { # [inline] pub fn _flags2 (& self) -> :: core :: ffi :: c_int { unsafe { :: core :: mem :: transmute (self . _bitfield_1 . get (0usize , 24u8) as u32) } } # [inline] pub fn set__flags2 (& mut self , val : :: core :: ffi :: c_int) { unsafe { let val : u32 = :: core :: mem :: transmute (val) ; self . _bitfield_1 . set (0usize , 24u8 , val as u64) } } # [inline] pub fn new_bitfield_1 (_flags2 : :: core :: ffi :: c_int) -> __BindgenBitfieldUnit < [u8 ; 3usize] > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [u8 ; 3usize] > = Default :: default () ; __bindgen_bitfield_unit . set (0usize , 24u8 , { let _flags2 : u32 = unsafe { :: core :: mem :: transmute (_flags2) } ; _flags2 as u64 }) ; __bindgen_bitfield_unit } } pub type cookie_read_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __buf : * mut :: core :: ffi :: c_char , __nbytes : usize) -> __ssize_t > ; pub type cookie_write_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __buf : * const :: core :: ffi :: c_char , __nbytes : usize) -> __ssize_t > ; pub type cookie_seek_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __pos : * mut __off64_t , __w : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int > ; pub type cookie_close_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void) -> :: core :: ffi :: 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 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _IO_cookie_io_functions_t"] [:: core :: mem :: size_of :: < _IO_cookie_io_functions_t > () - 32usize] ; ["Alignment of _IO_cookie_io_functions_t"] [:: core :: mem :: align_of :: < _IO_cookie_io_functions_t > () - 8usize] ; ["Offset of field: _IO_cookie_io_functions_t::read"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , read) - 0usize] ; ["Offset of field: _IO_cookie_io_functions_t::write"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , write) - 8usize] ; ["Offset of field: _IO_cookie_io_functions_t::seek"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , seek) - 16usize] ; ["Offset of field: _IO_cookie_io_functions_t::close"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , close) - 24usize] ; } ; 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" { pub static mut stdin : * mut FILE ; } extern "C" { pub static mut stdout : * mut FILE ; } extern "C" { pub static mut stderr : * mut FILE ; } extern "C" { pub fn remove (__filename : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rename (__old : * const :: core :: ffi :: c_char , __new : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn renameat (__oldfd : :: core :: ffi :: c_int , __old : * const :: core :: ffi :: c_char , __newfd : :: core :: ffi :: c_int , __new : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fclose (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn tmpfile () -> * mut FILE ; } extern "C" { pub fn tmpnam (arg1 : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn tmpnam_r (__s : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn tempnam (__dir : * const :: core :: ffi :: c_char , __pfx : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn fflush (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fflush_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fopen (__filename : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn freopen (__filename : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char , __stream : * mut FILE) -> * mut FILE ; } extern "C" { pub fn fdopen (__fd : :: core :: ffi :: c_int , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn fopencookie (__magic_cookie : * mut :: core :: ffi :: c_void , __modes : * const :: core :: ffi :: c_char , __io_funcs : cookie_io_functions_t) -> * mut FILE ; } extern "C" { pub fn fmemopen (__s : * mut :: core :: ffi :: c_void , __len : usize , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn open_memstream (__bufloc : * mut * mut :: core :: ffi :: c_char , __sizeloc : * mut usize) -> * mut FILE ; } extern "C" { pub fn setbuf (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char) ; } extern "C" { pub fn setvbuf (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char , __modes : :: core :: ffi :: c_int , __n : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn setbuffer (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char , __size : usize) ; } extern "C" { pub fn setlinebuf (__stream : * mut FILE) ; } extern "C" { pub fn fprintf (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn printf (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn sprintf (__s : * mut :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vfprintf (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vprintf (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsprintf (__s : * mut :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn snprintf (__s : * mut :: core :: ffi :: c_char , __maxlen : :: core :: ffi :: c_ulong , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsnprintf (__s : * mut :: core :: ffi :: c_char , __maxlen : :: core :: ffi :: c_ulong , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vasprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __f : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn __asprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn asprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vdprintf (__fd : :: core :: ffi :: c_int , __fmt : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn dprintf (__fd : :: core :: ffi :: c_int , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fscanf (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn scanf (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn sscanf (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } pub type __cfloat128 = __BindgenComplex < u128 > ; pub type _Float128 = u128 ; pub type _Float32 = f32 ; pub type _Float64 = f64 ; pub type _Float32x = f64 ; pub type _Float64x = u128 ; extern "C" { # [link_name = "\u{1}__isoc99_fscanf"] pub fn fscanf1 (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_scanf"] pub fn scanf1 (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_sscanf"] pub fn sscanf1 (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vfscanf (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vscanf (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsscanf (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vfscanf"] pub fn vfscanf1 (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vscanf"] pub fn vscanf1 (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vsscanf"] pub fn vsscanf1 (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgetc (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getc (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getchar () -> :: core :: ffi :: c_int ; } extern "C" { pub fn getc_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getchar_unlocked () -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgetc_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fputc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putchar (__c : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fputc_unlocked (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putc_unlocked (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putchar_unlocked (__c : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getw (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putw (__w : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgets (__s : * mut :: core :: ffi :: c_char , __n : :: core :: ffi :: c_int , __stream : * mut FILE) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn __getdelim (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __delimiter : :: core :: ffi :: c_int , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn getdelim (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __delimiter : :: core :: ffi :: c_int , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn getline (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn fputs (__s : * const :: core :: ffi :: c_char , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn puts (__s : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ungetc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fread (__ptr : * mut :: core :: ffi :: c_void , __size : :: core :: ffi :: c_ulong , __n : :: core :: ffi :: c_ulong , __stream : * mut FILE) -> :: core :: ffi :: c_ulong ; } extern "C" { pub fn fwrite (__ptr : * const :: core :: ffi :: c_void , __size : :: core :: ffi :: c_ulong , __n : :: core :: ffi :: c_ulong , __s : * mut FILE) -> :: core :: ffi :: c_ulong ; } extern "C" { pub fn fread_unlocked (__ptr : * mut :: core :: ffi :: c_void , __size : usize , __n : usize , __stream : * mut FILE) -> usize ; } extern "C" { pub fn fwrite_unlocked (__ptr : * const :: core :: ffi :: c_void , __size : usize , __n : usize , __stream : * mut FILE) -> usize ; } extern "C" { pub fn fseek (__stream : * mut FILE , __off : :: core :: ffi :: c_long , __whence : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ftell (__stream : * mut FILE) -> :: core :: ffi :: c_long ; } extern "C" { pub fn rewind (__stream : * mut FILE) ; } extern "C" { pub fn fseeko (__stream : * mut FILE , __off : __off_t , __whence : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ftello (__stream : * mut FILE) -> __off_t ; } extern "C" { pub fn fgetpos (__stream : * mut FILE , __pos : * mut fpos_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fsetpos (__stream : * mut FILE , __pos : * const fpos_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clearerr (__stream : * mut FILE) ; } extern "C" { pub fn feof (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ferror (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clearerr_unlocked (__stream : * mut FILE) ; } extern "C" { pub fn feof_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ferror_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn perror (__s : * const :: core :: ffi :: c_char) ; } extern "C" { pub fn fileno (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fileno_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn pclose (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn popen (__command : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn ctermid (__s : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn flockfile (__stream : * mut FILE) ; } extern "C" { pub fn ftrylockfile (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn funlockfile (__stream : * mut FILE) ; } extern "C" { pub fn __uflow (arg1 : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn __overflow (arg1 : * mut FILE , arg2 : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } pub const RC_CONSOLE_UNKNOWN : _bindgen_ty_12 = 0 ; pub const RC_CONSOLE_MEGA_DRIVE : _bindgen_ty_12 = 1 ; pub const RC_CONSOLE_NINTENDO_64 : _bindgen_ty_12 = 2 ; pub const RC_CONSOLE_SUPER_NINTENDO : _bindgen_ty_12 = 3 ; pub const RC_CONSOLE_GAMEBOY : _bindgen_ty_12 = 4 ; pub const RC_CONSOLE_GAMEBOY_ADVANCE : _bindgen_ty_12 = 5 ; pub const RC_CONSOLE_GAMEBOY_COLOR : _bindgen_ty_12 = 6 ; pub const RC_CONSOLE_NINTENDO : _bindgen_ty_12 = 7 ; pub const RC_CONSOLE_PC_ENGINE : _bindgen_ty_12 = 8 ; pub const RC_CONSOLE_SEGA_CD : _bindgen_ty_12 = 9 ; pub const RC_CONSOLE_SEGA_32X : _bindgen_ty_12 = 10 ; pub const RC_CONSOLE_MASTER_SYSTEM : _bindgen_ty_12 = 11 ; pub const RC_CONSOLE_PLAYSTATION : _bindgen_ty_12 = 12 ; pub const RC_CONSOLE_ATARI_LYNX : _bindgen_ty_12 = 13 ; pub const RC_CONSOLE_NEOGEO_POCKET : _bindgen_ty_12 = 14 ; pub const RC_CONSOLE_GAME_GEAR : _bindgen_ty_12 = 15 ; pub const RC_CONSOLE_GAMECUBE : _bindgen_ty_12 = 16 ; pub const RC_CONSOLE_ATARI_JAGUAR : _bindgen_ty_12 = 17 ; pub const RC_CONSOLE_NINTENDO_DS : _bindgen_ty_12 = 18 ; pub const RC_CONSOLE_WII : _bindgen_ty_12 = 19 ; pub const RC_CONSOLE_WII_U : _bindgen_ty_12 = 20 ; pub const RC_CONSOLE_PLAYSTATION_2 : _bindgen_ty_12 = 21 ; pub const RC_CONSOLE_XBOX : _bindgen_ty_12 = 22 ; pub const RC_CONSOLE_MAGNAVOX_ODYSSEY2 : _bindgen_ty_12 = 23 ; pub const RC_CONSOLE_POKEMON_MINI : _bindgen_ty_12 = 24 ; pub const RC_CONSOLE_ATARI_2600 : _bindgen_ty_12 = 25 ; pub const RC_CONSOLE_MS_DOS : _bindgen_ty_12 = 26 ; pub const RC_CONSOLE_ARCADE : _bindgen_ty_12 = 27 ; pub const RC_CONSOLE_VIRTUAL_BOY : _bindgen_ty_12 = 28 ; pub const RC_CONSOLE_MSX : _bindgen_ty_12 = 29 ; pub const RC_CONSOLE_COMMODORE_64 : _bindgen_ty_12 = 30 ; pub const RC_CONSOLE_ZX81 : _bindgen_ty_12 = 31 ; pub const RC_CONSOLE_ORIC : _bindgen_ty_12 = 32 ; pub const RC_CONSOLE_SG1000 : _bindgen_ty_12 = 33 ; pub const RC_CONSOLE_VIC20 : _bindgen_ty_12 = 34 ; pub const RC_CONSOLE_AMIGA : _bindgen_ty_12 = 35 ; pub const RC_CONSOLE_ATARI_ST : _bindgen_ty_12 = 36 ; pub const RC_CONSOLE_AMSTRAD_PC : _bindgen_ty_12 = 37 ; pub const RC_CONSOLE_APPLE_II : _bindgen_ty_12 = 38 ; pub const RC_CONSOLE_SATURN : _bindgen_ty_12 = 39 ; pub const RC_CONSOLE_DREAMCAST : _bindgen_ty_12 = 40 ; pub const RC_CONSOLE_PSP : _bindgen_ty_12 = 41 ; pub const RC_CONSOLE_CDI : _bindgen_ty_12 = 42 ; pub const RC_CONSOLE_3DO : _bindgen_ty_12 = 43 ; pub const RC_CONSOLE_COLECOVISION : _bindgen_ty_12 = 44 ; pub const RC_CONSOLE_INTELLIVISION : _bindgen_ty_12 = 45 ; pub const RC_CONSOLE_VECTREX : _bindgen_ty_12 = 46 ; pub const RC_CONSOLE_PC8800 : _bindgen_ty_12 = 47 ; pub const RC_CONSOLE_PC9800 : _bindgen_ty_12 = 48 ; pub const RC_CONSOLE_PCFX : _bindgen_ty_12 = 49 ; pub const RC_CONSOLE_ATARI_5200 : _bindgen_ty_12 = 50 ; pub const RC_CONSOLE_ATARI_7800 : _bindgen_ty_12 = 51 ; pub const RC_CONSOLE_X68K : _bindgen_ty_12 = 52 ; pub const RC_CONSOLE_WONDERSWAN : _bindgen_ty_12 = 53 ; pub const RC_CONSOLE_CASSETTEVISION : _bindgen_ty_12 = 54 ; pub const RC_CONSOLE_SUPER_CASSETTEVISION : _bindgen_ty_12 = 55 ; pub const RC_CONSOLE_NEO_GEO_CD : _bindgen_ty_12 = 56 ; pub const RC_CONSOLE_FAIRCHILD_CHANNEL_F : _bindgen_ty_12 = 57 ; pub const RC_CONSOLE_FM_TOWNS : _bindgen_ty_12 = 58 ; pub const RC_CONSOLE_ZX_SPECTRUM : _bindgen_ty_12 = 59 ; pub const RC_CONSOLE_GAME_AND_WATCH : _bindgen_ty_12 = 60 ; pub const RC_CONSOLE_NOKIA_NGAGE : _bindgen_ty_12 = 61 ; pub const RC_CONSOLE_NINTENDO_3DS : _bindgen_ty_12 = 62 ; pub const RC_CONSOLE_SUPERVISION : _bindgen_ty_12 = 63 ; pub const RC_CONSOLE_SHARPX1 : _bindgen_ty_12 = 64 ; pub const RC_CONSOLE_TIC80 : _bindgen_ty_12 = 65 ; pub const RC_CONSOLE_THOMSONTO8 : _bindgen_ty_12 = 66 ; pub const RC_CONSOLE_PC6000 : _bindgen_ty_12 = 67 ; pub const RC_CONSOLE_PICO : _bindgen_ty_12 = 68 ; pub const RC_CONSOLE_MEGADUCK : _bindgen_ty_12 = 69 ; pub const RC_CONSOLE_ZEEBO : _bindgen_ty_12 = 70 ; pub const RC_CONSOLE_ARDUBOY : _bindgen_ty_12 = 71 ; pub const RC_CONSOLE_WASM4 : _bindgen_ty_12 = 72 ; pub const RC_CONSOLE_ARCADIA_2001 : _bindgen_ty_12 = 73 ; pub const RC_CONSOLE_INTERTON_VC_4000 : _bindgen_ty_12 = 74 ; pub const RC_CONSOLE_ELEKTOR_TV_GAMES_COMPUTER : _bindgen_ty_12 = 75 ; pub const RC_CONSOLE_PC_ENGINE_CD : _bindgen_ty_12 = 76 ; pub const RC_CONSOLE_ATARI_JAGUAR_CD : _bindgen_ty_12 = 77 ; pub const RC_CONSOLE_NINTENDO_DSI : _bindgen_ty_12 = 78 ; pub const RC_CONSOLE_TI83 : _bindgen_ty_12 = 79 ; pub const RC_CONSOLE_UZEBOX : _bindgen_ty_12 = 80 ; pub const RC_CONSOLE_HUBS : _bindgen_ty_12 = 100 ; pub const RC_CONSOLE_EVENTS : _bindgen_ty_12 = 101 ; pub const RC_CONSOLE_STANDALONE : _bindgen_ty_12 = 102 ; # [doc = "\\\n| Console identifiers                                                         |\n\\"] pub type _bindgen_ty_12 = :: core :: ffi :: c_uint ; extern "C" { pub fn rc_console_name (console_id : u32) -> * const :: core :: ffi :: c_char ; } pub const RC_MEMORY_TYPE_SYSTEM_RAM : _bindgen_ty_13 = 0 ; pub const RC_MEMORY_TYPE_SAVE_RAM : _bindgen_ty_13 = 1 ; pub const RC_MEMORY_TYPE_VIDEO_RAM : _bindgen_ty_13 = 2 ; pub const RC_MEMORY_TYPE_READONLY : _bindgen_ty_13 = 3 ; pub const RC_MEMORY_TYPE_HARDWARE_CONTROLLER : _bindgen_ty_13 = 4 ; pub const RC_MEMORY_TYPE_VIRTUAL_RAM : _bindgen_ty_13 = 5 ; pub const RC_MEMORY_TYPE_UNUSED : _bindgen_ty_13 = 6 ; # [doc = "\\\n| Memory mapping                                                              |\n\\"] pub type _bindgen_ty_13 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memory_region_t { pub start_address : u32 , pub end_address : u32 , pub real_address : u32 , pub type_ : u8 , pub description : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memory_region_t"] [:: core :: mem :: size_of :: < rc_memory_region_t > () - 24usize] ; ["Alignment of rc_memory_region_t"] [:: core :: mem :: align_of :: < rc_memory_region_t > () - 8usize] ; ["Offset of field: rc_memory_region_t::start_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , start_address) - 0usize] ; ["Offset of field: rc_memory_region_t::end_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , end_address) - 4usize] ; ["Offset of field: rc_memory_region_t::real_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , real_address) - 8usize] ; ["Offset of field: rc_memory_region_t::type_"] [:: core :: mem :: offset_of ! (rc_memory_region_t , type_) - 12usize] ; ["Offset of field: rc_memory_region_t::description"] [:: core :: mem :: offset_of ! (rc_memory_region_t , description) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memory_regions_t { pub region : * const rc_memory_region_t , pub num_regions : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memory_regions_t"] [:: core :: mem :: size_of :: < rc_memory_regions_t > () - 16usize] ; ["Alignment of rc_memory_regions_t"] [:: core :: mem :: align_of :: < rc_memory_regions_t > () - 8usize] ; ["Offset of field: rc_memory_regions_t::region"] [:: core :: mem :: offset_of ! (rc_memory_regions_t , region) - 0usize] ; ["Offset of field: rc_memory_regions_t::num_regions"] [:: core :: mem :: offset_of ! (rc_memory_regions_t , num_regions) - 8usize] ; } ; extern "C" { pub fn rc_console_memory_regions (console_id : u32) -> * const rc_memory_regions_t ; } extern "C" { pub fn rc_hash_generate_from_buffer (hash : * mut :: core :: ffi :: c_char , console_id : u32 , buffer : * const u8 , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_hash_generate_from_file (hash : * mut :: core :: ffi :: c_char , console_id : u32 , path : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_iterator { pub buffer : * const u8 , pub buffer_size : usize , pub consoles : [u8 ; 12usize] , pub index : :: core :: ffi :: c_int , pub path : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_iterator"] [:: core :: mem :: size_of :: < rc_hash_iterator > () - 40usize] ; ["Alignment of rc_hash_iterator"] [:: core :: mem :: align_of :: < rc_hash_iterator > () - 8usize] ; ["Offset of field: rc_hash_iterator::buffer"] [:: core :: mem :: offset_of ! (rc_hash_iterator , buffer) - 0usize] ; ["Offset of field: rc_hash_iterator::buffer_size"] [:: core :: mem :: offset_of ! (rc_hash_iterator , buffer_size) - 8usize] ; ["Offset of field: rc_hash_iterator::consoles"] [:: core :: mem :: offset_of ! (rc_hash_iterator , consoles) - 16usize] ; ["Offset of field: rc_hash_iterator::index"] [:: core :: mem :: offset_of ! (rc_hash_iterator , index) - 28usize] ; ["Offset of field: rc_hash_iterator::path"] [:: core :: mem :: offset_of ! (rc_hash_iterator , path) - 32usize] ; } ; pub type rc_hash_iterator_t = rc_hash_iterator ; extern "C" { pub fn rc_hash_initialize_iterator (iterator : * mut rc_hash_iterator , path : * const :: core :: ffi :: c_char , buffer : * const u8 , buffer_size : usize) ; } extern "C" { pub fn rc_hash_destroy_iterator (iterator : * mut rc_hash_iterator) ; } extern "C" { pub fn rc_hash_iterate (hash : * mut :: core :: ffi :: c_char , iterator : * mut rc_hash_iterator) -> :: core :: ffi :: c_int ; } pub type rc_hash_message_callback = :: core :: option :: Option < unsafe extern "C" fn (arg1 : * const :: core :: ffi :: c_char) > ; extern "C" { pub fn rc_hash_init_error_message_callback (callback : rc_hash_message_callback) ; } extern "C" { pub fn rc_hash_init_verbose_message_callback (callback : rc_hash_message_callback) ; } pub type rc_hash_filereader_open_file_handler = :: core :: option :: Option < unsafe extern "C" fn (path_utf8 : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_void > ; pub type rc_hash_filereader_seek_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void , offset : i64 , origin : :: core :: ffi :: c_int) > ; pub type rc_hash_filereader_tell_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void) -> i64 > ; pub type rc_hash_filereader_read_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void , buffer : * mut :: core :: ffi :: c_void , requested_bytes : usize) -> usize > ; pub type rc_hash_filereader_close_file_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void) > ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_filereader { pub open : rc_hash_filereader_open_file_handler , pub seek : rc_hash_filereader_seek_handler , pub tell : rc_hash_filereader_tell_handler , pub read : rc_hash_filereader_read_handler , pub close : rc_hash_filereader_close_file_handler , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_filereader"] [:: core :: mem :: size_of :: < rc_hash_filereader > () - 40usize] ; ["Alignment of rc_hash_filereader"] [:: core :: mem :: align_of :: < rc_hash_filereader > () - 8usize] ; ["Offset of field: rc_hash_filereader::open"] [:: core :: mem :: offset_of ! (rc_hash_filereader , open) - 0usize] ; ["Offset of field: rc_hash_filereader::seek"] [:: core :: mem :: offset_of ! (rc_hash_filereader , seek) - 8usize] ; ["Offset of field: rc_hash_filereader::tell"] [:: core :: mem :: offset_of ! (rc_hash_filereader , tell) - 16usize] ; ["Offset of field: rc_hash_filereader::read"] [:: core :: mem :: offset_of ! (rc_hash_filereader , read) - 24usize] ; ["Offset of field: rc_hash_filereader::close"] [:: core :: mem :: offset_of ! (rc_hash_filereader , close) - 32usize] ; } ; extern "C" { pub fn rc_hash_init_custom_filereader (reader : * mut rc_hash_filereader) ; } pub type rc_hash_cdreader_open_track_handler = :: core :: option :: Option < unsafe extern "C" fn (path : * const :: core :: ffi :: c_char , track : u32) -> * mut :: core :: ffi :: c_void > ; pub type rc_hash_cdreader_read_sector_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void , sector : u32 , buffer : * mut :: core :: ffi :: c_void , requested_bytes : usize) -> usize > ; pub type rc_hash_cdreader_close_track_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void) > ; pub type rc_hash_cdreader_first_track_sector_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void) -> u32 > ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_cdreader { pub open_track : rc_hash_cdreader_open_track_handler , pub read_sector : rc_hash_cdreader_read_sector_handler , pub close_track : rc_hash_cdreader_close_track_handler , pub first_track_sector : rc_hash_cdreader_first_track_sector_handler , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_cdreader"] [:: core :: mem :: size_of :: < rc_hash_cdreader > () - 32usize] ; ["Alignment of rc_hash_cdreader"] [:: core :: mem :: align_of :: < rc_hash_cdreader > () - 8usize] ; ["Offset of field: rc_hash_cdreader::open_track"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , open_track) - 0usize] ; ["Offset of field: rc_hash_cdreader::read_sector"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , read_sector) - 8usize] ; ["Offset of field: rc_hash_cdreader::close_track"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , close_track) - 16usize] ; ["Offset of field: rc_hash_cdreader::first_track_sector"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , first_track_sector) - 24usize] ; } ; extern "C" { pub fn rc_hash_get_default_cdreader (cdreader : * mut rc_hash_cdreader) ; } extern "C" { pub fn rc_hash_init_default_cdreader () ; } extern "C" { pub fn rc_hash_init_custom_cdreader (reader : * mut rc_hash_cdreader) ; } pub type rc_hash_3ds_get_cia_normal_key_func = :: core :: option :: Option < unsafe extern "C" fn (common_key_index : u8 , out_normal_key : * mut u8) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_hash_init_3ds_get_cia_normal_key_func (func : rc_hash_3ds_get_cia_normal_key_func) ; } pub type rc_hash_3ds_get_ncch_normal_keys_func = :: core :: option :: Option < unsafe extern "C" fn (primary_key_y : * mut u8 , secondary_key_x_slot : u8 , optional_program_id : * mut u8 , out_primary_key : * mut u8 , out_secondary_key : * mut u8) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_hash_init_3ds_get_ncch_normal_keys_func (func : rc_hash_3ds_get_ncch_normal_keys_func) ; } # [doc = " API parameters for a fetch image request.\n NOTE: fetch image server response is the raw image data. There is no rc_api_process_fetch_image_response function."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_image_request_t { pub image_name : * const :: core :: ffi :: c_char , pub image_type : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_image_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_image_request_t > () - 16usize] ; ["Alignment of rc_api_fetch_image_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_image_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_image_request_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_fetch_image_request_t , image_name) - 0usize] ; ["Offset of field: rc_api_fetch_image_request_t::image_type"] [:: core :: mem :: offset_of ! (rc_api_fetch_image_request_t , image_type) - 8usize] ; } ; extern "C" { pub fn rc_api_init_fetch_image_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_image_request_t) -> :: core :: ffi :: c_int ; } # [doc = " API parameters for a resolve hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_resolve_hash_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_hash : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_resolve_hash_request_t"] [:: core :: mem :: size_of :: < rc_api_resolve_hash_request_t > () - 24usize] ; ["Alignment of rc_api_resolve_hash_request_t"] [:: core :: mem :: align_of :: < rc_api_resolve_hash_request_t > () - 8usize] ; ["Offset of field: rc_api_resolve_hash_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , username) - 0usize] ; ["Offset of field: rc_api_resolve_hash_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_resolve_hash_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , game_hash) - 16usize] ; } ; # [doc = " Response data for a resolve hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_resolve_hash_response_t { pub game_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_resolve_hash_response_t"] [:: core :: mem :: size_of :: < rc_api_resolve_hash_response_t > () - 320usize] ; ["Alignment of rc_api_resolve_hash_response_t"] [:: core :: mem :: align_of :: < rc_api_resolve_hash_response_t > () - 8usize] ; ["Offset of field: rc_api_resolve_hash_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_response_t , game_id) - 0usize] ; ["Offset of field: rc_api_resolve_hash_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_resolve_hash_request (request : * mut rc_api_request_t , api_params : * const rc_api_resolve_hash_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_resolve_hash_response (response : * mut rc_api_resolve_hash_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_resolve_hash_server_response (response : * mut rc_api_resolve_hash_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_resolve_hash_response (response : * mut rc_api_resolve_hash_response_t) ; } # [doc = " API parameters for a fetch game data request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_data_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_data_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_data_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_game_data_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_data_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , game_id) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_leaderboard_definition_t { pub id : u32 , pub format : :: core :: ffi :: c_int , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub lower_is_better : u8 , pub hidden : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_leaderboard_definition_t"] [:: core :: mem :: size_of :: < rc_api_leaderboard_definition_t > () - 40usize] ; ["Alignment of rc_api_leaderboard_definition_t"] [:: core :: mem :: align_of :: < rc_api_leaderboard_definition_t > () - 8usize] ; ["Offset of field: rc_api_leaderboard_definition_t::id"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , id) - 0usize] ; ["Offset of field: rc_api_leaderboard_definition_t::format"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , format) - 4usize] ; ["Offset of field: rc_api_leaderboard_definition_t::title"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , title) - 8usize] ; ["Offset of field: rc_api_leaderboard_definition_t::description"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , description) - 16usize] ; ["Offset of field: rc_api_leaderboard_definition_t::definition"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , definition) - 24usize] ; ["Offset of field: rc_api_leaderboard_definition_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , lower_is_better) - 32usize] ; ["Offset of field: rc_api_leaderboard_definition_t::hidden"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , hidden) - 33usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_achievement_definition_t { pub id : u32 , pub points : u32 , pub category : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub author : * const :: core :: ffi :: c_char , pub badge_name : * const :: core :: ffi :: c_char , pub created : time_t , pub updated : time_t , pub type_ : u32 , pub rarity : f32 , pub rarity_hardcore : f32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_achievement_definition_t"] [:: core :: mem :: size_of :: < rc_api_achievement_definition_t > () - 88usize] ; ["Alignment of rc_api_achievement_definition_t"] [:: core :: mem :: align_of :: < rc_api_achievement_definition_t > () - 8usize] ; ["Offset of field: rc_api_achievement_definition_t::id"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , id) - 0usize] ; ["Offset of field: rc_api_achievement_definition_t::points"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , points) - 4usize] ; ["Offset of field: rc_api_achievement_definition_t::category"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , category) - 8usize] ; ["Offset of field: rc_api_achievement_definition_t::title"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , title) - 16usize] ; ["Offset of field: rc_api_achievement_definition_t::description"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , description) - 24usize] ; ["Offset of field: rc_api_achievement_definition_t::definition"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , definition) - 32usize] ; ["Offset of field: rc_api_achievement_definition_t::author"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , author) - 40usize] ; ["Offset of field: rc_api_achievement_definition_t::badge_name"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , badge_name) - 48usize] ; ["Offset of field: rc_api_achievement_definition_t::created"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , created) - 56usize] ; ["Offset of field: rc_api_achievement_definition_t::updated"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , updated) - 64usize] ; ["Offset of field: rc_api_achievement_definition_t::type_"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , type_) - 72usize] ; ["Offset of field: rc_api_achievement_definition_t::rarity"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , rarity) - 76usize] ; ["Offset of field: rc_api_achievement_definition_t::rarity_hardcore"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , rarity_hardcore) - 80usize] ; } ; # [doc = " Response data for a fetch game data request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_data_response_t { pub id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub image_name : * const :: core :: ffi :: c_char , pub rich_presence_script : * const :: core :: ffi :: c_char , pub achievements : * mut rc_api_achievement_definition_t , pub num_achievements : u32 , pub leaderboards : * mut rc_api_leaderboard_definition_t , pub num_leaderboards : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_data_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_data_response_t > () - 376usize] ; ["Alignment of rc_api_fetch_game_data_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_data_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , console_id) - 4usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::title"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , title) - 8usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , image_name) - 16usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::rich_presence_script"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , rich_presence_script) - 24usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::achievements"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , achievements) - 32usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , num_achievements) - 40usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::leaderboards"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , leaderboards) - 48usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , num_leaderboards) - 56usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , response) - 64usize] ; } ; extern "C" { pub fn rc_api_init_fetch_game_data_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_game_data_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_data_response (response : * mut rc_api_fetch_game_data_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_data_server_response (response : * mut rc_api_fetch_game_data_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_game_data_response (response : * mut rc_api_fetch_game_data_response_t) ; } # [doc = " API parameters for a ping request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_ping_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub rich_presence : * const :: core :: ffi :: c_char , pub game_hash : * const :: core :: ffi :: c_char , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_ping_request_t"] [:: core :: mem :: size_of :: < rc_api_ping_request_t > () - 48usize] ; ["Alignment of rc_api_ping_request_t"] [:: core :: mem :: align_of :: < rc_api_ping_request_t > () - 8usize] ; ["Offset of field: rc_api_ping_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , username) - 0usize] ; ["Offset of field: rc_api_ping_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_ping_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_ping_request_t::rich_presence"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , rich_presence) - 24usize] ; ["Offset of field: rc_api_ping_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , game_hash) - 32usize] ; ["Offset of field: rc_api_ping_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , hardcore) - 40usize] ; } ; # [doc = " Response data for a ping request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_ping_response_t { pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_ping_response_t"] [:: core :: mem :: size_of :: < rc_api_ping_response_t > () - 312usize] ; ["Alignment of rc_api_ping_response_t"] [:: core :: mem :: align_of :: < rc_api_ping_response_t > () - 8usize] ; ["Offset of field: rc_api_ping_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_ping_response_t , response) - 0usize] ; } ; extern "C" { pub fn rc_api_init_ping_request (request : * mut rc_api_request_t , api_params : * const rc_api_ping_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_ping_response (response : * mut rc_api_ping_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_ping_server_response (response : * mut rc_api_ping_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_ping_response (response : * mut rc_api_ping_response_t) ; } # [doc = " API parameters for an award achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_award_achievement_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub hardcore : u32 , pub game_hash : * const :: core :: ffi :: c_char , pub seconds_since_unlock : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_award_achievement_request_t"] [:: core :: mem :: size_of :: < rc_api_award_achievement_request_t > () - 40usize] ; ["Alignment of rc_api_award_achievement_request_t"] [:: core :: mem :: align_of :: < rc_api_award_achievement_request_t > () - 8usize] ; ["Offset of field: rc_api_award_achievement_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , username) - 0usize] ; ["Offset of field: rc_api_award_achievement_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_award_achievement_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_award_achievement_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , hardcore) - 20usize] ; ["Offset of field: rc_api_award_achievement_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_award_achievement_request_t::seconds_since_unlock"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , seconds_since_unlock) - 32usize] ; } ; # [doc = " Response data for an award achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_award_achievement_response_t { pub awarded_achievement_id : u32 , pub new_player_score : u32 , pub new_player_score_softcore : u32 , pub achievements_remaining : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_award_achievement_response_t"] [:: core :: mem :: size_of :: < rc_api_award_achievement_response_t > () - 328usize] ; ["Alignment of rc_api_award_achievement_response_t"] [:: core :: mem :: align_of :: < rc_api_award_achievement_response_t > () - 8usize] ; ["Offset of field: rc_api_award_achievement_response_t::awarded_achievement_id"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , awarded_achievement_id) - 0usize] ; ["Offset of field: rc_api_award_achievement_response_t::new_player_score"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , new_player_score) - 4usize] ; ["Offset of field: rc_api_award_achievement_response_t::new_player_score_softcore"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , new_player_score_softcore) - 8usize] ; ["Offset of field: rc_api_award_achievement_response_t::achievements_remaining"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , achievements_remaining) - 12usize] ; ["Offset of field: rc_api_award_achievement_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_award_achievement_request (request : * mut rc_api_request_t , api_params : * const rc_api_award_achievement_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_award_achievement_response (response : * mut rc_api_award_achievement_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_award_achievement_server_response (response : * mut rc_api_award_achievement_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_award_achievement_response (response : * mut rc_api_award_achievement_response_t) ; } # [doc = " API parameters for a submit lboard entry request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_submit_lboard_entry_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub leaderboard_id : u32 , pub score : i32 , pub game_hash : * const :: core :: ffi :: c_char , pub seconds_since_completion : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_submit_lboard_entry_request_t"] [:: core :: mem :: size_of :: < rc_api_submit_lboard_entry_request_t > () - 40usize] ; ["Alignment of rc_api_submit_lboard_entry_request_t"] [:: core :: mem :: align_of :: < rc_api_submit_lboard_entry_request_t > () - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , username) - 0usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , leaderboard_id) - 16usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , score) - 20usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::seconds_since_completion"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , seconds_since_completion) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_lboard_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub score : i32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_lboard_entry_t"] [:: core :: mem :: size_of :: < rc_api_lboard_entry_t > () - 16usize] ; ["Alignment of rc_api_lboard_entry_t"] [:: core :: mem :: align_of :: < rc_api_lboard_entry_t > () - 8usize] ; ["Offset of field: rc_api_lboard_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , username) - 0usize] ; ["Offset of field: rc_api_lboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , rank) - 8usize] ; ["Offset of field: rc_api_lboard_entry_t::score"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , score) - 12usize] ; } ; # [doc = " Response data for a submit lboard entry request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_submit_lboard_entry_response_t { pub submitted_score : i32 , pub best_score : i32 , pub new_rank : u32 , pub num_entries : u32 , pub top_entries : * mut rc_api_lboard_entry_t , pub num_top_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_submit_lboard_entry_response_t"] [:: core :: mem :: size_of :: < rc_api_submit_lboard_entry_response_t > () - 344usize] ; ["Alignment of rc_api_submit_lboard_entry_response_t"] [:: core :: mem :: align_of :: < rc_api_submit_lboard_entry_response_t > () - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::submitted_score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , submitted_score) - 0usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::best_score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , best_score) - 4usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::new_rank"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , new_rank) - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , num_entries) - 12usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::top_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , top_entries) - 16usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::num_top_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , num_top_entries) - 24usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_submit_lboard_entry_request (request : * mut rc_api_request_t , api_params : * const rc_api_submit_lboard_entry_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_submit_lboard_entry_response (response : * mut rc_api_submit_lboard_entry_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_submit_lboard_entry_server_response (response : * mut rc_api_submit_lboard_entry_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_submit_lboard_entry_response (response : * mut rc_api_submit_lboard_entry_response_t) ; } # [doc = " Callback used to read num_bytes bytes from memory starting at address. If\n num_bytes is greater than 1, the value is read in little-endian from\n memory."] pub type rc_runtime_peek_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , num_bytes : u32 , ud : * mut :: core :: ffi :: c_void) -> u32 > ; # [doc = "\\\n| Runtime                                                                     |\n\\"] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_trigger_t { pub id : u32 , pub trigger : * mut rc_trigger_t , pub buffer : * mut :: core :: ffi :: c_void , pub invalid_memref : * mut rc_memref_t , pub md5 : [u8 ; 16usize] , pub serialized_size : i32 , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_trigger_t"] [:: core :: mem :: size_of :: < rc_runtime_trigger_t > () - 56usize] ; ["Alignment of rc_runtime_trigger_t"] [:: core :: mem :: align_of :: < rc_runtime_trigger_t > () - 8usize] ; ["Offset of field: rc_runtime_trigger_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , id) - 0usize] ; ["Offset of field: rc_runtime_trigger_t::trigger"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , trigger) - 8usize] ; ["Offset of field: rc_runtime_trigger_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , buffer) - 16usize] ; ["Offset of field: rc_runtime_trigger_t::invalid_memref"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , invalid_memref) - 24usize] ; ["Offset of field: rc_runtime_trigger_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , md5) - 32usize] ; ["Offset of field: rc_runtime_trigger_t::serialized_size"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , serialized_size) - 48usize] ; ["Offset of field: rc_runtime_trigger_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , owns_memrefs) - 52usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_lboard_t { pub id : u32 , pub value : i32 , pub lboard : * mut rc_lboard_t , pub buffer : * mut :: core :: ffi :: c_void , pub invalid_memref : * mut rc_memref_t , pub md5 : [u8 ; 16usize] , pub serialized_size : u32 , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_lboard_t"] [:: core :: mem :: size_of :: < rc_runtime_lboard_t > () - 56usize] ; ["Alignment of rc_runtime_lboard_t"] [:: core :: mem :: align_of :: < rc_runtime_lboard_t > () - 8usize] ; ["Offset of field: rc_runtime_lboard_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , id) - 0usize] ; ["Offset of field: rc_runtime_lboard_t::value"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , value) - 4usize] ; ["Offset of field: rc_runtime_lboard_t::lboard"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , lboard) - 8usize] ; ["Offset of field: rc_runtime_lboard_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , buffer) - 16usize] ; ["Offset of field: rc_runtime_lboard_t::invalid_memref"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , invalid_memref) - 24usize] ; ["Offset of field: rc_runtime_lboard_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , md5) - 32usize] ; ["Offset of field: rc_runtime_lboard_t::serialized_size"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , serialized_size) - 48usize] ; ["Offset of field: rc_runtime_lboard_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , owns_memrefs) - 52usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_richpresence_t { pub richpresence : * mut rc_richpresence_t , pub buffer : * mut :: core :: ffi :: c_void , pub previous : * mut rc_runtime_richpresence_t , pub md5 : [u8 ; 16usize] , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_richpresence_t"] [:: core :: mem :: size_of :: < rc_runtime_richpresence_t > () - 48usize] ; ["Alignment of rc_runtime_richpresence_t"] [:: core :: mem :: align_of :: < rc_runtime_richpresence_t > () - 8usize] ; ["Offset of field: rc_runtime_richpresence_t::richpresence"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , richpresence) - 0usize] ; ["Offset of field: rc_runtime_richpresence_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , buffer) - 8usize] ; ["Offset of field: rc_runtime_richpresence_t::previous"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , previous) - 16usize] ; ["Offset of field: rc_runtime_richpresence_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , md5) - 24usize] ; ["Offset of field: rc_runtime_richpresence_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , owns_memrefs) - 40usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_t { pub triggers : * mut rc_runtime_trigger_t , pub trigger_count : u32 , pub trigger_capacity : u32 , pub lboards : * mut rc_runtime_lboard_t , pub lboard_count : u32 , pub lboard_capacity : u32 , pub richpresence : * mut rc_runtime_richpresence_t , pub memrefs : * mut rc_memref_t , pub next_memref : * mut * mut rc_memref_t , pub variables : * mut rc_value_t , pub next_variable : * mut * mut rc_value_t , pub owns_self : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_t"] [:: core :: mem :: size_of :: < rc_runtime_t > () - 80usize] ; ["Alignment of rc_runtime_t"] [:: core :: mem :: align_of :: < rc_runtime_t > () - 8usize] ; ["Offset of field: rc_runtime_t::triggers"] [:: core :: mem :: offset_of ! (rc_runtime_t , triggers) - 0usize] ; ["Offset of field: rc_runtime_t::trigger_count"] [:: core :: mem :: offset_of ! (rc_runtime_t , trigger_count) - 8usize] ; ["Offset of field: rc_runtime_t::trigger_capacity"] [:: core :: mem :: offset_of ! (rc_runtime_t , trigger_capacity) - 12usize] ; ["Offset of field: rc_runtime_t::lboards"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboards) - 16usize] ; ["Offset of field: rc_runtime_t::lboard_count"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboard_count) - 24usize] ; ["Offset of field: rc_runtime_t::lboard_capacity"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboard_capacity) - 28usize] ; ["Offset of field: rc_runtime_t::richpresence"] [:: core :: mem :: offset_of ! (rc_runtime_t , richpresence) - 32usize] ; ["Offset of field: rc_runtime_t::memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_t , memrefs) - 40usize] ; ["Offset of field: rc_runtime_t::next_memref"] [:: core :: mem :: offset_of ! (rc_runtime_t , next_memref) - 48usize] ; ["Offset of field: rc_runtime_t::variables"] [:: core :: mem :: offset_of ! (rc_runtime_t , variables) - 56usize] ; ["Offset of field: rc_runtime_t::next_variable"] [:: core :: mem :: offset_of ! (rc_runtime_t , next_variable) - 64usize] ; ["Offset of field: rc_runtime_t::owns_self"] [:: core :: mem :: offset_of ! (rc_runtime_t , owns_self) - 72usize] ; } ; extern "C" { pub fn rc_runtime_alloc () -> * mut rc_runtime_t ; } extern "C" { pub fn rc_runtime_init (runtime : * mut rc_runtime_t) ; } extern "C" { pub fn rc_runtime_destroy (runtime : * mut rc_runtime_t) ; } extern "C" { pub fn rc_runtime_activate_achievement (runtime : * mut rc_runtime_t , id : u32 , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deactivate_achievement (runtime : * mut rc_runtime_t , id : u32) ; } extern "C" { pub fn rc_runtime_get_achievement (runtime : * const rc_runtime_t , id : u32) -> * mut rc_trigger_t ; } extern "C" { pub fn rc_runtime_get_achievement_measured (runtime : * const rc_runtime_t , id : u32 , measured_value : * mut :: core :: ffi :: c_uint , measured_target : * mut :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_format_achievement_measured (runtime : * const rc_runtime_t , id : u32 , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_activate_lboard (runtime : * mut rc_runtime_t , id : u32 , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deactivate_lboard (runtime : * mut rc_runtime_t , id : u32) ; } extern "C" { pub fn rc_runtime_get_lboard (runtime : * const rc_runtime_t , id : u32) -> * mut rc_lboard_t ; } extern "C" { pub fn rc_runtime_format_lboard_value (buffer : * mut :: core :: ffi :: c_char , size : :: core :: ffi :: c_int , value : i32 , format : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_activate_richpresence (runtime : * mut rc_runtime_t , script : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_get_richpresence (runtime : * const rc_runtime_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_runtime_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } pub const RC_RUNTIME_EVENT_ACHIEVEMENT_ACTIVATED : _bindgen_ty_14 = 0 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PAUSED : _bindgen_ty_14 = 1 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_RESET : _bindgen_ty_14 = 2 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_TRIGGERED : _bindgen_ty_14 = 3 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PRIMED : _bindgen_ty_14 = 4 ; pub const RC_RUNTIME_EVENT_LBOARD_STARTED : _bindgen_ty_14 = 5 ; pub const RC_RUNTIME_EVENT_LBOARD_CANCELED : _bindgen_ty_14 = 6 ; pub const RC_RUNTIME_EVENT_LBOARD_UPDATED : _bindgen_ty_14 = 7 ; pub const RC_RUNTIME_EVENT_LBOARD_TRIGGERED : _bindgen_ty_14 = 8 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_DISABLED : _bindgen_ty_14 = 9 ; pub const RC_RUNTIME_EVENT_LBOARD_DISABLED : _bindgen_ty_14 = 10 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_UNPRIMED : _bindgen_ty_14 = 11 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PROGRESS_UPDATED : _bindgen_ty_14 = 12 ; pub type _bindgen_ty_14 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_event_t { pub id : u32 , pub value : i32 , pub type_ : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_event_t"] [:: core :: mem :: size_of :: < rc_runtime_event_t > () - 12usize] ; ["Alignment of rc_runtime_event_t"] [:: core :: mem :: align_of :: < rc_runtime_event_t > () - 4usize] ; ["Offset of field: rc_runtime_event_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , id) - 0usize] ; ["Offset of field: rc_runtime_event_t::value"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , value) - 4usize] ; ["Offset of field: rc_runtime_event_t::type_"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , type_) - 8usize] ; } ; pub type rc_runtime_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (runtime_event : * const rc_runtime_event_t) > ; extern "C" { pub fn rc_runtime_do_frame (runtime : * mut rc_runtime_t , event_handler : rc_runtime_event_handler_t , peek : rc_runtime_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) ; } extern "C" { pub fn rc_runtime_reset (runtime : * mut rc_runtime_t) ; } pub type rc_runtime_validate_address_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_runtime_validate_addresses (runtime : * mut rc_runtime_t , event_handler : rc_runtime_event_handler_t , validate_handler : rc_runtime_validate_address_t) ; } extern "C" { pub fn rc_runtime_invalidate_address (runtime : * mut rc_runtime_t , address : u32) ; } extern "C" { pub fn rc_runtime_progress_size (runtime : * const rc_runtime_t , L : * mut lua_State) -> u32 ; } extern "C" { pub fn rc_runtime_serialize_progress (buffer : * mut :: core :: ffi :: c_void , runtime : * const rc_runtime_t , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_serialize_progress_sized (buffer : * mut u8 , buffer_size : u32 , runtime : * const rc_runtime_t , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deserialize_progress (runtime : * mut rc_runtime_t , serialized : * const u8 , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deserialize_progress_sized (runtime : * mut rc_runtime_t , serialized : * const u8 , serialized_size : u32 , L : * mut lua_State) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_async_handle_t { _unused : [u8 ; 0] , } # [doc = " Callback used to read num_bytes bytes from memory starting at address into buffer.\n Returns the number of bytes read. A return value of 0 indicates the address was invalid."] pub type rc_client_read_memory_func_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , buffer : * mut u8 , num_bytes : u32 , client : * mut rc_client_t) -> u32 > ; # [doc = " Internal method passed to rc_client_server_call_t to process the server response."] pub type rc_client_server_callback_t = :: core :: option :: Option < unsafe extern "C" fn (server_response : * const rc_api_server_response_t , callback_data : * mut :: core :: ffi :: c_void) > ; # [doc = " Callback used to issue a request to the server."] pub type rc_client_server_call_t = :: core :: option :: Option < unsafe extern "C" fn (request : * const rc_api_request_t , callback : rc_client_server_callback_t , callback_data : * mut :: core :: ffi :: c_void , client : * mut rc_client_t) > ; # [doc = " Generic callback for asynchronous eventing."] pub type rc_client_callback_t = :: core :: option :: Option < unsafe extern "C" fn (result : :: core :: ffi :: c_int , error_message : * const :: core :: ffi :: c_char , client : * mut rc_client_t , userdata : * mut :: core :: ffi :: c_void) > ; # [doc = " Callback for logging or displaying a message."] pub type rc_client_message_callback_t = :: core :: option :: Option < unsafe extern "C" fn (message : * const :: core :: ffi :: c_char , client : * const rc_client_t) > ; extern "C" { # [doc = " Creates a new rc_client_t object."] pub fn rc_client_create (read_memory_function : rc_client_read_memory_func_t , server_call_function : rc_client_server_call_t) -> * mut rc_client_t ; } extern "C" { # [doc = " Releases resources associated to a rc_client_t object.\n Pointer will no longer be valid after making this call."] pub fn rc_client_destroy (client : * mut rc_client_t) ; } extern "C" { # [doc = " Sets whether hardcore is enabled (on by default).\n Can be called with a game loaded.\n Enabling hardcore with a game loaded will raise an RC_CLIENT_EVENT_RESET\n event. Processing will be disabled until rc_client_reset is called."] pub fn rc_client_set_hardcore_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether hardcore is enabled (on by default)."] pub fn rc_client_get_hardcore_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether encore mode is enabled (off by default).\n Evaluated when loading a game. Has no effect while a game is loaded."] pub fn rc_client_set_encore_mode_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether encore mode is enabled (off by default)."] pub fn rc_client_get_encore_mode_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether unofficial achievements should be loaded.\n Evaluated when loading a game. Has no effect while a game is loaded."] pub fn rc_client_set_unofficial_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether unofficial achievements should be loaded."] pub fn rc_client_get_unofficial_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether spectator mode is enabled (off by default).\n If enabled, events for achievement unlocks and leaderboard submissions will be\n raised, but server calls to actually perform the unlock/submit will not occur.\n Can be modified while a game is loaded. Evaluated at unlock/submit time.\n Cannot be modified if disabled before a game is loaded."] pub fn rc_client_set_spectator_mode_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether spectator mode is enabled (off by default)."] pub fn rc_client_get_spectator_mode_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Attaches client-specific data to the runtime."] pub fn rc_client_set_userdata (client : * mut rc_client_t , userdata : * mut :: core :: ffi :: c_void) ; } extern "C" { # [doc = " Gets the client-specific data attached to the runtime."] pub fn rc_client_get_userdata (client : * const rc_client_t) -> * mut :: core :: ffi :: c_void ; } extern "C" { # [doc = " Sets the name of the server to use."] pub fn rc_client_set_host (client : * const rc_client_t , hostname : * const :: core :: ffi :: c_char) ; } pub type rc_clock_t = u64 ; pub type rc_get_time_millisecs_func_t = :: core :: option :: Option < unsafe extern "C" fn (client : * const rc_client_t) -> rc_clock_t > ; extern "C" { # [doc = " Specifies a function that returns a value that increases once per millisecond."] pub fn rc_client_set_get_time_millisecs_function (client : * mut rc_client_t , handler : rc_get_time_millisecs_func_t) ; } extern "C" { # [doc = " Marks an async process as aborted. The associated callback will not be called."] pub fn rc_client_abort_async (client : * mut rc_client_t , async_handle : * mut rc_client_async_handle_t) ; } extern "C" { # [doc = " Gets a clause that can be added to the User-Agent to identify the version of rcheevos being used."] pub fn rc_client_get_user_agent_clause (client : * mut rc_client_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> usize ; } extern "C" { # [doc = " Sets the logging level and provides a callback to be called to do the logging."] pub fn rc_client_enable_logging (client : * mut rc_client_t , level : :: core :: ffi :: c_int , callback : rc_client_message_callback_t) ; } pub const RC_CLIENT_LOG_LEVEL_NONE : _bindgen_ty_15 = 0 ; pub const RC_CLIENT_LOG_LEVEL_ERROR : _bindgen_ty_15 = 1 ; pub const RC_CLIENT_LOG_LEVEL_WARN : _bindgen_ty_15 = 2 ; pub const RC_CLIENT_LOG_LEVEL_INFO : _bindgen_ty_15 = 3 ; pub const RC_CLIENT_LOG_LEVEL_VERBOSE : _bindgen_ty_15 = 4 ; pub const NUM_RC_CLIENT_LOG_LEVELS : _bindgen_ty_15 = 5 ; pub type _bindgen_ty_15 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Attempt to login a user."] pub fn rc_client_begin_login_with_password (client : * mut rc_client_t , username : * const :: core :: ffi :: c_char , password : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Attempt to login a user."] pub fn rc_client_begin_login_with_token (client : * mut rc_client_t , username : * const :: core :: ffi :: c_char , token : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Logout the user."] pub fn rc_client_logout (client : * mut rc_client_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_user_t { pub display_name : * const :: core :: ffi :: c_char , pub username : * const :: core :: ffi :: c_char , pub token : * const :: core :: ffi :: c_char , pub score : u32 , pub score_softcore : u32 , pub num_unread_messages : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_user_t"] [:: core :: mem :: size_of :: < rc_client_user_t > () - 40usize] ; ["Alignment of rc_client_user_t"] [:: core :: mem :: align_of :: < rc_client_user_t > () - 8usize] ; ["Offset of field: rc_client_user_t::display_name"] [:: core :: mem :: offset_of ! (rc_client_user_t , display_name) - 0usize] ; ["Offset of field: rc_client_user_t::username"] [:: core :: mem :: offset_of ! (rc_client_user_t , username) - 8usize] ; ["Offset of field: rc_client_user_t::token"] [:: core :: mem :: offset_of ! (rc_client_user_t , token) - 16usize] ; ["Offset of field: rc_client_user_t::score"] [:: core :: mem :: offset_of ! (rc_client_user_t , score) - 24usize] ; ["Offset of field: rc_client_user_t::score_softcore"] [:: core :: mem :: offset_of ! (rc_client_user_t , score_softcore) - 28usize] ; ["Offset of field: rc_client_user_t::num_unread_messages"] [:: core :: mem :: offset_of ! (rc_client_user_t , num_unread_messages) - 32usize] ; } ; extern "C" { # [doc = " Gets information about the logged in user. Will return NULL if the user is not logged in."] pub fn rc_client_get_user_info (client : * const rc_client_t) -> * const rc_client_user_t ; } extern "C" { # [doc = " Gets the URL for the user's profile picture.\n Returns RC_OK on success."] pub fn rc_client_user_get_image_url (user : * const rc_client_user_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_user_game_summary_t { pub num_core_achievements : u32 , pub num_unofficial_achievements : u32 , pub num_unlocked_achievements : u32 , pub num_unsupported_achievements : u32 , pub points_core : u32 , pub points_unlocked : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_user_game_summary_t"] [:: core :: mem :: size_of :: < rc_client_user_game_summary_t > () - 24usize] ; ["Alignment of rc_client_user_game_summary_t"] [:: core :: mem :: align_of :: < rc_client_user_game_summary_t > () - 4usize] ; ["Offset of field: rc_client_user_game_summary_t::num_core_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_core_achievements) - 0usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unofficial_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unofficial_achievements) - 4usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unlocked_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unlocked_achievements) - 8usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unsupported_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unsupported_achievements) - 12usize] ; ["Offset of field: rc_client_user_game_summary_t::points_core"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , points_core) - 16usize] ; ["Offset of field: rc_client_user_game_summary_t::points_unlocked"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , points_unlocked) - 20usize] ; } ; extern "C" { # [doc = " Gets a breakdown of the number of achievements in the game, and how many the user has unlocked.\n Used for the \"You have unlocked X of Y achievements\" message shown when the game starts."] pub fn rc_client_get_user_game_summary (client : * const rc_client_t , summary : * mut rc_client_user_game_summary_t) ; } extern "C" { # [doc = " Start loading an unidentified game."] pub fn rc_client_begin_identify_and_load_game (client : * mut rc_client_t , console_id : u32 , file_path : * const :: core :: ffi :: c_char , data : * const u8 , data_size : usize , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Start loading a game."] pub fn rc_client_begin_load_game (client : * mut rc_client_t , hash : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Gets the current progress of the asynchronous load game process."] pub fn rc_client_get_load_game_state (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } pub const RC_CLIENT_LOAD_GAME_STATE_NONE : _bindgen_ty_16 = 0 ; pub const RC_CLIENT_LOAD_GAME_STATE_IDENTIFYING_GAME : _bindgen_ty_16 = 1 ; pub const RC_CLIENT_LOAD_GAME_STATE_AWAIT_LOGIN : _bindgen_ty_16 = 2 ; pub const RC_CLIENT_LOAD_GAME_STATE_FETCHING_GAME_DATA : _bindgen_ty_16 = 3 ; pub const RC_CLIENT_LOAD_GAME_STATE_STARTING_SESSION : _bindgen_ty_16 = 4 ; pub const RC_CLIENT_LOAD_GAME_STATE_DONE : _bindgen_ty_16 = 5 ; pub const RC_CLIENT_LOAD_GAME_STATE_ABORTED : _bindgen_ty_16 = 6 ; pub type _bindgen_ty_16 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Determines if a game was successfully identified and loaded."] pub fn rc_client_is_game_loaded (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Unloads the current game."] pub fn rc_client_unload_game (client : * mut rc_client_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_game_t { pub id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub hash : * const :: core :: ffi :: c_char , pub badge_name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_game_t"] [:: core :: mem :: size_of :: < rc_client_game_t > () - 32usize] ; ["Alignment of rc_client_game_t"] [:: core :: mem :: align_of :: < rc_client_game_t > () - 8usize] ; ["Offset of field: rc_client_game_t::id"] [:: core :: mem :: offset_of ! (rc_client_game_t , id) - 0usize] ; ["Offset of field: rc_client_game_t::console_id"] [:: core :: mem :: offset_of ! (rc_client_game_t , console_id) - 4usize] ; ["Offset of field: rc_client_game_t::title"] [:: core :: mem :: offset_of ! (rc_client_game_t , title) - 8usize] ; ["Offset of field: rc_client_game_t::hash"] [:: core :: mem :: offset_of ! (rc_client_game_t , hash) - 16usize] ; ["Offset of field: rc_client_game_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_game_t , badge_name) - 24usize] ; } ; extern "C" { # [doc = " Get information about the current game. Returns NULL if no game is loaded.\n NOTE: returns a dummy game record if an unidentified game is loaded."] pub fn rc_client_get_game_info (client : * const rc_client_t) -> * const rc_client_game_t ; } extern "C" { # [doc = " Gets the URL for the game image.\n Returns RC_OK on success."] pub fn rc_client_game_get_image_url (game : * const rc_client_game_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Changes the active disc in a multi-disc game."] pub fn rc_client_begin_change_media (client : * mut rc_client_t , file_path : * const :: core :: ffi :: c_char , data : * const u8 , data_size : usize , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Changes the active disc in a multi-disc game."] pub fn rc_client_begin_change_media_from_hash (client : * mut rc_client_t , hash : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } # [doc = "\\\n| Subsets                                                                     |\n\\"] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_subset_t { pub id : u32 , pub title : * const :: core :: ffi :: c_char , pub badge_name : [:: core :: ffi :: c_char ; 16usize] , pub num_achievements : u32 , pub num_leaderboards : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_subset_t"] [:: core :: mem :: size_of :: < rc_client_subset_t > () - 40usize] ; ["Alignment of rc_client_subset_t"] [:: core :: mem :: align_of :: < rc_client_subset_t > () - 8usize] ; ["Offset of field: rc_client_subset_t::id"] [:: core :: mem :: offset_of ! (rc_client_subset_t , id) - 0usize] ; ["Offset of field: rc_client_subset_t::title"] [:: core :: mem :: offset_of ! (rc_client_subset_t , title) - 8usize] ; ["Offset of field: rc_client_subset_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_subset_t , badge_name) - 16usize] ; ["Offset of field: rc_client_subset_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_client_subset_t , num_achievements) - 32usize] ; ["Offset of field: rc_client_subset_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_client_subset_t , num_leaderboards) - 36usize] ; } ; extern "C" { pub fn rc_client_get_subset_info (client : * mut rc_client_t , subset_id : u32) -> * const rc_client_subset_t ; } pub const RC_CLIENT_ACHIEVEMENT_STATE_INACTIVE : _bindgen_ty_17 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_ACTIVE : _bindgen_ty_17 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_UNLOCKED : _bindgen_ty_17 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_DISABLED : _bindgen_ty_17 = 3 ; pub const NUM_RC_CLIENT_ACHIEVEMENT_STATES : _bindgen_ty_17 = 4 ; # [doc = "\\\n| Achievements                                                                |\n\\"] pub type _bindgen_ty_17 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_NONE : _bindgen_ty_18 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_CORE : _bindgen_ty_18 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_UNOFFICIAL : _bindgen_ty_18 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_CORE_AND_UNOFFICIAL : _bindgen_ty_18 = 3 ; pub type _bindgen_ty_18 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_STANDARD : _bindgen_ty_19 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_MISSABLE : _bindgen_ty_19 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_PROGRESSION : _bindgen_ty_19 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_WIN : _bindgen_ty_19 = 3 ; pub type _bindgen_ty_19 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNKNOWN : _bindgen_ty_20 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_LOCKED : _bindgen_ty_20 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNLOCKED : _bindgen_ty_20 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNSUPPORTED : _bindgen_ty_20 = 3 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNOFFICIAL : _bindgen_ty_20 = 4 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_RECENTLY_UNLOCKED : _bindgen_ty_20 = 5 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_ACTIVE_CHALLENGE : _bindgen_ty_20 = 6 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_ALMOST_THERE : _bindgen_ty_20 = 7 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNSYNCED : _bindgen_ty_20 = 8 ; pub const NUM_RC_CLIENT_ACHIEVEMENT_BUCKETS : _bindgen_ty_20 = 9 ; pub type _bindgen_ty_20 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_NONE : _bindgen_ty_21 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_SOFTCORE : _bindgen_ty_21 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_HARDCORE : _bindgen_ty_21 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_BOTH : _bindgen_ty_21 = 3 ; pub type _bindgen_ty_21 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_t { pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub badge_name : [:: core :: ffi :: c_char ; 8usize] , pub measured_progress : [:: core :: ffi :: c_char ; 24usize] , pub measured_percent : f32 , pub id : u32 , pub points : u32 , pub unlock_time : time_t , pub state : u8 , pub category : u8 , pub bucket : u8 , pub unlocked : u8 , pub rarity : f32 , pub rarity_hardcore : f32 , pub type_ : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_t"] [:: core :: mem :: size_of :: < rc_client_achievement_t > () - 88usize] ; ["Alignment of rc_client_achievement_t"] [:: core :: mem :: align_of :: < rc_client_achievement_t > () - 8usize] ; ["Offset of field: rc_client_achievement_t::title"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , title) - 0usize] ; ["Offset of field: rc_client_achievement_t::description"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , description) - 8usize] ; ["Offset of field: rc_client_achievement_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , badge_name) - 16usize] ; ["Offset of field: rc_client_achievement_t::measured_progress"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , measured_progress) - 24usize] ; ["Offset of field: rc_client_achievement_t::measured_percent"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , measured_percent) - 48usize] ; ["Offset of field: rc_client_achievement_t::id"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , id) - 52usize] ; ["Offset of field: rc_client_achievement_t::points"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , points) - 56usize] ; ["Offset of field: rc_client_achievement_t::unlock_time"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , unlock_time) - 64usize] ; ["Offset of field: rc_client_achievement_t::state"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , state) - 72usize] ; ["Offset of field: rc_client_achievement_t::category"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , category) - 73usize] ; ["Offset of field: rc_client_achievement_t::bucket"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , bucket) - 74usize] ; ["Offset of field: rc_client_achievement_t::unlocked"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , unlocked) - 75usize] ; ["Offset of field: rc_client_achievement_t::rarity"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , rarity) - 76usize] ; ["Offset of field: rc_client_achievement_t::rarity_hardcore"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , rarity_hardcore) - 80usize] ; ["Offset of field: rc_client_achievement_t::type_"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , type_) - 84usize] ; } ; extern "C" { # [doc = " Get information about an achievement. Returns NULL if not found."] pub fn rc_client_get_achievement_info (client : * mut rc_client_t , id : u32) -> * const rc_client_achievement_t ; } extern "C" { # [doc = " Gets the URL for the achievement image.\n Returns RC_OK on success."] pub fn rc_client_achievement_get_image_url (achievement : * const rc_client_achievement_t , state : :: core :: ffi :: c_int , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_bucket_t { pub achievements : * mut * mut rc_client_achievement_t , pub num_achievements : u32 , pub label : * const :: core :: ffi :: c_char , pub subset_id : u32 , pub bucket_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_bucket_t"] [:: core :: mem :: size_of :: < rc_client_achievement_bucket_t > () - 32usize] ; ["Alignment of rc_client_achievement_bucket_t"] [:: core :: mem :: align_of :: < rc_client_achievement_bucket_t > () - 8usize] ; ["Offset of field: rc_client_achievement_bucket_t::achievements"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , achievements) - 0usize] ; ["Offset of field: rc_client_achievement_bucket_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , num_achievements) - 8usize] ; ["Offset of field: rc_client_achievement_bucket_t::label"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , label) - 16usize] ; ["Offset of field: rc_client_achievement_bucket_t::subset_id"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , subset_id) - 24usize] ; ["Offset of field: rc_client_achievement_bucket_t::bucket_type"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , bucket_type) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_list_t { pub buckets : * mut rc_client_achievement_bucket_t , pub num_buckets : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_list_t"] [:: core :: mem :: size_of :: < rc_client_achievement_list_t > () - 16usize] ; ["Alignment of rc_client_achievement_list_t"] [:: core :: mem :: align_of :: < rc_client_achievement_list_t > () - 8usize] ; ["Offset of field: rc_client_achievement_list_t::buckets"] [:: core :: mem :: offset_of ! (rc_client_achievement_list_t , buckets) - 0usize] ; ["Offset of field: rc_client_achievement_list_t::num_buckets"] [:: core :: mem :: offset_of ! (rc_client_achievement_list_t , num_buckets) - 8usize] ; } ; pub const RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_LOCK_STATE : _bindgen_ty_22 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_PROGRESS : _bindgen_ty_22 = 1 ; pub type _bindgen_ty_22 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Creates a list of achievements matching the specified category and grouping.\n Returns an allocated list that must be free'd by calling rc_client_destroy_achievement_list."] pub fn rc_client_create_achievement_list (client : * mut rc_client_t , category : :: core :: ffi :: c_int , grouping : :: core :: ffi :: c_int) -> * mut rc_client_achievement_list_t ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_get_achievement_list."] pub fn rc_client_destroy_achievement_list (list : * mut rc_client_achievement_list_t) ; } extern "C" { # [doc = " Returns non-zero if there are any achievements that can be queried through rc_client_create_achievement_list()."] pub fn rc_client_has_achievements (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } pub const RC_CLIENT_LEADERBOARD_STATE_INACTIVE : _bindgen_ty_23 = 0 ; pub const RC_CLIENT_LEADERBOARD_STATE_ACTIVE : _bindgen_ty_23 = 1 ; pub const RC_CLIENT_LEADERBOARD_STATE_TRACKING : _bindgen_ty_23 = 2 ; pub const RC_CLIENT_LEADERBOARD_STATE_DISABLED : _bindgen_ty_23 = 3 ; pub const NUM_RC_CLIENT_LEADERBOARD_STATES : _bindgen_ty_23 = 4 ; # [doc = "\\\n| Leaderboards                                                                |\n\\"] pub type _bindgen_ty_23 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_LEADERBOARD_FORMAT_TIME : _bindgen_ty_24 = 0 ; pub const RC_CLIENT_LEADERBOARD_FORMAT_SCORE : _bindgen_ty_24 = 1 ; pub const RC_CLIENT_LEADERBOARD_FORMAT_VALUE : _bindgen_ty_24 = 2 ; pub const NUM_RC_CLIENT_LEADERBOARD_FORMATS : _bindgen_ty_24 = 3 ; pub type _bindgen_ty_24 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_t { pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub tracker_value : * const :: core :: ffi :: c_char , pub id : u32 , pub state : u8 , pub format : u8 , pub lower_is_better : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_t > () - 32usize] ; ["Alignment of rc_client_leaderboard_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_t::title"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , title) - 0usize] ; ["Offset of field: rc_client_leaderboard_t::description"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , description) - 8usize] ; ["Offset of field: rc_client_leaderboard_t::tracker_value"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , tracker_value) - 16usize] ; ["Offset of field: rc_client_leaderboard_t::id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , id) - 24usize] ; ["Offset of field: rc_client_leaderboard_t::state"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , state) - 28usize] ; ["Offset of field: rc_client_leaderboard_t::format"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , format) - 29usize] ; ["Offset of field: rc_client_leaderboard_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , lower_is_better) - 30usize] ; } ; extern "C" { # [doc = " Get information about a leaderboard. Returns NULL if not found."] pub fn rc_client_get_leaderboard_info (client : * const rc_client_t , id : u32) -> * const rc_client_leaderboard_t ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_tracker_t { pub display : [:: core :: ffi :: c_char ; 24usize] , pub id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_tracker_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_tracker_t > () - 28usize] ; ["Alignment of rc_client_leaderboard_tracker_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_tracker_t > () - 4usize] ; ["Offset of field: rc_client_leaderboard_tracker_t::display"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_tracker_t , display) - 0usize] ; ["Offset of field: rc_client_leaderboard_tracker_t::id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_tracker_t , id) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_bucket_t { pub leaderboards : * mut * mut rc_client_leaderboard_t , pub num_leaderboards : u32 , pub label : * const :: core :: ffi :: c_char , pub subset_id : u32 , pub bucket_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_bucket_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_bucket_t > () - 32usize] ; ["Alignment of rc_client_leaderboard_bucket_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_bucket_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::leaderboards"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , leaderboards) - 0usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , num_leaderboards) - 8usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::label"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , label) - 16usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::subset_id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , subset_id) - 24usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::bucket_type"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , bucket_type) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_list_t { pub buckets : * mut rc_client_leaderboard_bucket_t , pub num_buckets : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_list_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_list_t > () - 16usize] ; ["Alignment of rc_client_leaderboard_list_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_list_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_list_t::buckets"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_list_t , buckets) - 0usize] ; ["Offset of field: rc_client_leaderboard_list_t::num_buckets"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_list_t , num_buckets) - 8usize] ; } ; pub const RC_CLIENT_LEADERBOARD_BUCKET_UNKNOWN : _bindgen_ty_25 = 0 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_INACTIVE : _bindgen_ty_25 = 1 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_ACTIVE : _bindgen_ty_25 = 2 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_UNSUPPORTED : _bindgen_ty_25 = 3 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_ALL : _bindgen_ty_25 = 4 ; pub const NUM_RC_CLIENT_LEADERBOARD_BUCKETS : _bindgen_ty_25 = 5 ; pub type _bindgen_ty_25 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_LEADERBOARD_LIST_GROUPING_NONE : _bindgen_ty_26 = 0 ; pub const RC_CLIENT_LEADERBOARD_LIST_GROUPING_TRACKING : _bindgen_ty_26 = 1 ; pub type _bindgen_ty_26 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Creates a list of leaderboards matching the specified grouping.\n Returns an allocated list that must be free'd by calling rc_client_destroy_leaderboard_list."] pub fn rc_client_create_leaderboard_list (client : * mut rc_client_t , grouping : :: core :: ffi :: c_int) -> * mut rc_client_leaderboard_list_t ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_get_leaderboard_list."] pub fn rc_client_destroy_leaderboard_list (list : * mut rc_client_leaderboard_list_t) ; } extern "C" { # [doc = " Returns non-zero if the current game has any leaderboards."] pub fn rc_client_has_leaderboards (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_entry_t { pub user : * const :: core :: ffi :: c_char , pub display : [:: core :: ffi :: c_char ; 24usize] , pub submitted : time_t , pub rank : u32 , pub index : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_entry_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_entry_t > () - 48usize] ; ["Alignment of rc_client_leaderboard_entry_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_entry_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_t::user"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , user) - 0usize] ; ["Offset of field: rc_client_leaderboard_entry_t::display"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , display) - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_t::submitted"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , submitted) - 32usize] ; ["Offset of field: rc_client_leaderboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , rank) - 40usize] ; ["Offset of field: rc_client_leaderboard_entry_t::index"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , index) - 44usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_entry_list_t { pub entries : * mut rc_client_leaderboard_entry_t , pub num_entries : u32 , pub total_entries : u32 , pub user_index : i32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_entry_list_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_entry_list_t > () - 24usize] ; ["Alignment of rc_client_leaderboard_entry_list_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_entry_list_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , entries) - 0usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::num_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , num_entries) - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::total_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , total_entries) - 12usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::user_index"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , user_index) - 16usize] ; } ; pub type rc_client_fetch_leaderboard_entries_callback_t = :: core :: option :: Option < unsafe extern "C" fn (result : :: core :: ffi :: c_int , error_message : * const :: core :: ffi :: c_char , list : * mut rc_client_leaderboard_entry_list_t , client : * mut rc_client_t , callback_userdata : * mut :: core :: ffi :: c_void) > ; extern "C" { # [doc = " Fetches a list of leaderboard entries from the server.\n Callback receives an allocated list that must be free'd by calling rc_client_destroy_leaderboard_entry_list."] pub fn rc_client_begin_fetch_leaderboard_entries (client : * mut rc_client_t , leaderboard_id : u32 , first_entry : u32 , count : u32 , callback : rc_client_fetch_leaderboard_entries_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Fetches a list of leaderboard entries from the server containing the logged-in user.\n Callback receives an allocated list that must be free'd by calling rc_client_destroy_leaderboard_entry_list."] pub fn rc_client_begin_fetch_leaderboard_entries_around_user (client : * mut rc_client_t , leaderboard_id : u32 , count : u32 , callback : rc_client_fetch_leaderboard_entries_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Gets the URL for the profile picture of the user associated to a leaderboard entry.\n Returns RC_OK on success."] pub fn rc_client_leaderboard_entry_get_user_image_url (entry : * const rc_client_leaderboard_entry_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_begin_fetch_leaderboard_entries or rc_client_begin_fetch_leaderboard_entries_around_user."] pub fn rc_client_destroy_leaderboard_entry_list (list : * mut rc_client_leaderboard_entry_list_t) ; } # [doc = " Used for scoreboard events. Contains the response from the server when a leaderboard entry is submitted.\n NOTE: This structure is only valid within the event callback. If you want to make use of the data outside\n of the callback, you should create copies of both the top entries and usernames within."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_scoreboard_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub score : [:: core :: ffi :: c_char ; 24usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_scoreboard_entry_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_scoreboard_entry_t > () - 40usize] ; ["Alignment of rc_client_leaderboard_scoreboard_entry_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_scoreboard_entry_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::username"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , username) - 0usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , rank) - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , score) - 12usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_scoreboard_t { pub leaderboard_id : u32 , pub submitted_score : [:: core :: ffi :: c_char ; 24usize] , pub best_score : [:: core :: ffi :: c_char ; 24usize] , pub new_rank : u32 , pub num_entries : u32 , pub top_entries : * mut rc_client_leaderboard_scoreboard_entry_t , pub num_top_entries : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_scoreboard_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_scoreboard_t > () - 80usize] ; ["Alignment of rc_client_leaderboard_scoreboard_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_scoreboard_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::submitted_score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , submitted_score) - 4usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::best_score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , best_score) - 28usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::new_rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , new_rank) - 52usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::num_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , num_entries) - 56usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::top_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , top_entries) - 64usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::num_top_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , num_top_entries) - 72usize] ; } ; extern "C" { # [doc = " Returns non-zero if the current game supports rich presence."] pub fn rc_client_has_rich_presence (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Gets the current rich presence message.\n Returns the number of characters written to buffer."] pub fn rc_client_get_rich_presence_message (client : * mut rc_client_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> usize ; } pub const RC_CLIENT_EVENT_TYPE_NONE : _bindgen_ty_27 = 0 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_TRIGGERED : _bindgen_ty_27 = 1 ; pub const RC_CLIENT_EVENT_LEADERBOARD_STARTED : _bindgen_ty_27 = 2 ; pub const RC_CLIENT_EVENT_LEADERBOARD_FAILED : _bindgen_ty_27 = 3 ; pub const RC_CLIENT_EVENT_LEADERBOARD_SUBMITTED : _bindgen_ty_27 = 4 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_CHALLENGE_INDICATOR_SHOW : _bindgen_ty_27 = 5 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_CHALLENGE_INDICATOR_HIDE : _bindgen_ty_27 = 6 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_SHOW : _bindgen_ty_27 = 7 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_HIDE : _bindgen_ty_27 = 8 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_UPDATE : _bindgen_ty_27 = 9 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_SHOW : _bindgen_ty_27 = 10 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_HIDE : _bindgen_ty_27 = 11 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_UPDATE : _bindgen_ty_27 = 12 ; pub const RC_CLIENT_EVENT_LEADERBOARD_SCOREBOARD : _bindgen_ty_27 = 13 ; pub const RC_CLIENT_EVENT_RESET : _bindgen_ty_27 = 14 ; pub const RC_CLIENT_EVENT_GAME_COMPLETED : _bindgen_ty_27 = 15 ; pub const RC_CLIENT_EVENT_SERVER_ERROR : _bindgen_ty_27 = 16 ; pub const RC_CLIENT_EVENT_DISCONNECTED : _bindgen_ty_27 = 17 ; pub const RC_CLIENT_EVENT_RECONNECTED : _bindgen_ty_27 = 18 ; # [doc = "\\\n| Processing                                                                  |\n\\"] pub type _bindgen_ty_27 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_server_error_t { pub error_message : * const :: core :: ffi :: c_char , pub api : * const :: core :: ffi :: c_char , pub result : :: core :: ffi :: c_int , pub related_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_server_error_t"] [:: core :: mem :: size_of :: < rc_client_server_error_t > () - 24usize] ; ["Alignment of rc_client_server_error_t"] [:: core :: mem :: align_of :: < rc_client_server_error_t > () - 8usize] ; ["Offset of field: rc_client_server_error_t::error_message"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , error_message) - 0usize] ; ["Offset of field: rc_client_server_error_t::api"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , api) - 8usize] ; ["Offset of field: rc_client_server_error_t::result"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , result) - 16usize] ; ["Offset of field: rc_client_server_error_t::related_id"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , related_id) - 20usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_event_t { pub type_ : u32 , pub achievement : * mut rc_client_achievement_t , pub leaderboard : * mut rc_client_leaderboard_t , pub leaderboard_tracker : * mut rc_client_leaderboard_tracker_t , pub leaderboard_scoreboard : * mut rc_client_leaderboard_scoreboard_t , pub server_error : * mut rc_client_server_error_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_event_t"] [:: core :: mem :: size_of :: < rc_client_event_t > () - 48usize] ; ["Alignment of rc_client_event_t"] [:: core :: mem :: align_of :: < rc_client_event_t > () - 8usize] ; ["Offset of field: rc_client_event_t::type_"] [:: core :: mem :: offset_of ! (rc_client_event_t , type_) - 0usize] ; ["Offset of field: rc_client_event_t::achievement"] [:: core :: mem :: offset_of ! (rc_client_event_t , achievement) - 8usize] ; ["Offset of field: rc_client_event_t::leaderboard"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard) - 16usize] ; ["Offset of field: rc_client_event_t::leaderboard_tracker"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard_tracker) - 24usize] ; ["Offset of field: rc_client_event_t::leaderboard_scoreboard"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard_scoreboard) - 32usize] ; ["Offset of field: rc_client_event_t::server_error"] [:: core :: mem :: offset_of ! (rc_client_event_t , server_error) - 40usize] ; } ; # [doc = " Callback used to notify the client when certain events occur."] pub type rc_client_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (event : * const rc_client_event_t , client : * mut rc_client_t) > ; extern "C" { # [doc = " Provides a callback for event handling."] pub fn rc_client_set_event_handler (client : * mut rc_client_t , handler : rc_client_event_handler_t) ; } extern "C" { # [doc = " Provides a callback for reading memory."] pub fn rc_client_set_read_memory_function (client : * mut rc_client_t , handler : rc_client_read_memory_func_t) ; } extern "C" { # [doc = " Determines if there are any active achievements/leaderboards/rich presence that need processing."] pub fn rc_client_is_processing_required (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Processes achievements for the current frame."] pub fn rc_client_do_frame (client : * mut rc_client_t) ; } extern "C" { # [doc = " Processes the periodic queue.\n Called internally by rc_client_do_frame.\n Should be explicitly called if rc_client_do_frame is not being called because emulation is paused."] pub fn rc_client_idle (client : * mut rc_client_t) ; } extern "C" { # [doc = " Determines if a sufficient amount of frames have been processed since the last call to rc_client_can_pause.\n Should not be called unless the client is trying to pause.\n If false is returned, and frames_remaining is not NULL, frames_remaining will be set to the number of frames\n still required before pause is allowed, which can be converted to a time in seconds for displaying to the user."] pub fn rc_client_can_pause (client : * mut rc_client_t , frames_remaining : * mut u32) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Informs the runtime that the emulator has been reset. Will reset all achievements and leaderboards\n to their initial state (includes hiding indicators/trackers)."] pub fn rc_client_reset (client : * mut rc_client_t) ; } extern "C" { # [doc = " Gets the number of bytes needed to serialized the runtime state."] pub fn rc_client_progress_size (client : * mut rc_client_t) -> usize ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator.\n [deprecated] use rc_client_serialize_progress_sized instead"] pub fn rc_client_serialize_progress (client : * mut rc_client_t , buffer : * mut u8) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator."] pub fn rc_client_serialize_progress_sized (client : * mut rc_client_t , buffer : * mut u8 , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Deserializes the runtime state from a buffer.\n Returns RC_OK on success, or an error indicator.\n [deprecated] use rc_client_deserialize_progress_sized instead"] pub fn rc_client_deserialize_progress (client : * mut rc_client_t , serialized : * const u8) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator."] pub fn rc_client_deserialize_progress_sized (client : * mut rc_client_t , serialized : * const u8 , serialized_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __locale_data { pub _address : u8 , } pub type __builtin_va_list = [__va_list_tag ; 1usize] ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __va_list_tag { pub gp_offset : :: core :: ffi :: c_uint , pub fp_offset : :: core :: ffi :: c_uint , pub overflow_arg_area : * mut :: core :: ffi :: c_void , pub reg_save_area : * mut :: core :: ffi :: c_void , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __va_list_tag"] [:: core :: mem :: size_of :: < __va_list_tag > () - 24usize] ; ["Alignment of __va_list_tag"] [:: core :: mem :: align_of :: < __va_list_tag > () - 8usize] ; ["Offset of field: __va_list_tag::gp_offset"] [:: core :: mem :: offset_of ! (__va_list_tag , gp_offset) - 0usize] ; ["Offset of field: __va_list_tag::fp_offset"] [:: core :: mem :: offset_of ! (__va_list_tag , fp_offset) - 4usize] ; ["Offset of field: __va_list_tag::overflow_arg_area"] [:: core :: mem :: offset_of ! (__va_list_tag , overflow_arg_area) - 8usize] ; ["Offset of field: __va_list_tag::reg_save_area"] [:: core :: mem :: offset_of ! (__va_list_tag , reg_save_area) - 16usize] ; } ;
[INFO] [stdout] 3 + # [repr (C)] # [derive (Copy , Clone , Debug , Default , Eq , Hash , Ord , PartialEq , PartialOrd)] pub struct __BindgenBitfieldUnit < Storage > { storage : Storage , } impl < Storage > __BindgenBitfieldUnit < Storage > { # [inline] pub const fn new (storage : Storage) -> Self { Self { storage } } } impl < Storage > __BindgenBitfieldUnit < Storage > where Storage : AsRef < [u8] > + AsMut < [u8] >, { # [inline] pub fn get_bit (& self , index : usize) -> bool { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = self . storage . as_ref () [byte_index] ; let bit_index = if cfg ! (target_endian = "big") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; byte & mask == mask } # [inline] pub fn set_bit (& mut self , index : usize , val : bool) { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = & mut self . storage . as_mut () [byte_index] ; let bit_index = if cfg ! (target_endian = "big") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; if val { * byte |= mask ; } else { * byte &= ! mask ; } } # [inline] pub fn get (& self , bit_offset : usize , bit_width : u8) -> u64 { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; let mut val = 0 ; for i in 0 .. (bit_width as usize) { if self . get_bit (i + bit_offset) { let index = if cfg ! (target_endian = "big") { bit_width as usize - 1 - i } else { i } ; val |= 1 << index ; } } val } # [inline] pub fn set (& mut self , bit_offset : usize , bit_width : u8 , val : u64) { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; for i in 0 .. (bit_width as usize) { let mask = 1 << i ; let val_bit_is_set = val & mask == mask ; let index = if cfg ! (target_endian = "big") { bit_width as usize - 1 - i } else { i } ; self . set_bit (index + bit_offset , val_bit_is_set) ; } } } # [derive (PartialEq , Copy , Clone , Hash , Debug , Default)] # [repr (C)] pub struct __BindgenComplex < T > { pub re : T , pub im : T } pub const _STDINT_H : u32 = 1 ; pub const _FEATURES_H : u32 = 1 ; pub const _DEFAULT_SOURCE : u32 = 1 ; pub const __GLIBC_USE_ISOC2Y : u32 = 0 ; pub const __GLIBC_USE_ISOC23 : u32 = 0 ; pub const __USE_ISOC11 : u32 = 1 ; pub const __USE_ISOC99 : u32 = 1 ; pub const __USE_ISOC95 : u32 = 1 ; pub const __USE_POSIX_IMPLICITLY : u32 = 1 ; pub const _POSIX_SOURCE : u32 = 1 ; pub const _POSIX_C_SOURCE : u32 = 202405 ; pub const __USE_POSIX : u32 = 1 ; pub const __USE_POSIX2 : u32 = 1 ; pub const __USE_POSIX199309 : u32 = 1 ; pub const __USE_POSIX199506 : u32 = 1 ; pub const __USE_XOPEN2K : u32 = 1 ; pub const __USE_XOPEN2K8 : u32 = 1 ; pub const _ATFILE_SOURCE : u32 = 1 ; pub const __USE_XOPEN2K24 : u32 = 1 ; pub const __WORDSIZE : u32 = 64 ; pub const __WORDSIZE_TIME64_COMPAT32 : u32 = 1 ; pub const __SYSCALL_WORDSIZE : u32 = 64 ; pub const __TIMESIZE : u32 = 64 ; pub const __USE_TIME_BITS64 : u32 = 1 ; pub const __USE_MISC : u32 = 1 ; 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_C23_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 ; pub const __STDC_IEC_559_COMPLEX__ : u32 = 1 ; 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 = 43 ; pub const _SYS_CDEFS_H : u32 = 1 ; pub const __glibc_c99_flexarr_available : u32 = 1 ; pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI : u32 = 0 ; pub const __HAVE_GENERIC_SELECTION : u32 = 1 ; pub const __GLIBC_USE_LIB_EXT2 : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT_C23 : u32 = 0 ; 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_C23 : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_TYPES_EXT : u32 = 0 ; pub const _BITS_TYPES_H : u32 = 1 ; pub const _BITS_TYPESIZES_H : u32 = 1 ; pub const __OFF_T_MATCHES_OFF64_T : u32 = 1 ; pub const __INO_T_MATCHES_INO64_T : u32 = 1 ; pub const __RLIM_T_MATCHES_RLIM64_T : u32 = 1 ; pub const __STATFS_MATCHES_STATFS64 : u32 = 1 ; pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 : u32 = 1 ; pub const __FD_SETSIZE : u32 = 1024 ; pub const _BITS_TIME64_H : u32 = 1 ; pub const _BITS_WCHAR_H : u32 = 1 ; pub const _BITS_STDINT_INTN_H : u32 = 1 ; pub const _BITS_STDINT_UINTN_H : u32 = 1 ; pub const _BITS_STDINT_LEAST_H : u32 = 1 ; pub const INT8_MIN : i32 = - 128 ; pub const INT16_MIN : i32 = - 32768 ; pub const INT32_MIN : i32 = - 2147483648 ; pub const INT8_MAX : u32 = 127 ; pub const INT16_MAX : u32 = 32767 ; pub const INT32_MAX : u32 = 2147483647 ; pub const UINT8_MAX : u32 = 255 ; pub const UINT16_MAX : u32 = 65535 ; pub const UINT32_MAX : u32 = 4294967295 ; pub const INT_LEAST8_MIN : i32 = - 128 ; pub const INT_LEAST16_MIN : i32 = - 32768 ; pub const INT_LEAST32_MIN : i32 = - 2147483648 ; pub const INT_LEAST8_MAX : u32 = 127 ; pub const INT_LEAST16_MAX : u32 = 32767 ; pub const INT_LEAST32_MAX : u32 = 2147483647 ; pub const UINT_LEAST8_MAX : u32 = 255 ; pub const UINT_LEAST16_MAX : u32 = 65535 ; pub const UINT_LEAST32_MAX : u32 = 4294967295 ; pub const INT_FAST8_MIN : i32 = - 128 ; pub const INT_FAST16_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST32_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST8_MAX : u32 = 127 ; pub const INT_FAST16_MAX : u64 = 9223372036854775807 ; pub const INT_FAST32_MAX : u64 = 9223372036854775807 ; pub const UINT_FAST8_MAX : u32 = 255 ; pub const UINT_FAST16_MAX : i32 = - 1 ; pub const UINT_FAST32_MAX : i32 = - 1 ; pub const INTPTR_MIN : i64 = - 9223372036854775808 ; pub const INTPTR_MAX : u64 = 9223372036854775807 ; pub const UINTPTR_MAX : i32 = - 1 ; pub const PTRDIFF_MIN : i64 = - 9223372036854775808 ; pub const PTRDIFF_MAX : u64 = 9223372036854775807 ; pub const SIG_ATOMIC_MIN : i32 = - 2147483648 ; pub const SIG_ATOMIC_MAX : u32 = 2147483647 ; pub const SIZE_MAX : i32 = - 1 ; pub const WINT_MIN : u32 = 0 ; pub const WINT_MAX : u32 = 4294967295 ; pub const RC_VALUE_MAX_NAME_LENGTH : u32 = 15 ; pub const _TIME_H : u32 = 1 ; pub const _BITS_TIME_H : u32 = 1 ; pub const CLOCK_REALTIME : u32 = 0 ; pub const CLOCK_MONOTONIC : u32 = 1 ; pub const CLOCK_PROCESS_CPUTIME_ID : u32 = 2 ; pub const CLOCK_THREAD_CPUTIME_ID : u32 = 3 ; pub const CLOCK_MONOTONIC_RAW : u32 = 4 ; pub const CLOCK_REALTIME_COARSE : u32 = 5 ; pub const CLOCK_MONOTONIC_COARSE : u32 = 6 ; pub const CLOCK_BOOTTIME : u32 = 7 ; pub const CLOCK_REALTIME_ALARM : u32 = 8 ; pub const CLOCK_BOOTTIME_ALARM : u32 = 9 ; pub const CLOCK_TAI : u32 = 11 ; pub const TIMER_ABSTIME : u32 = 1 ; pub const __clock_t_defined : u32 = 1 ; pub const __time_t_defined : u32 = 1 ; pub const __struct_tm_defined : u32 = 1 ; pub const _STRUCT_TIMESPEC : u32 = 1 ; pub const _BITS_ENDIAN_H : u32 = 1 ; pub const __LITTLE_ENDIAN : u32 = 1234 ; pub const __BIG_ENDIAN : u32 = 4321 ; pub const __PDP_ENDIAN : u32 = 3412 ; pub const _BITS_ENDIANNESS_H : u32 = 1 ; pub const __BYTE_ORDER : u32 = 1234 ; pub const __FLOAT_WORD_ORDER : u32 = 1234 ; pub const __clockid_t_defined : u32 = 1 ; pub const __timer_t_defined : u32 = 1 ; pub const __itimerspec_defined : u32 = 1 ; pub const _BITS_TYPES_LOCALE_T_H : u32 = 1 ; pub const _BITS_TYPES___LOCALE_T_H : u32 = 1 ; pub const TIME_UTC : u32 = 1 ; pub const _STDIO_H : u32 = 1 ; pub const _____fpos_t_defined : u32 = 1 ; pub const ____mbstate_t_defined : u32 = 1 ; pub const _____fpos64_t_defined : u32 = 1 ; pub const ____FILE_defined : u32 = 1 ; pub const __FILE_defined : u32 = 1 ; 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 ; pub const BUFSIZ : u32 = 8192 ; pub const EOF : i32 = - 1 ; 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 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 ; pub const __HAVE_FLOAT128 : u32 = 1 ; pub const __HAVE_DISTINCT_FLOAT128 : u32 = 1 ; pub const __HAVE_FLOAT64X : u32 = 1 ; pub const __HAVE_FLOAT64X_LONG_DOUBLE : u32 = 1 ; pub const __HAVE_FLOAT16 : u32 = 0 ; pub const __HAVE_FLOAT32 : u32 = 1 ; pub const __HAVE_FLOAT64 : u32 = 1 ; pub const __HAVE_FLOAT32X : u32 = 1 ; pub const __HAVE_FLOAT128X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT16 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT32 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT64 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT32X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT64X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT128X : u32 = 0 ; pub const __HAVE_FLOATN_NOT_TYPEDEF : u32 = 0 ; pub const RC_IMAGE_TYPE_GAME : u32 = 1 ; pub const RC_IMAGE_TYPE_ACHIEVEMENT : u32 = 2 ; pub const RC_IMAGE_TYPE_ACHIEVEMENT_LOCKED : u32 = 3 ; pub const RC_IMAGE_TYPE_USER : u32 = 4 ; pub const RC_ACHIEVEMENT_CATEGORY_CORE : u32 = 3 ; pub const RC_ACHIEVEMENT_CATEGORY_UNOFFICIAL : u32 = 5 ; pub const RC_ACHIEVEMENT_TYPE_STANDARD : u32 = 0 ; pub const RC_ACHIEVEMENT_TYPE_MISSABLE : u32 = 1 ; pub const RC_ACHIEVEMENT_TYPE_PROGRESSION : u32 = 2 ; pub const RC_ACHIEVEMENT_TYPE_WIN : u32 = 3 ; pub const RC_CLIENT_LEADERBOARD_DISPLAY_SIZE : u32 = 24 ; pub const RC_OK : _bindgen_ty_1 = 0 ; pub const RC_INVALID_LUA_OPERAND : _bindgen_ty_1 = - 1 ; pub const RC_INVALID_MEMORY_OPERAND : _bindgen_ty_1 = - 2 ; pub const RC_INVALID_CONST_OPERAND : _bindgen_ty_1 = - 3 ; pub const RC_INVALID_FP_OPERAND : _bindgen_ty_1 = - 4 ; pub const RC_INVALID_CONDITION_TYPE : _bindgen_ty_1 = - 5 ; pub const RC_INVALID_OPERATOR : _bindgen_ty_1 = - 6 ; pub const RC_INVALID_REQUIRED_HITS : _bindgen_ty_1 = - 7 ; pub const RC_DUPLICATED_START : _bindgen_ty_1 = - 8 ; pub const RC_DUPLICATED_CANCEL : _bindgen_ty_1 = - 9 ; pub const RC_DUPLICATED_SUBMIT : _bindgen_ty_1 = - 10 ; pub const RC_DUPLICATED_VALUE : _bindgen_ty_1 = - 11 ; pub const RC_DUPLICATED_PROGRESS : _bindgen_ty_1 = - 12 ; pub const RC_MISSING_START : _bindgen_ty_1 = - 13 ; pub const RC_MISSING_CANCEL : _bindgen_ty_1 = - 14 ; pub const RC_MISSING_SUBMIT : _bindgen_ty_1 = - 15 ; pub const RC_MISSING_VALUE : _bindgen_ty_1 = - 16 ; pub const RC_INVALID_LBOARD_FIELD : _bindgen_ty_1 = - 17 ; pub const RC_MISSING_DISPLAY_STRING : _bindgen_ty_1 = - 18 ; pub const RC_OUT_OF_MEMORY : _bindgen_ty_1 = - 19 ; pub const RC_INVALID_VALUE_FLAG : _bindgen_ty_1 = - 20 ; pub const RC_MISSING_VALUE_MEASURED : _bindgen_ty_1 = - 21 ; pub const RC_MULTIPLE_MEASURED : _bindgen_ty_1 = - 22 ; pub const RC_INVALID_MEASURED_TARGET : _bindgen_ty_1 = - 23 ; pub const RC_INVALID_COMPARISON : _bindgen_ty_1 = - 24 ; pub const RC_INVALID_STATE : _bindgen_ty_1 = - 25 ; pub const RC_INVALID_JSON : _bindgen_ty_1 = - 26 ; pub const RC_API_FAILURE : _bindgen_ty_1 = - 27 ; pub const RC_LOGIN_REQUIRED : _bindgen_ty_1 = - 28 ; pub const RC_NO_GAME_LOADED : _bindgen_ty_1 = - 29 ; pub const RC_HARDCORE_DISABLED : _bindgen_ty_1 = - 30 ; pub const RC_ABORTED : _bindgen_ty_1 = - 31 ; pub const RC_NO_RESPONSE : _bindgen_ty_1 = - 32 ; pub const RC_ACCESS_DENIED : _bindgen_ty_1 = - 33 ; pub const RC_INVALID_CREDENTIALS : _bindgen_ty_1 = - 34 ; pub const RC_EXPIRED_TOKEN : _bindgen_ty_1 = - 35 ; pub const RC_INSUFFICIENT_BUFFER : _bindgen_ty_1 = - 36 ; pub const RC_INVALID_VARIABLE_NAME : _bindgen_ty_1 = - 37 ; pub const RC_UNKNOWN_VARIABLE_NAME : _bindgen_ty_1 = - 38 ; # [doc = "\\\n| Return values                                                               |\n\\"] pub type _bindgen_ty_1 = :: core :: ffi :: c_int ; extern "C" { pub fn rc_error_str (ret : :: core :: ffi :: c_int) -> * const :: core :: ffi :: c_char ; } pub type wchar_t = :: core :: ffi :: c_int ; # [repr (C)] # [repr (align (16))] # [derive (Debug , Copy , Clone)] pub struct max_align_t { pub __clang_max_align_nonce1 : :: core :: ffi :: c_longlong , pub __bindgen_padding_0 : u64 , pub __clang_max_align_nonce2 : u128 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of max_align_t"] [:: core :: mem :: size_of :: < max_align_t > () - 32usize] ; ["Alignment of max_align_t"] [:: core :: mem :: align_of :: < max_align_t > () - 16usize] ; ["Offset of field: max_align_t::__clang_max_align_nonce1"] [:: core :: mem :: offset_of ! (max_align_t , __clang_max_align_nonce1) - 0usize] ; ["Offset of field: max_align_t::__clang_max_align_nonce2"] [:: core :: mem :: offset_of ! (max_align_t , __clang_max_align_nonce2) - 16usize] ; } ; pub type __u_char = :: core :: ffi :: c_uchar ; pub type __u_short = :: core :: ffi :: c_ushort ; pub type __u_int = :: core :: ffi :: c_uint ; pub type __u_long = :: core :: ffi :: c_ulong ; pub type __int8_t = :: core :: ffi :: c_schar ; pub type __uint8_t = :: core :: ffi :: c_uchar ; pub type __int16_t = :: core :: ffi :: c_short ; pub type __uint16_t = :: core :: ffi :: c_ushort ; pub type __int32_t = :: core :: ffi :: c_int ; pub type __uint32_t = :: core :: ffi :: c_uint ; pub type __int64_t = :: core :: ffi :: c_long ; pub type __uint64_t = :: core :: ffi :: c_ulong ; pub type __int_least8_t = __int8_t ; pub type __uint_least8_t = __uint8_t ; pub type __int_least16_t = __int16_t ; pub type __uint_least16_t = __uint16_t ; pub type __int_least32_t = __int32_t ; pub type __uint_least32_t = __uint32_t ; pub type __int_least64_t = __int64_t ; pub type __uint_least64_t = __uint64_t ; pub type __quad_t = :: core :: ffi :: c_long ; pub type __u_quad_t = :: core :: ffi :: c_ulong ; pub type __intmax_t = :: core :: ffi :: c_long ; pub type __uintmax_t = :: core :: ffi :: c_ulong ; pub type __dev_t = :: core :: ffi :: c_ulong ; pub type __uid_t = :: core :: ffi :: c_uint ; pub type __gid_t = :: core :: ffi :: c_uint ; pub type __ino_t = :: core :: ffi :: c_ulong ; pub type __ino64_t = :: core :: ffi :: c_ulong ; pub type __mode_t = :: core :: ffi :: c_uint ; pub type __nlink_t = :: core :: ffi :: c_ulong ; pub type __off_t = :: core :: ffi :: c_long ; pub type __off64_t = :: core :: ffi :: c_long ; pub type __pid_t = :: core :: ffi :: c_int ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __fsid_t { pub __val : [:: core :: ffi :: c_int ; 2usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __fsid_t"] [:: core :: mem :: size_of :: < __fsid_t > () - 8usize] ; ["Alignment of __fsid_t"] [:: core :: mem :: align_of :: < __fsid_t > () - 4usize] ; ["Offset of field: __fsid_t::__val"] [:: core :: mem :: offset_of ! (__fsid_t , __val) - 0usize] ; } ; pub type __clock_t = :: core :: ffi :: c_long ; pub type __rlim_t = :: core :: ffi :: c_ulong ; pub type __rlim64_t = :: core :: ffi :: c_ulong ; pub type __id_t = :: core :: ffi :: c_uint ; pub type __time_t = :: core :: ffi :: c_long ; pub type __useconds_t = :: core :: ffi :: c_uint ; pub type __suseconds_t = :: core :: ffi :: c_long ; pub type __suseconds64_t = :: core :: ffi :: c_long ; pub type __daddr_t = :: core :: ffi :: c_int ; pub type __key_t = :: core :: ffi :: c_int ; pub type __clockid_t = :: core :: ffi :: c_int ; pub type __timer_t = * mut :: core :: ffi :: c_void ; pub type __blksize_t = :: core :: ffi :: c_long ; pub type __blkcnt_t = :: core :: ffi :: c_long ; pub type __blkcnt64_t = :: core :: ffi :: c_long ; pub type __fsblkcnt_t = :: core :: ffi :: c_ulong ; pub type __fsblkcnt64_t = :: core :: ffi :: c_ulong ; pub type __fsfilcnt_t = :: core :: ffi :: c_ulong ; pub type __fsfilcnt64_t = :: core :: ffi :: c_ulong ; pub type __fsword_t = :: core :: ffi :: c_long ; pub type __ssize_t = :: core :: ffi :: c_long ; pub type __syscall_slong_t = :: core :: ffi :: c_long ; pub type __syscall_ulong_t = :: core :: ffi :: c_ulong ; pub type __loff_t = __off64_t ; pub type __caddr_t = * mut :: core :: ffi :: c_char ; pub type __intptr_t = :: core :: ffi :: c_long ; pub type __socklen_t = :: core :: ffi :: c_uint ; pub type __sig_atomic_t = :: core :: ffi :: c_int ; pub type int_least8_t = __int_least8_t ; pub type int_least16_t = __int_least16_t ; pub type int_least32_t = __int_least32_t ; pub type int_least64_t = __int_least64_t ; pub type uint_least8_t = __uint_least8_t ; pub type uint_least16_t = __uint_least16_t ; pub type uint_least32_t = __uint_least32_t ; pub type uint_least64_t = __uint_least64_t ; pub type int_fast8_t = :: core :: ffi :: c_schar ; pub type int_fast16_t = :: core :: ffi :: c_long ; pub type int_fast32_t = :: core :: ffi :: c_long ; pub type int_fast64_t = :: core :: ffi :: c_long ; pub type uint_fast8_t = :: core :: ffi :: c_uchar ; pub type uint_fast16_t = :: core :: ffi :: c_ulong ; pub type uint_fast32_t = :: core :: ffi :: c_ulong ; pub type uint_fast64_t = :: core :: ffi :: c_ulong ; pub type intmax_t = __intmax_t ; pub type uintmax_t = __uintmax_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct lua_State { _unused : [u8 ; 0] , } # [doc = " Callback used to read num_bytes bytes from memory starting at address. If\n num_bytes is greater than 1, the value is read in little-endian from\n memory."] pub type rc_peek_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , num_bytes : u32 , ud : * mut :: core :: ffi :: c_void) -> u32 > ; pub const RC_MEMSIZE_8_BITS : _bindgen_ty_2 = 0 ; pub const RC_MEMSIZE_16_BITS : _bindgen_ty_2 = 1 ; pub const RC_MEMSIZE_24_BITS : _bindgen_ty_2 = 2 ; pub const RC_MEMSIZE_32_BITS : _bindgen_ty_2 = 3 ; pub const RC_MEMSIZE_LOW : _bindgen_ty_2 = 4 ; pub const RC_MEMSIZE_HIGH : _bindgen_ty_2 = 5 ; pub const RC_MEMSIZE_BIT_0 : _bindgen_ty_2 = 6 ; pub const RC_MEMSIZE_BIT_1 : _bindgen_ty_2 = 7 ; pub const RC_MEMSIZE_BIT_2 : _bindgen_ty_2 = 8 ; pub const RC_MEMSIZE_BIT_3 : _bindgen_ty_2 = 9 ; pub const RC_MEMSIZE_BIT_4 : _bindgen_ty_2 = 10 ; pub const RC_MEMSIZE_BIT_5 : _bindgen_ty_2 = 11 ; pub const RC_MEMSIZE_BIT_6 : _bindgen_ty_2 = 12 ; pub const RC_MEMSIZE_BIT_7 : _bindgen_ty_2 = 13 ; pub const RC_MEMSIZE_BITCOUNT : _bindgen_ty_2 = 14 ; pub const RC_MEMSIZE_16_BITS_BE : _bindgen_ty_2 = 15 ; pub const RC_MEMSIZE_24_BITS_BE : _bindgen_ty_2 = 16 ; pub const RC_MEMSIZE_32_BITS_BE : _bindgen_ty_2 = 17 ; pub const RC_MEMSIZE_FLOAT : _bindgen_ty_2 = 18 ; pub const RC_MEMSIZE_MBF32 : _bindgen_ty_2 = 19 ; pub const RC_MEMSIZE_MBF32_LE : _bindgen_ty_2 = 20 ; pub const RC_MEMSIZE_FLOAT_BE : _bindgen_ty_2 = 21 ; pub const RC_MEMSIZE_DOUBLE32 : _bindgen_ty_2 = 22 ; pub const RC_MEMSIZE_DOUBLE32_BE : _bindgen_ty_2 = 23 ; pub const RC_MEMSIZE_VARIABLE : _bindgen_ty_2 = 24 ; # [doc = "\\\n| Memory References                                                           |\n\\"] pub type _bindgen_ty_2 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memref_value_t { pub value : u32 , pub prior : u32 , pub size : u8 , pub changed : u8 , pub type_ : u8 , pub is_indirect : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memref_value_t"] [:: core :: mem :: size_of :: < rc_memref_value_t > () - 12usize] ; ["Alignment of rc_memref_value_t"] [:: core :: mem :: align_of :: < rc_memref_value_t > () - 4usize] ; ["Offset of field: rc_memref_value_t::value"] [:: core :: mem :: offset_of ! (rc_memref_value_t , value) - 0usize] ; ["Offset of field: rc_memref_value_t::prior"] [:: core :: mem :: offset_of ! (rc_memref_value_t , prior) - 4usize] ; ["Offset of field: rc_memref_value_t::size"] [:: core :: mem :: offset_of ! (rc_memref_value_t , size) - 8usize] ; ["Offset of field: rc_memref_value_t::changed"] [:: core :: mem :: offset_of ! (rc_memref_value_t , changed) - 9usize] ; ["Offset of field: rc_memref_value_t::type_"] [:: core :: mem :: offset_of ! (rc_memref_value_t , type_) - 10usize] ; ["Offset of field: rc_memref_value_t::is_indirect"] [:: core :: mem :: offset_of ! (rc_memref_value_t , is_indirect) - 11usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memref_t { pub value : rc_memref_value_t , pub address : u32 , pub next : * mut rc_memref_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memref_t"] [:: core :: mem :: size_of :: < rc_memref_t > () - 24usize] ; ["Alignment of rc_memref_t"] [:: core :: mem :: align_of :: < rc_memref_t > () - 8usize] ; ["Offset of field: rc_memref_t::value"] [:: core :: mem :: offset_of ! (rc_memref_t , value) - 0usize] ; ["Offset of field: rc_memref_t::address"] [:: core :: mem :: offset_of ! (rc_memref_t , address) - 12usize] ; ["Offset of field: rc_memref_t::next"] [:: core :: mem :: offset_of ! (rc_memref_t , next) - 16usize] ; } ; pub const RC_OPERAND_ADDRESS : _bindgen_ty_3 = 0 ; pub const RC_OPERAND_DELTA : _bindgen_ty_3 = 1 ; pub const RC_OPERAND_CONST : _bindgen_ty_3 = 2 ; pub const RC_OPERAND_FP : _bindgen_ty_3 = 3 ; pub const RC_OPERAND_LUA : _bindgen_ty_3 = 4 ; pub const RC_OPERAND_PRIOR : _bindgen_ty_3 = 5 ; pub const RC_OPERAND_BCD : _bindgen_ty_3 = 6 ; pub const RC_OPERAND_INVERTED : _bindgen_ty_3 = 7 ; pub const RC_OPERAND_RECALL : _bindgen_ty_3 = 8 ; # [doc = "\\\n| Operands                                                                    |\n\\"] pub type _bindgen_ty_3 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Copy , Clone)] pub struct rc_operand_t { pub value : rc_operand_t__bindgen_ty_1 , pub type_ : u8 , pub size : u8 , } # [repr (C)] # [derive (Copy , Clone)] pub union rc_operand_t__bindgen_ty_1 { pub memref : * mut rc_memref_t , pub num : u32 , pub dbl : f64 , pub luafunc : :: core :: ffi :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_operand_t__bindgen_ty_1"] [:: core :: mem :: size_of :: < rc_operand_t__bindgen_ty_1 > () - 8usize] ; ["Alignment of rc_operand_t__bindgen_ty_1"] [:: core :: mem :: align_of :: < rc_operand_t__bindgen_ty_1 > () - 8usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::memref"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , memref) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::num"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , num) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::dbl"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , dbl) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::luafunc"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , luafunc) - 0usize] ; } ; impl :: core :: fmt :: Debug for rc_operand_t__bindgen_ty_1 { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_operand_t__bindgen_ty_1 {{ union }}") } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_operand_t"] [:: core :: mem :: size_of :: < rc_operand_t > () - 16usize] ; ["Alignment of rc_operand_t"] [:: core :: mem :: align_of :: < rc_operand_t > () - 8usize] ; ["Offset of field: rc_operand_t::value"] [:: core :: mem :: offset_of ! (rc_operand_t , value) - 0usize] ; ["Offset of field: rc_operand_t::type_"] [:: core :: mem :: offset_of ! (rc_operand_t , type_) - 8usize] ; ["Offset of field: rc_operand_t::size"] [:: core :: mem :: offset_of ! (rc_operand_t , size) - 9usize] ; } ; impl :: core :: fmt :: Debug for rc_operand_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_operand_t {{ value: {:?}, type: {:?}, size: {:?} }}" , self . value , self . type_ , self . size) } } extern "C" { pub fn rc_operand_is_memref (operand : * const rc_operand_t) -> :: core :: ffi :: c_int ; } pub const RC_CONDITION_STANDARD : _bindgen_ty_4 = 0 ; pub const RC_CONDITION_PAUSE_IF : _bindgen_ty_4 = 1 ; pub const RC_CONDITION_RESET_IF : _bindgen_ty_4 = 2 ; pub const RC_CONDITION_MEASURED_IF : _bindgen_ty_4 = 3 ; pub const RC_CONDITION_TRIGGER : _bindgen_ty_4 = 4 ; pub const RC_CONDITION_MEASURED : _bindgen_ty_4 = 5 ; pub const RC_CONDITION_ADD_SOURCE : _bindgen_ty_4 = 6 ; pub const RC_CONDITION_SUB_SOURCE : _bindgen_ty_4 = 7 ; pub const RC_CONDITION_ADD_ADDRESS : _bindgen_ty_4 = 8 ; pub const RC_CONDITION_REMEMBER : _bindgen_ty_4 = 9 ; pub const RC_CONDITION_ADD_HITS : _bindgen_ty_4 = 10 ; pub const RC_CONDITION_SUB_HITS : _bindgen_ty_4 = 11 ; pub const RC_CONDITION_RESET_NEXT_IF : _bindgen_ty_4 = 12 ; pub const RC_CONDITION_AND_NEXT : _bindgen_ty_4 = 13 ; pub const RC_CONDITION_OR_NEXT : _bindgen_ty_4 = 14 ; # [doc = "\\\n| Conditions                                                                  |\n\\"] pub type _bindgen_ty_4 = :: core :: ffi :: c_uint ; pub const RC_OPERATOR_EQ : _bindgen_ty_5 = 0 ; pub const RC_OPERATOR_LT : _bindgen_ty_5 = 1 ; pub const RC_OPERATOR_LE : _bindgen_ty_5 = 2 ; pub const RC_OPERATOR_GT : _bindgen_ty_5 = 3 ; pub const RC_OPERATOR_GE : _bindgen_ty_5 = 4 ; pub const RC_OPERATOR_NE : _bindgen_ty_5 = 5 ; pub const RC_OPERATOR_NONE : _bindgen_ty_5 = 6 ; pub const RC_OPERATOR_MULT : _bindgen_ty_5 = 7 ; pub const RC_OPERATOR_DIV : _bindgen_ty_5 = 8 ; pub const RC_OPERATOR_AND : _bindgen_ty_5 = 9 ; pub const RC_OPERATOR_XOR : _bindgen_ty_5 = 10 ; pub const RC_OPERATOR_MOD : _bindgen_ty_5 = 11 ; pub const RC_OPERATOR_ADD : _bindgen_ty_5 = 12 ; pub const RC_OPERATOR_SUB : _bindgen_ty_5 = 13 ; pub type _bindgen_ty_5 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Copy , Clone)] pub struct rc_condition_t { pub operand1 : rc_operand_t , pub operand2 : rc_operand_t , pub required_hits : u32 , pub current_hits : u32 , pub next : * mut rc_condition_t , pub type_ : u8 , pub oper : u8 , pub pause : u8 , pub is_true : u8 , pub optimized_comparator : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_condition_t"] [:: core :: mem :: size_of :: < rc_condition_t > () - 56usize] ; ["Alignment of rc_condition_t"] [:: core :: mem :: align_of :: < rc_condition_t > () - 8usize] ; ["Offset of field: rc_condition_t::operand1"] [:: core :: mem :: offset_of ! (rc_condition_t , operand1) - 0usize] ; ["Offset of field: rc_condition_t::operand2"] [:: core :: mem :: offset_of ! (rc_condition_t , operand2) - 16usize] ; ["Offset of field: rc_condition_t::required_hits"] [:: core :: mem :: offset_of ! (rc_condition_t , required_hits) - 32usize] ; ["Offset of field: rc_condition_t::current_hits"] [:: core :: mem :: offset_of ! (rc_condition_t , current_hits) - 36usize] ; ["Offset of field: rc_condition_t::next"] [:: core :: mem :: offset_of ! (rc_condition_t , next) - 40usize] ; ["Offset of field: rc_condition_t::type_"] [:: core :: mem :: offset_of ! (rc_condition_t , type_) - 48usize] ; ["Offset of field: rc_condition_t::oper"] [:: core :: mem :: offset_of ! (rc_condition_t , oper) - 49usize] ; ["Offset of field: rc_condition_t::pause"] [:: core :: mem :: offset_of ! (rc_condition_t , pause) - 50usize] ; ["Offset of field: rc_condition_t::is_true"] [:: core :: mem :: offset_of ! (rc_condition_t , is_true) - 51usize] ; ["Offset of field: rc_condition_t::optimized_comparator"] [:: core :: mem :: offset_of ! (rc_condition_t , optimized_comparator) - 52usize] ; } ; impl :: core :: fmt :: Debug for rc_condition_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_condition_t {{ operand1: {:?}, operand2: {:?}, required_hits: {:?}, current_hits: {:?}, next: {:?}, type: {:?}, oper: {:?}, pause: {:?}, is_true: {:?}, optimized_comparator: {:?} }}" , self . operand1 , self . operand2 , self . required_hits , self . current_hits , self . next , self . type_ , self . oper , self . pause , self . is_true , self . optimized_comparator) } } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_condset_t { pub next : * mut rc_condset_t , pub conditions : * mut rc_condition_t , pub has_pause : u8 , pub is_paused : u8 , pub has_indirect_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_condset_t"] [:: core :: mem :: size_of :: < rc_condset_t > () - 24usize] ; ["Alignment of rc_condset_t"] [:: core :: mem :: align_of :: < rc_condset_t > () - 8usize] ; ["Offset of field: rc_condset_t::next"] [:: core :: mem :: offset_of ! (rc_condset_t , next) - 0usize] ; ["Offset of field: rc_condset_t::conditions"] [:: core :: mem :: offset_of ! (rc_condset_t , conditions) - 8usize] ; ["Offset of field: rc_condset_t::has_pause"] [:: core :: mem :: offset_of ! (rc_condset_t , has_pause) - 16usize] ; ["Offset of field: rc_condset_t::is_paused"] [:: core :: mem :: offset_of ! (rc_condset_t , is_paused) - 17usize] ; ["Offset of field: rc_condset_t::has_indirect_memrefs"] [:: core :: mem :: offset_of ! (rc_condset_t , has_indirect_memrefs) - 18usize] ; } ; pub const RC_TRIGGER_STATE_INACTIVE : _bindgen_ty_6 = 0 ; pub const RC_TRIGGER_STATE_WAITING : _bindgen_ty_6 = 1 ; pub const RC_TRIGGER_STATE_ACTIVE : _bindgen_ty_6 = 2 ; pub const RC_TRIGGER_STATE_PAUSED : _bindgen_ty_6 = 3 ; pub const RC_TRIGGER_STATE_RESET : _bindgen_ty_6 = 4 ; pub const RC_TRIGGER_STATE_TRIGGERED : _bindgen_ty_6 = 5 ; pub const RC_TRIGGER_STATE_PRIMED : _bindgen_ty_6 = 6 ; pub const RC_TRIGGER_STATE_DISABLED : _bindgen_ty_6 = 7 ; # [doc = "\\\n| Trigger                                                                     |\n\\"] pub type _bindgen_ty_6 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_trigger_t { pub requirement : * mut rc_condset_t , pub alternative : * mut rc_condset_t , pub memrefs : * mut rc_memref_t , pub measured_value : u32 , pub measured_target : u32 , pub state : u8 , pub has_hits : u8 , pub has_required_hits : u8 , pub measured_as_percent : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_trigger_t"] [:: core :: mem :: size_of :: < rc_trigger_t > () - 40usize] ; ["Alignment of rc_trigger_t"] [:: core :: mem :: align_of :: < rc_trigger_t > () - 8usize] ; ["Offset of field: rc_trigger_t::requirement"] [:: core :: mem :: offset_of ! (rc_trigger_t , requirement) - 0usize] ; ["Offset of field: rc_trigger_t::alternative"] [:: core :: mem :: offset_of ! (rc_trigger_t , alternative) - 8usize] ; ["Offset of field: rc_trigger_t::memrefs"] [:: core :: mem :: offset_of ! (rc_trigger_t , memrefs) - 16usize] ; ["Offset of field: rc_trigger_t::measured_value"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_value) - 24usize] ; ["Offset of field: rc_trigger_t::measured_target"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_target) - 28usize] ; ["Offset of field: rc_trigger_t::state"] [:: core :: mem :: offset_of ! (rc_trigger_t , state) - 32usize] ; ["Offset of field: rc_trigger_t::has_hits"] [:: core :: mem :: offset_of ! (rc_trigger_t , has_hits) - 33usize] ; ["Offset of field: rc_trigger_t::has_required_hits"] [:: core :: mem :: offset_of ! (rc_trigger_t , has_required_hits) - 34usize] ; ["Offset of field: rc_trigger_t::measured_as_percent"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_as_percent) - 35usize] ; } ; extern "C" { pub fn rc_trigger_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_trigger (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_trigger_t ; } extern "C" { pub fn rc_evaluate_trigger (trigger : * mut rc_trigger_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_test_trigger (trigger : * mut rc_trigger_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_trigger (self_ : * mut rc_trigger_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_value_t { pub value : rc_memref_value_t , pub conditions : * mut rc_condset_t , pub memrefs : * mut rc_memref_t , pub name : * const :: core :: ffi :: c_char , pub next : * mut rc_value_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_value_t"] [:: core :: mem :: size_of :: < rc_value_t > () - 48usize] ; ["Alignment of rc_value_t"] [:: core :: mem :: align_of :: < rc_value_t > () - 8usize] ; ["Offset of field: rc_value_t::value"] [:: core :: mem :: offset_of ! (rc_value_t , value) - 0usize] ; ["Offset of field: rc_value_t::conditions"] [:: core :: mem :: offset_of ! (rc_value_t , conditions) - 16usize] ; ["Offset of field: rc_value_t::memrefs"] [:: core :: mem :: offset_of ! (rc_value_t , memrefs) - 24usize] ; ["Offset of field: rc_value_t::name"] [:: core :: mem :: offset_of ! (rc_value_t , name) - 32usize] ; ["Offset of field: rc_value_t::next"] [:: core :: mem :: offset_of ! (rc_value_t , next) - 40usize] ; } ; extern "C" { pub fn rc_value_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_value (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_value_t ; } extern "C" { pub fn rc_evaluate_value (value : * mut rc_value_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> i32 ; } pub const RC_LBOARD_STATE_INACTIVE : _bindgen_ty_7 = 0 ; pub const RC_LBOARD_STATE_WAITING : _bindgen_ty_7 = 1 ; pub const RC_LBOARD_STATE_ACTIVE : _bindgen_ty_7 = 2 ; pub const RC_LBOARD_STATE_STARTED : _bindgen_ty_7 = 3 ; pub const RC_LBOARD_STATE_CANCELED : _bindgen_ty_7 = 4 ; pub const RC_LBOARD_STATE_TRIGGERED : _bindgen_ty_7 = 5 ; pub const RC_LBOARD_STATE_DISABLED : _bindgen_ty_7 = 6 ; # [doc = "\\\n| Leaderboards                                                                |\n\\"] pub type _bindgen_ty_7 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_lboard_t { pub start : rc_trigger_t , pub submit : rc_trigger_t , pub cancel : rc_trigger_t , pub value : rc_value_t , pub progress : * mut rc_value_t , pub memrefs : * mut rc_memref_t , pub state : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_lboard_t"] [:: core :: mem :: size_of :: < rc_lboard_t > () - 192usize] ; ["Alignment of rc_lboard_t"] [:: core :: mem :: align_of :: < rc_lboard_t > () - 8usize] ; ["Offset of field: rc_lboard_t::start"] [:: core :: mem :: offset_of ! (rc_lboard_t , start) - 0usize] ; ["Offset of field: rc_lboard_t::submit"] [:: core :: mem :: offset_of ! (rc_lboard_t , submit) - 40usize] ; ["Offset of field: rc_lboard_t::cancel"] [:: core :: mem :: offset_of ! (rc_lboard_t , cancel) - 80usize] ; ["Offset of field: rc_lboard_t::value"] [:: core :: mem :: offset_of ! (rc_lboard_t , value) - 120usize] ; ["Offset of field: rc_lboard_t::progress"] [:: core :: mem :: offset_of ! (rc_lboard_t , progress) - 168usize] ; ["Offset of field: rc_lboard_t::memrefs"] [:: core :: mem :: offset_of ! (rc_lboard_t , memrefs) - 176usize] ; ["Offset of field: rc_lboard_t::state"] [:: core :: mem :: offset_of ! (rc_lboard_t , state) - 184usize] ; } ; extern "C" { pub fn rc_lboard_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_lboard (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_lboard_t ; } extern "C" { pub fn rc_evaluate_lboard (lboard : * mut rc_lboard_t , value : * mut i32 , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_lboard (lboard : * mut rc_lboard_t) ; } pub const RC_FORMAT_FRAMES : _bindgen_ty_8 = 0 ; pub const RC_FORMAT_SECONDS : _bindgen_ty_8 = 1 ; pub const RC_FORMAT_CENTISECS : _bindgen_ty_8 = 2 ; pub const RC_FORMAT_SCORE : _bindgen_ty_8 = 3 ; pub const RC_FORMAT_VALUE : _bindgen_ty_8 = 4 ; pub const RC_FORMAT_MINUTES : _bindgen_ty_8 = 5 ; pub const RC_FORMAT_SECONDS_AS_MINUTES : _bindgen_ty_8 = 6 ; pub const RC_FORMAT_FLOAT1 : _bindgen_ty_8 = 7 ; pub const RC_FORMAT_FLOAT2 : _bindgen_ty_8 = 8 ; pub const RC_FORMAT_FLOAT3 : _bindgen_ty_8 = 9 ; pub const RC_FORMAT_FLOAT4 : _bindgen_ty_8 = 10 ; pub const RC_FORMAT_FLOAT5 : _bindgen_ty_8 = 11 ; pub const RC_FORMAT_FLOAT6 : _bindgen_ty_8 = 12 ; pub const RC_FORMAT_FIXED1 : _bindgen_ty_8 = 13 ; pub const RC_FORMAT_FIXED2 : _bindgen_ty_8 = 14 ; pub const RC_FORMAT_FIXED3 : _bindgen_ty_8 = 15 ; pub const RC_FORMAT_TENS : _bindgen_ty_8 = 16 ; pub const RC_FORMAT_HUNDREDS : _bindgen_ty_8 = 17 ; pub const RC_FORMAT_THOUSANDS : _bindgen_ty_8 = 18 ; pub const RC_FORMAT_UNSIGNED_VALUE : _bindgen_ty_8 = 19 ; # [doc = "\\\n| Value formatting                                                            |\n\\"] pub type _bindgen_ty_8 = :: core :: ffi :: c_uint ; extern "C" { pub fn rc_parse_format (format_str : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_format_value (buffer : * mut :: core :: ffi :: c_char , size : :: core :: ffi :: c_int , value : i32 , format : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_lookup_item_t { pub first : u32 , pub last : u32 , pub left : * mut rc_richpresence_lookup_item_t , pub right : * mut rc_richpresence_lookup_item_t , pub label : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_lookup_item_t"] [:: core :: mem :: size_of :: < rc_richpresence_lookup_item_t > () - 32usize] ; ["Alignment of rc_richpresence_lookup_item_t"] [:: core :: mem :: align_of :: < rc_richpresence_lookup_item_t > () - 8usize] ; ["Offset of field: rc_richpresence_lookup_item_t::first"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , first) - 0usize] ; ["Offset of field: rc_richpresence_lookup_item_t::last"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , last) - 4usize] ; ["Offset of field: rc_richpresence_lookup_item_t::left"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , left) - 8usize] ; ["Offset of field: rc_richpresence_lookup_item_t::right"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , right) - 16usize] ; ["Offset of field: rc_richpresence_lookup_item_t::label"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , label) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_lookup_t { pub root : * mut rc_richpresence_lookup_item_t , pub next : * mut rc_richpresence_lookup_t , pub name : * const :: core :: ffi :: c_char , pub default_label : * const :: core :: ffi :: c_char , pub format : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_lookup_t"] [:: core :: mem :: size_of :: < rc_richpresence_lookup_t > () - 40usize] ; ["Alignment of rc_richpresence_lookup_t"] [:: core :: mem :: align_of :: < rc_richpresence_lookup_t > () - 8usize] ; ["Offset of field: rc_richpresence_lookup_t::root"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , root) - 0usize] ; ["Offset of field: rc_richpresence_lookup_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , next) - 8usize] ; ["Offset of field: rc_richpresence_lookup_t::name"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , name) - 16usize] ; ["Offset of field: rc_richpresence_lookup_t::default_label"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , default_label) - 24usize] ; ["Offset of field: rc_richpresence_lookup_t::format"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , format) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_display_part_t { pub next : * mut rc_richpresence_display_part_t , pub text : * const :: core :: ffi :: c_char , pub lookup : * mut rc_richpresence_lookup_t , pub value : * mut rc_memref_value_t , pub display_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_display_part_t"] [:: core :: mem :: size_of :: < rc_richpresence_display_part_t > () - 40usize] ; ["Alignment of rc_richpresence_display_part_t"] [:: core :: mem :: align_of :: < rc_richpresence_display_part_t > () - 8usize] ; ["Offset of field: rc_richpresence_display_part_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , next) - 0usize] ; ["Offset of field: rc_richpresence_display_part_t::text"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , text) - 8usize] ; ["Offset of field: rc_richpresence_display_part_t::lookup"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , lookup) - 16usize] ; ["Offset of field: rc_richpresence_display_part_t::value"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , value) - 24usize] ; ["Offset of field: rc_richpresence_display_part_t::display_type"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , display_type) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_display_t { pub trigger : rc_trigger_t , pub next : * mut rc_richpresence_display_t , pub display : * mut rc_richpresence_display_part_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_display_t"] [:: core :: mem :: size_of :: < rc_richpresence_display_t > () - 56usize] ; ["Alignment of rc_richpresence_display_t"] [:: core :: mem :: align_of :: < rc_richpresence_display_t > () - 8usize] ; ["Offset of field: rc_richpresence_display_t::trigger"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , trigger) - 0usize] ; ["Offset of field: rc_richpresence_display_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , next) - 40usize] ; ["Offset of field: rc_richpresence_display_t::display"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , display) - 48usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_t { pub first_display : * mut rc_richpresence_display_t , pub first_lookup : * mut rc_richpresence_lookup_t , pub memrefs : * mut rc_memref_t , pub variables : * mut rc_value_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_t"] [:: core :: mem :: size_of :: < rc_richpresence_t > () - 32usize] ; ["Alignment of rc_richpresence_t"] [:: core :: mem :: align_of :: < rc_richpresence_t > () - 8usize] ; ["Offset of field: rc_richpresence_t::first_display"] [:: core :: mem :: offset_of ! (rc_richpresence_t , first_display) - 0usize] ; ["Offset of field: rc_richpresence_t::first_lookup"] [:: core :: mem :: offset_of ! (rc_richpresence_t , first_lookup) - 8usize] ; ["Offset of field: rc_richpresence_t::memrefs"] [:: core :: mem :: offset_of ! (rc_richpresence_t , memrefs) - 16usize] ; ["Offset of field: rc_richpresence_t::variables"] [:: core :: mem :: offset_of ! (rc_richpresence_t , variables) - 24usize] ; } ; extern "C" { pub fn rc_richpresence_size (script : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_richpresence_size_lines (script : * const :: core :: ffi :: c_char , lines_read : * mut :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_richpresence (buffer : * mut :: core :: ffi :: c_void , script : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_richpresence_t ; } extern "C" { pub fn rc_evaluate_richpresence (richpresence : * mut rc_richpresence_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_update_richpresence (richpresence : * mut rc_richpresence_t , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) ; } extern "C" { pub fn rc_get_richpresence_display_string (richpresence : * mut rc_richpresence_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_richpresence (self_ : * mut rc_richpresence_t) ; } # [doc = " A block of memory for variable length data (like strings and arrays)."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_buffer_chunk_t { pub write : * mut u8 , pub end : * mut u8 , pub start : * mut u8 , pub next : * mut rc_buffer_chunk_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_buffer_chunk_t"] [:: core :: mem :: size_of :: < rc_buffer_chunk_t > () - 32usize] ; ["Alignment of rc_buffer_chunk_t"] [:: core :: mem :: align_of :: < rc_buffer_chunk_t > () - 8usize] ; ["Offset of field: rc_buffer_chunk_t::write"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , write) - 0usize] ; ["Offset of field: rc_buffer_chunk_t::end"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , end) - 8usize] ; ["Offset of field: rc_buffer_chunk_t::start"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , start) - 16usize] ; ["Offset of field: rc_buffer_chunk_t::next"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , next) - 24usize] ; } ; # [doc = " A preallocated block of memory for variable length data (like strings and arrays)."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_buffer_t { pub chunk : rc_buffer_chunk_t , pub data : [u8 ; 256usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_buffer_t"] [:: core :: mem :: size_of :: < rc_buffer_t > () - 288usize] ; ["Alignment of rc_buffer_t"] [:: core :: mem :: align_of :: < rc_buffer_t > () - 8usize] ; ["Offset of field: rc_buffer_t::chunk"] [:: core :: mem :: offset_of ! (rc_buffer_t , chunk) - 0usize] ; ["Offset of field: rc_buffer_t::data"] [:: core :: mem :: offset_of ! (rc_buffer_t , data) - 32usize] ; } ; extern "C" { pub fn rc_buffer_init (buffer : * mut rc_buffer_t) ; } extern "C" { pub fn rc_buffer_destroy (buffer : * mut rc_buffer_t) ; } extern "C" { pub fn rc_buffer_reserve (buffer : * mut rc_buffer_t , amount : usize) -> * mut u8 ; } extern "C" { pub fn rc_buffer_consume (buffer : * mut rc_buffer_t , start : * const u8 , end : * mut u8) ; } extern "C" { pub fn rc_buffer_alloc (buffer : * mut rc_buffer_t , amount : usize) -> * mut :: core :: ffi :: c_void ; } extern "C" { pub fn rc_buffer_strcpy (buffer : * mut rc_buffer_t , src : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn rc_buffer_strncpy (buffer : * mut rc_buffer_t , src : * const :: core :: ffi :: c_char , len : usize) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn rc_djb2 (input : * const :: core :: ffi :: c_char) -> u32 ; } extern "C" { pub fn rc_format_md5 (checksum : * mut :: core :: ffi :: c_char , digest : * const u8) ; } # [doc = " A constructed request to send to the retroachievements server."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_request_t { pub url : * const :: core :: ffi :: c_char , pub post_data : * const :: core :: ffi :: c_char , pub content_type : * const :: core :: ffi :: c_char , pub buffer : rc_buffer_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_request_t"] [:: core :: mem :: size_of :: < rc_api_request_t > () - 312usize] ; ["Alignment of rc_api_request_t"] [:: core :: mem :: align_of :: < rc_api_request_t > () - 8usize] ; ["Offset of field: rc_api_request_t::url"] [:: core :: mem :: offset_of ! (rc_api_request_t , url) - 0usize] ; ["Offset of field: rc_api_request_t::post_data"] [:: core :: mem :: offset_of ! (rc_api_request_t , post_data) - 8usize] ; ["Offset of field: rc_api_request_t::content_type"] [:: core :: mem :: offset_of ! (rc_api_request_t , content_type) - 16usize] ; ["Offset of field: rc_api_request_t::buffer"] [:: core :: mem :: offset_of ! (rc_api_request_t , buffer) - 24usize] ; } ; # [doc = " Common attributes for all server responses."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_response_t { pub succeeded : :: core :: ffi :: c_int , pub error_message : * const :: core :: ffi :: c_char , pub error_code : * const :: core :: ffi :: c_char , pub buffer : rc_buffer_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_response_t"] [:: core :: mem :: size_of :: < rc_api_response_t > () - 312usize] ; ["Alignment of rc_api_response_t"] [:: core :: mem :: align_of :: < rc_api_response_t > () - 8usize] ; ["Offset of field: rc_api_response_t::succeeded"] [:: core :: mem :: offset_of ! (rc_api_response_t , succeeded) - 0usize] ; ["Offset of field: rc_api_response_t::error_message"] [:: core :: mem :: offset_of ! (rc_api_response_t , error_message) - 8usize] ; ["Offset of field: rc_api_response_t::error_code"] [:: core :: mem :: offset_of ! (rc_api_response_t , error_code) - 16usize] ; ["Offset of field: rc_api_response_t::buffer"] [:: core :: mem :: offset_of ! (rc_api_response_t , buffer) - 24usize] ; } ; extern "C" { pub fn rc_api_destroy_request (request : * mut rc_api_request_t) ; } extern "C" { pub fn rc_api_set_host (hostname : * const :: core :: ffi :: c_char) ; } extern "C" { pub fn rc_api_set_image_host (hostname : * const :: core :: ffi :: c_char) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_server_response_t { pub body : * const :: core :: ffi :: c_char , pub body_length : usize , pub http_status_code : :: core :: ffi :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_server_response_t"] [:: core :: mem :: size_of :: < rc_api_server_response_t > () - 24usize] ; ["Alignment of rc_api_server_response_t"] [:: core :: mem :: align_of :: < rc_api_server_response_t > () - 8usize] ; ["Offset of field: rc_api_server_response_t::body"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , body) - 0usize] ; ["Offset of field: rc_api_server_response_t::body_length"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , body_length) - 8usize] ; ["Offset of field: rc_api_server_response_t::http_status_code"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , http_status_code) - 16usize] ; } ; pub const RC_API_SERVER_RESPONSE_CLIENT_ERROR : _bindgen_ty_9 = - 1 ; pub const RC_API_SERVER_RESPONSE_RETRYABLE_CLIENT_ERROR : _bindgen_ty_9 = - 2 ; pub type _bindgen_ty_9 = :: core :: ffi :: c_int ; pub type clock_t = __clock_t ; pub type time_t = __time_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct tm { pub tm_sec : :: core :: ffi :: c_int , pub tm_min : :: core :: ffi :: c_int , pub tm_hour : :: core :: ffi :: c_int , pub tm_mday : :: core :: ffi :: c_int , pub tm_mon : :: core :: ffi :: c_int , pub tm_year : :: core :: ffi :: c_int , pub tm_wday : :: core :: ffi :: c_int , pub tm_yday : :: core :: ffi :: c_int , pub tm_isdst : :: core :: ffi :: c_int , pub tm_gmtoff : :: core :: ffi :: c_long , pub tm_zone : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of tm"] [:: core :: mem :: size_of :: < tm > () - 56usize] ; ["Alignment of tm"] [:: core :: mem :: align_of :: < tm > () - 8usize] ; ["Offset of field: tm::tm_sec"] [:: core :: mem :: offset_of ! (tm , tm_sec) - 0usize] ; ["Offset of field: tm::tm_min"] [:: core :: mem :: offset_of ! (tm , tm_min) - 4usize] ; ["Offset of field: tm::tm_hour"] [:: core :: mem :: offset_of ! (tm , tm_hour) - 8usize] ; ["Offset of field: tm::tm_mday"] [:: core :: mem :: offset_of ! (tm , tm_mday) - 12usize] ; ["Offset of field: tm::tm_mon"] [:: core :: mem :: offset_of ! (tm , tm_mon) - 16usize] ; ["Offset of field: tm::tm_year"] [:: core :: mem :: offset_of ! (tm , tm_year) - 20usize] ; ["Offset of field: tm::tm_wday"] [:: core :: mem :: offset_of ! (tm , tm_wday) - 24usize] ; ["Offset of field: tm::tm_yday"] [:: core :: mem :: offset_of ! (tm , tm_yday) - 28usize] ; ["Offset of field: tm::tm_isdst"] [:: core :: mem :: offset_of ! (tm , tm_isdst) - 32usize] ; ["Offset of field: tm::tm_gmtoff"] [:: core :: mem :: offset_of ! (tm , tm_gmtoff) - 40usize] ; ["Offset of field: tm::tm_zone"] [:: core :: mem :: offset_of ! (tm , tm_zone) - 48usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct timespec { pub tv_sec : __time_t , pub tv_nsec : __syscall_slong_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of timespec"] [:: core :: mem :: size_of :: < timespec > () - 16usize] ; ["Alignment of timespec"] [:: core :: mem :: align_of :: < timespec > () - 8usize] ; ["Offset of field: timespec::tv_sec"] [:: core :: mem :: offset_of ! (timespec , tv_sec) - 0usize] ; ["Offset of field: timespec::tv_nsec"] [:: core :: mem :: offset_of ! (timespec , tv_nsec) - 8usize] ; } ; pub type clockid_t = __clockid_t ; pub type timer_t = __timer_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct itimerspec { pub it_interval : timespec , pub it_value : timespec , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of itimerspec"] [:: core :: mem :: size_of :: < itimerspec > () - 32usize] ; ["Alignment of itimerspec"] [:: core :: mem :: align_of :: < itimerspec > () - 8usize] ; ["Offset of field: itimerspec::it_interval"] [:: core :: mem :: offset_of ! (itimerspec , it_interval) - 0usize] ; ["Offset of field: itimerspec::it_value"] [:: core :: mem :: offset_of ! (itimerspec , it_value) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct sigevent { _unused : [u8 ; 0] , } pub type pid_t = __pid_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __locale_struct { pub __locales : [* mut __locale_data ; 13usize] , pub __ctype_b : * const :: core :: ffi :: c_ushort , pub __ctype_tolower : * const :: core :: ffi :: c_int , pub __ctype_toupper : * const :: core :: ffi :: c_int , pub __names : [* const :: core :: ffi :: c_char ; 13usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __locale_struct"] [:: core :: mem :: size_of :: < __locale_struct > () - 232usize] ; ["Alignment of __locale_struct"] [:: core :: mem :: align_of :: < __locale_struct > () - 8usize] ; ["Offset of field: __locale_struct::__locales"] [:: core :: mem :: offset_of ! (__locale_struct , __locales) - 0usize] ; ["Offset of field: __locale_struct::__ctype_b"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_b) - 104usize] ; ["Offset of field: __locale_struct::__ctype_tolower"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_tolower) - 112usize] ; ["Offset of field: __locale_struct::__ctype_toupper"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_toupper) - 120usize] ; ["Offset of field: __locale_struct::__names"] [:: core :: mem :: offset_of ! (__locale_struct , __names) - 128usize] ; } ; pub type __locale_t = * mut __locale_struct ; pub type locale_t = __locale_t ; extern "C" { pub fn clock () -> clock_t ; } extern "C" { pub fn time (__timer : * mut time_t) -> time_t ; } extern "C" { pub fn difftime (__time1 : time_t , __time0 : time_t) -> f64 ; } extern "C" { pub fn mktime (__tp : * mut tm) -> time_t ; } extern "C" { pub fn strftime (__s : * mut :: core :: ffi :: c_char , __maxsize : usize , __format : * const :: core :: ffi :: c_char , __tp : * const tm) -> usize ; } extern "C" { pub fn strftime_l (__s : * mut :: core :: ffi :: c_char , __maxsize : usize , __format : * const :: core :: ffi :: c_char , __tp : * const tm , __loc : locale_t) -> usize ; } extern "C" { pub fn gmtime (__timer : * const time_t) -> * mut tm ; } extern "C" { pub fn localtime (__timer : * const time_t) -> * mut tm ; } extern "C" { pub fn gmtime_r (__timer : * const time_t , __tp : * mut tm) -> * mut tm ; } extern "C" { pub fn localtime_r (__timer : * const time_t , __tp : * mut tm) -> * mut tm ; } extern "C" { pub fn asctime (__tp : * const tm) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn ctime (__timer : * const time_t) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn asctime_r (__tp : * const tm , __buf : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn ctime_r (__timer : * const time_t , __buf : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub static mut __tzname : [* mut :: core :: ffi :: c_char ; 2usize] ; } extern "C" { pub static mut __daylight : :: core :: ffi :: c_int ; } extern "C" { pub static mut __timezone : :: core :: ffi :: c_long ; } extern "C" { pub static mut tzname : [* mut :: core :: ffi :: c_char ; 2usize] ; } extern "C" { pub fn tzset () ; } extern "C" { pub static mut daylight : :: core :: ffi :: c_int ; } extern "C" { pub static mut timezone : :: core :: ffi :: c_long ; } extern "C" { pub fn timegm (__tp : * mut tm) -> time_t ; } extern "C" { pub fn timelocal (__tp : * mut tm) -> time_t ; } extern "C" { pub fn dysize (__year : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn nanosleep (__requested_time : * const timespec , __remaining : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_getres (__clock_id : clockid_t , __res : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_gettime (__clock_id : clockid_t , __tp : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_settime (__clock_id : clockid_t , __tp : * const timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_nanosleep (__clock_id : clockid_t , __flags : :: core :: ffi :: c_int , __req : * const timespec , __rem : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_getcpuclockid (__pid : pid_t , __clock_id : * mut clockid_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_create (__clock_id : clockid_t , __evp : * mut sigevent , __timerid : * mut timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_delete (__timerid : timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_settime (__timerid : timer_t , __flags : :: core :: ffi :: c_int , __value : * const itimerspec , __ovalue : * mut itimerspec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_gettime (__timerid : timer_t , __value : * mut itimerspec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_getoverrun (__timerid : timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timespec_get (__ts : * mut timespec , __base : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } # [doc = " API parameters for a login request.\n If both password and api_token are provided, api_token will be ignored."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_login_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub password : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_login_request_t"] [:: core :: mem :: size_of :: < rc_api_login_request_t > () - 24usize] ; ["Alignment of rc_api_login_request_t"] [:: core :: mem :: align_of :: < rc_api_login_request_t > () - 8usize] ; ["Offset of field: rc_api_login_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , username) - 0usize] ; ["Offset of field: rc_api_login_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_login_request_t::password"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , password) - 16usize] ; } ; # [doc = " Response data for a login request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_login_response_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub score : u32 , pub score_softcore : u32 , pub num_unread_messages : u32 , pub display_name : * const :: core :: ffi :: c_char , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_login_response_t"] [:: core :: mem :: size_of :: < rc_api_login_response_t > () - 352usize] ; ["Alignment of rc_api_login_response_t"] [:: core :: mem :: align_of :: < rc_api_login_response_t > () - 8usize] ; ["Offset of field: rc_api_login_response_t::username"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , username) - 0usize] ; ["Offset of field: rc_api_login_response_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , api_token) - 8usize] ; ["Offset of field: rc_api_login_response_t::score"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , score) - 16usize] ; ["Offset of field: rc_api_login_response_t::score_softcore"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , score_softcore) - 20usize] ; ["Offset of field: rc_api_login_response_t::num_unread_messages"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , num_unread_messages) - 24usize] ; ["Offset of field: rc_api_login_response_t::display_name"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , display_name) - 32usize] ; ["Offset of field: rc_api_login_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , response) - 40usize] ; } ; extern "C" { pub fn rc_api_init_login_request (request : * mut rc_api_request_t , api_params : * const rc_api_login_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_login_response (response : * mut rc_api_login_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_login_server_response (response : * mut rc_api_login_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_login_response (response : * mut rc_api_login_response_t) ; } # [doc = " API parameters for a start session request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_start_session_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub game_hash : * const :: core :: ffi :: c_char , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_start_session_request_t"] [:: core :: mem :: size_of :: < rc_api_start_session_request_t > () - 40usize] ; ["Alignment of rc_api_start_session_request_t"] [:: core :: mem :: align_of :: < rc_api_start_session_request_t > () - 8usize] ; ["Offset of field: rc_api_start_session_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , username) - 0usize] ; ["Offset of field: rc_api_start_session_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_start_session_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_start_session_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_start_session_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , hardcore) - 32usize] ; } ; # [doc = " Response data for an achievement unlock."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_unlock_entry_t { pub achievement_id : u32 , pub when : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_unlock_entry_t"] [:: core :: mem :: size_of :: < rc_api_unlock_entry_t > () - 16usize] ; ["Alignment of rc_api_unlock_entry_t"] [:: core :: mem :: align_of :: < rc_api_unlock_entry_t > () - 8usize] ; ["Offset of field: rc_api_unlock_entry_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_unlock_entry_t , achievement_id) - 0usize] ; ["Offset of field: rc_api_unlock_entry_t::when"] [:: core :: mem :: offset_of ! (rc_api_unlock_entry_t , when) - 8usize] ; } ; # [doc = " Response data for a start session request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_start_session_response_t { pub hardcore_unlocks : * mut rc_api_unlock_entry_t , pub unlocks : * mut rc_api_unlock_entry_t , pub num_hardcore_unlocks : u32 , pub num_unlocks : u32 , pub server_now : time_t , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_start_session_response_t"] [:: core :: mem :: size_of :: < rc_api_start_session_response_t > () - 344usize] ; ["Alignment of rc_api_start_session_response_t"] [:: core :: mem :: align_of :: < rc_api_start_session_response_t > () - 8usize] ; ["Offset of field: rc_api_start_session_response_t::hardcore_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , hardcore_unlocks) - 0usize] ; ["Offset of field: rc_api_start_session_response_t::unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , unlocks) - 8usize] ; ["Offset of field: rc_api_start_session_response_t::num_hardcore_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , num_hardcore_unlocks) - 16usize] ; ["Offset of field: rc_api_start_session_response_t::num_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , num_unlocks) - 20usize] ; ["Offset of field: rc_api_start_session_response_t::server_now"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , server_now) - 24usize] ; ["Offset of field: rc_api_start_session_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_start_session_request (request : * mut rc_api_request_t , api_params : * const rc_api_start_session_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_start_session_response (response : * mut rc_api_start_session_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_start_session_server_response (response : * mut rc_api_start_session_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_start_session_response (response : * mut rc_api_start_session_response_t) ; } # [doc = " API parameters for a fetch user unlocks request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_user_unlocks_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_user_unlocks_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_user_unlocks_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_user_unlocks_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_user_unlocks_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , hardcore) - 20usize] ; } ; # [doc = " Response data for a fetch user unlocks request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_user_unlocks_response_t { pub achievement_ids : * mut u32 , pub num_achievement_ids : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_user_unlocks_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_user_unlocks_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_user_unlocks_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_user_unlocks_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::achievement_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , achievement_ids) - 0usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::num_achievement_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , num_achievement_ids) - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_user_unlocks_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_user_unlocks_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_user_unlocks_response (response : * mut rc_api_fetch_user_unlocks_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_user_unlocks_server_response (response : * mut rc_api_fetch_user_unlocks_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_user_unlocks_response (response : * mut rc_api_fetch_user_unlocks_response_t) ; } # [doc = " API parameters for a fetch code notes request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_code_notes_request_t { pub game_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_code_notes_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_code_notes_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_code_notes_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_code_notes_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_code_notes_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_request_t , game_id) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_code_note_t { pub address : u32 , pub author : * const :: core :: ffi :: c_char , pub note : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_code_note_t"] [:: core :: mem :: size_of :: < rc_api_code_note_t > () - 24usize] ; ["Alignment of rc_api_code_note_t"] [:: core :: mem :: align_of :: < rc_api_code_note_t > () - 8usize] ; ["Offset of field: rc_api_code_note_t::address"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , address) - 0usize] ; ["Offset of field: rc_api_code_note_t::author"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , author) - 8usize] ; ["Offset of field: rc_api_code_note_t::note"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , note) - 16usize] ; } ; # [doc = " Response data for a fetch code notes request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_code_notes_response_t { pub notes : * mut rc_api_code_note_t , pub num_notes : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_code_notes_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_code_notes_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_code_notes_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_code_notes_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::notes"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , notes) - 0usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::num_notes"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , num_notes) - 8usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_code_notes_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_code_notes_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_code_notes_response (response : * mut rc_api_fetch_code_notes_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_code_notes_server_response (response : * mut rc_api_fetch_code_notes_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_code_notes_response (response : * mut rc_api_fetch_code_notes_response_t) ; } # [doc = " API parameters for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_code_note_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub address : u32 , pub note : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_code_note_request_t"] [:: core :: mem :: size_of :: < rc_api_update_code_note_request_t > () - 32usize] ; ["Alignment of rc_api_update_code_note_request_t"] [:: core :: mem :: align_of :: < rc_api_update_code_note_request_t > () - 8usize] ; ["Offset of field: rc_api_update_code_note_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_code_note_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_code_note_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_update_code_note_request_t::address"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , address) - 20usize] ; ["Offset of field: rc_api_update_code_note_request_t::note"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , note) - 24usize] ; } ; # [doc = " Response data for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_code_note_response_t { pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_code_note_response_t"] [:: core :: mem :: size_of :: < rc_api_update_code_note_response_t > () - 312usize] ; ["Alignment of rc_api_update_code_note_response_t"] [:: core :: mem :: align_of :: < rc_api_update_code_note_response_t > () - 8usize] ; ["Offset of field: rc_api_update_code_note_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_response_t , response) - 0usize] ; } ; extern "C" { pub fn rc_api_init_update_code_note_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_code_note_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_code_note_response (response : * mut rc_api_update_code_note_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_code_note_server_response (response : * mut rc_api_update_code_note_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_code_note_response (response : * mut rc_api_update_code_note_response_t) ; } # [doc = " API parameters for an update achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_achievement_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub game_id : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub badge : * const :: core :: ffi :: c_char , pub trigger : * const :: core :: ffi :: c_char , pub points : u32 , pub category : u32 , pub type_ : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_achievement_request_t"] [:: core :: mem :: size_of :: < rc_api_update_achievement_request_t > () - 72usize] ; ["Alignment of rc_api_update_achievement_request_t"] [:: core :: mem :: align_of :: < rc_api_update_achievement_request_t > () - 8usize] ; ["Offset of field: rc_api_update_achievement_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_achievement_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_achievement_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_update_achievement_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , game_id) - 20usize] ; ["Offset of field: rc_api_update_achievement_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , title) - 24usize] ; ["Offset of field: rc_api_update_achievement_request_t::description"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , description) - 32usize] ; ["Offset of field: rc_api_update_achievement_request_t::badge"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , badge) - 40usize] ; ["Offset of field: rc_api_update_achievement_request_t::trigger"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , trigger) - 48usize] ; ["Offset of field: rc_api_update_achievement_request_t::points"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , points) - 56usize] ; ["Offset of field: rc_api_update_achievement_request_t::category"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , category) - 60usize] ; ["Offset of field: rc_api_update_achievement_request_t::type_"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , type_) - 64usize] ; } ; # [doc = " Response data for an update achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_achievement_response_t { pub achievement_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_achievement_response_t"] [:: core :: mem :: size_of :: < rc_api_update_achievement_response_t > () - 320usize] ; ["Alignment of rc_api_update_achievement_response_t"] [:: core :: mem :: align_of :: < rc_api_update_achievement_response_t > () - 8usize] ; ["Offset of field: rc_api_update_achievement_response_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_response_t , achievement_id) - 0usize] ; ["Offset of field: rc_api_update_achievement_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_update_achievement_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_achievement_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_achievement_response (response : * mut rc_api_update_achievement_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_achievement_server_response (response : * mut rc_api_update_achievement_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_achievement_response (response : * mut rc_api_update_achievement_response_t) ; } # [doc = " API parameters for an update leaderboard request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_leaderboard_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub leaderboard_id : u32 , pub game_id : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub start_trigger : * const :: core :: ffi :: c_char , pub submit_trigger : * const :: core :: ffi :: c_char , pub cancel_trigger : * const :: core :: ffi :: c_char , pub value_definition : * const :: core :: ffi :: c_char , pub format : * const :: core :: ffi :: c_char , pub lower_is_better : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_leaderboard_request_t"] [:: core :: mem :: size_of :: < rc_api_update_leaderboard_request_t > () - 88usize] ; ["Alignment of rc_api_update_leaderboard_request_t"] [:: core :: mem :: align_of :: < rc_api_update_leaderboard_request_t > () - 8usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , leaderboard_id) - 16usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , game_id) - 20usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , title) - 24usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::description"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , description) - 32usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::start_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , start_trigger) - 40usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::submit_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , submit_trigger) - 48usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::cancel_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , cancel_trigger) - 56usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::value_definition"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , value_definition) - 64usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::format"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , format) - 72usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , lower_is_better) - 80usize] ; } ; # [doc = " Response data for an update leaderboard request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_leaderboard_response_t { pub leaderboard_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_leaderboard_response_t"] [:: core :: mem :: size_of :: < rc_api_update_leaderboard_response_t > () - 320usize] ; ["Alignment of rc_api_update_leaderboard_response_t"] [:: core :: mem :: align_of :: < rc_api_update_leaderboard_response_t > () - 8usize] ; ["Offset of field: rc_api_update_leaderboard_response_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_response_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_api_update_leaderboard_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_update_leaderboard_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_leaderboard_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_leaderboard_response (response : * mut rc_api_update_leaderboard_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_leaderboard_server_response (response : * mut rc_api_update_leaderboard_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_leaderboard_response (response : * mut rc_api_update_leaderboard_response_t) ; } # [doc = " API parameters for a fetch badge range request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_badge_range_request_t { pub unused : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_badge_range_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_badge_range_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_badge_range_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_badge_range_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_badge_range_request_t::unused"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_request_t , unused) - 0usize] ; } ; # [doc = " Response data for a fetch badge range request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_badge_range_response_t { pub first_badge_id : u32 , pub next_badge_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_badge_range_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_badge_range_response_t > () - 320usize] ; ["Alignment of rc_api_fetch_badge_range_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_badge_range_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::first_badge_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , first_badge_id) - 0usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::next_badge_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , next_badge_id) - 4usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_fetch_badge_range_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_badge_range_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_badge_range_response (response : * mut rc_api_fetch_badge_range_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_badge_range_server_response (response : * mut rc_api_fetch_badge_range_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_badge_range_response (response : * mut rc_api_fetch_badge_range_response_t) ; } # [doc = " API parameters for an add game hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_add_game_hash_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub hash : * const :: core :: ffi :: c_char , pub hash_description : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_add_game_hash_request_t"] [:: core :: mem :: size_of :: < rc_api_add_game_hash_request_t > () - 48usize] ; ["Alignment of rc_api_add_game_hash_request_t"] [:: core :: mem :: align_of :: < rc_api_add_game_hash_request_t > () - 8usize] ; ["Offset of field: rc_api_add_game_hash_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , username) - 0usize] ; ["Offset of field: rc_api_add_game_hash_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_add_game_hash_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_add_game_hash_request_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , console_id) - 20usize] ; ["Offset of field: rc_api_add_game_hash_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , title) - 24usize] ; ["Offset of field: rc_api_add_game_hash_request_t::hash"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , hash) - 32usize] ; ["Offset of field: rc_api_add_game_hash_request_t::hash_description"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , hash_description) - 40usize] ; } ; # [doc = " Response data for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_add_game_hash_response_t { pub game_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_add_game_hash_response_t"] [:: core :: mem :: size_of :: < rc_api_add_game_hash_response_t > () - 320usize] ; ["Alignment of rc_api_add_game_hash_response_t"] [:: core :: mem :: align_of :: < rc_api_add_game_hash_response_t > () - 8usize] ; ["Offset of field: rc_api_add_game_hash_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_response_t , game_id) - 0usize] ; ["Offset of field: rc_api_add_game_hash_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_add_game_hash_request (request : * mut rc_api_request_t , api_params : * const rc_api_add_game_hash_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_add_game_hash_response (response : * mut rc_api_add_game_hash_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_add_game_hash_server_response (response : * mut rc_api_add_game_hash_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_add_game_hash_response (response : * mut rc_api_add_game_hash_response_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_t { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_menu_item_t { pub label : * const :: core :: ffi :: c_char , pub id : u32 , pub checked : u8 , pub enabled : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_menu_item_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_menu_item_t > () - 16usize] ; ["Alignment of rc_client_raintegration_menu_item_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_menu_item_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::label"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , label) - 0usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::id"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , id) - 8usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::checked"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , checked) - 12usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::enabled"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , enabled) - 13usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_menu_t { pub items : * mut rc_client_raintegration_menu_item_t , pub num_items : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_menu_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_menu_t > () - 16usize] ; ["Alignment of rc_client_raintegration_menu_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_menu_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_menu_t::items"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_t , items) - 0usize] ; ["Offset of field: rc_client_raintegration_menu_t::num_items"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_t , num_items) - 8usize] ; } ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_NONE : _bindgen_ty_10 = 0 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_PUBLISHED : _bindgen_ty_10 = 1 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_LOCAL : _bindgen_ty_10 = 2 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_MODIFIED : _bindgen_ty_10 = 3 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_INSECURE : _bindgen_ty_10 = 4 ; pub type _bindgen_ty_10 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_RAINTEGRATION_EVENT_TYPE_NONE : _bindgen_ty_11 = 0 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_MENUITEM_CHECKED_CHANGED : _bindgen_ty_11 = 1 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_HARDCORE_CHANGED : _bindgen_ty_11 = 2 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_PAUSE : _bindgen_ty_11 = 3 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_MENU_CHANGED : _bindgen_ty_11 = 4 ; pub type _bindgen_ty_11 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_event_t { pub type_ : u32 , pub menu_item : * const rc_client_raintegration_menu_item_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_event_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_event_t > () - 16usize] ; ["Alignment of rc_client_raintegration_event_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_event_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_event_t::type_"] [:: core :: mem :: offset_of ! (rc_client_raintegration_event_t , type_) - 0usize] ; ["Offset of field: rc_client_raintegration_event_t::menu_item"] [:: core :: mem :: offset_of ! (rc_client_raintegration_event_t , menu_item) - 8usize] ; } ; pub type rc_client_raintegration_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (event : * const rc_client_raintegration_event_t , client : * mut rc_client_t) > ; pub type rc_client_raintegration_write_memory_func_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , buffer : * mut u8 , num_bytes : u32 , client : * mut rc_client_t) > ; pub type rc_client_raintegration_get_game_name_func_t = :: core :: option :: Option < unsafe extern "C" fn (buffer : * mut :: core :: ffi :: c_char , buffer_size : u32 , client : * mut rc_client_t) > ; # [doc = " API parameters for a fetch achievement info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_achievement_info_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub first_entry : u32 , pub count : u32 , pub friends_only : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_achievement_info_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_achievement_info_request_t > () - 32usize] ; ["Alignment of rc_api_fetch_achievement_info_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_achievement_info_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::first_entry"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , first_entry) - 20usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::count"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , count) - 24usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::friends_only"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , friends_only) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_achievement_awarded_entry_t { pub username : * const :: core :: ffi :: c_char , pub awarded : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_achievement_awarded_entry_t"] [:: core :: mem :: size_of :: < rc_api_achievement_awarded_entry_t > () - 16usize] ; ["Alignment of rc_api_achievement_awarded_entry_t"] [:: core :: mem :: align_of :: < rc_api_achievement_awarded_entry_t > () - 8usize] ; ["Offset of field: rc_api_achievement_awarded_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_achievement_awarded_entry_t , username) - 0usize] ; ["Offset of field: rc_api_achievement_awarded_entry_t::awarded"] [:: core :: mem :: offset_of ! (rc_api_achievement_awarded_entry_t , awarded) - 8usize] ; } ; # [doc = " Response data for a fetch achievement info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_achievement_info_response_t { pub id : u32 , pub game_id : u32 , pub num_awarded : u32 , pub num_players : u32 , pub recently_awarded : * mut rc_api_achievement_awarded_entry_t , pub num_recently_awarded : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_achievement_info_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_achievement_info_response_t > () - 344usize] ; ["Alignment of rc_api_fetch_achievement_info_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_achievement_info_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , game_id) - 4usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_awarded) - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_players"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_players) - 12usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::recently_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , recently_awarded) - 16usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_recently_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_recently_awarded) - 24usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_fetch_achievement_info_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_achievement_info_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_achievement_info_response (response : * mut rc_api_fetch_achievement_info_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_achievement_info_server_response (response : * mut rc_api_fetch_achievement_info_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_achievement_info_response (response : * mut rc_api_fetch_achievement_info_response_t) ; } # [doc = " API parameters for a fetch leaderboard info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_leaderboard_info_request_t { pub leaderboard_id : u32 , pub count : u32 , pub first_entry : u32 , pub username : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_leaderboard_info_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_leaderboard_info_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_leaderboard_info_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_leaderboard_info_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::count"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , count) - 4usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::first_entry"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , first_entry) - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , username) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_lboard_info_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub index : u32 , pub score : i32 , pub submitted : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_lboard_info_entry_t"] [:: core :: mem :: size_of :: < rc_api_lboard_info_entry_t > () - 32usize] ; ["Alignment of rc_api_lboard_info_entry_t"] [:: core :: mem :: align_of :: < rc_api_lboard_info_entry_t > () - 8usize] ; ["Offset of field: rc_api_lboard_info_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , username) - 0usize] ; ["Offset of field: rc_api_lboard_info_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , rank) - 8usize] ; ["Offset of field: rc_api_lboard_info_entry_t::index"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , index) - 12usize] ; ["Offset of field: rc_api_lboard_info_entry_t::score"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , score) - 16usize] ; ["Offset of field: rc_api_lboard_info_entry_t::submitted"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , submitted) - 24usize] ; } ; # [doc = " Response data for a fetch leaderboard info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_leaderboard_info_response_t { pub id : u32 , pub format : :: core :: ffi :: c_int , pub lower_is_better : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub game_id : u32 , pub author : * const :: core :: ffi :: c_char , pub created : time_t , pub updated : time_t , pub entries : * mut rc_api_lboard_info_entry_t , pub num_entries : u32 , pub total_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_leaderboard_info_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_leaderboard_info_response_t > () - 400usize] ; ["Alignment of rc_api_fetch_leaderboard_info_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_leaderboard_info_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::format"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , format) - 4usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , lower_is_better) - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::title"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , title) - 16usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::description"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , description) - 24usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::definition"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , definition) - 32usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , game_id) - 40usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::author"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , author) - 48usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::created"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , created) - 56usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::updated"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , updated) - 64usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , entries) - 72usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , num_entries) - 80usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::total_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , total_entries) - 84usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , response) - 88usize] ; } ; extern "C" { pub fn rc_api_init_fetch_leaderboard_info_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_leaderboard_info_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_leaderboard_info_response (response : * mut rc_api_fetch_leaderboard_info_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_leaderboard_info_server_response (response : * mut rc_api_fetch_leaderboard_info_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_leaderboard_info_response (response : * mut rc_api_fetch_leaderboard_info_response_t) ; } # [doc = " API parameters for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_games_list_request_t { pub console_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_games_list_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_games_list_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_games_list_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_games_list_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_games_list_request_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_request_t , console_id) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_game_list_entry_t { pub id : u32 , pub name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_game_list_entry_t"] [:: core :: mem :: size_of :: < rc_api_game_list_entry_t > () - 16usize] ; ["Alignment of rc_api_game_list_entry_t"] [:: core :: mem :: align_of :: < rc_api_game_list_entry_t > () - 8usize] ; ["Offset of field: rc_api_game_list_entry_t::id"] [:: core :: mem :: offset_of ! (rc_api_game_list_entry_t , id) - 0usize] ; ["Offset of field: rc_api_game_list_entry_t::name"] [:: core :: mem :: offset_of ! (rc_api_game_list_entry_t , name) - 8usize] ; } ; # [doc = " Response data for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_games_list_response_t { pub entries : * mut rc_api_game_list_entry_t , pub num_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_games_list_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_games_list_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_games_list_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_games_list_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , entries) - 0usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , num_entries) - 8usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_games_list_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_games_list_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_games_list_response (response : * mut rc_api_fetch_games_list_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_games_list_server_response (response : * mut rc_api_fetch_games_list_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_games_list_response (response : * mut rc_api_fetch_games_list_response_t) ; } # [doc = " API parameters for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_titles_request_t { pub game_ids : * const u32 , pub num_game_ids : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_titles_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_titles_request_t > () - 16usize] ; ["Alignment of rc_api_fetch_game_titles_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_titles_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_request_t::game_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_request_t , game_ids) - 0usize] ; ["Offset of field: rc_api_fetch_game_titles_request_t::num_game_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_request_t , num_game_ids) - 8usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_game_title_entry_t { pub id : u32 , pub title : * const :: core :: ffi :: c_char , pub image_name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_game_title_entry_t"] [:: core :: mem :: size_of :: < rc_api_game_title_entry_t > () - 24usize] ; ["Alignment of rc_api_game_title_entry_t"] [:: core :: mem :: align_of :: < rc_api_game_title_entry_t > () - 8usize] ; ["Offset of field: rc_api_game_title_entry_t::id"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , id) - 0usize] ; ["Offset of field: rc_api_game_title_entry_t::title"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , title) - 8usize] ; ["Offset of field: rc_api_game_title_entry_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , image_name) - 16usize] ; } ; # [doc = " Response data for a fetch games title request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_titles_response_t { pub entries : * mut rc_api_game_title_entry_t , pub num_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_titles_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_titles_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_game_titles_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_titles_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , entries) - 0usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , num_entries) - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_game_titles_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_game_titles_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_titles_server_response (response : * mut rc_api_fetch_game_titles_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_game_titles_response (response : * mut rc_api_fetch_game_titles_response_t) ; } pub type __gnuc_va_list = __builtin_va_list ; # [repr (C)] # [derive (Copy , Clone)] pub struct __mbstate_t { pub __count : :: core :: ffi :: c_int , pub __value : __mbstate_t__bindgen_ty_1 , } # [repr (C)] # [derive (Copy , Clone)] pub union __mbstate_t__bindgen_ty_1 { pub __wch : :: core :: ffi :: c_uint , pub __wchb : [:: core :: ffi :: c_char ; 4usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __mbstate_t__bindgen_ty_1"] [:: core :: mem :: size_of :: < __mbstate_t__bindgen_ty_1 > () - 4usize] ; ["Alignment of __mbstate_t__bindgen_ty_1"] [:: core :: mem :: align_of :: < __mbstate_t__bindgen_ty_1 > () - 4usize] ; ["Offset of field: __mbstate_t__bindgen_ty_1::__wch"] [:: core :: mem :: offset_of ! (__mbstate_t__bindgen_ty_1 , __wch) - 0usize] ; ["Offset of field: __mbstate_t__bindgen_ty_1::__wchb"] [:: core :: mem :: offset_of ! (__mbstate_t__bindgen_ty_1 , __wchb) - 0usize] ; } ; impl :: core :: fmt :: Debug for __mbstate_t__bindgen_ty_1 { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "__mbstate_t__bindgen_ty_1 {{ union }}") } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __mbstate_t"] [:: core :: mem :: size_of :: < __mbstate_t > () - 8usize] ; ["Alignment of __mbstate_t"] [:: core :: mem :: align_of :: < __mbstate_t > () - 4usize] ; ["Offset of field: __mbstate_t::__count"] [:: core :: mem :: offset_of ! (__mbstate_t , __count) - 0usize] ; ["Offset of field: __mbstate_t::__value"] [:: core :: mem :: offset_of ! (__mbstate_t , __value) - 4usize] ; } ; impl :: core :: fmt :: Debug for __mbstate_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "__mbstate_t {{ __count: {:?}, __value: {:?} }}" , self . __count , self . __value) } } # [repr (C)] # [derive (Copy , Clone)] pub struct _G_fpos_t { pub __pos : __off_t , pub __state : __mbstate_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _G_fpos_t"] [:: core :: mem :: size_of :: < _G_fpos_t > () - 16usize] ; ["Alignment of _G_fpos_t"] [:: core :: mem :: align_of :: < _G_fpos_t > () - 8usize] ; ["Offset of field: _G_fpos_t::__pos"] [:: core :: mem :: offset_of ! (_G_fpos_t , __pos) - 0usize] ; ["Offset of field: _G_fpos_t::__state"] [:: core :: mem :: offset_of ! (_G_fpos_t , __state) - 8usize] ; } ; impl :: core :: fmt :: Debug for _G_fpos_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "_G_fpos_t {{ __pos: {:?}, __state: {:?} }}" , self . __pos , self . __state) } } pub type __fpos_t = _G_fpos_t ; # [repr (C)] # [derive (Copy , Clone)] pub struct _G_fpos64_t { pub __pos : __off64_t , pub __state : __mbstate_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _G_fpos64_t"] [:: core :: mem :: size_of :: < _G_fpos64_t > () - 16usize] ; ["Alignment of _G_fpos64_t"] [:: core :: mem :: align_of :: < _G_fpos64_t > () - 8usize] ; ["Offset of field: _G_fpos64_t::__pos"] [:: core :: mem :: offset_of ! (_G_fpos64_t , __pos) - 0usize] ; ["Offset of field: _G_fpos64_t::__state"] [:: core :: mem :: offset_of ! (_G_fpos64_t , __state) - 8usize] ; } ; impl :: core :: fmt :: Debug for _G_fpos64_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "_G_fpos64_t {{ __pos: {:?}, __state: {:?} }}" , self . __pos , self . __state) } } pub type __fpos64_t = _G_fpos64_t ; pub type __FILE = _IO_FILE ; pub type FILE = _IO_FILE ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_marker { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_codecvt { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_wide_data { _unused : [u8 ; 0] , } pub type _IO_lock_t = :: core :: ffi :: c_void ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_FILE { pub _flags : :: core :: ffi :: c_int , pub _IO_read_ptr : * mut :: core :: ffi :: c_char , pub _IO_read_end : * mut :: core :: ffi :: c_char , pub _IO_read_base : * mut :: core :: ffi :: c_char , pub _IO_write_base : * mut :: core :: ffi :: c_char , pub _IO_write_ptr : * mut :: core :: ffi :: c_char , pub _IO_write_end : * mut :: core :: ffi :: c_char , pub _IO_buf_base : * mut :: core :: ffi :: c_char , pub _IO_buf_end : * mut :: core :: ffi :: c_char , pub _IO_save_base : * mut :: core :: ffi :: c_char , pub _IO_backup_base : * mut :: core :: ffi :: c_char , pub _IO_save_end : * mut :: core :: ffi :: c_char , pub _markers : * mut _IO_marker , pub _chain : * mut _IO_FILE , pub _fileno : :: core :: ffi :: c_int , pub _bitfield_align_1 : [u32 ; 0] , pub _bitfield_1 : __BindgenBitfieldUnit < [u8 ; 3usize] > , pub _short_backupbuf : [:: core :: ffi :: c_char ; 1usize] , pub _old_offset : __off_t , pub _cur_column : :: core :: ffi :: c_ushort , pub _vtable_offset : :: core :: ffi :: c_schar , pub _shortbuf : [:: core :: ffi :: c_char ; 1usize] , pub _lock : * mut _IO_lock_t , pub _offset : __off64_t , pub _codecvt : * mut _IO_codecvt , pub _wide_data : * mut _IO_wide_data , pub _freeres_list : * mut _IO_FILE , pub _freeres_buf : * mut :: core :: ffi :: c_void , pub _prevchain : * mut * mut _IO_FILE , pub _mode : :: core :: ffi :: c_int , pub _unused3 : :: core :: ffi :: c_int , pub _total_written : __uint64_t , pub _unused2 : [:: core :: ffi :: c_char ; 8usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _IO_FILE"] [:: core :: mem :: size_of :: < _IO_FILE > () - 216usize] ; ["Alignment of _IO_FILE"] [:: core :: mem :: align_of :: < _IO_FILE > () - 8usize] ; ["Offset of field: _IO_FILE::_flags"] [:: core :: mem :: offset_of ! (_IO_FILE , _flags) - 0usize] ; ["Offset of field: _IO_FILE::_IO_read_ptr"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_ptr) - 8usize] ; ["Offset of field: _IO_FILE::_IO_read_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_end) - 16usize] ; ["Offset of field: _IO_FILE::_IO_read_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_base) - 24usize] ; ["Offset of field: _IO_FILE::_IO_write_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_base) - 32usize] ; ["Offset of field: _IO_FILE::_IO_write_ptr"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_ptr) - 40usize] ; ["Offset of field: _IO_FILE::_IO_write_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_end) - 48usize] ; ["Offset of field: _IO_FILE::_IO_buf_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_buf_base) - 56usize] ; ["Offset of field: _IO_FILE::_IO_buf_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_buf_end) - 64usize] ; ["Offset of field: _IO_FILE::_IO_save_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_save_base) - 72usize] ; ["Offset of field: _IO_FILE::_IO_backup_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_backup_base) - 80usize] ; ["Offset of field: _IO_FILE::_IO_save_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_save_end) - 88usize] ; ["Offset of field: _IO_FILE::_markers"] [:: core :: mem :: offset_of ! (_IO_FILE , _markers) - 96usize] ; ["Offset of field: _IO_FILE::_chain"] [:: core :: mem :: offset_of ! (_IO_FILE , _chain) - 104usize] ; ["Offset of field: _IO_FILE::_fileno"] [:: core :: mem :: offset_of ! (_IO_FILE , _fileno) - 112usize] ; ["Offset of field: _IO_FILE::_short_backupbuf"] [:: core :: mem :: offset_of ! (_IO_FILE , _short_backupbuf) - 119usize] ; ["Offset of field: _IO_FILE::_old_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _old_offset) - 120usize] ; ["Offset of field: _IO_FILE::_cur_column"] [:: core :: mem :: offset_of ! (_IO_FILE , _cur_column) - 128usize] ; ["Offset of field: _IO_FILE::_vtable_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _vtable_offset) - 130usize] ; ["Offset of field: _IO_FILE::_shortbuf"] [:: core :: mem :: offset_of ! (_IO_FILE , _shortbuf) - 131usize] ; ["Offset of field: _IO_FILE::_lock"] [:: core :: mem :: offset_of ! (_IO_FILE , _lock) - 136usize] ; ["Offset of field: _IO_FILE::_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _offset) - 144usize] ; ["Offset of field: _IO_FILE::_codecvt"] [:: core :: mem :: offset_of ! (_IO_FILE , _codecvt) - 152usize] ; ["Offset of field: _IO_FILE::_wide_data"] [:: core :: mem :: offset_of ! (_IO_FILE , _wide_data) - 160usize] ; ["Offset of field: _IO_FILE::_freeres_list"] [:: core :: mem :: offset_of ! (_IO_FILE , _freeres_list) - 168usize] ; ["Offset of field: _IO_FILE::_freeres_buf"] [:: core :: mem :: offset_of ! (_IO_FILE , _freeres_buf) - 176usize] ; ["Offset of field: _IO_FILE::_prevchain"] [:: core :: mem :: offset_of ! (_IO_FILE , _prevchain) - 184usize] ; ["Offset of field: _IO_FILE::_mode"] [:: core :: mem :: offset_of ! (_IO_FILE , _mode) - 192usize] ; ["Offset of field: _IO_FILE::_unused3"] [:: core :: mem :: offset_of ! (_IO_FILE , _unused3) - 196usize] ; ["Offset of field: _IO_FILE::_total_written"] [:: core :: mem :: offset_of ! (_IO_FILE , _total_written) - 200usize] ; ["Offset of field: _IO_FILE::_unused2"] [:: core :: mem :: offset_of ! (_IO_FILE , _unused2) - 208usize] ; } ; impl _IO_FILE { # [inline] pub fn _flags2 (& self) -> :: core :: ffi :: c_int { unsafe { :: core :: mem :: transmute (self . _bitfield_1 . get (0usize , 24u8) as u32) } } # [inline] pub fn set__flags2 (& mut self , val : :: core :: ffi :: c_int) { unsafe { let val : u32 = :: core :: mem :: transmute (val) ; self . _bitfield_1 . set (0usize , 24u8 , val as u64) } } # [inline] pub fn new_bitfield_1 (_flags2 : :: core :: ffi :: c_int) -> __BindgenBitfieldUnit < [u8 ; 3usize] > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [u8 ; 3usize] > = Default :: default () ; __bindgen_bitfield_unit . set (0usize , 24u8 , { let _flags2 : u32 = unsafe { i32::cast_unsigned (_flags2) } ; _flags2 as u64 }) ; __bindgen_bitfield_unit } } pub type cookie_read_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __buf : * mut :: core :: ffi :: c_char , __nbytes : usize) -> __ssize_t > ; pub type cookie_write_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __buf : * const :: core :: ffi :: c_char , __nbytes : usize) -> __ssize_t > ; pub type cookie_seek_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __pos : * mut __off64_t , __w : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int > ; pub type cookie_close_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void) -> :: core :: ffi :: 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 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _IO_cookie_io_functions_t"] [:: core :: mem :: size_of :: < _IO_cookie_io_functions_t > () - 32usize] ; ["Alignment of _IO_cookie_io_functions_t"] [:: core :: mem :: align_of :: < _IO_cookie_io_functions_t > () - 8usize] ; ["Offset of field: _IO_cookie_io_functions_t::read"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , read) - 0usize] ; ["Offset of field: _IO_cookie_io_functions_t::write"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , write) - 8usize] ; ["Offset of field: _IO_cookie_io_functions_t::seek"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , seek) - 16usize] ; ["Offset of field: _IO_cookie_io_functions_t::close"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , close) - 24usize] ; } ; 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" { pub static mut stdin : * mut FILE ; } extern "C" { pub static mut stdout : * mut FILE ; } extern "C" { pub static mut stderr : * mut FILE ; } extern "C" { pub fn remove (__filename : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rename (__old : * const :: core :: ffi :: c_char , __new : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn renameat (__oldfd : :: core :: ffi :: c_int , __old : * const :: core :: ffi :: c_char , __newfd : :: core :: ffi :: c_int , __new : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fclose (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn tmpfile () -> * mut FILE ; } extern "C" { pub fn tmpnam (arg1 : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn tmpnam_r (__s : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn tempnam (__dir : * const :: core :: ffi :: c_char , __pfx : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn fflush (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fflush_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fopen (__filename : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn freopen (__filename : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char , __stream : * mut FILE) -> * mut FILE ; } extern "C" { pub fn fdopen (__fd : :: core :: ffi :: c_int , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn fopencookie (__magic_cookie : * mut :: core :: ffi :: c_void , __modes : * const :: core :: ffi :: c_char , __io_funcs : cookie_io_functions_t) -> * mut FILE ; } extern "C" { pub fn fmemopen (__s : * mut :: core :: ffi :: c_void , __len : usize , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn open_memstream (__bufloc : * mut * mut :: core :: ffi :: c_char , __sizeloc : * mut usize) -> * mut FILE ; } extern "C" { pub fn setbuf (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char) ; } extern "C" { pub fn setvbuf (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char , __modes : :: core :: ffi :: c_int , __n : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn setbuffer (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char , __size : usize) ; } extern "C" { pub fn setlinebuf (__stream : * mut FILE) ; } extern "C" { pub fn fprintf (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn printf (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn sprintf (__s : * mut :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vfprintf (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vprintf (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsprintf (__s : * mut :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn snprintf (__s : * mut :: core :: ffi :: c_char , __maxlen : :: core :: ffi :: c_ulong , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsnprintf (__s : * mut :: core :: ffi :: c_char , __maxlen : :: core :: ffi :: c_ulong , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vasprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __f : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn __asprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn asprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vdprintf (__fd : :: core :: ffi :: c_int , __fmt : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn dprintf (__fd : :: core :: ffi :: c_int , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fscanf (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn scanf (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn sscanf (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } pub type __cfloat128 = __BindgenComplex < u128 > ; pub type _Float128 = u128 ; pub type _Float32 = f32 ; pub type _Float64 = f64 ; pub type _Float32x = f64 ; pub type _Float64x = u128 ; extern "C" { # [link_name = "\u{1}__isoc99_fscanf"] pub fn fscanf1 (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_scanf"] pub fn scanf1 (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_sscanf"] pub fn sscanf1 (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vfscanf (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vscanf (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsscanf (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vfscanf"] pub fn vfscanf1 (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vscanf"] pub fn vscanf1 (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vsscanf"] pub fn vsscanf1 (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgetc (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getc (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getchar () -> :: core :: ffi :: c_int ; } extern "C" { pub fn getc_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getchar_unlocked () -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgetc_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fputc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putchar (__c : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fputc_unlocked (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putc_unlocked (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putchar_unlocked (__c : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getw (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putw (__w : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgets (__s : * mut :: core :: ffi :: c_char , __n : :: core :: ffi :: c_int , __stream : * mut FILE) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn __getdelim (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __delimiter : :: core :: ffi :: c_int , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn getdelim (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __delimiter : :: core :: ffi :: c_int , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn getline (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn fputs (__s : * const :: core :: ffi :: c_char , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn puts (__s : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ungetc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fread (__ptr : * mut :: core :: ffi :: c_void , __size : :: core :: ffi :: c_ulong , __n : :: core :: ffi :: c_ulong , __stream : * mut FILE) -> :: core :: ffi :: c_ulong ; } extern "C" { pub fn fwrite (__ptr : * const :: core :: ffi :: c_void , __size : :: core :: ffi :: c_ulong , __n : :: core :: ffi :: c_ulong , __s : * mut FILE) -> :: core :: ffi :: c_ulong ; } extern "C" { pub fn fread_unlocked (__ptr : * mut :: core :: ffi :: c_void , __size : usize , __n : usize , __stream : * mut FILE) -> usize ; } extern "C" { pub fn fwrite_unlocked (__ptr : * const :: core :: ffi :: c_void , __size : usize , __n : usize , __stream : * mut FILE) -> usize ; } extern "C" { pub fn fseek (__stream : * mut FILE , __off : :: core :: ffi :: c_long , __whence : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ftell (__stream : * mut FILE) -> :: core :: ffi :: c_long ; } extern "C" { pub fn rewind (__stream : * mut FILE) ; } extern "C" { pub fn fseeko (__stream : * mut FILE , __off : __off_t , __whence : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ftello (__stream : * mut FILE) -> __off_t ; } extern "C" { pub fn fgetpos (__stream : * mut FILE , __pos : * mut fpos_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fsetpos (__stream : * mut FILE , __pos : * const fpos_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clearerr (__stream : * mut FILE) ; } extern "C" { pub fn feof (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ferror (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clearerr_unlocked (__stream : * mut FILE) ; } extern "C" { pub fn feof_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ferror_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn perror (__s : * const :: core :: ffi :: c_char) ; } extern "C" { pub fn fileno (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fileno_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn pclose (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn popen (__command : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn ctermid (__s : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn flockfile (__stream : * mut FILE) ; } extern "C" { pub fn ftrylockfile (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn funlockfile (__stream : * mut FILE) ; } extern "C" { pub fn __uflow (arg1 : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn __overflow (arg1 : * mut FILE , arg2 : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } pub const RC_CONSOLE_UNKNOWN : _bindgen_ty_12 = 0 ; pub const RC_CONSOLE_MEGA_DRIVE : _bindgen_ty_12 = 1 ; pub const RC_CONSOLE_NINTENDO_64 : _bindgen_ty_12 = 2 ; pub const RC_CONSOLE_SUPER_NINTENDO : _bindgen_ty_12 = 3 ; pub const RC_CONSOLE_GAMEBOY : _bindgen_ty_12 = 4 ; pub const RC_CONSOLE_GAMEBOY_ADVANCE : _bindgen_ty_12 = 5 ; pub const RC_CONSOLE_GAMEBOY_COLOR : _bindgen_ty_12 = 6 ; pub const RC_CONSOLE_NINTENDO : _bindgen_ty_12 = 7 ; pub const RC_CONSOLE_PC_ENGINE : _bindgen_ty_12 = 8 ; pub const RC_CONSOLE_SEGA_CD : _bindgen_ty_12 = 9 ; pub const RC_CONSOLE_SEGA_32X : _bindgen_ty_12 = 10 ; pub const RC_CONSOLE_MASTER_SYSTEM : _bindgen_ty_12 = 11 ; pub const RC_CONSOLE_PLAYSTATION : _bindgen_ty_12 = 12 ; pub const RC_CONSOLE_ATARI_LYNX : _bindgen_ty_12 = 13 ; pub const RC_CONSOLE_NEOGEO_POCKET : _bindgen_ty_12 = 14 ; pub const RC_CONSOLE_GAME_GEAR : _bindgen_ty_12 = 15 ; pub const RC_CONSOLE_GAMECUBE : _bindgen_ty_12 = 16 ; pub const RC_CONSOLE_ATARI_JAGUAR : _bindgen_ty_12 = 17 ; pub const RC_CONSOLE_NINTENDO_DS : _bindgen_ty_12 = 18 ; pub const RC_CONSOLE_WII : _bindgen_ty_12 = 19 ; pub const RC_CONSOLE_WII_U : _bindgen_ty_12 = 20 ; pub const RC_CONSOLE_PLAYSTATION_2 : _bindgen_ty_12 = 21 ; pub const RC_CONSOLE_XBOX : _bindgen_ty_12 = 22 ; pub const RC_CONSOLE_MAGNAVOX_ODYSSEY2 : _bindgen_ty_12 = 23 ; pub const RC_CONSOLE_POKEMON_MINI : _bindgen_ty_12 = 24 ; pub const RC_CONSOLE_ATARI_2600 : _bindgen_ty_12 = 25 ; pub const RC_CONSOLE_MS_DOS : _bindgen_ty_12 = 26 ; pub const RC_CONSOLE_ARCADE : _bindgen_ty_12 = 27 ; pub const RC_CONSOLE_VIRTUAL_BOY : _bindgen_ty_12 = 28 ; pub const RC_CONSOLE_MSX : _bindgen_ty_12 = 29 ; pub const RC_CONSOLE_COMMODORE_64 : _bindgen_ty_12 = 30 ; pub const RC_CONSOLE_ZX81 : _bindgen_ty_12 = 31 ; pub const RC_CONSOLE_ORIC : _bindgen_ty_12 = 32 ; pub const RC_CONSOLE_SG1000 : _bindgen_ty_12 = 33 ; pub const RC_CONSOLE_VIC20 : _bindgen_ty_12 = 34 ; pub const RC_CONSOLE_AMIGA : _bindgen_ty_12 = 35 ; pub const RC_CONSOLE_ATARI_ST : _bindgen_ty_12 = 36 ; pub const RC_CONSOLE_AMSTRAD_PC : _bindgen_ty_12 = 37 ; pub const RC_CONSOLE_APPLE_II : _bindgen_ty_12 = 38 ; pub const RC_CONSOLE_SATURN : _bindgen_ty_12 = 39 ; pub const RC_CONSOLE_DREAMCAST : _bindgen_ty_12 = 40 ; pub const RC_CONSOLE_PSP : _bindgen_ty_12 = 41 ; pub const RC_CONSOLE_CDI : _bindgen_ty_12 = 42 ; pub const RC_CONSOLE_3DO : _bindgen_ty_12 = 43 ; pub const RC_CONSOLE_COLECOVISION : _bindgen_ty_12 = 44 ; pub const RC_CONSOLE_INTELLIVISION : _bindgen_ty_12 = 45 ; pub const RC_CONSOLE_VECTREX : _bindgen_ty_12 = 46 ; pub const RC_CONSOLE_PC8800 : _bindgen_ty_12 = 47 ; pub const RC_CONSOLE_PC9800 : _bindgen_ty_12 = 48 ; pub const RC_CONSOLE_PCFX : _bindgen_ty_12 = 49 ; pub const RC_CONSOLE_ATARI_5200 : _bindgen_ty_12 = 50 ; pub const RC_CONSOLE_ATARI_7800 : _bindgen_ty_12 = 51 ; pub const RC_CONSOLE_X68K : _bindgen_ty_12 = 52 ; pub const RC_CONSOLE_WONDERSWAN : _bindgen_ty_12 = 53 ; pub const RC_CONSOLE_CASSETTEVISION : _bindgen_ty_12 = 54 ; pub const RC_CONSOLE_SUPER_CASSETTEVISION : _bindgen_ty_12 = 55 ; pub const RC_CONSOLE_NEO_GEO_CD : _bindgen_ty_12 = 56 ; pub const RC_CONSOLE_FAIRCHILD_CHANNEL_F : _bindgen_ty_12 = 57 ; pub const RC_CONSOLE_FM_TOWNS : _bindgen_ty_12 = 58 ; pub const RC_CONSOLE_ZX_SPECTRUM : _bindgen_ty_12 = 59 ; pub const RC_CONSOLE_GAME_AND_WATCH : _bindgen_ty_12 = 60 ; pub const RC_CONSOLE_NOKIA_NGAGE : _bindgen_ty_12 = 61 ; pub const RC_CONSOLE_NINTENDO_3DS : _bindgen_ty_12 = 62 ; pub const RC_CONSOLE_SUPERVISION : _bindgen_ty_12 = 63 ; pub const RC_CONSOLE_SHARPX1 : _bindgen_ty_12 = 64 ; pub const RC_CONSOLE_TIC80 : _bindgen_ty_12 = 65 ; pub const RC_CONSOLE_THOMSONTO8 : _bindgen_ty_12 = 66 ; pub const RC_CONSOLE_PC6000 : _bindgen_ty_12 = 67 ; pub const RC_CONSOLE_PICO : _bindgen_ty_12 = 68 ; pub const RC_CONSOLE_MEGADUCK : _bindgen_ty_12 = 69 ; pub const RC_CONSOLE_ZEEBO : _bindgen_ty_12 = 70 ; pub const RC_CONSOLE_ARDUBOY : _bindgen_ty_12 = 71 ; pub const RC_CONSOLE_WASM4 : _bindgen_ty_12 = 72 ; pub const RC_CONSOLE_ARCADIA_2001 : _bindgen_ty_12 = 73 ; pub const RC_CONSOLE_INTERTON_VC_4000 : _bindgen_ty_12 = 74 ; pub const RC_CONSOLE_ELEKTOR_TV_GAMES_COMPUTER : _bindgen_ty_12 = 75 ; pub const RC_CONSOLE_PC_ENGINE_CD : _bindgen_ty_12 = 76 ; pub const RC_CONSOLE_ATARI_JAGUAR_CD : _bindgen_ty_12 = 77 ; pub const RC_CONSOLE_NINTENDO_DSI : _bindgen_ty_12 = 78 ; pub const RC_CONSOLE_TI83 : _bindgen_ty_12 = 79 ; pub const RC_CONSOLE_UZEBOX : _bindgen_ty_12 = 80 ; pub const RC_CONSOLE_HUBS : _bindgen_ty_12 = 100 ; pub const RC_CONSOLE_EVENTS : _bindgen_ty_12 = 101 ; pub const RC_CONSOLE_STANDALONE : _bindgen_ty_12 = 102 ; # [doc = "\\\n| Console identifiers                                                         |\n\\"] pub type _bindgen_ty_12 = :: core :: ffi :: c_uint ; extern "C" { pub fn rc_console_name (console_id : u32) -> * const :: core :: ffi :: c_char ; } pub const RC_MEMORY_TYPE_SYSTEM_RAM : _bindgen_ty_13 = 0 ; pub const RC_MEMORY_TYPE_SAVE_RAM : _bindgen_ty_13 = 1 ; pub const RC_MEMORY_TYPE_VIDEO_RAM : _bindgen_ty_13 = 2 ; pub const RC_MEMORY_TYPE_READONLY : _bindgen_ty_13 = 3 ; pub const RC_MEMORY_TYPE_HARDWARE_CONTROLLER : _bindgen_ty_13 = 4 ; pub const RC_MEMORY_TYPE_VIRTUAL_RAM : _bindgen_ty_13 = 5 ; pub const RC_MEMORY_TYPE_UNUSED : _bindgen_ty_13 = 6 ; # [doc = "\\\n| Memory mapping                                                              |\n\\"] pub type _bindgen_ty_13 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memory_region_t { pub start_address : u32 , pub end_address : u32 , pub real_address : u32 , pub type_ : u8 , pub description : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memory_region_t"] [:: core :: mem :: size_of :: < rc_memory_region_t > () - 24usize] ; ["Alignment of rc_memory_region_t"] [:: core :: mem :: align_of :: < rc_memory_region_t > () - 8usize] ; ["Offset of field: rc_memory_region_t::start_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , start_address) - 0usize] ; ["Offset of field: rc_memory_region_t::end_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , end_address) - 4usize] ; ["Offset of field: rc_memory_region_t::real_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , real_address) - 8usize] ; ["Offset of field: rc_memory_region_t::type_"] [:: core :: mem :: offset_of ! (rc_memory_region_t , type_) - 12usize] ; ["Offset of field: rc_memory_region_t::description"] [:: core :: mem :: offset_of ! (rc_memory_region_t , description) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memory_regions_t { pub region : * const rc_memory_region_t , pub num_regions : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memory_regions_t"] [:: core :: mem :: size_of :: < rc_memory_regions_t > () - 16usize] ; ["Alignment of rc_memory_regions_t"] [:: core :: mem :: align_of :: < rc_memory_regions_t > () - 8usize] ; ["Offset of field: rc_memory_regions_t::region"] [:: core :: mem :: offset_of ! (rc_memory_regions_t , region) - 0usize] ; ["Offset of field: rc_memory_regions_t::num_regions"] [:: core :: mem :: offset_of ! (rc_memory_regions_t , num_regions) - 8usize] ; } ; extern "C" { pub fn rc_console_memory_regions (console_id : u32) -> * const rc_memory_regions_t ; } extern "C" { pub fn rc_hash_generate_from_buffer (hash : * mut :: core :: ffi :: c_char , console_id : u32 , buffer : * const u8 , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_hash_generate_from_file (hash : * mut :: core :: ffi :: c_char , console_id : u32 , path : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_iterator { pub buffer : * const u8 , pub buffer_size : usize , pub consoles : [u8 ; 12usize] , pub index : :: core :: ffi :: c_int , pub path : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_iterator"] [:: core :: mem :: size_of :: < rc_hash_iterator > () - 40usize] ; ["Alignment of rc_hash_iterator"] [:: core :: mem :: align_of :: < rc_hash_iterator > () - 8usize] ; ["Offset of field: rc_hash_iterator::buffer"] [:: core :: mem :: offset_of ! (rc_hash_iterator , buffer) - 0usize] ; ["Offset of field: rc_hash_iterator::buffer_size"] [:: core :: mem :: offset_of ! (rc_hash_iterator , buffer_size) - 8usize] ; ["Offset of field: rc_hash_iterator::consoles"] [:: core :: mem :: offset_of ! (rc_hash_iterator , consoles) - 16usize] ; ["Offset of field: rc_hash_iterator::index"] [:: core :: mem :: offset_of ! (rc_hash_iterator , index) - 28usize] ; ["Offset of field: rc_hash_iterator::path"] [:: core :: mem :: offset_of ! (rc_hash_iterator , path) - 32usize] ; } ; pub type rc_hash_iterator_t = rc_hash_iterator ; extern "C" { pub fn rc_hash_initialize_iterator (iterator : * mut rc_hash_iterator , path : * const :: core :: ffi :: c_char , buffer : * const u8 , buffer_size : usize) ; } extern "C" { pub fn rc_hash_destroy_iterator (iterator : * mut rc_hash_iterator) ; } extern "C" { pub fn rc_hash_iterate (hash : * mut :: core :: ffi :: c_char , iterator : * mut rc_hash_iterator) -> :: core :: ffi :: c_int ; } pub type rc_hash_message_callback = :: core :: option :: Option < unsafe extern "C" fn (arg1 : * const :: core :: ffi :: c_char) > ; extern "C" { pub fn rc_hash_init_error_message_callback (callback : rc_hash_message_callback) ; } extern "C" { pub fn rc_hash_init_verbose_message_callback (callback : rc_hash_message_callback) ; } pub type rc_hash_filereader_open_file_handler = :: core :: option :: Option < unsafe extern "C" fn (path_utf8 : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_void > ; pub type rc_hash_filereader_seek_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void , offset : i64 , origin : :: core :: ffi :: c_int) > ; pub type rc_hash_filereader_tell_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void) -> i64 > ; pub type rc_hash_filereader_read_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void , buffer : * mut :: core :: ffi :: c_void , requested_bytes : usize) -> usize > ; pub type rc_hash_filereader_close_file_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void) > ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_filereader { pub open : rc_hash_filereader_open_file_handler , pub seek : rc_hash_filereader_seek_handler , pub tell : rc_hash_filereader_tell_handler , pub read : rc_hash_filereader_read_handler , pub close : rc_hash_filereader_close_file_handler , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_filereader"] [:: core :: mem :: size_of :: < rc_hash_filereader > () - 40usize] ; ["Alignment of rc_hash_filereader"] [:: core :: mem :: align_of :: < rc_hash_filereader > () - 8usize] ; ["Offset of field: rc_hash_filereader::open"] [:: core :: mem :: offset_of ! (rc_hash_filereader , open) - 0usize] ; ["Offset of field: rc_hash_filereader::seek"] [:: core :: mem :: offset_of ! (rc_hash_filereader , seek) - 8usize] ; ["Offset of field: rc_hash_filereader::tell"] [:: core :: mem :: offset_of ! (rc_hash_filereader , tell) - 16usize] ; ["Offset of field: rc_hash_filereader::read"] [:: core :: mem :: offset_of ! (rc_hash_filereader , read) - 24usize] ; ["Offset of field: rc_hash_filereader::close"] [:: core :: mem :: offset_of ! (rc_hash_filereader , close) - 32usize] ; } ; extern "C" { pub fn rc_hash_init_custom_filereader (reader : * mut rc_hash_filereader) ; } pub type rc_hash_cdreader_open_track_handler = :: core :: option :: Option < unsafe extern "C" fn (path : * const :: core :: ffi :: c_char , track : u32) -> * mut :: core :: ffi :: c_void > ; pub type rc_hash_cdreader_read_sector_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void , sector : u32 , buffer : * mut :: core :: ffi :: c_void , requested_bytes : usize) -> usize > ; pub type rc_hash_cdreader_close_track_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void) > ; pub type rc_hash_cdreader_first_track_sector_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void) -> u32 > ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_cdreader { pub open_track : rc_hash_cdreader_open_track_handler , pub read_sector : rc_hash_cdreader_read_sector_handler , pub close_track : rc_hash_cdreader_close_track_handler , pub first_track_sector : rc_hash_cdreader_first_track_sector_handler , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_cdreader"] [:: core :: mem :: size_of :: < rc_hash_cdreader > () - 32usize] ; ["Alignment of rc_hash_cdreader"] [:: core :: mem :: align_of :: < rc_hash_cdreader > () - 8usize] ; ["Offset of field: rc_hash_cdreader::open_track"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , open_track) - 0usize] ; ["Offset of field: rc_hash_cdreader::read_sector"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , read_sector) - 8usize] ; ["Offset of field: rc_hash_cdreader::close_track"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , close_track) - 16usize] ; ["Offset of field: rc_hash_cdreader::first_track_sector"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , first_track_sector) - 24usize] ; } ; extern "C" { pub fn rc_hash_get_default_cdreader (cdreader : * mut rc_hash_cdreader) ; } extern "C" { pub fn rc_hash_init_default_cdreader () ; } extern "C" { pub fn rc_hash_init_custom_cdreader (reader : * mut rc_hash_cdreader) ; } pub type rc_hash_3ds_get_cia_normal_key_func = :: core :: option :: Option < unsafe extern "C" fn (common_key_index : u8 , out_normal_key : * mut u8) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_hash_init_3ds_get_cia_normal_key_func (func : rc_hash_3ds_get_cia_normal_key_func) ; } pub type rc_hash_3ds_get_ncch_normal_keys_func = :: core :: option :: Option < unsafe extern "C" fn (primary_key_y : * mut u8 , secondary_key_x_slot : u8 , optional_program_id : * mut u8 , out_primary_key : * mut u8 , out_secondary_key : * mut u8) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_hash_init_3ds_get_ncch_normal_keys_func (func : rc_hash_3ds_get_ncch_normal_keys_func) ; } # [doc = " API parameters for a fetch image request.\n NOTE: fetch image server response is the raw image data. There is no rc_api_process_fetch_image_response function."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_image_request_t { pub image_name : * const :: core :: ffi :: c_char , pub image_type : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_image_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_image_request_t > () - 16usize] ; ["Alignment of rc_api_fetch_image_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_image_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_image_request_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_fetch_image_request_t , image_name) - 0usize] ; ["Offset of field: rc_api_fetch_image_request_t::image_type"] [:: core :: mem :: offset_of ! (rc_api_fetch_image_request_t , image_type) - 8usize] ; } ; extern "C" { pub fn rc_api_init_fetch_image_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_image_request_t) -> :: core :: ffi :: c_int ; } # [doc = " API parameters for a resolve hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_resolve_hash_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_hash : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_resolve_hash_request_t"] [:: core :: mem :: size_of :: < rc_api_resolve_hash_request_t > () - 24usize] ; ["Alignment of rc_api_resolve_hash_request_t"] [:: core :: mem :: align_of :: < rc_api_resolve_hash_request_t > () - 8usize] ; ["Offset of field: rc_api_resolve_hash_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , username) - 0usize] ; ["Offset of field: rc_api_resolve_hash_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_resolve_hash_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , game_hash) - 16usize] ; } ; # [doc = " Response data for a resolve hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_resolve_hash_response_t { pub game_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_resolve_hash_response_t"] [:: core :: mem :: size_of :: < rc_api_resolve_hash_response_t > () - 320usize] ; ["Alignment of rc_api_resolve_hash_response_t"] [:: core :: mem :: align_of :: < rc_api_resolve_hash_response_t > () - 8usize] ; ["Offset of field: rc_api_resolve_hash_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_response_t , game_id) - 0usize] ; ["Offset of field: rc_api_resolve_hash_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_resolve_hash_request (request : * mut rc_api_request_t , api_params : * const rc_api_resolve_hash_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_resolve_hash_response (response : * mut rc_api_resolve_hash_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_resolve_hash_server_response (response : * mut rc_api_resolve_hash_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_resolve_hash_response (response : * mut rc_api_resolve_hash_response_t) ; } # [doc = " API parameters for a fetch game data request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_data_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_data_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_data_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_game_data_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_data_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , game_id) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_leaderboard_definition_t { pub id : u32 , pub format : :: core :: ffi :: c_int , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub lower_is_better : u8 , pub hidden : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_leaderboard_definition_t"] [:: core :: mem :: size_of :: < rc_api_leaderboard_definition_t > () - 40usize] ; ["Alignment of rc_api_leaderboard_definition_t"] [:: core :: mem :: align_of :: < rc_api_leaderboard_definition_t > () - 8usize] ; ["Offset of field: rc_api_leaderboard_definition_t::id"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , id) - 0usize] ; ["Offset of field: rc_api_leaderboard_definition_t::format"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , format) - 4usize] ; ["Offset of field: rc_api_leaderboard_definition_t::title"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , title) - 8usize] ; ["Offset of field: rc_api_leaderboard_definition_t::description"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , description) - 16usize] ; ["Offset of field: rc_api_leaderboard_definition_t::definition"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , definition) - 24usize] ; ["Offset of field: rc_api_leaderboard_definition_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , lower_is_better) - 32usize] ; ["Offset of field: rc_api_leaderboard_definition_t::hidden"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , hidden) - 33usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_achievement_definition_t { pub id : u32 , pub points : u32 , pub category : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub author : * const :: core :: ffi :: c_char , pub badge_name : * const :: core :: ffi :: c_char , pub created : time_t , pub updated : time_t , pub type_ : u32 , pub rarity : f32 , pub rarity_hardcore : f32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_achievement_definition_t"] [:: core :: mem :: size_of :: < rc_api_achievement_definition_t > () - 88usize] ; ["Alignment of rc_api_achievement_definition_t"] [:: core :: mem :: align_of :: < rc_api_achievement_definition_t > () - 8usize] ; ["Offset of field: rc_api_achievement_definition_t::id"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , id) - 0usize] ; ["Offset of field: rc_api_achievement_definition_t::points"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , points) - 4usize] ; ["Offset of field: rc_api_achievement_definition_t::category"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , category) - 8usize] ; ["Offset of field: rc_api_achievement_definition_t::title"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , title) - 16usize] ; ["Offset of field: rc_api_achievement_definition_t::description"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , description) - 24usize] ; ["Offset of field: rc_api_achievement_definition_t::definition"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , definition) - 32usize] ; ["Offset of field: rc_api_achievement_definition_t::author"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , author) - 40usize] ; ["Offset of field: rc_api_achievement_definition_t::badge_name"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , badge_name) - 48usize] ; ["Offset of field: rc_api_achievement_definition_t::created"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , created) - 56usize] ; ["Offset of field: rc_api_achievement_definition_t::updated"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , updated) - 64usize] ; ["Offset of field: rc_api_achievement_definition_t::type_"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , type_) - 72usize] ; ["Offset of field: rc_api_achievement_definition_t::rarity"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , rarity) - 76usize] ; ["Offset of field: rc_api_achievement_definition_t::rarity_hardcore"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , rarity_hardcore) - 80usize] ; } ; # [doc = " Response data for a fetch game data request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_data_response_t { pub id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub image_name : * const :: core :: ffi :: c_char , pub rich_presence_script : * const :: core :: ffi :: c_char , pub achievements : * mut rc_api_achievement_definition_t , pub num_achievements : u32 , pub leaderboards : * mut rc_api_leaderboard_definition_t , pub num_leaderboards : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_data_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_data_response_t > () - 376usize] ; ["Alignment of rc_api_fetch_game_data_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_data_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , console_id) - 4usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::title"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , title) - 8usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , image_name) - 16usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::rich_presence_script"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , rich_presence_script) - 24usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::achievements"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , achievements) - 32usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , num_achievements) - 40usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::leaderboards"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , leaderboards) - 48usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , num_leaderboards) - 56usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , response) - 64usize] ; } ; extern "C" { pub fn rc_api_init_fetch_game_data_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_game_data_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_data_response (response : * mut rc_api_fetch_game_data_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_data_server_response (response : * mut rc_api_fetch_game_data_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_game_data_response (response : * mut rc_api_fetch_game_data_response_t) ; } # [doc = " API parameters for a ping request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_ping_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub rich_presence : * const :: core :: ffi :: c_char , pub game_hash : * const :: core :: ffi :: c_char , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_ping_request_t"] [:: core :: mem :: size_of :: < rc_api_ping_request_t > () - 48usize] ; ["Alignment of rc_api_ping_request_t"] [:: core :: mem :: align_of :: < rc_api_ping_request_t > () - 8usize] ; ["Offset of field: rc_api_ping_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , username) - 0usize] ; ["Offset of field: rc_api_ping_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_ping_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_ping_request_t::rich_presence"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , rich_presence) - 24usize] ; ["Offset of field: rc_api_ping_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , game_hash) - 32usize] ; ["Offset of field: rc_api_ping_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , hardcore) - 40usize] ; } ; # [doc = " Response data for a ping request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_ping_response_t { pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_ping_response_t"] [:: core :: mem :: size_of :: < rc_api_ping_response_t > () - 312usize] ; ["Alignment of rc_api_ping_response_t"] [:: core :: mem :: align_of :: < rc_api_ping_response_t > () - 8usize] ; ["Offset of field: rc_api_ping_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_ping_response_t , response) - 0usize] ; } ; extern "C" { pub fn rc_api_init_ping_request (request : * mut rc_api_request_t , api_params : * const rc_api_ping_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_ping_response (response : * mut rc_api_ping_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_ping_server_response (response : * mut rc_api_ping_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_ping_response (response : * mut rc_api_ping_response_t) ; } # [doc = " API parameters for an award achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_award_achievement_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub hardcore : u32 , pub game_hash : * const :: core :: ffi :: c_char , pub seconds_since_unlock : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_award_achievement_request_t"] [:: core :: mem :: size_of :: < rc_api_award_achievement_request_t > () - 40usize] ; ["Alignment of rc_api_award_achievement_request_t"] [:: core :: mem :: align_of :: < rc_api_award_achievement_request_t > () - 8usize] ; ["Offset of field: rc_api_award_achievement_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , username) - 0usize] ; ["Offset of field: rc_api_award_achievement_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_award_achievement_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_award_achievement_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , hardcore) - 20usize] ; ["Offset of field: rc_api_award_achievement_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_award_achievement_request_t::seconds_since_unlock"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , seconds_since_unlock) - 32usize] ; } ; # [doc = " Response data for an award achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_award_achievement_response_t { pub awarded_achievement_id : u32 , pub new_player_score : u32 , pub new_player_score_softcore : u32 , pub achievements_remaining : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_award_achievement_response_t"] [:: core :: mem :: size_of :: < rc_api_award_achievement_response_t > () - 328usize] ; ["Alignment of rc_api_award_achievement_response_t"] [:: core :: mem :: align_of :: < rc_api_award_achievement_response_t > () - 8usize] ; ["Offset of field: rc_api_award_achievement_response_t::awarded_achievement_id"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , awarded_achievement_id) - 0usize] ; ["Offset of field: rc_api_award_achievement_response_t::new_player_score"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , new_player_score) - 4usize] ; ["Offset of field: rc_api_award_achievement_response_t::new_player_score_softcore"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , new_player_score_softcore) - 8usize] ; ["Offset of field: rc_api_award_achievement_response_t::achievements_remaining"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , achievements_remaining) - 12usize] ; ["Offset of field: rc_api_award_achievement_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_award_achievement_request (request : * mut rc_api_request_t , api_params : * const rc_api_award_achievement_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_award_achievement_response (response : * mut rc_api_award_achievement_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_award_achievement_server_response (response : * mut rc_api_award_achievement_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_award_achievement_response (response : * mut rc_api_award_achievement_response_t) ; } # [doc = " API parameters for a submit lboard entry request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_submit_lboard_entry_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub leaderboard_id : u32 , pub score : i32 , pub game_hash : * const :: core :: ffi :: c_char , pub seconds_since_completion : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_submit_lboard_entry_request_t"] [:: core :: mem :: size_of :: < rc_api_submit_lboard_entry_request_t > () - 40usize] ; ["Alignment of rc_api_submit_lboard_entry_request_t"] [:: core :: mem :: align_of :: < rc_api_submit_lboard_entry_request_t > () - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , username) - 0usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , leaderboard_id) - 16usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , score) - 20usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::seconds_since_completion"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , seconds_since_completion) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_lboard_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub score : i32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_lboard_entry_t"] [:: core :: mem :: size_of :: < rc_api_lboard_entry_t > () - 16usize] ; ["Alignment of rc_api_lboard_entry_t"] [:: core :: mem :: align_of :: < rc_api_lboard_entry_t > () - 8usize] ; ["Offset of field: rc_api_lboard_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , username) - 0usize] ; ["Offset of field: rc_api_lboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , rank) - 8usize] ; ["Offset of field: rc_api_lboard_entry_t::score"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , score) - 12usize] ; } ; # [doc = " Response data for a submit lboard entry request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_submit_lboard_entry_response_t { pub submitted_score : i32 , pub best_score : i32 , pub new_rank : u32 , pub num_entries : u32 , pub top_entries : * mut rc_api_lboard_entry_t , pub num_top_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_submit_lboard_entry_response_t"] [:: core :: mem :: size_of :: < rc_api_submit_lboard_entry_response_t > () - 344usize] ; ["Alignment of rc_api_submit_lboard_entry_response_t"] [:: core :: mem :: align_of :: < rc_api_submit_lboard_entry_response_t > () - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::submitted_score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , submitted_score) - 0usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::best_score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , best_score) - 4usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::new_rank"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , new_rank) - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , num_entries) - 12usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::top_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , top_entries) - 16usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::num_top_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , num_top_entries) - 24usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_submit_lboard_entry_request (request : * mut rc_api_request_t , api_params : * const rc_api_submit_lboard_entry_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_submit_lboard_entry_response (response : * mut rc_api_submit_lboard_entry_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_submit_lboard_entry_server_response (response : * mut rc_api_submit_lboard_entry_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_submit_lboard_entry_response (response : * mut rc_api_submit_lboard_entry_response_t) ; } # [doc = " Callback used to read num_bytes bytes from memory starting at address. If\n num_bytes is greater than 1, the value is read in little-endian from\n memory."] pub type rc_runtime_peek_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , num_bytes : u32 , ud : * mut :: core :: ffi :: c_void) -> u32 > ; # [doc = "\\\n| Runtime                                                                     |\n\\"] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_trigger_t { pub id : u32 , pub trigger : * mut rc_trigger_t , pub buffer : * mut :: core :: ffi :: c_void , pub invalid_memref : * mut rc_memref_t , pub md5 : [u8 ; 16usize] , pub serialized_size : i32 , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_trigger_t"] [:: core :: mem :: size_of :: < rc_runtime_trigger_t > () - 56usize] ; ["Alignment of rc_runtime_trigger_t"] [:: core :: mem :: align_of :: < rc_runtime_trigger_t > () - 8usize] ; ["Offset of field: rc_runtime_trigger_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , id) - 0usize] ; ["Offset of field: rc_runtime_trigger_t::trigger"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , trigger) - 8usize] ; ["Offset of field: rc_runtime_trigger_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , buffer) - 16usize] ; ["Offset of field: rc_runtime_trigger_t::invalid_memref"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , invalid_memref) - 24usize] ; ["Offset of field: rc_runtime_trigger_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , md5) - 32usize] ; ["Offset of field: rc_runtime_trigger_t::serialized_size"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , serialized_size) - 48usize] ; ["Offset of field: rc_runtime_trigger_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , owns_memrefs) - 52usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_lboard_t { pub id : u32 , pub value : i32 , pub lboard : * mut rc_lboard_t , pub buffer : * mut :: core :: ffi :: c_void , pub invalid_memref : * mut rc_memref_t , pub md5 : [u8 ; 16usize] , pub serialized_size : u32 , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_lboard_t"] [:: core :: mem :: size_of :: < rc_runtime_lboard_t > () - 56usize] ; ["Alignment of rc_runtime_lboard_t"] [:: core :: mem :: align_of :: < rc_runtime_lboard_t > () - 8usize] ; ["Offset of field: rc_runtime_lboard_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , id) - 0usize] ; ["Offset of field: rc_runtime_lboard_t::value"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , value) - 4usize] ; ["Offset of field: rc_runtime_lboard_t::lboard"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , lboard) - 8usize] ; ["Offset of field: rc_runtime_lboard_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , buffer) - 16usize] ; ["Offset of field: rc_runtime_lboard_t::invalid_memref"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , invalid_memref) - 24usize] ; ["Offset of field: rc_runtime_lboard_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , md5) - 32usize] ; ["Offset of field: rc_runtime_lboard_t::serialized_size"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , serialized_size) - 48usize] ; ["Offset of field: rc_runtime_lboard_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , owns_memrefs) - 52usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_richpresence_t { pub richpresence : * mut rc_richpresence_t , pub buffer : * mut :: core :: ffi :: c_void , pub previous : * mut rc_runtime_richpresence_t , pub md5 : [u8 ; 16usize] , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_richpresence_t"] [:: core :: mem :: size_of :: < rc_runtime_richpresence_t > () - 48usize] ; ["Alignment of rc_runtime_richpresence_t"] [:: core :: mem :: align_of :: < rc_runtime_richpresence_t > () - 8usize] ; ["Offset of field: rc_runtime_richpresence_t::richpresence"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , richpresence) - 0usize] ; ["Offset of field: rc_runtime_richpresence_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , buffer) - 8usize] ; ["Offset of field: rc_runtime_richpresence_t::previous"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , previous) - 16usize] ; ["Offset of field: rc_runtime_richpresence_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , md5) - 24usize] ; ["Offset of field: rc_runtime_richpresence_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , owns_memrefs) - 40usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_t { pub triggers : * mut rc_runtime_trigger_t , pub trigger_count : u32 , pub trigger_capacity : u32 , pub lboards : * mut rc_runtime_lboard_t , pub lboard_count : u32 , pub lboard_capacity : u32 , pub richpresence : * mut rc_runtime_richpresence_t , pub memrefs : * mut rc_memref_t , pub next_memref : * mut * mut rc_memref_t , pub variables : * mut rc_value_t , pub next_variable : * mut * mut rc_value_t , pub owns_self : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_t"] [:: core :: mem :: size_of :: < rc_runtime_t > () - 80usize] ; ["Alignment of rc_runtime_t"] [:: core :: mem :: align_of :: < rc_runtime_t > () - 8usize] ; ["Offset of field: rc_runtime_t::triggers"] [:: core :: mem :: offset_of ! (rc_runtime_t , triggers) - 0usize] ; ["Offset of field: rc_runtime_t::trigger_count"] [:: core :: mem :: offset_of ! (rc_runtime_t , trigger_count) - 8usize] ; ["Offset of field: rc_runtime_t::trigger_capacity"] [:: core :: mem :: offset_of ! (rc_runtime_t , trigger_capacity) - 12usize] ; ["Offset of field: rc_runtime_t::lboards"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboards) - 16usize] ; ["Offset of field: rc_runtime_t::lboard_count"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboard_count) - 24usize] ; ["Offset of field: rc_runtime_t::lboard_capacity"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboard_capacity) - 28usize] ; ["Offset of field: rc_runtime_t::richpresence"] [:: core :: mem :: offset_of ! (rc_runtime_t , richpresence) - 32usize] ; ["Offset of field: rc_runtime_t::memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_t , memrefs) - 40usize] ; ["Offset of field: rc_runtime_t::next_memref"] [:: core :: mem :: offset_of ! (rc_runtime_t , next_memref) - 48usize] ; ["Offset of field: rc_runtime_t::variables"] [:: core :: mem :: offset_of ! (rc_runtime_t , variables) - 56usize] ; ["Offset of field: rc_runtime_t::next_variable"] [:: core :: mem :: offset_of ! (rc_runtime_t , next_variable) - 64usize] ; ["Offset of field: rc_runtime_t::owns_self"] [:: core :: mem :: offset_of ! (rc_runtime_t , owns_self) - 72usize] ; } ; extern "C" { pub fn rc_runtime_alloc () -> * mut rc_runtime_t ; } extern "C" { pub fn rc_runtime_init (runtime : * mut rc_runtime_t) ; } extern "C" { pub fn rc_runtime_destroy (runtime : * mut rc_runtime_t) ; } extern "C" { pub fn rc_runtime_activate_achievement (runtime : * mut rc_runtime_t , id : u32 , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deactivate_achievement (runtime : * mut rc_runtime_t , id : u32) ; } extern "C" { pub fn rc_runtime_get_achievement (runtime : * const rc_runtime_t , id : u32) -> * mut rc_trigger_t ; } extern "C" { pub fn rc_runtime_get_achievement_measured (runtime : * const rc_runtime_t , id : u32 , measured_value : * mut :: core :: ffi :: c_uint , measured_target : * mut :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_format_achievement_measured (runtime : * const rc_runtime_t , id : u32 , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_activate_lboard (runtime : * mut rc_runtime_t , id : u32 , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deactivate_lboard (runtime : * mut rc_runtime_t , id : u32) ; } extern "C" { pub fn rc_runtime_get_lboard (runtime : * const rc_runtime_t , id : u32) -> * mut rc_lboard_t ; } extern "C" { pub fn rc_runtime_format_lboard_value (buffer : * mut :: core :: ffi :: c_char , size : :: core :: ffi :: c_int , value : i32 , format : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_activate_richpresence (runtime : * mut rc_runtime_t , script : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_get_richpresence (runtime : * const rc_runtime_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_runtime_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } pub const RC_RUNTIME_EVENT_ACHIEVEMENT_ACTIVATED : _bindgen_ty_14 = 0 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PAUSED : _bindgen_ty_14 = 1 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_RESET : _bindgen_ty_14 = 2 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_TRIGGERED : _bindgen_ty_14 = 3 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PRIMED : _bindgen_ty_14 = 4 ; pub const RC_RUNTIME_EVENT_LBOARD_STARTED : _bindgen_ty_14 = 5 ; pub const RC_RUNTIME_EVENT_LBOARD_CANCELED : _bindgen_ty_14 = 6 ; pub const RC_RUNTIME_EVENT_LBOARD_UPDATED : _bindgen_ty_14 = 7 ; pub const RC_RUNTIME_EVENT_LBOARD_TRIGGERED : _bindgen_ty_14 = 8 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_DISABLED : _bindgen_ty_14 = 9 ; pub const RC_RUNTIME_EVENT_LBOARD_DISABLED : _bindgen_ty_14 = 10 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_UNPRIMED : _bindgen_ty_14 = 11 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PROGRESS_UPDATED : _bindgen_ty_14 = 12 ; pub type _bindgen_ty_14 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_event_t { pub id : u32 , pub value : i32 , pub type_ : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_event_t"] [:: core :: mem :: size_of :: < rc_runtime_event_t > () - 12usize] ; ["Alignment of rc_runtime_event_t"] [:: core :: mem :: align_of :: < rc_runtime_event_t > () - 4usize] ; ["Offset of field: rc_runtime_event_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , id) - 0usize] ; ["Offset of field: rc_runtime_event_t::value"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , value) - 4usize] ; ["Offset of field: rc_runtime_event_t::type_"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , type_) - 8usize] ; } ; pub type rc_runtime_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (runtime_event : * const rc_runtime_event_t) > ; extern "C" { pub fn rc_runtime_do_frame (runtime : * mut rc_runtime_t , event_handler : rc_runtime_event_handler_t , peek : rc_runtime_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) ; } extern "C" { pub fn rc_runtime_reset (runtime : * mut rc_runtime_t) ; } pub type rc_runtime_validate_address_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_runtime_validate_addresses (runtime : * mut rc_runtime_t , event_handler : rc_runtime_event_handler_t , validate_handler : rc_runtime_validate_address_t) ; } extern "C" { pub fn rc_runtime_invalidate_address (runtime : * mut rc_runtime_t , address : u32) ; } extern "C" { pub fn rc_runtime_progress_size (runtime : * const rc_runtime_t , L : * mut lua_State) -> u32 ; } extern "C" { pub fn rc_runtime_serialize_progress (buffer : * mut :: core :: ffi :: c_void , runtime : * const rc_runtime_t , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_serialize_progress_sized (buffer : * mut u8 , buffer_size : u32 , runtime : * const rc_runtime_t , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deserialize_progress (runtime : * mut rc_runtime_t , serialized : * const u8 , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deserialize_progress_sized (runtime : * mut rc_runtime_t , serialized : * const u8 , serialized_size : u32 , L : * mut lua_State) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_async_handle_t { _unused : [u8 ; 0] , } # [doc = " Callback used to read num_bytes bytes from memory starting at address into buffer.\n Returns the number of bytes read. A return value of 0 indicates the address was invalid."] pub type rc_client_read_memory_func_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , buffer : * mut u8 , num_bytes : u32 , client : * mut rc_client_t) -> u32 > ; # [doc = " Internal method passed to rc_client_server_call_t to process the server response."] pub type rc_client_server_callback_t = :: core :: option :: Option < unsafe extern "C" fn (server_response : * const rc_api_server_response_t , callback_data : * mut :: core :: ffi :: c_void) > ; # [doc = " Callback used to issue a request to the server."] pub type rc_client_server_call_t = :: core :: option :: Option < unsafe extern "C" fn (request : * const rc_api_request_t , callback : rc_client_server_callback_t , callback_data : * mut :: core :: ffi :: c_void , client : * mut rc_client_t) > ; # [doc = " Generic callback for asynchronous eventing."] pub type rc_client_callback_t = :: core :: option :: Option < unsafe extern "C" fn (result : :: core :: ffi :: c_int , error_message : * const :: core :: ffi :: c_char , client : * mut rc_client_t , userdata : * mut :: core :: ffi :: c_void) > ; # [doc = " Callback for logging or displaying a message."] pub type rc_client_message_callback_t = :: core :: option :: Option < unsafe extern "C" fn (message : * const :: core :: ffi :: c_char , client : * const rc_client_t) > ; extern "C" { # [doc = " Creates a new rc_client_t object."] pub fn rc_client_create (read_memory_function : rc_client_read_memory_func_t , server_call_function : rc_client_server_call_t) -> * mut rc_client_t ; } extern "C" { # [doc = " Releases resources associated to a rc_client_t object.\n Pointer will no longer be valid after making this call."] pub fn rc_client_destroy (client : * mut rc_client_t) ; } extern "C" { # [doc = " Sets whether hardcore is enabled (on by default).\n Can be called with a game loaded.\n Enabling hardcore with a game loaded will raise an RC_CLIENT_EVENT_RESET\n event. Processing will be disabled until rc_client_reset is called."] pub fn rc_client_set_hardcore_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether hardcore is enabled (on by default)."] pub fn rc_client_get_hardcore_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether encore mode is enabled (off by default).\n Evaluated when loading a game. Has no effect while a game is loaded."] pub fn rc_client_set_encore_mode_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether encore mode is enabled (off by default)."] pub fn rc_client_get_encore_mode_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether unofficial achievements should be loaded.\n Evaluated when loading a game. Has no effect while a game is loaded."] pub fn rc_client_set_unofficial_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether unofficial achievements should be loaded."] pub fn rc_client_get_unofficial_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether spectator mode is enabled (off by default).\n If enabled, events for achievement unlocks and leaderboard submissions will be\n raised, but server calls to actually perform the unlock/submit will not occur.\n Can be modified while a game is loaded. Evaluated at unlock/submit time.\n Cannot be modified if disabled before a game is loaded."] pub fn rc_client_set_spectator_mode_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether spectator mode is enabled (off by default)."] pub fn rc_client_get_spectator_mode_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Attaches client-specific data to the runtime."] pub fn rc_client_set_userdata (client : * mut rc_client_t , userdata : * mut :: core :: ffi :: c_void) ; } extern "C" { # [doc = " Gets the client-specific data attached to the runtime."] pub fn rc_client_get_userdata (client : * const rc_client_t) -> * mut :: core :: ffi :: c_void ; } extern "C" { # [doc = " Sets the name of the server to use."] pub fn rc_client_set_host (client : * const rc_client_t , hostname : * const :: core :: ffi :: c_char) ; } pub type rc_clock_t = u64 ; pub type rc_get_time_millisecs_func_t = :: core :: option :: Option < unsafe extern "C" fn (client : * const rc_client_t) -> rc_clock_t > ; extern "C" { # [doc = " Specifies a function that returns a value that increases once per millisecond."] pub fn rc_client_set_get_time_millisecs_function (client : * mut rc_client_t , handler : rc_get_time_millisecs_func_t) ; } extern "C" { # [doc = " Marks an async process as aborted. The associated callback will not be called."] pub fn rc_client_abort_async (client : * mut rc_client_t , async_handle : * mut rc_client_async_handle_t) ; } extern "C" { # [doc = " Gets a clause that can be added to the User-Agent to identify the version of rcheevos being used."] pub fn rc_client_get_user_agent_clause (client : * mut rc_client_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> usize ; } extern "C" { # [doc = " Sets the logging level and provides a callback to be called to do the logging."] pub fn rc_client_enable_logging (client : * mut rc_client_t , level : :: core :: ffi :: c_int , callback : rc_client_message_callback_t) ; } pub const RC_CLIENT_LOG_LEVEL_NONE : _bindgen_ty_15 = 0 ; pub const RC_CLIENT_LOG_LEVEL_ERROR : _bindgen_ty_15 = 1 ; pub const RC_CLIENT_LOG_LEVEL_WARN : _bindgen_ty_15 = 2 ; pub const RC_CLIENT_LOG_LEVEL_INFO : _bindgen_ty_15 = 3 ; pub const RC_CLIENT_LOG_LEVEL_VERBOSE : _bindgen_ty_15 = 4 ; pub const NUM_RC_CLIENT_LOG_LEVELS : _bindgen_ty_15 = 5 ; pub type _bindgen_ty_15 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Attempt to login a user."] pub fn rc_client_begin_login_with_password (client : * mut rc_client_t , username : * const :: core :: ffi :: c_char , password : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Attempt to login a user."] pub fn rc_client_begin_login_with_token (client : * mut rc_client_t , username : * const :: core :: ffi :: c_char , token : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Logout the user."] pub fn rc_client_logout (client : * mut rc_client_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_user_t { pub display_name : * const :: core :: ffi :: c_char , pub username : * const :: core :: ffi :: c_char , pub token : * const :: core :: ffi :: c_char , pub score : u32 , pub score_softcore : u32 , pub num_unread_messages : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_user_t"] [:: core :: mem :: size_of :: < rc_client_user_t > () - 40usize] ; ["Alignment of rc_client_user_t"] [:: core :: mem :: align_of :: < rc_client_user_t > () - 8usize] ; ["Offset of field: rc_client_user_t::display_name"] [:: core :: mem :: offset_of ! (rc_client_user_t , display_name) - 0usize] ; ["Offset of field: rc_client_user_t::username"] [:: core :: mem :: offset_of ! (rc_client_user_t , username) - 8usize] ; ["Offset of field: rc_client_user_t::token"] [:: core :: mem :: offset_of ! (rc_client_user_t , token) - 16usize] ; ["Offset of field: rc_client_user_t::score"] [:: core :: mem :: offset_of ! (rc_client_user_t , score) - 24usize] ; ["Offset of field: rc_client_user_t::score_softcore"] [:: core :: mem :: offset_of ! (rc_client_user_t , score_softcore) - 28usize] ; ["Offset of field: rc_client_user_t::num_unread_messages"] [:: core :: mem :: offset_of ! (rc_client_user_t , num_unread_messages) - 32usize] ; } ; extern "C" { # [doc = " Gets information about the logged in user. Will return NULL if the user is not logged in."] pub fn rc_client_get_user_info (client : * const rc_client_t) -> * const rc_client_user_t ; } extern "C" { # [doc = " Gets the URL for the user's profile picture.\n Returns RC_OK on success."] pub fn rc_client_user_get_image_url (user : * const rc_client_user_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_user_game_summary_t { pub num_core_achievements : u32 , pub num_unofficial_achievements : u32 , pub num_unlocked_achievements : u32 , pub num_unsupported_achievements : u32 , pub points_core : u32 , pub points_unlocked : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_user_game_summary_t"] [:: core :: mem :: size_of :: < rc_client_user_game_summary_t > () - 24usize] ; ["Alignment of rc_client_user_game_summary_t"] [:: core :: mem :: align_of :: < rc_client_user_game_summary_t > () - 4usize] ; ["Offset of field: rc_client_user_game_summary_t::num_core_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_core_achievements) - 0usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unofficial_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unofficial_achievements) - 4usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unlocked_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unlocked_achievements) - 8usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unsupported_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unsupported_achievements) - 12usize] ; ["Offset of field: rc_client_user_game_summary_t::points_core"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , points_core) - 16usize] ; ["Offset of field: rc_client_user_game_summary_t::points_unlocked"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , points_unlocked) - 20usize] ; } ; extern "C" { # [doc = " Gets a breakdown of the number of achievements in the game, and how many the user has unlocked.\n Used for the \"You have unlocked X of Y achievements\" message shown when the game starts."] pub fn rc_client_get_user_game_summary (client : * const rc_client_t , summary : * mut rc_client_user_game_summary_t) ; } extern "C" { # [doc = " Start loading an unidentified game."] pub fn rc_client_begin_identify_and_load_game (client : * mut rc_client_t , console_id : u32 , file_path : * const :: core :: ffi :: c_char , data : * const u8 , data_size : usize , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Start loading a game."] pub fn rc_client_begin_load_game (client : * mut rc_client_t , hash : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Gets the current progress of the asynchronous load game process."] pub fn rc_client_get_load_game_state (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } pub const RC_CLIENT_LOAD_GAME_STATE_NONE : _bindgen_ty_16 = 0 ; pub const RC_CLIENT_LOAD_GAME_STATE_IDENTIFYING_GAME : _bindgen_ty_16 = 1 ; pub const RC_CLIENT_LOAD_GAME_STATE_AWAIT_LOGIN : _bindgen_ty_16 = 2 ; pub const RC_CLIENT_LOAD_GAME_STATE_FETCHING_GAME_DATA : _bindgen_ty_16 = 3 ; pub const RC_CLIENT_LOAD_GAME_STATE_STARTING_SESSION : _bindgen_ty_16 = 4 ; pub const RC_CLIENT_LOAD_GAME_STATE_DONE : _bindgen_ty_16 = 5 ; pub const RC_CLIENT_LOAD_GAME_STATE_ABORTED : _bindgen_ty_16 = 6 ; pub type _bindgen_ty_16 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Determines if a game was successfully identified and loaded."] pub fn rc_client_is_game_loaded (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Unloads the current game."] pub fn rc_client_unload_game (client : * mut rc_client_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_game_t { pub id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub hash : * const :: core :: ffi :: c_char , pub badge_name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_game_t"] [:: core :: mem :: size_of :: < rc_client_game_t > () - 32usize] ; ["Alignment of rc_client_game_t"] [:: core :: mem :: align_of :: < rc_client_game_t > () - 8usize] ; ["Offset of field: rc_client_game_t::id"] [:: core :: mem :: offset_of ! (rc_client_game_t , id) - 0usize] ; ["Offset of field: rc_client_game_t::console_id"] [:: core :: mem :: offset_of ! (rc_client_game_t , console_id) - 4usize] ; ["Offset of field: rc_client_game_t::title"] [:: core :: mem :: offset_of ! (rc_client_game_t , title) - 8usize] ; ["Offset of field: rc_client_game_t::hash"] [:: core :: mem :: offset_of ! (rc_client_game_t , hash) - 16usize] ; ["Offset of field: rc_client_game_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_game_t , badge_name) - 24usize] ; } ; extern "C" { # [doc = " Get information about the current game. Returns NULL if no game is loaded.\n NOTE: returns a dummy game record if an unidentified game is loaded."] pub fn rc_client_get_game_info (client : * const rc_client_t) -> * const rc_client_game_t ; } extern "C" { # [doc = " Gets the URL for the game image.\n Returns RC_OK on success."] pub fn rc_client_game_get_image_url (game : * const rc_client_game_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Changes the active disc in a multi-disc game."] pub fn rc_client_begin_change_media (client : * mut rc_client_t , file_path : * const :: core :: ffi :: c_char , data : * const u8 , data_size : usize , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Changes the active disc in a multi-disc game."] pub fn rc_client_begin_change_media_from_hash (client : * mut rc_client_t , hash : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } # [doc = "\\\n| Subsets                                                                     |\n\\"] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_subset_t { pub id : u32 , pub title : * const :: core :: ffi :: c_char , pub badge_name : [:: core :: ffi :: c_char ; 16usize] , pub num_achievements : u32 , pub num_leaderboards : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_subset_t"] [:: core :: mem :: size_of :: < rc_client_subset_t > () - 40usize] ; ["Alignment of rc_client_subset_t"] [:: core :: mem :: align_of :: < rc_client_subset_t > () - 8usize] ; ["Offset of field: rc_client_subset_t::id"] [:: core :: mem :: offset_of ! (rc_client_subset_t , id) - 0usize] ; ["Offset of field: rc_client_subset_t::title"] [:: core :: mem :: offset_of ! (rc_client_subset_t , title) - 8usize] ; ["Offset of field: rc_client_subset_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_subset_t , badge_name) - 16usize] ; ["Offset of field: rc_client_subset_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_client_subset_t , num_achievements) - 32usize] ; ["Offset of field: rc_client_subset_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_client_subset_t , num_leaderboards) - 36usize] ; } ; extern "C" { pub fn rc_client_get_subset_info (client : * mut rc_client_t , subset_id : u32) -> * const rc_client_subset_t ; } pub const RC_CLIENT_ACHIEVEMENT_STATE_INACTIVE : _bindgen_ty_17 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_ACTIVE : _bindgen_ty_17 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_UNLOCKED : _bindgen_ty_17 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_DISABLED : _bindgen_ty_17 = 3 ; pub const NUM_RC_CLIENT_ACHIEVEMENT_STATES : _bindgen_ty_17 = 4 ; # [doc = "\\\n| Achievements                                                                |\n\\"] pub type _bindgen_ty_17 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_NONE : _bindgen_ty_18 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_CORE : _bindgen_ty_18 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_UNOFFICIAL : _bindgen_ty_18 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_CORE_AND_UNOFFICIAL : _bindgen_ty_18 = 3 ; pub type _bindgen_ty_18 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_STANDARD : _bindgen_ty_19 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_MISSABLE : _bindgen_ty_19 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_PROGRESSION : _bindgen_ty_19 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_WIN : _bindgen_ty_19 = 3 ; pub type _bindgen_ty_19 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNKNOWN : _bindgen_ty_20 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_LOCKED : _bindgen_ty_20 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNLOCKED : _bindgen_ty_20 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNSUPPORTED : _bindgen_ty_20 = 3 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNOFFICIAL : _bindgen_ty_20 = 4 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_RECENTLY_UNLOCKED : _bindgen_ty_20 = 5 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_ACTIVE_CHALLENGE : _bindgen_ty_20 = 6 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_ALMOST_THERE : _bindgen_ty_20 = 7 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNSYNCED : _bindgen_ty_20 = 8 ; pub const NUM_RC_CLIENT_ACHIEVEMENT_BUCKETS : _bindgen_ty_20 = 9 ; pub type _bindgen_ty_20 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_NONE : _bindgen_ty_21 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_SOFTCORE : _bindgen_ty_21 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_HARDCORE : _bindgen_ty_21 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_BOTH : _bindgen_ty_21 = 3 ; pub type _bindgen_ty_21 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_t { pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub badge_name : [:: core :: ffi :: c_char ; 8usize] , pub measured_progress : [:: core :: ffi :: c_char ; 24usize] , pub measured_percent : f32 , pub id : u32 , pub points : u32 , pub unlock_time : time_t , pub state : u8 , pub category : u8 , pub bucket : u8 , pub unlocked : u8 , pub rarity : f32 , pub rarity_hardcore : f32 , pub type_ : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_t"] [:: core :: mem :: size_of :: < rc_client_achievement_t > () - 88usize] ; ["Alignment of rc_client_achievement_t"] [:: core :: mem :: align_of :: < rc_client_achievement_t > () - 8usize] ; ["Offset of field: rc_client_achievement_t::title"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , title) - 0usize] ; ["Offset of field: rc_client_achievement_t::description"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , description) - 8usize] ; ["Offset of field: rc_client_achievement_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , badge_name) - 16usize] ; ["Offset of field: rc_client_achievement_t::measured_progress"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , measured_progress) - 24usize] ; ["Offset of field: rc_client_achievement_t::measured_percent"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , measured_percent) - 48usize] ; ["Offset of field: rc_client_achievement_t::id"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , id) - 52usize] ; ["Offset of field: rc_client_achievement_t::points"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , points) - 56usize] ; ["Offset of field: rc_client_achievement_t::unlock_time"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , unlock_time) - 64usize] ; ["Offset of field: rc_client_achievement_t::state"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , state) - 72usize] ; ["Offset of field: rc_client_achievement_t::category"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , category) - 73usize] ; ["Offset of field: rc_client_achievement_t::bucket"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , bucket) - 74usize] ; ["Offset of field: rc_client_achievement_t::unlocked"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , unlocked) - 75usize] ; ["Offset of field: rc_client_achievement_t::rarity"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , rarity) - 76usize] ; ["Offset of field: rc_client_achievement_t::rarity_hardcore"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , rarity_hardcore) - 80usize] ; ["Offset of field: rc_client_achievement_t::type_"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , type_) - 84usize] ; } ; extern "C" { # [doc = " Get information about an achievement. Returns NULL if not found."] pub fn rc_client_get_achievement_info (client : * mut rc_client_t , id : u32) -> * const rc_client_achievement_t ; } extern "C" { # [doc = " Gets the URL for the achievement image.\n Returns RC_OK on success."] pub fn rc_client_achievement_get_image_url (achievement : * const rc_client_achievement_t , state : :: core :: ffi :: c_int , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_bucket_t { pub achievements : * mut * mut rc_client_achievement_t , pub num_achievements : u32 , pub label : * const :: core :: ffi :: c_char , pub subset_id : u32 , pub bucket_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_bucket_t"] [:: core :: mem :: size_of :: < rc_client_achievement_bucket_t > () - 32usize] ; ["Alignment of rc_client_achievement_bucket_t"] [:: core :: mem :: align_of :: < rc_client_achievement_bucket_t > () - 8usize] ; ["Offset of field: rc_client_achievement_bucket_t::achievements"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , achievements) - 0usize] ; ["Offset of field: rc_client_achievement_bucket_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , num_achievements) - 8usize] ; ["Offset of field: rc_client_achievement_bucket_t::label"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , label) - 16usize] ; ["Offset of field: rc_client_achievement_bucket_t::subset_id"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , subset_id) - 24usize] ; ["Offset of field: rc_client_achievement_bucket_t::bucket_type"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , bucket_type) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_list_t { pub buckets : * mut rc_client_achievement_bucket_t , pub num_buckets : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_list_t"] [:: core :: mem :: size_of :: < rc_client_achievement_list_t > () - 16usize] ; ["Alignment of rc_client_achievement_list_t"] [:: core :: mem :: align_of :: < rc_client_achievement_list_t > () - 8usize] ; ["Offset of field: rc_client_achievement_list_t::buckets"] [:: core :: mem :: offset_of ! (rc_client_achievement_list_t , buckets) - 0usize] ; ["Offset of field: rc_client_achievement_list_t::num_buckets"] [:: core :: mem :: offset_of ! (rc_client_achievement_list_t , num_buckets) - 8usize] ; } ; pub const RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_LOCK_STATE : _bindgen_ty_22 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_PROGRESS : _bindgen_ty_22 = 1 ; pub type _bindgen_ty_22 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Creates a list of achievements matching the specified category and grouping.\n Returns an allocated list that must be free'd by calling rc_client_destroy_achievement_list."] pub fn rc_client_create_achievement_list (client : * mut rc_client_t , category : :: core :: ffi :: c_int , grouping : :: core :: ffi :: c_int) -> * mut rc_client_achievement_list_t ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_get_achievement_list."] pub fn rc_client_destroy_achievement_list (list : * mut rc_client_achievement_list_t) ; } extern "C" { # [doc = " Returns non-zero if there are any achievements that can be queried through rc_client_create_achievement_list()."] pub fn rc_client_has_achievements (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } pub const RC_CLIENT_LEADERBOARD_STATE_INACTIVE : _bindgen_ty_23 = 0 ; pub const RC_CLIENT_LEADERBOARD_STATE_ACTIVE : _bindgen_ty_23 = 1 ; pub const RC_CLIENT_LEADERBOARD_STATE_TRACKING : _bindgen_ty_23 = 2 ; pub const RC_CLIENT_LEADERBOARD_STATE_DISABLED : _bindgen_ty_23 = 3 ; pub const NUM_RC_CLIENT_LEADERBOARD_STATES : _bindgen_ty_23 = 4 ; # [doc = "\\\n| Leaderboards                                                                |\n\\"] pub type _bindgen_ty_23 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_LEADERBOARD_FORMAT_TIME : _bindgen_ty_24 = 0 ; pub const RC_CLIENT_LEADERBOARD_FORMAT_SCORE : _bindgen_ty_24 = 1 ; pub const RC_CLIENT_LEADERBOARD_FORMAT_VALUE : _bindgen_ty_24 = 2 ; pub const NUM_RC_CLIENT_LEADERBOARD_FORMATS : _bindgen_ty_24 = 3 ; pub type _bindgen_ty_24 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_t { pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub tracker_value : * const :: core :: ffi :: c_char , pub id : u32 , pub state : u8 , pub format : u8 , pub lower_is_better : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_t > () - 32usize] ; ["Alignment of rc_client_leaderboard_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_t::title"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , title) - 0usize] ; ["Offset of field: rc_client_leaderboard_t::description"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , description) - 8usize] ; ["Offset of field: rc_client_leaderboard_t::tracker_value"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , tracker_value) - 16usize] ; ["Offset of field: rc_client_leaderboard_t::id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , id) - 24usize] ; ["Offset of field: rc_client_leaderboard_t::state"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , state) - 28usize] ; ["Offset of field: rc_client_leaderboard_t::format"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , format) - 29usize] ; ["Offset of field: rc_client_leaderboard_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , lower_is_better) - 30usize] ; } ; extern "C" { # [doc = " Get information about a leaderboard. Returns NULL if not found."] pub fn rc_client_get_leaderboard_info (client : * const rc_client_t , id : u32) -> * const rc_client_leaderboard_t ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_tracker_t { pub display : [:: core :: ffi :: c_char ; 24usize] , pub id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_tracker_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_tracker_t > () - 28usize] ; ["Alignment of rc_client_leaderboard_tracker_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_tracker_t > () - 4usize] ; ["Offset of field: rc_client_leaderboard_tracker_t::display"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_tracker_t , display) - 0usize] ; ["Offset of field: rc_client_leaderboard_tracker_t::id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_tracker_t , id) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_bucket_t { pub leaderboards : * mut * mut rc_client_leaderboard_t , pub num_leaderboards : u32 , pub label : * const :: core :: ffi :: c_char , pub subset_id : u32 , pub bucket_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_bucket_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_bucket_t > () - 32usize] ; ["Alignment of rc_client_leaderboard_bucket_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_bucket_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::leaderboards"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , leaderboards) - 0usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , num_leaderboards) - 8usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::label"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , label) - 16usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::subset_id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , subset_id) - 24usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::bucket_type"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , bucket_type) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_list_t { pub buckets : * mut rc_client_leaderboard_bucket_t , pub num_buckets : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_list_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_list_t > () - 16usize] ; ["Alignment of rc_client_leaderboard_list_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_list_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_list_t::buckets"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_list_t , buckets) - 0usize] ; ["Offset of field: rc_client_leaderboard_list_t::num_buckets"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_list_t , num_buckets) - 8usize] ; } ; pub const RC_CLIENT_LEADERBOARD_BUCKET_UNKNOWN : _bindgen_ty_25 = 0 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_INACTIVE : _bindgen_ty_25 = 1 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_ACTIVE : _bindgen_ty_25 = 2 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_UNSUPPORTED : _bindgen_ty_25 = 3 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_ALL : _bindgen_ty_25 = 4 ; pub const NUM_RC_CLIENT_LEADERBOARD_BUCKETS : _bindgen_ty_25 = 5 ; pub type _bindgen_ty_25 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_LEADERBOARD_LIST_GROUPING_NONE : _bindgen_ty_26 = 0 ; pub const RC_CLIENT_LEADERBOARD_LIST_GROUPING_TRACKING : _bindgen_ty_26 = 1 ; pub type _bindgen_ty_26 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Creates a list of leaderboards matching the specified grouping.\n Returns an allocated list that must be free'd by calling rc_client_destroy_leaderboard_list."] pub fn rc_client_create_leaderboard_list (client : * mut rc_client_t , grouping : :: core :: ffi :: c_int) -> * mut rc_client_leaderboard_list_t ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_get_leaderboard_list."] pub fn rc_client_destroy_leaderboard_list (list : * mut rc_client_leaderboard_list_t) ; } extern "C" { # [doc = " Returns non-zero if the current game has any leaderboards."] pub fn rc_client_has_leaderboards (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_entry_t { pub user : * const :: core :: ffi :: c_char , pub display : [:: core :: ffi :: c_char ; 24usize] , pub submitted : time_t , pub rank : u32 , pub index : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_entry_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_entry_t > () - 48usize] ; ["Alignment of rc_client_leaderboard_entry_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_entry_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_t::user"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , user) - 0usize] ; ["Offset of field: rc_client_leaderboard_entry_t::display"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , display) - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_t::submitted"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , submitted) - 32usize] ; ["Offset of field: rc_client_leaderboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , rank) - 40usize] ; ["Offset of field: rc_client_leaderboard_entry_t::index"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , index) - 44usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_entry_list_t { pub entries : * mut rc_client_leaderboard_entry_t , pub num_entries : u32 , pub total_entries : u32 , pub user_index : i32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_entry_list_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_entry_list_t > () - 24usize] ; ["Alignment of rc_client_leaderboard_entry_list_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_entry_list_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , entries) - 0usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::num_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , num_entries) - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::total_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , total_entries) - 12usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::user_index"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , user_index) - 16usize] ; } ; pub type rc_client_fetch_leaderboard_entries_callback_t = :: core :: option :: Option < unsafe extern "C" fn (result : :: core :: ffi :: c_int , error_message : * const :: core :: ffi :: c_char , list : * mut rc_client_leaderboard_entry_list_t , client : * mut rc_client_t , callback_userdata : * mut :: core :: ffi :: c_void) > ; extern "C" { # [doc = " Fetches a list of leaderboard entries from the server.\n Callback receives an allocated list that must be free'd by calling rc_client_destroy_leaderboard_entry_list."] pub fn rc_client_begin_fetch_leaderboard_entries (client : * mut rc_client_t , leaderboard_id : u32 , first_entry : u32 , count : u32 , callback : rc_client_fetch_leaderboard_entries_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Fetches a list of leaderboard entries from the server containing the logged-in user.\n Callback receives an allocated list that must be free'd by calling rc_client_destroy_leaderboard_entry_list."] pub fn rc_client_begin_fetch_leaderboard_entries_around_user (client : * mut rc_client_t , leaderboard_id : u32 , count : u32 , callback : rc_client_fetch_leaderboard_entries_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Gets the URL for the profile picture of the user associated to a leaderboard entry.\n Returns RC_OK on success."] pub fn rc_client_leaderboard_entry_get_user_image_url (entry : * const rc_client_leaderboard_entry_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_begin_fetch_leaderboard_entries or rc_client_begin_fetch_leaderboard_entries_around_user."] pub fn rc_client_destroy_leaderboard_entry_list (list : * mut rc_client_leaderboard_entry_list_t) ; } # [doc = " Used for scoreboard events. Contains the response from the server when a leaderboard entry is submitted.\n NOTE: This structure is only valid within the event callback. If you want to make use of the data outside\n of the callback, you should create copies of both the top entries and usernames within."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_scoreboard_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub score : [:: core :: ffi :: c_char ; 24usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_scoreboard_entry_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_scoreboard_entry_t > () - 40usize] ; ["Alignment of rc_client_leaderboard_scoreboard_entry_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_scoreboard_entry_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::username"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , username) - 0usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , rank) - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , score) - 12usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_scoreboard_t { pub leaderboard_id : u32 , pub submitted_score : [:: core :: ffi :: c_char ; 24usize] , pub best_score : [:: core :: ffi :: c_char ; 24usize] , pub new_rank : u32 , pub num_entries : u32 , pub top_entries : * mut rc_client_leaderboard_scoreboard_entry_t , pub num_top_entries : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_scoreboard_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_scoreboard_t > () - 80usize] ; ["Alignment of rc_client_leaderboard_scoreboard_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_scoreboard_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::submitted_score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , submitted_score) - 4usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::best_score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , best_score) - 28usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::new_rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , new_rank) - 52usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::num_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , num_entries) - 56usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::top_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , top_entries) - 64usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::num_top_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , num_top_entries) - 72usize] ; } ; extern "C" { # [doc = " Returns non-zero if the current game supports rich presence."] pub fn rc_client_has_rich_presence (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Gets the current rich presence message.\n Returns the number of characters written to buffer."] pub fn rc_client_get_rich_presence_message (client : * mut rc_client_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> usize ; } pub const RC_CLIENT_EVENT_TYPE_NONE : _bindgen_ty_27 = 0 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_TRIGGERED : _bindgen_ty_27 = 1 ; pub const RC_CLIENT_EVENT_LEADERBOARD_STARTED : _bindgen_ty_27 = 2 ; pub const RC_CLIENT_EVENT_LEADERBOARD_FAILED : _bindgen_ty_27 = 3 ; pub const RC_CLIENT_EVENT_LEADERBOARD_SUBMITTED : _bindgen_ty_27 = 4 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_CHALLENGE_INDICATOR_SHOW : _bindgen_ty_27 = 5 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_CHALLENGE_INDICATOR_HIDE : _bindgen_ty_27 = 6 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_SHOW : _bindgen_ty_27 = 7 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_HIDE : _bindgen_ty_27 = 8 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_UPDATE : _bindgen_ty_27 = 9 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_SHOW : _bindgen_ty_27 = 10 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_HIDE : _bindgen_ty_27 = 11 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_UPDATE : _bindgen_ty_27 = 12 ; pub const RC_CLIENT_EVENT_LEADERBOARD_SCOREBOARD : _bindgen_ty_27 = 13 ; pub const RC_CLIENT_EVENT_RESET : _bindgen_ty_27 = 14 ; pub const RC_CLIENT_EVENT_GAME_COMPLETED : _bindgen_ty_27 = 15 ; pub const RC_CLIENT_EVENT_SERVER_ERROR : _bindgen_ty_27 = 16 ; pub const RC_CLIENT_EVENT_DISCONNECTED : _bindgen_ty_27 = 17 ; pub const RC_CLIENT_EVENT_RECONNECTED : _bindgen_ty_27 = 18 ; # [doc = "\\\n| Processing                                                                  |\n\\"] pub type _bindgen_ty_27 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_server_error_t { pub error_message : * const :: core :: ffi :: c_char , pub api : * const :: core :: ffi :: c_char , pub result : :: core :: ffi :: c_int , pub related_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_server_error_t"] [:: core :: mem :: size_of :: < rc_client_server_error_t > () - 24usize] ; ["Alignment of rc_client_server_error_t"] [:: core :: mem :: align_of :: < rc_client_server_error_t > () - 8usize] ; ["Offset of field: rc_client_server_error_t::error_message"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , error_message) - 0usize] ; ["Offset of field: rc_client_server_error_t::api"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , api) - 8usize] ; ["Offset of field: rc_client_server_error_t::result"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , result) - 16usize] ; ["Offset of field: rc_client_server_error_t::related_id"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , related_id) - 20usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_event_t { pub type_ : u32 , pub achievement : * mut rc_client_achievement_t , pub leaderboard : * mut rc_client_leaderboard_t , pub leaderboard_tracker : * mut rc_client_leaderboard_tracker_t , pub leaderboard_scoreboard : * mut rc_client_leaderboard_scoreboard_t , pub server_error : * mut rc_client_server_error_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_event_t"] [:: core :: mem :: size_of :: < rc_client_event_t > () - 48usize] ; ["Alignment of rc_client_event_t"] [:: core :: mem :: align_of :: < rc_client_event_t > () - 8usize] ; ["Offset of field: rc_client_event_t::type_"] [:: core :: mem :: offset_of ! (rc_client_event_t , type_) - 0usize] ; ["Offset of field: rc_client_event_t::achievement"] [:: core :: mem :: offset_of ! (rc_client_event_t , achievement) - 8usize] ; ["Offset of field: rc_client_event_t::leaderboard"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard) - 16usize] ; ["Offset of field: rc_client_event_t::leaderboard_tracker"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard_tracker) - 24usize] ; ["Offset of field: rc_client_event_t::leaderboard_scoreboard"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard_scoreboard) - 32usize] ; ["Offset of field: rc_client_event_t::server_error"] [:: core :: mem :: offset_of ! (rc_client_event_t , server_error) - 40usize] ; } ; # [doc = " Callback used to notify the client when certain events occur."] pub type rc_client_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (event : * const rc_client_event_t , client : * mut rc_client_t) > ; extern "C" { # [doc = " Provides a callback for event handling."] pub fn rc_client_set_event_handler (client : * mut rc_client_t , handler : rc_client_event_handler_t) ; } extern "C" { # [doc = " Provides a callback for reading memory."] pub fn rc_client_set_read_memory_function (client : * mut rc_client_t , handler : rc_client_read_memory_func_t) ; } extern "C" { # [doc = " Determines if there are any active achievements/leaderboards/rich presence that need processing."] pub fn rc_client_is_processing_required (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Processes achievements for the current frame."] pub fn rc_client_do_frame (client : * mut rc_client_t) ; } extern "C" { # [doc = " Processes the periodic queue.\n Called internally by rc_client_do_frame.\n Should be explicitly called if rc_client_do_frame is not being called because emulation is paused."] pub fn rc_client_idle (client : * mut rc_client_t) ; } extern "C" { # [doc = " Determines if a sufficient amount of frames have been processed since the last call to rc_client_can_pause.\n Should not be called unless the client is trying to pause.\n If false is returned, and frames_remaining is not NULL, frames_remaining will be set to the number of frames\n still required before pause is allowed, which can be converted to a time in seconds for displaying to the user."] pub fn rc_client_can_pause (client : * mut rc_client_t , frames_remaining : * mut u32) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Informs the runtime that the emulator has been reset. Will reset all achievements and leaderboards\n to their initial state (includes hiding indicators/trackers)."] pub fn rc_client_reset (client : * mut rc_client_t) ; } extern "C" { # [doc = " Gets the number of bytes needed to serialized the runtime state."] pub fn rc_client_progress_size (client : * mut rc_client_t) -> usize ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator.\n [deprecated] use rc_client_serialize_progress_sized instead"] pub fn rc_client_serialize_progress (client : * mut rc_client_t , buffer : * mut u8) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator."] pub fn rc_client_serialize_progress_sized (client : * mut rc_client_t , buffer : * mut u8 , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Deserializes the runtime state from a buffer.\n Returns RC_OK on success, or an error indicator.\n [deprecated] use rc_client_deserialize_progress_sized instead"] pub fn rc_client_deserialize_progress (client : * mut rc_client_t , serialized : * const u8) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator."] pub fn rc_client_deserialize_progress_sized (client : * mut rc_client_t , serialized : * const u8 , serialized_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __locale_data { pub _address : u8 , } pub type __builtin_va_list = [__va_list_tag ; 1usize] ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __va_list_tag { pub gp_offset : :: core :: ffi :: c_uint , pub fp_offset : :: core :: ffi :: c_uint , pub overflow_arg_area : * mut :: core :: ffi :: c_void , pub reg_save_area : * mut :: core :: ffi :: c_void , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __va_list_tag"] [:: core :: mem :: size_of :: < __va_list_tag > () - 24usize] ; ["Alignment of __va_list_tag"] [:: core :: mem :: align_of :: < __va_list_tag > () - 8usize] ; ["Offset of field: __va_list_tag::gp_offset"] [:: core :: mem :: offset_of ! (__va_list_tag , gp_offset) - 0usize] ; ["Offset of field: __va_list_tag::fp_offset"] [:: core :: mem :: offset_of ! (__va_list_tag , fp_offset) - 4usize] ; ["Offset of field: __va_list_tag::overflow_arg_area"] [:: core :: mem :: offset_of ! (__va_list_tag , overflow_arg_area) - 8usize] ; ["Offset of field: __va_list_tag::reg_save_area"] [:: core :: mem :: offset_of ! (__va_list_tag , reg_save_area) - 16usize] ; } ;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling rcheevos-sys v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]  --> /opt/rustwide/target/debug/build/rcheevos-sys/badd2487a33295ab/out/bindings.rs:3:124281
[INFO] [stdout]   |
[INFO] [stdout] 3 | ...: ffi :: c_int { unsafe { :: core :: mem :: transmute (self . _bitfield_1 . get (0usize , 24u8) as u32) } } # [inline] pub fn set_...
[INFO] [stdout]   |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] help: replace this with
[INFO] [stdout]   |
[INFO] [stdout] 3 - # [repr (C)] # [derive (Copy , Clone , Debug , Default , Eq , Hash , Ord , PartialEq , PartialOrd)] pub struct __BindgenBitfieldUnit < Storage > { storage : Storage , } impl < Storage > __BindgenBitfieldUnit < Storage > { # [inline] pub const fn new (storage : Storage) -> Self { Self { storage } } } impl < Storage > __BindgenBitfieldUnit < Storage > where Storage : AsRef < [u8] > + AsMut < [u8] >, { # [inline] pub fn get_bit (& self , index : usize) -> bool { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = self . storage . as_ref () [byte_index] ; let bit_index = if cfg ! (target_endian = "big") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; byte & mask == mask } # [inline] pub fn set_bit (& mut self , index : usize , val : bool) { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = & mut self . storage . as_mut () [byte_index] ; let bit_index = if cfg ! (target_endian = "big") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; if val { * byte |= mask ; } else { * byte &= ! mask ; } } # [inline] pub fn get (& self , bit_offset : usize , bit_width : u8) -> u64 { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; let mut val = 0 ; for i in 0 .. (bit_width as usize) { if self . get_bit (i + bit_offset) { let index = if cfg ! (target_endian = "big") { bit_width as usize - 1 - i } else { i } ; val |= 1 << index ; } } val } # [inline] pub fn set (& mut self , bit_offset : usize , bit_width : u8 , val : u64) { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; for i in 0 .. (bit_width as usize) { let mask = 1 << i ; let val_bit_is_set = val & mask == mask ; let index = if cfg ! (target_endian = "big") { bit_width as usize - 1 - i } else { i } ; self . set_bit (index + bit_offset , val_bit_is_set) ; } } } # [derive (PartialEq , Copy , Clone , Hash , Debug , Default)] # [repr (C)] pub struct __BindgenComplex < T > { pub re : T , pub im : T } pub const _STDINT_H : u32 = 1 ; pub const _FEATURES_H : u32 = 1 ; pub const _DEFAULT_SOURCE : u32 = 1 ; pub const __GLIBC_USE_ISOC2Y : u32 = 0 ; pub const __GLIBC_USE_ISOC23 : u32 = 0 ; pub const __USE_ISOC11 : u32 = 1 ; pub const __USE_ISOC99 : u32 = 1 ; pub const __USE_ISOC95 : u32 = 1 ; pub const __USE_POSIX_IMPLICITLY : u32 = 1 ; pub const _POSIX_SOURCE : u32 = 1 ; pub const _POSIX_C_SOURCE : u32 = 202405 ; pub const __USE_POSIX : u32 = 1 ; pub const __USE_POSIX2 : u32 = 1 ; pub const __USE_POSIX199309 : u32 = 1 ; pub const __USE_POSIX199506 : u32 = 1 ; pub const __USE_XOPEN2K : u32 = 1 ; pub const __USE_XOPEN2K8 : u32 = 1 ; pub const _ATFILE_SOURCE : u32 = 1 ; pub const __USE_XOPEN2K24 : u32 = 1 ; pub const __WORDSIZE : u32 = 64 ; pub const __WORDSIZE_TIME64_COMPAT32 : u32 = 1 ; pub const __SYSCALL_WORDSIZE : u32 = 64 ; pub const __TIMESIZE : u32 = 64 ; pub const __USE_TIME_BITS64 : u32 = 1 ; pub const __USE_MISC : u32 = 1 ; 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_C23_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 ; pub const __STDC_IEC_559_COMPLEX__ : u32 = 1 ; 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 = 43 ; pub const _SYS_CDEFS_H : u32 = 1 ; pub const __glibc_c99_flexarr_available : u32 = 1 ; pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI : u32 = 0 ; pub const __HAVE_GENERIC_SELECTION : u32 = 1 ; pub const __GLIBC_USE_LIB_EXT2 : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT_C23 : u32 = 0 ; 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_C23 : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_TYPES_EXT : u32 = 0 ; pub const _BITS_TYPES_H : u32 = 1 ; pub const _BITS_TYPESIZES_H : u32 = 1 ; pub const __OFF_T_MATCHES_OFF64_T : u32 = 1 ; pub const __INO_T_MATCHES_INO64_T : u32 = 1 ; pub const __RLIM_T_MATCHES_RLIM64_T : u32 = 1 ; pub const __STATFS_MATCHES_STATFS64 : u32 = 1 ; pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 : u32 = 1 ; pub const __FD_SETSIZE : u32 = 1024 ; pub const _BITS_TIME64_H : u32 = 1 ; pub const _BITS_WCHAR_H : u32 = 1 ; pub const _BITS_STDINT_INTN_H : u32 = 1 ; pub const _BITS_STDINT_UINTN_H : u32 = 1 ; pub const _BITS_STDINT_LEAST_H : u32 = 1 ; pub const INT8_MIN : i32 = - 128 ; pub const INT16_MIN : i32 = - 32768 ; pub const INT32_MIN : i32 = - 2147483648 ; pub const INT8_MAX : u32 = 127 ; pub const INT16_MAX : u32 = 32767 ; pub const INT32_MAX : u32 = 2147483647 ; pub const UINT8_MAX : u32 = 255 ; pub const UINT16_MAX : u32 = 65535 ; pub const UINT32_MAX : u32 = 4294967295 ; pub const INT_LEAST8_MIN : i32 = - 128 ; pub const INT_LEAST16_MIN : i32 = - 32768 ; pub const INT_LEAST32_MIN : i32 = - 2147483648 ; pub const INT_LEAST8_MAX : u32 = 127 ; pub const INT_LEAST16_MAX : u32 = 32767 ; pub const INT_LEAST32_MAX : u32 = 2147483647 ; pub const UINT_LEAST8_MAX : u32 = 255 ; pub const UINT_LEAST16_MAX : u32 = 65535 ; pub const UINT_LEAST32_MAX : u32 = 4294967295 ; pub const INT_FAST8_MIN : i32 = - 128 ; pub const INT_FAST16_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST32_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST8_MAX : u32 = 127 ; pub const INT_FAST16_MAX : u64 = 9223372036854775807 ; pub const INT_FAST32_MAX : u64 = 9223372036854775807 ; pub const UINT_FAST8_MAX : u32 = 255 ; pub const UINT_FAST16_MAX : i32 = - 1 ; pub const UINT_FAST32_MAX : i32 = - 1 ; pub const INTPTR_MIN : i64 = - 9223372036854775808 ; pub const INTPTR_MAX : u64 = 9223372036854775807 ; pub const UINTPTR_MAX : i32 = - 1 ; pub const PTRDIFF_MIN : i64 = - 9223372036854775808 ; pub const PTRDIFF_MAX : u64 = 9223372036854775807 ; pub const SIG_ATOMIC_MIN : i32 = - 2147483648 ; pub const SIG_ATOMIC_MAX : u32 = 2147483647 ; pub const SIZE_MAX : i32 = - 1 ; pub const WINT_MIN : u32 = 0 ; pub const WINT_MAX : u32 = 4294967295 ; pub const RC_VALUE_MAX_NAME_LENGTH : u32 = 15 ; pub const _TIME_H : u32 = 1 ; pub const _BITS_TIME_H : u32 = 1 ; pub const CLOCK_REALTIME : u32 = 0 ; pub const CLOCK_MONOTONIC : u32 = 1 ; pub const CLOCK_PROCESS_CPUTIME_ID : u32 = 2 ; pub const CLOCK_THREAD_CPUTIME_ID : u32 = 3 ; pub const CLOCK_MONOTONIC_RAW : u32 = 4 ; pub const CLOCK_REALTIME_COARSE : u32 = 5 ; pub const CLOCK_MONOTONIC_COARSE : u32 = 6 ; pub const CLOCK_BOOTTIME : u32 = 7 ; pub const CLOCK_REALTIME_ALARM : u32 = 8 ; pub const CLOCK_BOOTTIME_ALARM : u32 = 9 ; pub const CLOCK_TAI : u32 = 11 ; pub const TIMER_ABSTIME : u32 = 1 ; pub const __clock_t_defined : u32 = 1 ; pub const __time_t_defined : u32 = 1 ; pub const __struct_tm_defined : u32 = 1 ; pub const _STRUCT_TIMESPEC : u32 = 1 ; pub const _BITS_ENDIAN_H : u32 = 1 ; pub const __LITTLE_ENDIAN : u32 = 1234 ; pub const __BIG_ENDIAN : u32 = 4321 ; pub const __PDP_ENDIAN : u32 = 3412 ; pub const _BITS_ENDIANNESS_H : u32 = 1 ; pub const __BYTE_ORDER : u32 = 1234 ; pub const __FLOAT_WORD_ORDER : u32 = 1234 ; pub const __clockid_t_defined : u32 = 1 ; pub const __timer_t_defined : u32 = 1 ; pub const __itimerspec_defined : u32 = 1 ; pub const _BITS_TYPES_LOCALE_T_H : u32 = 1 ; pub const _BITS_TYPES___LOCALE_T_H : u32 = 1 ; pub const TIME_UTC : u32 = 1 ; pub const _STDIO_H : u32 = 1 ; pub const _____fpos_t_defined : u32 = 1 ; pub const ____mbstate_t_defined : u32 = 1 ; pub const _____fpos64_t_defined : u32 = 1 ; pub const ____FILE_defined : u32 = 1 ; pub const __FILE_defined : u32 = 1 ; 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 ; pub const BUFSIZ : u32 = 8192 ; pub const EOF : i32 = - 1 ; 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 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 ; pub const __HAVE_FLOAT128 : u32 = 1 ; pub const __HAVE_DISTINCT_FLOAT128 : u32 = 1 ; pub const __HAVE_FLOAT64X : u32 = 1 ; pub const __HAVE_FLOAT64X_LONG_DOUBLE : u32 = 1 ; pub const __HAVE_FLOAT16 : u32 = 0 ; pub const __HAVE_FLOAT32 : u32 = 1 ; pub const __HAVE_FLOAT64 : u32 = 1 ; pub const __HAVE_FLOAT32X : u32 = 1 ; pub const __HAVE_FLOAT128X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT16 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT32 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT64 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT32X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT64X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT128X : u32 = 0 ; pub const __HAVE_FLOATN_NOT_TYPEDEF : u32 = 0 ; pub const RC_IMAGE_TYPE_GAME : u32 = 1 ; pub const RC_IMAGE_TYPE_ACHIEVEMENT : u32 = 2 ; pub const RC_IMAGE_TYPE_ACHIEVEMENT_LOCKED : u32 = 3 ; pub const RC_IMAGE_TYPE_USER : u32 = 4 ; pub const RC_ACHIEVEMENT_CATEGORY_CORE : u32 = 3 ; pub const RC_ACHIEVEMENT_CATEGORY_UNOFFICIAL : u32 = 5 ; pub const RC_ACHIEVEMENT_TYPE_STANDARD : u32 = 0 ; pub const RC_ACHIEVEMENT_TYPE_MISSABLE : u32 = 1 ; pub const RC_ACHIEVEMENT_TYPE_PROGRESSION : u32 = 2 ; pub const RC_ACHIEVEMENT_TYPE_WIN : u32 = 3 ; pub const RC_CLIENT_LEADERBOARD_DISPLAY_SIZE : u32 = 24 ; pub const RC_OK : _bindgen_ty_1 = 0 ; pub const RC_INVALID_LUA_OPERAND : _bindgen_ty_1 = - 1 ; pub const RC_INVALID_MEMORY_OPERAND : _bindgen_ty_1 = - 2 ; pub const RC_INVALID_CONST_OPERAND : _bindgen_ty_1 = - 3 ; pub const RC_INVALID_FP_OPERAND : _bindgen_ty_1 = - 4 ; pub const RC_INVALID_CONDITION_TYPE : _bindgen_ty_1 = - 5 ; pub const RC_INVALID_OPERATOR : _bindgen_ty_1 = - 6 ; pub const RC_INVALID_REQUIRED_HITS : _bindgen_ty_1 = - 7 ; pub const RC_DUPLICATED_START : _bindgen_ty_1 = - 8 ; pub const RC_DUPLICATED_CANCEL : _bindgen_ty_1 = - 9 ; pub const RC_DUPLICATED_SUBMIT : _bindgen_ty_1 = - 10 ; pub const RC_DUPLICATED_VALUE : _bindgen_ty_1 = - 11 ; pub const RC_DUPLICATED_PROGRESS : _bindgen_ty_1 = - 12 ; pub const RC_MISSING_START : _bindgen_ty_1 = - 13 ; pub const RC_MISSING_CANCEL : _bindgen_ty_1 = - 14 ; pub const RC_MISSING_SUBMIT : _bindgen_ty_1 = - 15 ; pub const RC_MISSING_VALUE : _bindgen_ty_1 = - 16 ; pub const RC_INVALID_LBOARD_FIELD : _bindgen_ty_1 = - 17 ; pub const RC_MISSING_DISPLAY_STRING : _bindgen_ty_1 = - 18 ; pub const RC_OUT_OF_MEMORY : _bindgen_ty_1 = - 19 ; pub const RC_INVALID_VALUE_FLAG : _bindgen_ty_1 = - 20 ; pub const RC_MISSING_VALUE_MEASURED : _bindgen_ty_1 = - 21 ; pub const RC_MULTIPLE_MEASURED : _bindgen_ty_1 = - 22 ; pub const RC_INVALID_MEASURED_TARGET : _bindgen_ty_1 = - 23 ; pub const RC_INVALID_COMPARISON : _bindgen_ty_1 = - 24 ; pub const RC_INVALID_STATE : _bindgen_ty_1 = - 25 ; pub const RC_INVALID_JSON : _bindgen_ty_1 = - 26 ; pub const RC_API_FAILURE : _bindgen_ty_1 = - 27 ; pub const RC_LOGIN_REQUIRED : _bindgen_ty_1 = - 28 ; pub const RC_NO_GAME_LOADED : _bindgen_ty_1 = - 29 ; pub const RC_HARDCORE_DISABLED : _bindgen_ty_1 = - 30 ; pub const RC_ABORTED : _bindgen_ty_1 = - 31 ; pub const RC_NO_RESPONSE : _bindgen_ty_1 = - 32 ; pub const RC_ACCESS_DENIED : _bindgen_ty_1 = - 33 ; pub const RC_INVALID_CREDENTIALS : _bindgen_ty_1 = - 34 ; pub const RC_EXPIRED_TOKEN : _bindgen_ty_1 = - 35 ; pub const RC_INSUFFICIENT_BUFFER : _bindgen_ty_1 = - 36 ; pub const RC_INVALID_VARIABLE_NAME : _bindgen_ty_1 = - 37 ; pub const RC_UNKNOWN_VARIABLE_NAME : _bindgen_ty_1 = - 38 ; # [doc = "\\\n| Return values                                                               |\n\\"] pub type _bindgen_ty_1 = :: core :: ffi :: c_int ; extern "C" { pub fn rc_error_str (ret : :: core :: ffi :: c_int) -> * const :: core :: ffi :: c_char ; } pub type wchar_t = :: core :: ffi :: c_int ; # [repr (C)] # [repr (align (16))] # [derive (Debug , Copy , Clone)] pub struct max_align_t { pub __clang_max_align_nonce1 : :: core :: ffi :: c_longlong , pub __bindgen_padding_0 : u64 , pub __clang_max_align_nonce2 : u128 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of max_align_t"] [:: core :: mem :: size_of :: < max_align_t > () - 32usize] ; ["Alignment of max_align_t"] [:: core :: mem :: align_of :: < max_align_t > () - 16usize] ; ["Offset of field: max_align_t::__clang_max_align_nonce1"] [:: core :: mem :: offset_of ! (max_align_t , __clang_max_align_nonce1) - 0usize] ; ["Offset of field: max_align_t::__clang_max_align_nonce2"] [:: core :: mem :: offset_of ! (max_align_t , __clang_max_align_nonce2) - 16usize] ; } ; pub type __u_char = :: core :: ffi :: c_uchar ; pub type __u_short = :: core :: ffi :: c_ushort ; pub type __u_int = :: core :: ffi :: c_uint ; pub type __u_long = :: core :: ffi :: c_ulong ; pub type __int8_t = :: core :: ffi :: c_schar ; pub type __uint8_t = :: core :: ffi :: c_uchar ; pub type __int16_t = :: core :: ffi :: c_short ; pub type __uint16_t = :: core :: ffi :: c_ushort ; pub type __int32_t = :: core :: ffi :: c_int ; pub type __uint32_t = :: core :: ffi :: c_uint ; pub type __int64_t = :: core :: ffi :: c_long ; pub type __uint64_t = :: core :: ffi :: c_ulong ; pub type __int_least8_t = __int8_t ; pub type __uint_least8_t = __uint8_t ; pub type __int_least16_t = __int16_t ; pub type __uint_least16_t = __uint16_t ; pub type __int_least32_t = __int32_t ; pub type __uint_least32_t = __uint32_t ; pub type __int_least64_t = __int64_t ; pub type __uint_least64_t = __uint64_t ; pub type __quad_t = :: core :: ffi :: c_long ; pub type __u_quad_t = :: core :: ffi :: c_ulong ; pub type __intmax_t = :: core :: ffi :: c_long ; pub type __uintmax_t = :: core :: ffi :: c_ulong ; pub type __dev_t = :: core :: ffi :: c_ulong ; pub type __uid_t = :: core :: ffi :: c_uint ; pub type __gid_t = :: core :: ffi :: c_uint ; pub type __ino_t = :: core :: ffi :: c_ulong ; pub type __ino64_t = :: core :: ffi :: c_ulong ; pub type __mode_t = :: core :: ffi :: c_uint ; pub type __nlink_t = :: core :: ffi :: c_ulong ; pub type __off_t = :: core :: ffi :: c_long ; pub type __off64_t = :: core :: ffi :: c_long ; pub type __pid_t = :: core :: ffi :: c_int ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __fsid_t { pub __val : [:: core :: ffi :: c_int ; 2usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __fsid_t"] [:: core :: mem :: size_of :: < __fsid_t > () - 8usize] ; ["Alignment of __fsid_t"] [:: core :: mem :: align_of :: < __fsid_t > () - 4usize] ; ["Offset of field: __fsid_t::__val"] [:: core :: mem :: offset_of ! (__fsid_t , __val) - 0usize] ; } ; pub type __clock_t = :: core :: ffi :: c_long ; pub type __rlim_t = :: core :: ffi :: c_ulong ; pub type __rlim64_t = :: core :: ffi :: c_ulong ; pub type __id_t = :: core :: ffi :: c_uint ; pub type __time_t = :: core :: ffi :: c_long ; pub type __useconds_t = :: core :: ffi :: c_uint ; pub type __suseconds_t = :: core :: ffi :: c_long ; pub type __suseconds64_t = :: core :: ffi :: c_long ; pub type __daddr_t = :: core :: ffi :: c_int ; pub type __key_t = :: core :: ffi :: c_int ; pub type __clockid_t = :: core :: ffi :: c_int ; pub type __timer_t = * mut :: core :: ffi :: c_void ; pub type __blksize_t = :: core :: ffi :: c_long ; pub type __blkcnt_t = :: core :: ffi :: c_long ; pub type __blkcnt64_t = :: core :: ffi :: c_long ; pub type __fsblkcnt_t = :: core :: ffi :: c_ulong ; pub type __fsblkcnt64_t = :: core :: ffi :: c_ulong ; pub type __fsfilcnt_t = :: core :: ffi :: c_ulong ; pub type __fsfilcnt64_t = :: core :: ffi :: c_ulong ; pub type __fsword_t = :: core :: ffi :: c_long ; pub type __ssize_t = :: core :: ffi :: c_long ; pub type __syscall_slong_t = :: core :: ffi :: c_long ; pub type __syscall_ulong_t = :: core :: ffi :: c_ulong ; pub type __loff_t = __off64_t ; pub type __caddr_t = * mut :: core :: ffi :: c_char ; pub type __intptr_t = :: core :: ffi :: c_long ; pub type __socklen_t = :: core :: ffi :: c_uint ; pub type __sig_atomic_t = :: core :: ffi :: c_int ; pub type int_least8_t = __int_least8_t ; pub type int_least16_t = __int_least16_t ; pub type int_least32_t = __int_least32_t ; pub type int_least64_t = __int_least64_t ; pub type uint_least8_t = __uint_least8_t ; pub type uint_least16_t = __uint_least16_t ; pub type uint_least32_t = __uint_least32_t ; pub type uint_least64_t = __uint_least64_t ; pub type int_fast8_t = :: core :: ffi :: c_schar ; pub type int_fast16_t = :: core :: ffi :: c_long ; pub type int_fast32_t = :: core :: ffi :: c_long ; pub type int_fast64_t = :: core :: ffi :: c_long ; pub type uint_fast8_t = :: core :: ffi :: c_uchar ; pub type uint_fast16_t = :: core :: ffi :: c_ulong ; pub type uint_fast32_t = :: core :: ffi :: c_ulong ; pub type uint_fast64_t = :: core :: ffi :: c_ulong ; pub type intmax_t = __intmax_t ; pub type uintmax_t = __uintmax_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct lua_State { _unused : [u8 ; 0] , } # [doc = " Callback used to read num_bytes bytes from memory starting at address. If\n num_bytes is greater than 1, the value is read in little-endian from\n memory."] pub type rc_peek_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , num_bytes : u32 , ud : * mut :: core :: ffi :: c_void) -> u32 > ; pub const RC_MEMSIZE_8_BITS : _bindgen_ty_2 = 0 ; pub const RC_MEMSIZE_16_BITS : _bindgen_ty_2 = 1 ; pub const RC_MEMSIZE_24_BITS : _bindgen_ty_2 = 2 ; pub const RC_MEMSIZE_32_BITS : _bindgen_ty_2 = 3 ; pub const RC_MEMSIZE_LOW : _bindgen_ty_2 = 4 ; pub const RC_MEMSIZE_HIGH : _bindgen_ty_2 = 5 ; pub const RC_MEMSIZE_BIT_0 : _bindgen_ty_2 = 6 ; pub const RC_MEMSIZE_BIT_1 : _bindgen_ty_2 = 7 ; pub const RC_MEMSIZE_BIT_2 : _bindgen_ty_2 = 8 ; pub const RC_MEMSIZE_BIT_3 : _bindgen_ty_2 = 9 ; pub const RC_MEMSIZE_BIT_4 : _bindgen_ty_2 = 10 ; pub const RC_MEMSIZE_BIT_5 : _bindgen_ty_2 = 11 ; pub const RC_MEMSIZE_BIT_6 : _bindgen_ty_2 = 12 ; pub const RC_MEMSIZE_BIT_7 : _bindgen_ty_2 = 13 ; pub const RC_MEMSIZE_BITCOUNT : _bindgen_ty_2 = 14 ; pub const RC_MEMSIZE_16_BITS_BE : _bindgen_ty_2 = 15 ; pub const RC_MEMSIZE_24_BITS_BE : _bindgen_ty_2 = 16 ; pub const RC_MEMSIZE_32_BITS_BE : _bindgen_ty_2 = 17 ; pub const RC_MEMSIZE_FLOAT : _bindgen_ty_2 = 18 ; pub const RC_MEMSIZE_MBF32 : _bindgen_ty_2 = 19 ; pub const RC_MEMSIZE_MBF32_LE : _bindgen_ty_2 = 20 ; pub const RC_MEMSIZE_FLOAT_BE : _bindgen_ty_2 = 21 ; pub const RC_MEMSIZE_DOUBLE32 : _bindgen_ty_2 = 22 ; pub const RC_MEMSIZE_DOUBLE32_BE : _bindgen_ty_2 = 23 ; pub const RC_MEMSIZE_VARIABLE : _bindgen_ty_2 = 24 ; # [doc = "\\\n| Memory References                                                           |\n\\"] pub type _bindgen_ty_2 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memref_value_t { pub value : u32 , pub prior : u32 , pub size : u8 , pub changed : u8 , pub type_ : u8 , pub is_indirect : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memref_value_t"] [:: core :: mem :: size_of :: < rc_memref_value_t > () - 12usize] ; ["Alignment of rc_memref_value_t"] [:: core :: mem :: align_of :: < rc_memref_value_t > () - 4usize] ; ["Offset of field: rc_memref_value_t::value"] [:: core :: mem :: offset_of ! (rc_memref_value_t , value) - 0usize] ; ["Offset of field: rc_memref_value_t::prior"] [:: core :: mem :: offset_of ! (rc_memref_value_t , prior) - 4usize] ; ["Offset of field: rc_memref_value_t::size"] [:: core :: mem :: offset_of ! (rc_memref_value_t , size) - 8usize] ; ["Offset of field: rc_memref_value_t::changed"] [:: core :: mem :: offset_of ! (rc_memref_value_t , changed) - 9usize] ; ["Offset of field: rc_memref_value_t::type_"] [:: core :: mem :: offset_of ! (rc_memref_value_t , type_) - 10usize] ; ["Offset of field: rc_memref_value_t::is_indirect"] [:: core :: mem :: offset_of ! (rc_memref_value_t , is_indirect) - 11usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memref_t { pub value : rc_memref_value_t , pub address : u32 , pub next : * mut rc_memref_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memref_t"] [:: core :: mem :: size_of :: < rc_memref_t > () - 24usize] ; ["Alignment of rc_memref_t"] [:: core :: mem :: align_of :: < rc_memref_t > () - 8usize] ; ["Offset of field: rc_memref_t::value"] [:: core :: mem :: offset_of ! (rc_memref_t , value) - 0usize] ; ["Offset of field: rc_memref_t::address"] [:: core :: mem :: offset_of ! (rc_memref_t , address) - 12usize] ; ["Offset of field: rc_memref_t::next"] [:: core :: mem :: offset_of ! (rc_memref_t , next) - 16usize] ; } ; pub const RC_OPERAND_ADDRESS : _bindgen_ty_3 = 0 ; pub const RC_OPERAND_DELTA : _bindgen_ty_3 = 1 ; pub const RC_OPERAND_CONST : _bindgen_ty_3 = 2 ; pub const RC_OPERAND_FP : _bindgen_ty_3 = 3 ; pub const RC_OPERAND_LUA : _bindgen_ty_3 = 4 ; pub const RC_OPERAND_PRIOR : _bindgen_ty_3 = 5 ; pub const RC_OPERAND_BCD : _bindgen_ty_3 = 6 ; pub const RC_OPERAND_INVERTED : _bindgen_ty_3 = 7 ; pub const RC_OPERAND_RECALL : _bindgen_ty_3 = 8 ; # [doc = "\\\n| Operands                                                                    |\n\\"] pub type _bindgen_ty_3 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Copy , Clone)] pub struct rc_operand_t { pub value : rc_operand_t__bindgen_ty_1 , pub type_ : u8 , pub size : u8 , } # [repr (C)] # [derive (Copy , Clone)] pub union rc_operand_t__bindgen_ty_1 { pub memref : * mut rc_memref_t , pub num : u32 , pub dbl : f64 , pub luafunc : :: core :: ffi :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_operand_t__bindgen_ty_1"] [:: core :: mem :: size_of :: < rc_operand_t__bindgen_ty_1 > () - 8usize] ; ["Alignment of rc_operand_t__bindgen_ty_1"] [:: core :: mem :: align_of :: < rc_operand_t__bindgen_ty_1 > () - 8usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::memref"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , memref) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::num"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , num) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::dbl"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , dbl) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::luafunc"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , luafunc) - 0usize] ; } ; impl :: core :: fmt :: Debug for rc_operand_t__bindgen_ty_1 { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_operand_t__bindgen_ty_1 {{ union }}") } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_operand_t"] [:: core :: mem :: size_of :: < rc_operand_t > () - 16usize] ; ["Alignment of rc_operand_t"] [:: core :: mem :: align_of :: < rc_operand_t > () - 8usize] ; ["Offset of field: rc_operand_t::value"] [:: core :: mem :: offset_of ! (rc_operand_t , value) - 0usize] ; ["Offset of field: rc_operand_t::type_"] [:: core :: mem :: offset_of ! (rc_operand_t , type_) - 8usize] ; ["Offset of field: rc_operand_t::size"] [:: core :: mem :: offset_of ! (rc_operand_t , size) - 9usize] ; } ; impl :: core :: fmt :: Debug for rc_operand_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_operand_t {{ value: {:?}, type: {:?}, size: {:?} }}" , self . value , self . type_ , self . size) } } extern "C" { pub fn rc_operand_is_memref (operand : * const rc_operand_t) -> :: core :: ffi :: c_int ; } pub const RC_CONDITION_STANDARD : _bindgen_ty_4 = 0 ; pub const RC_CONDITION_PAUSE_IF : _bindgen_ty_4 = 1 ; pub const RC_CONDITION_RESET_IF : _bindgen_ty_4 = 2 ; pub const RC_CONDITION_MEASURED_IF : _bindgen_ty_4 = 3 ; pub const RC_CONDITION_TRIGGER : _bindgen_ty_4 = 4 ; pub const RC_CONDITION_MEASURED : _bindgen_ty_4 = 5 ; pub const RC_CONDITION_ADD_SOURCE : _bindgen_ty_4 = 6 ; pub const RC_CONDITION_SUB_SOURCE : _bindgen_ty_4 = 7 ; pub const RC_CONDITION_ADD_ADDRESS : _bindgen_ty_4 = 8 ; pub const RC_CONDITION_REMEMBER : _bindgen_ty_4 = 9 ; pub const RC_CONDITION_ADD_HITS : _bindgen_ty_4 = 10 ; pub const RC_CONDITION_SUB_HITS : _bindgen_ty_4 = 11 ; pub const RC_CONDITION_RESET_NEXT_IF : _bindgen_ty_4 = 12 ; pub const RC_CONDITION_AND_NEXT : _bindgen_ty_4 = 13 ; pub const RC_CONDITION_OR_NEXT : _bindgen_ty_4 = 14 ; # [doc = "\\\n| Conditions                                                                  |\n\\"] pub type _bindgen_ty_4 = :: core :: ffi :: c_uint ; pub const RC_OPERATOR_EQ : _bindgen_ty_5 = 0 ; pub const RC_OPERATOR_LT : _bindgen_ty_5 = 1 ; pub const RC_OPERATOR_LE : _bindgen_ty_5 = 2 ; pub const RC_OPERATOR_GT : _bindgen_ty_5 = 3 ; pub const RC_OPERATOR_GE : _bindgen_ty_5 = 4 ; pub const RC_OPERATOR_NE : _bindgen_ty_5 = 5 ; pub const RC_OPERATOR_NONE : _bindgen_ty_5 = 6 ; pub const RC_OPERATOR_MULT : _bindgen_ty_5 = 7 ; pub const RC_OPERATOR_DIV : _bindgen_ty_5 = 8 ; pub const RC_OPERATOR_AND : _bindgen_ty_5 = 9 ; pub const RC_OPERATOR_XOR : _bindgen_ty_5 = 10 ; pub const RC_OPERATOR_MOD : _bindgen_ty_5 = 11 ; pub const RC_OPERATOR_ADD : _bindgen_ty_5 = 12 ; pub const RC_OPERATOR_SUB : _bindgen_ty_5 = 13 ; pub type _bindgen_ty_5 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Copy , Clone)] pub struct rc_condition_t { pub operand1 : rc_operand_t , pub operand2 : rc_operand_t , pub required_hits : u32 , pub current_hits : u32 , pub next : * mut rc_condition_t , pub type_ : u8 , pub oper : u8 , pub pause : u8 , pub is_true : u8 , pub optimized_comparator : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_condition_t"] [:: core :: mem :: size_of :: < rc_condition_t > () - 56usize] ; ["Alignment of rc_condition_t"] [:: core :: mem :: align_of :: < rc_condition_t > () - 8usize] ; ["Offset of field: rc_condition_t::operand1"] [:: core :: mem :: offset_of ! (rc_condition_t , operand1) - 0usize] ; ["Offset of field: rc_condition_t::operand2"] [:: core :: mem :: offset_of ! (rc_condition_t , operand2) - 16usize] ; ["Offset of field: rc_condition_t::required_hits"] [:: core :: mem :: offset_of ! (rc_condition_t , required_hits) - 32usize] ; ["Offset of field: rc_condition_t::current_hits"] [:: core :: mem :: offset_of ! (rc_condition_t , current_hits) - 36usize] ; ["Offset of field: rc_condition_t::next"] [:: core :: mem :: offset_of ! (rc_condition_t , next) - 40usize] ; ["Offset of field: rc_condition_t::type_"] [:: core :: mem :: offset_of ! (rc_condition_t , type_) - 48usize] ; ["Offset of field: rc_condition_t::oper"] [:: core :: mem :: offset_of ! (rc_condition_t , oper) - 49usize] ; ["Offset of field: rc_condition_t::pause"] [:: core :: mem :: offset_of ! (rc_condition_t , pause) - 50usize] ; ["Offset of field: rc_condition_t::is_true"] [:: core :: mem :: offset_of ! (rc_condition_t , is_true) - 51usize] ; ["Offset of field: rc_condition_t::optimized_comparator"] [:: core :: mem :: offset_of ! (rc_condition_t , optimized_comparator) - 52usize] ; } ; impl :: core :: fmt :: Debug for rc_condition_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_condition_t {{ operand1: {:?}, operand2: {:?}, required_hits: {:?}, current_hits: {:?}, next: {:?}, type: {:?}, oper: {:?}, pause: {:?}, is_true: {:?}, optimized_comparator: {:?} }}" , self . operand1 , self . operand2 , self . required_hits , self . current_hits , self . next , self . type_ , self . oper , self . pause , self . is_true , self . optimized_comparator) } } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_condset_t { pub next : * mut rc_condset_t , pub conditions : * mut rc_condition_t , pub has_pause : u8 , pub is_paused : u8 , pub has_indirect_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_condset_t"] [:: core :: mem :: size_of :: < rc_condset_t > () - 24usize] ; ["Alignment of rc_condset_t"] [:: core :: mem :: align_of :: < rc_condset_t > () - 8usize] ; ["Offset of field: rc_condset_t::next"] [:: core :: mem :: offset_of ! (rc_condset_t , next) - 0usize] ; ["Offset of field: rc_condset_t::conditions"] [:: core :: mem :: offset_of ! (rc_condset_t , conditions) - 8usize] ; ["Offset of field: rc_condset_t::has_pause"] [:: core :: mem :: offset_of ! (rc_condset_t , has_pause) - 16usize] ; ["Offset of field: rc_condset_t::is_paused"] [:: core :: mem :: offset_of ! (rc_condset_t , is_paused) - 17usize] ; ["Offset of field: rc_condset_t::has_indirect_memrefs"] [:: core :: mem :: offset_of ! (rc_condset_t , has_indirect_memrefs) - 18usize] ; } ; pub const RC_TRIGGER_STATE_INACTIVE : _bindgen_ty_6 = 0 ; pub const RC_TRIGGER_STATE_WAITING : _bindgen_ty_6 = 1 ; pub const RC_TRIGGER_STATE_ACTIVE : _bindgen_ty_6 = 2 ; pub const RC_TRIGGER_STATE_PAUSED : _bindgen_ty_6 = 3 ; pub const RC_TRIGGER_STATE_RESET : _bindgen_ty_6 = 4 ; pub const RC_TRIGGER_STATE_TRIGGERED : _bindgen_ty_6 = 5 ; pub const RC_TRIGGER_STATE_PRIMED : _bindgen_ty_6 = 6 ; pub const RC_TRIGGER_STATE_DISABLED : _bindgen_ty_6 = 7 ; # [doc = "\\\n| Trigger                                                                     |\n\\"] pub type _bindgen_ty_6 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_trigger_t { pub requirement : * mut rc_condset_t , pub alternative : * mut rc_condset_t , pub memrefs : * mut rc_memref_t , pub measured_value : u32 , pub measured_target : u32 , pub state : u8 , pub has_hits : u8 , pub has_required_hits : u8 , pub measured_as_percent : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_trigger_t"] [:: core :: mem :: size_of :: < rc_trigger_t > () - 40usize] ; ["Alignment of rc_trigger_t"] [:: core :: mem :: align_of :: < rc_trigger_t > () - 8usize] ; ["Offset of field: rc_trigger_t::requirement"] [:: core :: mem :: offset_of ! (rc_trigger_t , requirement) - 0usize] ; ["Offset of field: rc_trigger_t::alternative"] [:: core :: mem :: offset_of ! (rc_trigger_t , alternative) - 8usize] ; ["Offset of field: rc_trigger_t::memrefs"] [:: core :: mem :: offset_of ! (rc_trigger_t , memrefs) - 16usize] ; ["Offset of field: rc_trigger_t::measured_value"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_value) - 24usize] ; ["Offset of field: rc_trigger_t::measured_target"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_target) - 28usize] ; ["Offset of field: rc_trigger_t::state"] [:: core :: mem :: offset_of ! (rc_trigger_t , state) - 32usize] ; ["Offset of field: rc_trigger_t::has_hits"] [:: core :: mem :: offset_of ! (rc_trigger_t , has_hits) - 33usize] ; ["Offset of field: rc_trigger_t::has_required_hits"] [:: core :: mem :: offset_of ! (rc_trigger_t , has_required_hits) - 34usize] ; ["Offset of field: rc_trigger_t::measured_as_percent"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_as_percent) - 35usize] ; } ; extern "C" { pub fn rc_trigger_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_trigger (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_trigger_t ; } extern "C" { pub fn rc_evaluate_trigger (trigger : * mut rc_trigger_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_test_trigger (trigger : * mut rc_trigger_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_trigger (self_ : * mut rc_trigger_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_value_t { pub value : rc_memref_value_t , pub conditions : * mut rc_condset_t , pub memrefs : * mut rc_memref_t , pub name : * const :: core :: ffi :: c_char , pub next : * mut rc_value_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_value_t"] [:: core :: mem :: size_of :: < rc_value_t > () - 48usize] ; ["Alignment of rc_value_t"] [:: core :: mem :: align_of :: < rc_value_t > () - 8usize] ; ["Offset of field: rc_value_t::value"] [:: core :: mem :: offset_of ! (rc_value_t , value) - 0usize] ; ["Offset of field: rc_value_t::conditions"] [:: core :: mem :: offset_of ! (rc_value_t , conditions) - 16usize] ; ["Offset of field: rc_value_t::memrefs"] [:: core :: mem :: offset_of ! (rc_value_t , memrefs) - 24usize] ; ["Offset of field: rc_value_t::name"] [:: core :: mem :: offset_of ! (rc_value_t , name) - 32usize] ; ["Offset of field: rc_value_t::next"] [:: core :: mem :: offset_of ! (rc_value_t , next) - 40usize] ; } ; extern "C" { pub fn rc_value_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_value (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_value_t ; } extern "C" { pub fn rc_evaluate_value (value : * mut rc_value_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> i32 ; } pub const RC_LBOARD_STATE_INACTIVE : _bindgen_ty_7 = 0 ; pub const RC_LBOARD_STATE_WAITING : _bindgen_ty_7 = 1 ; pub const RC_LBOARD_STATE_ACTIVE : _bindgen_ty_7 = 2 ; pub const RC_LBOARD_STATE_STARTED : _bindgen_ty_7 = 3 ; pub const RC_LBOARD_STATE_CANCELED : _bindgen_ty_7 = 4 ; pub const RC_LBOARD_STATE_TRIGGERED : _bindgen_ty_7 = 5 ; pub const RC_LBOARD_STATE_DISABLED : _bindgen_ty_7 = 6 ; # [doc = "\\\n| Leaderboards                                                                |\n\\"] pub type _bindgen_ty_7 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_lboard_t { pub start : rc_trigger_t , pub submit : rc_trigger_t , pub cancel : rc_trigger_t , pub value : rc_value_t , pub progress : * mut rc_value_t , pub memrefs : * mut rc_memref_t , pub state : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_lboard_t"] [:: core :: mem :: size_of :: < rc_lboard_t > () - 192usize] ; ["Alignment of rc_lboard_t"] [:: core :: mem :: align_of :: < rc_lboard_t > () - 8usize] ; ["Offset of field: rc_lboard_t::start"] [:: core :: mem :: offset_of ! (rc_lboard_t , start) - 0usize] ; ["Offset of field: rc_lboard_t::submit"] [:: core :: mem :: offset_of ! (rc_lboard_t , submit) - 40usize] ; ["Offset of field: rc_lboard_t::cancel"] [:: core :: mem :: offset_of ! (rc_lboard_t , cancel) - 80usize] ; ["Offset of field: rc_lboard_t::value"] [:: core :: mem :: offset_of ! (rc_lboard_t , value) - 120usize] ; ["Offset of field: rc_lboard_t::progress"] [:: core :: mem :: offset_of ! (rc_lboard_t , progress) - 168usize] ; ["Offset of field: rc_lboard_t::memrefs"] [:: core :: mem :: offset_of ! (rc_lboard_t , memrefs) - 176usize] ; ["Offset of field: rc_lboard_t::state"] [:: core :: mem :: offset_of ! (rc_lboard_t , state) - 184usize] ; } ; extern "C" { pub fn rc_lboard_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_lboard (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_lboard_t ; } extern "C" { pub fn rc_evaluate_lboard (lboard : * mut rc_lboard_t , value : * mut i32 , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_lboard (lboard : * mut rc_lboard_t) ; } pub const RC_FORMAT_FRAMES : _bindgen_ty_8 = 0 ; pub const RC_FORMAT_SECONDS : _bindgen_ty_8 = 1 ; pub const RC_FORMAT_CENTISECS : _bindgen_ty_8 = 2 ; pub const RC_FORMAT_SCORE : _bindgen_ty_8 = 3 ; pub const RC_FORMAT_VALUE : _bindgen_ty_8 = 4 ; pub const RC_FORMAT_MINUTES : _bindgen_ty_8 = 5 ; pub const RC_FORMAT_SECONDS_AS_MINUTES : _bindgen_ty_8 = 6 ; pub const RC_FORMAT_FLOAT1 : _bindgen_ty_8 = 7 ; pub const RC_FORMAT_FLOAT2 : _bindgen_ty_8 = 8 ; pub const RC_FORMAT_FLOAT3 : _bindgen_ty_8 = 9 ; pub const RC_FORMAT_FLOAT4 : _bindgen_ty_8 = 10 ; pub const RC_FORMAT_FLOAT5 : _bindgen_ty_8 = 11 ; pub const RC_FORMAT_FLOAT6 : _bindgen_ty_8 = 12 ; pub const RC_FORMAT_FIXED1 : _bindgen_ty_8 = 13 ; pub const RC_FORMAT_FIXED2 : _bindgen_ty_8 = 14 ; pub const RC_FORMAT_FIXED3 : _bindgen_ty_8 = 15 ; pub const RC_FORMAT_TENS : _bindgen_ty_8 = 16 ; pub const RC_FORMAT_HUNDREDS : _bindgen_ty_8 = 17 ; pub const RC_FORMAT_THOUSANDS : _bindgen_ty_8 = 18 ; pub const RC_FORMAT_UNSIGNED_VALUE : _bindgen_ty_8 = 19 ; # [doc = "\\\n| Value formatting                                                            |\n\\"] pub type _bindgen_ty_8 = :: core :: ffi :: c_uint ; extern "C" { pub fn rc_parse_format (format_str : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_format_value (buffer : * mut :: core :: ffi :: c_char , size : :: core :: ffi :: c_int , value : i32 , format : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_lookup_item_t { pub first : u32 , pub last : u32 , pub left : * mut rc_richpresence_lookup_item_t , pub right : * mut rc_richpresence_lookup_item_t , pub label : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_lookup_item_t"] [:: core :: mem :: size_of :: < rc_richpresence_lookup_item_t > () - 32usize] ; ["Alignment of rc_richpresence_lookup_item_t"] [:: core :: mem :: align_of :: < rc_richpresence_lookup_item_t > () - 8usize] ; ["Offset of field: rc_richpresence_lookup_item_t::first"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , first) - 0usize] ; ["Offset of field: rc_richpresence_lookup_item_t::last"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , last) - 4usize] ; ["Offset of field: rc_richpresence_lookup_item_t::left"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , left) - 8usize] ; ["Offset of field: rc_richpresence_lookup_item_t::right"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , right) - 16usize] ; ["Offset of field: rc_richpresence_lookup_item_t::label"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , label) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_lookup_t { pub root : * mut rc_richpresence_lookup_item_t , pub next : * mut rc_richpresence_lookup_t , pub name : * const :: core :: ffi :: c_char , pub default_label : * const :: core :: ffi :: c_char , pub format : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_lookup_t"] [:: core :: mem :: size_of :: < rc_richpresence_lookup_t > () - 40usize] ; ["Alignment of rc_richpresence_lookup_t"] [:: core :: mem :: align_of :: < rc_richpresence_lookup_t > () - 8usize] ; ["Offset of field: rc_richpresence_lookup_t::root"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , root) - 0usize] ; ["Offset of field: rc_richpresence_lookup_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , next) - 8usize] ; ["Offset of field: rc_richpresence_lookup_t::name"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , name) - 16usize] ; ["Offset of field: rc_richpresence_lookup_t::default_label"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , default_label) - 24usize] ; ["Offset of field: rc_richpresence_lookup_t::format"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , format) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_display_part_t { pub next : * mut rc_richpresence_display_part_t , pub text : * const :: core :: ffi :: c_char , pub lookup : * mut rc_richpresence_lookup_t , pub value : * mut rc_memref_value_t , pub display_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_display_part_t"] [:: core :: mem :: size_of :: < rc_richpresence_display_part_t > () - 40usize] ; ["Alignment of rc_richpresence_display_part_t"] [:: core :: mem :: align_of :: < rc_richpresence_display_part_t > () - 8usize] ; ["Offset of field: rc_richpresence_display_part_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , next) - 0usize] ; ["Offset of field: rc_richpresence_display_part_t::text"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , text) - 8usize] ; ["Offset of field: rc_richpresence_display_part_t::lookup"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , lookup) - 16usize] ; ["Offset of field: rc_richpresence_display_part_t::value"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , value) - 24usize] ; ["Offset of field: rc_richpresence_display_part_t::display_type"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , display_type) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_display_t { pub trigger : rc_trigger_t , pub next : * mut rc_richpresence_display_t , pub display : * mut rc_richpresence_display_part_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_display_t"] [:: core :: mem :: size_of :: < rc_richpresence_display_t > () - 56usize] ; ["Alignment of rc_richpresence_display_t"] [:: core :: mem :: align_of :: < rc_richpresence_display_t > () - 8usize] ; ["Offset of field: rc_richpresence_display_t::trigger"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , trigger) - 0usize] ; ["Offset of field: rc_richpresence_display_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , next) - 40usize] ; ["Offset of field: rc_richpresence_display_t::display"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , display) - 48usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_t { pub first_display : * mut rc_richpresence_display_t , pub first_lookup : * mut rc_richpresence_lookup_t , pub memrefs : * mut rc_memref_t , pub variables : * mut rc_value_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_t"] [:: core :: mem :: size_of :: < rc_richpresence_t > () - 32usize] ; ["Alignment of rc_richpresence_t"] [:: core :: mem :: align_of :: < rc_richpresence_t > () - 8usize] ; ["Offset of field: rc_richpresence_t::first_display"] [:: core :: mem :: offset_of ! (rc_richpresence_t , first_display) - 0usize] ; ["Offset of field: rc_richpresence_t::first_lookup"] [:: core :: mem :: offset_of ! (rc_richpresence_t , first_lookup) - 8usize] ; ["Offset of field: rc_richpresence_t::memrefs"] [:: core :: mem :: offset_of ! (rc_richpresence_t , memrefs) - 16usize] ; ["Offset of field: rc_richpresence_t::variables"] [:: core :: mem :: offset_of ! (rc_richpresence_t , variables) - 24usize] ; } ; extern "C" { pub fn rc_richpresence_size (script : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_richpresence_size_lines (script : * const :: core :: ffi :: c_char , lines_read : * mut :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_richpresence (buffer : * mut :: core :: ffi :: c_void , script : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_richpresence_t ; } extern "C" { pub fn rc_evaluate_richpresence (richpresence : * mut rc_richpresence_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_update_richpresence (richpresence : * mut rc_richpresence_t , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) ; } extern "C" { pub fn rc_get_richpresence_display_string (richpresence : * mut rc_richpresence_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_richpresence (self_ : * mut rc_richpresence_t) ; } # [doc = " A block of memory for variable length data (like strings and arrays)."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_buffer_chunk_t { pub write : * mut u8 , pub end : * mut u8 , pub start : * mut u8 , pub next : * mut rc_buffer_chunk_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_buffer_chunk_t"] [:: core :: mem :: size_of :: < rc_buffer_chunk_t > () - 32usize] ; ["Alignment of rc_buffer_chunk_t"] [:: core :: mem :: align_of :: < rc_buffer_chunk_t > () - 8usize] ; ["Offset of field: rc_buffer_chunk_t::write"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , write) - 0usize] ; ["Offset of field: rc_buffer_chunk_t::end"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , end) - 8usize] ; ["Offset of field: rc_buffer_chunk_t::start"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , start) - 16usize] ; ["Offset of field: rc_buffer_chunk_t::next"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , next) - 24usize] ; } ; # [doc = " A preallocated block of memory for variable length data (like strings and arrays)."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_buffer_t { pub chunk : rc_buffer_chunk_t , pub data : [u8 ; 256usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_buffer_t"] [:: core :: mem :: size_of :: < rc_buffer_t > () - 288usize] ; ["Alignment of rc_buffer_t"] [:: core :: mem :: align_of :: < rc_buffer_t > () - 8usize] ; ["Offset of field: rc_buffer_t::chunk"] [:: core :: mem :: offset_of ! (rc_buffer_t , chunk) - 0usize] ; ["Offset of field: rc_buffer_t::data"] [:: core :: mem :: offset_of ! (rc_buffer_t , data) - 32usize] ; } ; extern "C" { pub fn rc_buffer_init (buffer : * mut rc_buffer_t) ; } extern "C" { pub fn rc_buffer_destroy (buffer : * mut rc_buffer_t) ; } extern "C" { pub fn rc_buffer_reserve (buffer : * mut rc_buffer_t , amount : usize) -> * mut u8 ; } extern "C" { pub fn rc_buffer_consume (buffer : * mut rc_buffer_t , start : * const u8 , end : * mut u8) ; } extern "C" { pub fn rc_buffer_alloc (buffer : * mut rc_buffer_t , amount : usize) -> * mut :: core :: ffi :: c_void ; } extern "C" { pub fn rc_buffer_strcpy (buffer : * mut rc_buffer_t , src : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn rc_buffer_strncpy (buffer : * mut rc_buffer_t , src : * const :: core :: ffi :: c_char , len : usize) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn rc_djb2 (input : * const :: core :: ffi :: c_char) -> u32 ; } extern "C" { pub fn rc_format_md5 (checksum : * mut :: core :: ffi :: c_char , digest : * const u8) ; } # [doc = " A constructed request to send to the retroachievements server."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_request_t { pub url : * const :: core :: ffi :: c_char , pub post_data : * const :: core :: ffi :: c_char , pub content_type : * const :: core :: ffi :: c_char , pub buffer : rc_buffer_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_request_t"] [:: core :: mem :: size_of :: < rc_api_request_t > () - 312usize] ; ["Alignment of rc_api_request_t"] [:: core :: mem :: align_of :: < rc_api_request_t > () - 8usize] ; ["Offset of field: rc_api_request_t::url"] [:: core :: mem :: offset_of ! (rc_api_request_t , url) - 0usize] ; ["Offset of field: rc_api_request_t::post_data"] [:: core :: mem :: offset_of ! (rc_api_request_t , post_data) - 8usize] ; ["Offset of field: rc_api_request_t::content_type"] [:: core :: mem :: offset_of ! (rc_api_request_t , content_type) - 16usize] ; ["Offset of field: rc_api_request_t::buffer"] [:: core :: mem :: offset_of ! (rc_api_request_t , buffer) - 24usize] ; } ; # [doc = " Common attributes for all server responses."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_response_t { pub succeeded : :: core :: ffi :: c_int , pub error_message : * const :: core :: ffi :: c_char , pub error_code : * const :: core :: ffi :: c_char , pub buffer : rc_buffer_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_response_t"] [:: core :: mem :: size_of :: < rc_api_response_t > () - 312usize] ; ["Alignment of rc_api_response_t"] [:: core :: mem :: align_of :: < rc_api_response_t > () - 8usize] ; ["Offset of field: rc_api_response_t::succeeded"] [:: core :: mem :: offset_of ! (rc_api_response_t , succeeded) - 0usize] ; ["Offset of field: rc_api_response_t::error_message"] [:: core :: mem :: offset_of ! (rc_api_response_t , error_message) - 8usize] ; ["Offset of field: rc_api_response_t::error_code"] [:: core :: mem :: offset_of ! (rc_api_response_t , error_code) - 16usize] ; ["Offset of field: rc_api_response_t::buffer"] [:: core :: mem :: offset_of ! (rc_api_response_t , buffer) - 24usize] ; } ; extern "C" { pub fn rc_api_destroy_request (request : * mut rc_api_request_t) ; } extern "C" { pub fn rc_api_set_host (hostname : * const :: core :: ffi :: c_char) ; } extern "C" { pub fn rc_api_set_image_host (hostname : * const :: core :: ffi :: c_char) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_server_response_t { pub body : * const :: core :: ffi :: c_char , pub body_length : usize , pub http_status_code : :: core :: ffi :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_server_response_t"] [:: core :: mem :: size_of :: < rc_api_server_response_t > () - 24usize] ; ["Alignment of rc_api_server_response_t"] [:: core :: mem :: align_of :: < rc_api_server_response_t > () - 8usize] ; ["Offset of field: rc_api_server_response_t::body"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , body) - 0usize] ; ["Offset of field: rc_api_server_response_t::body_length"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , body_length) - 8usize] ; ["Offset of field: rc_api_server_response_t::http_status_code"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , http_status_code) - 16usize] ; } ; pub const RC_API_SERVER_RESPONSE_CLIENT_ERROR : _bindgen_ty_9 = - 1 ; pub const RC_API_SERVER_RESPONSE_RETRYABLE_CLIENT_ERROR : _bindgen_ty_9 = - 2 ; pub type _bindgen_ty_9 = :: core :: ffi :: c_int ; pub type clock_t = __clock_t ; pub type time_t = __time_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct tm { pub tm_sec : :: core :: ffi :: c_int , pub tm_min : :: core :: ffi :: c_int , pub tm_hour : :: core :: ffi :: c_int , pub tm_mday : :: core :: ffi :: c_int , pub tm_mon : :: core :: ffi :: c_int , pub tm_year : :: core :: ffi :: c_int , pub tm_wday : :: core :: ffi :: c_int , pub tm_yday : :: core :: ffi :: c_int , pub tm_isdst : :: core :: ffi :: c_int , pub tm_gmtoff : :: core :: ffi :: c_long , pub tm_zone : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of tm"] [:: core :: mem :: size_of :: < tm > () - 56usize] ; ["Alignment of tm"] [:: core :: mem :: align_of :: < tm > () - 8usize] ; ["Offset of field: tm::tm_sec"] [:: core :: mem :: offset_of ! (tm , tm_sec) - 0usize] ; ["Offset of field: tm::tm_min"] [:: core :: mem :: offset_of ! (tm , tm_min) - 4usize] ; ["Offset of field: tm::tm_hour"] [:: core :: mem :: offset_of ! (tm , tm_hour) - 8usize] ; ["Offset of field: tm::tm_mday"] [:: core :: mem :: offset_of ! (tm , tm_mday) - 12usize] ; ["Offset of field: tm::tm_mon"] [:: core :: mem :: offset_of ! (tm , tm_mon) - 16usize] ; ["Offset of field: tm::tm_year"] [:: core :: mem :: offset_of ! (tm , tm_year) - 20usize] ; ["Offset of field: tm::tm_wday"] [:: core :: mem :: offset_of ! (tm , tm_wday) - 24usize] ; ["Offset of field: tm::tm_yday"] [:: core :: mem :: offset_of ! (tm , tm_yday) - 28usize] ; ["Offset of field: tm::tm_isdst"] [:: core :: mem :: offset_of ! (tm , tm_isdst) - 32usize] ; ["Offset of field: tm::tm_gmtoff"] [:: core :: mem :: offset_of ! (tm , tm_gmtoff) - 40usize] ; ["Offset of field: tm::tm_zone"] [:: core :: mem :: offset_of ! (tm , tm_zone) - 48usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct timespec { pub tv_sec : __time_t , pub tv_nsec : __syscall_slong_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of timespec"] [:: core :: mem :: size_of :: < timespec > () - 16usize] ; ["Alignment of timespec"] [:: core :: mem :: align_of :: < timespec > () - 8usize] ; ["Offset of field: timespec::tv_sec"] [:: core :: mem :: offset_of ! (timespec , tv_sec) - 0usize] ; ["Offset of field: timespec::tv_nsec"] [:: core :: mem :: offset_of ! (timespec , tv_nsec) - 8usize] ; } ; pub type clockid_t = __clockid_t ; pub type timer_t = __timer_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct itimerspec { pub it_interval : timespec , pub it_value : timespec , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of itimerspec"] [:: core :: mem :: size_of :: < itimerspec > () - 32usize] ; ["Alignment of itimerspec"] [:: core :: mem :: align_of :: < itimerspec > () - 8usize] ; ["Offset of field: itimerspec::it_interval"] [:: core :: mem :: offset_of ! (itimerspec , it_interval) - 0usize] ; ["Offset of field: itimerspec::it_value"] [:: core :: mem :: offset_of ! (itimerspec , it_value) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct sigevent { _unused : [u8 ; 0] , } pub type pid_t = __pid_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __locale_struct { pub __locales : [* mut __locale_data ; 13usize] , pub __ctype_b : * const :: core :: ffi :: c_ushort , pub __ctype_tolower : * const :: core :: ffi :: c_int , pub __ctype_toupper : * const :: core :: ffi :: c_int , pub __names : [* const :: core :: ffi :: c_char ; 13usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __locale_struct"] [:: core :: mem :: size_of :: < __locale_struct > () - 232usize] ; ["Alignment of __locale_struct"] [:: core :: mem :: align_of :: < __locale_struct > () - 8usize] ; ["Offset of field: __locale_struct::__locales"] [:: core :: mem :: offset_of ! (__locale_struct , __locales) - 0usize] ; ["Offset of field: __locale_struct::__ctype_b"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_b) - 104usize] ; ["Offset of field: __locale_struct::__ctype_tolower"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_tolower) - 112usize] ; ["Offset of field: __locale_struct::__ctype_toupper"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_toupper) - 120usize] ; ["Offset of field: __locale_struct::__names"] [:: core :: mem :: offset_of ! (__locale_struct , __names) - 128usize] ; } ; pub type __locale_t = * mut __locale_struct ; pub type locale_t = __locale_t ; extern "C" { pub fn clock () -> clock_t ; } extern "C" { pub fn time (__timer : * mut time_t) -> time_t ; } extern "C" { pub fn difftime (__time1 : time_t , __time0 : time_t) -> f64 ; } extern "C" { pub fn mktime (__tp : * mut tm) -> time_t ; } extern "C" { pub fn strftime (__s : * mut :: core :: ffi :: c_char , __maxsize : usize , __format : * const :: core :: ffi :: c_char , __tp : * const tm) -> usize ; } extern "C" { pub fn strftime_l (__s : * mut :: core :: ffi :: c_char , __maxsize : usize , __format : * const :: core :: ffi :: c_char , __tp : * const tm , __loc : locale_t) -> usize ; } extern "C" { pub fn gmtime (__timer : * const time_t) -> * mut tm ; } extern "C" { pub fn localtime (__timer : * const time_t) -> * mut tm ; } extern "C" { pub fn gmtime_r (__timer : * const time_t , __tp : * mut tm) -> * mut tm ; } extern "C" { pub fn localtime_r (__timer : * const time_t , __tp : * mut tm) -> * mut tm ; } extern "C" { pub fn asctime (__tp : * const tm) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn ctime (__timer : * const time_t) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn asctime_r (__tp : * const tm , __buf : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn ctime_r (__timer : * const time_t , __buf : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub static mut __tzname : [* mut :: core :: ffi :: c_char ; 2usize] ; } extern "C" { pub static mut __daylight : :: core :: ffi :: c_int ; } extern "C" { pub static mut __timezone : :: core :: ffi :: c_long ; } extern "C" { pub static mut tzname : [* mut :: core :: ffi :: c_char ; 2usize] ; } extern "C" { pub fn tzset () ; } extern "C" { pub static mut daylight : :: core :: ffi :: c_int ; } extern "C" { pub static mut timezone : :: core :: ffi :: c_long ; } extern "C" { pub fn timegm (__tp : * mut tm) -> time_t ; } extern "C" { pub fn timelocal (__tp : * mut tm) -> time_t ; } extern "C" { pub fn dysize (__year : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn nanosleep (__requested_time : * const timespec , __remaining : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_getres (__clock_id : clockid_t , __res : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_gettime (__clock_id : clockid_t , __tp : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_settime (__clock_id : clockid_t , __tp : * const timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_nanosleep (__clock_id : clockid_t , __flags : :: core :: ffi :: c_int , __req : * const timespec , __rem : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_getcpuclockid (__pid : pid_t , __clock_id : * mut clockid_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_create (__clock_id : clockid_t , __evp : * mut sigevent , __timerid : * mut timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_delete (__timerid : timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_settime (__timerid : timer_t , __flags : :: core :: ffi :: c_int , __value : * const itimerspec , __ovalue : * mut itimerspec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_gettime (__timerid : timer_t , __value : * mut itimerspec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_getoverrun (__timerid : timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timespec_get (__ts : * mut timespec , __base : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } # [doc = " API parameters for a login request.\n If both password and api_token are provided, api_token will be ignored."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_login_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub password : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_login_request_t"] [:: core :: mem :: size_of :: < rc_api_login_request_t > () - 24usize] ; ["Alignment of rc_api_login_request_t"] [:: core :: mem :: align_of :: < rc_api_login_request_t > () - 8usize] ; ["Offset of field: rc_api_login_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , username) - 0usize] ; ["Offset of field: rc_api_login_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_login_request_t::password"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , password) - 16usize] ; } ; # [doc = " Response data for a login request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_login_response_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub score : u32 , pub score_softcore : u32 , pub num_unread_messages : u32 , pub display_name : * const :: core :: ffi :: c_char , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_login_response_t"] [:: core :: mem :: size_of :: < rc_api_login_response_t > () - 352usize] ; ["Alignment of rc_api_login_response_t"] [:: core :: mem :: align_of :: < rc_api_login_response_t > () - 8usize] ; ["Offset of field: rc_api_login_response_t::username"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , username) - 0usize] ; ["Offset of field: rc_api_login_response_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , api_token) - 8usize] ; ["Offset of field: rc_api_login_response_t::score"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , score) - 16usize] ; ["Offset of field: rc_api_login_response_t::score_softcore"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , score_softcore) - 20usize] ; ["Offset of field: rc_api_login_response_t::num_unread_messages"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , num_unread_messages) - 24usize] ; ["Offset of field: rc_api_login_response_t::display_name"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , display_name) - 32usize] ; ["Offset of field: rc_api_login_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , response) - 40usize] ; } ; extern "C" { pub fn rc_api_init_login_request (request : * mut rc_api_request_t , api_params : * const rc_api_login_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_login_response (response : * mut rc_api_login_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_login_server_response (response : * mut rc_api_login_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_login_response (response : * mut rc_api_login_response_t) ; } # [doc = " API parameters for a start session request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_start_session_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub game_hash : * const :: core :: ffi :: c_char , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_start_session_request_t"] [:: core :: mem :: size_of :: < rc_api_start_session_request_t > () - 40usize] ; ["Alignment of rc_api_start_session_request_t"] [:: core :: mem :: align_of :: < rc_api_start_session_request_t > () - 8usize] ; ["Offset of field: rc_api_start_session_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , username) - 0usize] ; ["Offset of field: rc_api_start_session_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_start_session_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_start_session_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_start_session_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , hardcore) - 32usize] ; } ; # [doc = " Response data for an achievement unlock."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_unlock_entry_t { pub achievement_id : u32 , pub when : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_unlock_entry_t"] [:: core :: mem :: size_of :: < rc_api_unlock_entry_t > () - 16usize] ; ["Alignment of rc_api_unlock_entry_t"] [:: core :: mem :: align_of :: < rc_api_unlock_entry_t > () - 8usize] ; ["Offset of field: rc_api_unlock_entry_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_unlock_entry_t , achievement_id) - 0usize] ; ["Offset of field: rc_api_unlock_entry_t::when"] [:: core :: mem :: offset_of ! (rc_api_unlock_entry_t , when) - 8usize] ; } ; # [doc = " Response data for a start session request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_start_session_response_t { pub hardcore_unlocks : * mut rc_api_unlock_entry_t , pub unlocks : * mut rc_api_unlock_entry_t , pub num_hardcore_unlocks : u32 , pub num_unlocks : u32 , pub server_now : time_t , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_start_session_response_t"] [:: core :: mem :: size_of :: < rc_api_start_session_response_t > () - 344usize] ; ["Alignment of rc_api_start_session_response_t"] [:: core :: mem :: align_of :: < rc_api_start_session_response_t > () - 8usize] ; ["Offset of field: rc_api_start_session_response_t::hardcore_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , hardcore_unlocks) - 0usize] ; ["Offset of field: rc_api_start_session_response_t::unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , unlocks) - 8usize] ; ["Offset of field: rc_api_start_session_response_t::num_hardcore_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , num_hardcore_unlocks) - 16usize] ; ["Offset of field: rc_api_start_session_response_t::num_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , num_unlocks) - 20usize] ; ["Offset of field: rc_api_start_session_response_t::server_now"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , server_now) - 24usize] ; ["Offset of field: rc_api_start_session_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_start_session_request (request : * mut rc_api_request_t , api_params : * const rc_api_start_session_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_start_session_response (response : * mut rc_api_start_session_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_start_session_server_response (response : * mut rc_api_start_session_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_start_session_response (response : * mut rc_api_start_session_response_t) ; } # [doc = " API parameters for a fetch user unlocks request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_user_unlocks_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_user_unlocks_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_user_unlocks_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_user_unlocks_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_user_unlocks_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , hardcore) - 20usize] ; } ; # [doc = " Response data for a fetch user unlocks request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_user_unlocks_response_t { pub achievement_ids : * mut u32 , pub num_achievement_ids : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_user_unlocks_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_user_unlocks_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_user_unlocks_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_user_unlocks_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::achievement_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , achievement_ids) - 0usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::num_achievement_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , num_achievement_ids) - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_user_unlocks_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_user_unlocks_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_user_unlocks_response (response : * mut rc_api_fetch_user_unlocks_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_user_unlocks_server_response (response : * mut rc_api_fetch_user_unlocks_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_user_unlocks_response (response : * mut rc_api_fetch_user_unlocks_response_t) ; } # [doc = " API parameters for a fetch code notes request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_code_notes_request_t { pub game_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_code_notes_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_code_notes_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_code_notes_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_code_notes_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_code_notes_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_request_t , game_id) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_code_note_t { pub address : u32 , pub author : * const :: core :: ffi :: c_char , pub note : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_code_note_t"] [:: core :: mem :: size_of :: < rc_api_code_note_t > () - 24usize] ; ["Alignment of rc_api_code_note_t"] [:: core :: mem :: align_of :: < rc_api_code_note_t > () - 8usize] ; ["Offset of field: rc_api_code_note_t::address"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , address) - 0usize] ; ["Offset of field: rc_api_code_note_t::author"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , author) - 8usize] ; ["Offset of field: rc_api_code_note_t::note"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , note) - 16usize] ; } ; # [doc = " Response data for a fetch code notes request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_code_notes_response_t { pub notes : * mut rc_api_code_note_t , pub num_notes : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_code_notes_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_code_notes_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_code_notes_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_code_notes_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::notes"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , notes) - 0usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::num_notes"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , num_notes) - 8usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_code_notes_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_code_notes_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_code_notes_response (response : * mut rc_api_fetch_code_notes_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_code_notes_server_response (response : * mut rc_api_fetch_code_notes_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_code_notes_response (response : * mut rc_api_fetch_code_notes_response_t) ; } # [doc = " API parameters for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_code_note_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub address : u32 , pub note : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_code_note_request_t"] [:: core :: mem :: size_of :: < rc_api_update_code_note_request_t > () - 32usize] ; ["Alignment of rc_api_update_code_note_request_t"] [:: core :: mem :: align_of :: < rc_api_update_code_note_request_t > () - 8usize] ; ["Offset of field: rc_api_update_code_note_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_code_note_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_code_note_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_update_code_note_request_t::address"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , address) - 20usize] ; ["Offset of field: rc_api_update_code_note_request_t::note"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , note) - 24usize] ; } ; # [doc = " Response data for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_code_note_response_t { pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_code_note_response_t"] [:: core :: mem :: size_of :: < rc_api_update_code_note_response_t > () - 312usize] ; ["Alignment of rc_api_update_code_note_response_t"] [:: core :: mem :: align_of :: < rc_api_update_code_note_response_t > () - 8usize] ; ["Offset of field: rc_api_update_code_note_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_response_t , response) - 0usize] ; } ; extern "C" { pub fn rc_api_init_update_code_note_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_code_note_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_code_note_response (response : * mut rc_api_update_code_note_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_code_note_server_response (response : * mut rc_api_update_code_note_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_code_note_response (response : * mut rc_api_update_code_note_response_t) ; } # [doc = " API parameters for an update achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_achievement_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub game_id : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub badge : * const :: core :: ffi :: c_char , pub trigger : * const :: core :: ffi :: c_char , pub points : u32 , pub category : u32 , pub type_ : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_achievement_request_t"] [:: core :: mem :: size_of :: < rc_api_update_achievement_request_t > () - 72usize] ; ["Alignment of rc_api_update_achievement_request_t"] [:: core :: mem :: align_of :: < rc_api_update_achievement_request_t > () - 8usize] ; ["Offset of field: rc_api_update_achievement_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_achievement_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_achievement_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_update_achievement_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , game_id) - 20usize] ; ["Offset of field: rc_api_update_achievement_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , title) - 24usize] ; ["Offset of field: rc_api_update_achievement_request_t::description"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , description) - 32usize] ; ["Offset of field: rc_api_update_achievement_request_t::badge"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , badge) - 40usize] ; ["Offset of field: rc_api_update_achievement_request_t::trigger"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , trigger) - 48usize] ; ["Offset of field: rc_api_update_achievement_request_t::points"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , points) - 56usize] ; ["Offset of field: rc_api_update_achievement_request_t::category"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , category) - 60usize] ; ["Offset of field: rc_api_update_achievement_request_t::type_"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , type_) - 64usize] ; } ; # [doc = " Response data for an update achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_achievement_response_t { pub achievement_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_achievement_response_t"] [:: core :: mem :: size_of :: < rc_api_update_achievement_response_t > () - 320usize] ; ["Alignment of rc_api_update_achievement_response_t"] [:: core :: mem :: align_of :: < rc_api_update_achievement_response_t > () - 8usize] ; ["Offset of field: rc_api_update_achievement_response_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_response_t , achievement_id) - 0usize] ; ["Offset of field: rc_api_update_achievement_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_update_achievement_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_achievement_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_achievement_response (response : * mut rc_api_update_achievement_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_achievement_server_response (response : * mut rc_api_update_achievement_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_achievement_response (response : * mut rc_api_update_achievement_response_t) ; } # [doc = " API parameters for an update leaderboard request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_leaderboard_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub leaderboard_id : u32 , pub game_id : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub start_trigger : * const :: core :: ffi :: c_char , pub submit_trigger : * const :: core :: ffi :: c_char , pub cancel_trigger : * const :: core :: ffi :: c_char , pub value_definition : * const :: core :: ffi :: c_char , pub format : * const :: core :: ffi :: c_char , pub lower_is_better : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_leaderboard_request_t"] [:: core :: mem :: size_of :: < rc_api_update_leaderboard_request_t > () - 88usize] ; ["Alignment of rc_api_update_leaderboard_request_t"] [:: core :: mem :: align_of :: < rc_api_update_leaderboard_request_t > () - 8usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , leaderboard_id) - 16usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , game_id) - 20usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , title) - 24usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::description"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , description) - 32usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::start_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , start_trigger) - 40usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::submit_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , submit_trigger) - 48usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::cancel_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , cancel_trigger) - 56usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::value_definition"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , value_definition) - 64usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::format"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , format) - 72usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , lower_is_better) - 80usize] ; } ; # [doc = " Response data for an update leaderboard request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_leaderboard_response_t { pub leaderboard_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_leaderboard_response_t"] [:: core :: mem :: size_of :: < rc_api_update_leaderboard_response_t > () - 320usize] ; ["Alignment of rc_api_update_leaderboard_response_t"] [:: core :: mem :: align_of :: < rc_api_update_leaderboard_response_t > () - 8usize] ; ["Offset of field: rc_api_update_leaderboard_response_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_response_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_api_update_leaderboard_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_update_leaderboard_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_leaderboard_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_leaderboard_response (response : * mut rc_api_update_leaderboard_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_leaderboard_server_response (response : * mut rc_api_update_leaderboard_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_leaderboard_response (response : * mut rc_api_update_leaderboard_response_t) ; } # [doc = " API parameters for a fetch badge range request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_badge_range_request_t { pub unused : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_badge_range_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_badge_range_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_badge_range_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_badge_range_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_badge_range_request_t::unused"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_request_t , unused) - 0usize] ; } ; # [doc = " Response data for a fetch badge range request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_badge_range_response_t { pub first_badge_id : u32 , pub next_badge_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_badge_range_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_badge_range_response_t > () - 320usize] ; ["Alignment of rc_api_fetch_badge_range_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_badge_range_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::first_badge_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , first_badge_id) - 0usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::next_badge_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , next_badge_id) - 4usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_fetch_badge_range_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_badge_range_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_badge_range_response (response : * mut rc_api_fetch_badge_range_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_badge_range_server_response (response : * mut rc_api_fetch_badge_range_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_badge_range_response (response : * mut rc_api_fetch_badge_range_response_t) ; } # [doc = " API parameters for an add game hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_add_game_hash_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub hash : * const :: core :: ffi :: c_char , pub hash_description : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_add_game_hash_request_t"] [:: core :: mem :: size_of :: < rc_api_add_game_hash_request_t > () - 48usize] ; ["Alignment of rc_api_add_game_hash_request_t"] [:: core :: mem :: align_of :: < rc_api_add_game_hash_request_t > () - 8usize] ; ["Offset of field: rc_api_add_game_hash_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , username) - 0usize] ; ["Offset of field: rc_api_add_game_hash_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_add_game_hash_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_add_game_hash_request_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , console_id) - 20usize] ; ["Offset of field: rc_api_add_game_hash_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , title) - 24usize] ; ["Offset of field: rc_api_add_game_hash_request_t::hash"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , hash) - 32usize] ; ["Offset of field: rc_api_add_game_hash_request_t::hash_description"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , hash_description) - 40usize] ; } ; # [doc = " Response data for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_add_game_hash_response_t { pub game_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_add_game_hash_response_t"] [:: core :: mem :: size_of :: < rc_api_add_game_hash_response_t > () - 320usize] ; ["Alignment of rc_api_add_game_hash_response_t"] [:: core :: mem :: align_of :: < rc_api_add_game_hash_response_t > () - 8usize] ; ["Offset of field: rc_api_add_game_hash_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_response_t , game_id) - 0usize] ; ["Offset of field: rc_api_add_game_hash_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_add_game_hash_request (request : * mut rc_api_request_t , api_params : * const rc_api_add_game_hash_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_add_game_hash_response (response : * mut rc_api_add_game_hash_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_add_game_hash_server_response (response : * mut rc_api_add_game_hash_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_add_game_hash_response (response : * mut rc_api_add_game_hash_response_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_t { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_menu_item_t { pub label : * const :: core :: ffi :: c_char , pub id : u32 , pub checked : u8 , pub enabled : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_menu_item_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_menu_item_t > () - 16usize] ; ["Alignment of rc_client_raintegration_menu_item_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_menu_item_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::label"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , label) - 0usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::id"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , id) - 8usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::checked"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , checked) - 12usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::enabled"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , enabled) - 13usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_menu_t { pub items : * mut rc_client_raintegration_menu_item_t , pub num_items : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_menu_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_menu_t > () - 16usize] ; ["Alignment of rc_client_raintegration_menu_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_menu_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_menu_t::items"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_t , items) - 0usize] ; ["Offset of field: rc_client_raintegration_menu_t::num_items"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_t , num_items) - 8usize] ; } ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_NONE : _bindgen_ty_10 = 0 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_PUBLISHED : _bindgen_ty_10 = 1 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_LOCAL : _bindgen_ty_10 = 2 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_MODIFIED : _bindgen_ty_10 = 3 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_INSECURE : _bindgen_ty_10 = 4 ; pub type _bindgen_ty_10 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_RAINTEGRATION_EVENT_TYPE_NONE : _bindgen_ty_11 = 0 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_MENUITEM_CHECKED_CHANGED : _bindgen_ty_11 = 1 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_HARDCORE_CHANGED : _bindgen_ty_11 = 2 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_PAUSE : _bindgen_ty_11 = 3 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_MENU_CHANGED : _bindgen_ty_11 = 4 ; pub type _bindgen_ty_11 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_event_t { pub type_ : u32 , pub menu_item : * const rc_client_raintegration_menu_item_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_event_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_event_t > () - 16usize] ; ["Alignment of rc_client_raintegration_event_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_event_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_event_t::type_"] [:: core :: mem :: offset_of ! (rc_client_raintegration_event_t , type_) - 0usize] ; ["Offset of field: rc_client_raintegration_event_t::menu_item"] [:: core :: mem :: offset_of ! (rc_client_raintegration_event_t , menu_item) - 8usize] ; } ; pub type rc_client_raintegration_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (event : * const rc_client_raintegration_event_t , client : * mut rc_client_t) > ; pub type rc_client_raintegration_write_memory_func_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , buffer : * mut u8 , num_bytes : u32 , client : * mut rc_client_t) > ; pub type rc_client_raintegration_get_game_name_func_t = :: core :: option :: Option < unsafe extern "C" fn (buffer : * mut :: core :: ffi :: c_char , buffer_size : u32 , client : * mut rc_client_t) > ; # [doc = " API parameters for a fetch achievement info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_achievement_info_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub first_entry : u32 , pub count : u32 , pub friends_only : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_achievement_info_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_achievement_info_request_t > () - 32usize] ; ["Alignment of rc_api_fetch_achievement_info_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_achievement_info_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::first_entry"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , first_entry) - 20usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::count"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , count) - 24usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::friends_only"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , friends_only) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_achievement_awarded_entry_t { pub username : * const :: core :: ffi :: c_char , pub awarded : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_achievement_awarded_entry_t"] [:: core :: mem :: size_of :: < rc_api_achievement_awarded_entry_t > () - 16usize] ; ["Alignment of rc_api_achievement_awarded_entry_t"] [:: core :: mem :: align_of :: < rc_api_achievement_awarded_entry_t > () - 8usize] ; ["Offset of field: rc_api_achievement_awarded_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_achievement_awarded_entry_t , username) - 0usize] ; ["Offset of field: rc_api_achievement_awarded_entry_t::awarded"] [:: core :: mem :: offset_of ! (rc_api_achievement_awarded_entry_t , awarded) - 8usize] ; } ; # [doc = " Response data for a fetch achievement info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_achievement_info_response_t { pub id : u32 , pub game_id : u32 , pub num_awarded : u32 , pub num_players : u32 , pub recently_awarded : * mut rc_api_achievement_awarded_entry_t , pub num_recently_awarded : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_achievement_info_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_achievement_info_response_t > () - 344usize] ; ["Alignment of rc_api_fetch_achievement_info_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_achievement_info_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , game_id) - 4usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_awarded) - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_players"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_players) - 12usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::recently_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , recently_awarded) - 16usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_recently_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_recently_awarded) - 24usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_fetch_achievement_info_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_achievement_info_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_achievement_info_response (response : * mut rc_api_fetch_achievement_info_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_achievement_info_server_response (response : * mut rc_api_fetch_achievement_info_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_achievement_info_response (response : * mut rc_api_fetch_achievement_info_response_t) ; } # [doc = " API parameters for a fetch leaderboard info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_leaderboard_info_request_t { pub leaderboard_id : u32 , pub count : u32 , pub first_entry : u32 , pub username : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_leaderboard_info_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_leaderboard_info_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_leaderboard_info_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_leaderboard_info_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::count"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , count) - 4usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::first_entry"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , first_entry) - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , username) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_lboard_info_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub index : u32 , pub score : i32 , pub submitted : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_lboard_info_entry_t"] [:: core :: mem :: size_of :: < rc_api_lboard_info_entry_t > () - 32usize] ; ["Alignment of rc_api_lboard_info_entry_t"] [:: core :: mem :: align_of :: < rc_api_lboard_info_entry_t > () - 8usize] ; ["Offset of field: rc_api_lboard_info_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , username) - 0usize] ; ["Offset of field: rc_api_lboard_info_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , rank) - 8usize] ; ["Offset of field: rc_api_lboard_info_entry_t::index"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , index) - 12usize] ; ["Offset of field: rc_api_lboard_info_entry_t::score"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , score) - 16usize] ; ["Offset of field: rc_api_lboard_info_entry_t::submitted"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , submitted) - 24usize] ; } ; # [doc = " Response data for a fetch leaderboard info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_leaderboard_info_response_t { pub id : u32 , pub format : :: core :: ffi :: c_int , pub lower_is_better : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub game_id : u32 , pub author : * const :: core :: ffi :: c_char , pub created : time_t , pub updated : time_t , pub entries : * mut rc_api_lboard_info_entry_t , pub num_entries : u32 , pub total_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_leaderboard_info_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_leaderboard_info_response_t > () - 400usize] ; ["Alignment of rc_api_fetch_leaderboard_info_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_leaderboard_info_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::format"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , format) - 4usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , lower_is_better) - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::title"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , title) - 16usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::description"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , description) - 24usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::definition"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , definition) - 32usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , game_id) - 40usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::author"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , author) - 48usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::created"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , created) - 56usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::updated"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , updated) - 64usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , entries) - 72usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , num_entries) - 80usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::total_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , total_entries) - 84usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , response) - 88usize] ; } ; extern "C" { pub fn rc_api_init_fetch_leaderboard_info_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_leaderboard_info_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_leaderboard_info_response (response : * mut rc_api_fetch_leaderboard_info_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_leaderboard_info_server_response (response : * mut rc_api_fetch_leaderboard_info_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_leaderboard_info_response (response : * mut rc_api_fetch_leaderboard_info_response_t) ; } # [doc = " API parameters for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_games_list_request_t { pub console_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_games_list_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_games_list_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_games_list_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_games_list_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_games_list_request_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_request_t , console_id) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_game_list_entry_t { pub id : u32 , pub name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_game_list_entry_t"] [:: core :: mem :: size_of :: < rc_api_game_list_entry_t > () - 16usize] ; ["Alignment of rc_api_game_list_entry_t"] [:: core :: mem :: align_of :: < rc_api_game_list_entry_t > () - 8usize] ; ["Offset of field: rc_api_game_list_entry_t::id"] [:: core :: mem :: offset_of ! (rc_api_game_list_entry_t , id) - 0usize] ; ["Offset of field: rc_api_game_list_entry_t::name"] [:: core :: mem :: offset_of ! (rc_api_game_list_entry_t , name) - 8usize] ; } ; # [doc = " Response data for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_games_list_response_t { pub entries : * mut rc_api_game_list_entry_t , pub num_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_games_list_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_games_list_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_games_list_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_games_list_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , entries) - 0usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , num_entries) - 8usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_games_list_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_games_list_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_games_list_response (response : * mut rc_api_fetch_games_list_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_games_list_server_response (response : * mut rc_api_fetch_games_list_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_games_list_response (response : * mut rc_api_fetch_games_list_response_t) ; } # [doc = " API parameters for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_titles_request_t { pub game_ids : * const u32 , pub num_game_ids : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_titles_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_titles_request_t > () - 16usize] ; ["Alignment of rc_api_fetch_game_titles_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_titles_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_request_t::game_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_request_t , game_ids) - 0usize] ; ["Offset of field: rc_api_fetch_game_titles_request_t::num_game_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_request_t , num_game_ids) - 8usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_game_title_entry_t { pub id : u32 , pub title : * const :: core :: ffi :: c_char , pub image_name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_game_title_entry_t"] [:: core :: mem :: size_of :: < rc_api_game_title_entry_t > () - 24usize] ; ["Alignment of rc_api_game_title_entry_t"] [:: core :: mem :: align_of :: < rc_api_game_title_entry_t > () - 8usize] ; ["Offset of field: rc_api_game_title_entry_t::id"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , id) - 0usize] ; ["Offset of field: rc_api_game_title_entry_t::title"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , title) - 8usize] ; ["Offset of field: rc_api_game_title_entry_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , image_name) - 16usize] ; } ; # [doc = " Response data for a fetch games title request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_titles_response_t { pub entries : * mut rc_api_game_title_entry_t , pub num_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_titles_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_titles_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_game_titles_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_titles_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , entries) - 0usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , num_entries) - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_game_titles_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_game_titles_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_titles_server_response (response : * mut rc_api_fetch_game_titles_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_game_titles_response (response : * mut rc_api_fetch_game_titles_response_t) ; } pub type __gnuc_va_list = __builtin_va_list ; # [repr (C)] # [derive (Copy , Clone)] pub struct __mbstate_t { pub __count : :: core :: ffi :: c_int , pub __value : __mbstate_t__bindgen_ty_1 , } # [repr (C)] # [derive (Copy , Clone)] pub union __mbstate_t__bindgen_ty_1 { pub __wch : :: core :: ffi :: c_uint , pub __wchb : [:: core :: ffi :: c_char ; 4usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __mbstate_t__bindgen_ty_1"] [:: core :: mem :: size_of :: < __mbstate_t__bindgen_ty_1 > () - 4usize] ; ["Alignment of __mbstate_t__bindgen_ty_1"] [:: core :: mem :: align_of :: < __mbstate_t__bindgen_ty_1 > () - 4usize] ; ["Offset of field: __mbstate_t__bindgen_ty_1::__wch"] [:: core :: mem :: offset_of ! (__mbstate_t__bindgen_ty_1 , __wch) - 0usize] ; ["Offset of field: __mbstate_t__bindgen_ty_1::__wchb"] [:: core :: mem :: offset_of ! (__mbstate_t__bindgen_ty_1 , __wchb) - 0usize] ; } ; impl :: core :: fmt :: Debug for __mbstate_t__bindgen_ty_1 { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "__mbstate_t__bindgen_ty_1 {{ union }}") } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __mbstate_t"] [:: core :: mem :: size_of :: < __mbstate_t > () - 8usize] ; ["Alignment of __mbstate_t"] [:: core :: mem :: align_of :: < __mbstate_t > () - 4usize] ; ["Offset of field: __mbstate_t::__count"] [:: core :: mem :: offset_of ! (__mbstate_t , __count) - 0usize] ; ["Offset of field: __mbstate_t::__value"] [:: core :: mem :: offset_of ! (__mbstate_t , __value) - 4usize] ; } ; impl :: core :: fmt :: Debug for __mbstate_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "__mbstate_t {{ __count: {:?}, __value: {:?} }}" , self . __count , self . __value) } } # [repr (C)] # [derive (Copy , Clone)] pub struct _G_fpos_t { pub __pos : __off_t , pub __state : __mbstate_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _G_fpos_t"] [:: core :: mem :: size_of :: < _G_fpos_t > () - 16usize] ; ["Alignment of _G_fpos_t"] [:: core :: mem :: align_of :: < _G_fpos_t > () - 8usize] ; ["Offset of field: _G_fpos_t::__pos"] [:: core :: mem :: offset_of ! (_G_fpos_t , __pos) - 0usize] ; ["Offset of field: _G_fpos_t::__state"] [:: core :: mem :: offset_of ! (_G_fpos_t , __state) - 8usize] ; } ; impl :: core :: fmt :: Debug for _G_fpos_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "_G_fpos_t {{ __pos: {:?}, __state: {:?} }}" , self . __pos , self . __state) } } pub type __fpos_t = _G_fpos_t ; # [repr (C)] # [derive (Copy , Clone)] pub struct _G_fpos64_t { pub __pos : __off64_t , pub __state : __mbstate_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _G_fpos64_t"] [:: core :: mem :: size_of :: < _G_fpos64_t > () - 16usize] ; ["Alignment of _G_fpos64_t"] [:: core :: mem :: align_of :: < _G_fpos64_t > () - 8usize] ; ["Offset of field: _G_fpos64_t::__pos"] [:: core :: mem :: offset_of ! (_G_fpos64_t , __pos) - 0usize] ; ["Offset of field: _G_fpos64_t::__state"] [:: core :: mem :: offset_of ! (_G_fpos64_t , __state) - 8usize] ; } ; impl :: core :: fmt :: Debug for _G_fpos64_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "_G_fpos64_t {{ __pos: {:?}, __state: {:?} }}" , self . __pos , self . __state) } } pub type __fpos64_t = _G_fpos64_t ; pub type __FILE = _IO_FILE ; pub type FILE = _IO_FILE ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_marker { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_codecvt { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_wide_data { _unused : [u8 ; 0] , } pub type _IO_lock_t = :: core :: ffi :: c_void ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_FILE { pub _flags : :: core :: ffi :: c_int , pub _IO_read_ptr : * mut :: core :: ffi :: c_char , pub _IO_read_end : * mut :: core :: ffi :: c_char , pub _IO_read_base : * mut :: core :: ffi :: c_char , pub _IO_write_base : * mut :: core :: ffi :: c_char , pub _IO_write_ptr : * mut :: core :: ffi :: c_char , pub _IO_write_end : * mut :: core :: ffi :: c_char , pub _IO_buf_base : * mut :: core :: ffi :: c_char , pub _IO_buf_end : * mut :: core :: ffi :: c_char , pub _IO_save_base : * mut :: core :: ffi :: c_char , pub _IO_backup_base : * mut :: core :: ffi :: c_char , pub _IO_save_end : * mut :: core :: ffi :: c_char , pub _markers : * mut _IO_marker , pub _chain : * mut _IO_FILE , pub _fileno : :: core :: ffi :: c_int , pub _bitfield_align_1 : [u32 ; 0] , pub _bitfield_1 : __BindgenBitfieldUnit < [u8 ; 3usize] > , pub _short_backupbuf : [:: core :: ffi :: c_char ; 1usize] , pub _old_offset : __off_t , pub _cur_column : :: core :: ffi :: c_ushort , pub _vtable_offset : :: core :: ffi :: c_schar , pub _shortbuf : [:: core :: ffi :: c_char ; 1usize] , pub _lock : * mut _IO_lock_t , pub _offset : __off64_t , pub _codecvt : * mut _IO_codecvt , pub _wide_data : * mut _IO_wide_data , pub _freeres_list : * mut _IO_FILE , pub _freeres_buf : * mut :: core :: ffi :: c_void , pub _prevchain : * mut * mut _IO_FILE , pub _mode : :: core :: ffi :: c_int , pub _unused3 : :: core :: ffi :: c_int , pub _total_written : __uint64_t , pub _unused2 : [:: core :: ffi :: c_char ; 8usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _IO_FILE"] [:: core :: mem :: size_of :: < _IO_FILE > () - 216usize] ; ["Alignment of _IO_FILE"] [:: core :: mem :: align_of :: < _IO_FILE > () - 8usize] ; ["Offset of field: _IO_FILE::_flags"] [:: core :: mem :: offset_of ! (_IO_FILE , _flags) - 0usize] ; ["Offset of field: _IO_FILE::_IO_read_ptr"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_ptr) - 8usize] ; ["Offset of field: _IO_FILE::_IO_read_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_end) - 16usize] ; ["Offset of field: _IO_FILE::_IO_read_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_base) - 24usize] ; ["Offset of field: _IO_FILE::_IO_write_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_base) - 32usize] ; ["Offset of field: _IO_FILE::_IO_write_ptr"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_ptr) - 40usize] ; ["Offset of field: _IO_FILE::_IO_write_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_end) - 48usize] ; ["Offset of field: _IO_FILE::_IO_buf_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_buf_base) - 56usize] ; ["Offset of field: _IO_FILE::_IO_buf_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_buf_end) - 64usize] ; ["Offset of field: _IO_FILE::_IO_save_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_save_base) - 72usize] ; ["Offset of field: _IO_FILE::_IO_backup_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_backup_base) - 80usize] ; ["Offset of field: _IO_FILE::_IO_save_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_save_end) - 88usize] ; ["Offset of field: _IO_FILE::_markers"] [:: core :: mem :: offset_of ! (_IO_FILE , _markers) - 96usize] ; ["Offset of field: _IO_FILE::_chain"] [:: core :: mem :: offset_of ! (_IO_FILE , _chain) - 104usize] ; ["Offset of field: _IO_FILE::_fileno"] [:: core :: mem :: offset_of ! (_IO_FILE , _fileno) - 112usize] ; ["Offset of field: _IO_FILE::_short_backupbuf"] [:: core :: mem :: offset_of ! (_IO_FILE , _short_backupbuf) - 119usize] ; ["Offset of field: _IO_FILE::_old_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _old_offset) - 120usize] ; ["Offset of field: _IO_FILE::_cur_column"] [:: core :: mem :: offset_of ! (_IO_FILE , _cur_column) - 128usize] ; ["Offset of field: _IO_FILE::_vtable_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _vtable_offset) - 130usize] ; ["Offset of field: _IO_FILE::_shortbuf"] [:: core :: mem :: offset_of ! (_IO_FILE , _shortbuf) - 131usize] ; ["Offset of field: _IO_FILE::_lock"] [:: core :: mem :: offset_of ! (_IO_FILE , _lock) - 136usize] ; ["Offset of field: _IO_FILE::_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _offset) - 144usize] ; ["Offset of field: _IO_FILE::_codecvt"] [:: core :: mem :: offset_of ! (_IO_FILE , _codecvt) - 152usize] ; ["Offset of field: _IO_FILE::_wide_data"] [:: core :: mem :: offset_of ! (_IO_FILE , _wide_data) - 160usize] ; ["Offset of field: _IO_FILE::_freeres_list"] [:: core :: mem :: offset_of ! (_IO_FILE , _freeres_list) - 168usize] ; ["Offset of field: _IO_FILE::_freeres_buf"] [:: core :: mem :: offset_of ! (_IO_FILE , _freeres_buf) - 176usize] ; ["Offset of field: _IO_FILE::_prevchain"] [:: core :: mem :: offset_of ! (_IO_FILE , _prevchain) - 184usize] ; ["Offset of field: _IO_FILE::_mode"] [:: core :: mem :: offset_of ! (_IO_FILE , _mode) - 192usize] ; ["Offset of field: _IO_FILE::_unused3"] [:: core :: mem :: offset_of ! (_IO_FILE , _unused3) - 196usize] ; ["Offset of field: _IO_FILE::_total_written"] [:: core :: mem :: offset_of ! (_IO_FILE , _total_written) - 200usize] ; ["Offset of field: _IO_FILE::_unused2"] [:: core :: mem :: offset_of ! (_IO_FILE , _unused2) - 208usize] ; } ; impl _IO_FILE { # [inline] pub fn _flags2 (& self) -> :: core :: ffi :: c_int { unsafe { :: core :: mem :: transmute (self . _bitfield_1 . get (0usize , 24u8) as u32) } } # [inline] pub fn set__flags2 (& mut self , val : :: core :: ffi :: c_int) { unsafe { let val : u32 = :: core :: mem :: transmute (val) ; self . _bitfield_1 . set (0usize , 24u8 , val as u64) } } # [inline] pub fn new_bitfield_1 (_flags2 : :: core :: ffi :: c_int) -> __BindgenBitfieldUnit < [u8 ; 3usize] > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [u8 ; 3usize] > = Default :: default () ; __bindgen_bitfield_unit . set (0usize , 24u8 , { let _flags2 : u32 = unsafe { :: core :: mem :: transmute (_flags2) } ; _flags2 as u64 }) ; __bindgen_bitfield_unit } } pub type cookie_read_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __buf : * mut :: core :: ffi :: c_char , __nbytes : usize) -> __ssize_t > ; pub type cookie_write_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __buf : * const :: core :: ffi :: c_char , __nbytes : usize) -> __ssize_t > ; pub type cookie_seek_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __pos : * mut __off64_t , __w : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int > ; pub type cookie_close_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void) -> :: core :: ffi :: 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 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _IO_cookie_io_functions_t"] [:: core :: mem :: size_of :: < _IO_cookie_io_functions_t > () - 32usize] ; ["Alignment of _IO_cookie_io_functions_t"] [:: core :: mem :: align_of :: < _IO_cookie_io_functions_t > () - 8usize] ; ["Offset of field: _IO_cookie_io_functions_t::read"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , read) - 0usize] ; ["Offset of field: _IO_cookie_io_functions_t::write"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , write) - 8usize] ; ["Offset of field: _IO_cookie_io_functions_t::seek"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , seek) - 16usize] ; ["Offset of field: _IO_cookie_io_functions_t::close"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , close) - 24usize] ; } ; 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" { pub static mut stdin : * mut FILE ; } extern "C" { pub static mut stdout : * mut FILE ; } extern "C" { pub static mut stderr : * mut FILE ; } extern "C" { pub fn remove (__filename : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rename (__old : * const :: core :: ffi :: c_char , __new : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn renameat (__oldfd : :: core :: ffi :: c_int , __old : * const :: core :: ffi :: c_char , __newfd : :: core :: ffi :: c_int , __new : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fclose (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn tmpfile () -> * mut FILE ; } extern "C" { pub fn tmpnam (arg1 : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn tmpnam_r (__s : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn tempnam (__dir : * const :: core :: ffi :: c_char , __pfx : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn fflush (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fflush_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fopen (__filename : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn freopen (__filename : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char , __stream : * mut FILE) -> * mut FILE ; } extern "C" { pub fn fdopen (__fd : :: core :: ffi :: c_int , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn fopencookie (__magic_cookie : * mut :: core :: ffi :: c_void , __modes : * const :: core :: ffi :: c_char , __io_funcs : cookie_io_functions_t) -> * mut FILE ; } extern "C" { pub fn fmemopen (__s : * mut :: core :: ffi :: c_void , __len : usize , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn open_memstream (__bufloc : * mut * mut :: core :: ffi :: c_char , __sizeloc : * mut usize) -> * mut FILE ; } extern "C" { pub fn setbuf (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char) ; } extern "C" { pub fn setvbuf (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char , __modes : :: core :: ffi :: c_int , __n : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn setbuffer (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char , __size : usize) ; } extern "C" { pub fn setlinebuf (__stream : * mut FILE) ; } extern "C" { pub fn fprintf (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn printf (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn sprintf (__s : * mut :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vfprintf (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vprintf (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsprintf (__s : * mut :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn snprintf (__s : * mut :: core :: ffi :: c_char , __maxlen : :: core :: ffi :: c_ulong , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsnprintf (__s : * mut :: core :: ffi :: c_char , __maxlen : :: core :: ffi :: c_ulong , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vasprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __f : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn __asprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn asprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vdprintf (__fd : :: core :: ffi :: c_int , __fmt : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn dprintf (__fd : :: core :: ffi :: c_int , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fscanf (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn scanf (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn sscanf (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } pub type __cfloat128 = __BindgenComplex < u128 > ; pub type _Float128 = u128 ; pub type _Float32 = f32 ; pub type _Float64 = f64 ; pub type _Float32x = f64 ; pub type _Float64x = u128 ; extern "C" { # [link_name = "\u{1}__isoc99_fscanf"] pub fn fscanf1 (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_scanf"] pub fn scanf1 (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_sscanf"] pub fn sscanf1 (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vfscanf (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vscanf (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsscanf (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vfscanf"] pub fn vfscanf1 (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vscanf"] pub fn vscanf1 (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vsscanf"] pub fn vsscanf1 (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgetc (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getc (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getchar () -> :: core :: ffi :: c_int ; } extern "C" { pub fn getc_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getchar_unlocked () -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgetc_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fputc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putchar (__c : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fputc_unlocked (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putc_unlocked (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putchar_unlocked (__c : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getw (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putw (__w : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgets (__s : * mut :: core :: ffi :: c_char , __n : :: core :: ffi :: c_int , __stream : * mut FILE) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn __getdelim (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __delimiter : :: core :: ffi :: c_int , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn getdelim (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __delimiter : :: core :: ffi :: c_int , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn getline (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn fputs (__s : * const :: core :: ffi :: c_char , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn puts (__s : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ungetc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fread (__ptr : * mut :: core :: ffi :: c_void , __size : :: core :: ffi :: c_ulong , __n : :: core :: ffi :: c_ulong , __stream : * mut FILE) -> :: core :: ffi :: c_ulong ; } extern "C" { pub fn fwrite (__ptr : * const :: core :: ffi :: c_void , __size : :: core :: ffi :: c_ulong , __n : :: core :: ffi :: c_ulong , __s : * mut FILE) -> :: core :: ffi :: c_ulong ; } extern "C" { pub fn fread_unlocked (__ptr : * mut :: core :: ffi :: c_void , __size : usize , __n : usize , __stream : * mut FILE) -> usize ; } extern "C" { pub fn fwrite_unlocked (__ptr : * const :: core :: ffi :: c_void , __size : usize , __n : usize , __stream : * mut FILE) -> usize ; } extern "C" { pub fn fseek (__stream : * mut FILE , __off : :: core :: ffi :: c_long , __whence : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ftell (__stream : * mut FILE) -> :: core :: ffi :: c_long ; } extern "C" { pub fn rewind (__stream : * mut FILE) ; } extern "C" { pub fn fseeko (__stream : * mut FILE , __off : __off_t , __whence : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ftello (__stream : * mut FILE) -> __off_t ; } extern "C" { pub fn fgetpos (__stream : * mut FILE , __pos : * mut fpos_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fsetpos (__stream : * mut FILE , __pos : * const fpos_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clearerr (__stream : * mut FILE) ; } extern "C" { pub fn feof (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ferror (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clearerr_unlocked (__stream : * mut FILE) ; } extern "C" { pub fn feof_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ferror_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn perror (__s : * const :: core :: ffi :: c_char) ; } extern "C" { pub fn fileno (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fileno_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn pclose (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn popen (__command : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn ctermid (__s : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn flockfile (__stream : * mut FILE) ; } extern "C" { pub fn ftrylockfile (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn funlockfile (__stream : * mut FILE) ; } extern "C" { pub fn __uflow (arg1 : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn __overflow (arg1 : * mut FILE , arg2 : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } pub const RC_CONSOLE_UNKNOWN : _bindgen_ty_12 = 0 ; pub const RC_CONSOLE_MEGA_DRIVE : _bindgen_ty_12 = 1 ; pub const RC_CONSOLE_NINTENDO_64 : _bindgen_ty_12 = 2 ; pub const RC_CONSOLE_SUPER_NINTENDO : _bindgen_ty_12 = 3 ; pub const RC_CONSOLE_GAMEBOY : _bindgen_ty_12 = 4 ; pub const RC_CONSOLE_GAMEBOY_ADVANCE : _bindgen_ty_12 = 5 ; pub const RC_CONSOLE_GAMEBOY_COLOR : _bindgen_ty_12 = 6 ; pub const RC_CONSOLE_NINTENDO : _bindgen_ty_12 = 7 ; pub const RC_CONSOLE_PC_ENGINE : _bindgen_ty_12 = 8 ; pub const RC_CONSOLE_SEGA_CD : _bindgen_ty_12 = 9 ; pub const RC_CONSOLE_SEGA_32X : _bindgen_ty_12 = 10 ; pub const RC_CONSOLE_MASTER_SYSTEM : _bindgen_ty_12 = 11 ; pub const RC_CONSOLE_PLAYSTATION : _bindgen_ty_12 = 12 ; pub const RC_CONSOLE_ATARI_LYNX : _bindgen_ty_12 = 13 ; pub const RC_CONSOLE_NEOGEO_POCKET : _bindgen_ty_12 = 14 ; pub const RC_CONSOLE_GAME_GEAR : _bindgen_ty_12 = 15 ; pub const RC_CONSOLE_GAMECUBE : _bindgen_ty_12 = 16 ; pub const RC_CONSOLE_ATARI_JAGUAR : _bindgen_ty_12 = 17 ; pub const RC_CONSOLE_NINTENDO_DS : _bindgen_ty_12 = 18 ; pub const RC_CONSOLE_WII : _bindgen_ty_12 = 19 ; pub const RC_CONSOLE_WII_U : _bindgen_ty_12 = 20 ; pub const RC_CONSOLE_PLAYSTATION_2 : _bindgen_ty_12 = 21 ; pub const RC_CONSOLE_XBOX : _bindgen_ty_12 = 22 ; pub const RC_CONSOLE_MAGNAVOX_ODYSSEY2 : _bindgen_ty_12 = 23 ; pub const RC_CONSOLE_POKEMON_MINI : _bindgen_ty_12 = 24 ; pub const RC_CONSOLE_ATARI_2600 : _bindgen_ty_12 = 25 ; pub const RC_CONSOLE_MS_DOS : _bindgen_ty_12 = 26 ; pub const RC_CONSOLE_ARCADE : _bindgen_ty_12 = 27 ; pub const RC_CONSOLE_VIRTUAL_BOY : _bindgen_ty_12 = 28 ; pub const RC_CONSOLE_MSX : _bindgen_ty_12 = 29 ; pub const RC_CONSOLE_COMMODORE_64 : _bindgen_ty_12 = 30 ; pub const RC_CONSOLE_ZX81 : _bindgen_ty_12 = 31 ; pub const RC_CONSOLE_ORIC : _bindgen_ty_12 = 32 ; pub const RC_CONSOLE_SG1000 : _bindgen_ty_12 = 33 ; pub const RC_CONSOLE_VIC20 : _bindgen_ty_12 = 34 ; pub const RC_CONSOLE_AMIGA : _bindgen_ty_12 = 35 ; pub const RC_CONSOLE_ATARI_ST : _bindgen_ty_12 = 36 ; pub const RC_CONSOLE_AMSTRAD_PC : _bindgen_ty_12 = 37 ; pub const RC_CONSOLE_APPLE_II : _bindgen_ty_12 = 38 ; pub const RC_CONSOLE_SATURN : _bindgen_ty_12 = 39 ; pub const RC_CONSOLE_DREAMCAST : _bindgen_ty_12 = 40 ; pub const RC_CONSOLE_PSP : _bindgen_ty_12 = 41 ; pub const RC_CONSOLE_CDI : _bindgen_ty_12 = 42 ; pub const RC_CONSOLE_3DO : _bindgen_ty_12 = 43 ; pub const RC_CONSOLE_COLECOVISION : _bindgen_ty_12 = 44 ; pub const RC_CONSOLE_INTELLIVISION : _bindgen_ty_12 = 45 ; pub const RC_CONSOLE_VECTREX : _bindgen_ty_12 = 46 ; pub const RC_CONSOLE_PC8800 : _bindgen_ty_12 = 47 ; pub const RC_CONSOLE_PC9800 : _bindgen_ty_12 = 48 ; pub const RC_CONSOLE_PCFX : _bindgen_ty_12 = 49 ; pub const RC_CONSOLE_ATARI_5200 : _bindgen_ty_12 = 50 ; pub const RC_CONSOLE_ATARI_7800 : _bindgen_ty_12 = 51 ; pub const RC_CONSOLE_X68K : _bindgen_ty_12 = 52 ; pub const RC_CONSOLE_WONDERSWAN : _bindgen_ty_12 = 53 ; pub const RC_CONSOLE_CASSETTEVISION : _bindgen_ty_12 = 54 ; pub const RC_CONSOLE_SUPER_CASSETTEVISION : _bindgen_ty_12 = 55 ; pub const RC_CONSOLE_NEO_GEO_CD : _bindgen_ty_12 = 56 ; pub const RC_CONSOLE_FAIRCHILD_CHANNEL_F : _bindgen_ty_12 = 57 ; pub const RC_CONSOLE_FM_TOWNS : _bindgen_ty_12 = 58 ; pub const RC_CONSOLE_ZX_SPECTRUM : _bindgen_ty_12 = 59 ; pub const RC_CONSOLE_GAME_AND_WATCH : _bindgen_ty_12 = 60 ; pub const RC_CONSOLE_NOKIA_NGAGE : _bindgen_ty_12 = 61 ; pub const RC_CONSOLE_NINTENDO_3DS : _bindgen_ty_12 = 62 ; pub const RC_CONSOLE_SUPERVISION : _bindgen_ty_12 = 63 ; pub const RC_CONSOLE_SHARPX1 : _bindgen_ty_12 = 64 ; pub const RC_CONSOLE_TIC80 : _bindgen_ty_12 = 65 ; pub const RC_CONSOLE_THOMSONTO8 : _bindgen_ty_12 = 66 ; pub const RC_CONSOLE_PC6000 : _bindgen_ty_12 = 67 ; pub const RC_CONSOLE_PICO : _bindgen_ty_12 = 68 ; pub const RC_CONSOLE_MEGADUCK : _bindgen_ty_12 = 69 ; pub const RC_CONSOLE_ZEEBO : _bindgen_ty_12 = 70 ; pub const RC_CONSOLE_ARDUBOY : _bindgen_ty_12 = 71 ; pub const RC_CONSOLE_WASM4 : _bindgen_ty_12 = 72 ; pub const RC_CONSOLE_ARCADIA_2001 : _bindgen_ty_12 = 73 ; pub const RC_CONSOLE_INTERTON_VC_4000 : _bindgen_ty_12 = 74 ; pub const RC_CONSOLE_ELEKTOR_TV_GAMES_COMPUTER : _bindgen_ty_12 = 75 ; pub const RC_CONSOLE_PC_ENGINE_CD : _bindgen_ty_12 = 76 ; pub const RC_CONSOLE_ATARI_JAGUAR_CD : _bindgen_ty_12 = 77 ; pub const RC_CONSOLE_NINTENDO_DSI : _bindgen_ty_12 = 78 ; pub const RC_CONSOLE_TI83 : _bindgen_ty_12 = 79 ; pub const RC_CONSOLE_UZEBOX : _bindgen_ty_12 = 80 ; pub const RC_CONSOLE_HUBS : _bindgen_ty_12 = 100 ; pub const RC_CONSOLE_EVENTS : _bindgen_ty_12 = 101 ; pub const RC_CONSOLE_STANDALONE : _bindgen_ty_12 = 102 ; # [doc = "\\\n| Console identifiers                                                         |\n\\"] pub type _bindgen_ty_12 = :: core :: ffi :: c_uint ; extern "C" { pub fn rc_console_name (console_id : u32) -> * const :: core :: ffi :: c_char ; } pub const RC_MEMORY_TYPE_SYSTEM_RAM : _bindgen_ty_13 = 0 ; pub const RC_MEMORY_TYPE_SAVE_RAM : _bindgen_ty_13 = 1 ; pub const RC_MEMORY_TYPE_VIDEO_RAM : _bindgen_ty_13 = 2 ; pub const RC_MEMORY_TYPE_READONLY : _bindgen_ty_13 = 3 ; pub const RC_MEMORY_TYPE_HARDWARE_CONTROLLER : _bindgen_ty_13 = 4 ; pub const RC_MEMORY_TYPE_VIRTUAL_RAM : _bindgen_ty_13 = 5 ; pub const RC_MEMORY_TYPE_UNUSED : _bindgen_ty_13 = 6 ; # [doc = "\\\n| Memory mapping                                                              |\n\\"] pub type _bindgen_ty_13 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memory_region_t { pub start_address : u32 , pub end_address : u32 , pub real_address : u32 , pub type_ : u8 , pub description : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memory_region_t"] [:: core :: mem :: size_of :: < rc_memory_region_t > () - 24usize] ; ["Alignment of rc_memory_region_t"] [:: core :: mem :: align_of :: < rc_memory_region_t > () - 8usize] ; ["Offset of field: rc_memory_region_t::start_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , start_address) - 0usize] ; ["Offset of field: rc_memory_region_t::end_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , end_address) - 4usize] ; ["Offset of field: rc_memory_region_t::real_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , real_address) - 8usize] ; ["Offset of field: rc_memory_region_t::type_"] [:: core :: mem :: offset_of ! (rc_memory_region_t , type_) - 12usize] ; ["Offset of field: rc_memory_region_t::description"] [:: core :: mem :: offset_of ! (rc_memory_region_t , description) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memory_regions_t { pub region : * const rc_memory_region_t , pub num_regions : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memory_regions_t"] [:: core :: mem :: size_of :: < rc_memory_regions_t > () - 16usize] ; ["Alignment of rc_memory_regions_t"] [:: core :: mem :: align_of :: < rc_memory_regions_t > () - 8usize] ; ["Offset of field: rc_memory_regions_t::region"] [:: core :: mem :: offset_of ! (rc_memory_regions_t , region) - 0usize] ; ["Offset of field: rc_memory_regions_t::num_regions"] [:: core :: mem :: offset_of ! (rc_memory_regions_t , num_regions) - 8usize] ; } ; extern "C" { pub fn rc_console_memory_regions (console_id : u32) -> * const rc_memory_regions_t ; } extern "C" { pub fn rc_hash_generate_from_buffer (hash : * mut :: core :: ffi :: c_char , console_id : u32 , buffer : * const u8 , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_hash_generate_from_file (hash : * mut :: core :: ffi :: c_char , console_id : u32 , path : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_iterator { pub buffer : * const u8 , pub buffer_size : usize , pub consoles : [u8 ; 12usize] , pub index : :: core :: ffi :: c_int , pub path : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_iterator"] [:: core :: mem :: size_of :: < rc_hash_iterator > () - 40usize] ; ["Alignment of rc_hash_iterator"] [:: core :: mem :: align_of :: < rc_hash_iterator > () - 8usize] ; ["Offset of field: rc_hash_iterator::buffer"] [:: core :: mem :: offset_of ! (rc_hash_iterator , buffer) - 0usize] ; ["Offset of field: rc_hash_iterator::buffer_size"] [:: core :: mem :: offset_of ! (rc_hash_iterator , buffer_size) - 8usize] ; ["Offset of field: rc_hash_iterator::consoles"] [:: core :: mem :: offset_of ! (rc_hash_iterator , consoles) - 16usize] ; ["Offset of field: rc_hash_iterator::index"] [:: core :: mem :: offset_of ! (rc_hash_iterator , index) - 28usize] ; ["Offset of field: rc_hash_iterator::path"] [:: core :: mem :: offset_of ! (rc_hash_iterator , path) - 32usize] ; } ; pub type rc_hash_iterator_t = rc_hash_iterator ; extern "C" { pub fn rc_hash_initialize_iterator (iterator : * mut rc_hash_iterator , path : * const :: core :: ffi :: c_char , buffer : * const u8 , buffer_size : usize) ; } extern "C" { pub fn rc_hash_destroy_iterator (iterator : * mut rc_hash_iterator) ; } extern "C" { pub fn rc_hash_iterate (hash : * mut :: core :: ffi :: c_char , iterator : * mut rc_hash_iterator) -> :: core :: ffi :: c_int ; } pub type rc_hash_message_callback = :: core :: option :: Option < unsafe extern "C" fn (arg1 : * const :: core :: ffi :: c_char) > ; extern "C" { pub fn rc_hash_init_error_message_callback (callback : rc_hash_message_callback) ; } extern "C" { pub fn rc_hash_init_verbose_message_callback (callback : rc_hash_message_callback) ; } pub type rc_hash_filereader_open_file_handler = :: core :: option :: Option < unsafe extern "C" fn (path_utf8 : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_void > ; pub type rc_hash_filereader_seek_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void , offset : i64 , origin : :: core :: ffi :: c_int) > ; pub type rc_hash_filereader_tell_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void) -> i64 > ; pub type rc_hash_filereader_read_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void , buffer : * mut :: core :: ffi :: c_void , requested_bytes : usize) -> usize > ; pub type rc_hash_filereader_close_file_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void) > ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_filereader { pub open : rc_hash_filereader_open_file_handler , pub seek : rc_hash_filereader_seek_handler , pub tell : rc_hash_filereader_tell_handler , pub read : rc_hash_filereader_read_handler , pub close : rc_hash_filereader_close_file_handler , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_filereader"] [:: core :: mem :: size_of :: < rc_hash_filereader > () - 40usize] ; ["Alignment of rc_hash_filereader"] [:: core :: mem :: align_of :: < rc_hash_filereader > () - 8usize] ; ["Offset of field: rc_hash_filereader::open"] [:: core :: mem :: offset_of ! (rc_hash_filereader , open) - 0usize] ; ["Offset of field: rc_hash_filereader::seek"] [:: core :: mem :: offset_of ! (rc_hash_filereader , seek) - 8usize] ; ["Offset of field: rc_hash_filereader::tell"] [:: core :: mem :: offset_of ! (rc_hash_filereader , tell) - 16usize] ; ["Offset of field: rc_hash_filereader::read"] [:: core :: mem :: offset_of ! (rc_hash_filereader , read) - 24usize] ; ["Offset of field: rc_hash_filereader::close"] [:: core :: mem :: offset_of ! (rc_hash_filereader , close) - 32usize] ; } ; extern "C" { pub fn rc_hash_init_custom_filereader (reader : * mut rc_hash_filereader) ; } pub type rc_hash_cdreader_open_track_handler = :: core :: option :: Option < unsafe extern "C" fn (path : * const :: core :: ffi :: c_char , track : u32) -> * mut :: core :: ffi :: c_void > ; pub type rc_hash_cdreader_read_sector_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void , sector : u32 , buffer : * mut :: core :: ffi :: c_void , requested_bytes : usize) -> usize > ; pub type rc_hash_cdreader_close_track_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void) > ; pub type rc_hash_cdreader_first_track_sector_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void) -> u32 > ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_cdreader { pub open_track : rc_hash_cdreader_open_track_handler , pub read_sector : rc_hash_cdreader_read_sector_handler , pub close_track : rc_hash_cdreader_close_track_handler , pub first_track_sector : rc_hash_cdreader_first_track_sector_handler , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_cdreader"] [:: core :: mem :: size_of :: < rc_hash_cdreader > () - 32usize] ; ["Alignment of rc_hash_cdreader"] [:: core :: mem :: align_of :: < rc_hash_cdreader > () - 8usize] ; ["Offset of field: rc_hash_cdreader::open_track"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , open_track) - 0usize] ; ["Offset of field: rc_hash_cdreader::read_sector"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , read_sector) - 8usize] ; ["Offset of field: rc_hash_cdreader::close_track"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , close_track) - 16usize] ; ["Offset of field: rc_hash_cdreader::first_track_sector"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , first_track_sector) - 24usize] ; } ; extern "C" { pub fn rc_hash_get_default_cdreader (cdreader : * mut rc_hash_cdreader) ; } extern "C" { pub fn rc_hash_init_default_cdreader () ; } extern "C" { pub fn rc_hash_init_custom_cdreader (reader : * mut rc_hash_cdreader) ; } pub type rc_hash_3ds_get_cia_normal_key_func = :: core :: option :: Option < unsafe extern "C" fn (common_key_index : u8 , out_normal_key : * mut u8) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_hash_init_3ds_get_cia_normal_key_func (func : rc_hash_3ds_get_cia_normal_key_func) ; } pub type rc_hash_3ds_get_ncch_normal_keys_func = :: core :: option :: Option < unsafe extern "C" fn (primary_key_y : * mut u8 , secondary_key_x_slot : u8 , optional_program_id : * mut u8 , out_primary_key : * mut u8 , out_secondary_key : * mut u8) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_hash_init_3ds_get_ncch_normal_keys_func (func : rc_hash_3ds_get_ncch_normal_keys_func) ; } # [doc = " API parameters for a fetch image request.\n NOTE: fetch image server response is the raw image data. There is no rc_api_process_fetch_image_response function."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_image_request_t { pub image_name : * const :: core :: ffi :: c_char , pub image_type : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_image_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_image_request_t > () - 16usize] ; ["Alignment of rc_api_fetch_image_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_image_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_image_request_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_fetch_image_request_t , image_name) - 0usize] ; ["Offset of field: rc_api_fetch_image_request_t::image_type"] [:: core :: mem :: offset_of ! (rc_api_fetch_image_request_t , image_type) - 8usize] ; } ; extern "C" { pub fn rc_api_init_fetch_image_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_image_request_t) -> :: core :: ffi :: c_int ; } # [doc = " API parameters for a resolve hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_resolve_hash_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_hash : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_resolve_hash_request_t"] [:: core :: mem :: size_of :: < rc_api_resolve_hash_request_t > () - 24usize] ; ["Alignment of rc_api_resolve_hash_request_t"] [:: core :: mem :: align_of :: < rc_api_resolve_hash_request_t > () - 8usize] ; ["Offset of field: rc_api_resolve_hash_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , username) - 0usize] ; ["Offset of field: rc_api_resolve_hash_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_resolve_hash_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , game_hash) - 16usize] ; } ; # [doc = " Response data for a resolve hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_resolve_hash_response_t { pub game_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_resolve_hash_response_t"] [:: core :: mem :: size_of :: < rc_api_resolve_hash_response_t > () - 320usize] ; ["Alignment of rc_api_resolve_hash_response_t"] [:: core :: mem :: align_of :: < rc_api_resolve_hash_response_t > () - 8usize] ; ["Offset of field: rc_api_resolve_hash_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_response_t , game_id) - 0usize] ; ["Offset of field: rc_api_resolve_hash_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_resolve_hash_request (request : * mut rc_api_request_t , api_params : * const rc_api_resolve_hash_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_resolve_hash_response (response : * mut rc_api_resolve_hash_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_resolve_hash_server_response (response : * mut rc_api_resolve_hash_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_resolve_hash_response (response : * mut rc_api_resolve_hash_response_t) ; } # [doc = " API parameters for a fetch game data request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_data_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_data_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_data_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_game_data_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_data_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , game_id) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_leaderboard_definition_t { pub id : u32 , pub format : :: core :: ffi :: c_int , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub lower_is_better : u8 , pub hidden : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_leaderboard_definition_t"] [:: core :: mem :: size_of :: < rc_api_leaderboard_definition_t > () - 40usize] ; ["Alignment of rc_api_leaderboard_definition_t"] [:: core :: mem :: align_of :: < rc_api_leaderboard_definition_t > () - 8usize] ; ["Offset of field: rc_api_leaderboard_definition_t::id"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , id) - 0usize] ; ["Offset of field: rc_api_leaderboard_definition_t::format"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , format) - 4usize] ; ["Offset of field: rc_api_leaderboard_definition_t::title"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , title) - 8usize] ; ["Offset of field: rc_api_leaderboard_definition_t::description"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , description) - 16usize] ; ["Offset of field: rc_api_leaderboard_definition_t::definition"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , definition) - 24usize] ; ["Offset of field: rc_api_leaderboard_definition_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , lower_is_better) - 32usize] ; ["Offset of field: rc_api_leaderboard_definition_t::hidden"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , hidden) - 33usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_achievement_definition_t { pub id : u32 , pub points : u32 , pub category : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub author : * const :: core :: ffi :: c_char , pub badge_name : * const :: core :: ffi :: c_char , pub created : time_t , pub updated : time_t , pub type_ : u32 , pub rarity : f32 , pub rarity_hardcore : f32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_achievement_definition_t"] [:: core :: mem :: size_of :: < rc_api_achievement_definition_t > () - 88usize] ; ["Alignment of rc_api_achievement_definition_t"] [:: core :: mem :: align_of :: < rc_api_achievement_definition_t > () - 8usize] ; ["Offset of field: rc_api_achievement_definition_t::id"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , id) - 0usize] ; ["Offset of field: rc_api_achievement_definition_t::points"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , points) - 4usize] ; ["Offset of field: rc_api_achievement_definition_t::category"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , category) - 8usize] ; ["Offset of field: rc_api_achievement_definition_t::title"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , title) - 16usize] ; ["Offset of field: rc_api_achievement_definition_t::description"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , description) - 24usize] ; ["Offset of field: rc_api_achievement_definition_t::definition"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , definition) - 32usize] ; ["Offset of field: rc_api_achievement_definition_t::author"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , author) - 40usize] ; ["Offset of field: rc_api_achievement_definition_t::badge_name"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , badge_name) - 48usize] ; ["Offset of field: rc_api_achievement_definition_t::created"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , created) - 56usize] ; ["Offset of field: rc_api_achievement_definition_t::updated"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , updated) - 64usize] ; ["Offset of field: rc_api_achievement_definition_t::type_"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , type_) - 72usize] ; ["Offset of field: rc_api_achievement_definition_t::rarity"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , rarity) - 76usize] ; ["Offset of field: rc_api_achievement_definition_t::rarity_hardcore"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , rarity_hardcore) - 80usize] ; } ; # [doc = " Response data for a fetch game data request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_data_response_t { pub id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub image_name : * const :: core :: ffi :: c_char , pub rich_presence_script : * const :: core :: ffi :: c_char , pub achievements : * mut rc_api_achievement_definition_t , pub num_achievements : u32 , pub leaderboards : * mut rc_api_leaderboard_definition_t , pub num_leaderboards : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_data_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_data_response_t > () - 376usize] ; ["Alignment of rc_api_fetch_game_data_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_data_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , console_id) - 4usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::title"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , title) - 8usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , image_name) - 16usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::rich_presence_script"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , rich_presence_script) - 24usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::achievements"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , achievements) - 32usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , num_achievements) - 40usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::leaderboards"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , leaderboards) - 48usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , num_leaderboards) - 56usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , response) - 64usize] ; } ; extern "C" { pub fn rc_api_init_fetch_game_data_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_game_data_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_data_response (response : * mut rc_api_fetch_game_data_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_data_server_response (response : * mut rc_api_fetch_game_data_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_game_data_response (response : * mut rc_api_fetch_game_data_response_t) ; } # [doc = " API parameters for a ping request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_ping_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub rich_presence : * const :: core :: ffi :: c_char , pub game_hash : * const :: core :: ffi :: c_char , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_ping_request_t"] [:: core :: mem :: size_of :: < rc_api_ping_request_t > () - 48usize] ; ["Alignment of rc_api_ping_request_t"] [:: core :: mem :: align_of :: < rc_api_ping_request_t > () - 8usize] ; ["Offset of field: rc_api_ping_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , username) - 0usize] ; ["Offset of field: rc_api_ping_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_ping_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_ping_request_t::rich_presence"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , rich_presence) - 24usize] ; ["Offset of field: rc_api_ping_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , game_hash) - 32usize] ; ["Offset of field: rc_api_ping_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , hardcore) - 40usize] ; } ; # [doc = " Response data for a ping request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_ping_response_t { pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_ping_response_t"] [:: core :: mem :: size_of :: < rc_api_ping_response_t > () - 312usize] ; ["Alignment of rc_api_ping_response_t"] [:: core :: mem :: align_of :: < rc_api_ping_response_t > () - 8usize] ; ["Offset of field: rc_api_ping_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_ping_response_t , response) - 0usize] ; } ; extern "C" { pub fn rc_api_init_ping_request (request : * mut rc_api_request_t , api_params : * const rc_api_ping_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_ping_response (response : * mut rc_api_ping_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_ping_server_response (response : * mut rc_api_ping_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_ping_response (response : * mut rc_api_ping_response_t) ; } # [doc = " API parameters for an award achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_award_achievement_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub hardcore : u32 , pub game_hash : * const :: core :: ffi :: c_char , pub seconds_since_unlock : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_award_achievement_request_t"] [:: core :: mem :: size_of :: < rc_api_award_achievement_request_t > () - 40usize] ; ["Alignment of rc_api_award_achievement_request_t"] [:: core :: mem :: align_of :: < rc_api_award_achievement_request_t > () - 8usize] ; ["Offset of field: rc_api_award_achievement_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , username) - 0usize] ; ["Offset of field: rc_api_award_achievement_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_award_achievement_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_award_achievement_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , hardcore) - 20usize] ; ["Offset of field: rc_api_award_achievement_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_award_achievement_request_t::seconds_since_unlock"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , seconds_since_unlock) - 32usize] ; } ; # [doc = " Response data for an award achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_award_achievement_response_t { pub awarded_achievement_id : u32 , pub new_player_score : u32 , pub new_player_score_softcore : u32 , pub achievements_remaining : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_award_achievement_response_t"] [:: core :: mem :: size_of :: < rc_api_award_achievement_response_t > () - 328usize] ; ["Alignment of rc_api_award_achievement_response_t"] [:: core :: mem :: align_of :: < rc_api_award_achievement_response_t > () - 8usize] ; ["Offset of field: rc_api_award_achievement_response_t::awarded_achievement_id"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , awarded_achievement_id) - 0usize] ; ["Offset of field: rc_api_award_achievement_response_t::new_player_score"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , new_player_score) - 4usize] ; ["Offset of field: rc_api_award_achievement_response_t::new_player_score_softcore"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , new_player_score_softcore) - 8usize] ; ["Offset of field: rc_api_award_achievement_response_t::achievements_remaining"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , achievements_remaining) - 12usize] ; ["Offset of field: rc_api_award_achievement_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_award_achievement_request (request : * mut rc_api_request_t , api_params : * const rc_api_award_achievement_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_award_achievement_response (response : * mut rc_api_award_achievement_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_award_achievement_server_response (response : * mut rc_api_award_achievement_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_award_achievement_response (response : * mut rc_api_award_achievement_response_t) ; } # [doc = " API parameters for a submit lboard entry request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_submit_lboard_entry_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub leaderboard_id : u32 , pub score : i32 , pub game_hash : * const :: core :: ffi :: c_char , pub seconds_since_completion : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_submit_lboard_entry_request_t"] [:: core :: mem :: size_of :: < rc_api_submit_lboard_entry_request_t > () - 40usize] ; ["Alignment of rc_api_submit_lboard_entry_request_t"] [:: core :: mem :: align_of :: < rc_api_submit_lboard_entry_request_t > () - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , username) - 0usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , leaderboard_id) - 16usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , score) - 20usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::seconds_since_completion"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , seconds_since_completion) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_lboard_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub score : i32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_lboard_entry_t"] [:: core :: mem :: size_of :: < rc_api_lboard_entry_t > () - 16usize] ; ["Alignment of rc_api_lboard_entry_t"] [:: core :: mem :: align_of :: < rc_api_lboard_entry_t > () - 8usize] ; ["Offset of field: rc_api_lboard_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , username) - 0usize] ; ["Offset of field: rc_api_lboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , rank) - 8usize] ; ["Offset of field: rc_api_lboard_entry_t::score"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , score) - 12usize] ; } ; # [doc = " Response data for a submit lboard entry request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_submit_lboard_entry_response_t { pub submitted_score : i32 , pub best_score : i32 , pub new_rank : u32 , pub num_entries : u32 , pub top_entries : * mut rc_api_lboard_entry_t , pub num_top_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_submit_lboard_entry_response_t"] [:: core :: mem :: size_of :: < rc_api_submit_lboard_entry_response_t > () - 344usize] ; ["Alignment of rc_api_submit_lboard_entry_response_t"] [:: core :: mem :: align_of :: < rc_api_submit_lboard_entry_response_t > () - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::submitted_score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , submitted_score) - 0usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::best_score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , best_score) - 4usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::new_rank"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , new_rank) - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , num_entries) - 12usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::top_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , top_entries) - 16usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::num_top_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , num_top_entries) - 24usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_submit_lboard_entry_request (request : * mut rc_api_request_t , api_params : * const rc_api_submit_lboard_entry_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_submit_lboard_entry_response (response : * mut rc_api_submit_lboard_entry_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_submit_lboard_entry_server_response (response : * mut rc_api_submit_lboard_entry_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_submit_lboard_entry_response (response : * mut rc_api_submit_lboard_entry_response_t) ; } # [doc = " Callback used to read num_bytes bytes from memory starting at address. If\n num_bytes is greater than 1, the value is read in little-endian from\n memory."] pub type rc_runtime_peek_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , num_bytes : u32 , ud : * mut :: core :: ffi :: c_void) -> u32 > ; # [doc = "\\\n| Runtime                                                                     |\n\\"] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_trigger_t { pub id : u32 , pub trigger : * mut rc_trigger_t , pub buffer : * mut :: core :: ffi :: c_void , pub invalid_memref : * mut rc_memref_t , pub md5 : [u8 ; 16usize] , pub serialized_size : i32 , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_trigger_t"] [:: core :: mem :: size_of :: < rc_runtime_trigger_t > () - 56usize] ; ["Alignment of rc_runtime_trigger_t"] [:: core :: mem :: align_of :: < rc_runtime_trigger_t > () - 8usize] ; ["Offset of field: rc_runtime_trigger_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , id) - 0usize] ; ["Offset of field: rc_runtime_trigger_t::trigger"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , trigger) - 8usize] ; ["Offset of field: rc_runtime_trigger_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , buffer) - 16usize] ; ["Offset of field: rc_runtime_trigger_t::invalid_memref"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , invalid_memref) - 24usize] ; ["Offset of field: rc_runtime_trigger_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , md5) - 32usize] ; ["Offset of field: rc_runtime_trigger_t::serialized_size"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , serialized_size) - 48usize] ; ["Offset of field: rc_runtime_trigger_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , owns_memrefs) - 52usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_lboard_t { pub id : u32 , pub value : i32 , pub lboard : * mut rc_lboard_t , pub buffer : * mut :: core :: ffi :: c_void , pub invalid_memref : * mut rc_memref_t , pub md5 : [u8 ; 16usize] , pub serialized_size : u32 , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_lboard_t"] [:: core :: mem :: size_of :: < rc_runtime_lboard_t > () - 56usize] ; ["Alignment of rc_runtime_lboard_t"] [:: core :: mem :: align_of :: < rc_runtime_lboard_t > () - 8usize] ; ["Offset of field: rc_runtime_lboard_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , id) - 0usize] ; ["Offset of field: rc_runtime_lboard_t::value"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , value) - 4usize] ; ["Offset of field: rc_runtime_lboard_t::lboard"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , lboard) - 8usize] ; ["Offset of field: rc_runtime_lboard_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , buffer) - 16usize] ; ["Offset of field: rc_runtime_lboard_t::invalid_memref"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , invalid_memref) - 24usize] ; ["Offset of field: rc_runtime_lboard_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , md5) - 32usize] ; ["Offset of field: rc_runtime_lboard_t::serialized_size"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , serialized_size) - 48usize] ; ["Offset of field: rc_runtime_lboard_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , owns_memrefs) - 52usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_richpresence_t { pub richpresence : * mut rc_richpresence_t , pub buffer : * mut :: core :: ffi :: c_void , pub previous : * mut rc_runtime_richpresence_t , pub md5 : [u8 ; 16usize] , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_richpresence_t"] [:: core :: mem :: size_of :: < rc_runtime_richpresence_t > () - 48usize] ; ["Alignment of rc_runtime_richpresence_t"] [:: core :: mem :: align_of :: < rc_runtime_richpresence_t > () - 8usize] ; ["Offset of field: rc_runtime_richpresence_t::richpresence"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , richpresence) - 0usize] ; ["Offset of field: rc_runtime_richpresence_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , buffer) - 8usize] ; ["Offset of field: rc_runtime_richpresence_t::previous"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , previous) - 16usize] ; ["Offset of field: rc_runtime_richpresence_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , md5) - 24usize] ; ["Offset of field: rc_runtime_richpresence_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , owns_memrefs) - 40usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_t { pub triggers : * mut rc_runtime_trigger_t , pub trigger_count : u32 , pub trigger_capacity : u32 , pub lboards : * mut rc_runtime_lboard_t , pub lboard_count : u32 , pub lboard_capacity : u32 , pub richpresence : * mut rc_runtime_richpresence_t , pub memrefs : * mut rc_memref_t , pub next_memref : * mut * mut rc_memref_t , pub variables : * mut rc_value_t , pub next_variable : * mut * mut rc_value_t , pub owns_self : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_t"] [:: core :: mem :: size_of :: < rc_runtime_t > () - 80usize] ; ["Alignment of rc_runtime_t"] [:: core :: mem :: align_of :: < rc_runtime_t > () - 8usize] ; ["Offset of field: rc_runtime_t::triggers"] [:: core :: mem :: offset_of ! (rc_runtime_t , triggers) - 0usize] ; ["Offset of field: rc_runtime_t::trigger_count"] [:: core :: mem :: offset_of ! (rc_runtime_t , trigger_count) - 8usize] ; ["Offset of field: rc_runtime_t::trigger_capacity"] [:: core :: mem :: offset_of ! (rc_runtime_t , trigger_capacity) - 12usize] ; ["Offset of field: rc_runtime_t::lboards"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboards) - 16usize] ; ["Offset of field: rc_runtime_t::lboard_count"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboard_count) - 24usize] ; ["Offset of field: rc_runtime_t::lboard_capacity"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboard_capacity) - 28usize] ; ["Offset of field: rc_runtime_t::richpresence"] [:: core :: mem :: offset_of ! (rc_runtime_t , richpresence) - 32usize] ; ["Offset of field: rc_runtime_t::memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_t , memrefs) - 40usize] ; ["Offset of field: rc_runtime_t::next_memref"] [:: core :: mem :: offset_of ! (rc_runtime_t , next_memref) - 48usize] ; ["Offset of field: rc_runtime_t::variables"] [:: core :: mem :: offset_of ! (rc_runtime_t , variables) - 56usize] ; ["Offset of field: rc_runtime_t::next_variable"] [:: core :: mem :: offset_of ! (rc_runtime_t , next_variable) - 64usize] ; ["Offset of field: rc_runtime_t::owns_self"] [:: core :: mem :: offset_of ! (rc_runtime_t , owns_self) - 72usize] ; } ; extern "C" { pub fn rc_runtime_alloc () -> * mut rc_runtime_t ; } extern "C" { pub fn rc_runtime_init (runtime : * mut rc_runtime_t) ; } extern "C" { pub fn rc_runtime_destroy (runtime : * mut rc_runtime_t) ; } extern "C" { pub fn rc_runtime_activate_achievement (runtime : * mut rc_runtime_t , id : u32 , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deactivate_achievement (runtime : * mut rc_runtime_t , id : u32) ; } extern "C" { pub fn rc_runtime_get_achievement (runtime : * const rc_runtime_t , id : u32) -> * mut rc_trigger_t ; } extern "C" { pub fn rc_runtime_get_achievement_measured (runtime : * const rc_runtime_t , id : u32 , measured_value : * mut :: core :: ffi :: c_uint , measured_target : * mut :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_format_achievement_measured (runtime : * const rc_runtime_t , id : u32 , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_activate_lboard (runtime : * mut rc_runtime_t , id : u32 , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deactivate_lboard (runtime : * mut rc_runtime_t , id : u32) ; } extern "C" { pub fn rc_runtime_get_lboard (runtime : * const rc_runtime_t , id : u32) -> * mut rc_lboard_t ; } extern "C" { pub fn rc_runtime_format_lboard_value (buffer : * mut :: core :: ffi :: c_char , size : :: core :: ffi :: c_int , value : i32 , format : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_activate_richpresence (runtime : * mut rc_runtime_t , script : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_get_richpresence (runtime : * const rc_runtime_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_runtime_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } pub const RC_RUNTIME_EVENT_ACHIEVEMENT_ACTIVATED : _bindgen_ty_14 = 0 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PAUSED : _bindgen_ty_14 = 1 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_RESET : _bindgen_ty_14 = 2 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_TRIGGERED : _bindgen_ty_14 = 3 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PRIMED : _bindgen_ty_14 = 4 ; pub const RC_RUNTIME_EVENT_LBOARD_STARTED : _bindgen_ty_14 = 5 ; pub const RC_RUNTIME_EVENT_LBOARD_CANCELED : _bindgen_ty_14 = 6 ; pub const RC_RUNTIME_EVENT_LBOARD_UPDATED : _bindgen_ty_14 = 7 ; pub const RC_RUNTIME_EVENT_LBOARD_TRIGGERED : _bindgen_ty_14 = 8 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_DISABLED : _bindgen_ty_14 = 9 ; pub const RC_RUNTIME_EVENT_LBOARD_DISABLED : _bindgen_ty_14 = 10 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_UNPRIMED : _bindgen_ty_14 = 11 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PROGRESS_UPDATED : _bindgen_ty_14 = 12 ; pub type _bindgen_ty_14 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_event_t { pub id : u32 , pub value : i32 , pub type_ : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_event_t"] [:: core :: mem :: size_of :: < rc_runtime_event_t > () - 12usize] ; ["Alignment of rc_runtime_event_t"] [:: core :: mem :: align_of :: < rc_runtime_event_t > () - 4usize] ; ["Offset of field: rc_runtime_event_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , id) - 0usize] ; ["Offset of field: rc_runtime_event_t::value"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , value) - 4usize] ; ["Offset of field: rc_runtime_event_t::type_"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , type_) - 8usize] ; } ; pub type rc_runtime_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (runtime_event : * const rc_runtime_event_t) > ; extern "C" { pub fn rc_runtime_do_frame (runtime : * mut rc_runtime_t , event_handler : rc_runtime_event_handler_t , peek : rc_runtime_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) ; } extern "C" { pub fn rc_runtime_reset (runtime : * mut rc_runtime_t) ; } pub type rc_runtime_validate_address_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_runtime_validate_addresses (runtime : * mut rc_runtime_t , event_handler : rc_runtime_event_handler_t , validate_handler : rc_runtime_validate_address_t) ; } extern "C" { pub fn rc_runtime_invalidate_address (runtime : * mut rc_runtime_t , address : u32) ; } extern "C" { pub fn rc_runtime_progress_size (runtime : * const rc_runtime_t , L : * mut lua_State) -> u32 ; } extern "C" { pub fn rc_runtime_serialize_progress (buffer : * mut :: core :: ffi :: c_void , runtime : * const rc_runtime_t , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_serialize_progress_sized (buffer : * mut u8 , buffer_size : u32 , runtime : * const rc_runtime_t , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deserialize_progress (runtime : * mut rc_runtime_t , serialized : * const u8 , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deserialize_progress_sized (runtime : * mut rc_runtime_t , serialized : * const u8 , serialized_size : u32 , L : * mut lua_State) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_async_handle_t { _unused : [u8 ; 0] , } # [doc = " Callback used to read num_bytes bytes from memory starting at address into buffer.\n Returns the number of bytes read. A return value of 0 indicates the address was invalid."] pub type rc_client_read_memory_func_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , buffer : * mut u8 , num_bytes : u32 , client : * mut rc_client_t) -> u32 > ; # [doc = " Internal method passed to rc_client_server_call_t to process the server response."] pub type rc_client_server_callback_t = :: core :: option :: Option < unsafe extern "C" fn (server_response : * const rc_api_server_response_t , callback_data : * mut :: core :: ffi :: c_void) > ; # [doc = " Callback used to issue a request to the server."] pub type rc_client_server_call_t = :: core :: option :: Option < unsafe extern "C" fn (request : * const rc_api_request_t , callback : rc_client_server_callback_t , callback_data : * mut :: core :: ffi :: c_void , client : * mut rc_client_t) > ; # [doc = " Generic callback for asynchronous eventing."] pub type rc_client_callback_t = :: core :: option :: Option < unsafe extern "C" fn (result : :: core :: ffi :: c_int , error_message : * const :: core :: ffi :: c_char , client : * mut rc_client_t , userdata : * mut :: core :: ffi :: c_void) > ; # [doc = " Callback for logging or displaying a message."] pub type rc_client_message_callback_t = :: core :: option :: Option < unsafe extern "C" fn (message : * const :: core :: ffi :: c_char , client : * const rc_client_t) > ; extern "C" { # [doc = " Creates a new rc_client_t object."] pub fn rc_client_create (read_memory_function : rc_client_read_memory_func_t , server_call_function : rc_client_server_call_t) -> * mut rc_client_t ; } extern "C" { # [doc = " Releases resources associated to a rc_client_t object.\n Pointer will no longer be valid after making this call."] pub fn rc_client_destroy (client : * mut rc_client_t) ; } extern "C" { # [doc = " Sets whether hardcore is enabled (on by default).\n Can be called with a game loaded.\n Enabling hardcore with a game loaded will raise an RC_CLIENT_EVENT_RESET\n event. Processing will be disabled until rc_client_reset is called."] pub fn rc_client_set_hardcore_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether hardcore is enabled (on by default)."] pub fn rc_client_get_hardcore_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether encore mode is enabled (off by default).\n Evaluated when loading a game. Has no effect while a game is loaded."] pub fn rc_client_set_encore_mode_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether encore mode is enabled (off by default)."] pub fn rc_client_get_encore_mode_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether unofficial achievements should be loaded.\n Evaluated when loading a game. Has no effect while a game is loaded."] pub fn rc_client_set_unofficial_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether unofficial achievements should be loaded."] pub fn rc_client_get_unofficial_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether spectator mode is enabled (off by default).\n If enabled, events for achievement unlocks and leaderboard submissions will be\n raised, but server calls to actually perform the unlock/submit will not occur.\n Can be modified while a game is loaded. Evaluated at unlock/submit time.\n Cannot be modified if disabled before a game is loaded."] pub fn rc_client_set_spectator_mode_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether spectator mode is enabled (off by default)."] pub fn rc_client_get_spectator_mode_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Attaches client-specific data to the runtime."] pub fn rc_client_set_userdata (client : * mut rc_client_t , userdata : * mut :: core :: ffi :: c_void) ; } extern "C" { # [doc = " Gets the client-specific data attached to the runtime."] pub fn rc_client_get_userdata (client : * const rc_client_t) -> * mut :: core :: ffi :: c_void ; } extern "C" { # [doc = " Sets the name of the server to use."] pub fn rc_client_set_host (client : * const rc_client_t , hostname : * const :: core :: ffi :: c_char) ; } pub type rc_clock_t = u64 ; pub type rc_get_time_millisecs_func_t = :: core :: option :: Option < unsafe extern "C" fn (client : * const rc_client_t) -> rc_clock_t > ; extern "C" { # [doc = " Specifies a function that returns a value that increases once per millisecond."] pub fn rc_client_set_get_time_millisecs_function (client : * mut rc_client_t , handler : rc_get_time_millisecs_func_t) ; } extern "C" { # [doc = " Marks an async process as aborted. The associated callback will not be called."] pub fn rc_client_abort_async (client : * mut rc_client_t , async_handle : * mut rc_client_async_handle_t) ; } extern "C" { # [doc = " Gets a clause that can be added to the User-Agent to identify the version of rcheevos being used."] pub fn rc_client_get_user_agent_clause (client : * mut rc_client_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> usize ; } extern "C" { # [doc = " Sets the logging level and provides a callback to be called to do the logging."] pub fn rc_client_enable_logging (client : * mut rc_client_t , level : :: core :: ffi :: c_int , callback : rc_client_message_callback_t) ; } pub const RC_CLIENT_LOG_LEVEL_NONE : _bindgen_ty_15 = 0 ; pub const RC_CLIENT_LOG_LEVEL_ERROR : _bindgen_ty_15 = 1 ; pub const RC_CLIENT_LOG_LEVEL_WARN : _bindgen_ty_15 = 2 ; pub const RC_CLIENT_LOG_LEVEL_INFO : _bindgen_ty_15 = 3 ; pub const RC_CLIENT_LOG_LEVEL_VERBOSE : _bindgen_ty_15 = 4 ; pub const NUM_RC_CLIENT_LOG_LEVELS : _bindgen_ty_15 = 5 ; pub type _bindgen_ty_15 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Attempt to login a user."] pub fn rc_client_begin_login_with_password (client : * mut rc_client_t , username : * const :: core :: ffi :: c_char , password : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Attempt to login a user."] pub fn rc_client_begin_login_with_token (client : * mut rc_client_t , username : * const :: core :: ffi :: c_char , token : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Logout the user."] pub fn rc_client_logout (client : * mut rc_client_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_user_t { pub display_name : * const :: core :: ffi :: c_char , pub username : * const :: core :: ffi :: c_char , pub token : * const :: core :: ffi :: c_char , pub score : u32 , pub score_softcore : u32 , pub num_unread_messages : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_user_t"] [:: core :: mem :: size_of :: < rc_client_user_t > () - 40usize] ; ["Alignment of rc_client_user_t"] [:: core :: mem :: align_of :: < rc_client_user_t > () - 8usize] ; ["Offset of field: rc_client_user_t::display_name"] [:: core :: mem :: offset_of ! (rc_client_user_t , display_name) - 0usize] ; ["Offset of field: rc_client_user_t::username"] [:: core :: mem :: offset_of ! (rc_client_user_t , username) - 8usize] ; ["Offset of field: rc_client_user_t::token"] [:: core :: mem :: offset_of ! (rc_client_user_t , token) - 16usize] ; ["Offset of field: rc_client_user_t::score"] [:: core :: mem :: offset_of ! (rc_client_user_t , score) - 24usize] ; ["Offset of field: rc_client_user_t::score_softcore"] [:: core :: mem :: offset_of ! (rc_client_user_t , score_softcore) - 28usize] ; ["Offset of field: rc_client_user_t::num_unread_messages"] [:: core :: mem :: offset_of ! (rc_client_user_t , num_unread_messages) - 32usize] ; } ; extern "C" { # [doc = " Gets information about the logged in user. Will return NULL if the user is not logged in."] pub fn rc_client_get_user_info (client : * const rc_client_t) -> * const rc_client_user_t ; } extern "C" { # [doc = " Gets the URL for the user's profile picture.\n Returns RC_OK on success."] pub fn rc_client_user_get_image_url (user : * const rc_client_user_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_user_game_summary_t { pub num_core_achievements : u32 , pub num_unofficial_achievements : u32 , pub num_unlocked_achievements : u32 , pub num_unsupported_achievements : u32 , pub points_core : u32 , pub points_unlocked : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_user_game_summary_t"] [:: core :: mem :: size_of :: < rc_client_user_game_summary_t > () - 24usize] ; ["Alignment of rc_client_user_game_summary_t"] [:: core :: mem :: align_of :: < rc_client_user_game_summary_t > () - 4usize] ; ["Offset of field: rc_client_user_game_summary_t::num_core_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_core_achievements) - 0usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unofficial_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unofficial_achievements) - 4usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unlocked_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unlocked_achievements) - 8usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unsupported_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unsupported_achievements) - 12usize] ; ["Offset of field: rc_client_user_game_summary_t::points_core"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , points_core) - 16usize] ; ["Offset of field: rc_client_user_game_summary_t::points_unlocked"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , points_unlocked) - 20usize] ; } ; extern "C" { # [doc = " Gets a breakdown of the number of achievements in the game, and how many the user has unlocked.\n Used for the \"You have unlocked X of Y achievements\" message shown when the game starts."] pub fn rc_client_get_user_game_summary (client : * const rc_client_t , summary : * mut rc_client_user_game_summary_t) ; } extern "C" { # [doc = " Start loading an unidentified game."] pub fn rc_client_begin_identify_and_load_game (client : * mut rc_client_t , console_id : u32 , file_path : * const :: core :: ffi :: c_char , data : * const u8 , data_size : usize , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Start loading a game."] pub fn rc_client_begin_load_game (client : * mut rc_client_t , hash : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Gets the current progress of the asynchronous load game process."] pub fn rc_client_get_load_game_state (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } pub const RC_CLIENT_LOAD_GAME_STATE_NONE : _bindgen_ty_16 = 0 ; pub const RC_CLIENT_LOAD_GAME_STATE_IDENTIFYING_GAME : _bindgen_ty_16 = 1 ; pub const RC_CLIENT_LOAD_GAME_STATE_AWAIT_LOGIN : _bindgen_ty_16 = 2 ; pub const RC_CLIENT_LOAD_GAME_STATE_FETCHING_GAME_DATA : _bindgen_ty_16 = 3 ; pub const RC_CLIENT_LOAD_GAME_STATE_STARTING_SESSION : _bindgen_ty_16 = 4 ; pub const RC_CLIENT_LOAD_GAME_STATE_DONE : _bindgen_ty_16 = 5 ; pub const RC_CLIENT_LOAD_GAME_STATE_ABORTED : _bindgen_ty_16 = 6 ; pub type _bindgen_ty_16 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Determines if a game was successfully identified and loaded."] pub fn rc_client_is_game_loaded (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Unloads the current game."] pub fn rc_client_unload_game (client : * mut rc_client_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_game_t { pub id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub hash : * const :: core :: ffi :: c_char , pub badge_name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_game_t"] [:: core :: mem :: size_of :: < rc_client_game_t > () - 32usize] ; ["Alignment of rc_client_game_t"] [:: core :: mem :: align_of :: < rc_client_game_t > () - 8usize] ; ["Offset of field: rc_client_game_t::id"] [:: core :: mem :: offset_of ! (rc_client_game_t , id) - 0usize] ; ["Offset of field: rc_client_game_t::console_id"] [:: core :: mem :: offset_of ! (rc_client_game_t , console_id) - 4usize] ; ["Offset of field: rc_client_game_t::title"] [:: core :: mem :: offset_of ! (rc_client_game_t , title) - 8usize] ; ["Offset of field: rc_client_game_t::hash"] [:: core :: mem :: offset_of ! (rc_client_game_t , hash) - 16usize] ; ["Offset of field: rc_client_game_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_game_t , badge_name) - 24usize] ; } ; extern "C" { # [doc = " Get information about the current game. Returns NULL if no game is loaded.\n NOTE: returns a dummy game record if an unidentified game is loaded."] pub fn rc_client_get_game_info (client : * const rc_client_t) -> * const rc_client_game_t ; } extern "C" { # [doc = " Gets the URL for the game image.\n Returns RC_OK on success."] pub fn rc_client_game_get_image_url (game : * const rc_client_game_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Changes the active disc in a multi-disc game."] pub fn rc_client_begin_change_media (client : * mut rc_client_t , file_path : * const :: core :: ffi :: c_char , data : * const u8 , data_size : usize , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Changes the active disc in a multi-disc game."] pub fn rc_client_begin_change_media_from_hash (client : * mut rc_client_t , hash : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } # [doc = "\\\n| Subsets                                                                     |\n\\"] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_subset_t { pub id : u32 , pub title : * const :: core :: ffi :: c_char , pub badge_name : [:: core :: ffi :: c_char ; 16usize] , pub num_achievements : u32 , pub num_leaderboards : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_subset_t"] [:: core :: mem :: size_of :: < rc_client_subset_t > () - 40usize] ; ["Alignment of rc_client_subset_t"] [:: core :: mem :: align_of :: < rc_client_subset_t > () - 8usize] ; ["Offset of field: rc_client_subset_t::id"] [:: core :: mem :: offset_of ! (rc_client_subset_t , id) - 0usize] ; ["Offset of field: rc_client_subset_t::title"] [:: core :: mem :: offset_of ! (rc_client_subset_t , title) - 8usize] ; ["Offset of field: rc_client_subset_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_subset_t , badge_name) - 16usize] ; ["Offset of field: rc_client_subset_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_client_subset_t , num_achievements) - 32usize] ; ["Offset of field: rc_client_subset_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_client_subset_t , num_leaderboards) - 36usize] ; } ; extern "C" { pub fn rc_client_get_subset_info (client : * mut rc_client_t , subset_id : u32) -> * const rc_client_subset_t ; } pub const RC_CLIENT_ACHIEVEMENT_STATE_INACTIVE : _bindgen_ty_17 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_ACTIVE : _bindgen_ty_17 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_UNLOCKED : _bindgen_ty_17 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_DISABLED : _bindgen_ty_17 = 3 ; pub const NUM_RC_CLIENT_ACHIEVEMENT_STATES : _bindgen_ty_17 = 4 ; # [doc = "\\\n| Achievements                                                                |\n\\"] pub type _bindgen_ty_17 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_NONE : _bindgen_ty_18 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_CORE : _bindgen_ty_18 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_UNOFFICIAL : _bindgen_ty_18 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_CORE_AND_UNOFFICIAL : _bindgen_ty_18 = 3 ; pub type _bindgen_ty_18 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_STANDARD : _bindgen_ty_19 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_MISSABLE : _bindgen_ty_19 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_PROGRESSION : _bindgen_ty_19 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_WIN : _bindgen_ty_19 = 3 ; pub type _bindgen_ty_19 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNKNOWN : _bindgen_ty_20 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_LOCKED : _bindgen_ty_20 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNLOCKED : _bindgen_ty_20 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNSUPPORTED : _bindgen_ty_20 = 3 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNOFFICIAL : _bindgen_ty_20 = 4 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_RECENTLY_UNLOCKED : _bindgen_ty_20 = 5 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_ACTIVE_CHALLENGE : _bindgen_ty_20 = 6 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_ALMOST_THERE : _bindgen_ty_20 = 7 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNSYNCED : _bindgen_ty_20 = 8 ; pub const NUM_RC_CLIENT_ACHIEVEMENT_BUCKETS : _bindgen_ty_20 = 9 ; pub type _bindgen_ty_20 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_NONE : _bindgen_ty_21 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_SOFTCORE : _bindgen_ty_21 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_HARDCORE : _bindgen_ty_21 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_BOTH : _bindgen_ty_21 = 3 ; pub type _bindgen_ty_21 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_t { pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub badge_name : [:: core :: ffi :: c_char ; 8usize] , pub measured_progress : [:: core :: ffi :: c_char ; 24usize] , pub measured_percent : f32 , pub id : u32 , pub points : u32 , pub unlock_time : time_t , pub state : u8 , pub category : u8 , pub bucket : u8 , pub unlocked : u8 , pub rarity : f32 , pub rarity_hardcore : f32 , pub type_ : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_t"] [:: core :: mem :: size_of :: < rc_client_achievement_t > () - 88usize] ; ["Alignment of rc_client_achievement_t"] [:: core :: mem :: align_of :: < rc_client_achievement_t > () - 8usize] ; ["Offset of field: rc_client_achievement_t::title"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , title) - 0usize] ; ["Offset of field: rc_client_achievement_t::description"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , description) - 8usize] ; ["Offset of field: rc_client_achievement_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , badge_name) - 16usize] ; ["Offset of field: rc_client_achievement_t::measured_progress"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , measured_progress) - 24usize] ; ["Offset of field: rc_client_achievement_t::measured_percent"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , measured_percent) - 48usize] ; ["Offset of field: rc_client_achievement_t::id"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , id) - 52usize] ; ["Offset of field: rc_client_achievement_t::points"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , points) - 56usize] ; ["Offset of field: rc_client_achievement_t::unlock_time"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , unlock_time) - 64usize] ; ["Offset of field: rc_client_achievement_t::state"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , state) - 72usize] ; ["Offset of field: rc_client_achievement_t::category"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , category) - 73usize] ; ["Offset of field: rc_client_achievement_t::bucket"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , bucket) - 74usize] ; ["Offset of field: rc_client_achievement_t::unlocked"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , unlocked) - 75usize] ; ["Offset of field: rc_client_achievement_t::rarity"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , rarity) - 76usize] ; ["Offset of field: rc_client_achievement_t::rarity_hardcore"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , rarity_hardcore) - 80usize] ; ["Offset of field: rc_client_achievement_t::type_"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , type_) - 84usize] ; } ; extern "C" { # [doc = " Get information about an achievement. Returns NULL if not found."] pub fn rc_client_get_achievement_info (client : * mut rc_client_t , id : u32) -> * const rc_client_achievement_t ; } extern "C" { # [doc = " Gets the URL for the achievement image.\n Returns RC_OK on success."] pub fn rc_client_achievement_get_image_url (achievement : * const rc_client_achievement_t , state : :: core :: ffi :: c_int , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_bucket_t { pub achievements : * mut * mut rc_client_achievement_t , pub num_achievements : u32 , pub label : * const :: core :: ffi :: c_char , pub subset_id : u32 , pub bucket_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_bucket_t"] [:: core :: mem :: size_of :: < rc_client_achievement_bucket_t > () - 32usize] ; ["Alignment of rc_client_achievement_bucket_t"] [:: core :: mem :: align_of :: < rc_client_achievement_bucket_t > () - 8usize] ; ["Offset of field: rc_client_achievement_bucket_t::achievements"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , achievements) - 0usize] ; ["Offset of field: rc_client_achievement_bucket_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , num_achievements) - 8usize] ; ["Offset of field: rc_client_achievement_bucket_t::label"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , label) - 16usize] ; ["Offset of field: rc_client_achievement_bucket_t::subset_id"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , subset_id) - 24usize] ; ["Offset of field: rc_client_achievement_bucket_t::bucket_type"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , bucket_type) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_list_t { pub buckets : * mut rc_client_achievement_bucket_t , pub num_buckets : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_list_t"] [:: core :: mem :: size_of :: < rc_client_achievement_list_t > () - 16usize] ; ["Alignment of rc_client_achievement_list_t"] [:: core :: mem :: align_of :: < rc_client_achievement_list_t > () - 8usize] ; ["Offset of field: rc_client_achievement_list_t::buckets"] [:: core :: mem :: offset_of ! (rc_client_achievement_list_t , buckets) - 0usize] ; ["Offset of field: rc_client_achievement_list_t::num_buckets"] [:: core :: mem :: offset_of ! (rc_client_achievement_list_t , num_buckets) - 8usize] ; } ; pub const RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_LOCK_STATE : _bindgen_ty_22 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_PROGRESS : _bindgen_ty_22 = 1 ; pub type _bindgen_ty_22 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Creates a list of achievements matching the specified category and grouping.\n Returns an allocated list that must be free'd by calling rc_client_destroy_achievement_list."] pub fn rc_client_create_achievement_list (client : * mut rc_client_t , category : :: core :: ffi :: c_int , grouping : :: core :: ffi :: c_int) -> * mut rc_client_achievement_list_t ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_get_achievement_list."] pub fn rc_client_destroy_achievement_list (list : * mut rc_client_achievement_list_t) ; } extern "C" { # [doc = " Returns non-zero if there are any achievements that can be queried through rc_client_create_achievement_list()."] pub fn rc_client_has_achievements (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } pub const RC_CLIENT_LEADERBOARD_STATE_INACTIVE : _bindgen_ty_23 = 0 ; pub const RC_CLIENT_LEADERBOARD_STATE_ACTIVE : _bindgen_ty_23 = 1 ; pub const RC_CLIENT_LEADERBOARD_STATE_TRACKING : _bindgen_ty_23 = 2 ; pub const RC_CLIENT_LEADERBOARD_STATE_DISABLED : _bindgen_ty_23 = 3 ; pub const NUM_RC_CLIENT_LEADERBOARD_STATES : _bindgen_ty_23 = 4 ; # [doc = "\\\n| Leaderboards                                                                |\n\\"] pub type _bindgen_ty_23 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_LEADERBOARD_FORMAT_TIME : _bindgen_ty_24 = 0 ; pub const RC_CLIENT_LEADERBOARD_FORMAT_SCORE : _bindgen_ty_24 = 1 ; pub const RC_CLIENT_LEADERBOARD_FORMAT_VALUE : _bindgen_ty_24 = 2 ; pub const NUM_RC_CLIENT_LEADERBOARD_FORMATS : _bindgen_ty_24 = 3 ; pub type _bindgen_ty_24 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_t { pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub tracker_value : * const :: core :: ffi :: c_char , pub id : u32 , pub state : u8 , pub format : u8 , pub lower_is_better : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_t > () - 32usize] ; ["Alignment of rc_client_leaderboard_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_t::title"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , title) - 0usize] ; ["Offset of field: rc_client_leaderboard_t::description"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , description) - 8usize] ; ["Offset of field: rc_client_leaderboard_t::tracker_value"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , tracker_value) - 16usize] ; ["Offset of field: rc_client_leaderboard_t::id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , id) - 24usize] ; ["Offset of field: rc_client_leaderboard_t::state"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , state) - 28usize] ; ["Offset of field: rc_client_leaderboard_t::format"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , format) - 29usize] ; ["Offset of field: rc_client_leaderboard_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , lower_is_better) - 30usize] ; } ; extern "C" { # [doc = " Get information about a leaderboard. Returns NULL if not found."] pub fn rc_client_get_leaderboard_info (client : * const rc_client_t , id : u32) -> * const rc_client_leaderboard_t ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_tracker_t { pub display : [:: core :: ffi :: c_char ; 24usize] , pub id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_tracker_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_tracker_t > () - 28usize] ; ["Alignment of rc_client_leaderboard_tracker_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_tracker_t > () - 4usize] ; ["Offset of field: rc_client_leaderboard_tracker_t::display"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_tracker_t , display) - 0usize] ; ["Offset of field: rc_client_leaderboard_tracker_t::id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_tracker_t , id) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_bucket_t { pub leaderboards : * mut * mut rc_client_leaderboard_t , pub num_leaderboards : u32 , pub label : * const :: core :: ffi :: c_char , pub subset_id : u32 , pub bucket_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_bucket_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_bucket_t > () - 32usize] ; ["Alignment of rc_client_leaderboard_bucket_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_bucket_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::leaderboards"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , leaderboards) - 0usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , num_leaderboards) - 8usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::label"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , label) - 16usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::subset_id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , subset_id) - 24usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::bucket_type"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , bucket_type) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_list_t { pub buckets : * mut rc_client_leaderboard_bucket_t , pub num_buckets : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_list_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_list_t > () - 16usize] ; ["Alignment of rc_client_leaderboard_list_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_list_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_list_t::buckets"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_list_t , buckets) - 0usize] ; ["Offset of field: rc_client_leaderboard_list_t::num_buckets"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_list_t , num_buckets) - 8usize] ; } ; pub const RC_CLIENT_LEADERBOARD_BUCKET_UNKNOWN : _bindgen_ty_25 = 0 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_INACTIVE : _bindgen_ty_25 = 1 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_ACTIVE : _bindgen_ty_25 = 2 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_UNSUPPORTED : _bindgen_ty_25 = 3 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_ALL : _bindgen_ty_25 = 4 ; pub const NUM_RC_CLIENT_LEADERBOARD_BUCKETS : _bindgen_ty_25 = 5 ; pub type _bindgen_ty_25 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_LEADERBOARD_LIST_GROUPING_NONE : _bindgen_ty_26 = 0 ; pub const RC_CLIENT_LEADERBOARD_LIST_GROUPING_TRACKING : _bindgen_ty_26 = 1 ; pub type _bindgen_ty_26 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Creates a list of leaderboards matching the specified grouping.\n Returns an allocated list that must be free'd by calling rc_client_destroy_leaderboard_list."] pub fn rc_client_create_leaderboard_list (client : * mut rc_client_t , grouping : :: core :: ffi :: c_int) -> * mut rc_client_leaderboard_list_t ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_get_leaderboard_list."] pub fn rc_client_destroy_leaderboard_list (list : * mut rc_client_leaderboard_list_t) ; } extern "C" { # [doc = " Returns non-zero if the current game has any leaderboards."] pub fn rc_client_has_leaderboards (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_entry_t { pub user : * const :: core :: ffi :: c_char , pub display : [:: core :: ffi :: c_char ; 24usize] , pub submitted : time_t , pub rank : u32 , pub index : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_entry_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_entry_t > () - 48usize] ; ["Alignment of rc_client_leaderboard_entry_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_entry_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_t::user"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , user) - 0usize] ; ["Offset of field: rc_client_leaderboard_entry_t::display"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , display) - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_t::submitted"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , submitted) - 32usize] ; ["Offset of field: rc_client_leaderboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , rank) - 40usize] ; ["Offset of field: rc_client_leaderboard_entry_t::index"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , index) - 44usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_entry_list_t { pub entries : * mut rc_client_leaderboard_entry_t , pub num_entries : u32 , pub total_entries : u32 , pub user_index : i32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_entry_list_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_entry_list_t > () - 24usize] ; ["Alignment of rc_client_leaderboard_entry_list_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_entry_list_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , entries) - 0usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::num_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , num_entries) - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::total_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , total_entries) - 12usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::user_index"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , user_index) - 16usize] ; } ; pub type rc_client_fetch_leaderboard_entries_callback_t = :: core :: option :: Option < unsafe extern "C" fn (result : :: core :: ffi :: c_int , error_message : * const :: core :: ffi :: c_char , list : * mut rc_client_leaderboard_entry_list_t , client : * mut rc_client_t , callback_userdata : * mut :: core :: ffi :: c_void) > ; extern "C" { # [doc = " Fetches a list of leaderboard entries from the server.\n Callback receives an allocated list that must be free'd by calling rc_client_destroy_leaderboard_entry_list."] pub fn rc_client_begin_fetch_leaderboard_entries (client : * mut rc_client_t , leaderboard_id : u32 , first_entry : u32 , count : u32 , callback : rc_client_fetch_leaderboard_entries_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Fetches a list of leaderboard entries from the server containing the logged-in user.\n Callback receives an allocated list that must be free'd by calling rc_client_destroy_leaderboard_entry_list."] pub fn rc_client_begin_fetch_leaderboard_entries_around_user (client : * mut rc_client_t , leaderboard_id : u32 , count : u32 , callback : rc_client_fetch_leaderboard_entries_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Gets the URL for the profile picture of the user associated to a leaderboard entry.\n Returns RC_OK on success."] pub fn rc_client_leaderboard_entry_get_user_image_url (entry : * const rc_client_leaderboard_entry_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_begin_fetch_leaderboard_entries or rc_client_begin_fetch_leaderboard_entries_around_user."] pub fn rc_client_destroy_leaderboard_entry_list (list : * mut rc_client_leaderboard_entry_list_t) ; } # [doc = " Used for scoreboard events. Contains the response from the server when a leaderboard entry is submitted.\n NOTE: This structure is only valid within the event callback. If you want to make use of the data outside\n of the callback, you should create copies of both the top entries and usernames within."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_scoreboard_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub score : [:: core :: ffi :: c_char ; 24usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_scoreboard_entry_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_scoreboard_entry_t > () - 40usize] ; ["Alignment of rc_client_leaderboard_scoreboard_entry_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_scoreboard_entry_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::username"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , username) - 0usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , rank) - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , score) - 12usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_scoreboard_t { pub leaderboard_id : u32 , pub submitted_score : [:: core :: ffi :: c_char ; 24usize] , pub best_score : [:: core :: ffi :: c_char ; 24usize] , pub new_rank : u32 , pub num_entries : u32 , pub top_entries : * mut rc_client_leaderboard_scoreboard_entry_t , pub num_top_entries : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_scoreboard_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_scoreboard_t > () - 80usize] ; ["Alignment of rc_client_leaderboard_scoreboard_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_scoreboard_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::submitted_score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , submitted_score) - 4usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::best_score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , best_score) - 28usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::new_rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , new_rank) - 52usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::num_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , num_entries) - 56usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::top_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , top_entries) - 64usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::num_top_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , num_top_entries) - 72usize] ; } ; extern "C" { # [doc = " Returns non-zero if the current game supports rich presence."] pub fn rc_client_has_rich_presence (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Gets the current rich presence message.\n Returns the number of characters written to buffer."] pub fn rc_client_get_rich_presence_message (client : * mut rc_client_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> usize ; } pub const RC_CLIENT_EVENT_TYPE_NONE : _bindgen_ty_27 = 0 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_TRIGGERED : _bindgen_ty_27 = 1 ; pub const RC_CLIENT_EVENT_LEADERBOARD_STARTED : _bindgen_ty_27 = 2 ; pub const RC_CLIENT_EVENT_LEADERBOARD_FAILED : _bindgen_ty_27 = 3 ; pub const RC_CLIENT_EVENT_LEADERBOARD_SUBMITTED : _bindgen_ty_27 = 4 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_CHALLENGE_INDICATOR_SHOW : _bindgen_ty_27 = 5 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_CHALLENGE_INDICATOR_HIDE : _bindgen_ty_27 = 6 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_SHOW : _bindgen_ty_27 = 7 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_HIDE : _bindgen_ty_27 = 8 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_UPDATE : _bindgen_ty_27 = 9 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_SHOW : _bindgen_ty_27 = 10 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_HIDE : _bindgen_ty_27 = 11 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_UPDATE : _bindgen_ty_27 = 12 ; pub const RC_CLIENT_EVENT_LEADERBOARD_SCOREBOARD : _bindgen_ty_27 = 13 ; pub const RC_CLIENT_EVENT_RESET : _bindgen_ty_27 = 14 ; pub const RC_CLIENT_EVENT_GAME_COMPLETED : _bindgen_ty_27 = 15 ; pub const RC_CLIENT_EVENT_SERVER_ERROR : _bindgen_ty_27 = 16 ; pub const RC_CLIENT_EVENT_DISCONNECTED : _bindgen_ty_27 = 17 ; pub const RC_CLIENT_EVENT_RECONNECTED : _bindgen_ty_27 = 18 ; # [doc = "\\\n| Processing                                                                  |\n\\"] pub type _bindgen_ty_27 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_server_error_t { pub error_message : * const :: core :: ffi :: c_char , pub api : * const :: core :: ffi :: c_char , pub result : :: core :: ffi :: c_int , pub related_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_server_error_t"] [:: core :: mem :: size_of :: < rc_client_server_error_t > () - 24usize] ; ["Alignment of rc_client_server_error_t"] [:: core :: mem :: align_of :: < rc_client_server_error_t > () - 8usize] ; ["Offset of field: rc_client_server_error_t::error_message"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , error_message) - 0usize] ; ["Offset of field: rc_client_server_error_t::api"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , api) - 8usize] ; ["Offset of field: rc_client_server_error_t::result"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , result) - 16usize] ; ["Offset of field: rc_client_server_error_t::related_id"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , related_id) - 20usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_event_t { pub type_ : u32 , pub achievement : * mut rc_client_achievement_t , pub leaderboard : * mut rc_client_leaderboard_t , pub leaderboard_tracker : * mut rc_client_leaderboard_tracker_t , pub leaderboard_scoreboard : * mut rc_client_leaderboard_scoreboard_t , pub server_error : * mut rc_client_server_error_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_event_t"] [:: core :: mem :: size_of :: < rc_client_event_t > () - 48usize] ; ["Alignment of rc_client_event_t"] [:: core :: mem :: align_of :: < rc_client_event_t > () - 8usize] ; ["Offset of field: rc_client_event_t::type_"] [:: core :: mem :: offset_of ! (rc_client_event_t , type_) - 0usize] ; ["Offset of field: rc_client_event_t::achievement"] [:: core :: mem :: offset_of ! (rc_client_event_t , achievement) - 8usize] ; ["Offset of field: rc_client_event_t::leaderboard"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard) - 16usize] ; ["Offset of field: rc_client_event_t::leaderboard_tracker"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard_tracker) - 24usize] ; ["Offset of field: rc_client_event_t::leaderboard_scoreboard"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard_scoreboard) - 32usize] ; ["Offset of field: rc_client_event_t::server_error"] [:: core :: mem :: offset_of ! (rc_client_event_t , server_error) - 40usize] ; } ; # [doc = " Callback used to notify the client when certain events occur."] pub type rc_client_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (event : * const rc_client_event_t , client : * mut rc_client_t) > ; extern "C" { # [doc = " Provides a callback for event handling."] pub fn rc_client_set_event_handler (client : * mut rc_client_t , handler : rc_client_event_handler_t) ; } extern "C" { # [doc = " Provides a callback for reading memory."] pub fn rc_client_set_read_memory_function (client : * mut rc_client_t , handler : rc_client_read_memory_func_t) ; } extern "C" { # [doc = " Determines if there are any active achievements/leaderboards/rich presence that need processing."] pub fn rc_client_is_processing_required (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Processes achievements for the current frame."] pub fn rc_client_do_frame (client : * mut rc_client_t) ; } extern "C" { # [doc = " Processes the periodic queue.\n Called internally by rc_client_do_frame.\n Should be explicitly called if rc_client_do_frame is not being called because emulation is paused."] pub fn rc_client_idle (client : * mut rc_client_t) ; } extern "C" { # [doc = " Determines if a sufficient amount of frames have been processed since the last call to rc_client_can_pause.\n Should not be called unless the client is trying to pause.\n If false is returned, and frames_remaining is not NULL, frames_remaining will be set to the number of frames\n still required before pause is allowed, which can be converted to a time in seconds for displaying to the user."] pub fn rc_client_can_pause (client : * mut rc_client_t , frames_remaining : * mut u32) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Informs the runtime that the emulator has been reset. Will reset all achievements and leaderboards\n to their initial state (includes hiding indicators/trackers)."] pub fn rc_client_reset (client : * mut rc_client_t) ; } extern "C" { # [doc = " Gets the number of bytes needed to serialized the runtime state."] pub fn rc_client_progress_size (client : * mut rc_client_t) -> usize ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator.\n [deprecated] use rc_client_serialize_progress_sized instead"] pub fn rc_client_serialize_progress (client : * mut rc_client_t , buffer : * mut u8) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator."] pub fn rc_client_serialize_progress_sized (client : * mut rc_client_t , buffer : * mut u8 , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Deserializes the runtime state from a buffer.\n Returns RC_OK on success, or an error indicator.\n [deprecated] use rc_client_deserialize_progress_sized instead"] pub fn rc_client_deserialize_progress (client : * mut rc_client_t , serialized : * const u8) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator."] pub fn rc_client_deserialize_progress_sized (client : * mut rc_client_t , serialized : * const u8 , serialized_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __locale_data { pub _address : u8 , } pub type __builtin_va_list = [__va_list_tag ; 1usize] ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __va_list_tag { pub gp_offset : :: core :: ffi :: c_uint , pub fp_offset : :: core :: ffi :: c_uint , pub overflow_arg_area : * mut :: core :: ffi :: c_void , pub reg_save_area : * mut :: core :: ffi :: c_void , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __va_list_tag"] [:: core :: mem :: size_of :: < __va_list_tag > () - 24usize] ; ["Alignment of __va_list_tag"] [:: core :: mem :: align_of :: < __va_list_tag > () - 8usize] ; ["Offset of field: __va_list_tag::gp_offset"] [:: core :: mem :: offset_of ! (__va_list_tag , gp_offset) - 0usize] ; ["Offset of field: __va_list_tag::fp_offset"] [:: core :: mem :: offset_of ! (__va_list_tag , fp_offset) - 4usize] ; ["Offset of field: __va_list_tag::overflow_arg_area"] [:: core :: mem :: offset_of ! (__va_list_tag , overflow_arg_area) - 8usize] ; ["Offset of field: __va_list_tag::reg_save_area"] [:: core :: mem :: offset_of ! (__va_list_tag , reg_save_area) - 16usize] ; } ;
[INFO] [stdout] 3 + # [repr (C)] # [derive (Copy , Clone , Debug , Default , Eq , Hash , Ord , PartialEq , PartialOrd)] pub struct __BindgenBitfieldUnit < Storage > { storage : Storage , } impl < Storage > __BindgenBitfieldUnit < Storage > { # [inline] pub const fn new (storage : Storage) -> Self { Self { storage } } } impl < Storage > __BindgenBitfieldUnit < Storage > where Storage : AsRef < [u8] > + AsMut < [u8] >, { # [inline] pub fn get_bit (& self , index : usize) -> bool { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = self . storage . as_ref () [byte_index] ; let bit_index = if cfg ! (target_endian = "big") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; byte & mask == mask } # [inline] pub fn set_bit (& mut self , index : usize , val : bool) { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = & mut self . storage . as_mut () [byte_index] ; let bit_index = if cfg ! (target_endian = "big") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; if val { * byte |= mask ; } else { * byte &= ! mask ; } } # [inline] pub fn get (& self , bit_offset : usize , bit_width : u8) -> u64 { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; let mut val = 0 ; for i in 0 .. (bit_width as usize) { if self . get_bit (i + bit_offset) { let index = if cfg ! (target_endian = "big") { bit_width as usize - 1 - i } else { i } ; val |= 1 << index ; } } val } # [inline] pub fn set (& mut self , bit_offset : usize , bit_width : u8 , val : u64) { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; for i in 0 .. (bit_width as usize) { let mask = 1 << i ; let val_bit_is_set = val & mask == mask ; let index = if cfg ! (target_endian = "big") { bit_width as usize - 1 - i } else { i } ; self . set_bit (index + bit_offset , val_bit_is_set) ; } } } # [derive (PartialEq , Copy , Clone , Hash , Debug , Default)] # [repr (C)] pub struct __BindgenComplex < T > { pub re : T , pub im : T } pub const _STDINT_H : u32 = 1 ; pub const _FEATURES_H : u32 = 1 ; pub const _DEFAULT_SOURCE : u32 = 1 ; pub const __GLIBC_USE_ISOC2Y : u32 = 0 ; pub const __GLIBC_USE_ISOC23 : u32 = 0 ; pub const __USE_ISOC11 : u32 = 1 ; pub const __USE_ISOC99 : u32 = 1 ; pub const __USE_ISOC95 : u32 = 1 ; pub const __USE_POSIX_IMPLICITLY : u32 = 1 ; pub const _POSIX_SOURCE : u32 = 1 ; pub const _POSIX_C_SOURCE : u32 = 202405 ; pub const __USE_POSIX : u32 = 1 ; pub const __USE_POSIX2 : u32 = 1 ; pub const __USE_POSIX199309 : u32 = 1 ; pub const __USE_POSIX199506 : u32 = 1 ; pub const __USE_XOPEN2K : u32 = 1 ; pub const __USE_XOPEN2K8 : u32 = 1 ; pub const _ATFILE_SOURCE : u32 = 1 ; pub const __USE_XOPEN2K24 : u32 = 1 ; pub const __WORDSIZE : u32 = 64 ; pub const __WORDSIZE_TIME64_COMPAT32 : u32 = 1 ; pub const __SYSCALL_WORDSIZE : u32 = 64 ; pub const __TIMESIZE : u32 = 64 ; pub const __USE_TIME_BITS64 : u32 = 1 ; pub const __USE_MISC : u32 = 1 ; 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_C23_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 ; pub const __STDC_IEC_559_COMPLEX__ : u32 = 1 ; 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 = 43 ; pub const _SYS_CDEFS_H : u32 = 1 ; pub const __glibc_c99_flexarr_available : u32 = 1 ; pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI : u32 = 0 ; pub const __HAVE_GENERIC_SELECTION : u32 = 1 ; pub const __GLIBC_USE_LIB_EXT2 : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT_C23 : u32 = 0 ; 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_C23 : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_TYPES_EXT : u32 = 0 ; pub const _BITS_TYPES_H : u32 = 1 ; pub const _BITS_TYPESIZES_H : u32 = 1 ; pub const __OFF_T_MATCHES_OFF64_T : u32 = 1 ; pub const __INO_T_MATCHES_INO64_T : u32 = 1 ; pub const __RLIM_T_MATCHES_RLIM64_T : u32 = 1 ; pub const __STATFS_MATCHES_STATFS64 : u32 = 1 ; pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 : u32 = 1 ; pub const __FD_SETSIZE : u32 = 1024 ; pub const _BITS_TIME64_H : u32 = 1 ; pub const _BITS_WCHAR_H : u32 = 1 ; pub const _BITS_STDINT_INTN_H : u32 = 1 ; pub const _BITS_STDINT_UINTN_H : u32 = 1 ; pub const _BITS_STDINT_LEAST_H : u32 = 1 ; pub const INT8_MIN : i32 = - 128 ; pub const INT16_MIN : i32 = - 32768 ; pub const INT32_MIN : i32 = - 2147483648 ; pub const INT8_MAX : u32 = 127 ; pub const INT16_MAX : u32 = 32767 ; pub const INT32_MAX : u32 = 2147483647 ; pub const UINT8_MAX : u32 = 255 ; pub const UINT16_MAX : u32 = 65535 ; pub const UINT32_MAX : u32 = 4294967295 ; pub const INT_LEAST8_MIN : i32 = - 128 ; pub const INT_LEAST16_MIN : i32 = - 32768 ; pub const INT_LEAST32_MIN : i32 = - 2147483648 ; pub const INT_LEAST8_MAX : u32 = 127 ; pub const INT_LEAST16_MAX : u32 = 32767 ; pub const INT_LEAST32_MAX : u32 = 2147483647 ; pub const UINT_LEAST8_MAX : u32 = 255 ; pub const UINT_LEAST16_MAX : u32 = 65535 ; pub const UINT_LEAST32_MAX : u32 = 4294967295 ; pub const INT_FAST8_MIN : i32 = - 128 ; pub const INT_FAST16_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST32_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST8_MAX : u32 = 127 ; pub const INT_FAST16_MAX : u64 = 9223372036854775807 ; pub const INT_FAST32_MAX : u64 = 9223372036854775807 ; pub const UINT_FAST8_MAX : u32 = 255 ; pub const UINT_FAST16_MAX : i32 = - 1 ; pub const UINT_FAST32_MAX : i32 = - 1 ; pub const INTPTR_MIN : i64 = - 9223372036854775808 ; pub const INTPTR_MAX : u64 = 9223372036854775807 ; pub const UINTPTR_MAX : i32 = - 1 ; pub const PTRDIFF_MIN : i64 = - 9223372036854775808 ; pub const PTRDIFF_MAX : u64 = 9223372036854775807 ; pub const SIG_ATOMIC_MIN : i32 = - 2147483648 ; pub const SIG_ATOMIC_MAX : u32 = 2147483647 ; pub const SIZE_MAX : i32 = - 1 ; pub const WINT_MIN : u32 = 0 ; pub const WINT_MAX : u32 = 4294967295 ; pub const RC_VALUE_MAX_NAME_LENGTH : u32 = 15 ; pub const _TIME_H : u32 = 1 ; pub const _BITS_TIME_H : u32 = 1 ; pub const CLOCK_REALTIME : u32 = 0 ; pub const CLOCK_MONOTONIC : u32 = 1 ; pub const CLOCK_PROCESS_CPUTIME_ID : u32 = 2 ; pub const CLOCK_THREAD_CPUTIME_ID : u32 = 3 ; pub const CLOCK_MONOTONIC_RAW : u32 = 4 ; pub const CLOCK_REALTIME_COARSE : u32 = 5 ; pub const CLOCK_MONOTONIC_COARSE : u32 = 6 ; pub const CLOCK_BOOTTIME : u32 = 7 ; pub const CLOCK_REALTIME_ALARM : u32 = 8 ; pub const CLOCK_BOOTTIME_ALARM : u32 = 9 ; pub const CLOCK_TAI : u32 = 11 ; pub const TIMER_ABSTIME : u32 = 1 ; pub const __clock_t_defined : u32 = 1 ; pub const __time_t_defined : u32 = 1 ; pub const __struct_tm_defined : u32 = 1 ; pub const _STRUCT_TIMESPEC : u32 = 1 ; pub const _BITS_ENDIAN_H : u32 = 1 ; pub const __LITTLE_ENDIAN : u32 = 1234 ; pub const __BIG_ENDIAN : u32 = 4321 ; pub const __PDP_ENDIAN : u32 = 3412 ; pub const _BITS_ENDIANNESS_H : u32 = 1 ; pub const __BYTE_ORDER : u32 = 1234 ; pub const __FLOAT_WORD_ORDER : u32 = 1234 ; pub const __clockid_t_defined : u32 = 1 ; pub const __timer_t_defined : u32 = 1 ; pub const __itimerspec_defined : u32 = 1 ; pub const _BITS_TYPES_LOCALE_T_H : u32 = 1 ; pub const _BITS_TYPES___LOCALE_T_H : u32 = 1 ; pub const TIME_UTC : u32 = 1 ; pub const _STDIO_H : u32 = 1 ; pub const _____fpos_t_defined : u32 = 1 ; pub const ____mbstate_t_defined : u32 = 1 ; pub const _____fpos64_t_defined : u32 = 1 ; pub const ____FILE_defined : u32 = 1 ; pub const __FILE_defined : u32 = 1 ; 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 ; pub const BUFSIZ : u32 = 8192 ; pub const EOF : i32 = - 1 ; 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 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 ; pub const __HAVE_FLOAT128 : u32 = 1 ; pub const __HAVE_DISTINCT_FLOAT128 : u32 = 1 ; pub const __HAVE_FLOAT64X : u32 = 1 ; pub const __HAVE_FLOAT64X_LONG_DOUBLE : u32 = 1 ; pub const __HAVE_FLOAT16 : u32 = 0 ; pub const __HAVE_FLOAT32 : u32 = 1 ; pub const __HAVE_FLOAT64 : u32 = 1 ; pub const __HAVE_FLOAT32X : u32 = 1 ; pub const __HAVE_FLOAT128X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT16 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT32 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT64 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT32X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT64X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT128X : u32 = 0 ; pub const __HAVE_FLOATN_NOT_TYPEDEF : u32 = 0 ; pub const RC_IMAGE_TYPE_GAME : u32 = 1 ; pub const RC_IMAGE_TYPE_ACHIEVEMENT : u32 = 2 ; pub const RC_IMAGE_TYPE_ACHIEVEMENT_LOCKED : u32 = 3 ; pub const RC_IMAGE_TYPE_USER : u32 = 4 ; pub const RC_ACHIEVEMENT_CATEGORY_CORE : u32 = 3 ; pub const RC_ACHIEVEMENT_CATEGORY_UNOFFICIAL : u32 = 5 ; pub const RC_ACHIEVEMENT_TYPE_STANDARD : u32 = 0 ; pub const RC_ACHIEVEMENT_TYPE_MISSABLE : u32 = 1 ; pub const RC_ACHIEVEMENT_TYPE_PROGRESSION : u32 = 2 ; pub const RC_ACHIEVEMENT_TYPE_WIN : u32 = 3 ; pub const RC_CLIENT_LEADERBOARD_DISPLAY_SIZE : u32 = 24 ; pub const RC_OK : _bindgen_ty_1 = 0 ; pub const RC_INVALID_LUA_OPERAND : _bindgen_ty_1 = - 1 ; pub const RC_INVALID_MEMORY_OPERAND : _bindgen_ty_1 = - 2 ; pub const RC_INVALID_CONST_OPERAND : _bindgen_ty_1 = - 3 ; pub const RC_INVALID_FP_OPERAND : _bindgen_ty_1 = - 4 ; pub const RC_INVALID_CONDITION_TYPE : _bindgen_ty_1 = - 5 ; pub const RC_INVALID_OPERATOR : _bindgen_ty_1 = - 6 ; pub const RC_INVALID_REQUIRED_HITS : _bindgen_ty_1 = - 7 ; pub const RC_DUPLICATED_START : _bindgen_ty_1 = - 8 ; pub const RC_DUPLICATED_CANCEL : _bindgen_ty_1 = - 9 ; pub const RC_DUPLICATED_SUBMIT : _bindgen_ty_1 = - 10 ; pub const RC_DUPLICATED_VALUE : _bindgen_ty_1 = - 11 ; pub const RC_DUPLICATED_PROGRESS : _bindgen_ty_1 = - 12 ; pub const RC_MISSING_START : _bindgen_ty_1 = - 13 ; pub const RC_MISSING_CANCEL : _bindgen_ty_1 = - 14 ; pub const RC_MISSING_SUBMIT : _bindgen_ty_1 = - 15 ; pub const RC_MISSING_VALUE : _bindgen_ty_1 = - 16 ; pub const RC_INVALID_LBOARD_FIELD : _bindgen_ty_1 = - 17 ; pub const RC_MISSING_DISPLAY_STRING : _bindgen_ty_1 = - 18 ; pub const RC_OUT_OF_MEMORY : _bindgen_ty_1 = - 19 ; pub const RC_INVALID_VALUE_FLAG : _bindgen_ty_1 = - 20 ; pub const RC_MISSING_VALUE_MEASURED : _bindgen_ty_1 = - 21 ; pub const RC_MULTIPLE_MEASURED : _bindgen_ty_1 = - 22 ; pub const RC_INVALID_MEASURED_TARGET : _bindgen_ty_1 = - 23 ; pub const RC_INVALID_COMPARISON : _bindgen_ty_1 = - 24 ; pub const RC_INVALID_STATE : _bindgen_ty_1 = - 25 ; pub const RC_INVALID_JSON : _bindgen_ty_1 = - 26 ; pub const RC_API_FAILURE : _bindgen_ty_1 = - 27 ; pub const RC_LOGIN_REQUIRED : _bindgen_ty_1 = - 28 ; pub const RC_NO_GAME_LOADED : _bindgen_ty_1 = - 29 ; pub const RC_HARDCORE_DISABLED : _bindgen_ty_1 = - 30 ; pub const RC_ABORTED : _bindgen_ty_1 = - 31 ; pub const RC_NO_RESPONSE : _bindgen_ty_1 = - 32 ; pub const RC_ACCESS_DENIED : _bindgen_ty_1 = - 33 ; pub const RC_INVALID_CREDENTIALS : _bindgen_ty_1 = - 34 ; pub const RC_EXPIRED_TOKEN : _bindgen_ty_1 = - 35 ; pub const RC_INSUFFICIENT_BUFFER : _bindgen_ty_1 = - 36 ; pub const RC_INVALID_VARIABLE_NAME : _bindgen_ty_1 = - 37 ; pub const RC_UNKNOWN_VARIABLE_NAME : _bindgen_ty_1 = - 38 ; # [doc = "\\\n| Return values                                                               |\n\\"] pub type _bindgen_ty_1 = :: core :: ffi :: c_int ; extern "C" { pub fn rc_error_str (ret : :: core :: ffi :: c_int) -> * const :: core :: ffi :: c_char ; } pub type wchar_t = :: core :: ffi :: c_int ; # [repr (C)] # [repr (align (16))] # [derive (Debug , Copy , Clone)] pub struct max_align_t { pub __clang_max_align_nonce1 : :: core :: ffi :: c_longlong , pub __bindgen_padding_0 : u64 , pub __clang_max_align_nonce2 : u128 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of max_align_t"] [:: core :: mem :: size_of :: < max_align_t > () - 32usize] ; ["Alignment of max_align_t"] [:: core :: mem :: align_of :: < max_align_t > () - 16usize] ; ["Offset of field: max_align_t::__clang_max_align_nonce1"] [:: core :: mem :: offset_of ! (max_align_t , __clang_max_align_nonce1) - 0usize] ; ["Offset of field: max_align_t::__clang_max_align_nonce2"] [:: core :: mem :: offset_of ! (max_align_t , __clang_max_align_nonce2) - 16usize] ; } ; pub type __u_char = :: core :: ffi :: c_uchar ; pub type __u_short = :: core :: ffi :: c_ushort ; pub type __u_int = :: core :: ffi :: c_uint ; pub type __u_long = :: core :: ffi :: c_ulong ; pub type __int8_t = :: core :: ffi :: c_schar ; pub type __uint8_t = :: core :: ffi :: c_uchar ; pub type __int16_t = :: core :: ffi :: c_short ; pub type __uint16_t = :: core :: ffi :: c_ushort ; pub type __int32_t = :: core :: ffi :: c_int ; pub type __uint32_t = :: core :: ffi :: c_uint ; pub type __int64_t = :: core :: ffi :: c_long ; pub type __uint64_t = :: core :: ffi :: c_ulong ; pub type __int_least8_t = __int8_t ; pub type __uint_least8_t = __uint8_t ; pub type __int_least16_t = __int16_t ; pub type __uint_least16_t = __uint16_t ; pub type __int_least32_t = __int32_t ; pub type __uint_least32_t = __uint32_t ; pub type __int_least64_t = __int64_t ; pub type __uint_least64_t = __uint64_t ; pub type __quad_t = :: core :: ffi :: c_long ; pub type __u_quad_t = :: core :: ffi :: c_ulong ; pub type __intmax_t = :: core :: ffi :: c_long ; pub type __uintmax_t = :: core :: ffi :: c_ulong ; pub type __dev_t = :: core :: ffi :: c_ulong ; pub type __uid_t = :: core :: ffi :: c_uint ; pub type __gid_t = :: core :: ffi :: c_uint ; pub type __ino_t = :: core :: ffi :: c_ulong ; pub type __ino64_t = :: core :: ffi :: c_ulong ; pub type __mode_t = :: core :: ffi :: c_uint ; pub type __nlink_t = :: core :: ffi :: c_ulong ; pub type __off_t = :: core :: ffi :: c_long ; pub type __off64_t = :: core :: ffi :: c_long ; pub type __pid_t = :: core :: ffi :: c_int ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __fsid_t { pub __val : [:: core :: ffi :: c_int ; 2usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __fsid_t"] [:: core :: mem :: size_of :: < __fsid_t > () - 8usize] ; ["Alignment of __fsid_t"] [:: core :: mem :: align_of :: < __fsid_t > () - 4usize] ; ["Offset of field: __fsid_t::__val"] [:: core :: mem :: offset_of ! (__fsid_t , __val) - 0usize] ; } ; pub type __clock_t = :: core :: ffi :: c_long ; pub type __rlim_t = :: core :: ffi :: c_ulong ; pub type __rlim64_t = :: core :: ffi :: c_ulong ; pub type __id_t = :: core :: ffi :: c_uint ; pub type __time_t = :: core :: ffi :: c_long ; pub type __useconds_t = :: core :: ffi :: c_uint ; pub type __suseconds_t = :: core :: ffi :: c_long ; pub type __suseconds64_t = :: core :: ffi :: c_long ; pub type __daddr_t = :: core :: ffi :: c_int ; pub type __key_t = :: core :: ffi :: c_int ; pub type __clockid_t = :: core :: ffi :: c_int ; pub type __timer_t = * mut :: core :: ffi :: c_void ; pub type __blksize_t = :: core :: ffi :: c_long ; pub type __blkcnt_t = :: core :: ffi :: c_long ; pub type __blkcnt64_t = :: core :: ffi :: c_long ; pub type __fsblkcnt_t = :: core :: ffi :: c_ulong ; pub type __fsblkcnt64_t = :: core :: ffi :: c_ulong ; pub type __fsfilcnt_t = :: core :: ffi :: c_ulong ; pub type __fsfilcnt64_t = :: core :: ffi :: c_ulong ; pub type __fsword_t = :: core :: ffi :: c_long ; pub type __ssize_t = :: core :: ffi :: c_long ; pub type __syscall_slong_t = :: core :: ffi :: c_long ; pub type __syscall_ulong_t = :: core :: ffi :: c_ulong ; pub type __loff_t = __off64_t ; pub type __caddr_t = * mut :: core :: ffi :: c_char ; pub type __intptr_t = :: core :: ffi :: c_long ; pub type __socklen_t = :: core :: ffi :: c_uint ; pub type __sig_atomic_t = :: core :: ffi :: c_int ; pub type int_least8_t = __int_least8_t ; pub type int_least16_t = __int_least16_t ; pub type int_least32_t = __int_least32_t ; pub type int_least64_t = __int_least64_t ; pub type uint_least8_t = __uint_least8_t ; pub type uint_least16_t = __uint_least16_t ; pub type uint_least32_t = __uint_least32_t ; pub type uint_least64_t = __uint_least64_t ; pub type int_fast8_t = :: core :: ffi :: c_schar ; pub type int_fast16_t = :: core :: ffi :: c_long ; pub type int_fast32_t = :: core :: ffi :: c_long ; pub type int_fast64_t = :: core :: ffi :: c_long ; pub type uint_fast8_t = :: core :: ffi :: c_uchar ; pub type uint_fast16_t = :: core :: ffi :: c_ulong ; pub type uint_fast32_t = :: core :: ffi :: c_ulong ; pub type uint_fast64_t = :: core :: ffi :: c_ulong ; pub type intmax_t = __intmax_t ; pub type uintmax_t = __uintmax_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct lua_State { _unused : [u8 ; 0] , } # [doc = " Callback used to read num_bytes bytes from memory starting at address. If\n num_bytes is greater than 1, the value is read in little-endian from\n memory."] pub type rc_peek_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , num_bytes : u32 , ud : * mut :: core :: ffi :: c_void) -> u32 > ; pub const RC_MEMSIZE_8_BITS : _bindgen_ty_2 = 0 ; pub const RC_MEMSIZE_16_BITS : _bindgen_ty_2 = 1 ; pub const RC_MEMSIZE_24_BITS : _bindgen_ty_2 = 2 ; pub const RC_MEMSIZE_32_BITS : _bindgen_ty_2 = 3 ; pub const RC_MEMSIZE_LOW : _bindgen_ty_2 = 4 ; pub const RC_MEMSIZE_HIGH : _bindgen_ty_2 = 5 ; pub const RC_MEMSIZE_BIT_0 : _bindgen_ty_2 = 6 ; pub const RC_MEMSIZE_BIT_1 : _bindgen_ty_2 = 7 ; pub const RC_MEMSIZE_BIT_2 : _bindgen_ty_2 = 8 ; pub const RC_MEMSIZE_BIT_3 : _bindgen_ty_2 = 9 ; pub const RC_MEMSIZE_BIT_4 : _bindgen_ty_2 = 10 ; pub const RC_MEMSIZE_BIT_5 : _bindgen_ty_2 = 11 ; pub const RC_MEMSIZE_BIT_6 : _bindgen_ty_2 = 12 ; pub const RC_MEMSIZE_BIT_7 : _bindgen_ty_2 = 13 ; pub const RC_MEMSIZE_BITCOUNT : _bindgen_ty_2 = 14 ; pub const RC_MEMSIZE_16_BITS_BE : _bindgen_ty_2 = 15 ; pub const RC_MEMSIZE_24_BITS_BE : _bindgen_ty_2 = 16 ; pub const RC_MEMSIZE_32_BITS_BE : _bindgen_ty_2 = 17 ; pub const RC_MEMSIZE_FLOAT : _bindgen_ty_2 = 18 ; pub const RC_MEMSIZE_MBF32 : _bindgen_ty_2 = 19 ; pub const RC_MEMSIZE_MBF32_LE : _bindgen_ty_2 = 20 ; pub const RC_MEMSIZE_FLOAT_BE : _bindgen_ty_2 = 21 ; pub const RC_MEMSIZE_DOUBLE32 : _bindgen_ty_2 = 22 ; pub const RC_MEMSIZE_DOUBLE32_BE : _bindgen_ty_2 = 23 ; pub const RC_MEMSIZE_VARIABLE : _bindgen_ty_2 = 24 ; # [doc = "\\\n| Memory References                                                           |\n\\"] pub type _bindgen_ty_2 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memref_value_t { pub value : u32 , pub prior : u32 , pub size : u8 , pub changed : u8 , pub type_ : u8 , pub is_indirect : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memref_value_t"] [:: core :: mem :: size_of :: < rc_memref_value_t > () - 12usize] ; ["Alignment of rc_memref_value_t"] [:: core :: mem :: align_of :: < rc_memref_value_t > () - 4usize] ; ["Offset of field: rc_memref_value_t::value"] [:: core :: mem :: offset_of ! (rc_memref_value_t , value) - 0usize] ; ["Offset of field: rc_memref_value_t::prior"] [:: core :: mem :: offset_of ! (rc_memref_value_t , prior) - 4usize] ; ["Offset of field: rc_memref_value_t::size"] [:: core :: mem :: offset_of ! (rc_memref_value_t , size) - 8usize] ; ["Offset of field: rc_memref_value_t::changed"] [:: core :: mem :: offset_of ! (rc_memref_value_t , changed) - 9usize] ; ["Offset of field: rc_memref_value_t::type_"] [:: core :: mem :: offset_of ! (rc_memref_value_t , type_) - 10usize] ; ["Offset of field: rc_memref_value_t::is_indirect"] [:: core :: mem :: offset_of ! (rc_memref_value_t , is_indirect) - 11usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memref_t { pub value : rc_memref_value_t , pub address : u32 , pub next : * mut rc_memref_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memref_t"] [:: core :: mem :: size_of :: < rc_memref_t > () - 24usize] ; ["Alignment of rc_memref_t"] [:: core :: mem :: align_of :: < rc_memref_t > () - 8usize] ; ["Offset of field: rc_memref_t::value"] [:: core :: mem :: offset_of ! (rc_memref_t , value) - 0usize] ; ["Offset of field: rc_memref_t::address"] [:: core :: mem :: offset_of ! (rc_memref_t , address) - 12usize] ; ["Offset of field: rc_memref_t::next"] [:: core :: mem :: offset_of ! (rc_memref_t , next) - 16usize] ; } ; pub const RC_OPERAND_ADDRESS : _bindgen_ty_3 = 0 ; pub const RC_OPERAND_DELTA : _bindgen_ty_3 = 1 ; pub const RC_OPERAND_CONST : _bindgen_ty_3 = 2 ; pub const RC_OPERAND_FP : _bindgen_ty_3 = 3 ; pub const RC_OPERAND_LUA : _bindgen_ty_3 = 4 ; pub const RC_OPERAND_PRIOR : _bindgen_ty_3 = 5 ; pub const RC_OPERAND_BCD : _bindgen_ty_3 = 6 ; pub const RC_OPERAND_INVERTED : _bindgen_ty_3 = 7 ; pub const RC_OPERAND_RECALL : _bindgen_ty_3 = 8 ; # [doc = "\\\n| Operands                                                                    |\n\\"] pub type _bindgen_ty_3 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Copy , Clone)] pub struct rc_operand_t { pub value : rc_operand_t__bindgen_ty_1 , pub type_ : u8 , pub size : u8 , } # [repr (C)] # [derive (Copy , Clone)] pub union rc_operand_t__bindgen_ty_1 { pub memref : * mut rc_memref_t , pub num : u32 , pub dbl : f64 , pub luafunc : :: core :: ffi :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_operand_t__bindgen_ty_1"] [:: core :: mem :: size_of :: < rc_operand_t__bindgen_ty_1 > () - 8usize] ; ["Alignment of rc_operand_t__bindgen_ty_1"] [:: core :: mem :: align_of :: < rc_operand_t__bindgen_ty_1 > () - 8usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::memref"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , memref) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::num"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , num) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::dbl"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , dbl) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::luafunc"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , luafunc) - 0usize] ; } ; impl :: core :: fmt :: Debug for rc_operand_t__bindgen_ty_1 { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_operand_t__bindgen_ty_1 {{ union }}") } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_operand_t"] [:: core :: mem :: size_of :: < rc_operand_t > () - 16usize] ; ["Alignment of rc_operand_t"] [:: core :: mem :: align_of :: < rc_operand_t > () - 8usize] ; ["Offset of field: rc_operand_t::value"] [:: core :: mem :: offset_of ! (rc_operand_t , value) - 0usize] ; ["Offset of field: rc_operand_t::type_"] [:: core :: mem :: offset_of ! (rc_operand_t , type_) - 8usize] ; ["Offset of field: rc_operand_t::size"] [:: core :: mem :: offset_of ! (rc_operand_t , size) - 9usize] ; } ; impl :: core :: fmt :: Debug for rc_operand_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_operand_t {{ value: {:?}, type: {:?}, size: {:?} }}" , self . value , self . type_ , self . size) } } extern "C" { pub fn rc_operand_is_memref (operand : * const rc_operand_t) -> :: core :: ffi :: c_int ; } pub const RC_CONDITION_STANDARD : _bindgen_ty_4 = 0 ; pub const RC_CONDITION_PAUSE_IF : _bindgen_ty_4 = 1 ; pub const RC_CONDITION_RESET_IF : _bindgen_ty_4 = 2 ; pub const RC_CONDITION_MEASURED_IF : _bindgen_ty_4 = 3 ; pub const RC_CONDITION_TRIGGER : _bindgen_ty_4 = 4 ; pub const RC_CONDITION_MEASURED : _bindgen_ty_4 = 5 ; pub const RC_CONDITION_ADD_SOURCE : _bindgen_ty_4 = 6 ; pub const RC_CONDITION_SUB_SOURCE : _bindgen_ty_4 = 7 ; pub const RC_CONDITION_ADD_ADDRESS : _bindgen_ty_4 = 8 ; pub const RC_CONDITION_REMEMBER : _bindgen_ty_4 = 9 ; pub const RC_CONDITION_ADD_HITS : _bindgen_ty_4 = 10 ; pub const RC_CONDITION_SUB_HITS : _bindgen_ty_4 = 11 ; pub const RC_CONDITION_RESET_NEXT_IF : _bindgen_ty_4 = 12 ; pub const RC_CONDITION_AND_NEXT : _bindgen_ty_4 = 13 ; pub const RC_CONDITION_OR_NEXT : _bindgen_ty_4 = 14 ; # [doc = "\\\n| Conditions                                                                  |\n\\"] pub type _bindgen_ty_4 = :: core :: ffi :: c_uint ; pub const RC_OPERATOR_EQ : _bindgen_ty_5 = 0 ; pub const RC_OPERATOR_LT : _bindgen_ty_5 = 1 ; pub const RC_OPERATOR_LE : _bindgen_ty_5 = 2 ; pub const RC_OPERATOR_GT : _bindgen_ty_5 = 3 ; pub const RC_OPERATOR_GE : _bindgen_ty_5 = 4 ; pub const RC_OPERATOR_NE : _bindgen_ty_5 = 5 ; pub const RC_OPERATOR_NONE : _bindgen_ty_5 = 6 ; pub const RC_OPERATOR_MULT : _bindgen_ty_5 = 7 ; pub const RC_OPERATOR_DIV : _bindgen_ty_5 = 8 ; pub const RC_OPERATOR_AND : _bindgen_ty_5 = 9 ; pub const RC_OPERATOR_XOR : _bindgen_ty_5 = 10 ; pub const RC_OPERATOR_MOD : _bindgen_ty_5 = 11 ; pub const RC_OPERATOR_ADD : _bindgen_ty_5 = 12 ; pub const RC_OPERATOR_SUB : _bindgen_ty_5 = 13 ; pub type _bindgen_ty_5 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Copy , Clone)] pub struct rc_condition_t { pub operand1 : rc_operand_t , pub operand2 : rc_operand_t , pub required_hits : u32 , pub current_hits : u32 , pub next : * mut rc_condition_t , pub type_ : u8 , pub oper : u8 , pub pause : u8 , pub is_true : u8 , pub optimized_comparator : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_condition_t"] [:: core :: mem :: size_of :: < rc_condition_t > () - 56usize] ; ["Alignment of rc_condition_t"] [:: core :: mem :: align_of :: < rc_condition_t > () - 8usize] ; ["Offset of field: rc_condition_t::operand1"] [:: core :: mem :: offset_of ! (rc_condition_t , operand1) - 0usize] ; ["Offset of field: rc_condition_t::operand2"] [:: core :: mem :: offset_of ! (rc_condition_t , operand2) - 16usize] ; ["Offset of field: rc_condition_t::required_hits"] [:: core :: mem :: offset_of ! (rc_condition_t , required_hits) - 32usize] ; ["Offset of field: rc_condition_t::current_hits"] [:: core :: mem :: offset_of ! (rc_condition_t , current_hits) - 36usize] ; ["Offset of field: rc_condition_t::next"] [:: core :: mem :: offset_of ! (rc_condition_t , next) - 40usize] ; ["Offset of field: rc_condition_t::type_"] [:: core :: mem :: offset_of ! (rc_condition_t , type_) - 48usize] ; ["Offset of field: rc_condition_t::oper"] [:: core :: mem :: offset_of ! (rc_condition_t , oper) - 49usize] ; ["Offset of field: rc_condition_t::pause"] [:: core :: mem :: offset_of ! (rc_condition_t , pause) - 50usize] ; ["Offset of field: rc_condition_t::is_true"] [:: core :: mem :: offset_of ! (rc_condition_t , is_true) - 51usize] ; ["Offset of field: rc_condition_t::optimized_comparator"] [:: core :: mem :: offset_of ! (rc_condition_t , optimized_comparator) - 52usize] ; } ; impl :: core :: fmt :: Debug for rc_condition_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_condition_t {{ operand1: {:?}, operand2: {:?}, required_hits: {:?}, current_hits: {:?}, next: {:?}, type: {:?}, oper: {:?}, pause: {:?}, is_true: {:?}, optimized_comparator: {:?} }}" , self . operand1 , self . operand2 , self . required_hits , self . current_hits , self . next , self . type_ , self . oper , self . pause , self . is_true , self . optimized_comparator) } } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_condset_t { pub next : * mut rc_condset_t , pub conditions : * mut rc_condition_t , pub has_pause : u8 , pub is_paused : u8 , pub has_indirect_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_condset_t"] [:: core :: mem :: size_of :: < rc_condset_t > () - 24usize] ; ["Alignment of rc_condset_t"] [:: core :: mem :: align_of :: < rc_condset_t > () - 8usize] ; ["Offset of field: rc_condset_t::next"] [:: core :: mem :: offset_of ! (rc_condset_t , next) - 0usize] ; ["Offset of field: rc_condset_t::conditions"] [:: core :: mem :: offset_of ! (rc_condset_t , conditions) - 8usize] ; ["Offset of field: rc_condset_t::has_pause"] [:: core :: mem :: offset_of ! (rc_condset_t , has_pause) - 16usize] ; ["Offset of field: rc_condset_t::is_paused"] [:: core :: mem :: offset_of ! (rc_condset_t , is_paused) - 17usize] ; ["Offset of field: rc_condset_t::has_indirect_memrefs"] [:: core :: mem :: offset_of ! (rc_condset_t , has_indirect_memrefs) - 18usize] ; } ; pub const RC_TRIGGER_STATE_INACTIVE : _bindgen_ty_6 = 0 ; pub const RC_TRIGGER_STATE_WAITING : _bindgen_ty_6 = 1 ; pub const RC_TRIGGER_STATE_ACTIVE : _bindgen_ty_6 = 2 ; pub const RC_TRIGGER_STATE_PAUSED : _bindgen_ty_6 = 3 ; pub const RC_TRIGGER_STATE_RESET : _bindgen_ty_6 = 4 ; pub const RC_TRIGGER_STATE_TRIGGERED : _bindgen_ty_6 = 5 ; pub const RC_TRIGGER_STATE_PRIMED : _bindgen_ty_6 = 6 ; pub const RC_TRIGGER_STATE_DISABLED : _bindgen_ty_6 = 7 ; # [doc = "\\\n| Trigger                                                                     |\n\\"] pub type _bindgen_ty_6 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_trigger_t { pub requirement : * mut rc_condset_t , pub alternative : * mut rc_condset_t , pub memrefs : * mut rc_memref_t , pub measured_value : u32 , pub measured_target : u32 , pub state : u8 , pub has_hits : u8 , pub has_required_hits : u8 , pub measured_as_percent : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_trigger_t"] [:: core :: mem :: size_of :: < rc_trigger_t > () - 40usize] ; ["Alignment of rc_trigger_t"] [:: core :: mem :: align_of :: < rc_trigger_t > () - 8usize] ; ["Offset of field: rc_trigger_t::requirement"] [:: core :: mem :: offset_of ! (rc_trigger_t , requirement) - 0usize] ; ["Offset of field: rc_trigger_t::alternative"] [:: core :: mem :: offset_of ! (rc_trigger_t , alternative) - 8usize] ; ["Offset of field: rc_trigger_t::memrefs"] [:: core :: mem :: offset_of ! (rc_trigger_t , memrefs) - 16usize] ; ["Offset of field: rc_trigger_t::measured_value"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_value) - 24usize] ; ["Offset of field: rc_trigger_t::measured_target"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_target) - 28usize] ; ["Offset of field: rc_trigger_t::state"] [:: core :: mem :: offset_of ! (rc_trigger_t , state) - 32usize] ; ["Offset of field: rc_trigger_t::has_hits"] [:: core :: mem :: offset_of ! (rc_trigger_t , has_hits) - 33usize] ; ["Offset of field: rc_trigger_t::has_required_hits"] [:: core :: mem :: offset_of ! (rc_trigger_t , has_required_hits) - 34usize] ; ["Offset of field: rc_trigger_t::measured_as_percent"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_as_percent) - 35usize] ; } ; extern "C" { pub fn rc_trigger_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_trigger (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_trigger_t ; } extern "C" { pub fn rc_evaluate_trigger (trigger : * mut rc_trigger_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_test_trigger (trigger : * mut rc_trigger_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_trigger (self_ : * mut rc_trigger_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_value_t { pub value : rc_memref_value_t , pub conditions : * mut rc_condset_t , pub memrefs : * mut rc_memref_t , pub name : * const :: core :: ffi :: c_char , pub next : * mut rc_value_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_value_t"] [:: core :: mem :: size_of :: < rc_value_t > () - 48usize] ; ["Alignment of rc_value_t"] [:: core :: mem :: align_of :: < rc_value_t > () - 8usize] ; ["Offset of field: rc_value_t::value"] [:: core :: mem :: offset_of ! (rc_value_t , value) - 0usize] ; ["Offset of field: rc_value_t::conditions"] [:: core :: mem :: offset_of ! (rc_value_t , conditions) - 16usize] ; ["Offset of field: rc_value_t::memrefs"] [:: core :: mem :: offset_of ! (rc_value_t , memrefs) - 24usize] ; ["Offset of field: rc_value_t::name"] [:: core :: mem :: offset_of ! (rc_value_t , name) - 32usize] ; ["Offset of field: rc_value_t::next"] [:: core :: mem :: offset_of ! (rc_value_t , next) - 40usize] ; } ; extern "C" { pub fn rc_value_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_value (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_value_t ; } extern "C" { pub fn rc_evaluate_value (value : * mut rc_value_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> i32 ; } pub const RC_LBOARD_STATE_INACTIVE : _bindgen_ty_7 = 0 ; pub const RC_LBOARD_STATE_WAITING : _bindgen_ty_7 = 1 ; pub const RC_LBOARD_STATE_ACTIVE : _bindgen_ty_7 = 2 ; pub const RC_LBOARD_STATE_STARTED : _bindgen_ty_7 = 3 ; pub const RC_LBOARD_STATE_CANCELED : _bindgen_ty_7 = 4 ; pub const RC_LBOARD_STATE_TRIGGERED : _bindgen_ty_7 = 5 ; pub const RC_LBOARD_STATE_DISABLED : _bindgen_ty_7 = 6 ; # [doc = "\\\n| Leaderboards                                                                |\n\\"] pub type _bindgen_ty_7 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_lboard_t { pub start : rc_trigger_t , pub submit : rc_trigger_t , pub cancel : rc_trigger_t , pub value : rc_value_t , pub progress : * mut rc_value_t , pub memrefs : * mut rc_memref_t , pub state : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_lboard_t"] [:: core :: mem :: size_of :: < rc_lboard_t > () - 192usize] ; ["Alignment of rc_lboard_t"] [:: core :: mem :: align_of :: < rc_lboard_t > () - 8usize] ; ["Offset of field: rc_lboard_t::start"] [:: core :: mem :: offset_of ! (rc_lboard_t , start) - 0usize] ; ["Offset of field: rc_lboard_t::submit"] [:: core :: mem :: offset_of ! (rc_lboard_t , submit) - 40usize] ; ["Offset of field: rc_lboard_t::cancel"] [:: core :: mem :: offset_of ! (rc_lboard_t , cancel) - 80usize] ; ["Offset of field: rc_lboard_t::value"] [:: core :: mem :: offset_of ! (rc_lboard_t , value) - 120usize] ; ["Offset of field: rc_lboard_t::progress"] [:: core :: mem :: offset_of ! (rc_lboard_t , progress) - 168usize] ; ["Offset of field: rc_lboard_t::memrefs"] [:: core :: mem :: offset_of ! (rc_lboard_t , memrefs) - 176usize] ; ["Offset of field: rc_lboard_t::state"] [:: core :: mem :: offset_of ! (rc_lboard_t , state) - 184usize] ; } ; extern "C" { pub fn rc_lboard_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_lboard (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_lboard_t ; } extern "C" { pub fn rc_evaluate_lboard (lboard : * mut rc_lboard_t , value : * mut i32 , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_lboard (lboard : * mut rc_lboard_t) ; } pub const RC_FORMAT_FRAMES : _bindgen_ty_8 = 0 ; pub const RC_FORMAT_SECONDS : _bindgen_ty_8 = 1 ; pub const RC_FORMAT_CENTISECS : _bindgen_ty_8 = 2 ; pub const RC_FORMAT_SCORE : _bindgen_ty_8 = 3 ; pub const RC_FORMAT_VALUE : _bindgen_ty_8 = 4 ; pub const RC_FORMAT_MINUTES : _bindgen_ty_8 = 5 ; pub const RC_FORMAT_SECONDS_AS_MINUTES : _bindgen_ty_8 = 6 ; pub const RC_FORMAT_FLOAT1 : _bindgen_ty_8 = 7 ; pub const RC_FORMAT_FLOAT2 : _bindgen_ty_8 = 8 ; pub const RC_FORMAT_FLOAT3 : _bindgen_ty_8 = 9 ; pub const RC_FORMAT_FLOAT4 : _bindgen_ty_8 = 10 ; pub const RC_FORMAT_FLOAT5 : _bindgen_ty_8 = 11 ; pub const RC_FORMAT_FLOAT6 : _bindgen_ty_8 = 12 ; pub const RC_FORMAT_FIXED1 : _bindgen_ty_8 = 13 ; pub const RC_FORMAT_FIXED2 : _bindgen_ty_8 = 14 ; pub const RC_FORMAT_FIXED3 : _bindgen_ty_8 = 15 ; pub const RC_FORMAT_TENS : _bindgen_ty_8 = 16 ; pub const RC_FORMAT_HUNDREDS : _bindgen_ty_8 = 17 ; pub const RC_FORMAT_THOUSANDS : _bindgen_ty_8 = 18 ; pub const RC_FORMAT_UNSIGNED_VALUE : _bindgen_ty_8 = 19 ; # [doc = "\\\n| Value formatting                                                            |\n\\"] pub type _bindgen_ty_8 = :: core :: ffi :: c_uint ; extern "C" { pub fn rc_parse_format (format_str : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_format_value (buffer : * mut :: core :: ffi :: c_char , size : :: core :: ffi :: c_int , value : i32 , format : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_lookup_item_t { pub first : u32 , pub last : u32 , pub left : * mut rc_richpresence_lookup_item_t , pub right : * mut rc_richpresence_lookup_item_t , pub label : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_lookup_item_t"] [:: core :: mem :: size_of :: < rc_richpresence_lookup_item_t > () - 32usize] ; ["Alignment of rc_richpresence_lookup_item_t"] [:: core :: mem :: align_of :: < rc_richpresence_lookup_item_t > () - 8usize] ; ["Offset of field: rc_richpresence_lookup_item_t::first"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , first) - 0usize] ; ["Offset of field: rc_richpresence_lookup_item_t::last"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , last) - 4usize] ; ["Offset of field: rc_richpresence_lookup_item_t::left"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , left) - 8usize] ; ["Offset of field: rc_richpresence_lookup_item_t::right"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , right) - 16usize] ; ["Offset of field: rc_richpresence_lookup_item_t::label"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , label) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_lookup_t { pub root : * mut rc_richpresence_lookup_item_t , pub next : * mut rc_richpresence_lookup_t , pub name : * const :: core :: ffi :: c_char , pub default_label : * const :: core :: ffi :: c_char , pub format : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_lookup_t"] [:: core :: mem :: size_of :: < rc_richpresence_lookup_t > () - 40usize] ; ["Alignment of rc_richpresence_lookup_t"] [:: core :: mem :: align_of :: < rc_richpresence_lookup_t > () - 8usize] ; ["Offset of field: rc_richpresence_lookup_t::root"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , root) - 0usize] ; ["Offset of field: rc_richpresence_lookup_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , next) - 8usize] ; ["Offset of field: rc_richpresence_lookup_t::name"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , name) - 16usize] ; ["Offset of field: rc_richpresence_lookup_t::default_label"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , default_label) - 24usize] ; ["Offset of field: rc_richpresence_lookup_t::format"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , format) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_display_part_t { pub next : * mut rc_richpresence_display_part_t , pub text : * const :: core :: ffi :: c_char , pub lookup : * mut rc_richpresence_lookup_t , pub value : * mut rc_memref_value_t , pub display_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_display_part_t"] [:: core :: mem :: size_of :: < rc_richpresence_display_part_t > () - 40usize] ; ["Alignment of rc_richpresence_display_part_t"] [:: core :: mem :: align_of :: < rc_richpresence_display_part_t > () - 8usize] ; ["Offset of field: rc_richpresence_display_part_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , next) - 0usize] ; ["Offset of field: rc_richpresence_display_part_t::text"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , text) - 8usize] ; ["Offset of field: rc_richpresence_display_part_t::lookup"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , lookup) - 16usize] ; ["Offset of field: rc_richpresence_display_part_t::value"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , value) - 24usize] ; ["Offset of field: rc_richpresence_display_part_t::display_type"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , display_type) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_display_t { pub trigger : rc_trigger_t , pub next : * mut rc_richpresence_display_t , pub display : * mut rc_richpresence_display_part_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_display_t"] [:: core :: mem :: size_of :: < rc_richpresence_display_t > () - 56usize] ; ["Alignment of rc_richpresence_display_t"] [:: core :: mem :: align_of :: < rc_richpresence_display_t > () - 8usize] ; ["Offset of field: rc_richpresence_display_t::trigger"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , trigger) - 0usize] ; ["Offset of field: rc_richpresence_display_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , next) - 40usize] ; ["Offset of field: rc_richpresence_display_t::display"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , display) - 48usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_t { pub first_display : * mut rc_richpresence_display_t , pub first_lookup : * mut rc_richpresence_lookup_t , pub memrefs : * mut rc_memref_t , pub variables : * mut rc_value_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_t"] [:: core :: mem :: size_of :: < rc_richpresence_t > () - 32usize] ; ["Alignment of rc_richpresence_t"] [:: core :: mem :: align_of :: < rc_richpresence_t > () - 8usize] ; ["Offset of field: rc_richpresence_t::first_display"] [:: core :: mem :: offset_of ! (rc_richpresence_t , first_display) - 0usize] ; ["Offset of field: rc_richpresence_t::first_lookup"] [:: core :: mem :: offset_of ! (rc_richpresence_t , first_lookup) - 8usize] ; ["Offset of field: rc_richpresence_t::memrefs"] [:: core :: mem :: offset_of ! (rc_richpresence_t , memrefs) - 16usize] ; ["Offset of field: rc_richpresence_t::variables"] [:: core :: mem :: offset_of ! (rc_richpresence_t , variables) - 24usize] ; } ; extern "C" { pub fn rc_richpresence_size (script : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_richpresence_size_lines (script : * const :: core :: ffi :: c_char , lines_read : * mut :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_richpresence (buffer : * mut :: core :: ffi :: c_void , script : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_richpresence_t ; } extern "C" { pub fn rc_evaluate_richpresence (richpresence : * mut rc_richpresence_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_update_richpresence (richpresence : * mut rc_richpresence_t , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) ; } extern "C" { pub fn rc_get_richpresence_display_string (richpresence : * mut rc_richpresence_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_richpresence (self_ : * mut rc_richpresence_t) ; } # [doc = " A block of memory for variable length data (like strings and arrays)."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_buffer_chunk_t { pub write : * mut u8 , pub end : * mut u8 , pub start : * mut u8 , pub next : * mut rc_buffer_chunk_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_buffer_chunk_t"] [:: core :: mem :: size_of :: < rc_buffer_chunk_t > () - 32usize] ; ["Alignment of rc_buffer_chunk_t"] [:: core :: mem :: align_of :: < rc_buffer_chunk_t > () - 8usize] ; ["Offset of field: rc_buffer_chunk_t::write"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , write) - 0usize] ; ["Offset of field: rc_buffer_chunk_t::end"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , end) - 8usize] ; ["Offset of field: rc_buffer_chunk_t::start"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , start) - 16usize] ; ["Offset of field: rc_buffer_chunk_t::next"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , next) - 24usize] ; } ; # [doc = " A preallocated block of memory for variable length data (like strings and arrays)."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_buffer_t { pub chunk : rc_buffer_chunk_t , pub data : [u8 ; 256usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_buffer_t"] [:: core :: mem :: size_of :: < rc_buffer_t > () - 288usize] ; ["Alignment of rc_buffer_t"] [:: core :: mem :: align_of :: < rc_buffer_t > () - 8usize] ; ["Offset of field: rc_buffer_t::chunk"] [:: core :: mem :: offset_of ! (rc_buffer_t , chunk) - 0usize] ; ["Offset of field: rc_buffer_t::data"] [:: core :: mem :: offset_of ! (rc_buffer_t , data) - 32usize] ; } ; extern "C" { pub fn rc_buffer_init (buffer : * mut rc_buffer_t) ; } extern "C" { pub fn rc_buffer_destroy (buffer : * mut rc_buffer_t) ; } extern "C" { pub fn rc_buffer_reserve (buffer : * mut rc_buffer_t , amount : usize) -> * mut u8 ; } extern "C" { pub fn rc_buffer_consume (buffer : * mut rc_buffer_t , start : * const u8 , end : * mut u8) ; } extern "C" { pub fn rc_buffer_alloc (buffer : * mut rc_buffer_t , amount : usize) -> * mut :: core :: ffi :: c_void ; } extern "C" { pub fn rc_buffer_strcpy (buffer : * mut rc_buffer_t , src : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn rc_buffer_strncpy (buffer : * mut rc_buffer_t , src : * const :: core :: ffi :: c_char , len : usize) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn rc_djb2 (input : * const :: core :: ffi :: c_char) -> u32 ; } extern "C" { pub fn rc_format_md5 (checksum : * mut :: core :: ffi :: c_char , digest : * const u8) ; } # [doc = " A constructed request to send to the retroachievements server."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_request_t { pub url : * const :: core :: ffi :: c_char , pub post_data : * const :: core :: ffi :: c_char , pub content_type : * const :: core :: ffi :: c_char , pub buffer : rc_buffer_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_request_t"] [:: core :: mem :: size_of :: < rc_api_request_t > () - 312usize] ; ["Alignment of rc_api_request_t"] [:: core :: mem :: align_of :: < rc_api_request_t > () - 8usize] ; ["Offset of field: rc_api_request_t::url"] [:: core :: mem :: offset_of ! (rc_api_request_t , url) - 0usize] ; ["Offset of field: rc_api_request_t::post_data"] [:: core :: mem :: offset_of ! (rc_api_request_t , post_data) - 8usize] ; ["Offset of field: rc_api_request_t::content_type"] [:: core :: mem :: offset_of ! (rc_api_request_t , content_type) - 16usize] ; ["Offset of field: rc_api_request_t::buffer"] [:: core :: mem :: offset_of ! (rc_api_request_t , buffer) - 24usize] ; } ; # [doc = " Common attributes for all server responses."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_response_t { pub succeeded : :: core :: ffi :: c_int , pub error_message : * const :: core :: ffi :: c_char , pub error_code : * const :: core :: ffi :: c_char , pub buffer : rc_buffer_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_response_t"] [:: core :: mem :: size_of :: < rc_api_response_t > () - 312usize] ; ["Alignment of rc_api_response_t"] [:: core :: mem :: align_of :: < rc_api_response_t > () - 8usize] ; ["Offset of field: rc_api_response_t::succeeded"] [:: core :: mem :: offset_of ! (rc_api_response_t , succeeded) - 0usize] ; ["Offset of field: rc_api_response_t::error_message"] [:: core :: mem :: offset_of ! (rc_api_response_t , error_message) - 8usize] ; ["Offset of field: rc_api_response_t::error_code"] [:: core :: mem :: offset_of ! (rc_api_response_t , error_code) - 16usize] ; ["Offset of field: rc_api_response_t::buffer"] [:: core :: mem :: offset_of ! (rc_api_response_t , buffer) - 24usize] ; } ; extern "C" { pub fn rc_api_destroy_request (request : * mut rc_api_request_t) ; } extern "C" { pub fn rc_api_set_host (hostname : * const :: core :: ffi :: c_char) ; } extern "C" { pub fn rc_api_set_image_host (hostname : * const :: core :: ffi :: c_char) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_server_response_t { pub body : * const :: core :: ffi :: c_char , pub body_length : usize , pub http_status_code : :: core :: ffi :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_server_response_t"] [:: core :: mem :: size_of :: < rc_api_server_response_t > () - 24usize] ; ["Alignment of rc_api_server_response_t"] [:: core :: mem :: align_of :: < rc_api_server_response_t > () - 8usize] ; ["Offset of field: rc_api_server_response_t::body"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , body) - 0usize] ; ["Offset of field: rc_api_server_response_t::body_length"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , body_length) - 8usize] ; ["Offset of field: rc_api_server_response_t::http_status_code"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , http_status_code) - 16usize] ; } ; pub const RC_API_SERVER_RESPONSE_CLIENT_ERROR : _bindgen_ty_9 = - 1 ; pub const RC_API_SERVER_RESPONSE_RETRYABLE_CLIENT_ERROR : _bindgen_ty_9 = - 2 ; pub type _bindgen_ty_9 = :: core :: ffi :: c_int ; pub type clock_t = __clock_t ; pub type time_t = __time_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct tm { pub tm_sec : :: core :: ffi :: c_int , pub tm_min : :: core :: ffi :: c_int , pub tm_hour : :: core :: ffi :: c_int , pub tm_mday : :: core :: ffi :: c_int , pub tm_mon : :: core :: ffi :: c_int , pub tm_year : :: core :: ffi :: c_int , pub tm_wday : :: core :: ffi :: c_int , pub tm_yday : :: core :: ffi :: c_int , pub tm_isdst : :: core :: ffi :: c_int , pub tm_gmtoff : :: core :: ffi :: c_long , pub tm_zone : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of tm"] [:: core :: mem :: size_of :: < tm > () - 56usize] ; ["Alignment of tm"] [:: core :: mem :: align_of :: < tm > () - 8usize] ; ["Offset of field: tm::tm_sec"] [:: core :: mem :: offset_of ! (tm , tm_sec) - 0usize] ; ["Offset of field: tm::tm_min"] [:: core :: mem :: offset_of ! (tm , tm_min) - 4usize] ; ["Offset of field: tm::tm_hour"] [:: core :: mem :: offset_of ! (tm , tm_hour) - 8usize] ; ["Offset of field: tm::tm_mday"] [:: core :: mem :: offset_of ! (tm , tm_mday) - 12usize] ; ["Offset of field: tm::tm_mon"] [:: core :: mem :: offset_of ! (tm , tm_mon) - 16usize] ; ["Offset of field: tm::tm_year"] [:: core :: mem :: offset_of ! (tm , tm_year) - 20usize] ; ["Offset of field: tm::tm_wday"] [:: core :: mem :: offset_of ! (tm , tm_wday) - 24usize] ; ["Offset of field: tm::tm_yday"] [:: core :: mem :: offset_of ! (tm , tm_yday) - 28usize] ; ["Offset of field: tm::tm_isdst"] [:: core :: mem :: offset_of ! (tm , tm_isdst) - 32usize] ; ["Offset of field: tm::tm_gmtoff"] [:: core :: mem :: offset_of ! (tm , tm_gmtoff) - 40usize] ; ["Offset of field: tm::tm_zone"] [:: core :: mem :: offset_of ! (tm , tm_zone) - 48usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct timespec { pub tv_sec : __time_t , pub tv_nsec : __syscall_slong_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of timespec"] [:: core :: mem :: size_of :: < timespec > () - 16usize] ; ["Alignment of timespec"] [:: core :: mem :: align_of :: < timespec > () - 8usize] ; ["Offset of field: timespec::tv_sec"] [:: core :: mem :: offset_of ! (timespec , tv_sec) - 0usize] ; ["Offset of field: timespec::tv_nsec"] [:: core :: mem :: offset_of ! (timespec , tv_nsec) - 8usize] ; } ; pub type clockid_t = __clockid_t ; pub type timer_t = __timer_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct itimerspec { pub it_interval : timespec , pub it_value : timespec , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of itimerspec"] [:: core :: mem :: size_of :: < itimerspec > () - 32usize] ; ["Alignment of itimerspec"] [:: core :: mem :: align_of :: < itimerspec > () - 8usize] ; ["Offset of field: itimerspec::it_interval"] [:: core :: mem :: offset_of ! (itimerspec , it_interval) - 0usize] ; ["Offset of field: itimerspec::it_value"] [:: core :: mem :: offset_of ! (itimerspec , it_value) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct sigevent { _unused : [u8 ; 0] , } pub type pid_t = __pid_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __locale_struct { pub __locales : [* mut __locale_data ; 13usize] , pub __ctype_b : * const :: core :: ffi :: c_ushort , pub __ctype_tolower : * const :: core :: ffi :: c_int , pub __ctype_toupper : * const :: core :: ffi :: c_int , pub __names : [* const :: core :: ffi :: c_char ; 13usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __locale_struct"] [:: core :: mem :: size_of :: < __locale_struct > () - 232usize] ; ["Alignment of __locale_struct"] [:: core :: mem :: align_of :: < __locale_struct > () - 8usize] ; ["Offset of field: __locale_struct::__locales"] [:: core :: mem :: offset_of ! (__locale_struct , __locales) - 0usize] ; ["Offset of field: __locale_struct::__ctype_b"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_b) - 104usize] ; ["Offset of field: __locale_struct::__ctype_tolower"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_tolower) - 112usize] ; ["Offset of field: __locale_struct::__ctype_toupper"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_toupper) - 120usize] ; ["Offset of field: __locale_struct::__names"] [:: core :: mem :: offset_of ! (__locale_struct , __names) - 128usize] ; } ; pub type __locale_t = * mut __locale_struct ; pub type locale_t = __locale_t ; extern "C" { pub fn clock () -> clock_t ; } extern "C" { pub fn time (__timer : * mut time_t) -> time_t ; } extern "C" { pub fn difftime (__time1 : time_t , __time0 : time_t) -> f64 ; } extern "C" { pub fn mktime (__tp : * mut tm) -> time_t ; } extern "C" { pub fn strftime (__s : * mut :: core :: ffi :: c_char , __maxsize : usize , __format : * const :: core :: ffi :: c_char , __tp : * const tm) -> usize ; } extern "C" { pub fn strftime_l (__s : * mut :: core :: ffi :: c_char , __maxsize : usize , __format : * const :: core :: ffi :: c_char , __tp : * const tm , __loc : locale_t) -> usize ; } extern "C" { pub fn gmtime (__timer : * const time_t) -> * mut tm ; } extern "C" { pub fn localtime (__timer : * const time_t) -> * mut tm ; } extern "C" { pub fn gmtime_r (__timer : * const time_t , __tp : * mut tm) -> * mut tm ; } extern "C" { pub fn localtime_r (__timer : * const time_t , __tp : * mut tm) -> * mut tm ; } extern "C" { pub fn asctime (__tp : * const tm) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn ctime (__timer : * const time_t) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn asctime_r (__tp : * const tm , __buf : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn ctime_r (__timer : * const time_t , __buf : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub static mut __tzname : [* mut :: core :: ffi :: c_char ; 2usize] ; } extern "C" { pub static mut __daylight : :: core :: ffi :: c_int ; } extern "C" { pub static mut __timezone : :: core :: ffi :: c_long ; } extern "C" { pub static mut tzname : [* mut :: core :: ffi :: c_char ; 2usize] ; } extern "C" { pub fn tzset () ; } extern "C" { pub static mut daylight : :: core :: ffi :: c_int ; } extern "C" { pub static mut timezone : :: core :: ffi :: c_long ; } extern "C" { pub fn timegm (__tp : * mut tm) -> time_t ; } extern "C" { pub fn timelocal (__tp : * mut tm) -> time_t ; } extern "C" { pub fn dysize (__year : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn nanosleep (__requested_time : * const timespec , __remaining : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_getres (__clock_id : clockid_t , __res : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_gettime (__clock_id : clockid_t , __tp : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_settime (__clock_id : clockid_t , __tp : * const timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_nanosleep (__clock_id : clockid_t , __flags : :: core :: ffi :: c_int , __req : * const timespec , __rem : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_getcpuclockid (__pid : pid_t , __clock_id : * mut clockid_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_create (__clock_id : clockid_t , __evp : * mut sigevent , __timerid : * mut timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_delete (__timerid : timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_settime (__timerid : timer_t , __flags : :: core :: ffi :: c_int , __value : * const itimerspec , __ovalue : * mut itimerspec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_gettime (__timerid : timer_t , __value : * mut itimerspec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_getoverrun (__timerid : timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timespec_get (__ts : * mut timespec , __base : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } # [doc = " API parameters for a login request.\n If both password and api_token are provided, api_token will be ignored."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_login_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub password : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_login_request_t"] [:: core :: mem :: size_of :: < rc_api_login_request_t > () - 24usize] ; ["Alignment of rc_api_login_request_t"] [:: core :: mem :: align_of :: < rc_api_login_request_t > () - 8usize] ; ["Offset of field: rc_api_login_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , username) - 0usize] ; ["Offset of field: rc_api_login_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_login_request_t::password"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , password) - 16usize] ; } ; # [doc = " Response data for a login request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_login_response_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub score : u32 , pub score_softcore : u32 , pub num_unread_messages : u32 , pub display_name : * const :: core :: ffi :: c_char , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_login_response_t"] [:: core :: mem :: size_of :: < rc_api_login_response_t > () - 352usize] ; ["Alignment of rc_api_login_response_t"] [:: core :: mem :: align_of :: < rc_api_login_response_t > () - 8usize] ; ["Offset of field: rc_api_login_response_t::username"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , username) - 0usize] ; ["Offset of field: rc_api_login_response_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , api_token) - 8usize] ; ["Offset of field: rc_api_login_response_t::score"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , score) - 16usize] ; ["Offset of field: rc_api_login_response_t::score_softcore"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , score_softcore) - 20usize] ; ["Offset of field: rc_api_login_response_t::num_unread_messages"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , num_unread_messages) - 24usize] ; ["Offset of field: rc_api_login_response_t::display_name"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , display_name) - 32usize] ; ["Offset of field: rc_api_login_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , response) - 40usize] ; } ; extern "C" { pub fn rc_api_init_login_request (request : * mut rc_api_request_t , api_params : * const rc_api_login_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_login_response (response : * mut rc_api_login_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_login_server_response (response : * mut rc_api_login_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_login_response (response : * mut rc_api_login_response_t) ; } # [doc = " API parameters for a start session request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_start_session_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub game_hash : * const :: core :: ffi :: c_char , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_start_session_request_t"] [:: core :: mem :: size_of :: < rc_api_start_session_request_t > () - 40usize] ; ["Alignment of rc_api_start_session_request_t"] [:: core :: mem :: align_of :: < rc_api_start_session_request_t > () - 8usize] ; ["Offset of field: rc_api_start_session_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , username) - 0usize] ; ["Offset of field: rc_api_start_session_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_start_session_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_start_session_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_start_session_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , hardcore) - 32usize] ; } ; # [doc = " Response data for an achievement unlock."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_unlock_entry_t { pub achievement_id : u32 , pub when : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_unlock_entry_t"] [:: core :: mem :: size_of :: < rc_api_unlock_entry_t > () - 16usize] ; ["Alignment of rc_api_unlock_entry_t"] [:: core :: mem :: align_of :: < rc_api_unlock_entry_t > () - 8usize] ; ["Offset of field: rc_api_unlock_entry_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_unlock_entry_t , achievement_id) - 0usize] ; ["Offset of field: rc_api_unlock_entry_t::when"] [:: core :: mem :: offset_of ! (rc_api_unlock_entry_t , when) - 8usize] ; } ; # [doc = " Response data for a start session request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_start_session_response_t { pub hardcore_unlocks : * mut rc_api_unlock_entry_t , pub unlocks : * mut rc_api_unlock_entry_t , pub num_hardcore_unlocks : u32 , pub num_unlocks : u32 , pub server_now : time_t , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_start_session_response_t"] [:: core :: mem :: size_of :: < rc_api_start_session_response_t > () - 344usize] ; ["Alignment of rc_api_start_session_response_t"] [:: core :: mem :: align_of :: < rc_api_start_session_response_t > () - 8usize] ; ["Offset of field: rc_api_start_session_response_t::hardcore_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , hardcore_unlocks) - 0usize] ; ["Offset of field: rc_api_start_session_response_t::unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , unlocks) - 8usize] ; ["Offset of field: rc_api_start_session_response_t::num_hardcore_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , num_hardcore_unlocks) - 16usize] ; ["Offset of field: rc_api_start_session_response_t::num_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , num_unlocks) - 20usize] ; ["Offset of field: rc_api_start_session_response_t::server_now"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , server_now) - 24usize] ; ["Offset of field: rc_api_start_session_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_start_session_request (request : * mut rc_api_request_t , api_params : * const rc_api_start_session_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_start_session_response (response : * mut rc_api_start_session_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_start_session_server_response (response : * mut rc_api_start_session_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_start_session_response (response : * mut rc_api_start_session_response_t) ; } # [doc = " API parameters for a fetch user unlocks request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_user_unlocks_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_user_unlocks_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_user_unlocks_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_user_unlocks_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_user_unlocks_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , hardcore) - 20usize] ; } ; # [doc = " Response data for a fetch user unlocks request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_user_unlocks_response_t { pub achievement_ids : * mut u32 , pub num_achievement_ids : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_user_unlocks_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_user_unlocks_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_user_unlocks_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_user_unlocks_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::achievement_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , achievement_ids) - 0usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::num_achievement_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , num_achievement_ids) - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_user_unlocks_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_user_unlocks_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_user_unlocks_response (response : * mut rc_api_fetch_user_unlocks_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_user_unlocks_server_response (response : * mut rc_api_fetch_user_unlocks_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_user_unlocks_response (response : * mut rc_api_fetch_user_unlocks_response_t) ; } # [doc = " API parameters for a fetch code notes request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_code_notes_request_t { pub game_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_code_notes_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_code_notes_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_code_notes_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_code_notes_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_code_notes_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_request_t , game_id) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_code_note_t { pub address : u32 , pub author : * const :: core :: ffi :: c_char , pub note : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_code_note_t"] [:: core :: mem :: size_of :: < rc_api_code_note_t > () - 24usize] ; ["Alignment of rc_api_code_note_t"] [:: core :: mem :: align_of :: < rc_api_code_note_t > () - 8usize] ; ["Offset of field: rc_api_code_note_t::address"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , address) - 0usize] ; ["Offset of field: rc_api_code_note_t::author"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , author) - 8usize] ; ["Offset of field: rc_api_code_note_t::note"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , note) - 16usize] ; } ; # [doc = " Response data for a fetch code notes request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_code_notes_response_t { pub notes : * mut rc_api_code_note_t , pub num_notes : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_code_notes_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_code_notes_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_code_notes_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_code_notes_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::notes"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , notes) - 0usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::num_notes"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , num_notes) - 8usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_code_notes_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_code_notes_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_code_notes_response (response : * mut rc_api_fetch_code_notes_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_code_notes_server_response (response : * mut rc_api_fetch_code_notes_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_code_notes_response (response : * mut rc_api_fetch_code_notes_response_t) ; } # [doc = " API parameters for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_code_note_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub address : u32 , pub note : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_code_note_request_t"] [:: core :: mem :: size_of :: < rc_api_update_code_note_request_t > () - 32usize] ; ["Alignment of rc_api_update_code_note_request_t"] [:: core :: mem :: align_of :: < rc_api_update_code_note_request_t > () - 8usize] ; ["Offset of field: rc_api_update_code_note_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_code_note_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_code_note_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_update_code_note_request_t::address"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , address) - 20usize] ; ["Offset of field: rc_api_update_code_note_request_t::note"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , note) - 24usize] ; } ; # [doc = " Response data for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_code_note_response_t { pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_code_note_response_t"] [:: core :: mem :: size_of :: < rc_api_update_code_note_response_t > () - 312usize] ; ["Alignment of rc_api_update_code_note_response_t"] [:: core :: mem :: align_of :: < rc_api_update_code_note_response_t > () - 8usize] ; ["Offset of field: rc_api_update_code_note_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_response_t , response) - 0usize] ; } ; extern "C" { pub fn rc_api_init_update_code_note_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_code_note_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_code_note_response (response : * mut rc_api_update_code_note_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_code_note_server_response (response : * mut rc_api_update_code_note_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_code_note_response (response : * mut rc_api_update_code_note_response_t) ; } # [doc = " API parameters for an update achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_achievement_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub game_id : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub badge : * const :: core :: ffi :: c_char , pub trigger : * const :: core :: ffi :: c_char , pub points : u32 , pub category : u32 , pub type_ : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_achievement_request_t"] [:: core :: mem :: size_of :: < rc_api_update_achievement_request_t > () - 72usize] ; ["Alignment of rc_api_update_achievement_request_t"] [:: core :: mem :: align_of :: < rc_api_update_achievement_request_t > () - 8usize] ; ["Offset of field: rc_api_update_achievement_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_achievement_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_achievement_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_update_achievement_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , game_id) - 20usize] ; ["Offset of field: rc_api_update_achievement_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , title) - 24usize] ; ["Offset of field: rc_api_update_achievement_request_t::description"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , description) - 32usize] ; ["Offset of field: rc_api_update_achievement_request_t::badge"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , badge) - 40usize] ; ["Offset of field: rc_api_update_achievement_request_t::trigger"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , trigger) - 48usize] ; ["Offset of field: rc_api_update_achievement_request_t::points"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , points) - 56usize] ; ["Offset of field: rc_api_update_achievement_request_t::category"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , category) - 60usize] ; ["Offset of field: rc_api_update_achievement_request_t::type_"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , type_) - 64usize] ; } ; # [doc = " Response data for an update achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_achievement_response_t { pub achievement_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_achievement_response_t"] [:: core :: mem :: size_of :: < rc_api_update_achievement_response_t > () - 320usize] ; ["Alignment of rc_api_update_achievement_response_t"] [:: core :: mem :: align_of :: < rc_api_update_achievement_response_t > () - 8usize] ; ["Offset of field: rc_api_update_achievement_response_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_response_t , achievement_id) - 0usize] ; ["Offset of field: rc_api_update_achievement_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_update_achievement_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_achievement_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_achievement_response (response : * mut rc_api_update_achievement_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_achievement_server_response (response : * mut rc_api_update_achievement_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_achievement_response (response : * mut rc_api_update_achievement_response_t) ; } # [doc = " API parameters for an update leaderboard request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_leaderboard_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub leaderboard_id : u32 , pub game_id : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub start_trigger : * const :: core :: ffi :: c_char , pub submit_trigger : * const :: core :: ffi :: c_char , pub cancel_trigger : * const :: core :: ffi :: c_char , pub value_definition : * const :: core :: ffi :: c_char , pub format : * const :: core :: ffi :: c_char , pub lower_is_better : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_leaderboard_request_t"] [:: core :: mem :: size_of :: < rc_api_update_leaderboard_request_t > () - 88usize] ; ["Alignment of rc_api_update_leaderboard_request_t"] [:: core :: mem :: align_of :: < rc_api_update_leaderboard_request_t > () - 8usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , leaderboard_id) - 16usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , game_id) - 20usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , title) - 24usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::description"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , description) - 32usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::start_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , start_trigger) - 40usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::submit_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , submit_trigger) - 48usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::cancel_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , cancel_trigger) - 56usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::value_definition"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , value_definition) - 64usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::format"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , format) - 72usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , lower_is_better) - 80usize] ; } ; # [doc = " Response data for an update leaderboard request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_leaderboard_response_t { pub leaderboard_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_leaderboard_response_t"] [:: core :: mem :: size_of :: < rc_api_update_leaderboard_response_t > () - 320usize] ; ["Alignment of rc_api_update_leaderboard_response_t"] [:: core :: mem :: align_of :: < rc_api_update_leaderboard_response_t > () - 8usize] ; ["Offset of field: rc_api_update_leaderboard_response_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_response_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_api_update_leaderboard_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_update_leaderboard_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_leaderboard_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_leaderboard_response (response : * mut rc_api_update_leaderboard_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_leaderboard_server_response (response : * mut rc_api_update_leaderboard_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_leaderboard_response (response : * mut rc_api_update_leaderboard_response_t) ; } # [doc = " API parameters for a fetch badge range request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_badge_range_request_t { pub unused : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_badge_range_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_badge_range_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_badge_range_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_badge_range_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_badge_range_request_t::unused"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_request_t , unused) - 0usize] ; } ; # [doc = " Response data for a fetch badge range request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_badge_range_response_t { pub first_badge_id : u32 , pub next_badge_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_badge_range_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_badge_range_response_t > () - 320usize] ; ["Alignment of rc_api_fetch_badge_range_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_badge_range_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::first_badge_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , first_badge_id) - 0usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::next_badge_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , next_badge_id) - 4usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_fetch_badge_range_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_badge_range_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_badge_range_response (response : * mut rc_api_fetch_badge_range_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_badge_range_server_response (response : * mut rc_api_fetch_badge_range_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_badge_range_response (response : * mut rc_api_fetch_badge_range_response_t) ; } # [doc = " API parameters for an add game hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_add_game_hash_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub hash : * const :: core :: ffi :: c_char , pub hash_description : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_add_game_hash_request_t"] [:: core :: mem :: size_of :: < rc_api_add_game_hash_request_t > () - 48usize] ; ["Alignment of rc_api_add_game_hash_request_t"] [:: core :: mem :: align_of :: < rc_api_add_game_hash_request_t > () - 8usize] ; ["Offset of field: rc_api_add_game_hash_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , username) - 0usize] ; ["Offset of field: rc_api_add_game_hash_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_add_game_hash_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_add_game_hash_request_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , console_id) - 20usize] ; ["Offset of field: rc_api_add_game_hash_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , title) - 24usize] ; ["Offset of field: rc_api_add_game_hash_request_t::hash"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , hash) - 32usize] ; ["Offset of field: rc_api_add_game_hash_request_t::hash_description"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , hash_description) - 40usize] ; } ; # [doc = " Response data for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_add_game_hash_response_t { pub game_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_add_game_hash_response_t"] [:: core :: mem :: size_of :: < rc_api_add_game_hash_response_t > () - 320usize] ; ["Alignment of rc_api_add_game_hash_response_t"] [:: core :: mem :: align_of :: < rc_api_add_game_hash_response_t > () - 8usize] ; ["Offset of field: rc_api_add_game_hash_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_response_t , game_id) - 0usize] ; ["Offset of field: rc_api_add_game_hash_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_add_game_hash_request (request : * mut rc_api_request_t , api_params : * const rc_api_add_game_hash_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_add_game_hash_response (response : * mut rc_api_add_game_hash_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_add_game_hash_server_response (response : * mut rc_api_add_game_hash_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_add_game_hash_response (response : * mut rc_api_add_game_hash_response_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_t { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_menu_item_t { pub label : * const :: core :: ffi :: c_char , pub id : u32 , pub checked : u8 , pub enabled : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_menu_item_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_menu_item_t > () - 16usize] ; ["Alignment of rc_client_raintegration_menu_item_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_menu_item_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::label"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , label) - 0usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::id"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , id) - 8usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::checked"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , checked) - 12usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::enabled"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , enabled) - 13usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_menu_t { pub items : * mut rc_client_raintegration_menu_item_t , pub num_items : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_menu_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_menu_t > () - 16usize] ; ["Alignment of rc_client_raintegration_menu_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_menu_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_menu_t::items"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_t , items) - 0usize] ; ["Offset of field: rc_client_raintegration_menu_t::num_items"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_t , num_items) - 8usize] ; } ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_NONE : _bindgen_ty_10 = 0 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_PUBLISHED : _bindgen_ty_10 = 1 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_LOCAL : _bindgen_ty_10 = 2 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_MODIFIED : _bindgen_ty_10 = 3 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_INSECURE : _bindgen_ty_10 = 4 ; pub type _bindgen_ty_10 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_RAINTEGRATION_EVENT_TYPE_NONE : _bindgen_ty_11 = 0 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_MENUITEM_CHECKED_CHANGED : _bindgen_ty_11 = 1 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_HARDCORE_CHANGED : _bindgen_ty_11 = 2 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_PAUSE : _bindgen_ty_11 = 3 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_MENU_CHANGED : _bindgen_ty_11 = 4 ; pub type _bindgen_ty_11 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_event_t { pub type_ : u32 , pub menu_item : * const rc_client_raintegration_menu_item_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_event_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_event_t > () - 16usize] ; ["Alignment of rc_client_raintegration_event_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_event_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_event_t::type_"] [:: core :: mem :: offset_of ! (rc_client_raintegration_event_t , type_) - 0usize] ; ["Offset of field: rc_client_raintegration_event_t::menu_item"] [:: core :: mem :: offset_of ! (rc_client_raintegration_event_t , menu_item) - 8usize] ; } ; pub type rc_client_raintegration_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (event : * const rc_client_raintegration_event_t , client : * mut rc_client_t) > ; pub type rc_client_raintegration_write_memory_func_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , buffer : * mut u8 , num_bytes : u32 , client : * mut rc_client_t) > ; pub type rc_client_raintegration_get_game_name_func_t = :: core :: option :: Option < unsafe extern "C" fn (buffer : * mut :: core :: ffi :: c_char , buffer_size : u32 , client : * mut rc_client_t) > ; # [doc = " API parameters for a fetch achievement info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_achievement_info_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub first_entry : u32 , pub count : u32 , pub friends_only : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_achievement_info_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_achievement_info_request_t > () - 32usize] ; ["Alignment of rc_api_fetch_achievement_info_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_achievement_info_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::first_entry"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , first_entry) - 20usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::count"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , count) - 24usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::friends_only"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , friends_only) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_achievement_awarded_entry_t { pub username : * const :: core :: ffi :: c_char , pub awarded : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_achievement_awarded_entry_t"] [:: core :: mem :: size_of :: < rc_api_achievement_awarded_entry_t > () - 16usize] ; ["Alignment of rc_api_achievement_awarded_entry_t"] [:: core :: mem :: align_of :: < rc_api_achievement_awarded_entry_t > () - 8usize] ; ["Offset of field: rc_api_achievement_awarded_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_achievement_awarded_entry_t , username) - 0usize] ; ["Offset of field: rc_api_achievement_awarded_entry_t::awarded"] [:: core :: mem :: offset_of ! (rc_api_achievement_awarded_entry_t , awarded) - 8usize] ; } ; # [doc = " Response data for a fetch achievement info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_achievement_info_response_t { pub id : u32 , pub game_id : u32 , pub num_awarded : u32 , pub num_players : u32 , pub recently_awarded : * mut rc_api_achievement_awarded_entry_t , pub num_recently_awarded : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_achievement_info_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_achievement_info_response_t > () - 344usize] ; ["Alignment of rc_api_fetch_achievement_info_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_achievement_info_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , game_id) - 4usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_awarded) - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_players"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_players) - 12usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::recently_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , recently_awarded) - 16usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_recently_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_recently_awarded) - 24usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_fetch_achievement_info_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_achievement_info_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_achievement_info_response (response : * mut rc_api_fetch_achievement_info_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_achievement_info_server_response (response : * mut rc_api_fetch_achievement_info_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_achievement_info_response (response : * mut rc_api_fetch_achievement_info_response_t) ; } # [doc = " API parameters for a fetch leaderboard info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_leaderboard_info_request_t { pub leaderboard_id : u32 , pub count : u32 , pub first_entry : u32 , pub username : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_leaderboard_info_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_leaderboard_info_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_leaderboard_info_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_leaderboard_info_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::count"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , count) - 4usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::first_entry"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , first_entry) - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , username) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_lboard_info_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub index : u32 , pub score : i32 , pub submitted : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_lboard_info_entry_t"] [:: core :: mem :: size_of :: < rc_api_lboard_info_entry_t > () - 32usize] ; ["Alignment of rc_api_lboard_info_entry_t"] [:: core :: mem :: align_of :: < rc_api_lboard_info_entry_t > () - 8usize] ; ["Offset of field: rc_api_lboard_info_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , username) - 0usize] ; ["Offset of field: rc_api_lboard_info_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , rank) - 8usize] ; ["Offset of field: rc_api_lboard_info_entry_t::index"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , index) - 12usize] ; ["Offset of field: rc_api_lboard_info_entry_t::score"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , score) - 16usize] ; ["Offset of field: rc_api_lboard_info_entry_t::submitted"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , submitted) - 24usize] ; } ; # [doc = " Response data for a fetch leaderboard info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_leaderboard_info_response_t { pub id : u32 , pub format : :: core :: ffi :: c_int , pub lower_is_better : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub game_id : u32 , pub author : * const :: core :: ffi :: c_char , pub created : time_t , pub updated : time_t , pub entries : * mut rc_api_lboard_info_entry_t , pub num_entries : u32 , pub total_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_leaderboard_info_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_leaderboard_info_response_t > () - 400usize] ; ["Alignment of rc_api_fetch_leaderboard_info_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_leaderboard_info_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::format"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , format) - 4usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , lower_is_better) - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::title"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , title) - 16usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::description"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , description) - 24usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::definition"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , definition) - 32usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , game_id) - 40usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::author"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , author) - 48usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::created"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , created) - 56usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::updated"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , updated) - 64usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , entries) - 72usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , num_entries) - 80usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::total_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , total_entries) - 84usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , response) - 88usize] ; } ; extern "C" { pub fn rc_api_init_fetch_leaderboard_info_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_leaderboard_info_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_leaderboard_info_response (response : * mut rc_api_fetch_leaderboard_info_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_leaderboard_info_server_response (response : * mut rc_api_fetch_leaderboard_info_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_leaderboard_info_response (response : * mut rc_api_fetch_leaderboard_info_response_t) ; } # [doc = " API parameters for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_games_list_request_t { pub console_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_games_list_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_games_list_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_games_list_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_games_list_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_games_list_request_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_request_t , console_id) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_game_list_entry_t { pub id : u32 , pub name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_game_list_entry_t"] [:: core :: mem :: size_of :: < rc_api_game_list_entry_t > () - 16usize] ; ["Alignment of rc_api_game_list_entry_t"] [:: core :: mem :: align_of :: < rc_api_game_list_entry_t > () - 8usize] ; ["Offset of field: rc_api_game_list_entry_t::id"] [:: core :: mem :: offset_of ! (rc_api_game_list_entry_t , id) - 0usize] ; ["Offset of field: rc_api_game_list_entry_t::name"] [:: core :: mem :: offset_of ! (rc_api_game_list_entry_t , name) - 8usize] ; } ; # [doc = " Response data for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_games_list_response_t { pub entries : * mut rc_api_game_list_entry_t , pub num_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_games_list_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_games_list_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_games_list_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_games_list_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , entries) - 0usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , num_entries) - 8usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_games_list_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_games_list_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_games_list_response (response : * mut rc_api_fetch_games_list_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_games_list_server_response (response : * mut rc_api_fetch_games_list_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_games_list_response (response : * mut rc_api_fetch_games_list_response_t) ; } # [doc = " API parameters for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_titles_request_t { pub game_ids : * const u32 , pub num_game_ids : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_titles_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_titles_request_t > () - 16usize] ; ["Alignment of rc_api_fetch_game_titles_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_titles_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_request_t::game_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_request_t , game_ids) - 0usize] ; ["Offset of field: rc_api_fetch_game_titles_request_t::num_game_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_request_t , num_game_ids) - 8usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_game_title_entry_t { pub id : u32 , pub title : * const :: core :: ffi :: c_char , pub image_name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_game_title_entry_t"] [:: core :: mem :: size_of :: < rc_api_game_title_entry_t > () - 24usize] ; ["Alignment of rc_api_game_title_entry_t"] [:: core :: mem :: align_of :: < rc_api_game_title_entry_t > () - 8usize] ; ["Offset of field: rc_api_game_title_entry_t::id"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , id) - 0usize] ; ["Offset of field: rc_api_game_title_entry_t::title"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , title) - 8usize] ; ["Offset of field: rc_api_game_title_entry_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , image_name) - 16usize] ; } ; # [doc = " Response data for a fetch games title request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_titles_response_t { pub entries : * mut rc_api_game_title_entry_t , pub num_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_titles_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_titles_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_game_titles_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_titles_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , entries) - 0usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , num_entries) - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_game_titles_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_game_titles_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_titles_server_response (response : * mut rc_api_fetch_game_titles_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_game_titles_response (response : * mut rc_api_fetch_game_titles_response_t) ; } pub type __gnuc_va_list = __builtin_va_list ; # [repr (C)] # [derive (Copy , Clone)] pub struct __mbstate_t { pub __count : :: core :: ffi :: c_int , pub __value : __mbstate_t__bindgen_ty_1 , } # [repr (C)] # [derive (Copy , Clone)] pub union __mbstate_t__bindgen_ty_1 { pub __wch : :: core :: ffi :: c_uint , pub __wchb : [:: core :: ffi :: c_char ; 4usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __mbstate_t__bindgen_ty_1"] [:: core :: mem :: size_of :: < __mbstate_t__bindgen_ty_1 > () - 4usize] ; ["Alignment of __mbstate_t__bindgen_ty_1"] [:: core :: mem :: align_of :: < __mbstate_t__bindgen_ty_1 > () - 4usize] ; ["Offset of field: __mbstate_t__bindgen_ty_1::__wch"] [:: core :: mem :: offset_of ! (__mbstate_t__bindgen_ty_1 , __wch) - 0usize] ; ["Offset of field: __mbstate_t__bindgen_ty_1::__wchb"] [:: core :: mem :: offset_of ! (__mbstate_t__bindgen_ty_1 , __wchb) - 0usize] ; } ; impl :: core :: fmt :: Debug for __mbstate_t__bindgen_ty_1 { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "__mbstate_t__bindgen_ty_1 {{ union }}") } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __mbstate_t"] [:: core :: mem :: size_of :: < __mbstate_t > () - 8usize] ; ["Alignment of __mbstate_t"] [:: core :: mem :: align_of :: < __mbstate_t > () - 4usize] ; ["Offset of field: __mbstate_t::__count"] [:: core :: mem :: offset_of ! (__mbstate_t , __count) - 0usize] ; ["Offset of field: __mbstate_t::__value"] [:: core :: mem :: offset_of ! (__mbstate_t , __value) - 4usize] ; } ; impl :: core :: fmt :: Debug for __mbstate_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "__mbstate_t {{ __count: {:?}, __value: {:?} }}" , self . __count , self . __value) } } # [repr (C)] # [derive (Copy , Clone)] pub struct _G_fpos_t { pub __pos : __off_t , pub __state : __mbstate_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _G_fpos_t"] [:: core :: mem :: size_of :: < _G_fpos_t > () - 16usize] ; ["Alignment of _G_fpos_t"] [:: core :: mem :: align_of :: < _G_fpos_t > () - 8usize] ; ["Offset of field: _G_fpos_t::__pos"] [:: core :: mem :: offset_of ! (_G_fpos_t , __pos) - 0usize] ; ["Offset of field: _G_fpos_t::__state"] [:: core :: mem :: offset_of ! (_G_fpos_t , __state) - 8usize] ; } ; impl :: core :: fmt :: Debug for _G_fpos_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "_G_fpos_t {{ __pos: {:?}, __state: {:?} }}" , self . __pos , self . __state) } } pub type __fpos_t = _G_fpos_t ; # [repr (C)] # [derive (Copy , Clone)] pub struct _G_fpos64_t { pub __pos : __off64_t , pub __state : __mbstate_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _G_fpos64_t"] [:: core :: mem :: size_of :: < _G_fpos64_t > () - 16usize] ; ["Alignment of _G_fpos64_t"] [:: core :: mem :: align_of :: < _G_fpos64_t > () - 8usize] ; ["Offset of field: _G_fpos64_t::__pos"] [:: core :: mem :: offset_of ! (_G_fpos64_t , __pos) - 0usize] ; ["Offset of field: _G_fpos64_t::__state"] [:: core :: mem :: offset_of ! (_G_fpos64_t , __state) - 8usize] ; } ; impl :: core :: fmt :: Debug for _G_fpos64_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "_G_fpos64_t {{ __pos: {:?}, __state: {:?} }}" , self . __pos , self . __state) } } pub type __fpos64_t = _G_fpos64_t ; pub type __FILE = _IO_FILE ; pub type FILE = _IO_FILE ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_marker { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_codecvt { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_wide_data { _unused : [u8 ; 0] , } pub type _IO_lock_t = :: core :: ffi :: c_void ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_FILE { pub _flags : :: core :: ffi :: c_int , pub _IO_read_ptr : * mut :: core :: ffi :: c_char , pub _IO_read_end : * mut :: core :: ffi :: c_char , pub _IO_read_base : * mut :: core :: ffi :: c_char , pub _IO_write_base : * mut :: core :: ffi :: c_char , pub _IO_write_ptr : * mut :: core :: ffi :: c_char , pub _IO_write_end : * mut :: core :: ffi :: c_char , pub _IO_buf_base : * mut :: core :: ffi :: c_char , pub _IO_buf_end : * mut :: core :: ffi :: c_char , pub _IO_save_base : * mut :: core :: ffi :: c_char , pub _IO_backup_base : * mut :: core :: ffi :: c_char , pub _IO_save_end : * mut :: core :: ffi :: c_char , pub _markers : * mut _IO_marker , pub _chain : * mut _IO_FILE , pub _fileno : :: core :: ffi :: c_int , pub _bitfield_align_1 : [u32 ; 0] , pub _bitfield_1 : __BindgenBitfieldUnit < [u8 ; 3usize] > , pub _short_backupbuf : [:: core :: ffi :: c_char ; 1usize] , pub _old_offset : __off_t , pub _cur_column : :: core :: ffi :: c_ushort , pub _vtable_offset : :: core :: ffi :: c_schar , pub _shortbuf : [:: core :: ffi :: c_char ; 1usize] , pub _lock : * mut _IO_lock_t , pub _offset : __off64_t , pub _codecvt : * mut _IO_codecvt , pub _wide_data : * mut _IO_wide_data , pub _freeres_list : * mut _IO_FILE , pub _freeres_buf : * mut :: core :: ffi :: c_void , pub _prevchain : * mut * mut _IO_FILE , pub _mode : :: core :: ffi :: c_int , pub _unused3 : :: core :: ffi :: c_int , pub _total_written : __uint64_t , pub _unused2 : [:: core :: ffi :: c_char ; 8usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _IO_FILE"] [:: core :: mem :: size_of :: < _IO_FILE > () - 216usize] ; ["Alignment of _IO_FILE"] [:: core :: mem :: align_of :: < _IO_FILE > () - 8usize] ; ["Offset of field: _IO_FILE::_flags"] [:: core :: mem :: offset_of ! (_IO_FILE , _flags) - 0usize] ; ["Offset of field: _IO_FILE::_IO_read_ptr"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_ptr) - 8usize] ; ["Offset of field: _IO_FILE::_IO_read_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_end) - 16usize] ; ["Offset of field: _IO_FILE::_IO_read_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_base) - 24usize] ; ["Offset of field: _IO_FILE::_IO_write_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_base) - 32usize] ; ["Offset of field: _IO_FILE::_IO_write_ptr"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_ptr) - 40usize] ; ["Offset of field: _IO_FILE::_IO_write_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_end) - 48usize] ; ["Offset of field: _IO_FILE::_IO_buf_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_buf_base) - 56usize] ; ["Offset of field: _IO_FILE::_IO_buf_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_buf_end) - 64usize] ; ["Offset of field: _IO_FILE::_IO_save_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_save_base) - 72usize] ; ["Offset of field: _IO_FILE::_IO_backup_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_backup_base) - 80usize] ; ["Offset of field: _IO_FILE::_IO_save_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_save_end) - 88usize] ; ["Offset of field: _IO_FILE::_markers"] [:: core :: mem :: offset_of ! (_IO_FILE , _markers) - 96usize] ; ["Offset of field: _IO_FILE::_chain"] [:: core :: mem :: offset_of ! (_IO_FILE , _chain) - 104usize] ; ["Offset of field: _IO_FILE::_fileno"] [:: core :: mem :: offset_of ! (_IO_FILE , _fileno) - 112usize] ; ["Offset of field: _IO_FILE::_short_backupbuf"] [:: core :: mem :: offset_of ! (_IO_FILE , _short_backupbuf) - 119usize] ; ["Offset of field: _IO_FILE::_old_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _old_offset) - 120usize] ; ["Offset of field: _IO_FILE::_cur_column"] [:: core :: mem :: offset_of ! (_IO_FILE , _cur_column) - 128usize] ; ["Offset of field: _IO_FILE::_vtable_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _vtable_offset) - 130usize] ; ["Offset of field: _IO_FILE::_shortbuf"] [:: core :: mem :: offset_of ! (_IO_FILE , _shortbuf) - 131usize] ; ["Offset of field: _IO_FILE::_lock"] [:: core :: mem :: offset_of ! (_IO_FILE , _lock) - 136usize] ; ["Offset of field: _IO_FILE::_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _offset) - 144usize] ; ["Offset of field: _IO_FILE::_codecvt"] [:: core :: mem :: offset_of ! (_IO_FILE , _codecvt) - 152usize] ; ["Offset of field: _IO_FILE::_wide_data"] [:: core :: mem :: offset_of ! (_IO_FILE , _wide_data) - 160usize] ; ["Offset of field: _IO_FILE::_freeres_list"] [:: core :: mem :: offset_of ! (_IO_FILE , _freeres_list) - 168usize] ; ["Offset of field: _IO_FILE::_freeres_buf"] [:: core :: mem :: offset_of ! (_IO_FILE , _freeres_buf) - 176usize] ; ["Offset of field: _IO_FILE::_prevchain"] [:: core :: mem :: offset_of ! (_IO_FILE , _prevchain) - 184usize] ; ["Offset of field: _IO_FILE::_mode"] [:: core :: mem :: offset_of ! (_IO_FILE , _mode) - 192usize] ; ["Offset of field: _IO_FILE::_unused3"] [:: core :: mem :: offset_of ! (_IO_FILE , _unused3) - 196usize] ; ["Offset of field: _IO_FILE::_total_written"] [:: core :: mem :: offset_of ! (_IO_FILE , _total_written) - 200usize] ; ["Offset of field: _IO_FILE::_unused2"] [:: core :: mem :: offset_of ! (_IO_FILE , _unused2) - 208usize] ; } ; impl _IO_FILE { # [inline] pub fn _flags2 (& self) -> :: core :: ffi :: c_int { unsafe { u32::cast_signed (self . _bitfield_1 . get (0usize , 24u8) as u32) } } # [inline] pub fn set__flags2 (& mut self , val : :: core :: ffi :: c_int) { unsafe { let val : u32 = :: core :: mem :: transmute (val) ; self . _bitfield_1 . set (0usize , 24u8 , val as u64) } } # [inline] pub fn new_bitfield_1 (_flags2 : :: core :: ffi :: c_int) -> __BindgenBitfieldUnit < [u8 ; 3usize] > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [u8 ; 3usize] > = Default :: default () ; __bindgen_bitfield_unit . set (0usize , 24u8 , { let _flags2 : u32 = unsafe { :: core :: mem :: transmute (_flags2) } ; _flags2 as u64 }) ; __bindgen_bitfield_unit } } pub type cookie_read_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __buf : * mut :: core :: ffi :: c_char , __nbytes : usize) -> __ssize_t > ; pub type cookie_write_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __buf : * const :: core :: ffi :: c_char , __nbytes : usize) -> __ssize_t > ; pub type cookie_seek_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __pos : * mut __off64_t , __w : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int > ; pub type cookie_close_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void) -> :: core :: ffi :: 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 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _IO_cookie_io_functions_t"] [:: core :: mem :: size_of :: < _IO_cookie_io_functions_t > () - 32usize] ; ["Alignment of _IO_cookie_io_functions_t"] [:: core :: mem :: align_of :: < _IO_cookie_io_functions_t > () - 8usize] ; ["Offset of field: _IO_cookie_io_functions_t::read"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , read) - 0usize] ; ["Offset of field: _IO_cookie_io_functions_t::write"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , write) - 8usize] ; ["Offset of field: _IO_cookie_io_functions_t::seek"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , seek) - 16usize] ; ["Offset of field: _IO_cookie_io_functions_t::close"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , close) - 24usize] ; } ; 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" { pub static mut stdin : * mut FILE ; } extern "C" { pub static mut stdout : * mut FILE ; } extern "C" { pub static mut stderr : * mut FILE ; } extern "C" { pub fn remove (__filename : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rename (__old : * const :: core :: ffi :: c_char , __new : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn renameat (__oldfd : :: core :: ffi :: c_int , __old : * const :: core :: ffi :: c_char , __newfd : :: core :: ffi :: c_int , __new : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fclose (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn tmpfile () -> * mut FILE ; } extern "C" { pub fn tmpnam (arg1 : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn tmpnam_r (__s : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn tempnam (__dir : * const :: core :: ffi :: c_char , __pfx : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn fflush (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fflush_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fopen (__filename : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn freopen (__filename : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char , __stream : * mut FILE) -> * mut FILE ; } extern "C" { pub fn fdopen (__fd : :: core :: ffi :: c_int , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn fopencookie (__magic_cookie : * mut :: core :: ffi :: c_void , __modes : * const :: core :: ffi :: c_char , __io_funcs : cookie_io_functions_t) -> * mut FILE ; } extern "C" { pub fn fmemopen (__s : * mut :: core :: ffi :: c_void , __len : usize , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn open_memstream (__bufloc : * mut * mut :: core :: ffi :: c_char , __sizeloc : * mut usize) -> * mut FILE ; } extern "C" { pub fn setbuf (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char) ; } extern "C" { pub fn setvbuf (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char , __modes : :: core :: ffi :: c_int , __n : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn setbuffer (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char , __size : usize) ; } extern "C" { pub fn setlinebuf (__stream : * mut FILE) ; } extern "C" { pub fn fprintf (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn printf (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn sprintf (__s : * mut :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vfprintf (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vprintf (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsprintf (__s : * mut :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn snprintf (__s : * mut :: core :: ffi :: c_char , __maxlen : :: core :: ffi :: c_ulong , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsnprintf (__s : * mut :: core :: ffi :: c_char , __maxlen : :: core :: ffi :: c_ulong , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vasprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __f : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn __asprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn asprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vdprintf (__fd : :: core :: ffi :: c_int , __fmt : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn dprintf (__fd : :: core :: ffi :: c_int , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fscanf (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn scanf (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn sscanf (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } pub type __cfloat128 = __BindgenComplex < u128 > ; pub type _Float128 = u128 ; pub type _Float32 = f32 ; pub type _Float64 = f64 ; pub type _Float32x = f64 ; pub type _Float64x = u128 ; extern "C" { # [link_name = "\u{1}__isoc99_fscanf"] pub fn fscanf1 (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_scanf"] pub fn scanf1 (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_sscanf"] pub fn sscanf1 (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vfscanf (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vscanf (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsscanf (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vfscanf"] pub fn vfscanf1 (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vscanf"] pub fn vscanf1 (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vsscanf"] pub fn vsscanf1 (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgetc (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getc (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getchar () -> :: core :: ffi :: c_int ; } extern "C" { pub fn getc_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getchar_unlocked () -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgetc_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fputc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putchar (__c : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fputc_unlocked (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putc_unlocked (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putchar_unlocked (__c : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getw (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putw (__w : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgets (__s : * mut :: core :: ffi :: c_char , __n : :: core :: ffi :: c_int , __stream : * mut FILE) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn __getdelim (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __delimiter : :: core :: ffi :: c_int , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn getdelim (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __delimiter : :: core :: ffi :: c_int , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn getline (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn fputs (__s : * const :: core :: ffi :: c_char , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn puts (__s : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ungetc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fread (__ptr : * mut :: core :: ffi :: c_void , __size : :: core :: ffi :: c_ulong , __n : :: core :: ffi :: c_ulong , __stream : * mut FILE) -> :: core :: ffi :: c_ulong ; } extern "C" { pub fn fwrite (__ptr : * const :: core :: ffi :: c_void , __size : :: core :: ffi :: c_ulong , __n : :: core :: ffi :: c_ulong , __s : * mut FILE) -> :: core :: ffi :: c_ulong ; } extern "C" { pub fn fread_unlocked (__ptr : * mut :: core :: ffi :: c_void , __size : usize , __n : usize , __stream : * mut FILE) -> usize ; } extern "C" { pub fn fwrite_unlocked (__ptr : * const :: core :: ffi :: c_void , __size : usize , __n : usize , __stream : * mut FILE) -> usize ; } extern "C" { pub fn fseek (__stream : * mut FILE , __off : :: core :: ffi :: c_long , __whence : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ftell (__stream : * mut FILE) -> :: core :: ffi :: c_long ; } extern "C" { pub fn rewind (__stream : * mut FILE) ; } extern "C" { pub fn fseeko (__stream : * mut FILE , __off : __off_t , __whence : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ftello (__stream : * mut FILE) -> __off_t ; } extern "C" { pub fn fgetpos (__stream : * mut FILE , __pos : * mut fpos_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fsetpos (__stream : * mut FILE , __pos : * const fpos_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clearerr (__stream : * mut FILE) ; } extern "C" { pub fn feof (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ferror (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clearerr_unlocked (__stream : * mut FILE) ; } extern "C" { pub fn feof_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ferror_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn perror (__s : * const :: core :: ffi :: c_char) ; } extern "C" { pub fn fileno (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fileno_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn pclose (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn popen (__command : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn ctermid (__s : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn flockfile (__stream : * mut FILE) ; } extern "C" { pub fn ftrylockfile (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn funlockfile (__stream : * mut FILE) ; } extern "C" { pub fn __uflow (arg1 : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn __overflow (arg1 : * mut FILE , arg2 : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } pub const RC_CONSOLE_UNKNOWN : _bindgen_ty_12 = 0 ; pub const RC_CONSOLE_MEGA_DRIVE : _bindgen_ty_12 = 1 ; pub const RC_CONSOLE_NINTENDO_64 : _bindgen_ty_12 = 2 ; pub const RC_CONSOLE_SUPER_NINTENDO : _bindgen_ty_12 = 3 ; pub const RC_CONSOLE_GAMEBOY : _bindgen_ty_12 = 4 ; pub const RC_CONSOLE_GAMEBOY_ADVANCE : _bindgen_ty_12 = 5 ; pub const RC_CONSOLE_GAMEBOY_COLOR : _bindgen_ty_12 = 6 ; pub const RC_CONSOLE_NINTENDO : _bindgen_ty_12 = 7 ; pub const RC_CONSOLE_PC_ENGINE : _bindgen_ty_12 = 8 ; pub const RC_CONSOLE_SEGA_CD : _bindgen_ty_12 = 9 ; pub const RC_CONSOLE_SEGA_32X : _bindgen_ty_12 = 10 ; pub const RC_CONSOLE_MASTER_SYSTEM : _bindgen_ty_12 = 11 ; pub const RC_CONSOLE_PLAYSTATION : _bindgen_ty_12 = 12 ; pub const RC_CONSOLE_ATARI_LYNX : _bindgen_ty_12 = 13 ; pub const RC_CONSOLE_NEOGEO_POCKET : _bindgen_ty_12 = 14 ; pub const RC_CONSOLE_GAME_GEAR : _bindgen_ty_12 = 15 ; pub const RC_CONSOLE_GAMECUBE : _bindgen_ty_12 = 16 ; pub const RC_CONSOLE_ATARI_JAGUAR : _bindgen_ty_12 = 17 ; pub const RC_CONSOLE_NINTENDO_DS : _bindgen_ty_12 = 18 ; pub const RC_CONSOLE_WII : _bindgen_ty_12 = 19 ; pub const RC_CONSOLE_WII_U : _bindgen_ty_12 = 20 ; pub const RC_CONSOLE_PLAYSTATION_2 : _bindgen_ty_12 = 21 ; pub const RC_CONSOLE_XBOX : _bindgen_ty_12 = 22 ; pub const RC_CONSOLE_MAGNAVOX_ODYSSEY2 : _bindgen_ty_12 = 23 ; pub const RC_CONSOLE_POKEMON_MINI : _bindgen_ty_12 = 24 ; pub const RC_CONSOLE_ATARI_2600 : _bindgen_ty_12 = 25 ; pub const RC_CONSOLE_MS_DOS : _bindgen_ty_12 = 26 ; pub const RC_CONSOLE_ARCADE : _bindgen_ty_12 = 27 ; pub const RC_CONSOLE_VIRTUAL_BOY : _bindgen_ty_12 = 28 ; pub const RC_CONSOLE_MSX : _bindgen_ty_12 = 29 ; pub const RC_CONSOLE_COMMODORE_64 : _bindgen_ty_12 = 30 ; pub const RC_CONSOLE_ZX81 : _bindgen_ty_12 = 31 ; pub const RC_CONSOLE_ORIC : _bindgen_ty_12 = 32 ; pub const RC_CONSOLE_SG1000 : _bindgen_ty_12 = 33 ; pub const RC_CONSOLE_VIC20 : _bindgen_ty_12 = 34 ; pub const RC_CONSOLE_AMIGA : _bindgen_ty_12 = 35 ; pub const RC_CONSOLE_ATARI_ST : _bindgen_ty_12 = 36 ; pub const RC_CONSOLE_AMSTRAD_PC : _bindgen_ty_12 = 37 ; pub const RC_CONSOLE_APPLE_II : _bindgen_ty_12 = 38 ; pub const RC_CONSOLE_SATURN : _bindgen_ty_12 = 39 ; pub const RC_CONSOLE_DREAMCAST : _bindgen_ty_12 = 40 ; pub const RC_CONSOLE_PSP : _bindgen_ty_12 = 41 ; pub const RC_CONSOLE_CDI : _bindgen_ty_12 = 42 ; pub const RC_CONSOLE_3DO : _bindgen_ty_12 = 43 ; pub const RC_CONSOLE_COLECOVISION : _bindgen_ty_12 = 44 ; pub const RC_CONSOLE_INTELLIVISION : _bindgen_ty_12 = 45 ; pub const RC_CONSOLE_VECTREX : _bindgen_ty_12 = 46 ; pub const RC_CONSOLE_PC8800 : _bindgen_ty_12 = 47 ; pub const RC_CONSOLE_PC9800 : _bindgen_ty_12 = 48 ; pub const RC_CONSOLE_PCFX : _bindgen_ty_12 = 49 ; pub const RC_CONSOLE_ATARI_5200 : _bindgen_ty_12 = 50 ; pub const RC_CONSOLE_ATARI_7800 : _bindgen_ty_12 = 51 ; pub const RC_CONSOLE_X68K : _bindgen_ty_12 = 52 ; pub const RC_CONSOLE_WONDERSWAN : _bindgen_ty_12 = 53 ; pub const RC_CONSOLE_CASSETTEVISION : _bindgen_ty_12 = 54 ; pub const RC_CONSOLE_SUPER_CASSETTEVISION : _bindgen_ty_12 = 55 ; pub const RC_CONSOLE_NEO_GEO_CD : _bindgen_ty_12 = 56 ; pub const RC_CONSOLE_FAIRCHILD_CHANNEL_F : _bindgen_ty_12 = 57 ; pub const RC_CONSOLE_FM_TOWNS : _bindgen_ty_12 = 58 ; pub const RC_CONSOLE_ZX_SPECTRUM : _bindgen_ty_12 = 59 ; pub const RC_CONSOLE_GAME_AND_WATCH : _bindgen_ty_12 = 60 ; pub const RC_CONSOLE_NOKIA_NGAGE : _bindgen_ty_12 = 61 ; pub const RC_CONSOLE_NINTENDO_3DS : _bindgen_ty_12 = 62 ; pub const RC_CONSOLE_SUPERVISION : _bindgen_ty_12 = 63 ; pub const RC_CONSOLE_SHARPX1 : _bindgen_ty_12 = 64 ; pub const RC_CONSOLE_TIC80 : _bindgen_ty_12 = 65 ; pub const RC_CONSOLE_THOMSONTO8 : _bindgen_ty_12 = 66 ; pub const RC_CONSOLE_PC6000 : _bindgen_ty_12 = 67 ; pub const RC_CONSOLE_PICO : _bindgen_ty_12 = 68 ; pub const RC_CONSOLE_MEGADUCK : _bindgen_ty_12 = 69 ; pub const RC_CONSOLE_ZEEBO : _bindgen_ty_12 = 70 ; pub const RC_CONSOLE_ARDUBOY : _bindgen_ty_12 = 71 ; pub const RC_CONSOLE_WASM4 : _bindgen_ty_12 = 72 ; pub const RC_CONSOLE_ARCADIA_2001 : _bindgen_ty_12 = 73 ; pub const RC_CONSOLE_INTERTON_VC_4000 : _bindgen_ty_12 = 74 ; pub const RC_CONSOLE_ELEKTOR_TV_GAMES_COMPUTER : _bindgen_ty_12 = 75 ; pub const RC_CONSOLE_PC_ENGINE_CD : _bindgen_ty_12 = 76 ; pub const RC_CONSOLE_ATARI_JAGUAR_CD : _bindgen_ty_12 = 77 ; pub const RC_CONSOLE_NINTENDO_DSI : _bindgen_ty_12 = 78 ; pub const RC_CONSOLE_TI83 : _bindgen_ty_12 = 79 ; pub const RC_CONSOLE_UZEBOX : _bindgen_ty_12 = 80 ; pub const RC_CONSOLE_HUBS : _bindgen_ty_12 = 100 ; pub const RC_CONSOLE_EVENTS : _bindgen_ty_12 = 101 ; pub const RC_CONSOLE_STANDALONE : _bindgen_ty_12 = 102 ; # [doc = "\\\n| Console identifiers                                                         |\n\\"] pub type _bindgen_ty_12 = :: core :: ffi :: c_uint ; extern "C" { pub fn rc_console_name (console_id : u32) -> * const :: core :: ffi :: c_char ; } pub const RC_MEMORY_TYPE_SYSTEM_RAM : _bindgen_ty_13 = 0 ; pub const RC_MEMORY_TYPE_SAVE_RAM : _bindgen_ty_13 = 1 ; pub const RC_MEMORY_TYPE_VIDEO_RAM : _bindgen_ty_13 = 2 ; pub const RC_MEMORY_TYPE_READONLY : _bindgen_ty_13 = 3 ; pub const RC_MEMORY_TYPE_HARDWARE_CONTROLLER : _bindgen_ty_13 = 4 ; pub const RC_MEMORY_TYPE_VIRTUAL_RAM : _bindgen_ty_13 = 5 ; pub const RC_MEMORY_TYPE_UNUSED : _bindgen_ty_13 = 6 ; # [doc = "\\\n| Memory mapping                                                              |\n\\"] pub type _bindgen_ty_13 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memory_region_t { pub start_address : u32 , pub end_address : u32 , pub real_address : u32 , pub type_ : u8 , pub description : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memory_region_t"] [:: core :: mem :: size_of :: < rc_memory_region_t > () - 24usize] ; ["Alignment of rc_memory_region_t"] [:: core :: mem :: align_of :: < rc_memory_region_t > () - 8usize] ; ["Offset of field: rc_memory_region_t::start_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , start_address) - 0usize] ; ["Offset of field: rc_memory_region_t::end_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , end_address) - 4usize] ; ["Offset of field: rc_memory_region_t::real_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , real_address) - 8usize] ; ["Offset of field: rc_memory_region_t::type_"] [:: core :: mem :: offset_of ! (rc_memory_region_t , type_) - 12usize] ; ["Offset of field: rc_memory_region_t::description"] [:: core :: mem :: offset_of ! (rc_memory_region_t , description) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memory_regions_t { pub region : * const rc_memory_region_t , pub num_regions : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memory_regions_t"] [:: core :: mem :: size_of :: < rc_memory_regions_t > () - 16usize] ; ["Alignment of rc_memory_regions_t"] [:: core :: mem :: align_of :: < rc_memory_regions_t > () - 8usize] ; ["Offset of field: rc_memory_regions_t::region"] [:: core :: mem :: offset_of ! (rc_memory_regions_t , region) - 0usize] ; ["Offset of field: rc_memory_regions_t::num_regions"] [:: core :: mem :: offset_of ! (rc_memory_regions_t , num_regions) - 8usize] ; } ; extern "C" { pub fn rc_console_memory_regions (console_id : u32) -> * const rc_memory_regions_t ; } extern "C" { pub fn rc_hash_generate_from_buffer (hash : * mut :: core :: ffi :: c_char , console_id : u32 , buffer : * const u8 , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_hash_generate_from_file (hash : * mut :: core :: ffi :: c_char , console_id : u32 , path : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_iterator { pub buffer : * const u8 , pub buffer_size : usize , pub consoles : [u8 ; 12usize] , pub index : :: core :: ffi :: c_int , pub path : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_iterator"] [:: core :: mem :: size_of :: < rc_hash_iterator > () - 40usize] ; ["Alignment of rc_hash_iterator"] [:: core :: mem :: align_of :: < rc_hash_iterator > () - 8usize] ; ["Offset of field: rc_hash_iterator::buffer"] [:: core :: mem :: offset_of ! (rc_hash_iterator , buffer) - 0usize] ; ["Offset of field: rc_hash_iterator::buffer_size"] [:: core :: mem :: offset_of ! (rc_hash_iterator , buffer_size) - 8usize] ; ["Offset of field: rc_hash_iterator::consoles"] [:: core :: mem :: offset_of ! (rc_hash_iterator , consoles) - 16usize] ; ["Offset of field: rc_hash_iterator::index"] [:: core :: mem :: offset_of ! (rc_hash_iterator , index) - 28usize] ; ["Offset of field: rc_hash_iterator::path"] [:: core :: mem :: offset_of ! (rc_hash_iterator , path) - 32usize] ; } ; pub type rc_hash_iterator_t = rc_hash_iterator ; extern "C" { pub fn rc_hash_initialize_iterator (iterator : * mut rc_hash_iterator , path : * const :: core :: ffi :: c_char , buffer : * const u8 , buffer_size : usize) ; } extern "C" { pub fn rc_hash_destroy_iterator (iterator : * mut rc_hash_iterator) ; } extern "C" { pub fn rc_hash_iterate (hash : * mut :: core :: ffi :: c_char , iterator : * mut rc_hash_iterator) -> :: core :: ffi :: c_int ; } pub type rc_hash_message_callback = :: core :: option :: Option < unsafe extern "C" fn (arg1 : * const :: core :: ffi :: c_char) > ; extern "C" { pub fn rc_hash_init_error_message_callback (callback : rc_hash_message_callback) ; } extern "C" { pub fn rc_hash_init_verbose_message_callback (callback : rc_hash_message_callback) ; } pub type rc_hash_filereader_open_file_handler = :: core :: option :: Option < unsafe extern "C" fn (path_utf8 : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_void > ; pub type rc_hash_filereader_seek_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void , offset : i64 , origin : :: core :: ffi :: c_int) > ; pub type rc_hash_filereader_tell_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void) -> i64 > ; pub type rc_hash_filereader_read_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void , buffer : * mut :: core :: ffi :: c_void , requested_bytes : usize) -> usize > ; pub type rc_hash_filereader_close_file_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void) > ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_filereader { pub open : rc_hash_filereader_open_file_handler , pub seek : rc_hash_filereader_seek_handler , pub tell : rc_hash_filereader_tell_handler , pub read : rc_hash_filereader_read_handler , pub close : rc_hash_filereader_close_file_handler , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_filereader"] [:: core :: mem :: size_of :: < rc_hash_filereader > () - 40usize] ; ["Alignment of rc_hash_filereader"] [:: core :: mem :: align_of :: < rc_hash_filereader > () - 8usize] ; ["Offset of field: rc_hash_filereader::open"] [:: core :: mem :: offset_of ! (rc_hash_filereader , open) - 0usize] ; ["Offset of field: rc_hash_filereader::seek"] [:: core :: mem :: offset_of ! (rc_hash_filereader , seek) - 8usize] ; ["Offset of field: rc_hash_filereader::tell"] [:: core :: mem :: offset_of ! (rc_hash_filereader , tell) - 16usize] ; ["Offset of field: rc_hash_filereader::read"] [:: core :: mem :: offset_of ! (rc_hash_filereader , read) - 24usize] ; ["Offset of field: rc_hash_filereader::close"] [:: core :: mem :: offset_of ! (rc_hash_filereader , close) - 32usize] ; } ; extern "C" { pub fn rc_hash_init_custom_filereader (reader : * mut rc_hash_filereader) ; } pub type rc_hash_cdreader_open_track_handler = :: core :: option :: Option < unsafe extern "C" fn (path : * const :: core :: ffi :: c_char , track : u32) -> * mut :: core :: ffi :: c_void > ; pub type rc_hash_cdreader_read_sector_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void , sector : u32 , buffer : * mut :: core :: ffi :: c_void , requested_bytes : usize) -> usize > ; pub type rc_hash_cdreader_close_track_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void) > ; pub type rc_hash_cdreader_first_track_sector_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void) -> u32 > ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_cdreader { pub open_track : rc_hash_cdreader_open_track_handler , pub read_sector : rc_hash_cdreader_read_sector_handler , pub close_track : rc_hash_cdreader_close_track_handler , pub first_track_sector : rc_hash_cdreader_first_track_sector_handler , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_cdreader"] [:: core :: mem :: size_of :: < rc_hash_cdreader > () - 32usize] ; ["Alignment of rc_hash_cdreader"] [:: core :: mem :: align_of :: < rc_hash_cdreader > () - 8usize] ; ["Offset of field: rc_hash_cdreader::open_track"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , open_track) - 0usize] ; ["Offset of field: rc_hash_cdreader::read_sector"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , read_sector) - 8usize] ; ["Offset of field: rc_hash_cdreader::close_track"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , close_track) - 16usize] ; ["Offset of field: rc_hash_cdreader::first_track_sector"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , first_track_sector) - 24usize] ; } ; extern "C" { pub fn rc_hash_get_default_cdreader (cdreader : * mut rc_hash_cdreader) ; } extern "C" { pub fn rc_hash_init_default_cdreader () ; } extern "C" { pub fn rc_hash_init_custom_cdreader (reader : * mut rc_hash_cdreader) ; } pub type rc_hash_3ds_get_cia_normal_key_func = :: core :: option :: Option < unsafe extern "C" fn (common_key_index : u8 , out_normal_key : * mut u8) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_hash_init_3ds_get_cia_normal_key_func (func : rc_hash_3ds_get_cia_normal_key_func) ; } pub type rc_hash_3ds_get_ncch_normal_keys_func = :: core :: option :: Option < unsafe extern "C" fn (primary_key_y : * mut u8 , secondary_key_x_slot : u8 , optional_program_id : * mut u8 , out_primary_key : * mut u8 , out_secondary_key : * mut u8) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_hash_init_3ds_get_ncch_normal_keys_func (func : rc_hash_3ds_get_ncch_normal_keys_func) ; } # [doc = " API parameters for a fetch image request.\n NOTE: fetch image server response is the raw image data. There is no rc_api_process_fetch_image_response function."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_image_request_t { pub image_name : * const :: core :: ffi :: c_char , pub image_type : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_image_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_image_request_t > () - 16usize] ; ["Alignment of rc_api_fetch_image_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_image_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_image_request_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_fetch_image_request_t , image_name) - 0usize] ; ["Offset of field: rc_api_fetch_image_request_t::image_type"] [:: core :: mem :: offset_of ! (rc_api_fetch_image_request_t , image_type) - 8usize] ; } ; extern "C" { pub fn rc_api_init_fetch_image_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_image_request_t) -> :: core :: ffi :: c_int ; } # [doc = " API parameters for a resolve hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_resolve_hash_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_hash : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_resolve_hash_request_t"] [:: core :: mem :: size_of :: < rc_api_resolve_hash_request_t > () - 24usize] ; ["Alignment of rc_api_resolve_hash_request_t"] [:: core :: mem :: align_of :: < rc_api_resolve_hash_request_t > () - 8usize] ; ["Offset of field: rc_api_resolve_hash_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , username) - 0usize] ; ["Offset of field: rc_api_resolve_hash_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_resolve_hash_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , game_hash) - 16usize] ; } ; # [doc = " Response data for a resolve hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_resolve_hash_response_t { pub game_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_resolve_hash_response_t"] [:: core :: mem :: size_of :: < rc_api_resolve_hash_response_t > () - 320usize] ; ["Alignment of rc_api_resolve_hash_response_t"] [:: core :: mem :: align_of :: < rc_api_resolve_hash_response_t > () - 8usize] ; ["Offset of field: rc_api_resolve_hash_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_response_t , game_id) - 0usize] ; ["Offset of field: rc_api_resolve_hash_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_resolve_hash_request (request : * mut rc_api_request_t , api_params : * const rc_api_resolve_hash_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_resolve_hash_response (response : * mut rc_api_resolve_hash_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_resolve_hash_server_response (response : * mut rc_api_resolve_hash_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_resolve_hash_response (response : * mut rc_api_resolve_hash_response_t) ; } # [doc = " API parameters for a fetch game data request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_data_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_data_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_data_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_game_data_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_data_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , game_id) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_leaderboard_definition_t { pub id : u32 , pub format : :: core :: ffi :: c_int , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub lower_is_better : u8 , pub hidden : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_leaderboard_definition_t"] [:: core :: mem :: size_of :: < rc_api_leaderboard_definition_t > () - 40usize] ; ["Alignment of rc_api_leaderboard_definition_t"] [:: core :: mem :: align_of :: < rc_api_leaderboard_definition_t > () - 8usize] ; ["Offset of field: rc_api_leaderboard_definition_t::id"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , id) - 0usize] ; ["Offset of field: rc_api_leaderboard_definition_t::format"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , format) - 4usize] ; ["Offset of field: rc_api_leaderboard_definition_t::title"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , title) - 8usize] ; ["Offset of field: rc_api_leaderboard_definition_t::description"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , description) - 16usize] ; ["Offset of field: rc_api_leaderboard_definition_t::definition"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , definition) - 24usize] ; ["Offset of field: rc_api_leaderboard_definition_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , lower_is_better) - 32usize] ; ["Offset of field: rc_api_leaderboard_definition_t::hidden"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , hidden) - 33usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_achievement_definition_t { pub id : u32 , pub points : u32 , pub category : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub author : * const :: core :: ffi :: c_char , pub badge_name : * const :: core :: ffi :: c_char , pub created : time_t , pub updated : time_t , pub type_ : u32 , pub rarity : f32 , pub rarity_hardcore : f32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_achievement_definition_t"] [:: core :: mem :: size_of :: < rc_api_achievement_definition_t > () - 88usize] ; ["Alignment of rc_api_achievement_definition_t"] [:: core :: mem :: align_of :: < rc_api_achievement_definition_t > () - 8usize] ; ["Offset of field: rc_api_achievement_definition_t::id"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , id) - 0usize] ; ["Offset of field: rc_api_achievement_definition_t::points"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , points) - 4usize] ; ["Offset of field: rc_api_achievement_definition_t::category"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , category) - 8usize] ; ["Offset of field: rc_api_achievement_definition_t::title"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , title) - 16usize] ; ["Offset of field: rc_api_achievement_definition_t::description"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , description) - 24usize] ; ["Offset of field: rc_api_achievement_definition_t::definition"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , definition) - 32usize] ; ["Offset of field: rc_api_achievement_definition_t::author"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , author) - 40usize] ; ["Offset of field: rc_api_achievement_definition_t::badge_name"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , badge_name) - 48usize] ; ["Offset of field: rc_api_achievement_definition_t::created"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , created) - 56usize] ; ["Offset of field: rc_api_achievement_definition_t::updated"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , updated) - 64usize] ; ["Offset of field: rc_api_achievement_definition_t::type_"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , type_) - 72usize] ; ["Offset of field: rc_api_achievement_definition_t::rarity"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , rarity) - 76usize] ; ["Offset of field: rc_api_achievement_definition_t::rarity_hardcore"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , rarity_hardcore) - 80usize] ; } ; # [doc = " Response data for a fetch game data request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_data_response_t { pub id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub image_name : * const :: core :: ffi :: c_char , pub rich_presence_script : * const :: core :: ffi :: c_char , pub achievements : * mut rc_api_achievement_definition_t , pub num_achievements : u32 , pub leaderboards : * mut rc_api_leaderboard_definition_t , pub num_leaderboards : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_data_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_data_response_t > () - 376usize] ; ["Alignment of rc_api_fetch_game_data_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_data_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , console_id) - 4usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::title"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , title) - 8usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , image_name) - 16usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::rich_presence_script"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , rich_presence_script) - 24usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::achievements"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , achievements) - 32usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , num_achievements) - 40usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::leaderboards"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , leaderboards) - 48usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , num_leaderboards) - 56usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , response) - 64usize] ; } ; extern "C" { pub fn rc_api_init_fetch_game_data_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_game_data_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_data_response (response : * mut rc_api_fetch_game_data_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_data_server_response (response : * mut rc_api_fetch_game_data_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_game_data_response (response : * mut rc_api_fetch_game_data_response_t) ; } # [doc = " API parameters for a ping request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_ping_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub rich_presence : * const :: core :: ffi :: c_char , pub game_hash : * const :: core :: ffi :: c_char , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_ping_request_t"] [:: core :: mem :: size_of :: < rc_api_ping_request_t > () - 48usize] ; ["Alignment of rc_api_ping_request_t"] [:: core :: mem :: align_of :: < rc_api_ping_request_t > () - 8usize] ; ["Offset of field: rc_api_ping_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , username) - 0usize] ; ["Offset of field: rc_api_ping_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_ping_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_ping_request_t::rich_presence"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , rich_presence) - 24usize] ; ["Offset of field: rc_api_ping_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , game_hash) - 32usize] ; ["Offset of field: rc_api_ping_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , hardcore) - 40usize] ; } ; # [doc = " Response data for a ping request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_ping_response_t { pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_ping_response_t"] [:: core :: mem :: size_of :: < rc_api_ping_response_t > () - 312usize] ; ["Alignment of rc_api_ping_response_t"] [:: core :: mem :: align_of :: < rc_api_ping_response_t > () - 8usize] ; ["Offset of field: rc_api_ping_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_ping_response_t , response) - 0usize] ; } ; extern "C" { pub fn rc_api_init_ping_request (request : * mut rc_api_request_t , api_params : * const rc_api_ping_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_ping_response (response : * mut rc_api_ping_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_ping_server_response (response : * mut rc_api_ping_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_ping_response (response : * mut rc_api_ping_response_t) ; } # [doc = " API parameters for an award achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_award_achievement_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub hardcore : u32 , pub game_hash : * const :: core :: ffi :: c_char , pub seconds_since_unlock : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_award_achievement_request_t"] [:: core :: mem :: size_of :: < rc_api_award_achievement_request_t > () - 40usize] ; ["Alignment of rc_api_award_achievement_request_t"] [:: core :: mem :: align_of :: < rc_api_award_achievement_request_t > () - 8usize] ; ["Offset of field: rc_api_award_achievement_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , username) - 0usize] ; ["Offset of field: rc_api_award_achievement_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_award_achievement_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_award_achievement_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , hardcore) - 20usize] ; ["Offset of field: rc_api_award_achievement_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_award_achievement_request_t::seconds_since_unlock"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , seconds_since_unlock) - 32usize] ; } ; # [doc = " Response data for an award achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_award_achievement_response_t { pub awarded_achievement_id : u32 , pub new_player_score : u32 , pub new_player_score_softcore : u32 , pub achievements_remaining : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_award_achievement_response_t"] [:: core :: mem :: size_of :: < rc_api_award_achievement_response_t > () - 328usize] ; ["Alignment of rc_api_award_achievement_response_t"] [:: core :: mem :: align_of :: < rc_api_award_achievement_response_t > () - 8usize] ; ["Offset of field: rc_api_award_achievement_response_t::awarded_achievement_id"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , awarded_achievement_id) - 0usize] ; ["Offset of field: rc_api_award_achievement_response_t::new_player_score"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , new_player_score) - 4usize] ; ["Offset of field: rc_api_award_achievement_response_t::new_player_score_softcore"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , new_player_score_softcore) - 8usize] ; ["Offset of field: rc_api_award_achievement_response_t::achievements_remaining"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , achievements_remaining) - 12usize] ; ["Offset of field: rc_api_award_achievement_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_award_achievement_request (request : * mut rc_api_request_t , api_params : * const rc_api_award_achievement_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_award_achievement_response (response : * mut rc_api_award_achievement_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_award_achievement_server_response (response : * mut rc_api_award_achievement_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_award_achievement_response (response : * mut rc_api_award_achievement_response_t) ; } # [doc = " API parameters for a submit lboard entry request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_submit_lboard_entry_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub leaderboard_id : u32 , pub score : i32 , pub game_hash : * const :: core :: ffi :: c_char , pub seconds_since_completion : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_submit_lboard_entry_request_t"] [:: core :: mem :: size_of :: < rc_api_submit_lboard_entry_request_t > () - 40usize] ; ["Alignment of rc_api_submit_lboard_entry_request_t"] [:: core :: mem :: align_of :: < rc_api_submit_lboard_entry_request_t > () - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , username) - 0usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , leaderboard_id) - 16usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , score) - 20usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::seconds_since_completion"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , seconds_since_completion) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_lboard_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub score : i32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_lboard_entry_t"] [:: core :: mem :: size_of :: < rc_api_lboard_entry_t > () - 16usize] ; ["Alignment of rc_api_lboard_entry_t"] [:: core :: mem :: align_of :: < rc_api_lboard_entry_t > () - 8usize] ; ["Offset of field: rc_api_lboard_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , username) - 0usize] ; ["Offset of field: rc_api_lboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , rank) - 8usize] ; ["Offset of field: rc_api_lboard_entry_t::score"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , score) - 12usize] ; } ; # [doc = " Response data for a submit lboard entry request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_submit_lboard_entry_response_t { pub submitted_score : i32 , pub best_score : i32 , pub new_rank : u32 , pub num_entries : u32 , pub top_entries : * mut rc_api_lboard_entry_t , pub num_top_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_submit_lboard_entry_response_t"] [:: core :: mem :: size_of :: < rc_api_submit_lboard_entry_response_t > () - 344usize] ; ["Alignment of rc_api_submit_lboard_entry_response_t"] [:: core :: mem :: align_of :: < rc_api_submit_lboard_entry_response_t > () - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::submitted_score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , submitted_score) - 0usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::best_score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , best_score) - 4usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::new_rank"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , new_rank) - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , num_entries) - 12usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::top_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , top_entries) - 16usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::num_top_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , num_top_entries) - 24usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_submit_lboard_entry_request (request : * mut rc_api_request_t , api_params : * const rc_api_submit_lboard_entry_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_submit_lboard_entry_response (response : * mut rc_api_submit_lboard_entry_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_submit_lboard_entry_server_response (response : * mut rc_api_submit_lboard_entry_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_submit_lboard_entry_response (response : * mut rc_api_submit_lboard_entry_response_t) ; } # [doc = " Callback used to read num_bytes bytes from memory starting at address. If\n num_bytes is greater than 1, the value is read in little-endian from\n memory."] pub type rc_runtime_peek_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , num_bytes : u32 , ud : * mut :: core :: ffi :: c_void) -> u32 > ; # [doc = "\\\n| Runtime                                                                     |\n\\"] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_trigger_t { pub id : u32 , pub trigger : * mut rc_trigger_t , pub buffer : * mut :: core :: ffi :: c_void , pub invalid_memref : * mut rc_memref_t , pub md5 : [u8 ; 16usize] , pub serialized_size : i32 , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_trigger_t"] [:: core :: mem :: size_of :: < rc_runtime_trigger_t > () - 56usize] ; ["Alignment of rc_runtime_trigger_t"] [:: core :: mem :: align_of :: < rc_runtime_trigger_t > () - 8usize] ; ["Offset of field: rc_runtime_trigger_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , id) - 0usize] ; ["Offset of field: rc_runtime_trigger_t::trigger"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , trigger) - 8usize] ; ["Offset of field: rc_runtime_trigger_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , buffer) - 16usize] ; ["Offset of field: rc_runtime_trigger_t::invalid_memref"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , invalid_memref) - 24usize] ; ["Offset of field: rc_runtime_trigger_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , md5) - 32usize] ; ["Offset of field: rc_runtime_trigger_t::serialized_size"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , serialized_size) - 48usize] ; ["Offset of field: rc_runtime_trigger_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , owns_memrefs) - 52usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_lboard_t { pub id : u32 , pub value : i32 , pub lboard : * mut rc_lboard_t , pub buffer : * mut :: core :: ffi :: c_void , pub invalid_memref : * mut rc_memref_t , pub md5 : [u8 ; 16usize] , pub serialized_size : u32 , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_lboard_t"] [:: core :: mem :: size_of :: < rc_runtime_lboard_t > () - 56usize] ; ["Alignment of rc_runtime_lboard_t"] [:: core :: mem :: align_of :: < rc_runtime_lboard_t > () - 8usize] ; ["Offset of field: rc_runtime_lboard_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , id) - 0usize] ; ["Offset of field: rc_runtime_lboard_t::value"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , value) - 4usize] ; ["Offset of field: rc_runtime_lboard_t::lboard"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , lboard) - 8usize] ; ["Offset of field: rc_runtime_lboard_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , buffer) - 16usize] ; ["Offset of field: rc_runtime_lboard_t::invalid_memref"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , invalid_memref) - 24usize] ; ["Offset of field: rc_runtime_lboard_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , md5) - 32usize] ; ["Offset of field: rc_runtime_lboard_t::serialized_size"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , serialized_size) - 48usize] ; ["Offset of field: rc_runtime_lboard_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , owns_memrefs) - 52usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_richpresence_t { pub richpresence : * mut rc_richpresence_t , pub buffer : * mut :: core :: ffi :: c_void , pub previous : * mut rc_runtime_richpresence_t , pub md5 : [u8 ; 16usize] , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_richpresence_t"] [:: core :: mem :: size_of :: < rc_runtime_richpresence_t > () - 48usize] ; ["Alignment of rc_runtime_richpresence_t"] [:: core :: mem :: align_of :: < rc_runtime_richpresence_t > () - 8usize] ; ["Offset of field: rc_runtime_richpresence_t::richpresence"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , richpresence) - 0usize] ; ["Offset of field: rc_runtime_richpresence_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , buffer) - 8usize] ; ["Offset of field: rc_runtime_richpresence_t::previous"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , previous) - 16usize] ; ["Offset of field: rc_runtime_richpresence_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , md5) - 24usize] ; ["Offset of field: rc_runtime_richpresence_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , owns_memrefs) - 40usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_t { pub triggers : * mut rc_runtime_trigger_t , pub trigger_count : u32 , pub trigger_capacity : u32 , pub lboards : * mut rc_runtime_lboard_t , pub lboard_count : u32 , pub lboard_capacity : u32 , pub richpresence : * mut rc_runtime_richpresence_t , pub memrefs : * mut rc_memref_t , pub next_memref : * mut * mut rc_memref_t , pub variables : * mut rc_value_t , pub next_variable : * mut * mut rc_value_t , pub owns_self : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_t"] [:: core :: mem :: size_of :: < rc_runtime_t > () - 80usize] ; ["Alignment of rc_runtime_t"] [:: core :: mem :: align_of :: < rc_runtime_t > () - 8usize] ; ["Offset of field: rc_runtime_t::triggers"] [:: core :: mem :: offset_of ! (rc_runtime_t , triggers) - 0usize] ; ["Offset of field: rc_runtime_t::trigger_count"] [:: core :: mem :: offset_of ! (rc_runtime_t , trigger_count) - 8usize] ; ["Offset of field: rc_runtime_t::trigger_capacity"] [:: core :: mem :: offset_of ! (rc_runtime_t , trigger_capacity) - 12usize] ; ["Offset of field: rc_runtime_t::lboards"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboards) - 16usize] ; ["Offset of field: rc_runtime_t::lboard_count"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboard_count) - 24usize] ; ["Offset of field: rc_runtime_t::lboard_capacity"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboard_capacity) - 28usize] ; ["Offset of field: rc_runtime_t::richpresence"] [:: core :: mem :: offset_of ! (rc_runtime_t , richpresence) - 32usize] ; ["Offset of field: rc_runtime_t::memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_t , memrefs) - 40usize] ; ["Offset of field: rc_runtime_t::next_memref"] [:: core :: mem :: offset_of ! (rc_runtime_t , next_memref) - 48usize] ; ["Offset of field: rc_runtime_t::variables"] [:: core :: mem :: offset_of ! (rc_runtime_t , variables) - 56usize] ; ["Offset of field: rc_runtime_t::next_variable"] [:: core :: mem :: offset_of ! (rc_runtime_t , next_variable) - 64usize] ; ["Offset of field: rc_runtime_t::owns_self"] [:: core :: mem :: offset_of ! (rc_runtime_t , owns_self) - 72usize] ; } ; extern "C" { pub fn rc_runtime_alloc () -> * mut rc_runtime_t ; } extern "C" { pub fn rc_runtime_init (runtime : * mut rc_runtime_t) ; } extern "C" { pub fn rc_runtime_destroy (runtime : * mut rc_runtime_t) ; } extern "C" { pub fn rc_runtime_activate_achievement (runtime : * mut rc_runtime_t , id : u32 , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deactivate_achievement (runtime : * mut rc_runtime_t , id : u32) ; } extern "C" { pub fn rc_runtime_get_achievement (runtime : * const rc_runtime_t , id : u32) -> * mut rc_trigger_t ; } extern "C" { pub fn rc_runtime_get_achievement_measured (runtime : * const rc_runtime_t , id : u32 , measured_value : * mut :: core :: ffi :: c_uint , measured_target : * mut :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_format_achievement_measured (runtime : * const rc_runtime_t , id : u32 , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_activate_lboard (runtime : * mut rc_runtime_t , id : u32 , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deactivate_lboard (runtime : * mut rc_runtime_t , id : u32) ; } extern "C" { pub fn rc_runtime_get_lboard (runtime : * const rc_runtime_t , id : u32) -> * mut rc_lboard_t ; } extern "C" { pub fn rc_runtime_format_lboard_value (buffer : * mut :: core :: ffi :: c_char , size : :: core :: ffi :: c_int , value : i32 , format : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_activate_richpresence (runtime : * mut rc_runtime_t , script : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_get_richpresence (runtime : * const rc_runtime_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_runtime_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } pub const RC_RUNTIME_EVENT_ACHIEVEMENT_ACTIVATED : _bindgen_ty_14 = 0 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PAUSED : _bindgen_ty_14 = 1 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_RESET : _bindgen_ty_14 = 2 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_TRIGGERED : _bindgen_ty_14 = 3 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PRIMED : _bindgen_ty_14 = 4 ; pub const RC_RUNTIME_EVENT_LBOARD_STARTED : _bindgen_ty_14 = 5 ; pub const RC_RUNTIME_EVENT_LBOARD_CANCELED : _bindgen_ty_14 = 6 ; pub const RC_RUNTIME_EVENT_LBOARD_UPDATED : _bindgen_ty_14 = 7 ; pub const RC_RUNTIME_EVENT_LBOARD_TRIGGERED : _bindgen_ty_14 = 8 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_DISABLED : _bindgen_ty_14 = 9 ; pub const RC_RUNTIME_EVENT_LBOARD_DISABLED : _bindgen_ty_14 = 10 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_UNPRIMED : _bindgen_ty_14 = 11 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PROGRESS_UPDATED : _bindgen_ty_14 = 12 ; pub type _bindgen_ty_14 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_event_t { pub id : u32 , pub value : i32 , pub type_ : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_event_t"] [:: core :: mem :: size_of :: < rc_runtime_event_t > () - 12usize] ; ["Alignment of rc_runtime_event_t"] [:: core :: mem :: align_of :: < rc_runtime_event_t > () - 4usize] ; ["Offset of field: rc_runtime_event_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , id) - 0usize] ; ["Offset of field: rc_runtime_event_t::value"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , value) - 4usize] ; ["Offset of field: rc_runtime_event_t::type_"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , type_) - 8usize] ; } ; pub type rc_runtime_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (runtime_event : * const rc_runtime_event_t) > ; extern "C" { pub fn rc_runtime_do_frame (runtime : * mut rc_runtime_t , event_handler : rc_runtime_event_handler_t , peek : rc_runtime_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) ; } extern "C" { pub fn rc_runtime_reset (runtime : * mut rc_runtime_t) ; } pub type rc_runtime_validate_address_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_runtime_validate_addresses (runtime : * mut rc_runtime_t , event_handler : rc_runtime_event_handler_t , validate_handler : rc_runtime_validate_address_t) ; } extern "C" { pub fn rc_runtime_invalidate_address (runtime : * mut rc_runtime_t , address : u32) ; } extern "C" { pub fn rc_runtime_progress_size (runtime : * const rc_runtime_t , L : * mut lua_State) -> u32 ; } extern "C" { pub fn rc_runtime_serialize_progress (buffer : * mut :: core :: ffi :: c_void , runtime : * const rc_runtime_t , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_serialize_progress_sized (buffer : * mut u8 , buffer_size : u32 , runtime : * const rc_runtime_t , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deserialize_progress (runtime : * mut rc_runtime_t , serialized : * const u8 , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deserialize_progress_sized (runtime : * mut rc_runtime_t , serialized : * const u8 , serialized_size : u32 , L : * mut lua_State) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_async_handle_t { _unused : [u8 ; 0] , } # [doc = " Callback used to read num_bytes bytes from memory starting at address into buffer.\n Returns the number of bytes read. A return value of 0 indicates the address was invalid."] pub type rc_client_read_memory_func_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , buffer : * mut u8 , num_bytes : u32 , client : * mut rc_client_t) -> u32 > ; # [doc = " Internal method passed to rc_client_server_call_t to process the server response."] pub type rc_client_server_callback_t = :: core :: option :: Option < unsafe extern "C" fn (server_response : * const rc_api_server_response_t , callback_data : * mut :: core :: ffi :: c_void) > ; # [doc = " Callback used to issue a request to the server."] pub type rc_client_server_call_t = :: core :: option :: Option < unsafe extern "C" fn (request : * const rc_api_request_t , callback : rc_client_server_callback_t , callback_data : * mut :: core :: ffi :: c_void , client : * mut rc_client_t) > ; # [doc = " Generic callback for asynchronous eventing."] pub type rc_client_callback_t = :: core :: option :: Option < unsafe extern "C" fn (result : :: core :: ffi :: c_int , error_message : * const :: core :: ffi :: c_char , client : * mut rc_client_t , userdata : * mut :: core :: ffi :: c_void) > ; # [doc = " Callback for logging or displaying a message."] pub type rc_client_message_callback_t = :: core :: option :: Option < unsafe extern "C" fn (message : * const :: core :: ffi :: c_char , client : * const rc_client_t) > ; extern "C" { # [doc = " Creates a new rc_client_t object."] pub fn rc_client_create (read_memory_function : rc_client_read_memory_func_t , server_call_function : rc_client_server_call_t) -> * mut rc_client_t ; } extern "C" { # [doc = " Releases resources associated to a rc_client_t object.\n Pointer will no longer be valid after making this call."] pub fn rc_client_destroy (client : * mut rc_client_t) ; } extern "C" { # [doc = " Sets whether hardcore is enabled (on by default).\n Can be called with a game loaded.\n Enabling hardcore with a game loaded will raise an RC_CLIENT_EVENT_RESET\n event. Processing will be disabled until rc_client_reset is called."] pub fn rc_client_set_hardcore_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether hardcore is enabled (on by default)."] pub fn rc_client_get_hardcore_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether encore mode is enabled (off by default).\n Evaluated when loading a game. Has no effect while a game is loaded."] pub fn rc_client_set_encore_mode_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether encore mode is enabled (off by default)."] pub fn rc_client_get_encore_mode_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether unofficial achievements should be loaded.\n Evaluated when loading a game. Has no effect while a game is loaded."] pub fn rc_client_set_unofficial_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether unofficial achievements should be loaded."] pub fn rc_client_get_unofficial_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether spectator mode is enabled (off by default).\n If enabled, events for achievement unlocks and leaderboard submissions will be\n raised, but server calls to actually perform the unlock/submit will not occur.\n Can be modified while a game is loaded. Evaluated at unlock/submit time.\n Cannot be modified if disabled before a game is loaded."] pub fn rc_client_set_spectator_mode_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether spectator mode is enabled (off by default)."] pub fn rc_client_get_spectator_mode_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Attaches client-specific data to the runtime."] pub fn rc_client_set_userdata (client : * mut rc_client_t , userdata : * mut :: core :: ffi :: c_void) ; } extern "C" { # [doc = " Gets the client-specific data attached to the runtime."] pub fn rc_client_get_userdata (client : * const rc_client_t) -> * mut :: core :: ffi :: c_void ; } extern "C" { # [doc = " Sets the name of the server to use."] pub fn rc_client_set_host (client : * const rc_client_t , hostname : * const :: core :: ffi :: c_char) ; } pub type rc_clock_t = u64 ; pub type rc_get_time_millisecs_func_t = :: core :: option :: Option < unsafe extern "C" fn (client : * const rc_client_t) -> rc_clock_t > ; extern "C" { # [doc = " Specifies a function that returns a value that increases once per millisecond."] pub fn rc_client_set_get_time_millisecs_function (client : * mut rc_client_t , handler : rc_get_time_millisecs_func_t) ; } extern "C" { # [doc = " Marks an async process as aborted. The associated callback will not be called."] pub fn rc_client_abort_async (client : * mut rc_client_t , async_handle : * mut rc_client_async_handle_t) ; } extern "C" { # [doc = " Gets a clause that can be added to the User-Agent to identify the version of rcheevos being used."] pub fn rc_client_get_user_agent_clause (client : * mut rc_client_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> usize ; } extern "C" { # [doc = " Sets the logging level and provides a callback to be called to do the logging."] pub fn rc_client_enable_logging (client : * mut rc_client_t , level : :: core :: ffi :: c_int , callback : rc_client_message_callback_t) ; } pub const RC_CLIENT_LOG_LEVEL_NONE : _bindgen_ty_15 = 0 ; pub const RC_CLIENT_LOG_LEVEL_ERROR : _bindgen_ty_15 = 1 ; pub const RC_CLIENT_LOG_LEVEL_WARN : _bindgen_ty_15 = 2 ; pub const RC_CLIENT_LOG_LEVEL_INFO : _bindgen_ty_15 = 3 ; pub const RC_CLIENT_LOG_LEVEL_VERBOSE : _bindgen_ty_15 = 4 ; pub const NUM_RC_CLIENT_LOG_LEVELS : _bindgen_ty_15 = 5 ; pub type _bindgen_ty_15 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Attempt to login a user."] pub fn rc_client_begin_login_with_password (client : * mut rc_client_t , username : * const :: core :: ffi :: c_char , password : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Attempt to login a user."] pub fn rc_client_begin_login_with_token (client : * mut rc_client_t , username : * const :: core :: ffi :: c_char , token : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Logout the user."] pub fn rc_client_logout (client : * mut rc_client_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_user_t { pub display_name : * const :: core :: ffi :: c_char , pub username : * const :: core :: ffi :: c_char , pub token : * const :: core :: ffi :: c_char , pub score : u32 , pub score_softcore : u32 , pub num_unread_messages : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_user_t"] [:: core :: mem :: size_of :: < rc_client_user_t > () - 40usize] ; ["Alignment of rc_client_user_t"] [:: core :: mem :: align_of :: < rc_client_user_t > () - 8usize] ; ["Offset of field: rc_client_user_t::display_name"] [:: core :: mem :: offset_of ! (rc_client_user_t , display_name) - 0usize] ; ["Offset of field: rc_client_user_t::username"] [:: core :: mem :: offset_of ! (rc_client_user_t , username) - 8usize] ; ["Offset of field: rc_client_user_t::token"] [:: core :: mem :: offset_of ! (rc_client_user_t , token) - 16usize] ; ["Offset of field: rc_client_user_t::score"] [:: core :: mem :: offset_of ! (rc_client_user_t , score) - 24usize] ; ["Offset of field: rc_client_user_t::score_softcore"] [:: core :: mem :: offset_of ! (rc_client_user_t , score_softcore) - 28usize] ; ["Offset of field: rc_client_user_t::num_unread_messages"] [:: core :: mem :: offset_of ! (rc_client_user_t , num_unread_messages) - 32usize] ; } ; extern "C" { # [doc = " Gets information about the logged in user. Will return NULL if the user is not logged in."] pub fn rc_client_get_user_info (client : * const rc_client_t) -> * const rc_client_user_t ; } extern "C" { # [doc = " Gets the URL for the user's profile picture.\n Returns RC_OK on success."] pub fn rc_client_user_get_image_url (user : * const rc_client_user_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_user_game_summary_t { pub num_core_achievements : u32 , pub num_unofficial_achievements : u32 , pub num_unlocked_achievements : u32 , pub num_unsupported_achievements : u32 , pub points_core : u32 , pub points_unlocked : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_user_game_summary_t"] [:: core :: mem :: size_of :: < rc_client_user_game_summary_t > () - 24usize] ; ["Alignment of rc_client_user_game_summary_t"] [:: core :: mem :: align_of :: < rc_client_user_game_summary_t > () - 4usize] ; ["Offset of field: rc_client_user_game_summary_t::num_core_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_core_achievements) - 0usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unofficial_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unofficial_achievements) - 4usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unlocked_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unlocked_achievements) - 8usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unsupported_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unsupported_achievements) - 12usize] ; ["Offset of field: rc_client_user_game_summary_t::points_core"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , points_core) - 16usize] ; ["Offset of field: rc_client_user_game_summary_t::points_unlocked"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , points_unlocked) - 20usize] ; } ; extern "C" { # [doc = " Gets a breakdown of the number of achievements in the game, and how many the user has unlocked.\n Used for the \"You have unlocked X of Y achievements\" message shown when the game starts."] pub fn rc_client_get_user_game_summary (client : * const rc_client_t , summary : * mut rc_client_user_game_summary_t) ; } extern "C" { # [doc = " Start loading an unidentified game."] pub fn rc_client_begin_identify_and_load_game (client : * mut rc_client_t , console_id : u32 , file_path : * const :: core :: ffi :: c_char , data : * const u8 , data_size : usize , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Start loading a game."] pub fn rc_client_begin_load_game (client : * mut rc_client_t , hash : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Gets the current progress of the asynchronous load game process."] pub fn rc_client_get_load_game_state (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } pub const RC_CLIENT_LOAD_GAME_STATE_NONE : _bindgen_ty_16 = 0 ; pub const RC_CLIENT_LOAD_GAME_STATE_IDENTIFYING_GAME : _bindgen_ty_16 = 1 ; pub const RC_CLIENT_LOAD_GAME_STATE_AWAIT_LOGIN : _bindgen_ty_16 = 2 ; pub const RC_CLIENT_LOAD_GAME_STATE_FETCHING_GAME_DATA : _bindgen_ty_16 = 3 ; pub const RC_CLIENT_LOAD_GAME_STATE_STARTING_SESSION : _bindgen_ty_16 = 4 ; pub const RC_CLIENT_LOAD_GAME_STATE_DONE : _bindgen_ty_16 = 5 ; pub const RC_CLIENT_LOAD_GAME_STATE_ABORTED : _bindgen_ty_16 = 6 ; pub type _bindgen_ty_16 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Determines if a game was successfully identified and loaded."] pub fn rc_client_is_game_loaded (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Unloads the current game."] pub fn rc_client_unload_game (client : * mut rc_client_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_game_t { pub id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub hash : * const :: core :: ffi :: c_char , pub badge_name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_game_t"] [:: core :: mem :: size_of :: < rc_client_game_t > () - 32usize] ; ["Alignment of rc_client_game_t"] [:: core :: mem :: align_of :: < rc_client_game_t > () - 8usize] ; ["Offset of field: rc_client_game_t::id"] [:: core :: mem :: offset_of ! (rc_client_game_t , id) - 0usize] ; ["Offset of field: rc_client_game_t::console_id"] [:: core :: mem :: offset_of ! (rc_client_game_t , console_id) - 4usize] ; ["Offset of field: rc_client_game_t::title"] [:: core :: mem :: offset_of ! (rc_client_game_t , title) - 8usize] ; ["Offset of field: rc_client_game_t::hash"] [:: core :: mem :: offset_of ! (rc_client_game_t , hash) - 16usize] ; ["Offset of field: rc_client_game_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_game_t , badge_name) - 24usize] ; } ; extern "C" { # [doc = " Get information about the current game. Returns NULL if no game is loaded.\n NOTE: returns a dummy game record if an unidentified game is loaded."] pub fn rc_client_get_game_info (client : * const rc_client_t) -> * const rc_client_game_t ; } extern "C" { # [doc = " Gets the URL for the game image.\n Returns RC_OK on success."] pub fn rc_client_game_get_image_url (game : * const rc_client_game_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Changes the active disc in a multi-disc game."] pub fn rc_client_begin_change_media (client : * mut rc_client_t , file_path : * const :: core :: ffi :: c_char , data : * const u8 , data_size : usize , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Changes the active disc in a multi-disc game."] pub fn rc_client_begin_change_media_from_hash (client : * mut rc_client_t , hash : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } # [doc = "\\\n| Subsets                                                                     |\n\\"] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_subset_t { pub id : u32 , pub title : * const :: core :: ffi :: c_char , pub badge_name : [:: core :: ffi :: c_char ; 16usize] , pub num_achievements : u32 , pub num_leaderboards : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_subset_t"] [:: core :: mem :: size_of :: < rc_client_subset_t > () - 40usize] ; ["Alignment of rc_client_subset_t"] [:: core :: mem :: align_of :: < rc_client_subset_t > () - 8usize] ; ["Offset of field: rc_client_subset_t::id"] [:: core :: mem :: offset_of ! (rc_client_subset_t , id) - 0usize] ; ["Offset of field: rc_client_subset_t::title"] [:: core :: mem :: offset_of ! (rc_client_subset_t , title) - 8usize] ; ["Offset of field: rc_client_subset_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_subset_t , badge_name) - 16usize] ; ["Offset of field: rc_client_subset_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_client_subset_t , num_achievements) - 32usize] ; ["Offset of field: rc_client_subset_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_client_subset_t , num_leaderboards) - 36usize] ; } ; extern "C" { pub fn rc_client_get_subset_info (client : * mut rc_client_t , subset_id : u32) -> * const rc_client_subset_t ; } pub const RC_CLIENT_ACHIEVEMENT_STATE_INACTIVE : _bindgen_ty_17 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_ACTIVE : _bindgen_ty_17 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_UNLOCKED : _bindgen_ty_17 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_DISABLED : _bindgen_ty_17 = 3 ; pub const NUM_RC_CLIENT_ACHIEVEMENT_STATES : _bindgen_ty_17 = 4 ; # [doc = "\\\n| Achievements                                                                |\n\\"] pub type _bindgen_ty_17 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_NONE : _bindgen_ty_18 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_CORE : _bindgen_ty_18 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_UNOFFICIAL : _bindgen_ty_18 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_CORE_AND_UNOFFICIAL : _bindgen_ty_18 = 3 ; pub type _bindgen_ty_18 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_STANDARD : _bindgen_ty_19 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_MISSABLE : _bindgen_ty_19 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_PROGRESSION : _bindgen_ty_19 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_WIN : _bindgen_ty_19 = 3 ; pub type _bindgen_ty_19 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNKNOWN : _bindgen_ty_20 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_LOCKED : _bindgen_ty_20 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNLOCKED : _bindgen_ty_20 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNSUPPORTED : _bindgen_ty_20 = 3 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNOFFICIAL : _bindgen_ty_20 = 4 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_RECENTLY_UNLOCKED : _bindgen_ty_20 = 5 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_ACTIVE_CHALLENGE : _bindgen_ty_20 = 6 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_ALMOST_THERE : _bindgen_ty_20 = 7 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNSYNCED : _bindgen_ty_20 = 8 ; pub const NUM_RC_CLIENT_ACHIEVEMENT_BUCKETS : _bindgen_ty_20 = 9 ; pub type _bindgen_ty_20 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_NONE : _bindgen_ty_21 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_SOFTCORE : _bindgen_ty_21 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_HARDCORE : _bindgen_ty_21 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_BOTH : _bindgen_ty_21 = 3 ; pub type _bindgen_ty_21 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_t { pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub badge_name : [:: core :: ffi :: c_char ; 8usize] , pub measured_progress : [:: core :: ffi :: c_char ; 24usize] , pub measured_percent : f32 , pub id : u32 , pub points : u32 , pub unlock_time : time_t , pub state : u8 , pub category : u8 , pub bucket : u8 , pub unlocked : u8 , pub rarity : f32 , pub rarity_hardcore : f32 , pub type_ : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_t"] [:: core :: mem :: size_of :: < rc_client_achievement_t > () - 88usize] ; ["Alignment of rc_client_achievement_t"] [:: core :: mem :: align_of :: < rc_client_achievement_t > () - 8usize] ; ["Offset of field: rc_client_achievement_t::title"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , title) - 0usize] ; ["Offset of field: rc_client_achievement_t::description"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , description) - 8usize] ; ["Offset of field: rc_client_achievement_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , badge_name) - 16usize] ; ["Offset of field: rc_client_achievement_t::measured_progress"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , measured_progress) - 24usize] ; ["Offset of field: rc_client_achievement_t::measured_percent"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , measured_percent) - 48usize] ; ["Offset of field: rc_client_achievement_t::id"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , id) - 52usize] ; ["Offset of field: rc_client_achievement_t::points"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , points) - 56usize] ; ["Offset of field: rc_client_achievement_t::unlock_time"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , unlock_time) - 64usize] ; ["Offset of field: rc_client_achievement_t::state"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , state) - 72usize] ; ["Offset of field: rc_client_achievement_t::category"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , category) - 73usize] ; ["Offset of field: rc_client_achievement_t::bucket"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , bucket) - 74usize] ; ["Offset of field: rc_client_achievement_t::unlocked"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , unlocked) - 75usize] ; ["Offset of field: rc_client_achievement_t::rarity"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , rarity) - 76usize] ; ["Offset of field: rc_client_achievement_t::rarity_hardcore"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , rarity_hardcore) - 80usize] ; ["Offset of field: rc_client_achievement_t::type_"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , type_) - 84usize] ; } ; extern "C" { # [doc = " Get information about an achievement. Returns NULL if not found."] pub fn rc_client_get_achievement_info (client : * mut rc_client_t , id : u32) -> * const rc_client_achievement_t ; } extern "C" { # [doc = " Gets the URL for the achievement image.\n Returns RC_OK on success."] pub fn rc_client_achievement_get_image_url (achievement : * const rc_client_achievement_t , state : :: core :: ffi :: c_int , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_bucket_t { pub achievements : * mut * mut rc_client_achievement_t , pub num_achievements : u32 , pub label : * const :: core :: ffi :: c_char , pub subset_id : u32 , pub bucket_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_bucket_t"] [:: core :: mem :: size_of :: < rc_client_achievement_bucket_t > () - 32usize] ; ["Alignment of rc_client_achievement_bucket_t"] [:: core :: mem :: align_of :: < rc_client_achievement_bucket_t > () - 8usize] ; ["Offset of field: rc_client_achievement_bucket_t::achievements"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , achievements) - 0usize] ; ["Offset of field: rc_client_achievement_bucket_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , num_achievements) - 8usize] ; ["Offset of field: rc_client_achievement_bucket_t::label"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , label) - 16usize] ; ["Offset of field: rc_client_achievement_bucket_t::subset_id"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , subset_id) - 24usize] ; ["Offset of field: rc_client_achievement_bucket_t::bucket_type"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , bucket_type) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_list_t { pub buckets : * mut rc_client_achievement_bucket_t , pub num_buckets : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_list_t"] [:: core :: mem :: size_of :: < rc_client_achievement_list_t > () - 16usize] ; ["Alignment of rc_client_achievement_list_t"] [:: core :: mem :: align_of :: < rc_client_achievement_list_t > () - 8usize] ; ["Offset of field: rc_client_achievement_list_t::buckets"] [:: core :: mem :: offset_of ! (rc_client_achievement_list_t , buckets) - 0usize] ; ["Offset of field: rc_client_achievement_list_t::num_buckets"] [:: core :: mem :: offset_of ! (rc_client_achievement_list_t , num_buckets) - 8usize] ; } ; pub const RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_LOCK_STATE : _bindgen_ty_22 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_PROGRESS : _bindgen_ty_22 = 1 ; pub type _bindgen_ty_22 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Creates a list of achievements matching the specified category and grouping.\n Returns an allocated list that must be free'd by calling rc_client_destroy_achievement_list."] pub fn rc_client_create_achievement_list (client : * mut rc_client_t , category : :: core :: ffi :: c_int , grouping : :: core :: ffi :: c_int) -> * mut rc_client_achievement_list_t ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_get_achievement_list."] pub fn rc_client_destroy_achievement_list (list : * mut rc_client_achievement_list_t) ; } extern "C" { # [doc = " Returns non-zero if there are any achievements that can be queried through rc_client_create_achievement_list()."] pub fn rc_client_has_achievements (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } pub const RC_CLIENT_LEADERBOARD_STATE_INACTIVE : _bindgen_ty_23 = 0 ; pub const RC_CLIENT_LEADERBOARD_STATE_ACTIVE : _bindgen_ty_23 = 1 ; pub const RC_CLIENT_LEADERBOARD_STATE_TRACKING : _bindgen_ty_23 = 2 ; pub const RC_CLIENT_LEADERBOARD_STATE_DISABLED : _bindgen_ty_23 = 3 ; pub const NUM_RC_CLIENT_LEADERBOARD_STATES : _bindgen_ty_23 = 4 ; # [doc = "\\\n| Leaderboards                                                                |\n\\"] pub type _bindgen_ty_23 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_LEADERBOARD_FORMAT_TIME : _bindgen_ty_24 = 0 ; pub const RC_CLIENT_LEADERBOARD_FORMAT_SCORE : _bindgen_ty_24 = 1 ; pub const RC_CLIENT_LEADERBOARD_FORMAT_VALUE : _bindgen_ty_24 = 2 ; pub const NUM_RC_CLIENT_LEADERBOARD_FORMATS : _bindgen_ty_24 = 3 ; pub type _bindgen_ty_24 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_t { pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub tracker_value : * const :: core :: ffi :: c_char , pub id : u32 , pub state : u8 , pub format : u8 , pub lower_is_better : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_t > () - 32usize] ; ["Alignment of rc_client_leaderboard_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_t::title"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , title) - 0usize] ; ["Offset of field: rc_client_leaderboard_t::description"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , description) - 8usize] ; ["Offset of field: rc_client_leaderboard_t::tracker_value"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , tracker_value) - 16usize] ; ["Offset of field: rc_client_leaderboard_t::id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , id) - 24usize] ; ["Offset of field: rc_client_leaderboard_t::state"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , state) - 28usize] ; ["Offset of field: rc_client_leaderboard_t::format"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , format) - 29usize] ; ["Offset of field: rc_client_leaderboard_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , lower_is_better) - 30usize] ; } ; extern "C" { # [doc = " Get information about a leaderboard. Returns NULL if not found."] pub fn rc_client_get_leaderboard_info (client : * const rc_client_t , id : u32) -> * const rc_client_leaderboard_t ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_tracker_t { pub display : [:: core :: ffi :: c_char ; 24usize] , pub id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_tracker_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_tracker_t > () - 28usize] ; ["Alignment of rc_client_leaderboard_tracker_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_tracker_t > () - 4usize] ; ["Offset of field: rc_client_leaderboard_tracker_t::display"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_tracker_t , display) - 0usize] ; ["Offset of field: rc_client_leaderboard_tracker_t::id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_tracker_t , id) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_bucket_t { pub leaderboards : * mut * mut rc_client_leaderboard_t , pub num_leaderboards : u32 , pub label : * const :: core :: ffi :: c_char , pub subset_id : u32 , pub bucket_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_bucket_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_bucket_t > () - 32usize] ; ["Alignment of rc_client_leaderboard_bucket_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_bucket_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::leaderboards"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , leaderboards) - 0usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , num_leaderboards) - 8usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::label"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , label) - 16usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::subset_id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , subset_id) - 24usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::bucket_type"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , bucket_type) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_list_t { pub buckets : * mut rc_client_leaderboard_bucket_t , pub num_buckets : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_list_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_list_t > () - 16usize] ; ["Alignment of rc_client_leaderboard_list_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_list_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_list_t::buckets"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_list_t , buckets) - 0usize] ; ["Offset of field: rc_client_leaderboard_list_t::num_buckets"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_list_t , num_buckets) - 8usize] ; } ; pub const RC_CLIENT_LEADERBOARD_BUCKET_UNKNOWN : _bindgen_ty_25 = 0 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_INACTIVE : _bindgen_ty_25 = 1 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_ACTIVE : _bindgen_ty_25 = 2 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_UNSUPPORTED : _bindgen_ty_25 = 3 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_ALL : _bindgen_ty_25 = 4 ; pub const NUM_RC_CLIENT_LEADERBOARD_BUCKETS : _bindgen_ty_25 = 5 ; pub type _bindgen_ty_25 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_LEADERBOARD_LIST_GROUPING_NONE : _bindgen_ty_26 = 0 ; pub const RC_CLIENT_LEADERBOARD_LIST_GROUPING_TRACKING : _bindgen_ty_26 = 1 ; pub type _bindgen_ty_26 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Creates a list of leaderboards matching the specified grouping.\n Returns an allocated list that must be free'd by calling rc_client_destroy_leaderboard_list."] pub fn rc_client_create_leaderboard_list (client : * mut rc_client_t , grouping : :: core :: ffi :: c_int) -> * mut rc_client_leaderboard_list_t ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_get_leaderboard_list."] pub fn rc_client_destroy_leaderboard_list (list : * mut rc_client_leaderboard_list_t) ; } extern "C" { # [doc = " Returns non-zero if the current game has any leaderboards."] pub fn rc_client_has_leaderboards (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_entry_t { pub user : * const :: core :: ffi :: c_char , pub display : [:: core :: ffi :: c_char ; 24usize] , pub submitted : time_t , pub rank : u32 , pub index : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_entry_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_entry_t > () - 48usize] ; ["Alignment of rc_client_leaderboard_entry_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_entry_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_t::user"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , user) - 0usize] ; ["Offset of field: rc_client_leaderboard_entry_t::display"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , display) - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_t::submitted"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , submitted) - 32usize] ; ["Offset of field: rc_client_leaderboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , rank) - 40usize] ; ["Offset of field: rc_client_leaderboard_entry_t::index"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , index) - 44usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_entry_list_t { pub entries : * mut rc_client_leaderboard_entry_t , pub num_entries : u32 , pub total_entries : u32 , pub user_index : i32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_entry_list_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_entry_list_t > () - 24usize] ; ["Alignment of rc_client_leaderboard_entry_list_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_entry_list_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , entries) - 0usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::num_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , num_entries) - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::total_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , total_entries) - 12usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::user_index"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , user_index) - 16usize] ; } ; pub type rc_client_fetch_leaderboard_entries_callback_t = :: core :: option :: Option < unsafe extern "C" fn (result : :: core :: ffi :: c_int , error_message : * const :: core :: ffi :: c_char , list : * mut rc_client_leaderboard_entry_list_t , client : * mut rc_client_t , callback_userdata : * mut :: core :: ffi :: c_void) > ; extern "C" { # [doc = " Fetches a list of leaderboard entries from the server.\n Callback receives an allocated list that must be free'd by calling rc_client_destroy_leaderboard_entry_list."] pub fn rc_client_begin_fetch_leaderboard_entries (client : * mut rc_client_t , leaderboard_id : u32 , first_entry : u32 , count : u32 , callback : rc_client_fetch_leaderboard_entries_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Fetches a list of leaderboard entries from the server containing the logged-in user.\n Callback receives an allocated list that must be free'd by calling rc_client_destroy_leaderboard_entry_list."] pub fn rc_client_begin_fetch_leaderboard_entries_around_user (client : * mut rc_client_t , leaderboard_id : u32 , count : u32 , callback : rc_client_fetch_leaderboard_entries_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Gets the URL for the profile picture of the user associated to a leaderboard entry.\n Returns RC_OK on success."] pub fn rc_client_leaderboard_entry_get_user_image_url (entry : * const rc_client_leaderboard_entry_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_begin_fetch_leaderboard_entries or rc_client_begin_fetch_leaderboard_entries_around_user."] pub fn rc_client_destroy_leaderboard_entry_list (list : * mut rc_client_leaderboard_entry_list_t) ; } # [doc = " Used for scoreboard events. Contains the response from the server when a leaderboard entry is submitted.\n NOTE: This structure is only valid within the event callback. If you want to make use of the data outside\n of the callback, you should create copies of both the top entries and usernames within."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_scoreboard_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub score : [:: core :: ffi :: c_char ; 24usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_scoreboard_entry_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_scoreboard_entry_t > () - 40usize] ; ["Alignment of rc_client_leaderboard_scoreboard_entry_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_scoreboard_entry_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::username"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , username) - 0usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , rank) - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , score) - 12usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_scoreboard_t { pub leaderboard_id : u32 , pub submitted_score : [:: core :: ffi :: c_char ; 24usize] , pub best_score : [:: core :: ffi :: c_char ; 24usize] , pub new_rank : u32 , pub num_entries : u32 , pub top_entries : * mut rc_client_leaderboard_scoreboard_entry_t , pub num_top_entries : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_scoreboard_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_scoreboard_t > () - 80usize] ; ["Alignment of rc_client_leaderboard_scoreboard_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_scoreboard_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::submitted_score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , submitted_score) - 4usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::best_score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , best_score) - 28usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::new_rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , new_rank) - 52usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::num_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , num_entries) - 56usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::top_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , top_entries) - 64usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::num_top_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , num_top_entries) - 72usize] ; } ; extern "C" { # [doc = " Returns non-zero if the current game supports rich presence."] pub fn rc_client_has_rich_presence (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Gets the current rich presence message.\n Returns the number of characters written to buffer."] pub fn rc_client_get_rich_presence_message (client : * mut rc_client_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> usize ; } pub const RC_CLIENT_EVENT_TYPE_NONE : _bindgen_ty_27 = 0 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_TRIGGERED : _bindgen_ty_27 = 1 ; pub const RC_CLIENT_EVENT_LEADERBOARD_STARTED : _bindgen_ty_27 = 2 ; pub const RC_CLIENT_EVENT_LEADERBOARD_FAILED : _bindgen_ty_27 = 3 ; pub const RC_CLIENT_EVENT_LEADERBOARD_SUBMITTED : _bindgen_ty_27 = 4 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_CHALLENGE_INDICATOR_SHOW : _bindgen_ty_27 = 5 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_CHALLENGE_INDICATOR_HIDE : _bindgen_ty_27 = 6 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_SHOW : _bindgen_ty_27 = 7 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_HIDE : _bindgen_ty_27 = 8 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_UPDATE : _bindgen_ty_27 = 9 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_SHOW : _bindgen_ty_27 = 10 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_HIDE : _bindgen_ty_27 = 11 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_UPDATE : _bindgen_ty_27 = 12 ; pub const RC_CLIENT_EVENT_LEADERBOARD_SCOREBOARD : _bindgen_ty_27 = 13 ; pub const RC_CLIENT_EVENT_RESET : _bindgen_ty_27 = 14 ; pub const RC_CLIENT_EVENT_GAME_COMPLETED : _bindgen_ty_27 = 15 ; pub const RC_CLIENT_EVENT_SERVER_ERROR : _bindgen_ty_27 = 16 ; pub const RC_CLIENT_EVENT_DISCONNECTED : _bindgen_ty_27 = 17 ; pub const RC_CLIENT_EVENT_RECONNECTED : _bindgen_ty_27 = 18 ; # [doc = "\\\n| Processing                                                                  |\n\\"] pub type _bindgen_ty_27 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_server_error_t { pub error_message : * const :: core :: ffi :: c_char , pub api : * const :: core :: ffi :: c_char , pub result : :: core :: ffi :: c_int , pub related_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_server_error_t"] [:: core :: mem :: size_of :: < rc_client_server_error_t > () - 24usize] ; ["Alignment of rc_client_server_error_t"] [:: core :: mem :: align_of :: < rc_client_server_error_t > () - 8usize] ; ["Offset of field: rc_client_server_error_t::error_message"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , error_message) - 0usize] ; ["Offset of field: rc_client_server_error_t::api"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , api) - 8usize] ; ["Offset of field: rc_client_server_error_t::result"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , result) - 16usize] ; ["Offset of field: rc_client_server_error_t::related_id"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , related_id) - 20usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_event_t { pub type_ : u32 , pub achievement : * mut rc_client_achievement_t , pub leaderboard : * mut rc_client_leaderboard_t , pub leaderboard_tracker : * mut rc_client_leaderboard_tracker_t , pub leaderboard_scoreboard : * mut rc_client_leaderboard_scoreboard_t , pub server_error : * mut rc_client_server_error_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_event_t"] [:: core :: mem :: size_of :: < rc_client_event_t > () - 48usize] ; ["Alignment of rc_client_event_t"] [:: core :: mem :: align_of :: < rc_client_event_t > () - 8usize] ; ["Offset of field: rc_client_event_t::type_"] [:: core :: mem :: offset_of ! (rc_client_event_t , type_) - 0usize] ; ["Offset of field: rc_client_event_t::achievement"] [:: core :: mem :: offset_of ! (rc_client_event_t , achievement) - 8usize] ; ["Offset of field: rc_client_event_t::leaderboard"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard) - 16usize] ; ["Offset of field: rc_client_event_t::leaderboard_tracker"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard_tracker) - 24usize] ; ["Offset of field: rc_client_event_t::leaderboard_scoreboard"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard_scoreboard) - 32usize] ; ["Offset of field: rc_client_event_t::server_error"] [:: core :: mem :: offset_of ! (rc_client_event_t , server_error) - 40usize] ; } ; # [doc = " Callback used to notify the client when certain events occur."] pub type rc_client_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (event : * const rc_client_event_t , client : * mut rc_client_t) > ; extern "C" { # [doc = " Provides a callback for event handling."] pub fn rc_client_set_event_handler (client : * mut rc_client_t , handler : rc_client_event_handler_t) ; } extern "C" { # [doc = " Provides a callback for reading memory."] pub fn rc_client_set_read_memory_function (client : * mut rc_client_t , handler : rc_client_read_memory_func_t) ; } extern "C" { # [doc = " Determines if there are any active achievements/leaderboards/rich presence that need processing."] pub fn rc_client_is_processing_required (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Processes achievements for the current frame."] pub fn rc_client_do_frame (client : * mut rc_client_t) ; } extern "C" { # [doc = " Processes the periodic queue.\n Called internally by rc_client_do_frame.\n Should be explicitly called if rc_client_do_frame is not being called because emulation is paused."] pub fn rc_client_idle (client : * mut rc_client_t) ; } extern "C" { # [doc = " Determines if a sufficient amount of frames have been processed since the last call to rc_client_can_pause.\n Should not be called unless the client is trying to pause.\n If false is returned, and frames_remaining is not NULL, frames_remaining will be set to the number of frames\n still required before pause is allowed, which can be converted to a time in seconds for displaying to the user."] pub fn rc_client_can_pause (client : * mut rc_client_t , frames_remaining : * mut u32) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Informs the runtime that the emulator has been reset. Will reset all achievements and leaderboards\n to their initial state (includes hiding indicators/trackers)."] pub fn rc_client_reset (client : * mut rc_client_t) ; } extern "C" { # [doc = " Gets the number of bytes needed to serialized the runtime state."] pub fn rc_client_progress_size (client : * mut rc_client_t) -> usize ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator.\n [deprecated] use rc_client_serialize_progress_sized instead"] pub fn rc_client_serialize_progress (client : * mut rc_client_t , buffer : * mut u8) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator."] pub fn rc_client_serialize_progress_sized (client : * mut rc_client_t , buffer : * mut u8 , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Deserializes the runtime state from a buffer.\n Returns RC_OK on success, or an error indicator.\n [deprecated] use rc_client_deserialize_progress_sized instead"] pub fn rc_client_deserialize_progress (client : * mut rc_client_t , serialized : * const u8) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator."] pub fn rc_client_deserialize_progress_sized (client : * mut rc_client_t , serialized : * const u8 , serialized_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __locale_data { pub _address : u8 , } pub type __builtin_va_list = [__va_list_tag ; 1usize] ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __va_list_tag { pub gp_offset : :: core :: ffi :: c_uint , pub fp_offset : :: core :: ffi :: c_uint , pub overflow_arg_area : * mut :: core :: ffi :: c_void , pub reg_save_area : * mut :: core :: ffi :: c_void , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __va_list_tag"] [:: core :: mem :: size_of :: < __va_list_tag > () - 24usize] ; ["Alignment of __va_list_tag"] [:: core :: mem :: align_of :: < __va_list_tag > () - 8usize] ; ["Offset of field: __va_list_tag::gp_offset"] [:: core :: mem :: offset_of ! (__va_list_tag , gp_offset) - 0usize] ; ["Offset of field: __va_list_tag::fp_offset"] [:: core :: mem :: offset_of ! (__va_list_tag , fp_offset) - 4usize] ; ["Offset of field: __va_list_tag::overflow_arg_area"] [:: core :: mem :: offset_of ! (__va_list_tag , overflow_arg_area) - 8usize] ; ["Offset of field: __va_list_tag::reg_save_area"] [:: core :: mem :: offset_of ! (__va_list_tag , reg_save_area) - 16usize] ; } ;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]  --> /opt/rustwide/target/debug/build/rcheevos-sys/badd2487a33295ab/out/bindings.rs:3:124465
[INFO] [stdout]   |
[INFO] [stdout] 3 | ...ore :: ffi :: c_int) { unsafe { let val : u32 = :: core :: mem :: transmute (val) ; self . _bitfield_1 . set (0usize , 24u8 , val ...
[INFO] [stdout]   |                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: replace this with
[INFO] [stdout]   |
[INFO] [stdout] 3 - # [repr (C)] # [derive (Copy , Clone , Debug , Default , Eq , Hash , Ord , PartialEq , PartialOrd)] pub struct __BindgenBitfieldUnit < Storage > { storage : Storage , } impl < Storage > __BindgenBitfieldUnit < Storage > { # [inline] pub const fn new (storage : Storage) -> Self { Self { storage } } } impl < Storage > __BindgenBitfieldUnit < Storage > where Storage : AsRef < [u8] > + AsMut < [u8] >, { # [inline] pub fn get_bit (& self , index : usize) -> bool { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = self . storage . as_ref () [byte_index] ; let bit_index = if cfg ! (target_endian = "big") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; byte & mask == mask } # [inline] pub fn set_bit (& mut self , index : usize , val : bool) { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = & mut self . storage . as_mut () [byte_index] ; let bit_index = if cfg ! (target_endian = "big") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; if val { * byte |= mask ; } else { * byte &= ! mask ; } } # [inline] pub fn get (& self , bit_offset : usize , bit_width : u8) -> u64 { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; let mut val = 0 ; for i in 0 .. (bit_width as usize) { if self . get_bit (i + bit_offset) { let index = if cfg ! (target_endian = "big") { bit_width as usize - 1 - i } else { i } ; val |= 1 << index ; } } val } # [inline] pub fn set (& mut self , bit_offset : usize , bit_width : u8 , val : u64) { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; for i in 0 .. (bit_width as usize) { let mask = 1 << i ; let val_bit_is_set = val & mask == mask ; let index = if cfg ! (target_endian = "big") { bit_width as usize - 1 - i } else { i } ; self . set_bit (index + bit_offset , val_bit_is_set) ; } } } # [derive (PartialEq , Copy , Clone , Hash , Debug , Default)] # [repr (C)] pub struct __BindgenComplex < T > { pub re : T , pub im : T } pub const _STDINT_H : u32 = 1 ; pub const _FEATURES_H : u32 = 1 ; pub const _DEFAULT_SOURCE : u32 = 1 ; pub const __GLIBC_USE_ISOC2Y : u32 = 0 ; pub const __GLIBC_USE_ISOC23 : u32 = 0 ; pub const __USE_ISOC11 : u32 = 1 ; pub const __USE_ISOC99 : u32 = 1 ; pub const __USE_ISOC95 : u32 = 1 ; pub const __USE_POSIX_IMPLICITLY : u32 = 1 ; pub const _POSIX_SOURCE : u32 = 1 ; pub const _POSIX_C_SOURCE : u32 = 202405 ; pub const __USE_POSIX : u32 = 1 ; pub const __USE_POSIX2 : u32 = 1 ; pub const __USE_POSIX199309 : u32 = 1 ; pub const __USE_POSIX199506 : u32 = 1 ; pub const __USE_XOPEN2K : u32 = 1 ; pub const __USE_XOPEN2K8 : u32 = 1 ; pub const _ATFILE_SOURCE : u32 = 1 ; pub const __USE_XOPEN2K24 : u32 = 1 ; pub const __WORDSIZE : u32 = 64 ; pub const __WORDSIZE_TIME64_COMPAT32 : u32 = 1 ; pub const __SYSCALL_WORDSIZE : u32 = 64 ; pub const __TIMESIZE : u32 = 64 ; pub const __USE_TIME_BITS64 : u32 = 1 ; pub const __USE_MISC : u32 = 1 ; 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_C23_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 ; pub const __STDC_IEC_559_COMPLEX__ : u32 = 1 ; 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 = 43 ; pub const _SYS_CDEFS_H : u32 = 1 ; pub const __glibc_c99_flexarr_available : u32 = 1 ; pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI : u32 = 0 ; pub const __HAVE_GENERIC_SELECTION : u32 = 1 ; pub const __GLIBC_USE_LIB_EXT2 : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT_C23 : u32 = 0 ; 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_C23 : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_TYPES_EXT : u32 = 0 ; pub const _BITS_TYPES_H : u32 = 1 ; pub const _BITS_TYPESIZES_H : u32 = 1 ; pub const __OFF_T_MATCHES_OFF64_T : u32 = 1 ; pub const __INO_T_MATCHES_INO64_T : u32 = 1 ; pub const __RLIM_T_MATCHES_RLIM64_T : u32 = 1 ; pub const __STATFS_MATCHES_STATFS64 : u32 = 1 ; pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 : u32 = 1 ; pub const __FD_SETSIZE : u32 = 1024 ; pub const _BITS_TIME64_H : u32 = 1 ; pub const _BITS_WCHAR_H : u32 = 1 ; pub const _BITS_STDINT_INTN_H : u32 = 1 ; pub const _BITS_STDINT_UINTN_H : u32 = 1 ; pub const _BITS_STDINT_LEAST_H : u32 = 1 ; pub const INT8_MIN : i32 = - 128 ; pub const INT16_MIN : i32 = - 32768 ; pub const INT32_MIN : i32 = - 2147483648 ; pub const INT8_MAX : u32 = 127 ; pub const INT16_MAX : u32 = 32767 ; pub const INT32_MAX : u32 = 2147483647 ; pub const UINT8_MAX : u32 = 255 ; pub const UINT16_MAX : u32 = 65535 ; pub const UINT32_MAX : u32 = 4294967295 ; pub const INT_LEAST8_MIN : i32 = - 128 ; pub const INT_LEAST16_MIN : i32 = - 32768 ; pub const INT_LEAST32_MIN : i32 = - 2147483648 ; pub const INT_LEAST8_MAX : u32 = 127 ; pub const INT_LEAST16_MAX : u32 = 32767 ; pub const INT_LEAST32_MAX : u32 = 2147483647 ; pub const UINT_LEAST8_MAX : u32 = 255 ; pub const UINT_LEAST16_MAX : u32 = 65535 ; pub const UINT_LEAST32_MAX : u32 = 4294967295 ; pub const INT_FAST8_MIN : i32 = - 128 ; pub const INT_FAST16_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST32_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST8_MAX : u32 = 127 ; pub const INT_FAST16_MAX : u64 = 9223372036854775807 ; pub const INT_FAST32_MAX : u64 = 9223372036854775807 ; pub const UINT_FAST8_MAX : u32 = 255 ; pub const UINT_FAST16_MAX : i32 = - 1 ; pub const UINT_FAST32_MAX : i32 = - 1 ; pub const INTPTR_MIN : i64 = - 9223372036854775808 ; pub const INTPTR_MAX : u64 = 9223372036854775807 ; pub const UINTPTR_MAX : i32 = - 1 ; pub const PTRDIFF_MIN : i64 = - 9223372036854775808 ; pub const PTRDIFF_MAX : u64 = 9223372036854775807 ; pub const SIG_ATOMIC_MIN : i32 = - 2147483648 ; pub const SIG_ATOMIC_MAX : u32 = 2147483647 ; pub const SIZE_MAX : i32 = - 1 ; pub const WINT_MIN : u32 = 0 ; pub const WINT_MAX : u32 = 4294967295 ; pub const RC_VALUE_MAX_NAME_LENGTH : u32 = 15 ; pub const _TIME_H : u32 = 1 ; pub const _BITS_TIME_H : u32 = 1 ; pub const CLOCK_REALTIME : u32 = 0 ; pub const CLOCK_MONOTONIC : u32 = 1 ; pub const CLOCK_PROCESS_CPUTIME_ID : u32 = 2 ; pub const CLOCK_THREAD_CPUTIME_ID : u32 = 3 ; pub const CLOCK_MONOTONIC_RAW : u32 = 4 ; pub const CLOCK_REALTIME_COARSE : u32 = 5 ; pub const CLOCK_MONOTONIC_COARSE : u32 = 6 ; pub const CLOCK_BOOTTIME : u32 = 7 ; pub const CLOCK_REALTIME_ALARM : u32 = 8 ; pub const CLOCK_BOOTTIME_ALARM : u32 = 9 ; pub const CLOCK_TAI : u32 = 11 ; pub const TIMER_ABSTIME : u32 = 1 ; pub const __clock_t_defined : u32 = 1 ; pub const __time_t_defined : u32 = 1 ; pub const __struct_tm_defined : u32 = 1 ; pub const _STRUCT_TIMESPEC : u32 = 1 ; pub const _BITS_ENDIAN_H : u32 = 1 ; pub const __LITTLE_ENDIAN : u32 = 1234 ; pub const __BIG_ENDIAN : u32 = 4321 ; pub const __PDP_ENDIAN : u32 = 3412 ; pub const _BITS_ENDIANNESS_H : u32 = 1 ; pub const __BYTE_ORDER : u32 = 1234 ; pub const __FLOAT_WORD_ORDER : u32 = 1234 ; pub const __clockid_t_defined : u32 = 1 ; pub const __timer_t_defined : u32 = 1 ; pub const __itimerspec_defined : u32 = 1 ; pub const _BITS_TYPES_LOCALE_T_H : u32 = 1 ; pub const _BITS_TYPES___LOCALE_T_H : u32 = 1 ; pub const TIME_UTC : u32 = 1 ; pub const _STDIO_H : u32 = 1 ; pub const _____fpos_t_defined : u32 = 1 ; pub const ____mbstate_t_defined : u32 = 1 ; pub const _____fpos64_t_defined : u32 = 1 ; pub const ____FILE_defined : u32 = 1 ; pub const __FILE_defined : u32 = 1 ; 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 ; pub const BUFSIZ : u32 = 8192 ; pub const EOF : i32 = - 1 ; 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 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 ; pub const __HAVE_FLOAT128 : u32 = 1 ; pub const __HAVE_DISTINCT_FLOAT128 : u32 = 1 ; pub const __HAVE_FLOAT64X : u32 = 1 ; pub const __HAVE_FLOAT64X_LONG_DOUBLE : u32 = 1 ; pub const __HAVE_FLOAT16 : u32 = 0 ; pub const __HAVE_FLOAT32 : u32 = 1 ; pub const __HAVE_FLOAT64 : u32 = 1 ; pub const __HAVE_FLOAT32X : u32 = 1 ; pub const __HAVE_FLOAT128X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT16 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT32 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT64 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT32X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT64X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT128X : u32 = 0 ; pub const __HAVE_FLOATN_NOT_TYPEDEF : u32 = 0 ; pub const RC_IMAGE_TYPE_GAME : u32 = 1 ; pub const RC_IMAGE_TYPE_ACHIEVEMENT : u32 = 2 ; pub const RC_IMAGE_TYPE_ACHIEVEMENT_LOCKED : u32 = 3 ; pub const RC_IMAGE_TYPE_USER : u32 = 4 ; pub const RC_ACHIEVEMENT_CATEGORY_CORE : u32 = 3 ; pub const RC_ACHIEVEMENT_CATEGORY_UNOFFICIAL : u32 = 5 ; pub const RC_ACHIEVEMENT_TYPE_STANDARD : u32 = 0 ; pub const RC_ACHIEVEMENT_TYPE_MISSABLE : u32 = 1 ; pub const RC_ACHIEVEMENT_TYPE_PROGRESSION : u32 = 2 ; pub const RC_ACHIEVEMENT_TYPE_WIN : u32 = 3 ; pub const RC_CLIENT_LEADERBOARD_DISPLAY_SIZE : u32 = 24 ; pub const RC_OK : _bindgen_ty_1 = 0 ; pub const RC_INVALID_LUA_OPERAND : _bindgen_ty_1 = - 1 ; pub const RC_INVALID_MEMORY_OPERAND : _bindgen_ty_1 = - 2 ; pub const RC_INVALID_CONST_OPERAND : _bindgen_ty_1 = - 3 ; pub const RC_INVALID_FP_OPERAND : _bindgen_ty_1 = - 4 ; pub const RC_INVALID_CONDITION_TYPE : _bindgen_ty_1 = - 5 ; pub const RC_INVALID_OPERATOR : _bindgen_ty_1 = - 6 ; pub const RC_INVALID_REQUIRED_HITS : _bindgen_ty_1 = - 7 ; pub const RC_DUPLICATED_START : _bindgen_ty_1 = - 8 ; pub const RC_DUPLICATED_CANCEL : _bindgen_ty_1 = - 9 ; pub const RC_DUPLICATED_SUBMIT : _bindgen_ty_1 = - 10 ; pub const RC_DUPLICATED_VALUE : _bindgen_ty_1 = - 11 ; pub const RC_DUPLICATED_PROGRESS : _bindgen_ty_1 = - 12 ; pub const RC_MISSING_START : _bindgen_ty_1 = - 13 ; pub const RC_MISSING_CANCEL : _bindgen_ty_1 = - 14 ; pub const RC_MISSING_SUBMIT : _bindgen_ty_1 = - 15 ; pub const RC_MISSING_VALUE : _bindgen_ty_1 = - 16 ; pub const RC_INVALID_LBOARD_FIELD : _bindgen_ty_1 = - 17 ; pub const RC_MISSING_DISPLAY_STRING : _bindgen_ty_1 = - 18 ; pub const RC_OUT_OF_MEMORY : _bindgen_ty_1 = - 19 ; pub const RC_INVALID_VALUE_FLAG : _bindgen_ty_1 = - 20 ; pub const RC_MISSING_VALUE_MEASURED : _bindgen_ty_1 = - 21 ; pub const RC_MULTIPLE_MEASURED : _bindgen_ty_1 = - 22 ; pub const RC_INVALID_MEASURED_TARGET : _bindgen_ty_1 = - 23 ; pub const RC_INVALID_COMPARISON : _bindgen_ty_1 = - 24 ; pub const RC_INVALID_STATE : _bindgen_ty_1 = - 25 ; pub const RC_INVALID_JSON : _bindgen_ty_1 = - 26 ; pub const RC_API_FAILURE : _bindgen_ty_1 = - 27 ; pub const RC_LOGIN_REQUIRED : _bindgen_ty_1 = - 28 ; pub const RC_NO_GAME_LOADED : _bindgen_ty_1 = - 29 ; pub const RC_HARDCORE_DISABLED : _bindgen_ty_1 = - 30 ; pub const RC_ABORTED : _bindgen_ty_1 = - 31 ; pub const RC_NO_RESPONSE : _bindgen_ty_1 = - 32 ; pub const RC_ACCESS_DENIED : _bindgen_ty_1 = - 33 ; pub const RC_INVALID_CREDENTIALS : _bindgen_ty_1 = - 34 ; pub const RC_EXPIRED_TOKEN : _bindgen_ty_1 = - 35 ; pub const RC_INSUFFICIENT_BUFFER : _bindgen_ty_1 = - 36 ; pub const RC_INVALID_VARIABLE_NAME : _bindgen_ty_1 = - 37 ; pub const RC_UNKNOWN_VARIABLE_NAME : _bindgen_ty_1 = - 38 ; # [doc = "\\\n| Return values                                                               |\n\\"] pub type _bindgen_ty_1 = :: core :: ffi :: c_int ; extern "C" { pub fn rc_error_str (ret : :: core :: ffi :: c_int) -> * const :: core :: ffi :: c_char ; } pub type wchar_t = :: core :: ffi :: c_int ; # [repr (C)] # [repr (align (16))] # [derive (Debug , Copy , Clone)] pub struct max_align_t { pub __clang_max_align_nonce1 : :: core :: ffi :: c_longlong , pub __bindgen_padding_0 : u64 , pub __clang_max_align_nonce2 : u128 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of max_align_t"] [:: core :: mem :: size_of :: < max_align_t > () - 32usize] ; ["Alignment of max_align_t"] [:: core :: mem :: align_of :: < max_align_t > () - 16usize] ; ["Offset of field: max_align_t::__clang_max_align_nonce1"] [:: core :: mem :: offset_of ! (max_align_t , __clang_max_align_nonce1) - 0usize] ; ["Offset of field: max_align_t::__clang_max_align_nonce2"] [:: core :: mem :: offset_of ! (max_align_t , __clang_max_align_nonce2) - 16usize] ; } ; pub type __u_char = :: core :: ffi :: c_uchar ; pub type __u_short = :: core :: ffi :: c_ushort ; pub type __u_int = :: core :: ffi :: c_uint ; pub type __u_long = :: core :: ffi :: c_ulong ; pub type __int8_t = :: core :: ffi :: c_schar ; pub type __uint8_t = :: core :: ffi :: c_uchar ; pub type __int16_t = :: core :: ffi :: c_short ; pub type __uint16_t = :: core :: ffi :: c_ushort ; pub type __int32_t = :: core :: ffi :: c_int ; pub type __uint32_t = :: core :: ffi :: c_uint ; pub type __int64_t = :: core :: ffi :: c_long ; pub type __uint64_t = :: core :: ffi :: c_ulong ; pub type __int_least8_t = __int8_t ; pub type __uint_least8_t = __uint8_t ; pub type __int_least16_t = __int16_t ; pub type __uint_least16_t = __uint16_t ; pub type __int_least32_t = __int32_t ; pub type __uint_least32_t = __uint32_t ; pub type __int_least64_t = __int64_t ; pub type __uint_least64_t = __uint64_t ; pub type __quad_t = :: core :: ffi :: c_long ; pub type __u_quad_t = :: core :: ffi :: c_ulong ; pub type __intmax_t = :: core :: ffi :: c_long ; pub type __uintmax_t = :: core :: ffi :: c_ulong ; pub type __dev_t = :: core :: ffi :: c_ulong ; pub type __uid_t = :: core :: ffi :: c_uint ; pub type __gid_t = :: core :: ffi :: c_uint ; pub type __ino_t = :: core :: ffi :: c_ulong ; pub type __ino64_t = :: core :: ffi :: c_ulong ; pub type __mode_t = :: core :: ffi :: c_uint ; pub type __nlink_t = :: core :: ffi :: c_ulong ; pub type __off_t = :: core :: ffi :: c_long ; pub type __off64_t = :: core :: ffi :: c_long ; pub type __pid_t = :: core :: ffi :: c_int ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __fsid_t { pub __val : [:: core :: ffi :: c_int ; 2usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __fsid_t"] [:: core :: mem :: size_of :: < __fsid_t > () - 8usize] ; ["Alignment of __fsid_t"] [:: core :: mem :: align_of :: < __fsid_t > () - 4usize] ; ["Offset of field: __fsid_t::__val"] [:: core :: mem :: offset_of ! (__fsid_t , __val) - 0usize] ; } ; pub type __clock_t = :: core :: ffi :: c_long ; pub type __rlim_t = :: core :: ffi :: c_ulong ; pub type __rlim64_t = :: core :: ffi :: c_ulong ; pub type __id_t = :: core :: ffi :: c_uint ; pub type __time_t = :: core :: ffi :: c_long ; pub type __useconds_t = :: core :: ffi :: c_uint ; pub type __suseconds_t = :: core :: ffi :: c_long ; pub type __suseconds64_t = :: core :: ffi :: c_long ; pub type __daddr_t = :: core :: ffi :: c_int ; pub type __key_t = :: core :: ffi :: c_int ; pub type __clockid_t = :: core :: ffi :: c_int ; pub type __timer_t = * mut :: core :: ffi :: c_void ; pub type __blksize_t = :: core :: ffi :: c_long ; pub type __blkcnt_t = :: core :: ffi :: c_long ; pub type __blkcnt64_t = :: core :: ffi :: c_long ; pub type __fsblkcnt_t = :: core :: ffi :: c_ulong ; pub type __fsblkcnt64_t = :: core :: ffi :: c_ulong ; pub type __fsfilcnt_t = :: core :: ffi :: c_ulong ; pub type __fsfilcnt64_t = :: core :: ffi :: c_ulong ; pub type __fsword_t = :: core :: ffi :: c_long ; pub type __ssize_t = :: core :: ffi :: c_long ; pub type __syscall_slong_t = :: core :: ffi :: c_long ; pub type __syscall_ulong_t = :: core :: ffi :: c_ulong ; pub type __loff_t = __off64_t ; pub type __caddr_t = * mut :: core :: ffi :: c_char ; pub type __intptr_t = :: core :: ffi :: c_long ; pub type __socklen_t = :: core :: ffi :: c_uint ; pub type __sig_atomic_t = :: core :: ffi :: c_int ; pub type int_least8_t = __int_least8_t ; pub type int_least16_t = __int_least16_t ; pub type int_least32_t = __int_least32_t ; pub type int_least64_t = __int_least64_t ; pub type uint_least8_t = __uint_least8_t ; pub type uint_least16_t = __uint_least16_t ; pub type uint_least32_t = __uint_least32_t ; pub type uint_least64_t = __uint_least64_t ; pub type int_fast8_t = :: core :: ffi :: c_schar ; pub type int_fast16_t = :: core :: ffi :: c_long ; pub type int_fast32_t = :: core :: ffi :: c_long ; pub type int_fast64_t = :: core :: ffi :: c_long ; pub type uint_fast8_t = :: core :: ffi :: c_uchar ; pub type uint_fast16_t = :: core :: ffi :: c_ulong ; pub type uint_fast32_t = :: core :: ffi :: c_ulong ; pub type uint_fast64_t = :: core :: ffi :: c_ulong ; pub type intmax_t = __intmax_t ; pub type uintmax_t = __uintmax_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct lua_State { _unused : [u8 ; 0] , } # [doc = " Callback used to read num_bytes bytes from memory starting at address. If\n num_bytes is greater than 1, the value is read in little-endian from\n memory."] pub type rc_peek_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , num_bytes : u32 , ud : * mut :: core :: ffi :: c_void) -> u32 > ; pub const RC_MEMSIZE_8_BITS : _bindgen_ty_2 = 0 ; pub const RC_MEMSIZE_16_BITS : _bindgen_ty_2 = 1 ; pub const RC_MEMSIZE_24_BITS : _bindgen_ty_2 = 2 ; pub const RC_MEMSIZE_32_BITS : _bindgen_ty_2 = 3 ; pub const RC_MEMSIZE_LOW : _bindgen_ty_2 = 4 ; pub const RC_MEMSIZE_HIGH : _bindgen_ty_2 = 5 ; pub const RC_MEMSIZE_BIT_0 : _bindgen_ty_2 = 6 ; pub const RC_MEMSIZE_BIT_1 : _bindgen_ty_2 = 7 ; pub const RC_MEMSIZE_BIT_2 : _bindgen_ty_2 = 8 ; pub const RC_MEMSIZE_BIT_3 : _bindgen_ty_2 = 9 ; pub const RC_MEMSIZE_BIT_4 : _bindgen_ty_2 = 10 ; pub const RC_MEMSIZE_BIT_5 : _bindgen_ty_2 = 11 ; pub const RC_MEMSIZE_BIT_6 : _bindgen_ty_2 = 12 ; pub const RC_MEMSIZE_BIT_7 : _bindgen_ty_2 = 13 ; pub const RC_MEMSIZE_BITCOUNT : _bindgen_ty_2 = 14 ; pub const RC_MEMSIZE_16_BITS_BE : _bindgen_ty_2 = 15 ; pub const RC_MEMSIZE_24_BITS_BE : _bindgen_ty_2 = 16 ; pub const RC_MEMSIZE_32_BITS_BE : _bindgen_ty_2 = 17 ; pub const RC_MEMSIZE_FLOAT : _bindgen_ty_2 = 18 ; pub const RC_MEMSIZE_MBF32 : _bindgen_ty_2 = 19 ; pub const RC_MEMSIZE_MBF32_LE : _bindgen_ty_2 = 20 ; pub const RC_MEMSIZE_FLOAT_BE : _bindgen_ty_2 = 21 ; pub const RC_MEMSIZE_DOUBLE32 : _bindgen_ty_2 = 22 ; pub const RC_MEMSIZE_DOUBLE32_BE : _bindgen_ty_2 = 23 ; pub const RC_MEMSIZE_VARIABLE : _bindgen_ty_2 = 24 ; # [doc = "\\\n| Memory References                                                           |\n\\"] pub type _bindgen_ty_2 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memref_value_t { pub value : u32 , pub prior : u32 , pub size : u8 , pub changed : u8 , pub type_ : u8 , pub is_indirect : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memref_value_t"] [:: core :: mem :: size_of :: < rc_memref_value_t > () - 12usize] ; ["Alignment of rc_memref_value_t"] [:: core :: mem :: align_of :: < rc_memref_value_t > () - 4usize] ; ["Offset of field: rc_memref_value_t::value"] [:: core :: mem :: offset_of ! (rc_memref_value_t , value) - 0usize] ; ["Offset of field: rc_memref_value_t::prior"] [:: core :: mem :: offset_of ! (rc_memref_value_t , prior) - 4usize] ; ["Offset of field: rc_memref_value_t::size"] [:: core :: mem :: offset_of ! (rc_memref_value_t , size) - 8usize] ; ["Offset of field: rc_memref_value_t::changed"] [:: core :: mem :: offset_of ! (rc_memref_value_t , changed) - 9usize] ; ["Offset of field: rc_memref_value_t::type_"] [:: core :: mem :: offset_of ! (rc_memref_value_t , type_) - 10usize] ; ["Offset of field: rc_memref_value_t::is_indirect"] [:: core :: mem :: offset_of ! (rc_memref_value_t , is_indirect) - 11usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memref_t { pub value : rc_memref_value_t , pub address : u32 , pub next : * mut rc_memref_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memref_t"] [:: core :: mem :: size_of :: < rc_memref_t > () - 24usize] ; ["Alignment of rc_memref_t"] [:: core :: mem :: align_of :: < rc_memref_t > () - 8usize] ; ["Offset of field: rc_memref_t::value"] [:: core :: mem :: offset_of ! (rc_memref_t , value) - 0usize] ; ["Offset of field: rc_memref_t::address"] [:: core :: mem :: offset_of ! (rc_memref_t , address) - 12usize] ; ["Offset of field: rc_memref_t::next"] [:: core :: mem :: offset_of ! (rc_memref_t , next) - 16usize] ; } ; pub const RC_OPERAND_ADDRESS : _bindgen_ty_3 = 0 ; pub const RC_OPERAND_DELTA : _bindgen_ty_3 = 1 ; pub const RC_OPERAND_CONST : _bindgen_ty_3 = 2 ; pub const RC_OPERAND_FP : _bindgen_ty_3 = 3 ; pub const RC_OPERAND_LUA : _bindgen_ty_3 = 4 ; pub const RC_OPERAND_PRIOR : _bindgen_ty_3 = 5 ; pub const RC_OPERAND_BCD : _bindgen_ty_3 = 6 ; pub const RC_OPERAND_INVERTED : _bindgen_ty_3 = 7 ; pub const RC_OPERAND_RECALL : _bindgen_ty_3 = 8 ; # [doc = "\\\n| Operands                                                                    |\n\\"] pub type _bindgen_ty_3 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Copy , Clone)] pub struct rc_operand_t { pub value : rc_operand_t__bindgen_ty_1 , pub type_ : u8 , pub size : u8 , } # [repr (C)] # [derive (Copy , Clone)] pub union rc_operand_t__bindgen_ty_1 { pub memref : * mut rc_memref_t , pub num : u32 , pub dbl : f64 , pub luafunc : :: core :: ffi :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_operand_t__bindgen_ty_1"] [:: core :: mem :: size_of :: < rc_operand_t__bindgen_ty_1 > () - 8usize] ; ["Alignment of rc_operand_t__bindgen_ty_1"] [:: core :: mem :: align_of :: < rc_operand_t__bindgen_ty_1 > () - 8usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::memref"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , memref) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::num"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , num) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::dbl"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , dbl) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::luafunc"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , luafunc) - 0usize] ; } ; impl :: core :: fmt :: Debug for rc_operand_t__bindgen_ty_1 { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_operand_t__bindgen_ty_1 {{ union }}") } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_operand_t"] [:: core :: mem :: size_of :: < rc_operand_t > () - 16usize] ; ["Alignment of rc_operand_t"] [:: core :: mem :: align_of :: < rc_operand_t > () - 8usize] ; ["Offset of field: rc_operand_t::value"] [:: core :: mem :: offset_of ! (rc_operand_t , value) - 0usize] ; ["Offset of field: rc_operand_t::type_"] [:: core :: mem :: offset_of ! (rc_operand_t , type_) - 8usize] ; ["Offset of field: rc_operand_t::size"] [:: core :: mem :: offset_of ! (rc_operand_t , size) - 9usize] ; } ; impl :: core :: fmt :: Debug for rc_operand_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_operand_t {{ value: {:?}, type: {:?}, size: {:?} }}" , self . value , self . type_ , self . size) } } extern "C" { pub fn rc_operand_is_memref (operand : * const rc_operand_t) -> :: core :: ffi :: c_int ; } pub const RC_CONDITION_STANDARD : _bindgen_ty_4 = 0 ; pub const RC_CONDITION_PAUSE_IF : _bindgen_ty_4 = 1 ; pub const RC_CONDITION_RESET_IF : _bindgen_ty_4 = 2 ; pub const RC_CONDITION_MEASURED_IF : _bindgen_ty_4 = 3 ; pub const RC_CONDITION_TRIGGER : _bindgen_ty_4 = 4 ; pub const RC_CONDITION_MEASURED : _bindgen_ty_4 = 5 ; pub const RC_CONDITION_ADD_SOURCE : _bindgen_ty_4 = 6 ; pub const RC_CONDITION_SUB_SOURCE : _bindgen_ty_4 = 7 ; pub const RC_CONDITION_ADD_ADDRESS : _bindgen_ty_4 = 8 ; pub const RC_CONDITION_REMEMBER : _bindgen_ty_4 = 9 ; pub const RC_CONDITION_ADD_HITS : _bindgen_ty_4 = 10 ; pub const RC_CONDITION_SUB_HITS : _bindgen_ty_4 = 11 ; pub const RC_CONDITION_RESET_NEXT_IF : _bindgen_ty_4 = 12 ; pub const RC_CONDITION_AND_NEXT : _bindgen_ty_4 = 13 ; pub const RC_CONDITION_OR_NEXT : _bindgen_ty_4 = 14 ; # [doc = "\\\n| Conditions                                                                  |\n\\"] pub type _bindgen_ty_4 = :: core :: ffi :: c_uint ; pub const RC_OPERATOR_EQ : _bindgen_ty_5 = 0 ; pub const RC_OPERATOR_LT : _bindgen_ty_5 = 1 ; pub const RC_OPERATOR_LE : _bindgen_ty_5 = 2 ; pub const RC_OPERATOR_GT : _bindgen_ty_5 = 3 ; pub const RC_OPERATOR_GE : _bindgen_ty_5 = 4 ; pub const RC_OPERATOR_NE : _bindgen_ty_5 = 5 ; pub const RC_OPERATOR_NONE : _bindgen_ty_5 = 6 ; pub const RC_OPERATOR_MULT : _bindgen_ty_5 = 7 ; pub const RC_OPERATOR_DIV : _bindgen_ty_5 = 8 ; pub const RC_OPERATOR_AND : _bindgen_ty_5 = 9 ; pub const RC_OPERATOR_XOR : _bindgen_ty_5 = 10 ; pub const RC_OPERATOR_MOD : _bindgen_ty_5 = 11 ; pub const RC_OPERATOR_ADD : _bindgen_ty_5 = 12 ; pub const RC_OPERATOR_SUB : _bindgen_ty_5 = 13 ; pub type _bindgen_ty_5 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Copy , Clone)] pub struct rc_condition_t { pub operand1 : rc_operand_t , pub operand2 : rc_operand_t , pub required_hits : u32 , pub current_hits : u32 , pub next : * mut rc_condition_t , pub type_ : u8 , pub oper : u8 , pub pause : u8 , pub is_true : u8 , pub optimized_comparator : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_condition_t"] [:: core :: mem :: size_of :: < rc_condition_t > () - 56usize] ; ["Alignment of rc_condition_t"] [:: core :: mem :: align_of :: < rc_condition_t > () - 8usize] ; ["Offset of field: rc_condition_t::operand1"] [:: core :: mem :: offset_of ! (rc_condition_t , operand1) - 0usize] ; ["Offset of field: rc_condition_t::operand2"] [:: core :: mem :: offset_of ! (rc_condition_t , operand2) - 16usize] ; ["Offset of field: rc_condition_t::required_hits"] [:: core :: mem :: offset_of ! (rc_condition_t , required_hits) - 32usize] ; ["Offset of field: rc_condition_t::current_hits"] [:: core :: mem :: offset_of ! (rc_condition_t , current_hits) - 36usize] ; ["Offset of field: rc_condition_t::next"] [:: core :: mem :: offset_of ! (rc_condition_t , next) - 40usize] ; ["Offset of field: rc_condition_t::type_"] [:: core :: mem :: offset_of ! (rc_condition_t , type_) - 48usize] ; ["Offset of field: rc_condition_t::oper"] [:: core :: mem :: offset_of ! (rc_condition_t , oper) - 49usize] ; ["Offset of field: rc_condition_t::pause"] [:: core :: mem :: offset_of ! (rc_condition_t , pause) - 50usize] ; ["Offset of field: rc_condition_t::is_true"] [:: core :: mem :: offset_of ! (rc_condition_t , is_true) - 51usize] ; ["Offset of field: rc_condition_t::optimized_comparator"] [:: core :: mem :: offset_of ! (rc_condition_t , optimized_comparator) - 52usize] ; } ; impl :: core :: fmt :: Debug for rc_condition_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_condition_t {{ operand1: {:?}, operand2: {:?}, required_hits: {:?}, current_hits: {:?}, next: {:?}, type: {:?}, oper: {:?}, pause: {:?}, is_true: {:?}, optimized_comparator: {:?} }}" , self . operand1 , self . operand2 , self . required_hits , self . current_hits , self . next , self . type_ , self . oper , self . pause , self . is_true , self . optimized_comparator) } } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_condset_t { pub next : * mut rc_condset_t , pub conditions : * mut rc_condition_t , pub has_pause : u8 , pub is_paused : u8 , pub has_indirect_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_condset_t"] [:: core :: mem :: size_of :: < rc_condset_t > () - 24usize] ; ["Alignment of rc_condset_t"] [:: core :: mem :: align_of :: < rc_condset_t > () - 8usize] ; ["Offset of field: rc_condset_t::next"] [:: core :: mem :: offset_of ! (rc_condset_t , next) - 0usize] ; ["Offset of field: rc_condset_t::conditions"] [:: core :: mem :: offset_of ! (rc_condset_t , conditions) - 8usize] ; ["Offset of field: rc_condset_t::has_pause"] [:: core :: mem :: offset_of ! (rc_condset_t , has_pause) - 16usize] ; ["Offset of field: rc_condset_t::is_paused"] [:: core :: mem :: offset_of ! (rc_condset_t , is_paused) - 17usize] ; ["Offset of field: rc_condset_t::has_indirect_memrefs"] [:: core :: mem :: offset_of ! (rc_condset_t , has_indirect_memrefs) - 18usize] ; } ; pub const RC_TRIGGER_STATE_INACTIVE : _bindgen_ty_6 = 0 ; pub const RC_TRIGGER_STATE_WAITING : _bindgen_ty_6 = 1 ; pub const RC_TRIGGER_STATE_ACTIVE : _bindgen_ty_6 = 2 ; pub const RC_TRIGGER_STATE_PAUSED : _bindgen_ty_6 = 3 ; pub const RC_TRIGGER_STATE_RESET : _bindgen_ty_6 = 4 ; pub const RC_TRIGGER_STATE_TRIGGERED : _bindgen_ty_6 = 5 ; pub const RC_TRIGGER_STATE_PRIMED : _bindgen_ty_6 = 6 ; pub const RC_TRIGGER_STATE_DISABLED : _bindgen_ty_6 = 7 ; # [doc = "\\\n| Trigger                                                                     |\n\\"] pub type _bindgen_ty_6 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_trigger_t { pub requirement : * mut rc_condset_t , pub alternative : * mut rc_condset_t , pub memrefs : * mut rc_memref_t , pub measured_value : u32 , pub measured_target : u32 , pub state : u8 , pub has_hits : u8 , pub has_required_hits : u8 , pub measured_as_percent : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_trigger_t"] [:: core :: mem :: size_of :: < rc_trigger_t > () - 40usize] ; ["Alignment of rc_trigger_t"] [:: core :: mem :: align_of :: < rc_trigger_t > () - 8usize] ; ["Offset of field: rc_trigger_t::requirement"] [:: core :: mem :: offset_of ! (rc_trigger_t , requirement) - 0usize] ; ["Offset of field: rc_trigger_t::alternative"] [:: core :: mem :: offset_of ! (rc_trigger_t , alternative) - 8usize] ; ["Offset of field: rc_trigger_t::memrefs"] [:: core :: mem :: offset_of ! (rc_trigger_t , memrefs) - 16usize] ; ["Offset of field: rc_trigger_t::measured_value"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_value) - 24usize] ; ["Offset of field: rc_trigger_t::measured_target"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_target) - 28usize] ; ["Offset of field: rc_trigger_t::state"] [:: core :: mem :: offset_of ! (rc_trigger_t , state) - 32usize] ; ["Offset of field: rc_trigger_t::has_hits"] [:: core :: mem :: offset_of ! (rc_trigger_t , has_hits) - 33usize] ; ["Offset of field: rc_trigger_t::has_required_hits"] [:: core :: mem :: offset_of ! (rc_trigger_t , has_required_hits) - 34usize] ; ["Offset of field: rc_trigger_t::measured_as_percent"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_as_percent) - 35usize] ; } ; extern "C" { pub fn rc_trigger_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_trigger (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_trigger_t ; } extern "C" { pub fn rc_evaluate_trigger (trigger : * mut rc_trigger_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_test_trigger (trigger : * mut rc_trigger_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_trigger (self_ : * mut rc_trigger_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_value_t { pub value : rc_memref_value_t , pub conditions : * mut rc_condset_t , pub memrefs : * mut rc_memref_t , pub name : * const :: core :: ffi :: c_char , pub next : * mut rc_value_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_value_t"] [:: core :: mem :: size_of :: < rc_value_t > () - 48usize] ; ["Alignment of rc_value_t"] [:: core :: mem :: align_of :: < rc_value_t > () - 8usize] ; ["Offset of field: rc_value_t::value"] [:: core :: mem :: offset_of ! (rc_value_t , value) - 0usize] ; ["Offset of field: rc_value_t::conditions"] [:: core :: mem :: offset_of ! (rc_value_t , conditions) - 16usize] ; ["Offset of field: rc_value_t::memrefs"] [:: core :: mem :: offset_of ! (rc_value_t , memrefs) - 24usize] ; ["Offset of field: rc_value_t::name"] [:: core :: mem :: offset_of ! (rc_value_t , name) - 32usize] ; ["Offset of field: rc_value_t::next"] [:: core :: mem :: offset_of ! (rc_value_t , next) - 40usize] ; } ; extern "C" { pub fn rc_value_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_value (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_value_t ; } extern "C" { pub fn rc_evaluate_value (value : * mut rc_value_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> i32 ; } pub const RC_LBOARD_STATE_INACTIVE : _bindgen_ty_7 = 0 ; pub const RC_LBOARD_STATE_WAITING : _bindgen_ty_7 = 1 ; pub const RC_LBOARD_STATE_ACTIVE : _bindgen_ty_7 = 2 ; pub const RC_LBOARD_STATE_STARTED : _bindgen_ty_7 = 3 ; pub const RC_LBOARD_STATE_CANCELED : _bindgen_ty_7 = 4 ; pub const RC_LBOARD_STATE_TRIGGERED : _bindgen_ty_7 = 5 ; pub const RC_LBOARD_STATE_DISABLED : _bindgen_ty_7 = 6 ; # [doc = "\\\n| Leaderboards                                                                |\n\\"] pub type _bindgen_ty_7 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_lboard_t { pub start : rc_trigger_t , pub submit : rc_trigger_t , pub cancel : rc_trigger_t , pub value : rc_value_t , pub progress : * mut rc_value_t , pub memrefs : * mut rc_memref_t , pub state : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_lboard_t"] [:: core :: mem :: size_of :: < rc_lboard_t > () - 192usize] ; ["Alignment of rc_lboard_t"] [:: core :: mem :: align_of :: < rc_lboard_t > () - 8usize] ; ["Offset of field: rc_lboard_t::start"] [:: core :: mem :: offset_of ! (rc_lboard_t , start) - 0usize] ; ["Offset of field: rc_lboard_t::submit"] [:: core :: mem :: offset_of ! (rc_lboard_t , submit) - 40usize] ; ["Offset of field: rc_lboard_t::cancel"] [:: core :: mem :: offset_of ! (rc_lboard_t , cancel) - 80usize] ; ["Offset of field: rc_lboard_t::value"] [:: core :: mem :: offset_of ! (rc_lboard_t , value) - 120usize] ; ["Offset of field: rc_lboard_t::progress"] [:: core :: mem :: offset_of ! (rc_lboard_t , progress) - 168usize] ; ["Offset of field: rc_lboard_t::memrefs"] [:: core :: mem :: offset_of ! (rc_lboard_t , memrefs) - 176usize] ; ["Offset of field: rc_lboard_t::state"] [:: core :: mem :: offset_of ! (rc_lboard_t , state) - 184usize] ; } ; extern "C" { pub fn rc_lboard_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_lboard (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_lboard_t ; } extern "C" { pub fn rc_evaluate_lboard (lboard : * mut rc_lboard_t , value : * mut i32 , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_lboard (lboard : * mut rc_lboard_t) ; } pub const RC_FORMAT_FRAMES : _bindgen_ty_8 = 0 ; pub const RC_FORMAT_SECONDS : _bindgen_ty_8 = 1 ; pub const RC_FORMAT_CENTISECS : _bindgen_ty_8 = 2 ; pub const RC_FORMAT_SCORE : _bindgen_ty_8 = 3 ; pub const RC_FORMAT_VALUE : _bindgen_ty_8 = 4 ; pub const RC_FORMAT_MINUTES : _bindgen_ty_8 = 5 ; pub const RC_FORMAT_SECONDS_AS_MINUTES : _bindgen_ty_8 = 6 ; pub const RC_FORMAT_FLOAT1 : _bindgen_ty_8 = 7 ; pub const RC_FORMAT_FLOAT2 : _bindgen_ty_8 = 8 ; pub const RC_FORMAT_FLOAT3 : _bindgen_ty_8 = 9 ; pub const RC_FORMAT_FLOAT4 : _bindgen_ty_8 = 10 ; pub const RC_FORMAT_FLOAT5 : _bindgen_ty_8 = 11 ; pub const RC_FORMAT_FLOAT6 : _bindgen_ty_8 = 12 ; pub const RC_FORMAT_FIXED1 : _bindgen_ty_8 = 13 ; pub const RC_FORMAT_FIXED2 : _bindgen_ty_8 = 14 ; pub const RC_FORMAT_FIXED3 : _bindgen_ty_8 = 15 ; pub const RC_FORMAT_TENS : _bindgen_ty_8 = 16 ; pub const RC_FORMAT_HUNDREDS : _bindgen_ty_8 = 17 ; pub const RC_FORMAT_THOUSANDS : _bindgen_ty_8 = 18 ; pub const RC_FORMAT_UNSIGNED_VALUE : _bindgen_ty_8 = 19 ; # [doc = "\\\n| Value formatting                                                            |\n\\"] pub type _bindgen_ty_8 = :: core :: ffi :: c_uint ; extern "C" { pub fn rc_parse_format (format_str : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_format_value (buffer : * mut :: core :: ffi :: c_char , size : :: core :: ffi :: c_int , value : i32 , format : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_lookup_item_t { pub first : u32 , pub last : u32 , pub left : * mut rc_richpresence_lookup_item_t , pub right : * mut rc_richpresence_lookup_item_t , pub label : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_lookup_item_t"] [:: core :: mem :: size_of :: < rc_richpresence_lookup_item_t > () - 32usize] ; ["Alignment of rc_richpresence_lookup_item_t"] [:: core :: mem :: align_of :: < rc_richpresence_lookup_item_t > () - 8usize] ; ["Offset of field: rc_richpresence_lookup_item_t::first"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , first) - 0usize] ; ["Offset of field: rc_richpresence_lookup_item_t::last"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , last) - 4usize] ; ["Offset of field: rc_richpresence_lookup_item_t::left"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , left) - 8usize] ; ["Offset of field: rc_richpresence_lookup_item_t::right"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , right) - 16usize] ; ["Offset of field: rc_richpresence_lookup_item_t::label"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , label) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_lookup_t { pub root : * mut rc_richpresence_lookup_item_t , pub next : * mut rc_richpresence_lookup_t , pub name : * const :: core :: ffi :: c_char , pub default_label : * const :: core :: ffi :: c_char , pub format : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_lookup_t"] [:: core :: mem :: size_of :: < rc_richpresence_lookup_t > () - 40usize] ; ["Alignment of rc_richpresence_lookup_t"] [:: core :: mem :: align_of :: < rc_richpresence_lookup_t > () - 8usize] ; ["Offset of field: rc_richpresence_lookup_t::root"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , root) - 0usize] ; ["Offset of field: rc_richpresence_lookup_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , next) - 8usize] ; ["Offset of field: rc_richpresence_lookup_t::name"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , name) - 16usize] ; ["Offset of field: rc_richpresence_lookup_t::default_label"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , default_label) - 24usize] ; ["Offset of field: rc_richpresence_lookup_t::format"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , format) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_display_part_t { pub next : * mut rc_richpresence_display_part_t , pub text : * const :: core :: ffi :: c_char , pub lookup : * mut rc_richpresence_lookup_t , pub value : * mut rc_memref_value_t , pub display_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_display_part_t"] [:: core :: mem :: size_of :: < rc_richpresence_display_part_t > () - 40usize] ; ["Alignment of rc_richpresence_display_part_t"] [:: core :: mem :: align_of :: < rc_richpresence_display_part_t > () - 8usize] ; ["Offset of field: rc_richpresence_display_part_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , next) - 0usize] ; ["Offset of field: rc_richpresence_display_part_t::text"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , text) - 8usize] ; ["Offset of field: rc_richpresence_display_part_t::lookup"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , lookup) - 16usize] ; ["Offset of field: rc_richpresence_display_part_t::value"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , value) - 24usize] ; ["Offset of field: rc_richpresence_display_part_t::display_type"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , display_type) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_display_t { pub trigger : rc_trigger_t , pub next : * mut rc_richpresence_display_t , pub display : * mut rc_richpresence_display_part_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_display_t"] [:: core :: mem :: size_of :: < rc_richpresence_display_t > () - 56usize] ; ["Alignment of rc_richpresence_display_t"] [:: core :: mem :: align_of :: < rc_richpresence_display_t > () - 8usize] ; ["Offset of field: rc_richpresence_display_t::trigger"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , trigger) - 0usize] ; ["Offset of field: rc_richpresence_display_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , next) - 40usize] ; ["Offset of field: rc_richpresence_display_t::display"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , display) - 48usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_t { pub first_display : * mut rc_richpresence_display_t , pub first_lookup : * mut rc_richpresence_lookup_t , pub memrefs : * mut rc_memref_t , pub variables : * mut rc_value_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_t"] [:: core :: mem :: size_of :: < rc_richpresence_t > () - 32usize] ; ["Alignment of rc_richpresence_t"] [:: core :: mem :: align_of :: < rc_richpresence_t > () - 8usize] ; ["Offset of field: rc_richpresence_t::first_display"] [:: core :: mem :: offset_of ! (rc_richpresence_t , first_display) - 0usize] ; ["Offset of field: rc_richpresence_t::first_lookup"] [:: core :: mem :: offset_of ! (rc_richpresence_t , first_lookup) - 8usize] ; ["Offset of field: rc_richpresence_t::memrefs"] [:: core :: mem :: offset_of ! (rc_richpresence_t , memrefs) - 16usize] ; ["Offset of field: rc_richpresence_t::variables"] [:: core :: mem :: offset_of ! (rc_richpresence_t , variables) - 24usize] ; } ; extern "C" { pub fn rc_richpresence_size (script : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_richpresence_size_lines (script : * const :: core :: ffi :: c_char , lines_read : * mut :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_richpresence (buffer : * mut :: core :: ffi :: c_void , script : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_richpresence_t ; } extern "C" { pub fn rc_evaluate_richpresence (richpresence : * mut rc_richpresence_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_update_richpresence (richpresence : * mut rc_richpresence_t , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) ; } extern "C" { pub fn rc_get_richpresence_display_string (richpresence : * mut rc_richpresence_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_richpresence (self_ : * mut rc_richpresence_t) ; } # [doc = " A block of memory for variable length data (like strings and arrays)."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_buffer_chunk_t { pub write : * mut u8 , pub end : * mut u8 , pub start : * mut u8 , pub next : * mut rc_buffer_chunk_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_buffer_chunk_t"] [:: core :: mem :: size_of :: < rc_buffer_chunk_t > () - 32usize] ; ["Alignment of rc_buffer_chunk_t"] [:: core :: mem :: align_of :: < rc_buffer_chunk_t > () - 8usize] ; ["Offset of field: rc_buffer_chunk_t::write"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , write) - 0usize] ; ["Offset of field: rc_buffer_chunk_t::end"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , end) - 8usize] ; ["Offset of field: rc_buffer_chunk_t::start"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , start) - 16usize] ; ["Offset of field: rc_buffer_chunk_t::next"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , next) - 24usize] ; } ; # [doc = " A preallocated block of memory for variable length data (like strings and arrays)."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_buffer_t { pub chunk : rc_buffer_chunk_t , pub data : [u8 ; 256usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_buffer_t"] [:: core :: mem :: size_of :: < rc_buffer_t > () - 288usize] ; ["Alignment of rc_buffer_t"] [:: core :: mem :: align_of :: < rc_buffer_t > () - 8usize] ; ["Offset of field: rc_buffer_t::chunk"] [:: core :: mem :: offset_of ! (rc_buffer_t , chunk) - 0usize] ; ["Offset of field: rc_buffer_t::data"] [:: core :: mem :: offset_of ! (rc_buffer_t , data) - 32usize] ; } ; extern "C" { pub fn rc_buffer_init (buffer : * mut rc_buffer_t) ; } extern "C" { pub fn rc_buffer_destroy (buffer : * mut rc_buffer_t) ; } extern "C" { pub fn rc_buffer_reserve (buffer : * mut rc_buffer_t , amount : usize) -> * mut u8 ; } extern "C" { pub fn rc_buffer_consume (buffer : * mut rc_buffer_t , start : * const u8 , end : * mut u8) ; } extern "C" { pub fn rc_buffer_alloc (buffer : * mut rc_buffer_t , amount : usize) -> * mut :: core :: ffi :: c_void ; } extern "C" { pub fn rc_buffer_strcpy (buffer : * mut rc_buffer_t , src : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn rc_buffer_strncpy (buffer : * mut rc_buffer_t , src : * const :: core :: ffi :: c_char , len : usize) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn rc_djb2 (input : * const :: core :: ffi :: c_char) -> u32 ; } extern "C" { pub fn rc_format_md5 (checksum : * mut :: core :: ffi :: c_char , digest : * const u8) ; } # [doc = " A constructed request to send to the retroachievements server."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_request_t { pub url : * const :: core :: ffi :: c_char , pub post_data : * const :: core :: ffi :: c_char , pub content_type : * const :: core :: ffi :: c_char , pub buffer : rc_buffer_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_request_t"] [:: core :: mem :: size_of :: < rc_api_request_t > () - 312usize] ; ["Alignment of rc_api_request_t"] [:: core :: mem :: align_of :: < rc_api_request_t > () - 8usize] ; ["Offset of field: rc_api_request_t::url"] [:: core :: mem :: offset_of ! (rc_api_request_t , url) - 0usize] ; ["Offset of field: rc_api_request_t::post_data"] [:: core :: mem :: offset_of ! (rc_api_request_t , post_data) - 8usize] ; ["Offset of field: rc_api_request_t::content_type"] [:: core :: mem :: offset_of ! (rc_api_request_t , content_type) - 16usize] ; ["Offset of field: rc_api_request_t::buffer"] [:: core :: mem :: offset_of ! (rc_api_request_t , buffer) - 24usize] ; } ; # [doc = " Common attributes for all server responses."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_response_t { pub succeeded : :: core :: ffi :: c_int , pub error_message : * const :: core :: ffi :: c_char , pub error_code : * const :: core :: ffi :: c_char , pub buffer : rc_buffer_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_response_t"] [:: core :: mem :: size_of :: < rc_api_response_t > () - 312usize] ; ["Alignment of rc_api_response_t"] [:: core :: mem :: align_of :: < rc_api_response_t > () - 8usize] ; ["Offset of field: rc_api_response_t::succeeded"] [:: core :: mem :: offset_of ! (rc_api_response_t , succeeded) - 0usize] ; ["Offset of field: rc_api_response_t::error_message"] [:: core :: mem :: offset_of ! (rc_api_response_t , error_message) - 8usize] ; ["Offset of field: rc_api_response_t::error_code"] [:: core :: mem :: offset_of ! (rc_api_response_t , error_code) - 16usize] ; ["Offset of field: rc_api_response_t::buffer"] [:: core :: mem :: offset_of ! (rc_api_response_t , buffer) - 24usize] ; } ; extern "C" { pub fn rc_api_destroy_request (request : * mut rc_api_request_t) ; } extern "C" { pub fn rc_api_set_host (hostname : * const :: core :: ffi :: c_char) ; } extern "C" { pub fn rc_api_set_image_host (hostname : * const :: core :: ffi :: c_char) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_server_response_t { pub body : * const :: core :: ffi :: c_char , pub body_length : usize , pub http_status_code : :: core :: ffi :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_server_response_t"] [:: core :: mem :: size_of :: < rc_api_server_response_t > () - 24usize] ; ["Alignment of rc_api_server_response_t"] [:: core :: mem :: align_of :: < rc_api_server_response_t > () - 8usize] ; ["Offset of field: rc_api_server_response_t::body"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , body) - 0usize] ; ["Offset of field: rc_api_server_response_t::body_length"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , body_length) - 8usize] ; ["Offset of field: rc_api_server_response_t::http_status_code"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , http_status_code) - 16usize] ; } ; pub const RC_API_SERVER_RESPONSE_CLIENT_ERROR : _bindgen_ty_9 = - 1 ; pub const RC_API_SERVER_RESPONSE_RETRYABLE_CLIENT_ERROR : _bindgen_ty_9 = - 2 ; pub type _bindgen_ty_9 = :: core :: ffi :: c_int ; pub type clock_t = __clock_t ; pub type time_t = __time_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct tm { pub tm_sec : :: core :: ffi :: c_int , pub tm_min : :: core :: ffi :: c_int , pub tm_hour : :: core :: ffi :: c_int , pub tm_mday : :: core :: ffi :: c_int , pub tm_mon : :: core :: ffi :: c_int , pub tm_year : :: core :: ffi :: c_int , pub tm_wday : :: core :: ffi :: c_int , pub tm_yday : :: core :: ffi :: c_int , pub tm_isdst : :: core :: ffi :: c_int , pub tm_gmtoff : :: core :: ffi :: c_long , pub tm_zone : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of tm"] [:: core :: mem :: size_of :: < tm > () - 56usize] ; ["Alignment of tm"] [:: core :: mem :: align_of :: < tm > () - 8usize] ; ["Offset of field: tm::tm_sec"] [:: core :: mem :: offset_of ! (tm , tm_sec) - 0usize] ; ["Offset of field: tm::tm_min"] [:: core :: mem :: offset_of ! (tm , tm_min) - 4usize] ; ["Offset of field: tm::tm_hour"] [:: core :: mem :: offset_of ! (tm , tm_hour) - 8usize] ; ["Offset of field: tm::tm_mday"] [:: core :: mem :: offset_of ! (tm , tm_mday) - 12usize] ; ["Offset of field: tm::tm_mon"] [:: core :: mem :: offset_of ! (tm , tm_mon) - 16usize] ; ["Offset of field: tm::tm_year"] [:: core :: mem :: offset_of ! (tm , tm_year) - 20usize] ; ["Offset of field: tm::tm_wday"] [:: core :: mem :: offset_of ! (tm , tm_wday) - 24usize] ; ["Offset of field: tm::tm_yday"] [:: core :: mem :: offset_of ! (tm , tm_yday) - 28usize] ; ["Offset of field: tm::tm_isdst"] [:: core :: mem :: offset_of ! (tm , tm_isdst) - 32usize] ; ["Offset of field: tm::tm_gmtoff"] [:: core :: mem :: offset_of ! (tm , tm_gmtoff) - 40usize] ; ["Offset of field: tm::tm_zone"] [:: core :: mem :: offset_of ! (tm , tm_zone) - 48usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct timespec { pub tv_sec : __time_t , pub tv_nsec : __syscall_slong_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of timespec"] [:: core :: mem :: size_of :: < timespec > () - 16usize] ; ["Alignment of timespec"] [:: core :: mem :: align_of :: < timespec > () - 8usize] ; ["Offset of field: timespec::tv_sec"] [:: core :: mem :: offset_of ! (timespec , tv_sec) - 0usize] ; ["Offset of field: timespec::tv_nsec"] [:: core :: mem :: offset_of ! (timespec , tv_nsec) - 8usize] ; } ; pub type clockid_t = __clockid_t ; pub type timer_t = __timer_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct itimerspec { pub it_interval : timespec , pub it_value : timespec , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of itimerspec"] [:: core :: mem :: size_of :: < itimerspec > () - 32usize] ; ["Alignment of itimerspec"] [:: core :: mem :: align_of :: < itimerspec > () - 8usize] ; ["Offset of field: itimerspec::it_interval"] [:: core :: mem :: offset_of ! (itimerspec , it_interval) - 0usize] ; ["Offset of field: itimerspec::it_value"] [:: core :: mem :: offset_of ! (itimerspec , it_value) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct sigevent { _unused : [u8 ; 0] , } pub type pid_t = __pid_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __locale_struct { pub __locales : [* mut __locale_data ; 13usize] , pub __ctype_b : * const :: core :: ffi :: c_ushort , pub __ctype_tolower : * const :: core :: ffi :: c_int , pub __ctype_toupper : * const :: core :: ffi :: c_int , pub __names : [* const :: core :: ffi :: c_char ; 13usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __locale_struct"] [:: core :: mem :: size_of :: < __locale_struct > () - 232usize] ; ["Alignment of __locale_struct"] [:: core :: mem :: align_of :: < __locale_struct > () - 8usize] ; ["Offset of field: __locale_struct::__locales"] [:: core :: mem :: offset_of ! (__locale_struct , __locales) - 0usize] ; ["Offset of field: __locale_struct::__ctype_b"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_b) - 104usize] ; ["Offset of field: __locale_struct::__ctype_tolower"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_tolower) - 112usize] ; ["Offset of field: __locale_struct::__ctype_toupper"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_toupper) - 120usize] ; ["Offset of field: __locale_struct::__names"] [:: core :: mem :: offset_of ! (__locale_struct , __names) - 128usize] ; } ; pub type __locale_t = * mut __locale_struct ; pub type locale_t = __locale_t ; extern "C" { pub fn clock () -> clock_t ; } extern "C" { pub fn time (__timer : * mut time_t) -> time_t ; } extern "C" { pub fn difftime (__time1 : time_t , __time0 : time_t) -> f64 ; } extern "C" { pub fn mktime (__tp : * mut tm) -> time_t ; } extern "C" { pub fn strftime (__s : * mut :: core :: ffi :: c_char , __maxsize : usize , __format : * const :: core :: ffi :: c_char , __tp : * const tm) -> usize ; } extern "C" { pub fn strftime_l (__s : * mut :: core :: ffi :: c_char , __maxsize : usize , __format : * const :: core :: ffi :: c_char , __tp : * const tm , __loc : locale_t) -> usize ; } extern "C" { pub fn gmtime (__timer : * const time_t) -> * mut tm ; } extern "C" { pub fn localtime (__timer : * const time_t) -> * mut tm ; } extern "C" { pub fn gmtime_r (__timer : * const time_t , __tp : * mut tm) -> * mut tm ; } extern "C" { pub fn localtime_r (__timer : * const time_t , __tp : * mut tm) -> * mut tm ; } extern "C" { pub fn asctime (__tp : * const tm) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn ctime (__timer : * const time_t) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn asctime_r (__tp : * const tm , __buf : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn ctime_r (__timer : * const time_t , __buf : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub static mut __tzname : [* mut :: core :: ffi :: c_char ; 2usize] ; } extern "C" { pub static mut __daylight : :: core :: ffi :: c_int ; } extern "C" { pub static mut __timezone : :: core :: ffi :: c_long ; } extern "C" { pub static mut tzname : [* mut :: core :: ffi :: c_char ; 2usize] ; } extern "C" { pub fn tzset () ; } extern "C" { pub static mut daylight : :: core :: ffi :: c_int ; } extern "C" { pub static mut timezone : :: core :: ffi :: c_long ; } extern "C" { pub fn timegm (__tp : * mut tm) -> time_t ; } extern "C" { pub fn timelocal (__tp : * mut tm) -> time_t ; } extern "C" { pub fn dysize (__year : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn nanosleep (__requested_time : * const timespec , __remaining : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_getres (__clock_id : clockid_t , __res : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_gettime (__clock_id : clockid_t , __tp : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_settime (__clock_id : clockid_t , __tp : * const timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_nanosleep (__clock_id : clockid_t , __flags : :: core :: ffi :: c_int , __req : * const timespec , __rem : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_getcpuclockid (__pid : pid_t , __clock_id : * mut clockid_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_create (__clock_id : clockid_t , __evp : * mut sigevent , __timerid : * mut timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_delete (__timerid : timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_settime (__timerid : timer_t , __flags : :: core :: ffi :: c_int , __value : * const itimerspec , __ovalue : * mut itimerspec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_gettime (__timerid : timer_t , __value : * mut itimerspec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_getoverrun (__timerid : timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timespec_get (__ts : * mut timespec , __base : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } # [doc = " API parameters for a login request.\n If both password and api_token are provided, api_token will be ignored."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_login_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub password : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_login_request_t"] [:: core :: mem :: size_of :: < rc_api_login_request_t > () - 24usize] ; ["Alignment of rc_api_login_request_t"] [:: core :: mem :: align_of :: < rc_api_login_request_t > () - 8usize] ; ["Offset of field: rc_api_login_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , username) - 0usize] ; ["Offset of field: rc_api_login_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_login_request_t::password"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , password) - 16usize] ; } ; # [doc = " Response data for a login request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_login_response_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub score : u32 , pub score_softcore : u32 , pub num_unread_messages : u32 , pub display_name : * const :: core :: ffi :: c_char , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_login_response_t"] [:: core :: mem :: size_of :: < rc_api_login_response_t > () - 352usize] ; ["Alignment of rc_api_login_response_t"] [:: core :: mem :: align_of :: < rc_api_login_response_t > () - 8usize] ; ["Offset of field: rc_api_login_response_t::username"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , username) - 0usize] ; ["Offset of field: rc_api_login_response_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , api_token) - 8usize] ; ["Offset of field: rc_api_login_response_t::score"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , score) - 16usize] ; ["Offset of field: rc_api_login_response_t::score_softcore"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , score_softcore) - 20usize] ; ["Offset of field: rc_api_login_response_t::num_unread_messages"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , num_unread_messages) - 24usize] ; ["Offset of field: rc_api_login_response_t::display_name"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , display_name) - 32usize] ; ["Offset of field: rc_api_login_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , response) - 40usize] ; } ; extern "C" { pub fn rc_api_init_login_request (request : * mut rc_api_request_t , api_params : * const rc_api_login_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_login_response (response : * mut rc_api_login_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_login_server_response (response : * mut rc_api_login_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_login_response (response : * mut rc_api_login_response_t) ; } # [doc = " API parameters for a start session request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_start_session_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub game_hash : * const :: core :: ffi :: c_char , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_start_session_request_t"] [:: core :: mem :: size_of :: < rc_api_start_session_request_t > () - 40usize] ; ["Alignment of rc_api_start_session_request_t"] [:: core :: mem :: align_of :: < rc_api_start_session_request_t > () - 8usize] ; ["Offset of field: rc_api_start_session_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , username) - 0usize] ; ["Offset of field: rc_api_start_session_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_start_session_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_start_session_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_start_session_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , hardcore) - 32usize] ; } ; # [doc = " Response data for an achievement unlock."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_unlock_entry_t { pub achievement_id : u32 , pub when : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_unlock_entry_t"] [:: core :: mem :: size_of :: < rc_api_unlock_entry_t > () - 16usize] ; ["Alignment of rc_api_unlock_entry_t"] [:: core :: mem :: align_of :: < rc_api_unlock_entry_t > () - 8usize] ; ["Offset of field: rc_api_unlock_entry_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_unlock_entry_t , achievement_id) - 0usize] ; ["Offset of field: rc_api_unlock_entry_t::when"] [:: core :: mem :: offset_of ! (rc_api_unlock_entry_t , when) - 8usize] ; } ; # [doc = " Response data for a start session request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_start_session_response_t { pub hardcore_unlocks : * mut rc_api_unlock_entry_t , pub unlocks : * mut rc_api_unlock_entry_t , pub num_hardcore_unlocks : u32 , pub num_unlocks : u32 , pub server_now : time_t , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_start_session_response_t"] [:: core :: mem :: size_of :: < rc_api_start_session_response_t > () - 344usize] ; ["Alignment of rc_api_start_session_response_t"] [:: core :: mem :: align_of :: < rc_api_start_session_response_t > () - 8usize] ; ["Offset of field: rc_api_start_session_response_t::hardcore_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , hardcore_unlocks) - 0usize] ; ["Offset of field: rc_api_start_session_response_t::unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , unlocks) - 8usize] ; ["Offset of field: rc_api_start_session_response_t::num_hardcore_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , num_hardcore_unlocks) - 16usize] ; ["Offset of field: rc_api_start_session_response_t::num_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , num_unlocks) - 20usize] ; ["Offset of field: rc_api_start_session_response_t::server_now"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , server_now) - 24usize] ; ["Offset of field: rc_api_start_session_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_start_session_request (request : * mut rc_api_request_t , api_params : * const rc_api_start_session_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_start_session_response (response : * mut rc_api_start_session_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_start_session_server_response (response : * mut rc_api_start_session_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_start_session_response (response : * mut rc_api_start_session_response_t) ; } # [doc = " API parameters for a fetch user unlocks request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_user_unlocks_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_user_unlocks_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_user_unlocks_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_user_unlocks_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_user_unlocks_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , hardcore) - 20usize] ; } ; # [doc = " Response data for a fetch user unlocks request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_user_unlocks_response_t { pub achievement_ids : * mut u32 , pub num_achievement_ids : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_user_unlocks_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_user_unlocks_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_user_unlocks_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_user_unlocks_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::achievement_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , achievement_ids) - 0usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::num_achievement_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , num_achievement_ids) - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_user_unlocks_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_user_unlocks_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_user_unlocks_response (response : * mut rc_api_fetch_user_unlocks_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_user_unlocks_server_response (response : * mut rc_api_fetch_user_unlocks_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_user_unlocks_response (response : * mut rc_api_fetch_user_unlocks_response_t) ; } # [doc = " API parameters for a fetch code notes request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_code_notes_request_t { pub game_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_code_notes_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_code_notes_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_code_notes_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_code_notes_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_code_notes_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_request_t , game_id) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_code_note_t { pub address : u32 , pub author : * const :: core :: ffi :: c_char , pub note : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_code_note_t"] [:: core :: mem :: size_of :: < rc_api_code_note_t > () - 24usize] ; ["Alignment of rc_api_code_note_t"] [:: core :: mem :: align_of :: < rc_api_code_note_t > () - 8usize] ; ["Offset of field: rc_api_code_note_t::address"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , address) - 0usize] ; ["Offset of field: rc_api_code_note_t::author"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , author) - 8usize] ; ["Offset of field: rc_api_code_note_t::note"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , note) - 16usize] ; } ; # [doc = " Response data for a fetch code notes request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_code_notes_response_t { pub notes : * mut rc_api_code_note_t , pub num_notes : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_code_notes_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_code_notes_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_code_notes_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_code_notes_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::notes"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , notes) - 0usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::num_notes"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , num_notes) - 8usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_code_notes_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_code_notes_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_code_notes_response (response : * mut rc_api_fetch_code_notes_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_code_notes_server_response (response : * mut rc_api_fetch_code_notes_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_code_notes_response (response : * mut rc_api_fetch_code_notes_response_t) ; } # [doc = " API parameters for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_code_note_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub address : u32 , pub note : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_code_note_request_t"] [:: core :: mem :: size_of :: < rc_api_update_code_note_request_t > () - 32usize] ; ["Alignment of rc_api_update_code_note_request_t"] [:: core :: mem :: align_of :: < rc_api_update_code_note_request_t > () - 8usize] ; ["Offset of field: rc_api_update_code_note_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_code_note_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_code_note_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_update_code_note_request_t::address"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , address) - 20usize] ; ["Offset of field: rc_api_update_code_note_request_t::note"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , note) - 24usize] ; } ; # [doc = " Response data for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_code_note_response_t { pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_code_note_response_t"] [:: core :: mem :: size_of :: < rc_api_update_code_note_response_t > () - 312usize] ; ["Alignment of rc_api_update_code_note_response_t"] [:: core :: mem :: align_of :: < rc_api_update_code_note_response_t > () - 8usize] ; ["Offset of field: rc_api_update_code_note_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_response_t , response) - 0usize] ; } ; extern "C" { pub fn rc_api_init_update_code_note_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_code_note_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_code_note_response (response : * mut rc_api_update_code_note_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_code_note_server_response (response : * mut rc_api_update_code_note_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_code_note_response (response : * mut rc_api_update_code_note_response_t) ; } # [doc = " API parameters for an update achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_achievement_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub game_id : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub badge : * const :: core :: ffi :: c_char , pub trigger : * const :: core :: ffi :: c_char , pub points : u32 , pub category : u32 , pub type_ : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_achievement_request_t"] [:: core :: mem :: size_of :: < rc_api_update_achievement_request_t > () - 72usize] ; ["Alignment of rc_api_update_achievement_request_t"] [:: core :: mem :: align_of :: < rc_api_update_achievement_request_t > () - 8usize] ; ["Offset of field: rc_api_update_achievement_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_achievement_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_achievement_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_update_achievement_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , game_id) - 20usize] ; ["Offset of field: rc_api_update_achievement_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , title) - 24usize] ; ["Offset of field: rc_api_update_achievement_request_t::description"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , description) - 32usize] ; ["Offset of field: rc_api_update_achievement_request_t::badge"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , badge) - 40usize] ; ["Offset of field: rc_api_update_achievement_request_t::trigger"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , trigger) - 48usize] ; ["Offset of field: rc_api_update_achievement_request_t::points"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , points) - 56usize] ; ["Offset of field: rc_api_update_achievement_request_t::category"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , category) - 60usize] ; ["Offset of field: rc_api_update_achievement_request_t::type_"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , type_) - 64usize] ; } ; # [doc = " Response data for an update achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_achievement_response_t { pub achievement_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_achievement_response_t"] [:: core :: mem :: size_of :: < rc_api_update_achievement_response_t > () - 320usize] ; ["Alignment of rc_api_update_achievement_response_t"] [:: core :: mem :: align_of :: < rc_api_update_achievement_response_t > () - 8usize] ; ["Offset of field: rc_api_update_achievement_response_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_response_t , achievement_id) - 0usize] ; ["Offset of field: rc_api_update_achievement_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_update_achievement_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_achievement_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_achievement_response (response : * mut rc_api_update_achievement_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_achievement_server_response (response : * mut rc_api_update_achievement_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_achievement_response (response : * mut rc_api_update_achievement_response_t) ; } # [doc = " API parameters for an update leaderboard request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_leaderboard_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub leaderboard_id : u32 , pub game_id : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub start_trigger : * const :: core :: ffi :: c_char , pub submit_trigger : * const :: core :: ffi :: c_char , pub cancel_trigger : * const :: core :: ffi :: c_char , pub value_definition : * const :: core :: ffi :: c_char , pub format : * const :: core :: ffi :: c_char , pub lower_is_better : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_leaderboard_request_t"] [:: core :: mem :: size_of :: < rc_api_update_leaderboard_request_t > () - 88usize] ; ["Alignment of rc_api_update_leaderboard_request_t"] [:: core :: mem :: align_of :: < rc_api_update_leaderboard_request_t > () - 8usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , leaderboard_id) - 16usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , game_id) - 20usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , title) - 24usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::description"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , description) - 32usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::start_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , start_trigger) - 40usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::submit_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , submit_trigger) - 48usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::cancel_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , cancel_trigger) - 56usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::value_definition"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , value_definition) - 64usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::format"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , format) - 72usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , lower_is_better) - 80usize] ; } ; # [doc = " Response data for an update leaderboard request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_leaderboard_response_t { pub leaderboard_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_leaderboard_response_t"] [:: core :: mem :: size_of :: < rc_api_update_leaderboard_response_t > () - 320usize] ; ["Alignment of rc_api_update_leaderboard_response_t"] [:: core :: mem :: align_of :: < rc_api_update_leaderboard_response_t > () - 8usize] ; ["Offset of field: rc_api_update_leaderboard_response_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_response_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_api_update_leaderboard_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_update_leaderboard_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_leaderboard_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_leaderboard_response (response : * mut rc_api_update_leaderboard_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_leaderboard_server_response (response : * mut rc_api_update_leaderboard_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_leaderboard_response (response : * mut rc_api_update_leaderboard_response_t) ; } # [doc = " API parameters for a fetch badge range request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_badge_range_request_t { pub unused : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_badge_range_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_badge_range_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_badge_range_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_badge_range_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_badge_range_request_t::unused"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_request_t , unused) - 0usize] ; } ; # [doc = " Response data for a fetch badge range request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_badge_range_response_t { pub first_badge_id : u32 , pub next_badge_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_badge_range_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_badge_range_response_t > () - 320usize] ; ["Alignment of rc_api_fetch_badge_range_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_badge_range_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::first_badge_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , first_badge_id) - 0usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::next_badge_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , next_badge_id) - 4usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_fetch_badge_range_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_badge_range_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_badge_range_response (response : * mut rc_api_fetch_badge_range_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_badge_range_server_response (response : * mut rc_api_fetch_badge_range_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_badge_range_response (response : * mut rc_api_fetch_badge_range_response_t) ; } # [doc = " API parameters for an add game hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_add_game_hash_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub hash : * const :: core :: ffi :: c_char , pub hash_description : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_add_game_hash_request_t"] [:: core :: mem :: size_of :: < rc_api_add_game_hash_request_t > () - 48usize] ; ["Alignment of rc_api_add_game_hash_request_t"] [:: core :: mem :: align_of :: < rc_api_add_game_hash_request_t > () - 8usize] ; ["Offset of field: rc_api_add_game_hash_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , username) - 0usize] ; ["Offset of field: rc_api_add_game_hash_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_add_game_hash_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_add_game_hash_request_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , console_id) - 20usize] ; ["Offset of field: rc_api_add_game_hash_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , title) - 24usize] ; ["Offset of field: rc_api_add_game_hash_request_t::hash"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , hash) - 32usize] ; ["Offset of field: rc_api_add_game_hash_request_t::hash_description"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , hash_description) - 40usize] ; } ; # [doc = " Response data for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_add_game_hash_response_t { pub game_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_add_game_hash_response_t"] [:: core :: mem :: size_of :: < rc_api_add_game_hash_response_t > () - 320usize] ; ["Alignment of rc_api_add_game_hash_response_t"] [:: core :: mem :: align_of :: < rc_api_add_game_hash_response_t > () - 8usize] ; ["Offset of field: rc_api_add_game_hash_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_response_t , game_id) - 0usize] ; ["Offset of field: rc_api_add_game_hash_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_add_game_hash_request (request : * mut rc_api_request_t , api_params : * const rc_api_add_game_hash_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_add_game_hash_response (response : * mut rc_api_add_game_hash_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_add_game_hash_server_response (response : * mut rc_api_add_game_hash_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_add_game_hash_response (response : * mut rc_api_add_game_hash_response_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_t { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_menu_item_t { pub label : * const :: core :: ffi :: c_char , pub id : u32 , pub checked : u8 , pub enabled : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_menu_item_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_menu_item_t > () - 16usize] ; ["Alignment of rc_client_raintegration_menu_item_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_menu_item_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::label"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , label) - 0usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::id"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , id) - 8usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::checked"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , checked) - 12usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::enabled"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , enabled) - 13usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_menu_t { pub items : * mut rc_client_raintegration_menu_item_t , pub num_items : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_menu_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_menu_t > () - 16usize] ; ["Alignment of rc_client_raintegration_menu_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_menu_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_menu_t::items"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_t , items) - 0usize] ; ["Offset of field: rc_client_raintegration_menu_t::num_items"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_t , num_items) - 8usize] ; } ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_NONE : _bindgen_ty_10 = 0 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_PUBLISHED : _bindgen_ty_10 = 1 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_LOCAL : _bindgen_ty_10 = 2 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_MODIFIED : _bindgen_ty_10 = 3 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_INSECURE : _bindgen_ty_10 = 4 ; pub type _bindgen_ty_10 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_RAINTEGRATION_EVENT_TYPE_NONE : _bindgen_ty_11 = 0 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_MENUITEM_CHECKED_CHANGED : _bindgen_ty_11 = 1 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_HARDCORE_CHANGED : _bindgen_ty_11 = 2 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_PAUSE : _bindgen_ty_11 = 3 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_MENU_CHANGED : _bindgen_ty_11 = 4 ; pub type _bindgen_ty_11 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_event_t { pub type_ : u32 , pub menu_item : * const rc_client_raintegration_menu_item_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_event_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_event_t > () - 16usize] ; ["Alignment of rc_client_raintegration_event_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_event_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_event_t::type_"] [:: core :: mem :: offset_of ! (rc_client_raintegration_event_t , type_) - 0usize] ; ["Offset of field: rc_client_raintegration_event_t::menu_item"] [:: core :: mem :: offset_of ! (rc_client_raintegration_event_t , menu_item) - 8usize] ; } ; pub type rc_client_raintegration_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (event : * const rc_client_raintegration_event_t , client : * mut rc_client_t) > ; pub type rc_client_raintegration_write_memory_func_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , buffer : * mut u8 , num_bytes : u32 , client : * mut rc_client_t) > ; pub type rc_client_raintegration_get_game_name_func_t = :: core :: option :: Option < unsafe extern "C" fn (buffer : * mut :: core :: ffi :: c_char , buffer_size : u32 , client : * mut rc_client_t) > ; # [doc = " API parameters for a fetch achievement info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_achievement_info_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub first_entry : u32 , pub count : u32 , pub friends_only : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_achievement_info_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_achievement_info_request_t > () - 32usize] ; ["Alignment of rc_api_fetch_achievement_info_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_achievement_info_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::first_entry"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , first_entry) - 20usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::count"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , count) - 24usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::friends_only"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , friends_only) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_achievement_awarded_entry_t { pub username : * const :: core :: ffi :: c_char , pub awarded : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_achievement_awarded_entry_t"] [:: core :: mem :: size_of :: < rc_api_achievement_awarded_entry_t > () - 16usize] ; ["Alignment of rc_api_achievement_awarded_entry_t"] [:: core :: mem :: align_of :: < rc_api_achievement_awarded_entry_t > () - 8usize] ; ["Offset of field: rc_api_achievement_awarded_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_achievement_awarded_entry_t , username) - 0usize] ; ["Offset of field: rc_api_achievement_awarded_entry_t::awarded"] [:: core :: mem :: offset_of ! (rc_api_achievement_awarded_entry_t , awarded) - 8usize] ; } ; # [doc = " Response data for a fetch achievement info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_achievement_info_response_t { pub id : u32 , pub game_id : u32 , pub num_awarded : u32 , pub num_players : u32 , pub recently_awarded : * mut rc_api_achievement_awarded_entry_t , pub num_recently_awarded : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_achievement_info_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_achievement_info_response_t > () - 344usize] ; ["Alignment of rc_api_fetch_achievement_info_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_achievement_info_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , game_id) - 4usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_awarded) - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_players"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_players) - 12usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::recently_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , recently_awarded) - 16usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_recently_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_recently_awarded) - 24usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_fetch_achievement_info_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_achievement_info_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_achievement_info_response (response : * mut rc_api_fetch_achievement_info_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_achievement_info_server_response (response : * mut rc_api_fetch_achievement_info_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_achievement_info_response (response : * mut rc_api_fetch_achievement_info_response_t) ; } # [doc = " API parameters for a fetch leaderboard info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_leaderboard_info_request_t { pub leaderboard_id : u32 , pub count : u32 , pub first_entry : u32 , pub username : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_leaderboard_info_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_leaderboard_info_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_leaderboard_info_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_leaderboard_info_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::count"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , count) - 4usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::first_entry"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , first_entry) - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , username) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_lboard_info_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub index : u32 , pub score : i32 , pub submitted : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_lboard_info_entry_t"] [:: core :: mem :: size_of :: < rc_api_lboard_info_entry_t > () - 32usize] ; ["Alignment of rc_api_lboard_info_entry_t"] [:: core :: mem :: align_of :: < rc_api_lboard_info_entry_t > () - 8usize] ; ["Offset of field: rc_api_lboard_info_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , username) - 0usize] ; ["Offset of field: rc_api_lboard_info_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , rank) - 8usize] ; ["Offset of field: rc_api_lboard_info_entry_t::index"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , index) - 12usize] ; ["Offset of field: rc_api_lboard_info_entry_t::score"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , score) - 16usize] ; ["Offset of field: rc_api_lboard_info_entry_t::submitted"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , submitted) - 24usize] ; } ; # [doc = " Response data for a fetch leaderboard info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_leaderboard_info_response_t { pub id : u32 , pub format : :: core :: ffi :: c_int , pub lower_is_better : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub game_id : u32 , pub author : * const :: core :: ffi :: c_char , pub created : time_t , pub updated : time_t , pub entries : * mut rc_api_lboard_info_entry_t , pub num_entries : u32 , pub total_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_leaderboard_info_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_leaderboard_info_response_t > () - 400usize] ; ["Alignment of rc_api_fetch_leaderboard_info_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_leaderboard_info_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::format"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , format) - 4usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , lower_is_better) - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::title"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , title) - 16usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::description"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , description) - 24usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::definition"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , definition) - 32usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , game_id) - 40usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::author"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , author) - 48usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::created"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , created) - 56usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::updated"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , updated) - 64usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , entries) - 72usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , num_entries) - 80usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::total_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , total_entries) - 84usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , response) - 88usize] ; } ; extern "C" { pub fn rc_api_init_fetch_leaderboard_info_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_leaderboard_info_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_leaderboard_info_response (response : * mut rc_api_fetch_leaderboard_info_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_leaderboard_info_server_response (response : * mut rc_api_fetch_leaderboard_info_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_leaderboard_info_response (response : * mut rc_api_fetch_leaderboard_info_response_t) ; } # [doc = " API parameters for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_games_list_request_t { pub console_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_games_list_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_games_list_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_games_list_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_games_list_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_games_list_request_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_request_t , console_id) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_game_list_entry_t { pub id : u32 , pub name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_game_list_entry_t"] [:: core :: mem :: size_of :: < rc_api_game_list_entry_t > () - 16usize] ; ["Alignment of rc_api_game_list_entry_t"] [:: core :: mem :: align_of :: < rc_api_game_list_entry_t > () - 8usize] ; ["Offset of field: rc_api_game_list_entry_t::id"] [:: core :: mem :: offset_of ! (rc_api_game_list_entry_t , id) - 0usize] ; ["Offset of field: rc_api_game_list_entry_t::name"] [:: core :: mem :: offset_of ! (rc_api_game_list_entry_t , name) - 8usize] ; } ; # [doc = " Response data for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_games_list_response_t { pub entries : * mut rc_api_game_list_entry_t , pub num_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_games_list_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_games_list_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_games_list_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_games_list_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , entries) - 0usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , num_entries) - 8usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_games_list_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_games_list_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_games_list_response (response : * mut rc_api_fetch_games_list_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_games_list_server_response (response : * mut rc_api_fetch_games_list_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_games_list_response (response : * mut rc_api_fetch_games_list_response_t) ; } # [doc = " API parameters for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_titles_request_t { pub game_ids : * const u32 , pub num_game_ids : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_titles_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_titles_request_t > () - 16usize] ; ["Alignment of rc_api_fetch_game_titles_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_titles_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_request_t::game_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_request_t , game_ids) - 0usize] ; ["Offset of field: rc_api_fetch_game_titles_request_t::num_game_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_request_t , num_game_ids) - 8usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_game_title_entry_t { pub id : u32 , pub title : * const :: core :: ffi :: c_char , pub image_name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_game_title_entry_t"] [:: core :: mem :: size_of :: < rc_api_game_title_entry_t > () - 24usize] ; ["Alignment of rc_api_game_title_entry_t"] [:: core :: mem :: align_of :: < rc_api_game_title_entry_t > () - 8usize] ; ["Offset of field: rc_api_game_title_entry_t::id"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , id) - 0usize] ; ["Offset of field: rc_api_game_title_entry_t::title"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , title) - 8usize] ; ["Offset of field: rc_api_game_title_entry_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , image_name) - 16usize] ; } ; # [doc = " Response data for a fetch games title request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_titles_response_t { pub entries : * mut rc_api_game_title_entry_t , pub num_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_titles_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_titles_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_game_titles_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_titles_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , entries) - 0usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , num_entries) - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_game_titles_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_game_titles_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_titles_server_response (response : * mut rc_api_fetch_game_titles_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_game_titles_response (response : * mut rc_api_fetch_game_titles_response_t) ; } pub type __gnuc_va_list = __builtin_va_list ; # [repr (C)] # [derive (Copy , Clone)] pub struct __mbstate_t { pub __count : :: core :: ffi :: c_int , pub __value : __mbstate_t__bindgen_ty_1 , } # [repr (C)] # [derive (Copy , Clone)] pub union __mbstate_t__bindgen_ty_1 { pub __wch : :: core :: ffi :: c_uint , pub __wchb : [:: core :: ffi :: c_char ; 4usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __mbstate_t__bindgen_ty_1"] [:: core :: mem :: size_of :: < __mbstate_t__bindgen_ty_1 > () - 4usize] ; ["Alignment of __mbstate_t__bindgen_ty_1"] [:: core :: mem :: align_of :: < __mbstate_t__bindgen_ty_1 > () - 4usize] ; ["Offset of field: __mbstate_t__bindgen_ty_1::__wch"] [:: core :: mem :: offset_of ! (__mbstate_t__bindgen_ty_1 , __wch) - 0usize] ; ["Offset of field: __mbstate_t__bindgen_ty_1::__wchb"] [:: core :: mem :: offset_of ! (__mbstate_t__bindgen_ty_1 , __wchb) - 0usize] ; } ; impl :: core :: fmt :: Debug for __mbstate_t__bindgen_ty_1 { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "__mbstate_t__bindgen_ty_1 {{ union }}") } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __mbstate_t"] [:: core :: mem :: size_of :: < __mbstate_t > () - 8usize] ; ["Alignment of __mbstate_t"] [:: core :: mem :: align_of :: < __mbstate_t > () - 4usize] ; ["Offset of field: __mbstate_t::__count"] [:: core :: mem :: offset_of ! (__mbstate_t , __count) - 0usize] ; ["Offset of field: __mbstate_t::__value"] [:: core :: mem :: offset_of ! (__mbstate_t , __value) - 4usize] ; } ; impl :: core :: fmt :: Debug for __mbstate_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "__mbstate_t {{ __count: {:?}, __value: {:?} }}" , self . __count , self . __value) } } # [repr (C)] # [derive (Copy , Clone)] pub struct _G_fpos_t { pub __pos : __off_t , pub __state : __mbstate_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _G_fpos_t"] [:: core :: mem :: size_of :: < _G_fpos_t > () - 16usize] ; ["Alignment of _G_fpos_t"] [:: core :: mem :: align_of :: < _G_fpos_t > () - 8usize] ; ["Offset of field: _G_fpos_t::__pos"] [:: core :: mem :: offset_of ! (_G_fpos_t , __pos) - 0usize] ; ["Offset of field: _G_fpos_t::__state"] [:: core :: mem :: offset_of ! (_G_fpos_t , __state) - 8usize] ; } ; impl :: core :: fmt :: Debug for _G_fpos_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "_G_fpos_t {{ __pos: {:?}, __state: {:?} }}" , self . __pos , self . __state) } } pub type __fpos_t = _G_fpos_t ; # [repr (C)] # [derive (Copy , Clone)] pub struct _G_fpos64_t { pub __pos : __off64_t , pub __state : __mbstate_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _G_fpos64_t"] [:: core :: mem :: size_of :: < _G_fpos64_t > () - 16usize] ; ["Alignment of _G_fpos64_t"] [:: core :: mem :: align_of :: < _G_fpos64_t > () - 8usize] ; ["Offset of field: _G_fpos64_t::__pos"] [:: core :: mem :: offset_of ! (_G_fpos64_t , __pos) - 0usize] ; ["Offset of field: _G_fpos64_t::__state"] [:: core :: mem :: offset_of ! (_G_fpos64_t , __state) - 8usize] ; } ; impl :: core :: fmt :: Debug for _G_fpos64_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "_G_fpos64_t {{ __pos: {:?}, __state: {:?} }}" , self . __pos , self . __state) } } pub type __fpos64_t = _G_fpos64_t ; pub type __FILE = _IO_FILE ; pub type FILE = _IO_FILE ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_marker { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_codecvt { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_wide_data { _unused : [u8 ; 0] , } pub type _IO_lock_t = :: core :: ffi :: c_void ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_FILE { pub _flags : :: core :: ffi :: c_int , pub _IO_read_ptr : * mut :: core :: ffi :: c_char , pub _IO_read_end : * mut :: core :: ffi :: c_char , pub _IO_read_base : * mut :: core :: ffi :: c_char , pub _IO_write_base : * mut :: core :: ffi :: c_char , pub _IO_write_ptr : * mut :: core :: ffi :: c_char , pub _IO_write_end : * mut :: core :: ffi :: c_char , pub _IO_buf_base : * mut :: core :: ffi :: c_char , pub _IO_buf_end : * mut :: core :: ffi :: c_char , pub _IO_save_base : * mut :: core :: ffi :: c_char , pub _IO_backup_base : * mut :: core :: ffi :: c_char , pub _IO_save_end : * mut :: core :: ffi :: c_char , pub _markers : * mut _IO_marker , pub _chain : * mut _IO_FILE , pub _fileno : :: core :: ffi :: c_int , pub _bitfield_align_1 : [u32 ; 0] , pub _bitfield_1 : __BindgenBitfieldUnit < [u8 ; 3usize] > , pub _short_backupbuf : [:: core :: ffi :: c_char ; 1usize] , pub _old_offset : __off_t , pub _cur_column : :: core :: ffi :: c_ushort , pub _vtable_offset : :: core :: ffi :: c_schar , pub _shortbuf : [:: core :: ffi :: c_char ; 1usize] , pub _lock : * mut _IO_lock_t , pub _offset : __off64_t , pub _codecvt : * mut _IO_codecvt , pub _wide_data : * mut _IO_wide_data , pub _freeres_list : * mut _IO_FILE , pub _freeres_buf : * mut :: core :: ffi :: c_void , pub _prevchain : * mut * mut _IO_FILE , pub _mode : :: core :: ffi :: c_int , pub _unused3 : :: core :: ffi :: c_int , pub _total_written : __uint64_t , pub _unused2 : [:: core :: ffi :: c_char ; 8usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _IO_FILE"] [:: core :: mem :: size_of :: < _IO_FILE > () - 216usize] ; ["Alignment of _IO_FILE"] [:: core :: mem :: align_of :: < _IO_FILE > () - 8usize] ; ["Offset of field: _IO_FILE::_flags"] [:: core :: mem :: offset_of ! (_IO_FILE , _flags) - 0usize] ; ["Offset of field: _IO_FILE::_IO_read_ptr"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_ptr) - 8usize] ; ["Offset of field: _IO_FILE::_IO_read_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_end) - 16usize] ; ["Offset of field: _IO_FILE::_IO_read_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_base) - 24usize] ; ["Offset of field: _IO_FILE::_IO_write_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_base) - 32usize] ; ["Offset of field: _IO_FILE::_IO_write_ptr"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_ptr) - 40usize] ; ["Offset of field: _IO_FILE::_IO_write_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_end) - 48usize] ; ["Offset of field: _IO_FILE::_IO_buf_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_buf_base) - 56usize] ; ["Offset of field: _IO_FILE::_IO_buf_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_buf_end) - 64usize] ; ["Offset of field: _IO_FILE::_IO_save_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_save_base) - 72usize] ; ["Offset of field: _IO_FILE::_IO_backup_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_backup_base) - 80usize] ; ["Offset of field: _IO_FILE::_IO_save_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_save_end) - 88usize] ; ["Offset of field: _IO_FILE::_markers"] [:: core :: mem :: offset_of ! (_IO_FILE , _markers) - 96usize] ; ["Offset of field: _IO_FILE::_chain"] [:: core :: mem :: offset_of ! (_IO_FILE , _chain) - 104usize] ; ["Offset of field: _IO_FILE::_fileno"] [:: core :: mem :: offset_of ! (_IO_FILE , _fileno) - 112usize] ; ["Offset of field: _IO_FILE::_short_backupbuf"] [:: core :: mem :: offset_of ! (_IO_FILE , _short_backupbuf) - 119usize] ; ["Offset of field: _IO_FILE::_old_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _old_offset) - 120usize] ; ["Offset of field: _IO_FILE::_cur_column"] [:: core :: mem :: offset_of ! (_IO_FILE , _cur_column) - 128usize] ; ["Offset of field: _IO_FILE::_vtable_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _vtable_offset) - 130usize] ; ["Offset of field: _IO_FILE::_shortbuf"] [:: core :: mem :: offset_of ! (_IO_FILE , _shortbuf) - 131usize] ; ["Offset of field: _IO_FILE::_lock"] [:: core :: mem :: offset_of ! (_IO_FILE , _lock) - 136usize] ; ["Offset of field: _IO_FILE::_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _offset) - 144usize] ; ["Offset of field: _IO_FILE::_codecvt"] [:: core :: mem :: offset_of ! (_IO_FILE , _codecvt) - 152usize] ; ["Offset of field: _IO_FILE::_wide_data"] [:: core :: mem :: offset_of ! (_IO_FILE , _wide_data) - 160usize] ; ["Offset of field: _IO_FILE::_freeres_list"] [:: core :: mem :: offset_of ! (_IO_FILE , _freeres_list) - 168usize] ; ["Offset of field: _IO_FILE::_freeres_buf"] [:: core :: mem :: offset_of ! (_IO_FILE , _freeres_buf) - 176usize] ; ["Offset of field: _IO_FILE::_prevchain"] [:: core :: mem :: offset_of ! (_IO_FILE , _prevchain) - 184usize] ; ["Offset of field: _IO_FILE::_mode"] [:: core :: mem :: offset_of ! (_IO_FILE , _mode) - 192usize] ; ["Offset of field: _IO_FILE::_unused3"] [:: core :: mem :: offset_of ! (_IO_FILE , _unused3) - 196usize] ; ["Offset of field: _IO_FILE::_total_written"] [:: core :: mem :: offset_of ! (_IO_FILE , _total_written) - 200usize] ; ["Offset of field: _IO_FILE::_unused2"] [:: core :: mem :: offset_of ! (_IO_FILE , _unused2) - 208usize] ; } ; impl _IO_FILE { # [inline] pub fn _flags2 (& self) -> :: core :: ffi :: c_int { unsafe { :: core :: mem :: transmute (self . _bitfield_1 . get (0usize , 24u8) as u32) } } # [inline] pub fn set__flags2 (& mut self , val : :: core :: ffi :: c_int) { unsafe { let val : u32 = :: core :: mem :: transmute (val) ; self . _bitfield_1 . set (0usize , 24u8 , val as u64) } } # [inline] pub fn new_bitfield_1 (_flags2 : :: core :: ffi :: c_int) -> __BindgenBitfieldUnit < [u8 ; 3usize] > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [u8 ; 3usize] > = Default :: default () ; __bindgen_bitfield_unit . set (0usize , 24u8 , { let _flags2 : u32 = unsafe { :: core :: mem :: transmute (_flags2) } ; _flags2 as u64 }) ; __bindgen_bitfield_unit } } pub type cookie_read_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __buf : * mut :: core :: ffi :: c_char , __nbytes : usize) -> __ssize_t > ; pub type cookie_write_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __buf : * const :: core :: ffi :: c_char , __nbytes : usize) -> __ssize_t > ; pub type cookie_seek_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __pos : * mut __off64_t , __w : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int > ; pub type cookie_close_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void) -> :: core :: ffi :: 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 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _IO_cookie_io_functions_t"] [:: core :: mem :: size_of :: < _IO_cookie_io_functions_t > () - 32usize] ; ["Alignment of _IO_cookie_io_functions_t"] [:: core :: mem :: align_of :: < _IO_cookie_io_functions_t > () - 8usize] ; ["Offset of field: _IO_cookie_io_functions_t::read"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , read) - 0usize] ; ["Offset of field: _IO_cookie_io_functions_t::write"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , write) - 8usize] ; ["Offset of field: _IO_cookie_io_functions_t::seek"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , seek) - 16usize] ; ["Offset of field: _IO_cookie_io_functions_t::close"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , close) - 24usize] ; } ; 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" { pub static mut stdin : * mut FILE ; } extern "C" { pub static mut stdout : * mut FILE ; } extern "C" { pub static mut stderr : * mut FILE ; } extern "C" { pub fn remove (__filename : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rename (__old : * const :: core :: ffi :: c_char , __new : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn renameat (__oldfd : :: core :: ffi :: c_int , __old : * const :: core :: ffi :: c_char , __newfd : :: core :: ffi :: c_int , __new : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fclose (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn tmpfile () -> * mut FILE ; } extern "C" { pub fn tmpnam (arg1 : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn tmpnam_r (__s : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn tempnam (__dir : * const :: core :: ffi :: c_char , __pfx : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn fflush (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fflush_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fopen (__filename : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn freopen (__filename : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char , __stream : * mut FILE) -> * mut FILE ; } extern "C" { pub fn fdopen (__fd : :: core :: ffi :: c_int , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn fopencookie (__magic_cookie : * mut :: core :: ffi :: c_void , __modes : * const :: core :: ffi :: c_char , __io_funcs : cookie_io_functions_t) -> * mut FILE ; } extern "C" { pub fn fmemopen (__s : * mut :: core :: ffi :: c_void , __len : usize , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn open_memstream (__bufloc : * mut * mut :: core :: ffi :: c_char , __sizeloc : * mut usize) -> * mut FILE ; } extern "C" { pub fn setbuf (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char) ; } extern "C" { pub fn setvbuf (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char , __modes : :: core :: ffi :: c_int , __n : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn setbuffer (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char , __size : usize) ; } extern "C" { pub fn setlinebuf (__stream : * mut FILE) ; } extern "C" { pub fn fprintf (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn printf (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn sprintf (__s : * mut :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vfprintf (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vprintf (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsprintf (__s : * mut :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn snprintf (__s : * mut :: core :: ffi :: c_char , __maxlen : :: core :: ffi :: c_ulong , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsnprintf (__s : * mut :: core :: ffi :: c_char , __maxlen : :: core :: ffi :: c_ulong , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vasprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __f : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn __asprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn asprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vdprintf (__fd : :: core :: ffi :: c_int , __fmt : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn dprintf (__fd : :: core :: ffi :: c_int , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fscanf (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn scanf (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn sscanf (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } pub type __cfloat128 = __BindgenComplex < u128 > ; pub type _Float128 = u128 ; pub type _Float32 = f32 ; pub type _Float64 = f64 ; pub type _Float32x = f64 ; pub type _Float64x = u128 ; extern "C" { # [link_name = "\u{1}__isoc99_fscanf"] pub fn fscanf1 (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_scanf"] pub fn scanf1 (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_sscanf"] pub fn sscanf1 (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vfscanf (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vscanf (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsscanf (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vfscanf"] pub fn vfscanf1 (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vscanf"] pub fn vscanf1 (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vsscanf"] pub fn vsscanf1 (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgetc (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getc (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getchar () -> :: core :: ffi :: c_int ; } extern "C" { pub fn getc_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getchar_unlocked () -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgetc_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fputc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putchar (__c : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fputc_unlocked (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putc_unlocked (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putchar_unlocked (__c : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getw (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putw (__w : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgets (__s : * mut :: core :: ffi :: c_char , __n : :: core :: ffi :: c_int , __stream : * mut FILE) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn __getdelim (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __delimiter : :: core :: ffi :: c_int , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn getdelim (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __delimiter : :: core :: ffi :: c_int , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn getline (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn fputs (__s : * const :: core :: ffi :: c_char , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn puts (__s : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ungetc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fread (__ptr : * mut :: core :: ffi :: c_void , __size : :: core :: ffi :: c_ulong , __n : :: core :: ffi :: c_ulong , __stream : * mut FILE) -> :: core :: ffi :: c_ulong ; } extern "C" { pub fn fwrite (__ptr : * const :: core :: ffi :: c_void , __size : :: core :: ffi :: c_ulong , __n : :: core :: ffi :: c_ulong , __s : * mut FILE) -> :: core :: ffi :: c_ulong ; } extern "C" { pub fn fread_unlocked (__ptr : * mut :: core :: ffi :: c_void , __size : usize , __n : usize , __stream : * mut FILE) -> usize ; } extern "C" { pub fn fwrite_unlocked (__ptr : * const :: core :: ffi :: c_void , __size : usize , __n : usize , __stream : * mut FILE) -> usize ; } extern "C" { pub fn fseek (__stream : * mut FILE , __off : :: core :: ffi :: c_long , __whence : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ftell (__stream : * mut FILE) -> :: core :: ffi :: c_long ; } extern "C" { pub fn rewind (__stream : * mut FILE) ; } extern "C" { pub fn fseeko (__stream : * mut FILE , __off : __off_t , __whence : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ftello (__stream : * mut FILE) -> __off_t ; } extern "C" { pub fn fgetpos (__stream : * mut FILE , __pos : * mut fpos_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fsetpos (__stream : * mut FILE , __pos : * const fpos_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clearerr (__stream : * mut FILE) ; } extern "C" { pub fn feof (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ferror (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clearerr_unlocked (__stream : * mut FILE) ; } extern "C" { pub fn feof_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ferror_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn perror (__s : * const :: core :: ffi :: c_char) ; } extern "C" { pub fn fileno (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fileno_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn pclose (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn popen (__command : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn ctermid (__s : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn flockfile (__stream : * mut FILE) ; } extern "C" { pub fn ftrylockfile (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn funlockfile (__stream : * mut FILE) ; } extern "C" { pub fn __uflow (arg1 : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn __overflow (arg1 : * mut FILE , arg2 : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } pub const RC_CONSOLE_UNKNOWN : _bindgen_ty_12 = 0 ; pub const RC_CONSOLE_MEGA_DRIVE : _bindgen_ty_12 = 1 ; pub const RC_CONSOLE_NINTENDO_64 : _bindgen_ty_12 = 2 ; pub const RC_CONSOLE_SUPER_NINTENDO : _bindgen_ty_12 = 3 ; pub const RC_CONSOLE_GAMEBOY : _bindgen_ty_12 = 4 ; pub const RC_CONSOLE_GAMEBOY_ADVANCE : _bindgen_ty_12 = 5 ; pub const RC_CONSOLE_GAMEBOY_COLOR : _bindgen_ty_12 = 6 ; pub const RC_CONSOLE_NINTENDO : _bindgen_ty_12 = 7 ; pub const RC_CONSOLE_PC_ENGINE : _bindgen_ty_12 = 8 ; pub const RC_CONSOLE_SEGA_CD : _bindgen_ty_12 = 9 ; pub const RC_CONSOLE_SEGA_32X : _bindgen_ty_12 = 10 ; pub const RC_CONSOLE_MASTER_SYSTEM : _bindgen_ty_12 = 11 ; pub const RC_CONSOLE_PLAYSTATION : _bindgen_ty_12 = 12 ; pub const RC_CONSOLE_ATARI_LYNX : _bindgen_ty_12 = 13 ; pub const RC_CONSOLE_NEOGEO_POCKET : _bindgen_ty_12 = 14 ; pub const RC_CONSOLE_GAME_GEAR : _bindgen_ty_12 = 15 ; pub const RC_CONSOLE_GAMECUBE : _bindgen_ty_12 = 16 ; pub const RC_CONSOLE_ATARI_JAGUAR : _bindgen_ty_12 = 17 ; pub const RC_CONSOLE_NINTENDO_DS : _bindgen_ty_12 = 18 ; pub const RC_CONSOLE_WII : _bindgen_ty_12 = 19 ; pub const RC_CONSOLE_WII_U : _bindgen_ty_12 = 20 ; pub const RC_CONSOLE_PLAYSTATION_2 : _bindgen_ty_12 = 21 ; pub const RC_CONSOLE_XBOX : _bindgen_ty_12 = 22 ; pub const RC_CONSOLE_MAGNAVOX_ODYSSEY2 : _bindgen_ty_12 = 23 ; pub const RC_CONSOLE_POKEMON_MINI : _bindgen_ty_12 = 24 ; pub const RC_CONSOLE_ATARI_2600 : _bindgen_ty_12 = 25 ; pub const RC_CONSOLE_MS_DOS : _bindgen_ty_12 = 26 ; pub const RC_CONSOLE_ARCADE : _bindgen_ty_12 = 27 ; pub const RC_CONSOLE_VIRTUAL_BOY : _bindgen_ty_12 = 28 ; pub const RC_CONSOLE_MSX : _bindgen_ty_12 = 29 ; pub const RC_CONSOLE_COMMODORE_64 : _bindgen_ty_12 = 30 ; pub const RC_CONSOLE_ZX81 : _bindgen_ty_12 = 31 ; pub const RC_CONSOLE_ORIC : _bindgen_ty_12 = 32 ; pub const RC_CONSOLE_SG1000 : _bindgen_ty_12 = 33 ; pub const RC_CONSOLE_VIC20 : _bindgen_ty_12 = 34 ; pub const RC_CONSOLE_AMIGA : _bindgen_ty_12 = 35 ; pub const RC_CONSOLE_ATARI_ST : _bindgen_ty_12 = 36 ; pub const RC_CONSOLE_AMSTRAD_PC : _bindgen_ty_12 = 37 ; pub const RC_CONSOLE_APPLE_II : _bindgen_ty_12 = 38 ; pub const RC_CONSOLE_SATURN : _bindgen_ty_12 = 39 ; pub const RC_CONSOLE_DREAMCAST : _bindgen_ty_12 = 40 ; pub const RC_CONSOLE_PSP : _bindgen_ty_12 = 41 ; pub const RC_CONSOLE_CDI : _bindgen_ty_12 = 42 ; pub const RC_CONSOLE_3DO : _bindgen_ty_12 = 43 ; pub const RC_CONSOLE_COLECOVISION : _bindgen_ty_12 = 44 ; pub const RC_CONSOLE_INTELLIVISION : _bindgen_ty_12 = 45 ; pub const RC_CONSOLE_VECTREX : _bindgen_ty_12 = 46 ; pub const RC_CONSOLE_PC8800 : _bindgen_ty_12 = 47 ; pub const RC_CONSOLE_PC9800 : _bindgen_ty_12 = 48 ; pub const RC_CONSOLE_PCFX : _bindgen_ty_12 = 49 ; pub const RC_CONSOLE_ATARI_5200 : _bindgen_ty_12 = 50 ; pub const RC_CONSOLE_ATARI_7800 : _bindgen_ty_12 = 51 ; pub const RC_CONSOLE_X68K : _bindgen_ty_12 = 52 ; pub const RC_CONSOLE_WONDERSWAN : _bindgen_ty_12 = 53 ; pub const RC_CONSOLE_CASSETTEVISION : _bindgen_ty_12 = 54 ; pub const RC_CONSOLE_SUPER_CASSETTEVISION : _bindgen_ty_12 = 55 ; pub const RC_CONSOLE_NEO_GEO_CD : _bindgen_ty_12 = 56 ; pub const RC_CONSOLE_FAIRCHILD_CHANNEL_F : _bindgen_ty_12 = 57 ; pub const RC_CONSOLE_FM_TOWNS : _bindgen_ty_12 = 58 ; pub const RC_CONSOLE_ZX_SPECTRUM : _bindgen_ty_12 = 59 ; pub const RC_CONSOLE_GAME_AND_WATCH : _bindgen_ty_12 = 60 ; pub const RC_CONSOLE_NOKIA_NGAGE : _bindgen_ty_12 = 61 ; pub const RC_CONSOLE_NINTENDO_3DS : _bindgen_ty_12 = 62 ; pub const RC_CONSOLE_SUPERVISION : _bindgen_ty_12 = 63 ; pub const RC_CONSOLE_SHARPX1 : _bindgen_ty_12 = 64 ; pub const RC_CONSOLE_TIC80 : _bindgen_ty_12 = 65 ; pub const RC_CONSOLE_THOMSONTO8 : _bindgen_ty_12 = 66 ; pub const RC_CONSOLE_PC6000 : _bindgen_ty_12 = 67 ; pub const RC_CONSOLE_PICO : _bindgen_ty_12 = 68 ; pub const RC_CONSOLE_MEGADUCK : _bindgen_ty_12 = 69 ; pub const RC_CONSOLE_ZEEBO : _bindgen_ty_12 = 70 ; pub const RC_CONSOLE_ARDUBOY : _bindgen_ty_12 = 71 ; pub const RC_CONSOLE_WASM4 : _bindgen_ty_12 = 72 ; pub const RC_CONSOLE_ARCADIA_2001 : _bindgen_ty_12 = 73 ; pub const RC_CONSOLE_INTERTON_VC_4000 : _bindgen_ty_12 = 74 ; pub const RC_CONSOLE_ELEKTOR_TV_GAMES_COMPUTER : _bindgen_ty_12 = 75 ; pub const RC_CONSOLE_PC_ENGINE_CD : _bindgen_ty_12 = 76 ; pub const RC_CONSOLE_ATARI_JAGUAR_CD : _bindgen_ty_12 = 77 ; pub const RC_CONSOLE_NINTENDO_DSI : _bindgen_ty_12 = 78 ; pub const RC_CONSOLE_TI83 : _bindgen_ty_12 = 79 ; pub const RC_CONSOLE_UZEBOX : _bindgen_ty_12 = 80 ; pub const RC_CONSOLE_HUBS : _bindgen_ty_12 = 100 ; pub const RC_CONSOLE_EVENTS : _bindgen_ty_12 = 101 ; pub const RC_CONSOLE_STANDALONE : _bindgen_ty_12 = 102 ; # [doc = "\\\n| Console identifiers                                                         |\n\\"] pub type _bindgen_ty_12 = :: core :: ffi :: c_uint ; extern "C" { pub fn rc_console_name (console_id : u32) -> * const :: core :: ffi :: c_char ; } pub const RC_MEMORY_TYPE_SYSTEM_RAM : _bindgen_ty_13 = 0 ; pub const RC_MEMORY_TYPE_SAVE_RAM : _bindgen_ty_13 = 1 ; pub const RC_MEMORY_TYPE_VIDEO_RAM : _bindgen_ty_13 = 2 ; pub const RC_MEMORY_TYPE_READONLY : _bindgen_ty_13 = 3 ; pub const RC_MEMORY_TYPE_HARDWARE_CONTROLLER : _bindgen_ty_13 = 4 ; pub const RC_MEMORY_TYPE_VIRTUAL_RAM : _bindgen_ty_13 = 5 ; pub const RC_MEMORY_TYPE_UNUSED : _bindgen_ty_13 = 6 ; # [doc = "\\\n| Memory mapping                                                              |\n\\"] pub type _bindgen_ty_13 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memory_region_t { pub start_address : u32 , pub end_address : u32 , pub real_address : u32 , pub type_ : u8 , pub description : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memory_region_t"] [:: core :: mem :: size_of :: < rc_memory_region_t > () - 24usize] ; ["Alignment of rc_memory_region_t"] [:: core :: mem :: align_of :: < rc_memory_region_t > () - 8usize] ; ["Offset of field: rc_memory_region_t::start_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , start_address) - 0usize] ; ["Offset of field: rc_memory_region_t::end_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , end_address) - 4usize] ; ["Offset of field: rc_memory_region_t::real_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , real_address) - 8usize] ; ["Offset of field: rc_memory_region_t::type_"] [:: core :: mem :: offset_of ! (rc_memory_region_t , type_) - 12usize] ; ["Offset of field: rc_memory_region_t::description"] [:: core :: mem :: offset_of ! (rc_memory_region_t , description) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memory_regions_t { pub region : * const rc_memory_region_t , pub num_regions : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memory_regions_t"] [:: core :: mem :: size_of :: < rc_memory_regions_t > () - 16usize] ; ["Alignment of rc_memory_regions_t"] [:: core :: mem :: align_of :: < rc_memory_regions_t > () - 8usize] ; ["Offset of field: rc_memory_regions_t::region"] [:: core :: mem :: offset_of ! (rc_memory_regions_t , region) - 0usize] ; ["Offset of field: rc_memory_regions_t::num_regions"] [:: core :: mem :: offset_of ! (rc_memory_regions_t , num_regions) - 8usize] ; } ; extern "C" { pub fn rc_console_memory_regions (console_id : u32) -> * const rc_memory_regions_t ; } extern "C" { pub fn rc_hash_generate_from_buffer (hash : * mut :: core :: ffi :: c_char , console_id : u32 , buffer : * const u8 , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_hash_generate_from_file (hash : * mut :: core :: ffi :: c_char , console_id : u32 , path : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_iterator { pub buffer : * const u8 , pub buffer_size : usize , pub consoles : [u8 ; 12usize] , pub index : :: core :: ffi :: c_int , pub path : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_iterator"] [:: core :: mem :: size_of :: < rc_hash_iterator > () - 40usize] ; ["Alignment of rc_hash_iterator"] [:: core :: mem :: align_of :: < rc_hash_iterator > () - 8usize] ; ["Offset of field: rc_hash_iterator::buffer"] [:: core :: mem :: offset_of ! (rc_hash_iterator , buffer) - 0usize] ; ["Offset of field: rc_hash_iterator::buffer_size"] [:: core :: mem :: offset_of ! (rc_hash_iterator , buffer_size) - 8usize] ; ["Offset of field: rc_hash_iterator::consoles"] [:: core :: mem :: offset_of ! (rc_hash_iterator , consoles) - 16usize] ; ["Offset of field: rc_hash_iterator::index"] [:: core :: mem :: offset_of ! (rc_hash_iterator , index) - 28usize] ; ["Offset of field: rc_hash_iterator::path"] [:: core :: mem :: offset_of ! (rc_hash_iterator , path) - 32usize] ; } ; pub type rc_hash_iterator_t = rc_hash_iterator ; extern "C" { pub fn rc_hash_initialize_iterator (iterator : * mut rc_hash_iterator , path : * const :: core :: ffi :: c_char , buffer : * const u8 , buffer_size : usize) ; } extern "C" { pub fn rc_hash_destroy_iterator (iterator : * mut rc_hash_iterator) ; } extern "C" { pub fn rc_hash_iterate (hash : * mut :: core :: ffi :: c_char , iterator : * mut rc_hash_iterator) -> :: core :: ffi :: c_int ; } pub type rc_hash_message_callback = :: core :: option :: Option < unsafe extern "C" fn (arg1 : * const :: core :: ffi :: c_char) > ; extern "C" { pub fn rc_hash_init_error_message_callback (callback : rc_hash_message_callback) ; } extern "C" { pub fn rc_hash_init_verbose_message_callback (callback : rc_hash_message_callback) ; } pub type rc_hash_filereader_open_file_handler = :: core :: option :: Option < unsafe extern "C" fn (path_utf8 : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_void > ; pub type rc_hash_filereader_seek_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void , offset : i64 , origin : :: core :: ffi :: c_int) > ; pub type rc_hash_filereader_tell_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void) -> i64 > ; pub type rc_hash_filereader_read_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void , buffer : * mut :: core :: ffi :: c_void , requested_bytes : usize) -> usize > ; pub type rc_hash_filereader_close_file_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void) > ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_filereader { pub open : rc_hash_filereader_open_file_handler , pub seek : rc_hash_filereader_seek_handler , pub tell : rc_hash_filereader_tell_handler , pub read : rc_hash_filereader_read_handler , pub close : rc_hash_filereader_close_file_handler , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_filereader"] [:: core :: mem :: size_of :: < rc_hash_filereader > () - 40usize] ; ["Alignment of rc_hash_filereader"] [:: core :: mem :: align_of :: < rc_hash_filereader > () - 8usize] ; ["Offset of field: rc_hash_filereader::open"] [:: core :: mem :: offset_of ! (rc_hash_filereader , open) - 0usize] ; ["Offset of field: rc_hash_filereader::seek"] [:: core :: mem :: offset_of ! (rc_hash_filereader , seek) - 8usize] ; ["Offset of field: rc_hash_filereader::tell"] [:: core :: mem :: offset_of ! (rc_hash_filereader , tell) - 16usize] ; ["Offset of field: rc_hash_filereader::read"] [:: core :: mem :: offset_of ! (rc_hash_filereader , read) - 24usize] ; ["Offset of field: rc_hash_filereader::close"] [:: core :: mem :: offset_of ! (rc_hash_filereader , close) - 32usize] ; } ; extern "C" { pub fn rc_hash_init_custom_filereader (reader : * mut rc_hash_filereader) ; } pub type rc_hash_cdreader_open_track_handler = :: core :: option :: Option < unsafe extern "C" fn (path : * const :: core :: ffi :: c_char , track : u32) -> * mut :: core :: ffi :: c_void > ; pub type rc_hash_cdreader_read_sector_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void , sector : u32 , buffer : * mut :: core :: ffi :: c_void , requested_bytes : usize) -> usize > ; pub type rc_hash_cdreader_close_track_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void) > ; pub type rc_hash_cdreader_first_track_sector_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void) -> u32 > ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_cdreader { pub open_track : rc_hash_cdreader_open_track_handler , pub read_sector : rc_hash_cdreader_read_sector_handler , pub close_track : rc_hash_cdreader_close_track_handler , pub first_track_sector : rc_hash_cdreader_first_track_sector_handler , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_cdreader"] [:: core :: mem :: size_of :: < rc_hash_cdreader > () - 32usize] ; ["Alignment of rc_hash_cdreader"] [:: core :: mem :: align_of :: < rc_hash_cdreader > () - 8usize] ; ["Offset of field: rc_hash_cdreader::open_track"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , open_track) - 0usize] ; ["Offset of field: rc_hash_cdreader::read_sector"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , read_sector) - 8usize] ; ["Offset of field: rc_hash_cdreader::close_track"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , close_track) - 16usize] ; ["Offset of field: rc_hash_cdreader::first_track_sector"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , first_track_sector) - 24usize] ; } ; extern "C" { pub fn rc_hash_get_default_cdreader (cdreader : * mut rc_hash_cdreader) ; } extern "C" { pub fn rc_hash_init_default_cdreader () ; } extern "C" { pub fn rc_hash_init_custom_cdreader (reader : * mut rc_hash_cdreader) ; } pub type rc_hash_3ds_get_cia_normal_key_func = :: core :: option :: Option < unsafe extern "C" fn (common_key_index : u8 , out_normal_key : * mut u8) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_hash_init_3ds_get_cia_normal_key_func (func : rc_hash_3ds_get_cia_normal_key_func) ; } pub type rc_hash_3ds_get_ncch_normal_keys_func = :: core :: option :: Option < unsafe extern "C" fn (primary_key_y : * mut u8 , secondary_key_x_slot : u8 , optional_program_id : * mut u8 , out_primary_key : * mut u8 , out_secondary_key : * mut u8) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_hash_init_3ds_get_ncch_normal_keys_func (func : rc_hash_3ds_get_ncch_normal_keys_func) ; } # [doc = " API parameters for a fetch image request.\n NOTE: fetch image server response is the raw image data. There is no rc_api_process_fetch_image_response function."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_image_request_t { pub image_name : * const :: core :: ffi :: c_char , pub image_type : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_image_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_image_request_t > () - 16usize] ; ["Alignment of rc_api_fetch_image_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_image_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_image_request_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_fetch_image_request_t , image_name) - 0usize] ; ["Offset of field: rc_api_fetch_image_request_t::image_type"] [:: core :: mem :: offset_of ! (rc_api_fetch_image_request_t , image_type) - 8usize] ; } ; extern "C" { pub fn rc_api_init_fetch_image_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_image_request_t) -> :: core :: ffi :: c_int ; } # [doc = " API parameters for a resolve hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_resolve_hash_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_hash : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_resolve_hash_request_t"] [:: core :: mem :: size_of :: < rc_api_resolve_hash_request_t > () - 24usize] ; ["Alignment of rc_api_resolve_hash_request_t"] [:: core :: mem :: align_of :: < rc_api_resolve_hash_request_t > () - 8usize] ; ["Offset of field: rc_api_resolve_hash_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , username) - 0usize] ; ["Offset of field: rc_api_resolve_hash_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_resolve_hash_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , game_hash) - 16usize] ; } ; # [doc = " Response data for a resolve hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_resolve_hash_response_t { pub game_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_resolve_hash_response_t"] [:: core :: mem :: size_of :: < rc_api_resolve_hash_response_t > () - 320usize] ; ["Alignment of rc_api_resolve_hash_response_t"] [:: core :: mem :: align_of :: < rc_api_resolve_hash_response_t > () - 8usize] ; ["Offset of field: rc_api_resolve_hash_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_response_t , game_id) - 0usize] ; ["Offset of field: rc_api_resolve_hash_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_resolve_hash_request (request : * mut rc_api_request_t , api_params : * const rc_api_resolve_hash_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_resolve_hash_response (response : * mut rc_api_resolve_hash_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_resolve_hash_server_response (response : * mut rc_api_resolve_hash_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_resolve_hash_response (response : * mut rc_api_resolve_hash_response_t) ; } # [doc = " API parameters for a fetch game data request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_data_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_data_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_data_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_game_data_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_data_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , game_id) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_leaderboard_definition_t { pub id : u32 , pub format : :: core :: ffi :: c_int , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub lower_is_better : u8 , pub hidden : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_leaderboard_definition_t"] [:: core :: mem :: size_of :: < rc_api_leaderboard_definition_t > () - 40usize] ; ["Alignment of rc_api_leaderboard_definition_t"] [:: core :: mem :: align_of :: < rc_api_leaderboard_definition_t > () - 8usize] ; ["Offset of field: rc_api_leaderboard_definition_t::id"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , id) - 0usize] ; ["Offset of field: rc_api_leaderboard_definition_t::format"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , format) - 4usize] ; ["Offset of field: rc_api_leaderboard_definition_t::title"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , title) - 8usize] ; ["Offset of field: rc_api_leaderboard_definition_t::description"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , description) - 16usize] ; ["Offset of field: rc_api_leaderboard_definition_t::definition"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , definition) - 24usize] ; ["Offset of field: rc_api_leaderboard_definition_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , lower_is_better) - 32usize] ; ["Offset of field: rc_api_leaderboard_definition_t::hidden"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , hidden) - 33usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_achievement_definition_t { pub id : u32 , pub points : u32 , pub category : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub author : * const :: core :: ffi :: c_char , pub badge_name : * const :: core :: ffi :: c_char , pub created : time_t , pub updated : time_t , pub type_ : u32 , pub rarity : f32 , pub rarity_hardcore : f32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_achievement_definition_t"] [:: core :: mem :: size_of :: < rc_api_achievement_definition_t > () - 88usize] ; ["Alignment of rc_api_achievement_definition_t"] [:: core :: mem :: align_of :: < rc_api_achievement_definition_t > () - 8usize] ; ["Offset of field: rc_api_achievement_definition_t::id"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , id) - 0usize] ; ["Offset of field: rc_api_achievement_definition_t::points"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , points) - 4usize] ; ["Offset of field: rc_api_achievement_definition_t::category"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , category) - 8usize] ; ["Offset of field: rc_api_achievement_definition_t::title"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , title) - 16usize] ; ["Offset of field: rc_api_achievement_definition_t::description"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , description) - 24usize] ; ["Offset of field: rc_api_achievement_definition_t::definition"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , definition) - 32usize] ; ["Offset of field: rc_api_achievement_definition_t::author"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , author) - 40usize] ; ["Offset of field: rc_api_achievement_definition_t::badge_name"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , badge_name) - 48usize] ; ["Offset of field: rc_api_achievement_definition_t::created"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , created) - 56usize] ; ["Offset of field: rc_api_achievement_definition_t::updated"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , updated) - 64usize] ; ["Offset of field: rc_api_achievement_definition_t::type_"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , type_) - 72usize] ; ["Offset of field: rc_api_achievement_definition_t::rarity"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , rarity) - 76usize] ; ["Offset of field: rc_api_achievement_definition_t::rarity_hardcore"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , rarity_hardcore) - 80usize] ; } ; # [doc = " Response data for a fetch game data request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_data_response_t { pub id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub image_name : * const :: core :: ffi :: c_char , pub rich_presence_script : * const :: core :: ffi :: c_char , pub achievements : * mut rc_api_achievement_definition_t , pub num_achievements : u32 , pub leaderboards : * mut rc_api_leaderboard_definition_t , pub num_leaderboards : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_data_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_data_response_t > () - 376usize] ; ["Alignment of rc_api_fetch_game_data_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_data_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , console_id) - 4usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::title"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , title) - 8usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , image_name) - 16usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::rich_presence_script"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , rich_presence_script) - 24usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::achievements"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , achievements) - 32usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , num_achievements) - 40usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::leaderboards"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , leaderboards) - 48usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , num_leaderboards) - 56usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , response) - 64usize] ; } ; extern "C" { pub fn rc_api_init_fetch_game_data_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_game_data_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_data_response (response : * mut rc_api_fetch_game_data_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_data_server_response (response : * mut rc_api_fetch_game_data_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_game_data_response (response : * mut rc_api_fetch_game_data_response_t) ; } # [doc = " API parameters for a ping request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_ping_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub rich_presence : * const :: core :: ffi :: c_char , pub game_hash : * const :: core :: ffi :: c_char , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_ping_request_t"] [:: core :: mem :: size_of :: < rc_api_ping_request_t > () - 48usize] ; ["Alignment of rc_api_ping_request_t"] [:: core :: mem :: align_of :: < rc_api_ping_request_t > () - 8usize] ; ["Offset of field: rc_api_ping_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , username) - 0usize] ; ["Offset of field: rc_api_ping_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_ping_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_ping_request_t::rich_presence"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , rich_presence) - 24usize] ; ["Offset of field: rc_api_ping_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , game_hash) - 32usize] ; ["Offset of field: rc_api_ping_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , hardcore) - 40usize] ; } ; # [doc = " Response data for a ping request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_ping_response_t { pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_ping_response_t"] [:: core :: mem :: size_of :: < rc_api_ping_response_t > () - 312usize] ; ["Alignment of rc_api_ping_response_t"] [:: core :: mem :: align_of :: < rc_api_ping_response_t > () - 8usize] ; ["Offset of field: rc_api_ping_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_ping_response_t , response) - 0usize] ; } ; extern "C" { pub fn rc_api_init_ping_request (request : * mut rc_api_request_t , api_params : * const rc_api_ping_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_ping_response (response : * mut rc_api_ping_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_ping_server_response (response : * mut rc_api_ping_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_ping_response (response : * mut rc_api_ping_response_t) ; } # [doc = " API parameters for an award achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_award_achievement_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub hardcore : u32 , pub game_hash : * const :: core :: ffi :: c_char , pub seconds_since_unlock : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_award_achievement_request_t"] [:: core :: mem :: size_of :: < rc_api_award_achievement_request_t > () - 40usize] ; ["Alignment of rc_api_award_achievement_request_t"] [:: core :: mem :: align_of :: < rc_api_award_achievement_request_t > () - 8usize] ; ["Offset of field: rc_api_award_achievement_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , username) - 0usize] ; ["Offset of field: rc_api_award_achievement_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_award_achievement_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_award_achievement_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , hardcore) - 20usize] ; ["Offset of field: rc_api_award_achievement_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_award_achievement_request_t::seconds_since_unlock"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , seconds_since_unlock) - 32usize] ; } ; # [doc = " Response data for an award achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_award_achievement_response_t { pub awarded_achievement_id : u32 , pub new_player_score : u32 , pub new_player_score_softcore : u32 , pub achievements_remaining : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_award_achievement_response_t"] [:: core :: mem :: size_of :: < rc_api_award_achievement_response_t > () - 328usize] ; ["Alignment of rc_api_award_achievement_response_t"] [:: core :: mem :: align_of :: < rc_api_award_achievement_response_t > () - 8usize] ; ["Offset of field: rc_api_award_achievement_response_t::awarded_achievement_id"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , awarded_achievement_id) - 0usize] ; ["Offset of field: rc_api_award_achievement_response_t::new_player_score"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , new_player_score) - 4usize] ; ["Offset of field: rc_api_award_achievement_response_t::new_player_score_softcore"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , new_player_score_softcore) - 8usize] ; ["Offset of field: rc_api_award_achievement_response_t::achievements_remaining"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , achievements_remaining) - 12usize] ; ["Offset of field: rc_api_award_achievement_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_award_achievement_request (request : * mut rc_api_request_t , api_params : * const rc_api_award_achievement_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_award_achievement_response (response : * mut rc_api_award_achievement_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_award_achievement_server_response (response : * mut rc_api_award_achievement_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_award_achievement_response (response : * mut rc_api_award_achievement_response_t) ; } # [doc = " API parameters for a submit lboard entry request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_submit_lboard_entry_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub leaderboard_id : u32 , pub score : i32 , pub game_hash : * const :: core :: ffi :: c_char , pub seconds_since_completion : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_submit_lboard_entry_request_t"] [:: core :: mem :: size_of :: < rc_api_submit_lboard_entry_request_t > () - 40usize] ; ["Alignment of rc_api_submit_lboard_entry_request_t"] [:: core :: mem :: align_of :: < rc_api_submit_lboard_entry_request_t > () - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , username) - 0usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , leaderboard_id) - 16usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , score) - 20usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::seconds_since_completion"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , seconds_since_completion) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_lboard_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub score : i32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_lboard_entry_t"] [:: core :: mem :: size_of :: < rc_api_lboard_entry_t > () - 16usize] ; ["Alignment of rc_api_lboard_entry_t"] [:: core :: mem :: align_of :: < rc_api_lboard_entry_t > () - 8usize] ; ["Offset of field: rc_api_lboard_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , username) - 0usize] ; ["Offset of field: rc_api_lboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , rank) - 8usize] ; ["Offset of field: rc_api_lboard_entry_t::score"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , score) - 12usize] ; } ; # [doc = " Response data for a submit lboard entry request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_submit_lboard_entry_response_t { pub submitted_score : i32 , pub best_score : i32 , pub new_rank : u32 , pub num_entries : u32 , pub top_entries : * mut rc_api_lboard_entry_t , pub num_top_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_submit_lboard_entry_response_t"] [:: core :: mem :: size_of :: < rc_api_submit_lboard_entry_response_t > () - 344usize] ; ["Alignment of rc_api_submit_lboard_entry_response_t"] [:: core :: mem :: align_of :: < rc_api_submit_lboard_entry_response_t > () - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::submitted_score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , submitted_score) - 0usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::best_score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , best_score) - 4usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::new_rank"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , new_rank) - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , num_entries) - 12usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::top_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , top_entries) - 16usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::num_top_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , num_top_entries) - 24usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_submit_lboard_entry_request (request : * mut rc_api_request_t , api_params : * const rc_api_submit_lboard_entry_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_submit_lboard_entry_response (response : * mut rc_api_submit_lboard_entry_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_submit_lboard_entry_server_response (response : * mut rc_api_submit_lboard_entry_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_submit_lboard_entry_response (response : * mut rc_api_submit_lboard_entry_response_t) ; } # [doc = " Callback used to read num_bytes bytes from memory starting at address. If\n num_bytes is greater than 1, the value is read in little-endian from\n memory."] pub type rc_runtime_peek_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , num_bytes : u32 , ud : * mut :: core :: ffi :: c_void) -> u32 > ; # [doc = "\\\n| Runtime                                                                     |\n\\"] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_trigger_t { pub id : u32 , pub trigger : * mut rc_trigger_t , pub buffer : * mut :: core :: ffi :: c_void , pub invalid_memref : * mut rc_memref_t , pub md5 : [u8 ; 16usize] , pub serialized_size : i32 , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_trigger_t"] [:: core :: mem :: size_of :: < rc_runtime_trigger_t > () - 56usize] ; ["Alignment of rc_runtime_trigger_t"] [:: core :: mem :: align_of :: < rc_runtime_trigger_t > () - 8usize] ; ["Offset of field: rc_runtime_trigger_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , id) - 0usize] ; ["Offset of field: rc_runtime_trigger_t::trigger"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , trigger) - 8usize] ; ["Offset of field: rc_runtime_trigger_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , buffer) - 16usize] ; ["Offset of field: rc_runtime_trigger_t::invalid_memref"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , invalid_memref) - 24usize] ; ["Offset of field: rc_runtime_trigger_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , md5) - 32usize] ; ["Offset of field: rc_runtime_trigger_t::serialized_size"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , serialized_size) - 48usize] ; ["Offset of field: rc_runtime_trigger_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , owns_memrefs) - 52usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_lboard_t { pub id : u32 , pub value : i32 , pub lboard : * mut rc_lboard_t , pub buffer : * mut :: core :: ffi :: c_void , pub invalid_memref : * mut rc_memref_t , pub md5 : [u8 ; 16usize] , pub serialized_size : u32 , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_lboard_t"] [:: core :: mem :: size_of :: < rc_runtime_lboard_t > () - 56usize] ; ["Alignment of rc_runtime_lboard_t"] [:: core :: mem :: align_of :: < rc_runtime_lboard_t > () - 8usize] ; ["Offset of field: rc_runtime_lboard_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , id) - 0usize] ; ["Offset of field: rc_runtime_lboard_t::value"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , value) - 4usize] ; ["Offset of field: rc_runtime_lboard_t::lboard"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , lboard) - 8usize] ; ["Offset of field: rc_runtime_lboard_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , buffer) - 16usize] ; ["Offset of field: rc_runtime_lboard_t::invalid_memref"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , invalid_memref) - 24usize] ; ["Offset of field: rc_runtime_lboard_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , md5) - 32usize] ; ["Offset of field: rc_runtime_lboard_t::serialized_size"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , serialized_size) - 48usize] ; ["Offset of field: rc_runtime_lboard_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , owns_memrefs) - 52usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_richpresence_t { pub richpresence : * mut rc_richpresence_t , pub buffer : * mut :: core :: ffi :: c_void , pub previous : * mut rc_runtime_richpresence_t , pub md5 : [u8 ; 16usize] , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_richpresence_t"] [:: core :: mem :: size_of :: < rc_runtime_richpresence_t > () - 48usize] ; ["Alignment of rc_runtime_richpresence_t"] [:: core :: mem :: align_of :: < rc_runtime_richpresence_t > () - 8usize] ; ["Offset of field: rc_runtime_richpresence_t::richpresence"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , richpresence) - 0usize] ; ["Offset of field: rc_runtime_richpresence_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , buffer) - 8usize] ; ["Offset of field: rc_runtime_richpresence_t::previous"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , previous) - 16usize] ; ["Offset of field: rc_runtime_richpresence_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , md5) - 24usize] ; ["Offset of field: rc_runtime_richpresence_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , owns_memrefs) - 40usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_t { pub triggers : * mut rc_runtime_trigger_t , pub trigger_count : u32 , pub trigger_capacity : u32 , pub lboards : * mut rc_runtime_lboard_t , pub lboard_count : u32 , pub lboard_capacity : u32 , pub richpresence : * mut rc_runtime_richpresence_t , pub memrefs : * mut rc_memref_t , pub next_memref : * mut * mut rc_memref_t , pub variables : * mut rc_value_t , pub next_variable : * mut * mut rc_value_t , pub owns_self : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_t"] [:: core :: mem :: size_of :: < rc_runtime_t > () - 80usize] ; ["Alignment of rc_runtime_t"] [:: core :: mem :: align_of :: < rc_runtime_t > () - 8usize] ; ["Offset of field: rc_runtime_t::triggers"] [:: core :: mem :: offset_of ! (rc_runtime_t , triggers) - 0usize] ; ["Offset of field: rc_runtime_t::trigger_count"] [:: core :: mem :: offset_of ! (rc_runtime_t , trigger_count) - 8usize] ; ["Offset of field: rc_runtime_t::trigger_capacity"] [:: core :: mem :: offset_of ! (rc_runtime_t , trigger_capacity) - 12usize] ; ["Offset of field: rc_runtime_t::lboards"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboards) - 16usize] ; ["Offset of field: rc_runtime_t::lboard_count"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboard_count) - 24usize] ; ["Offset of field: rc_runtime_t::lboard_capacity"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboard_capacity) - 28usize] ; ["Offset of field: rc_runtime_t::richpresence"] [:: core :: mem :: offset_of ! (rc_runtime_t , richpresence) - 32usize] ; ["Offset of field: rc_runtime_t::memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_t , memrefs) - 40usize] ; ["Offset of field: rc_runtime_t::next_memref"] [:: core :: mem :: offset_of ! (rc_runtime_t , next_memref) - 48usize] ; ["Offset of field: rc_runtime_t::variables"] [:: core :: mem :: offset_of ! (rc_runtime_t , variables) - 56usize] ; ["Offset of field: rc_runtime_t::next_variable"] [:: core :: mem :: offset_of ! (rc_runtime_t , next_variable) - 64usize] ; ["Offset of field: rc_runtime_t::owns_self"] [:: core :: mem :: offset_of ! (rc_runtime_t , owns_self) - 72usize] ; } ; extern "C" { pub fn rc_runtime_alloc () -> * mut rc_runtime_t ; } extern "C" { pub fn rc_runtime_init (runtime : * mut rc_runtime_t) ; } extern "C" { pub fn rc_runtime_destroy (runtime : * mut rc_runtime_t) ; } extern "C" { pub fn rc_runtime_activate_achievement (runtime : * mut rc_runtime_t , id : u32 , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deactivate_achievement (runtime : * mut rc_runtime_t , id : u32) ; } extern "C" { pub fn rc_runtime_get_achievement (runtime : * const rc_runtime_t , id : u32) -> * mut rc_trigger_t ; } extern "C" { pub fn rc_runtime_get_achievement_measured (runtime : * const rc_runtime_t , id : u32 , measured_value : * mut :: core :: ffi :: c_uint , measured_target : * mut :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_format_achievement_measured (runtime : * const rc_runtime_t , id : u32 , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_activate_lboard (runtime : * mut rc_runtime_t , id : u32 , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deactivate_lboard (runtime : * mut rc_runtime_t , id : u32) ; } extern "C" { pub fn rc_runtime_get_lboard (runtime : * const rc_runtime_t , id : u32) -> * mut rc_lboard_t ; } extern "C" { pub fn rc_runtime_format_lboard_value (buffer : * mut :: core :: ffi :: c_char , size : :: core :: ffi :: c_int , value : i32 , format : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_activate_richpresence (runtime : * mut rc_runtime_t , script : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_get_richpresence (runtime : * const rc_runtime_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_runtime_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } pub const RC_RUNTIME_EVENT_ACHIEVEMENT_ACTIVATED : _bindgen_ty_14 = 0 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PAUSED : _bindgen_ty_14 = 1 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_RESET : _bindgen_ty_14 = 2 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_TRIGGERED : _bindgen_ty_14 = 3 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PRIMED : _bindgen_ty_14 = 4 ; pub const RC_RUNTIME_EVENT_LBOARD_STARTED : _bindgen_ty_14 = 5 ; pub const RC_RUNTIME_EVENT_LBOARD_CANCELED : _bindgen_ty_14 = 6 ; pub const RC_RUNTIME_EVENT_LBOARD_UPDATED : _bindgen_ty_14 = 7 ; pub const RC_RUNTIME_EVENT_LBOARD_TRIGGERED : _bindgen_ty_14 = 8 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_DISABLED : _bindgen_ty_14 = 9 ; pub const RC_RUNTIME_EVENT_LBOARD_DISABLED : _bindgen_ty_14 = 10 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_UNPRIMED : _bindgen_ty_14 = 11 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PROGRESS_UPDATED : _bindgen_ty_14 = 12 ; pub type _bindgen_ty_14 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_event_t { pub id : u32 , pub value : i32 , pub type_ : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_event_t"] [:: core :: mem :: size_of :: < rc_runtime_event_t > () - 12usize] ; ["Alignment of rc_runtime_event_t"] [:: core :: mem :: align_of :: < rc_runtime_event_t > () - 4usize] ; ["Offset of field: rc_runtime_event_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , id) - 0usize] ; ["Offset of field: rc_runtime_event_t::value"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , value) - 4usize] ; ["Offset of field: rc_runtime_event_t::type_"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , type_) - 8usize] ; } ; pub type rc_runtime_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (runtime_event : * const rc_runtime_event_t) > ; extern "C" { pub fn rc_runtime_do_frame (runtime : * mut rc_runtime_t , event_handler : rc_runtime_event_handler_t , peek : rc_runtime_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) ; } extern "C" { pub fn rc_runtime_reset (runtime : * mut rc_runtime_t) ; } pub type rc_runtime_validate_address_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_runtime_validate_addresses (runtime : * mut rc_runtime_t , event_handler : rc_runtime_event_handler_t , validate_handler : rc_runtime_validate_address_t) ; } extern "C" { pub fn rc_runtime_invalidate_address (runtime : * mut rc_runtime_t , address : u32) ; } extern "C" { pub fn rc_runtime_progress_size (runtime : * const rc_runtime_t , L : * mut lua_State) -> u32 ; } extern "C" { pub fn rc_runtime_serialize_progress (buffer : * mut :: core :: ffi :: c_void , runtime : * const rc_runtime_t , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_serialize_progress_sized (buffer : * mut u8 , buffer_size : u32 , runtime : * const rc_runtime_t , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deserialize_progress (runtime : * mut rc_runtime_t , serialized : * const u8 , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deserialize_progress_sized (runtime : * mut rc_runtime_t , serialized : * const u8 , serialized_size : u32 , L : * mut lua_State) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_async_handle_t { _unused : [u8 ; 0] , } # [doc = " Callback used to read num_bytes bytes from memory starting at address into buffer.\n Returns the number of bytes read. A return value of 0 indicates the address was invalid."] pub type rc_client_read_memory_func_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , buffer : * mut u8 , num_bytes : u32 , client : * mut rc_client_t) -> u32 > ; # [doc = " Internal method passed to rc_client_server_call_t to process the server response."] pub type rc_client_server_callback_t = :: core :: option :: Option < unsafe extern "C" fn (server_response : * const rc_api_server_response_t , callback_data : * mut :: core :: ffi :: c_void) > ; # [doc = " Callback used to issue a request to the server."] pub type rc_client_server_call_t = :: core :: option :: Option < unsafe extern "C" fn (request : * const rc_api_request_t , callback : rc_client_server_callback_t , callback_data : * mut :: core :: ffi :: c_void , client : * mut rc_client_t) > ; # [doc = " Generic callback for asynchronous eventing."] pub type rc_client_callback_t = :: core :: option :: Option < unsafe extern "C" fn (result : :: core :: ffi :: c_int , error_message : * const :: core :: ffi :: c_char , client : * mut rc_client_t , userdata : * mut :: core :: ffi :: c_void) > ; # [doc = " Callback for logging or displaying a message."] pub type rc_client_message_callback_t = :: core :: option :: Option < unsafe extern "C" fn (message : * const :: core :: ffi :: c_char , client : * const rc_client_t) > ; extern "C" { # [doc = " Creates a new rc_client_t object."] pub fn rc_client_create (read_memory_function : rc_client_read_memory_func_t , server_call_function : rc_client_server_call_t) -> * mut rc_client_t ; } extern "C" { # [doc = " Releases resources associated to a rc_client_t object.\n Pointer will no longer be valid after making this call."] pub fn rc_client_destroy (client : * mut rc_client_t) ; } extern "C" { # [doc = " Sets whether hardcore is enabled (on by default).\n Can be called with a game loaded.\n Enabling hardcore with a game loaded will raise an RC_CLIENT_EVENT_RESET\n event. Processing will be disabled until rc_client_reset is called."] pub fn rc_client_set_hardcore_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether hardcore is enabled (on by default)."] pub fn rc_client_get_hardcore_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether encore mode is enabled (off by default).\n Evaluated when loading a game. Has no effect while a game is loaded."] pub fn rc_client_set_encore_mode_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether encore mode is enabled (off by default)."] pub fn rc_client_get_encore_mode_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether unofficial achievements should be loaded.\n Evaluated when loading a game. Has no effect while a game is loaded."] pub fn rc_client_set_unofficial_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether unofficial achievements should be loaded."] pub fn rc_client_get_unofficial_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether spectator mode is enabled (off by default).\n If enabled, events for achievement unlocks and leaderboard submissions will be\n raised, but server calls to actually perform the unlock/submit will not occur.\n Can be modified while a game is loaded. Evaluated at unlock/submit time.\n Cannot be modified if disabled before a game is loaded."] pub fn rc_client_set_spectator_mode_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether spectator mode is enabled (off by default)."] pub fn rc_client_get_spectator_mode_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Attaches client-specific data to the runtime."] pub fn rc_client_set_userdata (client : * mut rc_client_t , userdata : * mut :: core :: ffi :: c_void) ; } extern "C" { # [doc = " Gets the client-specific data attached to the runtime."] pub fn rc_client_get_userdata (client : * const rc_client_t) -> * mut :: core :: ffi :: c_void ; } extern "C" { # [doc = " Sets the name of the server to use."] pub fn rc_client_set_host (client : * const rc_client_t , hostname : * const :: core :: ffi :: c_char) ; } pub type rc_clock_t = u64 ; pub type rc_get_time_millisecs_func_t = :: core :: option :: Option < unsafe extern "C" fn (client : * const rc_client_t) -> rc_clock_t > ; extern "C" { # [doc = " Specifies a function that returns a value that increases once per millisecond."] pub fn rc_client_set_get_time_millisecs_function (client : * mut rc_client_t , handler : rc_get_time_millisecs_func_t) ; } extern "C" { # [doc = " Marks an async process as aborted. The associated callback will not be called."] pub fn rc_client_abort_async (client : * mut rc_client_t , async_handle : * mut rc_client_async_handle_t) ; } extern "C" { # [doc = " Gets a clause that can be added to the User-Agent to identify the version of rcheevos being used."] pub fn rc_client_get_user_agent_clause (client : * mut rc_client_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> usize ; } extern "C" { # [doc = " Sets the logging level and provides a callback to be called to do the logging."] pub fn rc_client_enable_logging (client : * mut rc_client_t , level : :: core :: ffi :: c_int , callback : rc_client_message_callback_t) ; } pub const RC_CLIENT_LOG_LEVEL_NONE : _bindgen_ty_15 = 0 ; pub const RC_CLIENT_LOG_LEVEL_ERROR : _bindgen_ty_15 = 1 ; pub const RC_CLIENT_LOG_LEVEL_WARN : _bindgen_ty_15 = 2 ; pub const RC_CLIENT_LOG_LEVEL_INFO : _bindgen_ty_15 = 3 ; pub const RC_CLIENT_LOG_LEVEL_VERBOSE : _bindgen_ty_15 = 4 ; pub const NUM_RC_CLIENT_LOG_LEVELS : _bindgen_ty_15 = 5 ; pub type _bindgen_ty_15 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Attempt to login a user."] pub fn rc_client_begin_login_with_password (client : * mut rc_client_t , username : * const :: core :: ffi :: c_char , password : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Attempt to login a user."] pub fn rc_client_begin_login_with_token (client : * mut rc_client_t , username : * const :: core :: ffi :: c_char , token : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Logout the user."] pub fn rc_client_logout (client : * mut rc_client_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_user_t { pub display_name : * const :: core :: ffi :: c_char , pub username : * const :: core :: ffi :: c_char , pub token : * const :: core :: ffi :: c_char , pub score : u32 , pub score_softcore : u32 , pub num_unread_messages : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_user_t"] [:: core :: mem :: size_of :: < rc_client_user_t > () - 40usize] ; ["Alignment of rc_client_user_t"] [:: core :: mem :: align_of :: < rc_client_user_t > () - 8usize] ; ["Offset of field: rc_client_user_t::display_name"] [:: core :: mem :: offset_of ! (rc_client_user_t , display_name) - 0usize] ; ["Offset of field: rc_client_user_t::username"] [:: core :: mem :: offset_of ! (rc_client_user_t , username) - 8usize] ; ["Offset of field: rc_client_user_t::token"] [:: core :: mem :: offset_of ! (rc_client_user_t , token) - 16usize] ; ["Offset of field: rc_client_user_t::score"] [:: core :: mem :: offset_of ! (rc_client_user_t , score) - 24usize] ; ["Offset of field: rc_client_user_t::score_softcore"] [:: core :: mem :: offset_of ! (rc_client_user_t , score_softcore) - 28usize] ; ["Offset of field: rc_client_user_t::num_unread_messages"] [:: core :: mem :: offset_of ! (rc_client_user_t , num_unread_messages) - 32usize] ; } ; extern "C" { # [doc = " Gets information about the logged in user. Will return NULL if the user is not logged in."] pub fn rc_client_get_user_info (client : * const rc_client_t) -> * const rc_client_user_t ; } extern "C" { # [doc = " Gets the URL for the user's profile picture.\n Returns RC_OK on success."] pub fn rc_client_user_get_image_url (user : * const rc_client_user_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_user_game_summary_t { pub num_core_achievements : u32 , pub num_unofficial_achievements : u32 , pub num_unlocked_achievements : u32 , pub num_unsupported_achievements : u32 , pub points_core : u32 , pub points_unlocked : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_user_game_summary_t"] [:: core :: mem :: size_of :: < rc_client_user_game_summary_t > () - 24usize] ; ["Alignment of rc_client_user_game_summary_t"] [:: core :: mem :: align_of :: < rc_client_user_game_summary_t > () - 4usize] ; ["Offset of field: rc_client_user_game_summary_t::num_core_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_core_achievements) - 0usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unofficial_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unofficial_achievements) - 4usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unlocked_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unlocked_achievements) - 8usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unsupported_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unsupported_achievements) - 12usize] ; ["Offset of field: rc_client_user_game_summary_t::points_core"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , points_core) - 16usize] ; ["Offset of field: rc_client_user_game_summary_t::points_unlocked"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , points_unlocked) - 20usize] ; } ; extern "C" { # [doc = " Gets a breakdown of the number of achievements in the game, and how many the user has unlocked.\n Used for the \"You have unlocked X of Y achievements\" message shown when the game starts."] pub fn rc_client_get_user_game_summary (client : * const rc_client_t , summary : * mut rc_client_user_game_summary_t) ; } extern "C" { # [doc = " Start loading an unidentified game."] pub fn rc_client_begin_identify_and_load_game (client : * mut rc_client_t , console_id : u32 , file_path : * const :: core :: ffi :: c_char , data : * const u8 , data_size : usize , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Start loading a game."] pub fn rc_client_begin_load_game (client : * mut rc_client_t , hash : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Gets the current progress of the asynchronous load game process."] pub fn rc_client_get_load_game_state (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } pub const RC_CLIENT_LOAD_GAME_STATE_NONE : _bindgen_ty_16 = 0 ; pub const RC_CLIENT_LOAD_GAME_STATE_IDENTIFYING_GAME : _bindgen_ty_16 = 1 ; pub const RC_CLIENT_LOAD_GAME_STATE_AWAIT_LOGIN : _bindgen_ty_16 = 2 ; pub const RC_CLIENT_LOAD_GAME_STATE_FETCHING_GAME_DATA : _bindgen_ty_16 = 3 ; pub const RC_CLIENT_LOAD_GAME_STATE_STARTING_SESSION : _bindgen_ty_16 = 4 ; pub const RC_CLIENT_LOAD_GAME_STATE_DONE : _bindgen_ty_16 = 5 ; pub const RC_CLIENT_LOAD_GAME_STATE_ABORTED : _bindgen_ty_16 = 6 ; pub type _bindgen_ty_16 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Determines if a game was successfully identified and loaded."] pub fn rc_client_is_game_loaded (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Unloads the current game."] pub fn rc_client_unload_game (client : * mut rc_client_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_game_t { pub id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub hash : * const :: core :: ffi :: c_char , pub badge_name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_game_t"] [:: core :: mem :: size_of :: < rc_client_game_t > () - 32usize] ; ["Alignment of rc_client_game_t"] [:: core :: mem :: align_of :: < rc_client_game_t > () - 8usize] ; ["Offset of field: rc_client_game_t::id"] [:: core :: mem :: offset_of ! (rc_client_game_t , id) - 0usize] ; ["Offset of field: rc_client_game_t::console_id"] [:: core :: mem :: offset_of ! (rc_client_game_t , console_id) - 4usize] ; ["Offset of field: rc_client_game_t::title"] [:: core :: mem :: offset_of ! (rc_client_game_t , title) - 8usize] ; ["Offset of field: rc_client_game_t::hash"] [:: core :: mem :: offset_of ! (rc_client_game_t , hash) - 16usize] ; ["Offset of field: rc_client_game_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_game_t , badge_name) - 24usize] ; } ; extern "C" { # [doc = " Get information about the current game. Returns NULL if no game is loaded.\n NOTE: returns a dummy game record if an unidentified game is loaded."] pub fn rc_client_get_game_info (client : * const rc_client_t) -> * const rc_client_game_t ; } extern "C" { # [doc = " Gets the URL for the game image.\n Returns RC_OK on success."] pub fn rc_client_game_get_image_url (game : * const rc_client_game_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Changes the active disc in a multi-disc game."] pub fn rc_client_begin_change_media (client : * mut rc_client_t , file_path : * const :: core :: ffi :: c_char , data : * const u8 , data_size : usize , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Changes the active disc in a multi-disc game."] pub fn rc_client_begin_change_media_from_hash (client : * mut rc_client_t , hash : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } # [doc = "\\\n| Subsets                                                                     |\n\\"] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_subset_t { pub id : u32 , pub title : * const :: core :: ffi :: c_char , pub badge_name : [:: core :: ffi :: c_char ; 16usize] , pub num_achievements : u32 , pub num_leaderboards : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_subset_t"] [:: core :: mem :: size_of :: < rc_client_subset_t > () - 40usize] ; ["Alignment of rc_client_subset_t"] [:: core :: mem :: align_of :: < rc_client_subset_t > () - 8usize] ; ["Offset of field: rc_client_subset_t::id"] [:: core :: mem :: offset_of ! (rc_client_subset_t , id) - 0usize] ; ["Offset of field: rc_client_subset_t::title"] [:: core :: mem :: offset_of ! (rc_client_subset_t , title) - 8usize] ; ["Offset of field: rc_client_subset_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_subset_t , badge_name) - 16usize] ; ["Offset of field: rc_client_subset_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_client_subset_t , num_achievements) - 32usize] ; ["Offset of field: rc_client_subset_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_client_subset_t , num_leaderboards) - 36usize] ; } ; extern "C" { pub fn rc_client_get_subset_info (client : * mut rc_client_t , subset_id : u32) -> * const rc_client_subset_t ; } pub const RC_CLIENT_ACHIEVEMENT_STATE_INACTIVE : _bindgen_ty_17 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_ACTIVE : _bindgen_ty_17 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_UNLOCKED : _bindgen_ty_17 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_DISABLED : _bindgen_ty_17 = 3 ; pub const NUM_RC_CLIENT_ACHIEVEMENT_STATES : _bindgen_ty_17 = 4 ; # [doc = "\\\n| Achievements                                                                |\n\\"] pub type _bindgen_ty_17 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_NONE : _bindgen_ty_18 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_CORE : _bindgen_ty_18 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_UNOFFICIAL : _bindgen_ty_18 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_CORE_AND_UNOFFICIAL : _bindgen_ty_18 = 3 ; pub type _bindgen_ty_18 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_STANDARD : _bindgen_ty_19 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_MISSABLE : _bindgen_ty_19 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_PROGRESSION : _bindgen_ty_19 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_WIN : _bindgen_ty_19 = 3 ; pub type _bindgen_ty_19 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNKNOWN : _bindgen_ty_20 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_LOCKED : _bindgen_ty_20 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNLOCKED : _bindgen_ty_20 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNSUPPORTED : _bindgen_ty_20 = 3 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNOFFICIAL : _bindgen_ty_20 = 4 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_RECENTLY_UNLOCKED : _bindgen_ty_20 = 5 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_ACTIVE_CHALLENGE : _bindgen_ty_20 = 6 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_ALMOST_THERE : _bindgen_ty_20 = 7 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNSYNCED : _bindgen_ty_20 = 8 ; pub const NUM_RC_CLIENT_ACHIEVEMENT_BUCKETS : _bindgen_ty_20 = 9 ; pub type _bindgen_ty_20 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_NONE : _bindgen_ty_21 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_SOFTCORE : _bindgen_ty_21 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_HARDCORE : _bindgen_ty_21 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_BOTH : _bindgen_ty_21 = 3 ; pub type _bindgen_ty_21 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_t { pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub badge_name : [:: core :: ffi :: c_char ; 8usize] , pub measured_progress : [:: core :: ffi :: c_char ; 24usize] , pub measured_percent : f32 , pub id : u32 , pub points : u32 , pub unlock_time : time_t , pub state : u8 , pub category : u8 , pub bucket : u8 , pub unlocked : u8 , pub rarity : f32 , pub rarity_hardcore : f32 , pub type_ : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_t"] [:: core :: mem :: size_of :: < rc_client_achievement_t > () - 88usize] ; ["Alignment of rc_client_achievement_t"] [:: core :: mem :: align_of :: < rc_client_achievement_t > () - 8usize] ; ["Offset of field: rc_client_achievement_t::title"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , title) - 0usize] ; ["Offset of field: rc_client_achievement_t::description"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , description) - 8usize] ; ["Offset of field: rc_client_achievement_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , badge_name) - 16usize] ; ["Offset of field: rc_client_achievement_t::measured_progress"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , measured_progress) - 24usize] ; ["Offset of field: rc_client_achievement_t::measured_percent"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , measured_percent) - 48usize] ; ["Offset of field: rc_client_achievement_t::id"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , id) - 52usize] ; ["Offset of field: rc_client_achievement_t::points"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , points) - 56usize] ; ["Offset of field: rc_client_achievement_t::unlock_time"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , unlock_time) - 64usize] ; ["Offset of field: rc_client_achievement_t::state"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , state) - 72usize] ; ["Offset of field: rc_client_achievement_t::category"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , category) - 73usize] ; ["Offset of field: rc_client_achievement_t::bucket"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , bucket) - 74usize] ; ["Offset of field: rc_client_achievement_t::unlocked"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , unlocked) - 75usize] ; ["Offset of field: rc_client_achievement_t::rarity"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , rarity) - 76usize] ; ["Offset of field: rc_client_achievement_t::rarity_hardcore"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , rarity_hardcore) - 80usize] ; ["Offset of field: rc_client_achievement_t::type_"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , type_) - 84usize] ; } ; extern "C" { # [doc = " Get information about an achievement. Returns NULL if not found."] pub fn rc_client_get_achievement_info (client : * mut rc_client_t , id : u32) -> * const rc_client_achievement_t ; } extern "C" { # [doc = " Gets the URL for the achievement image.\n Returns RC_OK on success."] pub fn rc_client_achievement_get_image_url (achievement : * const rc_client_achievement_t , state : :: core :: ffi :: c_int , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_bucket_t { pub achievements : * mut * mut rc_client_achievement_t , pub num_achievements : u32 , pub label : * const :: core :: ffi :: c_char , pub subset_id : u32 , pub bucket_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_bucket_t"] [:: core :: mem :: size_of :: < rc_client_achievement_bucket_t > () - 32usize] ; ["Alignment of rc_client_achievement_bucket_t"] [:: core :: mem :: align_of :: < rc_client_achievement_bucket_t > () - 8usize] ; ["Offset of field: rc_client_achievement_bucket_t::achievements"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , achievements) - 0usize] ; ["Offset of field: rc_client_achievement_bucket_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , num_achievements) - 8usize] ; ["Offset of field: rc_client_achievement_bucket_t::label"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , label) - 16usize] ; ["Offset of field: rc_client_achievement_bucket_t::subset_id"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , subset_id) - 24usize] ; ["Offset of field: rc_client_achievement_bucket_t::bucket_type"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , bucket_type) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_list_t { pub buckets : * mut rc_client_achievement_bucket_t , pub num_buckets : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_list_t"] [:: core :: mem :: size_of :: < rc_client_achievement_list_t > () - 16usize] ; ["Alignment of rc_client_achievement_list_t"] [:: core :: mem :: align_of :: < rc_client_achievement_list_t > () - 8usize] ; ["Offset of field: rc_client_achievement_list_t::buckets"] [:: core :: mem :: offset_of ! (rc_client_achievement_list_t , buckets) - 0usize] ; ["Offset of field: rc_client_achievement_list_t::num_buckets"] [:: core :: mem :: offset_of ! (rc_client_achievement_list_t , num_buckets) - 8usize] ; } ; pub const RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_LOCK_STATE : _bindgen_ty_22 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_PROGRESS : _bindgen_ty_22 = 1 ; pub type _bindgen_ty_22 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Creates a list of achievements matching the specified category and grouping.\n Returns an allocated list that must be free'd by calling rc_client_destroy_achievement_list."] pub fn rc_client_create_achievement_list (client : * mut rc_client_t , category : :: core :: ffi :: c_int , grouping : :: core :: ffi :: c_int) -> * mut rc_client_achievement_list_t ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_get_achievement_list."] pub fn rc_client_destroy_achievement_list (list : * mut rc_client_achievement_list_t) ; } extern "C" { # [doc = " Returns non-zero if there are any achievements that can be queried through rc_client_create_achievement_list()."] pub fn rc_client_has_achievements (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } pub const RC_CLIENT_LEADERBOARD_STATE_INACTIVE : _bindgen_ty_23 = 0 ; pub const RC_CLIENT_LEADERBOARD_STATE_ACTIVE : _bindgen_ty_23 = 1 ; pub const RC_CLIENT_LEADERBOARD_STATE_TRACKING : _bindgen_ty_23 = 2 ; pub const RC_CLIENT_LEADERBOARD_STATE_DISABLED : _bindgen_ty_23 = 3 ; pub const NUM_RC_CLIENT_LEADERBOARD_STATES : _bindgen_ty_23 = 4 ; # [doc = "\\\n| Leaderboards                                                                |\n\\"] pub type _bindgen_ty_23 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_LEADERBOARD_FORMAT_TIME : _bindgen_ty_24 = 0 ; pub const RC_CLIENT_LEADERBOARD_FORMAT_SCORE : _bindgen_ty_24 = 1 ; pub const RC_CLIENT_LEADERBOARD_FORMAT_VALUE : _bindgen_ty_24 = 2 ; pub const NUM_RC_CLIENT_LEADERBOARD_FORMATS : _bindgen_ty_24 = 3 ; pub type _bindgen_ty_24 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_t { pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub tracker_value : * const :: core :: ffi :: c_char , pub id : u32 , pub state : u8 , pub format : u8 , pub lower_is_better : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_t > () - 32usize] ; ["Alignment of rc_client_leaderboard_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_t::title"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , title) - 0usize] ; ["Offset of field: rc_client_leaderboard_t::description"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , description) - 8usize] ; ["Offset of field: rc_client_leaderboard_t::tracker_value"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , tracker_value) - 16usize] ; ["Offset of field: rc_client_leaderboard_t::id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , id) - 24usize] ; ["Offset of field: rc_client_leaderboard_t::state"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , state) - 28usize] ; ["Offset of field: rc_client_leaderboard_t::format"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , format) - 29usize] ; ["Offset of field: rc_client_leaderboard_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , lower_is_better) - 30usize] ; } ; extern "C" { # [doc = " Get information about a leaderboard. Returns NULL if not found."] pub fn rc_client_get_leaderboard_info (client : * const rc_client_t , id : u32) -> * const rc_client_leaderboard_t ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_tracker_t { pub display : [:: core :: ffi :: c_char ; 24usize] , pub id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_tracker_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_tracker_t > () - 28usize] ; ["Alignment of rc_client_leaderboard_tracker_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_tracker_t > () - 4usize] ; ["Offset of field: rc_client_leaderboard_tracker_t::display"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_tracker_t , display) - 0usize] ; ["Offset of field: rc_client_leaderboard_tracker_t::id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_tracker_t , id) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_bucket_t { pub leaderboards : * mut * mut rc_client_leaderboard_t , pub num_leaderboards : u32 , pub label : * const :: core :: ffi :: c_char , pub subset_id : u32 , pub bucket_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_bucket_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_bucket_t > () - 32usize] ; ["Alignment of rc_client_leaderboard_bucket_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_bucket_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::leaderboards"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , leaderboards) - 0usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , num_leaderboards) - 8usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::label"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , label) - 16usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::subset_id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , subset_id) - 24usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::bucket_type"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , bucket_type) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_list_t { pub buckets : * mut rc_client_leaderboard_bucket_t , pub num_buckets : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_list_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_list_t > () - 16usize] ; ["Alignment of rc_client_leaderboard_list_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_list_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_list_t::buckets"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_list_t , buckets) - 0usize] ; ["Offset of field: rc_client_leaderboard_list_t::num_buckets"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_list_t , num_buckets) - 8usize] ; } ; pub const RC_CLIENT_LEADERBOARD_BUCKET_UNKNOWN : _bindgen_ty_25 = 0 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_INACTIVE : _bindgen_ty_25 = 1 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_ACTIVE : _bindgen_ty_25 = 2 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_UNSUPPORTED : _bindgen_ty_25 = 3 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_ALL : _bindgen_ty_25 = 4 ; pub const NUM_RC_CLIENT_LEADERBOARD_BUCKETS : _bindgen_ty_25 = 5 ; pub type _bindgen_ty_25 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_LEADERBOARD_LIST_GROUPING_NONE : _bindgen_ty_26 = 0 ; pub const RC_CLIENT_LEADERBOARD_LIST_GROUPING_TRACKING : _bindgen_ty_26 = 1 ; pub type _bindgen_ty_26 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Creates a list of leaderboards matching the specified grouping.\n Returns an allocated list that must be free'd by calling rc_client_destroy_leaderboard_list."] pub fn rc_client_create_leaderboard_list (client : * mut rc_client_t , grouping : :: core :: ffi :: c_int) -> * mut rc_client_leaderboard_list_t ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_get_leaderboard_list."] pub fn rc_client_destroy_leaderboard_list (list : * mut rc_client_leaderboard_list_t) ; } extern "C" { # [doc = " Returns non-zero if the current game has any leaderboards."] pub fn rc_client_has_leaderboards (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_entry_t { pub user : * const :: core :: ffi :: c_char , pub display : [:: core :: ffi :: c_char ; 24usize] , pub submitted : time_t , pub rank : u32 , pub index : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_entry_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_entry_t > () - 48usize] ; ["Alignment of rc_client_leaderboard_entry_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_entry_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_t::user"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , user) - 0usize] ; ["Offset of field: rc_client_leaderboard_entry_t::display"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , display) - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_t::submitted"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , submitted) - 32usize] ; ["Offset of field: rc_client_leaderboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , rank) - 40usize] ; ["Offset of field: rc_client_leaderboard_entry_t::index"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , index) - 44usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_entry_list_t { pub entries : * mut rc_client_leaderboard_entry_t , pub num_entries : u32 , pub total_entries : u32 , pub user_index : i32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_entry_list_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_entry_list_t > () - 24usize] ; ["Alignment of rc_client_leaderboard_entry_list_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_entry_list_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , entries) - 0usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::num_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , num_entries) - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::total_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , total_entries) - 12usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::user_index"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , user_index) - 16usize] ; } ; pub type rc_client_fetch_leaderboard_entries_callback_t = :: core :: option :: Option < unsafe extern "C" fn (result : :: core :: ffi :: c_int , error_message : * const :: core :: ffi :: c_char , list : * mut rc_client_leaderboard_entry_list_t , client : * mut rc_client_t , callback_userdata : * mut :: core :: ffi :: c_void) > ; extern "C" { # [doc = " Fetches a list of leaderboard entries from the server.\n Callback receives an allocated list that must be free'd by calling rc_client_destroy_leaderboard_entry_list."] pub fn rc_client_begin_fetch_leaderboard_entries (client : * mut rc_client_t , leaderboard_id : u32 , first_entry : u32 , count : u32 , callback : rc_client_fetch_leaderboard_entries_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Fetches a list of leaderboard entries from the server containing the logged-in user.\n Callback receives an allocated list that must be free'd by calling rc_client_destroy_leaderboard_entry_list."] pub fn rc_client_begin_fetch_leaderboard_entries_around_user (client : * mut rc_client_t , leaderboard_id : u32 , count : u32 , callback : rc_client_fetch_leaderboard_entries_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Gets the URL for the profile picture of the user associated to a leaderboard entry.\n Returns RC_OK on success."] pub fn rc_client_leaderboard_entry_get_user_image_url (entry : * const rc_client_leaderboard_entry_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_begin_fetch_leaderboard_entries or rc_client_begin_fetch_leaderboard_entries_around_user."] pub fn rc_client_destroy_leaderboard_entry_list (list : * mut rc_client_leaderboard_entry_list_t) ; } # [doc = " Used for scoreboard events. Contains the response from the server when a leaderboard entry is submitted.\n NOTE: This structure is only valid within the event callback. If you want to make use of the data outside\n of the callback, you should create copies of both the top entries and usernames within."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_scoreboard_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub score : [:: core :: ffi :: c_char ; 24usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_scoreboard_entry_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_scoreboard_entry_t > () - 40usize] ; ["Alignment of rc_client_leaderboard_scoreboard_entry_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_scoreboard_entry_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::username"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , username) - 0usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , rank) - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , score) - 12usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_scoreboard_t { pub leaderboard_id : u32 , pub submitted_score : [:: core :: ffi :: c_char ; 24usize] , pub best_score : [:: core :: ffi :: c_char ; 24usize] , pub new_rank : u32 , pub num_entries : u32 , pub top_entries : * mut rc_client_leaderboard_scoreboard_entry_t , pub num_top_entries : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_scoreboard_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_scoreboard_t > () - 80usize] ; ["Alignment of rc_client_leaderboard_scoreboard_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_scoreboard_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::submitted_score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , submitted_score) - 4usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::best_score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , best_score) - 28usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::new_rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , new_rank) - 52usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::num_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , num_entries) - 56usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::top_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , top_entries) - 64usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::num_top_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , num_top_entries) - 72usize] ; } ; extern "C" { # [doc = " Returns non-zero if the current game supports rich presence."] pub fn rc_client_has_rich_presence (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Gets the current rich presence message.\n Returns the number of characters written to buffer."] pub fn rc_client_get_rich_presence_message (client : * mut rc_client_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> usize ; } pub const RC_CLIENT_EVENT_TYPE_NONE : _bindgen_ty_27 = 0 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_TRIGGERED : _bindgen_ty_27 = 1 ; pub const RC_CLIENT_EVENT_LEADERBOARD_STARTED : _bindgen_ty_27 = 2 ; pub const RC_CLIENT_EVENT_LEADERBOARD_FAILED : _bindgen_ty_27 = 3 ; pub const RC_CLIENT_EVENT_LEADERBOARD_SUBMITTED : _bindgen_ty_27 = 4 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_CHALLENGE_INDICATOR_SHOW : _bindgen_ty_27 = 5 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_CHALLENGE_INDICATOR_HIDE : _bindgen_ty_27 = 6 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_SHOW : _bindgen_ty_27 = 7 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_HIDE : _bindgen_ty_27 = 8 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_UPDATE : _bindgen_ty_27 = 9 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_SHOW : _bindgen_ty_27 = 10 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_HIDE : _bindgen_ty_27 = 11 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_UPDATE : _bindgen_ty_27 = 12 ; pub const RC_CLIENT_EVENT_LEADERBOARD_SCOREBOARD : _bindgen_ty_27 = 13 ; pub const RC_CLIENT_EVENT_RESET : _bindgen_ty_27 = 14 ; pub const RC_CLIENT_EVENT_GAME_COMPLETED : _bindgen_ty_27 = 15 ; pub const RC_CLIENT_EVENT_SERVER_ERROR : _bindgen_ty_27 = 16 ; pub const RC_CLIENT_EVENT_DISCONNECTED : _bindgen_ty_27 = 17 ; pub const RC_CLIENT_EVENT_RECONNECTED : _bindgen_ty_27 = 18 ; # [doc = "\\\n| Processing                                                                  |\n\\"] pub type _bindgen_ty_27 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_server_error_t { pub error_message : * const :: core :: ffi :: c_char , pub api : * const :: core :: ffi :: c_char , pub result : :: core :: ffi :: c_int , pub related_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_server_error_t"] [:: core :: mem :: size_of :: < rc_client_server_error_t > () - 24usize] ; ["Alignment of rc_client_server_error_t"] [:: core :: mem :: align_of :: < rc_client_server_error_t > () - 8usize] ; ["Offset of field: rc_client_server_error_t::error_message"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , error_message) - 0usize] ; ["Offset of field: rc_client_server_error_t::api"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , api) - 8usize] ; ["Offset of field: rc_client_server_error_t::result"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , result) - 16usize] ; ["Offset of field: rc_client_server_error_t::related_id"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , related_id) - 20usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_event_t { pub type_ : u32 , pub achievement : * mut rc_client_achievement_t , pub leaderboard : * mut rc_client_leaderboard_t , pub leaderboard_tracker : * mut rc_client_leaderboard_tracker_t , pub leaderboard_scoreboard : * mut rc_client_leaderboard_scoreboard_t , pub server_error : * mut rc_client_server_error_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_event_t"] [:: core :: mem :: size_of :: < rc_client_event_t > () - 48usize] ; ["Alignment of rc_client_event_t"] [:: core :: mem :: align_of :: < rc_client_event_t > () - 8usize] ; ["Offset of field: rc_client_event_t::type_"] [:: core :: mem :: offset_of ! (rc_client_event_t , type_) - 0usize] ; ["Offset of field: rc_client_event_t::achievement"] [:: core :: mem :: offset_of ! (rc_client_event_t , achievement) - 8usize] ; ["Offset of field: rc_client_event_t::leaderboard"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard) - 16usize] ; ["Offset of field: rc_client_event_t::leaderboard_tracker"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard_tracker) - 24usize] ; ["Offset of field: rc_client_event_t::leaderboard_scoreboard"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard_scoreboard) - 32usize] ; ["Offset of field: rc_client_event_t::server_error"] [:: core :: mem :: offset_of ! (rc_client_event_t , server_error) - 40usize] ; } ; # [doc = " Callback used to notify the client when certain events occur."] pub type rc_client_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (event : * const rc_client_event_t , client : * mut rc_client_t) > ; extern "C" { # [doc = " Provides a callback for event handling."] pub fn rc_client_set_event_handler (client : * mut rc_client_t , handler : rc_client_event_handler_t) ; } extern "C" { # [doc = " Provides a callback for reading memory."] pub fn rc_client_set_read_memory_function (client : * mut rc_client_t , handler : rc_client_read_memory_func_t) ; } extern "C" { # [doc = " Determines if there are any active achievements/leaderboards/rich presence that need processing."] pub fn rc_client_is_processing_required (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Processes achievements for the current frame."] pub fn rc_client_do_frame (client : * mut rc_client_t) ; } extern "C" { # [doc = " Processes the periodic queue.\n Called internally by rc_client_do_frame.\n Should be explicitly called if rc_client_do_frame is not being called because emulation is paused."] pub fn rc_client_idle (client : * mut rc_client_t) ; } extern "C" { # [doc = " Determines if a sufficient amount of frames have been processed since the last call to rc_client_can_pause.\n Should not be called unless the client is trying to pause.\n If false is returned, and frames_remaining is not NULL, frames_remaining will be set to the number of frames\n still required before pause is allowed, which can be converted to a time in seconds for displaying to the user."] pub fn rc_client_can_pause (client : * mut rc_client_t , frames_remaining : * mut u32) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Informs the runtime that the emulator has been reset. Will reset all achievements and leaderboards\n to their initial state (includes hiding indicators/trackers)."] pub fn rc_client_reset (client : * mut rc_client_t) ; } extern "C" { # [doc = " Gets the number of bytes needed to serialized the runtime state."] pub fn rc_client_progress_size (client : * mut rc_client_t) -> usize ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator.\n [deprecated] use rc_client_serialize_progress_sized instead"] pub fn rc_client_serialize_progress (client : * mut rc_client_t , buffer : * mut u8) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator."] pub fn rc_client_serialize_progress_sized (client : * mut rc_client_t , buffer : * mut u8 , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Deserializes the runtime state from a buffer.\n Returns RC_OK on success, or an error indicator.\n [deprecated] use rc_client_deserialize_progress_sized instead"] pub fn rc_client_deserialize_progress (client : * mut rc_client_t , serialized : * const u8) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator."] pub fn rc_client_deserialize_progress_sized (client : * mut rc_client_t , serialized : * const u8 , serialized_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __locale_data { pub _address : u8 , } pub type __builtin_va_list = [__va_list_tag ; 1usize] ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __va_list_tag { pub gp_offset : :: core :: ffi :: c_uint , pub fp_offset : :: core :: ffi :: c_uint , pub overflow_arg_area : * mut :: core :: ffi :: c_void , pub reg_save_area : * mut :: core :: ffi :: c_void , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __va_list_tag"] [:: core :: mem :: size_of :: < __va_list_tag > () - 24usize] ; ["Alignment of __va_list_tag"] [:: core :: mem :: align_of :: < __va_list_tag > () - 8usize] ; ["Offset of field: __va_list_tag::gp_offset"] [:: core :: mem :: offset_of ! (__va_list_tag , gp_offset) - 0usize] ; ["Offset of field: __va_list_tag::fp_offset"] [:: core :: mem :: offset_of ! (__va_list_tag , fp_offset) - 4usize] ; ["Offset of field: __va_list_tag::overflow_arg_area"] [:: core :: mem :: offset_of ! (__va_list_tag , overflow_arg_area) - 8usize] ; ["Offset of field: __va_list_tag::reg_save_area"] [:: core :: mem :: offset_of ! (__va_list_tag , reg_save_area) - 16usize] ; } ;
[INFO] [stdout] 3 + # [repr (C)] # [derive (Copy , Clone , Debug , Default , Eq , Hash , Ord , PartialEq , PartialOrd)] pub struct __BindgenBitfieldUnit < Storage > { storage : Storage , } impl < Storage > __BindgenBitfieldUnit < Storage > { # [inline] pub const fn new (storage : Storage) -> Self { Self { storage } } } impl < Storage > __BindgenBitfieldUnit < Storage > where Storage : AsRef < [u8] > + AsMut < [u8] >, { # [inline] pub fn get_bit (& self , index : usize) -> bool { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = self . storage . as_ref () [byte_index] ; let bit_index = if cfg ! (target_endian = "big") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; byte & mask == mask } # [inline] pub fn set_bit (& mut self , index : usize , val : bool) { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = & mut self . storage . as_mut () [byte_index] ; let bit_index = if cfg ! (target_endian = "big") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; if val { * byte |= mask ; } else { * byte &= ! mask ; } } # [inline] pub fn get (& self , bit_offset : usize , bit_width : u8) -> u64 { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; let mut val = 0 ; for i in 0 .. (bit_width as usize) { if self . get_bit (i + bit_offset) { let index = if cfg ! (target_endian = "big") { bit_width as usize - 1 - i } else { i } ; val |= 1 << index ; } } val } # [inline] pub fn set (& mut self , bit_offset : usize , bit_width : u8 , val : u64) { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; for i in 0 .. (bit_width as usize) { let mask = 1 << i ; let val_bit_is_set = val & mask == mask ; let index = if cfg ! (target_endian = "big") { bit_width as usize - 1 - i } else { i } ; self . set_bit (index + bit_offset , val_bit_is_set) ; } } } # [derive (PartialEq , Copy , Clone , Hash , Debug , Default)] # [repr (C)] pub struct __BindgenComplex < T > { pub re : T , pub im : T } pub const _STDINT_H : u32 = 1 ; pub const _FEATURES_H : u32 = 1 ; pub const _DEFAULT_SOURCE : u32 = 1 ; pub const __GLIBC_USE_ISOC2Y : u32 = 0 ; pub const __GLIBC_USE_ISOC23 : u32 = 0 ; pub const __USE_ISOC11 : u32 = 1 ; pub const __USE_ISOC99 : u32 = 1 ; pub const __USE_ISOC95 : u32 = 1 ; pub const __USE_POSIX_IMPLICITLY : u32 = 1 ; pub const _POSIX_SOURCE : u32 = 1 ; pub const _POSIX_C_SOURCE : u32 = 202405 ; pub const __USE_POSIX : u32 = 1 ; pub const __USE_POSIX2 : u32 = 1 ; pub const __USE_POSIX199309 : u32 = 1 ; pub const __USE_POSIX199506 : u32 = 1 ; pub const __USE_XOPEN2K : u32 = 1 ; pub const __USE_XOPEN2K8 : u32 = 1 ; pub const _ATFILE_SOURCE : u32 = 1 ; pub const __USE_XOPEN2K24 : u32 = 1 ; pub const __WORDSIZE : u32 = 64 ; pub const __WORDSIZE_TIME64_COMPAT32 : u32 = 1 ; pub const __SYSCALL_WORDSIZE : u32 = 64 ; pub const __TIMESIZE : u32 = 64 ; pub const __USE_TIME_BITS64 : u32 = 1 ; pub const __USE_MISC : u32 = 1 ; 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_C23_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 ; pub const __STDC_IEC_559_COMPLEX__ : u32 = 1 ; 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 = 43 ; pub const _SYS_CDEFS_H : u32 = 1 ; pub const __glibc_c99_flexarr_available : u32 = 1 ; pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI : u32 = 0 ; pub const __HAVE_GENERIC_SELECTION : u32 = 1 ; pub const __GLIBC_USE_LIB_EXT2 : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT_C23 : u32 = 0 ; 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_C23 : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_TYPES_EXT : u32 = 0 ; pub const _BITS_TYPES_H : u32 = 1 ; pub const _BITS_TYPESIZES_H : u32 = 1 ; pub const __OFF_T_MATCHES_OFF64_T : u32 = 1 ; pub const __INO_T_MATCHES_INO64_T : u32 = 1 ; pub const __RLIM_T_MATCHES_RLIM64_T : u32 = 1 ; pub const __STATFS_MATCHES_STATFS64 : u32 = 1 ; pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 : u32 = 1 ; pub const __FD_SETSIZE : u32 = 1024 ; pub const _BITS_TIME64_H : u32 = 1 ; pub const _BITS_WCHAR_H : u32 = 1 ; pub const _BITS_STDINT_INTN_H : u32 = 1 ; pub const _BITS_STDINT_UINTN_H : u32 = 1 ; pub const _BITS_STDINT_LEAST_H : u32 = 1 ; pub const INT8_MIN : i32 = - 128 ; pub const INT16_MIN : i32 = - 32768 ; pub const INT32_MIN : i32 = - 2147483648 ; pub const INT8_MAX : u32 = 127 ; pub const INT16_MAX : u32 = 32767 ; pub const INT32_MAX : u32 = 2147483647 ; pub const UINT8_MAX : u32 = 255 ; pub const UINT16_MAX : u32 = 65535 ; pub const UINT32_MAX : u32 = 4294967295 ; pub const INT_LEAST8_MIN : i32 = - 128 ; pub const INT_LEAST16_MIN : i32 = - 32768 ; pub const INT_LEAST32_MIN : i32 = - 2147483648 ; pub const INT_LEAST8_MAX : u32 = 127 ; pub const INT_LEAST16_MAX : u32 = 32767 ; pub const INT_LEAST32_MAX : u32 = 2147483647 ; pub const UINT_LEAST8_MAX : u32 = 255 ; pub const UINT_LEAST16_MAX : u32 = 65535 ; pub const UINT_LEAST32_MAX : u32 = 4294967295 ; pub const INT_FAST8_MIN : i32 = - 128 ; pub const INT_FAST16_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST32_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST8_MAX : u32 = 127 ; pub const INT_FAST16_MAX : u64 = 9223372036854775807 ; pub const INT_FAST32_MAX : u64 = 9223372036854775807 ; pub const UINT_FAST8_MAX : u32 = 255 ; pub const UINT_FAST16_MAX : i32 = - 1 ; pub const UINT_FAST32_MAX : i32 = - 1 ; pub const INTPTR_MIN : i64 = - 9223372036854775808 ; pub const INTPTR_MAX : u64 = 9223372036854775807 ; pub const UINTPTR_MAX : i32 = - 1 ; pub const PTRDIFF_MIN : i64 = - 9223372036854775808 ; pub const PTRDIFF_MAX : u64 = 9223372036854775807 ; pub const SIG_ATOMIC_MIN : i32 = - 2147483648 ; pub const SIG_ATOMIC_MAX : u32 = 2147483647 ; pub const SIZE_MAX : i32 = - 1 ; pub const WINT_MIN : u32 = 0 ; pub const WINT_MAX : u32 = 4294967295 ; pub const RC_VALUE_MAX_NAME_LENGTH : u32 = 15 ; pub const _TIME_H : u32 = 1 ; pub const _BITS_TIME_H : u32 = 1 ; pub const CLOCK_REALTIME : u32 = 0 ; pub const CLOCK_MONOTONIC : u32 = 1 ; pub const CLOCK_PROCESS_CPUTIME_ID : u32 = 2 ; pub const CLOCK_THREAD_CPUTIME_ID : u32 = 3 ; pub const CLOCK_MONOTONIC_RAW : u32 = 4 ; pub const CLOCK_REALTIME_COARSE : u32 = 5 ; pub const CLOCK_MONOTONIC_COARSE : u32 = 6 ; pub const CLOCK_BOOTTIME : u32 = 7 ; pub const CLOCK_REALTIME_ALARM : u32 = 8 ; pub const CLOCK_BOOTTIME_ALARM : u32 = 9 ; pub const CLOCK_TAI : u32 = 11 ; pub const TIMER_ABSTIME : u32 = 1 ; pub const __clock_t_defined : u32 = 1 ; pub const __time_t_defined : u32 = 1 ; pub const __struct_tm_defined : u32 = 1 ; pub const _STRUCT_TIMESPEC : u32 = 1 ; pub const _BITS_ENDIAN_H : u32 = 1 ; pub const __LITTLE_ENDIAN : u32 = 1234 ; pub const __BIG_ENDIAN : u32 = 4321 ; pub const __PDP_ENDIAN : u32 = 3412 ; pub const _BITS_ENDIANNESS_H : u32 = 1 ; pub const __BYTE_ORDER : u32 = 1234 ; pub const __FLOAT_WORD_ORDER : u32 = 1234 ; pub const __clockid_t_defined : u32 = 1 ; pub const __timer_t_defined : u32 = 1 ; pub const __itimerspec_defined : u32 = 1 ; pub const _BITS_TYPES_LOCALE_T_H : u32 = 1 ; pub const _BITS_TYPES___LOCALE_T_H : u32 = 1 ; pub const TIME_UTC : u32 = 1 ; pub const _STDIO_H : u32 = 1 ; pub const _____fpos_t_defined : u32 = 1 ; pub const ____mbstate_t_defined : u32 = 1 ; pub const _____fpos64_t_defined : u32 = 1 ; pub const ____FILE_defined : u32 = 1 ; pub const __FILE_defined : u32 = 1 ; 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 ; pub const BUFSIZ : u32 = 8192 ; pub const EOF : i32 = - 1 ; 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 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 ; pub const __HAVE_FLOAT128 : u32 = 1 ; pub const __HAVE_DISTINCT_FLOAT128 : u32 = 1 ; pub const __HAVE_FLOAT64X : u32 = 1 ; pub const __HAVE_FLOAT64X_LONG_DOUBLE : u32 = 1 ; pub const __HAVE_FLOAT16 : u32 = 0 ; pub const __HAVE_FLOAT32 : u32 = 1 ; pub const __HAVE_FLOAT64 : u32 = 1 ; pub const __HAVE_FLOAT32X : u32 = 1 ; pub const __HAVE_FLOAT128X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT16 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT32 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT64 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT32X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT64X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT128X : u32 = 0 ; pub const __HAVE_FLOATN_NOT_TYPEDEF : u32 = 0 ; pub const RC_IMAGE_TYPE_GAME : u32 = 1 ; pub const RC_IMAGE_TYPE_ACHIEVEMENT : u32 = 2 ; pub const RC_IMAGE_TYPE_ACHIEVEMENT_LOCKED : u32 = 3 ; pub const RC_IMAGE_TYPE_USER : u32 = 4 ; pub const RC_ACHIEVEMENT_CATEGORY_CORE : u32 = 3 ; pub const RC_ACHIEVEMENT_CATEGORY_UNOFFICIAL : u32 = 5 ; pub const RC_ACHIEVEMENT_TYPE_STANDARD : u32 = 0 ; pub const RC_ACHIEVEMENT_TYPE_MISSABLE : u32 = 1 ; pub const RC_ACHIEVEMENT_TYPE_PROGRESSION : u32 = 2 ; pub const RC_ACHIEVEMENT_TYPE_WIN : u32 = 3 ; pub const RC_CLIENT_LEADERBOARD_DISPLAY_SIZE : u32 = 24 ; pub const RC_OK : _bindgen_ty_1 = 0 ; pub const RC_INVALID_LUA_OPERAND : _bindgen_ty_1 = - 1 ; pub const RC_INVALID_MEMORY_OPERAND : _bindgen_ty_1 = - 2 ; pub const RC_INVALID_CONST_OPERAND : _bindgen_ty_1 = - 3 ; pub const RC_INVALID_FP_OPERAND : _bindgen_ty_1 = - 4 ; pub const RC_INVALID_CONDITION_TYPE : _bindgen_ty_1 = - 5 ; pub const RC_INVALID_OPERATOR : _bindgen_ty_1 = - 6 ; pub const RC_INVALID_REQUIRED_HITS : _bindgen_ty_1 = - 7 ; pub const RC_DUPLICATED_START : _bindgen_ty_1 = - 8 ; pub const RC_DUPLICATED_CANCEL : _bindgen_ty_1 = - 9 ; pub const RC_DUPLICATED_SUBMIT : _bindgen_ty_1 = - 10 ; pub const RC_DUPLICATED_VALUE : _bindgen_ty_1 = - 11 ; pub const RC_DUPLICATED_PROGRESS : _bindgen_ty_1 = - 12 ; pub const RC_MISSING_START : _bindgen_ty_1 = - 13 ; pub const RC_MISSING_CANCEL : _bindgen_ty_1 = - 14 ; pub const RC_MISSING_SUBMIT : _bindgen_ty_1 = - 15 ; pub const RC_MISSING_VALUE : _bindgen_ty_1 = - 16 ; pub const RC_INVALID_LBOARD_FIELD : _bindgen_ty_1 = - 17 ; pub const RC_MISSING_DISPLAY_STRING : _bindgen_ty_1 = - 18 ; pub const RC_OUT_OF_MEMORY : _bindgen_ty_1 = - 19 ; pub const RC_INVALID_VALUE_FLAG : _bindgen_ty_1 = - 20 ; pub const RC_MISSING_VALUE_MEASURED : _bindgen_ty_1 = - 21 ; pub const RC_MULTIPLE_MEASURED : _bindgen_ty_1 = - 22 ; pub const RC_INVALID_MEASURED_TARGET : _bindgen_ty_1 = - 23 ; pub const RC_INVALID_COMPARISON : _bindgen_ty_1 = - 24 ; pub const RC_INVALID_STATE : _bindgen_ty_1 = - 25 ; pub const RC_INVALID_JSON : _bindgen_ty_1 = - 26 ; pub const RC_API_FAILURE : _bindgen_ty_1 = - 27 ; pub const RC_LOGIN_REQUIRED : _bindgen_ty_1 = - 28 ; pub const RC_NO_GAME_LOADED : _bindgen_ty_1 = - 29 ; pub const RC_HARDCORE_DISABLED : _bindgen_ty_1 = - 30 ; pub const RC_ABORTED : _bindgen_ty_1 = - 31 ; pub const RC_NO_RESPONSE : _bindgen_ty_1 = - 32 ; pub const RC_ACCESS_DENIED : _bindgen_ty_1 = - 33 ; pub const RC_INVALID_CREDENTIALS : _bindgen_ty_1 = - 34 ; pub const RC_EXPIRED_TOKEN : _bindgen_ty_1 = - 35 ; pub const RC_INSUFFICIENT_BUFFER : _bindgen_ty_1 = - 36 ; pub const RC_INVALID_VARIABLE_NAME : _bindgen_ty_1 = - 37 ; pub const RC_UNKNOWN_VARIABLE_NAME : _bindgen_ty_1 = - 38 ; # [doc = "\\\n| Return values                                                               |\n\\"] pub type _bindgen_ty_1 = :: core :: ffi :: c_int ; extern "C" { pub fn rc_error_str (ret : :: core :: ffi :: c_int) -> * const :: core :: ffi :: c_char ; } pub type wchar_t = :: core :: ffi :: c_int ; # [repr (C)] # [repr (align (16))] # [derive (Debug , Copy , Clone)] pub struct max_align_t { pub __clang_max_align_nonce1 : :: core :: ffi :: c_longlong , pub __bindgen_padding_0 : u64 , pub __clang_max_align_nonce2 : u128 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of max_align_t"] [:: core :: mem :: size_of :: < max_align_t > () - 32usize] ; ["Alignment of max_align_t"] [:: core :: mem :: align_of :: < max_align_t > () - 16usize] ; ["Offset of field: max_align_t::__clang_max_align_nonce1"] [:: core :: mem :: offset_of ! (max_align_t , __clang_max_align_nonce1) - 0usize] ; ["Offset of field: max_align_t::__clang_max_align_nonce2"] [:: core :: mem :: offset_of ! (max_align_t , __clang_max_align_nonce2) - 16usize] ; } ; pub type __u_char = :: core :: ffi :: c_uchar ; pub type __u_short = :: core :: ffi :: c_ushort ; pub type __u_int = :: core :: ffi :: c_uint ; pub type __u_long = :: core :: ffi :: c_ulong ; pub type __int8_t = :: core :: ffi :: c_schar ; pub type __uint8_t = :: core :: ffi :: c_uchar ; pub type __int16_t = :: core :: ffi :: c_short ; pub type __uint16_t = :: core :: ffi :: c_ushort ; pub type __int32_t = :: core :: ffi :: c_int ; pub type __uint32_t = :: core :: ffi :: c_uint ; pub type __int64_t = :: core :: ffi :: c_long ; pub type __uint64_t = :: core :: ffi :: c_ulong ; pub type __int_least8_t = __int8_t ; pub type __uint_least8_t = __uint8_t ; pub type __int_least16_t = __int16_t ; pub type __uint_least16_t = __uint16_t ; pub type __int_least32_t = __int32_t ; pub type __uint_least32_t = __uint32_t ; pub type __int_least64_t = __int64_t ; pub type __uint_least64_t = __uint64_t ; pub type __quad_t = :: core :: ffi :: c_long ; pub type __u_quad_t = :: core :: ffi :: c_ulong ; pub type __intmax_t = :: core :: ffi :: c_long ; pub type __uintmax_t = :: core :: ffi :: c_ulong ; pub type __dev_t = :: core :: ffi :: c_ulong ; pub type __uid_t = :: core :: ffi :: c_uint ; pub type __gid_t = :: core :: ffi :: c_uint ; pub type __ino_t = :: core :: ffi :: c_ulong ; pub type __ino64_t = :: core :: ffi :: c_ulong ; pub type __mode_t = :: core :: ffi :: c_uint ; pub type __nlink_t = :: core :: ffi :: c_ulong ; pub type __off_t = :: core :: ffi :: c_long ; pub type __off64_t = :: core :: ffi :: c_long ; pub type __pid_t = :: core :: ffi :: c_int ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __fsid_t { pub __val : [:: core :: ffi :: c_int ; 2usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __fsid_t"] [:: core :: mem :: size_of :: < __fsid_t > () - 8usize] ; ["Alignment of __fsid_t"] [:: core :: mem :: align_of :: < __fsid_t > () - 4usize] ; ["Offset of field: __fsid_t::__val"] [:: core :: mem :: offset_of ! (__fsid_t , __val) - 0usize] ; } ; pub type __clock_t = :: core :: ffi :: c_long ; pub type __rlim_t = :: core :: ffi :: c_ulong ; pub type __rlim64_t = :: core :: ffi :: c_ulong ; pub type __id_t = :: core :: ffi :: c_uint ; pub type __time_t = :: core :: ffi :: c_long ; pub type __useconds_t = :: core :: ffi :: c_uint ; pub type __suseconds_t = :: core :: ffi :: c_long ; pub type __suseconds64_t = :: core :: ffi :: c_long ; pub type __daddr_t = :: core :: ffi :: c_int ; pub type __key_t = :: core :: ffi :: c_int ; pub type __clockid_t = :: core :: ffi :: c_int ; pub type __timer_t = * mut :: core :: ffi :: c_void ; pub type __blksize_t = :: core :: ffi :: c_long ; pub type __blkcnt_t = :: core :: ffi :: c_long ; pub type __blkcnt64_t = :: core :: ffi :: c_long ; pub type __fsblkcnt_t = :: core :: ffi :: c_ulong ; pub type __fsblkcnt64_t = :: core :: ffi :: c_ulong ; pub type __fsfilcnt_t = :: core :: ffi :: c_ulong ; pub type __fsfilcnt64_t = :: core :: ffi :: c_ulong ; pub type __fsword_t = :: core :: ffi :: c_long ; pub type __ssize_t = :: core :: ffi :: c_long ; pub type __syscall_slong_t = :: core :: ffi :: c_long ; pub type __syscall_ulong_t = :: core :: ffi :: c_ulong ; pub type __loff_t = __off64_t ; pub type __caddr_t = * mut :: core :: ffi :: c_char ; pub type __intptr_t = :: core :: ffi :: c_long ; pub type __socklen_t = :: core :: ffi :: c_uint ; pub type __sig_atomic_t = :: core :: ffi :: c_int ; pub type int_least8_t = __int_least8_t ; pub type int_least16_t = __int_least16_t ; pub type int_least32_t = __int_least32_t ; pub type int_least64_t = __int_least64_t ; pub type uint_least8_t = __uint_least8_t ; pub type uint_least16_t = __uint_least16_t ; pub type uint_least32_t = __uint_least32_t ; pub type uint_least64_t = __uint_least64_t ; pub type int_fast8_t = :: core :: ffi :: c_schar ; pub type int_fast16_t = :: core :: ffi :: c_long ; pub type int_fast32_t = :: core :: ffi :: c_long ; pub type int_fast64_t = :: core :: ffi :: c_long ; pub type uint_fast8_t = :: core :: ffi :: c_uchar ; pub type uint_fast16_t = :: core :: ffi :: c_ulong ; pub type uint_fast32_t = :: core :: ffi :: c_ulong ; pub type uint_fast64_t = :: core :: ffi :: c_ulong ; pub type intmax_t = __intmax_t ; pub type uintmax_t = __uintmax_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct lua_State { _unused : [u8 ; 0] , } # [doc = " Callback used to read num_bytes bytes from memory starting at address. If\n num_bytes is greater than 1, the value is read in little-endian from\n memory."] pub type rc_peek_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , num_bytes : u32 , ud : * mut :: core :: ffi :: c_void) -> u32 > ; pub const RC_MEMSIZE_8_BITS : _bindgen_ty_2 = 0 ; pub const RC_MEMSIZE_16_BITS : _bindgen_ty_2 = 1 ; pub const RC_MEMSIZE_24_BITS : _bindgen_ty_2 = 2 ; pub const RC_MEMSIZE_32_BITS : _bindgen_ty_2 = 3 ; pub const RC_MEMSIZE_LOW : _bindgen_ty_2 = 4 ; pub const RC_MEMSIZE_HIGH : _bindgen_ty_2 = 5 ; pub const RC_MEMSIZE_BIT_0 : _bindgen_ty_2 = 6 ; pub const RC_MEMSIZE_BIT_1 : _bindgen_ty_2 = 7 ; pub const RC_MEMSIZE_BIT_2 : _bindgen_ty_2 = 8 ; pub const RC_MEMSIZE_BIT_3 : _bindgen_ty_2 = 9 ; pub const RC_MEMSIZE_BIT_4 : _bindgen_ty_2 = 10 ; pub const RC_MEMSIZE_BIT_5 : _bindgen_ty_2 = 11 ; pub const RC_MEMSIZE_BIT_6 : _bindgen_ty_2 = 12 ; pub const RC_MEMSIZE_BIT_7 : _bindgen_ty_2 = 13 ; pub const RC_MEMSIZE_BITCOUNT : _bindgen_ty_2 = 14 ; pub const RC_MEMSIZE_16_BITS_BE : _bindgen_ty_2 = 15 ; pub const RC_MEMSIZE_24_BITS_BE : _bindgen_ty_2 = 16 ; pub const RC_MEMSIZE_32_BITS_BE : _bindgen_ty_2 = 17 ; pub const RC_MEMSIZE_FLOAT : _bindgen_ty_2 = 18 ; pub const RC_MEMSIZE_MBF32 : _bindgen_ty_2 = 19 ; pub const RC_MEMSIZE_MBF32_LE : _bindgen_ty_2 = 20 ; pub const RC_MEMSIZE_FLOAT_BE : _bindgen_ty_2 = 21 ; pub const RC_MEMSIZE_DOUBLE32 : _bindgen_ty_2 = 22 ; pub const RC_MEMSIZE_DOUBLE32_BE : _bindgen_ty_2 = 23 ; pub const RC_MEMSIZE_VARIABLE : _bindgen_ty_2 = 24 ; # [doc = "\\\n| Memory References                                                           |\n\\"] pub type _bindgen_ty_2 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memref_value_t { pub value : u32 , pub prior : u32 , pub size : u8 , pub changed : u8 , pub type_ : u8 , pub is_indirect : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memref_value_t"] [:: core :: mem :: size_of :: < rc_memref_value_t > () - 12usize] ; ["Alignment of rc_memref_value_t"] [:: core :: mem :: align_of :: < rc_memref_value_t > () - 4usize] ; ["Offset of field: rc_memref_value_t::value"] [:: core :: mem :: offset_of ! (rc_memref_value_t , value) - 0usize] ; ["Offset of field: rc_memref_value_t::prior"] [:: core :: mem :: offset_of ! (rc_memref_value_t , prior) - 4usize] ; ["Offset of field: rc_memref_value_t::size"] [:: core :: mem :: offset_of ! (rc_memref_value_t , size) - 8usize] ; ["Offset of field: rc_memref_value_t::changed"] [:: core :: mem :: offset_of ! (rc_memref_value_t , changed) - 9usize] ; ["Offset of field: rc_memref_value_t::type_"] [:: core :: mem :: offset_of ! (rc_memref_value_t , type_) - 10usize] ; ["Offset of field: rc_memref_value_t::is_indirect"] [:: core :: mem :: offset_of ! (rc_memref_value_t , is_indirect) - 11usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memref_t { pub value : rc_memref_value_t , pub address : u32 , pub next : * mut rc_memref_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memref_t"] [:: core :: mem :: size_of :: < rc_memref_t > () - 24usize] ; ["Alignment of rc_memref_t"] [:: core :: mem :: align_of :: < rc_memref_t > () - 8usize] ; ["Offset of field: rc_memref_t::value"] [:: core :: mem :: offset_of ! (rc_memref_t , value) - 0usize] ; ["Offset of field: rc_memref_t::address"] [:: core :: mem :: offset_of ! (rc_memref_t , address) - 12usize] ; ["Offset of field: rc_memref_t::next"] [:: core :: mem :: offset_of ! (rc_memref_t , next) - 16usize] ; } ; pub const RC_OPERAND_ADDRESS : _bindgen_ty_3 = 0 ; pub const RC_OPERAND_DELTA : _bindgen_ty_3 = 1 ; pub const RC_OPERAND_CONST : _bindgen_ty_3 = 2 ; pub const RC_OPERAND_FP : _bindgen_ty_3 = 3 ; pub const RC_OPERAND_LUA : _bindgen_ty_3 = 4 ; pub const RC_OPERAND_PRIOR : _bindgen_ty_3 = 5 ; pub const RC_OPERAND_BCD : _bindgen_ty_3 = 6 ; pub const RC_OPERAND_INVERTED : _bindgen_ty_3 = 7 ; pub const RC_OPERAND_RECALL : _bindgen_ty_3 = 8 ; # [doc = "\\\n| Operands                                                                    |\n\\"] pub type _bindgen_ty_3 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Copy , Clone)] pub struct rc_operand_t { pub value : rc_operand_t__bindgen_ty_1 , pub type_ : u8 , pub size : u8 , } # [repr (C)] # [derive (Copy , Clone)] pub union rc_operand_t__bindgen_ty_1 { pub memref : * mut rc_memref_t , pub num : u32 , pub dbl : f64 , pub luafunc : :: core :: ffi :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_operand_t__bindgen_ty_1"] [:: core :: mem :: size_of :: < rc_operand_t__bindgen_ty_1 > () - 8usize] ; ["Alignment of rc_operand_t__bindgen_ty_1"] [:: core :: mem :: align_of :: < rc_operand_t__bindgen_ty_1 > () - 8usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::memref"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , memref) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::num"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , num) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::dbl"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , dbl) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::luafunc"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , luafunc) - 0usize] ; } ; impl :: core :: fmt :: Debug for rc_operand_t__bindgen_ty_1 { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_operand_t__bindgen_ty_1 {{ union }}") } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_operand_t"] [:: core :: mem :: size_of :: < rc_operand_t > () - 16usize] ; ["Alignment of rc_operand_t"] [:: core :: mem :: align_of :: < rc_operand_t > () - 8usize] ; ["Offset of field: rc_operand_t::value"] [:: core :: mem :: offset_of ! (rc_operand_t , value) - 0usize] ; ["Offset of field: rc_operand_t::type_"] [:: core :: mem :: offset_of ! (rc_operand_t , type_) - 8usize] ; ["Offset of field: rc_operand_t::size"] [:: core :: mem :: offset_of ! (rc_operand_t , size) - 9usize] ; } ; impl :: core :: fmt :: Debug for rc_operand_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_operand_t {{ value: {:?}, type: {:?}, size: {:?} }}" , self . value , self . type_ , self . size) } } extern "C" { pub fn rc_operand_is_memref (operand : * const rc_operand_t) -> :: core :: ffi :: c_int ; } pub const RC_CONDITION_STANDARD : _bindgen_ty_4 = 0 ; pub const RC_CONDITION_PAUSE_IF : _bindgen_ty_4 = 1 ; pub const RC_CONDITION_RESET_IF : _bindgen_ty_4 = 2 ; pub const RC_CONDITION_MEASURED_IF : _bindgen_ty_4 = 3 ; pub const RC_CONDITION_TRIGGER : _bindgen_ty_4 = 4 ; pub const RC_CONDITION_MEASURED : _bindgen_ty_4 = 5 ; pub const RC_CONDITION_ADD_SOURCE : _bindgen_ty_4 = 6 ; pub const RC_CONDITION_SUB_SOURCE : _bindgen_ty_4 = 7 ; pub const RC_CONDITION_ADD_ADDRESS : _bindgen_ty_4 = 8 ; pub const RC_CONDITION_REMEMBER : _bindgen_ty_4 = 9 ; pub const RC_CONDITION_ADD_HITS : _bindgen_ty_4 = 10 ; pub const RC_CONDITION_SUB_HITS : _bindgen_ty_4 = 11 ; pub const RC_CONDITION_RESET_NEXT_IF : _bindgen_ty_4 = 12 ; pub const RC_CONDITION_AND_NEXT : _bindgen_ty_4 = 13 ; pub const RC_CONDITION_OR_NEXT : _bindgen_ty_4 = 14 ; # [doc = "\\\n| Conditions                                                                  |\n\\"] pub type _bindgen_ty_4 = :: core :: ffi :: c_uint ; pub const RC_OPERATOR_EQ : _bindgen_ty_5 = 0 ; pub const RC_OPERATOR_LT : _bindgen_ty_5 = 1 ; pub const RC_OPERATOR_LE : _bindgen_ty_5 = 2 ; pub const RC_OPERATOR_GT : _bindgen_ty_5 = 3 ; pub const RC_OPERATOR_GE : _bindgen_ty_5 = 4 ; pub const RC_OPERATOR_NE : _bindgen_ty_5 = 5 ; pub const RC_OPERATOR_NONE : _bindgen_ty_5 = 6 ; pub const RC_OPERATOR_MULT : _bindgen_ty_5 = 7 ; pub const RC_OPERATOR_DIV : _bindgen_ty_5 = 8 ; pub const RC_OPERATOR_AND : _bindgen_ty_5 = 9 ; pub const RC_OPERATOR_XOR : _bindgen_ty_5 = 10 ; pub const RC_OPERATOR_MOD : _bindgen_ty_5 = 11 ; pub const RC_OPERATOR_ADD : _bindgen_ty_5 = 12 ; pub const RC_OPERATOR_SUB : _bindgen_ty_5 = 13 ; pub type _bindgen_ty_5 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Copy , Clone)] pub struct rc_condition_t { pub operand1 : rc_operand_t , pub operand2 : rc_operand_t , pub required_hits : u32 , pub current_hits : u32 , pub next : * mut rc_condition_t , pub type_ : u8 , pub oper : u8 , pub pause : u8 , pub is_true : u8 , pub optimized_comparator : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_condition_t"] [:: core :: mem :: size_of :: < rc_condition_t > () - 56usize] ; ["Alignment of rc_condition_t"] [:: core :: mem :: align_of :: < rc_condition_t > () - 8usize] ; ["Offset of field: rc_condition_t::operand1"] [:: core :: mem :: offset_of ! (rc_condition_t , operand1) - 0usize] ; ["Offset of field: rc_condition_t::operand2"] [:: core :: mem :: offset_of ! (rc_condition_t , operand2) - 16usize] ; ["Offset of field: rc_condition_t::required_hits"] [:: core :: mem :: offset_of ! (rc_condition_t , required_hits) - 32usize] ; ["Offset of field: rc_condition_t::current_hits"] [:: core :: mem :: offset_of ! (rc_condition_t , current_hits) - 36usize] ; ["Offset of field: rc_condition_t::next"] [:: core :: mem :: offset_of ! (rc_condition_t , next) - 40usize] ; ["Offset of field: rc_condition_t::type_"] [:: core :: mem :: offset_of ! (rc_condition_t , type_) - 48usize] ; ["Offset of field: rc_condition_t::oper"] [:: core :: mem :: offset_of ! (rc_condition_t , oper) - 49usize] ; ["Offset of field: rc_condition_t::pause"] [:: core :: mem :: offset_of ! (rc_condition_t , pause) - 50usize] ; ["Offset of field: rc_condition_t::is_true"] [:: core :: mem :: offset_of ! (rc_condition_t , is_true) - 51usize] ; ["Offset of field: rc_condition_t::optimized_comparator"] [:: core :: mem :: offset_of ! (rc_condition_t , optimized_comparator) - 52usize] ; } ; impl :: core :: fmt :: Debug for rc_condition_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_condition_t {{ operand1: {:?}, operand2: {:?}, required_hits: {:?}, current_hits: {:?}, next: {:?}, type: {:?}, oper: {:?}, pause: {:?}, is_true: {:?}, optimized_comparator: {:?} }}" , self . operand1 , self . operand2 , self . required_hits , self . current_hits , self . next , self . type_ , self . oper , self . pause , self . is_true , self . optimized_comparator) } } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_condset_t { pub next : * mut rc_condset_t , pub conditions : * mut rc_condition_t , pub has_pause : u8 , pub is_paused : u8 , pub has_indirect_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_condset_t"] [:: core :: mem :: size_of :: < rc_condset_t > () - 24usize] ; ["Alignment of rc_condset_t"] [:: core :: mem :: align_of :: < rc_condset_t > () - 8usize] ; ["Offset of field: rc_condset_t::next"] [:: core :: mem :: offset_of ! (rc_condset_t , next) - 0usize] ; ["Offset of field: rc_condset_t::conditions"] [:: core :: mem :: offset_of ! (rc_condset_t , conditions) - 8usize] ; ["Offset of field: rc_condset_t::has_pause"] [:: core :: mem :: offset_of ! (rc_condset_t , has_pause) - 16usize] ; ["Offset of field: rc_condset_t::is_paused"] [:: core :: mem :: offset_of ! (rc_condset_t , is_paused) - 17usize] ; ["Offset of field: rc_condset_t::has_indirect_memrefs"] [:: core :: mem :: offset_of ! (rc_condset_t , has_indirect_memrefs) - 18usize] ; } ; pub const RC_TRIGGER_STATE_INACTIVE : _bindgen_ty_6 = 0 ; pub const RC_TRIGGER_STATE_WAITING : _bindgen_ty_6 = 1 ; pub const RC_TRIGGER_STATE_ACTIVE : _bindgen_ty_6 = 2 ; pub const RC_TRIGGER_STATE_PAUSED : _bindgen_ty_6 = 3 ; pub const RC_TRIGGER_STATE_RESET : _bindgen_ty_6 = 4 ; pub const RC_TRIGGER_STATE_TRIGGERED : _bindgen_ty_6 = 5 ; pub const RC_TRIGGER_STATE_PRIMED : _bindgen_ty_6 = 6 ; pub const RC_TRIGGER_STATE_DISABLED : _bindgen_ty_6 = 7 ; # [doc = "\\\n| Trigger                                                                     |\n\\"] pub type _bindgen_ty_6 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_trigger_t { pub requirement : * mut rc_condset_t , pub alternative : * mut rc_condset_t , pub memrefs : * mut rc_memref_t , pub measured_value : u32 , pub measured_target : u32 , pub state : u8 , pub has_hits : u8 , pub has_required_hits : u8 , pub measured_as_percent : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_trigger_t"] [:: core :: mem :: size_of :: < rc_trigger_t > () - 40usize] ; ["Alignment of rc_trigger_t"] [:: core :: mem :: align_of :: < rc_trigger_t > () - 8usize] ; ["Offset of field: rc_trigger_t::requirement"] [:: core :: mem :: offset_of ! (rc_trigger_t , requirement) - 0usize] ; ["Offset of field: rc_trigger_t::alternative"] [:: core :: mem :: offset_of ! (rc_trigger_t , alternative) - 8usize] ; ["Offset of field: rc_trigger_t::memrefs"] [:: core :: mem :: offset_of ! (rc_trigger_t , memrefs) - 16usize] ; ["Offset of field: rc_trigger_t::measured_value"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_value) - 24usize] ; ["Offset of field: rc_trigger_t::measured_target"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_target) - 28usize] ; ["Offset of field: rc_trigger_t::state"] [:: core :: mem :: offset_of ! (rc_trigger_t , state) - 32usize] ; ["Offset of field: rc_trigger_t::has_hits"] [:: core :: mem :: offset_of ! (rc_trigger_t , has_hits) - 33usize] ; ["Offset of field: rc_trigger_t::has_required_hits"] [:: core :: mem :: offset_of ! (rc_trigger_t , has_required_hits) - 34usize] ; ["Offset of field: rc_trigger_t::measured_as_percent"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_as_percent) - 35usize] ; } ; extern "C" { pub fn rc_trigger_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_trigger (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_trigger_t ; } extern "C" { pub fn rc_evaluate_trigger (trigger : * mut rc_trigger_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_test_trigger (trigger : * mut rc_trigger_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_trigger (self_ : * mut rc_trigger_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_value_t { pub value : rc_memref_value_t , pub conditions : * mut rc_condset_t , pub memrefs : * mut rc_memref_t , pub name : * const :: core :: ffi :: c_char , pub next : * mut rc_value_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_value_t"] [:: core :: mem :: size_of :: < rc_value_t > () - 48usize] ; ["Alignment of rc_value_t"] [:: core :: mem :: align_of :: < rc_value_t > () - 8usize] ; ["Offset of field: rc_value_t::value"] [:: core :: mem :: offset_of ! (rc_value_t , value) - 0usize] ; ["Offset of field: rc_value_t::conditions"] [:: core :: mem :: offset_of ! (rc_value_t , conditions) - 16usize] ; ["Offset of field: rc_value_t::memrefs"] [:: core :: mem :: offset_of ! (rc_value_t , memrefs) - 24usize] ; ["Offset of field: rc_value_t::name"] [:: core :: mem :: offset_of ! (rc_value_t , name) - 32usize] ; ["Offset of field: rc_value_t::next"] [:: core :: mem :: offset_of ! (rc_value_t , next) - 40usize] ; } ; extern "C" { pub fn rc_value_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_value (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_value_t ; } extern "C" { pub fn rc_evaluate_value (value : * mut rc_value_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> i32 ; } pub const RC_LBOARD_STATE_INACTIVE : _bindgen_ty_7 = 0 ; pub const RC_LBOARD_STATE_WAITING : _bindgen_ty_7 = 1 ; pub const RC_LBOARD_STATE_ACTIVE : _bindgen_ty_7 = 2 ; pub const RC_LBOARD_STATE_STARTED : _bindgen_ty_7 = 3 ; pub const RC_LBOARD_STATE_CANCELED : _bindgen_ty_7 = 4 ; pub const RC_LBOARD_STATE_TRIGGERED : _bindgen_ty_7 = 5 ; pub const RC_LBOARD_STATE_DISABLED : _bindgen_ty_7 = 6 ; # [doc = "\\\n| Leaderboards                                                                |\n\\"] pub type _bindgen_ty_7 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_lboard_t { pub start : rc_trigger_t , pub submit : rc_trigger_t , pub cancel : rc_trigger_t , pub value : rc_value_t , pub progress : * mut rc_value_t , pub memrefs : * mut rc_memref_t , pub state : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_lboard_t"] [:: core :: mem :: size_of :: < rc_lboard_t > () - 192usize] ; ["Alignment of rc_lboard_t"] [:: core :: mem :: align_of :: < rc_lboard_t > () - 8usize] ; ["Offset of field: rc_lboard_t::start"] [:: core :: mem :: offset_of ! (rc_lboard_t , start) - 0usize] ; ["Offset of field: rc_lboard_t::submit"] [:: core :: mem :: offset_of ! (rc_lboard_t , submit) - 40usize] ; ["Offset of field: rc_lboard_t::cancel"] [:: core :: mem :: offset_of ! (rc_lboard_t , cancel) - 80usize] ; ["Offset of field: rc_lboard_t::value"] [:: core :: mem :: offset_of ! (rc_lboard_t , value) - 120usize] ; ["Offset of field: rc_lboard_t::progress"] [:: core :: mem :: offset_of ! (rc_lboard_t , progress) - 168usize] ; ["Offset of field: rc_lboard_t::memrefs"] [:: core :: mem :: offset_of ! (rc_lboard_t , memrefs) - 176usize] ; ["Offset of field: rc_lboard_t::state"] [:: core :: mem :: offset_of ! (rc_lboard_t , state) - 184usize] ; } ; extern "C" { pub fn rc_lboard_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_lboard (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_lboard_t ; } extern "C" { pub fn rc_evaluate_lboard (lboard : * mut rc_lboard_t , value : * mut i32 , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_lboard (lboard : * mut rc_lboard_t) ; } pub const RC_FORMAT_FRAMES : _bindgen_ty_8 = 0 ; pub const RC_FORMAT_SECONDS : _bindgen_ty_8 = 1 ; pub const RC_FORMAT_CENTISECS : _bindgen_ty_8 = 2 ; pub const RC_FORMAT_SCORE : _bindgen_ty_8 = 3 ; pub const RC_FORMAT_VALUE : _bindgen_ty_8 = 4 ; pub const RC_FORMAT_MINUTES : _bindgen_ty_8 = 5 ; pub const RC_FORMAT_SECONDS_AS_MINUTES : _bindgen_ty_8 = 6 ; pub const RC_FORMAT_FLOAT1 : _bindgen_ty_8 = 7 ; pub const RC_FORMAT_FLOAT2 : _bindgen_ty_8 = 8 ; pub const RC_FORMAT_FLOAT3 : _bindgen_ty_8 = 9 ; pub const RC_FORMAT_FLOAT4 : _bindgen_ty_8 = 10 ; pub const RC_FORMAT_FLOAT5 : _bindgen_ty_8 = 11 ; pub const RC_FORMAT_FLOAT6 : _bindgen_ty_8 = 12 ; pub const RC_FORMAT_FIXED1 : _bindgen_ty_8 = 13 ; pub const RC_FORMAT_FIXED2 : _bindgen_ty_8 = 14 ; pub const RC_FORMAT_FIXED3 : _bindgen_ty_8 = 15 ; pub const RC_FORMAT_TENS : _bindgen_ty_8 = 16 ; pub const RC_FORMAT_HUNDREDS : _bindgen_ty_8 = 17 ; pub const RC_FORMAT_THOUSANDS : _bindgen_ty_8 = 18 ; pub const RC_FORMAT_UNSIGNED_VALUE : _bindgen_ty_8 = 19 ; # [doc = "\\\n| Value formatting                                                            |\n\\"] pub type _bindgen_ty_8 = :: core :: ffi :: c_uint ; extern "C" { pub fn rc_parse_format (format_str : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_format_value (buffer : * mut :: core :: ffi :: c_char , size : :: core :: ffi :: c_int , value : i32 , format : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_lookup_item_t { pub first : u32 , pub last : u32 , pub left : * mut rc_richpresence_lookup_item_t , pub right : * mut rc_richpresence_lookup_item_t , pub label : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_lookup_item_t"] [:: core :: mem :: size_of :: < rc_richpresence_lookup_item_t > () - 32usize] ; ["Alignment of rc_richpresence_lookup_item_t"] [:: core :: mem :: align_of :: < rc_richpresence_lookup_item_t > () - 8usize] ; ["Offset of field: rc_richpresence_lookup_item_t::first"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , first) - 0usize] ; ["Offset of field: rc_richpresence_lookup_item_t::last"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , last) - 4usize] ; ["Offset of field: rc_richpresence_lookup_item_t::left"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , left) - 8usize] ; ["Offset of field: rc_richpresence_lookup_item_t::right"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , right) - 16usize] ; ["Offset of field: rc_richpresence_lookup_item_t::label"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , label) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_lookup_t { pub root : * mut rc_richpresence_lookup_item_t , pub next : * mut rc_richpresence_lookup_t , pub name : * const :: core :: ffi :: c_char , pub default_label : * const :: core :: ffi :: c_char , pub format : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_lookup_t"] [:: core :: mem :: size_of :: < rc_richpresence_lookup_t > () - 40usize] ; ["Alignment of rc_richpresence_lookup_t"] [:: core :: mem :: align_of :: < rc_richpresence_lookup_t > () - 8usize] ; ["Offset of field: rc_richpresence_lookup_t::root"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , root) - 0usize] ; ["Offset of field: rc_richpresence_lookup_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , next) - 8usize] ; ["Offset of field: rc_richpresence_lookup_t::name"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , name) - 16usize] ; ["Offset of field: rc_richpresence_lookup_t::default_label"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , default_label) - 24usize] ; ["Offset of field: rc_richpresence_lookup_t::format"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , format) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_display_part_t { pub next : * mut rc_richpresence_display_part_t , pub text : * const :: core :: ffi :: c_char , pub lookup : * mut rc_richpresence_lookup_t , pub value : * mut rc_memref_value_t , pub display_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_display_part_t"] [:: core :: mem :: size_of :: < rc_richpresence_display_part_t > () - 40usize] ; ["Alignment of rc_richpresence_display_part_t"] [:: core :: mem :: align_of :: < rc_richpresence_display_part_t > () - 8usize] ; ["Offset of field: rc_richpresence_display_part_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , next) - 0usize] ; ["Offset of field: rc_richpresence_display_part_t::text"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , text) - 8usize] ; ["Offset of field: rc_richpresence_display_part_t::lookup"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , lookup) - 16usize] ; ["Offset of field: rc_richpresence_display_part_t::value"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , value) - 24usize] ; ["Offset of field: rc_richpresence_display_part_t::display_type"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , display_type) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_display_t { pub trigger : rc_trigger_t , pub next : * mut rc_richpresence_display_t , pub display : * mut rc_richpresence_display_part_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_display_t"] [:: core :: mem :: size_of :: < rc_richpresence_display_t > () - 56usize] ; ["Alignment of rc_richpresence_display_t"] [:: core :: mem :: align_of :: < rc_richpresence_display_t > () - 8usize] ; ["Offset of field: rc_richpresence_display_t::trigger"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , trigger) - 0usize] ; ["Offset of field: rc_richpresence_display_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , next) - 40usize] ; ["Offset of field: rc_richpresence_display_t::display"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , display) - 48usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_t { pub first_display : * mut rc_richpresence_display_t , pub first_lookup : * mut rc_richpresence_lookup_t , pub memrefs : * mut rc_memref_t , pub variables : * mut rc_value_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_t"] [:: core :: mem :: size_of :: < rc_richpresence_t > () - 32usize] ; ["Alignment of rc_richpresence_t"] [:: core :: mem :: align_of :: < rc_richpresence_t > () - 8usize] ; ["Offset of field: rc_richpresence_t::first_display"] [:: core :: mem :: offset_of ! (rc_richpresence_t , first_display) - 0usize] ; ["Offset of field: rc_richpresence_t::first_lookup"] [:: core :: mem :: offset_of ! (rc_richpresence_t , first_lookup) - 8usize] ; ["Offset of field: rc_richpresence_t::memrefs"] [:: core :: mem :: offset_of ! (rc_richpresence_t , memrefs) - 16usize] ; ["Offset of field: rc_richpresence_t::variables"] [:: core :: mem :: offset_of ! (rc_richpresence_t , variables) - 24usize] ; } ; extern "C" { pub fn rc_richpresence_size (script : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_richpresence_size_lines (script : * const :: core :: ffi :: c_char , lines_read : * mut :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_richpresence (buffer : * mut :: core :: ffi :: c_void , script : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_richpresence_t ; } extern "C" { pub fn rc_evaluate_richpresence (richpresence : * mut rc_richpresence_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_update_richpresence (richpresence : * mut rc_richpresence_t , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) ; } extern "C" { pub fn rc_get_richpresence_display_string (richpresence : * mut rc_richpresence_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_richpresence (self_ : * mut rc_richpresence_t) ; } # [doc = " A block of memory for variable length data (like strings and arrays)."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_buffer_chunk_t { pub write : * mut u8 , pub end : * mut u8 , pub start : * mut u8 , pub next : * mut rc_buffer_chunk_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_buffer_chunk_t"] [:: core :: mem :: size_of :: < rc_buffer_chunk_t > () - 32usize] ; ["Alignment of rc_buffer_chunk_t"] [:: core :: mem :: align_of :: < rc_buffer_chunk_t > () - 8usize] ; ["Offset of field: rc_buffer_chunk_t::write"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , write) - 0usize] ; ["Offset of field: rc_buffer_chunk_t::end"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , end) - 8usize] ; ["Offset of field: rc_buffer_chunk_t::start"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , start) - 16usize] ; ["Offset of field: rc_buffer_chunk_t::next"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , next) - 24usize] ; } ; # [doc = " A preallocated block of memory for variable length data (like strings and arrays)."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_buffer_t { pub chunk : rc_buffer_chunk_t , pub data : [u8 ; 256usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_buffer_t"] [:: core :: mem :: size_of :: < rc_buffer_t > () - 288usize] ; ["Alignment of rc_buffer_t"] [:: core :: mem :: align_of :: < rc_buffer_t > () - 8usize] ; ["Offset of field: rc_buffer_t::chunk"] [:: core :: mem :: offset_of ! (rc_buffer_t , chunk) - 0usize] ; ["Offset of field: rc_buffer_t::data"] [:: core :: mem :: offset_of ! (rc_buffer_t , data) - 32usize] ; } ; extern "C" { pub fn rc_buffer_init (buffer : * mut rc_buffer_t) ; } extern "C" { pub fn rc_buffer_destroy (buffer : * mut rc_buffer_t) ; } extern "C" { pub fn rc_buffer_reserve (buffer : * mut rc_buffer_t , amount : usize) -> * mut u8 ; } extern "C" { pub fn rc_buffer_consume (buffer : * mut rc_buffer_t , start : * const u8 , end : * mut u8) ; } extern "C" { pub fn rc_buffer_alloc (buffer : * mut rc_buffer_t , amount : usize) -> * mut :: core :: ffi :: c_void ; } extern "C" { pub fn rc_buffer_strcpy (buffer : * mut rc_buffer_t , src : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn rc_buffer_strncpy (buffer : * mut rc_buffer_t , src : * const :: core :: ffi :: c_char , len : usize) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn rc_djb2 (input : * const :: core :: ffi :: c_char) -> u32 ; } extern "C" { pub fn rc_format_md5 (checksum : * mut :: core :: ffi :: c_char , digest : * const u8) ; } # [doc = " A constructed request to send to the retroachievements server."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_request_t { pub url : * const :: core :: ffi :: c_char , pub post_data : * const :: core :: ffi :: c_char , pub content_type : * const :: core :: ffi :: c_char , pub buffer : rc_buffer_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_request_t"] [:: core :: mem :: size_of :: < rc_api_request_t > () - 312usize] ; ["Alignment of rc_api_request_t"] [:: core :: mem :: align_of :: < rc_api_request_t > () - 8usize] ; ["Offset of field: rc_api_request_t::url"] [:: core :: mem :: offset_of ! (rc_api_request_t , url) - 0usize] ; ["Offset of field: rc_api_request_t::post_data"] [:: core :: mem :: offset_of ! (rc_api_request_t , post_data) - 8usize] ; ["Offset of field: rc_api_request_t::content_type"] [:: core :: mem :: offset_of ! (rc_api_request_t , content_type) - 16usize] ; ["Offset of field: rc_api_request_t::buffer"] [:: core :: mem :: offset_of ! (rc_api_request_t , buffer) - 24usize] ; } ; # [doc = " Common attributes for all server responses."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_response_t { pub succeeded : :: core :: ffi :: c_int , pub error_message : * const :: core :: ffi :: c_char , pub error_code : * const :: core :: ffi :: c_char , pub buffer : rc_buffer_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_response_t"] [:: core :: mem :: size_of :: < rc_api_response_t > () - 312usize] ; ["Alignment of rc_api_response_t"] [:: core :: mem :: align_of :: < rc_api_response_t > () - 8usize] ; ["Offset of field: rc_api_response_t::succeeded"] [:: core :: mem :: offset_of ! (rc_api_response_t , succeeded) - 0usize] ; ["Offset of field: rc_api_response_t::error_message"] [:: core :: mem :: offset_of ! (rc_api_response_t , error_message) - 8usize] ; ["Offset of field: rc_api_response_t::error_code"] [:: core :: mem :: offset_of ! (rc_api_response_t , error_code) - 16usize] ; ["Offset of field: rc_api_response_t::buffer"] [:: core :: mem :: offset_of ! (rc_api_response_t , buffer) - 24usize] ; } ; extern "C" { pub fn rc_api_destroy_request (request : * mut rc_api_request_t) ; } extern "C" { pub fn rc_api_set_host (hostname : * const :: core :: ffi :: c_char) ; } extern "C" { pub fn rc_api_set_image_host (hostname : * const :: core :: ffi :: c_char) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_server_response_t { pub body : * const :: core :: ffi :: c_char , pub body_length : usize , pub http_status_code : :: core :: ffi :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_server_response_t"] [:: core :: mem :: size_of :: < rc_api_server_response_t > () - 24usize] ; ["Alignment of rc_api_server_response_t"] [:: core :: mem :: align_of :: < rc_api_server_response_t > () - 8usize] ; ["Offset of field: rc_api_server_response_t::body"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , body) - 0usize] ; ["Offset of field: rc_api_server_response_t::body_length"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , body_length) - 8usize] ; ["Offset of field: rc_api_server_response_t::http_status_code"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , http_status_code) - 16usize] ; } ; pub const RC_API_SERVER_RESPONSE_CLIENT_ERROR : _bindgen_ty_9 = - 1 ; pub const RC_API_SERVER_RESPONSE_RETRYABLE_CLIENT_ERROR : _bindgen_ty_9 = - 2 ; pub type _bindgen_ty_9 = :: core :: ffi :: c_int ; pub type clock_t = __clock_t ; pub type time_t = __time_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct tm { pub tm_sec : :: core :: ffi :: c_int , pub tm_min : :: core :: ffi :: c_int , pub tm_hour : :: core :: ffi :: c_int , pub tm_mday : :: core :: ffi :: c_int , pub tm_mon : :: core :: ffi :: c_int , pub tm_year : :: core :: ffi :: c_int , pub tm_wday : :: core :: ffi :: c_int , pub tm_yday : :: core :: ffi :: c_int , pub tm_isdst : :: core :: ffi :: c_int , pub tm_gmtoff : :: core :: ffi :: c_long , pub tm_zone : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of tm"] [:: core :: mem :: size_of :: < tm > () - 56usize] ; ["Alignment of tm"] [:: core :: mem :: align_of :: < tm > () - 8usize] ; ["Offset of field: tm::tm_sec"] [:: core :: mem :: offset_of ! (tm , tm_sec) - 0usize] ; ["Offset of field: tm::tm_min"] [:: core :: mem :: offset_of ! (tm , tm_min) - 4usize] ; ["Offset of field: tm::tm_hour"] [:: core :: mem :: offset_of ! (tm , tm_hour) - 8usize] ; ["Offset of field: tm::tm_mday"] [:: core :: mem :: offset_of ! (tm , tm_mday) - 12usize] ; ["Offset of field: tm::tm_mon"] [:: core :: mem :: offset_of ! (tm , tm_mon) - 16usize] ; ["Offset of field: tm::tm_year"] [:: core :: mem :: offset_of ! (tm , tm_year) - 20usize] ; ["Offset of field: tm::tm_wday"] [:: core :: mem :: offset_of ! (tm , tm_wday) - 24usize] ; ["Offset of field: tm::tm_yday"] [:: core :: mem :: offset_of ! (tm , tm_yday) - 28usize] ; ["Offset of field: tm::tm_isdst"] [:: core :: mem :: offset_of ! (tm , tm_isdst) - 32usize] ; ["Offset of field: tm::tm_gmtoff"] [:: core :: mem :: offset_of ! (tm , tm_gmtoff) - 40usize] ; ["Offset of field: tm::tm_zone"] [:: core :: mem :: offset_of ! (tm , tm_zone) - 48usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct timespec { pub tv_sec : __time_t , pub tv_nsec : __syscall_slong_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of timespec"] [:: core :: mem :: size_of :: < timespec > () - 16usize] ; ["Alignment of timespec"] [:: core :: mem :: align_of :: < timespec > () - 8usize] ; ["Offset of field: timespec::tv_sec"] [:: core :: mem :: offset_of ! (timespec , tv_sec) - 0usize] ; ["Offset of field: timespec::tv_nsec"] [:: core :: mem :: offset_of ! (timespec , tv_nsec) - 8usize] ; } ; pub type clockid_t = __clockid_t ; pub type timer_t = __timer_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct itimerspec { pub it_interval : timespec , pub it_value : timespec , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of itimerspec"] [:: core :: mem :: size_of :: < itimerspec > () - 32usize] ; ["Alignment of itimerspec"] [:: core :: mem :: align_of :: < itimerspec > () - 8usize] ; ["Offset of field: itimerspec::it_interval"] [:: core :: mem :: offset_of ! (itimerspec , it_interval) - 0usize] ; ["Offset of field: itimerspec::it_value"] [:: core :: mem :: offset_of ! (itimerspec , it_value) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct sigevent { _unused : [u8 ; 0] , } pub type pid_t = __pid_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __locale_struct { pub __locales : [* mut __locale_data ; 13usize] , pub __ctype_b : * const :: core :: ffi :: c_ushort , pub __ctype_tolower : * const :: core :: ffi :: c_int , pub __ctype_toupper : * const :: core :: ffi :: c_int , pub __names : [* const :: core :: ffi :: c_char ; 13usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __locale_struct"] [:: core :: mem :: size_of :: < __locale_struct > () - 232usize] ; ["Alignment of __locale_struct"] [:: core :: mem :: align_of :: < __locale_struct > () - 8usize] ; ["Offset of field: __locale_struct::__locales"] [:: core :: mem :: offset_of ! (__locale_struct , __locales) - 0usize] ; ["Offset of field: __locale_struct::__ctype_b"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_b) - 104usize] ; ["Offset of field: __locale_struct::__ctype_tolower"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_tolower) - 112usize] ; ["Offset of field: __locale_struct::__ctype_toupper"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_toupper) - 120usize] ; ["Offset of field: __locale_struct::__names"] [:: core :: mem :: offset_of ! (__locale_struct , __names) - 128usize] ; } ; pub type __locale_t = * mut __locale_struct ; pub type locale_t = __locale_t ; extern "C" { pub fn clock () -> clock_t ; } extern "C" { pub fn time (__timer : * mut time_t) -> time_t ; } extern "C" { pub fn difftime (__time1 : time_t , __time0 : time_t) -> f64 ; } extern "C" { pub fn mktime (__tp : * mut tm) -> time_t ; } extern "C" { pub fn strftime (__s : * mut :: core :: ffi :: c_char , __maxsize : usize , __format : * const :: core :: ffi :: c_char , __tp : * const tm) -> usize ; } extern "C" { pub fn strftime_l (__s : * mut :: core :: ffi :: c_char , __maxsize : usize , __format : * const :: core :: ffi :: c_char , __tp : * const tm , __loc : locale_t) -> usize ; } extern "C" { pub fn gmtime (__timer : * const time_t) -> * mut tm ; } extern "C" { pub fn localtime (__timer : * const time_t) -> * mut tm ; } extern "C" { pub fn gmtime_r (__timer : * const time_t , __tp : * mut tm) -> * mut tm ; } extern "C" { pub fn localtime_r (__timer : * const time_t , __tp : * mut tm) -> * mut tm ; } extern "C" { pub fn asctime (__tp : * const tm) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn ctime (__timer : * const time_t) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn asctime_r (__tp : * const tm , __buf : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn ctime_r (__timer : * const time_t , __buf : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub static mut __tzname : [* mut :: core :: ffi :: c_char ; 2usize] ; } extern "C" { pub static mut __daylight : :: core :: ffi :: c_int ; } extern "C" { pub static mut __timezone : :: core :: ffi :: c_long ; } extern "C" { pub static mut tzname : [* mut :: core :: ffi :: c_char ; 2usize] ; } extern "C" { pub fn tzset () ; } extern "C" { pub static mut daylight : :: core :: ffi :: c_int ; } extern "C" { pub static mut timezone : :: core :: ffi :: c_long ; } extern "C" { pub fn timegm (__tp : * mut tm) -> time_t ; } extern "C" { pub fn timelocal (__tp : * mut tm) -> time_t ; } extern "C" { pub fn dysize (__year : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn nanosleep (__requested_time : * const timespec , __remaining : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_getres (__clock_id : clockid_t , __res : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_gettime (__clock_id : clockid_t , __tp : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_settime (__clock_id : clockid_t , __tp : * const timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_nanosleep (__clock_id : clockid_t , __flags : :: core :: ffi :: c_int , __req : * const timespec , __rem : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_getcpuclockid (__pid : pid_t , __clock_id : * mut clockid_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_create (__clock_id : clockid_t , __evp : * mut sigevent , __timerid : * mut timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_delete (__timerid : timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_settime (__timerid : timer_t , __flags : :: core :: ffi :: c_int , __value : * const itimerspec , __ovalue : * mut itimerspec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_gettime (__timerid : timer_t , __value : * mut itimerspec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_getoverrun (__timerid : timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timespec_get (__ts : * mut timespec , __base : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } # [doc = " API parameters for a login request.\n If both password and api_token are provided, api_token will be ignored."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_login_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub password : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_login_request_t"] [:: core :: mem :: size_of :: < rc_api_login_request_t > () - 24usize] ; ["Alignment of rc_api_login_request_t"] [:: core :: mem :: align_of :: < rc_api_login_request_t > () - 8usize] ; ["Offset of field: rc_api_login_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , username) - 0usize] ; ["Offset of field: rc_api_login_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_login_request_t::password"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , password) - 16usize] ; } ; # [doc = " Response data for a login request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_login_response_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub score : u32 , pub score_softcore : u32 , pub num_unread_messages : u32 , pub display_name : * const :: core :: ffi :: c_char , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_login_response_t"] [:: core :: mem :: size_of :: < rc_api_login_response_t > () - 352usize] ; ["Alignment of rc_api_login_response_t"] [:: core :: mem :: align_of :: < rc_api_login_response_t > () - 8usize] ; ["Offset of field: rc_api_login_response_t::username"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , username) - 0usize] ; ["Offset of field: rc_api_login_response_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , api_token) - 8usize] ; ["Offset of field: rc_api_login_response_t::score"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , score) - 16usize] ; ["Offset of field: rc_api_login_response_t::score_softcore"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , score_softcore) - 20usize] ; ["Offset of field: rc_api_login_response_t::num_unread_messages"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , num_unread_messages) - 24usize] ; ["Offset of field: rc_api_login_response_t::display_name"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , display_name) - 32usize] ; ["Offset of field: rc_api_login_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , response) - 40usize] ; } ; extern "C" { pub fn rc_api_init_login_request (request : * mut rc_api_request_t , api_params : * const rc_api_login_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_login_response (response : * mut rc_api_login_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_login_server_response (response : * mut rc_api_login_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_login_response (response : * mut rc_api_login_response_t) ; } # [doc = " API parameters for a start session request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_start_session_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub game_hash : * const :: core :: ffi :: c_char , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_start_session_request_t"] [:: core :: mem :: size_of :: < rc_api_start_session_request_t > () - 40usize] ; ["Alignment of rc_api_start_session_request_t"] [:: core :: mem :: align_of :: < rc_api_start_session_request_t > () - 8usize] ; ["Offset of field: rc_api_start_session_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , username) - 0usize] ; ["Offset of field: rc_api_start_session_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_start_session_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_start_session_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_start_session_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , hardcore) - 32usize] ; } ; # [doc = " Response data for an achievement unlock."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_unlock_entry_t { pub achievement_id : u32 , pub when : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_unlock_entry_t"] [:: core :: mem :: size_of :: < rc_api_unlock_entry_t > () - 16usize] ; ["Alignment of rc_api_unlock_entry_t"] [:: core :: mem :: align_of :: < rc_api_unlock_entry_t > () - 8usize] ; ["Offset of field: rc_api_unlock_entry_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_unlock_entry_t , achievement_id) - 0usize] ; ["Offset of field: rc_api_unlock_entry_t::when"] [:: core :: mem :: offset_of ! (rc_api_unlock_entry_t , when) - 8usize] ; } ; # [doc = " Response data for a start session request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_start_session_response_t { pub hardcore_unlocks : * mut rc_api_unlock_entry_t , pub unlocks : * mut rc_api_unlock_entry_t , pub num_hardcore_unlocks : u32 , pub num_unlocks : u32 , pub server_now : time_t , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_start_session_response_t"] [:: core :: mem :: size_of :: < rc_api_start_session_response_t > () - 344usize] ; ["Alignment of rc_api_start_session_response_t"] [:: core :: mem :: align_of :: < rc_api_start_session_response_t > () - 8usize] ; ["Offset of field: rc_api_start_session_response_t::hardcore_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , hardcore_unlocks) - 0usize] ; ["Offset of field: rc_api_start_session_response_t::unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , unlocks) - 8usize] ; ["Offset of field: rc_api_start_session_response_t::num_hardcore_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , num_hardcore_unlocks) - 16usize] ; ["Offset of field: rc_api_start_session_response_t::num_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , num_unlocks) - 20usize] ; ["Offset of field: rc_api_start_session_response_t::server_now"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , server_now) - 24usize] ; ["Offset of field: rc_api_start_session_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_start_session_request (request : * mut rc_api_request_t , api_params : * const rc_api_start_session_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_start_session_response (response : * mut rc_api_start_session_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_start_session_server_response (response : * mut rc_api_start_session_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_start_session_response (response : * mut rc_api_start_session_response_t) ; } # [doc = " API parameters for a fetch user unlocks request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_user_unlocks_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_user_unlocks_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_user_unlocks_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_user_unlocks_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_user_unlocks_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , hardcore) - 20usize] ; } ; # [doc = " Response data for a fetch user unlocks request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_user_unlocks_response_t { pub achievement_ids : * mut u32 , pub num_achievement_ids : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_user_unlocks_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_user_unlocks_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_user_unlocks_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_user_unlocks_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::achievement_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , achievement_ids) - 0usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::num_achievement_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , num_achievement_ids) - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_user_unlocks_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_user_unlocks_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_user_unlocks_response (response : * mut rc_api_fetch_user_unlocks_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_user_unlocks_server_response (response : * mut rc_api_fetch_user_unlocks_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_user_unlocks_response (response : * mut rc_api_fetch_user_unlocks_response_t) ; } # [doc = " API parameters for a fetch code notes request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_code_notes_request_t { pub game_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_code_notes_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_code_notes_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_code_notes_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_code_notes_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_code_notes_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_request_t , game_id) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_code_note_t { pub address : u32 , pub author : * const :: core :: ffi :: c_char , pub note : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_code_note_t"] [:: core :: mem :: size_of :: < rc_api_code_note_t > () - 24usize] ; ["Alignment of rc_api_code_note_t"] [:: core :: mem :: align_of :: < rc_api_code_note_t > () - 8usize] ; ["Offset of field: rc_api_code_note_t::address"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , address) - 0usize] ; ["Offset of field: rc_api_code_note_t::author"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , author) - 8usize] ; ["Offset of field: rc_api_code_note_t::note"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , note) - 16usize] ; } ; # [doc = " Response data for a fetch code notes request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_code_notes_response_t { pub notes : * mut rc_api_code_note_t , pub num_notes : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_code_notes_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_code_notes_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_code_notes_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_code_notes_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::notes"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , notes) - 0usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::num_notes"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , num_notes) - 8usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_code_notes_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_code_notes_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_code_notes_response (response : * mut rc_api_fetch_code_notes_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_code_notes_server_response (response : * mut rc_api_fetch_code_notes_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_code_notes_response (response : * mut rc_api_fetch_code_notes_response_t) ; } # [doc = " API parameters for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_code_note_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub address : u32 , pub note : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_code_note_request_t"] [:: core :: mem :: size_of :: < rc_api_update_code_note_request_t > () - 32usize] ; ["Alignment of rc_api_update_code_note_request_t"] [:: core :: mem :: align_of :: < rc_api_update_code_note_request_t > () - 8usize] ; ["Offset of field: rc_api_update_code_note_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_code_note_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_code_note_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_update_code_note_request_t::address"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , address) - 20usize] ; ["Offset of field: rc_api_update_code_note_request_t::note"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , note) - 24usize] ; } ; # [doc = " Response data for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_code_note_response_t { pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_code_note_response_t"] [:: core :: mem :: size_of :: < rc_api_update_code_note_response_t > () - 312usize] ; ["Alignment of rc_api_update_code_note_response_t"] [:: core :: mem :: align_of :: < rc_api_update_code_note_response_t > () - 8usize] ; ["Offset of field: rc_api_update_code_note_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_response_t , response) - 0usize] ; } ; extern "C" { pub fn rc_api_init_update_code_note_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_code_note_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_code_note_response (response : * mut rc_api_update_code_note_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_code_note_server_response (response : * mut rc_api_update_code_note_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_code_note_response (response : * mut rc_api_update_code_note_response_t) ; } # [doc = " API parameters for an update achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_achievement_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub game_id : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub badge : * const :: core :: ffi :: c_char , pub trigger : * const :: core :: ffi :: c_char , pub points : u32 , pub category : u32 , pub type_ : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_achievement_request_t"] [:: core :: mem :: size_of :: < rc_api_update_achievement_request_t > () - 72usize] ; ["Alignment of rc_api_update_achievement_request_t"] [:: core :: mem :: align_of :: < rc_api_update_achievement_request_t > () - 8usize] ; ["Offset of field: rc_api_update_achievement_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_achievement_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_achievement_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_update_achievement_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , game_id) - 20usize] ; ["Offset of field: rc_api_update_achievement_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , title) - 24usize] ; ["Offset of field: rc_api_update_achievement_request_t::description"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , description) - 32usize] ; ["Offset of field: rc_api_update_achievement_request_t::badge"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , badge) - 40usize] ; ["Offset of field: rc_api_update_achievement_request_t::trigger"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , trigger) - 48usize] ; ["Offset of field: rc_api_update_achievement_request_t::points"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , points) - 56usize] ; ["Offset of field: rc_api_update_achievement_request_t::category"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , category) - 60usize] ; ["Offset of field: rc_api_update_achievement_request_t::type_"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , type_) - 64usize] ; } ; # [doc = " Response data for an update achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_achievement_response_t { pub achievement_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_achievement_response_t"] [:: core :: mem :: size_of :: < rc_api_update_achievement_response_t > () - 320usize] ; ["Alignment of rc_api_update_achievement_response_t"] [:: core :: mem :: align_of :: < rc_api_update_achievement_response_t > () - 8usize] ; ["Offset of field: rc_api_update_achievement_response_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_response_t , achievement_id) - 0usize] ; ["Offset of field: rc_api_update_achievement_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_update_achievement_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_achievement_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_achievement_response (response : * mut rc_api_update_achievement_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_achievement_server_response (response : * mut rc_api_update_achievement_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_achievement_response (response : * mut rc_api_update_achievement_response_t) ; } # [doc = " API parameters for an update leaderboard request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_leaderboard_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub leaderboard_id : u32 , pub game_id : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub start_trigger : * const :: core :: ffi :: c_char , pub submit_trigger : * const :: core :: ffi :: c_char , pub cancel_trigger : * const :: core :: ffi :: c_char , pub value_definition : * const :: core :: ffi :: c_char , pub format : * const :: core :: ffi :: c_char , pub lower_is_better : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_leaderboard_request_t"] [:: core :: mem :: size_of :: < rc_api_update_leaderboard_request_t > () - 88usize] ; ["Alignment of rc_api_update_leaderboard_request_t"] [:: core :: mem :: align_of :: < rc_api_update_leaderboard_request_t > () - 8usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , leaderboard_id) - 16usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , game_id) - 20usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , title) - 24usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::description"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , description) - 32usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::start_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , start_trigger) - 40usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::submit_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , submit_trigger) - 48usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::cancel_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , cancel_trigger) - 56usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::value_definition"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , value_definition) - 64usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::format"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , format) - 72usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , lower_is_better) - 80usize] ; } ; # [doc = " Response data for an update leaderboard request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_leaderboard_response_t { pub leaderboard_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_leaderboard_response_t"] [:: core :: mem :: size_of :: < rc_api_update_leaderboard_response_t > () - 320usize] ; ["Alignment of rc_api_update_leaderboard_response_t"] [:: core :: mem :: align_of :: < rc_api_update_leaderboard_response_t > () - 8usize] ; ["Offset of field: rc_api_update_leaderboard_response_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_response_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_api_update_leaderboard_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_update_leaderboard_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_leaderboard_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_leaderboard_response (response : * mut rc_api_update_leaderboard_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_leaderboard_server_response (response : * mut rc_api_update_leaderboard_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_leaderboard_response (response : * mut rc_api_update_leaderboard_response_t) ; } # [doc = " API parameters for a fetch badge range request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_badge_range_request_t { pub unused : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_badge_range_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_badge_range_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_badge_range_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_badge_range_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_badge_range_request_t::unused"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_request_t , unused) - 0usize] ; } ; # [doc = " Response data for a fetch badge range request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_badge_range_response_t { pub first_badge_id : u32 , pub next_badge_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_badge_range_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_badge_range_response_t > () - 320usize] ; ["Alignment of rc_api_fetch_badge_range_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_badge_range_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::first_badge_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , first_badge_id) - 0usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::next_badge_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , next_badge_id) - 4usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_fetch_badge_range_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_badge_range_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_badge_range_response (response : * mut rc_api_fetch_badge_range_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_badge_range_server_response (response : * mut rc_api_fetch_badge_range_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_badge_range_response (response : * mut rc_api_fetch_badge_range_response_t) ; } # [doc = " API parameters for an add game hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_add_game_hash_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub hash : * const :: core :: ffi :: c_char , pub hash_description : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_add_game_hash_request_t"] [:: core :: mem :: size_of :: < rc_api_add_game_hash_request_t > () - 48usize] ; ["Alignment of rc_api_add_game_hash_request_t"] [:: core :: mem :: align_of :: < rc_api_add_game_hash_request_t > () - 8usize] ; ["Offset of field: rc_api_add_game_hash_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , username) - 0usize] ; ["Offset of field: rc_api_add_game_hash_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_add_game_hash_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_add_game_hash_request_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , console_id) - 20usize] ; ["Offset of field: rc_api_add_game_hash_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , title) - 24usize] ; ["Offset of field: rc_api_add_game_hash_request_t::hash"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , hash) - 32usize] ; ["Offset of field: rc_api_add_game_hash_request_t::hash_description"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , hash_description) - 40usize] ; } ; # [doc = " Response data for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_add_game_hash_response_t { pub game_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_add_game_hash_response_t"] [:: core :: mem :: size_of :: < rc_api_add_game_hash_response_t > () - 320usize] ; ["Alignment of rc_api_add_game_hash_response_t"] [:: core :: mem :: align_of :: < rc_api_add_game_hash_response_t > () - 8usize] ; ["Offset of field: rc_api_add_game_hash_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_response_t , game_id) - 0usize] ; ["Offset of field: rc_api_add_game_hash_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_add_game_hash_request (request : * mut rc_api_request_t , api_params : * const rc_api_add_game_hash_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_add_game_hash_response (response : * mut rc_api_add_game_hash_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_add_game_hash_server_response (response : * mut rc_api_add_game_hash_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_add_game_hash_response (response : * mut rc_api_add_game_hash_response_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_t { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_menu_item_t { pub label : * const :: core :: ffi :: c_char , pub id : u32 , pub checked : u8 , pub enabled : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_menu_item_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_menu_item_t > () - 16usize] ; ["Alignment of rc_client_raintegration_menu_item_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_menu_item_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::label"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , label) - 0usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::id"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , id) - 8usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::checked"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , checked) - 12usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::enabled"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , enabled) - 13usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_menu_t { pub items : * mut rc_client_raintegration_menu_item_t , pub num_items : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_menu_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_menu_t > () - 16usize] ; ["Alignment of rc_client_raintegration_menu_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_menu_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_menu_t::items"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_t , items) - 0usize] ; ["Offset of field: rc_client_raintegration_menu_t::num_items"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_t , num_items) - 8usize] ; } ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_NONE : _bindgen_ty_10 = 0 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_PUBLISHED : _bindgen_ty_10 = 1 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_LOCAL : _bindgen_ty_10 = 2 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_MODIFIED : _bindgen_ty_10 = 3 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_INSECURE : _bindgen_ty_10 = 4 ; pub type _bindgen_ty_10 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_RAINTEGRATION_EVENT_TYPE_NONE : _bindgen_ty_11 = 0 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_MENUITEM_CHECKED_CHANGED : _bindgen_ty_11 = 1 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_HARDCORE_CHANGED : _bindgen_ty_11 = 2 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_PAUSE : _bindgen_ty_11 = 3 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_MENU_CHANGED : _bindgen_ty_11 = 4 ; pub type _bindgen_ty_11 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_event_t { pub type_ : u32 , pub menu_item : * const rc_client_raintegration_menu_item_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_event_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_event_t > () - 16usize] ; ["Alignment of rc_client_raintegration_event_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_event_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_event_t::type_"] [:: core :: mem :: offset_of ! (rc_client_raintegration_event_t , type_) - 0usize] ; ["Offset of field: rc_client_raintegration_event_t::menu_item"] [:: core :: mem :: offset_of ! (rc_client_raintegration_event_t , menu_item) - 8usize] ; } ; pub type rc_client_raintegration_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (event : * const rc_client_raintegration_event_t , client : * mut rc_client_t) > ; pub type rc_client_raintegration_write_memory_func_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , buffer : * mut u8 , num_bytes : u32 , client : * mut rc_client_t) > ; pub type rc_client_raintegration_get_game_name_func_t = :: core :: option :: Option < unsafe extern "C" fn (buffer : * mut :: core :: ffi :: c_char , buffer_size : u32 , client : * mut rc_client_t) > ; # [doc = " API parameters for a fetch achievement info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_achievement_info_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub first_entry : u32 , pub count : u32 , pub friends_only : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_achievement_info_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_achievement_info_request_t > () - 32usize] ; ["Alignment of rc_api_fetch_achievement_info_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_achievement_info_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::first_entry"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , first_entry) - 20usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::count"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , count) - 24usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::friends_only"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , friends_only) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_achievement_awarded_entry_t { pub username : * const :: core :: ffi :: c_char , pub awarded : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_achievement_awarded_entry_t"] [:: core :: mem :: size_of :: < rc_api_achievement_awarded_entry_t > () - 16usize] ; ["Alignment of rc_api_achievement_awarded_entry_t"] [:: core :: mem :: align_of :: < rc_api_achievement_awarded_entry_t > () - 8usize] ; ["Offset of field: rc_api_achievement_awarded_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_achievement_awarded_entry_t , username) - 0usize] ; ["Offset of field: rc_api_achievement_awarded_entry_t::awarded"] [:: core :: mem :: offset_of ! (rc_api_achievement_awarded_entry_t , awarded) - 8usize] ; } ; # [doc = " Response data for a fetch achievement info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_achievement_info_response_t { pub id : u32 , pub game_id : u32 , pub num_awarded : u32 , pub num_players : u32 , pub recently_awarded : * mut rc_api_achievement_awarded_entry_t , pub num_recently_awarded : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_achievement_info_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_achievement_info_response_t > () - 344usize] ; ["Alignment of rc_api_fetch_achievement_info_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_achievement_info_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , game_id) - 4usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_awarded) - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_players"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_players) - 12usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::recently_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , recently_awarded) - 16usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_recently_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_recently_awarded) - 24usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_fetch_achievement_info_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_achievement_info_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_achievement_info_response (response : * mut rc_api_fetch_achievement_info_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_achievement_info_server_response (response : * mut rc_api_fetch_achievement_info_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_achievement_info_response (response : * mut rc_api_fetch_achievement_info_response_t) ; } # [doc = " API parameters for a fetch leaderboard info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_leaderboard_info_request_t { pub leaderboard_id : u32 , pub count : u32 , pub first_entry : u32 , pub username : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_leaderboard_info_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_leaderboard_info_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_leaderboard_info_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_leaderboard_info_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::count"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , count) - 4usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::first_entry"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , first_entry) - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , username) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_lboard_info_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub index : u32 , pub score : i32 , pub submitted : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_lboard_info_entry_t"] [:: core :: mem :: size_of :: < rc_api_lboard_info_entry_t > () - 32usize] ; ["Alignment of rc_api_lboard_info_entry_t"] [:: core :: mem :: align_of :: < rc_api_lboard_info_entry_t > () - 8usize] ; ["Offset of field: rc_api_lboard_info_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , username) - 0usize] ; ["Offset of field: rc_api_lboard_info_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , rank) - 8usize] ; ["Offset of field: rc_api_lboard_info_entry_t::index"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , index) - 12usize] ; ["Offset of field: rc_api_lboard_info_entry_t::score"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , score) - 16usize] ; ["Offset of field: rc_api_lboard_info_entry_t::submitted"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , submitted) - 24usize] ; } ; # [doc = " Response data for a fetch leaderboard info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_leaderboard_info_response_t { pub id : u32 , pub format : :: core :: ffi :: c_int , pub lower_is_better : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub game_id : u32 , pub author : * const :: core :: ffi :: c_char , pub created : time_t , pub updated : time_t , pub entries : * mut rc_api_lboard_info_entry_t , pub num_entries : u32 , pub total_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_leaderboard_info_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_leaderboard_info_response_t > () - 400usize] ; ["Alignment of rc_api_fetch_leaderboard_info_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_leaderboard_info_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::format"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , format) - 4usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , lower_is_better) - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::title"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , title) - 16usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::description"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , description) - 24usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::definition"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , definition) - 32usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , game_id) - 40usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::author"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , author) - 48usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::created"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , created) - 56usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::updated"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , updated) - 64usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , entries) - 72usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , num_entries) - 80usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::total_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , total_entries) - 84usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , response) - 88usize] ; } ; extern "C" { pub fn rc_api_init_fetch_leaderboard_info_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_leaderboard_info_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_leaderboard_info_response (response : * mut rc_api_fetch_leaderboard_info_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_leaderboard_info_server_response (response : * mut rc_api_fetch_leaderboard_info_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_leaderboard_info_response (response : * mut rc_api_fetch_leaderboard_info_response_t) ; } # [doc = " API parameters for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_games_list_request_t { pub console_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_games_list_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_games_list_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_games_list_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_games_list_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_games_list_request_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_request_t , console_id) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_game_list_entry_t { pub id : u32 , pub name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_game_list_entry_t"] [:: core :: mem :: size_of :: < rc_api_game_list_entry_t > () - 16usize] ; ["Alignment of rc_api_game_list_entry_t"] [:: core :: mem :: align_of :: < rc_api_game_list_entry_t > () - 8usize] ; ["Offset of field: rc_api_game_list_entry_t::id"] [:: core :: mem :: offset_of ! (rc_api_game_list_entry_t , id) - 0usize] ; ["Offset of field: rc_api_game_list_entry_t::name"] [:: core :: mem :: offset_of ! (rc_api_game_list_entry_t , name) - 8usize] ; } ; # [doc = " Response data for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_games_list_response_t { pub entries : * mut rc_api_game_list_entry_t , pub num_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_games_list_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_games_list_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_games_list_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_games_list_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , entries) - 0usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , num_entries) - 8usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_games_list_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_games_list_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_games_list_response (response : * mut rc_api_fetch_games_list_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_games_list_server_response (response : * mut rc_api_fetch_games_list_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_games_list_response (response : * mut rc_api_fetch_games_list_response_t) ; } # [doc = " API parameters for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_titles_request_t { pub game_ids : * const u32 , pub num_game_ids : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_titles_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_titles_request_t > () - 16usize] ; ["Alignment of rc_api_fetch_game_titles_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_titles_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_request_t::game_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_request_t , game_ids) - 0usize] ; ["Offset of field: rc_api_fetch_game_titles_request_t::num_game_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_request_t , num_game_ids) - 8usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_game_title_entry_t { pub id : u32 , pub title : * const :: core :: ffi :: c_char , pub image_name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_game_title_entry_t"] [:: core :: mem :: size_of :: < rc_api_game_title_entry_t > () - 24usize] ; ["Alignment of rc_api_game_title_entry_t"] [:: core :: mem :: align_of :: < rc_api_game_title_entry_t > () - 8usize] ; ["Offset of field: rc_api_game_title_entry_t::id"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , id) - 0usize] ; ["Offset of field: rc_api_game_title_entry_t::title"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , title) - 8usize] ; ["Offset of field: rc_api_game_title_entry_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , image_name) - 16usize] ; } ; # [doc = " Response data for a fetch games title request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_titles_response_t { pub entries : * mut rc_api_game_title_entry_t , pub num_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_titles_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_titles_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_game_titles_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_titles_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , entries) - 0usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , num_entries) - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_game_titles_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_game_titles_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_titles_server_response (response : * mut rc_api_fetch_game_titles_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_game_titles_response (response : * mut rc_api_fetch_game_titles_response_t) ; } pub type __gnuc_va_list = __builtin_va_list ; # [repr (C)] # [derive (Copy , Clone)] pub struct __mbstate_t { pub __count : :: core :: ffi :: c_int , pub __value : __mbstate_t__bindgen_ty_1 , } # [repr (C)] # [derive (Copy , Clone)] pub union __mbstate_t__bindgen_ty_1 { pub __wch : :: core :: ffi :: c_uint , pub __wchb : [:: core :: ffi :: c_char ; 4usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __mbstate_t__bindgen_ty_1"] [:: core :: mem :: size_of :: < __mbstate_t__bindgen_ty_1 > () - 4usize] ; ["Alignment of __mbstate_t__bindgen_ty_1"] [:: core :: mem :: align_of :: < __mbstate_t__bindgen_ty_1 > () - 4usize] ; ["Offset of field: __mbstate_t__bindgen_ty_1::__wch"] [:: core :: mem :: offset_of ! (__mbstate_t__bindgen_ty_1 , __wch) - 0usize] ; ["Offset of field: __mbstate_t__bindgen_ty_1::__wchb"] [:: core :: mem :: offset_of ! (__mbstate_t__bindgen_ty_1 , __wchb) - 0usize] ; } ; impl :: core :: fmt :: Debug for __mbstate_t__bindgen_ty_1 { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "__mbstate_t__bindgen_ty_1 {{ union }}") } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __mbstate_t"] [:: core :: mem :: size_of :: < __mbstate_t > () - 8usize] ; ["Alignment of __mbstate_t"] [:: core :: mem :: align_of :: < __mbstate_t > () - 4usize] ; ["Offset of field: __mbstate_t::__count"] [:: core :: mem :: offset_of ! (__mbstate_t , __count) - 0usize] ; ["Offset of field: __mbstate_t::__value"] [:: core :: mem :: offset_of ! (__mbstate_t , __value) - 4usize] ; } ; impl :: core :: fmt :: Debug for __mbstate_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "__mbstate_t {{ __count: {:?}, __value: {:?} }}" , self . __count , self . __value) } } # [repr (C)] # [derive (Copy , Clone)] pub struct _G_fpos_t { pub __pos : __off_t , pub __state : __mbstate_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _G_fpos_t"] [:: core :: mem :: size_of :: < _G_fpos_t > () - 16usize] ; ["Alignment of _G_fpos_t"] [:: core :: mem :: align_of :: < _G_fpos_t > () - 8usize] ; ["Offset of field: _G_fpos_t::__pos"] [:: core :: mem :: offset_of ! (_G_fpos_t , __pos) - 0usize] ; ["Offset of field: _G_fpos_t::__state"] [:: core :: mem :: offset_of ! (_G_fpos_t , __state) - 8usize] ; } ; impl :: core :: fmt :: Debug for _G_fpos_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "_G_fpos_t {{ __pos: {:?}, __state: {:?} }}" , self . __pos , self . __state) } } pub type __fpos_t = _G_fpos_t ; # [repr (C)] # [derive (Copy , Clone)] pub struct _G_fpos64_t { pub __pos : __off64_t , pub __state : __mbstate_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _G_fpos64_t"] [:: core :: mem :: size_of :: < _G_fpos64_t > () - 16usize] ; ["Alignment of _G_fpos64_t"] [:: core :: mem :: align_of :: < _G_fpos64_t > () - 8usize] ; ["Offset of field: _G_fpos64_t::__pos"] [:: core :: mem :: offset_of ! (_G_fpos64_t , __pos) - 0usize] ; ["Offset of field: _G_fpos64_t::__state"] [:: core :: mem :: offset_of ! (_G_fpos64_t , __state) - 8usize] ; } ; impl :: core :: fmt :: Debug for _G_fpos64_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "_G_fpos64_t {{ __pos: {:?}, __state: {:?} }}" , self . __pos , self . __state) } } pub type __fpos64_t = _G_fpos64_t ; pub type __FILE = _IO_FILE ; pub type FILE = _IO_FILE ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_marker { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_codecvt { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_wide_data { _unused : [u8 ; 0] , } pub type _IO_lock_t = :: core :: ffi :: c_void ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_FILE { pub _flags : :: core :: ffi :: c_int , pub _IO_read_ptr : * mut :: core :: ffi :: c_char , pub _IO_read_end : * mut :: core :: ffi :: c_char , pub _IO_read_base : * mut :: core :: ffi :: c_char , pub _IO_write_base : * mut :: core :: ffi :: c_char , pub _IO_write_ptr : * mut :: core :: ffi :: c_char , pub _IO_write_end : * mut :: core :: ffi :: c_char , pub _IO_buf_base : * mut :: core :: ffi :: c_char , pub _IO_buf_end : * mut :: core :: ffi :: c_char , pub _IO_save_base : * mut :: core :: ffi :: c_char , pub _IO_backup_base : * mut :: core :: ffi :: c_char , pub _IO_save_end : * mut :: core :: ffi :: c_char , pub _markers : * mut _IO_marker , pub _chain : * mut _IO_FILE , pub _fileno : :: core :: ffi :: c_int , pub _bitfield_align_1 : [u32 ; 0] , pub _bitfield_1 : __BindgenBitfieldUnit < [u8 ; 3usize] > , pub _short_backupbuf : [:: core :: ffi :: c_char ; 1usize] , pub _old_offset : __off_t , pub _cur_column : :: core :: ffi :: c_ushort , pub _vtable_offset : :: core :: ffi :: c_schar , pub _shortbuf : [:: core :: ffi :: c_char ; 1usize] , pub _lock : * mut _IO_lock_t , pub _offset : __off64_t , pub _codecvt : * mut _IO_codecvt , pub _wide_data : * mut _IO_wide_data , pub _freeres_list : * mut _IO_FILE , pub _freeres_buf : * mut :: core :: ffi :: c_void , pub _prevchain : * mut * mut _IO_FILE , pub _mode : :: core :: ffi :: c_int , pub _unused3 : :: core :: ffi :: c_int , pub _total_written : __uint64_t , pub _unused2 : [:: core :: ffi :: c_char ; 8usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _IO_FILE"] [:: core :: mem :: size_of :: < _IO_FILE > () - 216usize] ; ["Alignment of _IO_FILE"] [:: core :: mem :: align_of :: < _IO_FILE > () - 8usize] ; ["Offset of field: _IO_FILE::_flags"] [:: core :: mem :: offset_of ! (_IO_FILE , _flags) - 0usize] ; ["Offset of field: _IO_FILE::_IO_read_ptr"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_ptr) - 8usize] ; ["Offset of field: _IO_FILE::_IO_read_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_end) - 16usize] ; ["Offset of field: _IO_FILE::_IO_read_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_base) - 24usize] ; ["Offset of field: _IO_FILE::_IO_write_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_base) - 32usize] ; ["Offset of field: _IO_FILE::_IO_write_ptr"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_ptr) - 40usize] ; ["Offset of field: _IO_FILE::_IO_write_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_end) - 48usize] ; ["Offset of field: _IO_FILE::_IO_buf_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_buf_base) - 56usize] ; ["Offset of field: _IO_FILE::_IO_buf_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_buf_end) - 64usize] ; ["Offset of field: _IO_FILE::_IO_save_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_save_base) - 72usize] ; ["Offset of field: _IO_FILE::_IO_backup_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_backup_base) - 80usize] ; ["Offset of field: _IO_FILE::_IO_save_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_save_end) - 88usize] ; ["Offset of field: _IO_FILE::_markers"] [:: core :: mem :: offset_of ! (_IO_FILE , _markers) - 96usize] ; ["Offset of field: _IO_FILE::_chain"] [:: core :: mem :: offset_of ! (_IO_FILE , _chain) - 104usize] ; ["Offset of field: _IO_FILE::_fileno"] [:: core :: mem :: offset_of ! (_IO_FILE , _fileno) - 112usize] ; ["Offset of field: _IO_FILE::_short_backupbuf"] [:: core :: mem :: offset_of ! (_IO_FILE , _short_backupbuf) - 119usize] ; ["Offset of field: _IO_FILE::_old_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _old_offset) - 120usize] ; ["Offset of field: _IO_FILE::_cur_column"] [:: core :: mem :: offset_of ! (_IO_FILE , _cur_column) - 128usize] ; ["Offset of field: _IO_FILE::_vtable_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _vtable_offset) - 130usize] ; ["Offset of field: _IO_FILE::_shortbuf"] [:: core :: mem :: offset_of ! (_IO_FILE , _shortbuf) - 131usize] ; ["Offset of field: _IO_FILE::_lock"] [:: core :: mem :: offset_of ! (_IO_FILE , _lock) - 136usize] ; ["Offset of field: _IO_FILE::_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _offset) - 144usize] ; ["Offset of field: _IO_FILE::_codecvt"] [:: core :: mem :: offset_of ! (_IO_FILE , _codecvt) - 152usize] ; ["Offset of field: _IO_FILE::_wide_data"] [:: core :: mem :: offset_of ! (_IO_FILE , _wide_data) - 160usize] ; ["Offset of field: _IO_FILE::_freeres_list"] [:: core :: mem :: offset_of ! (_IO_FILE , _freeres_list) - 168usize] ; ["Offset of field: _IO_FILE::_freeres_buf"] [:: core :: mem :: offset_of ! (_IO_FILE , _freeres_buf) - 176usize] ; ["Offset of field: _IO_FILE::_prevchain"] [:: core :: mem :: offset_of ! (_IO_FILE , _prevchain) - 184usize] ; ["Offset of field: _IO_FILE::_mode"] [:: core :: mem :: offset_of ! (_IO_FILE , _mode) - 192usize] ; ["Offset of field: _IO_FILE::_unused3"] [:: core :: mem :: offset_of ! (_IO_FILE , _unused3) - 196usize] ; ["Offset of field: _IO_FILE::_total_written"] [:: core :: mem :: offset_of ! (_IO_FILE , _total_written) - 200usize] ; ["Offset of field: _IO_FILE::_unused2"] [:: core :: mem :: offset_of ! (_IO_FILE , _unused2) - 208usize] ; } ; impl _IO_FILE { # [inline] pub fn _flags2 (& self) -> :: core :: ffi :: c_int { unsafe { :: core :: mem :: transmute (self . _bitfield_1 . get (0usize , 24u8) as u32) } } # [inline] pub fn set__flags2 (& mut self , val : :: core :: ffi :: c_int) { unsafe { let val : u32 = i32::cast_unsigned (val) ; self . _bitfield_1 . set (0usize , 24u8 , val as u64) } } # [inline] pub fn new_bitfield_1 (_flags2 : :: core :: ffi :: c_int) -> __BindgenBitfieldUnit < [u8 ; 3usize] > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [u8 ; 3usize] > = Default :: default () ; __bindgen_bitfield_unit . set (0usize , 24u8 , { let _flags2 : u32 = unsafe { :: core :: mem :: transmute (_flags2) } ; _flags2 as u64 }) ; __bindgen_bitfield_unit } } pub type cookie_read_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __buf : * mut :: core :: ffi :: c_char , __nbytes : usize) -> __ssize_t > ; pub type cookie_write_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __buf : * const :: core :: ffi :: c_char , __nbytes : usize) -> __ssize_t > ; pub type cookie_seek_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __pos : * mut __off64_t , __w : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int > ; pub type cookie_close_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void) -> :: core :: ffi :: 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 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _IO_cookie_io_functions_t"] [:: core :: mem :: size_of :: < _IO_cookie_io_functions_t > () - 32usize] ; ["Alignment of _IO_cookie_io_functions_t"] [:: core :: mem :: align_of :: < _IO_cookie_io_functions_t > () - 8usize] ; ["Offset of field: _IO_cookie_io_functions_t::read"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , read) - 0usize] ; ["Offset of field: _IO_cookie_io_functions_t::write"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , write) - 8usize] ; ["Offset of field: _IO_cookie_io_functions_t::seek"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , seek) - 16usize] ; ["Offset of field: _IO_cookie_io_functions_t::close"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , close) - 24usize] ; } ; 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" { pub static mut stdin : * mut FILE ; } extern "C" { pub static mut stdout : * mut FILE ; } extern "C" { pub static mut stderr : * mut FILE ; } extern "C" { pub fn remove (__filename : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rename (__old : * const :: core :: ffi :: c_char , __new : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn renameat (__oldfd : :: core :: ffi :: c_int , __old : * const :: core :: ffi :: c_char , __newfd : :: core :: ffi :: c_int , __new : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fclose (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn tmpfile () -> * mut FILE ; } extern "C" { pub fn tmpnam (arg1 : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn tmpnam_r (__s : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn tempnam (__dir : * const :: core :: ffi :: c_char , __pfx : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn fflush (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fflush_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fopen (__filename : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn freopen (__filename : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char , __stream : * mut FILE) -> * mut FILE ; } extern "C" { pub fn fdopen (__fd : :: core :: ffi :: c_int , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn fopencookie (__magic_cookie : * mut :: core :: ffi :: c_void , __modes : * const :: core :: ffi :: c_char , __io_funcs : cookie_io_functions_t) -> * mut FILE ; } extern "C" { pub fn fmemopen (__s : * mut :: core :: ffi :: c_void , __len : usize , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn open_memstream (__bufloc : * mut * mut :: core :: ffi :: c_char , __sizeloc : * mut usize) -> * mut FILE ; } extern "C" { pub fn setbuf (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char) ; } extern "C" { pub fn setvbuf (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char , __modes : :: core :: ffi :: c_int , __n : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn setbuffer (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char , __size : usize) ; } extern "C" { pub fn setlinebuf (__stream : * mut FILE) ; } extern "C" { pub fn fprintf (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn printf (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn sprintf (__s : * mut :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vfprintf (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vprintf (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsprintf (__s : * mut :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn snprintf (__s : * mut :: core :: ffi :: c_char , __maxlen : :: core :: ffi :: c_ulong , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsnprintf (__s : * mut :: core :: ffi :: c_char , __maxlen : :: core :: ffi :: c_ulong , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vasprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __f : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn __asprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn asprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vdprintf (__fd : :: core :: ffi :: c_int , __fmt : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn dprintf (__fd : :: core :: ffi :: c_int , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fscanf (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn scanf (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn sscanf (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } pub type __cfloat128 = __BindgenComplex < u128 > ; pub type _Float128 = u128 ; pub type _Float32 = f32 ; pub type _Float64 = f64 ; pub type _Float32x = f64 ; pub type _Float64x = u128 ; extern "C" { # [link_name = "\u{1}__isoc99_fscanf"] pub fn fscanf1 (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_scanf"] pub fn scanf1 (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_sscanf"] pub fn sscanf1 (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vfscanf (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vscanf (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsscanf (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vfscanf"] pub fn vfscanf1 (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vscanf"] pub fn vscanf1 (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vsscanf"] pub fn vsscanf1 (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgetc (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getc (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getchar () -> :: core :: ffi :: c_int ; } extern "C" { pub fn getc_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getchar_unlocked () -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgetc_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fputc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putchar (__c : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fputc_unlocked (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putc_unlocked (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putchar_unlocked (__c : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getw (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putw (__w : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgets (__s : * mut :: core :: ffi :: c_char , __n : :: core :: ffi :: c_int , __stream : * mut FILE) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn __getdelim (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __delimiter : :: core :: ffi :: c_int , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn getdelim (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __delimiter : :: core :: ffi :: c_int , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn getline (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn fputs (__s : * const :: core :: ffi :: c_char , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn puts (__s : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ungetc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fread (__ptr : * mut :: core :: ffi :: c_void , __size : :: core :: ffi :: c_ulong , __n : :: core :: ffi :: c_ulong , __stream : * mut FILE) -> :: core :: ffi :: c_ulong ; } extern "C" { pub fn fwrite (__ptr : * const :: core :: ffi :: c_void , __size : :: core :: ffi :: c_ulong , __n : :: core :: ffi :: c_ulong , __s : * mut FILE) -> :: core :: ffi :: c_ulong ; } extern "C" { pub fn fread_unlocked (__ptr : * mut :: core :: ffi :: c_void , __size : usize , __n : usize , __stream : * mut FILE) -> usize ; } extern "C" { pub fn fwrite_unlocked (__ptr : * const :: core :: ffi :: c_void , __size : usize , __n : usize , __stream : * mut FILE) -> usize ; } extern "C" { pub fn fseek (__stream : * mut FILE , __off : :: core :: ffi :: c_long , __whence : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ftell (__stream : * mut FILE) -> :: core :: ffi :: c_long ; } extern "C" { pub fn rewind (__stream : * mut FILE) ; } extern "C" { pub fn fseeko (__stream : * mut FILE , __off : __off_t , __whence : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ftello (__stream : * mut FILE) -> __off_t ; } extern "C" { pub fn fgetpos (__stream : * mut FILE , __pos : * mut fpos_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fsetpos (__stream : * mut FILE , __pos : * const fpos_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clearerr (__stream : * mut FILE) ; } extern "C" { pub fn feof (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ferror (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clearerr_unlocked (__stream : * mut FILE) ; } extern "C" { pub fn feof_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ferror_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn perror (__s : * const :: core :: ffi :: c_char) ; } extern "C" { pub fn fileno (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fileno_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn pclose (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn popen (__command : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn ctermid (__s : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn flockfile (__stream : * mut FILE) ; } extern "C" { pub fn ftrylockfile (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn funlockfile (__stream : * mut FILE) ; } extern "C" { pub fn __uflow (arg1 : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn __overflow (arg1 : * mut FILE , arg2 : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } pub const RC_CONSOLE_UNKNOWN : _bindgen_ty_12 = 0 ; pub const RC_CONSOLE_MEGA_DRIVE : _bindgen_ty_12 = 1 ; pub const RC_CONSOLE_NINTENDO_64 : _bindgen_ty_12 = 2 ; pub const RC_CONSOLE_SUPER_NINTENDO : _bindgen_ty_12 = 3 ; pub const RC_CONSOLE_GAMEBOY : _bindgen_ty_12 = 4 ; pub const RC_CONSOLE_GAMEBOY_ADVANCE : _bindgen_ty_12 = 5 ; pub const RC_CONSOLE_GAMEBOY_COLOR : _bindgen_ty_12 = 6 ; pub const RC_CONSOLE_NINTENDO : _bindgen_ty_12 = 7 ; pub const RC_CONSOLE_PC_ENGINE : _bindgen_ty_12 = 8 ; pub const RC_CONSOLE_SEGA_CD : _bindgen_ty_12 = 9 ; pub const RC_CONSOLE_SEGA_32X : _bindgen_ty_12 = 10 ; pub const RC_CONSOLE_MASTER_SYSTEM : _bindgen_ty_12 = 11 ; pub const RC_CONSOLE_PLAYSTATION : _bindgen_ty_12 = 12 ; pub const RC_CONSOLE_ATARI_LYNX : _bindgen_ty_12 = 13 ; pub const RC_CONSOLE_NEOGEO_POCKET : _bindgen_ty_12 = 14 ; pub const RC_CONSOLE_GAME_GEAR : _bindgen_ty_12 = 15 ; pub const RC_CONSOLE_GAMECUBE : _bindgen_ty_12 = 16 ; pub const RC_CONSOLE_ATARI_JAGUAR : _bindgen_ty_12 = 17 ; pub const RC_CONSOLE_NINTENDO_DS : _bindgen_ty_12 = 18 ; pub const RC_CONSOLE_WII : _bindgen_ty_12 = 19 ; pub const RC_CONSOLE_WII_U : _bindgen_ty_12 = 20 ; pub const RC_CONSOLE_PLAYSTATION_2 : _bindgen_ty_12 = 21 ; pub const RC_CONSOLE_XBOX : _bindgen_ty_12 = 22 ; pub const RC_CONSOLE_MAGNAVOX_ODYSSEY2 : _bindgen_ty_12 = 23 ; pub const RC_CONSOLE_POKEMON_MINI : _bindgen_ty_12 = 24 ; pub const RC_CONSOLE_ATARI_2600 : _bindgen_ty_12 = 25 ; pub const RC_CONSOLE_MS_DOS : _bindgen_ty_12 = 26 ; pub const RC_CONSOLE_ARCADE : _bindgen_ty_12 = 27 ; pub const RC_CONSOLE_VIRTUAL_BOY : _bindgen_ty_12 = 28 ; pub const RC_CONSOLE_MSX : _bindgen_ty_12 = 29 ; pub const RC_CONSOLE_COMMODORE_64 : _bindgen_ty_12 = 30 ; pub const RC_CONSOLE_ZX81 : _bindgen_ty_12 = 31 ; pub const RC_CONSOLE_ORIC : _bindgen_ty_12 = 32 ; pub const RC_CONSOLE_SG1000 : _bindgen_ty_12 = 33 ; pub const RC_CONSOLE_VIC20 : _bindgen_ty_12 = 34 ; pub const RC_CONSOLE_AMIGA : _bindgen_ty_12 = 35 ; pub const RC_CONSOLE_ATARI_ST : _bindgen_ty_12 = 36 ; pub const RC_CONSOLE_AMSTRAD_PC : _bindgen_ty_12 = 37 ; pub const RC_CONSOLE_APPLE_II : _bindgen_ty_12 = 38 ; pub const RC_CONSOLE_SATURN : _bindgen_ty_12 = 39 ; pub const RC_CONSOLE_DREAMCAST : _bindgen_ty_12 = 40 ; pub const RC_CONSOLE_PSP : _bindgen_ty_12 = 41 ; pub const RC_CONSOLE_CDI : _bindgen_ty_12 = 42 ; pub const RC_CONSOLE_3DO : _bindgen_ty_12 = 43 ; pub const RC_CONSOLE_COLECOVISION : _bindgen_ty_12 = 44 ; pub const RC_CONSOLE_INTELLIVISION : _bindgen_ty_12 = 45 ; pub const RC_CONSOLE_VECTREX : _bindgen_ty_12 = 46 ; pub const RC_CONSOLE_PC8800 : _bindgen_ty_12 = 47 ; pub const RC_CONSOLE_PC9800 : _bindgen_ty_12 = 48 ; pub const RC_CONSOLE_PCFX : _bindgen_ty_12 = 49 ; pub const RC_CONSOLE_ATARI_5200 : _bindgen_ty_12 = 50 ; pub const RC_CONSOLE_ATARI_7800 : _bindgen_ty_12 = 51 ; pub const RC_CONSOLE_X68K : _bindgen_ty_12 = 52 ; pub const RC_CONSOLE_WONDERSWAN : _bindgen_ty_12 = 53 ; pub const RC_CONSOLE_CASSETTEVISION : _bindgen_ty_12 = 54 ; pub const RC_CONSOLE_SUPER_CASSETTEVISION : _bindgen_ty_12 = 55 ; pub const RC_CONSOLE_NEO_GEO_CD : _bindgen_ty_12 = 56 ; pub const RC_CONSOLE_FAIRCHILD_CHANNEL_F : _bindgen_ty_12 = 57 ; pub const RC_CONSOLE_FM_TOWNS : _bindgen_ty_12 = 58 ; pub const RC_CONSOLE_ZX_SPECTRUM : _bindgen_ty_12 = 59 ; pub const RC_CONSOLE_GAME_AND_WATCH : _bindgen_ty_12 = 60 ; pub const RC_CONSOLE_NOKIA_NGAGE : _bindgen_ty_12 = 61 ; pub const RC_CONSOLE_NINTENDO_3DS : _bindgen_ty_12 = 62 ; pub const RC_CONSOLE_SUPERVISION : _bindgen_ty_12 = 63 ; pub const RC_CONSOLE_SHARPX1 : _bindgen_ty_12 = 64 ; pub const RC_CONSOLE_TIC80 : _bindgen_ty_12 = 65 ; pub const RC_CONSOLE_THOMSONTO8 : _bindgen_ty_12 = 66 ; pub const RC_CONSOLE_PC6000 : _bindgen_ty_12 = 67 ; pub const RC_CONSOLE_PICO : _bindgen_ty_12 = 68 ; pub const RC_CONSOLE_MEGADUCK : _bindgen_ty_12 = 69 ; pub const RC_CONSOLE_ZEEBO : _bindgen_ty_12 = 70 ; pub const RC_CONSOLE_ARDUBOY : _bindgen_ty_12 = 71 ; pub const RC_CONSOLE_WASM4 : _bindgen_ty_12 = 72 ; pub const RC_CONSOLE_ARCADIA_2001 : _bindgen_ty_12 = 73 ; pub const RC_CONSOLE_INTERTON_VC_4000 : _bindgen_ty_12 = 74 ; pub const RC_CONSOLE_ELEKTOR_TV_GAMES_COMPUTER : _bindgen_ty_12 = 75 ; pub const RC_CONSOLE_PC_ENGINE_CD : _bindgen_ty_12 = 76 ; pub const RC_CONSOLE_ATARI_JAGUAR_CD : _bindgen_ty_12 = 77 ; pub const RC_CONSOLE_NINTENDO_DSI : _bindgen_ty_12 = 78 ; pub const RC_CONSOLE_TI83 : _bindgen_ty_12 = 79 ; pub const RC_CONSOLE_UZEBOX : _bindgen_ty_12 = 80 ; pub const RC_CONSOLE_HUBS : _bindgen_ty_12 = 100 ; pub const RC_CONSOLE_EVENTS : _bindgen_ty_12 = 101 ; pub const RC_CONSOLE_STANDALONE : _bindgen_ty_12 = 102 ; # [doc = "\\\n| Console identifiers                                                         |\n\\"] pub type _bindgen_ty_12 = :: core :: ffi :: c_uint ; extern "C" { pub fn rc_console_name (console_id : u32) -> * const :: core :: ffi :: c_char ; } pub const RC_MEMORY_TYPE_SYSTEM_RAM : _bindgen_ty_13 = 0 ; pub const RC_MEMORY_TYPE_SAVE_RAM : _bindgen_ty_13 = 1 ; pub const RC_MEMORY_TYPE_VIDEO_RAM : _bindgen_ty_13 = 2 ; pub const RC_MEMORY_TYPE_READONLY : _bindgen_ty_13 = 3 ; pub const RC_MEMORY_TYPE_HARDWARE_CONTROLLER : _bindgen_ty_13 = 4 ; pub const RC_MEMORY_TYPE_VIRTUAL_RAM : _bindgen_ty_13 = 5 ; pub const RC_MEMORY_TYPE_UNUSED : _bindgen_ty_13 = 6 ; # [doc = "\\\n| Memory mapping                                                              |\n\\"] pub type _bindgen_ty_13 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memory_region_t { pub start_address : u32 , pub end_address : u32 , pub real_address : u32 , pub type_ : u8 , pub description : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memory_region_t"] [:: core :: mem :: size_of :: < rc_memory_region_t > () - 24usize] ; ["Alignment of rc_memory_region_t"] [:: core :: mem :: align_of :: < rc_memory_region_t > () - 8usize] ; ["Offset of field: rc_memory_region_t::start_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , start_address) - 0usize] ; ["Offset of field: rc_memory_region_t::end_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , end_address) - 4usize] ; ["Offset of field: rc_memory_region_t::real_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , real_address) - 8usize] ; ["Offset of field: rc_memory_region_t::type_"] [:: core :: mem :: offset_of ! (rc_memory_region_t , type_) - 12usize] ; ["Offset of field: rc_memory_region_t::description"] [:: core :: mem :: offset_of ! (rc_memory_region_t , description) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memory_regions_t { pub region : * const rc_memory_region_t , pub num_regions : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memory_regions_t"] [:: core :: mem :: size_of :: < rc_memory_regions_t > () - 16usize] ; ["Alignment of rc_memory_regions_t"] [:: core :: mem :: align_of :: < rc_memory_regions_t > () - 8usize] ; ["Offset of field: rc_memory_regions_t::region"] [:: core :: mem :: offset_of ! (rc_memory_regions_t , region) - 0usize] ; ["Offset of field: rc_memory_regions_t::num_regions"] [:: core :: mem :: offset_of ! (rc_memory_regions_t , num_regions) - 8usize] ; } ; extern "C" { pub fn rc_console_memory_regions (console_id : u32) -> * const rc_memory_regions_t ; } extern "C" { pub fn rc_hash_generate_from_buffer (hash : * mut :: core :: ffi :: c_char , console_id : u32 , buffer : * const u8 , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_hash_generate_from_file (hash : * mut :: core :: ffi :: c_char , console_id : u32 , path : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_iterator { pub buffer : * const u8 , pub buffer_size : usize , pub consoles : [u8 ; 12usize] , pub index : :: core :: ffi :: c_int , pub path : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_iterator"] [:: core :: mem :: size_of :: < rc_hash_iterator > () - 40usize] ; ["Alignment of rc_hash_iterator"] [:: core :: mem :: align_of :: < rc_hash_iterator > () - 8usize] ; ["Offset of field: rc_hash_iterator::buffer"] [:: core :: mem :: offset_of ! (rc_hash_iterator , buffer) - 0usize] ; ["Offset of field: rc_hash_iterator::buffer_size"] [:: core :: mem :: offset_of ! (rc_hash_iterator , buffer_size) - 8usize] ; ["Offset of field: rc_hash_iterator::consoles"] [:: core :: mem :: offset_of ! (rc_hash_iterator , consoles) - 16usize] ; ["Offset of field: rc_hash_iterator::index"] [:: core :: mem :: offset_of ! (rc_hash_iterator , index) - 28usize] ; ["Offset of field: rc_hash_iterator::path"] [:: core :: mem :: offset_of ! (rc_hash_iterator , path) - 32usize] ; } ; pub type rc_hash_iterator_t = rc_hash_iterator ; extern "C" { pub fn rc_hash_initialize_iterator (iterator : * mut rc_hash_iterator , path : * const :: core :: ffi :: c_char , buffer : * const u8 , buffer_size : usize) ; } extern "C" { pub fn rc_hash_destroy_iterator (iterator : * mut rc_hash_iterator) ; } extern "C" { pub fn rc_hash_iterate (hash : * mut :: core :: ffi :: c_char , iterator : * mut rc_hash_iterator) -> :: core :: ffi :: c_int ; } pub type rc_hash_message_callback = :: core :: option :: Option < unsafe extern "C" fn (arg1 : * const :: core :: ffi :: c_char) > ; extern "C" { pub fn rc_hash_init_error_message_callback (callback : rc_hash_message_callback) ; } extern "C" { pub fn rc_hash_init_verbose_message_callback (callback : rc_hash_message_callback) ; } pub type rc_hash_filereader_open_file_handler = :: core :: option :: Option < unsafe extern "C" fn (path_utf8 : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_void > ; pub type rc_hash_filereader_seek_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void , offset : i64 , origin : :: core :: ffi :: c_int) > ; pub type rc_hash_filereader_tell_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void) -> i64 > ; pub type rc_hash_filereader_read_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void , buffer : * mut :: core :: ffi :: c_void , requested_bytes : usize) -> usize > ; pub type rc_hash_filereader_close_file_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void) > ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_filereader { pub open : rc_hash_filereader_open_file_handler , pub seek : rc_hash_filereader_seek_handler , pub tell : rc_hash_filereader_tell_handler , pub read : rc_hash_filereader_read_handler , pub close : rc_hash_filereader_close_file_handler , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_filereader"] [:: core :: mem :: size_of :: < rc_hash_filereader > () - 40usize] ; ["Alignment of rc_hash_filereader"] [:: core :: mem :: align_of :: < rc_hash_filereader > () - 8usize] ; ["Offset of field: rc_hash_filereader::open"] [:: core :: mem :: offset_of ! (rc_hash_filereader , open) - 0usize] ; ["Offset of field: rc_hash_filereader::seek"] [:: core :: mem :: offset_of ! (rc_hash_filereader , seek) - 8usize] ; ["Offset of field: rc_hash_filereader::tell"] [:: core :: mem :: offset_of ! (rc_hash_filereader , tell) - 16usize] ; ["Offset of field: rc_hash_filereader::read"] [:: core :: mem :: offset_of ! (rc_hash_filereader , read) - 24usize] ; ["Offset of field: rc_hash_filereader::close"] [:: core :: mem :: offset_of ! (rc_hash_filereader , close) - 32usize] ; } ; extern "C" { pub fn rc_hash_init_custom_filereader (reader : * mut rc_hash_filereader) ; } pub type rc_hash_cdreader_open_track_handler = :: core :: option :: Option < unsafe extern "C" fn (path : * const :: core :: ffi :: c_char , track : u32) -> * mut :: core :: ffi :: c_void > ; pub type rc_hash_cdreader_read_sector_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void , sector : u32 , buffer : * mut :: core :: ffi :: c_void , requested_bytes : usize) -> usize > ; pub type rc_hash_cdreader_close_track_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void) > ; pub type rc_hash_cdreader_first_track_sector_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void) -> u32 > ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_cdreader { pub open_track : rc_hash_cdreader_open_track_handler , pub read_sector : rc_hash_cdreader_read_sector_handler , pub close_track : rc_hash_cdreader_close_track_handler , pub first_track_sector : rc_hash_cdreader_first_track_sector_handler , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_cdreader"] [:: core :: mem :: size_of :: < rc_hash_cdreader > () - 32usize] ; ["Alignment of rc_hash_cdreader"] [:: core :: mem :: align_of :: < rc_hash_cdreader > () - 8usize] ; ["Offset of field: rc_hash_cdreader::open_track"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , open_track) - 0usize] ; ["Offset of field: rc_hash_cdreader::read_sector"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , read_sector) - 8usize] ; ["Offset of field: rc_hash_cdreader::close_track"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , close_track) - 16usize] ; ["Offset of field: rc_hash_cdreader::first_track_sector"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , first_track_sector) - 24usize] ; } ; extern "C" { pub fn rc_hash_get_default_cdreader (cdreader : * mut rc_hash_cdreader) ; } extern "C" { pub fn rc_hash_init_default_cdreader () ; } extern "C" { pub fn rc_hash_init_custom_cdreader (reader : * mut rc_hash_cdreader) ; } pub type rc_hash_3ds_get_cia_normal_key_func = :: core :: option :: Option < unsafe extern "C" fn (common_key_index : u8 , out_normal_key : * mut u8) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_hash_init_3ds_get_cia_normal_key_func (func : rc_hash_3ds_get_cia_normal_key_func) ; } pub type rc_hash_3ds_get_ncch_normal_keys_func = :: core :: option :: Option < unsafe extern "C" fn (primary_key_y : * mut u8 , secondary_key_x_slot : u8 , optional_program_id : * mut u8 , out_primary_key : * mut u8 , out_secondary_key : * mut u8) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_hash_init_3ds_get_ncch_normal_keys_func (func : rc_hash_3ds_get_ncch_normal_keys_func) ; } # [doc = " API parameters for a fetch image request.\n NOTE: fetch image server response is the raw image data. There is no rc_api_process_fetch_image_response function."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_image_request_t { pub image_name : * const :: core :: ffi :: c_char , pub image_type : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_image_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_image_request_t > () - 16usize] ; ["Alignment of rc_api_fetch_image_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_image_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_image_request_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_fetch_image_request_t , image_name) - 0usize] ; ["Offset of field: rc_api_fetch_image_request_t::image_type"] [:: core :: mem :: offset_of ! (rc_api_fetch_image_request_t , image_type) - 8usize] ; } ; extern "C" { pub fn rc_api_init_fetch_image_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_image_request_t) -> :: core :: ffi :: c_int ; } # [doc = " API parameters for a resolve hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_resolve_hash_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_hash : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_resolve_hash_request_t"] [:: core :: mem :: size_of :: < rc_api_resolve_hash_request_t > () - 24usize] ; ["Alignment of rc_api_resolve_hash_request_t"] [:: core :: mem :: align_of :: < rc_api_resolve_hash_request_t > () - 8usize] ; ["Offset of field: rc_api_resolve_hash_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , username) - 0usize] ; ["Offset of field: rc_api_resolve_hash_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_resolve_hash_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , game_hash) - 16usize] ; } ; # [doc = " Response data for a resolve hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_resolve_hash_response_t { pub game_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_resolve_hash_response_t"] [:: core :: mem :: size_of :: < rc_api_resolve_hash_response_t > () - 320usize] ; ["Alignment of rc_api_resolve_hash_response_t"] [:: core :: mem :: align_of :: < rc_api_resolve_hash_response_t > () - 8usize] ; ["Offset of field: rc_api_resolve_hash_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_response_t , game_id) - 0usize] ; ["Offset of field: rc_api_resolve_hash_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_resolve_hash_request (request : * mut rc_api_request_t , api_params : * const rc_api_resolve_hash_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_resolve_hash_response (response : * mut rc_api_resolve_hash_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_resolve_hash_server_response (response : * mut rc_api_resolve_hash_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_resolve_hash_response (response : * mut rc_api_resolve_hash_response_t) ; } # [doc = " API parameters for a fetch game data request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_data_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_data_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_data_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_game_data_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_data_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , game_id) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_leaderboard_definition_t { pub id : u32 , pub format : :: core :: ffi :: c_int , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub lower_is_better : u8 , pub hidden : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_leaderboard_definition_t"] [:: core :: mem :: size_of :: < rc_api_leaderboard_definition_t > () - 40usize] ; ["Alignment of rc_api_leaderboard_definition_t"] [:: core :: mem :: align_of :: < rc_api_leaderboard_definition_t > () - 8usize] ; ["Offset of field: rc_api_leaderboard_definition_t::id"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , id) - 0usize] ; ["Offset of field: rc_api_leaderboard_definition_t::format"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , format) - 4usize] ; ["Offset of field: rc_api_leaderboard_definition_t::title"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , title) - 8usize] ; ["Offset of field: rc_api_leaderboard_definition_t::description"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , description) - 16usize] ; ["Offset of field: rc_api_leaderboard_definition_t::definition"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , definition) - 24usize] ; ["Offset of field: rc_api_leaderboard_definition_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , lower_is_better) - 32usize] ; ["Offset of field: rc_api_leaderboard_definition_t::hidden"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , hidden) - 33usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_achievement_definition_t { pub id : u32 , pub points : u32 , pub category : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub author : * const :: core :: ffi :: c_char , pub badge_name : * const :: core :: ffi :: c_char , pub created : time_t , pub updated : time_t , pub type_ : u32 , pub rarity : f32 , pub rarity_hardcore : f32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_achievement_definition_t"] [:: core :: mem :: size_of :: < rc_api_achievement_definition_t > () - 88usize] ; ["Alignment of rc_api_achievement_definition_t"] [:: core :: mem :: align_of :: < rc_api_achievement_definition_t > () - 8usize] ; ["Offset of field: rc_api_achievement_definition_t::id"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , id) - 0usize] ; ["Offset of field: rc_api_achievement_definition_t::points"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , points) - 4usize] ; ["Offset of field: rc_api_achievement_definition_t::category"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , category) - 8usize] ; ["Offset of field: rc_api_achievement_definition_t::title"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , title) - 16usize] ; ["Offset of field: rc_api_achievement_definition_t::description"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , description) - 24usize] ; ["Offset of field: rc_api_achievement_definition_t::definition"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , definition) - 32usize] ; ["Offset of field: rc_api_achievement_definition_t::author"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , author) - 40usize] ; ["Offset of field: rc_api_achievement_definition_t::badge_name"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , badge_name) - 48usize] ; ["Offset of field: rc_api_achievement_definition_t::created"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , created) - 56usize] ; ["Offset of field: rc_api_achievement_definition_t::updated"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , updated) - 64usize] ; ["Offset of field: rc_api_achievement_definition_t::type_"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , type_) - 72usize] ; ["Offset of field: rc_api_achievement_definition_t::rarity"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , rarity) - 76usize] ; ["Offset of field: rc_api_achievement_definition_t::rarity_hardcore"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , rarity_hardcore) - 80usize] ; } ; # [doc = " Response data for a fetch game data request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_data_response_t { pub id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub image_name : * const :: core :: ffi :: c_char , pub rich_presence_script : * const :: core :: ffi :: c_char , pub achievements : * mut rc_api_achievement_definition_t , pub num_achievements : u32 , pub leaderboards : * mut rc_api_leaderboard_definition_t , pub num_leaderboards : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_data_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_data_response_t > () - 376usize] ; ["Alignment of rc_api_fetch_game_data_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_data_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , console_id) - 4usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::title"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , title) - 8usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , image_name) - 16usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::rich_presence_script"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , rich_presence_script) - 24usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::achievements"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , achievements) - 32usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , num_achievements) - 40usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::leaderboards"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , leaderboards) - 48usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , num_leaderboards) - 56usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , response) - 64usize] ; } ; extern "C" { pub fn rc_api_init_fetch_game_data_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_game_data_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_data_response (response : * mut rc_api_fetch_game_data_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_data_server_response (response : * mut rc_api_fetch_game_data_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_game_data_response (response : * mut rc_api_fetch_game_data_response_t) ; } # [doc = " API parameters for a ping request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_ping_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub rich_presence : * const :: core :: ffi :: c_char , pub game_hash : * const :: core :: ffi :: c_char , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_ping_request_t"] [:: core :: mem :: size_of :: < rc_api_ping_request_t > () - 48usize] ; ["Alignment of rc_api_ping_request_t"] [:: core :: mem :: align_of :: < rc_api_ping_request_t > () - 8usize] ; ["Offset of field: rc_api_ping_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , username) - 0usize] ; ["Offset of field: rc_api_ping_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_ping_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_ping_request_t::rich_presence"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , rich_presence) - 24usize] ; ["Offset of field: rc_api_ping_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , game_hash) - 32usize] ; ["Offset of field: rc_api_ping_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , hardcore) - 40usize] ; } ; # [doc = " Response data for a ping request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_ping_response_t { pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_ping_response_t"] [:: core :: mem :: size_of :: < rc_api_ping_response_t > () - 312usize] ; ["Alignment of rc_api_ping_response_t"] [:: core :: mem :: align_of :: < rc_api_ping_response_t > () - 8usize] ; ["Offset of field: rc_api_ping_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_ping_response_t , response) - 0usize] ; } ; extern "C" { pub fn rc_api_init_ping_request (request : * mut rc_api_request_t , api_params : * const rc_api_ping_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_ping_response (response : * mut rc_api_ping_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_ping_server_response (response : * mut rc_api_ping_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_ping_response (response : * mut rc_api_ping_response_t) ; } # [doc = " API parameters for an award achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_award_achievement_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub hardcore : u32 , pub game_hash : * const :: core :: ffi :: c_char , pub seconds_since_unlock : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_award_achievement_request_t"] [:: core :: mem :: size_of :: < rc_api_award_achievement_request_t > () - 40usize] ; ["Alignment of rc_api_award_achievement_request_t"] [:: core :: mem :: align_of :: < rc_api_award_achievement_request_t > () - 8usize] ; ["Offset of field: rc_api_award_achievement_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , username) - 0usize] ; ["Offset of field: rc_api_award_achievement_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_award_achievement_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_award_achievement_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , hardcore) - 20usize] ; ["Offset of field: rc_api_award_achievement_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_award_achievement_request_t::seconds_since_unlock"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , seconds_since_unlock) - 32usize] ; } ; # [doc = " Response data for an award achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_award_achievement_response_t { pub awarded_achievement_id : u32 , pub new_player_score : u32 , pub new_player_score_softcore : u32 , pub achievements_remaining : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_award_achievement_response_t"] [:: core :: mem :: size_of :: < rc_api_award_achievement_response_t > () - 328usize] ; ["Alignment of rc_api_award_achievement_response_t"] [:: core :: mem :: align_of :: < rc_api_award_achievement_response_t > () - 8usize] ; ["Offset of field: rc_api_award_achievement_response_t::awarded_achievement_id"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , awarded_achievement_id) - 0usize] ; ["Offset of field: rc_api_award_achievement_response_t::new_player_score"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , new_player_score) - 4usize] ; ["Offset of field: rc_api_award_achievement_response_t::new_player_score_softcore"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , new_player_score_softcore) - 8usize] ; ["Offset of field: rc_api_award_achievement_response_t::achievements_remaining"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , achievements_remaining) - 12usize] ; ["Offset of field: rc_api_award_achievement_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_award_achievement_request (request : * mut rc_api_request_t , api_params : * const rc_api_award_achievement_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_award_achievement_response (response : * mut rc_api_award_achievement_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_award_achievement_server_response (response : * mut rc_api_award_achievement_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_award_achievement_response (response : * mut rc_api_award_achievement_response_t) ; } # [doc = " API parameters for a submit lboard entry request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_submit_lboard_entry_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub leaderboard_id : u32 , pub score : i32 , pub game_hash : * const :: core :: ffi :: c_char , pub seconds_since_completion : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_submit_lboard_entry_request_t"] [:: core :: mem :: size_of :: < rc_api_submit_lboard_entry_request_t > () - 40usize] ; ["Alignment of rc_api_submit_lboard_entry_request_t"] [:: core :: mem :: align_of :: < rc_api_submit_lboard_entry_request_t > () - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , username) - 0usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , leaderboard_id) - 16usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , score) - 20usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::seconds_since_completion"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , seconds_since_completion) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_lboard_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub score : i32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_lboard_entry_t"] [:: core :: mem :: size_of :: < rc_api_lboard_entry_t > () - 16usize] ; ["Alignment of rc_api_lboard_entry_t"] [:: core :: mem :: align_of :: < rc_api_lboard_entry_t > () - 8usize] ; ["Offset of field: rc_api_lboard_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , username) - 0usize] ; ["Offset of field: rc_api_lboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , rank) - 8usize] ; ["Offset of field: rc_api_lboard_entry_t::score"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , score) - 12usize] ; } ; # [doc = " Response data for a submit lboard entry request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_submit_lboard_entry_response_t { pub submitted_score : i32 , pub best_score : i32 , pub new_rank : u32 , pub num_entries : u32 , pub top_entries : * mut rc_api_lboard_entry_t , pub num_top_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_submit_lboard_entry_response_t"] [:: core :: mem :: size_of :: < rc_api_submit_lboard_entry_response_t > () - 344usize] ; ["Alignment of rc_api_submit_lboard_entry_response_t"] [:: core :: mem :: align_of :: < rc_api_submit_lboard_entry_response_t > () - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::submitted_score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , submitted_score) - 0usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::best_score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , best_score) - 4usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::new_rank"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , new_rank) - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , num_entries) - 12usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::top_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , top_entries) - 16usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::num_top_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , num_top_entries) - 24usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_submit_lboard_entry_request (request : * mut rc_api_request_t , api_params : * const rc_api_submit_lboard_entry_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_submit_lboard_entry_response (response : * mut rc_api_submit_lboard_entry_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_submit_lboard_entry_server_response (response : * mut rc_api_submit_lboard_entry_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_submit_lboard_entry_response (response : * mut rc_api_submit_lboard_entry_response_t) ; } # [doc = " Callback used to read num_bytes bytes from memory starting at address. If\n num_bytes is greater than 1, the value is read in little-endian from\n memory."] pub type rc_runtime_peek_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , num_bytes : u32 , ud : * mut :: core :: ffi :: c_void) -> u32 > ; # [doc = "\\\n| Runtime                                                                     |\n\\"] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_trigger_t { pub id : u32 , pub trigger : * mut rc_trigger_t , pub buffer : * mut :: core :: ffi :: c_void , pub invalid_memref : * mut rc_memref_t , pub md5 : [u8 ; 16usize] , pub serialized_size : i32 , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_trigger_t"] [:: core :: mem :: size_of :: < rc_runtime_trigger_t > () - 56usize] ; ["Alignment of rc_runtime_trigger_t"] [:: core :: mem :: align_of :: < rc_runtime_trigger_t > () - 8usize] ; ["Offset of field: rc_runtime_trigger_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , id) - 0usize] ; ["Offset of field: rc_runtime_trigger_t::trigger"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , trigger) - 8usize] ; ["Offset of field: rc_runtime_trigger_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , buffer) - 16usize] ; ["Offset of field: rc_runtime_trigger_t::invalid_memref"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , invalid_memref) - 24usize] ; ["Offset of field: rc_runtime_trigger_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , md5) - 32usize] ; ["Offset of field: rc_runtime_trigger_t::serialized_size"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , serialized_size) - 48usize] ; ["Offset of field: rc_runtime_trigger_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , owns_memrefs) - 52usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_lboard_t { pub id : u32 , pub value : i32 , pub lboard : * mut rc_lboard_t , pub buffer : * mut :: core :: ffi :: c_void , pub invalid_memref : * mut rc_memref_t , pub md5 : [u8 ; 16usize] , pub serialized_size : u32 , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_lboard_t"] [:: core :: mem :: size_of :: < rc_runtime_lboard_t > () - 56usize] ; ["Alignment of rc_runtime_lboard_t"] [:: core :: mem :: align_of :: < rc_runtime_lboard_t > () - 8usize] ; ["Offset of field: rc_runtime_lboard_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , id) - 0usize] ; ["Offset of field: rc_runtime_lboard_t::value"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , value) - 4usize] ; ["Offset of field: rc_runtime_lboard_t::lboard"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , lboard) - 8usize] ; ["Offset of field: rc_runtime_lboard_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , buffer) - 16usize] ; ["Offset of field: rc_runtime_lboard_t::invalid_memref"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , invalid_memref) - 24usize] ; ["Offset of field: rc_runtime_lboard_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , md5) - 32usize] ; ["Offset of field: rc_runtime_lboard_t::serialized_size"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , serialized_size) - 48usize] ; ["Offset of field: rc_runtime_lboard_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , owns_memrefs) - 52usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_richpresence_t { pub richpresence : * mut rc_richpresence_t , pub buffer : * mut :: core :: ffi :: c_void , pub previous : * mut rc_runtime_richpresence_t , pub md5 : [u8 ; 16usize] , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_richpresence_t"] [:: core :: mem :: size_of :: < rc_runtime_richpresence_t > () - 48usize] ; ["Alignment of rc_runtime_richpresence_t"] [:: core :: mem :: align_of :: < rc_runtime_richpresence_t > () - 8usize] ; ["Offset of field: rc_runtime_richpresence_t::richpresence"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , richpresence) - 0usize] ; ["Offset of field: rc_runtime_richpresence_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , buffer) - 8usize] ; ["Offset of field: rc_runtime_richpresence_t::previous"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , previous) - 16usize] ; ["Offset of field: rc_runtime_richpresence_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , md5) - 24usize] ; ["Offset of field: rc_runtime_richpresence_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , owns_memrefs) - 40usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_t { pub triggers : * mut rc_runtime_trigger_t , pub trigger_count : u32 , pub trigger_capacity : u32 , pub lboards : * mut rc_runtime_lboard_t , pub lboard_count : u32 , pub lboard_capacity : u32 , pub richpresence : * mut rc_runtime_richpresence_t , pub memrefs : * mut rc_memref_t , pub next_memref : * mut * mut rc_memref_t , pub variables : * mut rc_value_t , pub next_variable : * mut * mut rc_value_t , pub owns_self : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_t"] [:: core :: mem :: size_of :: < rc_runtime_t > () - 80usize] ; ["Alignment of rc_runtime_t"] [:: core :: mem :: align_of :: < rc_runtime_t > () - 8usize] ; ["Offset of field: rc_runtime_t::triggers"] [:: core :: mem :: offset_of ! (rc_runtime_t , triggers) - 0usize] ; ["Offset of field: rc_runtime_t::trigger_count"] [:: core :: mem :: offset_of ! (rc_runtime_t , trigger_count) - 8usize] ; ["Offset of field: rc_runtime_t::trigger_capacity"] [:: core :: mem :: offset_of ! (rc_runtime_t , trigger_capacity) - 12usize] ; ["Offset of field: rc_runtime_t::lboards"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboards) - 16usize] ; ["Offset of field: rc_runtime_t::lboard_count"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboard_count) - 24usize] ; ["Offset of field: rc_runtime_t::lboard_capacity"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboard_capacity) - 28usize] ; ["Offset of field: rc_runtime_t::richpresence"] [:: core :: mem :: offset_of ! (rc_runtime_t , richpresence) - 32usize] ; ["Offset of field: rc_runtime_t::memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_t , memrefs) - 40usize] ; ["Offset of field: rc_runtime_t::next_memref"] [:: core :: mem :: offset_of ! (rc_runtime_t , next_memref) - 48usize] ; ["Offset of field: rc_runtime_t::variables"] [:: core :: mem :: offset_of ! (rc_runtime_t , variables) - 56usize] ; ["Offset of field: rc_runtime_t::next_variable"] [:: core :: mem :: offset_of ! (rc_runtime_t , next_variable) - 64usize] ; ["Offset of field: rc_runtime_t::owns_self"] [:: core :: mem :: offset_of ! (rc_runtime_t , owns_self) - 72usize] ; } ; extern "C" { pub fn rc_runtime_alloc () -> * mut rc_runtime_t ; } extern "C" { pub fn rc_runtime_init (runtime : * mut rc_runtime_t) ; } extern "C" { pub fn rc_runtime_destroy (runtime : * mut rc_runtime_t) ; } extern "C" { pub fn rc_runtime_activate_achievement (runtime : * mut rc_runtime_t , id : u32 , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deactivate_achievement (runtime : * mut rc_runtime_t , id : u32) ; } extern "C" { pub fn rc_runtime_get_achievement (runtime : * const rc_runtime_t , id : u32) -> * mut rc_trigger_t ; } extern "C" { pub fn rc_runtime_get_achievement_measured (runtime : * const rc_runtime_t , id : u32 , measured_value : * mut :: core :: ffi :: c_uint , measured_target : * mut :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_format_achievement_measured (runtime : * const rc_runtime_t , id : u32 , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_activate_lboard (runtime : * mut rc_runtime_t , id : u32 , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deactivate_lboard (runtime : * mut rc_runtime_t , id : u32) ; } extern "C" { pub fn rc_runtime_get_lboard (runtime : * const rc_runtime_t , id : u32) -> * mut rc_lboard_t ; } extern "C" { pub fn rc_runtime_format_lboard_value (buffer : * mut :: core :: ffi :: c_char , size : :: core :: ffi :: c_int , value : i32 , format : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_activate_richpresence (runtime : * mut rc_runtime_t , script : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_get_richpresence (runtime : * const rc_runtime_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_runtime_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } pub const RC_RUNTIME_EVENT_ACHIEVEMENT_ACTIVATED : _bindgen_ty_14 = 0 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PAUSED : _bindgen_ty_14 = 1 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_RESET : _bindgen_ty_14 = 2 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_TRIGGERED : _bindgen_ty_14 = 3 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PRIMED : _bindgen_ty_14 = 4 ; pub const RC_RUNTIME_EVENT_LBOARD_STARTED : _bindgen_ty_14 = 5 ; pub const RC_RUNTIME_EVENT_LBOARD_CANCELED : _bindgen_ty_14 = 6 ; pub const RC_RUNTIME_EVENT_LBOARD_UPDATED : _bindgen_ty_14 = 7 ; pub const RC_RUNTIME_EVENT_LBOARD_TRIGGERED : _bindgen_ty_14 = 8 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_DISABLED : _bindgen_ty_14 = 9 ; pub const RC_RUNTIME_EVENT_LBOARD_DISABLED : _bindgen_ty_14 = 10 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_UNPRIMED : _bindgen_ty_14 = 11 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PROGRESS_UPDATED : _bindgen_ty_14 = 12 ; pub type _bindgen_ty_14 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_event_t { pub id : u32 , pub value : i32 , pub type_ : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_event_t"] [:: core :: mem :: size_of :: < rc_runtime_event_t > () - 12usize] ; ["Alignment of rc_runtime_event_t"] [:: core :: mem :: align_of :: < rc_runtime_event_t > () - 4usize] ; ["Offset of field: rc_runtime_event_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , id) - 0usize] ; ["Offset of field: rc_runtime_event_t::value"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , value) - 4usize] ; ["Offset of field: rc_runtime_event_t::type_"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , type_) - 8usize] ; } ; pub type rc_runtime_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (runtime_event : * const rc_runtime_event_t) > ; extern "C" { pub fn rc_runtime_do_frame (runtime : * mut rc_runtime_t , event_handler : rc_runtime_event_handler_t , peek : rc_runtime_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) ; } extern "C" { pub fn rc_runtime_reset (runtime : * mut rc_runtime_t) ; } pub type rc_runtime_validate_address_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_runtime_validate_addresses (runtime : * mut rc_runtime_t , event_handler : rc_runtime_event_handler_t , validate_handler : rc_runtime_validate_address_t) ; } extern "C" { pub fn rc_runtime_invalidate_address (runtime : * mut rc_runtime_t , address : u32) ; } extern "C" { pub fn rc_runtime_progress_size (runtime : * const rc_runtime_t , L : * mut lua_State) -> u32 ; } extern "C" { pub fn rc_runtime_serialize_progress (buffer : * mut :: core :: ffi :: c_void , runtime : * const rc_runtime_t , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_serialize_progress_sized (buffer : * mut u8 , buffer_size : u32 , runtime : * const rc_runtime_t , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deserialize_progress (runtime : * mut rc_runtime_t , serialized : * const u8 , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deserialize_progress_sized (runtime : * mut rc_runtime_t , serialized : * const u8 , serialized_size : u32 , L : * mut lua_State) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_async_handle_t { _unused : [u8 ; 0] , } # [doc = " Callback used to read num_bytes bytes from memory starting at address into buffer.\n Returns the number of bytes read. A return value of 0 indicates the address was invalid."] pub type rc_client_read_memory_func_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , buffer : * mut u8 , num_bytes : u32 , client : * mut rc_client_t) -> u32 > ; # [doc = " Internal method passed to rc_client_server_call_t to process the server response."] pub type rc_client_server_callback_t = :: core :: option :: Option < unsafe extern "C" fn (server_response : * const rc_api_server_response_t , callback_data : * mut :: core :: ffi :: c_void) > ; # [doc = " Callback used to issue a request to the server."] pub type rc_client_server_call_t = :: core :: option :: Option < unsafe extern "C" fn (request : * const rc_api_request_t , callback : rc_client_server_callback_t , callback_data : * mut :: core :: ffi :: c_void , client : * mut rc_client_t) > ; # [doc = " Generic callback for asynchronous eventing."] pub type rc_client_callback_t = :: core :: option :: Option < unsafe extern "C" fn (result : :: core :: ffi :: c_int , error_message : * const :: core :: ffi :: c_char , client : * mut rc_client_t , userdata : * mut :: core :: ffi :: c_void) > ; # [doc = " Callback for logging or displaying a message."] pub type rc_client_message_callback_t = :: core :: option :: Option < unsafe extern "C" fn (message : * const :: core :: ffi :: c_char , client : * const rc_client_t) > ; extern "C" { # [doc = " Creates a new rc_client_t object."] pub fn rc_client_create (read_memory_function : rc_client_read_memory_func_t , server_call_function : rc_client_server_call_t) -> * mut rc_client_t ; } extern "C" { # [doc = " Releases resources associated to a rc_client_t object.\n Pointer will no longer be valid after making this call."] pub fn rc_client_destroy (client : * mut rc_client_t) ; } extern "C" { # [doc = " Sets whether hardcore is enabled (on by default).\n Can be called with a game loaded.\n Enabling hardcore with a game loaded will raise an RC_CLIENT_EVENT_RESET\n event. Processing will be disabled until rc_client_reset is called."] pub fn rc_client_set_hardcore_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether hardcore is enabled (on by default)."] pub fn rc_client_get_hardcore_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether encore mode is enabled (off by default).\n Evaluated when loading a game. Has no effect while a game is loaded."] pub fn rc_client_set_encore_mode_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether encore mode is enabled (off by default)."] pub fn rc_client_get_encore_mode_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether unofficial achievements should be loaded.\n Evaluated when loading a game. Has no effect while a game is loaded."] pub fn rc_client_set_unofficial_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether unofficial achievements should be loaded."] pub fn rc_client_get_unofficial_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether spectator mode is enabled (off by default).\n If enabled, events for achievement unlocks and leaderboard submissions will be\n raised, but server calls to actually perform the unlock/submit will not occur.\n Can be modified while a game is loaded. Evaluated at unlock/submit time.\n Cannot be modified if disabled before a game is loaded."] pub fn rc_client_set_spectator_mode_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether spectator mode is enabled (off by default)."] pub fn rc_client_get_spectator_mode_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Attaches client-specific data to the runtime."] pub fn rc_client_set_userdata (client : * mut rc_client_t , userdata : * mut :: core :: ffi :: c_void) ; } extern "C" { # [doc = " Gets the client-specific data attached to the runtime."] pub fn rc_client_get_userdata (client : * const rc_client_t) -> * mut :: core :: ffi :: c_void ; } extern "C" { # [doc = " Sets the name of the server to use."] pub fn rc_client_set_host (client : * const rc_client_t , hostname : * const :: core :: ffi :: c_char) ; } pub type rc_clock_t = u64 ; pub type rc_get_time_millisecs_func_t = :: core :: option :: Option < unsafe extern "C" fn (client : * const rc_client_t) -> rc_clock_t > ; extern "C" { # [doc = " Specifies a function that returns a value that increases once per millisecond."] pub fn rc_client_set_get_time_millisecs_function (client : * mut rc_client_t , handler : rc_get_time_millisecs_func_t) ; } extern "C" { # [doc = " Marks an async process as aborted. The associated callback will not be called."] pub fn rc_client_abort_async (client : * mut rc_client_t , async_handle : * mut rc_client_async_handle_t) ; } extern "C" { # [doc = " Gets a clause that can be added to the User-Agent to identify the version of rcheevos being used."] pub fn rc_client_get_user_agent_clause (client : * mut rc_client_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> usize ; } extern "C" { # [doc = " Sets the logging level and provides a callback to be called to do the logging."] pub fn rc_client_enable_logging (client : * mut rc_client_t , level : :: core :: ffi :: c_int , callback : rc_client_message_callback_t) ; } pub const RC_CLIENT_LOG_LEVEL_NONE : _bindgen_ty_15 = 0 ; pub const RC_CLIENT_LOG_LEVEL_ERROR : _bindgen_ty_15 = 1 ; pub const RC_CLIENT_LOG_LEVEL_WARN : _bindgen_ty_15 = 2 ; pub const RC_CLIENT_LOG_LEVEL_INFO : _bindgen_ty_15 = 3 ; pub const RC_CLIENT_LOG_LEVEL_VERBOSE : _bindgen_ty_15 = 4 ; pub const NUM_RC_CLIENT_LOG_LEVELS : _bindgen_ty_15 = 5 ; pub type _bindgen_ty_15 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Attempt to login a user."] pub fn rc_client_begin_login_with_password (client : * mut rc_client_t , username : * const :: core :: ffi :: c_char , password : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Attempt to login a user."] pub fn rc_client_begin_login_with_token (client : * mut rc_client_t , username : * const :: core :: ffi :: c_char , token : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Logout the user."] pub fn rc_client_logout (client : * mut rc_client_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_user_t { pub display_name : * const :: core :: ffi :: c_char , pub username : * const :: core :: ffi :: c_char , pub token : * const :: core :: ffi :: c_char , pub score : u32 , pub score_softcore : u32 , pub num_unread_messages : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_user_t"] [:: core :: mem :: size_of :: < rc_client_user_t > () - 40usize] ; ["Alignment of rc_client_user_t"] [:: core :: mem :: align_of :: < rc_client_user_t > () - 8usize] ; ["Offset of field: rc_client_user_t::display_name"] [:: core :: mem :: offset_of ! (rc_client_user_t , display_name) - 0usize] ; ["Offset of field: rc_client_user_t::username"] [:: core :: mem :: offset_of ! (rc_client_user_t , username) - 8usize] ; ["Offset of field: rc_client_user_t::token"] [:: core :: mem :: offset_of ! (rc_client_user_t , token) - 16usize] ; ["Offset of field: rc_client_user_t::score"] [:: core :: mem :: offset_of ! (rc_client_user_t , score) - 24usize] ; ["Offset of field: rc_client_user_t::score_softcore"] [:: core :: mem :: offset_of ! (rc_client_user_t , score_softcore) - 28usize] ; ["Offset of field: rc_client_user_t::num_unread_messages"] [:: core :: mem :: offset_of ! (rc_client_user_t , num_unread_messages) - 32usize] ; } ; extern "C" { # [doc = " Gets information about the logged in user. Will return NULL if the user is not logged in."] pub fn rc_client_get_user_info (client : * const rc_client_t) -> * const rc_client_user_t ; } extern "C" { # [doc = " Gets the URL for the user's profile picture.\n Returns RC_OK on success."] pub fn rc_client_user_get_image_url (user : * const rc_client_user_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_user_game_summary_t { pub num_core_achievements : u32 , pub num_unofficial_achievements : u32 , pub num_unlocked_achievements : u32 , pub num_unsupported_achievements : u32 , pub points_core : u32 , pub points_unlocked : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_user_game_summary_t"] [:: core :: mem :: size_of :: < rc_client_user_game_summary_t > () - 24usize] ; ["Alignment of rc_client_user_game_summary_t"] [:: core :: mem :: align_of :: < rc_client_user_game_summary_t > () - 4usize] ; ["Offset of field: rc_client_user_game_summary_t::num_core_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_core_achievements) - 0usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unofficial_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unofficial_achievements) - 4usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unlocked_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unlocked_achievements) - 8usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unsupported_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unsupported_achievements) - 12usize] ; ["Offset of field: rc_client_user_game_summary_t::points_core"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , points_core) - 16usize] ; ["Offset of field: rc_client_user_game_summary_t::points_unlocked"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , points_unlocked) - 20usize] ; } ; extern "C" { # [doc = " Gets a breakdown of the number of achievements in the game, and how many the user has unlocked.\n Used for the \"You have unlocked X of Y achievements\" message shown when the game starts."] pub fn rc_client_get_user_game_summary (client : * const rc_client_t , summary : * mut rc_client_user_game_summary_t) ; } extern "C" { # [doc = " Start loading an unidentified game."] pub fn rc_client_begin_identify_and_load_game (client : * mut rc_client_t , console_id : u32 , file_path : * const :: core :: ffi :: c_char , data : * const u8 , data_size : usize , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Start loading a game."] pub fn rc_client_begin_load_game (client : * mut rc_client_t , hash : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Gets the current progress of the asynchronous load game process."] pub fn rc_client_get_load_game_state (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } pub const RC_CLIENT_LOAD_GAME_STATE_NONE : _bindgen_ty_16 = 0 ; pub const RC_CLIENT_LOAD_GAME_STATE_IDENTIFYING_GAME : _bindgen_ty_16 = 1 ; pub const RC_CLIENT_LOAD_GAME_STATE_AWAIT_LOGIN : _bindgen_ty_16 = 2 ; pub const RC_CLIENT_LOAD_GAME_STATE_FETCHING_GAME_DATA : _bindgen_ty_16 = 3 ; pub const RC_CLIENT_LOAD_GAME_STATE_STARTING_SESSION : _bindgen_ty_16 = 4 ; pub const RC_CLIENT_LOAD_GAME_STATE_DONE : _bindgen_ty_16 = 5 ; pub const RC_CLIENT_LOAD_GAME_STATE_ABORTED : _bindgen_ty_16 = 6 ; pub type _bindgen_ty_16 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Determines if a game was successfully identified and loaded."] pub fn rc_client_is_game_loaded (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Unloads the current game."] pub fn rc_client_unload_game (client : * mut rc_client_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_game_t { pub id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub hash : * const :: core :: ffi :: c_char , pub badge_name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_game_t"] [:: core :: mem :: size_of :: < rc_client_game_t > () - 32usize] ; ["Alignment of rc_client_game_t"] [:: core :: mem :: align_of :: < rc_client_game_t > () - 8usize] ; ["Offset of field: rc_client_game_t::id"] [:: core :: mem :: offset_of ! (rc_client_game_t , id) - 0usize] ; ["Offset of field: rc_client_game_t::console_id"] [:: core :: mem :: offset_of ! (rc_client_game_t , console_id) - 4usize] ; ["Offset of field: rc_client_game_t::title"] [:: core :: mem :: offset_of ! (rc_client_game_t , title) - 8usize] ; ["Offset of field: rc_client_game_t::hash"] [:: core :: mem :: offset_of ! (rc_client_game_t , hash) - 16usize] ; ["Offset of field: rc_client_game_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_game_t , badge_name) - 24usize] ; } ; extern "C" { # [doc = " Get information about the current game. Returns NULL if no game is loaded.\n NOTE: returns a dummy game record if an unidentified game is loaded."] pub fn rc_client_get_game_info (client : * const rc_client_t) -> * const rc_client_game_t ; } extern "C" { # [doc = " Gets the URL for the game image.\n Returns RC_OK on success."] pub fn rc_client_game_get_image_url (game : * const rc_client_game_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Changes the active disc in a multi-disc game."] pub fn rc_client_begin_change_media (client : * mut rc_client_t , file_path : * const :: core :: ffi :: c_char , data : * const u8 , data_size : usize , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Changes the active disc in a multi-disc game."] pub fn rc_client_begin_change_media_from_hash (client : * mut rc_client_t , hash : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } # [doc = "\\\n| Subsets                                                                     |\n\\"] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_subset_t { pub id : u32 , pub title : * const :: core :: ffi :: c_char , pub badge_name : [:: core :: ffi :: c_char ; 16usize] , pub num_achievements : u32 , pub num_leaderboards : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_subset_t"] [:: core :: mem :: size_of :: < rc_client_subset_t > () - 40usize] ; ["Alignment of rc_client_subset_t"] [:: core :: mem :: align_of :: < rc_client_subset_t > () - 8usize] ; ["Offset of field: rc_client_subset_t::id"] [:: core :: mem :: offset_of ! (rc_client_subset_t , id) - 0usize] ; ["Offset of field: rc_client_subset_t::title"] [:: core :: mem :: offset_of ! (rc_client_subset_t , title) - 8usize] ; ["Offset of field: rc_client_subset_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_subset_t , badge_name) - 16usize] ; ["Offset of field: rc_client_subset_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_client_subset_t , num_achievements) - 32usize] ; ["Offset of field: rc_client_subset_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_client_subset_t , num_leaderboards) - 36usize] ; } ; extern "C" { pub fn rc_client_get_subset_info (client : * mut rc_client_t , subset_id : u32) -> * const rc_client_subset_t ; } pub const RC_CLIENT_ACHIEVEMENT_STATE_INACTIVE : _bindgen_ty_17 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_ACTIVE : _bindgen_ty_17 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_UNLOCKED : _bindgen_ty_17 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_DISABLED : _bindgen_ty_17 = 3 ; pub const NUM_RC_CLIENT_ACHIEVEMENT_STATES : _bindgen_ty_17 = 4 ; # [doc = "\\\n| Achievements                                                                |\n\\"] pub type _bindgen_ty_17 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_NONE : _bindgen_ty_18 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_CORE : _bindgen_ty_18 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_UNOFFICIAL : _bindgen_ty_18 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_CORE_AND_UNOFFICIAL : _bindgen_ty_18 = 3 ; pub type _bindgen_ty_18 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_STANDARD : _bindgen_ty_19 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_MISSABLE : _bindgen_ty_19 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_PROGRESSION : _bindgen_ty_19 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_WIN : _bindgen_ty_19 = 3 ; pub type _bindgen_ty_19 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNKNOWN : _bindgen_ty_20 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_LOCKED : _bindgen_ty_20 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNLOCKED : _bindgen_ty_20 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNSUPPORTED : _bindgen_ty_20 = 3 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNOFFICIAL : _bindgen_ty_20 = 4 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_RECENTLY_UNLOCKED : _bindgen_ty_20 = 5 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_ACTIVE_CHALLENGE : _bindgen_ty_20 = 6 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_ALMOST_THERE : _bindgen_ty_20 = 7 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNSYNCED : _bindgen_ty_20 = 8 ; pub const NUM_RC_CLIENT_ACHIEVEMENT_BUCKETS : _bindgen_ty_20 = 9 ; pub type _bindgen_ty_20 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_NONE : _bindgen_ty_21 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_SOFTCORE : _bindgen_ty_21 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_HARDCORE : _bindgen_ty_21 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_BOTH : _bindgen_ty_21 = 3 ; pub type _bindgen_ty_21 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_t { pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub badge_name : [:: core :: ffi :: c_char ; 8usize] , pub measured_progress : [:: core :: ffi :: c_char ; 24usize] , pub measured_percent : f32 , pub id : u32 , pub points : u32 , pub unlock_time : time_t , pub state : u8 , pub category : u8 , pub bucket : u8 , pub unlocked : u8 , pub rarity : f32 , pub rarity_hardcore : f32 , pub type_ : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_t"] [:: core :: mem :: size_of :: < rc_client_achievement_t > () - 88usize] ; ["Alignment of rc_client_achievement_t"] [:: core :: mem :: align_of :: < rc_client_achievement_t > () - 8usize] ; ["Offset of field: rc_client_achievement_t::title"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , title) - 0usize] ; ["Offset of field: rc_client_achievement_t::description"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , description) - 8usize] ; ["Offset of field: rc_client_achievement_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , badge_name) - 16usize] ; ["Offset of field: rc_client_achievement_t::measured_progress"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , measured_progress) - 24usize] ; ["Offset of field: rc_client_achievement_t::measured_percent"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , measured_percent) - 48usize] ; ["Offset of field: rc_client_achievement_t::id"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , id) - 52usize] ; ["Offset of field: rc_client_achievement_t::points"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , points) - 56usize] ; ["Offset of field: rc_client_achievement_t::unlock_time"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , unlock_time) - 64usize] ; ["Offset of field: rc_client_achievement_t::state"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , state) - 72usize] ; ["Offset of field: rc_client_achievement_t::category"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , category) - 73usize] ; ["Offset of field: rc_client_achievement_t::bucket"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , bucket) - 74usize] ; ["Offset of field: rc_client_achievement_t::unlocked"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , unlocked) - 75usize] ; ["Offset of field: rc_client_achievement_t::rarity"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , rarity) - 76usize] ; ["Offset of field: rc_client_achievement_t::rarity_hardcore"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , rarity_hardcore) - 80usize] ; ["Offset of field: rc_client_achievement_t::type_"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , type_) - 84usize] ; } ; extern "C" { # [doc = " Get information about an achievement. Returns NULL if not found."] pub fn rc_client_get_achievement_info (client : * mut rc_client_t , id : u32) -> * const rc_client_achievement_t ; } extern "C" { # [doc = " Gets the URL for the achievement image.\n Returns RC_OK on success."] pub fn rc_client_achievement_get_image_url (achievement : * const rc_client_achievement_t , state : :: core :: ffi :: c_int , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_bucket_t { pub achievements : * mut * mut rc_client_achievement_t , pub num_achievements : u32 , pub label : * const :: core :: ffi :: c_char , pub subset_id : u32 , pub bucket_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_bucket_t"] [:: core :: mem :: size_of :: < rc_client_achievement_bucket_t > () - 32usize] ; ["Alignment of rc_client_achievement_bucket_t"] [:: core :: mem :: align_of :: < rc_client_achievement_bucket_t > () - 8usize] ; ["Offset of field: rc_client_achievement_bucket_t::achievements"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , achievements) - 0usize] ; ["Offset of field: rc_client_achievement_bucket_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , num_achievements) - 8usize] ; ["Offset of field: rc_client_achievement_bucket_t::label"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , label) - 16usize] ; ["Offset of field: rc_client_achievement_bucket_t::subset_id"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , subset_id) - 24usize] ; ["Offset of field: rc_client_achievement_bucket_t::bucket_type"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , bucket_type) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_list_t { pub buckets : * mut rc_client_achievement_bucket_t , pub num_buckets : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_list_t"] [:: core :: mem :: size_of :: < rc_client_achievement_list_t > () - 16usize] ; ["Alignment of rc_client_achievement_list_t"] [:: core :: mem :: align_of :: < rc_client_achievement_list_t > () - 8usize] ; ["Offset of field: rc_client_achievement_list_t::buckets"] [:: core :: mem :: offset_of ! (rc_client_achievement_list_t , buckets) - 0usize] ; ["Offset of field: rc_client_achievement_list_t::num_buckets"] [:: core :: mem :: offset_of ! (rc_client_achievement_list_t , num_buckets) - 8usize] ; } ; pub const RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_LOCK_STATE : _bindgen_ty_22 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_PROGRESS : _bindgen_ty_22 = 1 ; pub type _bindgen_ty_22 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Creates a list of achievements matching the specified category and grouping.\n Returns an allocated list that must be free'd by calling rc_client_destroy_achievement_list."] pub fn rc_client_create_achievement_list (client : * mut rc_client_t , category : :: core :: ffi :: c_int , grouping : :: core :: ffi :: c_int) -> * mut rc_client_achievement_list_t ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_get_achievement_list."] pub fn rc_client_destroy_achievement_list (list : * mut rc_client_achievement_list_t) ; } extern "C" { # [doc = " Returns non-zero if there are any achievements that can be queried through rc_client_create_achievement_list()."] pub fn rc_client_has_achievements (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } pub const RC_CLIENT_LEADERBOARD_STATE_INACTIVE : _bindgen_ty_23 = 0 ; pub const RC_CLIENT_LEADERBOARD_STATE_ACTIVE : _bindgen_ty_23 = 1 ; pub const RC_CLIENT_LEADERBOARD_STATE_TRACKING : _bindgen_ty_23 = 2 ; pub const RC_CLIENT_LEADERBOARD_STATE_DISABLED : _bindgen_ty_23 = 3 ; pub const NUM_RC_CLIENT_LEADERBOARD_STATES : _bindgen_ty_23 = 4 ; # [doc = "\\\n| Leaderboards                                                                |\n\\"] pub type _bindgen_ty_23 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_LEADERBOARD_FORMAT_TIME : _bindgen_ty_24 = 0 ; pub const RC_CLIENT_LEADERBOARD_FORMAT_SCORE : _bindgen_ty_24 = 1 ; pub const RC_CLIENT_LEADERBOARD_FORMAT_VALUE : _bindgen_ty_24 = 2 ; pub const NUM_RC_CLIENT_LEADERBOARD_FORMATS : _bindgen_ty_24 = 3 ; pub type _bindgen_ty_24 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_t { pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub tracker_value : * const :: core :: ffi :: c_char , pub id : u32 , pub state : u8 , pub format : u8 , pub lower_is_better : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_t > () - 32usize] ; ["Alignment of rc_client_leaderboard_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_t::title"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , title) - 0usize] ; ["Offset of field: rc_client_leaderboard_t::description"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , description) - 8usize] ; ["Offset of field: rc_client_leaderboard_t::tracker_value"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , tracker_value) - 16usize] ; ["Offset of field: rc_client_leaderboard_t::id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , id) - 24usize] ; ["Offset of field: rc_client_leaderboard_t::state"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , state) - 28usize] ; ["Offset of field: rc_client_leaderboard_t::format"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , format) - 29usize] ; ["Offset of field: rc_client_leaderboard_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , lower_is_better) - 30usize] ; } ; extern "C" { # [doc = " Get information about a leaderboard. Returns NULL if not found."] pub fn rc_client_get_leaderboard_info (client : * const rc_client_t , id : u32) -> * const rc_client_leaderboard_t ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_tracker_t { pub display : [:: core :: ffi :: c_char ; 24usize] , pub id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_tracker_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_tracker_t > () - 28usize] ; ["Alignment of rc_client_leaderboard_tracker_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_tracker_t > () - 4usize] ; ["Offset of field: rc_client_leaderboard_tracker_t::display"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_tracker_t , display) - 0usize] ; ["Offset of field: rc_client_leaderboard_tracker_t::id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_tracker_t , id) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_bucket_t { pub leaderboards : * mut * mut rc_client_leaderboard_t , pub num_leaderboards : u32 , pub label : * const :: core :: ffi :: c_char , pub subset_id : u32 , pub bucket_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_bucket_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_bucket_t > () - 32usize] ; ["Alignment of rc_client_leaderboard_bucket_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_bucket_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::leaderboards"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , leaderboards) - 0usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , num_leaderboards) - 8usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::label"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , label) - 16usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::subset_id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , subset_id) - 24usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::bucket_type"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , bucket_type) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_list_t { pub buckets : * mut rc_client_leaderboard_bucket_t , pub num_buckets : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_list_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_list_t > () - 16usize] ; ["Alignment of rc_client_leaderboard_list_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_list_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_list_t::buckets"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_list_t , buckets) - 0usize] ; ["Offset of field: rc_client_leaderboard_list_t::num_buckets"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_list_t , num_buckets) - 8usize] ; } ; pub const RC_CLIENT_LEADERBOARD_BUCKET_UNKNOWN : _bindgen_ty_25 = 0 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_INACTIVE : _bindgen_ty_25 = 1 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_ACTIVE : _bindgen_ty_25 = 2 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_UNSUPPORTED : _bindgen_ty_25 = 3 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_ALL : _bindgen_ty_25 = 4 ; pub const NUM_RC_CLIENT_LEADERBOARD_BUCKETS : _bindgen_ty_25 = 5 ; pub type _bindgen_ty_25 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_LEADERBOARD_LIST_GROUPING_NONE : _bindgen_ty_26 = 0 ; pub const RC_CLIENT_LEADERBOARD_LIST_GROUPING_TRACKING : _bindgen_ty_26 = 1 ; pub type _bindgen_ty_26 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Creates a list of leaderboards matching the specified grouping.\n Returns an allocated list that must be free'd by calling rc_client_destroy_leaderboard_list."] pub fn rc_client_create_leaderboard_list (client : * mut rc_client_t , grouping : :: core :: ffi :: c_int) -> * mut rc_client_leaderboard_list_t ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_get_leaderboard_list."] pub fn rc_client_destroy_leaderboard_list (list : * mut rc_client_leaderboard_list_t) ; } extern "C" { # [doc = " Returns non-zero if the current game has any leaderboards."] pub fn rc_client_has_leaderboards (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_entry_t { pub user : * const :: core :: ffi :: c_char , pub display : [:: core :: ffi :: c_char ; 24usize] , pub submitted : time_t , pub rank : u32 , pub index : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_entry_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_entry_t > () - 48usize] ; ["Alignment of rc_client_leaderboard_entry_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_entry_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_t::user"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , user) - 0usize] ; ["Offset of field: rc_client_leaderboard_entry_t::display"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , display) - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_t::submitted"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , submitted) - 32usize] ; ["Offset of field: rc_client_leaderboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , rank) - 40usize] ; ["Offset of field: rc_client_leaderboard_entry_t::index"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , index) - 44usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_entry_list_t { pub entries : * mut rc_client_leaderboard_entry_t , pub num_entries : u32 , pub total_entries : u32 , pub user_index : i32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_entry_list_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_entry_list_t > () - 24usize] ; ["Alignment of rc_client_leaderboard_entry_list_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_entry_list_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , entries) - 0usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::num_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , num_entries) - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::total_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , total_entries) - 12usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::user_index"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , user_index) - 16usize] ; } ; pub type rc_client_fetch_leaderboard_entries_callback_t = :: core :: option :: Option < unsafe extern "C" fn (result : :: core :: ffi :: c_int , error_message : * const :: core :: ffi :: c_char , list : * mut rc_client_leaderboard_entry_list_t , client : * mut rc_client_t , callback_userdata : * mut :: core :: ffi :: c_void) > ; extern "C" { # [doc = " Fetches a list of leaderboard entries from the server.\n Callback receives an allocated list that must be free'd by calling rc_client_destroy_leaderboard_entry_list."] pub fn rc_client_begin_fetch_leaderboard_entries (client : * mut rc_client_t , leaderboard_id : u32 , first_entry : u32 , count : u32 , callback : rc_client_fetch_leaderboard_entries_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Fetches a list of leaderboard entries from the server containing the logged-in user.\n Callback receives an allocated list that must be free'd by calling rc_client_destroy_leaderboard_entry_list."] pub fn rc_client_begin_fetch_leaderboard_entries_around_user (client : * mut rc_client_t , leaderboard_id : u32 , count : u32 , callback : rc_client_fetch_leaderboard_entries_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Gets the URL for the profile picture of the user associated to a leaderboard entry.\n Returns RC_OK on success."] pub fn rc_client_leaderboard_entry_get_user_image_url (entry : * const rc_client_leaderboard_entry_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_begin_fetch_leaderboard_entries or rc_client_begin_fetch_leaderboard_entries_around_user."] pub fn rc_client_destroy_leaderboard_entry_list (list : * mut rc_client_leaderboard_entry_list_t) ; } # [doc = " Used for scoreboard events. Contains the response from the server when a leaderboard entry is submitted.\n NOTE: This structure is only valid within the event callback. If you want to make use of the data outside\n of the callback, you should create copies of both the top entries and usernames within."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_scoreboard_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub score : [:: core :: ffi :: c_char ; 24usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_scoreboard_entry_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_scoreboard_entry_t > () - 40usize] ; ["Alignment of rc_client_leaderboard_scoreboard_entry_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_scoreboard_entry_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::username"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , username) - 0usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , rank) - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , score) - 12usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_scoreboard_t { pub leaderboard_id : u32 , pub submitted_score : [:: core :: ffi :: c_char ; 24usize] , pub best_score : [:: core :: ffi :: c_char ; 24usize] , pub new_rank : u32 , pub num_entries : u32 , pub top_entries : * mut rc_client_leaderboard_scoreboard_entry_t , pub num_top_entries : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_scoreboard_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_scoreboard_t > () - 80usize] ; ["Alignment of rc_client_leaderboard_scoreboard_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_scoreboard_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::submitted_score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , submitted_score) - 4usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::best_score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , best_score) - 28usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::new_rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , new_rank) - 52usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::num_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , num_entries) - 56usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::top_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , top_entries) - 64usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::num_top_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , num_top_entries) - 72usize] ; } ; extern "C" { # [doc = " Returns non-zero if the current game supports rich presence."] pub fn rc_client_has_rich_presence (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Gets the current rich presence message.\n Returns the number of characters written to buffer."] pub fn rc_client_get_rich_presence_message (client : * mut rc_client_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> usize ; } pub const RC_CLIENT_EVENT_TYPE_NONE : _bindgen_ty_27 = 0 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_TRIGGERED : _bindgen_ty_27 = 1 ; pub const RC_CLIENT_EVENT_LEADERBOARD_STARTED : _bindgen_ty_27 = 2 ; pub const RC_CLIENT_EVENT_LEADERBOARD_FAILED : _bindgen_ty_27 = 3 ; pub const RC_CLIENT_EVENT_LEADERBOARD_SUBMITTED : _bindgen_ty_27 = 4 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_CHALLENGE_INDICATOR_SHOW : _bindgen_ty_27 = 5 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_CHALLENGE_INDICATOR_HIDE : _bindgen_ty_27 = 6 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_SHOW : _bindgen_ty_27 = 7 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_HIDE : _bindgen_ty_27 = 8 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_UPDATE : _bindgen_ty_27 = 9 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_SHOW : _bindgen_ty_27 = 10 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_HIDE : _bindgen_ty_27 = 11 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_UPDATE : _bindgen_ty_27 = 12 ; pub const RC_CLIENT_EVENT_LEADERBOARD_SCOREBOARD : _bindgen_ty_27 = 13 ; pub const RC_CLIENT_EVENT_RESET : _bindgen_ty_27 = 14 ; pub const RC_CLIENT_EVENT_GAME_COMPLETED : _bindgen_ty_27 = 15 ; pub const RC_CLIENT_EVENT_SERVER_ERROR : _bindgen_ty_27 = 16 ; pub const RC_CLIENT_EVENT_DISCONNECTED : _bindgen_ty_27 = 17 ; pub const RC_CLIENT_EVENT_RECONNECTED : _bindgen_ty_27 = 18 ; # [doc = "\\\n| Processing                                                                  |\n\\"] pub type _bindgen_ty_27 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_server_error_t { pub error_message : * const :: core :: ffi :: c_char , pub api : * const :: core :: ffi :: c_char , pub result : :: core :: ffi :: c_int , pub related_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_server_error_t"] [:: core :: mem :: size_of :: < rc_client_server_error_t > () - 24usize] ; ["Alignment of rc_client_server_error_t"] [:: core :: mem :: align_of :: < rc_client_server_error_t > () - 8usize] ; ["Offset of field: rc_client_server_error_t::error_message"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , error_message) - 0usize] ; ["Offset of field: rc_client_server_error_t::api"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , api) - 8usize] ; ["Offset of field: rc_client_server_error_t::result"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , result) - 16usize] ; ["Offset of field: rc_client_server_error_t::related_id"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , related_id) - 20usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_event_t { pub type_ : u32 , pub achievement : * mut rc_client_achievement_t , pub leaderboard : * mut rc_client_leaderboard_t , pub leaderboard_tracker : * mut rc_client_leaderboard_tracker_t , pub leaderboard_scoreboard : * mut rc_client_leaderboard_scoreboard_t , pub server_error : * mut rc_client_server_error_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_event_t"] [:: core :: mem :: size_of :: < rc_client_event_t > () - 48usize] ; ["Alignment of rc_client_event_t"] [:: core :: mem :: align_of :: < rc_client_event_t > () - 8usize] ; ["Offset of field: rc_client_event_t::type_"] [:: core :: mem :: offset_of ! (rc_client_event_t , type_) - 0usize] ; ["Offset of field: rc_client_event_t::achievement"] [:: core :: mem :: offset_of ! (rc_client_event_t , achievement) - 8usize] ; ["Offset of field: rc_client_event_t::leaderboard"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard) - 16usize] ; ["Offset of field: rc_client_event_t::leaderboard_tracker"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard_tracker) - 24usize] ; ["Offset of field: rc_client_event_t::leaderboard_scoreboard"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard_scoreboard) - 32usize] ; ["Offset of field: rc_client_event_t::server_error"] [:: core :: mem :: offset_of ! (rc_client_event_t , server_error) - 40usize] ; } ; # [doc = " Callback used to notify the client when certain events occur."] pub type rc_client_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (event : * const rc_client_event_t , client : * mut rc_client_t) > ; extern "C" { # [doc = " Provides a callback for event handling."] pub fn rc_client_set_event_handler (client : * mut rc_client_t , handler : rc_client_event_handler_t) ; } extern "C" { # [doc = " Provides a callback for reading memory."] pub fn rc_client_set_read_memory_function (client : * mut rc_client_t , handler : rc_client_read_memory_func_t) ; } extern "C" { # [doc = " Determines if there are any active achievements/leaderboards/rich presence that need processing."] pub fn rc_client_is_processing_required (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Processes achievements for the current frame."] pub fn rc_client_do_frame (client : * mut rc_client_t) ; } extern "C" { # [doc = " Processes the periodic queue.\n Called internally by rc_client_do_frame.\n Should be explicitly called if rc_client_do_frame is not being called because emulation is paused."] pub fn rc_client_idle (client : * mut rc_client_t) ; } extern "C" { # [doc = " Determines if a sufficient amount of frames have been processed since the last call to rc_client_can_pause.\n Should not be called unless the client is trying to pause.\n If false is returned, and frames_remaining is not NULL, frames_remaining will be set to the number of frames\n still required before pause is allowed, which can be converted to a time in seconds for displaying to the user."] pub fn rc_client_can_pause (client : * mut rc_client_t , frames_remaining : * mut u32) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Informs the runtime that the emulator has been reset. Will reset all achievements and leaderboards\n to their initial state (includes hiding indicators/trackers)."] pub fn rc_client_reset (client : * mut rc_client_t) ; } extern "C" { # [doc = " Gets the number of bytes needed to serialized the runtime state."] pub fn rc_client_progress_size (client : * mut rc_client_t) -> usize ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator.\n [deprecated] use rc_client_serialize_progress_sized instead"] pub fn rc_client_serialize_progress (client : * mut rc_client_t , buffer : * mut u8) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator."] pub fn rc_client_serialize_progress_sized (client : * mut rc_client_t , buffer : * mut u8 , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Deserializes the runtime state from a buffer.\n Returns RC_OK on success, or an error indicator.\n [deprecated] use rc_client_deserialize_progress_sized instead"] pub fn rc_client_deserialize_progress (client : * mut rc_client_t , serialized : * const u8) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator."] pub fn rc_client_deserialize_progress_sized (client : * mut rc_client_t , serialized : * const u8 , serialized_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __locale_data { pub _address : u8 , } pub type __builtin_va_list = [__va_list_tag ; 1usize] ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __va_list_tag { pub gp_offset : :: core :: ffi :: c_uint , pub fp_offset : :: core :: ffi :: c_uint , pub overflow_arg_area : * mut :: core :: ffi :: c_void , pub reg_save_area : * mut :: core :: ffi :: c_void , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __va_list_tag"] [:: core :: mem :: size_of :: < __va_list_tag > () - 24usize] ; ["Alignment of __va_list_tag"] [:: core :: mem :: align_of :: < __va_list_tag > () - 8usize] ; ["Offset of field: __va_list_tag::gp_offset"] [:: core :: mem :: offset_of ! (__va_list_tag , gp_offset) - 0usize] ; ["Offset of field: __va_list_tag::fp_offset"] [:: core :: mem :: offset_of ! (__va_list_tag , fp_offset) - 4usize] ; ["Offset of field: __va_list_tag::overflow_arg_area"] [:: core :: mem :: offset_of ! (__va_list_tag , overflow_arg_area) - 8usize] ; ["Offset of field: __va_list_tag::reg_save_area"] [:: core :: mem :: offset_of ! (__va_list_tag , reg_save_area) - 16usize] ; } ;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]  --> /opt/rustwide/target/debug/build/rcheevos-sys/badd2487a33295ab/out/bindings.rs:3:124851
[INFO] [stdout]   |
[INFO] [stdout] 3 | ...usize , 24u8 , { let _flags2 : u32 = unsafe { :: core :: mem :: transmute (_flags2) } ; _flags2 as u64 }) ; __bindgen_bitfield_uni...
[INFO] [stdout]   |                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: replace this with
[INFO] [stdout]   |
[INFO] [stdout] 3 - # [repr (C)] # [derive (Copy , Clone , Debug , Default , Eq , Hash , Ord , PartialEq , PartialOrd)] pub struct __BindgenBitfieldUnit < Storage > { storage : Storage , } impl < Storage > __BindgenBitfieldUnit < Storage > { # [inline] pub const fn new (storage : Storage) -> Self { Self { storage } } } impl < Storage > __BindgenBitfieldUnit < Storage > where Storage : AsRef < [u8] > + AsMut < [u8] >, { # [inline] pub fn get_bit (& self , index : usize) -> bool { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = self . storage . as_ref () [byte_index] ; let bit_index = if cfg ! (target_endian = "big") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; byte & mask == mask } # [inline] pub fn set_bit (& mut self , index : usize , val : bool) { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = & mut self . storage . as_mut () [byte_index] ; let bit_index = if cfg ! (target_endian = "big") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; if val { * byte |= mask ; } else { * byte &= ! mask ; } } # [inline] pub fn get (& self , bit_offset : usize , bit_width : u8) -> u64 { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; let mut val = 0 ; for i in 0 .. (bit_width as usize) { if self . get_bit (i + bit_offset) { let index = if cfg ! (target_endian = "big") { bit_width as usize - 1 - i } else { i } ; val |= 1 << index ; } } val } # [inline] pub fn set (& mut self , bit_offset : usize , bit_width : u8 , val : u64) { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; for i in 0 .. (bit_width as usize) { let mask = 1 << i ; let val_bit_is_set = val & mask == mask ; let index = if cfg ! (target_endian = "big") { bit_width as usize - 1 - i } else { i } ; self . set_bit (index + bit_offset , val_bit_is_set) ; } } } # [derive (PartialEq , Copy , Clone , Hash , Debug , Default)] # [repr (C)] pub struct __BindgenComplex < T > { pub re : T , pub im : T } pub const _STDINT_H : u32 = 1 ; pub const _FEATURES_H : u32 = 1 ; pub const _DEFAULT_SOURCE : u32 = 1 ; pub const __GLIBC_USE_ISOC2Y : u32 = 0 ; pub const __GLIBC_USE_ISOC23 : u32 = 0 ; pub const __USE_ISOC11 : u32 = 1 ; pub const __USE_ISOC99 : u32 = 1 ; pub const __USE_ISOC95 : u32 = 1 ; pub const __USE_POSIX_IMPLICITLY : u32 = 1 ; pub const _POSIX_SOURCE : u32 = 1 ; pub const _POSIX_C_SOURCE : u32 = 202405 ; pub const __USE_POSIX : u32 = 1 ; pub const __USE_POSIX2 : u32 = 1 ; pub const __USE_POSIX199309 : u32 = 1 ; pub const __USE_POSIX199506 : u32 = 1 ; pub const __USE_XOPEN2K : u32 = 1 ; pub const __USE_XOPEN2K8 : u32 = 1 ; pub const _ATFILE_SOURCE : u32 = 1 ; pub const __USE_XOPEN2K24 : u32 = 1 ; pub const __WORDSIZE : u32 = 64 ; pub const __WORDSIZE_TIME64_COMPAT32 : u32 = 1 ; pub const __SYSCALL_WORDSIZE : u32 = 64 ; pub const __TIMESIZE : u32 = 64 ; pub const __USE_TIME_BITS64 : u32 = 1 ; pub const __USE_MISC : u32 = 1 ; 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_C23_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 ; pub const __STDC_IEC_559_COMPLEX__ : u32 = 1 ; 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 = 43 ; pub const _SYS_CDEFS_H : u32 = 1 ; pub const __glibc_c99_flexarr_available : u32 = 1 ; pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI : u32 = 0 ; pub const __HAVE_GENERIC_SELECTION : u32 = 1 ; pub const __GLIBC_USE_LIB_EXT2 : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT_C23 : u32 = 0 ; 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_C23 : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_TYPES_EXT : u32 = 0 ; pub const _BITS_TYPES_H : u32 = 1 ; pub const _BITS_TYPESIZES_H : u32 = 1 ; pub const __OFF_T_MATCHES_OFF64_T : u32 = 1 ; pub const __INO_T_MATCHES_INO64_T : u32 = 1 ; pub const __RLIM_T_MATCHES_RLIM64_T : u32 = 1 ; pub const __STATFS_MATCHES_STATFS64 : u32 = 1 ; pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 : u32 = 1 ; pub const __FD_SETSIZE : u32 = 1024 ; pub const _BITS_TIME64_H : u32 = 1 ; pub const _BITS_WCHAR_H : u32 = 1 ; pub const _BITS_STDINT_INTN_H : u32 = 1 ; pub const _BITS_STDINT_UINTN_H : u32 = 1 ; pub const _BITS_STDINT_LEAST_H : u32 = 1 ; pub const INT8_MIN : i32 = - 128 ; pub const INT16_MIN : i32 = - 32768 ; pub const INT32_MIN : i32 = - 2147483648 ; pub const INT8_MAX : u32 = 127 ; pub const INT16_MAX : u32 = 32767 ; pub const INT32_MAX : u32 = 2147483647 ; pub const UINT8_MAX : u32 = 255 ; pub const UINT16_MAX : u32 = 65535 ; pub const UINT32_MAX : u32 = 4294967295 ; pub const INT_LEAST8_MIN : i32 = - 128 ; pub const INT_LEAST16_MIN : i32 = - 32768 ; pub const INT_LEAST32_MIN : i32 = - 2147483648 ; pub const INT_LEAST8_MAX : u32 = 127 ; pub const INT_LEAST16_MAX : u32 = 32767 ; pub const INT_LEAST32_MAX : u32 = 2147483647 ; pub const UINT_LEAST8_MAX : u32 = 255 ; pub const UINT_LEAST16_MAX : u32 = 65535 ; pub const UINT_LEAST32_MAX : u32 = 4294967295 ; pub const INT_FAST8_MIN : i32 = - 128 ; pub const INT_FAST16_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST32_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST8_MAX : u32 = 127 ; pub const INT_FAST16_MAX : u64 = 9223372036854775807 ; pub const INT_FAST32_MAX : u64 = 9223372036854775807 ; pub const UINT_FAST8_MAX : u32 = 255 ; pub const UINT_FAST16_MAX : i32 = - 1 ; pub const UINT_FAST32_MAX : i32 = - 1 ; pub const INTPTR_MIN : i64 = - 9223372036854775808 ; pub const INTPTR_MAX : u64 = 9223372036854775807 ; pub const UINTPTR_MAX : i32 = - 1 ; pub const PTRDIFF_MIN : i64 = - 9223372036854775808 ; pub const PTRDIFF_MAX : u64 = 9223372036854775807 ; pub const SIG_ATOMIC_MIN : i32 = - 2147483648 ; pub const SIG_ATOMIC_MAX : u32 = 2147483647 ; pub const SIZE_MAX : i32 = - 1 ; pub const WINT_MIN : u32 = 0 ; pub const WINT_MAX : u32 = 4294967295 ; pub const RC_VALUE_MAX_NAME_LENGTH : u32 = 15 ; pub const _TIME_H : u32 = 1 ; pub const _BITS_TIME_H : u32 = 1 ; pub const CLOCK_REALTIME : u32 = 0 ; pub const CLOCK_MONOTONIC : u32 = 1 ; pub const CLOCK_PROCESS_CPUTIME_ID : u32 = 2 ; pub const CLOCK_THREAD_CPUTIME_ID : u32 = 3 ; pub const CLOCK_MONOTONIC_RAW : u32 = 4 ; pub const CLOCK_REALTIME_COARSE : u32 = 5 ; pub const CLOCK_MONOTONIC_COARSE : u32 = 6 ; pub const CLOCK_BOOTTIME : u32 = 7 ; pub const CLOCK_REALTIME_ALARM : u32 = 8 ; pub const CLOCK_BOOTTIME_ALARM : u32 = 9 ; pub const CLOCK_TAI : u32 = 11 ; pub const TIMER_ABSTIME : u32 = 1 ; pub const __clock_t_defined : u32 = 1 ; pub const __time_t_defined : u32 = 1 ; pub const __struct_tm_defined : u32 = 1 ; pub const _STRUCT_TIMESPEC : u32 = 1 ; pub const _BITS_ENDIAN_H : u32 = 1 ; pub const __LITTLE_ENDIAN : u32 = 1234 ; pub const __BIG_ENDIAN : u32 = 4321 ; pub const __PDP_ENDIAN : u32 = 3412 ; pub const _BITS_ENDIANNESS_H : u32 = 1 ; pub const __BYTE_ORDER : u32 = 1234 ; pub const __FLOAT_WORD_ORDER : u32 = 1234 ; pub const __clockid_t_defined : u32 = 1 ; pub const __timer_t_defined : u32 = 1 ; pub const __itimerspec_defined : u32 = 1 ; pub const _BITS_TYPES_LOCALE_T_H : u32 = 1 ; pub const _BITS_TYPES___LOCALE_T_H : u32 = 1 ; pub const TIME_UTC : u32 = 1 ; pub const _STDIO_H : u32 = 1 ; pub const _____fpos_t_defined : u32 = 1 ; pub const ____mbstate_t_defined : u32 = 1 ; pub const _____fpos64_t_defined : u32 = 1 ; pub const ____FILE_defined : u32 = 1 ; pub const __FILE_defined : u32 = 1 ; 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 ; pub const BUFSIZ : u32 = 8192 ; pub const EOF : i32 = - 1 ; 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 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 ; pub const __HAVE_FLOAT128 : u32 = 1 ; pub const __HAVE_DISTINCT_FLOAT128 : u32 = 1 ; pub const __HAVE_FLOAT64X : u32 = 1 ; pub const __HAVE_FLOAT64X_LONG_DOUBLE : u32 = 1 ; pub const __HAVE_FLOAT16 : u32 = 0 ; pub const __HAVE_FLOAT32 : u32 = 1 ; pub const __HAVE_FLOAT64 : u32 = 1 ; pub const __HAVE_FLOAT32X : u32 = 1 ; pub const __HAVE_FLOAT128X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT16 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT32 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT64 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT32X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT64X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT128X : u32 = 0 ; pub const __HAVE_FLOATN_NOT_TYPEDEF : u32 = 0 ; pub const RC_IMAGE_TYPE_GAME : u32 = 1 ; pub const RC_IMAGE_TYPE_ACHIEVEMENT : u32 = 2 ; pub const RC_IMAGE_TYPE_ACHIEVEMENT_LOCKED : u32 = 3 ; pub const RC_IMAGE_TYPE_USER : u32 = 4 ; pub const RC_ACHIEVEMENT_CATEGORY_CORE : u32 = 3 ; pub const RC_ACHIEVEMENT_CATEGORY_UNOFFICIAL : u32 = 5 ; pub const RC_ACHIEVEMENT_TYPE_STANDARD : u32 = 0 ; pub const RC_ACHIEVEMENT_TYPE_MISSABLE : u32 = 1 ; pub const RC_ACHIEVEMENT_TYPE_PROGRESSION : u32 = 2 ; pub const RC_ACHIEVEMENT_TYPE_WIN : u32 = 3 ; pub const RC_CLIENT_LEADERBOARD_DISPLAY_SIZE : u32 = 24 ; pub const RC_OK : _bindgen_ty_1 = 0 ; pub const RC_INVALID_LUA_OPERAND : _bindgen_ty_1 = - 1 ; pub const RC_INVALID_MEMORY_OPERAND : _bindgen_ty_1 = - 2 ; pub const RC_INVALID_CONST_OPERAND : _bindgen_ty_1 = - 3 ; pub const RC_INVALID_FP_OPERAND : _bindgen_ty_1 = - 4 ; pub const RC_INVALID_CONDITION_TYPE : _bindgen_ty_1 = - 5 ; pub const RC_INVALID_OPERATOR : _bindgen_ty_1 = - 6 ; pub const RC_INVALID_REQUIRED_HITS : _bindgen_ty_1 = - 7 ; pub const RC_DUPLICATED_START : _bindgen_ty_1 = - 8 ; pub const RC_DUPLICATED_CANCEL : _bindgen_ty_1 = - 9 ; pub const RC_DUPLICATED_SUBMIT : _bindgen_ty_1 = - 10 ; pub const RC_DUPLICATED_VALUE : _bindgen_ty_1 = - 11 ; pub const RC_DUPLICATED_PROGRESS : _bindgen_ty_1 = - 12 ; pub const RC_MISSING_START : _bindgen_ty_1 = - 13 ; pub const RC_MISSING_CANCEL : _bindgen_ty_1 = - 14 ; pub const RC_MISSING_SUBMIT : _bindgen_ty_1 = - 15 ; pub const RC_MISSING_VALUE : _bindgen_ty_1 = - 16 ; pub const RC_INVALID_LBOARD_FIELD : _bindgen_ty_1 = - 17 ; pub const RC_MISSING_DISPLAY_STRING : _bindgen_ty_1 = - 18 ; pub const RC_OUT_OF_MEMORY : _bindgen_ty_1 = - 19 ; pub const RC_INVALID_VALUE_FLAG : _bindgen_ty_1 = - 20 ; pub const RC_MISSING_VALUE_MEASURED : _bindgen_ty_1 = - 21 ; pub const RC_MULTIPLE_MEASURED : _bindgen_ty_1 = - 22 ; pub const RC_INVALID_MEASURED_TARGET : _bindgen_ty_1 = - 23 ; pub const RC_INVALID_COMPARISON : _bindgen_ty_1 = - 24 ; pub const RC_INVALID_STATE : _bindgen_ty_1 = - 25 ; pub const RC_INVALID_JSON : _bindgen_ty_1 = - 26 ; pub const RC_API_FAILURE : _bindgen_ty_1 = - 27 ; pub const RC_LOGIN_REQUIRED : _bindgen_ty_1 = - 28 ; pub const RC_NO_GAME_LOADED : _bindgen_ty_1 = - 29 ; pub const RC_HARDCORE_DISABLED : _bindgen_ty_1 = - 30 ; pub const RC_ABORTED : _bindgen_ty_1 = - 31 ; pub const RC_NO_RESPONSE : _bindgen_ty_1 = - 32 ; pub const RC_ACCESS_DENIED : _bindgen_ty_1 = - 33 ; pub const RC_INVALID_CREDENTIALS : _bindgen_ty_1 = - 34 ; pub const RC_EXPIRED_TOKEN : _bindgen_ty_1 = - 35 ; pub const RC_INSUFFICIENT_BUFFER : _bindgen_ty_1 = - 36 ; pub const RC_INVALID_VARIABLE_NAME : _bindgen_ty_1 = - 37 ; pub const RC_UNKNOWN_VARIABLE_NAME : _bindgen_ty_1 = - 38 ; # [doc = "\\\n| Return values                                                               |\n\\"] pub type _bindgen_ty_1 = :: core :: ffi :: c_int ; extern "C" { pub fn rc_error_str (ret : :: core :: ffi :: c_int) -> * const :: core :: ffi :: c_char ; } pub type wchar_t = :: core :: ffi :: c_int ; # [repr (C)] # [repr (align (16))] # [derive (Debug , Copy , Clone)] pub struct max_align_t { pub __clang_max_align_nonce1 : :: core :: ffi :: c_longlong , pub __bindgen_padding_0 : u64 , pub __clang_max_align_nonce2 : u128 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of max_align_t"] [:: core :: mem :: size_of :: < max_align_t > () - 32usize] ; ["Alignment of max_align_t"] [:: core :: mem :: align_of :: < max_align_t > () - 16usize] ; ["Offset of field: max_align_t::__clang_max_align_nonce1"] [:: core :: mem :: offset_of ! (max_align_t , __clang_max_align_nonce1) - 0usize] ; ["Offset of field: max_align_t::__clang_max_align_nonce2"] [:: core :: mem :: offset_of ! (max_align_t , __clang_max_align_nonce2) - 16usize] ; } ; pub type __u_char = :: core :: ffi :: c_uchar ; pub type __u_short = :: core :: ffi :: c_ushort ; pub type __u_int = :: core :: ffi :: c_uint ; pub type __u_long = :: core :: ffi :: c_ulong ; pub type __int8_t = :: core :: ffi :: c_schar ; pub type __uint8_t = :: core :: ffi :: c_uchar ; pub type __int16_t = :: core :: ffi :: c_short ; pub type __uint16_t = :: core :: ffi :: c_ushort ; pub type __int32_t = :: core :: ffi :: c_int ; pub type __uint32_t = :: core :: ffi :: c_uint ; pub type __int64_t = :: core :: ffi :: c_long ; pub type __uint64_t = :: core :: ffi :: c_ulong ; pub type __int_least8_t = __int8_t ; pub type __uint_least8_t = __uint8_t ; pub type __int_least16_t = __int16_t ; pub type __uint_least16_t = __uint16_t ; pub type __int_least32_t = __int32_t ; pub type __uint_least32_t = __uint32_t ; pub type __int_least64_t = __int64_t ; pub type __uint_least64_t = __uint64_t ; pub type __quad_t = :: core :: ffi :: c_long ; pub type __u_quad_t = :: core :: ffi :: c_ulong ; pub type __intmax_t = :: core :: ffi :: c_long ; pub type __uintmax_t = :: core :: ffi :: c_ulong ; pub type __dev_t = :: core :: ffi :: c_ulong ; pub type __uid_t = :: core :: ffi :: c_uint ; pub type __gid_t = :: core :: ffi :: c_uint ; pub type __ino_t = :: core :: ffi :: c_ulong ; pub type __ino64_t = :: core :: ffi :: c_ulong ; pub type __mode_t = :: core :: ffi :: c_uint ; pub type __nlink_t = :: core :: ffi :: c_ulong ; pub type __off_t = :: core :: ffi :: c_long ; pub type __off64_t = :: core :: ffi :: c_long ; pub type __pid_t = :: core :: ffi :: c_int ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __fsid_t { pub __val : [:: core :: ffi :: c_int ; 2usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __fsid_t"] [:: core :: mem :: size_of :: < __fsid_t > () - 8usize] ; ["Alignment of __fsid_t"] [:: core :: mem :: align_of :: < __fsid_t > () - 4usize] ; ["Offset of field: __fsid_t::__val"] [:: core :: mem :: offset_of ! (__fsid_t , __val) - 0usize] ; } ; pub type __clock_t = :: core :: ffi :: c_long ; pub type __rlim_t = :: core :: ffi :: c_ulong ; pub type __rlim64_t = :: core :: ffi :: c_ulong ; pub type __id_t = :: core :: ffi :: c_uint ; pub type __time_t = :: core :: ffi :: c_long ; pub type __useconds_t = :: core :: ffi :: c_uint ; pub type __suseconds_t = :: core :: ffi :: c_long ; pub type __suseconds64_t = :: core :: ffi :: c_long ; pub type __daddr_t = :: core :: ffi :: c_int ; pub type __key_t = :: core :: ffi :: c_int ; pub type __clockid_t = :: core :: ffi :: c_int ; pub type __timer_t = * mut :: core :: ffi :: c_void ; pub type __blksize_t = :: core :: ffi :: c_long ; pub type __blkcnt_t = :: core :: ffi :: c_long ; pub type __blkcnt64_t = :: core :: ffi :: c_long ; pub type __fsblkcnt_t = :: core :: ffi :: c_ulong ; pub type __fsblkcnt64_t = :: core :: ffi :: c_ulong ; pub type __fsfilcnt_t = :: core :: ffi :: c_ulong ; pub type __fsfilcnt64_t = :: core :: ffi :: c_ulong ; pub type __fsword_t = :: core :: ffi :: c_long ; pub type __ssize_t = :: core :: ffi :: c_long ; pub type __syscall_slong_t = :: core :: ffi :: c_long ; pub type __syscall_ulong_t = :: core :: ffi :: c_ulong ; pub type __loff_t = __off64_t ; pub type __caddr_t = * mut :: core :: ffi :: c_char ; pub type __intptr_t = :: core :: ffi :: c_long ; pub type __socklen_t = :: core :: ffi :: c_uint ; pub type __sig_atomic_t = :: core :: ffi :: c_int ; pub type int_least8_t = __int_least8_t ; pub type int_least16_t = __int_least16_t ; pub type int_least32_t = __int_least32_t ; pub type int_least64_t = __int_least64_t ; pub type uint_least8_t = __uint_least8_t ; pub type uint_least16_t = __uint_least16_t ; pub type uint_least32_t = __uint_least32_t ; pub type uint_least64_t = __uint_least64_t ; pub type int_fast8_t = :: core :: ffi :: c_schar ; pub type int_fast16_t = :: core :: ffi :: c_long ; pub type int_fast32_t = :: core :: ffi :: c_long ; pub type int_fast64_t = :: core :: ffi :: c_long ; pub type uint_fast8_t = :: core :: ffi :: c_uchar ; pub type uint_fast16_t = :: core :: ffi :: c_ulong ; pub type uint_fast32_t = :: core :: ffi :: c_ulong ; pub type uint_fast64_t = :: core :: ffi :: c_ulong ; pub type intmax_t = __intmax_t ; pub type uintmax_t = __uintmax_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct lua_State { _unused : [u8 ; 0] , } # [doc = " Callback used to read num_bytes bytes from memory starting at address. If\n num_bytes is greater than 1, the value is read in little-endian from\n memory."] pub type rc_peek_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , num_bytes : u32 , ud : * mut :: core :: ffi :: c_void) -> u32 > ; pub const RC_MEMSIZE_8_BITS : _bindgen_ty_2 = 0 ; pub const RC_MEMSIZE_16_BITS : _bindgen_ty_2 = 1 ; pub const RC_MEMSIZE_24_BITS : _bindgen_ty_2 = 2 ; pub const RC_MEMSIZE_32_BITS : _bindgen_ty_2 = 3 ; pub const RC_MEMSIZE_LOW : _bindgen_ty_2 = 4 ; pub const RC_MEMSIZE_HIGH : _bindgen_ty_2 = 5 ; pub const RC_MEMSIZE_BIT_0 : _bindgen_ty_2 = 6 ; pub const RC_MEMSIZE_BIT_1 : _bindgen_ty_2 = 7 ; pub const RC_MEMSIZE_BIT_2 : _bindgen_ty_2 = 8 ; pub const RC_MEMSIZE_BIT_3 : _bindgen_ty_2 = 9 ; pub const RC_MEMSIZE_BIT_4 : _bindgen_ty_2 = 10 ; pub const RC_MEMSIZE_BIT_5 : _bindgen_ty_2 = 11 ; pub const RC_MEMSIZE_BIT_6 : _bindgen_ty_2 = 12 ; pub const RC_MEMSIZE_BIT_7 : _bindgen_ty_2 = 13 ; pub const RC_MEMSIZE_BITCOUNT : _bindgen_ty_2 = 14 ; pub const RC_MEMSIZE_16_BITS_BE : _bindgen_ty_2 = 15 ; pub const RC_MEMSIZE_24_BITS_BE : _bindgen_ty_2 = 16 ; pub const RC_MEMSIZE_32_BITS_BE : _bindgen_ty_2 = 17 ; pub const RC_MEMSIZE_FLOAT : _bindgen_ty_2 = 18 ; pub const RC_MEMSIZE_MBF32 : _bindgen_ty_2 = 19 ; pub const RC_MEMSIZE_MBF32_LE : _bindgen_ty_2 = 20 ; pub const RC_MEMSIZE_FLOAT_BE : _bindgen_ty_2 = 21 ; pub const RC_MEMSIZE_DOUBLE32 : _bindgen_ty_2 = 22 ; pub const RC_MEMSIZE_DOUBLE32_BE : _bindgen_ty_2 = 23 ; pub const RC_MEMSIZE_VARIABLE : _bindgen_ty_2 = 24 ; # [doc = "\\\n| Memory References                                                           |\n\\"] pub type _bindgen_ty_2 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memref_value_t { pub value : u32 , pub prior : u32 , pub size : u8 , pub changed : u8 , pub type_ : u8 , pub is_indirect : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memref_value_t"] [:: core :: mem :: size_of :: < rc_memref_value_t > () - 12usize] ; ["Alignment of rc_memref_value_t"] [:: core :: mem :: align_of :: < rc_memref_value_t > () - 4usize] ; ["Offset of field: rc_memref_value_t::value"] [:: core :: mem :: offset_of ! (rc_memref_value_t , value) - 0usize] ; ["Offset of field: rc_memref_value_t::prior"] [:: core :: mem :: offset_of ! (rc_memref_value_t , prior) - 4usize] ; ["Offset of field: rc_memref_value_t::size"] [:: core :: mem :: offset_of ! (rc_memref_value_t , size) - 8usize] ; ["Offset of field: rc_memref_value_t::changed"] [:: core :: mem :: offset_of ! (rc_memref_value_t , changed) - 9usize] ; ["Offset of field: rc_memref_value_t::type_"] [:: core :: mem :: offset_of ! (rc_memref_value_t , type_) - 10usize] ; ["Offset of field: rc_memref_value_t::is_indirect"] [:: core :: mem :: offset_of ! (rc_memref_value_t , is_indirect) - 11usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memref_t { pub value : rc_memref_value_t , pub address : u32 , pub next : * mut rc_memref_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memref_t"] [:: core :: mem :: size_of :: < rc_memref_t > () - 24usize] ; ["Alignment of rc_memref_t"] [:: core :: mem :: align_of :: < rc_memref_t > () - 8usize] ; ["Offset of field: rc_memref_t::value"] [:: core :: mem :: offset_of ! (rc_memref_t , value) - 0usize] ; ["Offset of field: rc_memref_t::address"] [:: core :: mem :: offset_of ! (rc_memref_t , address) - 12usize] ; ["Offset of field: rc_memref_t::next"] [:: core :: mem :: offset_of ! (rc_memref_t , next) - 16usize] ; } ; pub const RC_OPERAND_ADDRESS : _bindgen_ty_3 = 0 ; pub const RC_OPERAND_DELTA : _bindgen_ty_3 = 1 ; pub const RC_OPERAND_CONST : _bindgen_ty_3 = 2 ; pub const RC_OPERAND_FP : _bindgen_ty_3 = 3 ; pub const RC_OPERAND_LUA : _bindgen_ty_3 = 4 ; pub const RC_OPERAND_PRIOR : _bindgen_ty_3 = 5 ; pub const RC_OPERAND_BCD : _bindgen_ty_3 = 6 ; pub const RC_OPERAND_INVERTED : _bindgen_ty_3 = 7 ; pub const RC_OPERAND_RECALL : _bindgen_ty_3 = 8 ; # [doc = "\\\n| Operands                                                                    |\n\\"] pub type _bindgen_ty_3 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Copy , Clone)] pub struct rc_operand_t { pub value : rc_operand_t__bindgen_ty_1 , pub type_ : u8 , pub size : u8 , } # [repr (C)] # [derive (Copy , Clone)] pub union rc_operand_t__bindgen_ty_1 { pub memref : * mut rc_memref_t , pub num : u32 , pub dbl : f64 , pub luafunc : :: core :: ffi :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_operand_t__bindgen_ty_1"] [:: core :: mem :: size_of :: < rc_operand_t__bindgen_ty_1 > () - 8usize] ; ["Alignment of rc_operand_t__bindgen_ty_1"] [:: core :: mem :: align_of :: < rc_operand_t__bindgen_ty_1 > () - 8usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::memref"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , memref) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::num"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , num) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::dbl"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , dbl) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::luafunc"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , luafunc) - 0usize] ; } ; impl :: core :: fmt :: Debug for rc_operand_t__bindgen_ty_1 { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_operand_t__bindgen_ty_1 {{ union }}") } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_operand_t"] [:: core :: mem :: size_of :: < rc_operand_t > () - 16usize] ; ["Alignment of rc_operand_t"] [:: core :: mem :: align_of :: < rc_operand_t > () - 8usize] ; ["Offset of field: rc_operand_t::value"] [:: core :: mem :: offset_of ! (rc_operand_t , value) - 0usize] ; ["Offset of field: rc_operand_t::type_"] [:: core :: mem :: offset_of ! (rc_operand_t , type_) - 8usize] ; ["Offset of field: rc_operand_t::size"] [:: core :: mem :: offset_of ! (rc_operand_t , size) - 9usize] ; } ; impl :: core :: fmt :: Debug for rc_operand_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_operand_t {{ value: {:?}, type: {:?}, size: {:?} }}" , self . value , self . type_ , self . size) } } extern "C" { pub fn rc_operand_is_memref (operand : * const rc_operand_t) -> :: core :: ffi :: c_int ; } pub const RC_CONDITION_STANDARD : _bindgen_ty_4 = 0 ; pub const RC_CONDITION_PAUSE_IF : _bindgen_ty_4 = 1 ; pub const RC_CONDITION_RESET_IF : _bindgen_ty_4 = 2 ; pub const RC_CONDITION_MEASURED_IF : _bindgen_ty_4 = 3 ; pub const RC_CONDITION_TRIGGER : _bindgen_ty_4 = 4 ; pub const RC_CONDITION_MEASURED : _bindgen_ty_4 = 5 ; pub const RC_CONDITION_ADD_SOURCE : _bindgen_ty_4 = 6 ; pub const RC_CONDITION_SUB_SOURCE : _bindgen_ty_4 = 7 ; pub const RC_CONDITION_ADD_ADDRESS : _bindgen_ty_4 = 8 ; pub const RC_CONDITION_REMEMBER : _bindgen_ty_4 = 9 ; pub const RC_CONDITION_ADD_HITS : _bindgen_ty_4 = 10 ; pub const RC_CONDITION_SUB_HITS : _bindgen_ty_4 = 11 ; pub const RC_CONDITION_RESET_NEXT_IF : _bindgen_ty_4 = 12 ; pub const RC_CONDITION_AND_NEXT : _bindgen_ty_4 = 13 ; pub const RC_CONDITION_OR_NEXT : _bindgen_ty_4 = 14 ; # [doc = "\\\n| Conditions                                                                  |\n\\"] pub type _bindgen_ty_4 = :: core :: ffi :: c_uint ; pub const RC_OPERATOR_EQ : _bindgen_ty_5 = 0 ; pub const RC_OPERATOR_LT : _bindgen_ty_5 = 1 ; pub const RC_OPERATOR_LE : _bindgen_ty_5 = 2 ; pub const RC_OPERATOR_GT : _bindgen_ty_5 = 3 ; pub const RC_OPERATOR_GE : _bindgen_ty_5 = 4 ; pub const RC_OPERATOR_NE : _bindgen_ty_5 = 5 ; pub const RC_OPERATOR_NONE : _bindgen_ty_5 = 6 ; pub const RC_OPERATOR_MULT : _bindgen_ty_5 = 7 ; pub const RC_OPERATOR_DIV : _bindgen_ty_5 = 8 ; pub const RC_OPERATOR_AND : _bindgen_ty_5 = 9 ; pub const RC_OPERATOR_XOR : _bindgen_ty_5 = 10 ; pub const RC_OPERATOR_MOD : _bindgen_ty_5 = 11 ; pub const RC_OPERATOR_ADD : _bindgen_ty_5 = 12 ; pub const RC_OPERATOR_SUB : _bindgen_ty_5 = 13 ; pub type _bindgen_ty_5 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Copy , Clone)] pub struct rc_condition_t { pub operand1 : rc_operand_t , pub operand2 : rc_operand_t , pub required_hits : u32 , pub current_hits : u32 , pub next : * mut rc_condition_t , pub type_ : u8 , pub oper : u8 , pub pause : u8 , pub is_true : u8 , pub optimized_comparator : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_condition_t"] [:: core :: mem :: size_of :: < rc_condition_t > () - 56usize] ; ["Alignment of rc_condition_t"] [:: core :: mem :: align_of :: < rc_condition_t > () - 8usize] ; ["Offset of field: rc_condition_t::operand1"] [:: core :: mem :: offset_of ! (rc_condition_t , operand1) - 0usize] ; ["Offset of field: rc_condition_t::operand2"] [:: core :: mem :: offset_of ! (rc_condition_t , operand2) - 16usize] ; ["Offset of field: rc_condition_t::required_hits"] [:: core :: mem :: offset_of ! (rc_condition_t , required_hits) - 32usize] ; ["Offset of field: rc_condition_t::current_hits"] [:: core :: mem :: offset_of ! (rc_condition_t , current_hits) - 36usize] ; ["Offset of field: rc_condition_t::next"] [:: core :: mem :: offset_of ! (rc_condition_t , next) - 40usize] ; ["Offset of field: rc_condition_t::type_"] [:: core :: mem :: offset_of ! (rc_condition_t , type_) - 48usize] ; ["Offset of field: rc_condition_t::oper"] [:: core :: mem :: offset_of ! (rc_condition_t , oper) - 49usize] ; ["Offset of field: rc_condition_t::pause"] [:: core :: mem :: offset_of ! (rc_condition_t , pause) - 50usize] ; ["Offset of field: rc_condition_t::is_true"] [:: core :: mem :: offset_of ! (rc_condition_t , is_true) - 51usize] ; ["Offset of field: rc_condition_t::optimized_comparator"] [:: core :: mem :: offset_of ! (rc_condition_t , optimized_comparator) - 52usize] ; } ; impl :: core :: fmt :: Debug for rc_condition_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_condition_t {{ operand1: {:?}, operand2: {:?}, required_hits: {:?}, current_hits: {:?}, next: {:?}, type: {:?}, oper: {:?}, pause: {:?}, is_true: {:?}, optimized_comparator: {:?} }}" , self . operand1 , self . operand2 , self . required_hits , self . current_hits , self . next , self . type_ , self . oper , self . pause , self . is_true , self . optimized_comparator) } } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_condset_t { pub next : * mut rc_condset_t , pub conditions : * mut rc_condition_t , pub has_pause : u8 , pub is_paused : u8 , pub has_indirect_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_condset_t"] [:: core :: mem :: size_of :: < rc_condset_t > () - 24usize] ; ["Alignment of rc_condset_t"] [:: core :: mem :: align_of :: < rc_condset_t > () - 8usize] ; ["Offset of field: rc_condset_t::next"] [:: core :: mem :: offset_of ! (rc_condset_t , next) - 0usize] ; ["Offset of field: rc_condset_t::conditions"] [:: core :: mem :: offset_of ! (rc_condset_t , conditions) - 8usize] ; ["Offset of field: rc_condset_t::has_pause"] [:: core :: mem :: offset_of ! (rc_condset_t , has_pause) - 16usize] ; ["Offset of field: rc_condset_t::is_paused"] [:: core :: mem :: offset_of ! (rc_condset_t , is_paused) - 17usize] ; ["Offset of field: rc_condset_t::has_indirect_memrefs"] [:: core :: mem :: offset_of ! (rc_condset_t , has_indirect_memrefs) - 18usize] ; } ; pub const RC_TRIGGER_STATE_INACTIVE : _bindgen_ty_6 = 0 ; pub const RC_TRIGGER_STATE_WAITING : _bindgen_ty_6 = 1 ; pub const RC_TRIGGER_STATE_ACTIVE : _bindgen_ty_6 = 2 ; pub const RC_TRIGGER_STATE_PAUSED : _bindgen_ty_6 = 3 ; pub const RC_TRIGGER_STATE_RESET : _bindgen_ty_6 = 4 ; pub const RC_TRIGGER_STATE_TRIGGERED : _bindgen_ty_6 = 5 ; pub const RC_TRIGGER_STATE_PRIMED : _bindgen_ty_6 = 6 ; pub const RC_TRIGGER_STATE_DISABLED : _bindgen_ty_6 = 7 ; # [doc = "\\\n| Trigger                                                                     |\n\\"] pub type _bindgen_ty_6 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_trigger_t { pub requirement : * mut rc_condset_t , pub alternative : * mut rc_condset_t , pub memrefs : * mut rc_memref_t , pub measured_value : u32 , pub measured_target : u32 , pub state : u8 , pub has_hits : u8 , pub has_required_hits : u8 , pub measured_as_percent : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_trigger_t"] [:: core :: mem :: size_of :: < rc_trigger_t > () - 40usize] ; ["Alignment of rc_trigger_t"] [:: core :: mem :: align_of :: < rc_trigger_t > () - 8usize] ; ["Offset of field: rc_trigger_t::requirement"] [:: core :: mem :: offset_of ! (rc_trigger_t , requirement) - 0usize] ; ["Offset of field: rc_trigger_t::alternative"] [:: core :: mem :: offset_of ! (rc_trigger_t , alternative) - 8usize] ; ["Offset of field: rc_trigger_t::memrefs"] [:: core :: mem :: offset_of ! (rc_trigger_t , memrefs) - 16usize] ; ["Offset of field: rc_trigger_t::measured_value"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_value) - 24usize] ; ["Offset of field: rc_trigger_t::measured_target"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_target) - 28usize] ; ["Offset of field: rc_trigger_t::state"] [:: core :: mem :: offset_of ! (rc_trigger_t , state) - 32usize] ; ["Offset of field: rc_trigger_t::has_hits"] [:: core :: mem :: offset_of ! (rc_trigger_t , has_hits) - 33usize] ; ["Offset of field: rc_trigger_t::has_required_hits"] [:: core :: mem :: offset_of ! (rc_trigger_t , has_required_hits) - 34usize] ; ["Offset of field: rc_trigger_t::measured_as_percent"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_as_percent) - 35usize] ; } ; extern "C" { pub fn rc_trigger_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_trigger (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_trigger_t ; } extern "C" { pub fn rc_evaluate_trigger (trigger : * mut rc_trigger_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_test_trigger (trigger : * mut rc_trigger_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_trigger (self_ : * mut rc_trigger_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_value_t { pub value : rc_memref_value_t , pub conditions : * mut rc_condset_t , pub memrefs : * mut rc_memref_t , pub name : * const :: core :: ffi :: c_char , pub next : * mut rc_value_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_value_t"] [:: core :: mem :: size_of :: < rc_value_t > () - 48usize] ; ["Alignment of rc_value_t"] [:: core :: mem :: align_of :: < rc_value_t > () - 8usize] ; ["Offset of field: rc_value_t::value"] [:: core :: mem :: offset_of ! (rc_value_t , value) - 0usize] ; ["Offset of field: rc_value_t::conditions"] [:: core :: mem :: offset_of ! (rc_value_t , conditions) - 16usize] ; ["Offset of field: rc_value_t::memrefs"] [:: core :: mem :: offset_of ! (rc_value_t , memrefs) - 24usize] ; ["Offset of field: rc_value_t::name"] [:: core :: mem :: offset_of ! (rc_value_t , name) - 32usize] ; ["Offset of field: rc_value_t::next"] [:: core :: mem :: offset_of ! (rc_value_t , next) - 40usize] ; } ; extern "C" { pub fn rc_value_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_value (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_value_t ; } extern "C" { pub fn rc_evaluate_value (value : * mut rc_value_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> i32 ; } pub const RC_LBOARD_STATE_INACTIVE : _bindgen_ty_7 = 0 ; pub const RC_LBOARD_STATE_WAITING : _bindgen_ty_7 = 1 ; pub const RC_LBOARD_STATE_ACTIVE : _bindgen_ty_7 = 2 ; pub const RC_LBOARD_STATE_STARTED : _bindgen_ty_7 = 3 ; pub const RC_LBOARD_STATE_CANCELED : _bindgen_ty_7 = 4 ; pub const RC_LBOARD_STATE_TRIGGERED : _bindgen_ty_7 = 5 ; pub const RC_LBOARD_STATE_DISABLED : _bindgen_ty_7 = 6 ; # [doc = "\\\n| Leaderboards                                                                |\n\\"] pub type _bindgen_ty_7 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_lboard_t { pub start : rc_trigger_t , pub submit : rc_trigger_t , pub cancel : rc_trigger_t , pub value : rc_value_t , pub progress : * mut rc_value_t , pub memrefs : * mut rc_memref_t , pub state : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_lboard_t"] [:: core :: mem :: size_of :: < rc_lboard_t > () - 192usize] ; ["Alignment of rc_lboard_t"] [:: core :: mem :: align_of :: < rc_lboard_t > () - 8usize] ; ["Offset of field: rc_lboard_t::start"] [:: core :: mem :: offset_of ! (rc_lboard_t , start) - 0usize] ; ["Offset of field: rc_lboard_t::submit"] [:: core :: mem :: offset_of ! (rc_lboard_t , submit) - 40usize] ; ["Offset of field: rc_lboard_t::cancel"] [:: core :: mem :: offset_of ! (rc_lboard_t , cancel) - 80usize] ; ["Offset of field: rc_lboard_t::value"] [:: core :: mem :: offset_of ! (rc_lboard_t , value) - 120usize] ; ["Offset of field: rc_lboard_t::progress"] [:: core :: mem :: offset_of ! (rc_lboard_t , progress) - 168usize] ; ["Offset of field: rc_lboard_t::memrefs"] [:: core :: mem :: offset_of ! (rc_lboard_t , memrefs) - 176usize] ; ["Offset of field: rc_lboard_t::state"] [:: core :: mem :: offset_of ! (rc_lboard_t , state) - 184usize] ; } ; extern "C" { pub fn rc_lboard_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_lboard (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_lboard_t ; } extern "C" { pub fn rc_evaluate_lboard (lboard : * mut rc_lboard_t , value : * mut i32 , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_lboard (lboard : * mut rc_lboard_t) ; } pub const RC_FORMAT_FRAMES : _bindgen_ty_8 = 0 ; pub const RC_FORMAT_SECONDS : _bindgen_ty_8 = 1 ; pub const RC_FORMAT_CENTISECS : _bindgen_ty_8 = 2 ; pub const RC_FORMAT_SCORE : _bindgen_ty_8 = 3 ; pub const RC_FORMAT_VALUE : _bindgen_ty_8 = 4 ; pub const RC_FORMAT_MINUTES : _bindgen_ty_8 = 5 ; pub const RC_FORMAT_SECONDS_AS_MINUTES : _bindgen_ty_8 = 6 ; pub const RC_FORMAT_FLOAT1 : _bindgen_ty_8 = 7 ; pub const RC_FORMAT_FLOAT2 : _bindgen_ty_8 = 8 ; pub const RC_FORMAT_FLOAT3 : _bindgen_ty_8 = 9 ; pub const RC_FORMAT_FLOAT4 : _bindgen_ty_8 = 10 ; pub const RC_FORMAT_FLOAT5 : _bindgen_ty_8 = 11 ; pub const RC_FORMAT_FLOAT6 : _bindgen_ty_8 = 12 ; pub const RC_FORMAT_FIXED1 : _bindgen_ty_8 = 13 ; pub const RC_FORMAT_FIXED2 : _bindgen_ty_8 = 14 ; pub const RC_FORMAT_FIXED3 : _bindgen_ty_8 = 15 ; pub const RC_FORMAT_TENS : _bindgen_ty_8 = 16 ; pub const RC_FORMAT_HUNDREDS : _bindgen_ty_8 = 17 ; pub const RC_FORMAT_THOUSANDS : _bindgen_ty_8 = 18 ; pub const RC_FORMAT_UNSIGNED_VALUE : _bindgen_ty_8 = 19 ; # [doc = "\\\n| Value formatting                                                            |\n\\"] pub type _bindgen_ty_8 = :: core :: ffi :: c_uint ; extern "C" { pub fn rc_parse_format (format_str : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_format_value (buffer : * mut :: core :: ffi :: c_char , size : :: core :: ffi :: c_int , value : i32 , format : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_lookup_item_t { pub first : u32 , pub last : u32 , pub left : * mut rc_richpresence_lookup_item_t , pub right : * mut rc_richpresence_lookup_item_t , pub label : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_lookup_item_t"] [:: core :: mem :: size_of :: < rc_richpresence_lookup_item_t > () - 32usize] ; ["Alignment of rc_richpresence_lookup_item_t"] [:: core :: mem :: align_of :: < rc_richpresence_lookup_item_t > () - 8usize] ; ["Offset of field: rc_richpresence_lookup_item_t::first"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , first) - 0usize] ; ["Offset of field: rc_richpresence_lookup_item_t::last"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , last) - 4usize] ; ["Offset of field: rc_richpresence_lookup_item_t::left"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , left) - 8usize] ; ["Offset of field: rc_richpresence_lookup_item_t::right"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , right) - 16usize] ; ["Offset of field: rc_richpresence_lookup_item_t::label"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , label) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_lookup_t { pub root : * mut rc_richpresence_lookup_item_t , pub next : * mut rc_richpresence_lookup_t , pub name : * const :: core :: ffi :: c_char , pub default_label : * const :: core :: ffi :: c_char , pub format : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_lookup_t"] [:: core :: mem :: size_of :: < rc_richpresence_lookup_t > () - 40usize] ; ["Alignment of rc_richpresence_lookup_t"] [:: core :: mem :: align_of :: < rc_richpresence_lookup_t > () - 8usize] ; ["Offset of field: rc_richpresence_lookup_t::root"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , root) - 0usize] ; ["Offset of field: rc_richpresence_lookup_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , next) - 8usize] ; ["Offset of field: rc_richpresence_lookup_t::name"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , name) - 16usize] ; ["Offset of field: rc_richpresence_lookup_t::default_label"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , default_label) - 24usize] ; ["Offset of field: rc_richpresence_lookup_t::format"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , format) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_display_part_t { pub next : * mut rc_richpresence_display_part_t , pub text : * const :: core :: ffi :: c_char , pub lookup : * mut rc_richpresence_lookup_t , pub value : * mut rc_memref_value_t , pub display_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_display_part_t"] [:: core :: mem :: size_of :: < rc_richpresence_display_part_t > () - 40usize] ; ["Alignment of rc_richpresence_display_part_t"] [:: core :: mem :: align_of :: < rc_richpresence_display_part_t > () - 8usize] ; ["Offset of field: rc_richpresence_display_part_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , next) - 0usize] ; ["Offset of field: rc_richpresence_display_part_t::text"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , text) - 8usize] ; ["Offset of field: rc_richpresence_display_part_t::lookup"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , lookup) - 16usize] ; ["Offset of field: rc_richpresence_display_part_t::value"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , value) - 24usize] ; ["Offset of field: rc_richpresence_display_part_t::display_type"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , display_type) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_display_t { pub trigger : rc_trigger_t , pub next : * mut rc_richpresence_display_t , pub display : * mut rc_richpresence_display_part_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_display_t"] [:: core :: mem :: size_of :: < rc_richpresence_display_t > () - 56usize] ; ["Alignment of rc_richpresence_display_t"] [:: core :: mem :: align_of :: < rc_richpresence_display_t > () - 8usize] ; ["Offset of field: rc_richpresence_display_t::trigger"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , trigger) - 0usize] ; ["Offset of field: rc_richpresence_display_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , next) - 40usize] ; ["Offset of field: rc_richpresence_display_t::display"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , display) - 48usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_t { pub first_display : * mut rc_richpresence_display_t , pub first_lookup : * mut rc_richpresence_lookup_t , pub memrefs : * mut rc_memref_t , pub variables : * mut rc_value_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_t"] [:: core :: mem :: size_of :: < rc_richpresence_t > () - 32usize] ; ["Alignment of rc_richpresence_t"] [:: core :: mem :: align_of :: < rc_richpresence_t > () - 8usize] ; ["Offset of field: rc_richpresence_t::first_display"] [:: core :: mem :: offset_of ! (rc_richpresence_t , first_display) - 0usize] ; ["Offset of field: rc_richpresence_t::first_lookup"] [:: core :: mem :: offset_of ! (rc_richpresence_t , first_lookup) - 8usize] ; ["Offset of field: rc_richpresence_t::memrefs"] [:: core :: mem :: offset_of ! (rc_richpresence_t , memrefs) - 16usize] ; ["Offset of field: rc_richpresence_t::variables"] [:: core :: mem :: offset_of ! (rc_richpresence_t , variables) - 24usize] ; } ; extern "C" { pub fn rc_richpresence_size (script : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_richpresence_size_lines (script : * const :: core :: ffi :: c_char , lines_read : * mut :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_richpresence (buffer : * mut :: core :: ffi :: c_void , script : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_richpresence_t ; } extern "C" { pub fn rc_evaluate_richpresence (richpresence : * mut rc_richpresence_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_update_richpresence (richpresence : * mut rc_richpresence_t , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) ; } extern "C" { pub fn rc_get_richpresence_display_string (richpresence : * mut rc_richpresence_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_richpresence (self_ : * mut rc_richpresence_t) ; } # [doc = " A block of memory for variable length data (like strings and arrays)."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_buffer_chunk_t { pub write : * mut u8 , pub end : * mut u8 , pub start : * mut u8 , pub next : * mut rc_buffer_chunk_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_buffer_chunk_t"] [:: core :: mem :: size_of :: < rc_buffer_chunk_t > () - 32usize] ; ["Alignment of rc_buffer_chunk_t"] [:: core :: mem :: align_of :: < rc_buffer_chunk_t > () - 8usize] ; ["Offset of field: rc_buffer_chunk_t::write"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , write) - 0usize] ; ["Offset of field: rc_buffer_chunk_t::end"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , end) - 8usize] ; ["Offset of field: rc_buffer_chunk_t::start"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , start) - 16usize] ; ["Offset of field: rc_buffer_chunk_t::next"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , next) - 24usize] ; } ; # [doc = " A preallocated block of memory for variable length data (like strings and arrays)."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_buffer_t { pub chunk : rc_buffer_chunk_t , pub data : [u8 ; 256usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_buffer_t"] [:: core :: mem :: size_of :: < rc_buffer_t > () - 288usize] ; ["Alignment of rc_buffer_t"] [:: core :: mem :: align_of :: < rc_buffer_t > () - 8usize] ; ["Offset of field: rc_buffer_t::chunk"] [:: core :: mem :: offset_of ! (rc_buffer_t , chunk) - 0usize] ; ["Offset of field: rc_buffer_t::data"] [:: core :: mem :: offset_of ! (rc_buffer_t , data) - 32usize] ; } ; extern "C" { pub fn rc_buffer_init (buffer : * mut rc_buffer_t) ; } extern "C" { pub fn rc_buffer_destroy (buffer : * mut rc_buffer_t) ; } extern "C" { pub fn rc_buffer_reserve (buffer : * mut rc_buffer_t , amount : usize) -> * mut u8 ; } extern "C" { pub fn rc_buffer_consume (buffer : * mut rc_buffer_t , start : * const u8 , end : * mut u8) ; } extern "C" { pub fn rc_buffer_alloc (buffer : * mut rc_buffer_t , amount : usize) -> * mut :: core :: ffi :: c_void ; } extern "C" { pub fn rc_buffer_strcpy (buffer : * mut rc_buffer_t , src : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn rc_buffer_strncpy (buffer : * mut rc_buffer_t , src : * const :: core :: ffi :: c_char , len : usize) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn rc_djb2 (input : * const :: core :: ffi :: c_char) -> u32 ; } extern "C" { pub fn rc_format_md5 (checksum : * mut :: core :: ffi :: c_char , digest : * const u8) ; } # [doc = " A constructed request to send to the retroachievements server."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_request_t { pub url : * const :: core :: ffi :: c_char , pub post_data : * const :: core :: ffi :: c_char , pub content_type : * const :: core :: ffi :: c_char , pub buffer : rc_buffer_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_request_t"] [:: core :: mem :: size_of :: < rc_api_request_t > () - 312usize] ; ["Alignment of rc_api_request_t"] [:: core :: mem :: align_of :: < rc_api_request_t > () - 8usize] ; ["Offset of field: rc_api_request_t::url"] [:: core :: mem :: offset_of ! (rc_api_request_t , url) - 0usize] ; ["Offset of field: rc_api_request_t::post_data"] [:: core :: mem :: offset_of ! (rc_api_request_t , post_data) - 8usize] ; ["Offset of field: rc_api_request_t::content_type"] [:: core :: mem :: offset_of ! (rc_api_request_t , content_type) - 16usize] ; ["Offset of field: rc_api_request_t::buffer"] [:: core :: mem :: offset_of ! (rc_api_request_t , buffer) - 24usize] ; } ; # [doc = " Common attributes for all server responses."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_response_t { pub succeeded : :: core :: ffi :: c_int , pub error_message : * const :: core :: ffi :: c_char , pub error_code : * const :: core :: ffi :: c_char , pub buffer : rc_buffer_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_response_t"] [:: core :: mem :: size_of :: < rc_api_response_t > () - 312usize] ; ["Alignment of rc_api_response_t"] [:: core :: mem :: align_of :: < rc_api_response_t > () - 8usize] ; ["Offset of field: rc_api_response_t::succeeded"] [:: core :: mem :: offset_of ! (rc_api_response_t , succeeded) - 0usize] ; ["Offset of field: rc_api_response_t::error_message"] [:: core :: mem :: offset_of ! (rc_api_response_t , error_message) - 8usize] ; ["Offset of field: rc_api_response_t::error_code"] [:: core :: mem :: offset_of ! (rc_api_response_t , error_code) - 16usize] ; ["Offset of field: rc_api_response_t::buffer"] [:: core :: mem :: offset_of ! (rc_api_response_t , buffer) - 24usize] ; } ; extern "C" { pub fn rc_api_destroy_request (request : * mut rc_api_request_t) ; } extern "C" { pub fn rc_api_set_host (hostname : * const :: core :: ffi :: c_char) ; } extern "C" { pub fn rc_api_set_image_host (hostname : * const :: core :: ffi :: c_char) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_server_response_t { pub body : * const :: core :: ffi :: c_char , pub body_length : usize , pub http_status_code : :: core :: ffi :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_server_response_t"] [:: core :: mem :: size_of :: < rc_api_server_response_t > () - 24usize] ; ["Alignment of rc_api_server_response_t"] [:: core :: mem :: align_of :: < rc_api_server_response_t > () - 8usize] ; ["Offset of field: rc_api_server_response_t::body"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , body) - 0usize] ; ["Offset of field: rc_api_server_response_t::body_length"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , body_length) - 8usize] ; ["Offset of field: rc_api_server_response_t::http_status_code"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , http_status_code) - 16usize] ; } ; pub const RC_API_SERVER_RESPONSE_CLIENT_ERROR : _bindgen_ty_9 = - 1 ; pub const RC_API_SERVER_RESPONSE_RETRYABLE_CLIENT_ERROR : _bindgen_ty_9 = - 2 ; pub type _bindgen_ty_9 = :: core :: ffi :: c_int ; pub type clock_t = __clock_t ; pub type time_t = __time_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct tm { pub tm_sec : :: core :: ffi :: c_int , pub tm_min : :: core :: ffi :: c_int , pub tm_hour : :: core :: ffi :: c_int , pub tm_mday : :: core :: ffi :: c_int , pub tm_mon : :: core :: ffi :: c_int , pub tm_year : :: core :: ffi :: c_int , pub tm_wday : :: core :: ffi :: c_int , pub tm_yday : :: core :: ffi :: c_int , pub tm_isdst : :: core :: ffi :: c_int , pub tm_gmtoff : :: core :: ffi :: c_long , pub tm_zone : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of tm"] [:: core :: mem :: size_of :: < tm > () - 56usize] ; ["Alignment of tm"] [:: core :: mem :: align_of :: < tm > () - 8usize] ; ["Offset of field: tm::tm_sec"] [:: core :: mem :: offset_of ! (tm , tm_sec) - 0usize] ; ["Offset of field: tm::tm_min"] [:: core :: mem :: offset_of ! (tm , tm_min) - 4usize] ; ["Offset of field: tm::tm_hour"] [:: core :: mem :: offset_of ! (tm , tm_hour) - 8usize] ; ["Offset of field: tm::tm_mday"] [:: core :: mem :: offset_of ! (tm , tm_mday) - 12usize] ; ["Offset of field: tm::tm_mon"] [:: core :: mem :: offset_of ! (tm , tm_mon) - 16usize] ; ["Offset of field: tm::tm_year"] [:: core :: mem :: offset_of ! (tm , tm_year) - 20usize] ; ["Offset of field: tm::tm_wday"] [:: core :: mem :: offset_of ! (tm , tm_wday) - 24usize] ; ["Offset of field: tm::tm_yday"] [:: core :: mem :: offset_of ! (tm , tm_yday) - 28usize] ; ["Offset of field: tm::tm_isdst"] [:: core :: mem :: offset_of ! (tm , tm_isdst) - 32usize] ; ["Offset of field: tm::tm_gmtoff"] [:: core :: mem :: offset_of ! (tm , tm_gmtoff) - 40usize] ; ["Offset of field: tm::tm_zone"] [:: core :: mem :: offset_of ! (tm , tm_zone) - 48usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct timespec { pub tv_sec : __time_t , pub tv_nsec : __syscall_slong_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of timespec"] [:: core :: mem :: size_of :: < timespec > () - 16usize] ; ["Alignment of timespec"] [:: core :: mem :: align_of :: < timespec > () - 8usize] ; ["Offset of field: timespec::tv_sec"] [:: core :: mem :: offset_of ! (timespec , tv_sec) - 0usize] ; ["Offset of field: timespec::tv_nsec"] [:: core :: mem :: offset_of ! (timespec , tv_nsec) - 8usize] ; } ; pub type clockid_t = __clockid_t ; pub type timer_t = __timer_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct itimerspec { pub it_interval : timespec , pub it_value : timespec , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of itimerspec"] [:: core :: mem :: size_of :: < itimerspec > () - 32usize] ; ["Alignment of itimerspec"] [:: core :: mem :: align_of :: < itimerspec > () - 8usize] ; ["Offset of field: itimerspec::it_interval"] [:: core :: mem :: offset_of ! (itimerspec , it_interval) - 0usize] ; ["Offset of field: itimerspec::it_value"] [:: core :: mem :: offset_of ! (itimerspec , it_value) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct sigevent { _unused : [u8 ; 0] , } pub type pid_t = __pid_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __locale_struct { pub __locales : [* mut __locale_data ; 13usize] , pub __ctype_b : * const :: core :: ffi :: c_ushort , pub __ctype_tolower : * const :: core :: ffi :: c_int , pub __ctype_toupper : * const :: core :: ffi :: c_int , pub __names : [* const :: core :: ffi :: c_char ; 13usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __locale_struct"] [:: core :: mem :: size_of :: < __locale_struct > () - 232usize] ; ["Alignment of __locale_struct"] [:: core :: mem :: align_of :: < __locale_struct > () - 8usize] ; ["Offset of field: __locale_struct::__locales"] [:: core :: mem :: offset_of ! (__locale_struct , __locales) - 0usize] ; ["Offset of field: __locale_struct::__ctype_b"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_b) - 104usize] ; ["Offset of field: __locale_struct::__ctype_tolower"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_tolower) - 112usize] ; ["Offset of field: __locale_struct::__ctype_toupper"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_toupper) - 120usize] ; ["Offset of field: __locale_struct::__names"] [:: core :: mem :: offset_of ! (__locale_struct , __names) - 128usize] ; } ; pub type __locale_t = * mut __locale_struct ; pub type locale_t = __locale_t ; extern "C" { pub fn clock () -> clock_t ; } extern "C" { pub fn time (__timer : * mut time_t) -> time_t ; } extern "C" { pub fn difftime (__time1 : time_t , __time0 : time_t) -> f64 ; } extern "C" { pub fn mktime (__tp : * mut tm) -> time_t ; } extern "C" { pub fn strftime (__s : * mut :: core :: ffi :: c_char , __maxsize : usize , __format : * const :: core :: ffi :: c_char , __tp : * const tm) -> usize ; } extern "C" { pub fn strftime_l (__s : * mut :: core :: ffi :: c_char , __maxsize : usize , __format : * const :: core :: ffi :: c_char , __tp : * const tm , __loc : locale_t) -> usize ; } extern "C" { pub fn gmtime (__timer : * const time_t) -> * mut tm ; } extern "C" { pub fn localtime (__timer : * const time_t) -> * mut tm ; } extern "C" { pub fn gmtime_r (__timer : * const time_t , __tp : * mut tm) -> * mut tm ; } extern "C" { pub fn localtime_r (__timer : * const time_t , __tp : * mut tm) -> * mut tm ; } extern "C" { pub fn asctime (__tp : * const tm) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn ctime (__timer : * const time_t) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn asctime_r (__tp : * const tm , __buf : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn ctime_r (__timer : * const time_t , __buf : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub static mut __tzname : [* mut :: core :: ffi :: c_char ; 2usize] ; } extern "C" { pub static mut __daylight : :: core :: ffi :: c_int ; } extern "C" { pub static mut __timezone : :: core :: ffi :: c_long ; } extern "C" { pub static mut tzname : [* mut :: core :: ffi :: c_char ; 2usize] ; } extern "C" { pub fn tzset () ; } extern "C" { pub static mut daylight : :: core :: ffi :: c_int ; } extern "C" { pub static mut timezone : :: core :: ffi :: c_long ; } extern "C" { pub fn timegm (__tp : * mut tm) -> time_t ; } extern "C" { pub fn timelocal (__tp : * mut tm) -> time_t ; } extern "C" { pub fn dysize (__year : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn nanosleep (__requested_time : * const timespec , __remaining : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_getres (__clock_id : clockid_t , __res : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_gettime (__clock_id : clockid_t , __tp : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_settime (__clock_id : clockid_t , __tp : * const timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_nanosleep (__clock_id : clockid_t , __flags : :: core :: ffi :: c_int , __req : * const timespec , __rem : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_getcpuclockid (__pid : pid_t , __clock_id : * mut clockid_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_create (__clock_id : clockid_t , __evp : * mut sigevent , __timerid : * mut timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_delete (__timerid : timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_settime (__timerid : timer_t , __flags : :: core :: ffi :: c_int , __value : * const itimerspec , __ovalue : * mut itimerspec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_gettime (__timerid : timer_t , __value : * mut itimerspec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_getoverrun (__timerid : timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timespec_get (__ts : * mut timespec , __base : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } # [doc = " API parameters for a login request.\n If both password and api_token are provided, api_token will be ignored."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_login_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub password : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_login_request_t"] [:: core :: mem :: size_of :: < rc_api_login_request_t > () - 24usize] ; ["Alignment of rc_api_login_request_t"] [:: core :: mem :: align_of :: < rc_api_login_request_t > () - 8usize] ; ["Offset of field: rc_api_login_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , username) - 0usize] ; ["Offset of field: rc_api_login_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_login_request_t::password"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , password) - 16usize] ; } ; # [doc = " Response data for a login request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_login_response_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub score : u32 , pub score_softcore : u32 , pub num_unread_messages : u32 , pub display_name : * const :: core :: ffi :: c_char , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_login_response_t"] [:: core :: mem :: size_of :: < rc_api_login_response_t > () - 352usize] ; ["Alignment of rc_api_login_response_t"] [:: core :: mem :: align_of :: < rc_api_login_response_t > () - 8usize] ; ["Offset of field: rc_api_login_response_t::username"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , username) - 0usize] ; ["Offset of field: rc_api_login_response_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , api_token) - 8usize] ; ["Offset of field: rc_api_login_response_t::score"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , score) - 16usize] ; ["Offset of field: rc_api_login_response_t::score_softcore"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , score_softcore) - 20usize] ; ["Offset of field: rc_api_login_response_t::num_unread_messages"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , num_unread_messages) - 24usize] ; ["Offset of field: rc_api_login_response_t::display_name"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , display_name) - 32usize] ; ["Offset of field: rc_api_login_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , response) - 40usize] ; } ; extern "C" { pub fn rc_api_init_login_request (request : * mut rc_api_request_t , api_params : * const rc_api_login_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_login_response (response : * mut rc_api_login_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_login_server_response (response : * mut rc_api_login_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_login_response (response : * mut rc_api_login_response_t) ; } # [doc = " API parameters for a start session request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_start_session_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub game_hash : * const :: core :: ffi :: c_char , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_start_session_request_t"] [:: core :: mem :: size_of :: < rc_api_start_session_request_t > () - 40usize] ; ["Alignment of rc_api_start_session_request_t"] [:: core :: mem :: align_of :: < rc_api_start_session_request_t > () - 8usize] ; ["Offset of field: rc_api_start_session_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , username) - 0usize] ; ["Offset of field: rc_api_start_session_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_start_session_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_start_session_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_start_session_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , hardcore) - 32usize] ; } ; # [doc = " Response data for an achievement unlock."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_unlock_entry_t { pub achievement_id : u32 , pub when : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_unlock_entry_t"] [:: core :: mem :: size_of :: < rc_api_unlock_entry_t > () - 16usize] ; ["Alignment of rc_api_unlock_entry_t"] [:: core :: mem :: align_of :: < rc_api_unlock_entry_t > () - 8usize] ; ["Offset of field: rc_api_unlock_entry_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_unlock_entry_t , achievement_id) - 0usize] ; ["Offset of field: rc_api_unlock_entry_t::when"] [:: core :: mem :: offset_of ! (rc_api_unlock_entry_t , when) - 8usize] ; } ; # [doc = " Response data for a start session request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_start_session_response_t { pub hardcore_unlocks : * mut rc_api_unlock_entry_t , pub unlocks : * mut rc_api_unlock_entry_t , pub num_hardcore_unlocks : u32 , pub num_unlocks : u32 , pub server_now : time_t , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_start_session_response_t"] [:: core :: mem :: size_of :: < rc_api_start_session_response_t > () - 344usize] ; ["Alignment of rc_api_start_session_response_t"] [:: core :: mem :: align_of :: < rc_api_start_session_response_t > () - 8usize] ; ["Offset of field: rc_api_start_session_response_t::hardcore_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , hardcore_unlocks) - 0usize] ; ["Offset of field: rc_api_start_session_response_t::unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , unlocks) - 8usize] ; ["Offset of field: rc_api_start_session_response_t::num_hardcore_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , num_hardcore_unlocks) - 16usize] ; ["Offset of field: rc_api_start_session_response_t::num_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , num_unlocks) - 20usize] ; ["Offset of field: rc_api_start_session_response_t::server_now"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , server_now) - 24usize] ; ["Offset of field: rc_api_start_session_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_start_session_request (request : * mut rc_api_request_t , api_params : * const rc_api_start_session_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_start_session_response (response : * mut rc_api_start_session_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_start_session_server_response (response : * mut rc_api_start_session_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_start_session_response (response : * mut rc_api_start_session_response_t) ; } # [doc = " API parameters for a fetch user unlocks request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_user_unlocks_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_user_unlocks_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_user_unlocks_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_user_unlocks_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_user_unlocks_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , hardcore) - 20usize] ; } ; # [doc = " Response data for a fetch user unlocks request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_user_unlocks_response_t { pub achievement_ids : * mut u32 , pub num_achievement_ids : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_user_unlocks_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_user_unlocks_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_user_unlocks_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_user_unlocks_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::achievement_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , achievement_ids) - 0usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::num_achievement_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , num_achievement_ids) - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_user_unlocks_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_user_unlocks_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_user_unlocks_response (response : * mut rc_api_fetch_user_unlocks_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_user_unlocks_server_response (response : * mut rc_api_fetch_user_unlocks_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_user_unlocks_response (response : * mut rc_api_fetch_user_unlocks_response_t) ; } # [doc = " API parameters for a fetch code notes request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_code_notes_request_t { pub game_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_code_notes_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_code_notes_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_code_notes_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_code_notes_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_code_notes_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_request_t , game_id) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_code_note_t { pub address : u32 , pub author : * const :: core :: ffi :: c_char , pub note : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_code_note_t"] [:: core :: mem :: size_of :: < rc_api_code_note_t > () - 24usize] ; ["Alignment of rc_api_code_note_t"] [:: core :: mem :: align_of :: < rc_api_code_note_t > () - 8usize] ; ["Offset of field: rc_api_code_note_t::address"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , address) - 0usize] ; ["Offset of field: rc_api_code_note_t::author"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , author) - 8usize] ; ["Offset of field: rc_api_code_note_t::note"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , note) - 16usize] ; } ; # [doc = " Response data for a fetch code notes request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_code_notes_response_t { pub notes : * mut rc_api_code_note_t , pub num_notes : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_code_notes_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_code_notes_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_code_notes_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_code_notes_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::notes"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , notes) - 0usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::num_notes"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , num_notes) - 8usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_code_notes_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_code_notes_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_code_notes_response (response : * mut rc_api_fetch_code_notes_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_code_notes_server_response (response : * mut rc_api_fetch_code_notes_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_code_notes_response (response : * mut rc_api_fetch_code_notes_response_t) ; } # [doc = " API parameters for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_code_note_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub address : u32 , pub note : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_code_note_request_t"] [:: core :: mem :: size_of :: < rc_api_update_code_note_request_t > () - 32usize] ; ["Alignment of rc_api_update_code_note_request_t"] [:: core :: mem :: align_of :: < rc_api_update_code_note_request_t > () - 8usize] ; ["Offset of field: rc_api_update_code_note_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_code_note_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_code_note_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_update_code_note_request_t::address"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , address) - 20usize] ; ["Offset of field: rc_api_update_code_note_request_t::note"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , note) - 24usize] ; } ; # [doc = " Response data for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_code_note_response_t { pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_code_note_response_t"] [:: core :: mem :: size_of :: < rc_api_update_code_note_response_t > () - 312usize] ; ["Alignment of rc_api_update_code_note_response_t"] [:: core :: mem :: align_of :: < rc_api_update_code_note_response_t > () - 8usize] ; ["Offset of field: rc_api_update_code_note_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_response_t , response) - 0usize] ; } ; extern "C" { pub fn rc_api_init_update_code_note_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_code_note_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_code_note_response (response : * mut rc_api_update_code_note_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_code_note_server_response (response : * mut rc_api_update_code_note_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_code_note_response (response : * mut rc_api_update_code_note_response_t) ; } # [doc = " API parameters for an update achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_achievement_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub game_id : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub badge : * const :: core :: ffi :: c_char , pub trigger : * const :: core :: ffi :: c_char , pub points : u32 , pub category : u32 , pub type_ : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_achievement_request_t"] [:: core :: mem :: size_of :: < rc_api_update_achievement_request_t > () - 72usize] ; ["Alignment of rc_api_update_achievement_request_t"] [:: core :: mem :: align_of :: < rc_api_update_achievement_request_t > () - 8usize] ; ["Offset of field: rc_api_update_achievement_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_achievement_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_achievement_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_update_achievement_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , game_id) - 20usize] ; ["Offset of field: rc_api_update_achievement_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , title) - 24usize] ; ["Offset of field: rc_api_update_achievement_request_t::description"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , description) - 32usize] ; ["Offset of field: rc_api_update_achievement_request_t::badge"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , badge) - 40usize] ; ["Offset of field: rc_api_update_achievement_request_t::trigger"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , trigger) - 48usize] ; ["Offset of field: rc_api_update_achievement_request_t::points"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , points) - 56usize] ; ["Offset of field: rc_api_update_achievement_request_t::category"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , category) - 60usize] ; ["Offset of field: rc_api_update_achievement_request_t::type_"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , type_) - 64usize] ; } ; # [doc = " Response data for an update achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_achievement_response_t { pub achievement_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_achievement_response_t"] [:: core :: mem :: size_of :: < rc_api_update_achievement_response_t > () - 320usize] ; ["Alignment of rc_api_update_achievement_response_t"] [:: core :: mem :: align_of :: < rc_api_update_achievement_response_t > () - 8usize] ; ["Offset of field: rc_api_update_achievement_response_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_response_t , achievement_id) - 0usize] ; ["Offset of field: rc_api_update_achievement_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_update_achievement_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_achievement_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_achievement_response (response : * mut rc_api_update_achievement_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_achievement_server_response (response : * mut rc_api_update_achievement_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_achievement_response (response : * mut rc_api_update_achievement_response_t) ; } # [doc = " API parameters for an update leaderboard request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_leaderboard_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub leaderboard_id : u32 , pub game_id : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub start_trigger : * const :: core :: ffi :: c_char , pub submit_trigger : * const :: core :: ffi :: c_char , pub cancel_trigger : * const :: core :: ffi :: c_char , pub value_definition : * const :: core :: ffi :: c_char , pub format : * const :: core :: ffi :: c_char , pub lower_is_better : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_leaderboard_request_t"] [:: core :: mem :: size_of :: < rc_api_update_leaderboard_request_t > () - 88usize] ; ["Alignment of rc_api_update_leaderboard_request_t"] [:: core :: mem :: align_of :: < rc_api_update_leaderboard_request_t > () - 8usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , leaderboard_id) - 16usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , game_id) - 20usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , title) - 24usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::description"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , description) - 32usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::start_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , start_trigger) - 40usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::submit_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , submit_trigger) - 48usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::cancel_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , cancel_trigger) - 56usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::value_definition"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , value_definition) - 64usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::format"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , format) - 72usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , lower_is_better) - 80usize] ; } ; # [doc = " Response data for an update leaderboard request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_leaderboard_response_t { pub leaderboard_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_leaderboard_response_t"] [:: core :: mem :: size_of :: < rc_api_update_leaderboard_response_t > () - 320usize] ; ["Alignment of rc_api_update_leaderboard_response_t"] [:: core :: mem :: align_of :: < rc_api_update_leaderboard_response_t > () - 8usize] ; ["Offset of field: rc_api_update_leaderboard_response_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_response_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_api_update_leaderboard_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_update_leaderboard_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_leaderboard_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_leaderboard_response (response : * mut rc_api_update_leaderboard_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_leaderboard_server_response (response : * mut rc_api_update_leaderboard_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_leaderboard_response (response : * mut rc_api_update_leaderboard_response_t) ; } # [doc = " API parameters for a fetch badge range request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_badge_range_request_t { pub unused : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_badge_range_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_badge_range_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_badge_range_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_badge_range_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_badge_range_request_t::unused"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_request_t , unused) - 0usize] ; } ; # [doc = " Response data for a fetch badge range request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_badge_range_response_t { pub first_badge_id : u32 , pub next_badge_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_badge_range_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_badge_range_response_t > () - 320usize] ; ["Alignment of rc_api_fetch_badge_range_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_badge_range_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::first_badge_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , first_badge_id) - 0usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::next_badge_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , next_badge_id) - 4usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_fetch_badge_range_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_badge_range_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_badge_range_response (response : * mut rc_api_fetch_badge_range_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_badge_range_server_response (response : * mut rc_api_fetch_badge_range_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_badge_range_response (response : * mut rc_api_fetch_badge_range_response_t) ; } # [doc = " API parameters for an add game hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_add_game_hash_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub hash : * const :: core :: ffi :: c_char , pub hash_description : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_add_game_hash_request_t"] [:: core :: mem :: size_of :: < rc_api_add_game_hash_request_t > () - 48usize] ; ["Alignment of rc_api_add_game_hash_request_t"] [:: core :: mem :: align_of :: < rc_api_add_game_hash_request_t > () - 8usize] ; ["Offset of field: rc_api_add_game_hash_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , username) - 0usize] ; ["Offset of field: rc_api_add_game_hash_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_add_game_hash_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_add_game_hash_request_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , console_id) - 20usize] ; ["Offset of field: rc_api_add_game_hash_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , title) - 24usize] ; ["Offset of field: rc_api_add_game_hash_request_t::hash"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , hash) - 32usize] ; ["Offset of field: rc_api_add_game_hash_request_t::hash_description"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , hash_description) - 40usize] ; } ; # [doc = " Response data for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_add_game_hash_response_t { pub game_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_add_game_hash_response_t"] [:: core :: mem :: size_of :: < rc_api_add_game_hash_response_t > () - 320usize] ; ["Alignment of rc_api_add_game_hash_response_t"] [:: core :: mem :: align_of :: < rc_api_add_game_hash_response_t > () - 8usize] ; ["Offset of field: rc_api_add_game_hash_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_response_t , game_id) - 0usize] ; ["Offset of field: rc_api_add_game_hash_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_add_game_hash_request (request : * mut rc_api_request_t , api_params : * const rc_api_add_game_hash_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_add_game_hash_response (response : * mut rc_api_add_game_hash_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_add_game_hash_server_response (response : * mut rc_api_add_game_hash_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_add_game_hash_response (response : * mut rc_api_add_game_hash_response_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_t { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_menu_item_t { pub label : * const :: core :: ffi :: c_char , pub id : u32 , pub checked : u8 , pub enabled : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_menu_item_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_menu_item_t > () - 16usize] ; ["Alignment of rc_client_raintegration_menu_item_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_menu_item_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::label"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , label) - 0usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::id"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , id) - 8usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::checked"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , checked) - 12usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::enabled"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , enabled) - 13usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_menu_t { pub items : * mut rc_client_raintegration_menu_item_t , pub num_items : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_menu_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_menu_t > () - 16usize] ; ["Alignment of rc_client_raintegration_menu_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_menu_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_menu_t::items"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_t , items) - 0usize] ; ["Offset of field: rc_client_raintegration_menu_t::num_items"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_t , num_items) - 8usize] ; } ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_NONE : _bindgen_ty_10 = 0 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_PUBLISHED : _bindgen_ty_10 = 1 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_LOCAL : _bindgen_ty_10 = 2 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_MODIFIED : _bindgen_ty_10 = 3 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_INSECURE : _bindgen_ty_10 = 4 ; pub type _bindgen_ty_10 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_RAINTEGRATION_EVENT_TYPE_NONE : _bindgen_ty_11 = 0 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_MENUITEM_CHECKED_CHANGED : _bindgen_ty_11 = 1 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_HARDCORE_CHANGED : _bindgen_ty_11 = 2 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_PAUSE : _bindgen_ty_11 = 3 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_MENU_CHANGED : _bindgen_ty_11 = 4 ; pub type _bindgen_ty_11 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_event_t { pub type_ : u32 , pub menu_item : * const rc_client_raintegration_menu_item_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_event_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_event_t > () - 16usize] ; ["Alignment of rc_client_raintegration_event_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_event_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_event_t::type_"] [:: core :: mem :: offset_of ! (rc_client_raintegration_event_t , type_) - 0usize] ; ["Offset of field: rc_client_raintegration_event_t::menu_item"] [:: core :: mem :: offset_of ! (rc_client_raintegration_event_t , menu_item) - 8usize] ; } ; pub type rc_client_raintegration_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (event : * const rc_client_raintegration_event_t , client : * mut rc_client_t) > ; pub type rc_client_raintegration_write_memory_func_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , buffer : * mut u8 , num_bytes : u32 , client : * mut rc_client_t) > ; pub type rc_client_raintegration_get_game_name_func_t = :: core :: option :: Option < unsafe extern "C" fn (buffer : * mut :: core :: ffi :: c_char , buffer_size : u32 , client : * mut rc_client_t) > ; # [doc = " API parameters for a fetch achievement info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_achievement_info_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub first_entry : u32 , pub count : u32 , pub friends_only : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_achievement_info_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_achievement_info_request_t > () - 32usize] ; ["Alignment of rc_api_fetch_achievement_info_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_achievement_info_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::first_entry"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , first_entry) - 20usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::count"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , count) - 24usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::friends_only"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , friends_only) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_achievement_awarded_entry_t { pub username : * const :: core :: ffi :: c_char , pub awarded : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_achievement_awarded_entry_t"] [:: core :: mem :: size_of :: < rc_api_achievement_awarded_entry_t > () - 16usize] ; ["Alignment of rc_api_achievement_awarded_entry_t"] [:: core :: mem :: align_of :: < rc_api_achievement_awarded_entry_t > () - 8usize] ; ["Offset of field: rc_api_achievement_awarded_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_achievement_awarded_entry_t , username) - 0usize] ; ["Offset of field: rc_api_achievement_awarded_entry_t::awarded"] [:: core :: mem :: offset_of ! (rc_api_achievement_awarded_entry_t , awarded) - 8usize] ; } ; # [doc = " Response data for a fetch achievement info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_achievement_info_response_t { pub id : u32 , pub game_id : u32 , pub num_awarded : u32 , pub num_players : u32 , pub recently_awarded : * mut rc_api_achievement_awarded_entry_t , pub num_recently_awarded : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_achievement_info_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_achievement_info_response_t > () - 344usize] ; ["Alignment of rc_api_fetch_achievement_info_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_achievement_info_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , game_id) - 4usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_awarded) - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_players"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_players) - 12usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::recently_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , recently_awarded) - 16usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_recently_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_recently_awarded) - 24usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_fetch_achievement_info_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_achievement_info_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_achievement_info_response (response : * mut rc_api_fetch_achievement_info_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_achievement_info_server_response (response : * mut rc_api_fetch_achievement_info_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_achievement_info_response (response : * mut rc_api_fetch_achievement_info_response_t) ; } # [doc = " API parameters for a fetch leaderboard info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_leaderboard_info_request_t { pub leaderboard_id : u32 , pub count : u32 , pub first_entry : u32 , pub username : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_leaderboard_info_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_leaderboard_info_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_leaderboard_info_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_leaderboard_info_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::count"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , count) - 4usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::first_entry"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , first_entry) - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , username) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_lboard_info_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub index : u32 , pub score : i32 , pub submitted : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_lboard_info_entry_t"] [:: core :: mem :: size_of :: < rc_api_lboard_info_entry_t > () - 32usize] ; ["Alignment of rc_api_lboard_info_entry_t"] [:: core :: mem :: align_of :: < rc_api_lboard_info_entry_t > () - 8usize] ; ["Offset of field: rc_api_lboard_info_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , username) - 0usize] ; ["Offset of field: rc_api_lboard_info_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , rank) - 8usize] ; ["Offset of field: rc_api_lboard_info_entry_t::index"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , index) - 12usize] ; ["Offset of field: rc_api_lboard_info_entry_t::score"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , score) - 16usize] ; ["Offset of field: rc_api_lboard_info_entry_t::submitted"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , submitted) - 24usize] ; } ; # [doc = " Response data for a fetch leaderboard info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_leaderboard_info_response_t { pub id : u32 , pub format : :: core :: ffi :: c_int , pub lower_is_better : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub game_id : u32 , pub author : * const :: core :: ffi :: c_char , pub created : time_t , pub updated : time_t , pub entries : * mut rc_api_lboard_info_entry_t , pub num_entries : u32 , pub total_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_leaderboard_info_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_leaderboard_info_response_t > () - 400usize] ; ["Alignment of rc_api_fetch_leaderboard_info_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_leaderboard_info_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::format"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , format) - 4usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , lower_is_better) - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::title"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , title) - 16usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::description"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , description) - 24usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::definition"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , definition) - 32usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , game_id) - 40usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::author"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , author) - 48usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::created"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , created) - 56usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::updated"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , updated) - 64usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , entries) - 72usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , num_entries) - 80usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::total_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , total_entries) - 84usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , response) - 88usize] ; } ; extern "C" { pub fn rc_api_init_fetch_leaderboard_info_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_leaderboard_info_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_leaderboard_info_response (response : * mut rc_api_fetch_leaderboard_info_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_leaderboard_info_server_response (response : * mut rc_api_fetch_leaderboard_info_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_leaderboard_info_response (response : * mut rc_api_fetch_leaderboard_info_response_t) ; } # [doc = " API parameters for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_games_list_request_t { pub console_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_games_list_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_games_list_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_games_list_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_games_list_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_games_list_request_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_request_t , console_id) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_game_list_entry_t { pub id : u32 , pub name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_game_list_entry_t"] [:: core :: mem :: size_of :: < rc_api_game_list_entry_t > () - 16usize] ; ["Alignment of rc_api_game_list_entry_t"] [:: core :: mem :: align_of :: < rc_api_game_list_entry_t > () - 8usize] ; ["Offset of field: rc_api_game_list_entry_t::id"] [:: core :: mem :: offset_of ! (rc_api_game_list_entry_t , id) - 0usize] ; ["Offset of field: rc_api_game_list_entry_t::name"] [:: core :: mem :: offset_of ! (rc_api_game_list_entry_t , name) - 8usize] ; } ; # [doc = " Response data for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_games_list_response_t { pub entries : * mut rc_api_game_list_entry_t , pub num_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_games_list_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_games_list_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_games_list_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_games_list_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , entries) - 0usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , num_entries) - 8usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_games_list_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_games_list_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_games_list_response (response : * mut rc_api_fetch_games_list_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_games_list_server_response (response : * mut rc_api_fetch_games_list_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_games_list_response (response : * mut rc_api_fetch_games_list_response_t) ; } # [doc = " API parameters for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_titles_request_t { pub game_ids : * const u32 , pub num_game_ids : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_titles_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_titles_request_t > () - 16usize] ; ["Alignment of rc_api_fetch_game_titles_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_titles_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_request_t::game_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_request_t , game_ids) - 0usize] ; ["Offset of field: rc_api_fetch_game_titles_request_t::num_game_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_request_t , num_game_ids) - 8usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_game_title_entry_t { pub id : u32 , pub title : * const :: core :: ffi :: c_char , pub image_name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_game_title_entry_t"] [:: core :: mem :: size_of :: < rc_api_game_title_entry_t > () - 24usize] ; ["Alignment of rc_api_game_title_entry_t"] [:: core :: mem :: align_of :: < rc_api_game_title_entry_t > () - 8usize] ; ["Offset of field: rc_api_game_title_entry_t::id"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , id) - 0usize] ; ["Offset of field: rc_api_game_title_entry_t::title"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , title) - 8usize] ; ["Offset of field: rc_api_game_title_entry_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , image_name) - 16usize] ; } ; # [doc = " Response data for a fetch games title request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_titles_response_t { pub entries : * mut rc_api_game_title_entry_t , pub num_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_titles_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_titles_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_game_titles_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_titles_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , entries) - 0usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , num_entries) - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_game_titles_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_game_titles_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_titles_server_response (response : * mut rc_api_fetch_game_titles_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_game_titles_response (response : * mut rc_api_fetch_game_titles_response_t) ; } pub type __gnuc_va_list = __builtin_va_list ; # [repr (C)] # [derive (Copy , Clone)] pub struct __mbstate_t { pub __count : :: core :: ffi :: c_int , pub __value : __mbstate_t__bindgen_ty_1 , } # [repr (C)] # [derive (Copy , Clone)] pub union __mbstate_t__bindgen_ty_1 { pub __wch : :: core :: ffi :: c_uint , pub __wchb : [:: core :: ffi :: c_char ; 4usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __mbstate_t__bindgen_ty_1"] [:: core :: mem :: size_of :: < __mbstate_t__bindgen_ty_1 > () - 4usize] ; ["Alignment of __mbstate_t__bindgen_ty_1"] [:: core :: mem :: align_of :: < __mbstate_t__bindgen_ty_1 > () - 4usize] ; ["Offset of field: __mbstate_t__bindgen_ty_1::__wch"] [:: core :: mem :: offset_of ! (__mbstate_t__bindgen_ty_1 , __wch) - 0usize] ; ["Offset of field: __mbstate_t__bindgen_ty_1::__wchb"] [:: core :: mem :: offset_of ! (__mbstate_t__bindgen_ty_1 , __wchb) - 0usize] ; } ; impl :: core :: fmt :: Debug for __mbstate_t__bindgen_ty_1 { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "__mbstate_t__bindgen_ty_1 {{ union }}") } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __mbstate_t"] [:: core :: mem :: size_of :: < __mbstate_t > () - 8usize] ; ["Alignment of __mbstate_t"] [:: core :: mem :: align_of :: < __mbstate_t > () - 4usize] ; ["Offset of field: __mbstate_t::__count"] [:: core :: mem :: offset_of ! (__mbstate_t , __count) - 0usize] ; ["Offset of field: __mbstate_t::__value"] [:: core :: mem :: offset_of ! (__mbstate_t , __value) - 4usize] ; } ; impl :: core :: fmt :: Debug for __mbstate_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "__mbstate_t {{ __count: {:?}, __value: {:?} }}" , self . __count , self . __value) } } # [repr (C)] # [derive (Copy , Clone)] pub struct _G_fpos_t { pub __pos : __off_t , pub __state : __mbstate_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _G_fpos_t"] [:: core :: mem :: size_of :: < _G_fpos_t > () - 16usize] ; ["Alignment of _G_fpos_t"] [:: core :: mem :: align_of :: < _G_fpos_t > () - 8usize] ; ["Offset of field: _G_fpos_t::__pos"] [:: core :: mem :: offset_of ! (_G_fpos_t , __pos) - 0usize] ; ["Offset of field: _G_fpos_t::__state"] [:: core :: mem :: offset_of ! (_G_fpos_t , __state) - 8usize] ; } ; impl :: core :: fmt :: Debug for _G_fpos_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "_G_fpos_t {{ __pos: {:?}, __state: {:?} }}" , self . __pos , self . __state) } } pub type __fpos_t = _G_fpos_t ; # [repr (C)] # [derive (Copy , Clone)] pub struct _G_fpos64_t { pub __pos : __off64_t , pub __state : __mbstate_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _G_fpos64_t"] [:: core :: mem :: size_of :: < _G_fpos64_t > () - 16usize] ; ["Alignment of _G_fpos64_t"] [:: core :: mem :: align_of :: < _G_fpos64_t > () - 8usize] ; ["Offset of field: _G_fpos64_t::__pos"] [:: core :: mem :: offset_of ! (_G_fpos64_t , __pos) - 0usize] ; ["Offset of field: _G_fpos64_t::__state"] [:: core :: mem :: offset_of ! (_G_fpos64_t , __state) - 8usize] ; } ; impl :: core :: fmt :: Debug for _G_fpos64_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "_G_fpos64_t {{ __pos: {:?}, __state: {:?} }}" , self . __pos , self . __state) } } pub type __fpos64_t = _G_fpos64_t ; pub type __FILE = _IO_FILE ; pub type FILE = _IO_FILE ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_marker { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_codecvt { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_wide_data { _unused : [u8 ; 0] , } pub type _IO_lock_t = :: core :: ffi :: c_void ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_FILE { pub _flags : :: core :: ffi :: c_int , pub _IO_read_ptr : * mut :: core :: ffi :: c_char , pub _IO_read_end : * mut :: core :: ffi :: c_char , pub _IO_read_base : * mut :: core :: ffi :: c_char , pub _IO_write_base : * mut :: core :: ffi :: c_char , pub _IO_write_ptr : * mut :: core :: ffi :: c_char , pub _IO_write_end : * mut :: core :: ffi :: c_char , pub _IO_buf_base : * mut :: core :: ffi :: c_char , pub _IO_buf_end : * mut :: core :: ffi :: c_char , pub _IO_save_base : * mut :: core :: ffi :: c_char , pub _IO_backup_base : * mut :: core :: ffi :: c_char , pub _IO_save_end : * mut :: core :: ffi :: c_char , pub _markers : * mut _IO_marker , pub _chain : * mut _IO_FILE , pub _fileno : :: core :: ffi :: c_int , pub _bitfield_align_1 : [u32 ; 0] , pub _bitfield_1 : __BindgenBitfieldUnit < [u8 ; 3usize] > , pub _short_backupbuf : [:: core :: ffi :: c_char ; 1usize] , pub _old_offset : __off_t , pub _cur_column : :: core :: ffi :: c_ushort , pub _vtable_offset : :: core :: ffi :: c_schar , pub _shortbuf : [:: core :: ffi :: c_char ; 1usize] , pub _lock : * mut _IO_lock_t , pub _offset : __off64_t , pub _codecvt : * mut _IO_codecvt , pub _wide_data : * mut _IO_wide_data , pub _freeres_list : * mut _IO_FILE , pub _freeres_buf : * mut :: core :: ffi :: c_void , pub _prevchain : * mut * mut _IO_FILE , pub _mode : :: core :: ffi :: c_int , pub _unused3 : :: core :: ffi :: c_int , pub _total_written : __uint64_t , pub _unused2 : [:: core :: ffi :: c_char ; 8usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _IO_FILE"] [:: core :: mem :: size_of :: < _IO_FILE > () - 216usize] ; ["Alignment of _IO_FILE"] [:: core :: mem :: align_of :: < _IO_FILE > () - 8usize] ; ["Offset of field: _IO_FILE::_flags"] [:: core :: mem :: offset_of ! (_IO_FILE , _flags) - 0usize] ; ["Offset of field: _IO_FILE::_IO_read_ptr"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_ptr) - 8usize] ; ["Offset of field: _IO_FILE::_IO_read_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_end) - 16usize] ; ["Offset of field: _IO_FILE::_IO_read_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_base) - 24usize] ; ["Offset of field: _IO_FILE::_IO_write_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_base) - 32usize] ; ["Offset of field: _IO_FILE::_IO_write_ptr"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_ptr) - 40usize] ; ["Offset of field: _IO_FILE::_IO_write_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_end) - 48usize] ; ["Offset of field: _IO_FILE::_IO_buf_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_buf_base) - 56usize] ; ["Offset of field: _IO_FILE::_IO_buf_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_buf_end) - 64usize] ; ["Offset of field: _IO_FILE::_IO_save_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_save_base) - 72usize] ; ["Offset of field: _IO_FILE::_IO_backup_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_backup_base) - 80usize] ; ["Offset of field: _IO_FILE::_IO_save_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_save_end) - 88usize] ; ["Offset of field: _IO_FILE::_markers"] [:: core :: mem :: offset_of ! (_IO_FILE , _markers) - 96usize] ; ["Offset of field: _IO_FILE::_chain"] [:: core :: mem :: offset_of ! (_IO_FILE , _chain) - 104usize] ; ["Offset of field: _IO_FILE::_fileno"] [:: core :: mem :: offset_of ! (_IO_FILE , _fileno) - 112usize] ; ["Offset of field: _IO_FILE::_short_backupbuf"] [:: core :: mem :: offset_of ! (_IO_FILE , _short_backupbuf) - 119usize] ; ["Offset of field: _IO_FILE::_old_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _old_offset) - 120usize] ; ["Offset of field: _IO_FILE::_cur_column"] [:: core :: mem :: offset_of ! (_IO_FILE , _cur_column) - 128usize] ; ["Offset of field: _IO_FILE::_vtable_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _vtable_offset) - 130usize] ; ["Offset of field: _IO_FILE::_shortbuf"] [:: core :: mem :: offset_of ! (_IO_FILE , _shortbuf) - 131usize] ; ["Offset of field: _IO_FILE::_lock"] [:: core :: mem :: offset_of ! (_IO_FILE , _lock) - 136usize] ; ["Offset of field: _IO_FILE::_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _offset) - 144usize] ; ["Offset of field: _IO_FILE::_codecvt"] [:: core :: mem :: offset_of ! (_IO_FILE , _codecvt) - 152usize] ; ["Offset of field: _IO_FILE::_wide_data"] [:: core :: mem :: offset_of ! (_IO_FILE , _wide_data) - 160usize] ; ["Offset of field: _IO_FILE::_freeres_list"] [:: core :: mem :: offset_of ! (_IO_FILE , _freeres_list) - 168usize] ; ["Offset of field: _IO_FILE::_freeres_buf"] [:: core :: mem :: offset_of ! (_IO_FILE , _freeres_buf) - 176usize] ; ["Offset of field: _IO_FILE::_prevchain"] [:: core :: mem :: offset_of ! (_IO_FILE , _prevchain) - 184usize] ; ["Offset of field: _IO_FILE::_mode"] [:: core :: mem :: offset_of ! (_IO_FILE , _mode) - 192usize] ; ["Offset of field: _IO_FILE::_unused3"] [:: core :: mem :: offset_of ! (_IO_FILE , _unused3) - 196usize] ; ["Offset of field: _IO_FILE::_total_written"] [:: core :: mem :: offset_of ! (_IO_FILE , _total_written) - 200usize] ; ["Offset of field: _IO_FILE::_unused2"] [:: core :: mem :: offset_of ! (_IO_FILE , _unused2) - 208usize] ; } ; impl _IO_FILE { # [inline] pub fn _flags2 (& self) -> :: core :: ffi :: c_int { unsafe { :: core :: mem :: transmute (self . _bitfield_1 . get (0usize , 24u8) as u32) } } # [inline] pub fn set__flags2 (& mut self , val : :: core :: ffi :: c_int) { unsafe { let val : u32 = :: core :: mem :: transmute (val) ; self . _bitfield_1 . set (0usize , 24u8 , val as u64) } } # [inline] pub fn new_bitfield_1 (_flags2 : :: core :: ffi :: c_int) -> __BindgenBitfieldUnit < [u8 ; 3usize] > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [u8 ; 3usize] > = Default :: default () ; __bindgen_bitfield_unit . set (0usize , 24u8 , { let _flags2 : u32 = unsafe { :: core :: mem :: transmute (_flags2) } ; _flags2 as u64 }) ; __bindgen_bitfield_unit } } pub type cookie_read_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __buf : * mut :: core :: ffi :: c_char , __nbytes : usize) -> __ssize_t > ; pub type cookie_write_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __buf : * const :: core :: ffi :: c_char , __nbytes : usize) -> __ssize_t > ; pub type cookie_seek_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __pos : * mut __off64_t , __w : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int > ; pub type cookie_close_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void) -> :: core :: ffi :: 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 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _IO_cookie_io_functions_t"] [:: core :: mem :: size_of :: < _IO_cookie_io_functions_t > () - 32usize] ; ["Alignment of _IO_cookie_io_functions_t"] [:: core :: mem :: align_of :: < _IO_cookie_io_functions_t > () - 8usize] ; ["Offset of field: _IO_cookie_io_functions_t::read"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , read) - 0usize] ; ["Offset of field: _IO_cookie_io_functions_t::write"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , write) - 8usize] ; ["Offset of field: _IO_cookie_io_functions_t::seek"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , seek) - 16usize] ; ["Offset of field: _IO_cookie_io_functions_t::close"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , close) - 24usize] ; } ; 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" { pub static mut stdin : * mut FILE ; } extern "C" { pub static mut stdout : * mut FILE ; } extern "C" { pub static mut stderr : * mut FILE ; } extern "C" { pub fn remove (__filename : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rename (__old : * const :: core :: ffi :: c_char , __new : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn renameat (__oldfd : :: core :: ffi :: c_int , __old : * const :: core :: ffi :: c_char , __newfd : :: core :: ffi :: c_int , __new : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fclose (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn tmpfile () -> * mut FILE ; } extern "C" { pub fn tmpnam (arg1 : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn tmpnam_r (__s : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn tempnam (__dir : * const :: core :: ffi :: c_char , __pfx : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn fflush (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fflush_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fopen (__filename : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn freopen (__filename : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char , __stream : * mut FILE) -> * mut FILE ; } extern "C" { pub fn fdopen (__fd : :: core :: ffi :: c_int , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn fopencookie (__magic_cookie : * mut :: core :: ffi :: c_void , __modes : * const :: core :: ffi :: c_char , __io_funcs : cookie_io_functions_t) -> * mut FILE ; } extern "C" { pub fn fmemopen (__s : * mut :: core :: ffi :: c_void , __len : usize , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn open_memstream (__bufloc : * mut * mut :: core :: ffi :: c_char , __sizeloc : * mut usize) -> * mut FILE ; } extern "C" { pub fn setbuf (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char) ; } extern "C" { pub fn setvbuf (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char , __modes : :: core :: ffi :: c_int , __n : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn setbuffer (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char , __size : usize) ; } extern "C" { pub fn setlinebuf (__stream : * mut FILE) ; } extern "C" { pub fn fprintf (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn printf (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn sprintf (__s : * mut :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vfprintf (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vprintf (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsprintf (__s : * mut :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn snprintf (__s : * mut :: core :: ffi :: c_char , __maxlen : :: core :: ffi :: c_ulong , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsnprintf (__s : * mut :: core :: ffi :: c_char , __maxlen : :: core :: ffi :: c_ulong , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vasprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __f : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn __asprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn asprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vdprintf (__fd : :: core :: ffi :: c_int , __fmt : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn dprintf (__fd : :: core :: ffi :: c_int , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fscanf (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn scanf (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn sscanf (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } pub type __cfloat128 = __BindgenComplex < u128 > ; pub type _Float128 = u128 ; pub type _Float32 = f32 ; pub type _Float64 = f64 ; pub type _Float32x = f64 ; pub type _Float64x = u128 ; extern "C" { # [link_name = "\u{1}__isoc99_fscanf"] pub fn fscanf1 (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_scanf"] pub fn scanf1 (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_sscanf"] pub fn sscanf1 (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vfscanf (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vscanf (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsscanf (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vfscanf"] pub fn vfscanf1 (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vscanf"] pub fn vscanf1 (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vsscanf"] pub fn vsscanf1 (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgetc (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getc (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getchar () -> :: core :: ffi :: c_int ; } extern "C" { pub fn getc_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getchar_unlocked () -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgetc_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fputc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putchar (__c : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fputc_unlocked (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putc_unlocked (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putchar_unlocked (__c : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getw (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putw (__w : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgets (__s : * mut :: core :: ffi :: c_char , __n : :: core :: ffi :: c_int , __stream : * mut FILE) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn __getdelim (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __delimiter : :: core :: ffi :: c_int , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn getdelim (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __delimiter : :: core :: ffi :: c_int , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn getline (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn fputs (__s : * const :: core :: ffi :: c_char , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn puts (__s : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ungetc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fread (__ptr : * mut :: core :: ffi :: c_void , __size : :: core :: ffi :: c_ulong , __n : :: core :: ffi :: c_ulong , __stream : * mut FILE) -> :: core :: ffi :: c_ulong ; } extern "C" { pub fn fwrite (__ptr : * const :: core :: ffi :: c_void , __size : :: core :: ffi :: c_ulong , __n : :: core :: ffi :: c_ulong , __s : * mut FILE) -> :: core :: ffi :: c_ulong ; } extern "C" { pub fn fread_unlocked (__ptr : * mut :: core :: ffi :: c_void , __size : usize , __n : usize , __stream : * mut FILE) -> usize ; } extern "C" { pub fn fwrite_unlocked (__ptr : * const :: core :: ffi :: c_void , __size : usize , __n : usize , __stream : * mut FILE) -> usize ; } extern "C" { pub fn fseek (__stream : * mut FILE , __off : :: core :: ffi :: c_long , __whence : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ftell (__stream : * mut FILE) -> :: core :: ffi :: c_long ; } extern "C" { pub fn rewind (__stream : * mut FILE) ; } extern "C" { pub fn fseeko (__stream : * mut FILE , __off : __off_t , __whence : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ftello (__stream : * mut FILE) -> __off_t ; } extern "C" { pub fn fgetpos (__stream : * mut FILE , __pos : * mut fpos_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fsetpos (__stream : * mut FILE , __pos : * const fpos_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clearerr (__stream : * mut FILE) ; } extern "C" { pub fn feof (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ferror (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clearerr_unlocked (__stream : * mut FILE) ; } extern "C" { pub fn feof_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ferror_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn perror (__s : * const :: core :: ffi :: c_char) ; } extern "C" { pub fn fileno (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fileno_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn pclose (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn popen (__command : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn ctermid (__s : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn flockfile (__stream : * mut FILE) ; } extern "C" { pub fn ftrylockfile (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn funlockfile (__stream : * mut FILE) ; } extern "C" { pub fn __uflow (arg1 : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn __overflow (arg1 : * mut FILE , arg2 : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } pub const RC_CONSOLE_UNKNOWN : _bindgen_ty_12 = 0 ; pub const RC_CONSOLE_MEGA_DRIVE : _bindgen_ty_12 = 1 ; pub const RC_CONSOLE_NINTENDO_64 : _bindgen_ty_12 = 2 ; pub const RC_CONSOLE_SUPER_NINTENDO : _bindgen_ty_12 = 3 ; pub const RC_CONSOLE_GAMEBOY : _bindgen_ty_12 = 4 ; pub const RC_CONSOLE_GAMEBOY_ADVANCE : _bindgen_ty_12 = 5 ; pub const RC_CONSOLE_GAMEBOY_COLOR : _bindgen_ty_12 = 6 ; pub const RC_CONSOLE_NINTENDO : _bindgen_ty_12 = 7 ; pub const RC_CONSOLE_PC_ENGINE : _bindgen_ty_12 = 8 ; pub const RC_CONSOLE_SEGA_CD : _bindgen_ty_12 = 9 ; pub const RC_CONSOLE_SEGA_32X : _bindgen_ty_12 = 10 ; pub const RC_CONSOLE_MASTER_SYSTEM : _bindgen_ty_12 = 11 ; pub const RC_CONSOLE_PLAYSTATION : _bindgen_ty_12 = 12 ; pub const RC_CONSOLE_ATARI_LYNX : _bindgen_ty_12 = 13 ; pub const RC_CONSOLE_NEOGEO_POCKET : _bindgen_ty_12 = 14 ; pub const RC_CONSOLE_GAME_GEAR : _bindgen_ty_12 = 15 ; pub const RC_CONSOLE_GAMECUBE : _bindgen_ty_12 = 16 ; pub const RC_CONSOLE_ATARI_JAGUAR : _bindgen_ty_12 = 17 ; pub const RC_CONSOLE_NINTENDO_DS : _bindgen_ty_12 = 18 ; pub const RC_CONSOLE_WII : _bindgen_ty_12 = 19 ; pub const RC_CONSOLE_WII_U : _bindgen_ty_12 = 20 ; pub const RC_CONSOLE_PLAYSTATION_2 : _bindgen_ty_12 = 21 ; pub const RC_CONSOLE_XBOX : _bindgen_ty_12 = 22 ; pub const RC_CONSOLE_MAGNAVOX_ODYSSEY2 : _bindgen_ty_12 = 23 ; pub const RC_CONSOLE_POKEMON_MINI : _bindgen_ty_12 = 24 ; pub const RC_CONSOLE_ATARI_2600 : _bindgen_ty_12 = 25 ; pub const RC_CONSOLE_MS_DOS : _bindgen_ty_12 = 26 ; pub const RC_CONSOLE_ARCADE : _bindgen_ty_12 = 27 ; pub const RC_CONSOLE_VIRTUAL_BOY : _bindgen_ty_12 = 28 ; pub const RC_CONSOLE_MSX : _bindgen_ty_12 = 29 ; pub const RC_CONSOLE_COMMODORE_64 : _bindgen_ty_12 = 30 ; pub const RC_CONSOLE_ZX81 : _bindgen_ty_12 = 31 ; pub const RC_CONSOLE_ORIC : _bindgen_ty_12 = 32 ; pub const RC_CONSOLE_SG1000 : _bindgen_ty_12 = 33 ; pub const RC_CONSOLE_VIC20 : _bindgen_ty_12 = 34 ; pub const RC_CONSOLE_AMIGA : _bindgen_ty_12 = 35 ; pub const RC_CONSOLE_ATARI_ST : _bindgen_ty_12 = 36 ; pub const RC_CONSOLE_AMSTRAD_PC : _bindgen_ty_12 = 37 ; pub const RC_CONSOLE_APPLE_II : _bindgen_ty_12 = 38 ; pub const RC_CONSOLE_SATURN : _bindgen_ty_12 = 39 ; pub const RC_CONSOLE_DREAMCAST : _bindgen_ty_12 = 40 ; pub const RC_CONSOLE_PSP : _bindgen_ty_12 = 41 ; pub const RC_CONSOLE_CDI : _bindgen_ty_12 = 42 ; pub const RC_CONSOLE_3DO : _bindgen_ty_12 = 43 ; pub const RC_CONSOLE_COLECOVISION : _bindgen_ty_12 = 44 ; pub const RC_CONSOLE_INTELLIVISION : _bindgen_ty_12 = 45 ; pub const RC_CONSOLE_VECTREX : _bindgen_ty_12 = 46 ; pub const RC_CONSOLE_PC8800 : _bindgen_ty_12 = 47 ; pub const RC_CONSOLE_PC9800 : _bindgen_ty_12 = 48 ; pub const RC_CONSOLE_PCFX : _bindgen_ty_12 = 49 ; pub const RC_CONSOLE_ATARI_5200 : _bindgen_ty_12 = 50 ; pub const RC_CONSOLE_ATARI_7800 : _bindgen_ty_12 = 51 ; pub const RC_CONSOLE_X68K : _bindgen_ty_12 = 52 ; pub const RC_CONSOLE_WONDERSWAN : _bindgen_ty_12 = 53 ; pub const RC_CONSOLE_CASSETTEVISION : _bindgen_ty_12 = 54 ; pub const RC_CONSOLE_SUPER_CASSETTEVISION : _bindgen_ty_12 = 55 ; pub const RC_CONSOLE_NEO_GEO_CD : _bindgen_ty_12 = 56 ; pub const RC_CONSOLE_FAIRCHILD_CHANNEL_F : _bindgen_ty_12 = 57 ; pub const RC_CONSOLE_FM_TOWNS : _bindgen_ty_12 = 58 ; pub const RC_CONSOLE_ZX_SPECTRUM : _bindgen_ty_12 = 59 ; pub const RC_CONSOLE_GAME_AND_WATCH : _bindgen_ty_12 = 60 ; pub const RC_CONSOLE_NOKIA_NGAGE : _bindgen_ty_12 = 61 ; pub const RC_CONSOLE_NINTENDO_3DS : _bindgen_ty_12 = 62 ; pub const RC_CONSOLE_SUPERVISION : _bindgen_ty_12 = 63 ; pub const RC_CONSOLE_SHARPX1 : _bindgen_ty_12 = 64 ; pub const RC_CONSOLE_TIC80 : _bindgen_ty_12 = 65 ; pub const RC_CONSOLE_THOMSONTO8 : _bindgen_ty_12 = 66 ; pub const RC_CONSOLE_PC6000 : _bindgen_ty_12 = 67 ; pub const RC_CONSOLE_PICO : _bindgen_ty_12 = 68 ; pub const RC_CONSOLE_MEGADUCK : _bindgen_ty_12 = 69 ; pub const RC_CONSOLE_ZEEBO : _bindgen_ty_12 = 70 ; pub const RC_CONSOLE_ARDUBOY : _bindgen_ty_12 = 71 ; pub const RC_CONSOLE_WASM4 : _bindgen_ty_12 = 72 ; pub const RC_CONSOLE_ARCADIA_2001 : _bindgen_ty_12 = 73 ; pub const RC_CONSOLE_INTERTON_VC_4000 : _bindgen_ty_12 = 74 ; pub const RC_CONSOLE_ELEKTOR_TV_GAMES_COMPUTER : _bindgen_ty_12 = 75 ; pub const RC_CONSOLE_PC_ENGINE_CD : _bindgen_ty_12 = 76 ; pub const RC_CONSOLE_ATARI_JAGUAR_CD : _bindgen_ty_12 = 77 ; pub const RC_CONSOLE_NINTENDO_DSI : _bindgen_ty_12 = 78 ; pub const RC_CONSOLE_TI83 : _bindgen_ty_12 = 79 ; pub const RC_CONSOLE_UZEBOX : _bindgen_ty_12 = 80 ; pub const RC_CONSOLE_HUBS : _bindgen_ty_12 = 100 ; pub const RC_CONSOLE_EVENTS : _bindgen_ty_12 = 101 ; pub const RC_CONSOLE_STANDALONE : _bindgen_ty_12 = 102 ; # [doc = "\\\n| Console identifiers                                                         |\n\\"] pub type _bindgen_ty_12 = :: core :: ffi :: c_uint ; extern "C" { pub fn rc_console_name (console_id : u32) -> * const :: core :: ffi :: c_char ; } pub const RC_MEMORY_TYPE_SYSTEM_RAM : _bindgen_ty_13 = 0 ; pub const RC_MEMORY_TYPE_SAVE_RAM : _bindgen_ty_13 = 1 ; pub const RC_MEMORY_TYPE_VIDEO_RAM : _bindgen_ty_13 = 2 ; pub const RC_MEMORY_TYPE_READONLY : _bindgen_ty_13 = 3 ; pub const RC_MEMORY_TYPE_HARDWARE_CONTROLLER : _bindgen_ty_13 = 4 ; pub const RC_MEMORY_TYPE_VIRTUAL_RAM : _bindgen_ty_13 = 5 ; pub const RC_MEMORY_TYPE_UNUSED : _bindgen_ty_13 = 6 ; # [doc = "\\\n| Memory mapping                                                              |\n\\"] pub type _bindgen_ty_13 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memory_region_t { pub start_address : u32 , pub end_address : u32 , pub real_address : u32 , pub type_ : u8 , pub description : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memory_region_t"] [:: core :: mem :: size_of :: < rc_memory_region_t > () - 24usize] ; ["Alignment of rc_memory_region_t"] [:: core :: mem :: align_of :: < rc_memory_region_t > () - 8usize] ; ["Offset of field: rc_memory_region_t::start_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , start_address) - 0usize] ; ["Offset of field: rc_memory_region_t::end_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , end_address) - 4usize] ; ["Offset of field: rc_memory_region_t::real_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , real_address) - 8usize] ; ["Offset of field: rc_memory_region_t::type_"] [:: core :: mem :: offset_of ! (rc_memory_region_t , type_) - 12usize] ; ["Offset of field: rc_memory_region_t::description"] [:: core :: mem :: offset_of ! (rc_memory_region_t , description) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memory_regions_t { pub region : * const rc_memory_region_t , pub num_regions : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memory_regions_t"] [:: core :: mem :: size_of :: < rc_memory_regions_t > () - 16usize] ; ["Alignment of rc_memory_regions_t"] [:: core :: mem :: align_of :: < rc_memory_regions_t > () - 8usize] ; ["Offset of field: rc_memory_regions_t::region"] [:: core :: mem :: offset_of ! (rc_memory_regions_t , region) - 0usize] ; ["Offset of field: rc_memory_regions_t::num_regions"] [:: core :: mem :: offset_of ! (rc_memory_regions_t , num_regions) - 8usize] ; } ; extern "C" { pub fn rc_console_memory_regions (console_id : u32) -> * const rc_memory_regions_t ; } extern "C" { pub fn rc_hash_generate_from_buffer (hash : * mut :: core :: ffi :: c_char , console_id : u32 , buffer : * const u8 , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_hash_generate_from_file (hash : * mut :: core :: ffi :: c_char , console_id : u32 , path : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_iterator { pub buffer : * const u8 , pub buffer_size : usize , pub consoles : [u8 ; 12usize] , pub index : :: core :: ffi :: c_int , pub path : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_iterator"] [:: core :: mem :: size_of :: < rc_hash_iterator > () - 40usize] ; ["Alignment of rc_hash_iterator"] [:: core :: mem :: align_of :: < rc_hash_iterator > () - 8usize] ; ["Offset of field: rc_hash_iterator::buffer"] [:: core :: mem :: offset_of ! (rc_hash_iterator , buffer) - 0usize] ; ["Offset of field: rc_hash_iterator::buffer_size"] [:: core :: mem :: offset_of ! (rc_hash_iterator , buffer_size) - 8usize] ; ["Offset of field: rc_hash_iterator::consoles"] [:: core :: mem :: offset_of ! (rc_hash_iterator , consoles) - 16usize] ; ["Offset of field: rc_hash_iterator::index"] [:: core :: mem :: offset_of ! (rc_hash_iterator , index) - 28usize] ; ["Offset of field: rc_hash_iterator::path"] [:: core :: mem :: offset_of ! (rc_hash_iterator , path) - 32usize] ; } ; pub type rc_hash_iterator_t = rc_hash_iterator ; extern "C" { pub fn rc_hash_initialize_iterator (iterator : * mut rc_hash_iterator , path : * const :: core :: ffi :: c_char , buffer : * const u8 , buffer_size : usize) ; } extern "C" { pub fn rc_hash_destroy_iterator (iterator : * mut rc_hash_iterator) ; } extern "C" { pub fn rc_hash_iterate (hash : * mut :: core :: ffi :: c_char , iterator : * mut rc_hash_iterator) -> :: core :: ffi :: c_int ; } pub type rc_hash_message_callback = :: core :: option :: Option < unsafe extern "C" fn (arg1 : * const :: core :: ffi :: c_char) > ; extern "C" { pub fn rc_hash_init_error_message_callback (callback : rc_hash_message_callback) ; } extern "C" { pub fn rc_hash_init_verbose_message_callback (callback : rc_hash_message_callback) ; } pub type rc_hash_filereader_open_file_handler = :: core :: option :: Option < unsafe extern "C" fn (path_utf8 : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_void > ; pub type rc_hash_filereader_seek_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void , offset : i64 , origin : :: core :: ffi :: c_int) > ; pub type rc_hash_filereader_tell_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void) -> i64 > ; pub type rc_hash_filereader_read_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void , buffer : * mut :: core :: ffi :: c_void , requested_bytes : usize) -> usize > ; pub type rc_hash_filereader_close_file_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void) > ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_filereader { pub open : rc_hash_filereader_open_file_handler , pub seek : rc_hash_filereader_seek_handler , pub tell : rc_hash_filereader_tell_handler , pub read : rc_hash_filereader_read_handler , pub close : rc_hash_filereader_close_file_handler , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_filereader"] [:: core :: mem :: size_of :: < rc_hash_filereader > () - 40usize] ; ["Alignment of rc_hash_filereader"] [:: core :: mem :: align_of :: < rc_hash_filereader > () - 8usize] ; ["Offset of field: rc_hash_filereader::open"] [:: core :: mem :: offset_of ! (rc_hash_filereader , open) - 0usize] ; ["Offset of field: rc_hash_filereader::seek"] [:: core :: mem :: offset_of ! (rc_hash_filereader , seek) - 8usize] ; ["Offset of field: rc_hash_filereader::tell"] [:: core :: mem :: offset_of ! (rc_hash_filereader , tell) - 16usize] ; ["Offset of field: rc_hash_filereader::read"] [:: core :: mem :: offset_of ! (rc_hash_filereader , read) - 24usize] ; ["Offset of field: rc_hash_filereader::close"] [:: core :: mem :: offset_of ! (rc_hash_filereader , close) - 32usize] ; } ; extern "C" { pub fn rc_hash_init_custom_filereader (reader : * mut rc_hash_filereader) ; } pub type rc_hash_cdreader_open_track_handler = :: core :: option :: Option < unsafe extern "C" fn (path : * const :: core :: ffi :: c_char , track : u32) -> * mut :: core :: ffi :: c_void > ; pub type rc_hash_cdreader_read_sector_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void , sector : u32 , buffer : * mut :: core :: ffi :: c_void , requested_bytes : usize) -> usize > ; pub type rc_hash_cdreader_close_track_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void) > ; pub type rc_hash_cdreader_first_track_sector_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void) -> u32 > ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_cdreader { pub open_track : rc_hash_cdreader_open_track_handler , pub read_sector : rc_hash_cdreader_read_sector_handler , pub close_track : rc_hash_cdreader_close_track_handler , pub first_track_sector : rc_hash_cdreader_first_track_sector_handler , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_cdreader"] [:: core :: mem :: size_of :: < rc_hash_cdreader > () - 32usize] ; ["Alignment of rc_hash_cdreader"] [:: core :: mem :: align_of :: < rc_hash_cdreader > () - 8usize] ; ["Offset of field: rc_hash_cdreader::open_track"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , open_track) - 0usize] ; ["Offset of field: rc_hash_cdreader::read_sector"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , read_sector) - 8usize] ; ["Offset of field: rc_hash_cdreader::close_track"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , close_track) - 16usize] ; ["Offset of field: rc_hash_cdreader::first_track_sector"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , first_track_sector) - 24usize] ; } ; extern "C" { pub fn rc_hash_get_default_cdreader (cdreader : * mut rc_hash_cdreader) ; } extern "C" { pub fn rc_hash_init_default_cdreader () ; } extern "C" { pub fn rc_hash_init_custom_cdreader (reader : * mut rc_hash_cdreader) ; } pub type rc_hash_3ds_get_cia_normal_key_func = :: core :: option :: Option < unsafe extern "C" fn (common_key_index : u8 , out_normal_key : * mut u8) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_hash_init_3ds_get_cia_normal_key_func (func : rc_hash_3ds_get_cia_normal_key_func) ; } pub type rc_hash_3ds_get_ncch_normal_keys_func = :: core :: option :: Option < unsafe extern "C" fn (primary_key_y : * mut u8 , secondary_key_x_slot : u8 , optional_program_id : * mut u8 , out_primary_key : * mut u8 , out_secondary_key : * mut u8) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_hash_init_3ds_get_ncch_normal_keys_func (func : rc_hash_3ds_get_ncch_normal_keys_func) ; } # [doc = " API parameters for a fetch image request.\n NOTE: fetch image server response is the raw image data. There is no rc_api_process_fetch_image_response function."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_image_request_t { pub image_name : * const :: core :: ffi :: c_char , pub image_type : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_image_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_image_request_t > () - 16usize] ; ["Alignment of rc_api_fetch_image_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_image_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_image_request_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_fetch_image_request_t , image_name) - 0usize] ; ["Offset of field: rc_api_fetch_image_request_t::image_type"] [:: core :: mem :: offset_of ! (rc_api_fetch_image_request_t , image_type) - 8usize] ; } ; extern "C" { pub fn rc_api_init_fetch_image_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_image_request_t) -> :: core :: ffi :: c_int ; } # [doc = " API parameters for a resolve hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_resolve_hash_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_hash : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_resolve_hash_request_t"] [:: core :: mem :: size_of :: < rc_api_resolve_hash_request_t > () - 24usize] ; ["Alignment of rc_api_resolve_hash_request_t"] [:: core :: mem :: align_of :: < rc_api_resolve_hash_request_t > () - 8usize] ; ["Offset of field: rc_api_resolve_hash_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , username) - 0usize] ; ["Offset of field: rc_api_resolve_hash_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_resolve_hash_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , game_hash) - 16usize] ; } ; # [doc = " Response data for a resolve hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_resolve_hash_response_t { pub game_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_resolve_hash_response_t"] [:: core :: mem :: size_of :: < rc_api_resolve_hash_response_t > () - 320usize] ; ["Alignment of rc_api_resolve_hash_response_t"] [:: core :: mem :: align_of :: < rc_api_resolve_hash_response_t > () - 8usize] ; ["Offset of field: rc_api_resolve_hash_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_response_t , game_id) - 0usize] ; ["Offset of field: rc_api_resolve_hash_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_resolve_hash_request (request : * mut rc_api_request_t , api_params : * const rc_api_resolve_hash_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_resolve_hash_response (response : * mut rc_api_resolve_hash_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_resolve_hash_server_response (response : * mut rc_api_resolve_hash_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_resolve_hash_response (response : * mut rc_api_resolve_hash_response_t) ; } # [doc = " API parameters for a fetch game data request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_data_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_data_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_data_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_game_data_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_data_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , game_id) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_leaderboard_definition_t { pub id : u32 , pub format : :: core :: ffi :: c_int , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub lower_is_better : u8 , pub hidden : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_leaderboard_definition_t"] [:: core :: mem :: size_of :: < rc_api_leaderboard_definition_t > () - 40usize] ; ["Alignment of rc_api_leaderboard_definition_t"] [:: core :: mem :: align_of :: < rc_api_leaderboard_definition_t > () - 8usize] ; ["Offset of field: rc_api_leaderboard_definition_t::id"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , id) - 0usize] ; ["Offset of field: rc_api_leaderboard_definition_t::format"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , format) - 4usize] ; ["Offset of field: rc_api_leaderboard_definition_t::title"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , title) - 8usize] ; ["Offset of field: rc_api_leaderboard_definition_t::description"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , description) - 16usize] ; ["Offset of field: rc_api_leaderboard_definition_t::definition"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , definition) - 24usize] ; ["Offset of field: rc_api_leaderboard_definition_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , lower_is_better) - 32usize] ; ["Offset of field: rc_api_leaderboard_definition_t::hidden"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , hidden) - 33usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_achievement_definition_t { pub id : u32 , pub points : u32 , pub category : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub author : * const :: core :: ffi :: c_char , pub badge_name : * const :: core :: ffi :: c_char , pub created : time_t , pub updated : time_t , pub type_ : u32 , pub rarity : f32 , pub rarity_hardcore : f32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_achievement_definition_t"] [:: core :: mem :: size_of :: < rc_api_achievement_definition_t > () - 88usize] ; ["Alignment of rc_api_achievement_definition_t"] [:: core :: mem :: align_of :: < rc_api_achievement_definition_t > () - 8usize] ; ["Offset of field: rc_api_achievement_definition_t::id"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , id) - 0usize] ; ["Offset of field: rc_api_achievement_definition_t::points"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , points) - 4usize] ; ["Offset of field: rc_api_achievement_definition_t::category"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , category) - 8usize] ; ["Offset of field: rc_api_achievement_definition_t::title"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , title) - 16usize] ; ["Offset of field: rc_api_achievement_definition_t::description"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , description) - 24usize] ; ["Offset of field: rc_api_achievement_definition_t::definition"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , definition) - 32usize] ; ["Offset of field: rc_api_achievement_definition_t::author"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , author) - 40usize] ; ["Offset of field: rc_api_achievement_definition_t::badge_name"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , badge_name) - 48usize] ; ["Offset of field: rc_api_achievement_definition_t::created"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , created) - 56usize] ; ["Offset of field: rc_api_achievement_definition_t::updated"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , updated) - 64usize] ; ["Offset of field: rc_api_achievement_definition_t::type_"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , type_) - 72usize] ; ["Offset of field: rc_api_achievement_definition_t::rarity"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , rarity) - 76usize] ; ["Offset of field: rc_api_achievement_definition_t::rarity_hardcore"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , rarity_hardcore) - 80usize] ; } ; # [doc = " Response data for a fetch game data request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_data_response_t { pub id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub image_name : * const :: core :: ffi :: c_char , pub rich_presence_script : * const :: core :: ffi :: c_char , pub achievements : * mut rc_api_achievement_definition_t , pub num_achievements : u32 , pub leaderboards : * mut rc_api_leaderboard_definition_t , pub num_leaderboards : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_data_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_data_response_t > () - 376usize] ; ["Alignment of rc_api_fetch_game_data_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_data_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , console_id) - 4usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::title"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , title) - 8usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , image_name) - 16usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::rich_presence_script"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , rich_presence_script) - 24usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::achievements"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , achievements) - 32usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , num_achievements) - 40usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::leaderboards"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , leaderboards) - 48usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , num_leaderboards) - 56usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , response) - 64usize] ; } ; extern "C" { pub fn rc_api_init_fetch_game_data_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_game_data_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_data_response (response : * mut rc_api_fetch_game_data_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_data_server_response (response : * mut rc_api_fetch_game_data_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_game_data_response (response : * mut rc_api_fetch_game_data_response_t) ; } # [doc = " API parameters for a ping request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_ping_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub rich_presence : * const :: core :: ffi :: c_char , pub game_hash : * const :: core :: ffi :: c_char , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_ping_request_t"] [:: core :: mem :: size_of :: < rc_api_ping_request_t > () - 48usize] ; ["Alignment of rc_api_ping_request_t"] [:: core :: mem :: align_of :: < rc_api_ping_request_t > () - 8usize] ; ["Offset of field: rc_api_ping_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , username) - 0usize] ; ["Offset of field: rc_api_ping_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_ping_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_ping_request_t::rich_presence"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , rich_presence) - 24usize] ; ["Offset of field: rc_api_ping_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , game_hash) - 32usize] ; ["Offset of field: rc_api_ping_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , hardcore) - 40usize] ; } ; # [doc = " Response data for a ping request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_ping_response_t { pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_ping_response_t"] [:: core :: mem :: size_of :: < rc_api_ping_response_t > () - 312usize] ; ["Alignment of rc_api_ping_response_t"] [:: core :: mem :: align_of :: < rc_api_ping_response_t > () - 8usize] ; ["Offset of field: rc_api_ping_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_ping_response_t , response) - 0usize] ; } ; extern "C" { pub fn rc_api_init_ping_request (request : * mut rc_api_request_t , api_params : * const rc_api_ping_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_ping_response (response : * mut rc_api_ping_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_ping_server_response (response : * mut rc_api_ping_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_ping_response (response : * mut rc_api_ping_response_t) ; } # [doc = " API parameters for an award achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_award_achievement_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub hardcore : u32 , pub game_hash : * const :: core :: ffi :: c_char , pub seconds_since_unlock : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_award_achievement_request_t"] [:: core :: mem :: size_of :: < rc_api_award_achievement_request_t > () - 40usize] ; ["Alignment of rc_api_award_achievement_request_t"] [:: core :: mem :: align_of :: < rc_api_award_achievement_request_t > () - 8usize] ; ["Offset of field: rc_api_award_achievement_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , username) - 0usize] ; ["Offset of field: rc_api_award_achievement_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_award_achievement_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_award_achievement_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , hardcore) - 20usize] ; ["Offset of field: rc_api_award_achievement_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_award_achievement_request_t::seconds_since_unlock"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , seconds_since_unlock) - 32usize] ; } ; # [doc = " Response data for an award achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_award_achievement_response_t { pub awarded_achievement_id : u32 , pub new_player_score : u32 , pub new_player_score_softcore : u32 , pub achievements_remaining : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_award_achievement_response_t"] [:: core :: mem :: size_of :: < rc_api_award_achievement_response_t > () - 328usize] ; ["Alignment of rc_api_award_achievement_response_t"] [:: core :: mem :: align_of :: < rc_api_award_achievement_response_t > () - 8usize] ; ["Offset of field: rc_api_award_achievement_response_t::awarded_achievement_id"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , awarded_achievement_id) - 0usize] ; ["Offset of field: rc_api_award_achievement_response_t::new_player_score"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , new_player_score) - 4usize] ; ["Offset of field: rc_api_award_achievement_response_t::new_player_score_softcore"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , new_player_score_softcore) - 8usize] ; ["Offset of field: rc_api_award_achievement_response_t::achievements_remaining"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , achievements_remaining) - 12usize] ; ["Offset of field: rc_api_award_achievement_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_award_achievement_request (request : * mut rc_api_request_t , api_params : * const rc_api_award_achievement_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_award_achievement_response (response : * mut rc_api_award_achievement_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_award_achievement_server_response (response : * mut rc_api_award_achievement_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_award_achievement_response (response : * mut rc_api_award_achievement_response_t) ; } # [doc = " API parameters for a submit lboard entry request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_submit_lboard_entry_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub leaderboard_id : u32 , pub score : i32 , pub game_hash : * const :: core :: ffi :: c_char , pub seconds_since_completion : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_submit_lboard_entry_request_t"] [:: core :: mem :: size_of :: < rc_api_submit_lboard_entry_request_t > () - 40usize] ; ["Alignment of rc_api_submit_lboard_entry_request_t"] [:: core :: mem :: align_of :: < rc_api_submit_lboard_entry_request_t > () - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , username) - 0usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , leaderboard_id) - 16usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , score) - 20usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::seconds_since_completion"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , seconds_since_completion) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_lboard_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub score : i32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_lboard_entry_t"] [:: core :: mem :: size_of :: < rc_api_lboard_entry_t > () - 16usize] ; ["Alignment of rc_api_lboard_entry_t"] [:: core :: mem :: align_of :: < rc_api_lboard_entry_t > () - 8usize] ; ["Offset of field: rc_api_lboard_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , username) - 0usize] ; ["Offset of field: rc_api_lboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , rank) - 8usize] ; ["Offset of field: rc_api_lboard_entry_t::score"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , score) - 12usize] ; } ; # [doc = " Response data for a submit lboard entry request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_submit_lboard_entry_response_t { pub submitted_score : i32 , pub best_score : i32 , pub new_rank : u32 , pub num_entries : u32 , pub top_entries : * mut rc_api_lboard_entry_t , pub num_top_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_submit_lboard_entry_response_t"] [:: core :: mem :: size_of :: < rc_api_submit_lboard_entry_response_t > () - 344usize] ; ["Alignment of rc_api_submit_lboard_entry_response_t"] [:: core :: mem :: align_of :: < rc_api_submit_lboard_entry_response_t > () - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::submitted_score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , submitted_score) - 0usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::best_score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , best_score) - 4usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::new_rank"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , new_rank) - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , num_entries) - 12usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::top_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , top_entries) - 16usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::num_top_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , num_top_entries) - 24usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_submit_lboard_entry_request (request : * mut rc_api_request_t , api_params : * const rc_api_submit_lboard_entry_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_submit_lboard_entry_response (response : * mut rc_api_submit_lboard_entry_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_submit_lboard_entry_server_response (response : * mut rc_api_submit_lboard_entry_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_submit_lboard_entry_response (response : * mut rc_api_submit_lboard_entry_response_t) ; } # [doc = " Callback used to read num_bytes bytes from memory starting at address. If\n num_bytes is greater than 1, the value is read in little-endian from\n memory."] pub type rc_runtime_peek_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , num_bytes : u32 , ud : * mut :: core :: ffi :: c_void) -> u32 > ; # [doc = "\\\n| Runtime                                                                     |\n\\"] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_trigger_t { pub id : u32 , pub trigger : * mut rc_trigger_t , pub buffer : * mut :: core :: ffi :: c_void , pub invalid_memref : * mut rc_memref_t , pub md5 : [u8 ; 16usize] , pub serialized_size : i32 , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_trigger_t"] [:: core :: mem :: size_of :: < rc_runtime_trigger_t > () - 56usize] ; ["Alignment of rc_runtime_trigger_t"] [:: core :: mem :: align_of :: < rc_runtime_trigger_t > () - 8usize] ; ["Offset of field: rc_runtime_trigger_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , id) - 0usize] ; ["Offset of field: rc_runtime_trigger_t::trigger"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , trigger) - 8usize] ; ["Offset of field: rc_runtime_trigger_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , buffer) - 16usize] ; ["Offset of field: rc_runtime_trigger_t::invalid_memref"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , invalid_memref) - 24usize] ; ["Offset of field: rc_runtime_trigger_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , md5) - 32usize] ; ["Offset of field: rc_runtime_trigger_t::serialized_size"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , serialized_size) - 48usize] ; ["Offset of field: rc_runtime_trigger_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , owns_memrefs) - 52usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_lboard_t { pub id : u32 , pub value : i32 , pub lboard : * mut rc_lboard_t , pub buffer : * mut :: core :: ffi :: c_void , pub invalid_memref : * mut rc_memref_t , pub md5 : [u8 ; 16usize] , pub serialized_size : u32 , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_lboard_t"] [:: core :: mem :: size_of :: < rc_runtime_lboard_t > () - 56usize] ; ["Alignment of rc_runtime_lboard_t"] [:: core :: mem :: align_of :: < rc_runtime_lboard_t > () - 8usize] ; ["Offset of field: rc_runtime_lboard_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , id) - 0usize] ; ["Offset of field: rc_runtime_lboard_t::value"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , value) - 4usize] ; ["Offset of field: rc_runtime_lboard_t::lboard"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , lboard) - 8usize] ; ["Offset of field: rc_runtime_lboard_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , buffer) - 16usize] ; ["Offset of field: rc_runtime_lboard_t::invalid_memref"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , invalid_memref) - 24usize] ; ["Offset of field: rc_runtime_lboard_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , md5) - 32usize] ; ["Offset of field: rc_runtime_lboard_t::serialized_size"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , serialized_size) - 48usize] ; ["Offset of field: rc_runtime_lboard_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , owns_memrefs) - 52usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_richpresence_t { pub richpresence : * mut rc_richpresence_t , pub buffer : * mut :: core :: ffi :: c_void , pub previous : * mut rc_runtime_richpresence_t , pub md5 : [u8 ; 16usize] , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_richpresence_t"] [:: core :: mem :: size_of :: < rc_runtime_richpresence_t > () - 48usize] ; ["Alignment of rc_runtime_richpresence_t"] [:: core :: mem :: align_of :: < rc_runtime_richpresence_t > () - 8usize] ; ["Offset of field: rc_runtime_richpresence_t::richpresence"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , richpresence) - 0usize] ; ["Offset of field: rc_runtime_richpresence_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , buffer) - 8usize] ; ["Offset of field: rc_runtime_richpresence_t::previous"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , previous) - 16usize] ; ["Offset of field: rc_runtime_richpresence_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , md5) - 24usize] ; ["Offset of field: rc_runtime_richpresence_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , owns_memrefs) - 40usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_t { pub triggers : * mut rc_runtime_trigger_t , pub trigger_count : u32 , pub trigger_capacity : u32 , pub lboards : * mut rc_runtime_lboard_t , pub lboard_count : u32 , pub lboard_capacity : u32 , pub richpresence : * mut rc_runtime_richpresence_t , pub memrefs : * mut rc_memref_t , pub next_memref : * mut * mut rc_memref_t , pub variables : * mut rc_value_t , pub next_variable : * mut * mut rc_value_t , pub owns_self : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_t"] [:: core :: mem :: size_of :: < rc_runtime_t > () - 80usize] ; ["Alignment of rc_runtime_t"] [:: core :: mem :: align_of :: < rc_runtime_t > () - 8usize] ; ["Offset of field: rc_runtime_t::triggers"] [:: core :: mem :: offset_of ! (rc_runtime_t , triggers) - 0usize] ; ["Offset of field: rc_runtime_t::trigger_count"] [:: core :: mem :: offset_of ! (rc_runtime_t , trigger_count) - 8usize] ; ["Offset of field: rc_runtime_t::trigger_capacity"] [:: core :: mem :: offset_of ! (rc_runtime_t , trigger_capacity) - 12usize] ; ["Offset of field: rc_runtime_t::lboards"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboards) - 16usize] ; ["Offset of field: rc_runtime_t::lboard_count"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboard_count) - 24usize] ; ["Offset of field: rc_runtime_t::lboard_capacity"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboard_capacity) - 28usize] ; ["Offset of field: rc_runtime_t::richpresence"] [:: core :: mem :: offset_of ! (rc_runtime_t , richpresence) - 32usize] ; ["Offset of field: rc_runtime_t::memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_t , memrefs) - 40usize] ; ["Offset of field: rc_runtime_t::next_memref"] [:: core :: mem :: offset_of ! (rc_runtime_t , next_memref) - 48usize] ; ["Offset of field: rc_runtime_t::variables"] [:: core :: mem :: offset_of ! (rc_runtime_t , variables) - 56usize] ; ["Offset of field: rc_runtime_t::next_variable"] [:: core :: mem :: offset_of ! (rc_runtime_t , next_variable) - 64usize] ; ["Offset of field: rc_runtime_t::owns_self"] [:: core :: mem :: offset_of ! (rc_runtime_t , owns_self) - 72usize] ; } ; extern "C" { pub fn rc_runtime_alloc () -> * mut rc_runtime_t ; } extern "C" { pub fn rc_runtime_init (runtime : * mut rc_runtime_t) ; } extern "C" { pub fn rc_runtime_destroy (runtime : * mut rc_runtime_t) ; } extern "C" { pub fn rc_runtime_activate_achievement (runtime : * mut rc_runtime_t , id : u32 , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deactivate_achievement (runtime : * mut rc_runtime_t , id : u32) ; } extern "C" { pub fn rc_runtime_get_achievement (runtime : * const rc_runtime_t , id : u32) -> * mut rc_trigger_t ; } extern "C" { pub fn rc_runtime_get_achievement_measured (runtime : * const rc_runtime_t , id : u32 , measured_value : * mut :: core :: ffi :: c_uint , measured_target : * mut :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_format_achievement_measured (runtime : * const rc_runtime_t , id : u32 , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_activate_lboard (runtime : * mut rc_runtime_t , id : u32 , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deactivate_lboard (runtime : * mut rc_runtime_t , id : u32) ; } extern "C" { pub fn rc_runtime_get_lboard (runtime : * const rc_runtime_t , id : u32) -> * mut rc_lboard_t ; } extern "C" { pub fn rc_runtime_format_lboard_value (buffer : * mut :: core :: ffi :: c_char , size : :: core :: ffi :: c_int , value : i32 , format : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_activate_richpresence (runtime : * mut rc_runtime_t , script : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_get_richpresence (runtime : * const rc_runtime_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_runtime_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } pub const RC_RUNTIME_EVENT_ACHIEVEMENT_ACTIVATED : _bindgen_ty_14 = 0 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PAUSED : _bindgen_ty_14 = 1 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_RESET : _bindgen_ty_14 = 2 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_TRIGGERED : _bindgen_ty_14 = 3 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PRIMED : _bindgen_ty_14 = 4 ; pub const RC_RUNTIME_EVENT_LBOARD_STARTED : _bindgen_ty_14 = 5 ; pub const RC_RUNTIME_EVENT_LBOARD_CANCELED : _bindgen_ty_14 = 6 ; pub const RC_RUNTIME_EVENT_LBOARD_UPDATED : _bindgen_ty_14 = 7 ; pub const RC_RUNTIME_EVENT_LBOARD_TRIGGERED : _bindgen_ty_14 = 8 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_DISABLED : _bindgen_ty_14 = 9 ; pub const RC_RUNTIME_EVENT_LBOARD_DISABLED : _bindgen_ty_14 = 10 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_UNPRIMED : _bindgen_ty_14 = 11 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PROGRESS_UPDATED : _bindgen_ty_14 = 12 ; pub type _bindgen_ty_14 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_event_t { pub id : u32 , pub value : i32 , pub type_ : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_event_t"] [:: core :: mem :: size_of :: < rc_runtime_event_t > () - 12usize] ; ["Alignment of rc_runtime_event_t"] [:: core :: mem :: align_of :: < rc_runtime_event_t > () - 4usize] ; ["Offset of field: rc_runtime_event_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , id) - 0usize] ; ["Offset of field: rc_runtime_event_t::value"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , value) - 4usize] ; ["Offset of field: rc_runtime_event_t::type_"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , type_) - 8usize] ; } ; pub type rc_runtime_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (runtime_event : * const rc_runtime_event_t) > ; extern "C" { pub fn rc_runtime_do_frame (runtime : * mut rc_runtime_t , event_handler : rc_runtime_event_handler_t , peek : rc_runtime_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) ; } extern "C" { pub fn rc_runtime_reset (runtime : * mut rc_runtime_t) ; } pub type rc_runtime_validate_address_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_runtime_validate_addresses (runtime : * mut rc_runtime_t , event_handler : rc_runtime_event_handler_t , validate_handler : rc_runtime_validate_address_t) ; } extern "C" { pub fn rc_runtime_invalidate_address (runtime : * mut rc_runtime_t , address : u32) ; } extern "C" { pub fn rc_runtime_progress_size (runtime : * const rc_runtime_t , L : * mut lua_State) -> u32 ; } extern "C" { pub fn rc_runtime_serialize_progress (buffer : * mut :: core :: ffi :: c_void , runtime : * const rc_runtime_t , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_serialize_progress_sized (buffer : * mut u8 , buffer_size : u32 , runtime : * const rc_runtime_t , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deserialize_progress (runtime : * mut rc_runtime_t , serialized : * const u8 , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deserialize_progress_sized (runtime : * mut rc_runtime_t , serialized : * const u8 , serialized_size : u32 , L : * mut lua_State) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_async_handle_t { _unused : [u8 ; 0] , } # [doc = " Callback used to read num_bytes bytes from memory starting at address into buffer.\n Returns the number of bytes read. A return value of 0 indicates the address was invalid."] pub type rc_client_read_memory_func_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , buffer : * mut u8 , num_bytes : u32 , client : * mut rc_client_t) -> u32 > ; # [doc = " Internal method passed to rc_client_server_call_t to process the server response."] pub type rc_client_server_callback_t = :: core :: option :: Option < unsafe extern "C" fn (server_response : * const rc_api_server_response_t , callback_data : * mut :: core :: ffi :: c_void) > ; # [doc = " Callback used to issue a request to the server."] pub type rc_client_server_call_t = :: core :: option :: Option < unsafe extern "C" fn (request : * const rc_api_request_t , callback : rc_client_server_callback_t , callback_data : * mut :: core :: ffi :: c_void , client : * mut rc_client_t) > ; # [doc = " Generic callback for asynchronous eventing."] pub type rc_client_callback_t = :: core :: option :: Option < unsafe extern "C" fn (result : :: core :: ffi :: c_int , error_message : * const :: core :: ffi :: c_char , client : * mut rc_client_t , userdata : * mut :: core :: ffi :: c_void) > ; # [doc = " Callback for logging or displaying a message."] pub type rc_client_message_callback_t = :: core :: option :: Option < unsafe extern "C" fn (message : * const :: core :: ffi :: c_char , client : * const rc_client_t) > ; extern "C" { # [doc = " Creates a new rc_client_t object."] pub fn rc_client_create (read_memory_function : rc_client_read_memory_func_t , server_call_function : rc_client_server_call_t) -> * mut rc_client_t ; } extern "C" { # [doc = " Releases resources associated to a rc_client_t object.\n Pointer will no longer be valid after making this call."] pub fn rc_client_destroy (client : * mut rc_client_t) ; } extern "C" { # [doc = " Sets whether hardcore is enabled (on by default).\n Can be called with a game loaded.\n Enabling hardcore with a game loaded will raise an RC_CLIENT_EVENT_RESET\n event. Processing will be disabled until rc_client_reset is called."] pub fn rc_client_set_hardcore_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether hardcore is enabled (on by default)."] pub fn rc_client_get_hardcore_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether encore mode is enabled (off by default).\n Evaluated when loading a game. Has no effect while a game is loaded."] pub fn rc_client_set_encore_mode_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether encore mode is enabled (off by default)."] pub fn rc_client_get_encore_mode_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether unofficial achievements should be loaded.\n Evaluated when loading a game. Has no effect while a game is loaded."] pub fn rc_client_set_unofficial_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether unofficial achievements should be loaded."] pub fn rc_client_get_unofficial_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether spectator mode is enabled (off by default).\n If enabled, events for achievement unlocks and leaderboard submissions will be\n raised, but server calls to actually perform the unlock/submit will not occur.\n Can be modified while a game is loaded. Evaluated at unlock/submit time.\n Cannot be modified if disabled before a game is loaded."] pub fn rc_client_set_spectator_mode_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether spectator mode is enabled (off by default)."] pub fn rc_client_get_spectator_mode_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Attaches client-specific data to the runtime."] pub fn rc_client_set_userdata (client : * mut rc_client_t , userdata : * mut :: core :: ffi :: c_void) ; } extern "C" { # [doc = " Gets the client-specific data attached to the runtime."] pub fn rc_client_get_userdata (client : * const rc_client_t) -> * mut :: core :: ffi :: c_void ; } extern "C" { # [doc = " Sets the name of the server to use."] pub fn rc_client_set_host (client : * const rc_client_t , hostname : * const :: core :: ffi :: c_char) ; } pub type rc_clock_t = u64 ; pub type rc_get_time_millisecs_func_t = :: core :: option :: Option < unsafe extern "C" fn (client : * const rc_client_t) -> rc_clock_t > ; extern "C" { # [doc = " Specifies a function that returns a value that increases once per millisecond."] pub fn rc_client_set_get_time_millisecs_function (client : * mut rc_client_t , handler : rc_get_time_millisecs_func_t) ; } extern "C" { # [doc = " Marks an async process as aborted. The associated callback will not be called."] pub fn rc_client_abort_async (client : * mut rc_client_t , async_handle : * mut rc_client_async_handle_t) ; } extern "C" { # [doc = " Gets a clause that can be added to the User-Agent to identify the version of rcheevos being used."] pub fn rc_client_get_user_agent_clause (client : * mut rc_client_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> usize ; } extern "C" { # [doc = " Sets the logging level and provides a callback to be called to do the logging."] pub fn rc_client_enable_logging (client : * mut rc_client_t , level : :: core :: ffi :: c_int , callback : rc_client_message_callback_t) ; } pub const RC_CLIENT_LOG_LEVEL_NONE : _bindgen_ty_15 = 0 ; pub const RC_CLIENT_LOG_LEVEL_ERROR : _bindgen_ty_15 = 1 ; pub const RC_CLIENT_LOG_LEVEL_WARN : _bindgen_ty_15 = 2 ; pub const RC_CLIENT_LOG_LEVEL_INFO : _bindgen_ty_15 = 3 ; pub const RC_CLIENT_LOG_LEVEL_VERBOSE : _bindgen_ty_15 = 4 ; pub const NUM_RC_CLIENT_LOG_LEVELS : _bindgen_ty_15 = 5 ; pub type _bindgen_ty_15 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Attempt to login a user."] pub fn rc_client_begin_login_with_password (client : * mut rc_client_t , username : * const :: core :: ffi :: c_char , password : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Attempt to login a user."] pub fn rc_client_begin_login_with_token (client : * mut rc_client_t , username : * const :: core :: ffi :: c_char , token : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Logout the user."] pub fn rc_client_logout (client : * mut rc_client_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_user_t { pub display_name : * const :: core :: ffi :: c_char , pub username : * const :: core :: ffi :: c_char , pub token : * const :: core :: ffi :: c_char , pub score : u32 , pub score_softcore : u32 , pub num_unread_messages : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_user_t"] [:: core :: mem :: size_of :: < rc_client_user_t > () - 40usize] ; ["Alignment of rc_client_user_t"] [:: core :: mem :: align_of :: < rc_client_user_t > () - 8usize] ; ["Offset of field: rc_client_user_t::display_name"] [:: core :: mem :: offset_of ! (rc_client_user_t , display_name) - 0usize] ; ["Offset of field: rc_client_user_t::username"] [:: core :: mem :: offset_of ! (rc_client_user_t , username) - 8usize] ; ["Offset of field: rc_client_user_t::token"] [:: core :: mem :: offset_of ! (rc_client_user_t , token) - 16usize] ; ["Offset of field: rc_client_user_t::score"] [:: core :: mem :: offset_of ! (rc_client_user_t , score) - 24usize] ; ["Offset of field: rc_client_user_t::score_softcore"] [:: core :: mem :: offset_of ! (rc_client_user_t , score_softcore) - 28usize] ; ["Offset of field: rc_client_user_t::num_unread_messages"] [:: core :: mem :: offset_of ! (rc_client_user_t , num_unread_messages) - 32usize] ; } ; extern "C" { # [doc = " Gets information about the logged in user. Will return NULL if the user is not logged in."] pub fn rc_client_get_user_info (client : * const rc_client_t) -> * const rc_client_user_t ; } extern "C" { # [doc = " Gets the URL for the user's profile picture.\n Returns RC_OK on success."] pub fn rc_client_user_get_image_url (user : * const rc_client_user_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_user_game_summary_t { pub num_core_achievements : u32 , pub num_unofficial_achievements : u32 , pub num_unlocked_achievements : u32 , pub num_unsupported_achievements : u32 , pub points_core : u32 , pub points_unlocked : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_user_game_summary_t"] [:: core :: mem :: size_of :: < rc_client_user_game_summary_t > () - 24usize] ; ["Alignment of rc_client_user_game_summary_t"] [:: core :: mem :: align_of :: < rc_client_user_game_summary_t > () - 4usize] ; ["Offset of field: rc_client_user_game_summary_t::num_core_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_core_achievements) - 0usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unofficial_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unofficial_achievements) - 4usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unlocked_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unlocked_achievements) - 8usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unsupported_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unsupported_achievements) - 12usize] ; ["Offset of field: rc_client_user_game_summary_t::points_core"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , points_core) - 16usize] ; ["Offset of field: rc_client_user_game_summary_t::points_unlocked"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , points_unlocked) - 20usize] ; } ; extern "C" { # [doc = " Gets a breakdown of the number of achievements in the game, and how many the user has unlocked.\n Used for the \"You have unlocked X of Y achievements\" message shown when the game starts."] pub fn rc_client_get_user_game_summary (client : * const rc_client_t , summary : * mut rc_client_user_game_summary_t) ; } extern "C" { # [doc = " Start loading an unidentified game."] pub fn rc_client_begin_identify_and_load_game (client : * mut rc_client_t , console_id : u32 , file_path : * const :: core :: ffi :: c_char , data : * const u8 , data_size : usize , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Start loading a game."] pub fn rc_client_begin_load_game (client : * mut rc_client_t , hash : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Gets the current progress of the asynchronous load game process."] pub fn rc_client_get_load_game_state (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } pub const RC_CLIENT_LOAD_GAME_STATE_NONE : _bindgen_ty_16 = 0 ; pub const RC_CLIENT_LOAD_GAME_STATE_IDENTIFYING_GAME : _bindgen_ty_16 = 1 ; pub const RC_CLIENT_LOAD_GAME_STATE_AWAIT_LOGIN : _bindgen_ty_16 = 2 ; pub const RC_CLIENT_LOAD_GAME_STATE_FETCHING_GAME_DATA : _bindgen_ty_16 = 3 ; pub const RC_CLIENT_LOAD_GAME_STATE_STARTING_SESSION : _bindgen_ty_16 = 4 ; pub const RC_CLIENT_LOAD_GAME_STATE_DONE : _bindgen_ty_16 = 5 ; pub const RC_CLIENT_LOAD_GAME_STATE_ABORTED : _bindgen_ty_16 = 6 ; pub type _bindgen_ty_16 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Determines if a game was successfully identified and loaded."] pub fn rc_client_is_game_loaded (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Unloads the current game."] pub fn rc_client_unload_game (client : * mut rc_client_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_game_t { pub id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub hash : * const :: core :: ffi :: c_char , pub badge_name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_game_t"] [:: core :: mem :: size_of :: < rc_client_game_t > () - 32usize] ; ["Alignment of rc_client_game_t"] [:: core :: mem :: align_of :: < rc_client_game_t > () - 8usize] ; ["Offset of field: rc_client_game_t::id"] [:: core :: mem :: offset_of ! (rc_client_game_t , id) - 0usize] ; ["Offset of field: rc_client_game_t::console_id"] [:: core :: mem :: offset_of ! (rc_client_game_t , console_id) - 4usize] ; ["Offset of field: rc_client_game_t::title"] [:: core :: mem :: offset_of ! (rc_client_game_t , title) - 8usize] ; ["Offset of field: rc_client_game_t::hash"] [:: core :: mem :: offset_of ! (rc_client_game_t , hash) - 16usize] ; ["Offset of field: rc_client_game_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_game_t , badge_name) - 24usize] ; } ; extern "C" { # [doc = " Get information about the current game. Returns NULL if no game is loaded.\n NOTE: returns a dummy game record if an unidentified game is loaded."] pub fn rc_client_get_game_info (client : * const rc_client_t) -> * const rc_client_game_t ; } extern "C" { # [doc = " Gets the URL for the game image.\n Returns RC_OK on success."] pub fn rc_client_game_get_image_url (game : * const rc_client_game_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Changes the active disc in a multi-disc game."] pub fn rc_client_begin_change_media (client : * mut rc_client_t , file_path : * const :: core :: ffi :: c_char , data : * const u8 , data_size : usize , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Changes the active disc in a multi-disc game."] pub fn rc_client_begin_change_media_from_hash (client : * mut rc_client_t , hash : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } # [doc = "\\\n| Subsets                                                                     |\n\\"] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_subset_t { pub id : u32 , pub title : * const :: core :: ffi :: c_char , pub badge_name : [:: core :: ffi :: c_char ; 16usize] , pub num_achievements : u32 , pub num_leaderboards : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_subset_t"] [:: core :: mem :: size_of :: < rc_client_subset_t > () - 40usize] ; ["Alignment of rc_client_subset_t"] [:: core :: mem :: align_of :: < rc_client_subset_t > () - 8usize] ; ["Offset of field: rc_client_subset_t::id"] [:: core :: mem :: offset_of ! (rc_client_subset_t , id) - 0usize] ; ["Offset of field: rc_client_subset_t::title"] [:: core :: mem :: offset_of ! (rc_client_subset_t , title) - 8usize] ; ["Offset of field: rc_client_subset_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_subset_t , badge_name) - 16usize] ; ["Offset of field: rc_client_subset_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_client_subset_t , num_achievements) - 32usize] ; ["Offset of field: rc_client_subset_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_client_subset_t , num_leaderboards) - 36usize] ; } ; extern "C" { pub fn rc_client_get_subset_info (client : * mut rc_client_t , subset_id : u32) -> * const rc_client_subset_t ; } pub const RC_CLIENT_ACHIEVEMENT_STATE_INACTIVE : _bindgen_ty_17 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_ACTIVE : _bindgen_ty_17 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_UNLOCKED : _bindgen_ty_17 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_DISABLED : _bindgen_ty_17 = 3 ; pub const NUM_RC_CLIENT_ACHIEVEMENT_STATES : _bindgen_ty_17 = 4 ; # [doc = "\\\n| Achievements                                                                |\n\\"] pub type _bindgen_ty_17 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_NONE : _bindgen_ty_18 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_CORE : _bindgen_ty_18 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_UNOFFICIAL : _bindgen_ty_18 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_CORE_AND_UNOFFICIAL : _bindgen_ty_18 = 3 ; pub type _bindgen_ty_18 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_STANDARD : _bindgen_ty_19 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_MISSABLE : _bindgen_ty_19 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_PROGRESSION : _bindgen_ty_19 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_WIN : _bindgen_ty_19 = 3 ; pub type _bindgen_ty_19 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNKNOWN : _bindgen_ty_20 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_LOCKED : _bindgen_ty_20 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNLOCKED : _bindgen_ty_20 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNSUPPORTED : _bindgen_ty_20 = 3 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNOFFICIAL : _bindgen_ty_20 = 4 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_RECENTLY_UNLOCKED : _bindgen_ty_20 = 5 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_ACTIVE_CHALLENGE : _bindgen_ty_20 = 6 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_ALMOST_THERE : _bindgen_ty_20 = 7 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNSYNCED : _bindgen_ty_20 = 8 ; pub const NUM_RC_CLIENT_ACHIEVEMENT_BUCKETS : _bindgen_ty_20 = 9 ; pub type _bindgen_ty_20 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_NONE : _bindgen_ty_21 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_SOFTCORE : _bindgen_ty_21 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_HARDCORE : _bindgen_ty_21 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_BOTH : _bindgen_ty_21 = 3 ; pub type _bindgen_ty_21 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_t { pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub badge_name : [:: core :: ffi :: c_char ; 8usize] , pub measured_progress : [:: core :: ffi :: c_char ; 24usize] , pub measured_percent : f32 , pub id : u32 , pub points : u32 , pub unlock_time : time_t , pub state : u8 , pub category : u8 , pub bucket : u8 , pub unlocked : u8 , pub rarity : f32 , pub rarity_hardcore : f32 , pub type_ : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_t"] [:: core :: mem :: size_of :: < rc_client_achievement_t > () - 88usize] ; ["Alignment of rc_client_achievement_t"] [:: core :: mem :: align_of :: < rc_client_achievement_t > () - 8usize] ; ["Offset of field: rc_client_achievement_t::title"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , title) - 0usize] ; ["Offset of field: rc_client_achievement_t::description"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , description) - 8usize] ; ["Offset of field: rc_client_achievement_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , badge_name) - 16usize] ; ["Offset of field: rc_client_achievement_t::measured_progress"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , measured_progress) - 24usize] ; ["Offset of field: rc_client_achievement_t::measured_percent"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , measured_percent) - 48usize] ; ["Offset of field: rc_client_achievement_t::id"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , id) - 52usize] ; ["Offset of field: rc_client_achievement_t::points"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , points) - 56usize] ; ["Offset of field: rc_client_achievement_t::unlock_time"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , unlock_time) - 64usize] ; ["Offset of field: rc_client_achievement_t::state"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , state) - 72usize] ; ["Offset of field: rc_client_achievement_t::category"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , category) - 73usize] ; ["Offset of field: rc_client_achievement_t::bucket"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , bucket) - 74usize] ; ["Offset of field: rc_client_achievement_t::unlocked"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , unlocked) - 75usize] ; ["Offset of field: rc_client_achievement_t::rarity"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , rarity) - 76usize] ; ["Offset of field: rc_client_achievement_t::rarity_hardcore"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , rarity_hardcore) - 80usize] ; ["Offset of field: rc_client_achievement_t::type_"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , type_) - 84usize] ; } ; extern "C" { # [doc = " Get information about an achievement. Returns NULL if not found."] pub fn rc_client_get_achievement_info (client : * mut rc_client_t , id : u32) -> * const rc_client_achievement_t ; } extern "C" { # [doc = " Gets the URL for the achievement image.\n Returns RC_OK on success."] pub fn rc_client_achievement_get_image_url (achievement : * const rc_client_achievement_t , state : :: core :: ffi :: c_int , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_bucket_t { pub achievements : * mut * mut rc_client_achievement_t , pub num_achievements : u32 , pub label : * const :: core :: ffi :: c_char , pub subset_id : u32 , pub bucket_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_bucket_t"] [:: core :: mem :: size_of :: < rc_client_achievement_bucket_t > () - 32usize] ; ["Alignment of rc_client_achievement_bucket_t"] [:: core :: mem :: align_of :: < rc_client_achievement_bucket_t > () - 8usize] ; ["Offset of field: rc_client_achievement_bucket_t::achievements"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , achievements) - 0usize] ; ["Offset of field: rc_client_achievement_bucket_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , num_achievements) - 8usize] ; ["Offset of field: rc_client_achievement_bucket_t::label"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , label) - 16usize] ; ["Offset of field: rc_client_achievement_bucket_t::subset_id"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , subset_id) - 24usize] ; ["Offset of field: rc_client_achievement_bucket_t::bucket_type"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , bucket_type) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_list_t { pub buckets : * mut rc_client_achievement_bucket_t , pub num_buckets : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_list_t"] [:: core :: mem :: size_of :: < rc_client_achievement_list_t > () - 16usize] ; ["Alignment of rc_client_achievement_list_t"] [:: core :: mem :: align_of :: < rc_client_achievement_list_t > () - 8usize] ; ["Offset of field: rc_client_achievement_list_t::buckets"] [:: core :: mem :: offset_of ! (rc_client_achievement_list_t , buckets) - 0usize] ; ["Offset of field: rc_client_achievement_list_t::num_buckets"] [:: core :: mem :: offset_of ! (rc_client_achievement_list_t , num_buckets) - 8usize] ; } ; pub const RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_LOCK_STATE : _bindgen_ty_22 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_PROGRESS : _bindgen_ty_22 = 1 ; pub type _bindgen_ty_22 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Creates a list of achievements matching the specified category and grouping.\n Returns an allocated list that must be free'd by calling rc_client_destroy_achievement_list."] pub fn rc_client_create_achievement_list (client : * mut rc_client_t , category : :: core :: ffi :: c_int , grouping : :: core :: ffi :: c_int) -> * mut rc_client_achievement_list_t ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_get_achievement_list."] pub fn rc_client_destroy_achievement_list (list : * mut rc_client_achievement_list_t) ; } extern "C" { # [doc = " Returns non-zero if there are any achievements that can be queried through rc_client_create_achievement_list()."] pub fn rc_client_has_achievements (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } pub const RC_CLIENT_LEADERBOARD_STATE_INACTIVE : _bindgen_ty_23 = 0 ; pub const RC_CLIENT_LEADERBOARD_STATE_ACTIVE : _bindgen_ty_23 = 1 ; pub const RC_CLIENT_LEADERBOARD_STATE_TRACKING : _bindgen_ty_23 = 2 ; pub const RC_CLIENT_LEADERBOARD_STATE_DISABLED : _bindgen_ty_23 = 3 ; pub const NUM_RC_CLIENT_LEADERBOARD_STATES : _bindgen_ty_23 = 4 ; # [doc = "\\\n| Leaderboards                                                                |\n\\"] pub type _bindgen_ty_23 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_LEADERBOARD_FORMAT_TIME : _bindgen_ty_24 = 0 ; pub const RC_CLIENT_LEADERBOARD_FORMAT_SCORE : _bindgen_ty_24 = 1 ; pub const RC_CLIENT_LEADERBOARD_FORMAT_VALUE : _bindgen_ty_24 = 2 ; pub const NUM_RC_CLIENT_LEADERBOARD_FORMATS : _bindgen_ty_24 = 3 ; pub type _bindgen_ty_24 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_t { pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub tracker_value : * const :: core :: ffi :: c_char , pub id : u32 , pub state : u8 , pub format : u8 , pub lower_is_better : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_t > () - 32usize] ; ["Alignment of rc_client_leaderboard_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_t::title"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , title) - 0usize] ; ["Offset of field: rc_client_leaderboard_t::description"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , description) - 8usize] ; ["Offset of field: rc_client_leaderboard_t::tracker_value"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , tracker_value) - 16usize] ; ["Offset of field: rc_client_leaderboard_t::id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , id) - 24usize] ; ["Offset of field: rc_client_leaderboard_t::state"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , state) - 28usize] ; ["Offset of field: rc_client_leaderboard_t::format"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , format) - 29usize] ; ["Offset of field: rc_client_leaderboard_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , lower_is_better) - 30usize] ; } ; extern "C" { # [doc = " Get information about a leaderboard. Returns NULL if not found."] pub fn rc_client_get_leaderboard_info (client : * const rc_client_t , id : u32) -> * const rc_client_leaderboard_t ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_tracker_t { pub display : [:: core :: ffi :: c_char ; 24usize] , pub id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_tracker_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_tracker_t > () - 28usize] ; ["Alignment of rc_client_leaderboard_tracker_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_tracker_t > () - 4usize] ; ["Offset of field: rc_client_leaderboard_tracker_t::display"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_tracker_t , display) - 0usize] ; ["Offset of field: rc_client_leaderboard_tracker_t::id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_tracker_t , id) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_bucket_t { pub leaderboards : * mut * mut rc_client_leaderboard_t , pub num_leaderboards : u32 , pub label : * const :: core :: ffi :: c_char , pub subset_id : u32 , pub bucket_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_bucket_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_bucket_t > () - 32usize] ; ["Alignment of rc_client_leaderboard_bucket_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_bucket_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::leaderboards"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , leaderboards) - 0usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , num_leaderboards) - 8usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::label"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , label) - 16usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::subset_id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , subset_id) - 24usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::bucket_type"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , bucket_type) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_list_t { pub buckets : * mut rc_client_leaderboard_bucket_t , pub num_buckets : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_list_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_list_t > () - 16usize] ; ["Alignment of rc_client_leaderboard_list_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_list_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_list_t::buckets"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_list_t , buckets) - 0usize] ; ["Offset of field: rc_client_leaderboard_list_t::num_buckets"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_list_t , num_buckets) - 8usize] ; } ; pub const RC_CLIENT_LEADERBOARD_BUCKET_UNKNOWN : _bindgen_ty_25 = 0 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_INACTIVE : _bindgen_ty_25 = 1 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_ACTIVE : _bindgen_ty_25 = 2 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_UNSUPPORTED : _bindgen_ty_25 = 3 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_ALL : _bindgen_ty_25 = 4 ; pub const NUM_RC_CLIENT_LEADERBOARD_BUCKETS : _bindgen_ty_25 = 5 ; pub type _bindgen_ty_25 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_LEADERBOARD_LIST_GROUPING_NONE : _bindgen_ty_26 = 0 ; pub const RC_CLIENT_LEADERBOARD_LIST_GROUPING_TRACKING : _bindgen_ty_26 = 1 ; pub type _bindgen_ty_26 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Creates a list of leaderboards matching the specified grouping.\n Returns an allocated list that must be free'd by calling rc_client_destroy_leaderboard_list."] pub fn rc_client_create_leaderboard_list (client : * mut rc_client_t , grouping : :: core :: ffi :: c_int) -> * mut rc_client_leaderboard_list_t ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_get_leaderboard_list."] pub fn rc_client_destroy_leaderboard_list (list : * mut rc_client_leaderboard_list_t) ; } extern "C" { # [doc = " Returns non-zero if the current game has any leaderboards."] pub fn rc_client_has_leaderboards (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_entry_t { pub user : * const :: core :: ffi :: c_char , pub display : [:: core :: ffi :: c_char ; 24usize] , pub submitted : time_t , pub rank : u32 , pub index : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_entry_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_entry_t > () - 48usize] ; ["Alignment of rc_client_leaderboard_entry_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_entry_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_t::user"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , user) - 0usize] ; ["Offset of field: rc_client_leaderboard_entry_t::display"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , display) - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_t::submitted"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , submitted) - 32usize] ; ["Offset of field: rc_client_leaderboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , rank) - 40usize] ; ["Offset of field: rc_client_leaderboard_entry_t::index"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , index) - 44usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_entry_list_t { pub entries : * mut rc_client_leaderboard_entry_t , pub num_entries : u32 , pub total_entries : u32 , pub user_index : i32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_entry_list_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_entry_list_t > () - 24usize] ; ["Alignment of rc_client_leaderboard_entry_list_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_entry_list_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , entries) - 0usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::num_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , num_entries) - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::total_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , total_entries) - 12usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::user_index"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , user_index) - 16usize] ; } ; pub type rc_client_fetch_leaderboard_entries_callback_t = :: core :: option :: Option < unsafe extern "C" fn (result : :: core :: ffi :: c_int , error_message : * const :: core :: ffi :: c_char , list : * mut rc_client_leaderboard_entry_list_t , client : * mut rc_client_t , callback_userdata : * mut :: core :: ffi :: c_void) > ; extern "C" { # [doc = " Fetches a list of leaderboard entries from the server.\n Callback receives an allocated list that must be free'd by calling rc_client_destroy_leaderboard_entry_list."] pub fn rc_client_begin_fetch_leaderboard_entries (client : * mut rc_client_t , leaderboard_id : u32 , first_entry : u32 , count : u32 , callback : rc_client_fetch_leaderboard_entries_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Fetches a list of leaderboard entries from the server containing the logged-in user.\n Callback receives an allocated list that must be free'd by calling rc_client_destroy_leaderboard_entry_list."] pub fn rc_client_begin_fetch_leaderboard_entries_around_user (client : * mut rc_client_t , leaderboard_id : u32 , count : u32 , callback : rc_client_fetch_leaderboard_entries_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Gets the URL for the profile picture of the user associated to a leaderboard entry.\n Returns RC_OK on success."] pub fn rc_client_leaderboard_entry_get_user_image_url (entry : * const rc_client_leaderboard_entry_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_begin_fetch_leaderboard_entries or rc_client_begin_fetch_leaderboard_entries_around_user."] pub fn rc_client_destroy_leaderboard_entry_list (list : * mut rc_client_leaderboard_entry_list_t) ; } # [doc = " Used for scoreboard events. Contains the response from the server when a leaderboard entry is submitted.\n NOTE: This structure is only valid within the event callback. If you want to make use of the data outside\n of the callback, you should create copies of both the top entries and usernames within."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_scoreboard_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub score : [:: core :: ffi :: c_char ; 24usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_scoreboard_entry_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_scoreboard_entry_t > () - 40usize] ; ["Alignment of rc_client_leaderboard_scoreboard_entry_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_scoreboard_entry_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::username"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , username) - 0usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , rank) - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , score) - 12usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_scoreboard_t { pub leaderboard_id : u32 , pub submitted_score : [:: core :: ffi :: c_char ; 24usize] , pub best_score : [:: core :: ffi :: c_char ; 24usize] , pub new_rank : u32 , pub num_entries : u32 , pub top_entries : * mut rc_client_leaderboard_scoreboard_entry_t , pub num_top_entries : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_scoreboard_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_scoreboard_t > () - 80usize] ; ["Alignment of rc_client_leaderboard_scoreboard_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_scoreboard_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::submitted_score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , submitted_score) - 4usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::best_score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , best_score) - 28usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::new_rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , new_rank) - 52usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::num_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , num_entries) - 56usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::top_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , top_entries) - 64usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::num_top_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , num_top_entries) - 72usize] ; } ; extern "C" { # [doc = " Returns non-zero if the current game supports rich presence."] pub fn rc_client_has_rich_presence (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Gets the current rich presence message.\n Returns the number of characters written to buffer."] pub fn rc_client_get_rich_presence_message (client : * mut rc_client_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> usize ; } pub const RC_CLIENT_EVENT_TYPE_NONE : _bindgen_ty_27 = 0 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_TRIGGERED : _bindgen_ty_27 = 1 ; pub const RC_CLIENT_EVENT_LEADERBOARD_STARTED : _bindgen_ty_27 = 2 ; pub const RC_CLIENT_EVENT_LEADERBOARD_FAILED : _bindgen_ty_27 = 3 ; pub const RC_CLIENT_EVENT_LEADERBOARD_SUBMITTED : _bindgen_ty_27 = 4 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_CHALLENGE_INDICATOR_SHOW : _bindgen_ty_27 = 5 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_CHALLENGE_INDICATOR_HIDE : _bindgen_ty_27 = 6 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_SHOW : _bindgen_ty_27 = 7 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_HIDE : _bindgen_ty_27 = 8 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_UPDATE : _bindgen_ty_27 = 9 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_SHOW : _bindgen_ty_27 = 10 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_HIDE : _bindgen_ty_27 = 11 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_UPDATE : _bindgen_ty_27 = 12 ; pub const RC_CLIENT_EVENT_LEADERBOARD_SCOREBOARD : _bindgen_ty_27 = 13 ; pub const RC_CLIENT_EVENT_RESET : _bindgen_ty_27 = 14 ; pub const RC_CLIENT_EVENT_GAME_COMPLETED : _bindgen_ty_27 = 15 ; pub const RC_CLIENT_EVENT_SERVER_ERROR : _bindgen_ty_27 = 16 ; pub const RC_CLIENT_EVENT_DISCONNECTED : _bindgen_ty_27 = 17 ; pub const RC_CLIENT_EVENT_RECONNECTED : _bindgen_ty_27 = 18 ; # [doc = "\\\n| Processing                                                                  |\n\\"] pub type _bindgen_ty_27 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_server_error_t { pub error_message : * const :: core :: ffi :: c_char , pub api : * const :: core :: ffi :: c_char , pub result : :: core :: ffi :: c_int , pub related_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_server_error_t"] [:: core :: mem :: size_of :: < rc_client_server_error_t > () - 24usize] ; ["Alignment of rc_client_server_error_t"] [:: core :: mem :: align_of :: < rc_client_server_error_t > () - 8usize] ; ["Offset of field: rc_client_server_error_t::error_message"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , error_message) - 0usize] ; ["Offset of field: rc_client_server_error_t::api"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , api) - 8usize] ; ["Offset of field: rc_client_server_error_t::result"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , result) - 16usize] ; ["Offset of field: rc_client_server_error_t::related_id"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , related_id) - 20usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_event_t { pub type_ : u32 , pub achievement : * mut rc_client_achievement_t , pub leaderboard : * mut rc_client_leaderboard_t , pub leaderboard_tracker : * mut rc_client_leaderboard_tracker_t , pub leaderboard_scoreboard : * mut rc_client_leaderboard_scoreboard_t , pub server_error : * mut rc_client_server_error_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_event_t"] [:: core :: mem :: size_of :: < rc_client_event_t > () - 48usize] ; ["Alignment of rc_client_event_t"] [:: core :: mem :: align_of :: < rc_client_event_t > () - 8usize] ; ["Offset of field: rc_client_event_t::type_"] [:: core :: mem :: offset_of ! (rc_client_event_t , type_) - 0usize] ; ["Offset of field: rc_client_event_t::achievement"] [:: core :: mem :: offset_of ! (rc_client_event_t , achievement) - 8usize] ; ["Offset of field: rc_client_event_t::leaderboard"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard) - 16usize] ; ["Offset of field: rc_client_event_t::leaderboard_tracker"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard_tracker) - 24usize] ; ["Offset of field: rc_client_event_t::leaderboard_scoreboard"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard_scoreboard) - 32usize] ; ["Offset of field: rc_client_event_t::server_error"] [:: core :: mem :: offset_of ! (rc_client_event_t , server_error) - 40usize] ; } ; # [doc = " Callback used to notify the client when certain events occur."] pub type rc_client_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (event : * const rc_client_event_t , client : * mut rc_client_t) > ; extern "C" { # [doc = " Provides a callback for event handling."] pub fn rc_client_set_event_handler (client : * mut rc_client_t , handler : rc_client_event_handler_t) ; } extern "C" { # [doc = " Provides a callback for reading memory."] pub fn rc_client_set_read_memory_function (client : * mut rc_client_t , handler : rc_client_read_memory_func_t) ; } extern "C" { # [doc = " Determines if there are any active achievements/leaderboards/rich presence that need processing."] pub fn rc_client_is_processing_required (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Processes achievements for the current frame."] pub fn rc_client_do_frame (client : * mut rc_client_t) ; } extern "C" { # [doc = " Processes the periodic queue.\n Called internally by rc_client_do_frame.\n Should be explicitly called if rc_client_do_frame is not being called because emulation is paused."] pub fn rc_client_idle (client : * mut rc_client_t) ; } extern "C" { # [doc = " Determines if a sufficient amount of frames have been processed since the last call to rc_client_can_pause.\n Should not be called unless the client is trying to pause.\n If false is returned, and frames_remaining is not NULL, frames_remaining will be set to the number of frames\n still required before pause is allowed, which can be converted to a time in seconds for displaying to the user."] pub fn rc_client_can_pause (client : * mut rc_client_t , frames_remaining : * mut u32) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Informs the runtime that the emulator has been reset. Will reset all achievements and leaderboards\n to their initial state (includes hiding indicators/trackers)."] pub fn rc_client_reset (client : * mut rc_client_t) ; } extern "C" { # [doc = " Gets the number of bytes needed to serialized the runtime state."] pub fn rc_client_progress_size (client : * mut rc_client_t) -> usize ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator.\n [deprecated] use rc_client_serialize_progress_sized instead"] pub fn rc_client_serialize_progress (client : * mut rc_client_t , buffer : * mut u8) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator."] pub fn rc_client_serialize_progress_sized (client : * mut rc_client_t , buffer : * mut u8 , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Deserializes the runtime state from a buffer.\n Returns RC_OK on success, or an error indicator.\n [deprecated] use rc_client_deserialize_progress_sized instead"] pub fn rc_client_deserialize_progress (client : * mut rc_client_t , serialized : * const u8) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator."] pub fn rc_client_deserialize_progress_sized (client : * mut rc_client_t , serialized : * const u8 , serialized_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __locale_data { pub _address : u8 , } pub type __builtin_va_list = [__va_list_tag ; 1usize] ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __va_list_tag { pub gp_offset : :: core :: ffi :: c_uint , pub fp_offset : :: core :: ffi :: c_uint , pub overflow_arg_area : * mut :: core :: ffi :: c_void , pub reg_save_area : * mut :: core :: ffi :: c_void , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __va_list_tag"] [:: core :: mem :: size_of :: < __va_list_tag > () - 24usize] ; ["Alignment of __va_list_tag"] [:: core :: mem :: align_of :: < __va_list_tag > () - 8usize] ; ["Offset of field: __va_list_tag::gp_offset"] [:: core :: mem :: offset_of ! (__va_list_tag , gp_offset) - 0usize] ; ["Offset of field: __va_list_tag::fp_offset"] [:: core :: mem :: offset_of ! (__va_list_tag , fp_offset) - 4usize] ; ["Offset of field: __va_list_tag::overflow_arg_area"] [:: core :: mem :: offset_of ! (__va_list_tag , overflow_arg_area) - 8usize] ; ["Offset of field: __va_list_tag::reg_save_area"] [:: core :: mem :: offset_of ! (__va_list_tag , reg_save_area) - 16usize] ; } ;
[INFO] [stdout] 3 + # [repr (C)] # [derive (Copy , Clone , Debug , Default , Eq , Hash , Ord , PartialEq , PartialOrd)] pub struct __BindgenBitfieldUnit < Storage > { storage : Storage , } impl < Storage > __BindgenBitfieldUnit < Storage > { # [inline] pub const fn new (storage : Storage) -> Self { Self { storage } } } impl < Storage > __BindgenBitfieldUnit < Storage > where Storage : AsRef < [u8] > + AsMut < [u8] >, { # [inline] pub fn get_bit (& self , index : usize) -> bool { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = self . storage . as_ref () [byte_index] ; let bit_index = if cfg ! (target_endian = "big") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; byte & mask == mask } # [inline] pub fn set_bit (& mut self , index : usize , val : bool) { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = & mut self . storage . as_mut () [byte_index] ; let bit_index = if cfg ! (target_endian = "big") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; if val { * byte |= mask ; } else { * byte &= ! mask ; } } # [inline] pub fn get (& self , bit_offset : usize , bit_width : u8) -> u64 { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; let mut val = 0 ; for i in 0 .. (bit_width as usize) { if self . get_bit (i + bit_offset) { let index = if cfg ! (target_endian = "big") { bit_width as usize - 1 - i } else { i } ; val |= 1 << index ; } } val } # [inline] pub fn set (& mut self , bit_offset : usize , bit_width : u8 , val : u64) { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; for i in 0 .. (bit_width as usize) { let mask = 1 << i ; let val_bit_is_set = val & mask == mask ; let index = if cfg ! (target_endian = "big") { bit_width as usize - 1 - i } else { i } ; self . set_bit (index + bit_offset , val_bit_is_set) ; } } } # [derive (PartialEq , Copy , Clone , Hash , Debug , Default)] # [repr (C)] pub struct __BindgenComplex < T > { pub re : T , pub im : T } pub const _STDINT_H : u32 = 1 ; pub const _FEATURES_H : u32 = 1 ; pub const _DEFAULT_SOURCE : u32 = 1 ; pub const __GLIBC_USE_ISOC2Y : u32 = 0 ; pub const __GLIBC_USE_ISOC23 : u32 = 0 ; pub const __USE_ISOC11 : u32 = 1 ; pub const __USE_ISOC99 : u32 = 1 ; pub const __USE_ISOC95 : u32 = 1 ; pub const __USE_POSIX_IMPLICITLY : u32 = 1 ; pub const _POSIX_SOURCE : u32 = 1 ; pub const _POSIX_C_SOURCE : u32 = 202405 ; pub const __USE_POSIX : u32 = 1 ; pub const __USE_POSIX2 : u32 = 1 ; pub const __USE_POSIX199309 : u32 = 1 ; pub const __USE_POSIX199506 : u32 = 1 ; pub const __USE_XOPEN2K : u32 = 1 ; pub const __USE_XOPEN2K8 : u32 = 1 ; pub const _ATFILE_SOURCE : u32 = 1 ; pub const __USE_XOPEN2K24 : u32 = 1 ; pub const __WORDSIZE : u32 = 64 ; pub const __WORDSIZE_TIME64_COMPAT32 : u32 = 1 ; pub const __SYSCALL_WORDSIZE : u32 = 64 ; pub const __TIMESIZE : u32 = 64 ; pub const __USE_TIME_BITS64 : u32 = 1 ; pub const __USE_MISC : u32 = 1 ; 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_C23_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 ; pub const __STDC_IEC_559_COMPLEX__ : u32 = 1 ; 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 = 43 ; pub const _SYS_CDEFS_H : u32 = 1 ; pub const __glibc_c99_flexarr_available : u32 = 1 ; pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI : u32 = 0 ; pub const __HAVE_GENERIC_SELECTION : u32 = 1 ; pub const __GLIBC_USE_LIB_EXT2 : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT_C23 : u32 = 0 ; 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_C23 : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_TYPES_EXT : u32 = 0 ; pub const _BITS_TYPES_H : u32 = 1 ; pub const _BITS_TYPESIZES_H : u32 = 1 ; pub const __OFF_T_MATCHES_OFF64_T : u32 = 1 ; pub const __INO_T_MATCHES_INO64_T : u32 = 1 ; pub const __RLIM_T_MATCHES_RLIM64_T : u32 = 1 ; pub const __STATFS_MATCHES_STATFS64 : u32 = 1 ; pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 : u32 = 1 ; pub const __FD_SETSIZE : u32 = 1024 ; pub const _BITS_TIME64_H : u32 = 1 ; pub const _BITS_WCHAR_H : u32 = 1 ; pub const _BITS_STDINT_INTN_H : u32 = 1 ; pub const _BITS_STDINT_UINTN_H : u32 = 1 ; pub const _BITS_STDINT_LEAST_H : u32 = 1 ; pub const INT8_MIN : i32 = - 128 ; pub const INT16_MIN : i32 = - 32768 ; pub const INT32_MIN : i32 = - 2147483648 ; pub const INT8_MAX : u32 = 127 ; pub const INT16_MAX : u32 = 32767 ; pub const INT32_MAX : u32 = 2147483647 ; pub const UINT8_MAX : u32 = 255 ; pub const UINT16_MAX : u32 = 65535 ; pub const UINT32_MAX : u32 = 4294967295 ; pub const INT_LEAST8_MIN : i32 = - 128 ; pub const INT_LEAST16_MIN : i32 = - 32768 ; pub const INT_LEAST32_MIN : i32 = - 2147483648 ; pub const INT_LEAST8_MAX : u32 = 127 ; pub const INT_LEAST16_MAX : u32 = 32767 ; pub const INT_LEAST32_MAX : u32 = 2147483647 ; pub const UINT_LEAST8_MAX : u32 = 255 ; pub const UINT_LEAST16_MAX : u32 = 65535 ; pub const UINT_LEAST32_MAX : u32 = 4294967295 ; pub const INT_FAST8_MIN : i32 = - 128 ; pub const INT_FAST16_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST32_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST8_MAX : u32 = 127 ; pub const INT_FAST16_MAX : u64 = 9223372036854775807 ; pub const INT_FAST32_MAX : u64 = 9223372036854775807 ; pub const UINT_FAST8_MAX : u32 = 255 ; pub const UINT_FAST16_MAX : i32 = - 1 ; pub const UINT_FAST32_MAX : i32 = - 1 ; pub const INTPTR_MIN : i64 = - 9223372036854775808 ; pub const INTPTR_MAX : u64 = 9223372036854775807 ; pub const UINTPTR_MAX : i32 = - 1 ; pub const PTRDIFF_MIN : i64 = - 9223372036854775808 ; pub const PTRDIFF_MAX : u64 = 9223372036854775807 ; pub const SIG_ATOMIC_MIN : i32 = - 2147483648 ; pub const SIG_ATOMIC_MAX : u32 = 2147483647 ; pub const SIZE_MAX : i32 = - 1 ; pub const WINT_MIN : u32 = 0 ; pub const WINT_MAX : u32 = 4294967295 ; pub const RC_VALUE_MAX_NAME_LENGTH : u32 = 15 ; pub const _TIME_H : u32 = 1 ; pub const _BITS_TIME_H : u32 = 1 ; pub const CLOCK_REALTIME : u32 = 0 ; pub const CLOCK_MONOTONIC : u32 = 1 ; pub const CLOCK_PROCESS_CPUTIME_ID : u32 = 2 ; pub const CLOCK_THREAD_CPUTIME_ID : u32 = 3 ; pub const CLOCK_MONOTONIC_RAW : u32 = 4 ; pub const CLOCK_REALTIME_COARSE : u32 = 5 ; pub const CLOCK_MONOTONIC_COARSE : u32 = 6 ; pub const CLOCK_BOOTTIME : u32 = 7 ; pub const CLOCK_REALTIME_ALARM : u32 = 8 ; pub const CLOCK_BOOTTIME_ALARM : u32 = 9 ; pub const CLOCK_TAI : u32 = 11 ; pub const TIMER_ABSTIME : u32 = 1 ; pub const __clock_t_defined : u32 = 1 ; pub const __time_t_defined : u32 = 1 ; pub const __struct_tm_defined : u32 = 1 ; pub const _STRUCT_TIMESPEC : u32 = 1 ; pub const _BITS_ENDIAN_H : u32 = 1 ; pub const __LITTLE_ENDIAN : u32 = 1234 ; pub const __BIG_ENDIAN : u32 = 4321 ; pub const __PDP_ENDIAN : u32 = 3412 ; pub const _BITS_ENDIANNESS_H : u32 = 1 ; pub const __BYTE_ORDER : u32 = 1234 ; pub const __FLOAT_WORD_ORDER : u32 = 1234 ; pub const __clockid_t_defined : u32 = 1 ; pub const __timer_t_defined : u32 = 1 ; pub const __itimerspec_defined : u32 = 1 ; pub const _BITS_TYPES_LOCALE_T_H : u32 = 1 ; pub const _BITS_TYPES___LOCALE_T_H : u32 = 1 ; pub const TIME_UTC : u32 = 1 ; pub const _STDIO_H : u32 = 1 ; pub const _____fpos_t_defined : u32 = 1 ; pub const ____mbstate_t_defined : u32 = 1 ; pub const _____fpos64_t_defined : u32 = 1 ; pub const ____FILE_defined : u32 = 1 ; pub const __FILE_defined : u32 = 1 ; 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 ; pub const BUFSIZ : u32 = 8192 ; pub const EOF : i32 = - 1 ; 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 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 ; pub const __HAVE_FLOAT128 : u32 = 1 ; pub const __HAVE_DISTINCT_FLOAT128 : u32 = 1 ; pub const __HAVE_FLOAT64X : u32 = 1 ; pub const __HAVE_FLOAT64X_LONG_DOUBLE : u32 = 1 ; pub const __HAVE_FLOAT16 : u32 = 0 ; pub const __HAVE_FLOAT32 : u32 = 1 ; pub const __HAVE_FLOAT64 : u32 = 1 ; pub const __HAVE_FLOAT32X : u32 = 1 ; pub const __HAVE_FLOAT128X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT16 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT32 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT64 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT32X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT64X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT128X : u32 = 0 ; pub const __HAVE_FLOATN_NOT_TYPEDEF : u32 = 0 ; pub const RC_IMAGE_TYPE_GAME : u32 = 1 ; pub const RC_IMAGE_TYPE_ACHIEVEMENT : u32 = 2 ; pub const RC_IMAGE_TYPE_ACHIEVEMENT_LOCKED : u32 = 3 ; pub const RC_IMAGE_TYPE_USER : u32 = 4 ; pub const RC_ACHIEVEMENT_CATEGORY_CORE : u32 = 3 ; pub const RC_ACHIEVEMENT_CATEGORY_UNOFFICIAL : u32 = 5 ; pub const RC_ACHIEVEMENT_TYPE_STANDARD : u32 = 0 ; pub const RC_ACHIEVEMENT_TYPE_MISSABLE : u32 = 1 ; pub const RC_ACHIEVEMENT_TYPE_PROGRESSION : u32 = 2 ; pub const RC_ACHIEVEMENT_TYPE_WIN : u32 = 3 ; pub const RC_CLIENT_LEADERBOARD_DISPLAY_SIZE : u32 = 24 ; pub const RC_OK : _bindgen_ty_1 = 0 ; pub const RC_INVALID_LUA_OPERAND : _bindgen_ty_1 = - 1 ; pub const RC_INVALID_MEMORY_OPERAND : _bindgen_ty_1 = - 2 ; pub const RC_INVALID_CONST_OPERAND : _bindgen_ty_1 = - 3 ; pub const RC_INVALID_FP_OPERAND : _bindgen_ty_1 = - 4 ; pub const RC_INVALID_CONDITION_TYPE : _bindgen_ty_1 = - 5 ; pub const RC_INVALID_OPERATOR : _bindgen_ty_1 = - 6 ; pub const RC_INVALID_REQUIRED_HITS : _bindgen_ty_1 = - 7 ; pub const RC_DUPLICATED_START : _bindgen_ty_1 = - 8 ; pub const RC_DUPLICATED_CANCEL : _bindgen_ty_1 = - 9 ; pub const RC_DUPLICATED_SUBMIT : _bindgen_ty_1 = - 10 ; pub const RC_DUPLICATED_VALUE : _bindgen_ty_1 = - 11 ; pub const RC_DUPLICATED_PROGRESS : _bindgen_ty_1 = - 12 ; pub const RC_MISSING_START : _bindgen_ty_1 = - 13 ; pub const RC_MISSING_CANCEL : _bindgen_ty_1 = - 14 ; pub const RC_MISSING_SUBMIT : _bindgen_ty_1 = - 15 ; pub const RC_MISSING_VALUE : _bindgen_ty_1 = - 16 ; pub const RC_INVALID_LBOARD_FIELD : _bindgen_ty_1 = - 17 ; pub const RC_MISSING_DISPLAY_STRING : _bindgen_ty_1 = - 18 ; pub const RC_OUT_OF_MEMORY : _bindgen_ty_1 = - 19 ; pub const RC_INVALID_VALUE_FLAG : _bindgen_ty_1 = - 20 ; pub const RC_MISSING_VALUE_MEASURED : _bindgen_ty_1 = - 21 ; pub const RC_MULTIPLE_MEASURED : _bindgen_ty_1 = - 22 ; pub const RC_INVALID_MEASURED_TARGET : _bindgen_ty_1 = - 23 ; pub const RC_INVALID_COMPARISON : _bindgen_ty_1 = - 24 ; pub const RC_INVALID_STATE : _bindgen_ty_1 = - 25 ; pub const RC_INVALID_JSON : _bindgen_ty_1 = - 26 ; pub const RC_API_FAILURE : _bindgen_ty_1 = - 27 ; pub const RC_LOGIN_REQUIRED : _bindgen_ty_1 = - 28 ; pub const RC_NO_GAME_LOADED : _bindgen_ty_1 = - 29 ; pub const RC_HARDCORE_DISABLED : _bindgen_ty_1 = - 30 ; pub const RC_ABORTED : _bindgen_ty_1 = - 31 ; pub const RC_NO_RESPONSE : _bindgen_ty_1 = - 32 ; pub const RC_ACCESS_DENIED : _bindgen_ty_1 = - 33 ; pub const RC_INVALID_CREDENTIALS : _bindgen_ty_1 = - 34 ; pub const RC_EXPIRED_TOKEN : _bindgen_ty_1 = - 35 ; pub const RC_INSUFFICIENT_BUFFER : _bindgen_ty_1 = - 36 ; pub const RC_INVALID_VARIABLE_NAME : _bindgen_ty_1 = - 37 ; pub const RC_UNKNOWN_VARIABLE_NAME : _bindgen_ty_1 = - 38 ; # [doc = "\\\n| Return values                                                               |\n\\"] pub type _bindgen_ty_1 = :: core :: ffi :: c_int ; extern "C" { pub fn rc_error_str (ret : :: core :: ffi :: c_int) -> * const :: core :: ffi :: c_char ; } pub type wchar_t = :: core :: ffi :: c_int ; # [repr (C)] # [repr (align (16))] # [derive (Debug , Copy , Clone)] pub struct max_align_t { pub __clang_max_align_nonce1 : :: core :: ffi :: c_longlong , pub __bindgen_padding_0 : u64 , pub __clang_max_align_nonce2 : u128 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of max_align_t"] [:: core :: mem :: size_of :: < max_align_t > () - 32usize] ; ["Alignment of max_align_t"] [:: core :: mem :: align_of :: < max_align_t > () - 16usize] ; ["Offset of field: max_align_t::__clang_max_align_nonce1"] [:: core :: mem :: offset_of ! (max_align_t , __clang_max_align_nonce1) - 0usize] ; ["Offset of field: max_align_t::__clang_max_align_nonce2"] [:: core :: mem :: offset_of ! (max_align_t , __clang_max_align_nonce2) - 16usize] ; } ; pub type __u_char = :: core :: ffi :: c_uchar ; pub type __u_short = :: core :: ffi :: c_ushort ; pub type __u_int = :: core :: ffi :: c_uint ; pub type __u_long = :: core :: ffi :: c_ulong ; pub type __int8_t = :: core :: ffi :: c_schar ; pub type __uint8_t = :: core :: ffi :: c_uchar ; pub type __int16_t = :: core :: ffi :: c_short ; pub type __uint16_t = :: core :: ffi :: c_ushort ; pub type __int32_t = :: core :: ffi :: c_int ; pub type __uint32_t = :: core :: ffi :: c_uint ; pub type __int64_t = :: core :: ffi :: c_long ; pub type __uint64_t = :: core :: ffi :: c_ulong ; pub type __int_least8_t = __int8_t ; pub type __uint_least8_t = __uint8_t ; pub type __int_least16_t = __int16_t ; pub type __uint_least16_t = __uint16_t ; pub type __int_least32_t = __int32_t ; pub type __uint_least32_t = __uint32_t ; pub type __int_least64_t = __int64_t ; pub type __uint_least64_t = __uint64_t ; pub type __quad_t = :: core :: ffi :: c_long ; pub type __u_quad_t = :: core :: ffi :: c_ulong ; pub type __intmax_t = :: core :: ffi :: c_long ; pub type __uintmax_t = :: core :: ffi :: c_ulong ; pub type __dev_t = :: core :: ffi :: c_ulong ; pub type __uid_t = :: core :: ffi :: c_uint ; pub type __gid_t = :: core :: ffi :: c_uint ; pub type __ino_t = :: core :: ffi :: c_ulong ; pub type __ino64_t = :: core :: ffi :: c_ulong ; pub type __mode_t = :: core :: ffi :: c_uint ; pub type __nlink_t = :: core :: ffi :: c_ulong ; pub type __off_t = :: core :: ffi :: c_long ; pub type __off64_t = :: core :: ffi :: c_long ; pub type __pid_t = :: core :: ffi :: c_int ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __fsid_t { pub __val : [:: core :: ffi :: c_int ; 2usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __fsid_t"] [:: core :: mem :: size_of :: < __fsid_t > () - 8usize] ; ["Alignment of __fsid_t"] [:: core :: mem :: align_of :: < __fsid_t > () - 4usize] ; ["Offset of field: __fsid_t::__val"] [:: core :: mem :: offset_of ! (__fsid_t , __val) - 0usize] ; } ; pub type __clock_t = :: core :: ffi :: c_long ; pub type __rlim_t = :: core :: ffi :: c_ulong ; pub type __rlim64_t = :: core :: ffi :: c_ulong ; pub type __id_t = :: core :: ffi :: c_uint ; pub type __time_t = :: core :: ffi :: c_long ; pub type __useconds_t = :: core :: ffi :: c_uint ; pub type __suseconds_t = :: core :: ffi :: c_long ; pub type __suseconds64_t = :: core :: ffi :: c_long ; pub type __daddr_t = :: core :: ffi :: c_int ; pub type __key_t = :: core :: ffi :: c_int ; pub type __clockid_t = :: core :: ffi :: c_int ; pub type __timer_t = * mut :: core :: ffi :: c_void ; pub type __blksize_t = :: core :: ffi :: c_long ; pub type __blkcnt_t = :: core :: ffi :: c_long ; pub type __blkcnt64_t = :: core :: ffi :: c_long ; pub type __fsblkcnt_t = :: core :: ffi :: c_ulong ; pub type __fsblkcnt64_t = :: core :: ffi :: c_ulong ; pub type __fsfilcnt_t = :: core :: ffi :: c_ulong ; pub type __fsfilcnt64_t = :: core :: ffi :: c_ulong ; pub type __fsword_t = :: core :: ffi :: c_long ; pub type __ssize_t = :: core :: ffi :: c_long ; pub type __syscall_slong_t = :: core :: ffi :: c_long ; pub type __syscall_ulong_t = :: core :: ffi :: c_ulong ; pub type __loff_t = __off64_t ; pub type __caddr_t = * mut :: core :: ffi :: c_char ; pub type __intptr_t = :: core :: ffi :: c_long ; pub type __socklen_t = :: core :: ffi :: c_uint ; pub type __sig_atomic_t = :: core :: ffi :: c_int ; pub type int_least8_t = __int_least8_t ; pub type int_least16_t = __int_least16_t ; pub type int_least32_t = __int_least32_t ; pub type int_least64_t = __int_least64_t ; pub type uint_least8_t = __uint_least8_t ; pub type uint_least16_t = __uint_least16_t ; pub type uint_least32_t = __uint_least32_t ; pub type uint_least64_t = __uint_least64_t ; pub type int_fast8_t = :: core :: ffi :: c_schar ; pub type int_fast16_t = :: core :: ffi :: c_long ; pub type int_fast32_t = :: core :: ffi :: c_long ; pub type int_fast64_t = :: core :: ffi :: c_long ; pub type uint_fast8_t = :: core :: ffi :: c_uchar ; pub type uint_fast16_t = :: core :: ffi :: c_ulong ; pub type uint_fast32_t = :: core :: ffi :: c_ulong ; pub type uint_fast64_t = :: core :: ffi :: c_ulong ; pub type intmax_t = __intmax_t ; pub type uintmax_t = __uintmax_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct lua_State { _unused : [u8 ; 0] , } # [doc = " Callback used to read num_bytes bytes from memory starting at address. If\n num_bytes is greater than 1, the value is read in little-endian from\n memory."] pub type rc_peek_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , num_bytes : u32 , ud : * mut :: core :: ffi :: c_void) -> u32 > ; pub const RC_MEMSIZE_8_BITS : _bindgen_ty_2 = 0 ; pub const RC_MEMSIZE_16_BITS : _bindgen_ty_2 = 1 ; pub const RC_MEMSIZE_24_BITS : _bindgen_ty_2 = 2 ; pub const RC_MEMSIZE_32_BITS : _bindgen_ty_2 = 3 ; pub const RC_MEMSIZE_LOW : _bindgen_ty_2 = 4 ; pub const RC_MEMSIZE_HIGH : _bindgen_ty_2 = 5 ; pub const RC_MEMSIZE_BIT_0 : _bindgen_ty_2 = 6 ; pub const RC_MEMSIZE_BIT_1 : _bindgen_ty_2 = 7 ; pub const RC_MEMSIZE_BIT_2 : _bindgen_ty_2 = 8 ; pub const RC_MEMSIZE_BIT_3 : _bindgen_ty_2 = 9 ; pub const RC_MEMSIZE_BIT_4 : _bindgen_ty_2 = 10 ; pub const RC_MEMSIZE_BIT_5 : _bindgen_ty_2 = 11 ; pub const RC_MEMSIZE_BIT_6 : _bindgen_ty_2 = 12 ; pub const RC_MEMSIZE_BIT_7 : _bindgen_ty_2 = 13 ; pub const RC_MEMSIZE_BITCOUNT : _bindgen_ty_2 = 14 ; pub const RC_MEMSIZE_16_BITS_BE : _bindgen_ty_2 = 15 ; pub const RC_MEMSIZE_24_BITS_BE : _bindgen_ty_2 = 16 ; pub const RC_MEMSIZE_32_BITS_BE : _bindgen_ty_2 = 17 ; pub const RC_MEMSIZE_FLOAT : _bindgen_ty_2 = 18 ; pub const RC_MEMSIZE_MBF32 : _bindgen_ty_2 = 19 ; pub const RC_MEMSIZE_MBF32_LE : _bindgen_ty_2 = 20 ; pub const RC_MEMSIZE_FLOAT_BE : _bindgen_ty_2 = 21 ; pub const RC_MEMSIZE_DOUBLE32 : _bindgen_ty_2 = 22 ; pub const RC_MEMSIZE_DOUBLE32_BE : _bindgen_ty_2 = 23 ; pub const RC_MEMSIZE_VARIABLE : _bindgen_ty_2 = 24 ; # [doc = "\\\n| Memory References                                                           |\n\\"] pub type _bindgen_ty_2 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memref_value_t { pub value : u32 , pub prior : u32 , pub size : u8 , pub changed : u8 , pub type_ : u8 , pub is_indirect : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memref_value_t"] [:: core :: mem :: size_of :: < rc_memref_value_t > () - 12usize] ; ["Alignment of rc_memref_value_t"] [:: core :: mem :: align_of :: < rc_memref_value_t > () - 4usize] ; ["Offset of field: rc_memref_value_t::value"] [:: core :: mem :: offset_of ! (rc_memref_value_t , value) - 0usize] ; ["Offset of field: rc_memref_value_t::prior"] [:: core :: mem :: offset_of ! (rc_memref_value_t , prior) - 4usize] ; ["Offset of field: rc_memref_value_t::size"] [:: core :: mem :: offset_of ! (rc_memref_value_t , size) - 8usize] ; ["Offset of field: rc_memref_value_t::changed"] [:: core :: mem :: offset_of ! (rc_memref_value_t , changed) - 9usize] ; ["Offset of field: rc_memref_value_t::type_"] [:: core :: mem :: offset_of ! (rc_memref_value_t , type_) - 10usize] ; ["Offset of field: rc_memref_value_t::is_indirect"] [:: core :: mem :: offset_of ! (rc_memref_value_t , is_indirect) - 11usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memref_t { pub value : rc_memref_value_t , pub address : u32 , pub next : * mut rc_memref_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memref_t"] [:: core :: mem :: size_of :: < rc_memref_t > () - 24usize] ; ["Alignment of rc_memref_t"] [:: core :: mem :: align_of :: < rc_memref_t > () - 8usize] ; ["Offset of field: rc_memref_t::value"] [:: core :: mem :: offset_of ! (rc_memref_t , value) - 0usize] ; ["Offset of field: rc_memref_t::address"] [:: core :: mem :: offset_of ! (rc_memref_t , address) - 12usize] ; ["Offset of field: rc_memref_t::next"] [:: core :: mem :: offset_of ! (rc_memref_t , next) - 16usize] ; } ; pub const RC_OPERAND_ADDRESS : _bindgen_ty_3 = 0 ; pub const RC_OPERAND_DELTA : _bindgen_ty_3 = 1 ; pub const RC_OPERAND_CONST : _bindgen_ty_3 = 2 ; pub const RC_OPERAND_FP : _bindgen_ty_3 = 3 ; pub const RC_OPERAND_LUA : _bindgen_ty_3 = 4 ; pub const RC_OPERAND_PRIOR : _bindgen_ty_3 = 5 ; pub const RC_OPERAND_BCD : _bindgen_ty_3 = 6 ; pub const RC_OPERAND_INVERTED : _bindgen_ty_3 = 7 ; pub const RC_OPERAND_RECALL : _bindgen_ty_3 = 8 ; # [doc = "\\\n| Operands                                                                    |\n\\"] pub type _bindgen_ty_3 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Copy , Clone)] pub struct rc_operand_t { pub value : rc_operand_t__bindgen_ty_1 , pub type_ : u8 , pub size : u8 , } # [repr (C)] # [derive (Copy , Clone)] pub union rc_operand_t__bindgen_ty_1 { pub memref : * mut rc_memref_t , pub num : u32 , pub dbl : f64 , pub luafunc : :: core :: ffi :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_operand_t__bindgen_ty_1"] [:: core :: mem :: size_of :: < rc_operand_t__bindgen_ty_1 > () - 8usize] ; ["Alignment of rc_operand_t__bindgen_ty_1"] [:: core :: mem :: align_of :: < rc_operand_t__bindgen_ty_1 > () - 8usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::memref"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , memref) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::num"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , num) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::dbl"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , dbl) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::luafunc"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , luafunc) - 0usize] ; } ; impl :: core :: fmt :: Debug for rc_operand_t__bindgen_ty_1 { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_operand_t__bindgen_ty_1 {{ union }}") } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_operand_t"] [:: core :: mem :: size_of :: < rc_operand_t > () - 16usize] ; ["Alignment of rc_operand_t"] [:: core :: mem :: align_of :: < rc_operand_t > () - 8usize] ; ["Offset of field: rc_operand_t::value"] [:: core :: mem :: offset_of ! (rc_operand_t , value) - 0usize] ; ["Offset of field: rc_operand_t::type_"] [:: core :: mem :: offset_of ! (rc_operand_t , type_) - 8usize] ; ["Offset of field: rc_operand_t::size"] [:: core :: mem :: offset_of ! (rc_operand_t , size) - 9usize] ; } ; impl :: core :: fmt :: Debug for rc_operand_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_operand_t {{ value: {:?}, type: {:?}, size: {:?} }}" , self . value , self . type_ , self . size) } } extern "C" { pub fn rc_operand_is_memref (operand : * const rc_operand_t) -> :: core :: ffi :: c_int ; } pub const RC_CONDITION_STANDARD : _bindgen_ty_4 = 0 ; pub const RC_CONDITION_PAUSE_IF : _bindgen_ty_4 = 1 ; pub const RC_CONDITION_RESET_IF : _bindgen_ty_4 = 2 ; pub const RC_CONDITION_MEASURED_IF : _bindgen_ty_4 = 3 ; pub const RC_CONDITION_TRIGGER : _bindgen_ty_4 = 4 ; pub const RC_CONDITION_MEASURED : _bindgen_ty_4 = 5 ; pub const RC_CONDITION_ADD_SOURCE : _bindgen_ty_4 = 6 ; pub const RC_CONDITION_SUB_SOURCE : _bindgen_ty_4 = 7 ; pub const RC_CONDITION_ADD_ADDRESS : _bindgen_ty_4 = 8 ; pub const RC_CONDITION_REMEMBER : _bindgen_ty_4 = 9 ; pub const RC_CONDITION_ADD_HITS : _bindgen_ty_4 = 10 ; pub const RC_CONDITION_SUB_HITS : _bindgen_ty_4 = 11 ; pub const RC_CONDITION_RESET_NEXT_IF : _bindgen_ty_4 = 12 ; pub const RC_CONDITION_AND_NEXT : _bindgen_ty_4 = 13 ; pub const RC_CONDITION_OR_NEXT : _bindgen_ty_4 = 14 ; # [doc = "\\\n| Conditions                                                                  |\n\\"] pub type _bindgen_ty_4 = :: core :: ffi :: c_uint ; pub const RC_OPERATOR_EQ : _bindgen_ty_5 = 0 ; pub const RC_OPERATOR_LT : _bindgen_ty_5 = 1 ; pub const RC_OPERATOR_LE : _bindgen_ty_5 = 2 ; pub const RC_OPERATOR_GT : _bindgen_ty_5 = 3 ; pub const RC_OPERATOR_GE : _bindgen_ty_5 = 4 ; pub const RC_OPERATOR_NE : _bindgen_ty_5 = 5 ; pub const RC_OPERATOR_NONE : _bindgen_ty_5 = 6 ; pub const RC_OPERATOR_MULT : _bindgen_ty_5 = 7 ; pub const RC_OPERATOR_DIV : _bindgen_ty_5 = 8 ; pub const RC_OPERATOR_AND : _bindgen_ty_5 = 9 ; pub const RC_OPERATOR_XOR : _bindgen_ty_5 = 10 ; pub const RC_OPERATOR_MOD : _bindgen_ty_5 = 11 ; pub const RC_OPERATOR_ADD : _bindgen_ty_5 = 12 ; pub const RC_OPERATOR_SUB : _bindgen_ty_5 = 13 ; pub type _bindgen_ty_5 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Copy , Clone)] pub struct rc_condition_t { pub operand1 : rc_operand_t , pub operand2 : rc_operand_t , pub required_hits : u32 , pub current_hits : u32 , pub next : * mut rc_condition_t , pub type_ : u8 , pub oper : u8 , pub pause : u8 , pub is_true : u8 , pub optimized_comparator : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_condition_t"] [:: core :: mem :: size_of :: < rc_condition_t > () - 56usize] ; ["Alignment of rc_condition_t"] [:: core :: mem :: align_of :: < rc_condition_t > () - 8usize] ; ["Offset of field: rc_condition_t::operand1"] [:: core :: mem :: offset_of ! (rc_condition_t , operand1) - 0usize] ; ["Offset of field: rc_condition_t::operand2"] [:: core :: mem :: offset_of ! (rc_condition_t , operand2) - 16usize] ; ["Offset of field: rc_condition_t::required_hits"] [:: core :: mem :: offset_of ! (rc_condition_t , required_hits) - 32usize] ; ["Offset of field: rc_condition_t::current_hits"] [:: core :: mem :: offset_of ! (rc_condition_t , current_hits) - 36usize] ; ["Offset of field: rc_condition_t::next"] [:: core :: mem :: offset_of ! (rc_condition_t , next) - 40usize] ; ["Offset of field: rc_condition_t::type_"] [:: core :: mem :: offset_of ! (rc_condition_t , type_) - 48usize] ; ["Offset of field: rc_condition_t::oper"] [:: core :: mem :: offset_of ! (rc_condition_t , oper) - 49usize] ; ["Offset of field: rc_condition_t::pause"] [:: core :: mem :: offset_of ! (rc_condition_t , pause) - 50usize] ; ["Offset of field: rc_condition_t::is_true"] [:: core :: mem :: offset_of ! (rc_condition_t , is_true) - 51usize] ; ["Offset of field: rc_condition_t::optimized_comparator"] [:: core :: mem :: offset_of ! (rc_condition_t , optimized_comparator) - 52usize] ; } ; impl :: core :: fmt :: Debug for rc_condition_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_condition_t {{ operand1: {:?}, operand2: {:?}, required_hits: {:?}, current_hits: {:?}, next: {:?}, type: {:?}, oper: {:?}, pause: {:?}, is_true: {:?}, optimized_comparator: {:?} }}" , self . operand1 , self . operand2 , self . required_hits , self . current_hits , self . next , self . type_ , self . oper , self . pause , self . is_true , self . optimized_comparator) } } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_condset_t { pub next : * mut rc_condset_t , pub conditions : * mut rc_condition_t , pub has_pause : u8 , pub is_paused : u8 , pub has_indirect_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_condset_t"] [:: core :: mem :: size_of :: < rc_condset_t > () - 24usize] ; ["Alignment of rc_condset_t"] [:: core :: mem :: align_of :: < rc_condset_t > () - 8usize] ; ["Offset of field: rc_condset_t::next"] [:: core :: mem :: offset_of ! (rc_condset_t , next) - 0usize] ; ["Offset of field: rc_condset_t::conditions"] [:: core :: mem :: offset_of ! (rc_condset_t , conditions) - 8usize] ; ["Offset of field: rc_condset_t::has_pause"] [:: core :: mem :: offset_of ! (rc_condset_t , has_pause) - 16usize] ; ["Offset of field: rc_condset_t::is_paused"] [:: core :: mem :: offset_of ! (rc_condset_t , is_paused) - 17usize] ; ["Offset of field: rc_condset_t::has_indirect_memrefs"] [:: core :: mem :: offset_of ! (rc_condset_t , has_indirect_memrefs) - 18usize] ; } ; pub const RC_TRIGGER_STATE_INACTIVE : _bindgen_ty_6 = 0 ; pub const RC_TRIGGER_STATE_WAITING : _bindgen_ty_6 = 1 ; pub const RC_TRIGGER_STATE_ACTIVE : _bindgen_ty_6 = 2 ; pub const RC_TRIGGER_STATE_PAUSED : _bindgen_ty_6 = 3 ; pub const RC_TRIGGER_STATE_RESET : _bindgen_ty_6 = 4 ; pub const RC_TRIGGER_STATE_TRIGGERED : _bindgen_ty_6 = 5 ; pub const RC_TRIGGER_STATE_PRIMED : _bindgen_ty_6 = 6 ; pub const RC_TRIGGER_STATE_DISABLED : _bindgen_ty_6 = 7 ; # [doc = "\\\n| Trigger                                                                     |\n\\"] pub type _bindgen_ty_6 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_trigger_t { pub requirement : * mut rc_condset_t , pub alternative : * mut rc_condset_t , pub memrefs : * mut rc_memref_t , pub measured_value : u32 , pub measured_target : u32 , pub state : u8 , pub has_hits : u8 , pub has_required_hits : u8 , pub measured_as_percent : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_trigger_t"] [:: core :: mem :: size_of :: < rc_trigger_t > () - 40usize] ; ["Alignment of rc_trigger_t"] [:: core :: mem :: align_of :: < rc_trigger_t > () - 8usize] ; ["Offset of field: rc_trigger_t::requirement"] [:: core :: mem :: offset_of ! (rc_trigger_t , requirement) - 0usize] ; ["Offset of field: rc_trigger_t::alternative"] [:: core :: mem :: offset_of ! (rc_trigger_t , alternative) - 8usize] ; ["Offset of field: rc_trigger_t::memrefs"] [:: core :: mem :: offset_of ! (rc_trigger_t , memrefs) - 16usize] ; ["Offset of field: rc_trigger_t::measured_value"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_value) - 24usize] ; ["Offset of field: rc_trigger_t::measured_target"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_target) - 28usize] ; ["Offset of field: rc_trigger_t::state"] [:: core :: mem :: offset_of ! (rc_trigger_t , state) - 32usize] ; ["Offset of field: rc_trigger_t::has_hits"] [:: core :: mem :: offset_of ! (rc_trigger_t , has_hits) - 33usize] ; ["Offset of field: rc_trigger_t::has_required_hits"] [:: core :: mem :: offset_of ! (rc_trigger_t , has_required_hits) - 34usize] ; ["Offset of field: rc_trigger_t::measured_as_percent"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_as_percent) - 35usize] ; } ; extern "C" { pub fn rc_trigger_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_trigger (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_trigger_t ; } extern "C" { pub fn rc_evaluate_trigger (trigger : * mut rc_trigger_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_test_trigger (trigger : * mut rc_trigger_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_trigger (self_ : * mut rc_trigger_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_value_t { pub value : rc_memref_value_t , pub conditions : * mut rc_condset_t , pub memrefs : * mut rc_memref_t , pub name : * const :: core :: ffi :: c_char , pub next : * mut rc_value_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_value_t"] [:: core :: mem :: size_of :: < rc_value_t > () - 48usize] ; ["Alignment of rc_value_t"] [:: core :: mem :: align_of :: < rc_value_t > () - 8usize] ; ["Offset of field: rc_value_t::value"] [:: core :: mem :: offset_of ! (rc_value_t , value) - 0usize] ; ["Offset of field: rc_value_t::conditions"] [:: core :: mem :: offset_of ! (rc_value_t , conditions) - 16usize] ; ["Offset of field: rc_value_t::memrefs"] [:: core :: mem :: offset_of ! (rc_value_t , memrefs) - 24usize] ; ["Offset of field: rc_value_t::name"] [:: core :: mem :: offset_of ! (rc_value_t , name) - 32usize] ; ["Offset of field: rc_value_t::next"] [:: core :: mem :: offset_of ! (rc_value_t , next) - 40usize] ; } ; extern "C" { pub fn rc_value_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_value (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_value_t ; } extern "C" { pub fn rc_evaluate_value (value : * mut rc_value_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> i32 ; } pub const RC_LBOARD_STATE_INACTIVE : _bindgen_ty_7 = 0 ; pub const RC_LBOARD_STATE_WAITING : _bindgen_ty_7 = 1 ; pub const RC_LBOARD_STATE_ACTIVE : _bindgen_ty_7 = 2 ; pub const RC_LBOARD_STATE_STARTED : _bindgen_ty_7 = 3 ; pub const RC_LBOARD_STATE_CANCELED : _bindgen_ty_7 = 4 ; pub const RC_LBOARD_STATE_TRIGGERED : _bindgen_ty_7 = 5 ; pub const RC_LBOARD_STATE_DISABLED : _bindgen_ty_7 = 6 ; # [doc = "\\\n| Leaderboards                                                                |\n\\"] pub type _bindgen_ty_7 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_lboard_t { pub start : rc_trigger_t , pub submit : rc_trigger_t , pub cancel : rc_trigger_t , pub value : rc_value_t , pub progress : * mut rc_value_t , pub memrefs : * mut rc_memref_t , pub state : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_lboard_t"] [:: core :: mem :: size_of :: < rc_lboard_t > () - 192usize] ; ["Alignment of rc_lboard_t"] [:: core :: mem :: align_of :: < rc_lboard_t > () - 8usize] ; ["Offset of field: rc_lboard_t::start"] [:: core :: mem :: offset_of ! (rc_lboard_t , start) - 0usize] ; ["Offset of field: rc_lboard_t::submit"] [:: core :: mem :: offset_of ! (rc_lboard_t , submit) - 40usize] ; ["Offset of field: rc_lboard_t::cancel"] [:: core :: mem :: offset_of ! (rc_lboard_t , cancel) - 80usize] ; ["Offset of field: rc_lboard_t::value"] [:: core :: mem :: offset_of ! (rc_lboard_t , value) - 120usize] ; ["Offset of field: rc_lboard_t::progress"] [:: core :: mem :: offset_of ! (rc_lboard_t , progress) - 168usize] ; ["Offset of field: rc_lboard_t::memrefs"] [:: core :: mem :: offset_of ! (rc_lboard_t , memrefs) - 176usize] ; ["Offset of field: rc_lboard_t::state"] [:: core :: mem :: offset_of ! (rc_lboard_t , state) - 184usize] ; } ; extern "C" { pub fn rc_lboard_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_lboard (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_lboard_t ; } extern "C" { pub fn rc_evaluate_lboard (lboard : * mut rc_lboard_t , value : * mut i32 , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_lboard (lboard : * mut rc_lboard_t) ; } pub const RC_FORMAT_FRAMES : _bindgen_ty_8 = 0 ; pub const RC_FORMAT_SECONDS : _bindgen_ty_8 = 1 ; pub const RC_FORMAT_CENTISECS : _bindgen_ty_8 = 2 ; pub const RC_FORMAT_SCORE : _bindgen_ty_8 = 3 ; pub const RC_FORMAT_VALUE : _bindgen_ty_8 = 4 ; pub const RC_FORMAT_MINUTES : _bindgen_ty_8 = 5 ; pub const RC_FORMAT_SECONDS_AS_MINUTES : _bindgen_ty_8 = 6 ; pub const RC_FORMAT_FLOAT1 : _bindgen_ty_8 = 7 ; pub const RC_FORMAT_FLOAT2 : _bindgen_ty_8 = 8 ; pub const RC_FORMAT_FLOAT3 : _bindgen_ty_8 = 9 ; pub const RC_FORMAT_FLOAT4 : _bindgen_ty_8 = 10 ; pub const RC_FORMAT_FLOAT5 : _bindgen_ty_8 = 11 ; pub const RC_FORMAT_FLOAT6 : _bindgen_ty_8 = 12 ; pub const RC_FORMAT_FIXED1 : _bindgen_ty_8 = 13 ; pub const RC_FORMAT_FIXED2 : _bindgen_ty_8 = 14 ; pub const RC_FORMAT_FIXED3 : _bindgen_ty_8 = 15 ; pub const RC_FORMAT_TENS : _bindgen_ty_8 = 16 ; pub const RC_FORMAT_HUNDREDS : _bindgen_ty_8 = 17 ; pub const RC_FORMAT_THOUSANDS : _bindgen_ty_8 = 18 ; pub const RC_FORMAT_UNSIGNED_VALUE : _bindgen_ty_8 = 19 ; # [doc = "\\\n| Value formatting                                                            |\n\\"] pub type _bindgen_ty_8 = :: core :: ffi :: c_uint ; extern "C" { pub fn rc_parse_format (format_str : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_format_value (buffer : * mut :: core :: ffi :: c_char , size : :: core :: ffi :: c_int , value : i32 , format : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_lookup_item_t { pub first : u32 , pub last : u32 , pub left : * mut rc_richpresence_lookup_item_t , pub right : * mut rc_richpresence_lookup_item_t , pub label : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_lookup_item_t"] [:: core :: mem :: size_of :: < rc_richpresence_lookup_item_t > () - 32usize] ; ["Alignment of rc_richpresence_lookup_item_t"] [:: core :: mem :: align_of :: < rc_richpresence_lookup_item_t > () - 8usize] ; ["Offset of field: rc_richpresence_lookup_item_t::first"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , first) - 0usize] ; ["Offset of field: rc_richpresence_lookup_item_t::last"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , last) - 4usize] ; ["Offset of field: rc_richpresence_lookup_item_t::left"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , left) - 8usize] ; ["Offset of field: rc_richpresence_lookup_item_t::right"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , right) - 16usize] ; ["Offset of field: rc_richpresence_lookup_item_t::label"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , label) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_lookup_t { pub root : * mut rc_richpresence_lookup_item_t , pub next : * mut rc_richpresence_lookup_t , pub name : * const :: core :: ffi :: c_char , pub default_label : * const :: core :: ffi :: c_char , pub format : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_lookup_t"] [:: core :: mem :: size_of :: < rc_richpresence_lookup_t > () - 40usize] ; ["Alignment of rc_richpresence_lookup_t"] [:: core :: mem :: align_of :: < rc_richpresence_lookup_t > () - 8usize] ; ["Offset of field: rc_richpresence_lookup_t::root"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , root) - 0usize] ; ["Offset of field: rc_richpresence_lookup_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , next) - 8usize] ; ["Offset of field: rc_richpresence_lookup_t::name"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , name) - 16usize] ; ["Offset of field: rc_richpresence_lookup_t::default_label"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , default_label) - 24usize] ; ["Offset of field: rc_richpresence_lookup_t::format"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , format) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_display_part_t { pub next : * mut rc_richpresence_display_part_t , pub text : * const :: core :: ffi :: c_char , pub lookup : * mut rc_richpresence_lookup_t , pub value : * mut rc_memref_value_t , pub display_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_display_part_t"] [:: core :: mem :: size_of :: < rc_richpresence_display_part_t > () - 40usize] ; ["Alignment of rc_richpresence_display_part_t"] [:: core :: mem :: align_of :: < rc_richpresence_display_part_t > () - 8usize] ; ["Offset of field: rc_richpresence_display_part_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , next) - 0usize] ; ["Offset of field: rc_richpresence_display_part_t::text"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , text) - 8usize] ; ["Offset of field: rc_richpresence_display_part_t::lookup"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , lookup) - 16usize] ; ["Offset of field: rc_richpresence_display_part_t::value"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , value) - 24usize] ; ["Offset of field: rc_richpresence_display_part_t::display_type"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , display_type) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_display_t { pub trigger : rc_trigger_t , pub next : * mut rc_richpresence_display_t , pub display : * mut rc_richpresence_display_part_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_display_t"] [:: core :: mem :: size_of :: < rc_richpresence_display_t > () - 56usize] ; ["Alignment of rc_richpresence_display_t"] [:: core :: mem :: align_of :: < rc_richpresence_display_t > () - 8usize] ; ["Offset of field: rc_richpresence_display_t::trigger"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , trigger) - 0usize] ; ["Offset of field: rc_richpresence_display_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , next) - 40usize] ; ["Offset of field: rc_richpresence_display_t::display"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , display) - 48usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_t { pub first_display : * mut rc_richpresence_display_t , pub first_lookup : * mut rc_richpresence_lookup_t , pub memrefs : * mut rc_memref_t , pub variables : * mut rc_value_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_t"] [:: core :: mem :: size_of :: < rc_richpresence_t > () - 32usize] ; ["Alignment of rc_richpresence_t"] [:: core :: mem :: align_of :: < rc_richpresence_t > () - 8usize] ; ["Offset of field: rc_richpresence_t::first_display"] [:: core :: mem :: offset_of ! (rc_richpresence_t , first_display) - 0usize] ; ["Offset of field: rc_richpresence_t::first_lookup"] [:: core :: mem :: offset_of ! (rc_richpresence_t , first_lookup) - 8usize] ; ["Offset of field: rc_richpresence_t::memrefs"] [:: core :: mem :: offset_of ! (rc_richpresence_t , memrefs) - 16usize] ; ["Offset of field: rc_richpresence_t::variables"] [:: core :: mem :: offset_of ! (rc_richpresence_t , variables) - 24usize] ; } ; extern "C" { pub fn rc_richpresence_size (script : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_richpresence_size_lines (script : * const :: core :: ffi :: c_char , lines_read : * mut :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_richpresence (buffer : * mut :: core :: ffi :: c_void , script : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_richpresence_t ; } extern "C" { pub fn rc_evaluate_richpresence (richpresence : * mut rc_richpresence_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_update_richpresence (richpresence : * mut rc_richpresence_t , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) ; } extern "C" { pub fn rc_get_richpresence_display_string (richpresence : * mut rc_richpresence_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_richpresence (self_ : * mut rc_richpresence_t) ; } # [doc = " A block of memory for variable length data (like strings and arrays)."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_buffer_chunk_t { pub write : * mut u8 , pub end : * mut u8 , pub start : * mut u8 , pub next : * mut rc_buffer_chunk_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_buffer_chunk_t"] [:: core :: mem :: size_of :: < rc_buffer_chunk_t > () - 32usize] ; ["Alignment of rc_buffer_chunk_t"] [:: core :: mem :: align_of :: < rc_buffer_chunk_t > () - 8usize] ; ["Offset of field: rc_buffer_chunk_t::write"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , write) - 0usize] ; ["Offset of field: rc_buffer_chunk_t::end"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , end) - 8usize] ; ["Offset of field: rc_buffer_chunk_t::start"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , start) - 16usize] ; ["Offset of field: rc_buffer_chunk_t::next"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , next) - 24usize] ; } ; # [doc = " A preallocated block of memory for variable length data (like strings and arrays)."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_buffer_t { pub chunk : rc_buffer_chunk_t , pub data : [u8 ; 256usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_buffer_t"] [:: core :: mem :: size_of :: < rc_buffer_t > () - 288usize] ; ["Alignment of rc_buffer_t"] [:: core :: mem :: align_of :: < rc_buffer_t > () - 8usize] ; ["Offset of field: rc_buffer_t::chunk"] [:: core :: mem :: offset_of ! (rc_buffer_t , chunk) - 0usize] ; ["Offset of field: rc_buffer_t::data"] [:: core :: mem :: offset_of ! (rc_buffer_t , data) - 32usize] ; } ; extern "C" { pub fn rc_buffer_init (buffer : * mut rc_buffer_t) ; } extern "C" { pub fn rc_buffer_destroy (buffer : * mut rc_buffer_t) ; } extern "C" { pub fn rc_buffer_reserve (buffer : * mut rc_buffer_t , amount : usize) -> * mut u8 ; } extern "C" { pub fn rc_buffer_consume (buffer : * mut rc_buffer_t , start : * const u8 , end : * mut u8) ; } extern "C" { pub fn rc_buffer_alloc (buffer : * mut rc_buffer_t , amount : usize) -> * mut :: core :: ffi :: c_void ; } extern "C" { pub fn rc_buffer_strcpy (buffer : * mut rc_buffer_t , src : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn rc_buffer_strncpy (buffer : * mut rc_buffer_t , src : * const :: core :: ffi :: c_char , len : usize) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn rc_djb2 (input : * const :: core :: ffi :: c_char) -> u32 ; } extern "C" { pub fn rc_format_md5 (checksum : * mut :: core :: ffi :: c_char , digest : * const u8) ; } # [doc = " A constructed request to send to the retroachievements server."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_request_t { pub url : * const :: core :: ffi :: c_char , pub post_data : * const :: core :: ffi :: c_char , pub content_type : * const :: core :: ffi :: c_char , pub buffer : rc_buffer_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_request_t"] [:: core :: mem :: size_of :: < rc_api_request_t > () - 312usize] ; ["Alignment of rc_api_request_t"] [:: core :: mem :: align_of :: < rc_api_request_t > () - 8usize] ; ["Offset of field: rc_api_request_t::url"] [:: core :: mem :: offset_of ! (rc_api_request_t , url) - 0usize] ; ["Offset of field: rc_api_request_t::post_data"] [:: core :: mem :: offset_of ! (rc_api_request_t , post_data) - 8usize] ; ["Offset of field: rc_api_request_t::content_type"] [:: core :: mem :: offset_of ! (rc_api_request_t , content_type) - 16usize] ; ["Offset of field: rc_api_request_t::buffer"] [:: core :: mem :: offset_of ! (rc_api_request_t , buffer) - 24usize] ; } ; # [doc = " Common attributes for all server responses."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_response_t { pub succeeded : :: core :: ffi :: c_int , pub error_message : * const :: core :: ffi :: c_char , pub error_code : * const :: core :: ffi :: c_char , pub buffer : rc_buffer_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_response_t"] [:: core :: mem :: size_of :: < rc_api_response_t > () - 312usize] ; ["Alignment of rc_api_response_t"] [:: core :: mem :: align_of :: < rc_api_response_t > () - 8usize] ; ["Offset of field: rc_api_response_t::succeeded"] [:: core :: mem :: offset_of ! (rc_api_response_t , succeeded) - 0usize] ; ["Offset of field: rc_api_response_t::error_message"] [:: core :: mem :: offset_of ! (rc_api_response_t , error_message) - 8usize] ; ["Offset of field: rc_api_response_t::error_code"] [:: core :: mem :: offset_of ! (rc_api_response_t , error_code) - 16usize] ; ["Offset of field: rc_api_response_t::buffer"] [:: core :: mem :: offset_of ! (rc_api_response_t , buffer) - 24usize] ; } ; extern "C" { pub fn rc_api_destroy_request (request : * mut rc_api_request_t) ; } extern "C" { pub fn rc_api_set_host (hostname : * const :: core :: ffi :: c_char) ; } extern "C" { pub fn rc_api_set_image_host (hostname : * const :: core :: ffi :: c_char) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_server_response_t { pub body : * const :: core :: ffi :: c_char , pub body_length : usize , pub http_status_code : :: core :: ffi :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_server_response_t"] [:: core :: mem :: size_of :: < rc_api_server_response_t > () - 24usize] ; ["Alignment of rc_api_server_response_t"] [:: core :: mem :: align_of :: < rc_api_server_response_t > () - 8usize] ; ["Offset of field: rc_api_server_response_t::body"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , body) - 0usize] ; ["Offset of field: rc_api_server_response_t::body_length"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , body_length) - 8usize] ; ["Offset of field: rc_api_server_response_t::http_status_code"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , http_status_code) - 16usize] ; } ; pub const RC_API_SERVER_RESPONSE_CLIENT_ERROR : _bindgen_ty_9 = - 1 ; pub const RC_API_SERVER_RESPONSE_RETRYABLE_CLIENT_ERROR : _bindgen_ty_9 = - 2 ; pub type _bindgen_ty_9 = :: core :: ffi :: c_int ; pub type clock_t = __clock_t ; pub type time_t = __time_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct tm { pub tm_sec : :: core :: ffi :: c_int , pub tm_min : :: core :: ffi :: c_int , pub tm_hour : :: core :: ffi :: c_int , pub tm_mday : :: core :: ffi :: c_int , pub tm_mon : :: core :: ffi :: c_int , pub tm_year : :: core :: ffi :: c_int , pub tm_wday : :: core :: ffi :: c_int , pub tm_yday : :: core :: ffi :: c_int , pub tm_isdst : :: core :: ffi :: c_int , pub tm_gmtoff : :: core :: ffi :: c_long , pub tm_zone : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of tm"] [:: core :: mem :: size_of :: < tm > () - 56usize] ; ["Alignment of tm"] [:: core :: mem :: align_of :: < tm > () - 8usize] ; ["Offset of field: tm::tm_sec"] [:: core :: mem :: offset_of ! (tm , tm_sec) - 0usize] ; ["Offset of field: tm::tm_min"] [:: core :: mem :: offset_of ! (tm , tm_min) - 4usize] ; ["Offset of field: tm::tm_hour"] [:: core :: mem :: offset_of ! (tm , tm_hour) - 8usize] ; ["Offset of field: tm::tm_mday"] [:: core :: mem :: offset_of ! (tm , tm_mday) - 12usize] ; ["Offset of field: tm::tm_mon"] [:: core :: mem :: offset_of ! (tm , tm_mon) - 16usize] ; ["Offset of field: tm::tm_year"] [:: core :: mem :: offset_of ! (tm , tm_year) - 20usize] ; ["Offset of field: tm::tm_wday"] [:: core :: mem :: offset_of ! (tm , tm_wday) - 24usize] ; ["Offset of field: tm::tm_yday"] [:: core :: mem :: offset_of ! (tm , tm_yday) - 28usize] ; ["Offset of field: tm::tm_isdst"] [:: core :: mem :: offset_of ! (tm , tm_isdst) - 32usize] ; ["Offset of field: tm::tm_gmtoff"] [:: core :: mem :: offset_of ! (tm , tm_gmtoff) - 40usize] ; ["Offset of field: tm::tm_zone"] [:: core :: mem :: offset_of ! (tm , tm_zone) - 48usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct timespec { pub tv_sec : __time_t , pub tv_nsec : __syscall_slong_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of timespec"] [:: core :: mem :: size_of :: < timespec > () - 16usize] ; ["Alignment of timespec"] [:: core :: mem :: align_of :: < timespec > () - 8usize] ; ["Offset of field: timespec::tv_sec"] [:: core :: mem :: offset_of ! (timespec , tv_sec) - 0usize] ; ["Offset of field: timespec::tv_nsec"] [:: core :: mem :: offset_of ! (timespec , tv_nsec) - 8usize] ; } ; pub type clockid_t = __clockid_t ; pub type timer_t = __timer_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct itimerspec { pub it_interval : timespec , pub it_value : timespec , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of itimerspec"] [:: core :: mem :: size_of :: < itimerspec > () - 32usize] ; ["Alignment of itimerspec"] [:: core :: mem :: align_of :: < itimerspec > () - 8usize] ; ["Offset of field: itimerspec::it_interval"] [:: core :: mem :: offset_of ! (itimerspec , it_interval) - 0usize] ; ["Offset of field: itimerspec::it_value"] [:: core :: mem :: offset_of ! (itimerspec , it_value) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct sigevent { _unused : [u8 ; 0] , } pub type pid_t = __pid_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __locale_struct { pub __locales : [* mut __locale_data ; 13usize] , pub __ctype_b : * const :: core :: ffi :: c_ushort , pub __ctype_tolower : * const :: core :: ffi :: c_int , pub __ctype_toupper : * const :: core :: ffi :: c_int , pub __names : [* const :: core :: ffi :: c_char ; 13usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __locale_struct"] [:: core :: mem :: size_of :: < __locale_struct > () - 232usize] ; ["Alignment of __locale_struct"] [:: core :: mem :: align_of :: < __locale_struct > () - 8usize] ; ["Offset of field: __locale_struct::__locales"] [:: core :: mem :: offset_of ! (__locale_struct , __locales) - 0usize] ; ["Offset of field: __locale_struct::__ctype_b"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_b) - 104usize] ; ["Offset of field: __locale_struct::__ctype_tolower"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_tolower) - 112usize] ; ["Offset of field: __locale_struct::__ctype_toupper"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_toupper) - 120usize] ; ["Offset of field: __locale_struct::__names"] [:: core :: mem :: offset_of ! (__locale_struct , __names) - 128usize] ; } ; pub type __locale_t = * mut __locale_struct ; pub type locale_t = __locale_t ; extern "C" { pub fn clock () -> clock_t ; } extern "C" { pub fn time (__timer : * mut time_t) -> time_t ; } extern "C" { pub fn difftime (__time1 : time_t , __time0 : time_t) -> f64 ; } extern "C" { pub fn mktime (__tp : * mut tm) -> time_t ; } extern "C" { pub fn strftime (__s : * mut :: core :: ffi :: c_char , __maxsize : usize , __format : * const :: core :: ffi :: c_char , __tp : * const tm) -> usize ; } extern "C" { pub fn strftime_l (__s : * mut :: core :: ffi :: c_char , __maxsize : usize , __format : * const :: core :: ffi :: c_char , __tp : * const tm , __loc : locale_t) -> usize ; } extern "C" { pub fn gmtime (__timer : * const time_t) -> * mut tm ; } extern "C" { pub fn localtime (__timer : * const time_t) -> * mut tm ; } extern "C" { pub fn gmtime_r (__timer : * const time_t , __tp : * mut tm) -> * mut tm ; } extern "C" { pub fn localtime_r (__timer : * const time_t , __tp : * mut tm) -> * mut tm ; } extern "C" { pub fn asctime (__tp : * const tm) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn ctime (__timer : * const time_t) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn asctime_r (__tp : * const tm , __buf : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn ctime_r (__timer : * const time_t , __buf : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub static mut __tzname : [* mut :: core :: ffi :: c_char ; 2usize] ; } extern "C" { pub static mut __daylight : :: core :: ffi :: c_int ; } extern "C" { pub static mut __timezone : :: core :: ffi :: c_long ; } extern "C" { pub static mut tzname : [* mut :: core :: ffi :: c_char ; 2usize] ; } extern "C" { pub fn tzset () ; } extern "C" { pub static mut daylight : :: core :: ffi :: c_int ; } extern "C" { pub static mut timezone : :: core :: ffi :: c_long ; } extern "C" { pub fn timegm (__tp : * mut tm) -> time_t ; } extern "C" { pub fn timelocal (__tp : * mut tm) -> time_t ; } extern "C" { pub fn dysize (__year : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn nanosleep (__requested_time : * const timespec , __remaining : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_getres (__clock_id : clockid_t , __res : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_gettime (__clock_id : clockid_t , __tp : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_settime (__clock_id : clockid_t , __tp : * const timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_nanosleep (__clock_id : clockid_t , __flags : :: core :: ffi :: c_int , __req : * const timespec , __rem : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_getcpuclockid (__pid : pid_t , __clock_id : * mut clockid_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_create (__clock_id : clockid_t , __evp : * mut sigevent , __timerid : * mut timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_delete (__timerid : timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_settime (__timerid : timer_t , __flags : :: core :: ffi :: c_int , __value : * const itimerspec , __ovalue : * mut itimerspec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_gettime (__timerid : timer_t , __value : * mut itimerspec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_getoverrun (__timerid : timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timespec_get (__ts : * mut timespec , __base : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } # [doc = " API parameters for a login request.\n If both password and api_token are provided, api_token will be ignored."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_login_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub password : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_login_request_t"] [:: core :: mem :: size_of :: < rc_api_login_request_t > () - 24usize] ; ["Alignment of rc_api_login_request_t"] [:: core :: mem :: align_of :: < rc_api_login_request_t > () - 8usize] ; ["Offset of field: rc_api_login_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , username) - 0usize] ; ["Offset of field: rc_api_login_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_login_request_t::password"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , password) - 16usize] ; } ; # [doc = " Response data for a login request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_login_response_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub score : u32 , pub score_softcore : u32 , pub num_unread_messages : u32 , pub display_name : * const :: core :: ffi :: c_char , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_login_response_t"] [:: core :: mem :: size_of :: < rc_api_login_response_t > () - 352usize] ; ["Alignment of rc_api_login_response_t"] [:: core :: mem :: align_of :: < rc_api_login_response_t > () - 8usize] ; ["Offset of field: rc_api_login_response_t::username"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , username) - 0usize] ; ["Offset of field: rc_api_login_response_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , api_token) - 8usize] ; ["Offset of field: rc_api_login_response_t::score"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , score) - 16usize] ; ["Offset of field: rc_api_login_response_t::score_softcore"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , score_softcore) - 20usize] ; ["Offset of field: rc_api_login_response_t::num_unread_messages"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , num_unread_messages) - 24usize] ; ["Offset of field: rc_api_login_response_t::display_name"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , display_name) - 32usize] ; ["Offset of field: rc_api_login_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , response) - 40usize] ; } ; extern "C" { pub fn rc_api_init_login_request (request : * mut rc_api_request_t , api_params : * const rc_api_login_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_login_response (response : * mut rc_api_login_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_login_server_response (response : * mut rc_api_login_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_login_response (response : * mut rc_api_login_response_t) ; } # [doc = " API parameters for a start session request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_start_session_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub game_hash : * const :: core :: ffi :: c_char , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_start_session_request_t"] [:: core :: mem :: size_of :: < rc_api_start_session_request_t > () - 40usize] ; ["Alignment of rc_api_start_session_request_t"] [:: core :: mem :: align_of :: < rc_api_start_session_request_t > () - 8usize] ; ["Offset of field: rc_api_start_session_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , username) - 0usize] ; ["Offset of field: rc_api_start_session_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_start_session_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_start_session_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_start_session_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , hardcore) - 32usize] ; } ; # [doc = " Response data for an achievement unlock."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_unlock_entry_t { pub achievement_id : u32 , pub when : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_unlock_entry_t"] [:: core :: mem :: size_of :: < rc_api_unlock_entry_t > () - 16usize] ; ["Alignment of rc_api_unlock_entry_t"] [:: core :: mem :: align_of :: < rc_api_unlock_entry_t > () - 8usize] ; ["Offset of field: rc_api_unlock_entry_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_unlock_entry_t , achievement_id) - 0usize] ; ["Offset of field: rc_api_unlock_entry_t::when"] [:: core :: mem :: offset_of ! (rc_api_unlock_entry_t , when) - 8usize] ; } ; # [doc = " Response data for a start session request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_start_session_response_t { pub hardcore_unlocks : * mut rc_api_unlock_entry_t , pub unlocks : * mut rc_api_unlock_entry_t , pub num_hardcore_unlocks : u32 , pub num_unlocks : u32 , pub server_now : time_t , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_start_session_response_t"] [:: core :: mem :: size_of :: < rc_api_start_session_response_t > () - 344usize] ; ["Alignment of rc_api_start_session_response_t"] [:: core :: mem :: align_of :: < rc_api_start_session_response_t > () - 8usize] ; ["Offset of field: rc_api_start_session_response_t::hardcore_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , hardcore_unlocks) - 0usize] ; ["Offset of field: rc_api_start_session_response_t::unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , unlocks) - 8usize] ; ["Offset of field: rc_api_start_session_response_t::num_hardcore_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , num_hardcore_unlocks) - 16usize] ; ["Offset of field: rc_api_start_session_response_t::num_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , num_unlocks) - 20usize] ; ["Offset of field: rc_api_start_session_response_t::server_now"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , server_now) - 24usize] ; ["Offset of field: rc_api_start_session_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_start_session_request (request : * mut rc_api_request_t , api_params : * const rc_api_start_session_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_start_session_response (response : * mut rc_api_start_session_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_start_session_server_response (response : * mut rc_api_start_session_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_start_session_response (response : * mut rc_api_start_session_response_t) ; } # [doc = " API parameters for a fetch user unlocks request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_user_unlocks_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_user_unlocks_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_user_unlocks_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_user_unlocks_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_user_unlocks_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , hardcore) - 20usize] ; } ; # [doc = " Response data for a fetch user unlocks request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_user_unlocks_response_t { pub achievement_ids : * mut u32 , pub num_achievement_ids : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_user_unlocks_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_user_unlocks_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_user_unlocks_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_user_unlocks_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::achievement_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , achievement_ids) - 0usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::num_achievement_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , num_achievement_ids) - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_user_unlocks_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_user_unlocks_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_user_unlocks_response (response : * mut rc_api_fetch_user_unlocks_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_user_unlocks_server_response (response : * mut rc_api_fetch_user_unlocks_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_user_unlocks_response (response : * mut rc_api_fetch_user_unlocks_response_t) ; } # [doc = " API parameters for a fetch code notes request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_code_notes_request_t { pub game_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_code_notes_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_code_notes_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_code_notes_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_code_notes_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_code_notes_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_request_t , game_id) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_code_note_t { pub address : u32 , pub author : * const :: core :: ffi :: c_char , pub note : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_code_note_t"] [:: core :: mem :: size_of :: < rc_api_code_note_t > () - 24usize] ; ["Alignment of rc_api_code_note_t"] [:: core :: mem :: align_of :: < rc_api_code_note_t > () - 8usize] ; ["Offset of field: rc_api_code_note_t::address"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , address) - 0usize] ; ["Offset of field: rc_api_code_note_t::author"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , author) - 8usize] ; ["Offset of field: rc_api_code_note_t::note"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , note) - 16usize] ; } ; # [doc = " Response data for a fetch code notes request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_code_notes_response_t { pub notes : * mut rc_api_code_note_t , pub num_notes : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_code_notes_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_code_notes_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_code_notes_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_code_notes_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::notes"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , notes) - 0usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::num_notes"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , num_notes) - 8usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_code_notes_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_code_notes_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_code_notes_response (response : * mut rc_api_fetch_code_notes_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_code_notes_server_response (response : * mut rc_api_fetch_code_notes_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_code_notes_response (response : * mut rc_api_fetch_code_notes_response_t) ; } # [doc = " API parameters for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_code_note_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub address : u32 , pub note : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_code_note_request_t"] [:: core :: mem :: size_of :: < rc_api_update_code_note_request_t > () - 32usize] ; ["Alignment of rc_api_update_code_note_request_t"] [:: core :: mem :: align_of :: < rc_api_update_code_note_request_t > () - 8usize] ; ["Offset of field: rc_api_update_code_note_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_code_note_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_code_note_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_update_code_note_request_t::address"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , address) - 20usize] ; ["Offset of field: rc_api_update_code_note_request_t::note"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , note) - 24usize] ; } ; # [doc = " Response data for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_code_note_response_t { pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_code_note_response_t"] [:: core :: mem :: size_of :: < rc_api_update_code_note_response_t > () - 312usize] ; ["Alignment of rc_api_update_code_note_response_t"] [:: core :: mem :: align_of :: < rc_api_update_code_note_response_t > () - 8usize] ; ["Offset of field: rc_api_update_code_note_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_response_t , response) - 0usize] ; } ; extern "C" { pub fn rc_api_init_update_code_note_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_code_note_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_code_note_response (response : * mut rc_api_update_code_note_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_code_note_server_response (response : * mut rc_api_update_code_note_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_code_note_response (response : * mut rc_api_update_code_note_response_t) ; } # [doc = " API parameters for an update achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_achievement_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub game_id : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub badge : * const :: core :: ffi :: c_char , pub trigger : * const :: core :: ffi :: c_char , pub points : u32 , pub category : u32 , pub type_ : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_achievement_request_t"] [:: core :: mem :: size_of :: < rc_api_update_achievement_request_t > () - 72usize] ; ["Alignment of rc_api_update_achievement_request_t"] [:: core :: mem :: align_of :: < rc_api_update_achievement_request_t > () - 8usize] ; ["Offset of field: rc_api_update_achievement_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_achievement_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_achievement_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_update_achievement_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , game_id) - 20usize] ; ["Offset of field: rc_api_update_achievement_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , title) - 24usize] ; ["Offset of field: rc_api_update_achievement_request_t::description"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , description) - 32usize] ; ["Offset of field: rc_api_update_achievement_request_t::badge"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , badge) - 40usize] ; ["Offset of field: rc_api_update_achievement_request_t::trigger"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , trigger) - 48usize] ; ["Offset of field: rc_api_update_achievement_request_t::points"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , points) - 56usize] ; ["Offset of field: rc_api_update_achievement_request_t::category"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , category) - 60usize] ; ["Offset of field: rc_api_update_achievement_request_t::type_"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , type_) - 64usize] ; } ; # [doc = " Response data for an update achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_achievement_response_t { pub achievement_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_achievement_response_t"] [:: core :: mem :: size_of :: < rc_api_update_achievement_response_t > () - 320usize] ; ["Alignment of rc_api_update_achievement_response_t"] [:: core :: mem :: align_of :: < rc_api_update_achievement_response_t > () - 8usize] ; ["Offset of field: rc_api_update_achievement_response_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_response_t , achievement_id) - 0usize] ; ["Offset of field: rc_api_update_achievement_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_update_achievement_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_achievement_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_achievement_response (response : * mut rc_api_update_achievement_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_achievement_server_response (response : * mut rc_api_update_achievement_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_achievement_response (response : * mut rc_api_update_achievement_response_t) ; } # [doc = " API parameters for an update leaderboard request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_leaderboard_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub leaderboard_id : u32 , pub game_id : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub start_trigger : * const :: core :: ffi :: c_char , pub submit_trigger : * const :: core :: ffi :: c_char , pub cancel_trigger : * const :: core :: ffi :: c_char , pub value_definition : * const :: core :: ffi :: c_char , pub format : * const :: core :: ffi :: c_char , pub lower_is_better : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_leaderboard_request_t"] [:: core :: mem :: size_of :: < rc_api_update_leaderboard_request_t > () - 88usize] ; ["Alignment of rc_api_update_leaderboard_request_t"] [:: core :: mem :: align_of :: < rc_api_update_leaderboard_request_t > () - 8usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , leaderboard_id) - 16usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , game_id) - 20usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , title) - 24usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::description"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , description) - 32usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::start_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , start_trigger) - 40usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::submit_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , submit_trigger) - 48usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::cancel_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , cancel_trigger) - 56usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::value_definition"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , value_definition) - 64usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::format"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , format) - 72usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , lower_is_better) - 80usize] ; } ; # [doc = " Response data for an update leaderboard request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_leaderboard_response_t { pub leaderboard_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_leaderboard_response_t"] [:: core :: mem :: size_of :: < rc_api_update_leaderboard_response_t > () - 320usize] ; ["Alignment of rc_api_update_leaderboard_response_t"] [:: core :: mem :: align_of :: < rc_api_update_leaderboard_response_t > () - 8usize] ; ["Offset of field: rc_api_update_leaderboard_response_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_response_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_api_update_leaderboard_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_update_leaderboard_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_leaderboard_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_leaderboard_response (response : * mut rc_api_update_leaderboard_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_leaderboard_server_response (response : * mut rc_api_update_leaderboard_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_leaderboard_response (response : * mut rc_api_update_leaderboard_response_t) ; } # [doc = " API parameters for a fetch badge range request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_badge_range_request_t { pub unused : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_badge_range_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_badge_range_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_badge_range_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_badge_range_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_badge_range_request_t::unused"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_request_t , unused) - 0usize] ; } ; # [doc = " Response data for a fetch badge range request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_badge_range_response_t { pub first_badge_id : u32 , pub next_badge_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_badge_range_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_badge_range_response_t > () - 320usize] ; ["Alignment of rc_api_fetch_badge_range_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_badge_range_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::first_badge_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , first_badge_id) - 0usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::next_badge_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , next_badge_id) - 4usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_fetch_badge_range_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_badge_range_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_badge_range_response (response : * mut rc_api_fetch_badge_range_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_badge_range_server_response (response : * mut rc_api_fetch_badge_range_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_badge_range_response (response : * mut rc_api_fetch_badge_range_response_t) ; } # [doc = " API parameters for an add game hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_add_game_hash_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub hash : * const :: core :: ffi :: c_char , pub hash_description : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_add_game_hash_request_t"] [:: core :: mem :: size_of :: < rc_api_add_game_hash_request_t > () - 48usize] ; ["Alignment of rc_api_add_game_hash_request_t"] [:: core :: mem :: align_of :: < rc_api_add_game_hash_request_t > () - 8usize] ; ["Offset of field: rc_api_add_game_hash_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , username) - 0usize] ; ["Offset of field: rc_api_add_game_hash_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_add_game_hash_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_add_game_hash_request_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , console_id) - 20usize] ; ["Offset of field: rc_api_add_game_hash_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , title) - 24usize] ; ["Offset of field: rc_api_add_game_hash_request_t::hash"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , hash) - 32usize] ; ["Offset of field: rc_api_add_game_hash_request_t::hash_description"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , hash_description) - 40usize] ; } ; # [doc = " Response data for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_add_game_hash_response_t { pub game_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_add_game_hash_response_t"] [:: core :: mem :: size_of :: < rc_api_add_game_hash_response_t > () - 320usize] ; ["Alignment of rc_api_add_game_hash_response_t"] [:: core :: mem :: align_of :: < rc_api_add_game_hash_response_t > () - 8usize] ; ["Offset of field: rc_api_add_game_hash_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_response_t , game_id) - 0usize] ; ["Offset of field: rc_api_add_game_hash_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_add_game_hash_request (request : * mut rc_api_request_t , api_params : * const rc_api_add_game_hash_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_add_game_hash_response (response : * mut rc_api_add_game_hash_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_add_game_hash_server_response (response : * mut rc_api_add_game_hash_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_add_game_hash_response (response : * mut rc_api_add_game_hash_response_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_t { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_menu_item_t { pub label : * const :: core :: ffi :: c_char , pub id : u32 , pub checked : u8 , pub enabled : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_menu_item_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_menu_item_t > () - 16usize] ; ["Alignment of rc_client_raintegration_menu_item_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_menu_item_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::label"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , label) - 0usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::id"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , id) - 8usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::checked"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , checked) - 12usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::enabled"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , enabled) - 13usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_menu_t { pub items : * mut rc_client_raintegration_menu_item_t , pub num_items : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_menu_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_menu_t > () - 16usize] ; ["Alignment of rc_client_raintegration_menu_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_menu_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_menu_t::items"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_t , items) - 0usize] ; ["Offset of field: rc_client_raintegration_menu_t::num_items"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_t , num_items) - 8usize] ; } ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_NONE : _bindgen_ty_10 = 0 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_PUBLISHED : _bindgen_ty_10 = 1 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_LOCAL : _bindgen_ty_10 = 2 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_MODIFIED : _bindgen_ty_10 = 3 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_INSECURE : _bindgen_ty_10 = 4 ; pub type _bindgen_ty_10 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_RAINTEGRATION_EVENT_TYPE_NONE : _bindgen_ty_11 = 0 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_MENUITEM_CHECKED_CHANGED : _bindgen_ty_11 = 1 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_HARDCORE_CHANGED : _bindgen_ty_11 = 2 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_PAUSE : _bindgen_ty_11 = 3 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_MENU_CHANGED : _bindgen_ty_11 = 4 ; pub type _bindgen_ty_11 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_event_t { pub type_ : u32 , pub menu_item : * const rc_client_raintegration_menu_item_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_event_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_event_t > () - 16usize] ; ["Alignment of rc_client_raintegration_event_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_event_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_event_t::type_"] [:: core :: mem :: offset_of ! (rc_client_raintegration_event_t , type_) - 0usize] ; ["Offset of field: rc_client_raintegration_event_t::menu_item"] [:: core :: mem :: offset_of ! (rc_client_raintegration_event_t , menu_item) - 8usize] ; } ; pub type rc_client_raintegration_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (event : * const rc_client_raintegration_event_t , client : * mut rc_client_t) > ; pub type rc_client_raintegration_write_memory_func_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , buffer : * mut u8 , num_bytes : u32 , client : * mut rc_client_t) > ; pub type rc_client_raintegration_get_game_name_func_t = :: core :: option :: Option < unsafe extern "C" fn (buffer : * mut :: core :: ffi :: c_char , buffer_size : u32 , client : * mut rc_client_t) > ; # [doc = " API parameters for a fetch achievement info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_achievement_info_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub first_entry : u32 , pub count : u32 , pub friends_only : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_achievement_info_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_achievement_info_request_t > () - 32usize] ; ["Alignment of rc_api_fetch_achievement_info_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_achievement_info_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::first_entry"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , first_entry) - 20usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::count"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , count) - 24usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::friends_only"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , friends_only) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_achievement_awarded_entry_t { pub username : * const :: core :: ffi :: c_char , pub awarded : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_achievement_awarded_entry_t"] [:: core :: mem :: size_of :: < rc_api_achievement_awarded_entry_t > () - 16usize] ; ["Alignment of rc_api_achievement_awarded_entry_t"] [:: core :: mem :: align_of :: < rc_api_achievement_awarded_entry_t > () - 8usize] ; ["Offset of field: rc_api_achievement_awarded_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_achievement_awarded_entry_t , username) - 0usize] ; ["Offset of field: rc_api_achievement_awarded_entry_t::awarded"] [:: core :: mem :: offset_of ! (rc_api_achievement_awarded_entry_t , awarded) - 8usize] ; } ; # [doc = " Response data for a fetch achievement info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_achievement_info_response_t { pub id : u32 , pub game_id : u32 , pub num_awarded : u32 , pub num_players : u32 , pub recently_awarded : * mut rc_api_achievement_awarded_entry_t , pub num_recently_awarded : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_achievement_info_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_achievement_info_response_t > () - 344usize] ; ["Alignment of rc_api_fetch_achievement_info_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_achievement_info_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , game_id) - 4usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_awarded) - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_players"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_players) - 12usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::recently_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , recently_awarded) - 16usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_recently_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_recently_awarded) - 24usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_fetch_achievement_info_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_achievement_info_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_achievement_info_response (response : * mut rc_api_fetch_achievement_info_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_achievement_info_server_response (response : * mut rc_api_fetch_achievement_info_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_achievement_info_response (response : * mut rc_api_fetch_achievement_info_response_t) ; } # [doc = " API parameters for a fetch leaderboard info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_leaderboard_info_request_t { pub leaderboard_id : u32 , pub count : u32 , pub first_entry : u32 , pub username : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_leaderboard_info_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_leaderboard_info_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_leaderboard_info_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_leaderboard_info_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::count"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , count) - 4usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::first_entry"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , first_entry) - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , username) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_lboard_info_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub index : u32 , pub score : i32 , pub submitted : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_lboard_info_entry_t"] [:: core :: mem :: size_of :: < rc_api_lboard_info_entry_t > () - 32usize] ; ["Alignment of rc_api_lboard_info_entry_t"] [:: core :: mem :: align_of :: < rc_api_lboard_info_entry_t > () - 8usize] ; ["Offset of field: rc_api_lboard_info_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , username) - 0usize] ; ["Offset of field: rc_api_lboard_info_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , rank) - 8usize] ; ["Offset of field: rc_api_lboard_info_entry_t::index"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , index) - 12usize] ; ["Offset of field: rc_api_lboard_info_entry_t::score"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , score) - 16usize] ; ["Offset of field: rc_api_lboard_info_entry_t::submitted"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , submitted) - 24usize] ; } ; # [doc = " Response data for a fetch leaderboard info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_leaderboard_info_response_t { pub id : u32 , pub format : :: core :: ffi :: c_int , pub lower_is_better : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub game_id : u32 , pub author : * const :: core :: ffi :: c_char , pub created : time_t , pub updated : time_t , pub entries : * mut rc_api_lboard_info_entry_t , pub num_entries : u32 , pub total_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_leaderboard_info_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_leaderboard_info_response_t > () - 400usize] ; ["Alignment of rc_api_fetch_leaderboard_info_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_leaderboard_info_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::format"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , format) - 4usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , lower_is_better) - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::title"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , title) - 16usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::description"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , description) - 24usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::definition"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , definition) - 32usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , game_id) - 40usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::author"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , author) - 48usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::created"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , created) - 56usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::updated"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , updated) - 64usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , entries) - 72usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , num_entries) - 80usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::total_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , total_entries) - 84usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , response) - 88usize] ; } ; extern "C" { pub fn rc_api_init_fetch_leaderboard_info_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_leaderboard_info_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_leaderboard_info_response (response : * mut rc_api_fetch_leaderboard_info_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_leaderboard_info_server_response (response : * mut rc_api_fetch_leaderboard_info_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_leaderboard_info_response (response : * mut rc_api_fetch_leaderboard_info_response_t) ; } # [doc = " API parameters for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_games_list_request_t { pub console_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_games_list_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_games_list_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_games_list_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_games_list_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_games_list_request_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_request_t , console_id) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_game_list_entry_t { pub id : u32 , pub name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_game_list_entry_t"] [:: core :: mem :: size_of :: < rc_api_game_list_entry_t > () - 16usize] ; ["Alignment of rc_api_game_list_entry_t"] [:: core :: mem :: align_of :: < rc_api_game_list_entry_t > () - 8usize] ; ["Offset of field: rc_api_game_list_entry_t::id"] [:: core :: mem :: offset_of ! (rc_api_game_list_entry_t , id) - 0usize] ; ["Offset of field: rc_api_game_list_entry_t::name"] [:: core :: mem :: offset_of ! (rc_api_game_list_entry_t , name) - 8usize] ; } ; # [doc = " Response data for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_games_list_response_t { pub entries : * mut rc_api_game_list_entry_t , pub num_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_games_list_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_games_list_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_games_list_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_games_list_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , entries) - 0usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , num_entries) - 8usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_games_list_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_games_list_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_games_list_response (response : * mut rc_api_fetch_games_list_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_games_list_server_response (response : * mut rc_api_fetch_games_list_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_games_list_response (response : * mut rc_api_fetch_games_list_response_t) ; } # [doc = " API parameters for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_titles_request_t { pub game_ids : * const u32 , pub num_game_ids : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_titles_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_titles_request_t > () - 16usize] ; ["Alignment of rc_api_fetch_game_titles_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_titles_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_request_t::game_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_request_t , game_ids) - 0usize] ; ["Offset of field: rc_api_fetch_game_titles_request_t::num_game_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_request_t , num_game_ids) - 8usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_game_title_entry_t { pub id : u32 , pub title : * const :: core :: ffi :: c_char , pub image_name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_game_title_entry_t"] [:: core :: mem :: size_of :: < rc_api_game_title_entry_t > () - 24usize] ; ["Alignment of rc_api_game_title_entry_t"] [:: core :: mem :: align_of :: < rc_api_game_title_entry_t > () - 8usize] ; ["Offset of field: rc_api_game_title_entry_t::id"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , id) - 0usize] ; ["Offset of field: rc_api_game_title_entry_t::title"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , title) - 8usize] ; ["Offset of field: rc_api_game_title_entry_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , image_name) - 16usize] ; } ; # [doc = " Response data for a fetch games title request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_titles_response_t { pub entries : * mut rc_api_game_title_entry_t , pub num_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_titles_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_titles_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_game_titles_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_titles_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , entries) - 0usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , num_entries) - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_game_titles_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_game_titles_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_titles_server_response (response : * mut rc_api_fetch_game_titles_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_game_titles_response (response : * mut rc_api_fetch_game_titles_response_t) ; } pub type __gnuc_va_list = __builtin_va_list ; # [repr (C)] # [derive (Copy , Clone)] pub struct __mbstate_t { pub __count : :: core :: ffi :: c_int , pub __value : __mbstate_t__bindgen_ty_1 , } # [repr (C)] # [derive (Copy , Clone)] pub union __mbstate_t__bindgen_ty_1 { pub __wch : :: core :: ffi :: c_uint , pub __wchb : [:: core :: ffi :: c_char ; 4usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __mbstate_t__bindgen_ty_1"] [:: core :: mem :: size_of :: < __mbstate_t__bindgen_ty_1 > () - 4usize] ; ["Alignment of __mbstate_t__bindgen_ty_1"] [:: core :: mem :: align_of :: < __mbstate_t__bindgen_ty_1 > () - 4usize] ; ["Offset of field: __mbstate_t__bindgen_ty_1::__wch"] [:: core :: mem :: offset_of ! (__mbstate_t__bindgen_ty_1 , __wch) - 0usize] ; ["Offset of field: __mbstate_t__bindgen_ty_1::__wchb"] [:: core :: mem :: offset_of ! (__mbstate_t__bindgen_ty_1 , __wchb) - 0usize] ; } ; impl :: core :: fmt :: Debug for __mbstate_t__bindgen_ty_1 { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "__mbstate_t__bindgen_ty_1 {{ union }}") } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __mbstate_t"] [:: core :: mem :: size_of :: < __mbstate_t > () - 8usize] ; ["Alignment of __mbstate_t"] [:: core :: mem :: align_of :: < __mbstate_t > () - 4usize] ; ["Offset of field: __mbstate_t::__count"] [:: core :: mem :: offset_of ! (__mbstate_t , __count) - 0usize] ; ["Offset of field: __mbstate_t::__value"] [:: core :: mem :: offset_of ! (__mbstate_t , __value) - 4usize] ; } ; impl :: core :: fmt :: Debug for __mbstate_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "__mbstate_t {{ __count: {:?}, __value: {:?} }}" , self . __count , self . __value) } } # [repr (C)] # [derive (Copy , Clone)] pub struct _G_fpos_t { pub __pos : __off_t , pub __state : __mbstate_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _G_fpos_t"] [:: core :: mem :: size_of :: < _G_fpos_t > () - 16usize] ; ["Alignment of _G_fpos_t"] [:: core :: mem :: align_of :: < _G_fpos_t > () - 8usize] ; ["Offset of field: _G_fpos_t::__pos"] [:: core :: mem :: offset_of ! (_G_fpos_t , __pos) - 0usize] ; ["Offset of field: _G_fpos_t::__state"] [:: core :: mem :: offset_of ! (_G_fpos_t , __state) - 8usize] ; } ; impl :: core :: fmt :: Debug for _G_fpos_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "_G_fpos_t {{ __pos: {:?}, __state: {:?} }}" , self . __pos , self . __state) } } pub type __fpos_t = _G_fpos_t ; # [repr (C)] # [derive (Copy , Clone)] pub struct _G_fpos64_t { pub __pos : __off64_t , pub __state : __mbstate_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _G_fpos64_t"] [:: core :: mem :: size_of :: < _G_fpos64_t > () - 16usize] ; ["Alignment of _G_fpos64_t"] [:: core :: mem :: align_of :: < _G_fpos64_t > () - 8usize] ; ["Offset of field: _G_fpos64_t::__pos"] [:: core :: mem :: offset_of ! (_G_fpos64_t , __pos) - 0usize] ; ["Offset of field: _G_fpos64_t::__state"] [:: core :: mem :: offset_of ! (_G_fpos64_t , __state) - 8usize] ; } ; impl :: core :: fmt :: Debug for _G_fpos64_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "_G_fpos64_t {{ __pos: {:?}, __state: {:?} }}" , self . __pos , self . __state) } } pub type __fpos64_t = _G_fpos64_t ; pub type __FILE = _IO_FILE ; pub type FILE = _IO_FILE ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_marker { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_codecvt { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_wide_data { _unused : [u8 ; 0] , } pub type _IO_lock_t = :: core :: ffi :: c_void ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_FILE { pub _flags : :: core :: ffi :: c_int , pub _IO_read_ptr : * mut :: core :: ffi :: c_char , pub _IO_read_end : * mut :: core :: ffi :: c_char , pub _IO_read_base : * mut :: core :: ffi :: c_char , pub _IO_write_base : * mut :: core :: ffi :: c_char , pub _IO_write_ptr : * mut :: core :: ffi :: c_char , pub _IO_write_end : * mut :: core :: ffi :: c_char , pub _IO_buf_base : * mut :: core :: ffi :: c_char , pub _IO_buf_end : * mut :: core :: ffi :: c_char , pub _IO_save_base : * mut :: core :: ffi :: c_char , pub _IO_backup_base : * mut :: core :: ffi :: c_char , pub _IO_save_end : * mut :: core :: ffi :: c_char , pub _markers : * mut _IO_marker , pub _chain : * mut _IO_FILE , pub _fileno : :: core :: ffi :: c_int , pub _bitfield_align_1 : [u32 ; 0] , pub _bitfield_1 : __BindgenBitfieldUnit < [u8 ; 3usize] > , pub _short_backupbuf : [:: core :: ffi :: c_char ; 1usize] , pub _old_offset : __off_t , pub _cur_column : :: core :: ffi :: c_ushort , pub _vtable_offset : :: core :: ffi :: c_schar , pub _shortbuf : [:: core :: ffi :: c_char ; 1usize] , pub _lock : * mut _IO_lock_t , pub _offset : __off64_t , pub _codecvt : * mut _IO_codecvt , pub _wide_data : * mut _IO_wide_data , pub _freeres_list : * mut _IO_FILE , pub _freeres_buf : * mut :: core :: ffi :: c_void , pub _prevchain : * mut * mut _IO_FILE , pub _mode : :: core :: ffi :: c_int , pub _unused3 : :: core :: ffi :: c_int , pub _total_written : __uint64_t , pub _unused2 : [:: core :: ffi :: c_char ; 8usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _IO_FILE"] [:: core :: mem :: size_of :: < _IO_FILE > () - 216usize] ; ["Alignment of _IO_FILE"] [:: core :: mem :: align_of :: < _IO_FILE > () - 8usize] ; ["Offset of field: _IO_FILE::_flags"] [:: core :: mem :: offset_of ! (_IO_FILE , _flags) - 0usize] ; ["Offset of field: _IO_FILE::_IO_read_ptr"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_ptr) - 8usize] ; ["Offset of field: _IO_FILE::_IO_read_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_end) - 16usize] ; ["Offset of field: _IO_FILE::_IO_read_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_base) - 24usize] ; ["Offset of field: _IO_FILE::_IO_write_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_base) - 32usize] ; ["Offset of field: _IO_FILE::_IO_write_ptr"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_ptr) - 40usize] ; ["Offset of field: _IO_FILE::_IO_write_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_end) - 48usize] ; ["Offset of field: _IO_FILE::_IO_buf_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_buf_base) - 56usize] ; ["Offset of field: _IO_FILE::_IO_buf_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_buf_end) - 64usize] ; ["Offset of field: _IO_FILE::_IO_save_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_save_base) - 72usize] ; ["Offset of field: _IO_FILE::_IO_backup_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_backup_base) - 80usize] ; ["Offset of field: _IO_FILE::_IO_save_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_save_end) - 88usize] ; ["Offset of field: _IO_FILE::_markers"] [:: core :: mem :: offset_of ! (_IO_FILE , _markers) - 96usize] ; ["Offset of field: _IO_FILE::_chain"] [:: core :: mem :: offset_of ! (_IO_FILE , _chain) - 104usize] ; ["Offset of field: _IO_FILE::_fileno"] [:: core :: mem :: offset_of ! (_IO_FILE , _fileno) - 112usize] ; ["Offset of field: _IO_FILE::_short_backupbuf"] [:: core :: mem :: offset_of ! (_IO_FILE , _short_backupbuf) - 119usize] ; ["Offset of field: _IO_FILE::_old_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _old_offset) - 120usize] ; ["Offset of field: _IO_FILE::_cur_column"] [:: core :: mem :: offset_of ! (_IO_FILE , _cur_column) - 128usize] ; ["Offset of field: _IO_FILE::_vtable_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _vtable_offset) - 130usize] ; ["Offset of field: _IO_FILE::_shortbuf"] [:: core :: mem :: offset_of ! (_IO_FILE , _shortbuf) - 131usize] ; ["Offset of field: _IO_FILE::_lock"] [:: core :: mem :: offset_of ! (_IO_FILE , _lock) - 136usize] ; ["Offset of field: _IO_FILE::_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _offset) - 144usize] ; ["Offset of field: _IO_FILE::_codecvt"] [:: core :: mem :: offset_of ! (_IO_FILE , _codecvt) - 152usize] ; ["Offset of field: _IO_FILE::_wide_data"] [:: core :: mem :: offset_of ! (_IO_FILE , _wide_data) - 160usize] ; ["Offset of field: _IO_FILE::_freeres_list"] [:: core :: mem :: offset_of ! (_IO_FILE , _freeres_list) - 168usize] ; ["Offset of field: _IO_FILE::_freeres_buf"] [:: core :: mem :: offset_of ! (_IO_FILE , _freeres_buf) - 176usize] ; ["Offset of field: _IO_FILE::_prevchain"] [:: core :: mem :: offset_of ! (_IO_FILE , _prevchain) - 184usize] ; ["Offset of field: _IO_FILE::_mode"] [:: core :: mem :: offset_of ! (_IO_FILE , _mode) - 192usize] ; ["Offset of field: _IO_FILE::_unused3"] [:: core :: mem :: offset_of ! (_IO_FILE , _unused3) - 196usize] ; ["Offset of field: _IO_FILE::_total_written"] [:: core :: mem :: offset_of ! (_IO_FILE , _total_written) - 200usize] ; ["Offset of field: _IO_FILE::_unused2"] [:: core :: mem :: offset_of ! (_IO_FILE , _unused2) - 208usize] ; } ; impl _IO_FILE { # [inline] pub fn _flags2 (& self) -> :: core :: ffi :: c_int { unsafe { :: core :: mem :: transmute (self . _bitfield_1 . get (0usize , 24u8) as u32) } } # [inline] pub fn set__flags2 (& mut self , val : :: core :: ffi :: c_int) { unsafe { let val : u32 = :: core :: mem :: transmute (val) ; self . _bitfield_1 . set (0usize , 24u8 , val as u64) } } # [inline] pub fn new_bitfield_1 (_flags2 : :: core :: ffi :: c_int) -> __BindgenBitfieldUnit < [u8 ; 3usize] > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [u8 ; 3usize] > = Default :: default () ; __bindgen_bitfield_unit . set (0usize , 24u8 , { let _flags2 : u32 = unsafe { i32::cast_unsigned (_flags2) } ; _flags2 as u64 }) ; __bindgen_bitfield_unit } } pub type cookie_read_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __buf : * mut :: core :: ffi :: c_char , __nbytes : usize) -> __ssize_t > ; pub type cookie_write_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __buf : * const :: core :: ffi :: c_char , __nbytes : usize) -> __ssize_t > ; pub type cookie_seek_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __pos : * mut __off64_t , __w : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int > ; pub type cookie_close_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void) -> :: core :: ffi :: 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 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _IO_cookie_io_functions_t"] [:: core :: mem :: size_of :: < _IO_cookie_io_functions_t > () - 32usize] ; ["Alignment of _IO_cookie_io_functions_t"] [:: core :: mem :: align_of :: < _IO_cookie_io_functions_t > () - 8usize] ; ["Offset of field: _IO_cookie_io_functions_t::read"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , read) - 0usize] ; ["Offset of field: _IO_cookie_io_functions_t::write"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , write) - 8usize] ; ["Offset of field: _IO_cookie_io_functions_t::seek"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , seek) - 16usize] ; ["Offset of field: _IO_cookie_io_functions_t::close"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , close) - 24usize] ; } ; 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" { pub static mut stdin : * mut FILE ; } extern "C" { pub static mut stdout : * mut FILE ; } extern "C" { pub static mut stderr : * mut FILE ; } extern "C" { pub fn remove (__filename : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rename (__old : * const :: core :: ffi :: c_char , __new : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn renameat (__oldfd : :: core :: ffi :: c_int , __old : * const :: core :: ffi :: c_char , __newfd : :: core :: ffi :: c_int , __new : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fclose (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn tmpfile () -> * mut FILE ; } extern "C" { pub fn tmpnam (arg1 : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn tmpnam_r (__s : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn tempnam (__dir : * const :: core :: ffi :: c_char , __pfx : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn fflush (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fflush_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fopen (__filename : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn freopen (__filename : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char , __stream : * mut FILE) -> * mut FILE ; } extern "C" { pub fn fdopen (__fd : :: core :: ffi :: c_int , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn fopencookie (__magic_cookie : * mut :: core :: ffi :: c_void , __modes : * const :: core :: ffi :: c_char , __io_funcs : cookie_io_functions_t) -> * mut FILE ; } extern "C" { pub fn fmemopen (__s : * mut :: core :: ffi :: c_void , __len : usize , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn open_memstream (__bufloc : * mut * mut :: core :: ffi :: c_char , __sizeloc : * mut usize) -> * mut FILE ; } extern "C" { pub fn setbuf (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char) ; } extern "C" { pub fn setvbuf (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char , __modes : :: core :: ffi :: c_int , __n : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn setbuffer (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char , __size : usize) ; } extern "C" { pub fn setlinebuf (__stream : * mut FILE) ; } extern "C" { pub fn fprintf (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn printf (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn sprintf (__s : * mut :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vfprintf (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vprintf (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsprintf (__s : * mut :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn snprintf (__s : * mut :: core :: ffi :: c_char , __maxlen : :: core :: ffi :: c_ulong , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsnprintf (__s : * mut :: core :: ffi :: c_char , __maxlen : :: core :: ffi :: c_ulong , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vasprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __f : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn __asprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn asprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vdprintf (__fd : :: core :: ffi :: c_int , __fmt : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn dprintf (__fd : :: core :: ffi :: c_int , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fscanf (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn scanf (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn sscanf (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } pub type __cfloat128 = __BindgenComplex < u128 > ; pub type _Float128 = u128 ; pub type _Float32 = f32 ; pub type _Float64 = f64 ; pub type _Float32x = f64 ; pub type _Float64x = u128 ; extern "C" { # [link_name = "\u{1}__isoc99_fscanf"] pub fn fscanf1 (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_scanf"] pub fn scanf1 (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_sscanf"] pub fn sscanf1 (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vfscanf (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vscanf (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsscanf (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vfscanf"] pub fn vfscanf1 (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vscanf"] pub fn vscanf1 (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vsscanf"] pub fn vsscanf1 (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgetc (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getc (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getchar () -> :: core :: ffi :: c_int ; } extern "C" { pub fn getc_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getchar_unlocked () -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgetc_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fputc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putchar (__c : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fputc_unlocked (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putc_unlocked (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putchar_unlocked (__c : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getw (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putw (__w : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgets (__s : * mut :: core :: ffi :: c_char , __n : :: core :: ffi :: c_int , __stream : * mut FILE) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn __getdelim (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __delimiter : :: core :: ffi :: c_int , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn getdelim (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __delimiter : :: core :: ffi :: c_int , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn getline (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn fputs (__s : * const :: core :: ffi :: c_char , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn puts (__s : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ungetc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fread (__ptr : * mut :: core :: ffi :: c_void , __size : :: core :: ffi :: c_ulong , __n : :: core :: ffi :: c_ulong , __stream : * mut FILE) -> :: core :: ffi :: c_ulong ; } extern "C" { pub fn fwrite (__ptr : * const :: core :: ffi :: c_void , __size : :: core :: ffi :: c_ulong , __n : :: core :: ffi :: c_ulong , __s : * mut FILE) -> :: core :: ffi :: c_ulong ; } extern "C" { pub fn fread_unlocked (__ptr : * mut :: core :: ffi :: c_void , __size : usize , __n : usize , __stream : * mut FILE) -> usize ; } extern "C" { pub fn fwrite_unlocked (__ptr : * const :: core :: ffi :: c_void , __size : usize , __n : usize , __stream : * mut FILE) -> usize ; } extern "C" { pub fn fseek (__stream : * mut FILE , __off : :: core :: ffi :: c_long , __whence : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ftell (__stream : * mut FILE) -> :: core :: ffi :: c_long ; } extern "C" { pub fn rewind (__stream : * mut FILE) ; } extern "C" { pub fn fseeko (__stream : * mut FILE , __off : __off_t , __whence : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ftello (__stream : * mut FILE) -> __off_t ; } extern "C" { pub fn fgetpos (__stream : * mut FILE , __pos : * mut fpos_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fsetpos (__stream : * mut FILE , __pos : * const fpos_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clearerr (__stream : * mut FILE) ; } extern "C" { pub fn feof (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ferror (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clearerr_unlocked (__stream : * mut FILE) ; } extern "C" { pub fn feof_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ferror_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn perror (__s : * const :: core :: ffi :: c_char) ; } extern "C" { pub fn fileno (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fileno_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn pclose (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn popen (__command : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn ctermid (__s : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn flockfile (__stream : * mut FILE) ; } extern "C" { pub fn ftrylockfile (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn funlockfile (__stream : * mut FILE) ; } extern "C" { pub fn __uflow (arg1 : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn __overflow (arg1 : * mut FILE , arg2 : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } pub const RC_CONSOLE_UNKNOWN : _bindgen_ty_12 = 0 ; pub const RC_CONSOLE_MEGA_DRIVE : _bindgen_ty_12 = 1 ; pub const RC_CONSOLE_NINTENDO_64 : _bindgen_ty_12 = 2 ; pub const RC_CONSOLE_SUPER_NINTENDO : _bindgen_ty_12 = 3 ; pub const RC_CONSOLE_GAMEBOY : _bindgen_ty_12 = 4 ; pub const RC_CONSOLE_GAMEBOY_ADVANCE : _bindgen_ty_12 = 5 ; pub const RC_CONSOLE_GAMEBOY_COLOR : _bindgen_ty_12 = 6 ; pub const RC_CONSOLE_NINTENDO : _bindgen_ty_12 = 7 ; pub const RC_CONSOLE_PC_ENGINE : _bindgen_ty_12 = 8 ; pub const RC_CONSOLE_SEGA_CD : _bindgen_ty_12 = 9 ; pub const RC_CONSOLE_SEGA_32X : _bindgen_ty_12 = 10 ; pub const RC_CONSOLE_MASTER_SYSTEM : _bindgen_ty_12 = 11 ; pub const RC_CONSOLE_PLAYSTATION : _bindgen_ty_12 = 12 ; pub const RC_CONSOLE_ATARI_LYNX : _bindgen_ty_12 = 13 ; pub const RC_CONSOLE_NEOGEO_POCKET : _bindgen_ty_12 = 14 ; pub const RC_CONSOLE_GAME_GEAR : _bindgen_ty_12 = 15 ; pub const RC_CONSOLE_GAMECUBE : _bindgen_ty_12 = 16 ; pub const RC_CONSOLE_ATARI_JAGUAR : _bindgen_ty_12 = 17 ; pub const RC_CONSOLE_NINTENDO_DS : _bindgen_ty_12 = 18 ; pub const RC_CONSOLE_WII : _bindgen_ty_12 = 19 ; pub const RC_CONSOLE_WII_U : _bindgen_ty_12 = 20 ; pub const RC_CONSOLE_PLAYSTATION_2 : _bindgen_ty_12 = 21 ; pub const RC_CONSOLE_XBOX : _bindgen_ty_12 = 22 ; pub const RC_CONSOLE_MAGNAVOX_ODYSSEY2 : _bindgen_ty_12 = 23 ; pub const RC_CONSOLE_POKEMON_MINI : _bindgen_ty_12 = 24 ; pub const RC_CONSOLE_ATARI_2600 : _bindgen_ty_12 = 25 ; pub const RC_CONSOLE_MS_DOS : _bindgen_ty_12 = 26 ; pub const RC_CONSOLE_ARCADE : _bindgen_ty_12 = 27 ; pub const RC_CONSOLE_VIRTUAL_BOY : _bindgen_ty_12 = 28 ; pub const RC_CONSOLE_MSX : _bindgen_ty_12 = 29 ; pub const RC_CONSOLE_COMMODORE_64 : _bindgen_ty_12 = 30 ; pub const RC_CONSOLE_ZX81 : _bindgen_ty_12 = 31 ; pub const RC_CONSOLE_ORIC : _bindgen_ty_12 = 32 ; pub const RC_CONSOLE_SG1000 : _bindgen_ty_12 = 33 ; pub const RC_CONSOLE_VIC20 : _bindgen_ty_12 = 34 ; pub const RC_CONSOLE_AMIGA : _bindgen_ty_12 = 35 ; pub const RC_CONSOLE_ATARI_ST : _bindgen_ty_12 = 36 ; pub const RC_CONSOLE_AMSTRAD_PC : _bindgen_ty_12 = 37 ; pub const RC_CONSOLE_APPLE_II : _bindgen_ty_12 = 38 ; pub const RC_CONSOLE_SATURN : _bindgen_ty_12 = 39 ; pub const RC_CONSOLE_DREAMCAST : _bindgen_ty_12 = 40 ; pub const RC_CONSOLE_PSP : _bindgen_ty_12 = 41 ; pub const RC_CONSOLE_CDI : _bindgen_ty_12 = 42 ; pub const RC_CONSOLE_3DO : _bindgen_ty_12 = 43 ; pub const RC_CONSOLE_COLECOVISION : _bindgen_ty_12 = 44 ; pub const RC_CONSOLE_INTELLIVISION : _bindgen_ty_12 = 45 ; pub const RC_CONSOLE_VECTREX : _bindgen_ty_12 = 46 ; pub const RC_CONSOLE_PC8800 : _bindgen_ty_12 = 47 ; pub const RC_CONSOLE_PC9800 : _bindgen_ty_12 = 48 ; pub const RC_CONSOLE_PCFX : _bindgen_ty_12 = 49 ; pub const RC_CONSOLE_ATARI_5200 : _bindgen_ty_12 = 50 ; pub const RC_CONSOLE_ATARI_7800 : _bindgen_ty_12 = 51 ; pub const RC_CONSOLE_X68K : _bindgen_ty_12 = 52 ; pub const RC_CONSOLE_WONDERSWAN : _bindgen_ty_12 = 53 ; pub const RC_CONSOLE_CASSETTEVISION : _bindgen_ty_12 = 54 ; pub const RC_CONSOLE_SUPER_CASSETTEVISION : _bindgen_ty_12 = 55 ; pub const RC_CONSOLE_NEO_GEO_CD : _bindgen_ty_12 = 56 ; pub const RC_CONSOLE_FAIRCHILD_CHANNEL_F : _bindgen_ty_12 = 57 ; pub const RC_CONSOLE_FM_TOWNS : _bindgen_ty_12 = 58 ; pub const RC_CONSOLE_ZX_SPECTRUM : _bindgen_ty_12 = 59 ; pub const RC_CONSOLE_GAME_AND_WATCH : _bindgen_ty_12 = 60 ; pub const RC_CONSOLE_NOKIA_NGAGE : _bindgen_ty_12 = 61 ; pub const RC_CONSOLE_NINTENDO_3DS : _bindgen_ty_12 = 62 ; pub const RC_CONSOLE_SUPERVISION : _bindgen_ty_12 = 63 ; pub const RC_CONSOLE_SHARPX1 : _bindgen_ty_12 = 64 ; pub const RC_CONSOLE_TIC80 : _bindgen_ty_12 = 65 ; pub const RC_CONSOLE_THOMSONTO8 : _bindgen_ty_12 = 66 ; pub const RC_CONSOLE_PC6000 : _bindgen_ty_12 = 67 ; pub const RC_CONSOLE_PICO : _bindgen_ty_12 = 68 ; pub const RC_CONSOLE_MEGADUCK : _bindgen_ty_12 = 69 ; pub const RC_CONSOLE_ZEEBO : _bindgen_ty_12 = 70 ; pub const RC_CONSOLE_ARDUBOY : _bindgen_ty_12 = 71 ; pub const RC_CONSOLE_WASM4 : _bindgen_ty_12 = 72 ; pub const RC_CONSOLE_ARCADIA_2001 : _bindgen_ty_12 = 73 ; pub const RC_CONSOLE_INTERTON_VC_4000 : _bindgen_ty_12 = 74 ; pub const RC_CONSOLE_ELEKTOR_TV_GAMES_COMPUTER : _bindgen_ty_12 = 75 ; pub const RC_CONSOLE_PC_ENGINE_CD : _bindgen_ty_12 = 76 ; pub const RC_CONSOLE_ATARI_JAGUAR_CD : _bindgen_ty_12 = 77 ; pub const RC_CONSOLE_NINTENDO_DSI : _bindgen_ty_12 = 78 ; pub const RC_CONSOLE_TI83 : _bindgen_ty_12 = 79 ; pub const RC_CONSOLE_UZEBOX : _bindgen_ty_12 = 80 ; pub const RC_CONSOLE_HUBS : _bindgen_ty_12 = 100 ; pub const RC_CONSOLE_EVENTS : _bindgen_ty_12 = 101 ; pub const RC_CONSOLE_STANDALONE : _bindgen_ty_12 = 102 ; # [doc = "\\\n| Console identifiers                                                         |\n\\"] pub type _bindgen_ty_12 = :: core :: ffi :: c_uint ; extern "C" { pub fn rc_console_name (console_id : u32) -> * const :: core :: ffi :: c_char ; } pub const RC_MEMORY_TYPE_SYSTEM_RAM : _bindgen_ty_13 = 0 ; pub const RC_MEMORY_TYPE_SAVE_RAM : _bindgen_ty_13 = 1 ; pub const RC_MEMORY_TYPE_VIDEO_RAM : _bindgen_ty_13 = 2 ; pub const RC_MEMORY_TYPE_READONLY : _bindgen_ty_13 = 3 ; pub const RC_MEMORY_TYPE_HARDWARE_CONTROLLER : _bindgen_ty_13 = 4 ; pub const RC_MEMORY_TYPE_VIRTUAL_RAM : _bindgen_ty_13 = 5 ; pub const RC_MEMORY_TYPE_UNUSED : _bindgen_ty_13 = 6 ; # [doc = "\\\n| Memory mapping                                                              |\n\\"] pub type _bindgen_ty_13 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memory_region_t { pub start_address : u32 , pub end_address : u32 , pub real_address : u32 , pub type_ : u8 , pub description : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memory_region_t"] [:: core :: mem :: size_of :: < rc_memory_region_t > () - 24usize] ; ["Alignment of rc_memory_region_t"] [:: core :: mem :: align_of :: < rc_memory_region_t > () - 8usize] ; ["Offset of field: rc_memory_region_t::start_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , start_address) - 0usize] ; ["Offset of field: rc_memory_region_t::end_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , end_address) - 4usize] ; ["Offset of field: rc_memory_region_t::real_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , real_address) - 8usize] ; ["Offset of field: rc_memory_region_t::type_"] [:: core :: mem :: offset_of ! (rc_memory_region_t , type_) - 12usize] ; ["Offset of field: rc_memory_region_t::description"] [:: core :: mem :: offset_of ! (rc_memory_region_t , description) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memory_regions_t { pub region : * const rc_memory_region_t , pub num_regions : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memory_regions_t"] [:: core :: mem :: size_of :: < rc_memory_regions_t > () - 16usize] ; ["Alignment of rc_memory_regions_t"] [:: core :: mem :: align_of :: < rc_memory_regions_t > () - 8usize] ; ["Offset of field: rc_memory_regions_t::region"] [:: core :: mem :: offset_of ! (rc_memory_regions_t , region) - 0usize] ; ["Offset of field: rc_memory_regions_t::num_regions"] [:: core :: mem :: offset_of ! (rc_memory_regions_t , num_regions) - 8usize] ; } ; extern "C" { pub fn rc_console_memory_regions (console_id : u32) -> * const rc_memory_regions_t ; } extern "C" { pub fn rc_hash_generate_from_buffer (hash : * mut :: core :: ffi :: c_char , console_id : u32 , buffer : * const u8 , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_hash_generate_from_file (hash : * mut :: core :: ffi :: c_char , console_id : u32 , path : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_iterator { pub buffer : * const u8 , pub buffer_size : usize , pub consoles : [u8 ; 12usize] , pub index : :: core :: ffi :: c_int , pub path : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_iterator"] [:: core :: mem :: size_of :: < rc_hash_iterator > () - 40usize] ; ["Alignment of rc_hash_iterator"] [:: core :: mem :: align_of :: < rc_hash_iterator > () - 8usize] ; ["Offset of field: rc_hash_iterator::buffer"] [:: core :: mem :: offset_of ! (rc_hash_iterator , buffer) - 0usize] ; ["Offset of field: rc_hash_iterator::buffer_size"] [:: core :: mem :: offset_of ! (rc_hash_iterator , buffer_size) - 8usize] ; ["Offset of field: rc_hash_iterator::consoles"] [:: core :: mem :: offset_of ! (rc_hash_iterator , consoles) - 16usize] ; ["Offset of field: rc_hash_iterator::index"] [:: core :: mem :: offset_of ! (rc_hash_iterator , index) - 28usize] ; ["Offset of field: rc_hash_iterator::path"] [:: core :: mem :: offset_of ! (rc_hash_iterator , path) - 32usize] ; } ; pub type rc_hash_iterator_t = rc_hash_iterator ; extern "C" { pub fn rc_hash_initialize_iterator (iterator : * mut rc_hash_iterator , path : * const :: core :: ffi :: c_char , buffer : * const u8 , buffer_size : usize) ; } extern "C" { pub fn rc_hash_destroy_iterator (iterator : * mut rc_hash_iterator) ; } extern "C" { pub fn rc_hash_iterate (hash : * mut :: core :: ffi :: c_char , iterator : * mut rc_hash_iterator) -> :: core :: ffi :: c_int ; } pub type rc_hash_message_callback = :: core :: option :: Option < unsafe extern "C" fn (arg1 : * const :: core :: ffi :: c_char) > ; extern "C" { pub fn rc_hash_init_error_message_callback (callback : rc_hash_message_callback) ; } extern "C" { pub fn rc_hash_init_verbose_message_callback (callback : rc_hash_message_callback) ; } pub type rc_hash_filereader_open_file_handler = :: core :: option :: Option < unsafe extern "C" fn (path_utf8 : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_void > ; pub type rc_hash_filereader_seek_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void , offset : i64 , origin : :: core :: ffi :: c_int) > ; pub type rc_hash_filereader_tell_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void) -> i64 > ; pub type rc_hash_filereader_read_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void , buffer : * mut :: core :: ffi :: c_void , requested_bytes : usize) -> usize > ; pub type rc_hash_filereader_close_file_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void) > ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_filereader { pub open : rc_hash_filereader_open_file_handler , pub seek : rc_hash_filereader_seek_handler , pub tell : rc_hash_filereader_tell_handler , pub read : rc_hash_filereader_read_handler , pub close : rc_hash_filereader_close_file_handler , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_filereader"] [:: core :: mem :: size_of :: < rc_hash_filereader > () - 40usize] ; ["Alignment of rc_hash_filereader"] [:: core :: mem :: align_of :: < rc_hash_filereader > () - 8usize] ; ["Offset of field: rc_hash_filereader::open"] [:: core :: mem :: offset_of ! (rc_hash_filereader , open) - 0usize] ; ["Offset of field: rc_hash_filereader::seek"] [:: core :: mem :: offset_of ! (rc_hash_filereader , seek) - 8usize] ; ["Offset of field: rc_hash_filereader::tell"] [:: core :: mem :: offset_of ! (rc_hash_filereader , tell) - 16usize] ; ["Offset of field: rc_hash_filereader::read"] [:: core :: mem :: offset_of ! (rc_hash_filereader , read) - 24usize] ; ["Offset of field: rc_hash_filereader::close"] [:: core :: mem :: offset_of ! (rc_hash_filereader , close) - 32usize] ; } ; extern "C" { pub fn rc_hash_init_custom_filereader (reader : * mut rc_hash_filereader) ; } pub type rc_hash_cdreader_open_track_handler = :: core :: option :: Option < unsafe extern "C" fn (path : * const :: core :: ffi :: c_char , track : u32) -> * mut :: core :: ffi :: c_void > ; pub type rc_hash_cdreader_read_sector_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void , sector : u32 , buffer : * mut :: core :: ffi :: c_void , requested_bytes : usize) -> usize > ; pub type rc_hash_cdreader_close_track_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void) > ; pub type rc_hash_cdreader_first_track_sector_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void) -> u32 > ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_cdreader { pub open_track : rc_hash_cdreader_open_track_handler , pub read_sector : rc_hash_cdreader_read_sector_handler , pub close_track : rc_hash_cdreader_close_track_handler , pub first_track_sector : rc_hash_cdreader_first_track_sector_handler , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_cdreader"] [:: core :: mem :: size_of :: < rc_hash_cdreader > () - 32usize] ; ["Alignment of rc_hash_cdreader"] [:: core :: mem :: align_of :: < rc_hash_cdreader > () - 8usize] ; ["Offset of field: rc_hash_cdreader::open_track"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , open_track) - 0usize] ; ["Offset of field: rc_hash_cdreader::read_sector"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , read_sector) - 8usize] ; ["Offset of field: rc_hash_cdreader::close_track"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , close_track) - 16usize] ; ["Offset of field: rc_hash_cdreader::first_track_sector"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , first_track_sector) - 24usize] ; } ; extern "C" { pub fn rc_hash_get_default_cdreader (cdreader : * mut rc_hash_cdreader) ; } extern "C" { pub fn rc_hash_init_default_cdreader () ; } extern "C" { pub fn rc_hash_init_custom_cdreader (reader : * mut rc_hash_cdreader) ; } pub type rc_hash_3ds_get_cia_normal_key_func = :: core :: option :: Option < unsafe extern "C" fn (common_key_index : u8 , out_normal_key : * mut u8) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_hash_init_3ds_get_cia_normal_key_func (func : rc_hash_3ds_get_cia_normal_key_func) ; } pub type rc_hash_3ds_get_ncch_normal_keys_func = :: core :: option :: Option < unsafe extern "C" fn (primary_key_y : * mut u8 , secondary_key_x_slot : u8 , optional_program_id : * mut u8 , out_primary_key : * mut u8 , out_secondary_key : * mut u8) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_hash_init_3ds_get_ncch_normal_keys_func (func : rc_hash_3ds_get_ncch_normal_keys_func) ; } # [doc = " API parameters for a fetch image request.\n NOTE: fetch image server response is the raw image data. There is no rc_api_process_fetch_image_response function."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_image_request_t { pub image_name : * const :: core :: ffi :: c_char , pub image_type : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_image_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_image_request_t > () - 16usize] ; ["Alignment of rc_api_fetch_image_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_image_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_image_request_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_fetch_image_request_t , image_name) - 0usize] ; ["Offset of field: rc_api_fetch_image_request_t::image_type"] [:: core :: mem :: offset_of ! (rc_api_fetch_image_request_t , image_type) - 8usize] ; } ; extern "C" { pub fn rc_api_init_fetch_image_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_image_request_t) -> :: core :: ffi :: c_int ; } # [doc = " API parameters for a resolve hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_resolve_hash_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_hash : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_resolve_hash_request_t"] [:: core :: mem :: size_of :: < rc_api_resolve_hash_request_t > () - 24usize] ; ["Alignment of rc_api_resolve_hash_request_t"] [:: core :: mem :: align_of :: < rc_api_resolve_hash_request_t > () - 8usize] ; ["Offset of field: rc_api_resolve_hash_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , username) - 0usize] ; ["Offset of field: rc_api_resolve_hash_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_resolve_hash_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , game_hash) - 16usize] ; } ; # [doc = " Response data for a resolve hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_resolve_hash_response_t { pub game_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_resolve_hash_response_t"] [:: core :: mem :: size_of :: < rc_api_resolve_hash_response_t > () - 320usize] ; ["Alignment of rc_api_resolve_hash_response_t"] [:: core :: mem :: align_of :: < rc_api_resolve_hash_response_t > () - 8usize] ; ["Offset of field: rc_api_resolve_hash_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_response_t , game_id) - 0usize] ; ["Offset of field: rc_api_resolve_hash_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_resolve_hash_request (request : * mut rc_api_request_t , api_params : * const rc_api_resolve_hash_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_resolve_hash_response (response : * mut rc_api_resolve_hash_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_resolve_hash_server_response (response : * mut rc_api_resolve_hash_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_resolve_hash_response (response : * mut rc_api_resolve_hash_response_t) ; } # [doc = " API parameters for a fetch game data request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_data_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_data_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_data_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_game_data_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_data_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , game_id) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_leaderboard_definition_t { pub id : u32 , pub format : :: core :: ffi :: c_int , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub lower_is_better : u8 , pub hidden : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_leaderboard_definition_t"] [:: core :: mem :: size_of :: < rc_api_leaderboard_definition_t > () - 40usize] ; ["Alignment of rc_api_leaderboard_definition_t"] [:: core :: mem :: align_of :: < rc_api_leaderboard_definition_t > () - 8usize] ; ["Offset of field: rc_api_leaderboard_definition_t::id"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , id) - 0usize] ; ["Offset of field: rc_api_leaderboard_definition_t::format"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , format) - 4usize] ; ["Offset of field: rc_api_leaderboard_definition_t::title"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , title) - 8usize] ; ["Offset of field: rc_api_leaderboard_definition_t::description"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , description) - 16usize] ; ["Offset of field: rc_api_leaderboard_definition_t::definition"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , definition) - 24usize] ; ["Offset of field: rc_api_leaderboard_definition_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , lower_is_better) - 32usize] ; ["Offset of field: rc_api_leaderboard_definition_t::hidden"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , hidden) - 33usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_achievement_definition_t { pub id : u32 , pub points : u32 , pub category : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub author : * const :: core :: ffi :: c_char , pub badge_name : * const :: core :: ffi :: c_char , pub created : time_t , pub updated : time_t , pub type_ : u32 , pub rarity : f32 , pub rarity_hardcore : f32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_achievement_definition_t"] [:: core :: mem :: size_of :: < rc_api_achievement_definition_t > () - 88usize] ; ["Alignment of rc_api_achievement_definition_t"] [:: core :: mem :: align_of :: < rc_api_achievement_definition_t > () - 8usize] ; ["Offset of field: rc_api_achievement_definition_t::id"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , id) - 0usize] ; ["Offset of field: rc_api_achievement_definition_t::points"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , points) - 4usize] ; ["Offset of field: rc_api_achievement_definition_t::category"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , category) - 8usize] ; ["Offset of field: rc_api_achievement_definition_t::title"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , title) - 16usize] ; ["Offset of field: rc_api_achievement_definition_t::description"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , description) - 24usize] ; ["Offset of field: rc_api_achievement_definition_t::definition"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , definition) - 32usize] ; ["Offset of field: rc_api_achievement_definition_t::author"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , author) - 40usize] ; ["Offset of field: rc_api_achievement_definition_t::badge_name"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , badge_name) - 48usize] ; ["Offset of field: rc_api_achievement_definition_t::created"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , created) - 56usize] ; ["Offset of field: rc_api_achievement_definition_t::updated"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , updated) - 64usize] ; ["Offset of field: rc_api_achievement_definition_t::type_"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , type_) - 72usize] ; ["Offset of field: rc_api_achievement_definition_t::rarity"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , rarity) - 76usize] ; ["Offset of field: rc_api_achievement_definition_t::rarity_hardcore"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , rarity_hardcore) - 80usize] ; } ; # [doc = " Response data for a fetch game data request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_data_response_t { pub id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub image_name : * const :: core :: ffi :: c_char , pub rich_presence_script : * const :: core :: ffi :: c_char , pub achievements : * mut rc_api_achievement_definition_t , pub num_achievements : u32 , pub leaderboards : * mut rc_api_leaderboard_definition_t , pub num_leaderboards : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_data_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_data_response_t > () - 376usize] ; ["Alignment of rc_api_fetch_game_data_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_data_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , console_id) - 4usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::title"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , title) - 8usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , image_name) - 16usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::rich_presence_script"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , rich_presence_script) - 24usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::achievements"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , achievements) - 32usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , num_achievements) - 40usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::leaderboards"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , leaderboards) - 48usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , num_leaderboards) - 56usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , response) - 64usize] ; } ; extern "C" { pub fn rc_api_init_fetch_game_data_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_game_data_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_data_response (response : * mut rc_api_fetch_game_data_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_data_server_response (response : * mut rc_api_fetch_game_data_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_game_data_response (response : * mut rc_api_fetch_game_data_response_t) ; } # [doc = " API parameters for a ping request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_ping_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub rich_presence : * const :: core :: ffi :: c_char , pub game_hash : * const :: core :: ffi :: c_char , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_ping_request_t"] [:: core :: mem :: size_of :: < rc_api_ping_request_t > () - 48usize] ; ["Alignment of rc_api_ping_request_t"] [:: core :: mem :: align_of :: < rc_api_ping_request_t > () - 8usize] ; ["Offset of field: rc_api_ping_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , username) - 0usize] ; ["Offset of field: rc_api_ping_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_ping_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_ping_request_t::rich_presence"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , rich_presence) - 24usize] ; ["Offset of field: rc_api_ping_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , game_hash) - 32usize] ; ["Offset of field: rc_api_ping_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , hardcore) - 40usize] ; } ; # [doc = " Response data for a ping request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_ping_response_t { pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_ping_response_t"] [:: core :: mem :: size_of :: < rc_api_ping_response_t > () - 312usize] ; ["Alignment of rc_api_ping_response_t"] [:: core :: mem :: align_of :: < rc_api_ping_response_t > () - 8usize] ; ["Offset of field: rc_api_ping_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_ping_response_t , response) - 0usize] ; } ; extern "C" { pub fn rc_api_init_ping_request (request : * mut rc_api_request_t , api_params : * const rc_api_ping_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_ping_response (response : * mut rc_api_ping_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_ping_server_response (response : * mut rc_api_ping_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_ping_response (response : * mut rc_api_ping_response_t) ; } # [doc = " API parameters for an award achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_award_achievement_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub hardcore : u32 , pub game_hash : * const :: core :: ffi :: c_char , pub seconds_since_unlock : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_award_achievement_request_t"] [:: core :: mem :: size_of :: < rc_api_award_achievement_request_t > () - 40usize] ; ["Alignment of rc_api_award_achievement_request_t"] [:: core :: mem :: align_of :: < rc_api_award_achievement_request_t > () - 8usize] ; ["Offset of field: rc_api_award_achievement_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , username) - 0usize] ; ["Offset of field: rc_api_award_achievement_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_award_achievement_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_award_achievement_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , hardcore) - 20usize] ; ["Offset of field: rc_api_award_achievement_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_award_achievement_request_t::seconds_since_unlock"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , seconds_since_unlock) - 32usize] ; } ; # [doc = " Response data for an award achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_award_achievement_response_t { pub awarded_achievement_id : u32 , pub new_player_score : u32 , pub new_player_score_softcore : u32 , pub achievements_remaining : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_award_achievement_response_t"] [:: core :: mem :: size_of :: < rc_api_award_achievement_response_t > () - 328usize] ; ["Alignment of rc_api_award_achievement_response_t"] [:: core :: mem :: align_of :: < rc_api_award_achievement_response_t > () - 8usize] ; ["Offset of field: rc_api_award_achievement_response_t::awarded_achievement_id"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , awarded_achievement_id) - 0usize] ; ["Offset of field: rc_api_award_achievement_response_t::new_player_score"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , new_player_score) - 4usize] ; ["Offset of field: rc_api_award_achievement_response_t::new_player_score_softcore"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , new_player_score_softcore) - 8usize] ; ["Offset of field: rc_api_award_achievement_response_t::achievements_remaining"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , achievements_remaining) - 12usize] ; ["Offset of field: rc_api_award_achievement_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_award_achievement_request (request : * mut rc_api_request_t , api_params : * const rc_api_award_achievement_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_award_achievement_response (response : * mut rc_api_award_achievement_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_award_achievement_server_response (response : * mut rc_api_award_achievement_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_award_achievement_response (response : * mut rc_api_award_achievement_response_t) ; } # [doc = " API parameters for a submit lboard entry request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_submit_lboard_entry_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub leaderboard_id : u32 , pub score : i32 , pub game_hash : * const :: core :: ffi :: c_char , pub seconds_since_completion : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_submit_lboard_entry_request_t"] [:: core :: mem :: size_of :: < rc_api_submit_lboard_entry_request_t > () - 40usize] ; ["Alignment of rc_api_submit_lboard_entry_request_t"] [:: core :: mem :: align_of :: < rc_api_submit_lboard_entry_request_t > () - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , username) - 0usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , leaderboard_id) - 16usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , score) - 20usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::seconds_since_completion"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , seconds_since_completion) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_lboard_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub score : i32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_lboard_entry_t"] [:: core :: mem :: size_of :: < rc_api_lboard_entry_t > () - 16usize] ; ["Alignment of rc_api_lboard_entry_t"] [:: core :: mem :: align_of :: < rc_api_lboard_entry_t > () - 8usize] ; ["Offset of field: rc_api_lboard_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , username) - 0usize] ; ["Offset of field: rc_api_lboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , rank) - 8usize] ; ["Offset of field: rc_api_lboard_entry_t::score"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , score) - 12usize] ; } ; # [doc = " Response data for a submit lboard entry request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_submit_lboard_entry_response_t { pub submitted_score : i32 , pub best_score : i32 , pub new_rank : u32 , pub num_entries : u32 , pub top_entries : * mut rc_api_lboard_entry_t , pub num_top_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_submit_lboard_entry_response_t"] [:: core :: mem :: size_of :: < rc_api_submit_lboard_entry_response_t > () - 344usize] ; ["Alignment of rc_api_submit_lboard_entry_response_t"] [:: core :: mem :: align_of :: < rc_api_submit_lboard_entry_response_t > () - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::submitted_score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , submitted_score) - 0usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::best_score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , best_score) - 4usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::new_rank"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , new_rank) - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , num_entries) - 12usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::top_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , top_entries) - 16usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::num_top_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , num_top_entries) - 24usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_submit_lboard_entry_request (request : * mut rc_api_request_t , api_params : * const rc_api_submit_lboard_entry_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_submit_lboard_entry_response (response : * mut rc_api_submit_lboard_entry_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_submit_lboard_entry_server_response (response : * mut rc_api_submit_lboard_entry_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_submit_lboard_entry_response (response : * mut rc_api_submit_lboard_entry_response_t) ; } # [doc = " Callback used to read num_bytes bytes from memory starting at address. If\n num_bytes is greater than 1, the value is read in little-endian from\n memory."] pub type rc_runtime_peek_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , num_bytes : u32 , ud : * mut :: core :: ffi :: c_void) -> u32 > ; # [doc = "\\\n| Runtime                                                                     |\n\\"] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_trigger_t { pub id : u32 , pub trigger : * mut rc_trigger_t , pub buffer : * mut :: core :: ffi :: c_void , pub invalid_memref : * mut rc_memref_t , pub md5 : [u8 ; 16usize] , pub serialized_size : i32 , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_trigger_t"] [:: core :: mem :: size_of :: < rc_runtime_trigger_t > () - 56usize] ; ["Alignment of rc_runtime_trigger_t"] [:: core :: mem :: align_of :: < rc_runtime_trigger_t > () - 8usize] ; ["Offset of field: rc_runtime_trigger_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , id) - 0usize] ; ["Offset of field: rc_runtime_trigger_t::trigger"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , trigger) - 8usize] ; ["Offset of field: rc_runtime_trigger_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , buffer) - 16usize] ; ["Offset of field: rc_runtime_trigger_t::invalid_memref"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , invalid_memref) - 24usize] ; ["Offset of field: rc_runtime_trigger_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , md5) - 32usize] ; ["Offset of field: rc_runtime_trigger_t::serialized_size"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , serialized_size) - 48usize] ; ["Offset of field: rc_runtime_trigger_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , owns_memrefs) - 52usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_lboard_t { pub id : u32 , pub value : i32 , pub lboard : * mut rc_lboard_t , pub buffer : * mut :: core :: ffi :: c_void , pub invalid_memref : * mut rc_memref_t , pub md5 : [u8 ; 16usize] , pub serialized_size : u32 , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_lboard_t"] [:: core :: mem :: size_of :: < rc_runtime_lboard_t > () - 56usize] ; ["Alignment of rc_runtime_lboard_t"] [:: core :: mem :: align_of :: < rc_runtime_lboard_t > () - 8usize] ; ["Offset of field: rc_runtime_lboard_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , id) - 0usize] ; ["Offset of field: rc_runtime_lboard_t::value"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , value) - 4usize] ; ["Offset of field: rc_runtime_lboard_t::lboard"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , lboard) - 8usize] ; ["Offset of field: rc_runtime_lboard_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , buffer) - 16usize] ; ["Offset of field: rc_runtime_lboard_t::invalid_memref"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , invalid_memref) - 24usize] ; ["Offset of field: rc_runtime_lboard_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , md5) - 32usize] ; ["Offset of field: rc_runtime_lboard_t::serialized_size"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , serialized_size) - 48usize] ; ["Offset of field: rc_runtime_lboard_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , owns_memrefs) - 52usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_richpresence_t { pub richpresence : * mut rc_richpresence_t , pub buffer : * mut :: core :: ffi :: c_void , pub previous : * mut rc_runtime_richpresence_t , pub md5 : [u8 ; 16usize] , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_richpresence_t"] [:: core :: mem :: size_of :: < rc_runtime_richpresence_t > () - 48usize] ; ["Alignment of rc_runtime_richpresence_t"] [:: core :: mem :: align_of :: < rc_runtime_richpresence_t > () - 8usize] ; ["Offset of field: rc_runtime_richpresence_t::richpresence"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , richpresence) - 0usize] ; ["Offset of field: rc_runtime_richpresence_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , buffer) - 8usize] ; ["Offset of field: rc_runtime_richpresence_t::previous"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , previous) - 16usize] ; ["Offset of field: rc_runtime_richpresence_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , md5) - 24usize] ; ["Offset of field: rc_runtime_richpresence_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , owns_memrefs) - 40usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_t { pub triggers : * mut rc_runtime_trigger_t , pub trigger_count : u32 , pub trigger_capacity : u32 , pub lboards : * mut rc_runtime_lboard_t , pub lboard_count : u32 , pub lboard_capacity : u32 , pub richpresence : * mut rc_runtime_richpresence_t , pub memrefs : * mut rc_memref_t , pub next_memref : * mut * mut rc_memref_t , pub variables : * mut rc_value_t , pub next_variable : * mut * mut rc_value_t , pub owns_self : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_t"] [:: core :: mem :: size_of :: < rc_runtime_t > () - 80usize] ; ["Alignment of rc_runtime_t"] [:: core :: mem :: align_of :: < rc_runtime_t > () - 8usize] ; ["Offset of field: rc_runtime_t::triggers"] [:: core :: mem :: offset_of ! (rc_runtime_t , triggers) - 0usize] ; ["Offset of field: rc_runtime_t::trigger_count"] [:: core :: mem :: offset_of ! (rc_runtime_t , trigger_count) - 8usize] ; ["Offset of field: rc_runtime_t::trigger_capacity"] [:: core :: mem :: offset_of ! (rc_runtime_t , trigger_capacity) - 12usize] ; ["Offset of field: rc_runtime_t::lboards"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboards) - 16usize] ; ["Offset of field: rc_runtime_t::lboard_count"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboard_count) - 24usize] ; ["Offset of field: rc_runtime_t::lboard_capacity"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboard_capacity) - 28usize] ; ["Offset of field: rc_runtime_t::richpresence"] [:: core :: mem :: offset_of ! (rc_runtime_t , richpresence) - 32usize] ; ["Offset of field: rc_runtime_t::memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_t , memrefs) - 40usize] ; ["Offset of field: rc_runtime_t::next_memref"] [:: core :: mem :: offset_of ! (rc_runtime_t , next_memref) - 48usize] ; ["Offset of field: rc_runtime_t::variables"] [:: core :: mem :: offset_of ! (rc_runtime_t , variables) - 56usize] ; ["Offset of field: rc_runtime_t::next_variable"] [:: core :: mem :: offset_of ! (rc_runtime_t , next_variable) - 64usize] ; ["Offset of field: rc_runtime_t::owns_self"] [:: core :: mem :: offset_of ! (rc_runtime_t , owns_self) - 72usize] ; } ; extern "C" { pub fn rc_runtime_alloc () -> * mut rc_runtime_t ; } extern "C" { pub fn rc_runtime_init (runtime : * mut rc_runtime_t) ; } extern "C" { pub fn rc_runtime_destroy (runtime : * mut rc_runtime_t) ; } extern "C" { pub fn rc_runtime_activate_achievement (runtime : * mut rc_runtime_t , id : u32 , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deactivate_achievement (runtime : * mut rc_runtime_t , id : u32) ; } extern "C" { pub fn rc_runtime_get_achievement (runtime : * const rc_runtime_t , id : u32) -> * mut rc_trigger_t ; } extern "C" { pub fn rc_runtime_get_achievement_measured (runtime : * const rc_runtime_t , id : u32 , measured_value : * mut :: core :: ffi :: c_uint , measured_target : * mut :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_format_achievement_measured (runtime : * const rc_runtime_t , id : u32 , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_activate_lboard (runtime : * mut rc_runtime_t , id : u32 , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deactivate_lboard (runtime : * mut rc_runtime_t , id : u32) ; } extern "C" { pub fn rc_runtime_get_lboard (runtime : * const rc_runtime_t , id : u32) -> * mut rc_lboard_t ; } extern "C" { pub fn rc_runtime_format_lboard_value (buffer : * mut :: core :: ffi :: c_char , size : :: core :: ffi :: c_int , value : i32 , format : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_activate_richpresence (runtime : * mut rc_runtime_t , script : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_get_richpresence (runtime : * const rc_runtime_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_runtime_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } pub const RC_RUNTIME_EVENT_ACHIEVEMENT_ACTIVATED : _bindgen_ty_14 = 0 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PAUSED : _bindgen_ty_14 = 1 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_RESET : _bindgen_ty_14 = 2 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_TRIGGERED : _bindgen_ty_14 = 3 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PRIMED : _bindgen_ty_14 = 4 ; pub const RC_RUNTIME_EVENT_LBOARD_STARTED : _bindgen_ty_14 = 5 ; pub const RC_RUNTIME_EVENT_LBOARD_CANCELED : _bindgen_ty_14 = 6 ; pub const RC_RUNTIME_EVENT_LBOARD_UPDATED : _bindgen_ty_14 = 7 ; pub const RC_RUNTIME_EVENT_LBOARD_TRIGGERED : _bindgen_ty_14 = 8 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_DISABLED : _bindgen_ty_14 = 9 ; pub const RC_RUNTIME_EVENT_LBOARD_DISABLED : _bindgen_ty_14 = 10 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_UNPRIMED : _bindgen_ty_14 = 11 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PROGRESS_UPDATED : _bindgen_ty_14 = 12 ; pub type _bindgen_ty_14 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_event_t { pub id : u32 , pub value : i32 , pub type_ : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_event_t"] [:: core :: mem :: size_of :: < rc_runtime_event_t > () - 12usize] ; ["Alignment of rc_runtime_event_t"] [:: core :: mem :: align_of :: < rc_runtime_event_t > () - 4usize] ; ["Offset of field: rc_runtime_event_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , id) - 0usize] ; ["Offset of field: rc_runtime_event_t::value"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , value) - 4usize] ; ["Offset of field: rc_runtime_event_t::type_"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , type_) - 8usize] ; } ; pub type rc_runtime_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (runtime_event : * const rc_runtime_event_t) > ; extern "C" { pub fn rc_runtime_do_frame (runtime : * mut rc_runtime_t , event_handler : rc_runtime_event_handler_t , peek : rc_runtime_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) ; } extern "C" { pub fn rc_runtime_reset (runtime : * mut rc_runtime_t) ; } pub type rc_runtime_validate_address_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_runtime_validate_addresses (runtime : * mut rc_runtime_t , event_handler : rc_runtime_event_handler_t , validate_handler : rc_runtime_validate_address_t) ; } extern "C" { pub fn rc_runtime_invalidate_address (runtime : * mut rc_runtime_t , address : u32) ; } extern "C" { pub fn rc_runtime_progress_size (runtime : * const rc_runtime_t , L : * mut lua_State) -> u32 ; } extern "C" { pub fn rc_runtime_serialize_progress (buffer : * mut :: core :: ffi :: c_void , runtime : * const rc_runtime_t , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_serialize_progress_sized (buffer : * mut u8 , buffer_size : u32 , runtime : * const rc_runtime_t , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deserialize_progress (runtime : * mut rc_runtime_t , serialized : * const u8 , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deserialize_progress_sized (runtime : * mut rc_runtime_t , serialized : * const u8 , serialized_size : u32 , L : * mut lua_State) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_async_handle_t { _unused : [u8 ; 0] , } # [doc = " Callback used to read num_bytes bytes from memory starting at address into buffer.\n Returns the number of bytes read. A return value of 0 indicates the address was invalid."] pub type rc_client_read_memory_func_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , buffer : * mut u8 , num_bytes : u32 , client : * mut rc_client_t) -> u32 > ; # [doc = " Internal method passed to rc_client_server_call_t to process the server response."] pub type rc_client_server_callback_t = :: core :: option :: Option < unsafe extern "C" fn (server_response : * const rc_api_server_response_t , callback_data : * mut :: core :: ffi :: c_void) > ; # [doc = " Callback used to issue a request to the server."] pub type rc_client_server_call_t = :: core :: option :: Option < unsafe extern "C" fn (request : * const rc_api_request_t , callback : rc_client_server_callback_t , callback_data : * mut :: core :: ffi :: c_void , client : * mut rc_client_t) > ; # [doc = " Generic callback for asynchronous eventing."] pub type rc_client_callback_t = :: core :: option :: Option < unsafe extern "C" fn (result : :: core :: ffi :: c_int , error_message : * const :: core :: ffi :: c_char , client : * mut rc_client_t , userdata : * mut :: core :: ffi :: c_void) > ; # [doc = " Callback for logging or displaying a message."] pub type rc_client_message_callback_t = :: core :: option :: Option < unsafe extern "C" fn (message : * const :: core :: ffi :: c_char , client : * const rc_client_t) > ; extern "C" { # [doc = " Creates a new rc_client_t object."] pub fn rc_client_create (read_memory_function : rc_client_read_memory_func_t , server_call_function : rc_client_server_call_t) -> * mut rc_client_t ; } extern "C" { # [doc = " Releases resources associated to a rc_client_t object.\n Pointer will no longer be valid after making this call."] pub fn rc_client_destroy (client : * mut rc_client_t) ; } extern "C" { # [doc = " Sets whether hardcore is enabled (on by default).\n Can be called with a game loaded.\n Enabling hardcore with a game loaded will raise an RC_CLIENT_EVENT_RESET\n event. Processing will be disabled until rc_client_reset is called."] pub fn rc_client_set_hardcore_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether hardcore is enabled (on by default)."] pub fn rc_client_get_hardcore_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether encore mode is enabled (off by default).\n Evaluated when loading a game. Has no effect while a game is loaded."] pub fn rc_client_set_encore_mode_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether encore mode is enabled (off by default)."] pub fn rc_client_get_encore_mode_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether unofficial achievements should be loaded.\n Evaluated when loading a game. Has no effect while a game is loaded."] pub fn rc_client_set_unofficial_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether unofficial achievements should be loaded."] pub fn rc_client_get_unofficial_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether spectator mode is enabled (off by default).\n If enabled, events for achievement unlocks and leaderboard submissions will be\n raised, but server calls to actually perform the unlock/submit will not occur.\n Can be modified while a game is loaded. Evaluated at unlock/submit time.\n Cannot be modified if disabled before a game is loaded."] pub fn rc_client_set_spectator_mode_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether spectator mode is enabled (off by default)."] pub fn rc_client_get_spectator_mode_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Attaches client-specific data to the runtime."] pub fn rc_client_set_userdata (client : * mut rc_client_t , userdata : * mut :: core :: ffi :: c_void) ; } extern "C" { # [doc = " Gets the client-specific data attached to the runtime."] pub fn rc_client_get_userdata (client : * const rc_client_t) -> * mut :: core :: ffi :: c_void ; } extern "C" { # [doc = " Sets the name of the server to use."] pub fn rc_client_set_host (client : * const rc_client_t , hostname : * const :: core :: ffi :: c_char) ; } pub type rc_clock_t = u64 ; pub type rc_get_time_millisecs_func_t = :: core :: option :: Option < unsafe extern "C" fn (client : * const rc_client_t) -> rc_clock_t > ; extern "C" { # [doc = " Specifies a function that returns a value that increases once per millisecond."] pub fn rc_client_set_get_time_millisecs_function (client : * mut rc_client_t , handler : rc_get_time_millisecs_func_t) ; } extern "C" { # [doc = " Marks an async process as aborted. The associated callback will not be called."] pub fn rc_client_abort_async (client : * mut rc_client_t , async_handle : * mut rc_client_async_handle_t) ; } extern "C" { # [doc = " Gets a clause that can be added to the User-Agent to identify the version of rcheevos being used."] pub fn rc_client_get_user_agent_clause (client : * mut rc_client_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> usize ; } extern "C" { # [doc = " Sets the logging level and provides a callback to be called to do the logging."] pub fn rc_client_enable_logging (client : * mut rc_client_t , level : :: core :: ffi :: c_int , callback : rc_client_message_callback_t) ; } pub const RC_CLIENT_LOG_LEVEL_NONE : _bindgen_ty_15 = 0 ; pub const RC_CLIENT_LOG_LEVEL_ERROR : _bindgen_ty_15 = 1 ; pub const RC_CLIENT_LOG_LEVEL_WARN : _bindgen_ty_15 = 2 ; pub const RC_CLIENT_LOG_LEVEL_INFO : _bindgen_ty_15 = 3 ; pub const RC_CLIENT_LOG_LEVEL_VERBOSE : _bindgen_ty_15 = 4 ; pub const NUM_RC_CLIENT_LOG_LEVELS : _bindgen_ty_15 = 5 ; pub type _bindgen_ty_15 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Attempt to login a user."] pub fn rc_client_begin_login_with_password (client : * mut rc_client_t , username : * const :: core :: ffi :: c_char , password : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Attempt to login a user."] pub fn rc_client_begin_login_with_token (client : * mut rc_client_t , username : * const :: core :: ffi :: c_char , token : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Logout the user."] pub fn rc_client_logout (client : * mut rc_client_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_user_t { pub display_name : * const :: core :: ffi :: c_char , pub username : * const :: core :: ffi :: c_char , pub token : * const :: core :: ffi :: c_char , pub score : u32 , pub score_softcore : u32 , pub num_unread_messages : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_user_t"] [:: core :: mem :: size_of :: < rc_client_user_t > () - 40usize] ; ["Alignment of rc_client_user_t"] [:: core :: mem :: align_of :: < rc_client_user_t > () - 8usize] ; ["Offset of field: rc_client_user_t::display_name"] [:: core :: mem :: offset_of ! (rc_client_user_t , display_name) - 0usize] ; ["Offset of field: rc_client_user_t::username"] [:: core :: mem :: offset_of ! (rc_client_user_t , username) - 8usize] ; ["Offset of field: rc_client_user_t::token"] [:: core :: mem :: offset_of ! (rc_client_user_t , token) - 16usize] ; ["Offset of field: rc_client_user_t::score"] [:: core :: mem :: offset_of ! (rc_client_user_t , score) - 24usize] ; ["Offset of field: rc_client_user_t::score_softcore"] [:: core :: mem :: offset_of ! (rc_client_user_t , score_softcore) - 28usize] ; ["Offset of field: rc_client_user_t::num_unread_messages"] [:: core :: mem :: offset_of ! (rc_client_user_t , num_unread_messages) - 32usize] ; } ; extern "C" { # [doc = " Gets information about the logged in user. Will return NULL if the user is not logged in."] pub fn rc_client_get_user_info (client : * const rc_client_t) -> * const rc_client_user_t ; } extern "C" { # [doc = " Gets the URL for the user's profile picture.\n Returns RC_OK on success."] pub fn rc_client_user_get_image_url (user : * const rc_client_user_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_user_game_summary_t { pub num_core_achievements : u32 , pub num_unofficial_achievements : u32 , pub num_unlocked_achievements : u32 , pub num_unsupported_achievements : u32 , pub points_core : u32 , pub points_unlocked : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_user_game_summary_t"] [:: core :: mem :: size_of :: < rc_client_user_game_summary_t > () - 24usize] ; ["Alignment of rc_client_user_game_summary_t"] [:: core :: mem :: align_of :: < rc_client_user_game_summary_t > () - 4usize] ; ["Offset of field: rc_client_user_game_summary_t::num_core_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_core_achievements) - 0usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unofficial_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unofficial_achievements) - 4usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unlocked_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unlocked_achievements) - 8usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unsupported_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unsupported_achievements) - 12usize] ; ["Offset of field: rc_client_user_game_summary_t::points_core"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , points_core) - 16usize] ; ["Offset of field: rc_client_user_game_summary_t::points_unlocked"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , points_unlocked) - 20usize] ; } ; extern "C" { # [doc = " Gets a breakdown of the number of achievements in the game, and how many the user has unlocked.\n Used for the \"You have unlocked X of Y achievements\" message shown when the game starts."] pub fn rc_client_get_user_game_summary (client : * const rc_client_t , summary : * mut rc_client_user_game_summary_t) ; } extern "C" { # [doc = " Start loading an unidentified game."] pub fn rc_client_begin_identify_and_load_game (client : * mut rc_client_t , console_id : u32 , file_path : * const :: core :: ffi :: c_char , data : * const u8 , data_size : usize , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Start loading a game."] pub fn rc_client_begin_load_game (client : * mut rc_client_t , hash : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Gets the current progress of the asynchronous load game process."] pub fn rc_client_get_load_game_state (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } pub const RC_CLIENT_LOAD_GAME_STATE_NONE : _bindgen_ty_16 = 0 ; pub const RC_CLIENT_LOAD_GAME_STATE_IDENTIFYING_GAME : _bindgen_ty_16 = 1 ; pub const RC_CLIENT_LOAD_GAME_STATE_AWAIT_LOGIN : _bindgen_ty_16 = 2 ; pub const RC_CLIENT_LOAD_GAME_STATE_FETCHING_GAME_DATA : _bindgen_ty_16 = 3 ; pub const RC_CLIENT_LOAD_GAME_STATE_STARTING_SESSION : _bindgen_ty_16 = 4 ; pub const RC_CLIENT_LOAD_GAME_STATE_DONE : _bindgen_ty_16 = 5 ; pub const RC_CLIENT_LOAD_GAME_STATE_ABORTED : _bindgen_ty_16 = 6 ; pub type _bindgen_ty_16 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Determines if a game was successfully identified and loaded."] pub fn rc_client_is_game_loaded (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Unloads the current game."] pub fn rc_client_unload_game (client : * mut rc_client_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_game_t { pub id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub hash : * const :: core :: ffi :: c_char , pub badge_name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_game_t"] [:: core :: mem :: size_of :: < rc_client_game_t > () - 32usize] ; ["Alignment of rc_client_game_t"] [:: core :: mem :: align_of :: < rc_client_game_t > () - 8usize] ; ["Offset of field: rc_client_game_t::id"] [:: core :: mem :: offset_of ! (rc_client_game_t , id) - 0usize] ; ["Offset of field: rc_client_game_t::console_id"] [:: core :: mem :: offset_of ! (rc_client_game_t , console_id) - 4usize] ; ["Offset of field: rc_client_game_t::title"] [:: core :: mem :: offset_of ! (rc_client_game_t , title) - 8usize] ; ["Offset of field: rc_client_game_t::hash"] [:: core :: mem :: offset_of ! (rc_client_game_t , hash) - 16usize] ; ["Offset of field: rc_client_game_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_game_t , badge_name) - 24usize] ; } ; extern "C" { # [doc = " Get information about the current game. Returns NULL if no game is loaded.\n NOTE: returns a dummy game record if an unidentified game is loaded."] pub fn rc_client_get_game_info (client : * const rc_client_t) -> * const rc_client_game_t ; } extern "C" { # [doc = " Gets the URL for the game image.\n Returns RC_OK on success."] pub fn rc_client_game_get_image_url (game : * const rc_client_game_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Changes the active disc in a multi-disc game."] pub fn rc_client_begin_change_media (client : * mut rc_client_t , file_path : * const :: core :: ffi :: c_char , data : * const u8 , data_size : usize , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Changes the active disc in a multi-disc game."] pub fn rc_client_begin_change_media_from_hash (client : * mut rc_client_t , hash : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } # [doc = "\\\n| Subsets                                                                     |\n\\"] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_subset_t { pub id : u32 , pub title : * const :: core :: ffi :: c_char , pub badge_name : [:: core :: ffi :: c_char ; 16usize] , pub num_achievements : u32 , pub num_leaderboards : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_subset_t"] [:: core :: mem :: size_of :: < rc_client_subset_t > () - 40usize] ; ["Alignment of rc_client_subset_t"] [:: core :: mem :: align_of :: < rc_client_subset_t > () - 8usize] ; ["Offset of field: rc_client_subset_t::id"] [:: core :: mem :: offset_of ! (rc_client_subset_t , id) - 0usize] ; ["Offset of field: rc_client_subset_t::title"] [:: core :: mem :: offset_of ! (rc_client_subset_t , title) - 8usize] ; ["Offset of field: rc_client_subset_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_subset_t , badge_name) - 16usize] ; ["Offset of field: rc_client_subset_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_client_subset_t , num_achievements) - 32usize] ; ["Offset of field: rc_client_subset_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_client_subset_t , num_leaderboards) - 36usize] ; } ; extern "C" { pub fn rc_client_get_subset_info (client : * mut rc_client_t , subset_id : u32) -> * const rc_client_subset_t ; } pub const RC_CLIENT_ACHIEVEMENT_STATE_INACTIVE : _bindgen_ty_17 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_ACTIVE : _bindgen_ty_17 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_UNLOCKED : _bindgen_ty_17 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_DISABLED : _bindgen_ty_17 = 3 ; pub const NUM_RC_CLIENT_ACHIEVEMENT_STATES : _bindgen_ty_17 = 4 ; # [doc = "\\\n| Achievements                                                                |\n\\"] pub type _bindgen_ty_17 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_NONE : _bindgen_ty_18 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_CORE : _bindgen_ty_18 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_UNOFFICIAL : _bindgen_ty_18 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_CORE_AND_UNOFFICIAL : _bindgen_ty_18 = 3 ; pub type _bindgen_ty_18 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_STANDARD : _bindgen_ty_19 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_MISSABLE : _bindgen_ty_19 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_PROGRESSION : _bindgen_ty_19 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_WIN : _bindgen_ty_19 = 3 ; pub type _bindgen_ty_19 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNKNOWN : _bindgen_ty_20 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_LOCKED : _bindgen_ty_20 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNLOCKED : _bindgen_ty_20 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNSUPPORTED : _bindgen_ty_20 = 3 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNOFFICIAL : _bindgen_ty_20 = 4 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_RECENTLY_UNLOCKED : _bindgen_ty_20 = 5 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_ACTIVE_CHALLENGE : _bindgen_ty_20 = 6 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_ALMOST_THERE : _bindgen_ty_20 = 7 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNSYNCED : _bindgen_ty_20 = 8 ; pub const NUM_RC_CLIENT_ACHIEVEMENT_BUCKETS : _bindgen_ty_20 = 9 ; pub type _bindgen_ty_20 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_NONE : _bindgen_ty_21 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_SOFTCORE : _bindgen_ty_21 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_HARDCORE : _bindgen_ty_21 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_BOTH : _bindgen_ty_21 = 3 ; pub type _bindgen_ty_21 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_t { pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub badge_name : [:: core :: ffi :: c_char ; 8usize] , pub measured_progress : [:: core :: ffi :: c_char ; 24usize] , pub measured_percent : f32 , pub id : u32 , pub points : u32 , pub unlock_time : time_t , pub state : u8 , pub category : u8 , pub bucket : u8 , pub unlocked : u8 , pub rarity : f32 , pub rarity_hardcore : f32 , pub type_ : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_t"] [:: core :: mem :: size_of :: < rc_client_achievement_t > () - 88usize] ; ["Alignment of rc_client_achievement_t"] [:: core :: mem :: align_of :: < rc_client_achievement_t > () - 8usize] ; ["Offset of field: rc_client_achievement_t::title"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , title) - 0usize] ; ["Offset of field: rc_client_achievement_t::description"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , description) - 8usize] ; ["Offset of field: rc_client_achievement_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , badge_name) - 16usize] ; ["Offset of field: rc_client_achievement_t::measured_progress"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , measured_progress) - 24usize] ; ["Offset of field: rc_client_achievement_t::measured_percent"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , measured_percent) - 48usize] ; ["Offset of field: rc_client_achievement_t::id"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , id) - 52usize] ; ["Offset of field: rc_client_achievement_t::points"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , points) - 56usize] ; ["Offset of field: rc_client_achievement_t::unlock_time"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , unlock_time) - 64usize] ; ["Offset of field: rc_client_achievement_t::state"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , state) - 72usize] ; ["Offset of field: rc_client_achievement_t::category"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , category) - 73usize] ; ["Offset of field: rc_client_achievement_t::bucket"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , bucket) - 74usize] ; ["Offset of field: rc_client_achievement_t::unlocked"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , unlocked) - 75usize] ; ["Offset of field: rc_client_achievement_t::rarity"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , rarity) - 76usize] ; ["Offset of field: rc_client_achievement_t::rarity_hardcore"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , rarity_hardcore) - 80usize] ; ["Offset of field: rc_client_achievement_t::type_"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , type_) - 84usize] ; } ; extern "C" { # [doc = " Get information about an achievement. Returns NULL if not found."] pub fn rc_client_get_achievement_info (client : * mut rc_client_t , id : u32) -> * const rc_client_achievement_t ; } extern "C" { # [doc = " Gets the URL for the achievement image.\n Returns RC_OK on success."] pub fn rc_client_achievement_get_image_url (achievement : * const rc_client_achievement_t , state : :: core :: ffi :: c_int , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_bucket_t { pub achievements : * mut * mut rc_client_achievement_t , pub num_achievements : u32 , pub label : * const :: core :: ffi :: c_char , pub subset_id : u32 , pub bucket_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_bucket_t"] [:: core :: mem :: size_of :: < rc_client_achievement_bucket_t > () - 32usize] ; ["Alignment of rc_client_achievement_bucket_t"] [:: core :: mem :: align_of :: < rc_client_achievement_bucket_t > () - 8usize] ; ["Offset of field: rc_client_achievement_bucket_t::achievements"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , achievements) - 0usize] ; ["Offset of field: rc_client_achievement_bucket_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , num_achievements) - 8usize] ; ["Offset of field: rc_client_achievement_bucket_t::label"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , label) - 16usize] ; ["Offset of field: rc_client_achievement_bucket_t::subset_id"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , subset_id) - 24usize] ; ["Offset of field: rc_client_achievement_bucket_t::bucket_type"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , bucket_type) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_list_t { pub buckets : * mut rc_client_achievement_bucket_t , pub num_buckets : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_list_t"] [:: core :: mem :: size_of :: < rc_client_achievement_list_t > () - 16usize] ; ["Alignment of rc_client_achievement_list_t"] [:: core :: mem :: align_of :: < rc_client_achievement_list_t > () - 8usize] ; ["Offset of field: rc_client_achievement_list_t::buckets"] [:: core :: mem :: offset_of ! (rc_client_achievement_list_t , buckets) - 0usize] ; ["Offset of field: rc_client_achievement_list_t::num_buckets"] [:: core :: mem :: offset_of ! (rc_client_achievement_list_t , num_buckets) - 8usize] ; } ; pub const RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_LOCK_STATE : _bindgen_ty_22 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_PROGRESS : _bindgen_ty_22 = 1 ; pub type _bindgen_ty_22 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Creates a list of achievements matching the specified category and grouping.\n Returns an allocated list that must be free'd by calling rc_client_destroy_achievement_list."] pub fn rc_client_create_achievement_list (client : * mut rc_client_t , category : :: core :: ffi :: c_int , grouping : :: core :: ffi :: c_int) -> * mut rc_client_achievement_list_t ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_get_achievement_list."] pub fn rc_client_destroy_achievement_list (list : * mut rc_client_achievement_list_t) ; } extern "C" { # [doc = " Returns non-zero if there are any achievements that can be queried through rc_client_create_achievement_list()."] pub fn rc_client_has_achievements (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } pub const RC_CLIENT_LEADERBOARD_STATE_INACTIVE : _bindgen_ty_23 = 0 ; pub const RC_CLIENT_LEADERBOARD_STATE_ACTIVE : _bindgen_ty_23 = 1 ; pub const RC_CLIENT_LEADERBOARD_STATE_TRACKING : _bindgen_ty_23 = 2 ; pub const RC_CLIENT_LEADERBOARD_STATE_DISABLED : _bindgen_ty_23 = 3 ; pub const NUM_RC_CLIENT_LEADERBOARD_STATES : _bindgen_ty_23 = 4 ; # [doc = "\\\n| Leaderboards                                                                |\n\\"] pub type _bindgen_ty_23 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_LEADERBOARD_FORMAT_TIME : _bindgen_ty_24 = 0 ; pub const RC_CLIENT_LEADERBOARD_FORMAT_SCORE : _bindgen_ty_24 = 1 ; pub const RC_CLIENT_LEADERBOARD_FORMAT_VALUE : _bindgen_ty_24 = 2 ; pub const NUM_RC_CLIENT_LEADERBOARD_FORMATS : _bindgen_ty_24 = 3 ; pub type _bindgen_ty_24 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_t { pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub tracker_value : * const :: core :: ffi :: c_char , pub id : u32 , pub state : u8 , pub format : u8 , pub lower_is_better : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_t > () - 32usize] ; ["Alignment of rc_client_leaderboard_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_t::title"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , title) - 0usize] ; ["Offset of field: rc_client_leaderboard_t::description"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , description) - 8usize] ; ["Offset of field: rc_client_leaderboard_t::tracker_value"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , tracker_value) - 16usize] ; ["Offset of field: rc_client_leaderboard_t::id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , id) - 24usize] ; ["Offset of field: rc_client_leaderboard_t::state"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , state) - 28usize] ; ["Offset of field: rc_client_leaderboard_t::format"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , format) - 29usize] ; ["Offset of field: rc_client_leaderboard_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , lower_is_better) - 30usize] ; } ; extern "C" { # [doc = " Get information about a leaderboard. Returns NULL if not found."] pub fn rc_client_get_leaderboard_info (client : * const rc_client_t , id : u32) -> * const rc_client_leaderboard_t ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_tracker_t { pub display : [:: core :: ffi :: c_char ; 24usize] , pub id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_tracker_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_tracker_t > () - 28usize] ; ["Alignment of rc_client_leaderboard_tracker_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_tracker_t > () - 4usize] ; ["Offset of field: rc_client_leaderboard_tracker_t::display"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_tracker_t , display) - 0usize] ; ["Offset of field: rc_client_leaderboard_tracker_t::id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_tracker_t , id) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_bucket_t { pub leaderboards : * mut * mut rc_client_leaderboard_t , pub num_leaderboards : u32 , pub label : * const :: core :: ffi :: c_char , pub subset_id : u32 , pub bucket_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_bucket_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_bucket_t > () - 32usize] ; ["Alignment of rc_client_leaderboard_bucket_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_bucket_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::leaderboards"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , leaderboards) - 0usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , num_leaderboards) - 8usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::label"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , label) - 16usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::subset_id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , subset_id) - 24usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::bucket_type"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , bucket_type) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_list_t { pub buckets : * mut rc_client_leaderboard_bucket_t , pub num_buckets : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_list_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_list_t > () - 16usize] ; ["Alignment of rc_client_leaderboard_list_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_list_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_list_t::buckets"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_list_t , buckets) - 0usize] ; ["Offset of field: rc_client_leaderboard_list_t::num_buckets"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_list_t , num_buckets) - 8usize] ; } ; pub const RC_CLIENT_LEADERBOARD_BUCKET_UNKNOWN : _bindgen_ty_25 = 0 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_INACTIVE : _bindgen_ty_25 = 1 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_ACTIVE : _bindgen_ty_25 = 2 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_UNSUPPORTED : _bindgen_ty_25 = 3 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_ALL : _bindgen_ty_25 = 4 ; pub const NUM_RC_CLIENT_LEADERBOARD_BUCKETS : _bindgen_ty_25 = 5 ; pub type _bindgen_ty_25 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_LEADERBOARD_LIST_GROUPING_NONE : _bindgen_ty_26 = 0 ; pub const RC_CLIENT_LEADERBOARD_LIST_GROUPING_TRACKING : _bindgen_ty_26 = 1 ; pub type _bindgen_ty_26 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Creates a list of leaderboards matching the specified grouping.\n Returns an allocated list that must be free'd by calling rc_client_destroy_leaderboard_list."] pub fn rc_client_create_leaderboard_list (client : * mut rc_client_t , grouping : :: core :: ffi :: c_int) -> * mut rc_client_leaderboard_list_t ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_get_leaderboard_list."] pub fn rc_client_destroy_leaderboard_list (list : * mut rc_client_leaderboard_list_t) ; } extern "C" { # [doc = " Returns non-zero if the current game has any leaderboards."] pub fn rc_client_has_leaderboards (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_entry_t { pub user : * const :: core :: ffi :: c_char , pub display : [:: core :: ffi :: c_char ; 24usize] , pub submitted : time_t , pub rank : u32 , pub index : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_entry_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_entry_t > () - 48usize] ; ["Alignment of rc_client_leaderboard_entry_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_entry_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_t::user"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , user) - 0usize] ; ["Offset of field: rc_client_leaderboard_entry_t::display"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , display) - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_t::submitted"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , submitted) - 32usize] ; ["Offset of field: rc_client_leaderboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , rank) - 40usize] ; ["Offset of field: rc_client_leaderboard_entry_t::index"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , index) - 44usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_entry_list_t { pub entries : * mut rc_client_leaderboard_entry_t , pub num_entries : u32 , pub total_entries : u32 , pub user_index : i32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_entry_list_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_entry_list_t > () - 24usize] ; ["Alignment of rc_client_leaderboard_entry_list_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_entry_list_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , entries) - 0usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::num_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , num_entries) - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::total_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , total_entries) - 12usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::user_index"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , user_index) - 16usize] ; } ; pub type rc_client_fetch_leaderboard_entries_callback_t = :: core :: option :: Option < unsafe extern "C" fn (result : :: core :: ffi :: c_int , error_message : * const :: core :: ffi :: c_char , list : * mut rc_client_leaderboard_entry_list_t , client : * mut rc_client_t , callback_userdata : * mut :: core :: ffi :: c_void) > ; extern "C" { # [doc = " Fetches a list of leaderboard entries from the server.\n Callback receives an allocated list that must be free'd by calling rc_client_destroy_leaderboard_entry_list."] pub fn rc_client_begin_fetch_leaderboard_entries (client : * mut rc_client_t , leaderboard_id : u32 , first_entry : u32 , count : u32 , callback : rc_client_fetch_leaderboard_entries_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Fetches a list of leaderboard entries from the server containing the logged-in user.\n Callback receives an allocated list that must be free'd by calling rc_client_destroy_leaderboard_entry_list."] pub fn rc_client_begin_fetch_leaderboard_entries_around_user (client : * mut rc_client_t , leaderboard_id : u32 , count : u32 , callback : rc_client_fetch_leaderboard_entries_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Gets the URL for the profile picture of the user associated to a leaderboard entry.\n Returns RC_OK on success."] pub fn rc_client_leaderboard_entry_get_user_image_url (entry : * const rc_client_leaderboard_entry_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_begin_fetch_leaderboard_entries or rc_client_begin_fetch_leaderboard_entries_around_user."] pub fn rc_client_destroy_leaderboard_entry_list (list : * mut rc_client_leaderboard_entry_list_t) ; } # [doc = " Used for scoreboard events. Contains the response from the server when a leaderboard entry is submitted.\n NOTE: This structure is only valid within the event callback. If you want to make use of the data outside\n of the callback, you should create copies of both the top entries and usernames within."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_scoreboard_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub score : [:: core :: ffi :: c_char ; 24usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_scoreboard_entry_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_scoreboard_entry_t > () - 40usize] ; ["Alignment of rc_client_leaderboard_scoreboard_entry_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_scoreboard_entry_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::username"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , username) - 0usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , rank) - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , score) - 12usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_scoreboard_t { pub leaderboard_id : u32 , pub submitted_score : [:: core :: ffi :: c_char ; 24usize] , pub best_score : [:: core :: ffi :: c_char ; 24usize] , pub new_rank : u32 , pub num_entries : u32 , pub top_entries : * mut rc_client_leaderboard_scoreboard_entry_t , pub num_top_entries : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_scoreboard_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_scoreboard_t > () - 80usize] ; ["Alignment of rc_client_leaderboard_scoreboard_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_scoreboard_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::submitted_score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , submitted_score) - 4usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::best_score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , best_score) - 28usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::new_rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , new_rank) - 52usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::num_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , num_entries) - 56usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::top_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , top_entries) - 64usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::num_top_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , num_top_entries) - 72usize] ; } ; extern "C" { # [doc = " Returns non-zero if the current game supports rich presence."] pub fn rc_client_has_rich_presence (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Gets the current rich presence message.\n Returns the number of characters written to buffer."] pub fn rc_client_get_rich_presence_message (client : * mut rc_client_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> usize ; } pub const RC_CLIENT_EVENT_TYPE_NONE : _bindgen_ty_27 = 0 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_TRIGGERED : _bindgen_ty_27 = 1 ; pub const RC_CLIENT_EVENT_LEADERBOARD_STARTED : _bindgen_ty_27 = 2 ; pub const RC_CLIENT_EVENT_LEADERBOARD_FAILED : _bindgen_ty_27 = 3 ; pub const RC_CLIENT_EVENT_LEADERBOARD_SUBMITTED : _bindgen_ty_27 = 4 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_CHALLENGE_INDICATOR_SHOW : _bindgen_ty_27 = 5 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_CHALLENGE_INDICATOR_HIDE : _bindgen_ty_27 = 6 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_SHOW : _bindgen_ty_27 = 7 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_HIDE : _bindgen_ty_27 = 8 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_UPDATE : _bindgen_ty_27 = 9 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_SHOW : _bindgen_ty_27 = 10 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_HIDE : _bindgen_ty_27 = 11 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_UPDATE : _bindgen_ty_27 = 12 ; pub const RC_CLIENT_EVENT_LEADERBOARD_SCOREBOARD : _bindgen_ty_27 = 13 ; pub const RC_CLIENT_EVENT_RESET : _bindgen_ty_27 = 14 ; pub const RC_CLIENT_EVENT_GAME_COMPLETED : _bindgen_ty_27 = 15 ; pub const RC_CLIENT_EVENT_SERVER_ERROR : _bindgen_ty_27 = 16 ; pub const RC_CLIENT_EVENT_DISCONNECTED : _bindgen_ty_27 = 17 ; pub const RC_CLIENT_EVENT_RECONNECTED : _bindgen_ty_27 = 18 ; # [doc = "\\\n| Processing                                                                  |\n\\"] pub type _bindgen_ty_27 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_server_error_t { pub error_message : * const :: core :: ffi :: c_char , pub api : * const :: core :: ffi :: c_char , pub result : :: core :: ffi :: c_int , pub related_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_server_error_t"] [:: core :: mem :: size_of :: < rc_client_server_error_t > () - 24usize] ; ["Alignment of rc_client_server_error_t"] [:: core :: mem :: align_of :: < rc_client_server_error_t > () - 8usize] ; ["Offset of field: rc_client_server_error_t::error_message"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , error_message) - 0usize] ; ["Offset of field: rc_client_server_error_t::api"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , api) - 8usize] ; ["Offset of field: rc_client_server_error_t::result"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , result) - 16usize] ; ["Offset of field: rc_client_server_error_t::related_id"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , related_id) - 20usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_event_t { pub type_ : u32 , pub achievement : * mut rc_client_achievement_t , pub leaderboard : * mut rc_client_leaderboard_t , pub leaderboard_tracker : * mut rc_client_leaderboard_tracker_t , pub leaderboard_scoreboard : * mut rc_client_leaderboard_scoreboard_t , pub server_error : * mut rc_client_server_error_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_event_t"] [:: core :: mem :: size_of :: < rc_client_event_t > () - 48usize] ; ["Alignment of rc_client_event_t"] [:: core :: mem :: align_of :: < rc_client_event_t > () - 8usize] ; ["Offset of field: rc_client_event_t::type_"] [:: core :: mem :: offset_of ! (rc_client_event_t , type_) - 0usize] ; ["Offset of field: rc_client_event_t::achievement"] [:: core :: mem :: offset_of ! (rc_client_event_t , achievement) - 8usize] ; ["Offset of field: rc_client_event_t::leaderboard"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard) - 16usize] ; ["Offset of field: rc_client_event_t::leaderboard_tracker"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard_tracker) - 24usize] ; ["Offset of field: rc_client_event_t::leaderboard_scoreboard"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard_scoreboard) - 32usize] ; ["Offset of field: rc_client_event_t::server_error"] [:: core :: mem :: offset_of ! (rc_client_event_t , server_error) - 40usize] ; } ; # [doc = " Callback used to notify the client when certain events occur."] pub type rc_client_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (event : * const rc_client_event_t , client : * mut rc_client_t) > ; extern "C" { # [doc = " Provides a callback for event handling."] pub fn rc_client_set_event_handler (client : * mut rc_client_t , handler : rc_client_event_handler_t) ; } extern "C" { # [doc = " Provides a callback for reading memory."] pub fn rc_client_set_read_memory_function (client : * mut rc_client_t , handler : rc_client_read_memory_func_t) ; } extern "C" { # [doc = " Determines if there are any active achievements/leaderboards/rich presence that need processing."] pub fn rc_client_is_processing_required (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Processes achievements for the current frame."] pub fn rc_client_do_frame (client : * mut rc_client_t) ; } extern "C" { # [doc = " Processes the periodic queue.\n Called internally by rc_client_do_frame.\n Should be explicitly called if rc_client_do_frame is not being called because emulation is paused."] pub fn rc_client_idle (client : * mut rc_client_t) ; } extern "C" { # [doc = " Determines if a sufficient amount of frames have been processed since the last call to rc_client_can_pause.\n Should not be called unless the client is trying to pause.\n If false is returned, and frames_remaining is not NULL, frames_remaining will be set to the number of frames\n still required before pause is allowed, which can be converted to a time in seconds for displaying to the user."] pub fn rc_client_can_pause (client : * mut rc_client_t , frames_remaining : * mut u32) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Informs the runtime that the emulator has been reset. Will reset all achievements and leaderboards\n to their initial state (includes hiding indicators/trackers)."] pub fn rc_client_reset (client : * mut rc_client_t) ; } extern "C" { # [doc = " Gets the number of bytes needed to serialized the runtime state."] pub fn rc_client_progress_size (client : * mut rc_client_t) -> usize ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator.\n [deprecated] use rc_client_serialize_progress_sized instead"] pub fn rc_client_serialize_progress (client : * mut rc_client_t , buffer : * mut u8) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator."] pub fn rc_client_serialize_progress_sized (client : * mut rc_client_t , buffer : * mut u8 , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Deserializes the runtime state from a buffer.\n Returns RC_OK on success, or an error indicator.\n [deprecated] use rc_client_deserialize_progress_sized instead"] pub fn rc_client_deserialize_progress (client : * mut rc_client_t , serialized : * const u8) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator."] pub fn rc_client_deserialize_progress_sized (client : * mut rc_client_t , serialized : * const u8 , serialized_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __locale_data { pub _address : u8 , } pub type __builtin_va_list = [__va_list_tag ; 1usize] ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __va_list_tag { pub gp_offset : :: core :: ffi :: c_uint , pub fp_offset : :: core :: ffi :: c_uint , pub overflow_arg_area : * mut :: core :: ffi :: c_void , pub reg_save_area : * mut :: core :: ffi :: c_void , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __va_list_tag"] [:: core :: mem :: size_of :: < __va_list_tag > () - 24usize] ; ["Alignment of __va_list_tag"] [:: core :: mem :: align_of :: < __va_list_tag > () - 8usize] ; ["Offset of field: __va_list_tag::gp_offset"] [:: core :: mem :: offset_of ! (__va_list_tag , gp_offset) - 0usize] ; ["Offset of field: __va_list_tag::fp_offset"] [:: core :: mem :: offset_of ! (__va_list_tag , fp_offset) - 4usize] ; ["Offset of field: __va_list_tag::overflow_arg_area"] [:: core :: mem :: offset_of ! (__va_list_tag , overflow_arg_area) - 8usize] ; ["Offset of field: __va_list_tag::reg_save_area"] [:: core :: mem :: offset_of ! (__va_list_tag , reg_save_area) - 16usize] ; } ;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.14s
[INFO] running `Command { std: "docker" "inspect" "a77a9d3e286acf7e42949ba5f48ca7cf84435c704901c0d785b3b1c5fca5e6f6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "a77a9d3e286acf7e42949ba5f48ca7cf84435c704901c0d785b3b1c5fca5e6f6" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]  --> /opt/rustwide/target/debug/build/rcheevos-sys/badd2487a33295ab/out/bindings.rs:3:124281
[INFO] [stderr]   |
[INFO] [stderr] 3 | ...: ffi :: c_int { unsafe { :: core :: mem :: transmute (self . _bitfield_1 . get (0usize , 24u8) as u32) } } # [inline] pub fn set_...
[INFO] [stderr]   |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stderr] help: replace this with
[INFO] [stderr]   |
[INFO] [stderr] 3 - # [repr (C)] # [derive (Copy , Clone , Debug , Default , Eq , Hash , Ord , PartialEq , PartialOrd)] pub struct __BindgenBitfieldUnit < Storage > { storage : Storage , } impl < Storage > __BindgenBitfieldUnit < Storage > { # [inline] pub const fn new (storage : Storage) -> Self { Self { storage } } } impl < Storage > __BindgenBitfieldUnit < Storage > where Storage : AsRef < [u8] > + AsMut < [u8] >, { # [inline] pub fn get_bit (& self , index : usize) -> bool { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = self . storage . as_ref () [byte_index] ; let bit_index = if cfg ! (target_endian = "big") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; byte & mask == mask } # [inline] pub fn set_bit (& mut self , index : usize , val : bool) { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = & mut self . storage . as_mut () [byte_index] ; let bit_index = if cfg ! (target_endian = "big") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; if val { * byte |= mask ; } else { * byte &= ! mask ; } } # [inline] pub fn get (& self , bit_offset : usize , bit_width : u8) -> u64 { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; let mut val = 0 ; for i in 0 .. (bit_width as usize) { if self . get_bit (i + bit_offset) { let index = if cfg ! (target_endian = "big") { bit_width as usize - 1 - i } else { i } ; val |= 1 << index ; } } val } # [inline] pub fn set (& mut self , bit_offset : usize , bit_width : u8 , val : u64) { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; for i in 0 .. (bit_width as usize) { let mask = 1 << i ; let val_bit_is_set = val & mask == mask ; let index = if cfg ! (target_endian = "big") { bit_width as usize - 1 - i } else { i } ; self . set_bit (index + bit_offset , val_bit_is_set) ; } } } # [derive (PartialEq , Copy , Clone , Hash , Debug , Default)] # [repr (C)] pub struct __BindgenComplex < T > { pub re : T , pub im : T } pub const _STDINT_H : u32 = 1 ; pub const _FEATURES_H : u32 = 1 ; pub const _DEFAULT_SOURCE : u32 = 1 ; pub const __GLIBC_USE_ISOC2Y : u32 = 0 ; pub const __GLIBC_USE_ISOC23 : u32 = 0 ; pub const __USE_ISOC11 : u32 = 1 ; pub const __USE_ISOC99 : u32 = 1 ; pub const __USE_ISOC95 : u32 = 1 ; pub const __USE_POSIX_IMPLICITLY : u32 = 1 ; pub const _POSIX_SOURCE : u32 = 1 ; pub const _POSIX_C_SOURCE : u32 = 202405 ; pub const __USE_POSIX : u32 = 1 ; pub const __USE_POSIX2 : u32 = 1 ; pub const __USE_POSIX199309 : u32 = 1 ; pub const __USE_POSIX199506 : u32 = 1 ; pub const __USE_XOPEN2K : u32 = 1 ; pub const __USE_XOPEN2K8 : u32 = 1 ; pub const _ATFILE_SOURCE : u32 = 1 ; pub const __USE_XOPEN2K24 : u32 = 1 ; pub const __WORDSIZE : u32 = 64 ; pub const __WORDSIZE_TIME64_COMPAT32 : u32 = 1 ; pub const __SYSCALL_WORDSIZE : u32 = 64 ; pub const __TIMESIZE : u32 = 64 ; pub const __USE_TIME_BITS64 : u32 = 1 ; pub const __USE_MISC : u32 = 1 ; 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_C23_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 ; pub const __STDC_IEC_559_COMPLEX__ : u32 = 1 ; 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 = 43 ; pub const _SYS_CDEFS_H : u32 = 1 ; pub const __glibc_c99_flexarr_available : u32 = 1 ; pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI : u32 = 0 ; pub const __HAVE_GENERIC_SELECTION : u32 = 1 ; pub const __GLIBC_USE_LIB_EXT2 : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT_C23 : u32 = 0 ; 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_C23 : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_TYPES_EXT : u32 = 0 ; pub const _BITS_TYPES_H : u32 = 1 ; pub const _BITS_TYPESIZES_H : u32 = 1 ; pub const __OFF_T_MATCHES_OFF64_T : u32 = 1 ; pub const __INO_T_MATCHES_INO64_T : u32 = 1 ; pub const __RLIM_T_MATCHES_RLIM64_T : u32 = 1 ; pub const __STATFS_MATCHES_STATFS64 : u32 = 1 ; pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 : u32 = 1 ; pub const __FD_SETSIZE : u32 = 1024 ; pub const _BITS_TIME64_H : u32 = 1 ; pub const _BITS_WCHAR_H : u32 = 1 ; pub const _BITS_STDINT_INTN_H : u32 = 1 ; pub const _BITS_STDINT_UINTN_H : u32 = 1 ; pub const _BITS_STDINT_LEAST_H : u32 = 1 ; pub const INT8_MIN : i32 = - 128 ; pub const INT16_MIN : i32 = - 32768 ; pub const INT32_MIN : i32 = - 2147483648 ; pub const INT8_MAX : u32 = 127 ; pub const INT16_MAX : u32 = 32767 ; pub const INT32_MAX : u32 = 2147483647 ; pub const UINT8_MAX : u32 = 255 ; pub const UINT16_MAX : u32 = 65535 ; pub const UINT32_MAX : u32 = 4294967295 ; pub const INT_LEAST8_MIN : i32 = - 128 ; pub const INT_LEAST16_MIN : i32 = - 32768 ; pub const INT_LEAST32_MIN : i32 = - 2147483648 ; pub const INT_LEAST8_MAX : u32 = 127 ; pub const INT_LEAST16_MAX : u32 = 32767 ; pub const INT_LEAST32_MAX : u32 = 2147483647 ; pub const UINT_LEAST8_MAX : u32 = 255 ; pub const UINT_LEAST16_MAX : u32 = 65535 ; pub const UINT_LEAST32_MAX : u32 = 4294967295 ; pub const INT_FAST8_MIN : i32 = - 128 ; pub const INT_FAST16_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST32_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST8_MAX : u32 = 127 ; pub const INT_FAST16_MAX : u64 = 9223372036854775807 ; pub const INT_FAST32_MAX : u64 = 9223372036854775807 ; pub const UINT_FAST8_MAX : u32 = 255 ; pub const UINT_FAST16_MAX : i32 = - 1 ; pub const UINT_FAST32_MAX : i32 = - 1 ; pub const INTPTR_MIN : i64 = - 9223372036854775808 ; pub const INTPTR_MAX : u64 = 9223372036854775807 ; pub const UINTPTR_MAX : i32 = - 1 ; pub const PTRDIFF_MIN : i64 = - 9223372036854775808 ; pub const PTRDIFF_MAX : u64 = 9223372036854775807 ; pub const SIG_ATOMIC_MIN : i32 = - 2147483648 ; pub const SIG_ATOMIC_MAX : u32 = 2147483647 ; pub const SIZE_MAX : i32 = - 1 ; pub const WINT_MIN : u32 = 0 ; pub const WINT_MAX : u32 = 4294967295 ; pub const RC_VALUE_MAX_NAME_LENGTH : u32 = 15 ; pub const _TIME_H : u32 = 1 ; pub const _BITS_TIME_H : u32 = 1 ; pub const CLOCK_REALTIME : u32 = 0 ; pub const CLOCK_MONOTONIC : u32 = 1 ; pub const CLOCK_PROCESS_CPUTIME_ID : u32 = 2 ; pub const CLOCK_THREAD_CPUTIME_ID : u32 = 3 ; pub const CLOCK_MONOTONIC_RAW : u32 = 4 ; pub const CLOCK_REALTIME_COARSE : u32 = 5 ; pub const CLOCK_MONOTONIC_COARSE : u32 = 6 ; pub const CLOCK_BOOTTIME : u32 = 7 ; pub const CLOCK_REALTIME_ALARM : u32 = 8 ; pub const CLOCK_BOOTTIME_ALARM : u32 = 9 ; pub const CLOCK_TAI : u32 = 11 ; pub const TIMER_ABSTIME : u32 = 1 ; pub const __clock_t_defined : u32 = 1 ; pub const __time_t_defined : u32 = 1 ; pub const __struct_tm_defined : u32 = 1 ; pub const _STRUCT_TIMESPEC : u32 = 1 ; pub const _BITS_ENDIAN_H : u32 = 1 ; pub const __LITTLE_ENDIAN : u32 = 1234 ; pub const __BIG_ENDIAN : u32 = 4321 ; pub const __PDP_ENDIAN : u32 = 3412 ; pub const _BITS_ENDIANNESS_H : u32 = 1 ; pub const __BYTE_ORDER : u32 = 1234 ; pub const __FLOAT_WORD_ORDER : u32 = 1234 ; pub const __clockid_t_defined : u32 = 1 ; pub const __timer_t_defined : u32 = 1 ; pub const __itimerspec_defined : u32 = 1 ; pub const _BITS_TYPES_LOCALE_T_H : u32 = 1 ; pub const _BITS_TYPES___LOCALE_T_H : u32 = 1 ; pub const TIME_UTC : u32 = 1 ; pub const _STDIO_H : u32 = 1 ; pub const _____fpos_t_defined : u32 = 1 ; pub const ____mbstate_t_defined : u32 = 1 ; pub const _____fpos64_t_defined : u32 = 1 ; pub const ____FILE_defined : u32 = 1 ; pub const __FILE_defined : u32 = 1 ; 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 ; pub const BUFSIZ : u32 = 8192 ; pub const EOF : i32 = - 1 ; 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 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 ; pub const __HAVE_FLOAT128 : u32 = 1 ; pub const __HAVE_DISTINCT_FLOAT128 : u32 = 1 ; pub const __HAVE_FLOAT64X : u32 = 1 ; pub const __HAVE_FLOAT64X_LONG_DOUBLE : u32 = 1 ; pub const __HAVE_FLOAT16 : u32 = 0 ; pub const __HAVE_FLOAT32 : u32 = 1 ; pub const __HAVE_FLOAT64 : u32 = 1 ; pub const __HAVE_FLOAT32X : u32 = 1 ; pub const __HAVE_FLOAT128X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT16 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT32 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT64 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT32X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT64X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT128X : u32 = 0 ; pub const __HAVE_FLOATN_NOT_TYPEDEF : u32 = 0 ; pub const RC_IMAGE_TYPE_GAME : u32 = 1 ; pub const RC_IMAGE_TYPE_ACHIEVEMENT : u32 = 2 ; pub const RC_IMAGE_TYPE_ACHIEVEMENT_LOCKED : u32 = 3 ; pub const RC_IMAGE_TYPE_USER : u32 = 4 ; pub const RC_ACHIEVEMENT_CATEGORY_CORE : u32 = 3 ; pub const RC_ACHIEVEMENT_CATEGORY_UNOFFICIAL : u32 = 5 ; pub const RC_ACHIEVEMENT_TYPE_STANDARD : u32 = 0 ; pub const RC_ACHIEVEMENT_TYPE_MISSABLE : u32 = 1 ; pub const RC_ACHIEVEMENT_TYPE_PROGRESSION : u32 = 2 ; pub const RC_ACHIEVEMENT_TYPE_WIN : u32 = 3 ; pub const RC_CLIENT_LEADERBOARD_DISPLAY_SIZE : u32 = 24 ; pub const RC_OK : _bindgen_ty_1 = 0 ; pub const RC_INVALID_LUA_OPERAND : _bindgen_ty_1 = - 1 ; pub const RC_INVALID_MEMORY_OPERAND : _bindgen_ty_1 = - 2 ; pub const RC_INVALID_CONST_OPERAND : _bindgen_ty_1 = - 3 ; pub const RC_INVALID_FP_OPERAND : _bindgen_ty_1 = - 4 ; pub const RC_INVALID_CONDITION_TYPE : _bindgen_ty_1 = - 5 ; pub const RC_INVALID_OPERATOR : _bindgen_ty_1 = - 6 ; pub const RC_INVALID_REQUIRED_HITS : _bindgen_ty_1 = - 7 ; pub const RC_DUPLICATED_START : _bindgen_ty_1 = - 8 ; pub const RC_DUPLICATED_CANCEL : _bindgen_ty_1 = - 9 ; pub const RC_DUPLICATED_SUBMIT : _bindgen_ty_1 = - 10 ; pub const RC_DUPLICATED_VALUE : _bindgen_ty_1 = - 11 ; pub const RC_DUPLICATED_PROGRESS : _bindgen_ty_1 = - 12 ; pub const RC_MISSING_START : _bindgen_ty_1 = - 13 ; pub const RC_MISSING_CANCEL : _bindgen_ty_1 = - 14 ; pub const RC_MISSING_SUBMIT : _bindgen_ty_1 = - 15 ; pub const RC_MISSING_VALUE : _bindgen_ty_1 = - 16 ; pub const RC_INVALID_LBOARD_FIELD : _bindgen_ty_1 = - 17 ; pub const RC_MISSING_DISPLAY_STRING : _bindgen_ty_1 = - 18 ; pub const RC_OUT_OF_MEMORY : _bindgen_ty_1 = - 19 ; pub const RC_INVALID_VALUE_FLAG : _bindgen_ty_1 = - 20 ; pub const RC_MISSING_VALUE_MEASURED : _bindgen_ty_1 = - 21 ; pub const RC_MULTIPLE_MEASURED : _bindgen_ty_1 = - 22 ; pub const RC_INVALID_MEASURED_TARGET : _bindgen_ty_1 = - 23 ; pub const RC_INVALID_COMPARISON : _bindgen_ty_1 = - 24 ; pub const RC_INVALID_STATE : _bindgen_ty_1 = - 25 ; pub const RC_INVALID_JSON : _bindgen_ty_1 = - 26 ; pub const RC_API_FAILURE : _bindgen_ty_1 = - 27 ; pub const RC_LOGIN_REQUIRED : _bindgen_ty_1 = - 28 ; pub const RC_NO_GAME_LOADED : _bindgen_ty_1 = - 29 ; pub const RC_HARDCORE_DISABLED : _bindgen_ty_1 = - 30 ; pub const RC_ABORTED : _bindgen_ty_1 = - 31 ; pub const RC_NO_RESPONSE : _bindgen_ty_1 = - 32 ; pub const RC_ACCESS_DENIED : _bindgen_ty_1 = - 33 ; pub const RC_INVALID_CREDENTIALS : _bindgen_ty_1 = - 34 ; pub const RC_EXPIRED_TOKEN : _bindgen_ty_1 = - 35 ; pub const RC_INSUFFICIENT_BUFFER : _bindgen_ty_1 = - 36 ; pub const RC_INVALID_VARIABLE_NAME : _bindgen_ty_1 = - 37 ; pub const RC_UNKNOWN_VARIABLE_NAME : _bindgen_ty_1 = - 38 ; # [doc = "\\\n| Return values                                                               |\n\\"] pub type _bindgen_ty_1 = :: core :: ffi :: c_int ; extern "C" { pub fn rc_error_str (ret : :: core :: ffi :: c_int) -> * const :: core :: ffi :: c_char ; } pub type wchar_t = :: core :: ffi :: c_int ; # [repr (C)] # [repr (align (16))] # [derive (Debug , Copy , Clone)] pub struct max_align_t { pub __clang_max_align_nonce1 : :: core :: ffi :: c_longlong , pub __bindgen_padding_0 : u64 , pub __clang_max_align_nonce2 : u128 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of max_align_t"] [:: core :: mem :: size_of :: < max_align_t > () - 32usize] ; ["Alignment of max_align_t"] [:: core :: mem :: align_of :: < max_align_t > () - 16usize] ; ["Offset of field: max_align_t::__clang_max_align_nonce1"] [:: core :: mem :: offset_of ! (max_align_t , __clang_max_align_nonce1) - 0usize] ; ["Offset of field: max_align_t::__clang_max_align_nonce2"] [:: core :: mem :: offset_of ! (max_align_t , __clang_max_align_nonce2) - 16usize] ; } ; pub type __u_char = :: core :: ffi :: c_uchar ; pub type __u_short = :: core :: ffi :: c_ushort ; pub type __u_int = :: core :: ffi :: c_uint ; pub type __u_long = :: core :: ffi :: c_ulong ; pub type __int8_t = :: core :: ffi :: c_schar ; pub type __uint8_t = :: core :: ffi :: c_uchar ; pub type __int16_t = :: core :: ffi :: c_short ; pub type __uint16_t = :: core :: ffi :: c_ushort ; pub type __int32_t = :: core :: ffi :: c_int ; pub type __uint32_t = :: core :: ffi :: c_uint ; pub type __int64_t = :: core :: ffi :: c_long ; pub type __uint64_t = :: core :: ffi :: c_ulong ; pub type __int_least8_t = __int8_t ; pub type __uint_least8_t = __uint8_t ; pub type __int_least16_t = __int16_t ; pub type __uint_least16_t = __uint16_t ; pub type __int_least32_t = __int32_t ; pub type __uint_least32_t = __uint32_t ; pub type __int_least64_t = __int64_t ; pub type __uint_least64_t = __uint64_t ; pub type __quad_t = :: core :: ffi :: c_long ; pub type __u_quad_t = :: core :: ffi :: c_ulong ; pub type __intmax_t = :: core :: ffi :: c_long ; pub type __uintmax_t = :: core :: ffi :: c_ulong ; pub type __dev_t = :: core :: ffi :: c_ulong ; pub type __uid_t = :: core :: ffi :: c_uint ; pub type __gid_t = :: core :: ffi :: c_uint ; pub type __ino_t = :: core :: ffi :: c_ulong ; pub type __ino64_t = :: core :: ffi :: c_ulong ; pub type __mode_t = :: core :: ffi :: c_uint ; pub type __nlink_t = :: core :: ffi :: c_ulong ; pub type __off_t = :: core :: ffi :: c_long ; pub type __off64_t = :: core :: ffi :: c_long ; pub type __pid_t = :: core :: ffi :: c_int ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __fsid_t { pub __val : [:: core :: ffi :: c_int ; 2usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __fsid_t"] [:: core :: mem :: size_of :: < __fsid_t > () - 8usize] ; ["Alignment of __fsid_t"] [:: core :: mem :: align_of :: < __fsid_t > () - 4usize] ; ["Offset of field: __fsid_t::__val"] [:: core :: mem :: offset_of ! (__fsid_t , __val) - 0usize] ; } ; pub type __clock_t = :: core :: ffi :: c_long ; pub type __rlim_t = :: core :: ffi :: c_ulong ; pub type __rlim64_t = :: core :: ffi :: c_ulong ; pub type __id_t = :: core :: ffi :: c_uint ; pub type __time_t = :: core :: ffi :: c_long ; pub type __useconds_t = :: core :: ffi :: c_uint ; pub type __suseconds_t = :: core :: ffi :: c_long ; pub type __suseconds64_t = :: core :: ffi :: c_long ; pub type __daddr_t = :: core :: ffi :: c_int ; pub type __key_t = :: core :: ffi :: c_int ; pub type __clockid_t = :: core :: ffi :: c_int ; pub type __timer_t = * mut :: core :: ffi :: c_void ; pub type __blksize_t = :: core :: ffi :: c_long ; pub type __blkcnt_t = :: core :: ffi :: c_long ; pub type __blkcnt64_t = :: core :: ffi :: c_long ; pub type __fsblkcnt_t = :: core :: ffi :: c_ulong ; pub type __fsblkcnt64_t = :: core :: ffi :: c_ulong ; pub type __fsfilcnt_t = :: core :: ffi :: c_ulong ; pub type __fsfilcnt64_t = :: core :: ffi :: c_ulong ; pub type __fsword_t = :: core :: ffi :: c_long ; pub type __ssize_t = :: core :: ffi :: c_long ; pub type __syscall_slong_t = :: core :: ffi :: c_long ; pub type __syscall_ulong_t = :: core :: ffi :: c_ulong ; pub type __loff_t = __off64_t ; pub type __caddr_t = * mut :: core :: ffi :: c_char ; pub type __intptr_t = :: core :: ffi :: c_long ; pub type __socklen_t = :: core :: ffi :: c_uint ; pub type __sig_atomic_t = :: core :: ffi :: c_int ; pub type int_least8_t = __int_least8_t ; pub type int_least16_t = __int_least16_t ; pub type int_least32_t = __int_least32_t ; pub type int_least64_t = __int_least64_t ; pub type uint_least8_t = __uint_least8_t ; pub type uint_least16_t = __uint_least16_t ; pub type uint_least32_t = __uint_least32_t ; pub type uint_least64_t = __uint_least64_t ; pub type int_fast8_t = :: core :: ffi :: c_schar ; pub type int_fast16_t = :: core :: ffi :: c_long ; pub type int_fast32_t = :: core :: ffi :: c_long ; pub type int_fast64_t = :: core :: ffi :: c_long ; pub type uint_fast8_t = :: core :: ffi :: c_uchar ; pub type uint_fast16_t = :: core :: ffi :: c_ulong ; pub type uint_fast32_t = :: core :: ffi :: c_ulong ; pub type uint_fast64_t = :: core :: ffi :: c_ulong ; pub type intmax_t = __intmax_t ; pub type uintmax_t = __uintmax_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct lua_State { _unused : [u8 ; 0] , } # [doc = " Callback used to read num_bytes bytes from memory starting at address. If\n num_bytes is greater than 1, the value is read in little-endian from\n memory."] pub type rc_peek_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , num_bytes : u32 , ud : * mut :: core :: ffi :: c_void) -> u32 > ; pub const RC_MEMSIZE_8_BITS : _bindgen_ty_2 = 0 ; pub const RC_MEMSIZE_16_BITS : _bindgen_ty_2 = 1 ; pub const RC_MEMSIZE_24_BITS : _bindgen_ty_2 = 2 ; pub const RC_MEMSIZE_32_BITS : _bindgen_ty_2 = 3 ; pub const RC_MEMSIZE_LOW : _bindgen_ty_2 = 4 ; pub const RC_MEMSIZE_HIGH : _bindgen_ty_2 = 5 ; pub const RC_MEMSIZE_BIT_0 : _bindgen_ty_2 = 6 ; pub const RC_MEMSIZE_BIT_1 : _bindgen_ty_2 = 7 ; pub const RC_MEMSIZE_BIT_2 : _bindgen_ty_2 = 8 ; pub const RC_MEMSIZE_BIT_3 : _bindgen_ty_2 = 9 ; pub const RC_MEMSIZE_BIT_4 : _bindgen_ty_2 = 10 ; pub const RC_MEMSIZE_BIT_5 : _bindgen_ty_2 = 11 ; pub const RC_MEMSIZE_BIT_6 : _bindgen_ty_2 = 12 ; pub const RC_MEMSIZE_BIT_7 : _bindgen_ty_2 = 13 ; pub const RC_MEMSIZE_BITCOUNT : _bindgen_ty_2 = 14 ; pub const RC_MEMSIZE_16_BITS_BE : _bindgen_ty_2 = 15 ; pub const RC_MEMSIZE_24_BITS_BE : _bindgen_ty_2 = 16 ; pub const RC_MEMSIZE_32_BITS_BE : _bindgen_ty_2 = 17 ; pub const RC_MEMSIZE_FLOAT : _bindgen_ty_2 = 18 ; pub const RC_MEMSIZE_MBF32 : _bindgen_ty_2 = 19 ; pub const RC_MEMSIZE_MBF32_LE : _bindgen_ty_2 = 20 ; pub const RC_MEMSIZE_FLOAT_BE : _bindgen_ty_2 = 21 ; pub const RC_MEMSIZE_DOUBLE32 : _bindgen_ty_2 = 22 ; pub const RC_MEMSIZE_DOUBLE32_BE : _bindgen_ty_2 = 23 ; pub const RC_MEMSIZE_VARIABLE : _bindgen_ty_2 = 24 ; # [doc = "\\\n| Memory References                                                           |\n\\"] pub type _bindgen_ty_2 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memref_value_t { pub value : u32 , pub prior : u32 , pub size : u8 , pub changed : u8 , pub type_ : u8 , pub is_indirect : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memref_value_t"] [:: core :: mem :: size_of :: < rc_memref_value_t > () - 12usize] ; ["Alignment of rc_memref_value_t"] [:: core :: mem :: align_of :: < rc_memref_value_t > () - 4usize] ; ["Offset of field: rc_memref_value_t::value"] [:: core :: mem :: offset_of ! (rc_memref_value_t , value) - 0usize] ; ["Offset of field: rc_memref_value_t::prior"] [:: core :: mem :: offset_of ! (rc_memref_value_t , prior) - 4usize] ; ["Offset of field: rc_memref_value_t::size"] [:: core :: mem :: offset_of ! (rc_memref_value_t , size) - 8usize] ; ["Offset of field: rc_memref_value_t::changed"] [:: core :: mem :: offset_of ! (rc_memref_value_t , changed) - 9usize] ; ["Offset of field: rc_memref_value_t::type_"] [:: core :: mem :: offset_of ! (rc_memref_value_t , type_) - 10usize] ; ["Offset of field: rc_memref_value_t::is_indirect"] [:: core :: mem :: offset_of ! (rc_memref_value_t , is_indirect) - 11usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memref_t { pub value : rc_memref_value_t , pub address : u32 , pub next : * mut rc_memref_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memref_t"] [:: core :: mem :: size_of :: < rc_memref_t > () - 24usize] ; ["Alignment of rc_memref_t"] [:: core :: mem :: align_of :: < rc_memref_t > () - 8usize] ; ["Offset of field: rc_memref_t::value"] [:: core :: mem :: offset_of ! (rc_memref_t , value) - 0usize] ; ["Offset of field: rc_memref_t::address"] [:: core :: mem :: offset_of ! (rc_memref_t , address) - 12usize] ; ["Offset of field: rc_memref_t::next"] [:: core :: mem :: offset_of ! (rc_memref_t , next) - 16usize] ; } ; pub const RC_OPERAND_ADDRESS : _bindgen_ty_3 = 0 ; pub const RC_OPERAND_DELTA : _bindgen_ty_3 = 1 ; pub const RC_OPERAND_CONST : _bindgen_ty_3 = 2 ; pub const RC_OPERAND_FP : _bindgen_ty_3 = 3 ; pub const RC_OPERAND_LUA : _bindgen_ty_3 = 4 ; pub const RC_OPERAND_PRIOR : _bindgen_ty_3 = 5 ; pub const RC_OPERAND_BCD : _bindgen_ty_3 = 6 ; pub const RC_OPERAND_INVERTED : _bindgen_ty_3 = 7 ; pub const RC_OPERAND_RECALL : _bindgen_ty_3 = 8 ; # [doc = "\\\n| Operands                                                                    |\n\\"] pub type _bindgen_ty_3 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Copy , Clone)] pub struct rc_operand_t { pub value : rc_operand_t__bindgen_ty_1 , pub type_ : u8 , pub size : u8 , } # [repr (C)] # [derive (Copy , Clone)] pub union rc_operand_t__bindgen_ty_1 { pub memref : * mut rc_memref_t , pub num : u32 , pub dbl : f64 , pub luafunc : :: core :: ffi :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_operand_t__bindgen_ty_1"] [:: core :: mem :: size_of :: < rc_operand_t__bindgen_ty_1 > () - 8usize] ; ["Alignment of rc_operand_t__bindgen_ty_1"] [:: core :: mem :: align_of :: < rc_operand_t__bindgen_ty_1 > () - 8usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::memref"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , memref) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::num"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , num) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::dbl"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , dbl) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::luafunc"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , luafunc) - 0usize] ; } ; impl :: core :: fmt :: Debug for rc_operand_t__bindgen_ty_1 { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_operand_t__bindgen_ty_1 {{ union }}") } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_operand_t"] [:: core :: mem :: size_of :: < rc_operand_t > () - 16usize] ; ["Alignment of rc_operand_t"] [:: core :: mem :: align_of :: < rc_operand_t > () - 8usize] ; ["Offset of field: rc_operand_t::value"] [:: core :: mem :: offset_of ! (rc_operand_t , value) - 0usize] ; ["Offset of field: rc_operand_t::type_"] [:: core :: mem :: offset_of ! (rc_operand_t , type_) - 8usize] ; ["Offset of field: rc_operand_t::size"] [:: core :: mem :: offset_of ! (rc_operand_t , size) - 9usize] ; } ; impl :: core :: fmt :: Debug for rc_operand_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_operand_t {{ value: {:?}, type: {:?}, size: {:?} }}" , self . value , self . type_ , self . size) } } extern "C" { pub fn rc_operand_is_memref (operand : * const rc_operand_t) -> :: core :: ffi :: c_int ; } pub const RC_CONDITION_STANDARD : _bindgen_ty_4 = 0 ; pub const RC_CONDITION_PAUSE_IF : _bindgen_ty_4 = 1 ; pub const RC_CONDITION_RESET_IF : _bindgen_ty_4 = 2 ; pub const RC_CONDITION_MEASURED_IF : _bindgen_ty_4 = 3 ; pub const RC_CONDITION_TRIGGER : _bindgen_ty_4 = 4 ; pub const RC_CONDITION_MEASURED : _bindgen_ty_4 = 5 ; pub const RC_CONDITION_ADD_SOURCE : _bindgen_ty_4 = 6 ; pub const RC_CONDITION_SUB_SOURCE : _bindgen_ty_4 = 7 ; pub const RC_CONDITION_ADD_ADDRESS : _bindgen_ty_4 = 8 ; pub const RC_CONDITION_REMEMBER : _bindgen_ty_4 = 9 ; pub const RC_CONDITION_ADD_HITS : _bindgen_ty_4 = 10 ; pub const RC_CONDITION_SUB_HITS : _bindgen_ty_4 = 11 ; pub const RC_CONDITION_RESET_NEXT_IF : _bindgen_ty_4 = 12 ; pub const RC_CONDITION_AND_NEXT : _bindgen_ty_4 = 13 ; pub const RC_CONDITION_OR_NEXT : _bindgen_ty_4 = 14 ; # [doc = "\\\n| Conditions                                                                  |\n\\"] pub type _bindgen_ty_4 = :: core :: ffi :: c_uint ; pub const RC_OPERATOR_EQ : _bindgen_ty_5 = 0 ; pub const RC_OPERATOR_LT : _bindgen_ty_5 = 1 ; pub const RC_OPERATOR_LE : _bindgen_ty_5 = 2 ; pub const RC_OPERATOR_GT : _bindgen_ty_5 = 3 ; pub const RC_OPERATOR_GE : _bindgen_ty_5 = 4 ; pub const RC_OPERATOR_NE : _bindgen_ty_5 = 5 ; pub const RC_OPERATOR_NONE : _bindgen_ty_5 = 6 ; pub const RC_OPERATOR_MULT : _bindgen_ty_5 = 7 ; pub const RC_OPERATOR_DIV : _bindgen_ty_5 = 8 ; pub const RC_OPERATOR_AND : _bindgen_ty_5 = 9 ; pub const RC_OPERATOR_XOR : _bindgen_ty_5 = 10 ; pub const RC_OPERATOR_MOD : _bindgen_ty_5 = 11 ; pub const RC_OPERATOR_ADD : _bindgen_ty_5 = 12 ; pub const RC_OPERATOR_SUB : _bindgen_ty_5 = 13 ; pub type _bindgen_ty_5 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Copy , Clone)] pub struct rc_condition_t { pub operand1 : rc_operand_t , pub operand2 : rc_operand_t , pub required_hits : u32 , pub current_hits : u32 , pub next : * mut rc_condition_t , pub type_ : u8 , pub oper : u8 , pub pause : u8 , pub is_true : u8 , pub optimized_comparator : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_condition_t"] [:: core :: mem :: size_of :: < rc_condition_t > () - 56usize] ; ["Alignment of rc_condition_t"] [:: core :: mem :: align_of :: < rc_condition_t > () - 8usize] ; ["Offset of field: rc_condition_t::operand1"] [:: core :: mem :: offset_of ! (rc_condition_t , operand1) - 0usize] ; ["Offset of field: rc_condition_t::operand2"] [:: core :: mem :: offset_of ! (rc_condition_t , operand2) - 16usize] ; ["Offset of field: rc_condition_t::required_hits"] [:: core :: mem :: offset_of ! (rc_condition_t , required_hits) - 32usize] ; ["Offset of field: rc_condition_t::current_hits"] [:: core :: mem :: offset_of ! (rc_condition_t , current_hits) - 36usize] ; ["Offset of field: rc_condition_t::next"] [:: core :: mem :: offset_of ! (rc_condition_t , next) - 40usize] ; ["Offset of field: rc_condition_t::type_"] [:: core :: mem :: offset_of ! (rc_condition_t , type_) - 48usize] ; ["Offset of field: rc_condition_t::oper"] [:: core :: mem :: offset_of ! (rc_condition_t , oper) - 49usize] ; ["Offset of field: rc_condition_t::pause"] [:: core :: mem :: offset_of ! (rc_condition_t , pause) - 50usize] ; ["Offset of field: rc_condition_t::is_true"] [:: core :: mem :: offset_of ! (rc_condition_t , is_true) - 51usize] ; ["Offset of field: rc_condition_t::optimized_comparator"] [:: core :: mem :: offset_of ! (rc_condition_t , optimized_comparator) - 52usize] ; } ; impl :: core :: fmt :: Debug for rc_condition_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_condition_t {{ operand1: {:?}, operand2: {:?}, required_hits: {:?}, current_hits: {:?}, next: {:?}, type: {:?}, oper: {:?}, pause: {:?}, is_true: {:?}, optimized_comparator: {:?} }}" , self . operand1 , self . operand2 , self . required_hits , self . current_hits , self . next , self . type_ , self . oper , self . pause , self . is_true , self . optimized_comparator) } } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_condset_t { pub next : * mut rc_condset_t , pub conditions : * mut rc_condition_t , pub has_pause : u8 , pub is_paused : u8 , pub has_indirect_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_condset_t"] [:: core :: mem :: size_of :: < rc_condset_t > () - 24usize] ; ["Alignment of rc_condset_t"] [:: core :: mem :: align_of :: < rc_condset_t > () - 8usize] ; ["Offset of field: rc_condset_t::next"] [:: core :: mem :: offset_of ! (rc_condset_t , next) - 0usize] ; ["Offset of field: rc_condset_t::conditions"] [:: core :: mem :: offset_of ! (rc_condset_t , conditions) - 8usize] ; ["Offset of field: rc_condset_t::has_pause"] [:: core :: mem :: offset_of ! (rc_condset_t , has_pause) - 16usize] ; ["Offset of field: rc_condset_t::is_paused"] [:: core :: mem :: offset_of ! (rc_condset_t , is_paused) - 17usize] ; ["Offset of field: rc_condset_t::has_indirect_memrefs"] [:: core :: mem :: offset_of ! (rc_condset_t , has_indirect_memrefs) - 18usize] ; } ; pub const RC_TRIGGER_STATE_INACTIVE : _bindgen_ty_6 = 0 ; pub const RC_TRIGGER_STATE_WAITING : _bindgen_ty_6 = 1 ; pub const RC_TRIGGER_STATE_ACTIVE : _bindgen_ty_6 = 2 ; pub const RC_TRIGGER_STATE_PAUSED : _bindgen_ty_6 = 3 ; pub const RC_TRIGGER_STATE_RESET : _bindgen_ty_6 = 4 ; pub const RC_TRIGGER_STATE_TRIGGERED : _bindgen_ty_6 = 5 ; pub const RC_TRIGGER_STATE_PRIMED : _bindgen_ty_6 = 6 ; pub const RC_TRIGGER_STATE_DISABLED : _bindgen_ty_6 = 7 ; # [doc = "\\\n| Trigger                                                                     |\n\\"] pub type _bindgen_ty_6 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_trigger_t { pub requirement : * mut rc_condset_t , pub alternative : * mut rc_condset_t , pub memrefs : * mut rc_memref_t , pub measured_value : u32 , pub measured_target : u32 , pub state : u8 , pub has_hits : u8 , pub has_required_hits : u8 , pub measured_as_percent : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_trigger_t"] [:: core :: mem :: size_of :: < rc_trigger_t > () - 40usize] ; ["Alignment of rc_trigger_t"] [:: core :: mem :: align_of :: < rc_trigger_t > () - 8usize] ; ["Offset of field: rc_trigger_t::requirement"] [:: core :: mem :: offset_of ! (rc_trigger_t , requirement) - 0usize] ; ["Offset of field: rc_trigger_t::alternative"] [:: core :: mem :: offset_of ! (rc_trigger_t , alternative) - 8usize] ; ["Offset of field: rc_trigger_t::memrefs"] [:: core :: mem :: offset_of ! (rc_trigger_t , memrefs) - 16usize] ; ["Offset of field: rc_trigger_t::measured_value"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_value) - 24usize] ; ["Offset of field: rc_trigger_t::measured_target"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_target) - 28usize] ; ["Offset of field: rc_trigger_t::state"] [:: core :: mem :: offset_of ! (rc_trigger_t , state) - 32usize] ; ["Offset of field: rc_trigger_t::has_hits"] [:: core :: mem :: offset_of ! (rc_trigger_t , has_hits) - 33usize] ; ["Offset of field: rc_trigger_t::has_required_hits"] [:: core :: mem :: offset_of ! (rc_trigger_t , has_required_hits) - 34usize] ; ["Offset of field: rc_trigger_t::measured_as_percent"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_as_percent) - 35usize] ; } ; extern "C" { pub fn rc_trigger_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_trigger (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_trigger_t ; } extern "C" { pub fn rc_evaluate_trigger (trigger : * mut rc_trigger_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_test_trigger (trigger : * mut rc_trigger_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_trigger (self_ : * mut rc_trigger_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_value_t { pub value : rc_memref_value_t , pub conditions : * mut rc_condset_t , pub memrefs : * mut rc_memref_t , pub name : * const :: core :: ffi :: c_char , pub next : * mut rc_value_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_value_t"] [:: core :: mem :: size_of :: < rc_value_t > () - 48usize] ; ["Alignment of rc_value_t"] [:: core :: mem :: align_of :: < rc_value_t > () - 8usize] ; ["Offset of field: rc_value_t::value"] [:: core :: mem :: offset_of ! (rc_value_t , value) - 0usize] ; ["Offset of field: rc_value_t::conditions"] [:: core :: mem :: offset_of ! (rc_value_t , conditions) - 16usize] ; ["Offset of field: rc_value_t::memrefs"] [:: core :: mem :: offset_of ! (rc_value_t , memrefs) - 24usize] ; ["Offset of field: rc_value_t::name"] [:: core :: mem :: offset_of ! (rc_value_t , name) - 32usize] ; ["Offset of field: rc_value_t::next"] [:: core :: mem :: offset_of ! (rc_value_t , next) - 40usize] ; } ; extern "C" { pub fn rc_value_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_value (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_value_t ; } extern "C" { pub fn rc_evaluate_value (value : * mut rc_value_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> i32 ; } pub const RC_LBOARD_STATE_INACTIVE : _bindgen_ty_7 = 0 ; pub const RC_LBOARD_STATE_WAITING : _bindgen_ty_7 = 1 ; pub const RC_LBOARD_STATE_ACTIVE : _bindgen_ty_7 = 2 ; pub const RC_LBOARD_STATE_STARTED : _bindgen_ty_7 = 3 ; pub const RC_LBOARD_STATE_CANCELED : _bindgen_ty_7 = 4 ; pub const RC_LBOARD_STATE_TRIGGERED : _bindgen_ty_7 = 5 ; pub const RC_LBOARD_STATE_DISABLED : _bindgen_ty_7 = 6 ; # [doc = "\\\n| Leaderboards                                                                |\n\\"] pub type _bindgen_ty_7 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_lboard_t { pub start : rc_trigger_t , pub submit : rc_trigger_t , pub cancel : rc_trigger_t , pub value : rc_value_t , pub progress : * mut rc_value_t , pub memrefs : * mut rc_memref_t , pub state : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_lboard_t"] [:: core :: mem :: size_of :: < rc_lboard_t > () - 192usize] ; ["Alignment of rc_lboard_t"] [:: core :: mem :: align_of :: < rc_lboard_t > () - 8usize] ; ["Offset of field: rc_lboard_t::start"] [:: core :: mem :: offset_of ! (rc_lboard_t , start) - 0usize] ; ["Offset of field: rc_lboard_t::submit"] [:: core :: mem :: offset_of ! (rc_lboard_t , submit) - 40usize] ; ["Offset of field: rc_lboard_t::cancel"] [:: core :: mem :: offset_of ! (rc_lboard_t , cancel) - 80usize] ; ["Offset of field: rc_lboard_t::value"] [:: core :: mem :: offset_of ! (rc_lboard_t , value) - 120usize] ; ["Offset of field: rc_lboard_t::progress"] [:: core :: mem :: offset_of ! (rc_lboard_t , progress) - 168usize] ; ["Offset of field: rc_lboard_t::memrefs"] [:: core :: mem :: offset_of ! (rc_lboard_t , memrefs) - 176usize] ; ["Offset of field: rc_lboard_t::state"] [:: core :: mem :: offset_of ! (rc_lboard_t , state) - 184usize] ; } ; extern "C" { pub fn rc_lboard_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_lboard (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_lboard_t ; } extern "C" { pub fn rc_evaluate_lboard (lboard : * mut rc_lboard_t , value : * mut i32 , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_lboard (lboard : * mut rc_lboard_t) ; } pub const RC_FORMAT_FRAMES : _bindgen_ty_8 = 0 ; pub const RC_FORMAT_SECONDS : _bindgen_ty_8 = 1 ; pub const RC_FORMAT_CENTISECS : _bindgen_ty_8 = 2 ; pub const RC_FORMAT_SCORE : _bindgen_ty_8 = 3 ; pub const RC_FORMAT_VALUE : _bindgen_ty_8 = 4 ; pub const RC_FORMAT_MINUTES : _bindgen_ty_8 = 5 ; pub const RC_FORMAT_SECONDS_AS_MINUTES : _bindgen_ty_8 = 6 ; pub const RC_FORMAT_FLOAT1 : _bindgen_ty_8 = 7 ; pub const RC_FORMAT_FLOAT2 : _bindgen_ty_8 = 8 ; pub const RC_FORMAT_FLOAT3 : _bindgen_ty_8 = 9 ; pub const RC_FORMAT_FLOAT4 : _bindgen_ty_8 = 10 ; pub const RC_FORMAT_FLOAT5 : _bindgen_ty_8 = 11 ; pub const RC_FORMAT_FLOAT6 : _bindgen_ty_8 = 12 ; pub const RC_FORMAT_FIXED1 : _bindgen_ty_8 = 13 ; pub const RC_FORMAT_FIXED2 : _bindgen_ty_8 = 14 ; pub const RC_FORMAT_FIXED3 : _bindgen_ty_8 = 15 ; pub const RC_FORMAT_TENS : _bindgen_ty_8 = 16 ; pub const RC_FORMAT_HUNDREDS : _bindgen_ty_8 = 17 ; pub const RC_FORMAT_THOUSANDS : _bindgen_ty_8 = 18 ; pub const RC_FORMAT_UNSIGNED_VALUE : _bindgen_ty_8 = 19 ; # [doc = "\\\n| Value formatting                                                            |\n\\"] pub type _bindgen_ty_8 = :: core :: ffi :: c_uint ; extern "C" { pub fn rc_parse_format (format_str : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_format_value (buffer : * mut :: core :: ffi :: c_char , size : :: core :: ffi :: c_int , value : i32 , format : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_lookup_item_t { pub first : u32 , pub last : u32 , pub left : * mut rc_richpresence_lookup_item_t , pub right : * mut rc_richpresence_lookup_item_t , pub label : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_lookup_item_t"] [:: core :: mem :: size_of :: < rc_richpresence_lookup_item_t > () - 32usize] ; ["Alignment of rc_richpresence_lookup_item_t"] [:: core :: mem :: align_of :: < rc_richpresence_lookup_item_t > () - 8usize] ; ["Offset of field: rc_richpresence_lookup_item_t::first"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , first) - 0usize] ; ["Offset of field: rc_richpresence_lookup_item_t::last"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , last) - 4usize] ; ["Offset of field: rc_richpresence_lookup_item_t::left"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , left) - 8usize] ; ["Offset of field: rc_richpresence_lookup_item_t::right"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , right) - 16usize] ; ["Offset of field: rc_richpresence_lookup_item_t::label"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , label) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_lookup_t { pub root : * mut rc_richpresence_lookup_item_t , pub next : * mut rc_richpresence_lookup_t , pub name : * const :: core :: ffi :: c_char , pub default_label : * const :: core :: ffi :: c_char , pub format : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_lookup_t"] [:: core :: mem :: size_of :: < rc_richpresence_lookup_t > () - 40usize] ; ["Alignment of rc_richpresence_lookup_t"] [:: core :: mem :: align_of :: < rc_richpresence_lookup_t > () - 8usize] ; ["Offset of field: rc_richpresence_lookup_t::root"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , root) - 0usize] ; ["Offset of field: rc_richpresence_lookup_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , next) - 8usize] ; ["Offset of field: rc_richpresence_lookup_t::name"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , name) - 16usize] ; ["Offset of field: rc_richpresence_lookup_t::default_label"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , default_label) - 24usize] ; ["Offset of field: rc_richpresence_lookup_t::format"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , format) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_display_part_t { pub next : * mut rc_richpresence_display_part_t , pub text : * const :: core :: ffi :: c_char , pub lookup : * mut rc_richpresence_lookup_t , pub value : * mut rc_memref_value_t , pub display_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_display_part_t"] [:: core :: mem :: size_of :: < rc_richpresence_display_part_t > () - 40usize] ; ["Alignment of rc_richpresence_display_part_t"] [:: core :: mem :: align_of :: < rc_richpresence_display_part_t > () - 8usize] ; ["Offset of field: rc_richpresence_display_part_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , next) - 0usize] ; ["Offset of field: rc_richpresence_display_part_t::text"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , text) - 8usize] ; ["Offset of field: rc_richpresence_display_part_t::lookup"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , lookup) - 16usize] ; ["Offset of field: rc_richpresence_display_part_t::value"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , value) - 24usize] ; ["Offset of field: rc_richpresence_display_part_t::display_type"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , display_type) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_display_t { pub trigger : rc_trigger_t , pub next : * mut rc_richpresence_display_t , pub display : * mut rc_richpresence_display_part_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_display_t"] [:: core :: mem :: size_of :: < rc_richpresence_display_t > () - 56usize] ; ["Alignment of rc_richpresence_display_t"] [:: core :: mem :: align_of :: < rc_richpresence_display_t > () - 8usize] ; ["Offset of field: rc_richpresence_display_t::trigger"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , trigger) - 0usize] ; ["Offset of field: rc_richpresence_display_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , next) - 40usize] ; ["Offset of field: rc_richpresence_display_t::display"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , display) - 48usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_t { pub first_display : * mut rc_richpresence_display_t , pub first_lookup : * mut rc_richpresence_lookup_t , pub memrefs : * mut rc_memref_t , pub variables : * mut rc_value_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_t"] [:: core :: mem :: size_of :: < rc_richpresence_t > () - 32usize] ; ["Alignment of rc_richpresence_t"] [:: core :: mem :: align_of :: < rc_richpresence_t > () - 8usize] ; ["Offset of field: rc_richpresence_t::first_display"] [:: core :: mem :: offset_of ! (rc_richpresence_t , first_display) - 0usize] ; ["Offset of field: rc_richpresence_t::first_lookup"] [:: core :: mem :: offset_of ! (rc_richpresence_t , first_lookup) - 8usize] ; ["Offset of field: rc_richpresence_t::memrefs"] [:: core :: mem :: offset_of ! (rc_richpresence_t , memrefs) - 16usize] ; ["Offset of field: rc_richpresence_t::variables"] [:: core :: mem :: offset_of ! (rc_richpresence_t , variables) - 24usize] ; } ; extern "C" { pub fn rc_richpresence_size (script : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_richpresence_size_lines (script : * const :: core :: ffi :: c_char , lines_read : * mut :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_richpresence (buffer : * mut :: core :: ffi :: c_void , script : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_richpresence_t ; } extern "C" { pub fn rc_evaluate_richpresence (richpresence : * mut rc_richpresence_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_update_richpresence (richpresence : * mut rc_richpresence_t , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) ; } extern "C" { pub fn rc_get_richpresence_display_string (richpresence : * mut rc_richpresence_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_richpresence (self_ : * mut rc_richpresence_t) ; } # [doc = " A block of memory for variable length data (like strings and arrays)."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_buffer_chunk_t { pub write : * mut u8 , pub end : * mut u8 , pub start : * mut u8 , pub next : * mut rc_buffer_chunk_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_buffer_chunk_t"] [:: core :: mem :: size_of :: < rc_buffer_chunk_t > () - 32usize] ; ["Alignment of rc_buffer_chunk_t"] [:: core :: mem :: align_of :: < rc_buffer_chunk_t > () - 8usize] ; ["Offset of field: rc_buffer_chunk_t::write"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , write) - 0usize] ; ["Offset of field: rc_buffer_chunk_t::end"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , end) - 8usize] ; ["Offset of field: rc_buffer_chunk_t::start"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , start) - 16usize] ; ["Offset of field: rc_buffer_chunk_t::next"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , next) - 24usize] ; } ; # [doc = " A preallocated block of memory for variable length data (like strings and arrays)."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_buffer_t { pub chunk : rc_buffer_chunk_t , pub data : [u8 ; 256usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_buffer_t"] [:: core :: mem :: size_of :: < rc_buffer_t > () - 288usize] ; ["Alignment of rc_buffer_t"] [:: core :: mem :: align_of :: < rc_buffer_t > () - 8usize] ; ["Offset of field: rc_buffer_t::chunk"] [:: core :: mem :: offset_of ! (rc_buffer_t , chunk) - 0usize] ; ["Offset of field: rc_buffer_t::data"] [:: core :: mem :: offset_of ! (rc_buffer_t , data) - 32usize] ; } ; extern "C" { pub fn rc_buffer_init (buffer : * mut rc_buffer_t) ; } extern "C" { pub fn rc_buffer_destroy (buffer : * mut rc_buffer_t) ; } extern "C" { pub fn rc_buffer_reserve (buffer : * mut rc_buffer_t , amount : usize) -> * mut u8 ; } extern "C" { pub fn rc_buffer_consume (buffer : * mut rc_buffer_t , start : * const u8 , end : * mut u8) ; } extern "C" { pub fn rc_buffer_alloc (buffer : * mut rc_buffer_t , amount : usize) -> * mut :: core :: ffi :: c_void ; } extern "C" { pub fn rc_buffer_strcpy (buffer : * mut rc_buffer_t , src : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn rc_buffer_strncpy (buffer : * mut rc_buffer_t , src : * const :: core :: ffi :: c_char , len : usize) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn rc_djb2 (input : * const :: core :: ffi :: c_char) -> u32 ; } extern "C" { pub fn rc_format_md5 (checksum : * mut :: core :: ffi :: c_char , digest : * const u8) ; } # [doc = " A constructed request to send to the retroachievements server."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_request_t { pub url : * const :: core :: ffi :: c_char , pub post_data : * const :: core :: ffi :: c_char , pub content_type : * const :: core :: ffi :: c_char , pub buffer : rc_buffer_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_request_t"] [:: core :: mem :: size_of :: < rc_api_request_t > () - 312usize] ; ["Alignment of rc_api_request_t"] [:: core :: mem :: align_of :: < rc_api_request_t > () - 8usize] ; ["Offset of field: rc_api_request_t::url"] [:: core :: mem :: offset_of ! (rc_api_request_t , url) - 0usize] ; ["Offset of field: rc_api_request_t::post_data"] [:: core :: mem :: offset_of ! (rc_api_request_t , post_data) - 8usize] ; ["Offset of field: rc_api_request_t::content_type"] [:: core :: mem :: offset_of ! (rc_api_request_t , content_type) - 16usize] ; ["Offset of field: rc_api_request_t::buffer"] [:: core :: mem :: offset_of ! (rc_api_request_t , buffer) - 24usize] ; } ; # [doc = " Common attributes for all server responses."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_response_t { pub succeeded : :: core :: ffi :: c_int , pub error_message : * const :: core :: ffi :: c_char , pub error_code : * const :: core :: ffi :: c_char , pub buffer : rc_buffer_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_response_t"] [:: core :: mem :: size_of :: < rc_api_response_t > () - 312usize] ; ["Alignment of rc_api_response_t"] [:: core :: mem :: align_of :: < rc_api_response_t > () - 8usize] ; ["Offset of field: rc_api_response_t::succeeded"] [:: core :: mem :: offset_of ! (rc_api_response_t , succeeded) - 0usize] ; ["Offset of field: rc_api_response_t::error_message"] [:: core :: mem :: offset_of ! (rc_api_response_t , error_message) - 8usize] ; ["Offset of field: rc_api_response_t::error_code"] [:: core :: mem :: offset_of ! (rc_api_response_t , error_code) - 16usize] ; ["Offset of field: rc_api_response_t::buffer"] [:: core :: mem :: offset_of ! (rc_api_response_t , buffer) - 24usize] ; } ; extern "C" { pub fn rc_api_destroy_request (request : * mut rc_api_request_t) ; } extern "C" { pub fn rc_api_set_host (hostname : * const :: core :: ffi :: c_char) ; } extern "C" { pub fn rc_api_set_image_host (hostname : * const :: core :: ffi :: c_char) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_server_response_t { pub body : * const :: core :: ffi :: c_char , pub body_length : usize , pub http_status_code : :: core :: ffi :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_server_response_t"] [:: core :: mem :: size_of :: < rc_api_server_response_t > () - 24usize] ; ["Alignment of rc_api_server_response_t"] [:: core :: mem :: align_of :: < rc_api_server_response_t > () - 8usize] ; ["Offset of field: rc_api_server_response_t::body"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , body) - 0usize] ; ["Offset of field: rc_api_server_response_t::body_length"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , body_length) - 8usize] ; ["Offset of field: rc_api_server_response_t::http_status_code"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , http_status_code) - 16usize] ; } ; pub const RC_API_SERVER_RESPONSE_CLIENT_ERROR : _bindgen_ty_9 = - 1 ; pub const RC_API_SERVER_RESPONSE_RETRYABLE_CLIENT_ERROR : _bindgen_ty_9 = - 2 ; pub type _bindgen_ty_9 = :: core :: ffi :: c_int ; pub type clock_t = __clock_t ; pub type time_t = __time_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct tm { pub tm_sec : :: core :: ffi :: c_int , pub tm_min : :: core :: ffi :: c_int , pub tm_hour : :: core :: ffi :: c_int , pub tm_mday : :: core :: ffi :: c_int , pub tm_mon : :: core :: ffi :: c_int , pub tm_year : :: core :: ffi :: c_int , pub tm_wday : :: core :: ffi :: c_int , pub tm_yday : :: core :: ffi :: c_int , pub tm_isdst : :: core :: ffi :: c_int , pub tm_gmtoff : :: core :: ffi :: c_long , pub tm_zone : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of tm"] [:: core :: mem :: size_of :: < tm > () - 56usize] ; ["Alignment of tm"] [:: core :: mem :: align_of :: < tm > () - 8usize] ; ["Offset of field: tm::tm_sec"] [:: core :: mem :: offset_of ! (tm , tm_sec) - 0usize] ; ["Offset of field: tm::tm_min"] [:: core :: mem :: offset_of ! (tm , tm_min) - 4usize] ; ["Offset of field: tm::tm_hour"] [:: core :: mem :: offset_of ! (tm , tm_hour) - 8usize] ; ["Offset of field: tm::tm_mday"] [:: core :: mem :: offset_of ! (tm , tm_mday) - 12usize] ; ["Offset of field: tm::tm_mon"] [:: core :: mem :: offset_of ! (tm , tm_mon) - 16usize] ; ["Offset of field: tm::tm_year"] [:: core :: mem :: offset_of ! (tm , tm_year) - 20usize] ; ["Offset of field: tm::tm_wday"] [:: core :: mem :: offset_of ! (tm , tm_wday) - 24usize] ; ["Offset of field: tm::tm_yday"] [:: core :: mem :: offset_of ! (tm , tm_yday) - 28usize] ; ["Offset of field: tm::tm_isdst"] [:: core :: mem :: offset_of ! (tm , tm_isdst) - 32usize] ; ["Offset of field: tm::tm_gmtoff"] [:: core :: mem :: offset_of ! (tm , tm_gmtoff) - 40usize] ; ["Offset of field: tm::tm_zone"] [:: core :: mem :: offset_of ! (tm , tm_zone) - 48usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct timespec { pub tv_sec : __time_t , pub tv_nsec : __syscall_slong_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of timespec"] [:: core :: mem :: size_of :: < timespec > () - 16usize] ; ["Alignment of timespec"] [:: core :: mem :: align_of :: < timespec > () - 8usize] ; ["Offset of field: timespec::tv_sec"] [:: core :: mem :: offset_of ! (timespec , tv_sec) - 0usize] ; ["Offset of field: timespec::tv_nsec"] [:: core :: mem :: offset_of ! (timespec , tv_nsec) - 8usize] ; } ; pub type clockid_t = __clockid_t ; pub type timer_t = __timer_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct itimerspec { pub it_interval : timespec , pub it_value : timespec , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of itimerspec"] [:: core :: mem :: size_of :: < itimerspec > () - 32usize] ; ["Alignment of itimerspec"] [:: core :: mem :: align_of :: < itimerspec > () - 8usize] ; ["Offset of field: itimerspec::it_interval"] [:: core :: mem :: offset_of ! (itimerspec , it_interval) - 0usize] ; ["Offset of field: itimerspec::it_value"] [:: core :: mem :: offset_of ! (itimerspec , it_value) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct sigevent { _unused : [u8 ; 0] , } pub type pid_t = __pid_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __locale_struct { pub __locales : [* mut __locale_data ; 13usize] , pub __ctype_b : * const :: core :: ffi :: c_ushort , pub __ctype_tolower : * const :: core :: ffi :: c_int , pub __ctype_toupper : * const :: core :: ffi :: c_int , pub __names : [* const :: core :: ffi :: c_char ; 13usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __locale_struct"] [:: core :: mem :: size_of :: < __locale_struct > () - 232usize] ; ["Alignment of __locale_struct"] [:: core :: mem :: align_of :: < __locale_struct > () - 8usize] ; ["Offset of field: __locale_struct::__locales"] [:: core :: mem :: offset_of ! (__locale_struct , __locales) - 0usize] ; ["Offset of field: __locale_struct::__ctype_b"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_b) - 104usize] ; ["Offset of field: __locale_struct::__ctype_tolower"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_tolower) - 112usize] ; ["Offset of field: __locale_struct::__ctype_toupper"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_toupper) - 120usize] ; ["Offset of field: __locale_struct::__names"] [:: core :: mem :: offset_of ! (__locale_struct , __names) - 128usize] ; } ; pub type __locale_t = * mut __locale_struct ; pub type locale_t = __locale_t ; extern "C" { pub fn clock () -> clock_t ; } extern "C" { pub fn time (__timer : * mut time_t) -> time_t ; } extern "C" { pub fn difftime (__time1 : time_t , __time0 : time_t) -> f64 ; } extern "C" { pub fn mktime (__tp : * mut tm) -> time_t ; } extern "C" { pub fn strftime (__s : * mut :: core :: ffi :: c_char , __maxsize : usize , __format : * const :: core :: ffi :: c_char , __tp : * const tm) -> usize ; } extern "C" { pub fn strftime_l (__s : * mut :: core :: ffi :: c_char , __maxsize : usize , __format : * const :: core :: ffi :: c_char , __tp : * const tm , __loc : locale_t) -> usize ; } extern "C" { pub fn gmtime (__timer : * const time_t) -> * mut tm ; } extern "C" { pub fn localtime (__timer : * const time_t) -> * mut tm ; } extern "C" { pub fn gmtime_r (__timer : * const time_t , __tp : * mut tm) -> * mut tm ; } extern "C" { pub fn localtime_r (__timer : * const time_t , __tp : * mut tm) -> * mut tm ; } extern "C" { pub fn asctime (__tp : * const tm) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn ctime (__timer : * const time_t) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn asctime_r (__tp : * const tm , __buf : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn ctime_r (__timer : * const time_t , __buf : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub static mut __tzname : [* mut :: core :: ffi :: c_char ; 2usize] ; } extern "C" { pub static mut __daylight : :: core :: ffi :: c_int ; } extern "C" { pub static mut __timezone : :: core :: ffi :: c_long ; } extern "C" { pub static mut tzname : [* mut :: core :: ffi :: c_char ; 2usize] ; } extern "C" { pub fn tzset () ; } extern "C" { pub static mut daylight : :: core :: ffi :: c_int ; } extern "C" { pub static mut timezone : :: core :: ffi :: c_long ; } extern "C" { pub fn timegm (__tp : * mut tm) -> time_t ; } extern "C" { pub fn timelocal (__tp : * mut tm) -> time_t ; } extern "C" { pub fn dysize (__year : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn nanosleep (__requested_time : * const timespec , __remaining : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_getres (__clock_id : clockid_t , __res : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_gettime (__clock_id : clockid_t , __tp : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_settime (__clock_id : clockid_t , __tp : * const timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_nanosleep (__clock_id : clockid_t , __flags : :: core :: ffi :: c_int , __req : * const timespec , __rem : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_getcpuclockid (__pid : pid_t , __clock_id : * mut clockid_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_create (__clock_id : clockid_t , __evp : * mut sigevent , __timerid : * mut timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_delete (__timerid : timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_settime (__timerid : timer_t , __flags : :: core :: ffi :: c_int , __value : * const itimerspec , __ovalue : * mut itimerspec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_gettime (__timerid : timer_t , __value : * mut itimerspec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_getoverrun (__timerid : timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timespec_get (__ts : * mut timespec , __base : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } # [doc = " API parameters for a login request.\n If both password and api_token are provided, api_token will be ignored."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_login_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub password : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_login_request_t"] [:: core :: mem :: size_of :: < rc_api_login_request_t > () - 24usize] ; ["Alignment of rc_api_login_request_t"] [:: core :: mem :: align_of :: < rc_api_login_request_t > () - 8usize] ; ["Offset of field: rc_api_login_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , username) - 0usize] ; ["Offset of field: rc_api_login_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_login_request_t::password"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , password) - 16usize] ; } ; # [doc = " Response data for a login request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_login_response_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub score : u32 , pub score_softcore : u32 , pub num_unread_messages : u32 , pub display_name : * const :: core :: ffi :: c_char , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_login_response_t"] [:: core :: mem :: size_of :: < rc_api_login_response_t > () - 352usize] ; ["Alignment of rc_api_login_response_t"] [:: core :: mem :: align_of :: < rc_api_login_response_t > () - 8usize] ; ["Offset of field: rc_api_login_response_t::username"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , username) - 0usize] ; ["Offset of field: rc_api_login_response_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , api_token) - 8usize] ; ["Offset of field: rc_api_login_response_t::score"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , score) - 16usize] ; ["Offset of field: rc_api_login_response_t::score_softcore"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , score_softcore) - 20usize] ; ["Offset of field: rc_api_login_response_t::num_unread_messages"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , num_unread_messages) - 24usize] ; ["Offset of field: rc_api_login_response_t::display_name"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , display_name) - 32usize] ; ["Offset of field: rc_api_login_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , response) - 40usize] ; } ; extern "C" { pub fn rc_api_init_login_request (request : * mut rc_api_request_t , api_params : * const rc_api_login_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_login_response (response : * mut rc_api_login_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_login_server_response (response : * mut rc_api_login_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_login_response (response : * mut rc_api_login_response_t) ; } # [doc = " API parameters for a start session request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_start_session_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub game_hash : * const :: core :: ffi :: c_char , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_start_session_request_t"] [:: core :: mem :: size_of :: < rc_api_start_session_request_t > () - 40usize] ; ["Alignment of rc_api_start_session_request_t"] [:: core :: mem :: align_of :: < rc_api_start_session_request_t > () - 8usize] ; ["Offset of field: rc_api_start_session_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , username) - 0usize] ; ["Offset of field: rc_api_start_session_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_start_session_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_start_session_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_start_session_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , hardcore) - 32usize] ; } ; # [doc = " Response data for an achievement unlock."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_unlock_entry_t { pub achievement_id : u32 , pub when : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_unlock_entry_t"] [:: core :: mem :: size_of :: < rc_api_unlock_entry_t > () - 16usize] ; ["Alignment of rc_api_unlock_entry_t"] [:: core :: mem :: align_of :: < rc_api_unlock_entry_t > () - 8usize] ; ["Offset of field: rc_api_unlock_entry_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_unlock_entry_t , achievement_id) - 0usize] ; ["Offset of field: rc_api_unlock_entry_t::when"] [:: core :: mem :: offset_of ! (rc_api_unlock_entry_t , when) - 8usize] ; } ; # [doc = " Response data for a start session request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_start_session_response_t { pub hardcore_unlocks : * mut rc_api_unlock_entry_t , pub unlocks : * mut rc_api_unlock_entry_t , pub num_hardcore_unlocks : u32 , pub num_unlocks : u32 , pub server_now : time_t , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_start_session_response_t"] [:: core :: mem :: size_of :: < rc_api_start_session_response_t > () - 344usize] ; ["Alignment of rc_api_start_session_response_t"] [:: core :: mem :: align_of :: < rc_api_start_session_response_t > () - 8usize] ; ["Offset of field: rc_api_start_session_response_t::hardcore_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , hardcore_unlocks) - 0usize] ; ["Offset of field: rc_api_start_session_response_t::unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , unlocks) - 8usize] ; ["Offset of field: rc_api_start_session_response_t::num_hardcore_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , num_hardcore_unlocks) - 16usize] ; ["Offset of field: rc_api_start_session_response_t::num_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , num_unlocks) - 20usize] ; ["Offset of field: rc_api_start_session_response_t::server_now"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , server_now) - 24usize] ; ["Offset of field: rc_api_start_session_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_start_session_request (request : * mut rc_api_request_t , api_params : * const rc_api_start_session_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_start_session_response (response : * mut rc_api_start_session_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_start_session_server_response (response : * mut rc_api_start_session_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_start_session_response (response : * mut rc_api_start_session_response_t) ; } # [doc = " API parameters for a fetch user unlocks request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_user_unlocks_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_user_unlocks_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_user_unlocks_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_user_unlocks_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_user_unlocks_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , hardcore) - 20usize] ; } ; # [doc = " Response data for a fetch user unlocks request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_user_unlocks_response_t { pub achievement_ids : * mut u32 , pub num_achievement_ids : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_user_unlocks_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_user_unlocks_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_user_unlocks_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_user_unlocks_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::achievement_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , achievement_ids) - 0usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::num_achievement_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , num_achievement_ids) - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_user_unlocks_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_user_unlocks_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_user_unlocks_response (response : * mut rc_api_fetch_user_unlocks_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_user_unlocks_server_response (response : * mut rc_api_fetch_user_unlocks_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_user_unlocks_response (response : * mut rc_api_fetch_user_unlocks_response_t) ; } # [doc = " API parameters for a fetch code notes request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_code_notes_request_t { pub game_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_code_notes_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_code_notes_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_code_notes_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_code_notes_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_code_notes_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_request_t , game_id) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_code_note_t { pub address : u32 , pub author : * const :: core :: ffi :: c_char , pub note : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_code_note_t"] [:: core :: mem :: size_of :: < rc_api_code_note_t > () - 24usize] ; ["Alignment of rc_api_code_note_t"] [:: core :: mem :: align_of :: < rc_api_code_note_t > () - 8usize] ; ["Offset of field: rc_api_code_note_t::address"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , address) - 0usize] ; ["Offset of field: rc_api_code_note_t::author"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , author) - 8usize] ; ["Offset of field: rc_api_code_note_t::note"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , note) - 16usize] ; } ; # [doc = " Response data for a fetch code notes request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_code_notes_response_t { pub notes : * mut rc_api_code_note_t , pub num_notes : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_code_notes_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_code_notes_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_code_notes_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_code_notes_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::notes"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , notes) - 0usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::num_notes"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , num_notes) - 8usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_code_notes_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_code_notes_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_code_notes_response (response : * mut rc_api_fetch_code_notes_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_code_notes_server_response (response : * mut rc_api_fetch_code_notes_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_code_notes_response (response : * mut rc_api_fetch_code_notes_response_t) ; } # [doc = " API parameters for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_code_note_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub address : u32 , pub note : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_code_note_request_t"] [:: core :: mem :: size_of :: < rc_api_update_code_note_request_t > () - 32usize] ; ["Alignment of rc_api_update_code_note_request_t"] [:: core :: mem :: align_of :: < rc_api_update_code_note_request_t > () - 8usize] ; ["Offset of field: rc_api_update_code_note_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_code_note_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_code_note_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_update_code_note_request_t::address"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , address) - 20usize] ; ["Offset of field: rc_api_update_code_note_request_t::note"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , note) - 24usize] ; } ; # [doc = " Response data for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_code_note_response_t { pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_code_note_response_t"] [:: core :: mem :: size_of :: < rc_api_update_code_note_response_t > () - 312usize] ; ["Alignment of rc_api_update_code_note_response_t"] [:: core :: mem :: align_of :: < rc_api_update_code_note_response_t > () - 8usize] ; ["Offset of field: rc_api_update_code_note_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_response_t , response) - 0usize] ; } ; extern "C" { pub fn rc_api_init_update_code_note_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_code_note_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_code_note_response (response : * mut rc_api_update_code_note_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_code_note_server_response (response : * mut rc_api_update_code_note_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_code_note_response (response : * mut rc_api_update_code_note_response_t) ; } # [doc = " API parameters for an update achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_achievement_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub game_id : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub badge : * const :: core :: ffi :: c_char , pub trigger : * const :: core :: ffi :: c_char , pub points : u32 , pub category : u32 , pub type_ : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_achievement_request_t"] [:: core :: mem :: size_of :: < rc_api_update_achievement_request_t > () - 72usize] ; ["Alignment of rc_api_update_achievement_request_t"] [:: core :: mem :: align_of :: < rc_api_update_achievement_request_t > () - 8usize] ; ["Offset of field: rc_api_update_achievement_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_achievement_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_achievement_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_update_achievement_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , game_id) - 20usize] ; ["Offset of field: rc_api_update_achievement_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , title) - 24usize] ; ["Offset of field: rc_api_update_achievement_request_t::description"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , description) - 32usize] ; ["Offset of field: rc_api_update_achievement_request_t::badge"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , badge) - 40usize] ; ["Offset of field: rc_api_update_achievement_request_t::trigger"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , trigger) - 48usize] ; ["Offset of field: rc_api_update_achievement_request_t::points"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , points) - 56usize] ; ["Offset of field: rc_api_update_achievement_request_t::category"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , category) - 60usize] ; ["Offset of field: rc_api_update_achievement_request_t::type_"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , type_) - 64usize] ; } ; # [doc = " Response data for an update achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_achievement_response_t { pub achievement_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_achievement_response_t"] [:: core :: mem :: size_of :: < rc_api_update_achievement_response_t > () - 320usize] ; ["Alignment of rc_api_update_achievement_response_t"] [:: core :: mem :: align_of :: < rc_api_update_achievement_response_t > () - 8usize] ; ["Offset of field: rc_api_update_achievement_response_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_response_t , achievement_id) - 0usize] ; ["Offset of field: rc_api_update_achievement_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_update_achievement_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_achievement_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_achievement_response (response : * mut rc_api_update_achievement_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_achievement_server_response (response : * mut rc_api_update_achievement_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_achievement_response (response : * mut rc_api_update_achievement_response_t) ; } # [doc = " API parameters for an update leaderboard request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_leaderboard_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub leaderboard_id : u32 , pub game_id : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub start_trigger : * const :: core :: ffi :: c_char , pub submit_trigger : * const :: core :: ffi :: c_char , pub cancel_trigger : * const :: core :: ffi :: c_char , pub value_definition : * const :: core :: ffi :: c_char , pub format : * const :: core :: ffi :: c_char , pub lower_is_better : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_leaderboard_request_t"] [:: core :: mem :: size_of :: < rc_api_update_leaderboard_request_t > () - 88usize] ; ["Alignment of rc_api_update_leaderboard_request_t"] [:: core :: mem :: align_of :: < rc_api_update_leaderboard_request_t > () - 8usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , leaderboard_id) - 16usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , game_id) - 20usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , title) - 24usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::description"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , description) - 32usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::start_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , start_trigger) - 40usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::submit_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , submit_trigger) - 48usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::cancel_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , cancel_trigger) - 56usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::value_definition"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , value_definition) - 64usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::format"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , format) - 72usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , lower_is_better) - 80usize] ; } ; # [doc = " Response data for an update leaderboard request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_leaderboard_response_t { pub leaderboard_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_leaderboard_response_t"] [:: core :: mem :: size_of :: < rc_api_update_leaderboard_response_t > () - 320usize] ; ["Alignment of rc_api_update_leaderboard_response_t"] [:: core :: mem :: align_of :: < rc_api_update_leaderboard_response_t > () - 8usize] ; ["Offset of field: rc_api_update_leaderboard_response_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_response_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_api_update_leaderboard_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_update_leaderboard_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_leaderboard_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_leaderboard_response (response : * mut rc_api_update_leaderboard_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_leaderboard_server_response (response : * mut rc_api_update_leaderboard_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_leaderboard_response (response : * mut rc_api_update_leaderboard_response_t) ; } # [doc = " API parameters for a fetch badge range request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_badge_range_request_t { pub unused : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_badge_range_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_badge_range_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_badge_range_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_badge_range_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_badge_range_request_t::unused"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_request_t , unused) - 0usize] ; } ; # [doc = " Response data for a fetch badge range request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_badge_range_response_t { pub first_badge_id : u32 , pub next_badge_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_badge_range_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_badge_range_response_t > () - 320usize] ; ["Alignment of rc_api_fetch_badge_range_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_badge_range_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::first_badge_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , first_badge_id) - 0usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::next_badge_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , next_badge_id) - 4usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_fetch_badge_range_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_badge_range_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_badge_range_response (response : * mut rc_api_fetch_badge_range_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_badge_range_server_response (response : * mut rc_api_fetch_badge_range_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_badge_range_response (response : * mut rc_api_fetch_badge_range_response_t) ; } # [doc = " API parameters for an add game hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_add_game_hash_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub hash : * const :: core :: ffi :: c_char , pub hash_description : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_add_game_hash_request_t"] [:: core :: mem :: size_of :: < rc_api_add_game_hash_request_t > () - 48usize] ; ["Alignment of rc_api_add_game_hash_request_t"] [:: core :: mem :: align_of :: < rc_api_add_game_hash_request_t > () - 8usize] ; ["Offset of field: rc_api_add_game_hash_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , username) - 0usize] ; ["Offset of field: rc_api_add_game_hash_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_add_game_hash_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_add_game_hash_request_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , console_id) - 20usize] ; ["Offset of field: rc_api_add_game_hash_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , title) - 24usize] ; ["Offset of field: rc_api_add_game_hash_request_t::hash"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , hash) - 32usize] ; ["Offset of field: rc_api_add_game_hash_request_t::hash_description"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , hash_description) - 40usize] ; } ; # [doc = " Response data for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_add_game_hash_response_t { pub game_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_add_game_hash_response_t"] [:: core :: mem :: size_of :: < rc_api_add_game_hash_response_t > () - 320usize] ; ["Alignment of rc_api_add_game_hash_response_t"] [:: core :: mem :: align_of :: < rc_api_add_game_hash_response_t > () - 8usize] ; ["Offset of field: rc_api_add_game_hash_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_response_t , game_id) - 0usize] ; ["Offset of field: rc_api_add_game_hash_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_add_game_hash_request (request : * mut rc_api_request_t , api_params : * const rc_api_add_game_hash_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_add_game_hash_response (response : * mut rc_api_add_game_hash_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_add_game_hash_server_response (response : * mut rc_api_add_game_hash_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_add_game_hash_response (response : * mut rc_api_add_game_hash_response_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_t { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_menu_item_t { pub label : * const :: core :: ffi :: c_char , pub id : u32 , pub checked : u8 , pub enabled : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_menu_item_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_menu_item_t > () - 16usize] ; ["Alignment of rc_client_raintegration_menu_item_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_menu_item_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::label"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , label) - 0usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::id"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , id) - 8usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::checked"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , checked) - 12usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::enabled"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , enabled) - 13usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_menu_t { pub items : * mut rc_client_raintegration_menu_item_t , pub num_items : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_menu_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_menu_t > () - 16usize] ; ["Alignment of rc_client_raintegration_menu_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_menu_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_menu_t::items"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_t , items) - 0usize] ; ["Offset of field: rc_client_raintegration_menu_t::num_items"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_t , num_items) - 8usize] ; } ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_NONE : _bindgen_ty_10 = 0 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_PUBLISHED : _bindgen_ty_10 = 1 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_LOCAL : _bindgen_ty_10 = 2 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_MODIFIED : _bindgen_ty_10 = 3 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_INSECURE : _bindgen_ty_10 = 4 ; pub type _bindgen_ty_10 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_RAINTEGRATION_EVENT_TYPE_NONE : _bindgen_ty_11 = 0 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_MENUITEM_CHECKED_CHANGED : _bindgen_ty_11 = 1 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_HARDCORE_CHANGED : _bindgen_ty_11 = 2 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_PAUSE : _bindgen_ty_11 = 3 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_MENU_CHANGED : _bindgen_ty_11 = 4 ; pub type _bindgen_ty_11 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_event_t { pub type_ : u32 , pub menu_item : * const rc_client_raintegration_menu_item_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_event_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_event_t > () - 16usize] ; ["Alignment of rc_client_raintegration_event_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_event_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_event_t::type_"] [:: core :: mem :: offset_of ! (rc_client_raintegration_event_t , type_) - 0usize] ; ["Offset of field: rc_client_raintegration_event_t::menu_item"] [:: core :: mem :: offset_of ! (rc_client_raintegration_event_t , menu_item) - 8usize] ; } ; pub type rc_client_raintegration_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (event : * const rc_client_raintegration_event_t , client : * mut rc_client_t) > ; pub type rc_client_raintegration_write_memory_func_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , buffer : * mut u8 , num_bytes : u32 , client : * mut rc_client_t) > ; pub type rc_client_raintegration_get_game_name_func_t = :: core :: option :: Option < unsafe extern "C" fn (buffer : * mut :: core :: ffi :: c_char , buffer_size : u32 , client : * mut rc_client_t) > ; # [doc = " API parameters for a fetch achievement info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_achievement_info_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub first_entry : u32 , pub count : u32 , pub friends_only : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_achievement_info_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_achievement_info_request_t > () - 32usize] ; ["Alignment of rc_api_fetch_achievement_info_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_achievement_info_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::first_entry"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , first_entry) - 20usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::count"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , count) - 24usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::friends_only"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , friends_only) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_achievement_awarded_entry_t { pub username : * const :: core :: ffi :: c_char , pub awarded : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_achievement_awarded_entry_t"] [:: core :: mem :: size_of :: < rc_api_achievement_awarded_entry_t > () - 16usize] ; ["Alignment of rc_api_achievement_awarded_entry_t"] [:: core :: mem :: align_of :: < rc_api_achievement_awarded_entry_t > () - 8usize] ; ["Offset of field: rc_api_achievement_awarded_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_achievement_awarded_entry_t , username) - 0usize] ; ["Offset of field: rc_api_achievement_awarded_entry_t::awarded"] [:: core :: mem :: offset_of ! (rc_api_achievement_awarded_entry_t , awarded) - 8usize] ; } ; # [doc = " Response data for a fetch achievement info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_achievement_info_response_t { pub id : u32 , pub game_id : u32 , pub num_awarded : u32 , pub num_players : u32 , pub recently_awarded : * mut rc_api_achievement_awarded_entry_t , pub num_recently_awarded : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_achievement_info_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_achievement_info_response_t > () - 344usize] ; ["Alignment of rc_api_fetch_achievement_info_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_achievement_info_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , game_id) - 4usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_awarded) - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_players"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_players) - 12usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::recently_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , recently_awarded) - 16usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_recently_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_recently_awarded) - 24usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_fetch_achievement_info_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_achievement_info_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_achievement_info_response (response : * mut rc_api_fetch_achievement_info_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_achievement_info_server_response (response : * mut rc_api_fetch_achievement_info_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_achievement_info_response (response : * mut rc_api_fetch_achievement_info_response_t) ; } # [doc = " API parameters for a fetch leaderboard info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_leaderboard_info_request_t { pub leaderboard_id : u32 , pub count : u32 , pub first_entry : u32 , pub username : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_leaderboard_info_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_leaderboard_info_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_leaderboard_info_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_leaderboard_info_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::count"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , count) - 4usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::first_entry"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , first_entry) - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , username) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_lboard_info_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub index : u32 , pub score : i32 , pub submitted : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_lboard_info_entry_t"] [:: core :: mem :: size_of :: < rc_api_lboard_info_entry_t > () - 32usize] ; ["Alignment of rc_api_lboard_info_entry_t"] [:: core :: mem :: align_of :: < rc_api_lboard_info_entry_t > () - 8usize] ; ["Offset of field: rc_api_lboard_info_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , username) - 0usize] ; ["Offset of field: rc_api_lboard_info_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , rank) - 8usize] ; ["Offset of field: rc_api_lboard_info_entry_t::index"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , index) - 12usize] ; ["Offset of field: rc_api_lboard_info_entry_t::score"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , score) - 16usize] ; ["Offset of field: rc_api_lboard_info_entry_t::submitted"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , submitted) - 24usize] ; } ; # [doc = " Response data for a fetch leaderboard info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_leaderboard_info_response_t { pub id : u32 , pub format : :: core :: ffi :: c_int , pub lower_is_better : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub game_id : u32 , pub author : * const :: core :: ffi :: c_char , pub created : time_t , pub updated : time_t , pub entries : * mut rc_api_lboard_info_entry_t , pub num_entries : u32 , pub total_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_leaderboard_info_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_leaderboard_info_response_t > () - 400usize] ; ["Alignment of rc_api_fetch_leaderboard_info_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_leaderboard_info_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::format"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , format) - 4usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , lower_is_better) - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::title"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , title) - 16usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::description"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , description) - 24usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::definition"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , definition) - 32usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , game_id) - 40usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::author"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , author) - 48usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::created"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , created) - 56usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::updated"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , updated) - 64usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , entries) - 72usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , num_entries) - 80usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::total_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , total_entries) - 84usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , response) - 88usize] ; } ; extern "C" { pub fn rc_api_init_fetch_leaderboard_info_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_leaderboard_info_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_leaderboard_info_response (response : * mut rc_api_fetch_leaderboard_info_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_leaderboard_info_server_response (response : * mut rc_api_fetch_leaderboard_info_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_leaderboard_info_response (response : * mut rc_api_fetch_leaderboard_info_response_t) ; } # [doc = " API parameters for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_games_list_request_t { pub console_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_games_list_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_games_list_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_games_list_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_games_list_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_games_list_request_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_request_t , console_id) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_game_list_entry_t { pub id : u32 , pub name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_game_list_entry_t"] [:: core :: mem :: size_of :: < rc_api_game_list_entry_t > () - 16usize] ; ["Alignment of rc_api_game_list_entry_t"] [:: core :: mem :: align_of :: < rc_api_game_list_entry_t > () - 8usize] ; ["Offset of field: rc_api_game_list_entry_t::id"] [:: core :: mem :: offset_of ! (rc_api_game_list_entry_t , id) - 0usize] ; ["Offset of field: rc_api_game_list_entry_t::name"] [:: core :: mem :: offset_of ! (rc_api_game_list_entry_t , name) - 8usize] ; } ; # [doc = " Response data for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_games_list_response_t { pub entries : * mut rc_api_game_list_entry_t , pub num_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_games_list_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_games_list_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_games_list_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_games_list_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , entries) - 0usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , num_entries) - 8usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_games_list_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_games_list_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_games_list_response (response : * mut rc_api_fetch_games_list_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_games_list_server_response (response : * mut rc_api_fetch_games_list_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_games_list_response (response : * mut rc_api_fetch_games_list_response_t) ; } # [doc = " API parameters for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_titles_request_t { pub game_ids : * const u32 , pub num_game_ids : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_titles_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_titles_request_t > () - 16usize] ; ["Alignment of rc_api_fetch_game_titles_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_titles_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_request_t::game_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_request_t , game_ids) - 0usize] ; ["Offset of field: rc_api_fetch_game_titles_request_t::num_game_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_request_t , num_game_ids) - 8usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_game_title_entry_t { pub id : u32 , pub title : * const :: core :: ffi :: c_char , pub image_name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_game_title_entry_t"] [:: core :: mem :: size_of :: < rc_api_game_title_entry_t > () - 24usize] ; ["Alignment of rc_api_game_title_entry_t"] [:: core :: mem :: align_of :: < rc_api_game_title_entry_t > () - 8usize] ; ["Offset of field: rc_api_game_title_entry_t::id"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , id) - 0usize] ; ["Offset of field: rc_api_game_title_entry_t::title"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , title) - 8usize] ; ["Offset of field: rc_api_game_title_entry_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , image_name) - 16usize] ; } ; # [doc = " Response data for a fetch games title request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_titles_response_t { pub entries : * mut rc_api_game_title_entry_t , pub num_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_titles_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_titles_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_game_titles_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_titles_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , entries) - 0usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , num_entries) - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_game_titles_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_game_titles_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_titles_server_response (response : * mut rc_api_fetch_game_titles_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_game_titles_response (response : * mut rc_api_fetch_game_titles_response_t) ; } pub type __gnuc_va_list = __builtin_va_list ; # [repr (C)] # [derive (Copy , Clone)] pub struct __mbstate_t { pub __count : :: core :: ffi :: c_int , pub __value : __mbstate_t__bindgen_ty_1 , } # [repr (C)] # [derive (Copy , Clone)] pub union __mbstate_t__bindgen_ty_1 { pub __wch : :: core :: ffi :: c_uint , pub __wchb : [:: core :: ffi :: c_char ; 4usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __mbstate_t__bindgen_ty_1"] [:: core :: mem :: size_of :: < __mbstate_t__bindgen_ty_1 > () - 4usize] ; ["Alignment of __mbstate_t__bindgen_ty_1"] [:: core :: mem :: align_of :: < __mbstate_t__bindgen_ty_1 > () - 4usize] ; ["Offset of field: __mbstate_t__bindgen_ty_1::__wch"] [:: core :: mem :: offset_of ! (__mbstate_t__bindgen_ty_1 , __wch) - 0usize] ; ["Offset of field: __mbstate_t__bindgen_ty_1::__wchb"] [:: core :: mem :: offset_of ! (__mbstate_t__bindgen_ty_1 , __wchb) - 0usize] ; } ; impl :: core :: fmt :: Debug for __mbstate_t__bindgen_ty_1 { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "__mbstate_t__bindgen_ty_1 {{ union }}") } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __mbstate_t"] [:: core :: mem :: size_of :: < __mbstate_t > () - 8usize] ; ["Alignment of __mbstate_t"] [:: core :: mem :: align_of :: < __mbstate_t > () - 4usize] ; ["Offset of field: __mbstate_t::__count"] [:: core :: mem :: offset_of ! (__mbstate_t , __count) - 0usize] ; ["Offset of field: __mbstate_t::__value"] [:: core :: mem :: offset_of ! (__mbstate_t , __value) - 4usize] ; } ; impl :: core :: fmt :: Debug for __mbstate_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "__mbstate_t {{ __count: {:?}, __value: {:?} }}" , self . __count , self . __value) } } # [repr (C)] # [derive (Copy , Clone)] pub struct _G_fpos_t { pub __pos : __off_t , pub __state : __mbstate_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _G_fpos_t"] [:: core :: mem :: size_of :: < _G_fpos_t > () - 16usize] ; ["Alignment of _G_fpos_t"] [:: core :: mem :: align_of :: < _G_fpos_t > () - 8usize] ; ["Offset of field: _G_fpos_t::__pos"] [:: core :: mem :: offset_of ! (_G_fpos_t , __pos) - 0usize] ; ["Offset of field: _G_fpos_t::__state"] [:: core :: mem :: offset_of ! (_G_fpos_t , __state) - 8usize] ; } ; impl :: core :: fmt :: Debug for _G_fpos_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "_G_fpos_t {{ __pos: {:?}, __state: {:?} }}" , self . __pos , self . __state) } } pub type __fpos_t = _G_fpos_t ; # [repr (C)] # [derive (Copy , Clone)] pub struct _G_fpos64_t { pub __pos : __off64_t , pub __state : __mbstate_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _G_fpos64_t"] [:: core :: mem :: size_of :: < _G_fpos64_t > () - 16usize] ; ["Alignment of _G_fpos64_t"] [:: core :: mem :: align_of :: < _G_fpos64_t > () - 8usize] ; ["Offset of field: _G_fpos64_t::__pos"] [:: core :: mem :: offset_of ! (_G_fpos64_t , __pos) - 0usize] ; ["Offset of field: _G_fpos64_t::__state"] [:: core :: mem :: offset_of ! (_G_fpos64_t , __state) - 8usize] ; } ; impl :: core :: fmt :: Debug for _G_fpos64_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "_G_fpos64_t {{ __pos: {:?}, __state: {:?} }}" , self . __pos , self . __state) } } pub type __fpos64_t = _G_fpos64_t ; pub type __FILE = _IO_FILE ; pub type FILE = _IO_FILE ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_marker { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_codecvt { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_wide_data { _unused : [u8 ; 0] , } pub type _IO_lock_t = :: core :: ffi :: c_void ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_FILE { pub _flags : :: core :: ffi :: c_int , pub _IO_read_ptr : * mut :: core :: ffi :: c_char , pub _IO_read_end : * mut :: core :: ffi :: c_char , pub _IO_read_base : * mut :: core :: ffi :: c_char , pub _IO_write_base : * mut :: core :: ffi :: c_char , pub _IO_write_ptr : * mut :: core :: ffi :: c_char , pub _IO_write_end : * mut :: core :: ffi :: c_char , pub _IO_buf_base : * mut :: core :: ffi :: c_char , pub _IO_buf_end : * mut :: core :: ffi :: c_char , pub _IO_save_base : * mut :: core :: ffi :: c_char , pub _IO_backup_base : * mut :: core :: ffi :: c_char , pub _IO_save_end : * mut :: core :: ffi :: c_char , pub _markers : * mut _IO_marker , pub _chain : * mut _IO_FILE , pub _fileno : :: core :: ffi :: c_int , pub _bitfield_align_1 : [u32 ; 0] , pub _bitfield_1 : __BindgenBitfieldUnit < [u8 ; 3usize] > , pub _short_backupbuf : [:: core :: ffi :: c_char ; 1usize] , pub _old_offset : __off_t , pub _cur_column : :: core :: ffi :: c_ushort , pub _vtable_offset : :: core :: ffi :: c_schar , pub _shortbuf : [:: core :: ffi :: c_char ; 1usize] , pub _lock : * mut _IO_lock_t , pub _offset : __off64_t , pub _codecvt : * mut _IO_codecvt , pub _wide_data : * mut _IO_wide_data , pub _freeres_list : * mut _IO_FILE , pub _freeres_buf : * mut :: core :: ffi :: c_void , pub _prevchain : * mut * mut _IO_FILE , pub _mode : :: core :: ffi :: c_int , pub _unused3 : :: core :: ffi :: c_int , pub _total_written : __uint64_t , pub _unused2 : [:: core :: ffi :: c_char ; 8usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _IO_FILE"] [:: core :: mem :: size_of :: < _IO_FILE > () - 216usize] ; ["Alignment of _IO_FILE"] [:: core :: mem :: align_of :: < _IO_FILE > () - 8usize] ; ["Offset of field: _IO_FILE::_flags"] [:: core :: mem :: offset_of ! (_IO_FILE , _flags) - 0usize] ; ["Offset of field: _IO_FILE::_IO_read_ptr"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_ptr) - 8usize] ; ["Offset of field: _IO_FILE::_IO_read_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_end) - 16usize] ; ["Offset of field: _IO_FILE::_IO_read_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_base) - 24usize] ; ["Offset of field: _IO_FILE::_IO_write_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_base) - 32usize] ; ["Offset of field: _IO_FILE::_IO_write_ptr"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_ptr) - 40usize] ; ["Offset of field: _IO_FILE::_IO_write_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_end) - 48usize] ; ["Offset of field: _IO_FILE::_IO_buf_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_buf_base) - 56usize] ; ["Offset of field: _IO_FILE::_IO_buf_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_buf_end) - 64usize] ; ["Offset of field: _IO_FILE::_IO_save_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_save_base) - 72usize] ; ["Offset of field: _IO_FILE::_IO_backup_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_backup_base) - 80usize] ; ["Offset of field: _IO_FILE::_IO_save_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_save_end) - 88usize] ; ["Offset of field: _IO_FILE::_markers"] [:: core :: mem :: offset_of ! (_IO_FILE , _markers) - 96usize] ; ["Offset of field: _IO_FILE::_chain"] [:: core :: mem :: offset_of ! (_IO_FILE , _chain) - 104usize] ; ["Offset of field: _IO_FILE::_fileno"] [:: core :: mem :: offset_of ! (_IO_FILE , _fileno) - 112usize] ; ["Offset of field: _IO_FILE::_short_backupbuf"] [:: core :: mem :: offset_of ! (_IO_FILE , _short_backupbuf) - 119usize] ; ["Offset of field: _IO_FILE::_old_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _old_offset) - 120usize] ; ["Offset of field: _IO_FILE::_cur_column"] [:: core :: mem :: offset_of ! (_IO_FILE , _cur_column) - 128usize] ; ["Offset of field: _IO_FILE::_vtable_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _vtable_offset) - 130usize] ; ["Offset of field: _IO_FILE::_shortbuf"] [:: core :: mem :: offset_of ! (_IO_FILE , _shortbuf) - 131usize] ; ["Offset of field: _IO_FILE::_lock"] [:: core :: mem :: offset_of ! (_IO_FILE , _lock) - 136usize] ; ["Offset of field: _IO_FILE::_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _offset) - 144usize] ; ["Offset of field: _IO_FILE::_codecvt"] [:: core :: mem :: offset_of ! (_IO_FILE , _codecvt) - 152usize] ; ["Offset of field: _IO_FILE::_wide_data"] [:: core :: mem :: offset_of ! (_IO_FILE , _wide_data) - 160usize] ; ["Offset of field: _IO_FILE::_freeres_list"] [:: core :: mem :: offset_of ! (_IO_FILE , _freeres_list) - 168usize] ; ["Offset of field: _IO_FILE::_freeres_buf"] [:: core :: mem :: offset_of ! (_IO_FILE , _freeres_buf) - 176usize] ; ["Offset of field: _IO_FILE::_prevchain"] [:: core :: mem :: offset_of ! (_IO_FILE , _prevchain) - 184usize] ; ["Offset of field: _IO_FILE::_mode"] [:: core :: mem :: offset_of ! (_IO_FILE , _mode) - 192usize] ; ["Offset of field: _IO_FILE::_unused3"] [:: core :: mem :: offset_of ! (_IO_FILE , _unused3) - 196usize] ; ["Offset of field: _IO_FILE::_total_written"] [:: core :: mem :: offset_of ! (_IO_FILE , _total_written) - 200usize] ; ["Offset of field: _IO_FILE::_unused2"] [:: core :: mem :: offset_of ! (_IO_FILE , _unused2) - 208usize] ; } ; impl _IO_FILE { # [inline] pub fn _flags2 (& self) -> :: core :: ffi :: c_int { unsafe { :: core :: mem :: transmute (self . _bitfield_1 . get (0usize , 24u8) as u32) } } # [inline] pub fn set__flags2 (& mut self , val : :: core :: ffi :: c_int) { unsafe { let val : u32 = :: core :: mem :: transmute (val) ; self . _bitfield_1 . set (0usize , 24u8 , val as u64) } } # [inline] pub fn new_bitfield_1 (_flags2 : :: core :: ffi :: c_int) -> __BindgenBitfieldUnit < [u8 ; 3usize] > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [u8 ; 3usize] > = Default :: default () ; __bindgen_bitfield_unit . set (0usize , 24u8 , { let _flags2 : u32 = unsafe { :: core :: mem :: transmute (_flags2) } ; _flags2 as u64 }) ; __bindgen_bitfield_unit } } pub type cookie_read_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __buf : * mut :: core :: ffi :: c_char , __nbytes : usize) -> __ssize_t > ; pub type cookie_write_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __buf : * const :: core :: ffi :: c_char , __nbytes : usize) -> __ssize_t > ; pub type cookie_seek_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __pos : * mut __off64_t , __w : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int > ; pub type cookie_close_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void) -> :: core :: ffi :: 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 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _IO_cookie_io_functions_t"] [:: core :: mem :: size_of :: < _IO_cookie_io_functions_t > () - 32usize] ; ["Alignment of _IO_cookie_io_functions_t"] [:: core :: mem :: align_of :: < _IO_cookie_io_functions_t > () - 8usize] ; ["Offset of field: _IO_cookie_io_functions_t::read"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , read) - 0usize] ; ["Offset of field: _IO_cookie_io_functions_t::write"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , write) - 8usize] ; ["Offset of field: _IO_cookie_io_functions_t::seek"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , seek) - 16usize] ; ["Offset of field: _IO_cookie_io_functions_t::close"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , close) - 24usize] ; } ; 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" { pub static mut stdin : * mut FILE ; } extern "C" { pub static mut stdout : * mut FILE ; } extern "C" { pub static mut stderr : * mut FILE ; } extern "C" { pub fn remove (__filename : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rename (__old : * const :: core :: ffi :: c_char , __new : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn renameat (__oldfd : :: core :: ffi :: c_int , __old : * const :: core :: ffi :: c_char , __newfd : :: core :: ffi :: c_int , __new : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fclose (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn tmpfile () -> * mut FILE ; } extern "C" { pub fn tmpnam (arg1 : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn tmpnam_r (__s : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn tempnam (__dir : * const :: core :: ffi :: c_char , __pfx : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn fflush (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fflush_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fopen (__filename : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn freopen (__filename : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char , __stream : * mut FILE) -> * mut FILE ; } extern "C" { pub fn fdopen (__fd : :: core :: ffi :: c_int , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn fopencookie (__magic_cookie : * mut :: core :: ffi :: c_void , __modes : * const :: core :: ffi :: c_char , __io_funcs : cookie_io_functions_t) -> * mut FILE ; } extern "C" { pub fn fmemopen (__s : * mut :: core :: ffi :: c_void , __len : usize , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn open_memstream (__bufloc : * mut * mut :: core :: ffi :: c_char , __sizeloc : * mut usize) -> * mut FILE ; } extern "C" { pub fn setbuf (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char) ; } extern "C" { pub fn setvbuf (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char , __modes : :: core :: ffi :: c_int , __n : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn setbuffer (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char , __size : usize) ; } extern "C" { pub fn setlinebuf (__stream : * mut FILE) ; } extern "C" { pub fn fprintf (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn printf (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn sprintf (__s : * mut :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vfprintf (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vprintf (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsprintf (__s : * mut :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn snprintf (__s : * mut :: core :: ffi :: c_char , __maxlen : :: core :: ffi :: c_ulong , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsnprintf (__s : * mut :: core :: ffi :: c_char , __maxlen : :: core :: ffi :: c_ulong , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vasprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __f : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn __asprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn asprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vdprintf (__fd : :: core :: ffi :: c_int , __fmt : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn dprintf (__fd : :: core :: ffi :: c_int , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fscanf (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn scanf (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn sscanf (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } pub type __cfloat128 = __BindgenComplex < u128 > ; pub type _Float128 = u128 ; pub type _Float32 = f32 ; pub type _Float64 = f64 ; pub type _Float32x = f64 ; pub type _Float64x = u128 ; extern "C" { # [link_name = "\u{1}__isoc99_fscanf"] pub fn fscanf1 (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_scanf"] pub fn scanf1 (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_sscanf"] pub fn sscanf1 (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vfscanf (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vscanf (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsscanf (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vfscanf"] pub fn vfscanf1 (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vscanf"] pub fn vscanf1 (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vsscanf"] pub fn vsscanf1 (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgetc (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getc (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getchar () -> :: core :: ffi :: c_int ; } extern "C" { pub fn getc_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getchar_unlocked () -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgetc_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fputc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putchar (__c : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fputc_unlocked (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putc_unlocked (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putchar_unlocked (__c : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getw (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putw (__w : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgets (__s : * mut :: core :: ffi :: c_char , __n : :: core :: ffi :: c_int , __stream : * mut FILE) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn __getdelim (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __delimiter : :: core :: ffi :: c_int , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn getdelim (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __delimiter : :: core :: ffi :: c_int , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn getline (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn fputs (__s : * const :: core :: ffi :: c_char , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn puts (__s : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ungetc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fread (__ptr : * mut :: core :: ffi :: c_void , __size : :: core :: ffi :: c_ulong , __n : :: core :: ffi :: c_ulong , __stream : * mut FILE) -> :: core :: ffi :: c_ulong ; } extern "C" { pub fn fwrite (__ptr : * const :: core :: ffi :: c_void , __size : :: core :: ffi :: c_ulong , __n : :: core :: ffi :: c_ulong , __s : * mut FILE) -> :: core :: ffi :: c_ulong ; } extern "C" { pub fn fread_unlocked (__ptr : * mut :: core :: ffi :: c_void , __size : usize , __n : usize , __stream : * mut FILE) -> usize ; } extern "C" { pub fn fwrite_unlocked (__ptr : * const :: core :: ffi :: c_void , __size : usize , __n : usize , __stream : * mut FILE) -> usize ; } extern "C" { pub fn fseek (__stream : * mut FILE , __off : :: core :: ffi :: c_long , __whence : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ftell (__stream : * mut FILE) -> :: core :: ffi :: c_long ; } extern "C" { pub fn rewind (__stream : * mut FILE) ; } extern "C" { pub fn fseeko (__stream : * mut FILE , __off : __off_t , __whence : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ftello (__stream : * mut FILE) -> __off_t ; } extern "C" { pub fn fgetpos (__stream : * mut FILE , __pos : * mut fpos_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fsetpos (__stream : * mut FILE , __pos : * const fpos_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clearerr (__stream : * mut FILE) ; } extern "C" { pub fn feof (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ferror (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clearerr_unlocked (__stream : * mut FILE) ; } extern "C" { pub fn feof_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ferror_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn perror (__s : * const :: core :: ffi :: c_char) ; } extern "C" { pub fn fileno (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fileno_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn pclose (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn popen (__command : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn ctermid (__s : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn flockfile (__stream : * mut FILE) ; } extern "C" { pub fn ftrylockfile (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn funlockfile (__stream : * mut FILE) ; } extern "C" { pub fn __uflow (arg1 : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn __overflow (arg1 : * mut FILE , arg2 : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } pub const RC_CONSOLE_UNKNOWN : _bindgen_ty_12 = 0 ; pub const RC_CONSOLE_MEGA_DRIVE : _bindgen_ty_12 = 1 ; pub const RC_CONSOLE_NINTENDO_64 : _bindgen_ty_12 = 2 ; pub const RC_CONSOLE_SUPER_NINTENDO : _bindgen_ty_12 = 3 ; pub const RC_CONSOLE_GAMEBOY : _bindgen_ty_12 = 4 ; pub const RC_CONSOLE_GAMEBOY_ADVANCE : _bindgen_ty_12 = 5 ; pub const RC_CONSOLE_GAMEBOY_COLOR : _bindgen_ty_12 = 6 ; pub const RC_CONSOLE_NINTENDO : _bindgen_ty_12 = 7 ; pub const RC_CONSOLE_PC_ENGINE : _bindgen_ty_12 = 8 ; pub const RC_CONSOLE_SEGA_CD : _bindgen_ty_12 = 9 ; pub const RC_CONSOLE_SEGA_32X : _bindgen_ty_12 = 10 ; pub const RC_CONSOLE_MASTER_SYSTEM : _bindgen_ty_12 = 11 ; pub const RC_CONSOLE_PLAYSTATION : _bindgen_ty_12 = 12 ; pub const RC_CONSOLE_ATARI_LYNX : _bindgen_ty_12 = 13 ; pub const RC_CONSOLE_NEOGEO_POCKET : _bindgen_ty_12 = 14 ; pub const RC_CONSOLE_GAME_GEAR : _bindgen_ty_12 = 15 ; pub const RC_CONSOLE_GAMECUBE : _bindgen_ty_12 = 16 ; pub const RC_CONSOLE_ATARI_JAGUAR : _bindgen_ty_12 = 17 ; pub const RC_CONSOLE_NINTENDO_DS : _bindgen_ty_12 = 18 ; pub const RC_CONSOLE_WII : _bindgen_ty_12 = 19 ; pub const RC_CONSOLE_WII_U : _bindgen_ty_12 = 20 ; pub const RC_CONSOLE_PLAYSTATION_2 : _bindgen_ty_12 = 21 ; pub const RC_CONSOLE_XBOX : _bindgen_ty_12 = 22 ; pub const RC_CONSOLE_MAGNAVOX_ODYSSEY2 : _bindgen_ty_12 = 23 ; pub const RC_CONSOLE_POKEMON_MINI : _bindgen_ty_12 = 24 ; pub const RC_CONSOLE_ATARI_2600 : _bindgen_ty_12 = 25 ; pub const RC_CONSOLE_MS_DOS : _bindgen_ty_12 = 26 ; pub const RC_CONSOLE_ARCADE : _bindgen_ty_12 = 27 ; pub const RC_CONSOLE_VIRTUAL_BOY : _bindgen_ty_12 = 28 ; pub const RC_CONSOLE_MSX : _bindgen_ty_12 = 29 ; pub const RC_CONSOLE_COMMODORE_64 : _bindgen_ty_12 = 30 ; pub const RC_CONSOLE_ZX81 : _bindgen_ty_12 = 31 ; pub const RC_CONSOLE_ORIC : _bindgen_ty_12 = 32 ; pub const RC_CONSOLE_SG1000 : _bindgen_ty_12 = 33 ; pub const RC_CONSOLE_VIC20 : _bindgen_ty_12 = 34 ; pub const RC_CONSOLE_AMIGA : _bindgen_ty_12 = 35 ; pub const RC_CONSOLE_ATARI_ST : _bindgen_ty_12 = 36 ; pub const RC_CONSOLE_AMSTRAD_PC : _bindgen_ty_12 = 37 ; pub const RC_CONSOLE_APPLE_II : _bindgen_ty_12 = 38 ; pub const RC_CONSOLE_SATURN : _bindgen_ty_12 = 39 ; pub const RC_CONSOLE_DREAMCAST : _bindgen_ty_12 = 40 ; pub const RC_CONSOLE_PSP : _bindgen_ty_12 = 41 ; pub const RC_CONSOLE_CDI : _bindgen_ty_12 = 42 ; pub const RC_CONSOLE_3DO : _bindgen_ty_12 = 43 ; pub const RC_CONSOLE_COLECOVISION : _bindgen_ty_12 = 44 ; pub const RC_CONSOLE_INTELLIVISION : _bindgen_ty_12 = 45 ; pub const RC_CONSOLE_VECTREX : _bindgen_ty_12 = 46 ; pub const RC_CONSOLE_PC8800 : _bindgen_ty_12 = 47 ; pub const RC_CONSOLE_PC9800 : _bindgen_ty_12 = 48 ; pub const RC_CONSOLE_PCFX : _bindgen_ty_12 = 49 ; pub const RC_CONSOLE_ATARI_5200 : _bindgen_ty_12 = 50 ; pub const RC_CONSOLE_ATARI_7800 : _bindgen_ty_12 = 51 ; pub const RC_CONSOLE_X68K : _bindgen_ty_12 = 52 ; pub const RC_CONSOLE_WONDERSWAN : _bindgen_ty_12 = 53 ; pub const RC_CONSOLE_CASSETTEVISION : _bindgen_ty_12 = 54 ; pub const RC_CONSOLE_SUPER_CASSETTEVISION : _bindgen_ty_12 = 55 ; pub const RC_CONSOLE_NEO_GEO_CD : _bindgen_ty_12 = 56 ; pub const RC_CONSOLE_FAIRCHILD_CHANNEL_F : _bindgen_ty_12 = 57 ; pub const RC_CONSOLE_FM_TOWNS : _bindgen_ty_12 = 58 ; pub const RC_CONSOLE_ZX_SPECTRUM : _bindgen_ty_12 = 59 ; pub const RC_CONSOLE_GAME_AND_WATCH : _bindgen_ty_12 = 60 ; pub const RC_CONSOLE_NOKIA_NGAGE : _bindgen_ty_12 = 61 ; pub const RC_CONSOLE_NINTENDO_3DS : _bindgen_ty_12 = 62 ; pub const RC_CONSOLE_SUPERVISION : _bindgen_ty_12 = 63 ; pub const RC_CONSOLE_SHARPX1 : _bindgen_ty_12 = 64 ; pub const RC_CONSOLE_TIC80 : _bindgen_ty_12 = 65 ; pub const RC_CONSOLE_THOMSONTO8 : _bindgen_ty_12 = 66 ; pub const RC_CONSOLE_PC6000 : _bindgen_ty_12 = 67 ; pub const RC_CONSOLE_PICO : _bindgen_ty_12 = 68 ; pub const RC_CONSOLE_MEGADUCK : _bindgen_ty_12 = 69 ; pub const RC_CONSOLE_ZEEBO : _bindgen_ty_12 = 70 ; pub const RC_CONSOLE_ARDUBOY : _bindgen_ty_12 = 71 ; pub const RC_CONSOLE_WASM4 : _bindgen_ty_12 = 72 ; pub const RC_CONSOLE_ARCADIA_2001 : _bindgen_ty_12 = 73 ; pub const RC_CONSOLE_INTERTON_VC_4000 : _bindgen_ty_12 = 74 ; pub const RC_CONSOLE_ELEKTOR_TV_GAMES_COMPUTER : _bindgen_ty_12 = 75 ; pub const RC_CONSOLE_PC_ENGINE_CD : _bindgen_ty_12 = 76 ; pub const RC_CONSOLE_ATARI_JAGUAR_CD : _bindgen_ty_12 = 77 ; pub const RC_CONSOLE_NINTENDO_DSI : _bindgen_ty_12 = 78 ; pub const RC_CONSOLE_TI83 : _bindgen_ty_12 = 79 ; pub const RC_CONSOLE_UZEBOX : _bindgen_ty_12 = 80 ; pub const RC_CONSOLE_HUBS : _bindgen_ty_12 = 100 ; pub const RC_CONSOLE_EVENTS : _bindgen_ty_12 = 101 ; pub const RC_CONSOLE_STANDALONE : _bindgen_ty_12 = 102 ; # [doc = "\\\n| Console identifiers                                                         |\n\\"] pub type _bindgen_ty_12 = :: core :: ffi :: c_uint ; extern "C" { pub fn rc_console_name (console_id : u32) -> * const :: core :: ffi :: c_char ; } pub const RC_MEMORY_TYPE_SYSTEM_RAM : _bindgen_ty_13 = 0 ; pub const RC_MEMORY_TYPE_SAVE_RAM : _bindgen_ty_13 = 1 ; pub const RC_MEMORY_TYPE_VIDEO_RAM : _bindgen_ty_13 = 2 ; pub const RC_MEMORY_TYPE_READONLY : _bindgen_ty_13 = 3 ; pub const RC_MEMORY_TYPE_HARDWARE_CONTROLLER : _bindgen_ty_13 = 4 ; pub const RC_MEMORY_TYPE_VIRTUAL_RAM : _bindgen_ty_13 = 5 ; pub const RC_MEMORY_TYPE_UNUSED : _bindgen_ty_13 = 6 ; # [doc = "\\\n| Memory mapping                                                              |\n\\"] pub type _bindgen_ty_13 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memory_region_t { pub start_address : u32 , pub end_address : u32 , pub real_address : u32 , pub type_ : u8 , pub description : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memory_region_t"] [:: core :: mem :: size_of :: < rc_memory_region_t > () - 24usize] ; ["Alignment of rc_memory_region_t"] [:: core :: mem :: align_of :: < rc_memory_region_t > () - 8usize] ; ["Offset of field: rc_memory_region_t::start_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , start_address) - 0usize] ; ["Offset of field: rc_memory_region_t::end_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , end_address) - 4usize] ; ["Offset of field: rc_memory_region_t::real_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , real_address) - 8usize] ; ["Offset of field: rc_memory_region_t::type_"] [:: core :: mem :: offset_of ! (rc_memory_region_t , type_) - 12usize] ; ["Offset of field: rc_memory_region_t::description"] [:: core :: mem :: offset_of ! (rc_memory_region_t , description) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memory_regions_t { pub region : * const rc_memory_region_t , pub num_regions : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memory_regions_t"] [:: core :: mem :: size_of :: < rc_memory_regions_t > () - 16usize] ; ["Alignment of rc_memory_regions_t"] [:: core :: mem :: align_of :: < rc_memory_regions_t > () - 8usize] ; ["Offset of field: rc_memory_regions_t::region"] [:: core :: mem :: offset_of ! (rc_memory_regions_t , region) - 0usize] ; ["Offset of field: rc_memory_regions_t::num_regions"] [:: core :: mem :: offset_of ! (rc_memory_regions_t , num_regions) - 8usize] ; } ; extern "C" { pub fn rc_console_memory_regions (console_id : u32) -> * const rc_memory_regions_t ; } extern "C" { pub fn rc_hash_generate_from_buffer (hash : * mut :: core :: ffi :: c_char , console_id : u32 , buffer : * const u8 , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_hash_generate_from_file (hash : * mut :: core :: ffi :: c_char , console_id : u32 , path : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_iterator { pub buffer : * const u8 , pub buffer_size : usize , pub consoles : [u8 ; 12usize] , pub index : :: core :: ffi :: c_int , pub path : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_iterator"] [:: core :: mem :: size_of :: < rc_hash_iterator > () - 40usize] ; ["Alignment of rc_hash_iterator"] [:: core :: mem :: align_of :: < rc_hash_iterator > () - 8usize] ; ["Offset of field: rc_hash_iterator::buffer"] [:: core :: mem :: offset_of ! (rc_hash_iterator , buffer) - 0usize] ; ["Offset of field: rc_hash_iterator::buffer_size"] [:: core :: mem :: offset_of ! (rc_hash_iterator , buffer_size) - 8usize] ; ["Offset of field: rc_hash_iterator::consoles"] [:: core :: mem :: offset_of ! (rc_hash_iterator , consoles) - 16usize] ; ["Offset of field: rc_hash_iterator::index"] [:: core :: mem :: offset_of ! (rc_hash_iterator , index) - 28usize] ; ["Offset of field: rc_hash_iterator::path"] [:: core :: mem :: offset_of ! (rc_hash_iterator , path) - 32usize] ; } ; pub type rc_hash_iterator_t = rc_hash_iterator ; extern "C" { pub fn rc_hash_initialize_iterator (iterator : * mut rc_hash_iterator , path : * const :: core :: ffi :: c_char , buffer : * const u8 , buffer_size : usize) ; } extern "C" { pub fn rc_hash_destroy_iterator (iterator : * mut rc_hash_iterator) ; } extern "C" { pub fn rc_hash_iterate (hash : * mut :: core :: ffi :: c_char , iterator : * mut rc_hash_iterator) -> :: core :: ffi :: c_int ; } pub type rc_hash_message_callback = :: core :: option :: Option < unsafe extern "C" fn (arg1 : * const :: core :: ffi :: c_char) > ; extern "C" { pub fn rc_hash_init_error_message_callback (callback : rc_hash_message_callback) ; } extern "C" { pub fn rc_hash_init_verbose_message_callback (callback : rc_hash_message_callback) ; } pub type rc_hash_filereader_open_file_handler = :: core :: option :: Option < unsafe extern "C" fn (path_utf8 : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_void > ; pub type rc_hash_filereader_seek_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void , offset : i64 , origin : :: core :: ffi :: c_int) > ; pub type rc_hash_filereader_tell_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void) -> i64 > ; pub type rc_hash_filereader_read_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void , buffer : * mut :: core :: ffi :: c_void , requested_bytes : usize) -> usize > ; pub type rc_hash_filereader_close_file_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void) > ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_filereader { pub open : rc_hash_filereader_open_file_handler , pub seek : rc_hash_filereader_seek_handler , pub tell : rc_hash_filereader_tell_handler , pub read : rc_hash_filereader_read_handler , pub close : rc_hash_filereader_close_file_handler , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_filereader"] [:: core :: mem :: size_of :: < rc_hash_filereader > () - 40usize] ; ["Alignment of rc_hash_filereader"] [:: core :: mem :: align_of :: < rc_hash_filereader > () - 8usize] ; ["Offset of field: rc_hash_filereader::open"] [:: core :: mem :: offset_of ! (rc_hash_filereader , open) - 0usize] ; ["Offset of field: rc_hash_filereader::seek"] [:: core :: mem :: offset_of ! (rc_hash_filereader , seek) - 8usize] ; ["Offset of field: rc_hash_filereader::tell"] [:: core :: mem :: offset_of ! (rc_hash_filereader , tell) - 16usize] ; ["Offset of field: rc_hash_filereader::read"] [:: core :: mem :: offset_of ! (rc_hash_filereader , read) - 24usize] ; ["Offset of field: rc_hash_filereader::close"] [:: core :: mem :: offset_of ! (rc_hash_filereader , close) - 32usize] ; } ; extern "C" { pub fn rc_hash_init_custom_filereader (reader : * mut rc_hash_filereader) ; } pub type rc_hash_cdreader_open_track_handler = :: core :: option :: Option < unsafe extern "C" fn (path : * const :: core :: ffi :: c_char , track : u32) -> * mut :: core :: ffi :: c_void > ; pub type rc_hash_cdreader_read_sector_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void , sector : u32 , buffer : * mut :: core :: ffi :: c_void , requested_bytes : usize) -> usize > ; pub type rc_hash_cdreader_close_track_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void) > ; pub type rc_hash_cdreader_first_track_sector_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void) -> u32 > ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_cdreader { pub open_track : rc_hash_cdreader_open_track_handler , pub read_sector : rc_hash_cdreader_read_sector_handler , pub close_track : rc_hash_cdreader_close_track_handler , pub first_track_sector : rc_hash_cdreader_first_track_sector_handler , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_cdreader"] [:: core :: mem :: size_of :: < rc_hash_cdreader > () - 32usize] ; ["Alignment of rc_hash_cdreader"] [:: core :: mem :: align_of :: < rc_hash_cdreader > () - 8usize] ; ["Offset of field: rc_hash_cdreader::open_track"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , open_track) - 0usize] ; ["Offset of field: rc_hash_cdreader::read_sector"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , read_sector) - 8usize] ; ["Offset of field: rc_hash_cdreader::close_track"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , close_track) - 16usize] ; ["Offset of field: rc_hash_cdreader::first_track_sector"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , first_track_sector) - 24usize] ; } ; extern "C" { pub fn rc_hash_get_default_cdreader (cdreader : * mut rc_hash_cdreader) ; } extern "C" { pub fn rc_hash_init_default_cdreader () ; } extern "C" { pub fn rc_hash_init_custom_cdreader (reader : * mut rc_hash_cdreader) ; } pub type rc_hash_3ds_get_cia_normal_key_func = :: core :: option :: Option < unsafe extern "C" fn (common_key_index : u8 , out_normal_key : * mut u8) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_hash_init_3ds_get_cia_normal_key_func (func : rc_hash_3ds_get_cia_normal_key_func) ; } pub type rc_hash_3ds_get_ncch_normal_keys_func = :: core :: option :: Option < unsafe extern "C" fn (primary_key_y : * mut u8 , secondary_key_x_slot : u8 , optional_program_id : * mut u8 , out_primary_key : * mut u8 , out_secondary_key : * mut u8) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_hash_init_3ds_get_ncch_normal_keys_func (func : rc_hash_3ds_get_ncch_normal_keys_func) ; } # [doc = " API parameters for a fetch image request.\n NOTE: fetch image server response is the raw image data. There is no rc_api_process_fetch_image_response function."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_image_request_t { pub image_name : * const :: core :: ffi :: c_char , pub image_type : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_image_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_image_request_t > () - 16usize] ; ["Alignment of rc_api_fetch_image_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_image_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_image_request_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_fetch_image_request_t , image_name) - 0usize] ; ["Offset of field: rc_api_fetch_image_request_t::image_type"] [:: core :: mem :: offset_of ! (rc_api_fetch_image_request_t , image_type) - 8usize] ; } ; extern "C" { pub fn rc_api_init_fetch_image_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_image_request_t) -> :: core :: ffi :: c_int ; } # [doc = " API parameters for a resolve hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_resolve_hash_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_hash : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_resolve_hash_request_t"] [:: core :: mem :: size_of :: < rc_api_resolve_hash_request_t > () - 24usize] ; ["Alignment of rc_api_resolve_hash_request_t"] [:: core :: mem :: align_of :: < rc_api_resolve_hash_request_t > () - 8usize] ; ["Offset of field: rc_api_resolve_hash_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , username) - 0usize] ; ["Offset of field: rc_api_resolve_hash_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_resolve_hash_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , game_hash) - 16usize] ; } ; # [doc = " Response data for a resolve hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_resolve_hash_response_t { pub game_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_resolve_hash_response_t"] [:: core :: mem :: size_of :: < rc_api_resolve_hash_response_t > () - 320usize] ; ["Alignment of rc_api_resolve_hash_response_t"] [:: core :: mem :: align_of :: < rc_api_resolve_hash_response_t > () - 8usize] ; ["Offset of field: rc_api_resolve_hash_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_response_t , game_id) - 0usize] ; ["Offset of field: rc_api_resolve_hash_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_resolve_hash_request (request : * mut rc_api_request_t , api_params : * const rc_api_resolve_hash_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_resolve_hash_response (response : * mut rc_api_resolve_hash_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_resolve_hash_server_response (response : * mut rc_api_resolve_hash_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_resolve_hash_response (response : * mut rc_api_resolve_hash_response_t) ; } # [doc = " API parameters for a fetch game data request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_data_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_data_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_data_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_game_data_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_data_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , game_id) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_leaderboard_definition_t { pub id : u32 , pub format : :: core :: ffi :: c_int , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub lower_is_better : u8 , pub hidden : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_leaderboard_definition_t"] [:: core :: mem :: size_of :: < rc_api_leaderboard_definition_t > () - 40usize] ; ["Alignment of rc_api_leaderboard_definition_t"] [:: core :: mem :: align_of :: < rc_api_leaderboard_definition_t > () - 8usize] ; ["Offset of field: rc_api_leaderboard_definition_t::id"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , id) - 0usize] ; ["Offset of field: rc_api_leaderboard_definition_t::format"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , format) - 4usize] ; ["Offset of field: rc_api_leaderboard_definition_t::title"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , title) - 8usize] ; ["Offset of field: rc_api_leaderboard_definition_t::description"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , description) - 16usize] ; ["Offset of field: rc_api_leaderboard_definition_t::definition"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , definition) - 24usize] ; ["Offset of field: rc_api_leaderboard_definition_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , lower_is_better) - 32usize] ; ["Offset of field: rc_api_leaderboard_definition_t::hidden"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , hidden) - 33usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_achievement_definition_t { pub id : u32 , pub points : u32 , pub category : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub author : * const :: core :: ffi :: c_char , pub badge_name : * const :: core :: ffi :: c_char , pub created : time_t , pub updated : time_t , pub type_ : u32 , pub rarity : f32 , pub rarity_hardcore : f32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_achievement_definition_t"] [:: core :: mem :: size_of :: < rc_api_achievement_definition_t > () - 88usize] ; ["Alignment of rc_api_achievement_definition_t"] [:: core :: mem :: align_of :: < rc_api_achievement_definition_t > () - 8usize] ; ["Offset of field: rc_api_achievement_definition_t::id"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , id) - 0usize] ; ["Offset of field: rc_api_achievement_definition_t::points"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , points) - 4usize] ; ["Offset of field: rc_api_achievement_definition_t::category"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , category) - 8usize] ; ["Offset of field: rc_api_achievement_definition_t::title"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , title) - 16usize] ; ["Offset of field: rc_api_achievement_definition_t::description"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , description) - 24usize] ; ["Offset of field: rc_api_achievement_definition_t::definition"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , definition) - 32usize] ; ["Offset of field: rc_api_achievement_definition_t::author"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , author) - 40usize] ; ["Offset of field: rc_api_achievement_definition_t::badge_name"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , badge_name) - 48usize] ; ["Offset of field: rc_api_achievement_definition_t::created"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , created) - 56usize] ; ["Offset of field: rc_api_achievement_definition_t::updated"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , updated) - 64usize] ; ["Offset of field: rc_api_achievement_definition_t::type_"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , type_) - 72usize] ; ["Offset of field: rc_api_achievement_definition_t::rarity"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , rarity) - 76usize] ; ["Offset of field: rc_api_achievement_definition_t::rarity_hardcore"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , rarity_hardcore) - 80usize] ; } ; # [doc = " Response data for a fetch game data request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_data_response_t { pub id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub image_name : * const :: core :: ffi :: c_char , pub rich_presence_script : * const :: core :: ffi :: c_char , pub achievements : * mut rc_api_achievement_definition_t , pub num_achievements : u32 , pub leaderboards : * mut rc_api_leaderboard_definition_t , pub num_leaderboards : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_data_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_data_response_t > () - 376usize] ; ["Alignment of rc_api_fetch_game_data_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_data_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , console_id) - 4usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::title"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , title) - 8usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , image_name) - 16usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::rich_presence_script"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , rich_presence_script) - 24usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::achievements"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , achievements) - 32usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , num_achievements) - 40usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::leaderboards"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , leaderboards) - 48usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , num_leaderboards) - 56usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , response) - 64usize] ; } ; extern "C" { pub fn rc_api_init_fetch_game_data_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_game_data_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_data_response (response : * mut rc_api_fetch_game_data_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_data_server_response (response : * mut rc_api_fetch_game_data_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_game_data_response (response : * mut rc_api_fetch_game_data_response_t) ; } # [doc = " API parameters for a ping request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_ping_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub rich_presence : * const :: core :: ffi :: c_char , pub game_hash : * const :: core :: ffi :: c_char , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_ping_request_t"] [:: core :: mem :: size_of :: < rc_api_ping_request_t > () - 48usize] ; ["Alignment of rc_api_ping_request_t"] [:: core :: mem :: align_of :: < rc_api_ping_request_t > () - 8usize] ; ["Offset of field: rc_api_ping_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , username) - 0usize] ; ["Offset of field: rc_api_ping_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_ping_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_ping_request_t::rich_presence"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , rich_presence) - 24usize] ; ["Offset of field: rc_api_ping_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , game_hash) - 32usize] ; ["Offset of field: rc_api_ping_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , hardcore) - 40usize] ; } ; # [doc = " Response data for a ping request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_ping_response_t { pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_ping_response_t"] [:: core :: mem :: size_of :: < rc_api_ping_response_t > () - 312usize] ; ["Alignment of rc_api_ping_response_t"] [:: core :: mem :: align_of :: < rc_api_ping_response_t > () - 8usize] ; ["Offset of field: rc_api_ping_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_ping_response_t , response) - 0usize] ; } ; extern "C" { pub fn rc_api_init_ping_request (request : * mut rc_api_request_t , api_params : * const rc_api_ping_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_ping_response (response : * mut rc_api_ping_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_ping_server_response (response : * mut rc_api_ping_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_ping_response (response : * mut rc_api_ping_response_t) ; } # [doc = " API parameters for an award achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_award_achievement_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub hardcore : u32 , pub game_hash : * const :: core :: ffi :: c_char , pub seconds_since_unlock : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_award_achievement_request_t"] [:: core :: mem :: size_of :: < rc_api_award_achievement_request_t > () - 40usize] ; ["Alignment of rc_api_award_achievement_request_t"] [:: core :: mem :: align_of :: < rc_api_award_achievement_request_t > () - 8usize] ; ["Offset of field: rc_api_award_achievement_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , username) - 0usize] ; ["Offset of field: rc_api_award_achievement_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_award_achievement_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_award_achievement_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , hardcore) - 20usize] ; ["Offset of field: rc_api_award_achievement_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_award_achievement_request_t::seconds_since_unlock"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , seconds_since_unlock) - 32usize] ; } ; # [doc = " Response data for an award achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_award_achievement_response_t { pub awarded_achievement_id : u32 , pub new_player_score : u32 , pub new_player_score_softcore : u32 , pub achievements_remaining : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_award_achievement_response_t"] [:: core :: mem :: size_of :: < rc_api_award_achievement_response_t > () - 328usize] ; ["Alignment of rc_api_award_achievement_response_t"] [:: core :: mem :: align_of :: < rc_api_award_achievement_response_t > () - 8usize] ; ["Offset of field: rc_api_award_achievement_response_t::awarded_achievement_id"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , awarded_achievement_id) - 0usize] ; ["Offset of field: rc_api_award_achievement_response_t::new_player_score"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , new_player_score) - 4usize] ; ["Offset of field: rc_api_award_achievement_response_t::new_player_score_softcore"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , new_player_score_softcore) - 8usize] ; ["Offset of field: rc_api_award_achievement_response_t::achievements_remaining"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , achievements_remaining) - 12usize] ; ["Offset of field: rc_api_award_achievement_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_award_achievement_request (request : * mut rc_api_request_t , api_params : * const rc_api_award_achievement_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_award_achievement_response (response : * mut rc_api_award_achievement_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_award_achievement_server_response (response : * mut rc_api_award_achievement_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_award_achievement_response (response : * mut rc_api_award_achievement_response_t) ; } # [doc = " API parameters for a submit lboard entry request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_submit_lboard_entry_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub leaderboard_id : u32 , pub score : i32 , pub game_hash : * const :: core :: ffi :: c_char , pub seconds_since_completion : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_submit_lboard_entry_request_t"] [:: core :: mem :: size_of :: < rc_api_submit_lboard_entry_request_t > () - 40usize] ; ["Alignment of rc_api_submit_lboard_entry_request_t"] [:: core :: mem :: align_of :: < rc_api_submit_lboard_entry_request_t > () - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , username) - 0usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , leaderboard_id) - 16usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , score) - 20usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::seconds_since_completion"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , seconds_since_completion) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_lboard_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub score : i32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_lboard_entry_t"] [:: core :: mem :: size_of :: < rc_api_lboard_entry_t > () - 16usize] ; ["Alignment of rc_api_lboard_entry_t"] [:: core :: mem :: align_of :: < rc_api_lboard_entry_t > () - 8usize] ; ["Offset of field: rc_api_lboard_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , username) - 0usize] ; ["Offset of field: rc_api_lboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , rank) - 8usize] ; ["Offset of field: rc_api_lboard_entry_t::score"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , score) - 12usize] ; } ; # [doc = " Response data for a submit lboard entry request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_submit_lboard_entry_response_t { pub submitted_score : i32 , pub best_score : i32 , pub new_rank : u32 , pub num_entries : u32 , pub top_entries : * mut rc_api_lboard_entry_t , pub num_top_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_submit_lboard_entry_response_t"] [:: core :: mem :: size_of :: < rc_api_submit_lboard_entry_response_t > () - 344usize] ; ["Alignment of rc_api_submit_lboard_entry_response_t"] [:: core :: mem :: align_of :: < rc_api_submit_lboard_entry_response_t > () - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::submitted_score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , submitted_score) - 0usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::best_score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , best_score) - 4usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::new_rank"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , new_rank) - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , num_entries) - 12usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::top_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , top_entries) - 16usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::num_top_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , num_top_entries) - 24usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_submit_lboard_entry_request (request : * mut rc_api_request_t , api_params : * const rc_api_submit_lboard_entry_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_submit_lboard_entry_response (response : * mut rc_api_submit_lboard_entry_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_submit_lboard_entry_server_response (response : * mut rc_api_submit_lboard_entry_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_submit_lboard_entry_response (response : * mut rc_api_submit_lboard_entry_response_t) ; } # [doc = " Callback used to read num_bytes bytes from memory starting at address. If\n num_bytes is greater than 1, the value is read in little-endian from\n memory."] pub type rc_runtime_peek_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , num_bytes : u32 , ud : * mut :: core :: ffi :: c_void) -> u32 > ; # [doc = "\\\n| Runtime                                                                     |\n\\"] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_trigger_t { pub id : u32 , pub trigger : * mut rc_trigger_t , pub buffer : * mut :: core :: ffi :: c_void , pub invalid_memref : * mut rc_memref_t , pub md5 : [u8 ; 16usize] , pub serialized_size : i32 , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_trigger_t"] [:: core :: mem :: size_of :: < rc_runtime_trigger_t > () - 56usize] ; ["Alignment of rc_runtime_trigger_t"] [:: core :: mem :: align_of :: < rc_runtime_trigger_t > () - 8usize] ; ["Offset of field: rc_runtime_trigger_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , id) - 0usize] ; ["Offset of field: rc_runtime_trigger_t::trigger"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , trigger) - 8usize] ; ["Offset of field: rc_runtime_trigger_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , buffer) - 16usize] ; ["Offset of field: rc_runtime_trigger_t::invalid_memref"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , invalid_memref) - 24usize] ; ["Offset of field: rc_runtime_trigger_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , md5) - 32usize] ; ["Offset of field: rc_runtime_trigger_t::serialized_size"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , serialized_size) - 48usize] ; ["Offset of field: rc_runtime_trigger_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , owns_memrefs) - 52usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_lboard_t { pub id : u32 , pub value : i32 , pub lboard : * mut rc_lboard_t , pub buffer : * mut :: core :: ffi :: c_void , pub invalid_memref : * mut rc_memref_t , pub md5 : [u8 ; 16usize] , pub serialized_size : u32 , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_lboard_t"] [:: core :: mem :: size_of :: < rc_runtime_lboard_t > () - 56usize] ; ["Alignment of rc_runtime_lboard_t"] [:: core :: mem :: align_of :: < rc_runtime_lboard_t > () - 8usize] ; ["Offset of field: rc_runtime_lboard_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , id) - 0usize] ; ["Offset of field: rc_runtime_lboard_t::value"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , value) - 4usize] ; ["Offset of field: rc_runtime_lboard_t::lboard"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , lboard) - 8usize] ; ["Offset of field: rc_runtime_lboard_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , buffer) - 16usize] ; ["Offset of field: rc_runtime_lboard_t::invalid_memref"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , invalid_memref) - 24usize] ; ["Offset of field: rc_runtime_lboard_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , md5) - 32usize] ; ["Offset of field: rc_runtime_lboard_t::serialized_size"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , serialized_size) - 48usize] ; ["Offset of field: rc_runtime_lboard_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , owns_memrefs) - 52usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_richpresence_t { pub richpresence : * mut rc_richpresence_t , pub buffer : * mut :: core :: ffi :: c_void , pub previous : * mut rc_runtime_richpresence_t , pub md5 : [u8 ; 16usize] , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_richpresence_t"] [:: core :: mem :: size_of :: < rc_runtime_richpresence_t > () - 48usize] ; ["Alignment of rc_runtime_richpresence_t"] [:: core :: mem :: align_of :: < rc_runtime_richpresence_t > () - 8usize] ; ["Offset of field: rc_runtime_richpresence_t::richpresence"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , richpresence) - 0usize] ; ["Offset of field: rc_runtime_richpresence_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , buffer) - 8usize] ; ["Offset of field: rc_runtime_richpresence_t::previous"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , previous) - 16usize] ; ["Offset of field: rc_runtime_richpresence_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , md5) - 24usize] ; ["Offset of field: rc_runtime_richpresence_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , owns_memrefs) - 40usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_t { pub triggers : * mut rc_runtime_trigger_t , pub trigger_count : u32 , pub trigger_capacity : u32 , pub lboards : * mut rc_runtime_lboard_t , pub lboard_count : u32 , pub lboard_capacity : u32 , pub richpresence : * mut rc_runtime_richpresence_t , pub memrefs : * mut rc_memref_t , pub next_memref : * mut * mut rc_memref_t , pub variables : * mut rc_value_t , pub next_variable : * mut * mut rc_value_t , pub owns_self : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_t"] [:: core :: mem :: size_of :: < rc_runtime_t > () - 80usize] ; ["Alignment of rc_runtime_t"] [:: core :: mem :: align_of :: < rc_runtime_t > () - 8usize] ; ["Offset of field: rc_runtime_t::triggers"] [:: core :: mem :: offset_of ! (rc_runtime_t , triggers) - 0usize] ; ["Offset of field: rc_runtime_t::trigger_count"] [:: core :: mem :: offset_of ! (rc_runtime_t , trigger_count) - 8usize] ; ["Offset of field: rc_runtime_t::trigger_capacity"] [:: core :: mem :: offset_of ! (rc_runtime_t , trigger_capacity) - 12usize] ; ["Offset of field: rc_runtime_t::lboards"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboards) - 16usize] ; ["Offset of field: rc_runtime_t::lboard_count"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboard_count) - 24usize] ; ["Offset of field: rc_runtime_t::lboard_capacity"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboard_capacity) - 28usize] ; ["Offset of field: rc_runtime_t::richpresence"] [:: core :: mem :: offset_of ! (rc_runtime_t , richpresence) - 32usize] ; ["Offset of field: rc_runtime_t::memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_t , memrefs) - 40usize] ; ["Offset of field: rc_runtime_t::next_memref"] [:: core :: mem :: offset_of ! (rc_runtime_t , next_memref) - 48usize] ; ["Offset of field: rc_runtime_t::variables"] [:: core :: mem :: offset_of ! (rc_runtime_t , variables) - 56usize] ; ["Offset of field: rc_runtime_t::next_variable"] [:: core :: mem :: offset_of ! (rc_runtime_t , next_variable) - 64usize] ; ["Offset of field: rc_runtime_t::owns_self"] [:: core :: mem :: offset_of ! (rc_runtime_t , owns_self) - 72usize] ; } ; extern "C" { pub fn rc_runtime_alloc () -> * mut rc_runtime_t ; } extern "C" { pub fn rc_runtime_init (runtime : * mut rc_runtime_t) ; } extern "C" { pub fn rc_runtime_destroy (runtime : * mut rc_runtime_t) ; } extern "C" { pub fn rc_runtime_activate_achievement (runtime : * mut rc_runtime_t , id : u32 , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deactivate_achievement (runtime : * mut rc_runtime_t , id : u32) ; } extern "C" { pub fn rc_runtime_get_achievement (runtime : * const rc_runtime_t , id : u32) -> * mut rc_trigger_t ; } extern "C" { pub fn rc_runtime_get_achievement_measured (runtime : * const rc_runtime_t , id : u32 , measured_value : * mut :: core :: ffi :: c_uint , measured_target : * mut :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_format_achievement_measured (runtime : * const rc_runtime_t , id : u32 , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_activate_lboard (runtime : * mut rc_runtime_t , id : u32 , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deactivate_lboard (runtime : * mut rc_runtime_t , id : u32) ; } extern "C" { pub fn rc_runtime_get_lboard (runtime : * const rc_runtime_t , id : u32) -> * mut rc_lboard_t ; } extern "C" { pub fn rc_runtime_format_lboard_value (buffer : * mut :: core :: ffi :: c_char , size : :: core :: ffi :: c_int , value : i32 , format : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_activate_richpresence (runtime : * mut rc_runtime_t , script : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_get_richpresence (runtime : * const rc_runtime_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_runtime_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } pub const RC_RUNTIME_EVENT_ACHIEVEMENT_ACTIVATED : _bindgen_ty_14 = 0 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PAUSED : _bindgen_ty_14 = 1 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_RESET : _bindgen_ty_14 = 2 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_TRIGGERED : _bindgen_ty_14 = 3 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PRIMED : _bindgen_ty_14 = 4 ; pub const RC_RUNTIME_EVENT_LBOARD_STARTED : _bindgen_ty_14 = 5 ; pub const RC_RUNTIME_EVENT_LBOARD_CANCELED : _bindgen_ty_14 = 6 ; pub const RC_RUNTIME_EVENT_LBOARD_UPDATED : _bindgen_ty_14 = 7 ; pub const RC_RUNTIME_EVENT_LBOARD_TRIGGERED : _bindgen_ty_14 = 8 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_DISABLED : _bindgen_ty_14 = 9 ; pub const RC_RUNTIME_EVENT_LBOARD_DISABLED : _bindgen_ty_14 = 10 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_UNPRIMED : _bindgen_ty_14 = 11 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PROGRESS_UPDATED : _bindgen_ty_14 = 12 ; pub type _bindgen_ty_14 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_event_t { pub id : u32 , pub value : i32 , pub type_ : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_event_t"] [:: core :: mem :: size_of :: < rc_runtime_event_t > () - 12usize] ; ["Alignment of rc_runtime_event_t"] [:: core :: mem :: align_of :: < rc_runtime_event_t > () - 4usize] ; ["Offset of field: rc_runtime_event_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , id) - 0usize] ; ["Offset of field: rc_runtime_event_t::value"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , value) - 4usize] ; ["Offset of field: rc_runtime_event_t::type_"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , type_) - 8usize] ; } ; pub type rc_runtime_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (runtime_event : * const rc_runtime_event_t) > ; extern "C" { pub fn rc_runtime_do_frame (runtime : * mut rc_runtime_t , event_handler : rc_runtime_event_handler_t , peek : rc_runtime_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) ; } extern "C" { pub fn rc_runtime_reset (runtime : * mut rc_runtime_t) ; } pub type rc_runtime_validate_address_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_runtime_validate_addresses (runtime : * mut rc_runtime_t , event_handler : rc_runtime_event_handler_t , validate_handler : rc_runtime_validate_address_t) ; } extern "C" { pub fn rc_runtime_invalidate_address (runtime : * mut rc_runtime_t , address : u32) ; } extern "C" { pub fn rc_runtime_progress_size (runtime : * const rc_runtime_t , L : * mut lua_State) -> u32 ; } extern "C" { pub fn rc_runtime_serialize_progress (buffer : * mut :: core :: ffi :: c_void , runtime : * const rc_runtime_t , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_serialize_progress_sized (buffer : * mut u8 , buffer_size : u32 , runtime : * const rc_runtime_t , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deserialize_progress (runtime : * mut rc_runtime_t , serialized : * const u8 , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deserialize_progress_sized (runtime : * mut rc_runtime_t , serialized : * const u8 , serialized_size : u32 , L : * mut lua_State) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_async_handle_t { _unused : [u8 ; 0] , } # [doc = " Callback used to read num_bytes bytes from memory starting at address into buffer.\n Returns the number of bytes read. A return value of 0 indicates the address was invalid."] pub type rc_client_read_memory_func_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , buffer : * mut u8 , num_bytes : u32 , client : * mut rc_client_t) -> u32 > ; # [doc = " Internal method passed to rc_client_server_call_t to process the server response."] pub type rc_client_server_callback_t = :: core :: option :: Option < unsafe extern "C" fn (server_response : * const rc_api_server_response_t , callback_data : * mut :: core :: ffi :: c_void) > ; # [doc = " Callback used to issue a request to the server."] pub type rc_client_server_call_t = :: core :: option :: Option < unsafe extern "C" fn (request : * const rc_api_request_t , callback : rc_client_server_callback_t , callback_data : * mut :: core :: ffi :: c_void , client : * mut rc_client_t) > ; # [doc = " Generic callback for asynchronous eventing."] pub type rc_client_callback_t = :: core :: option :: Option < unsafe extern "C" fn (result : :: core :: ffi :: c_int , error_message : * const :: core :: ffi :: c_char , client : * mut rc_client_t , userdata : * mut :: core :: ffi :: c_void) > ; # [doc = " Callback for logging or displaying a message."] pub type rc_client_message_callback_t = :: core :: option :: Option < unsafe extern "C" fn (message : * const :: core :: ffi :: c_char , client : * const rc_client_t) > ; extern "C" { # [doc = " Creates a new rc_client_t object."] pub fn rc_client_create (read_memory_function : rc_client_read_memory_func_t , server_call_function : rc_client_server_call_t) -> * mut rc_client_t ; } extern "C" { # [doc = " Releases resources associated to a rc_client_t object.\n Pointer will no longer be valid after making this call."] pub fn rc_client_destroy (client : * mut rc_client_t) ; } extern "C" { # [doc = " Sets whether hardcore is enabled (on by default).\n Can be called with a game loaded.\n Enabling hardcore with a game loaded will raise an RC_CLIENT_EVENT_RESET\n event. Processing will be disabled until rc_client_reset is called."] pub fn rc_client_set_hardcore_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether hardcore is enabled (on by default)."] pub fn rc_client_get_hardcore_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether encore mode is enabled (off by default).\n Evaluated when loading a game. Has no effect while a game is loaded."] pub fn rc_client_set_encore_mode_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether encore mode is enabled (off by default)."] pub fn rc_client_get_encore_mode_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether unofficial achievements should be loaded.\n Evaluated when loading a game. Has no effect while a game is loaded."] pub fn rc_client_set_unofficial_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether unofficial achievements should be loaded."] pub fn rc_client_get_unofficial_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether spectator mode is enabled (off by default).\n If enabled, events for achievement unlocks and leaderboard submissions will be\n raised, but server calls to actually perform the unlock/submit will not occur.\n Can be modified while a game is loaded. Evaluated at unlock/submit time.\n Cannot be modified if disabled before a game is loaded."] pub fn rc_client_set_spectator_mode_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether spectator mode is enabled (off by default)."] pub fn rc_client_get_spectator_mode_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Attaches client-specific data to the runtime."] pub fn rc_client_set_userdata (client : * mut rc_client_t , userdata : * mut :: core :: ffi :: c_void) ; } extern "C" { # [doc = " Gets the client-specific data attached to the runtime."] pub fn rc_client_get_userdata (client : * const rc_client_t) -> * mut :: core :: ffi :: c_void ; } extern "C" { # [doc = " Sets the name of the server to use."] pub fn rc_client_set_host (client : * const rc_client_t , hostname : * const :: core :: ffi :: c_char) ; } pub type rc_clock_t = u64 ; pub type rc_get_time_millisecs_func_t = :: core :: option :: Option < unsafe extern "C" fn (client : * const rc_client_t) -> rc_clock_t > ; extern "C" { # [doc = " Specifies a function that returns a value that increases once per millisecond."] pub fn rc_client_set_get_time_millisecs_function (client : * mut rc_client_t , handler : rc_get_time_millisecs_func_t) ; } extern "C" { # [doc = " Marks an async process as aborted. The associated callback will not be called."] pub fn rc_client_abort_async (client : * mut rc_client_t , async_handle : * mut rc_client_async_handle_t) ; } extern "C" { # [doc = " Gets a clause that can be added to the User-Agent to identify the version of rcheevos being used."] pub fn rc_client_get_user_agent_clause (client : * mut rc_client_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> usize ; } extern "C" { # [doc = " Sets the logging level and provides a callback to be called to do the logging."] pub fn rc_client_enable_logging (client : * mut rc_client_t , level : :: core :: ffi :: c_int , callback : rc_client_message_callback_t) ; } pub const RC_CLIENT_LOG_LEVEL_NONE : _bindgen_ty_15 = 0 ; pub const RC_CLIENT_LOG_LEVEL_ERROR : _bindgen_ty_15 = 1 ; pub const RC_CLIENT_LOG_LEVEL_WARN : _bindgen_ty_15 = 2 ; pub const RC_CLIENT_LOG_LEVEL_INFO : _bindgen_ty_15 = 3 ; pub const RC_CLIENT_LOG_LEVEL_VERBOSE : _bindgen_ty_15 = 4 ; pub const NUM_RC_CLIENT_LOG_LEVELS : _bindgen_ty_15 = 5 ; pub type _bindgen_ty_15 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Attempt to login a user."] pub fn rc_client_begin_login_with_password (client : * mut rc_client_t , username : * const :: core :: ffi :: c_char , password : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Attempt to login a user."] pub fn rc_client_begin_login_with_token (client : * mut rc_client_t , username : * const :: core :: ffi :: c_char , token : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Logout the user."] pub fn rc_client_logout (client : * mut rc_client_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_user_t { pub display_name : * const :: core :: ffi :: c_char , pub username : * const :: core :: ffi :: c_char , pub token : * const :: core :: ffi :: c_char , pub score : u32 , pub score_softcore : u32 , pub num_unread_messages : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_user_t"] [:: core :: mem :: size_of :: < rc_client_user_t > () - 40usize] ; ["Alignment of rc_client_user_t"] [:: core :: mem :: align_of :: < rc_client_user_t > () - 8usize] ; ["Offset of field: rc_client_user_t::display_name"] [:: core :: mem :: offset_of ! (rc_client_user_t , display_name) - 0usize] ; ["Offset of field: rc_client_user_t::username"] [:: core :: mem :: offset_of ! (rc_client_user_t , username) - 8usize] ; ["Offset of field: rc_client_user_t::token"] [:: core :: mem :: offset_of ! (rc_client_user_t , token) - 16usize] ; ["Offset of field: rc_client_user_t::score"] [:: core :: mem :: offset_of ! (rc_client_user_t , score) - 24usize] ; ["Offset of field: rc_client_user_t::score_softcore"] [:: core :: mem :: offset_of ! (rc_client_user_t , score_softcore) - 28usize] ; ["Offset of field: rc_client_user_t::num_unread_messages"] [:: core :: mem :: offset_of ! (rc_client_user_t , num_unread_messages) - 32usize] ; } ; extern "C" { # [doc = " Gets information about the logged in user. Will return NULL if the user is not logged in."] pub fn rc_client_get_user_info (client : * const rc_client_t) -> * const rc_client_user_t ; } extern "C" { # [doc = " Gets the URL for the user's profile picture.\n Returns RC_OK on success."] pub fn rc_client_user_get_image_url (user : * const rc_client_user_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_user_game_summary_t { pub num_core_achievements : u32 , pub num_unofficial_achievements : u32 , pub num_unlocked_achievements : u32 , pub num_unsupported_achievements : u32 , pub points_core : u32 , pub points_unlocked : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_user_game_summary_t"] [:: core :: mem :: size_of :: < rc_client_user_game_summary_t > () - 24usize] ; ["Alignment of rc_client_user_game_summary_t"] [:: core :: mem :: align_of :: < rc_client_user_game_summary_t > () - 4usize] ; ["Offset of field: rc_client_user_game_summary_t::num_core_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_core_achievements) - 0usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unofficial_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unofficial_achievements) - 4usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unlocked_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unlocked_achievements) - 8usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unsupported_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unsupported_achievements) - 12usize] ; ["Offset of field: rc_client_user_game_summary_t::points_core"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , points_core) - 16usize] ; ["Offset of field: rc_client_user_game_summary_t::points_unlocked"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , points_unlocked) - 20usize] ; } ; extern "C" { # [doc = " Gets a breakdown of the number of achievements in the game, and how many the user has unlocked.\n Used for the \"You have unlocked X of Y achievements\" message shown when the game starts."] pub fn rc_client_get_user_game_summary (client : * const rc_client_t , summary : * mut rc_client_user_game_summary_t) ; } extern "C" { # [doc = " Start loading an unidentified game."] pub fn rc_client_begin_identify_and_load_game (client : * mut rc_client_t , console_id : u32 , file_path : * const :: core :: ffi :: c_char , data : * const u8 , data_size : usize , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Start loading a game."] pub fn rc_client_begin_load_game (client : * mut rc_client_t , hash : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Gets the current progress of the asynchronous load game process."] pub fn rc_client_get_load_game_state (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } pub const RC_CLIENT_LOAD_GAME_STATE_NONE : _bindgen_ty_16 = 0 ; pub const RC_CLIENT_LOAD_GAME_STATE_IDENTIFYING_GAME : _bindgen_ty_16 = 1 ; pub const RC_CLIENT_LOAD_GAME_STATE_AWAIT_LOGIN : _bindgen_ty_16 = 2 ; pub const RC_CLIENT_LOAD_GAME_STATE_FETCHING_GAME_DATA : _bindgen_ty_16 = 3 ; pub const RC_CLIENT_LOAD_GAME_STATE_STARTING_SESSION : _bindgen_ty_16 = 4 ; pub const RC_CLIENT_LOAD_GAME_STATE_DONE : _bindgen_ty_16 = 5 ; pub const RC_CLIENT_LOAD_GAME_STATE_ABORTED : _bindgen_ty_16 = 6 ; pub type _bindgen_ty_16 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Determines if a game was successfully identified and loaded."] pub fn rc_client_is_game_loaded (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Unloads the current game."] pub fn rc_client_unload_game (client : * mut rc_client_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_game_t { pub id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub hash : * const :: core :: ffi :: c_char , pub badge_name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_game_t"] [:: core :: mem :: size_of :: < rc_client_game_t > () - 32usize] ; ["Alignment of rc_client_game_t"] [:: core :: mem :: align_of :: < rc_client_game_t > () - 8usize] ; ["Offset of field: rc_client_game_t::id"] [:: core :: mem :: offset_of ! (rc_client_game_t , id) - 0usize] ; ["Offset of field: rc_client_game_t::console_id"] [:: core :: mem :: offset_of ! (rc_client_game_t , console_id) - 4usize] ; ["Offset of field: rc_client_game_t::title"] [:: core :: mem :: offset_of ! (rc_client_game_t , title) - 8usize] ; ["Offset of field: rc_client_game_t::hash"] [:: core :: mem :: offset_of ! (rc_client_game_t , hash) - 16usize] ; ["Offset of field: rc_client_game_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_game_t , badge_name) - 24usize] ; } ; extern "C" { # [doc = " Get information about the current game. Returns NULL if no game is loaded.\n NOTE: returns a dummy game record if an unidentified game is loaded."] pub fn rc_client_get_game_info (client : * const rc_client_t) -> * const rc_client_game_t ; } extern "C" { # [doc = " Gets the URL for the game image.\n Returns RC_OK on success."] pub fn rc_client_game_get_image_url (game : * const rc_client_game_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Changes the active disc in a multi-disc game."] pub fn rc_client_begin_change_media (client : * mut rc_client_t , file_path : * const :: core :: ffi :: c_char , data : * const u8 , data_size : usize , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Changes the active disc in a multi-disc game."] pub fn rc_client_begin_change_media_from_hash (client : * mut rc_client_t , hash : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } # [doc = "\\\n| Subsets                                                                     |\n\\"] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_subset_t { pub id : u32 , pub title : * const :: core :: ffi :: c_char , pub badge_name : [:: core :: ffi :: c_char ; 16usize] , pub num_achievements : u32 , pub num_leaderboards : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_subset_t"] [:: core :: mem :: size_of :: < rc_client_subset_t > () - 40usize] ; ["Alignment of rc_client_subset_t"] [:: core :: mem :: align_of :: < rc_client_subset_t > () - 8usize] ; ["Offset of field: rc_client_subset_t::id"] [:: core :: mem :: offset_of ! (rc_client_subset_t , id) - 0usize] ; ["Offset of field: rc_client_subset_t::title"] [:: core :: mem :: offset_of ! (rc_client_subset_t , title) - 8usize] ; ["Offset of field: rc_client_subset_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_subset_t , badge_name) - 16usize] ; ["Offset of field: rc_client_subset_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_client_subset_t , num_achievements) - 32usize] ; ["Offset of field: rc_client_subset_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_client_subset_t , num_leaderboards) - 36usize] ; } ; extern "C" { pub fn rc_client_get_subset_info (client : * mut rc_client_t , subset_id : u32) -> * const rc_client_subset_t ; } pub const RC_CLIENT_ACHIEVEMENT_STATE_INACTIVE : _bindgen_ty_17 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_ACTIVE : _bindgen_ty_17 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_UNLOCKED : _bindgen_ty_17 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_DISABLED : _bindgen_ty_17 = 3 ; pub const NUM_RC_CLIENT_ACHIEVEMENT_STATES : _bindgen_ty_17 = 4 ; # [doc = "\\\n| Achievements                                                                |\n\\"] pub type _bindgen_ty_17 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_NONE : _bindgen_ty_18 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_CORE : _bindgen_ty_18 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_UNOFFICIAL : _bindgen_ty_18 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_CORE_AND_UNOFFICIAL : _bindgen_ty_18 = 3 ; pub type _bindgen_ty_18 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_STANDARD : _bindgen_ty_19 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_MISSABLE : _bindgen_ty_19 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_PROGRESSION : _bindgen_ty_19 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_WIN : _bindgen_ty_19 = 3 ; pub type _bindgen_ty_19 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNKNOWN : _bindgen_ty_20 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_LOCKED : _bindgen_ty_20 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNLOCKED : _bindgen_ty_20 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNSUPPORTED : _bindgen_ty_20 = 3 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNOFFICIAL : _bindgen_ty_20 = 4 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_RECENTLY_UNLOCKED : _bindgen_ty_20 = 5 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_ACTIVE_CHALLENGE : _bindgen_ty_20 = 6 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_ALMOST_THERE : _bindgen_ty_20 = 7 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNSYNCED : _bindgen_ty_20 = 8 ; pub const NUM_RC_CLIENT_ACHIEVEMENT_BUCKETS : _bindgen_ty_20 = 9 ; pub type _bindgen_ty_20 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_NONE : _bindgen_ty_21 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_SOFTCORE : _bindgen_ty_21 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_HARDCORE : _bindgen_ty_21 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_BOTH : _bindgen_ty_21 = 3 ; pub type _bindgen_ty_21 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_t { pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub badge_name : [:: core :: ffi :: c_char ; 8usize] , pub measured_progress : [:: core :: ffi :: c_char ; 24usize] , pub measured_percent : f32 , pub id : u32 , pub points : u32 , pub unlock_time : time_t , pub state : u8 , pub category : u8 , pub bucket : u8 , pub unlocked : u8 , pub rarity : f32 , pub rarity_hardcore : f32 , pub type_ : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_t"] [:: core :: mem :: size_of :: < rc_client_achievement_t > () - 88usize] ; ["Alignment of rc_client_achievement_t"] [:: core :: mem :: align_of :: < rc_client_achievement_t > () - 8usize] ; ["Offset of field: rc_client_achievement_t::title"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , title) - 0usize] ; ["Offset of field: rc_client_achievement_t::description"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , description) - 8usize] ; ["Offset of field: rc_client_achievement_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , badge_name) - 16usize] ; ["Offset of field: rc_client_achievement_t::measured_progress"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , measured_progress) - 24usize] ; ["Offset of field: rc_client_achievement_t::measured_percent"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , measured_percent) - 48usize] ; ["Offset of field: rc_client_achievement_t::id"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , id) - 52usize] ; ["Offset of field: rc_client_achievement_t::points"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , points) - 56usize] ; ["Offset of field: rc_client_achievement_t::unlock_time"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , unlock_time) - 64usize] ; ["Offset of field: rc_client_achievement_t::state"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , state) - 72usize] ; ["Offset of field: rc_client_achievement_t::category"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , category) - 73usize] ; ["Offset of field: rc_client_achievement_t::bucket"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , bucket) - 74usize] ; ["Offset of field: rc_client_achievement_t::unlocked"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , unlocked) - 75usize] ; ["Offset of field: rc_client_achievement_t::rarity"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , rarity) - 76usize] ; ["Offset of field: rc_client_achievement_t::rarity_hardcore"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , rarity_hardcore) - 80usize] ; ["Offset of field: rc_client_achievement_t::type_"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , type_) - 84usize] ; } ; extern "C" { # [doc = " Get information about an achievement. Returns NULL if not found."] pub fn rc_client_get_achievement_info (client : * mut rc_client_t , id : u32) -> * const rc_client_achievement_t ; } extern "C" { # [doc = " Gets the URL for the achievement image.\n Returns RC_OK on success."] pub fn rc_client_achievement_get_image_url (achievement : * const rc_client_achievement_t , state : :: core :: ffi :: c_int , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_bucket_t { pub achievements : * mut * mut rc_client_achievement_t , pub num_achievements : u32 , pub label : * const :: core :: ffi :: c_char , pub subset_id : u32 , pub bucket_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_bucket_t"] [:: core :: mem :: size_of :: < rc_client_achievement_bucket_t > () - 32usize] ; ["Alignment of rc_client_achievement_bucket_t"] [:: core :: mem :: align_of :: < rc_client_achievement_bucket_t > () - 8usize] ; ["Offset of field: rc_client_achievement_bucket_t::achievements"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , achievements) - 0usize] ; ["Offset of field: rc_client_achievement_bucket_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , num_achievements) - 8usize] ; ["Offset of field: rc_client_achievement_bucket_t::label"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , label) - 16usize] ; ["Offset of field: rc_client_achievement_bucket_t::subset_id"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , subset_id) - 24usize] ; ["Offset of field: rc_client_achievement_bucket_t::bucket_type"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , bucket_type) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_list_t { pub buckets : * mut rc_client_achievement_bucket_t , pub num_buckets : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_list_t"] [:: core :: mem :: size_of :: < rc_client_achievement_list_t > () - 16usize] ; ["Alignment of rc_client_achievement_list_t"] [:: core :: mem :: align_of :: < rc_client_achievement_list_t > () - 8usize] ; ["Offset of field: rc_client_achievement_list_t::buckets"] [:: core :: mem :: offset_of ! (rc_client_achievement_list_t , buckets) - 0usize] ; ["Offset of field: rc_client_achievement_list_t::num_buckets"] [:: core :: mem :: offset_of ! (rc_client_achievement_list_t , num_buckets) - 8usize] ; } ; pub const RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_LOCK_STATE : _bindgen_ty_22 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_PROGRESS : _bindgen_ty_22 = 1 ; pub type _bindgen_ty_22 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Creates a list of achievements matching the specified category and grouping.\n Returns an allocated list that must be free'd by calling rc_client_destroy_achievement_list."] pub fn rc_client_create_achievement_list (client : * mut rc_client_t , category : :: core :: ffi :: c_int , grouping : :: core :: ffi :: c_int) -> * mut rc_client_achievement_list_t ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_get_achievement_list."] pub fn rc_client_destroy_achievement_list (list : * mut rc_client_achievement_list_t) ; } extern "C" { # [doc = " Returns non-zero if there are any achievements that can be queried through rc_client_create_achievement_list()."] pub fn rc_client_has_achievements (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } pub const RC_CLIENT_LEADERBOARD_STATE_INACTIVE : _bindgen_ty_23 = 0 ; pub const RC_CLIENT_LEADERBOARD_STATE_ACTIVE : _bindgen_ty_23 = 1 ; pub const RC_CLIENT_LEADERBOARD_STATE_TRACKING : _bindgen_ty_23 = 2 ; pub const RC_CLIENT_LEADERBOARD_STATE_DISABLED : _bindgen_ty_23 = 3 ; pub const NUM_RC_CLIENT_LEADERBOARD_STATES : _bindgen_ty_23 = 4 ; # [doc = "\\\n| Leaderboards                                                                |\n\\"] pub type _bindgen_ty_23 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_LEADERBOARD_FORMAT_TIME : _bindgen_ty_24 = 0 ; pub const RC_CLIENT_LEADERBOARD_FORMAT_SCORE : _bindgen_ty_24 = 1 ; pub const RC_CLIENT_LEADERBOARD_FORMAT_VALUE : _bindgen_ty_24 = 2 ; pub const NUM_RC_CLIENT_LEADERBOARD_FORMATS : _bindgen_ty_24 = 3 ; pub type _bindgen_ty_24 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_t { pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub tracker_value : * const :: core :: ffi :: c_char , pub id : u32 , pub state : u8 , pub format : u8 , pub lower_is_better : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_t > () - 32usize] ; ["Alignment of rc_client_leaderboard_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_t::title"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , title) - 0usize] ; ["Offset of field: rc_client_leaderboard_t::description"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , description) - 8usize] ; ["Offset of field: rc_client_leaderboard_t::tracker_value"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , tracker_value) - 16usize] ; ["Offset of field: rc_client_leaderboard_t::id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , id) - 24usize] ; ["Offset of field: rc_client_leaderboard_t::state"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , state) - 28usize] ; ["Offset of field: rc_client_leaderboard_t::format"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , format) - 29usize] ; ["Offset of field: rc_client_leaderboard_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , lower_is_better) - 30usize] ; } ; extern "C" { # [doc = " Get information about a leaderboard. Returns NULL if not found."] pub fn rc_client_get_leaderboard_info (client : * const rc_client_t , id : u32) -> * const rc_client_leaderboard_t ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_tracker_t { pub display : [:: core :: ffi :: c_char ; 24usize] , pub id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_tracker_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_tracker_t > () - 28usize] ; ["Alignment of rc_client_leaderboard_tracker_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_tracker_t > () - 4usize] ; ["Offset of field: rc_client_leaderboard_tracker_t::display"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_tracker_t , display) - 0usize] ; ["Offset of field: rc_client_leaderboard_tracker_t::id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_tracker_t , id) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_bucket_t { pub leaderboards : * mut * mut rc_client_leaderboard_t , pub num_leaderboards : u32 , pub label : * const :: core :: ffi :: c_char , pub subset_id : u32 , pub bucket_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_bucket_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_bucket_t > () - 32usize] ; ["Alignment of rc_client_leaderboard_bucket_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_bucket_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::leaderboards"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , leaderboards) - 0usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , num_leaderboards) - 8usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::label"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , label) - 16usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::subset_id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , subset_id) - 24usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::bucket_type"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , bucket_type) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_list_t { pub buckets : * mut rc_client_leaderboard_bucket_t , pub num_buckets : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_list_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_list_t > () - 16usize] ; ["Alignment of rc_client_leaderboard_list_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_list_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_list_t::buckets"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_list_t , buckets) - 0usize] ; ["Offset of field: rc_client_leaderboard_list_t::num_buckets"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_list_t , num_buckets) - 8usize] ; } ; pub const RC_CLIENT_LEADERBOARD_BUCKET_UNKNOWN : _bindgen_ty_25 = 0 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_INACTIVE : _bindgen_ty_25 = 1 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_ACTIVE : _bindgen_ty_25 = 2 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_UNSUPPORTED : _bindgen_ty_25 = 3 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_ALL : _bindgen_ty_25 = 4 ; pub const NUM_RC_CLIENT_LEADERBOARD_BUCKETS : _bindgen_ty_25 = 5 ; pub type _bindgen_ty_25 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_LEADERBOARD_LIST_GROUPING_NONE : _bindgen_ty_26 = 0 ; pub const RC_CLIENT_LEADERBOARD_LIST_GROUPING_TRACKING : _bindgen_ty_26 = 1 ; pub type _bindgen_ty_26 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Creates a list of leaderboards matching the specified grouping.\n Returns an allocated list that must be free'd by calling rc_client_destroy_leaderboard_list."] pub fn rc_client_create_leaderboard_list (client : * mut rc_client_t , grouping : :: core :: ffi :: c_int) -> * mut rc_client_leaderboard_list_t ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_get_leaderboard_list."] pub fn rc_client_destroy_leaderboard_list (list : * mut rc_client_leaderboard_list_t) ; } extern "C" { # [doc = " Returns non-zero if the current game has any leaderboards."] pub fn rc_client_has_leaderboards (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_entry_t { pub user : * const :: core :: ffi :: c_char , pub display : [:: core :: ffi :: c_char ; 24usize] , pub submitted : time_t , pub rank : u32 , pub index : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_entry_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_entry_t > () - 48usize] ; ["Alignment of rc_client_leaderboard_entry_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_entry_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_t::user"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , user) - 0usize] ; ["Offset of field: rc_client_leaderboard_entry_t::display"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , display) - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_t::submitted"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , submitted) - 32usize] ; ["Offset of field: rc_client_leaderboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , rank) - 40usize] ; ["Offset of field: rc_client_leaderboard_entry_t::index"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , index) - 44usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_entry_list_t { pub entries : * mut rc_client_leaderboard_entry_t , pub num_entries : u32 , pub total_entries : u32 , pub user_index : i32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_entry_list_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_entry_list_t > () - 24usize] ; ["Alignment of rc_client_leaderboard_entry_list_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_entry_list_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , entries) - 0usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::num_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , num_entries) - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::total_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , total_entries) - 12usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::user_index"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , user_index) - 16usize] ; } ; pub type rc_client_fetch_leaderboard_entries_callback_t = :: core :: option :: Option < unsafe extern "C" fn (result : :: core :: ffi :: c_int , error_message : * const :: core :: ffi :: c_char , list : * mut rc_client_leaderboard_entry_list_t , client : * mut rc_client_t , callback_userdata : * mut :: core :: ffi :: c_void) > ; extern "C" { # [doc = " Fetches a list of leaderboard entries from the server.\n Callback receives an allocated list that must be free'd by calling rc_client_destroy_leaderboard_entry_list."] pub fn rc_client_begin_fetch_leaderboard_entries (client : * mut rc_client_t , leaderboard_id : u32 , first_entry : u32 , count : u32 , callback : rc_client_fetch_leaderboard_entries_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Fetches a list of leaderboard entries from the server containing the logged-in user.\n Callback receives an allocated list that must be free'd by calling rc_client_destroy_leaderboard_entry_list."] pub fn rc_client_begin_fetch_leaderboard_entries_around_user (client : * mut rc_client_t , leaderboard_id : u32 , count : u32 , callback : rc_client_fetch_leaderboard_entries_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Gets the URL for the profile picture of the user associated to a leaderboard entry.\n Returns RC_OK on success."] pub fn rc_client_leaderboard_entry_get_user_image_url (entry : * const rc_client_leaderboard_entry_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_begin_fetch_leaderboard_entries or rc_client_begin_fetch_leaderboard_entries_around_user."] pub fn rc_client_destroy_leaderboard_entry_list (list : * mut rc_client_leaderboard_entry_list_t) ; } # [doc = " Used for scoreboard events. Contains the response from the server when a leaderboard entry is submitted.\n NOTE: This structure is only valid within the event callback. If you want to make use of the data outside\n of the callback, you should create copies of both the top entries and usernames within."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_scoreboard_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub score : [:: core :: ffi :: c_char ; 24usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_scoreboard_entry_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_scoreboard_entry_t > () - 40usize] ; ["Alignment of rc_client_leaderboard_scoreboard_entry_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_scoreboard_entry_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::username"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , username) - 0usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , rank) - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , score) - 12usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_scoreboard_t { pub leaderboard_id : u32 , pub submitted_score : [:: core :: ffi :: c_char ; 24usize] , pub best_score : [:: core :: ffi :: c_char ; 24usize] , pub new_rank : u32 , pub num_entries : u32 , pub top_entries : * mut rc_client_leaderboard_scoreboard_entry_t , pub num_top_entries : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_scoreboard_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_scoreboard_t > () - 80usize] ; ["Alignment of rc_client_leaderboard_scoreboard_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_scoreboard_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::submitted_score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , submitted_score) - 4usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::best_score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , best_score) - 28usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::new_rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , new_rank) - 52usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::num_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , num_entries) - 56usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::top_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , top_entries) - 64usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::num_top_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , num_top_entries) - 72usize] ; } ; extern "C" { # [doc = " Returns non-zero if the current game supports rich presence."] pub fn rc_client_has_rich_presence (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Gets the current rich presence message.\n Returns the number of characters written to buffer."] pub fn rc_client_get_rich_presence_message (client : * mut rc_client_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> usize ; } pub const RC_CLIENT_EVENT_TYPE_NONE : _bindgen_ty_27 = 0 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_TRIGGERED : _bindgen_ty_27 = 1 ; pub const RC_CLIENT_EVENT_LEADERBOARD_STARTED : _bindgen_ty_27 = 2 ; pub const RC_CLIENT_EVENT_LEADERBOARD_FAILED : _bindgen_ty_27 = 3 ; pub const RC_CLIENT_EVENT_LEADERBOARD_SUBMITTED : _bindgen_ty_27 = 4 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_CHALLENGE_INDICATOR_SHOW : _bindgen_ty_27 = 5 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_CHALLENGE_INDICATOR_HIDE : _bindgen_ty_27 = 6 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_SHOW : _bindgen_ty_27 = 7 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_HIDE : _bindgen_ty_27 = 8 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_UPDATE : _bindgen_ty_27 = 9 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_SHOW : _bindgen_ty_27 = 10 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_HIDE : _bindgen_ty_27 = 11 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_UPDATE : _bindgen_ty_27 = 12 ; pub const RC_CLIENT_EVENT_LEADERBOARD_SCOREBOARD : _bindgen_ty_27 = 13 ; pub const RC_CLIENT_EVENT_RESET : _bindgen_ty_27 = 14 ; pub const RC_CLIENT_EVENT_GAME_COMPLETED : _bindgen_ty_27 = 15 ; pub const RC_CLIENT_EVENT_SERVER_ERROR : _bindgen_ty_27 = 16 ; pub const RC_CLIENT_EVENT_DISCONNECTED : _bindgen_ty_27 = 17 ; pub const RC_CLIENT_EVENT_RECONNECTED : _bindgen_ty_27 = 18 ; # [doc = "\\\n| Processing                                                                  |\n\\"] pub type _bindgen_ty_27 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_server_error_t { pub error_message : * const :: core :: ffi :: c_char , pub api : * const :: core :: ffi :: c_char , pub result : :: core :: ffi :: c_int , pub related_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_server_error_t"] [:: core :: mem :: size_of :: < rc_client_server_error_t > () - 24usize] ; ["Alignment of rc_client_server_error_t"] [:: core :: mem :: align_of :: < rc_client_server_error_t > () - 8usize] ; ["Offset of field: rc_client_server_error_t::error_message"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , error_message) - 0usize] ; ["Offset of field: rc_client_server_error_t::api"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , api) - 8usize] ; ["Offset of field: rc_client_server_error_t::result"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , result) - 16usize] ; ["Offset of field: rc_client_server_error_t::related_id"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , related_id) - 20usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_event_t { pub type_ : u32 , pub achievement : * mut rc_client_achievement_t , pub leaderboard : * mut rc_client_leaderboard_t , pub leaderboard_tracker : * mut rc_client_leaderboard_tracker_t , pub leaderboard_scoreboard : * mut rc_client_leaderboard_scoreboard_t , pub server_error : * mut rc_client_server_error_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_event_t"] [:: core :: mem :: size_of :: < rc_client_event_t > () - 48usize] ; ["Alignment of rc_client_event_t"] [:: core :: mem :: align_of :: < rc_client_event_t > () - 8usize] ; ["Offset of field: rc_client_event_t::type_"] [:: core :: mem :: offset_of ! (rc_client_event_t , type_) - 0usize] ; ["Offset of field: rc_client_event_t::achievement"] [:: core :: mem :: offset_of ! (rc_client_event_t , achievement) - 8usize] ; ["Offset of field: rc_client_event_t::leaderboard"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard) - 16usize] ; ["Offset of field: rc_client_event_t::leaderboard_tracker"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard_tracker) - 24usize] ; ["Offset of field: rc_client_event_t::leaderboard_scoreboard"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard_scoreboard) - 32usize] ; ["Offset of field: rc_client_event_t::server_error"] [:: core :: mem :: offset_of ! (rc_client_event_t , server_error) - 40usize] ; } ; # [doc = " Callback used to notify the client when certain events occur."] pub type rc_client_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (event : * const rc_client_event_t , client : * mut rc_client_t) > ; extern "C" { # [doc = " Provides a callback for event handling."] pub fn rc_client_set_event_handler (client : * mut rc_client_t , handler : rc_client_event_handler_t) ; } extern "C" { # [doc = " Provides a callback for reading memory."] pub fn rc_client_set_read_memory_function (client : * mut rc_client_t , handler : rc_client_read_memory_func_t) ; } extern "C" { # [doc = " Determines if there are any active achievements/leaderboards/rich presence that need processing."] pub fn rc_client_is_processing_required (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Processes achievements for the current frame."] pub fn rc_client_do_frame (client : * mut rc_client_t) ; } extern "C" { # [doc = " Processes the periodic queue.\n Called internally by rc_client_do_frame.\n Should be explicitly called if rc_client_do_frame is not being called because emulation is paused."] pub fn rc_client_idle (client : * mut rc_client_t) ; } extern "C" { # [doc = " Determines if a sufficient amount of frames have been processed since the last call to rc_client_can_pause.\n Should not be called unless the client is trying to pause.\n If false is returned, and frames_remaining is not NULL, frames_remaining will be set to the number of frames\n still required before pause is allowed, which can be converted to a time in seconds for displaying to the user."] pub fn rc_client_can_pause (client : * mut rc_client_t , frames_remaining : * mut u32) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Informs the runtime that the emulator has been reset. Will reset all achievements and leaderboards\n to their initial state (includes hiding indicators/trackers)."] pub fn rc_client_reset (client : * mut rc_client_t) ; } extern "C" { # [doc = " Gets the number of bytes needed to serialized the runtime state."] pub fn rc_client_progress_size (client : * mut rc_client_t) -> usize ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator.\n [deprecated] use rc_client_serialize_progress_sized instead"] pub fn rc_client_serialize_progress (client : * mut rc_client_t , buffer : * mut u8) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator."] pub fn rc_client_serialize_progress_sized (client : * mut rc_client_t , buffer : * mut u8 , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Deserializes the runtime state from a buffer.\n Returns RC_OK on success, or an error indicator.\n [deprecated] use rc_client_deserialize_progress_sized instead"] pub fn rc_client_deserialize_progress (client : * mut rc_client_t , serialized : * const u8) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator."] pub fn rc_client_deserialize_progress_sized (client : * mut rc_client_t , serialized : * const u8 , serialized_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __locale_data { pub _address : u8 , } pub type __builtin_va_list = [__va_list_tag ; 1usize] ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __va_list_tag { pub gp_offset : :: core :: ffi :: c_uint , pub fp_offset : :: core :: ffi :: c_uint , pub overflow_arg_area : * mut :: core :: ffi :: c_void , pub reg_save_area : * mut :: core :: ffi :: c_void , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __va_list_tag"] [:: core :: mem :: size_of :: < __va_list_tag > () - 24usize] ; ["Alignment of __va_list_tag"] [:: core :: mem :: align_of :: < __va_list_tag > () - 8usize] ; ["Offset of field: __va_list_tag::gp_offset"] [:: core :: mem :: offset_of ! (__va_list_tag , gp_offset) - 0usize] ; ["Offset of field: __va_list_tag::fp_offset"] [:: core :: mem :: offset_of ! (__va_list_tag , fp_offset) - 4usize] ; ["Offset of field: __va_list_tag::overflow_arg_area"] [:: core :: mem :: offset_of ! (__va_list_tag , overflow_arg_area) - 8usize] ; ["Offset of field: __va_list_tag::reg_save_area"] [:: core :: mem :: offset_of ! (__va_list_tag , reg_save_area) - 16usize] ; } ;
[INFO] [stderr] 3 + # [repr (C)] # [derive (Copy , Clone , Debug , Default , Eq , Hash , Ord , PartialEq , PartialOrd)] pub struct __BindgenBitfieldUnit < Storage > { storage : Storage , } impl < Storage > __BindgenBitfieldUnit < Storage > { # [inline] pub const fn new (storage : Storage) -> Self { Self { storage } } } impl < Storage > __BindgenBitfieldUnit < Storage > where Storage : AsRef < [u8] > + AsMut < [u8] >, { # [inline] pub fn get_bit (& self , index : usize) -> bool { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = self . storage . as_ref () [byte_index] ; let bit_index = if cfg ! (target_endian = "big") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; byte & mask == mask } # [inline] pub fn set_bit (& mut self , index : usize , val : bool) { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = & mut self . storage . as_mut () [byte_index] ; let bit_index = if cfg ! (target_endian = "big") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; if val { * byte |= mask ; } else { * byte &= ! mask ; } } # [inline] pub fn get (& self , bit_offset : usize , bit_width : u8) -> u64 { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; let mut val = 0 ; for i in 0 .. (bit_width as usize) { if self . get_bit (i + bit_offset) { let index = if cfg ! (target_endian = "big") { bit_width as usize - 1 - i } else { i } ; val |= 1 << index ; } } val } # [inline] pub fn set (& mut self , bit_offset : usize , bit_width : u8 , val : u64) { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; for i in 0 .. (bit_width as usize) { let mask = 1 << i ; let val_bit_is_set = val & mask == mask ; let index = if cfg ! (target_endian = "big") { bit_width as usize - 1 - i } else { i } ; self . set_bit (index + bit_offset , val_bit_is_set) ; } } } # [derive (PartialEq , Copy , Clone , Hash , Debug , Default)] # [repr (C)] pub struct __BindgenComplex < T > { pub re : T , pub im : T } pub const _STDINT_H : u32 = 1 ; pub const _FEATURES_H : u32 = 1 ; pub const _DEFAULT_SOURCE : u32 = 1 ; pub const __GLIBC_USE_ISOC2Y : u32 = 0 ; pub const __GLIBC_USE_ISOC23 : u32 = 0 ; pub const __USE_ISOC11 : u32 = 1 ; pub const __USE_ISOC99 : u32 = 1 ; pub const __USE_ISOC95 : u32 = 1 ; pub const __USE_POSIX_IMPLICITLY : u32 = 1 ; pub const _POSIX_SOURCE : u32 = 1 ; pub const _POSIX_C_SOURCE : u32 = 202405 ; pub const __USE_POSIX : u32 = 1 ; pub const __USE_POSIX2 : u32 = 1 ; pub const __USE_POSIX199309 : u32 = 1 ; pub const __USE_POSIX199506 : u32 = 1 ; pub const __USE_XOPEN2K : u32 = 1 ; pub const __USE_XOPEN2K8 : u32 = 1 ; pub const _ATFILE_SOURCE : u32 = 1 ; pub const __USE_XOPEN2K24 : u32 = 1 ; pub const __WORDSIZE : u32 = 64 ; pub const __WORDSIZE_TIME64_COMPAT32 : u32 = 1 ; pub const __SYSCALL_WORDSIZE : u32 = 64 ; pub const __TIMESIZE : u32 = 64 ; pub const __USE_TIME_BITS64 : u32 = 1 ; pub const __USE_MISC : u32 = 1 ; 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_C23_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 ; pub const __STDC_IEC_559_COMPLEX__ : u32 = 1 ; 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 = 43 ; pub const _SYS_CDEFS_H : u32 = 1 ; pub const __glibc_c99_flexarr_available : u32 = 1 ; pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI : u32 = 0 ; pub const __HAVE_GENERIC_SELECTION : u32 = 1 ; pub const __GLIBC_USE_LIB_EXT2 : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT_C23 : u32 = 0 ; 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_C23 : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_TYPES_EXT : u32 = 0 ; pub const _BITS_TYPES_H : u32 = 1 ; pub const _BITS_TYPESIZES_H : u32 = 1 ; pub const __OFF_T_MATCHES_OFF64_T : u32 = 1 ; pub const __INO_T_MATCHES_INO64_T : u32 = 1 ; pub const __RLIM_T_MATCHES_RLIM64_T : u32 = 1 ; pub const __STATFS_MATCHES_STATFS64 : u32 = 1 ; pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 : u32 = 1 ; pub const __FD_SETSIZE : u32 = 1024 ; pub const _BITS_TIME64_H : u32 = 1 ; pub const _BITS_WCHAR_H : u32 = 1 ; pub const _BITS_STDINT_INTN_H : u32 = 1 ; pub const _BITS_STDINT_UINTN_H : u32 = 1 ; pub const _BITS_STDINT_LEAST_H : u32 = 1 ; pub const INT8_MIN : i32 = - 128 ; pub const INT16_MIN : i32 = - 32768 ; pub const INT32_MIN : i32 = - 2147483648 ; pub const INT8_MAX : u32 = 127 ; pub const INT16_MAX : u32 = 32767 ; pub const INT32_MAX : u32 = 2147483647 ; pub const UINT8_MAX : u32 = 255 ; pub const UINT16_MAX : u32 = 65535 ; pub const UINT32_MAX : u32 = 4294967295 ; pub const INT_LEAST8_MIN : i32 = - 128 ; pub const INT_LEAST16_MIN : i32 = - 32768 ; pub const INT_LEAST32_MIN : i32 = - 2147483648 ; pub const INT_LEAST8_MAX : u32 = 127 ; pub const INT_LEAST16_MAX : u32 = 32767 ; pub const INT_LEAST32_MAX : u32 = 2147483647 ; pub const UINT_LEAST8_MAX : u32 = 255 ; pub const UINT_LEAST16_MAX : u32 = 65535 ; pub const UINT_LEAST32_MAX : u32 = 4294967295 ; pub const INT_FAST8_MIN : i32 = - 128 ; pub const INT_FAST16_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST32_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST8_MAX : u32 = 127 ; pub const INT_FAST16_MAX : u64 = 9223372036854775807 ; pub const INT_FAST32_MAX : u64 = 9223372036854775807 ; pub const UINT_FAST8_MAX : u32 = 255 ; pub const UINT_FAST16_MAX : i32 = - 1 ; pub const UINT_FAST32_MAX : i32 = - 1 ; pub const INTPTR_MIN : i64 = - 9223372036854775808 ; pub const INTPTR_MAX : u64 = 9223372036854775807 ; pub const UINTPTR_MAX : i32 = - 1 ; pub const PTRDIFF_MIN : i64 = - 9223372036854775808 ; pub const PTRDIFF_MAX : u64 = 9223372036854775807 ; pub const SIG_ATOMIC_MIN : i32 = - 2147483648 ; pub const SIG_ATOMIC_MAX : u32 = 2147483647 ; pub const SIZE_MAX : i32 = - 1 ; pub const WINT_MIN : u32 = 0 ; pub const WINT_MAX : u32 = 4294967295 ; pub const RC_VALUE_MAX_NAME_LENGTH : u32 = 15 ; pub const _TIME_H : u32 = 1 ; pub const _BITS_TIME_H : u32 = 1 ; pub const CLOCK_REALTIME : u32 = 0 ; pub const CLOCK_MONOTONIC : u32 = 1 ; pub const CLOCK_PROCESS_CPUTIME_ID : u32 = 2 ; pub const CLOCK_THREAD_CPUTIME_ID : u32 = 3 ; pub const CLOCK_MONOTONIC_RAW : u32 = 4 ; pub const CLOCK_REALTIME_COARSE : u32 = 5 ; pub const CLOCK_MONOTONIC_COARSE : u32 = 6 ; pub const CLOCK_BOOTTIME : u32 = 7 ; pub const CLOCK_REALTIME_ALARM : u32 = 8 ; pub const CLOCK_BOOTTIME_ALARM : u32 = 9 ; pub const CLOCK_TAI : u32 = 11 ; pub const TIMER_ABSTIME : u32 = 1 ; pub const __clock_t_defined : u32 = 1 ; pub const __time_t_defined : u32 = 1 ; pub const __struct_tm_defined : u32 = 1 ; pub const _STRUCT_TIMESPEC : u32 = 1 ; pub const _BITS_ENDIAN_H : u32 = 1 ; pub const __LITTLE_ENDIAN : u32 = 1234 ; pub const __BIG_ENDIAN : u32 = 4321 ; pub const __PDP_ENDIAN : u32 = 3412 ; pub const _BITS_ENDIANNESS_H : u32 = 1 ; pub const __BYTE_ORDER : u32 = 1234 ; pub const __FLOAT_WORD_ORDER : u32 = 1234 ; pub const __clockid_t_defined : u32 = 1 ; pub const __timer_t_defined : u32 = 1 ; pub const __itimerspec_defined : u32 = 1 ; pub const _BITS_TYPES_LOCALE_T_H : u32 = 1 ; pub const _BITS_TYPES___LOCALE_T_H : u32 = 1 ; pub const TIME_UTC : u32 = 1 ; pub const _STDIO_H : u32 = 1 ; pub const _____fpos_t_defined : u32 = 1 ; pub const ____mbstate_t_defined : u32 = 1 ; pub const _____fpos64_t_defined : u32 = 1 ; pub const ____FILE_defined : u32 = 1 ; pub const __FILE_defined : u32 = 1 ; 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 ; pub const BUFSIZ : u32 = 8192 ; pub const EOF : i32 = - 1 ; 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 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 ; pub const __HAVE_FLOAT128 : u32 = 1 ; pub const __HAVE_DISTINCT_FLOAT128 : u32 = 1 ; pub const __HAVE_FLOAT64X : u32 = 1 ; pub const __HAVE_FLOAT64X_LONG_DOUBLE : u32 = 1 ; pub const __HAVE_FLOAT16 : u32 = 0 ; pub const __HAVE_FLOAT32 : u32 = 1 ; pub const __HAVE_FLOAT64 : u32 = 1 ; pub const __HAVE_FLOAT32X : u32 = 1 ; pub const __HAVE_FLOAT128X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT16 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT32 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT64 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT32X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT64X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT128X : u32 = 0 ; pub const __HAVE_FLOATN_NOT_TYPEDEF : u32 = 0 ; pub const RC_IMAGE_TYPE_GAME : u32 = 1 ; pub const RC_IMAGE_TYPE_ACHIEVEMENT : u32 = 2 ; pub const RC_IMAGE_TYPE_ACHIEVEMENT_LOCKED : u32 = 3 ; pub const RC_IMAGE_TYPE_USER : u32 = 4 ; pub const RC_ACHIEVEMENT_CATEGORY_CORE : u32 = 3 ; pub const RC_ACHIEVEMENT_CATEGORY_UNOFFICIAL : u32 = 5 ; pub const RC_ACHIEVEMENT_TYPE_STANDARD : u32 = 0 ; pub const RC_ACHIEVEMENT_TYPE_MISSABLE : u32 = 1 ; pub const RC_ACHIEVEMENT_TYPE_PROGRESSION : u32 = 2 ; pub const RC_ACHIEVEMENT_TYPE_WIN : u32 = 3 ; pub const RC_CLIENT_LEADERBOARD_DISPLAY_SIZE : u32 = 24 ; pub const RC_OK : _bindgen_ty_1 = 0 ; pub const RC_INVALID_LUA_OPERAND : _bindgen_ty_1 = - 1 ; pub const RC_INVALID_MEMORY_OPERAND : _bindgen_ty_1 = - 2 ; pub const RC_INVALID_CONST_OPERAND : _bindgen_ty_1 = - 3 ; pub const RC_INVALID_FP_OPERAND : _bindgen_ty_1 = - 4 ; pub const RC_INVALID_CONDITION_TYPE : _bindgen_ty_1 = - 5 ; pub const RC_INVALID_OPERATOR : _bindgen_ty_1 = - 6 ; pub const RC_INVALID_REQUIRED_HITS : _bindgen_ty_1 = - 7 ; pub const RC_DUPLICATED_START : _bindgen_ty_1 = - 8 ; pub const RC_DUPLICATED_CANCEL : _bindgen_ty_1 = - 9 ; pub const RC_DUPLICATED_SUBMIT : _bindgen_ty_1 = - 10 ; pub const RC_DUPLICATED_VALUE : _bindgen_ty_1 = - 11 ; pub const RC_DUPLICATED_PROGRESS : _bindgen_ty_1 = - 12 ; pub const RC_MISSING_START : _bindgen_ty_1 = - 13 ; pub const RC_MISSING_CANCEL : _bindgen_ty_1 = - 14 ; pub const RC_MISSING_SUBMIT : _bindgen_ty_1 = - 15 ; pub const RC_MISSING_VALUE : _bindgen_ty_1 = - 16 ; pub const RC_INVALID_LBOARD_FIELD : _bindgen_ty_1 = - 17 ; pub const RC_MISSING_DISPLAY_STRING : _bindgen_ty_1 = - 18 ; pub const RC_OUT_OF_MEMORY : _bindgen_ty_1 = - 19 ; pub const RC_INVALID_VALUE_FLAG : _bindgen_ty_1 = - 20 ; pub const RC_MISSING_VALUE_MEASURED : _bindgen_ty_1 = - 21 ; pub const RC_MULTIPLE_MEASURED : _bindgen_ty_1 = - 22 ; pub const RC_INVALID_MEASURED_TARGET : _bindgen_ty_1 = - 23 ; pub const RC_INVALID_COMPARISON : _bindgen_ty_1 = - 24 ; pub const RC_INVALID_STATE : _bindgen_ty_1 = - 25 ; pub const RC_INVALID_JSON : _bindgen_ty_1 = - 26 ; pub const RC_API_FAILURE : _bindgen_ty_1 = - 27 ; pub const RC_LOGIN_REQUIRED : _bindgen_ty_1 = - 28 ; pub const RC_NO_GAME_LOADED : _bindgen_ty_1 = - 29 ; pub const RC_HARDCORE_DISABLED : _bindgen_ty_1 = - 30 ; pub const RC_ABORTED : _bindgen_ty_1 = - 31 ; pub const RC_NO_RESPONSE : _bindgen_ty_1 = - 32 ; pub const RC_ACCESS_DENIED : _bindgen_ty_1 = - 33 ; pub const RC_INVALID_CREDENTIALS : _bindgen_ty_1 = - 34 ; pub const RC_EXPIRED_TOKEN : _bindgen_ty_1 = - 35 ; pub const RC_INSUFFICIENT_BUFFER : _bindgen_ty_1 = - 36 ; pub const RC_INVALID_VARIABLE_NAME : _bindgen_ty_1 = - 37 ; pub const RC_UNKNOWN_VARIABLE_NAME : _bindgen_ty_1 = - 38 ; # [doc = "\\\n| Return values                                                               |\n\\"] pub type _bindgen_ty_1 = :: core :: ffi :: c_int ; extern "C" { pub fn rc_error_str (ret : :: core :: ffi :: c_int) -> * const :: core :: ffi :: c_char ; } pub type wchar_t = :: core :: ffi :: c_int ; # [repr (C)] # [repr (align (16))] # [derive (Debug , Copy , Clone)] pub struct max_align_t { pub __clang_max_align_nonce1 : :: core :: ffi :: c_longlong , pub __bindgen_padding_0 : u64 , pub __clang_max_align_nonce2 : u128 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of max_align_t"] [:: core :: mem :: size_of :: < max_align_t > () - 32usize] ; ["Alignment of max_align_t"] [:: core :: mem :: align_of :: < max_align_t > () - 16usize] ; ["Offset of field: max_align_t::__clang_max_align_nonce1"] [:: core :: mem :: offset_of ! (max_align_t , __clang_max_align_nonce1) - 0usize] ; ["Offset of field: max_align_t::__clang_max_align_nonce2"] [:: core :: mem :: offset_of ! (max_align_t , __clang_max_align_nonce2) - 16usize] ; } ; pub type __u_char = :: core :: ffi :: c_uchar ; pub type __u_short = :: core :: ffi :: c_ushort ; pub type __u_int = :: core :: ffi :: c_uint ; pub type __u_long = :: core :: ffi :: c_ulong ; pub type __int8_t = :: core :: ffi :: c_schar ; pub type __uint8_t = :: core :: ffi :: c_uchar ; pub type __int16_t = :: core :: ffi :: c_short ; pub type __uint16_t = :: core :: ffi :: c_ushort ; pub type __int32_t = :: core :: ffi :: c_int ; pub type __uint32_t = :: core :: ffi :: c_uint ; pub type __int64_t = :: core :: ffi :: c_long ; pub type __uint64_t = :: core :: ffi :: c_ulong ; pub type __int_least8_t = __int8_t ; pub type __uint_least8_t = __uint8_t ; pub type __int_least16_t = __int16_t ; pub type __uint_least16_t = __uint16_t ; pub type __int_least32_t = __int32_t ; pub type __uint_least32_t = __uint32_t ; pub type __int_least64_t = __int64_t ; pub type __uint_least64_t = __uint64_t ; pub type __quad_t = :: core :: ffi :: c_long ; pub type __u_quad_t = :: core :: ffi :: c_ulong ; pub type __intmax_t = :: core :: ffi :: c_long ; pub type __uintmax_t = :: core :: ffi :: c_ulong ; pub type __dev_t = :: core :: ffi :: c_ulong ; pub type __uid_t = :: core :: ffi :: c_uint ; pub type __gid_t = :: core :: ffi :: c_uint ; pub type __ino_t = :: core :: ffi :: c_ulong ; pub type __ino64_t = :: core :: ffi :: c_ulong ; pub type __mode_t = :: core :: ffi :: c_uint ; pub type __nlink_t = :: core :: ffi :: c_ulong ; pub type __off_t = :: core :: ffi :: c_long ; pub type __off64_t = :: core :: ffi :: c_long ; pub type __pid_t = :: core :: ffi :: c_int ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __fsid_t { pub __val : [:: core :: ffi :: c_int ; 2usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __fsid_t"] [:: core :: mem :: size_of :: < __fsid_t > () - 8usize] ; ["Alignment of __fsid_t"] [:: core :: mem :: align_of :: < __fsid_t > () - 4usize] ; ["Offset of field: __fsid_t::__val"] [:: core :: mem :: offset_of ! (__fsid_t , __val) - 0usize] ; } ; pub type __clock_t = :: core :: ffi :: c_long ; pub type __rlim_t = :: core :: ffi :: c_ulong ; pub type __rlim64_t = :: core :: ffi :: c_ulong ; pub type __id_t = :: core :: ffi :: c_uint ; pub type __time_t = :: core :: ffi :: c_long ; pub type __useconds_t = :: core :: ffi :: c_uint ; pub type __suseconds_t = :: core :: ffi :: c_long ; pub type __suseconds64_t = :: core :: ffi :: c_long ; pub type __daddr_t = :: core :: ffi :: c_int ; pub type __key_t = :: core :: ffi :: c_int ; pub type __clockid_t = :: core :: ffi :: c_int ; pub type __timer_t = * mut :: core :: ffi :: c_void ; pub type __blksize_t = :: core :: ffi :: c_long ; pub type __blkcnt_t = :: core :: ffi :: c_long ; pub type __blkcnt64_t = :: core :: ffi :: c_long ; pub type __fsblkcnt_t = :: core :: ffi :: c_ulong ; pub type __fsblkcnt64_t = :: core :: ffi :: c_ulong ; pub type __fsfilcnt_t = :: core :: ffi :: c_ulong ; pub type __fsfilcnt64_t = :: core :: ffi :: c_ulong ; pub type __fsword_t = :: core :: ffi :: c_long ; pub type __ssize_t = :: core :: ffi :: c_long ; pub type __syscall_slong_t = :: core :: ffi :: c_long ; pub type __syscall_ulong_t = :: core :: ffi :: c_ulong ; pub type __loff_t = __off64_t ; pub type __caddr_t = * mut :: core :: ffi :: c_char ; pub type __intptr_t = :: core :: ffi :: c_long ; pub type __socklen_t = :: core :: ffi :: c_uint ; pub type __sig_atomic_t = :: core :: ffi :: c_int ; pub type int_least8_t = __int_least8_t ; pub type int_least16_t = __int_least16_t ; pub type int_least32_t = __int_least32_t ; pub type int_least64_t = __int_least64_t ; pub type uint_least8_t = __uint_least8_t ; pub type uint_least16_t = __uint_least16_t ; pub type uint_least32_t = __uint_least32_t ; pub type uint_least64_t = __uint_least64_t ; pub type int_fast8_t = :: core :: ffi :: c_schar ; pub type int_fast16_t = :: core :: ffi :: c_long ; pub type int_fast32_t = :: core :: ffi :: c_long ; pub type int_fast64_t = :: core :: ffi :: c_long ; pub type uint_fast8_t = :: core :: ffi :: c_uchar ; pub type uint_fast16_t = :: core :: ffi :: c_ulong ; pub type uint_fast32_t = :: core :: ffi :: c_ulong ; pub type uint_fast64_t = :: core :: ffi :: c_ulong ; pub type intmax_t = __intmax_t ; pub type uintmax_t = __uintmax_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct lua_State { _unused : [u8 ; 0] , } # [doc = " Callback used to read num_bytes bytes from memory starting at address. If\n num_bytes is greater than 1, the value is read in little-endian from\n memory."] pub type rc_peek_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , num_bytes : u32 , ud : * mut :: core :: ffi :: c_void) -> u32 > ; pub const RC_MEMSIZE_8_BITS : _bindgen_ty_2 = 0 ; pub const RC_MEMSIZE_16_BITS : _bindgen_ty_2 = 1 ; pub const RC_MEMSIZE_24_BITS : _bindgen_ty_2 = 2 ; pub const RC_MEMSIZE_32_BITS : _bindgen_ty_2 = 3 ; pub const RC_MEMSIZE_LOW : _bindgen_ty_2 = 4 ; pub const RC_MEMSIZE_HIGH : _bindgen_ty_2 = 5 ; pub const RC_MEMSIZE_BIT_0 : _bindgen_ty_2 = 6 ; pub const RC_MEMSIZE_BIT_1 : _bindgen_ty_2 = 7 ; pub const RC_MEMSIZE_BIT_2 : _bindgen_ty_2 = 8 ; pub const RC_MEMSIZE_BIT_3 : _bindgen_ty_2 = 9 ; pub const RC_MEMSIZE_BIT_4 : _bindgen_ty_2 = 10 ; pub const RC_MEMSIZE_BIT_5 : _bindgen_ty_2 = 11 ; pub const RC_MEMSIZE_BIT_6 : _bindgen_ty_2 = 12 ; pub const RC_MEMSIZE_BIT_7 : _bindgen_ty_2 = 13 ; pub const RC_MEMSIZE_BITCOUNT : _bindgen_ty_2 = 14 ; pub const RC_MEMSIZE_16_BITS_BE : _bindgen_ty_2 = 15 ; pub const RC_MEMSIZE_24_BITS_BE : _bindgen_ty_2 = 16 ; pub const RC_MEMSIZE_32_BITS_BE : _bindgen_ty_2 = 17 ; pub const RC_MEMSIZE_FLOAT : _bindgen_ty_2 = 18 ; pub const RC_MEMSIZE_MBF32 : _bindgen_ty_2 = 19 ; pub const RC_MEMSIZE_MBF32_LE : _bindgen_ty_2 = 20 ; pub const RC_MEMSIZE_FLOAT_BE : _bindgen_ty_2 = 21 ; pub const RC_MEMSIZE_DOUBLE32 : _bindgen_ty_2 = 22 ; pub const RC_MEMSIZE_DOUBLE32_BE : _bindgen_ty_2 = 23 ; pub const RC_MEMSIZE_VARIABLE : _bindgen_ty_2 = 24 ; # [doc = "\\\n| Memory References                                                           |\n\\"] pub type _bindgen_ty_2 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memref_value_t { pub value : u32 , pub prior : u32 , pub size : u8 , pub changed : u8 , pub type_ : u8 , pub is_indirect : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memref_value_t"] [:: core :: mem :: size_of :: < rc_memref_value_t > () - 12usize] ; ["Alignment of rc_memref_value_t"] [:: core :: mem :: align_of :: < rc_memref_value_t > () - 4usize] ; ["Offset of field: rc_memref_value_t::value"] [:: core :: mem :: offset_of ! (rc_memref_value_t , value) - 0usize] ; ["Offset of field: rc_memref_value_t::prior"] [:: core :: mem :: offset_of ! (rc_memref_value_t , prior) - 4usize] ; ["Offset of field: rc_memref_value_t::size"] [:: core :: mem :: offset_of ! (rc_memref_value_t , size) - 8usize] ; ["Offset of field: rc_memref_value_t::changed"] [:: core :: mem :: offset_of ! (rc_memref_value_t , changed) - 9usize] ; ["Offset of field: rc_memref_value_t::type_"] [:: core :: mem :: offset_of ! (rc_memref_value_t , type_) - 10usize] ; ["Offset of field: rc_memref_value_t::is_indirect"] [:: core :: mem :: offset_of ! (rc_memref_value_t , is_indirect) - 11usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memref_t { pub value : rc_memref_value_t , pub address : u32 , pub next : * mut rc_memref_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memref_t"] [:: core :: mem :: size_of :: < rc_memref_t > () - 24usize] ; ["Alignment of rc_memref_t"] [:: core :: mem :: align_of :: < rc_memref_t > () - 8usize] ; ["Offset of field: rc_memref_t::value"] [:: core :: mem :: offset_of ! (rc_memref_t , value) - 0usize] ; ["Offset of field: rc_memref_t::address"] [:: core :: mem :: offset_of ! (rc_memref_t , address) - 12usize] ; ["Offset of field: rc_memref_t::next"] [:: core :: mem :: offset_of ! (rc_memref_t , next) - 16usize] ; } ; pub const RC_OPERAND_ADDRESS : _bindgen_ty_3 = 0 ; pub const RC_OPERAND_DELTA : _bindgen_ty_3 = 1 ; pub const RC_OPERAND_CONST : _bindgen_ty_3 = 2 ; pub const RC_OPERAND_FP : _bindgen_ty_3 = 3 ; pub const RC_OPERAND_LUA : _bindgen_ty_3 = 4 ; pub const RC_OPERAND_PRIOR : _bindgen_ty_3 = 5 ; pub const RC_OPERAND_BCD : _bindgen_ty_3 = 6 ; pub const RC_OPERAND_INVERTED : _bindgen_ty_3 = 7 ; pub const RC_OPERAND_RECALL : _bindgen_ty_3 = 8 ; # [doc = "\\\n| Operands                                                                    |\n\\"] pub type _bindgen_ty_3 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Copy , Clone)] pub struct rc_operand_t { pub value : rc_operand_t__bindgen_ty_1 , pub type_ : u8 , pub size : u8 , } # [repr (C)] # [derive (Copy , Clone)] pub union rc_operand_t__bindgen_ty_1 { pub memref : * mut rc_memref_t , pub num : u32 , pub dbl : f64 , pub luafunc : :: core :: ffi :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_operand_t__bindgen_ty_1"] [:: core :: mem :: size_of :: < rc_operand_t__bindgen_ty_1 > () - 8usize] ; ["Alignment of rc_operand_t__bindgen_ty_1"] [:: core :: mem :: align_of :: < rc_operand_t__bindgen_ty_1 > () - 8usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::memref"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , memref) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::num"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , num) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::dbl"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , dbl) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::luafunc"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , luafunc) - 0usize] ; } ; impl :: core :: fmt :: Debug for rc_operand_t__bindgen_ty_1 { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_operand_t__bindgen_ty_1 {{ union }}") } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_operand_t"] [:: core :: mem :: size_of :: < rc_operand_t > () - 16usize] ; ["Alignment of rc_operand_t"] [:: core :: mem :: align_of :: < rc_operand_t > () - 8usize] ; ["Offset of field: rc_operand_t::value"] [:: core :: mem :: offset_of ! (rc_operand_t , value) - 0usize] ; ["Offset of field: rc_operand_t::type_"] [:: core :: mem :: offset_of ! (rc_operand_t , type_) - 8usize] ; ["Offset of field: rc_operand_t::size"] [:: core :: mem :: offset_of ! (rc_operand_t , size) - 9usize] ; } ; impl :: core :: fmt :: Debug for rc_operand_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_operand_t {{ value: {:?}, type: {:?}, size: {:?} }}" , self . value , self . type_ , self . size) } } extern "C" { pub fn rc_operand_is_memref (operand : * const rc_operand_t) -> :: core :: ffi :: c_int ; } pub const RC_CONDITION_STANDARD : _bindgen_ty_4 = 0 ; pub const RC_CONDITION_PAUSE_IF : _bindgen_ty_4 = 1 ; pub const RC_CONDITION_RESET_IF : _bindgen_ty_4 = 2 ; pub const RC_CONDITION_MEASURED_IF : _bindgen_ty_4 = 3 ; pub const RC_CONDITION_TRIGGER : _bindgen_ty_4 = 4 ; pub const RC_CONDITION_MEASURED : _bindgen_ty_4 = 5 ; pub const RC_CONDITION_ADD_SOURCE : _bindgen_ty_4 = 6 ; pub const RC_CONDITION_SUB_SOURCE : _bindgen_ty_4 = 7 ; pub const RC_CONDITION_ADD_ADDRESS : _bindgen_ty_4 = 8 ; pub const RC_CONDITION_REMEMBER : _bindgen_ty_4 = 9 ; pub const RC_CONDITION_ADD_HITS : _bindgen_ty_4 = 10 ; pub const RC_CONDITION_SUB_HITS : _bindgen_ty_4 = 11 ; pub const RC_CONDITION_RESET_NEXT_IF : _bindgen_ty_4 = 12 ; pub const RC_CONDITION_AND_NEXT : _bindgen_ty_4 = 13 ; pub const RC_CONDITION_OR_NEXT : _bindgen_ty_4 = 14 ; # [doc = "\\\n| Conditions                                                                  |\n\\"] pub type _bindgen_ty_4 = :: core :: ffi :: c_uint ; pub const RC_OPERATOR_EQ : _bindgen_ty_5 = 0 ; pub const RC_OPERATOR_LT : _bindgen_ty_5 = 1 ; pub const RC_OPERATOR_LE : _bindgen_ty_5 = 2 ; pub const RC_OPERATOR_GT : _bindgen_ty_5 = 3 ; pub const RC_OPERATOR_GE : _bindgen_ty_5 = 4 ; pub const RC_OPERATOR_NE : _bindgen_ty_5 = 5 ; pub const RC_OPERATOR_NONE : _bindgen_ty_5 = 6 ; pub const RC_OPERATOR_MULT : _bindgen_ty_5 = 7 ; pub const RC_OPERATOR_DIV : _bindgen_ty_5 = 8 ; pub const RC_OPERATOR_AND : _bindgen_ty_5 = 9 ; pub const RC_OPERATOR_XOR : _bindgen_ty_5 = 10 ; pub const RC_OPERATOR_MOD : _bindgen_ty_5 = 11 ; pub const RC_OPERATOR_ADD : _bindgen_ty_5 = 12 ; pub const RC_OPERATOR_SUB : _bindgen_ty_5 = 13 ; pub type _bindgen_ty_5 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Copy , Clone)] pub struct rc_condition_t { pub operand1 : rc_operand_t , pub operand2 : rc_operand_t , pub required_hits : u32 , pub current_hits : u32 , pub next : * mut rc_condition_t , pub type_ : u8 , pub oper : u8 , pub pause : u8 , pub is_true : u8 , pub optimized_comparator : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_condition_t"] [:: core :: mem :: size_of :: < rc_condition_t > () - 56usize] ; ["Alignment of rc_condition_t"] [:: core :: mem :: align_of :: < rc_condition_t > () - 8usize] ; ["Offset of field: rc_condition_t::operand1"] [:: core :: mem :: offset_of ! (rc_condition_t , operand1) - 0usize] ; ["Offset of field: rc_condition_t::operand2"] [:: core :: mem :: offset_of ! (rc_condition_t , operand2) - 16usize] ; ["Offset of field: rc_condition_t::required_hits"] [:: core :: mem :: offset_of ! (rc_condition_t , required_hits) - 32usize] ; ["Offset of field: rc_condition_t::current_hits"] [:: core :: mem :: offset_of ! (rc_condition_t , current_hits) - 36usize] ; ["Offset of field: rc_condition_t::next"] [:: core :: mem :: offset_of ! (rc_condition_t , next) - 40usize] ; ["Offset of field: rc_condition_t::type_"] [:: core :: mem :: offset_of ! (rc_condition_t , type_) - 48usize] ; ["Offset of field: rc_condition_t::oper"] [:: core :: mem :: offset_of ! (rc_condition_t , oper) - 49usize] ; ["Offset of field: rc_condition_t::pause"] [:: core :: mem :: offset_of ! (rc_condition_t , pause) - 50usize] ; ["Offset of field: rc_condition_t::is_true"] [:: core :: mem :: offset_of ! (rc_condition_t , is_true) - 51usize] ; ["Offset of field: rc_condition_t::optimized_comparator"] [:: core :: mem :: offset_of ! (rc_condition_t , optimized_comparator) - 52usize] ; } ; impl :: core :: fmt :: Debug for rc_condition_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_condition_t {{ operand1: {:?}, operand2: {:?}, required_hits: {:?}, current_hits: {:?}, next: {:?}, type: {:?}, oper: {:?}, pause: {:?}, is_true: {:?}, optimized_comparator: {:?} }}" , self . operand1 , self . operand2 , self . required_hits , self . current_hits , self . next , self . type_ , self . oper , self . pause , self . is_true , self . optimized_comparator) } } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_condset_t { pub next : * mut rc_condset_t , pub conditions : * mut rc_condition_t , pub has_pause : u8 , pub is_paused : u8 , pub has_indirect_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_condset_t"] [:: core :: mem :: size_of :: < rc_condset_t > () - 24usize] ; ["Alignment of rc_condset_t"] [:: core :: mem :: align_of :: < rc_condset_t > () - 8usize] ; ["Offset of field: rc_condset_t::next"] [:: core :: mem :: offset_of ! (rc_condset_t , next) - 0usize] ; ["Offset of field: rc_condset_t::conditions"] [:: core :: mem :: offset_of ! (rc_condset_t , conditions) - 8usize] ; ["Offset of field: rc_condset_t::has_pause"] [:: core :: mem :: offset_of ! (rc_condset_t , has_pause) - 16usize] ; ["Offset of field: rc_condset_t::is_paused"] [:: core :: mem :: offset_of ! (rc_condset_t , is_paused) - 17usize] ; ["Offset of field: rc_condset_t::has_indirect_memrefs"] [:: core :: mem :: offset_of ! (rc_condset_t , has_indirect_memrefs) - 18usize] ; } ; pub const RC_TRIGGER_STATE_INACTIVE : _bindgen_ty_6 = 0 ; pub const RC_TRIGGER_STATE_WAITING : _bindgen_ty_6 = 1 ; pub const RC_TRIGGER_STATE_ACTIVE : _bindgen_ty_6 = 2 ; pub const RC_TRIGGER_STATE_PAUSED : _bindgen_ty_6 = 3 ; pub const RC_TRIGGER_STATE_RESET : _bindgen_ty_6 = 4 ; pub const RC_TRIGGER_STATE_TRIGGERED : _bindgen_ty_6 = 5 ; pub const RC_TRIGGER_STATE_PRIMED : _bindgen_ty_6 = 6 ; pub const RC_TRIGGER_STATE_DISABLED : _bindgen_ty_6 = 7 ; # [doc = "\\\n| Trigger                                                                     |\n\\"] pub type _bindgen_ty_6 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_trigger_t { pub requirement : * mut rc_condset_t , pub alternative : * mut rc_condset_t , pub memrefs : * mut rc_memref_t , pub measured_value : u32 , pub measured_target : u32 , pub state : u8 , pub has_hits : u8 , pub has_required_hits : u8 , pub measured_as_percent : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_trigger_t"] [:: core :: mem :: size_of :: < rc_trigger_t > () - 40usize] ; ["Alignment of rc_trigger_t"] [:: core :: mem :: align_of :: < rc_trigger_t > () - 8usize] ; ["Offset of field: rc_trigger_t::requirement"] [:: core :: mem :: offset_of ! (rc_trigger_t , requirement) - 0usize] ; ["Offset of field: rc_trigger_t::alternative"] [:: core :: mem :: offset_of ! (rc_trigger_t , alternative) - 8usize] ; ["Offset of field: rc_trigger_t::memrefs"] [:: core :: mem :: offset_of ! (rc_trigger_t , memrefs) - 16usize] ; ["Offset of field: rc_trigger_t::measured_value"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_value) - 24usize] ; ["Offset of field: rc_trigger_t::measured_target"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_target) - 28usize] ; ["Offset of field: rc_trigger_t::state"] [:: core :: mem :: offset_of ! (rc_trigger_t , state) - 32usize] ; ["Offset of field: rc_trigger_t::has_hits"] [:: core :: mem :: offset_of ! (rc_trigger_t , has_hits) - 33usize] ; ["Offset of field: rc_trigger_t::has_required_hits"] [:: core :: mem :: offset_of ! (rc_trigger_t , has_required_hits) - 34usize] ; ["Offset of field: rc_trigger_t::measured_as_percent"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_as_percent) - 35usize] ; } ; extern "C" { pub fn rc_trigger_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_trigger (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_trigger_t ; } extern "C" { pub fn rc_evaluate_trigger (trigger : * mut rc_trigger_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_test_trigger (trigger : * mut rc_trigger_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_trigger (self_ : * mut rc_trigger_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_value_t { pub value : rc_memref_value_t , pub conditions : * mut rc_condset_t , pub memrefs : * mut rc_memref_t , pub name : * const :: core :: ffi :: c_char , pub next : * mut rc_value_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_value_t"] [:: core :: mem :: size_of :: < rc_value_t > () - 48usize] ; ["Alignment of rc_value_t"] [:: core :: mem :: align_of :: < rc_value_t > () - 8usize] ; ["Offset of field: rc_value_t::value"] [:: core :: mem :: offset_of ! (rc_value_t , value) - 0usize] ; ["Offset of field: rc_value_t::conditions"] [:: core :: mem :: offset_of ! (rc_value_t , conditions) - 16usize] ; ["Offset of field: rc_value_t::memrefs"] [:: core :: mem :: offset_of ! (rc_value_t , memrefs) - 24usize] ; ["Offset of field: rc_value_t::name"] [:: core :: mem :: offset_of ! (rc_value_t , name) - 32usize] ; ["Offset of field: rc_value_t::next"] [:: core :: mem :: offset_of ! (rc_value_t , next) - 40usize] ; } ; extern "C" { pub fn rc_value_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_value (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_value_t ; } extern "C" { pub fn rc_evaluate_value (value : * mut rc_value_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> i32 ; } pub const RC_LBOARD_STATE_INACTIVE : _bindgen_ty_7 = 0 ; pub const RC_LBOARD_STATE_WAITING : _bindgen_ty_7 = 1 ; pub const RC_LBOARD_STATE_ACTIVE : _bindgen_ty_7 = 2 ; pub const RC_LBOARD_STATE_STARTED : _bindgen_ty_7 = 3 ; pub const RC_LBOARD_STATE_CANCELED : _bindgen_ty_7 = 4 ; pub const RC_LBOARD_STATE_TRIGGERED : _bindgen_ty_7 = 5 ; pub const RC_LBOARD_STATE_DISABLED : _bindgen_ty_7 = 6 ; # [doc = "\\\n| Leaderboards                                                                |\n\\"] pub type _bindgen_ty_7 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_lboard_t { pub start : rc_trigger_t , pub submit : rc_trigger_t , pub cancel : rc_trigger_t , pub value : rc_value_t , pub progress : * mut rc_value_t , pub memrefs : * mut rc_memref_t , pub state : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_lboard_t"] [:: core :: mem :: size_of :: < rc_lboard_t > () - 192usize] ; ["Alignment of rc_lboard_t"] [:: core :: mem :: align_of :: < rc_lboard_t > () - 8usize] ; ["Offset of field: rc_lboard_t::start"] [:: core :: mem :: offset_of ! (rc_lboard_t , start) - 0usize] ; ["Offset of field: rc_lboard_t::submit"] [:: core :: mem :: offset_of ! (rc_lboard_t , submit) - 40usize] ; ["Offset of field: rc_lboard_t::cancel"] [:: core :: mem :: offset_of ! (rc_lboard_t , cancel) - 80usize] ; ["Offset of field: rc_lboard_t::value"] [:: core :: mem :: offset_of ! (rc_lboard_t , value) - 120usize] ; ["Offset of field: rc_lboard_t::progress"] [:: core :: mem :: offset_of ! (rc_lboard_t , progress) - 168usize] ; ["Offset of field: rc_lboard_t::memrefs"] [:: core :: mem :: offset_of ! (rc_lboard_t , memrefs) - 176usize] ; ["Offset of field: rc_lboard_t::state"] [:: core :: mem :: offset_of ! (rc_lboard_t , state) - 184usize] ; } ; extern "C" { pub fn rc_lboard_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_lboard (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_lboard_t ; } extern "C" { pub fn rc_evaluate_lboard (lboard : * mut rc_lboard_t , value : * mut i32 , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_lboard (lboard : * mut rc_lboard_t) ; } pub const RC_FORMAT_FRAMES : _bindgen_ty_8 = 0 ; pub const RC_FORMAT_SECONDS : _bindgen_ty_8 = 1 ; pub const RC_FORMAT_CENTISECS : _bindgen_ty_8 = 2 ; pub const RC_FORMAT_SCORE : _bindgen_ty_8 = 3 ; pub const RC_FORMAT_VALUE : _bindgen_ty_8 = 4 ; pub const RC_FORMAT_MINUTES : _bindgen_ty_8 = 5 ; pub const RC_FORMAT_SECONDS_AS_MINUTES : _bindgen_ty_8 = 6 ; pub const RC_FORMAT_FLOAT1 : _bindgen_ty_8 = 7 ; pub const RC_FORMAT_FLOAT2 : _bindgen_ty_8 = 8 ; pub const RC_FORMAT_FLOAT3 : _bindgen_ty_8 = 9 ; pub const RC_FORMAT_FLOAT4 : _bindgen_ty_8 = 10 ; pub const RC_FORMAT_FLOAT5 : _bindgen_ty_8 = 11 ; pub const RC_FORMAT_FLOAT6 : _bindgen_ty_8 = 12 ; pub const RC_FORMAT_FIXED1 : _bindgen_ty_8 = 13 ; pub const RC_FORMAT_FIXED2 : _bindgen_ty_8 = 14 ; pub const RC_FORMAT_FIXED3 : _bindgen_ty_8 = 15 ; pub const RC_FORMAT_TENS : _bindgen_ty_8 = 16 ; pub const RC_FORMAT_HUNDREDS : _bindgen_ty_8 = 17 ; pub const RC_FORMAT_THOUSANDS : _bindgen_ty_8 = 18 ; pub const RC_FORMAT_UNSIGNED_VALUE : _bindgen_ty_8 = 19 ; # [doc = "\\\n| Value formatting                                                            |\n\\"] pub type _bindgen_ty_8 = :: core :: ffi :: c_uint ; extern "C" { pub fn rc_parse_format (format_str : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_format_value (buffer : * mut :: core :: ffi :: c_char , size : :: core :: ffi :: c_int , value : i32 , format : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_lookup_item_t { pub first : u32 , pub last : u32 , pub left : * mut rc_richpresence_lookup_item_t , pub right : * mut rc_richpresence_lookup_item_t , pub label : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_lookup_item_t"] [:: core :: mem :: size_of :: < rc_richpresence_lookup_item_t > () - 32usize] ; ["Alignment of rc_richpresence_lookup_item_t"] [:: core :: mem :: align_of :: < rc_richpresence_lookup_item_t > () - 8usize] ; ["Offset of field: rc_richpresence_lookup_item_t::first"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , first) - 0usize] ; ["Offset of field: rc_richpresence_lookup_item_t::last"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , last) - 4usize] ; ["Offset of field: rc_richpresence_lookup_item_t::left"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , left) - 8usize] ; ["Offset of field: rc_richpresence_lookup_item_t::right"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , right) - 16usize] ; ["Offset of field: rc_richpresence_lookup_item_t::label"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , label) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_lookup_t { pub root : * mut rc_richpresence_lookup_item_t , pub next : * mut rc_richpresence_lookup_t , pub name : * const :: core :: ffi :: c_char , pub default_label : * const :: core :: ffi :: c_char , pub format : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_lookup_t"] [:: core :: mem :: size_of :: < rc_richpresence_lookup_t > () - 40usize] ; ["Alignment of rc_richpresence_lookup_t"] [:: core :: mem :: align_of :: < rc_richpresence_lookup_t > () - 8usize] ; ["Offset of field: rc_richpresence_lookup_t::root"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , root) - 0usize] ; ["Offset of field: rc_richpresence_lookup_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , next) - 8usize] ; ["Offset of field: rc_richpresence_lookup_t::name"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , name) - 16usize] ; ["Offset of field: rc_richpresence_lookup_t::default_label"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , default_label) - 24usize] ; ["Offset of field: rc_richpresence_lookup_t::format"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , format) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_display_part_t { pub next : * mut rc_richpresence_display_part_t , pub text : * const :: core :: ffi :: c_char , pub lookup : * mut rc_richpresence_lookup_t , pub value : * mut rc_memref_value_t , pub display_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_display_part_t"] [:: core :: mem :: size_of :: < rc_richpresence_display_part_t > () - 40usize] ; ["Alignment of rc_richpresence_display_part_t"] [:: core :: mem :: align_of :: < rc_richpresence_display_part_t > () - 8usize] ; ["Offset of field: rc_richpresence_display_part_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , next) - 0usize] ; ["Offset of field: rc_richpresence_display_part_t::text"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , text) - 8usize] ; ["Offset of field: rc_richpresence_display_part_t::lookup"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , lookup) - 16usize] ; ["Offset of field: rc_richpresence_display_part_t::value"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , value) - 24usize] ; ["Offset of field: rc_richpresence_display_part_t::display_type"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , display_type) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_display_t { pub trigger : rc_trigger_t , pub next : * mut rc_richpresence_display_t , pub display : * mut rc_richpresence_display_part_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_display_t"] [:: core :: mem :: size_of :: < rc_richpresence_display_t > () - 56usize] ; ["Alignment of rc_richpresence_display_t"] [:: core :: mem :: align_of :: < rc_richpresence_display_t > () - 8usize] ; ["Offset of field: rc_richpresence_display_t::trigger"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , trigger) - 0usize] ; ["Offset of field: rc_richpresence_display_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , next) - 40usize] ; ["Offset of field: rc_richpresence_display_t::display"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , display) - 48usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_t { pub first_display : * mut rc_richpresence_display_t , pub first_lookup : * mut rc_richpresence_lookup_t , pub memrefs : * mut rc_memref_t , pub variables : * mut rc_value_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_t"] [:: core :: mem :: size_of :: < rc_richpresence_t > () - 32usize] ; ["Alignment of rc_richpresence_t"] [:: core :: mem :: align_of :: < rc_richpresence_t > () - 8usize] ; ["Offset of field: rc_richpresence_t::first_display"] [:: core :: mem :: offset_of ! (rc_richpresence_t , first_display) - 0usize] ; ["Offset of field: rc_richpresence_t::first_lookup"] [:: core :: mem :: offset_of ! (rc_richpresence_t , first_lookup) - 8usize] ; ["Offset of field: rc_richpresence_t::memrefs"] [:: core :: mem :: offset_of ! (rc_richpresence_t , memrefs) - 16usize] ; ["Offset of field: rc_richpresence_t::variables"] [:: core :: mem :: offset_of ! (rc_richpresence_t , variables) - 24usize] ; } ; extern "C" { pub fn rc_richpresence_size (script : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_richpresence_size_lines (script : * const :: core :: ffi :: c_char , lines_read : * mut :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_richpresence (buffer : * mut :: core :: ffi :: c_void , script : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_richpresence_t ; } extern "C" { pub fn rc_evaluate_richpresence (richpresence : * mut rc_richpresence_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_update_richpresence (richpresence : * mut rc_richpresence_t , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) ; } extern "C" { pub fn rc_get_richpresence_display_string (richpresence : * mut rc_richpresence_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_richpresence (self_ : * mut rc_richpresence_t) ; } # [doc = " A block of memory for variable length data (like strings and arrays)."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_buffer_chunk_t { pub write : * mut u8 , pub end : * mut u8 , pub start : * mut u8 , pub next : * mut rc_buffer_chunk_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_buffer_chunk_t"] [:: core :: mem :: size_of :: < rc_buffer_chunk_t > () - 32usize] ; ["Alignment of rc_buffer_chunk_t"] [:: core :: mem :: align_of :: < rc_buffer_chunk_t > () - 8usize] ; ["Offset of field: rc_buffer_chunk_t::write"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , write) - 0usize] ; ["Offset of field: rc_buffer_chunk_t::end"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , end) - 8usize] ; ["Offset of field: rc_buffer_chunk_t::start"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , start) - 16usize] ; ["Offset of field: rc_buffer_chunk_t::next"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , next) - 24usize] ; } ; # [doc = " A preallocated block of memory for variable length data (like strings and arrays)."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_buffer_t { pub chunk : rc_buffer_chunk_t , pub data : [u8 ; 256usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_buffer_t"] [:: core :: mem :: size_of :: < rc_buffer_t > () - 288usize] ; ["Alignment of rc_buffer_t"] [:: core :: mem :: align_of :: < rc_buffer_t > () - 8usize] ; ["Offset of field: rc_buffer_t::chunk"] [:: core :: mem :: offset_of ! (rc_buffer_t , chunk) - 0usize] ; ["Offset of field: rc_buffer_t::data"] [:: core :: mem :: offset_of ! (rc_buffer_t , data) - 32usize] ; } ; extern "C" { pub fn rc_buffer_init (buffer : * mut rc_buffer_t) ; } extern "C" { pub fn rc_buffer_destroy (buffer : * mut rc_buffer_t) ; } extern "C" { pub fn rc_buffer_reserve (buffer : * mut rc_buffer_t , amount : usize) -> * mut u8 ; } extern "C" { pub fn rc_buffer_consume (buffer : * mut rc_buffer_t , start : * const u8 , end : * mut u8) ; } extern "C" { pub fn rc_buffer_alloc (buffer : * mut rc_buffer_t , amount : usize) -> * mut :: core :: ffi :: c_void ; } extern "C" { pub fn rc_buffer_strcpy (buffer : * mut rc_buffer_t , src : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn rc_buffer_strncpy (buffer : * mut rc_buffer_t , src : * const :: core :: ffi :: c_char , len : usize) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn rc_djb2 (input : * const :: core :: ffi :: c_char) -> u32 ; } extern "C" { pub fn rc_format_md5 (checksum : * mut :: core :: ffi :: c_char , digest : * const u8) ; } # [doc = " A constructed request to send to the retroachievements server."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_request_t { pub url : * const :: core :: ffi :: c_char , pub post_data : * const :: core :: ffi :: c_char , pub content_type : * const :: core :: ffi :: c_char , pub buffer : rc_buffer_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_request_t"] [:: core :: mem :: size_of :: < rc_api_request_t > () - 312usize] ; ["Alignment of rc_api_request_t"] [:: core :: mem :: align_of :: < rc_api_request_t > () - 8usize] ; ["Offset of field: rc_api_request_t::url"] [:: core :: mem :: offset_of ! (rc_api_request_t , url) - 0usize] ; ["Offset of field: rc_api_request_t::post_data"] [:: core :: mem :: offset_of ! (rc_api_request_t , post_data) - 8usize] ; ["Offset of field: rc_api_request_t::content_type"] [:: core :: mem :: offset_of ! (rc_api_request_t , content_type) - 16usize] ; ["Offset of field: rc_api_request_t::buffer"] [:: core :: mem :: offset_of ! (rc_api_request_t , buffer) - 24usize] ; } ; # [doc = " Common attributes for all server responses."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_response_t { pub succeeded : :: core :: ffi :: c_int , pub error_message : * const :: core :: ffi :: c_char , pub error_code : * const :: core :: ffi :: c_char , pub buffer : rc_buffer_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_response_t"] [:: core :: mem :: size_of :: < rc_api_response_t > () - 312usize] ; ["Alignment of rc_api_response_t"] [:: core :: mem :: align_of :: < rc_api_response_t > () - 8usize] ; ["Offset of field: rc_api_response_t::succeeded"] [:: core :: mem :: offset_of ! (rc_api_response_t , succeeded) - 0usize] ; ["Offset of field: rc_api_response_t::error_message"] [:: core :: mem :: offset_of ! (rc_api_response_t , error_message) - 8usize] ; ["Offset of field: rc_api_response_t::error_code"] [:: core :: mem :: offset_of ! (rc_api_response_t , error_code) - 16usize] ; ["Offset of field: rc_api_response_t::buffer"] [:: core :: mem :: offset_of ! (rc_api_response_t , buffer) - 24usize] ; } ; extern "C" { pub fn rc_api_destroy_request (request : * mut rc_api_request_t) ; } extern "C" { pub fn rc_api_set_host (hostname : * const :: core :: ffi :: c_char) ; } extern "C" { pub fn rc_api_set_image_host (hostname : * const :: core :: ffi :: c_char) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_server_response_t { pub body : * const :: core :: ffi :: c_char , pub body_length : usize , pub http_status_code : :: core :: ffi :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_server_response_t"] [:: core :: mem :: size_of :: < rc_api_server_response_t > () - 24usize] ; ["Alignment of rc_api_server_response_t"] [:: core :: mem :: align_of :: < rc_api_server_response_t > () - 8usize] ; ["Offset of field: rc_api_server_response_t::body"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , body) - 0usize] ; ["Offset of field: rc_api_server_response_t::body_length"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , body_length) - 8usize] ; ["Offset of field: rc_api_server_response_t::http_status_code"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , http_status_code) - 16usize] ; } ; pub const RC_API_SERVER_RESPONSE_CLIENT_ERROR : _bindgen_ty_9 = - 1 ; pub const RC_API_SERVER_RESPONSE_RETRYABLE_CLIENT_ERROR : _bindgen_ty_9 = - 2 ; pub type _bindgen_ty_9 = :: core :: ffi :: c_int ; pub type clock_t = __clock_t ; pub type time_t = __time_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct tm { pub tm_sec : :: core :: ffi :: c_int , pub tm_min : :: core :: ffi :: c_int , pub tm_hour : :: core :: ffi :: c_int , pub tm_mday : :: core :: ffi :: c_int , pub tm_mon : :: core :: ffi :: c_int , pub tm_year : :: core :: ffi :: c_int , pub tm_wday : :: core :: ffi :: c_int , pub tm_yday : :: core :: ffi :: c_int , pub tm_isdst : :: core :: ffi :: c_int , pub tm_gmtoff : :: core :: ffi :: c_long , pub tm_zone : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of tm"] [:: core :: mem :: size_of :: < tm > () - 56usize] ; ["Alignment of tm"] [:: core :: mem :: align_of :: < tm > () - 8usize] ; ["Offset of field: tm::tm_sec"] [:: core :: mem :: offset_of ! (tm , tm_sec) - 0usize] ; ["Offset of field: tm::tm_min"] [:: core :: mem :: offset_of ! (tm , tm_min) - 4usize] ; ["Offset of field: tm::tm_hour"] [:: core :: mem :: offset_of ! (tm , tm_hour) - 8usize] ; ["Offset of field: tm::tm_mday"] [:: core :: mem :: offset_of ! (tm , tm_mday) - 12usize] ; ["Offset of field: tm::tm_mon"] [:: core :: mem :: offset_of ! (tm , tm_mon) - 16usize] ; ["Offset of field: tm::tm_year"] [:: core :: mem :: offset_of ! (tm , tm_year) - 20usize] ; ["Offset of field: tm::tm_wday"] [:: core :: mem :: offset_of ! (tm , tm_wday) - 24usize] ; ["Offset of field: tm::tm_yday"] [:: core :: mem :: offset_of ! (tm , tm_yday) - 28usize] ; ["Offset of field: tm::tm_isdst"] [:: core :: mem :: offset_of ! (tm , tm_isdst) - 32usize] ; ["Offset of field: tm::tm_gmtoff"] [:: core :: mem :: offset_of ! (tm , tm_gmtoff) - 40usize] ; ["Offset of field: tm::tm_zone"] [:: core :: mem :: offset_of ! (tm , tm_zone) - 48usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct timespec { pub tv_sec : __time_t , pub tv_nsec : __syscall_slong_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of timespec"] [:: core :: mem :: size_of :: < timespec > () - 16usize] ; ["Alignment of timespec"] [:: core :: mem :: align_of :: < timespec > () - 8usize] ; ["Offset of field: timespec::tv_sec"] [:: core :: mem :: offset_of ! (timespec , tv_sec) - 0usize] ; ["Offset of field: timespec::tv_nsec"] [:: core :: mem :: offset_of ! (timespec , tv_nsec) - 8usize] ; } ; pub type clockid_t = __clockid_t ; pub type timer_t = __timer_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct itimerspec { pub it_interval : timespec , pub it_value : timespec , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of itimerspec"] [:: core :: mem :: size_of :: < itimerspec > () - 32usize] ; ["Alignment of itimerspec"] [:: core :: mem :: align_of :: < itimerspec > () - 8usize] ; ["Offset of field: itimerspec::it_interval"] [:: core :: mem :: offset_of ! (itimerspec , it_interval) - 0usize] ; ["Offset of field: itimerspec::it_value"] [:: core :: mem :: offset_of ! (itimerspec , it_value) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct sigevent { _unused : [u8 ; 0] , } pub type pid_t = __pid_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __locale_struct { pub __locales : [* mut __locale_data ; 13usize] , pub __ctype_b : * const :: core :: ffi :: c_ushort , pub __ctype_tolower : * const :: core :: ffi :: c_int , pub __ctype_toupper : * const :: core :: ffi :: c_int , pub __names : [* const :: core :: ffi :: c_char ; 13usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __locale_struct"] [:: core :: mem :: size_of :: < __locale_struct > () - 232usize] ; ["Alignment of __locale_struct"] [:: core :: mem :: align_of :: < __locale_struct > () - 8usize] ; ["Offset of field: __locale_struct::__locales"] [:: core :: mem :: offset_of ! (__locale_struct , __locales) - 0usize] ; ["Offset of field: __locale_struct::__ctype_b"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_b) - 104usize] ; ["Offset of field: __locale_struct::__ctype_tolower"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_tolower) - 112usize] ; ["Offset of field: __locale_struct::__ctype_toupper"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_toupper) - 120usize] ; ["Offset of field: __locale_struct::__names"] [:: core :: mem :: offset_of ! (__locale_struct , __names) - 128usize] ; } ; pub type __locale_t = * mut __locale_struct ; pub type locale_t = __locale_t ; extern "C" { pub fn clock () -> clock_t ; } extern "C" { pub fn time (__timer : * mut time_t) -> time_t ; } extern "C" { pub fn difftime (__time1 : time_t , __time0 : time_t) -> f64 ; } extern "C" { pub fn mktime (__tp : * mut tm) -> time_t ; } extern "C" { pub fn strftime (__s : * mut :: core :: ffi :: c_char , __maxsize : usize , __format : * const :: core :: ffi :: c_char , __tp : * const tm) -> usize ; } extern "C" { pub fn strftime_l (__s : * mut :: core :: ffi :: c_char , __maxsize : usize , __format : * const :: core :: ffi :: c_char , __tp : * const tm , __loc : locale_t) -> usize ; } extern "C" { pub fn gmtime (__timer : * const time_t) -> * mut tm ; } extern "C" { pub fn localtime (__timer : * const time_t) -> * mut tm ; } extern "C" { pub fn gmtime_r (__timer : * const time_t , __tp : * mut tm) -> * mut tm ; } extern "C" { pub fn localtime_r (__timer : * const time_t , __tp : * mut tm) -> * mut tm ; } extern "C" { pub fn asctime (__tp : * const tm) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn ctime (__timer : * const time_t) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn asctime_r (__tp : * const tm , __buf : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn ctime_r (__timer : * const time_t , __buf : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub static mut __tzname : [* mut :: core :: ffi :: c_char ; 2usize] ; } extern "C" { pub static mut __daylight : :: core :: ffi :: c_int ; } extern "C" { pub static mut __timezone : :: core :: ffi :: c_long ; } extern "C" { pub static mut tzname : [* mut :: core :: ffi :: c_char ; 2usize] ; } extern "C" { pub fn tzset () ; } extern "C" { pub static mut daylight : :: core :: ffi :: c_int ; } extern "C" { pub static mut timezone : :: core :: ffi :: c_long ; } extern "C" { pub fn timegm (__tp : * mut tm) -> time_t ; } extern "C" { pub fn timelocal (__tp : * mut tm) -> time_t ; } extern "C" { pub fn dysize (__year : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn nanosleep (__requested_time : * const timespec , __remaining : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_getres (__clock_id : clockid_t , __res : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_gettime (__clock_id : clockid_t , __tp : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_settime (__clock_id : clockid_t , __tp : * const timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_nanosleep (__clock_id : clockid_t , __flags : :: core :: ffi :: c_int , __req : * const timespec , __rem : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_getcpuclockid (__pid : pid_t , __clock_id : * mut clockid_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_create (__clock_id : clockid_t , __evp : * mut sigevent , __timerid : * mut timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_delete (__timerid : timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_settime (__timerid : timer_t , __flags : :: core :: ffi :: c_int , __value : * const itimerspec , __ovalue : * mut itimerspec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_gettime (__timerid : timer_t , __value : * mut itimerspec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_getoverrun (__timerid : timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timespec_get (__ts : * mut timespec , __base : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } # [doc = " API parameters for a login request.\n If both password and api_token are provided, api_token will be ignored."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_login_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub password : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_login_request_t"] [:: core :: mem :: size_of :: < rc_api_login_request_t > () - 24usize] ; ["Alignment of rc_api_login_request_t"] [:: core :: mem :: align_of :: < rc_api_login_request_t > () - 8usize] ; ["Offset of field: rc_api_login_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , username) - 0usize] ; ["Offset of field: rc_api_login_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_login_request_t::password"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , password) - 16usize] ; } ; # [doc = " Response data for a login request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_login_response_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub score : u32 , pub score_softcore : u32 , pub num_unread_messages : u32 , pub display_name : * const :: core :: ffi :: c_char , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_login_response_t"] [:: core :: mem :: size_of :: < rc_api_login_response_t > () - 352usize] ; ["Alignment of rc_api_login_response_t"] [:: core :: mem :: align_of :: < rc_api_login_response_t > () - 8usize] ; ["Offset of field: rc_api_login_response_t::username"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , username) - 0usize] ; ["Offset of field: rc_api_login_response_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , api_token) - 8usize] ; ["Offset of field: rc_api_login_response_t::score"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , score) - 16usize] ; ["Offset of field: rc_api_login_response_t::score_softcore"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , score_softcore) - 20usize] ; ["Offset of field: rc_api_login_response_t::num_unread_messages"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , num_unread_messages) - 24usize] ; ["Offset of field: rc_api_login_response_t::display_name"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , display_name) - 32usize] ; ["Offset of field: rc_api_login_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , response) - 40usize] ; } ; extern "C" { pub fn rc_api_init_login_request (request : * mut rc_api_request_t , api_params : * const rc_api_login_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_login_response (response : * mut rc_api_login_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_login_server_response (response : * mut rc_api_login_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_login_response (response : * mut rc_api_login_response_t) ; } # [doc = " API parameters for a start session request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_start_session_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub game_hash : * const :: core :: ffi :: c_char , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_start_session_request_t"] [:: core :: mem :: size_of :: < rc_api_start_session_request_t > () - 40usize] ; ["Alignment of rc_api_start_session_request_t"] [:: core :: mem :: align_of :: < rc_api_start_session_request_t > () - 8usize] ; ["Offset of field: rc_api_start_session_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , username) - 0usize] ; ["Offset of field: rc_api_start_session_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_start_session_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_start_session_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_start_session_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , hardcore) - 32usize] ; } ; # [doc = " Response data for an achievement unlock."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_unlock_entry_t { pub achievement_id : u32 , pub when : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_unlock_entry_t"] [:: core :: mem :: size_of :: < rc_api_unlock_entry_t > () - 16usize] ; ["Alignment of rc_api_unlock_entry_t"] [:: core :: mem :: align_of :: < rc_api_unlock_entry_t > () - 8usize] ; ["Offset of field: rc_api_unlock_entry_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_unlock_entry_t , achievement_id) - 0usize] ; ["Offset of field: rc_api_unlock_entry_t::when"] [:: core :: mem :: offset_of ! (rc_api_unlock_entry_t , when) - 8usize] ; } ; # [doc = " Response data for a start session request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_start_session_response_t { pub hardcore_unlocks : * mut rc_api_unlock_entry_t , pub unlocks : * mut rc_api_unlock_entry_t , pub num_hardcore_unlocks : u32 , pub num_unlocks : u32 , pub server_now : time_t , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_start_session_response_t"] [:: core :: mem :: size_of :: < rc_api_start_session_response_t > () - 344usize] ; ["Alignment of rc_api_start_session_response_t"] [:: core :: mem :: align_of :: < rc_api_start_session_response_t > () - 8usize] ; ["Offset of field: rc_api_start_session_response_t::hardcore_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , hardcore_unlocks) - 0usize] ; ["Offset of field: rc_api_start_session_response_t::unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , unlocks) - 8usize] ; ["Offset of field: rc_api_start_session_response_t::num_hardcore_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , num_hardcore_unlocks) - 16usize] ; ["Offset of field: rc_api_start_session_response_t::num_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , num_unlocks) - 20usize] ; ["Offset of field: rc_api_start_session_response_t::server_now"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , server_now) - 24usize] ; ["Offset of field: rc_api_start_session_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_start_session_request (request : * mut rc_api_request_t , api_params : * const rc_api_start_session_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_start_session_response (response : * mut rc_api_start_session_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_start_session_server_response (response : * mut rc_api_start_session_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_start_session_response (response : * mut rc_api_start_session_response_t) ; } # [doc = " API parameters for a fetch user unlocks request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_user_unlocks_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_user_unlocks_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_user_unlocks_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_user_unlocks_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_user_unlocks_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , hardcore) - 20usize] ; } ; # [doc = " Response data for a fetch user unlocks request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_user_unlocks_response_t { pub achievement_ids : * mut u32 , pub num_achievement_ids : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_user_unlocks_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_user_unlocks_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_user_unlocks_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_user_unlocks_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::achievement_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , achievement_ids) - 0usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::num_achievement_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , num_achievement_ids) - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_user_unlocks_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_user_unlocks_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_user_unlocks_response (response : * mut rc_api_fetch_user_unlocks_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_user_unlocks_server_response (response : * mut rc_api_fetch_user_unlocks_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_user_unlocks_response (response : * mut rc_api_fetch_user_unlocks_response_t) ; } # [doc = " API parameters for a fetch code notes request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_code_notes_request_t { pub game_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_code_notes_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_code_notes_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_code_notes_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_code_notes_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_code_notes_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_request_t , game_id) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_code_note_t { pub address : u32 , pub author : * const :: core :: ffi :: c_char , pub note : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_code_note_t"] [:: core :: mem :: size_of :: < rc_api_code_note_t > () - 24usize] ; ["Alignment of rc_api_code_note_t"] [:: core :: mem :: align_of :: < rc_api_code_note_t > () - 8usize] ; ["Offset of field: rc_api_code_note_t::address"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , address) - 0usize] ; ["Offset of field: rc_api_code_note_t::author"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , author) - 8usize] ; ["Offset of field: rc_api_code_note_t::note"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , note) - 16usize] ; } ; # [doc = " Response data for a fetch code notes request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_code_notes_response_t { pub notes : * mut rc_api_code_note_t , pub num_notes : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_code_notes_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_code_notes_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_code_notes_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_code_notes_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::notes"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , notes) - 0usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::num_notes"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , num_notes) - 8usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_code_notes_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_code_notes_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_code_notes_response (response : * mut rc_api_fetch_code_notes_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_code_notes_server_response (response : * mut rc_api_fetch_code_notes_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_code_notes_response (response : * mut rc_api_fetch_code_notes_response_t) ; } # [doc = " API parameters for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_code_note_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub address : u32 , pub note : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_code_note_request_t"] [:: core :: mem :: size_of :: < rc_api_update_code_note_request_t > () - 32usize] ; ["Alignment of rc_api_update_code_note_request_t"] [:: core :: mem :: align_of :: < rc_api_update_code_note_request_t > () - 8usize] ; ["Offset of field: rc_api_update_code_note_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_code_note_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_code_note_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_update_code_note_request_t::address"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , address) - 20usize] ; ["Offset of field: rc_api_update_code_note_request_t::note"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , note) - 24usize] ; } ; # [doc = " Response data for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_code_note_response_t { pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_code_note_response_t"] [:: core :: mem :: size_of :: < rc_api_update_code_note_response_t > () - 312usize] ; ["Alignment of rc_api_update_code_note_response_t"] [:: core :: mem :: align_of :: < rc_api_update_code_note_response_t > () - 8usize] ; ["Offset of field: rc_api_update_code_note_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_response_t , response) - 0usize] ; } ; extern "C" { pub fn rc_api_init_update_code_note_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_code_note_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_code_note_response (response : * mut rc_api_update_code_note_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_code_note_server_response (response : * mut rc_api_update_code_note_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_code_note_response (response : * mut rc_api_update_code_note_response_t) ; } # [doc = " API parameters for an update achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_achievement_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub game_id : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub badge : * const :: core :: ffi :: c_char , pub trigger : * const :: core :: ffi :: c_char , pub points : u32 , pub category : u32 , pub type_ : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_achievement_request_t"] [:: core :: mem :: size_of :: < rc_api_update_achievement_request_t > () - 72usize] ; ["Alignment of rc_api_update_achievement_request_t"] [:: core :: mem :: align_of :: < rc_api_update_achievement_request_t > () - 8usize] ; ["Offset of field: rc_api_update_achievement_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_achievement_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_achievement_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_update_achievement_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , game_id) - 20usize] ; ["Offset of field: rc_api_update_achievement_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , title) - 24usize] ; ["Offset of field: rc_api_update_achievement_request_t::description"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , description) - 32usize] ; ["Offset of field: rc_api_update_achievement_request_t::badge"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , badge) - 40usize] ; ["Offset of field: rc_api_update_achievement_request_t::trigger"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , trigger) - 48usize] ; ["Offset of field: rc_api_update_achievement_request_t::points"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , points) - 56usize] ; ["Offset of field: rc_api_update_achievement_request_t::category"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , category) - 60usize] ; ["Offset of field: rc_api_update_achievement_request_t::type_"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , type_) - 64usize] ; } ; # [doc = " Response data for an update achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_achievement_response_t { pub achievement_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_achievement_response_t"] [:: core :: mem :: size_of :: < rc_api_update_achievement_response_t > () - 320usize] ; ["Alignment of rc_api_update_achievement_response_t"] [:: core :: mem :: align_of :: < rc_api_update_achievement_response_t > () - 8usize] ; ["Offset of field: rc_api_update_achievement_response_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_response_t , achievement_id) - 0usize] ; ["Offset of field: rc_api_update_achievement_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_update_achievement_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_achievement_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_achievement_response (response : * mut rc_api_update_achievement_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_achievement_server_response (response : * mut rc_api_update_achievement_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_achievement_response (response : * mut rc_api_update_achievement_response_t) ; } # [doc = " API parameters for an update leaderboard request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_leaderboard_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub leaderboard_id : u32 , pub game_id : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub start_trigger : * const :: core :: ffi :: c_char , pub submit_trigger : * const :: core :: ffi :: c_char , pub cancel_trigger : * const :: core :: ffi :: c_char , pub value_definition : * const :: core :: ffi :: c_char , pub format : * const :: core :: ffi :: c_char , pub lower_is_better : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_leaderboard_request_t"] [:: core :: mem :: size_of :: < rc_api_update_leaderboard_request_t > () - 88usize] ; ["Alignment of rc_api_update_leaderboard_request_t"] [:: core :: mem :: align_of :: < rc_api_update_leaderboard_request_t > () - 8usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , leaderboard_id) - 16usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , game_id) - 20usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , title) - 24usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::description"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , description) - 32usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::start_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , start_trigger) - 40usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::submit_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , submit_trigger) - 48usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::cancel_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , cancel_trigger) - 56usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::value_definition"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , value_definition) - 64usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::format"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , format) - 72usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , lower_is_better) - 80usize] ; } ; # [doc = " Response data for an update leaderboard request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_leaderboard_response_t { pub leaderboard_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_leaderboard_response_t"] [:: core :: mem :: size_of :: < rc_api_update_leaderboard_response_t > () - 320usize] ; ["Alignment of rc_api_update_leaderboard_response_t"] [:: core :: mem :: align_of :: < rc_api_update_leaderboard_response_t > () - 8usize] ; ["Offset of field: rc_api_update_leaderboard_response_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_response_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_api_update_leaderboard_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_update_leaderboard_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_leaderboard_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_leaderboard_response (response : * mut rc_api_update_leaderboard_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_leaderboard_server_response (response : * mut rc_api_update_leaderboard_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_leaderboard_response (response : * mut rc_api_update_leaderboard_response_t) ; } # [doc = " API parameters for a fetch badge range request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_badge_range_request_t { pub unused : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_badge_range_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_badge_range_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_badge_range_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_badge_range_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_badge_range_request_t::unused"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_request_t , unused) - 0usize] ; } ; # [doc = " Response data for a fetch badge range request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_badge_range_response_t { pub first_badge_id : u32 , pub next_badge_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_badge_range_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_badge_range_response_t > () - 320usize] ; ["Alignment of rc_api_fetch_badge_range_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_badge_range_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::first_badge_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , first_badge_id) - 0usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::next_badge_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , next_badge_id) - 4usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_fetch_badge_range_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_badge_range_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_badge_range_response (response : * mut rc_api_fetch_badge_range_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_badge_range_server_response (response : * mut rc_api_fetch_badge_range_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_badge_range_response (response : * mut rc_api_fetch_badge_range_response_t) ; } # [doc = " API parameters for an add game hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_add_game_hash_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub hash : * const :: core :: ffi :: c_char , pub hash_description : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_add_game_hash_request_t"] [:: core :: mem :: size_of :: < rc_api_add_game_hash_request_t > () - 48usize] ; ["Alignment of rc_api_add_game_hash_request_t"] [:: core :: mem :: align_of :: < rc_api_add_game_hash_request_t > () - 8usize] ; ["Offset of field: rc_api_add_game_hash_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , username) - 0usize] ; ["Offset of field: rc_api_add_game_hash_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_add_game_hash_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_add_game_hash_request_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , console_id) - 20usize] ; ["Offset of field: rc_api_add_game_hash_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , title) - 24usize] ; ["Offset of field: rc_api_add_game_hash_request_t::hash"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , hash) - 32usize] ; ["Offset of field: rc_api_add_game_hash_request_t::hash_description"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , hash_description) - 40usize] ; } ; # [doc = " Response data for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_add_game_hash_response_t { pub game_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_add_game_hash_response_t"] [:: core :: mem :: size_of :: < rc_api_add_game_hash_response_t > () - 320usize] ; ["Alignment of rc_api_add_game_hash_response_t"] [:: core :: mem :: align_of :: < rc_api_add_game_hash_response_t > () - 8usize] ; ["Offset of field: rc_api_add_game_hash_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_response_t , game_id) - 0usize] ; ["Offset of field: rc_api_add_game_hash_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_add_game_hash_request (request : * mut rc_api_request_t , api_params : * const rc_api_add_game_hash_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_add_game_hash_response (response : * mut rc_api_add_game_hash_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_add_game_hash_server_response (response : * mut rc_api_add_game_hash_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_add_game_hash_response (response : * mut rc_api_add_game_hash_response_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_t { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_menu_item_t { pub label : * const :: core :: ffi :: c_char , pub id : u32 , pub checked : u8 , pub enabled : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_menu_item_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_menu_item_t > () - 16usize] ; ["Alignment of rc_client_raintegration_menu_item_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_menu_item_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::label"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , label) - 0usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::id"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , id) - 8usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::checked"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , checked) - 12usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::enabled"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , enabled) - 13usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_menu_t { pub items : * mut rc_client_raintegration_menu_item_t , pub num_items : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_menu_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_menu_t > () - 16usize] ; ["Alignment of rc_client_raintegration_menu_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_menu_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_menu_t::items"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_t , items) - 0usize] ; ["Offset of field: rc_client_raintegration_menu_t::num_items"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_t , num_items) - 8usize] ; } ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_NONE : _bindgen_ty_10 = 0 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_PUBLISHED : _bindgen_ty_10 = 1 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_LOCAL : _bindgen_ty_10 = 2 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_MODIFIED : _bindgen_ty_10 = 3 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_INSECURE : _bindgen_ty_10 = 4 ; pub type _bindgen_ty_10 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_RAINTEGRATION_EVENT_TYPE_NONE : _bindgen_ty_11 = 0 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_MENUITEM_CHECKED_CHANGED : _bindgen_ty_11 = 1 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_HARDCORE_CHANGED : _bindgen_ty_11 = 2 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_PAUSE : _bindgen_ty_11 = 3 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_MENU_CHANGED : _bindgen_ty_11 = 4 ; pub type _bindgen_ty_11 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_event_t { pub type_ : u32 , pub menu_item : * const rc_client_raintegration_menu_item_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_event_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_event_t > () - 16usize] ; ["Alignment of rc_client_raintegration_event_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_event_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_event_t::type_"] [:: core :: mem :: offset_of ! (rc_client_raintegration_event_t , type_) - 0usize] ; ["Offset of field: rc_client_raintegration_event_t::menu_item"] [:: core :: mem :: offset_of ! (rc_client_raintegration_event_t , menu_item) - 8usize] ; } ; pub type rc_client_raintegration_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (event : * const rc_client_raintegration_event_t , client : * mut rc_client_t) > ; pub type rc_client_raintegration_write_memory_func_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , buffer : * mut u8 , num_bytes : u32 , client : * mut rc_client_t) > ; pub type rc_client_raintegration_get_game_name_func_t = :: core :: option :: Option < unsafe extern "C" fn (buffer : * mut :: core :: ffi :: c_char , buffer_size : u32 , client : * mut rc_client_t) > ; # [doc = " API parameters for a fetch achievement info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_achievement_info_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub first_entry : u32 , pub count : u32 , pub friends_only : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_achievement_info_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_achievement_info_request_t > () - 32usize] ; ["Alignment of rc_api_fetch_achievement_info_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_achievement_info_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::first_entry"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , first_entry) - 20usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::count"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , count) - 24usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::friends_only"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , friends_only) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_achievement_awarded_entry_t { pub username : * const :: core :: ffi :: c_char , pub awarded : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_achievement_awarded_entry_t"] [:: core :: mem :: size_of :: < rc_api_achievement_awarded_entry_t > () - 16usize] ; ["Alignment of rc_api_achievement_awarded_entry_t"] [:: core :: mem :: align_of :: < rc_api_achievement_awarded_entry_t > () - 8usize] ; ["Offset of field: rc_api_achievement_awarded_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_achievement_awarded_entry_t , username) - 0usize] ; ["Offset of field: rc_api_achievement_awarded_entry_t::awarded"] [:: core :: mem :: offset_of ! (rc_api_achievement_awarded_entry_t , awarded) - 8usize] ; } ; # [doc = " Response data for a fetch achievement info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_achievement_info_response_t { pub id : u32 , pub game_id : u32 , pub num_awarded : u32 , pub num_players : u32 , pub recently_awarded : * mut rc_api_achievement_awarded_entry_t , pub num_recently_awarded : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_achievement_info_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_achievement_info_response_t > () - 344usize] ; ["Alignment of rc_api_fetch_achievement_info_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_achievement_info_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , game_id) - 4usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_awarded) - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_players"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_players) - 12usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::recently_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , recently_awarded) - 16usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_recently_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_recently_awarded) - 24usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_fetch_achievement_info_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_achievement_info_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_achievement_info_response (response : * mut rc_api_fetch_achievement_info_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_achievement_info_server_response (response : * mut rc_api_fetch_achievement_info_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_achievement_info_response (response : * mut rc_api_fetch_achievement_info_response_t) ; } # [doc = " API parameters for a fetch leaderboard info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_leaderboard_info_request_t { pub leaderboard_id : u32 , pub count : u32 , pub first_entry : u32 , pub username : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_leaderboard_info_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_leaderboard_info_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_leaderboard_info_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_leaderboard_info_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::count"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , count) - 4usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::first_entry"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , first_entry) - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , username) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_lboard_info_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub index : u32 , pub score : i32 , pub submitted : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_lboard_info_entry_t"] [:: core :: mem :: size_of :: < rc_api_lboard_info_entry_t > () - 32usize] ; ["Alignment of rc_api_lboard_info_entry_t"] [:: core :: mem :: align_of :: < rc_api_lboard_info_entry_t > () - 8usize] ; ["Offset of field: rc_api_lboard_info_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , username) - 0usize] ; ["Offset of field: rc_api_lboard_info_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , rank) - 8usize] ; ["Offset of field: rc_api_lboard_info_entry_t::index"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , index) - 12usize] ; ["Offset of field: rc_api_lboard_info_entry_t::score"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , score) - 16usize] ; ["Offset of field: rc_api_lboard_info_entry_t::submitted"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , submitted) - 24usize] ; } ; # [doc = " Response data for a fetch leaderboard info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_leaderboard_info_response_t { pub id : u32 , pub format : :: core :: ffi :: c_int , pub lower_is_better : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub game_id : u32 , pub author : * const :: core :: ffi :: c_char , pub created : time_t , pub updated : time_t , pub entries : * mut rc_api_lboard_info_entry_t , pub num_entries : u32 , pub total_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_leaderboard_info_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_leaderboard_info_response_t > () - 400usize] ; ["Alignment of rc_api_fetch_leaderboard_info_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_leaderboard_info_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::format"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , format) - 4usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , lower_is_better) - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::title"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , title) - 16usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::description"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , description) - 24usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::definition"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , definition) - 32usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , game_id) - 40usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::author"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , author) - 48usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::created"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , created) - 56usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::updated"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , updated) - 64usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , entries) - 72usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , num_entries) - 80usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::total_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , total_entries) - 84usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , response) - 88usize] ; } ; extern "C" { pub fn rc_api_init_fetch_leaderboard_info_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_leaderboard_info_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_leaderboard_info_response (response : * mut rc_api_fetch_leaderboard_info_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_leaderboard_info_server_response (response : * mut rc_api_fetch_leaderboard_info_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_leaderboard_info_response (response : * mut rc_api_fetch_leaderboard_info_response_t) ; } # [doc = " API parameters for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_games_list_request_t { pub console_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_games_list_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_games_list_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_games_list_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_games_list_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_games_list_request_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_request_t , console_id) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_game_list_entry_t { pub id : u32 , pub name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_game_list_entry_t"] [:: core :: mem :: size_of :: < rc_api_game_list_entry_t > () - 16usize] ; ["Alignment of rc_api_game_list_entry_t"] [:: core :: mem :: align_of :: < rc_api_game_list_entry_t > () - 8usize] ; ["Offset of field: rc_api_game_list_entry_t::id"] [:: core :: mem :: offset_of ! (rc_api_game_list_entry_t , id) - 0usize] ; ["Offset of field: rc_api_game_list_entry_t::name"] [:: core :: mem :: offset_of ! (rc_api_game_list_entry_t , name) - 8usize] ; } ; # [doc = " Response data for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_games_list_response_t { pub entries : * mut rc_api_game_list_entry_t , pub num_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_games_list_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_games_list_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_games_list_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_games_list_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , entries) - 0usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , num_entries) - 8usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_games_list_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_games_list_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_games_list_response (response : * mut rc_api_fetch_games_list_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_games_list_server_response (response : * mut rc_api_fetch_games_list_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_games_list_response (response : * mut rc_api_fetch_games_list_response_t) ; } # [doc = " API parameters for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_titles_request_t { pub game_ids : * const u32 , pub num_game_ids : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_titles_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_titles_request_t > () - 16usize] ; ["Alignment of rc_api_fetch_game_titles_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_titles_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_request_t::game_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_request_t , game_ids) - 0usize] ; ["Offset of field: rc_api_fetch_game_titles_request_t::num_game_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_request_t , num_game_ids) - 8usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_game_title_entry_t { pub id : u32 , pub title : * const :: core :: ffi :: c_char , pub image_name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_game_title_entry_t"] [:: core :: mem :: size_of :: < rc_api_game_title_entry_t > () - 24usize] ; ["Alignment of rc_api_game_title_entry_t"] [:: core :: mem :: align_of :: < rc_api_game_title_entry_t > () - 8usize] ; ["Offset of field: rc_api_game_title_entry_t::id"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , id) - 0usize] ; ["Offset of field: rc_api_game_title_entry_t::title"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , title) - 8usize] ; ["Offset of field: rc_api_game_title_entry_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , image_name) - 16usize] ; } ; # [doc = " Response data for a fetch games title request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_titles_response_t { pub entries : * mut rc_api_game_title_entry_t , pub num_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_titles_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_titles_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_game_titles_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_titles_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , entries) - 0usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , num_entries) - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_game_titles_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_game_titles_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_titles_server_response (response : * mut rc_api_fetch_game_titles_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_game_titles_response (response : * mut rc_api_fetch_game_titles_response_t) ; } pub type __gnuc_va_list = __builtin_va_list ; # [repr (C)] # [derive (Copy , Clone)] pub struct __mbstate_t { pub __count : :: core :: ffi :: c_int , pub __value : __mbstate_t__bindgen_ty_1 , } # [repr (C)] # [derive (Copy , Clone)] pub union __mbstate_t__bindgen_ty_1 { pub __wch : :: core :: ffi :: c_uint , pub __wchb : [:: core :: ffi :: c_char ; 4usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __mbstate_t__bindgen_ty_1"] [:: core :: mem :: size_of :: < __mbstate_t__bindgen_ty_1 > () - 4usize] ; ["Alignment of __mbstate_t__bindgen_ty_1"] [:: core :: mem :: align_of :: < __mbstate_t__bindgen_ty_1 > () - 4usize] ; ["Offset of field: __mbstate_t__bindgen_ty_1::__wch"] [:: core :: mem :: offset_of ! (__mbstate_t__bindgen_ty_1 , __wch) - 0usize] ; ["Offset of field: __mbstate_t__bindgen_ty_1::__wchb"] [:: core :: mem :: offset_of ! (__mbstate_t__bindgen_ty_1 , __wchb) - 0usize] ; } ; impl :: core :: fmt :: Debug for __mbstate_t__bindgen_ty_1 { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "__mbstate_t__bindgen_ty_1 {{ union }}") } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __mbstate_t"] [:: core :: mem :: size_of :: < __mbstate_t > () - 8usize] ; ["Alignment of __mbstate_t"] [:: core :: mem :: align_of :: < __mbstate_t > () - 4usize] ; ["Offset of field: __mbstate_t::__count"] [:: core :: mem :: offset_of ! (__mbstate_t , __count) - 0usize] ; ["Offset of field: __mbstate_t::__value"] [:: core :: mem :: offset_of ! (__mbstate_t , __value) - 4usize] ; } ; impl :: core :: fmt :: Debug for __mbstate_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "__mbstate_t {{ __count: {:?}, __value: {:?} }}" , self . __count , self . __value) } } # [repr (C)] # [derive (Copy , Clone)] pub struct _G_fpos_t { pub __pos : __off_t , pub __state : __mbstate_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _G_fpos_t"] [:: core :: mem :: size_of :: < _G_fpos_t > () - 16usize] ; ["Alignment of _G_fpos_t"] [:: core :: mem :: align_of :: < _G_fpos_t > () - 8usize] ; ["Offset of field: _G_fpos_t::__pos"] [:: core :: mem :: offset_of ! (_G_fpos_t , __pos) - 0usize] ; ["Offset of field: _G_fpos_t::__state"] [:: core :: mem :: offset_of ! (_G_fpos_t , __state) - 8usize] ; } ; impl :: core :: fmt :: Debug for _G_fpos_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "_G_fpos_t {{ __pos: {:?}, __state: {:?} }}" , self . __pos , self . __state) } } pub type __fpos_t = _G_fpos_t ; # [repr (C)] # [derive (Copy , Clone)] pub struct _G_fpos64_t { pub __pos : __off64_t , pub __state : __mbstate_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _G_fpos64_t"] [:: core :: mem :: size_of :: < _G_fpos64_t > () - 16usize] ; ["Alignment of _G_fpos64_t"] [:: core :: mem :: align_of :: < _G_fpos64_t > () - 8usize] ; ["Offset of field: _G_fpos64_t::__pos"] [:: core :: mem :: offset_of ! (_G_fpos64_t , __pos) - 0usize] ; ["Offset of field: _G_fpos64_t::__state"] [:: core :: mem :: offset_of ! (_G_fpos64_t , __state) - 8usize] ; } ; impl :: core :: fmt :: Debug for _G_fpos64_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "_G_fpos64_t {{ __pos: {:?}, __state: {:?} }}" , self . __pos , self . __state) } } pub type __fpos64_t = _G_fpos64_t ; pub type __FILE = _IO_FILE ; pub type FILE = _IO_FILE ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_marker { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_codecvt { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_wide_data { _unused : [u8 ; 0] , } pub type _IO_lock_t = :: core :: ffi :: c_void ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_FILE { pub _flags : :: core :: ffi :: c_int , pub _IO_read_ptr : * mut :: core :: ffi :: c_char , pub _IO_read_end : * mut :: core :: ffi :: c_char , pub _IO_read_base : * mut :: core :: ffi :: c_char , pub _IO_write_base : * mut :: core :: ffi :: c_char , pub _IO_write_ptr : * mut :: core :: ffi :: c_char , pub _IO_write_end : * mut :: core :: ffi :: c_char , pub _IO_buf_base : * mut :: core :: ffi :: c_char , pub _IO_buf_end : * mut :: core :: ffi :: c_char , pub _IO_save_base : * mut :: core :: ffi :: c_char , pub _IO_backup_base : * mut :: core :: ffi :: c_char , pub _IO_save_end : * mut :: core :: ffi :: c_char , pub _markers : * mut _IO_marker , pub _chain : * mut _IO_FILE , pub _fileno : :: core :: ffi :: c_int , pub _bitfield_align_1 : [u32 ; 0] , pub _bitfield_1 : __BindgenBitfieldUnit < [u8 ; 3usize] > , pub _short_backupbuf : [:: core :: ffi :: c_char ; 1usize] , pub _old_offset : __off_t , pub _cur_column : :: core :: ffi :: c_ushort , pub _vtable_offset : :: core :: ffi :: c_schar , pub _shortbuf : [:: core :: ffi :: c_char ; 1usize] , pub _lock : * mut _IO_lock_t , pub _offset : __off64_t , pub _codecvt : * mut _IO_codecvt , pub _wide_data : * mut _IO_wide_data , pub _freeres_list : * mut _IO_FILE , pub _freeres_buf : * mut :: core :: ffi :: c_void , pub _prevchain : * mut * mut _IO_FILE , pub _mode : :: core :: ffi :: c_int , pub _unused3 : :: core :: ffi :: c_int , pub _total_written : __uint64_t , pub _unused2 : [:: core :: ffi :: c_char ; 8usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _IO_FILE"] [:: core :: mem :: size_of :: < _IO_FILE > () - 216usize] ; ["Alignment of _IO_FILE"] [:: core :: mem :: align_of :: < _IO_FILE > () - 8usize] ; ["Offset of field: _IO_FILE::_flags"] [:: core :: mem :: offset_of ! (_IO_FILE , _flags) - 0usize] ; ["Offset of field: _IO_FILE::_IO_read_ptr"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_ptr) - 8usize] ; ["Offset of field: _IO_FILE::_IO_read_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_end) - 16usize] ; ["Offset of field: _IO_FILE::_IO_read_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_base) - 24usize] ; ["Offset of field: _IO_FILE::_IO_write_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_base) - 32usize] ; ["Offset of field: _IO_FILE::_IO_write_ptr"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_ptr) - 40usize] ; ["Offset of field: _IO_FILE::_IO_write_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_end) - 48usize] ; ["Offset of field: _IO_FILE::_IO_buf_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_buf_base) - 56usize] ; ["Offset of field: _IO_FILE::_IO_buf_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_buf_end) - 64usize] ; ["Offset of field: _IO_FILE::_IO_save_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_save_base) - 72usize] ; ["Offset of field: _IO_FILE::_IO_backup_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_backup_base) - 80usize] ; ["Offset of field: _IO_FILE::_IO_save_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_save_end) - 88usize] ; ["Offset of field: _IO_FILE::_markers"] [:: core :: mem :: offset_of ! (_IO_FILE , _markers) - 96usize] ; ["Offset of field: _IO_FILE::_chain"] [:: core :: mem :: offset_of ! (_IO_FILE , _chain) - 104usize] ; ["Offset of field: _IO_FILE::_fileno"] [:: core :: mem :: offset_of ! (_IO_FILE , _fileno) - 112usize] ; ["Offset of field: _IO_FILE::_short_backupbuf"] [:: core :: mem :: offset_of ! (_IO_FILE , _short_backupbuf) - 119usize] ; ["Offset of field: _IO_FILE::_old_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _old_offset) - 120usize] ; ["Offset of field: _IO_FILE::_cur_column"] [:: core :: mem :: offset_of ! (_IO_FILE , _cur_column) - 128usize] ; ["Offset of field: _IO_FILE::_vtable_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _vtable_offset) - 130usize] ; ["Offset of field: _IO_FILE::_shortbuf"] [:: core :: mem :: offset_of ! (_IO_FILE , _shortbuf) - 131usize] ; ["Offset of field: _IO_FILE::_lock"] [:: core :: mem :: offset_of ! (_IO_FILE , _lock) - 136usize] ; ["Offset of field: _IO_FILE::_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _offset) - 144usize] ; ["Offset of field: _IO_FILE::_codecvt"] [:: core :: mem :: offset_of ! (_IO_FILE , _codecvt) - 152usize] ; ["Offset of field: _IO_FILE::_wide_data"] [:: core :: mem :: offset_of ! (_IO_FILE , _wide_data) - 160usize] ; ["Offset of field: _IO_FILE::_freeres_list"] [:: core :: mem :: offset_of ! (_IO_FILE , _freeres_list) - 168usize] ; ["Offset of field: _IO_FILE::_freeres_buf"] [:: core :: mem :: offset_of ! (_IO_FILE , _freeres_buf) - 176usize] ; ["Offset of field: _IO_FILE::_prevchain"] [:: core :: mem :: offset_of ! (_IO_FILE , _prevchain) - 184usize] ; ["Offset of field: _IO_FILE::_mode"] [:: core :: mem :: offset_of ! (_IO_FILE , _mode) - 192usize] ; ["Offset of field: _IO_FILE::_unused3"] [:: core :: mem :: offset_of ! (_IO_FILE , _unused3) - 196usize] ; ["Offset of field: _IO_FILE::_total_written"] [:: core :: mem :: offset_of ! (_IO_FILE , _total_written) - 200usize] ; ["Offset of field: _IO_FILE::_unused2"] [:: core :: mem :: offset_of ! (_IO_FILE , _unused2) - 208usize] ; } ; impl _IO_FILE { # [inline] pub fn _flags2 (& self) -> :: core :: ffi :: c_int { unsafe { u32::cast_signed (self . _bitfield_1 . get (0usize , 24u8) as u32) } } # [inline] pub fn set__flags2 (& mut self , val : :: core :: ffi :: c_int) { unsafe { let val : u32 = :: core :: mem :: transmute (val) ; self . _bitfield_1 . set (0usize , 24u8 , val as u64) } } # [inline] pub fn new_bitfield_1 (_flags2 : :: core :: ffi :: c_int) -> __BindgenBitfieldUnit < [u8 ; 3usize] > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [u8 ; 3usize] > = Default :: default () ; __bindgen_bitfield_unit . set (0usize , 24u8 , { let _flags2 : u32 = unsafe { :: core :: mem :: transmute (_flags2) } ; _flags2 as u64 }) ; __bindgen_bitfield_unit } } pub type cookie_read_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __buf : * mut :: core :: ffi :: c_char , __nbytes : usize) -> __ssize_t > ; pub type cookie_write_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __buf : * const :: core :: ffi :: c_char , __nbytes : usize) -> __ssize_t > ; pub type cookie_seek_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __pos : * mut __off64_t , __w : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int > ; pub type cookie_close_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void) -> :: core :: ffi :: 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 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _IO_cookie_io_functions_t"] [:: core :: mem :: size_of :: < _IO_cookie_io_functions_t > () - 32usize] ; ["Alignment of _IO_cookie_io_functions_t"] [:: core :: mem :: align_of :: < _IO_cookie_io_functions_t > () - 8usize] ; ["Offset of field: _IO_cookie_io_functions_t::read"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , read) - 0usize] ; ["Offset of field: _IO_cookie_io_functions_t::write"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , write) - 8usize] ; ["Offset of field: _IO_cookie_io_functions_t::seek"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , seek) - 16usize] ; ["Offset of field: _IO_cookie_io_functions_t::close"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , close) - 24usize] ; } ; 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" { pub static mut stdin : * mut FILE ; } extern "C" { pub static mut stdout : * mut FILE ; } extern "C" { pub static mut stderr : * mut FILE ; } extern "C" { pub fn remove (__filename : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rename (__old : * const :: core :: ffi :: c_char , __new : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn renameat (__oldfd : :: core :: ffi :: c_int , __old : * const :: core :: ffi :: c_char , __newfd : :: core :: ffi :: c_int , __new : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fclose (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn tmpfile () -> * mut FILE ; } extern "C" { pub fn tmpnam (arg1 : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn tmpnam_r (__s : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn tempnam (__dir : * const :: core :: ffi :: c_char , __pfx : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn fflush (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fflush_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fopen (__filename : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn freopen (__filename : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char , __stream : * mut FILE) -> * mut FILE ; } extern "C" { pub fn fdopen (__fd : :: core :: ffi :: c_int , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn fopencookie (__magic_cookie : * mut :: core :: ffi :: c_void , __modes : * const :: core :: ffi :: c_char , __io_funcs : cookie_io_functions_t) -> * mut FILE ; } extern "C" { pub fn fmemopen (__s : * mut :: core :: ffi :: c_void , __len : usize , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn open_memstream (__bufloc : * mut * mut :: core :: ffi :: c_char , __sizeloc : * mut usize) -> * mut FILE ; } extern "C" { pub fn setbuf (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char) ; } extern "C" { pub fn setvbuf (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char , __modes : :: core :: ffi :: c_int , __n : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn setbuffer (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char , __size : usize) ; } extern "C" { pub fn setlinebuf (__stream : * mut FILE) ; } extern "C" { pub fn fprintf (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn printf (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn sprintf (__s : * mut :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vfprintf (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vprintf (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsprintf (__s : * mut :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn snprintf (__s : * mut :: core :: ffi :: c_char , __maxlen : :: core :: ffi :: c_ulong , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsnprintf (__s : * mut :: core :: ffi :: c_char , __maxlen : :: core :: ffi :: c_ulong , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vasprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __f : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn __asprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn asprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vdprintf (__fd : :: core :: ffi :: c_int , __fmt : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn dprintf (__fd : :: core :: ffi :: c_int , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fscanf (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn scanf (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn sscanf (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } pub type __cfloat128 = __BindgenComplex < u128 > ; pub type _Float128 = u128 ; pub type _Float32 = f32 ; pub type _Float64 = f64 ; pub type _Float32x = f64 ; pub type _Float64x = u128 ; extern "C" { # [link_name = "\u{1}__isoc99_fscanf"] pub fn fscanf1 (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_scanf"] pub fn scanf1 (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_sscanf"] pub fn sscanf1 (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vfscanf (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vscanf (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsscanf (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vfscanf"] pub fn vfscanf1 (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vscanf"] pub fn vscanf1 (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vsscanf"] pub fn vsscanf1 (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgetc (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getc (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getchar () -> :: core :: ffi :: c_int ; } extern "C" { pub fn getc_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getchar_unlocked () -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgetc_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fputc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putchar (__c : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fputc_unlocked (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putc_unlocked (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putchar_unlocked (__c : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getw (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putw (__w : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgets (__s : * mut :: core :: ffi :: c_char , __n : :: core :: ffi :: c_int , __stream : * mut FILE) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn __getdelim (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __delimiter : :: core :: ffi :: c_int , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn getdelim (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __delimiter : :: core :: ffi :: c_int , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn getline (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn fputs (__s : * const :: core :: ffi :: c_char , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn puts (__s : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ungetc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fread (__ptr : * mut :: core :: ffi :: c_void , __size : :: core :: ffi :: c_ulong , __n : :: core :: ffi :: c_ulong , __stream : * mut FILE) -> :: core :: ffi :: c_ulong ; } extern "C" { pub fn fwrite (__ptr : * const :: core :: ffi :: c_void , __size : :: core :: ffi :: c_ulong , __n : :: core :: ffi :: c_ulong , __s : * mut FILE) -> :: core :: ffi :: c_ulong ; } extern "C" { pub fn fread_unlocked (__ptr : * mut :: core :: ffi :: c_void , __size : usize , __n : usize , __stream : * mut FILE) -> usize ; } extern "C" { pub fn fwrite_unlocked (__ptr : * const :: core :: ffi :: c_void , __size : usize , __n : usize , __stream : * mut FILE) -> usize ; } extern "C" { pub fn fseek (__stream : * mut FILE , __off : :: core :: ffi :: c_long , __whence : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ftell (__stream : * mut FILE) -> :: core :: ffi :: c_long ; } extern "C" { pub fn rewind (__stream : * mut FILE) ; } extern "C" { pub fn fseeko (__stream : * mut FILE , __off : __off_t , __whence : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ftello (__stream : * mut FILE) -> __off_t ; } extern "C" { pub fn fgetpos (__stream : * mut FILE , __pos : * mut fpos_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fsetpos (__stream : * mut FILE , __pos : * const fpos_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clearerr (__stream : * mut FILE) ; } extern "C" { pub fn feof (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ferror (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clearerr_unlocked (__stream : * mut FILE) ; } extern "C" { pub fn feof_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ferror_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn perror (__s : * const :: core :: ffi :: c_char) ; } extern "C" { pub fn fileno (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fileno_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn pclose (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn popen (__command : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn ctermid (__s : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn flockfile (__stream : * mut FILE) ; } extern "C" { pub fn ftrylockfile (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn funlockfile (__stream : * mut FILE) ; } extern "C" { pub fn __uflow (arg1 : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn __overflow (arg1 : * mut FILE , arg2 : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } pub const RC_CONSOLE_UNKNOWN : _bindgen_ty_12 = 0 ; pub const RC_CONSOLE_MEGA_DRIVE : _bindgen_ty_12 = 1 ; pub const RC_CONSOLE_NINTENDO_64 : _bindgen_ty_12 = 2 ; pub const RC_CONSOLE_SUPER_NINTENDO : _bindgen_ty_12 = 3 ; pub const RC_CONSOLE_GAMEBOY : _bindgen_ty_12 = 4 ; pub const RC_CONSOLE_GAMEBOY_ADVANCE : _bindgen_ty_12 = 5 ; pub const RC_CONSOLE_GAMEBOY_COLOR : _bindgen_ty_12 = 6 ; pub const RC_CONSOLE_NINTENDO : _bindgen_ty_12 = 7 ; pub const RC_CONSOLE_PC_ENGINE : _bindgen_ty_12 = 8 ; pub const RC_CONSOLE_SEGA_CD : _bindgen_ty_12 = 9 ; pub const RC_CONSOLE_SEGA_32X : _bindgen_ty_12 = 10 ; pub const RC_CONSOLE_MASTER_SYSTEM : _bindgen_ty_12 = 11 ; pub const RC_CONSOLE_PLAYSTATION : _bindgen_ty_12 = 12 ; pub const RC_CONSOLE_ATARI_LYNX : _bindgen_ty_12 = 13 ; pub const RC_CONSOLE_NEOGEO_POCKET : _bindgen_ty_12 = 14 ; pub const RC_CONSOLE_GAME_GEAR : _bindgen_ty_12 = 15 ; pub const RC_CONSOLE_GAMECUBE : _bindgen_ty_12 = 16 ; pub const RC_CONSOLE_ATARI_JAGUAR : _bindgen_ty_12 = 17 ; pub const RC_CONSOLE_NINTENDO_DS : _bindgen_ty_12 = 18 ; pub const RC_CONSOLE_WII : _bindgen_ty_12 = 19 ; pub const RC_CONSOLE_WII_U : _bindgen_ty_12 = 20 ; pub const RC_CONSOLE_PLAYSTATION_2 : _bindgen_ty_12 = 21 ; pub const RC_CONSOLE_XBOX : _bindgen_ty_12 = 22 ; pub const RC_CONSOLE_MAGNAVOX_ODYSSEY2 : _bindgen_ty_12 = 23 ; pub const RC_CONSOLE_POKEMON_MINI : _bindgen_ty_12 = 24 ; pub const RC_CONSOLE_ATARI_2600 : _bindgen_ty_12 = 25 ; pub const RC_CONSOLE_MS_DOS : _bindgen_ty_12 = 26 ; pub const RC_CONSOLE_ARCADE : _bindgen_ty_12 = 27 ; pub const RC_CONSOLE_VIRTUAL_BOY : _bindgen_ty_12 = 28 ; pub const RC_CONSOLE_MSX : _bindgen_ty_12 = 29 ; pub const RC_CONSOLE_COMMODORE_64 : _bindgen_ty_12 = 30 ; pub const RC_CONSOLE_ZX81 : _bindgen_ty_12 = 31 ; pub const RC_CONSOLE_ORIC : _bindgen_ty_12 = 32 ; pub const RC_CONSOLE_SG1000 : _bindgen_ty_12 = 33 ; pub const RC_CONSOLE_VIC20 : _bindgen_ty_12 = 34 ; pub const RC_CONSOLE_AMIGA : _bindgen_ty_12 = 35 ; pub const RC_CONSOLE_ATARI_ST : _bindgen_ty_12 = 36 ; pub const RC_CONSOLE_AMSTRAD_PC : _bindgen_ty_12 = 37 ; pub const RC_CONSOLE_APPLE_II : _bindgen_ty_12 = 38 ; pub const RC_CONSOLE_SATURN : _bindgen_ty_12 = 39 ; pub const RC_CONSOLE_DREAMCAST : _bindgen_ty_12 = 40 ; pub const RC_CONSOLE_PSP : _bindgen_ty_12 = 41 ; pub const RC_CONSOLE_CDI : _bindgen_ty_12 = 42 ; pub const RC_CONSOLE_3DO : _bindgen_ty_12 = 43 ; pub const RC_CONSOLE_COLECOVISION : _bindgen_ty_12 = 44 ; pub const RC_CONSOLE_INTELLIVISION : _bindgen_ty_12 = 45 ; pub const RC_CONSOLE_VECTREX : _bindgen_ty_12 = 46 ; pub const RC_CONSOLE_PC8800 : _bindgen_ty_12 = 47 ; pub const RC_CONSOLE_PC9800 : _bindgen_ty_12 = 48 ; pub const RC_CONSOLE_PCFX : _bindgen_ty_12 = 49 ; pub const RC_CONSOLE_ATARI_5200 : _bindgen_ty_12 = 50 ; pub const RC_CONSOLE_ATARI_7800 : _bindgen_ty_12 = 51 ; pub const RC_CONSOLE_X68K : _bindgen_ty_12 = 52 ; pub const RC_CONSOLE_WONDERSWAN : _bindgen_ty_12 = 53 ; pub const RC_CONSOLE_CASSETTEVISION : _bindgen_ty_12 = 54 ; pub const RC_CONSOLE_SUPER_CASSETTEVISION : _bindgen_ty_12 = 55 ; pub const RC_CONSOLE_NEO_GEO_CD : _bindgen_ty_12 = 56 ; pub const RC_CONSOLE_FAIRCHILD_CHANNEL_F : _bindgen_ty_12 = 57 ; pub const RC_CONSOLE_FM_TOWNS : _bindgen_ty_12 = 58 ; pub const RC_CONSOLE_ZX_SPECTRUM : _bindgen_ty_12 = 59 ; pub const RC_CONSOLE_GAME_AND_WATCH : _bindgen_ty_12 = 60 ; pub const RC_CONSOLE_NOKIA_NGAGE : _bindgen_ty_12 = 61 ; pub const RC_CONSOLE_NINTENDO_3DS : _bindgen_ty_12 = 62 ; pub const RC_CONSOLE_SUPERVISION : _bindgen_ty_12 = 63 ; pub const RC_CONSOLE_SHARPX1 : _bindgen_ty_12 = 64 ; pub const RC_CONSOLE_TIC80 : _bindgen_ty_12 = 65 ; pub const RC_CONSOLE_THOMSONTO8 : _bindgen_ty_12 = 66 ; pub const RC_CONSOLE_PC6000 : _bindgen_ty_12 = 67 ; pub const RC_CONSOLE_PICO : _bindgen_ty_12 = 68 ; pub const RC_CONSOLE_MEGADUCK : _bindgen_ty_12 = 69 ; pub const RC_CONSOLE_ZEEBO : _bindgen_ty_12 = 70 ; pub const RC_CONSOLE_ARDUBOY : _bindgen_ty_12 = 71 ; pub const RC_CONSOLE_WASM4 : _bindgen_ty_12 = 72 ; pub const RC_CONSOLE_ARCADIA_2001 : _bindgen_ty_12 = 73 ; pub const RC_CONSOLE_INTERTON_VC_4000 : _bindgen_ty_12 = 74 ; pub const RC_CONSOLE_ELEKTOR_TV_GAMES_COMPUTER : _bindgen_ty_12 = 75 ; pub const RC_CONSOLE_PC_ENGINE_CD : _bindgen_ty_12 = 76 ; pub const RC_CONSOLE_ATARI_JAGUAR_CD : _bindgen_ty_12 = 77 ; pub const RC_CONSOLE_NINTENDO_DSI : _bindgen_ty_12 = 78 ; pub const RC_CONSOLE_TI83 : _bindgen_ty_12 = 79 ; pub const RC_CONSOLE_UZEBOX : _bindgen_ty_12 = 80 ; pub const RC_CONSOLE_HUBS : _bindgen_ty_12 = 100 ; pub const RC_CONSOLE_EVENTS : _bindgen_ty_12 = 101 ; pub const RC_CONSOLE_STANDALONE : _bindgen_ty_12 = 102 ; # [doc = "\\\n| Console identifiers                                                         |\n\\"] pub type _bindgen_ty_12 = :: core :: ffi :: c_uint ; extern "C" { pub fn rc_console_name (console_id : u32) -> * const :: core :: ffi :: c_char ; } pub const RC_MEMORY_TYPE_SYSTEM_RAM : _bindgen_ty_13 = 0 ; pub const RC_MEMORY_TYPE_SAVE_RAM : _bindgen_ty_13 = 1 ; pub const RC_MEMORY_TYPE_VIDEO_RAM : _bindgen_ty_13 = 2 ; pub const RC_MEMORY_TYPE_READONLY : _bindgen_ty_13 = 3 ; pub const RC_MEMORY_TYPE_HARDWARE_CONTROLLER : _bindgen_ty_13 = 4 ; pub const RC_MEMORY_TYPE_VIRTUAL_RAM : _bindgen_ty_13 = 5 ; pub const RC_MEMORY_TYPE_UNUSED : _bindgen_ty_13 = 6 ; # [doc = "\\\n| Memory mapping                                                              |\n\\"] pub type _bindgen_ty_13 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memory_region_t { pub start_address : u32 , pub end_address : u32 , pub real_address : u32 , pub type_ : u8 , pub description : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memory_region_t"] [:: core :: mem :: size_of :: < rc_memory_region_t > () - 24usize] ; ["Alignment of rc_memory_region_t"] [:: core :: mem :: align_of :: < rc_memory_region_t > () - 8usize] ; ["Offset of field: rc_memory_region_t::start_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , start_address) - 0usize] ; ["Offset of field: rc_memory_region_t::end_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , end_address) - 4usize] ; ["Offset of field: rc_memory_region_t::real_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , real_address) - 8usize] ; ["Offset of field: rc_memory_region_t::type_"] [:: core :: mem :: offset_of ! (rc_memory_region_t , type_) - 12usize] ; ["Offset of field: rc_memory_region_t::description"] [:: core :: mem :: offset_of ! (rc_memory_region_t , description) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memory_regions_t { pub region : * const rc_memory_region_t , pub num_regions : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memory_regions_t"] [:: core :: mem :: size_of :: < rc_memory_regions_t > () - 16usize] ; ["Alignment of rc_memory_regions_t"] [:: core :: mem :: align_of :: < rc_memory_regions_t > () - 8usize] ; ["Offset of field: rc_memory_regions_t::region"] [:: core :: mem :: offset_of ! (rc_memory_regions_t , region) - 0usize] ; ["Offset of field: rc_memory_regions_t::num_regions"] [:: core :: mem :: offset_of ! (rc_memory_regions_t , num_regions) - 8usize] ; } ; extern "C" { pub fn rc_console_memory_regions (console_id : u32) -> * const rc_memory_regions_t ; } extern "C" { pub fn rc_hash_generate_from_buffer (hash : * mut :: core :: ffi :: c_char , console_id : u32 , buffer : * const u8 , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_hash_generate_from_file (hash : * mut :: core :: ffi :: c_char , console_id : u32 , path : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_iterator { pub buffer : * const u8 , pub buffer_size : usize , pub consoles : [u8 ; 12usize] , pub index : :: core :: ffi :: c_int , pub path : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_iterator"] [:: core :: mem :: size_of :: < rc_hash_iterator > () - 40usize] ; ["Alignment of rc_hash_iterator"] [:: core :: mem :: align_of :: < rc_hash_iterator > () - 8usize] ; ["Offset of field: rc_hash_iterator::buffer"] [:: core :: mem :: offset_of ! (rc_hash_iterator , buffer) - 0usize] ; ["Offset of field: rc_hash_iterator::buffer_size"] [:: core :: mem :: offset_of ! (rc_hash_iterator , buffer_size) - 8usize] ; ["Offset of field: rc_hash_iterator::consoles"] [:: core :: mem :: offset_of ! (rc_hash_iterator , consoles) - 16usize] ; ["Offset of field: rc_hash_iterator::index"] [:: core :: mem :: offset_of ! (rc_hash_iterator , index) - 28usize] ; ["Offset of field: rc_hash_iterator::path"] [:: core :: mem :: offset_of ! (rc_hash_iterator , path) - 32usize] ; } ; pub type rc_hash_iterator_t = rc_hash_iterator ; extern "C" { pub fn rc_hash_initialize_iterator (iterator : * mut rc_hash_iterator , path : * const :: core :: ffi :: c_char , buffer : * const u8 , buffer_size : usize) ; } extern "C" { pub fn rc_hash_destroy_iterator (iterator : * mut rc_hash_iterator) ; } extern "C" { pub fn rc_hash_iterate (hash : * mut :: core :: ffi :: c_char , iterator : * mut rc_hash_iterator) -> :: core :: ffi :: c_int ; } pub type rc_hash_message_callback = :: core :: option :: Option < unsafe extern "C" fn (arg1 : * const :: core :: ffi :: c_char) > ; extern "C" { pub fn rc_hash_init_error_message_callback (callback : rc_hash_message_callback) ; } extern "C" { pub fn rc_hash_init_verbose_message_callback (callback : rc_hash_message_callback) ; } pub type rc_hash_filereader_open_file_handler = :: core :: option :: Option < unsafe extern "C" fn (path_utf8 : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_void > ; pub type rc_hash_filereader_seek_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void , offset : i64 , origin : :: core :: ffi :: c_int) > ; pub type rc_hash_filereader_tell_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void) -> i64 > ; pub type rc_hash_filereader_read_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void , buffer : * mut :: core :: ffi :: c_void , requested_bytes : usize) -> usize > ; pub type rc_hash_filereader_close_file_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void) > ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_filereader { pub open : rc_hash_filereader_open_file_handler , pub seek : rc_hash_filereader_seek_handler , pub tell : rc_hash_filereader_tell_handler , pub read : rc_hash_filereader_read_handler , pub close : rc_hash_filereader_close_file_handler , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_filereader"] [:: core :: mem :: size_of :: < rc_hash_filereader > () - 40usize] ; ["Alignment of rc_hash_filereader"] [:: core :: mem :: align_of :: < rc_hash_filereader > () - 8usize] ; ["Offset of field: rc_hash_filereader::open"] [:: core :: mem :: offset_of ! (rc_hash_filereader , open) - 0usize] ; ["Offset of field: rc_hash_filereader::seek"] [:: core :: mem :: offset_of ! (rc_hash_filereader , seek) - 8usize] ; ["Offset of field: rc_hash_filereader::tell"] [:: core :: mem :: offset_of ! (rc_hash_filereader , tell) - 16usize] ; ["Offset of field: rc_hash_filereader::read"] [:: core :: mem :: offset_of ! (rc_hash_filereader , read) - 24usize] ; ["Offset of field: rc_hash_filereader::close"] [:: core :: mem :: offset_of ! (rc_hash_filereader , close) - 32usize] ; } ; extern "C" { pub fn rc_hash_init_custom_filereader (reader : * mut rc_hash_filereader) ; } pub type rc_hash_cdreader_open_track_handler = :: core :: option :: Option < unsafe extern "C" fn (path : * const :: core :: ffi :: c_char , track : u32) -> * mut :: core :: ffi :: c_void > ; pub type rc_hash_cdreader_read_sector_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void , sector : u32 , buffer : * mut :: core :: ffi :: c_void , requested_bytes : usize) -> usize > ; pub type rc_hash_cdreader_close_track_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void) > ; pub type rc_hash_cdreader_first_track_sector_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void) -> u32 > ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_cdreader { pub open_track : rc_hash_cdreader_open_track_handler , pub read_sector : rc_hash_cdreader_read_sector_handler , pub close_track : rc_hash_cdreader_close_track_handler , pub first_track_sector : rc_hash_cdreader_first_track_sector_handler , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_cdreader"] [:: core :: mem :: size_of :: < rc_hash_cdreader > () - 32usize] ; ["Alignment of rc_hash_cdreader"] [:: core :: mem :: align_of :: < rc_hash_cdreader > () - 8usize] ; ["Offset of field: rc_hash_cdreader::open_track"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , open_track) - 0usize] ; ["Offset of field: rc_hash_cdreader::read_sector"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , read_sector) - 8usize] ; ["Offset of field: rc_hash_cdreader::close_track"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , close_track) - 16usize] ; ["Offset of field: rc_hash_cdreader::first_track_sector"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , first_track_sector) - 24usize] ; } ; extern "C" { pub fn rc_hash_get_default_cdreader (cdreader : * mut rc_hash_cdreader) ; } extern "C" { pub fn rc_hash_init_default_cdreader () ; } extern "C" { pub fn rc_hash_init_custom_cdreader (reader : * mut rc_hash_cdreader) ; } pub type rc_hash_3ds_get_cia_normal_key_func = :: core :: option :: Option < unsafe extern "C" fn (common_key_index : u8 , out_normal_key : * mut u8) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_hash_init_3ds_get_cia_normal_key_func (func : rc_hash_3ds_get_cia_normal_key_func) ; } pub type rc_hash_3ds_get_ncch_normal_keys_func = :: core :: option :: Option < unsafe extern "C" fn (primary_key_y : * mut u8 , secondary_key_x_slot : u8 , optional_program_id : * mut u8 , out_primary_key : * mut u8 , out_secondary_key : * mut u8) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_hash_init_3ds_get_ncch_normal_keys_func (func : rc_hash_3ds_get_ncch_normal_keys_func) ; } # [doc = " API parameters for a fetch image request.\n NOTE: fetch image server response is the raw image data. There is no rc_api_process_fetch_image_response function."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_image_request_t { pub image_name : * const :: core :: ffi :: c_char , pub image_type : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_image_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_image_request_t > () - 16usize] ; ["Alignment of rc_api_fetch_image_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_image_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_image_request_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_fetch_image_request_t , image_name) - 0usize] ; ["Offset of field: rc_api_fetch_image_request_t::image_type"] [:: core :: mem :: offset_of ! (rc_api_fetch_image_request_t , image_type) - 8usize] ; } ; extern "C" { pub fn rc_api_init_fetch_image_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_image_request_t) -> :: core :: ffi :: c_int ; } # [doc = " API parameters for a resolve hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_resolve_hash_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_hash : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_resolve_hash_request_t"] [:: core :: mem :: size_of :: < rc_api_resolve_hash_request_t > () - 24usize] ; ["Alignment of rc_api_resolve_hash_request_t"] [:: core :: mem :: align_of :: < rc_api_resolve_hash_request_t > () - 8usize] ; ["Offset of field: rc_api_resolve_hash_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , username) - 0usize] ; ["Offset of field: rc_api_resolve_hash_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_resolve_hash_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , game_hash) - 16usize] ; } ; # [doc = " Response data for a resolve hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_resolve_hash_response_t { pub game_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_resolve_hash_response_t"] [:: core :: mem :: size_of :: < rc_api_resolve_hash_response_t > () - 320usize] ; ["Alignment of rc_api_resolve_hash_response_t"] [:: core :: mem :: align_of :: < rc_api_resolve_hash_response_t > () - 8usize] ; ["Offset of field: rc_api_resolve_hash_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_response_t , game_id) - 0usize] ; ["Offset of field: rc_api_resolve_hash_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_resolve_hash_request (request : * mut rc_api_request_t , api_params : * const rc_api_resolve_hash_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_resolve_hash_response (response : * mut rc_api_resolve_hash_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_resolve_hash_server_response (response : * mut rc_api_resolve_hash_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_resolve_hash_response (response : * mut rc_api_resolve_hash_response_t) ; } # [doc = " API parameters for a fetch game data request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_data_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_data_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_data_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_game_data_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_data_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , game_id) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_leaderboard_definition_t { pub id : u32 , pub format : :: core :: ffi :: c_int , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub lower_is_better : u8 , pub hidden : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_leaderboard_definition_t"] [:: core :: mem :: size_of :: < rc_api_leaderboard_definition_t > () - 40usize] ; ["Alignment of rc_api_leaderboard_definition_t"] [:: core :: mem :: align_of :: < rc_api_leaderboard_definition_t > () - 8usize] ; ["Offset of field: rc_api_leaderboard_definition_t::id"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , id) - 0usize] ; ["Offset of field: rc_api_leaderboard_definition_t::format"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , format) - 4usize] ; ["Offset of field: rc_api_leaderboard_definition_t::title"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , title) - 8usize] ; ["Offset of field: rc_api_leaderboard_definition_t::description"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , description) - 16usize] ; ["Offset of field: rc_api_leaderboard_definition_t::definition"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , definition) - 24usize] ; ["Offset of field: rc_api_leaderboard_definition_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , lower_is_better) - 32usize] ; ["Offset of field: rc_api_leaderboard_definition_t::hidden"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , hidden) - 33usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_achievement_definition_t { pub id : u32 , pub points : u32 , pub category : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub author : * const :: core :: ffi :: c_char , pub badge_name : * const :: core :: ffi :: c_char , pub created : time_t , pub updated : time_t , pub type_ : u32 , pub rarity : f32 , pub rarity_hardcore : f32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_achievement_definition_t"] [:: core :: mem :: size_of :: < rc_api_achievement_definition_t > () - 88usize] ; ["Alignment of rc_api_achievement_definition_t"] [:: core :: mem :: align_of :: < rc_api_achievement_definition_t > () - 8usize] ; ["Offset of field: rc_api_achievement_definition_t::id"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , id) - 0usize] ; ["Offset of field: rc_api_achievement_definition_t::points"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , points) - 4usize] ; ["Offset of field: rc_api_achievement_definition_t::category"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , category) - 8usize] ; ["Offset of field: rc_api_achievement_definition_t::title"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , title) - 16usize] ; ["Offset of field: rc_api_achievement_definition_t::description"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , description) - 24usize] ; ["Offset of field: rc_api_achievement_definition_t::definition"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , definition) - 32usize] ; ["Offset of field: rc_api_achievement_definition_t::author"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , author) - 40usize] ; ["Offset of field: rc_api_achievement_definition_t::badge_name"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , badge_name) - 48usize] ; ["Offset of field: rc_api_achievement_definition_t::created"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , created) - 56usize] ; ["Offset of field: rc_api_achievement_definition_t::updated"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , updated) - 64usize] ; ["Offset of field: rc_api_achievement_definition_t::type_"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , type_) - 72usize] ; ["Offset of field: rc_api_achievement_definition_t::rarity"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , rarity) - 76usize] ; ["Offset of field: rc_api_achievement_definition_t::rarity_hardcore"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , rarity_hardcore) - 80usize] ; } ; # [doc = " Response data for a fetch game data request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_data_response_t { pub id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub image_name : * const :: core :: ffi :: c_char , pub rich_presence_script : * const :: core :: ffi :: c_char , pub achievements : * mut rc_api_achievement_definition_t , pub num_achievements : u32 , pub leaderboards : * mut rc_api_leaderboard_definition_t , pub num_leaderboards : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_data_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_data_response_t > () - 376usize] ; ["Alignment of rc_api_fetch_game_data_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_data_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , console_id) - 4usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::title"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , title) - 8usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , image_name) - 16usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::rich_presence_script"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , rich_presence_script) - 24usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::achievements"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , achievements) - 32usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , num_achievements) - 40usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::leaderboards"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , leaderboards) - 48usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , num_leaderboards) - 56usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , response) - 64usize] ; } ; extern "C" { pub fn rc_api_init_fetch_game_data_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_game_data_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_data_response (response : * mut rc_api_fetch_game_data_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_data_server_response (response : * mut rc_api_fetch_game_data_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_game_data_response (response : * mut rc_api_fetch_game_data_response_t) ; } # [doc = " API parameters for a ping request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_ping_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub rich_presence : * const :: core :: ffi :: c_char , pub game_hash : * const :: core :: ffi :: c_char , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_ping_request_t"] [:: core :: mem :: size_of :: < rc_api_ping_request_t > () - 48usize] ; ["Alignment of rc_api_ping_request_t"] [:: core :: mem :: align_of :: < rc_api_ping_request_t > () - 8usize] ; ["Offset of field: rc_api_ping_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , username) - 0usize] ; ["Offset of field: rc_api_ping_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_ping_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_ping_request_t::rich_presence"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , rich_presence) - 24usize] ; ["Offset of field: rc_api_ping_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , game_hash) - 32usize] ; ["Offset of field: rc_api_ping_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , hardcore) - 40usize] ; } ; # [doc = " Response data for a ping request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_ping_response_t { pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_ping_response_t"] [:: core :: mem :: size_of :: < rc_api_ping_response_t > () - 312usize] ; ["Alignment of rc_api_ping_response_t"] [:: core :: mem :: align_of :: < rc_api_ping_response_t > () - 8usize] ; ["Offset of field: rc_api_ping_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_ping_response_t , response) - 0usize] ; } ; extern "C" { pub fn rc_api_init_ping_request (request : * mut rc_api_request_t , api_params : * const rc_api_ping_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_ping_response (response : * mut rc_api_ping_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_ping_server_response (response : * mut rc_api_ping_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_ping_response (response : * mut rc_api_ping_response_t) ; } # [doc = " API parameters for an award achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_award_achievement_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub hardcore : u32 , pub game_hash : * const :: core :: ffi :: c_char , pub seconds_since_unlock : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_award_achievement_request_t"] [:: core :: mem :: size_of :: < rc_api_award_achievement_request_t > () - 40usize] ; ["Alignment of rc_api_award_achievement_request_t"] [:: core :: mem :: align_of :: < rc_api_award_achievement_request_t > () - 8usize] ; ["Offset of field: rc_api_award_achievement_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , username) - 0usize] ; ["Offset of field: rc_api_award_achievement_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_award_achievement_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_award_achievement_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , hardcore) - 20usize] ; ["Offset of field: rc_api_award_achievement_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_award_achievement_request_t::seconds_since_unlock"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , seconds_since_unlock) - 32usize] ; } ; # [doc = " Response data for an award achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_award_achievement_response_t { pub awarded_achievement_id : u32 , pub new_player_score : u32 , pub new_player_score_softcore : u32 , pub achievements_remaining : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_award_achievement_response_t"] [:: core :: mem :: size_of :: < rc_api_award_achievement_response_t > () - 328usize] ; ["Alignment of rc_api_award_achievement_response_t"] [:: core :: mem :: align_of :: < rc_api_award_achievement_response_t > () - 8usize] ; ["Offset of field: rc_api_award_achievement_response_t::awarded_achievement_id"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , awarded_achievement_id) - 0usize] ; ["Offset of field: rc_api_award_achievement_response_t::new_player_score"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , new_player_score) - 4usize] ; ["Offset of field: rc_api_award_achievement_response_t::new_player_score_softcore"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , new_player_score_softcore) - 8usize] ; ["Offset of field: rc_api_award_achievement_response_t::achievements_remaining"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , achievements_remaining) - 12usize] ; ["Offset of field: rc_api_award_achievement_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_award_achievement_request (request : * mut rc_api_request_t , api_params : * const rc_api_award_achievement_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_award_achievement_response (response : * mut rc_api_award_achievement_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_award_achievement_server_response (response : * mut rc_api_award_achievement_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_award_achievement_response (response : * mut rc_api_award_achievement_response_t) ; } # [doc = " API parameters for a submit lboard entry request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_submit_lboard_entry_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub leaderboard_id : u32 , pub score : i32 , pub game_hash : * const :: core :: ffi :: c_char , pub seconds_since_completion : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_submit_lboard_entry_request_t"] [:: core :: mem :: size_of :: < rc_api_submit_lboard_entry_request_t > () - 40usize] ; ["Alignment of rc_api_submit_lboard_entry_request_t"] [:: core :: mem :: align_of :: < rc_api_submit_lboard_entry_request_t > () - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , username) - 0usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , leaderboard_id) - 16usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , score) - 20usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::seconds_since_completion"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , seconds_since_completion) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_lboard_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub score : i32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_lboard_entry_t"] [:: core :: mem :: size_of :: < rc_api_lboard_entry_t > () - 16usize] ; ["Alignment of rc_api_lboard_entry_t"] [:: core :: mem :: align_of :: < rc_api_lboard_entry_t > () - 8usize] ; ["Offset of field: rc_api_lboard_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , username) - 0usize] ; ["Offset of field: rc_api_lboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , rank) - 8usize] ; ["Offset of field: rc_api_lboard_entry_t::score"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , score) - 12usize] ; } ; # [doc = " Response data for a submit lboard entry request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_submit_lboard_entry_response_t { pub submitted_score : i32 , pub best_score : i32 , pub new_rank : u32 , pub num_entries : u32 , pub top_entries : * mut rc_api_lboard_entry_t , pub num_top_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_submit_lboard_entry_response_t"] [:: core :: mem :: size_of :: < rc_api_submit_lboard_entry_response_t > () - 344usize] ; ["Alignment of rc_api_submit_lboard_entry_response_t"] [:: core :: mem :: align_of :: < rc_api_submit_lboard_entry_response_t > () - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::submitted_score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , submitted_score) - 0usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::best_score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , best_score) - 4usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::new_rank"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , new_rank) - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , num_entries) - 12usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::top_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , top_entries) - 16usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::num_top_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , num_top_entries) - 24usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_submit_lboard_entry_request (request : * mut rc_api_request_t , api_params : * const rc_api_submit_lboard_entry_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_submit_lboard_entry_response (response : * mut rc_api_submit_lboard_entry_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_submit_lboard_entry_server_response (response : * mut rc_api_submit_lboard_entry_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_submit_lboard_entry_response (response : * mut rc_api_submit_lboard_entry_response_t) ; } # [doc = " Callback used to read num_bytes bytes from memory starting at address. If\n num_bytes is greater than 1, the value is read in little-endian from\n memory."] pub type rc_runtime_peek_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , num_bytes : u32 , ud : * mut :: core :: ffi :: c_void) -> u32 > ; # [doc = "\\\n| Runtime                                                                     |\n\\"] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_trigger_t { pub id : u32 , pub trigger : * mut rc_trigger_t , pub buffer : * mut :: core :: ffi :: c_void , pub invalid_memref : * mut rc_memref_t , pub md5 : [u8 ; 16usize] , pub serialized_size : i32 , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_trigger_t"] [:: core :: mem :: size_of :: < rc_runtime_trigger_t > () - 56usize] ; ["Alignment of rc_runtime_trigger_t"] [:: core :: mem :: align_of :: < rc_runtime_trigger_t > () - 8usize] ; ["Offset of field: rc_runtime_trigger_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , id) - 0usize] ; ["Offset of field: rc_runtime_trigger_t::trigger"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , trigger) - 8usize] ; ["Offset of field: rc_runtime_trigger_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , buffer) - 16usize] ; ["Offset of field: rc_runtime_trigger_t::invalid_memref"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , invalid_memref) - 24usize] ; ["Offset of field: rc_runtime_trigger_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , md5) - 32usize] ; ["Offset of field: rc_runtime_trigger_t::serialized_size"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , serialized_size) - 48usize] ; ["Offset of field: rc_runtime_trigger_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , owns_memrefs) - 52usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_lboard_t { pub id : u32 , pub value : i32 , pub lboard : * mut rc_lboard_t , pub buffer : * mut :: core :: ffi :: c_void , pub invalid_memref : * mut rc_memref_t , pub md5 : [u8 ; 16usize] , pub serialized_size : u32 , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_lboard_t"] [:: core :: mem :: size_of :: < rc_runtime_lboard_t > () - 56usize] ; ["Alignment of rc_runtime_lboard_t"] [:: core :: mem :: align_of :: < rc_runtime_lboard_t > () - 8usize] ; ["Offset of field: rc_runtime_lboard_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , id) - 0usize] ; ["Offset of field: rc_runtime_lboard_t::value"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , value) - 4usize] ; ["Offset of field: rc_runtime_lboard_t::lboard"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , lboard) - 8usize] ; ["Offset of field: rc_runtime_lboard_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , buffer) - 16usize] ; ["Offset of field: rc_runtime_lboard_t::invalid_memref"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , invalid_memref) - 24usize] ; ["Offset of field: rc_runtime_lboard_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , md5) - 32usize] ; ["Offset of field: rc_runtime_lboard_t::serialized_size"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , serialized_size) - 48usize] ; ["Offset of field: rc_runtime_lboard_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , owns_memrefs) - 52usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_richpresence_t { pub richpresence : * mut rc_richpresence_t , pub buffer : * mut :: core :: ffi :: c_void , pub previous : * mut rc_runtime_richpresence_t , pub md5 : [u8 ; 16usize] , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_richpresence_t"] [:: core :: mem :: size_of :: < rc_runtime_richpresence_t > () - 48usize] ; ["Alignment of rc_runtime_richpresence_t"] [:: core :: mem :: align_of :: < rc_runtime_richpresence_t > () - 8usize] ; ["Offset of field: rc_runtime_richpresence_t::richpresence"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , richpresence) - 0usize] ; ["Offset of field: rc_runtime_richpresence_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , buffer) - 8usize] ; ["Offset of field: rc_runtime_richpresence_t::previous"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , previous) - 16usize] ; ["Offset of field: rc_runtime_richpresence_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , md5) - 24usize] ; ["Offset of field: rc_runtime_richpresence_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , owns_memrefs) - 40usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_t { pub triggers : * mut rc_runtime_trigger_t , pub trigger_count : u32 , pub trigger_capacity : u32 , pub lboards : * mut rc_runtime_lboard_t , pub lboard_count : u32 , pub lboard_capacity : u32 , pub richpresence : * mut rc_runtime_richpresence_t , pub memrefs : * mut rc_memref_t , pub next_memref : * mut * mut rc_memref_t , pub variables : * mut rc_value_t , pub next_variable : * mut * mut rc_value_t , pub owns_self : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_t"] [:: core :: mem :: size_of :: < rc_runtime_t > () - 80usize] ; ["Alignment of rc_runtime_t"] [:: core :: mem :: align_of :: < rc_runtime_t > () - 8usize] ; ["Offset of field: rc_runtime_t::triggers"] [:: core :: mem :: offset_of ! (rc_runtime_t , triggers) - 0usize] ; ["Offset of field: rc_runtime_t::trigger_count"] [:: core :: mem :: offset_of ! (rc_runtime_t , trigger_count) - 8usize] ; ["Offset of field: rc_runtime_t::trigger_capacity"] [:: core :: mem :: offset_of ! (rc_runtime_t , trigger_capacity) - 12usize] ; ["Offset of field: rc_runtime_t::lboards"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboards) - 16usize] ; ["Offset of field: rc_runtime_t::lboard_count"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboard_count) - 24usize] ; ["Offset of field: rc_runtime_t::lboard_capacity"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboard_capacity) - 28usize] ; ["Offset of field: rc_runtime_t::richpresence"] [:: core :: mem :: offset_of ! (rc_runtime_t , richpresence) - 32usize] ; ["Offset of field: rc_runtime_t::memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_t , memrefs) - 40usize] ; ["Offset of field: rc_runtime_t::next_memref"] [:: core :: mem :: offset_of ! (rc_runtime_t , next_memref) - 48usize] ; ["Offset of field: rc_runtime_t::variables"] [:: core :: mem :: offset_of ! (rc_runtime_t , variables) - 56usize] ; ["Offset of field: rc_runtime_t::next_variable"] [:: core :: mem :: offset_of ! (rc_runtime_t , next_variable) - 64usize] ; ["Offset of field: rc_runtime_t::owns_self"] [:: core :: mem :: offset_of ! (rc_runtime_t , owns_self) - 72usize] ; } ; extern "C" { pub fn rc_runtime_alloc () -> * mut rc_runtime_t ; } extern "C" { pub fn rc_runtime_init (runtime : * mut rc_runtime_t) ; } extern "C" { pub fn rc_runtime_destroy (runtime : * mut rc_runtime_t) ; } extern "C" { pub fn rc_runtime_activate_achievement (runtime : * mut rc_runtime_t , id : u32 , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deactivate_achievement (runtime : * mut rc_runtime_t , id : u32) ; } extern "C" { pub fn rc_runtime_get_achievement (runtime : * const rc_runtime_t , id : u32) -> * mut rc_trigger_t ; } extern "C" { pub fn rc_runtime_get_achievement_measured (runtime : * const rc_runtime_t , id : u32 , measured_value : * mut :: core :: ffi :: c_uint , measured_target : * mut :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_format_achievement_measured (runtime : * const rc_runtime_t , id : u32 , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_activate_lboard (runtime : * mut rc_runtime_t , id : u32 , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deactivate_lboard (runtime : * mut rc_runtime_t , id : u32) ; } extern "C" { pub fn rc_runtime_get_lboard (runtime : * const rc_runtime_t , id : u32) -> * mut rc_lboard_t ; } extern "C" { pub fn rc_runtime_format_lboard_value (buffer : * mut :: core :: ffi :: c_char , size : :: core :: ffi :: c_int , value : i32 , format : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_activate_richpresence (runtime : * mut rc_runtime_t , script : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_get_richpresence (runtime : * const rc_runtime_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_runtime_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } pub const RC_RUNTIME_EVENT_ACHIEVEMENT_ACTIVATED : _bindgen_ty_14 = 0 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PAUSED : _bindgen_ty_14 = 1 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_RESET : _bindgen_ty_14 = 2 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_TRIGGERED : _bindgen_ty_14 = 3 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PRIMED : _bindgen_ty_14 = 4 ; pub const RC_RUNTIME_EVENT_LBOARD_STARTED : _bindgen_ty_14 = 5 ; pub const RC_RUNTIME_EVENT_LBOARD_CANCELED : _bindgen_ty_14 = 6 ; pub const RC_RUNTIME_EVENT_LBOARD_UPDATED : _bindgen_ty_14 = 7 ; pub const RC_RUNTIME_EVENT_LBOARD_TRIGGERED : _bindgen_ty_14 = 8 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_DISABLED : _bindgen_ty_14 = 9 ; pub const RC_RUNTIME_EVENT_LBOARD_DISABLED : _bindgen_ty_14 = 10 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_UNPRIMED : _bindgen_ty_14 = 11 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PROGRESS_UPDATED : _bindgen_ty_14 = 12 ; pub type _bindgen_ty_14 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_event_t { pub id : u32 , pub value : i32 , pub type_ : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_event_t"] [:: core :: mem :: size_of :: < rc_runtime_event_t > () - 12usize] ; ["Alignment of rc_runtime_event_t"] [:: core :: mem :: align_of :: < rc_runtime_event_t > () - 4usize] ; ["Offset of field: rc_runtime_event_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , id) - 0usize] ; ["Offset of field: rc_runtime_event_t::value"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , value) - 4usize] ; ["Offset of field: rc_runtime_event_t::type_"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , type_) - 8usize] ; } ; pub type rc_runtime_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (runtime_event : * const rc_runtime_event_t) > ; extern "C" { pub fn rc_runtime_do_frame (runtime : * mut rc_runtime_t , event_handler : rc_runtime_event_handler_t , peek : rc_runtime_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) ; } extern "C" { pub fn rc_runtime_reset (runtime : * mut rc_runtime_t) ; } pub type rc_runtime_validate_address_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_runtime_validate_addresses (runtime : * mut rc_runtime_t , event_handler : rc_runtime_event_handler_t , validate_handler : rc_runtime_validate_address_t) ; } extern "C" { pub fn rc_runtime_invalidate_address (runtime : * mut rc_runtime_t , address : u32) ; } extern "C" { pub fn rc_runtime_progress_size (runtime : * const rc_runtime_t , L : * mut lua_State) -> u32 ; } extern "C" { pub fn rc_runtime_serialize_progress (buffer : * mut :: core :: ffi :: c_void , runtime : * const rc_runtime_t , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_serialize_progress_sized (buffer : * mut u8 , buffer_size : u32 , runtime : * const rc_runtime_t , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deserialize_progress (runtime : * mut rc_runtime_t , serialized : * const u8 , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deserialize_progress_sized (runtime : * mut rc_runtime_t , serialized : * const u8 , serialized_size : u32 , L : * mut lua_State) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_async_handle_t { _unused : [u8 ; 0] , } # [doc = " Callback used to read num_bytes bytes from memory starting at address into buffer.\n Returns the number of bytes read. A return value of 0 indicates the address was invalid."] pub type rc_client_read_memory_func_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , buffer : * mut u8 , num_bytes : u32 , client : * mut rc_client_t) -> u32 > ; # [doc = " Internal method passed to rc_client_server_call_t to process the server response."] pub type rc_client_server_callback_t = :: core :: option :: Option < unsafe extern "C" fn (server_response : * const rc_api_server_response_t , callback_data : * mut :: core :: ffi :: c_void) > ; # [doc = " Callback used to issue a request to the server."] pub type rc_client_server_call_t = :: core :: option :: Option < unsafe extern "C" fn (request : * const rc_api_request_t , callback : rc_client_server_callback_t , callback_data : * mut :: core :: ffi :: c_void , client : * mut rc_client_t) > ; # [doc = " Generic callback for asynchronous eventing."] pub type rc_client_callback_t = :: core :: option :: Option < unsafe extern "C" fn (result : :: core :: ffi :: c_int , error_message : * const :: core :: ffi :: c_char , client : * mut rc_client_t , userdata : * mut :: core :: ffi :: c_void) > ; # [doc = " Callback for logging or displaying a message."] pub type rc_client_message_callback_t = :: core :: option :: Option < unsafe extern "C" fn (message : * const :: core :: ffi :: c_char , client : * const rc_client_t) > ; extern "C" { # [doc = " Creates a new rc_client_t object."] pub fn rc_client_create (read_memory_function : rc_client_read_memory_func_t , server_call_function : rc_client_server_call_t) -> * mut rc_client_t ; } extern "C" { # [doc = " Releases resources associated to a rc_client_t object.\n Pointer will no longer be valid after making this call."] pub fn rc_client_destroy (client : * mut rc_client_t) ; } extern "C" { # [doc = " Sets whether hardcore is enabled (on by default).\n Can be called with a game loaded.\n Enabling hardcore with a game loaded will raise an RC_CLIENT_EVENT_RESET\n event. Processing will be disabled until rc_client_reset is called."] pub fn rc_client_set_hardcore_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether hardcore is enabled (on by default)."] pub fn rc_client_get_hardcore_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether encore mode is enabled (off by default).\n Evaluated when loading a game. Has no effect while a game is loaded."] pub fn rc_client_set_encore_mode_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether encore mode is enabled (off by default)."] pub fn rc_client_get_encore_mode_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether unofficial achievements should be loaded.\n Evaluated when loading a game. Has no effect while a game is loaded."] pub fn rc_client_set_unofficial_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether unofficial achievements should be loaded."] pub fn rc_client_get_unofficial_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether spectator mode is enabled (off by default).\n If enabled, events for achievement unlocks and leaderboard submissions will be\n raised, but server calls to actually perform the unlock/submit will not occur.\n Can be modified while a game is loaded. Evaluated at unlock/submit time.\n Cannot be modified if disabled before a game is loaded."] pub fn rc_client_set_spectator_mode_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether spectator mode is enabled (off by default)."] pub fn rc_client_get_spectator_mode_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Attaches client-specific data to the runtime."] pub fn rc_client_set_userdata (client : * mut rc_client_t , userdata : * mut :: core :: ffi :: c_void) ; } extern "C" { # [doc = " Gets the client-specific data attached to the runtime."] pub fn rc_client_get_userdata (client : * const rc_client_t) -> * mut :: core :: ffi :: c_void ; } extern "C" { # [doc = " Sets the name of the server to use."] pub fn rc_client_set_host (client : * const rc_client_t , hostname : * const :: core :: ffi :: c_char) ; } pub type rc_clock_t = u64 ; pub type rc_get_time_millisecs_func_t = :: core :: option :: Option < unsafe extern "C" fn (client : * const rc_client_t) -> rc_clock_t > ; extern "C" { # [doc = " Specifies a function that returns a value that increases once per millisecond."] pub fn rc_client_set_get_time_millisecs_function (client : * mut rc_client_t , handler : rc_get_time_millisecs_func_t) ; } extern "C" { # [doc = " Marks an async process as aborted. The associated callback will not be called."] pub fn rc_client_abort_async (client : * mut rc_client_t , async_handle : * mut rc_client_async_handle_t) ; } extern "C" { # [doc = " Gets a clause that can be added to the User-Agent to identify the version of rcheevos being used."] pub fn rc_client_get_user_agent_clause (client : * mut rc_client_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> usize ; } extern "C" { # [doc = " Sets the logging level and provides a callback to be called to do the logging."] pub fn rc_client_enable_logging (client : * mut rc_client_t , level : :: core :: ffi :: c_int , callback : rc_client_message_callback_t) ; } pub const RC_CLIENT_LOG_LEVEL_NONE : _bindgen_ty_15 = 0 ; pub const RC_CLIENT_LOG_LEVEL_ERROR : _bindgen_ty_15 = 1 ; pub const RC_CLIENT_LOG_LEVEL_WARN : _bindgen_ty_15 = 2 ; pub const RC_CLIENT_LOG_LEVEL_INFO : _bindgen_ty_15 = 3 ; pub const RC_CLIENT_LOG_LEVEL_VERBOSE : _bindgen_ty_15 = 4 ; pub const NUM_RC_CLIENT_LOG_LEVELS : _bindgen_ty_15 = 5 ; pub type _bindgen_ty_15 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Attempt to login a user."] pub fn rc_client_begin_login_with_password (client : * mut rc_client_t , username : * const :: core :: ffi :: c_char , password : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Attempt to login a user."] pub fn rc_client_begin_login_with_token (client : * mut rc_client_t , username : * const :: core :: ffi :: c_char , token : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Logout the user."] pub fn rc_client_logout (client : * mut rc_client_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_user_t { pub display_name : * const :: core :: ffi :: c_char , pub username : * const :: core :: ffi :: c_char , pub token : * const :: core :: ffi :: c_char , pub score : u32 , pub score_softcore : u32 , pub num_unread_messages : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_user_t"] [:: core :: mem :: size_of :: < rc_client_user_t > () - 40usize] ; ["Alignment of rc_client_user_t"] [:: core :: mem :: align_of :: < rc_client_user_t > () - 8usize] ; ["Offset of field: rc_client_user_t::display_name"] [:: core :: mem :: offset_of ! (rc_client_user_t , display_name) - 0usize] ; ["Offset of field: rc_client_user_t::username"] [:: core :: mem :: offset_of ! (rc_client_user_t , username) - 8usize] ; ["Offset of field: rc_client_user_t::token"] [:: core :: mem :: offset_of ! (rc_client_user_t , token) - 16usize] ; ["Offset of field: rc_client_user_t::score"] [:: core :: mem :: offset_of ! (rc_client_user_t , score) - 24usize] ; ["Offset of field: rc_client_user_t::score_softcore"] [:: core :: mem :: offset_of ! (rc_client_user_t , score_softcore) - 28usize] ; ["Offset of field: rc_client_user_t::num_unread_messages"] [:: core :: mem :: offset_of ! (rc_client_user_t , num_unread_messages) - 32usize] ; } ; extern "C" { # [doc = " Gets information about the logged in user. Will return NULL if the user is not logged in."] pub fn rc_client_get_user_info (client : * const rc_client_t) -> * const rc_client_user_t ; } extern "C" { # [doc = " Gets the URL for the user's profile picture.\n Returns RC_OK on success."] pub fn rc_client_user_get_image_url (user : * const rc_client_user_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_user_game_summary_t { pub num_core_achievements : u32 , pub num_unofficial_achievements : u32 , pub num_unlocked_achievements : u32 , pub num_unsupported_achievements : u32 , pub points_core : u32 , pub points_unlocked : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_user_game_summary_t"] [:: core :: mem :: size_of :: < rc_client_user_game_summary_t > () - 24usize] ; ["Alignment of rc_client_user_game_summary_t"] [:: core :: mem :: align_of :: < rc_client_user_game_summary_t > () - 4usize] ; ["Offset of field: rc_client_user_game_summary_t::num_core_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_core_achievements) - 0usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unofficial_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unofficial_achievements) - 4usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unlocked_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unlocked_achievements) - 8usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unsupported_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unsupported_achievements) - 12usize] ; ["Offset of field: rc_client_user_game_summary_t::points_core"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , points_core) - 16usize] ; ["Offset of field: rc_client_user_game_summary_t::points_unlocked"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , points_unlocked) - 20usize] ; } ; extern "C" { # [doc = " Gets a breakdown of the number of achievements in the game, and how many the user has unlocked.\n Used for the \"You have unlocked X of Y achievements\" message shown when the game starts."] pub fn rc_client_get_user_game_summary (client : * const rc_client_t , summary : * mut rc_client_user_game_summary_t) ; } extern "C" { # [doc = " Start loading an unidentified game."] pub fn rc_client_begin_identify_and_load_game (client : * mut rc_client_t , console_id : u32 , file_path : * const :: core :: ffi :: c_char , data : * const u8 , data_size : usize , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Start loading a game."] pub fn rc_client_begin_load_game (client : * mut rc_client_t , hash : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Gets the current progress of the asynchronous load game process."] pub fn rc_client_get_load_game_state (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } pub const RC_CLIENT_LOAD_GAME_STATE_NONE : _bindgen_ty_16 = 0 ; pub const RC_CLIENT_LOAD_GAME_STATE_IDENTIFYING_GAME : _bindgen_ty_16 = 1 ; pub const RC_CLIENT_LOAD_GAME_STATE_AWAIT_LOGIN : _bindgen_ty_16 = 2 ; pub const RC_CLIENT_LOAD_GAME_STATE_FETCHING_GAME_DATA : _bindgen_ty_16 = 3 ; pub const RC_CLIENT_LOAD_GAME_STATE_STARTING_SESSION : _bindgen_ty_16 = 4 ; pub const RC_CLIENT_LOAD_GAME_STATE_DONE : _bindgen_ty_16 = 5 ; pub const RC_CLIENT_LOAD_GAME_STATE_ABORTED : _bindgen_ty_16 = 6 ; pub type _bindgen_ty_16 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Determines if a game was successfully identified and loaded."] pub fn rc_client_is_game_loaded (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Unloads the current game."] pub fn rc_client_unload_game (client : * mut rc_client_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_game_t { pub id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub hash : * const :: core :: ffi :: c_char , pub badge_name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_game_t"] [:: core :: mem :: size_of :: < rc_client_game_t > () - 32usize] ; ["Alignment of rc_client_game_t"] [:: core :: mem :: align_of :: < rc_client_game_t > () - 8usize] ; ["Offset of field: rc_client_game_t::id"] [:: core :: mem :: offset_of ! (rc_client_game_t , id) - 0usize] ; ["Offset of field: rc_client_game_t::console_id"] [:: core :: mem :: offset_of ! (rc_client_game_t , console_id) - 4usize] ; ["Offset of field: rc_client_game_t::title"] [:: core :: mem :: offset_of ! (rc_client_game_t , title) - 8usize] ; ["Offset of field: rc_client_game_t::hash"] [:: core :: mem :: offset_of ! (rc_client_game_t , hash) - 16usize] ; ["Offset of field: rc_client_game_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_game_t , badge_name) - 24usize] ; } ; extern "C" { # [doc = " Get information about the current game. Returns NULL if no game is loaded.\n NOTE: returns a dummy game record if an unidentified game is loaded."] pub fn rc_client_get_game_info (client : * const rc_client_t) -> * const rc_client_game_t ; } extern "C" { # [doc = " Gets the URL for the game image.\n Returns RC_OK on success."] pub fn rc_client_game_get_image_url (game : * const rc_client_game_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Changes the active disc in a multi-disc game."] pub fn rc_client_begin_change_media (client : * mut rc_client_t , file_path : * const :: core :: ffi :: c_char , data : * const u8 , data_size : usize , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Changes the active disc in a multi-disc game."] pub fn rc_client_begin_change_media_from_hash (client : * mut rc_client_t , hash : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } # [doc = "\\\n| Subsets                                                                     |\n\\"] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_subset_t { pub id : u32 , pub title : * const :: core :: ffi :: c_char , pub badge_name : [:: core :: ffi :: c_char ; 16usize] , pub num_achievements : u32 , pub num_leaderboards : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_subset_t"] [:: core :: mem :: size_of :: < rc_client_subset_t > () - 40usize] ; ["Alignment of rc_client_subset_t"] [:: core :: mem :: align_of :: < rc_client_subset_t > () - 8usize] ; ["Offset of field: rc_client_subset_t::id"] [:: core :: mem :: offset_of ! (rc_client_subset_t , id) - 0usize] ; ["Offset of field: rc_client_subset_t::title"] [:: core :: mem :: offset_of ! (rc_client_subset_t , title) - 8usize] ; ["Offset of field: rc_client_subset_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_subset_t , badge_name) - 16usize] ; ["Offset of field: rc_client_subset_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_client_subset_t , num_achievements) - 32usize] ; ["Offset of field: rc_client_subset_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_client_subset_t , num_leaderboards) - 36usize] ; } ; extern "C" { pub fn rc_client_get_subset_info (client : * mut rc_client_t , subset_id : u32) -> * const rc_client_subset_t ; } pub const RC_CLIENT_ACHIEVEMENT_STATE_INACTIVE : _bindgen_ty_17 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_ACTIVE : _bindgen_ty_17 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_UNLOCKED : _bindgen_ty_17 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_DISABLED : _bindgen_ty_17 = 3 ; pub const NUM_RC_CLIENT_ACHIEVEMENT_STATES : _bindgen_ty_17 = 4 ; # [doc = "\\\n| Achievements                                                                |\n\\"] pub type _bindgen_ty_17 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_NONE : _bindgen_ty_18 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_CORE : _bindgen_ty_18 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_UNOFFICIAL : _bindgen_ty_18 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_CORE_AND_UNOFFICIAL : _bindgen_ty_18 = 3 ; pub type _bindgen_ty_18 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_STANDARD : _bindgen_ty_19 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_MISSABLE : _bindgen_ty_19 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_PROGRESSION : _bindgen_ty_19 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_WIN : _bindgen_ty_19 = 3 ; pub type _bindgen_ty_19 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNKNOWN : _bindgen_ty_20 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_LOCKED : _bindgen_ty_20 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNLOCKED : _bindgen_ty_20 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNSUPPORTED : _bindgen_ty_20 = 3 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNOFFICIAL : _bindgen_ty_20 = 4 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_RECENTLY_UNLOCKED : _bindgen_ty_20 = 5 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_ACTIVE_CHALLENGE : _bindgen_ty_20 = 6 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_ALMOST_THERE : _bindgen_ty_20 = 7 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNSYNCED : _bindgen_ty_20 = 8 ; pub const NUM_RC_CLIENT_ACHIEVEMENT_BUCKETS : _bindgen_ty_20 = 9 ; pub type _bindgen_ty_20 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_NONE : _bindgen_ty_21 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_SOFTCORE : _bindgen_ty_21 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_HARDCORE : _bindgen_ty_21 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_BOTH : _bindgen_ty_21 = 3 ; pub type _bindgen_ty_21 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_t { pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub badge_name : [:: core :: ffi :: c_char ; 8usize] , pub measured_progress : [:: core :: ffi :: c_char ; 24usize] , pub measured_percent : f32 , pub id : u32 , pub points : u32 , pub unlock_time : time_t , pub state : u8 , pub category : u8 , pub bucket : u8 , pub unlocked : u8 , pub rarity : f32 , pub rarity_hardcore : f32 , pub type_ : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_t"] [:: core :: mem :: size_of :: < rc_client_achievement_t > () - 88usize] ; ["Alignment of rc_client_achievement_t"] [:: core :: mem :: align_of :: < rc_client_achievement_t > () - 8usize] ; ["Offset of field: rc_client_achievement_t::title"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , title) - 0usize] ; ["Offset of field: rc_client_achievement_t::description"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , description) - 8usize] ; ["Offset of field: rc_client_achievement_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , badge_name) - 16usize] ; ["Offset of field: rc_client_achievement_t::measured_progress"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , measured_progress) - 24usize] ; ["Offset of field: rc_client_achievement_t::measured_percent"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , measured_percent) - 48usize] ; ["Offset of field: rc_client_achievement_t::id"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , id) - 52usize] ; ["Offset of field: rc_client_achievement_t::points"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , points) - 56usize] ; ["Offset of field: rc_client_achievement_t::unlock_time"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , unlock_time) - 64usize] ; ["Offset of field: rc_client_achievement_t::state"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , state) - 72usize] ; ["Offset of field: rc_client_achievement_t::category"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , category) - 73usize] ; ["Offset of field: rc_client_achievement_t::bucket"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , bucket) - 74usize] ; ["Offset of field: rc_client_achievement_t::unlocked"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , unlocked) - 75usize] ; ["Offset of field: rc_client_achievement_t::rarity"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , rarity) - 76usize] ; ["Offset of field: rc_client_achievement_t::rarity_hardcore"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , rarity_hardcore) - 80usize] ; ["Offset of field: rc_client_achievement_t::type_"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , type_) - 84usize] ; } ; extern "C" { # [doc = " Get information about an achievement. Returns NULL if not found."] pub fn rc_client_get_achievement_info (client : * mut rc_client_t , id : u32) -> * const rc_client_achievement_t ; } extern "C" { # [doc = " Gets the URL for the achievement image.\n Returns RC_OK on success."] pub fn rc_client_achievement_get_image_url (achievement : * const rc_client_achievement_t , state : :: core :: ffi :: c_int , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_bucket_t { pub achievements : * mut * mut rc_client_achievement_t , pub num_achievements : u32 , pub label : * const :: core :: ffi :: c_char , pub subset_id : u32 , pub bucket_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_bucket_t"] [:: core :: mem :: size_of :: < rc_client_achievement_bucket_t > () - 32usize] ; ["Alignment of rc_client_achievement_bucket_t"] [:: core :: mem :: align_of :: < rc_client_achievement_bucket_t > () - 8usize] ; ["Offset of field: rc_client_achievement_bucket_t::achievements"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , achievements) - 0usize] ; ["Offset of field: rc_client_achievement_bucket_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , num_achievements) - 8usize] ; ["Offset of field: rc_client_achievement_bucket_t::label"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , label) - 16usize] ; ["Offset of field: rc_client_achievement_bucket_t::subset_id"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , subset_id) - 24usize] ; ["Offset of field: rc_client_achievement_bucket_t::bucket_type"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , bucket_type) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_list_t { pub buckets : * mut rc_client_achievement_bucket_t , pub num_buckets : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_list_t"] [:: core :: mem :: size_of :: < rc_client_achievement_list_t > () - 16usize] ; ["Alignment of rc_client_achievement_list_t"] [:: core :: mem :: align_of :: < rc_client_achievement_list_t > () - 8usize] ; ["Offset of field: rc_client_achievement_list_t::buckets"] [:: core :: mem :: offset_of ! (rc_client_achievement_list_t , buckets) - 0usize] ; ["Offset of field: rc_client_achievement_list_t::num_buckets"] [:: core :: mem :: offset_of ! (rc_client_achievement_list_t , num_buckets) - 8usize] ; } ; pub const RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_LOCK_STATE : _bindgen_ty_22 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_PROGRESS : _bindgen_ty_22 = 1 ; pub type _bindgen_ty_22 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Creates a list of achievements matching the specified category and grouping.\n Returns an allocated list that must be free'd by calling rc_client_destroy_achievement_list."] pub fn rc_client_create_achievement_list (client : * mut rc_client_t , category : :: core :: ffi :: c_int , grouping : :: core :: ffi :: c_int) -> * mut rc_client_achievement_list_t ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_get_achievement_list."] pub fn rc_client_destroy_achievement_list (list : * mut rc_client_achievement_list_t) ; } extern "C" { # [doc = " Returns non-zero if there are any achievements that can be queried through rc_client_create_achievement_list()."] pub fn rc_client_has_achievements (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } pub const RC_CLIENT_LEADERBOARD_STATE_INACTIVE : _bindgen_ty_23 = 0 ; pub const RC_CLIENT_LEADERBOARD_STATE_ACTIVE : _bindgen_ty_23 = 1 ; pub const RC_CLIENT_LEADERBOARD_STATE_TRACKING : _bindgen_ty_23 = 2 ; pub const RC_CLIENT_LEADERBOARD_STATE_DISABLED : _bindgen_ty_23 = 3 ; pub const NUM_RC_CLIENT_LEADERBOARD_STATES : _bindgen_ty_23 = 4 ; # [doc = "\\\n| Leaderboards                                                                |\n\\"] pub type _bindgen_ty_23 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_LEADERBOARD_FORMAT_TIME : _bindgen_ty_24 = 0 ; pub const RC_CLIENT_LEADERBOARD_FORMAT_SCORE : _bindgen_ty_24 = 1 ; pub const RC_CLIENT_LEADERBOARD_FORMAT_VALUE : _bindgen_ty_24 = 2 ; pub const NUM_RC_CLIENT_LEADERBOARD_FORMATS : _bindgen_ty_24 = 3 ; pub type _bindgen_ty_24 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_t { pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub tracker_value : * const :: core :: ffi :: c_char , pub id : u32 , pub state : u8 , pub format : u8 , pub lower_is_better : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_t > () - 32usize] ; ["Alignment of rc_client_leaderboard_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_t::title"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , title) - 0usize] ; ["Offset of field: rc_client_leaderboard_t::description"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , description) - 8usize] ; ["Offset of field: rc_client_leaderboard_t::tracker_value"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , tracker_value) - 16usize] ; ["Offset of field: rc_client_leaderboard_t::id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , id) - 24usize] ; ["Offset of field: rc_client_leaderboard_t::state"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , state) - 28usize] ; ["Offset of field: rc_client_leaderboard_t::format"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , format) - 29usize] ; ["Offset of field: rc_client_leaderboard_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , lower_is_better) - 30usize] ; } ; extern "C" { # [doc = " Get information about a leaderboard. Returns NULL if not found."] pub fn rc_client_get_leaderboard_info (client : * const rc_client_t , id : u32) -> * const rc_client_leaderboard_t ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_tracker_t { pub display : [:: core :: ffi :: c_char ; 24usize] , pub id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_tracker_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_tracker_t > () - 28usize] ; ["Alignment of rc_client_leaderboard_tracker_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_tracker_t > () - 4usize] ; ["Offset of field: rc_client_leaderboard_tracker_t::display"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_tracker_t , display) - 0usize] ; ["Offset of field: rc_client_leaderboard_tracker_t::id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_tracker_t , id) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_bucket_t { pub leaderboards : * mut * mut rc_client_leaderboard_t , pub num_leaderboards : u32 , pub label : * const :: core :: ffi :: c_char , pub subset_id : u32 , pub bucket_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_bucket_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_bucket_t > () - 32usize] ; ["Alignment of rc_client_leaderboard_bucket_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_bucket_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::leaderboards"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , leaderboards) - 0usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , num_leaderboards) - 8usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::label"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , label) - 16usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::subset_id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , subset_id) - 24usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::bucket_type"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , bucket_type) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_list_t { pub buckets : * mut rc_client_leaderboard_bucket_t , pub num_buckets : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_list_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_list_t > () - 16usize] ; ["Alignment of rc_client_leaderboard_list_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_list_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_list_t::buckets"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_list_t , buckets) - 0usize] ; ["Offset of field: rc_client_leaderboard_list_t::num_buckets"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_list_t , num_buckets) - 8usize] ; } ; pub const RC_CLIENT_LEADERBOARD_BUCKET_UNKNOWN : _bindgen_ty_25 = 0 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_INACTIVE : _bindgen_ty_25 = 1 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_ACTIVE : _bindgen_ty_25 = 2 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_UNSUPPORTED : _bindgen_ty_25 = 3 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_ALL : _bindgen_ty_25 = 4 ; pub const NUM_RC_CLIENT_LEADERBOARD_BUCKETS : _bindgen_ty_25 = 5 ; pub type _bindgen_ty_25 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_LEADERBOARD_LIST_GROUPING_NONE : _bindgen_ty_26 = 0 ; pub const RC_CLIENT_LEADERBOARD_LIST_GROUPING_TRACKING : _bindgen_ty_26 = 1 ; pub type _bindgen_ty_26 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Creates a list of leaderboards matching the specified grouping.\n Returns an allocated list that must be free'd by calling rc_client_destroy_leaderboard_list."] pub fn rc_client_create_leaderboard_list (client : * mut rc_client_t , grouping : :: core :: ffi :: c_int) -> * mut rc_client_leaderboard_list_t ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_get_leaderboard_list."] pub fn rc_client_destroy_leaderboard_list (list : * mut rc_client_leaderboard_list_t) ; } extern "C" { # [doc = " Returns non-zero if the current game has any leaderboards."] pub fn rc_client_has_leaderboards (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_entry_t { pub user : * const :: core :: ffi :: c_char , pub display : [:: core :: ffi :: c_char ; 24usize] , pub submitted : time_t , pub rank : u32 , pub index : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_entry_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_entry_t > () - 48usize] ; ["Alignment of rc_client_leaderboard_entry_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_entry_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_t::user"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , user) - 0usize] ; ["Offset of field: rc_client_leaderboard_entry_t::display"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , display) - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_t::submitted"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , submitted) - 32usize] ; ["Offset of field: rc_client_leaderboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , rank) - 40usize] ; ["Offset of field: rc_client_leaderboard_entry_t::index"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , index) - 44usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_entry_list_t { pub entries : * mut rc_client_leaderboard_entry_t , pub num_entries : u32 , pub total_entries : u32 , pub user_index : i32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_entry_list_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_entry_list_t > () - 24usize] ; ["Alignment of rc_client_leaderboard_entry_list_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_entry_list_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , entries) - 0usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::num_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , num_entries) - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::total_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , total_entries) - 12usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::user_index"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , user_index) - 16usize] ; } ; pub type rc_client_fetch_leaderboard_entries_callback_t = :: core :: option :: Option < unsafe extern "C" fn (result : :: core :: ffi :: c_int , error_message : * const :: core :: ffi :: c_char , list : * mut rc_client_leaderboard_entry_list_t , client : * mut rc_client_t , callback_userdata : * mut :: core :: ffi :: c_void) > ; extern "C" { # [doc = " Fetches a list of leaderboard entries from the server.\n Callback receives an allocated list that must be free'd by calling rc_client_destroy_leaderboard_entry_list."] pub fn rc_client_begin_fetch_leaderboard_entries (client : * mut rc_client_t , leaderboard_id : u32 , first_entry : u32 , count : u32 , callback : rc_client_fetch_leaderboard_entries_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Fetches a list of leaderboard entries from the server containing the logged-in user.\n Callback receives an allocated list that must be free'd by calling rc_client_destroy_leaderboard_entry_list."] pub fn rc_client_begin_fetch_leaderboard_entries_around_user (client : * mut rc_client_t , leaderboard_id : u32 , count : u32 , callback : rc_client_fetch_leaderboard_entries_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Gets the URL for the profile picture of the user associated to a leaderboard entry.\n Returns RC_OK on success."] pub fn rc_client_leaderboard_entry_get_user_image_url (entry : * const rc_client_leaderboard_entry_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_begin_fetch_leaderboard_entries or rc_client_begin_fetch_leaderboard_entries_around_user."] pub fn rc_client_destroy_leaderboard_entry_list (list : * mut rc_client_leaderboard_entry_list_t) ; } # [doc = " Used for scoreboard events. Contains the response from the server when a leaderboard entry is submitted.\n NOTE: This structure is only valid within the event callback. If you want to make use of the data outside\n of the callback, you should create copies of both the top entries and usernames within."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_scoreboard_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub score : [:: core :: ffi :: c_char ; 24usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_scoreboard_entry_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_scoreboard_entry_t > () - 40usize] ; ["Alignment of rc_client_leaderboard_scoreboard_entry_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_scoreboard_entry_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::username"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , username) - 0usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , rank) - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , score) - 12usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_scoreboard_t { pub leaderboard_id : u32 , pub submitted_score : [:: core :: ffi :: c_char ; 24usize] , pub best_score : [:: core :: ffi :: c_char ; 24usize] , pub new_rank : u32 , pub num_entries : u32 , pub top_entries : * mut rc_client_leaderboard_scoreboard_entry_t , pub num_top_entries : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_scoreboard_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_scoreboard_t > () - 80usize] ; ["Alignment of rc_client_leaderboard_scoreboard_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_scoreboard_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::submitted_score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , submitted_score) - 4usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::best_score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , best_score) - 28usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::new_rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , new_rank) - 52usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::num_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , num_entries) - 56usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::top_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , top_entries) - 64usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::num_top_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , num_top_entries) - 72usize] ; } ; extern "C" { # [doc = " Returns non-zero if the current game supports rich presence."] pub fn rc_client_has_rich_presence (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Gets the current rich presence message.\n Returns the number of characters written to buffer."] pub fn rc_client_get_rich_presence_message (client : * mut rc_client_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> usize ; } pub const RC_CLIENT_EVENT_TYPE_NONE : _bindgen_ty_27 = 0 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_TRIGGERED : _bindgen_ty_27 = 1 ; pub const RC_CLIENT_EVENT_LEADERBOARD_STARTED : _bindgen_ty_27 = 2 ; pub const RC_CLIENT_EVENT_LEADERBOARD_FAILED : _bindgen_ty_27 = 3 ; pub const RC_CLIENT_EVENT_LEADERBOARD_SUBMITTED : _bindgen_ty_27 = 4 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_CHALLENGE_INDICATOR_SHOW : _bindgen_ty_27 = 5 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_CHALLENGE_INDICATOR_HIDE : _bindgen_ty_27 = 6 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_SHOW : _bindgen_ty_27 = 7 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_HIDE : _bindgen_ty_27 = 8 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_UPDATE : _bindgen_ty_27 = 9 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_SHOW : _bindgen_ty_27 = 10 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_HIDE : _bindgen_ty_27 = 11 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_UPDATE : _bindgen_ty_27 = 12 ; pub const RC_CLIENT_EVENT_LEADERBOARD_SCOREBOARD : _bindgen_ty_27 = 13 ; pub const RC_CLIENT_EVENT_RESET : _bindgen_ty_27 = 14 ; pub const RC_CLIENT_EVENT_GAME_COMPLETED : _bindgen_ty_27 = 15 ; pub const RC_CLIENT_EVENT_SERVER_ERROR : _bindgen_ty_27 = 16 ; pub const RC_CLIENT_EVENT_DISCONNECTED : _bindgen_ty_27 = 17 ; pub const RC_CLIENT_EVENT_RECONNECTED : _bindgen_ty_27 = 18 ; # [doc = "\\\n| Processing                                                                  |\n\\"] pub type _bindgen_ty_27 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_server_error_t { pub error_message : * const :: core :: ffi :: c_char , pub api : * const :: core :: ffi :: c_char , pub result : :: core :: ffi :: c_int , pub related_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_server_error_t"] [:: core :: mem :: size_of :: < rc_client_server_error_t > () - 24usize] ; ["Alignment of rc_client_server_error_t"] [:: core :: mem :: align_of :: < rc_client_server_error_t > () - 8usize] ; ["Offset of field: rc_client_server_error_t::error_message"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , error_message) - 0usize] ; ["Offset of field: rc_client_server_error_t::api"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , api) - 8usize] ; ["Offset of field: rc_client_server_error_t::result"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , result) - 16usize] ; ["Offset of field: rc_client_server_error_t::related_id"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , related_id) - 20usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_event_t { pub type_ : u32 , pub achievement : * mut rc_client_achievement_t , pub leaderboard : * mut rc_client_leaderboard_t , pub leaderboard_tracker : * mut rc_client_leaderboard_tracker_t , pub leaderboard_scoreboard : * mut rc_client_leaderboard_scoreboard_t , pub server_error : * mut rc_client_server_error_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_event_t"] [:: core :: mem :: size_of :: < rc_client_event_t > () - 48usize] ; ["Alignment of rc_client_event_t"] [:: core :: mem :: align_of :: < rc_client_event_t > () - 8usize] ; ["Offset of field: rc_client_event_t::type_"] [:: core :: mem :: offset_of ! (rc_client_event_t , type_) - 0usize] ; ["Offset of field: rc_client_event_t::achievement"] [:: core :: mem :: offset_of ! (rc_client_event_t , achievement) - 8usize] ; ["Offset of field: rc_client_event_t::leaderboard"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard) - 16usize] ; ["Offset of field: rc_client_event_t::leaderboard_tracker"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard_tracker) - 24usize] ; ["Offset of field: rc_client_event_t::leaderboard_scoreboard"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard_scoreboard) - 32usize] ; ["Offset of field: rc_client_event_t::server_error"] [:: core :: mem :: offset_of ! (rc_client_event_t , server_error) - 40usize] ; } ; # [doc = " Callback used to notify the client when certain events occur."] pub type rc_client_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (event : * const rc_client_event_t , client : * mut rc_client_t) > ; extern "C" { # [doc = " Provides a callback for event handling."] pub fn rc_client_set_event_handler (client : * mut rc_client_t , handler : rc_client_event_handler_t) ; } extern "C" { # [doc = " Provides a callback for reading memory."] pub fn rc_client_set_read_memory_function (client : * mut rc_client_t , handler : rc_client_read_memory_func_t) ; } extern "C" { # [doc = " Determines if there are any active achievements/leaderboards/rich presence that need processing."] pub fn rc_client_is_processing_required (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Processes achievements for the current frame."] pub fn rc_client_do_frame (client : * mut rc_client_t) ; } extern "C" { # [doc = " Processes the periodic queue.\n Called internally by rc_client_do_frame.\n Should be explicitly called if rc_client_do_frame is not being called because emulation is paused."] pub fn rc_client_idle (client : * mut rc_client_t) ; } extern "C" { # [doc = " Determines if a sufficient amount of frames have been processed since the last call to rc_client_can_pause.\n Should not be called unless the client is trying to pause.\n If false is returned, and frames_remaining is not NULL, frames_remaining will be set to the number of frames\n still required before pause is allowed, which can be converted to a time in seconds for displaying to the user."] pub fn rc_client_can_pause (client : * mut rc_client_t , frames_remaining : * mut u32) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Informs the runtime that the emulator has been reset. Will reset all achievements and leaderboards\n to their initial state (includes hiding indicators/trackers)."] pub fn rc_client_reset (client : * mut rc_client_t) ; } extern "C" { # [doc = " Gets the number of bytes needed to serialized the runtime state."] pub fn rc_client_progress_size (client : * mut rc_client_t) -> usize ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator.\n [deprecated] use rc_client_serialize_progress_sized instead"] pub fn rc_client_serialize_progress (client : * mut rc_client_t , buffer : * mut u8) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator."] pub fn rc_client_serialize_progress_sized (client : * mut rc_client_t , buffer : * mut u8 , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Deserializes the runtime state from a buffer.\n Returns RC_OK on success, or an error indicator.\n [deprecated] use rc_client_deserialize_progress_sized instead"] pub fn rc_client_deserialize_progress (client : * mut rc_client_t , serialized : * const u8) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator."] pub fn rc_client_deserialize_progress_sized (client : * mut rc_client_t , serialized : * const u8 , serialized_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __locale_data { pub _address : u8 , } pub type __builtin_va_list = [__va_list_tag ; 1usize] ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __va_list_tag { pub gp_offset : :: core :: ffi :: c_uint , pub fp_offset : :: core :: ffi :: c_uint , pub overflow_arg_area : * mut :: core :: ffi :: c_void , pub reg_save_area : * mut :: core :: ffi :: c_void , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __va_list_tag"] [:: core :: mem :: size_of :: < __va_list_tag > () - 24usize] ; ["Alignment of __va_list_tag"] [:: core :: mem :: align_of :: < __va_list_tag > () - 8usize] ; ["Offset of field: __va_list_tag::gp_offset"] [:: core :: mem :: offset_of ! (__va_list_tag , gp_offset) - 0usize] ; ["Offset of field: __va_list_tag::fp_offset"] [:: core :: mem :: offset_of ! (__va_list_tag , fp_offset) - 4usize] ; ["Offset of field: __va_list_tag::overflow_arg_area"] [:: core :: mem :: offset_of ! (__va_list_tag , overflow_arg_area) - 8usize] ; ["Offset of field: __va_list_tag::reg_save_area"] [:: core :: mem :: offset_of ! (__va_list_tag , reg_save_area) - 16usize] ; } ;
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]  --> /opt/rustwide/target/debug/build/rcheevos-sys/badd2487a33295ab/out/bindings.rs:3:124465
[INFO] [stderr]   |
[INFO] [stderr] 3 | ...ore :: ffi :: c_int) { unsafe { let val : u32 = :: core :: mem :: transmute (val) ; self . _bitfield_1 . set (0usize , 24u8 , val ...
[INFO] [stderr]   |                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr] help: replace this with
[INFO] [stderr]   |
[INFO] [stderr] 3 - # [repr (C)] # [derive (Copy , Clone , Debug , Default , Eq , Hash , Ord , PartialEq , PartialOrd)] pub struct __BindgenBitfieldUnit < Storage > { storage : Storage , } impl < Storage > __BindgenBitfieldUnit < Storage > { # [inline] pub const fn new (storage : Storage) -> Self { Self { storage } } } impl < Storage > __BindgenBitfieldUnit < Storage > where Storage : AsRef < [u8] > + AsMut < [u8] >, { # [inline] pub fn get_bit (& self , index : usize) -> bool { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = self . storage . as_ref () [byte_index] ; let bit_index = if cfg ! (target_endian = "big") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; byte & mask == mask } # [inline] pub fn set_bit (& mut self , index : usize , val : bool) { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = & mut self . storage . as_mut () [byte_index] ; let bit_index = if cfg ! (target_endian = "big") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; if val { * byte |= mask ; } else { * byte &= ! mask ; } } # [inline] pub fn get (& self , bit_offset : usize , bit_width : u8) -> u64 { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; let mut val = 0 ; for i in 0 .. (bit_width as usize) { if self . get_bit (i + bit_offset) { let index = if cfg ! (target_endian = "big") { bit_width as usize - 1 - i } else { i } ; val |= 1 << index ; } } val } # [inline] pub fn set (& mut self , bit_offset : usize , bit_width : u8 , val : u64) { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; for i in 0 .. (bit_width as usize) { let mask = 1 << i ; let val_bit_is_set = val & mask == mask ; let index = if cfg ! (target_endian = "big") { bit_width as usize - 1 - i } else { i } ; self . set_bit (index + bit_offset , val_bit_is_set) ; } } } # [derive (PartialEq , Copy , Clone , Hash , Debug , Default)] # [repr (C)] pub struct __BindgenComplex < T > { pub re : T , pub im : T } pub const _STDINT_H : u32 = 1 ; pub const _FEATURES_H : u32 = 1 ; pub const _DEFAULT_SOURCE : u32 = 1 ; pub const __GLIBC_USE_ISOC2Y : u32 = 0 ; pub const __GLIBC_USE_ISOC23 : u32 = 0 ; pub const __USE_ISOC11 : u32 = 1 ; pub const __USE_ISOC99 : u32 = 1 ; pub const __USE_ISOC95 : u32 = 1 ; pub const __USE_POSIX_IMPLICITLY : u32 = 1 ; pub const _POSIX_SOURCE : u32 = 1 ; pub const _POSIX_C_SOURCE : u32 = 202405 ; pub const __USE_POSIX : u32 = 1 ; pub const __USE_POSIX2 : u32 = 1 ; pub const __USE_POSIX199309 : u32 = 1 ; pub const __USE_POSIX199506 : u32 = 1 ; pub const __USE_XOPEN2K : u32 = 1 ; pub const __USE_XOPEN2K8 : u32 = 1 ; pub const _ATFILE_SOURCE : u32 = 1 ; pub const __USE_XOPEN2K24 : u32 = 1 ; pub const __WORDSIZE : u32 = 64 ; pub const __WORDSIZE_TIME64_COMPAT32 : u32 = 1 ; pub const __SYSCALL_WORDSIZE : u32 = 64 ; pub const __TIMESIZE : u32 = 64 ; pub const __USE_TIME_BITS64 : u32 = 1 ; pub const __USE_MISC : u32 = 1 ; 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_C23_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 ; pub const __STDC_IEC_559_COMPLEX__ : u32 = 1 ; 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 = 43 ; pub const _SYS_CDEFS_H : u32 = 1 ; pub const __glibc_c99_flexarr_available : u32 = 1 ; pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI : u32 = 0 ; pub const __HAVE_GENERIC_SELECTION : u32 = 1 ; pub const __GLIBC_USE_LIB_EXT2 : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT_C23 : u32 = 0 ; 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_C23 : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_TYPES_EXT : u32 = 0 ; pub const _BITS_TYPES_H : u32 = 1 ; pub const _BITS_TYPESIZES_H : u32 = 1 ; pub const __OFF_T_MATCHES_OFF64_T : u32 = 1 ; pub const __INO_T_MATCHES_INO64_T : u32 = 1 ; pub const __RLIM_T_MATCHES_RLIM64_T : u32 = 1 ; pub const __STATFS_MATCHES_STATFS64 : u32 = 1 ; pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 : u32 = 1 ; pub const __FD_SETSIZE : u32 = 1024 ; pub const _BITS_TIME64_H : u32 = 1 ; pub const _BITS_WCHAR_H : u32 = 1 ; pub const _BITS_STDINT_INTN_H : u32 = 1 ; pub const _BITS_STDINT_UINTN_H : u32 = 1 ; pub const _BITS_STDINT_LEAST_H : u32 = 1 ; pub const INT8_MIN : i32 = - 128 ; pub const INT16_MIN : i32 = - 32768 ; pub const INT32_MIN : i32 = - 2147483648 ; pub const INT8_MAX : u32 = 127 ; pub const INT16_MAX : u32 = 32767 ; pub const INT32_MAX : u32 = 2147483647 ; pub const UINT8_MAX : u32 = 255 ; pub const UINT16_MAX : u32 = 65535 ; pub const UINT32_MAX : u32 = 4294967295 ; pub const INT_LEAST8_MIN : i32 = - 128 ; pub const INT_LEAST16_MIN : i32 = - 32768 ; pub const INT_LEAST32_MIN : i32 = - 2147483648 ; pub const INT_LEAST8_MAX : u32 = 127 ; pub const INT_LEAST16_MAX : u32 = 32767 ; pub const INT_LEAST32_MAX : u32 = 2147483647 ; pub const UINT_LEAST8_MAX : u32 = 255 ; pub const UINT_LEAST16_MAX : u32 = 65535 ; pub const UINT_LEAST32_MAX : u32 = 4294967295 ; pub const INT_FAST8_MIN : i32 = - 128 ; pub const INT_FAST16_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST32_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST8_MAX : u32 = 127 ; pub const INT_FAST16_MAX : u64 = 9223372036854775807 ; pub const INT_FAST32_MAX : u64 = 9223372036854775807 ; pub const UINT_FAST8_MAX : u32 = 255 ; pub const UINT_FAST16_MAX : i32 = - 1 ; pub const UINT_FAST32_MAX : i32 = - 1 ; pub const INTPTR_MIN : i64 = - 9223372036854775808 ; pub const INTPTR_MAX : u64 = 9223372036854775807 ; pub const UINTPTR_MAX : i32 = - 1 ; pub const PTRDIFF_MIN : i64 = - 9223372036854775808 ; pub const PTRDIFF_MAX : u64 = 9223372036854775807 ; pub const SIG_ATOMIC_MIN : i32 = - 2147483648 ; pub const SIG_ATOMIC_MAX : u32 = 2147483647 ; pub const SIZE_MAX : i32 = - 1 ; pub const WINT_MIN : u32 = 0 ; pub const WINT_MAX : u32 = 4294967295 ; pub const RC_VALUE_MAX_NAME_LENGTH : u32 = 15 ; pub const _TIME_H : u32 = 1 ; pub const _BITS_TIME_H : u32 = 1 ; pub const CLOCK_REALTIME : u32 = 0 ; pub const CLOCK_MONOTONIC : u32 = 1 ; pub const CLOCK_PROCESS_CPUTIME_ID : u32 = 2 ; pub const CLOCK_THREAD_CPUTIME_ID : u32 = 3 ; pub const CLOCK_MONOTONIC_RAW : u32 = 4 ; pub const CLOCK_REALTIME_COARSE : u32 = 5 ; pub const CLOCK_MONOTONIC_COARSE : u32 = 6 ; pub const CLOCK_BOOTTIME : u32 = 7 ; pub const CLOCK_REALTIME_ALARM : u32 = 8 ; pub const CLOCK_BOOTTIME_ALARM : u32 = 9 ; pub const CLOCK_TAI : u32 = 11 ; pub const TIMER_ABSTIME : u32 = 1 ; pub const __clock_t_defined : u32 = 1 ; pub const __time_t_defined : u32 = 1 ; pub const __struct_tm_defined : u32 = 1 ; pub const _STRUCT_TIMESPEC : u32 = 1 ; pub const _BITS_ENDIAN_H : u32 = 1 ; pub const __LITTLE_ENDIAN : u32 = 1234 ; pub const __BIG_ENDIAN : u32 = 4321 ; pub const __PDP_ENDIAN : u32 = 3412 ; pub const _BITS_ENDIANNESS_H : u32 = 1 ; pub const __BYTE_ORDER : u32 = 1234 ; pub const __FLOAT_WORD_ORDER : u32 = 1234 ; pub const __clockid_t_defined : u32 = 1 ; pub const __timer_t_defined : u32 = 1 ; pub const __itimerspec_defined : u32 = 1 ; pub const _BITS_TYPES_LOCALE_T_H : u32 = 1 ; pub const _BITS_TYPES___LOCALE_T_H : u32 = 1 ; pub const TIME_UTC : u32 = 1 ; pub const _STDIO_H : u32 = 1 ; pub const _____fpos_t_defined : u32 = 1 ; pub const ____mbstate_t_defined : u32 = 1 ; pub const _____fpos64_t_defined : u32 = 1 ; pub const ____FILE_defined : u32 = 1 ; pub const __FILE_defined : u32 = 1 ; 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 ; pub const BUFSIZ : u32 = 8192 ; pub const EOF : i32 = - 1 ; 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 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 ; pub const __HAVE_FLOAT128 : u32 = 1 ; pub const __HAVE_DISTINCT_FLOAT128 : u32 = 1 ; pub const __HAVE_FLOAT64X : u32 = 1 ; pub const __HAVE_FLOAT64X_LONG_DOUBLE : u32 = 1 ; pub const __HAVE_FLOAT16 : u32 = 0 ; pub const __HAVE_FLOAT32 : u32 = 1 ; pub const __HAVE_FLOAT64 : u32 = 1 ; pub const __HAVE_FLOAT32X : u32 = 1 ; pub const __HAVE_FLOAT128X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT16 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT32 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT64 : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT32X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT64X : u32 = 0 ; pub const __HAVE_DISTINCT_FLOAT128X : u32 = 0 ; pub const __HAVE_FLOATN_NOT_TYPEDEF : u32 = 0 ; pub const RC_IMAGE_TYPE_GAME : u32 = 1 ; pub const RC_IMAGE_TYPE_ACHIEVEMENT : u32 = 2 ; pub const RC_IMAGE_TYPE_ACHIEVEMENT_LOCKED : u32 = 3 ; pub const RC_IMAGE_TYPE_USER : u32 = 4 ; pub const RC_ACHIEVEMENT_CATEGORY_CORE : u32 = 3 ; pub const RC_ACHIEVEMENT_CATEGORY_UNOFFICIAL : u32 = 5 ; pub const RC_ACHIEVEMENT_TYPE_STANDARD : u32 = 0 ; pub const RC_ACHIEVEMENT_TYPE_MISSABLE : u32 = 1 ; pub const RC_ACHIEVEMENT_TYPE_PROGRESSION : u32 = 2 ; pub const RC_ACHIEVEMENT_TYPE_WIN : u32 = 3 ; pub const RC_CLIENT_LEADERBOARD_DISPLAY_SIZE : u32 = 24 ; pub const RC_OK : _bindgen_ty_1 = 0 ; pub const RC_INVALID_LUA_OPERAND : _bindgen_ty_1 = - 1 ; pub const RC_INVALID_MEMORY_OPERAND : _bindgen_ty_1 = - 2 ; pub const RC_INVALID_CONST_OPERAND : _bindgen_ty_1 = - 3 ; pub const RC_INVALID_FP_OPERAND : _bindgen_ty_1 = - 4 ; pub const RC_INVALID_CONDITION_TYPE : _bindgen_ty_1 = - 5 ; pub const RC_INVALID_OPERATOR : _bindgen_ty_1 = - 6 ; pub const RC_INVALID_REQUIRED_HITS : _bindgen_ty_1 = - 7 ; pub const RC_DUPLICATED_START : _bindgen_ty_1 = - 8 ; pub const RC_DUPLICATED_CANCEL : _bindgen_ty_1 = - 9 ; pub const RC_DUPLICATED_SUBMIT : _bindgen_ty_1 = - 10 ; pub const RC_DUPLICATED_VALUE : _bindgen_ty_1 = - 11 ; pub const RC_DUPLICATED_PROGRESS : _bindgen_ty_1 = - 12 ; pub const RC_MISSING_START : _bindgen_ty_1 = - 13 ; pub const RC_MISSING_CANCEL : _bindgen_ty_1 = - 14 ; pub const RC_MISSING_SUBMIT : _bindgen_ty_1 = - 15 ; pub const RC_MISSING_VALUE : _bindgen_ty_1 = - 16 ; pub const RC_INVALID_LBOARD_FIELD : _bindgen_ty_1 = - 17 ; pub const RC_MISSING_DISPLAY_STRING : _bindgen_ty_1 = - 18 ; pub const RC_OUT_OF_MEMORY : _bindgen_ty_1 = - 19 ; pub const RC_INVALID_VALUE_FLAG : _bindgen_ty_1 = - 20 ; pub const RC_MISSING_VALUE_MEASURED : _bindgen_ty_1 = - 21 ; pub const RC_MULTIPLE_MEASURED : _bindgen_ty_1 = - 22 ; pub const RC_INVALID_MEASURED_TARGET : _bindgen_ty_1 = - 23 ; pub const RC_INVALID_COMPARISON : _bindgen_ty_1 = - 24 ; pub const RC_INVALID_STATE : _bindgen_ty_1 = - 25 ; pub const RC_INVALID_JSON : _bindgen_ty_1 = - 26 ; pub const RC_API_FAILURE : _bindgen_ty_1 = - 27 ; pub const RC_LOGIN_REQUIRED : _bindgen_ty_1 = - 28 ; pub const RC_NO_GAME_LOADED : _bindgen_ty_1 = - 29 ; pub const RC_HARDCORE_DISABLED : _bindgen_ty_1 = - 30 ; pub const RC_ABORTED : _bindgen_ty_1 = - 31 ; pub const RC_NO_RESPONSE : _bindgen_ty_1 = - 32 ; pub const RC_ACCESS_DENIED : _bindgen_ty_1 = - 33 ; pub const RC_INVALID_CREDENTIALS : _bindgen_ty_1 = - 34 ; pub const RC_EXPIRED_TOKEN : _bindgen_ty_1 = - 35 ; pub const RC_INSUFFICIENT_BUFFER : _bindgen_ty_1 = - 36 ; pub const RC_INVALID_VARIABLE_NAME : _bindgen_ty_1 = - 37 ; pub const RC_UNKNOWN_VARIABLE_NAME : _bindgen_ty_1 = - 38 ; # [doc = "\\\n| Return values                                                               |\n\\"] pub type _bindgen_ty_1 = :: core :: ffi :: c_int ; extern "C" { pub fn rc_error_str (ret : :: core :: ffi :: c_int) -> * const :: core :: ffi :: c_char ; } pub type wchar_t = :: core :: ffi :: c_int ; # [repr (C)] # [repr (align (16))] # [derive (Debug , Copy , Clone)] pub struct max_align_t { pub __clang_max_align_nonce1 : :: core :: ffi :: c_longlong , pub __bindgen_padding_0 : u64 , pub __clang_max_align_nonce2 : u128 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of max_align_t"] [:: core :: mem :: size_of :: < max_align_t > () - 32usize] ; ["Alignment of max_align_t"] [:: core :: mem :: align_of :: < max_align_t > () - 16usize] ; ["Offset of field: max_align_t::__clang_max_align_nonce1"] [:: core :: mem :: offset_of ! (max_align_t , __clang_max_align_nonce1) - 0usize] ; ["Offset of field: max_align_t::__clang_max_align_nonce2"] [:: core :: mem :: offset_of ! (max_align_t , __clang_max_align_nonce2) - 16usize] ; } ; pub type __u_char = :: core :: ffi :: c_uchar ; pub type __u_short = :: core :: ffi :: c_ushort ; pub type __u_int = :: core :: ffi :: c_uint ; pub type __u_long = :: core :: ffi :: c_ulong ; pub type __int8_t = :: core :: ffi :: c_schar ; pub type __uint8_t = :: core :: ffi :: c_uchar ; pub type __int16_t = :: core :: ffi :: c_short ; pub type __uint16_t = :: core :: ffi :: c_ushort ; pub type __int32_t = :: core :: ffi :: c_int ; pub type __uint32_t = :: core :: ffi :: c_uint ; pub type __int64_t = :: core :: ffi :: c_long ; pub type __uint64_t = :: core :: ffi :: c_ulong ; pub type __int_least8_t = __int8_t ; pub type __uint_least8_t = __uint8_t ; pub type __int_least16_t = __int16_t ; pub type __uint_least16_t = __uint16_t ; pub type __int_least32_t = __int32_t ; pub type __uint_least32_t = __uint32_t ; pub type __int_least64_t = __int64_t ; pub type __uint_least64_t = __uint64_t ; pub type __quad_t = :: core :: ffi :: c_long ; pub type __u_quad_t = :: core :: ffi :: c_ulong ; pub type __intmax_t = :: core :: ffi :: c_long ; pub type __uintmax_t = :: core :: ffi :: c_ulong ; pub type __dev_t = :: core :: ffi :: c_ulong ; pub type __uid_t = :: core :: ffi :: c_uint ; pub type __gid_t = :: core :: ffi :: c_uint ; pub type __ino_t = :: core :: ffi :: c_ulong ; pub type __ino64_t = :: core :: ffi :: c_ulong ; pub type __mode_t = :: core :: ffi :: c_uint ; pub type __nlink_t = :: core :: ffi :: c_ulong ; pub type __off_t = :: core :: ffi :: c_long ; pub type __off64_t = :: core :: ffi :: c_long ; pub type __pid_t = :: core :: ffi :: c_int ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __fsid_t { pub __val : [:: core :: ffi :: c_int ; 2usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __fsid_t"] [:: core :: mem :: size_of :: < __fsid_t > () - 8usize] ; ["Alignment of __fsid_t"] [:: core :: mem :: align_of :: < __fsid_t > () - 4usize] ; ["Offset of field: __fsid_t::__val"] [:: core :: mem :: offset_of ! (__fsid_t , __val) - 0usize] ; } ; pub type __clock_t = :: core :: ffi :: c_long ; pub type __rlim_t = :: core :: ffi :: c_ulong ; pub type __rlim64_t = :: core :: ffi :: c_ulong ; pub type __id_t = :: core :: ffi :: c_uint ; pub type __time_t = :: core :: ffi :: c_long ; pub type __useconds_t = :: core :: ffi :: c_uint ; pub type __suseconds_t = :: core :: ffi :: c_long ; pub type __suseconds64_t = :: core :: ffi :: c_long ; pub type __daddr_t = :: core :: ffi :: c_int ; pub type __key_t = :: core :: ffi :: c_int ; pub type __clockid_t = :: core :: ffi :: c_int ; pub type __timer_t = * mut :: core :: ffi :: c_void ; pub type __blksize_t = :: core :: ffi :: c_long ; pub type __blkcnt_t = :: core :: ffi :: c_long ; pub type __blkcnt64_t = :: core :: ffi :: c_long ; pub type __fsblkcnt_t = :: core :: ffi :: c_ulong ; pub type __fsblkcnt64_t = :: core :: ffi :: c_ulong ; pub type __fsfilcnt_t = :: core :: ffi :: c_ulong ; pub type __fsfilcnt64_t = :: core :: ffi :: c_ulong ; pub type __fsword_t = :: core :: ffi :: c_long ; pub type __ssize_t = :: core :: ffi :: c_long ; pub type __syscall_slong_t = :: core :: ffi :: c_long ; pub type __syscall_ulong_t = :: core :: ffi :: c_ulong ; pub type __loff_t = __off64_t ; pub type __caddr_t = * mut :: core :: ffi :: c_char ; pub type __intptr_t = :: core :: ffi :: c_long ; pub type __socklen_t = :: core :: ffi :: c_uint ; pub type __sig_atomic_t = :: core :: ffi :: c_int ; pub type int_least8_t = __int_least8_t ; pub type int_least16_t = __int_least16_t ; pub type int_least32_t = __int_least32_t ; pub type int_least64_t = __int_least64_t ; pub type uint_least8_t = __uint_least8_t ; pub type uint_least16_t = __uint_least16_t ; pub type uint_least32_t = __uint_least32_t ; pub type uint_least64_t = __uint_least64_t ; pub type int_fast8_t = :: core :: ffi :: c_schar ; pub type int_fast16_t = :: core :: ffi :: c_long ; pub type int_fast32_t = :: core :: ffi :: c_long ; pub type int_fast64_t = :: core :: ffi :: c_long ; pub type uint_fast8_t = :: core :: ffi :: c_uchar ; pub type uint_fast16_t = :: core :: ffi :: c_ulong ; pub type uint_fast32_t = :: core :: ffi :: c_ulong ; pub type uint_fast64_t = :: core :: ffi :: c_ulong ; pub type intmax_t = __intmax_t ; pub type uintmax_t = __uintmax_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct lua_State { _unused : [u8 ; 0] , } # [doc = " Callback used to read num_bytes bytes from memory starting at address. If\n num_bytes is greater than 1, the value is read in little-endian from\n memory."] pub type rc_peek_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , num_bytes : u32 , ud : * mut :: core :: ffi :: c_void) -> u32 > ; pub const RC_MEMSIZE_8_BITS : _bindgen_ty_2 = 0 ; pub const RC_MEMSIZE_16_BITS : _bindgen_ty_2 = 1 ; pub const RC_MEMSIZE_24_BITS : _bindgen_ty_2 = 2 ; pub const RC_MEMSIZE_32_BITS : _bindgen_ty_2 = 3 ; pub const RC_MEMSIZE_LOW : _bindgen_ty_2 = 4 ; pub const RC_MEMSIZE_HIGH : _bindgen_ty_2 = 5 ; pub const RC_MEMSIZE_BIT_0 : _bindgen_ty_2 = 6 ; pub const RC_MEMSIZE_BIT_1 : _bindgen_ty_2 = 7 ; pub const RC_MEMSIZE_BIT_2 : _bindgen_ty_2 = 8 ; pub const RC_MEMSIZE_BIT_3 : _bindgen_ty_2 = 9 ; pub const RC_MEMSIZE_BIT_4 : _bindgen_ty_2 = 10 ; pub const RC_MEMSIZE_BIT_5 : _bindgen_ty_2 = 11 ; pub const RC_MEMSIZE_BIT_6 : _bindgen_ty_2 = 12 ; pub const RC_MEMSIZE_BIT_7 : _bindgen_ty_2 = 13 ; pub const RC_MEMSIZE_BITCOUNT : _bindgen_ty_2 = 14 ; pub const RC_MEMSIZE_16_BITS_BE : _bindgen_ty_2 = 15 ; pub const RC_MEMSIZE_24_BITS_BE : _bindgen_ty_2 = 16 ; pub const RC_MEMSIZE_32_BITS_BE : _bindgen_ty_2 = 17 ; pub const RC_MEMSIZE_FLOAT : _bindgen_ty_2 = 18 ; pub const RC_MEMSIZE_MBF32 : _bindgen_ty_2 = 19 ; pub const RC_MEMSIZE_MBF32_LE : _bindgen_ty_2 = 20 ; pub const RC_MEMSIZE_FLOAT_BE : _bindgen_ty_2 = 21 ; pub const RC_MEMSIZE_DOUBLE32 : _bindgen_ty_2 = 22 ; pub const RC_MEMSIZE_DOUBLE32_BE : _bindgen_ty_2 = 23 ; pub const RC_MEMSIZE_VARIABLE : _bindgen_ty_2 = 24 ; # [doc = "\\\n| Memory References                                                           |\n\\"] pub type _bindgen_ty_2 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memref_value_t { pub value : u32 , pub prior : u32 , pub size : u8 , pub changed : u8 , pub type_ : u8 , pub is_indirect : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memref_value_t"] [:: core :: mem :: size_of :: < rc_memref_value_t > () - 12usize] ; ["Alignment of rc_memref_value_t"] [:: core :: mem :: align_of :: < rc_memref_value_t > () - 4usize] ; ["Offset of field: rc_memref_value_t::value"] [:: core :: mem :: offset_of ! (rc_memref_value_t , value) - 0usize] ; ["Offset of field: rc_memref_value_t::prior"] [:: core :: mem :: offset_of ! (rc_memref_value_t , prior) - 4usize] ; ["Offset of field: rc_memref_value_t::size"] [:: core :: mem :: offset_of ! (rc_memref_value_t , size) - 8usize] ; ["Offset of field: rc_memref_value_t::changed"] [:: core :: mem :: offset_of ! (rc_memref_value_t , changed) - 9usize] ; ["Offset of field: rc_memref_value_t::type_"] [:: core :: mem :: offset_of ! (rc_memref_value_t , type_) - 10usize] ; ["Offset of field: rc_memref_value_t::is_indirect"] [:: core :: mem :: offset_of ! (rc_memref_value_t , is_indirect) - 11usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memref_t { pub value : rc_memref_value_t , pub address : u32 , pub next : * mut rc_memref_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memref_t"] [:: core :: mem :: size_of :: < rc_memref_t > () - 24usize] ; ["Alignment of rc_memref_t"] [:: core :: mem :: align_of :: < rc_memref_t > () - 8usize] ; ["Offset of field: rc_memref_t::value"] [:: core :: mem :: offset_of ! (rc_memref_t , value) - 0usize] ; ["Offset of field: rc_memref_t::address"] [:: core :: mem :: offset_of ! (rc_memref_t , address) - 12usize] ; ["Offset of field: rc_memref_t::next"] [:: core :: mem :: offset_of ! (rc_memref_t , next) - 16usize] ; } ; pub const RC_OPERAND_ADDRESS : _bindgen_ty_3 = 0 ; pub const RC_OPERAND_DELTA : _bindgen_ty_3 = 1 ; pub const RC_OPERAND_CONST : _bindgen_ty_3 = 2 ; pub const RC_OPERAND_FP : _bindgen_ty_3 = 3 ; pub const RC_OPERAND_LUA : _bindgen_ty_3 = 4 ; pub const RC_OPERAND_PRIOR : _bindgen_ty_3 = 5 ; pub const RC_OPERAND_BCD : _bindgen_ty_3 = 6 ; pub const RC_OPERAND_INVERTED : _bindgen_ty_3 = 7 ; pub const RC_OPERAND_RECALL : _bindgen_ty_3 = 8 ; # [doc = "\\\n| Operands                                                                    |\n\\"] pub type _bindgen_ty_3 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Copy , Clone)] pub struct rc_operand_t { pub value : rc_operand_t__bindgen_ty_1 , pub type_ : u8 , pub size : u8 , } # [repr (C)] # [derive (Copy , Clone)] pub union rc_operand_t__bindgen_ty_1 { pub memref : * mut rc_memref_t , pub num : u32 , pub dbl : f64 , pub luafunc : :: core :: ffi :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_operand_t__bindgen_ty_1"] [:: core :: mem :: size_of :: < rc_operand_t__bindgen_ty_1 > () - 8usize] ; ["Alignment of rc_operand_t__bindgen_ty_1"] [:: core :: mem :: align_of :: < rc_operand_t__bindgen_ty_1 > () - 8usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::memref"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , memref) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::num"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , num) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::dbl"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , dbl) - 0usize] ; ["Offset of field: rc_operand_t__bindgen_ty_1::luafunc"] [:: core :: mem :: offset_of ! (rc_operand_t__bindgen_ty_1 , luafunc) - 0usize] ; } ; impl :: core :: fmt :: Debug for rc_operand_t__bindgen_ty_1 { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_operand_t__bindgen_ty_1 {{ union }}") } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_operand_t"] [:: core :: mem :: size_of :: < rc_operand_t > () - 16usize] ; ["Alignment of rc_operand_t"] [:: core :: mem :: align_of :: < rc_operand_t > () - 8usize] ; ["Offset of field: rc_operand_t::value"] [:: core :: mem :: offset_of ! (rc_operand_t , value) - 0usize] ; ["Offset of field: rc_operand_t::type_"] [:: core :: mem :: offset_of ! (rc_operand_t , type_) - 8usize] ; ["Offset of field: rc_operand_t::size"] [:: core :: mem :: offset_of ! (rc_operand_t , size) - 9usize] ; } ; impl :: core :: fmt :: Debug for rc_operand_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_operand_t {{ value: {:?}, type: {:?}, size: {:?} }}" , self . value , self . type_ , self . size) } } extern "C" { pub fn rc_operand_is_memref (operand : * const rc_operand_t) -> :: core :: ffi :: c_int ; } pub const RC_CONDITION_STANDARD : _bindgen_ty_4 = 0 ; pub const RC_CONDITION_PAUSE_IF : _bindgen_ty_4 = 1 ; pub const RC_CONDITION_RESET_IF : _bindgen_ty_4 = 2 ; pub const RC_CONDITION_MEASURED_IF : _bindgen_ty_4 = 3 ; pub const RC_CONDITION_TRIGGER : _bindgen_ty_4 = 4 ; pub const RC_CONDITION_MEASURED : _bindgen_ty_4 = 5 ; pub const RC_CONDITION_ADD_SOURCE : _bindgen_ty_4 = 6 ; pub const RC_CONDITION_SUB_SOURCE : _bindgen_ty_4 = 7 ; pub const RC_CONDITION_ADD_ADDRESS : _bindgen_ty_4 = 8 ; pub const RC_CONDITION_REMEMBER : _bindgen_ty_4 = 9 ; pub const RC_CONDITION_ADD_HITS : _bindgen_ty_4 = 10 ; pub const RC_CONDITION_SUB_HITS : _bindgen_ty_4 = 11 ; pub const RC_CONDITION_RESET_NEXT_IF : _bindgen_ty_4 = 12 ; pub const RC_CONDITION_AND_NEXT : _bindgen_ty_4 = 13 ; pub const RC_CONDITION_OR_NEXT : _bindgen_ty_4 = 14 ; # [doc = "\\\n| Conditions                                                                  |\n\\"] pub type _bindgen_ty_4 = :: core :: ffi :: c_uint ; pub const RC_OPERATOR_EQ : _bindgen_ty_5 = 0 ; pub const RC_OPERATOR_LT : _bindgen_ty_5 = 1 ; pub const RC_OPERATOR_LE : _bindgen_ty_5 = 2 ; pub const RC_OPERATOR_GT : _bindgen_ty_5 = 3 ; pub const RC_OPERATOR_GE : _bindgen_ty_5 = 4 ; pub const RC_OPERATOR_NE : _bindgen_ty_5 = 5 ; pub const RC_OPERATOR_NONE : _bindgen_ty_5 = 6 ; pub const RC_OPERATOR_MULT : _bindgen_ty_5 = 7 ; pub const RC_OPERATOR_DIV : _bindgen_ty_5 = 8 ; pub const RC_OPERATOR_AND : _bindgen_ty_5 = 9 ; pub const RC_OPERATOR_XOR : _bindgen_ty_5 = 10 ; pub const RC_OPERATOR_MOD : _bindgen_ty_5 = 11 ; pub const RC_OPERATOR_ADD : _bindgen_ty_5 = 12 ; pub const RC_OPERATOR_SUB : _bindgen_ty_5 = 13 ; pub type _bindgen_ty_5 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Copy , Clone)] pub struct rc_condition_t { pub operand1 : rc_operand_t , pub operand2 : rc_operand_t , pub required_hits : u32 , pub current_hits : u32 , pub next : * mut rc_condition_t , pub type_ : u8 , pub oper : u8 , pub pause : u8 , pub is_true : u8 , pub optimized_comparator : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_condition_t"] [:: core :: mem :: size_of :: < rc_condition_t > () - 56usize] ; ["Alignment of rc_condition_t"] [:: core :: mem :: align_of :: < rc_condition_t > () - 8usize] ; ["Offset of field: rc_condition_t::operand1"] [:: core :: mem :: offset_of ! (rc_condition_t , operand1) - 0usize] ; ["Offset of field: rc_condition_t::operand2"] [:: core :: mem :: offset_of ! (rc_condition_t , operand2) - 16usize] ; ["Offset of field: rc_condition_t::required_hits"] [:: core :: mem :: offset_of ! (rc_condition_t , required_hits) - 32usize] ; ["Offset of field: rc_condition_t::current_hits"] [:: core :: mem :: offset_of ! (rc_condition_t , current_hits) - 36usize] ; ["Offset of field: rc_condition_t::next"] [:: core :: mem :: offset_of ! (rc_condition_t , next) - 40usize] ; ["Offset of field: rc_condition_t::type_"] [:: core :: mem :: offset_of ! (rc_condition_t , type_) - 48usize] ; ["Offset of field: rc_condition_t::oper"] [:: core :: mem :: offset_of ! (rc_condition_t , oper) - 49usize] ; ["Offset of field: rc_condition_t::pause"] [:: core :: mem :: offset_of ! (rc_condition_t , pause) - 50usize] ; ["Offset of field: rc_condition_t::is_true"] [:: core :: mem :: offset_of ! (rc_condition_t , is_true) - 51usize] ; ["Offset of field: rc_condition_t::optimized_comparator"] [:: core :: mem :: offset_of ! (rc_condition_t , optimized_comparator) - 52usize] ; } ; impl :: core :: fmt :: Debug for rc_condition_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "rc_condition_t {{ operand1: {:?}, operand2: {:?}, required_hits: {:?}, current_hits: {:?}, next: {:?}, type: {:?}, oper: {:?}, pause: {:?}, is_true: {:?}, optimized_comparator: {:?} }}" , self . operand1 , self . operand2 , self . required_hits , self . current_hits , self . next , self . type_ , self . oper , self . pause , self . is_true , self . optimized_comparator) } } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_condset_t { pub next : * mut rc_condset_t , pub conditions : * mut rc_condition_t , pub has_pause : u8 , pub is_paused : u8 , pub has_indirect_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_condset_t"] [:: core :: mem :: size_of :: < rc_condset_t > () - 24usize] ; ["Alignment of rc_condset_t"] [:: core :: mem :: align_of :: < rc_condset_t > () - 8usize] ; ["Offset of field: rc_condset_t::next"] [:: core :: mem :: offset_of ! (rc_condset_t , next) - 0usize] ; ["Offset of field: rc_condset_t::conditions"] [:: core :: mem :: offset_of ! (rc_condset_t , conditions) - 8usize] ; ["Offset of field: rc_condset_t::has_pause"] [:: core :: mem :: offset_of ! (rc_condset_t , has_pause) - 16usize] ; ["Offset of field: rc_condset_t::is_paused"] [:: core :: mem :: offset_of ! (rc_condset_t , is_paused) - 17usize] ; ["Offset of field: rc_condset_t::has_indirect_memrefs"] [:: core :: mem :: offset_of ! (rc_condset_t , has_indirect_memrefs) - 18usize] ; } ; pub const RC_TRIGGER_STATE_INACTIVE : _bindgen_ty_6 = 0 ; pub const RC_TRIGGER_STATE_WAITING : _bindgen_ty_6 = 1 ; pub const RC_TRIGGER_STATE_ACTIVE : _bindgen_ty_6 = 2 ; pub const RC_TRIGGER_STATE_PAUSED : _bindgen_ty_6 = 3 ; pub const RC_TRIGGER_STATE_RESET : _bindgen_ty_6 = 4 ; pub const RC_TRIGGER_STATE_TRIGGERED : _bindgen_ty_6 = 5 ; pub const RC_TRIGGER_STATE_PRIMED : _bindgen_ty_6 = 6 ; pub const RC_TRIGGER_STATE_DISABLED : _bindgen_ty_6 = 7 ; # [doc = "\\\n| Trigger                                                                     |\n\\"] pub type _bindgen_ty_6 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_trigger_t { pub requirement : * mut rc_condset_t , pub alternative : * mut rc_condset_t , pub memrefs : * mut rc_memref_t , pub measured_value : u32 , pub measured_target : u32 , pub state : u8 , pub has_hits : u8 , pub has_required_hits : u8 , pub measured_as_percent : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_trigger_t"] [:: core :: mem :: size_of :: < rc_trigger_t > () - 40usize] ; ["Alignment of rc_trigger_t"] [:: core :: mem :: align_of :: < rc_trigger_t > () - 8usize] ; ["Offset of field: rc_trigger_t::requirement"] [:: core :: mem :: offset_of ! (rc_trigger_t , requirement) - 0usize] ; ["Offset of field: rc_trigger_t::alternative"] [:: core :: mem :: offset_of ! (rc_trigger_t , alternative) - 8usize] ; ["Offset of field: rc_trigger_t::memrefs"] [:: core :: mem :: offset_of ! (rc_trigger_t , memrefs) - 16usize] ; ["Offset of field: rc_trigger_t::measured_value"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_value) - 24usize] ; ["Offset of field: rc_trigger_t::measured_target"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_target) - 28usize] ; ["Offset of field: rc_trigger_t::state"] [:: core :: mem :: offset_of ! (rc_trigger_t , state) - 32usize] ; ["Offset of field: rc_trigger_t::has_hits"] [:: core :: mem :: offset_of ! (rc_trigger_t , has_hits) - 33usize] ; ["Offset of field: rc_trigger_t::has_required_hits"] [:: core :: mem :: offset_of ! (rc_trigger_t , has_required_hits) - 34usize] ; ["Offset of field: rc_trigger_t::measured_as_percent"] [:: core :: mem :: offset_of ! (rc_trigger_t , measured_as_percent) - 35usize] ; } ; extern "C" { pub fn rc_trigger_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_trigger (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_trigger_t ; } extern "C" { pub fn rc_evaluate_trigger (trigger : * mut rc_trigger_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_test_trigger (trigger : * mut rc_trigger_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_trigger (self_ : * mut rc_trigger_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_value_t { pub value : rc_memref_value_t , pub conditions : * mut rc_condset_t , pub memrefs : * mut rc_memref_t , pub name : * const :: core :: ffi :: c_char , pub next : * mut rc_value_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_value_t"] [:: core :: mem :: size_of :: < rc_value_t > () - 48usize] ; ["Alignment of rc_value_t"] [:: core :: mem :: align_of :: < rc_value_t > () - 8usize] ; ["Offset of field: rc_value_t::value"] [:: core :: mem :: offset_of ! (rc_value_t , value) - 0usize] ; ["Offset of field: rc_value_t::conditions"] [:: core :: mem :: offset_of ! (rc_value_t , conditions) - 16usize] ; ["Offset of field: rc_value_t::memrefs"] [:: core :: mem :: offset_of ! (rc_value_t , memrefs) - 24usize] ; ["Offset of field: rc_value_t::name"] [:: core :: mem :: offset_of ! (rc_value_t , name) - 32usize] ; ["Offset of field: rc_value_t::next"] [:: core :: mem :: offset_of ! (rc_value_t , next) - 40usize] ; } ; extern "C" { pub fn rc_value_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_value (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_value_t ; } extern "C" { pub fn rc_evaluate_value (value : * mut rc_value_t , peek : rc_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> i32 ; } pub const RC_LBOARD_STATE_INACTIVE : _bindgen_ty_7 = 0 ; pub const RC_LBOARD_STATE_WAITING : _bindgen_ty_7 = 1 ; pub const RC_LBOARD_STATE_ACTIVE : _bindgen_ty_7 = 2 ; pub const RC_LBOARD_STATE_STARTED : _bindgen_ty_7 = 3 ; pub const RC_LBOARD_STATE_CANCELED : _bindgen_ty_7 = 4 ; pub const RC_LBOARD_STATE_TRIGGERED : _bindgen_ty_7 = 5 ; pub const RC_LBOARD_STATE_DISABLED : _bindgen_ty_7 = 6 ; # [doc = "\\\n| Leaderboards                                                                |\n\\"] pub type _bindgen_ty_7 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_lboard_t { pub start : rc_trigger_t , pub submit : rc_trigger_t , pub cancel : rc_trigger_t , pub value : rc_value_t , pub progress : * mut rc_value_t , pub memrefs : * mut rc_memref_t , pub state : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_lboard_t"] [:: core :: mem :: size_of :: < rc_lboard_t > () - 192usize] ; ["Alignment of rc_lboard_t"] [:: core :: mem :: align_of :: < rc_lboard_t > () - 8usize] ; ["Offset of field: rc_lboard_t::start"] [:: core :: mem :: offset_of ! (rc_lboard_t , start) - 0usize] ; ["Offset of field: rc_lboard_t::submit"] [:: core :: mem :: offset_of ! (rc_lboard_t , submit) - 40usize] ; ["Offset of field: rc_lboard_t::cancel"] [:: core :: mem :: offset_of ! (rc_lboard_t , cancel) - 80usize] ; ["Offset of field: rc_lboard_t::value"] [:: core :: mem :: offset_of ! (rc_lboard_t , value) - 120usize] ; ["Offset of field: rc_lboard_t::progress"] [:: core :: mem :: offset_of ! (rc_lboard_t , progress) - 168usize] ; ["Offset of field: rc_lboard_t::memrefs"] [:: core :: mem :: offset_of ! (rc_lboard_t , memrefs) - 176usize] ; ["Offset of field: rc_lboard_t::state"] [:: core :: mem :: offset_of ! (rc_lboard_t , state) - 184usize] ; } ; extern "C" { pub fn rc_lboard_size (memaddr : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_lboard (buffer : * mut :: core :: ffi :: c_void , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_lboard_t ; } extern "C" { pub fn rc_evaluate_lboard (lboard : * mut rc_lboard_t , value : * mut i32 , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_lboard (lboard : * mut rc_lboard_t) ; } pub const RC_FORMAT_FRAMES : _bindgen_ty_8 = 0 ; pub const RC_FORMAT_SECONDS : _bindgen_ty_8 = 1 ; pub const RC_FORMAT_CENTISECS : _bindgen_ty_8 = 2 ; pub const RC_FORMAT_SCORE : _bindgen_ty_8 = 3 ; pub const RC_FORMAT_VALUE : _bindgen_ty_8 = 4 ; pub const RC_FORMAT_MINUTES : _bindgen_ty_8 = 5 ; pub const RC_FORMAT_SECONDS_AS_MINUTES : _bindgen_ty_8 = 6 ; pub const RC_FORMAT_FLOAT1 : _bindgen_ty_8 = 7 ; pub const RC_FORMAT_FLOAT2 : _bindgen_ty_8 = 8 ; pub const RC_FORMAT_FLOAT3 : _bindgen_ty_8 = 9 ; pub const RC_FORMAT_FLOAT4 : _bindgen_ty_8 = 10 ; pub const RC_FORMAT_FLOAT5 : _bindgen_ty_8 = 11 ; pub const RC_FORMAT_FLOAT6 : _bindgen_ty_8 = 12 ; pub const RC_FORMAT_FIXED1 : _bindgen_ty_8 = 13 ; pub const RC_FORMAT_FIXED2 : _bindgen_ty_8 = 14 ; pub const RC_FORMAT_FIXED3 : _bindgen_ty_8 = 15 ; pub const RC_FORMAT_TENS : _bindgen_ty_8 = 16 ; pub const RC_FORMAT_HUNDREDS : _bindgen_ty_8 = 17 ; pub const RC_FORMAT_THOUSANDS : _bindgen_ty_8 = 18 ; pub const RC_FORMAT_UNSIGNED_VALUE : _bindgen_ty_8 = 19 ; # [doc = "\\\n| Value formatting                                                            |\n\\"] pub type _bindgen_ty_8 = :: core :: ffi :: c_uint ; extern "C" { pub fn rc_parse_format (format_str : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_format_value (buffer : * mut :: core :: ffi :: c_char , size : :: core :: ffi :: c_int , value : i32 , format : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_lookup_item_t { pub first : u32 , pub last : u32 , pub left : * mut rc_richpresence_lookup_item_t , pub right : * mut rc_richpresence_lookup_item_t , pub label : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_lookup_item_t"] [:: core :: mem :: size_of :: < rc_richpresence_lookup_item_t > () - 32usize] ; ["Alignment of rc_richpresence_lookup_item_t"] [:: core :: mem :: align_of :: < rc_richpresence_lookup_item_t > () - 8usize] ; ["Offset of field: rc_richpresence_lookup_item_t::first"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , first) - 0usize] ; ["Offset of field: rc_richpresence_lookup_item_t::last"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , last) - 4usize] ; ["Offset of field: rc_richpresence_lookup_item_t::left"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , left) - 8usize] ; ["Offset of field: rc_richpresence_lookup_item_t::right"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , right) - 16usize] ; ["Offset of field: rc_richpresence_lookup_item_t::label"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_item_t , label) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_lookup_t { pub root : * mut rc_richpresence_lookup_item_t , pub next : * mut rc_richpresence_lookup_t , pub name : * const :: core :: ffi :: c_char , pub default_label : * const :: core :: ffi :: c_char , pub format : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_lookup_t"] [:: core :: mem :: size_of :: < rc_richpresence_lookup_t > () - 40usize] ; ["Alignment of rc_richpresence_lookup_t"] [:: core :: mem :: align_of :: < rc_richpresence_lookup_t > () - 8usize] ; ["Offset of field: rc_richpresence_lookup_t::root"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , root) - 0usize] ; ["Offset of field: rc_richpresence_lookup_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , next) - 8usize] ; ["Offset of field: rc_richpresence_lookup_t::name"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , name) - 16usize] ; ["Offset of field: rc_richpresence_lookup_t::default_label"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , default_label) - 24usize] ; ["Offset of field: rc_richpresence_lookup_t::format"] [:: core :: mem :: offset_of ! (rc_richpresence_lookup_t , format) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_display_part_t { pub next : * mut rc_richpresence_display_part_t , pub text : * const :: core :: ffi :: c_char , pub lookup : * mut rc_richpresence_lookup_t , pub value : * mut rc_memref_value_t , pub display_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_display_part_t"] [:: core :: mem :: size_of :: < rc_richpresence_display_part_t > () - 40usize] ; ["Alignment of rc_richpresence_display_part_t"] [:: core :: mem :: align_of :: < rc_richpresence_display_part_t > () - 8usize] ; ["Offset of field: rc_richpresence_display_part_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , next) - 0usize] ; ["Offset of field: rc_richpresence_display_part_t::text"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , text) - 8usize] ; ["Offset of field: rc_richpresence_display_part_t::lookup"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , lookup) - 16usize] ; ["Offset of field: rc_richpresence_display_part_t::value"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , value) - 24usize] ; ["Offset of field: rc_richpresence_display_part_t::display_type"] [:: core :: mem :: offset_of ! (rc_richpresence_display_part_t , display_type) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_display_t { pub trigger : rc_trigger_t , pub next : * mut rc_richpresence_display_t , pub display : * mut rc_richpresence_display_part_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_display_t"] [:: core :: mem :: size_of :: < rc_richpresence_display_t > () - 56usize] ; ["Alignment of rc_richpresence_display_t"] [:: core :: mem :: align_of :: < rc_richpresence_display_t > () - 8usize] ; ["Offset of field: rc_richpresence_display_t::trigger"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , trigger) - 0usize] ; ["Offset of field: rc_richpresence_display_t::next"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , next) - 40usize] ; ["Offset of field: rc_richpresence_display_t::display"] [:: core :: mem :: offset_of ! (rc_richpresence_display_t , display) - 48usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_richpresence_t { pub first_display : * mut rc_richpresence_display_t , pub first_lookup : * mut rc_richpresence_lookup_t , pub memrefs : * mut rc_memref_t , pub variables : * mut rc_value_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_richpresence_t"] [:: core :: mem :: size_of :: < rc_richpresence_t > () - 32usize] ; ["Alignment of rc_richpresence_t"] [:: core :: mem :: align_of :: < rc_richpresence_t > () - 8usize] ; ["Offset of field: rc_richpresence_t::first_display"] [:: core :: mem :: offset_of ! (rc_richpresence_t , first_display) - 0usize] ; ["Offset of field: rc_richpresence_t::first_lookup"] [:: core :: mem :: offset_of ! (rc_richpresence_t , first_lookup) - 8usize] ; ["Offset of field: rc_richpresence_t::memrefs"] [:: core :: mem :: offset_of ! (rc_richpresence_t , memrefs) - 16usize] ; ["Offset of field: rc_richpresence_t::variables"] [:: core :: mem :: offset_of ! (rc_richpresence_t , variables) - 24usize] ; } ; extern "C" { pub fn rc_richpresence_size (script : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_richpresence_size_lines (script : * const :: core :: ffi :: c_char , lines_read : * mut :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_parse_richpresence (buffer : * mut :: core :: ffi :: c_void , script : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_ndx : :: core :: ffi :: c_int) -> * mut rc_richpresence_t ; } extern "C" { pub fn rc_evaluate_richpresence (richpresence : * mut rc_richpresence_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_update_richpresence (richpresence : * mut rc_richpresence_t , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) ; } extern "C" { pub fn rc_get_richpresence_display_string (richpresence : * mut rc_richpresence_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_reset_richpresence (self_ : * mut rc_richpresence_t) ; } # [doc = " A block of memory for variable length data (like strings and arrays)."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_buffer_chunk_t { pub write : * mut u8 , pub end : * mut u8 , pub start : * mut u8 , pub next : * mut rc_buffer_chunk_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_buffer_chunk_t"] [:: core :: mem :: size_of :: < rc_buffer_chunk_t > () - 32usize] ; ["Alignment of rc_buffer_chunk_t"] [:: core :: mem :: align_of :: < rc_buffer_chunk_t > () - 8usize] ; ["Offset of field: rc_buffer_chunk_t::write"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , write) - 0usize] ; ["Offset of field: rc_buffer_chunk_t::end"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , end) - 8usize] ; ["Offset of field: rc_buffer_chunk_t::start"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , start) - 16usize] ; ["Offset of field: rc_buffer_chunk_t::next"] [:: core :: mem :: offset_of ! (rc_buffer_chunk_t , next) - 24usize] ; } ; # [doc = " A preallocated block of memory for variable length data (like strings and arrays)."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_buffer_t { pub chunk : rc_buffer_chunk_t , pub data : [u8 ; 256usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_buffer_t"] [:: core :: mem :: size_of :: < rc_buffer_t > () - 288usize] ; ["Alignment of rc_buffer_t"] [:: core :: mem :: align_of :: < rc_buffer_t > () - 8usize] ; ["Offset of field: rc_buffer_t::chunk"] [:: core :: mem :: offset_of ! (rc_buffer_t , chunk) - 0usize] ; ["Offset of field: rc_buffer_t::data"] [:: core :: mem :: offset_of ! (rc_buffer_t , data) - 32usize] ; } ; extern "C" { pub fn rc_buffer_init (buffer : * mut rc_buffer_t) ; } extern "C" { pub fn rc_buffer_destroy (buffer : * mut rc_buffer_t) ; } extern "C" { pub fn rc_buffer_reserve (buffer : * mut rc_buffer_t , amount : usize) -> * mut u8 ; } extern "C" { pub fn rc_buffer_consume (buffer : * mut rc_buffer_t , start : * const u8 , end : * mut u8) ; } extern "C" { pub fn rc_buffer_alloc (buffer : * mut rc_buffer_t , amount : usize) -> * mut :: core :: ffi :: c_void ; } extern "C" { pub fn rc_buffer_strcpy (buffer : * mut rc_buffer_t , src : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn rc_buffer_strncpy (buffer : * mut rc_buffer_t , src : * const :: core :: ffi :: c_char , len : usize) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn rc_djb2 (input : * const :: core :: ffi :: c_char) -> u32 ; } extern "C" { pub fn rc_format_md5 (checksum : * mut :: core :: ffi :: c_char , digest : * const u8) ; } # [doc = " A constructed request to send to the retroachievements server."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_request_t { pub url : * const :: core :: ffi :: c_char , pub post_data : * const :: core :: ffi :: c_char , pub content_type : * const :: core :: ffi :: c_char , pub buffer : rc_buffer_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_request_t"] [:: core :: mem :: size_of :: < rc_api_request_t > () - 312usize] ; ["Alignment of rc_api_request_t"] [:: core :: mem :: align_of :: < rc_api_request_t > () - 8usize] ; ["Offset of field: rc_api_request_t::url"] [:: core :: mem :: offset_of ! (rc_api_request_t , url) - 0usize] ; ["Offset of field: rc_api_request_t::post_data"] [:: core :: mem :: offset_of ! (rc_api_request_t , post_data) - 8usize] ; ["Offset of field: rc_api_request_t::content_type"] [:: core :: mem :: offset_of ! (rc_api_request_t , content_type) - 16usize] ; ["Offset of field: rc_api_request_t::buffer"] [:: core :: mem :: offset_of ! (rc_api_request_t , buffer) - 24usize] ; } ; # [doc = " Common attributes for all server responses."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_response_t { pub succeeded : :: core :: ffi :: c_int , pub error_message : * const :: core :: ffi :: c_char , pub error_code : * const :: core :: ffi :: c_char , pub buffer : rc_buffer_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_response_t"] [:: core :: mem :: size_of :: < rc_api_response_t > () - 312usize] ; ["Alignment of rc_api_response_t"] [:: core :: mem :: align_of :: < rc_api_response_t > () - 8usize] ; ["Offset of field: rc_api_response_t::succeeded"] [:: core :: mem :: offset_of ! (rc_api_response_t , succeeded) - 0usize] ; ["Offset of field: rc_api_response_t::error_message"] [:: core :: mem :: offset_of ! (rc_api_response_t , error_message) - 8usize] ; ["Offset of field: rc_api_response_t::error_code"] [:: core :: mem :: offset_of ! (rc_api_response_t , error_code) - 16usize] ; ["Offset of field: rc_api_response_t::buffer"] [:: core :: mem :: offset_of ! (rc_api_response_t , buffer) - 24usize] ; } ; extern "C" { pub fn rc_api_destroy_request (request : * mut rc_api_request_t) ; } extern "C" { pub fn rc_api_set_host (hostname : * const :: core :: ffi :: c_char) ; } extern "C" { pub fn rc_api_set_image_host (hostname : * const :: core :: ffi :: c_char) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_server_response_t { pub body : * const :: core :: ffi :: c_char , pub body_length : usize , pub http_status_code : :: core :: ffi :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_server_response_t"] [:: core :: mem :: size_of :: < rc_api_server_response_t > () - 24usize] ; ["Alignment of rc_api_server_response_t"] [:: core :: mem :: align_of :: < rc_api_server_response_t > () - 8usize] ; ["Offset of field: rc_api_server_response_t::body"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , body) - 0usize] ; ["Offset of field: rc_api_server_response_t::body_length"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , body_length) - 8usize] ; ["Offset of field: rc_api_server_response_t::http_status_code"] [:: core :: mem :: offset_of ! (rc_api_server_response_t , http_status_code) - 16usize] ; } ; pub const RC_API_SERVER_RESPONSE_CLIENT_ERROR : _bindgen_ty_9 = - 1 ; pub const RC_API_SERVER_RESPONSE_RETRYABLE_CLIENT_ERROR : _bindgen_ty_9 = - 2 ; pub type _bindgen_ty_9 = :: core :: ffi :: c_int ; pub type clock_t = __clock_t ; pub type time_t = __time_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct tm { pub tm_sec : :: core :: ffi :: c_int , pub tm_min : :: core :: ffi :: c_int , pub tm_hour : :: core :: ffi :: c_int , pub tm_mday : :: core :: ffi :: c_int , pub tm_mon : :: core :: ffi :: c_int , pub tm_year : :: core :: ffi :: c_int , pub tm_wday : :: core :: ffi :: c_int , pub tm_yday : :: core :: ffi :: c_int , pub tm_isdst : :: core :: ffi :: c_int , pub tm_gmtoff : :: core :: ffi :: c_long , pub tm_zone : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of tm"] [:: core :: mem :: size_of :: < tm > () - 56usize] ; ["Alignment of tm"] [:: core :: mem :: align_of :: < tm > () - 8usize] ; ["Offset of field: tm::tm_sec"] [:: core :: mem :: offset_of ! (tm , tm_sec) - 0usize] ; ["Offset of field: tm::tm_min"] [:: core :: mem :: offset_of ! (tm , tm_min) - 4usize] ; ["Offset of field: tm::tm_hour"] [:: core :: mem :: offset_of ! (tm , tm_hour) - 8usize] ; ["Offset of field: tm::tm_mday"] [:: core :: mem :: offset_of ! (tm , tm_mday) - 12usize] ; ["Offset of field: tm::tm_mon"] [:: core :: mem :: offset_of ! (tm , tm_mon) - 16usize] ; ["Offset of field: tm::tm_year"] [:: core :: mem :: offset_of ! (tm , tm_year) - 20usize] ; ["Offset of field: tm::tm_wday"] [:: core :: mem :: offset_of ! (tm , tm_wday) - 24usize] ; ["Offset of field: tm::tm_yday"] [:: core :: mem :: offset_of ! (tm , tm_yday) - 28usize] ; ["Offset of field: tm::tm_isdst"] [:: core :: mem :: offset_of ! (tm , tm_isdst) - 32usize] ; ["Offset of field: tm::tm_gmtoff"] [:: core :: mem :: offset_of ! (tm , tm_gmtoff) - 40usize] ; ["Offset of field: tm::tm_zone"] [:: core :: mem :: offset_of ! (tm , tm_zone) - 48usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct timespec { pub tv_sec : __time_t , pub tv_nsec : __syscall_slong_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of timespec"] [:: core :: mem :: size_of :: < timespec > () - 16usize] ; ["Alignment of timespec"] [:: core :: mem :: align_of :: < timespec > () - 8usize] ; ["Offset of field: timespec::tv_sec"] [:: core :: mem :: offset_of ! (timespec , tv_sec) - 0usize] ; ["Offset of field: timespec::tv_nsec"] [:: core :: mem :: offset_of ! (timespec , tv_nsec) - 8usize] ; } ; pub type clockid_t = __clockid_t ; pub type timer_t = __timer_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct itimerspec { pub it_interval : timespec , pub it_value : timespec , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of itimerspec"] [:: core :: mem :: size_of :: < itimerspec > () - 32usize] ; ["Alignment of itimerspec"] [:: core :: mem :: align_of :: < itimerspec > () - 8usize] ; ["Offset of field: itimerspec::it_interval"] [:: core :: mem :: offset_of ! (itimerspec , it_interval) - 0usize] ; ["Offset of field: itimerspec::it_value"] [:: core :: mem :: offset_of ! (itimerspec , it_value) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct sigevent { _unused : [u8 ; 0] , } pub type pid_t = __pid_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __locale_struct { pub __locales : [* mut __locale_data ; 13usize] , pub __ctype_b : * const :: core :: ffi :: c_ushort , pub __ctype_tolower : * const :: core :: ffi :: c_int , pub __ctype_toupper : * const :: core :: ffi :: c_int , pub __names : [* const :: core :: ffi :: c_char ; 13usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __locale_struct"] [:: core :: mem :: size_of :: < __locale_struct > () - 232usize] ; ["Alignment of __locale_struct"] [:: core :: mem :: align_of :: < __locale_struct > () - 8usize] ; ["Offset of field: __locale_struct::__locales"] [:: core :: mem :: offset_of ! (__locale_struct , __locales) - 0usize] ; ["Offset of field: __locale_struct::__ctype_b"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_b) - 104usize] ; ["Offset of field: __locale_struct::__ctype_tolower"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_tolower) - 112usize] ; ["Offset of field: __locale_struct::__ctype_toupper"] [:: core :: mem :: offset_of ! (__locale_struct , __ctype_toupper) - 120usize] ; ["Offset of field: __locale_struct::__names"] [:: core :: mem :: offset_of ! (__locale_struct , __names) - 128usize] ; } ; pub type __locale_t = * mut __locale_struct ; pub type locale_t = __locale_t ; extern "C" { pub fn clock () -> clock_t ; } extern "C" { pub fn time (__timer : * mut time_t) -> time_t ; } extern "C" { pub fn difftime (__time1 : time_t , __time0 : time_t) -> f64 ; } extern "C" { pub fn mktime (__tp : * mut tm) -> time_t ; } extern "C" { pub fn strftime (__s : * mut :: core :: ffi :: c_char , __maxsize : usize , __format : * const :: core :: ffi :: c_char , __tp : * const tm) -> usize ; } extern "C" { pub fn strftime_l (__s : * mut :: core :: ffi :: c_char , __maxsize : usize , __format : * const :: core :: ffi :: c_char , __tp : * const tm , __loc : locale_t) -> usize ; } extern "C" { pub fn gmtime (__timer : * const time_t) -> * mut tm ; } extern "C" { pub fn localtime (__timer : * const time_t) -> * mut tm ; } extern "C" { pub fn gmtime_r (__timer : * const time_t , __tp : * mut tm) -> * mut tm ; } extern "C" { pub fn localtime_r (__timer : * const time_t , __tp : * mut tm) -> * mut tm ; } extern "C" { pub fn asctime (__tp : * const tm) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn ctime (__timer : * const time_t) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn asctime_r (__tp : * const tm , __buf : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn ctime_r (__timer : * const time_t , __buf : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub static mut __tzname : [* mut :: core :: ffi :: c_char ; 2usize] ; } extern "C" { pub static mut __daylight : :: core :: ffi :: c_int ; } extern "C" { pub static mut __timezone : :: core :: ffi :: c_long ; } extern "C" { pub static mut tzname : [* mut :: core :: ffi :: c_char ; 2usize] ; } extern "C" { pub fn tzset () ; } extern "C" { pub static mut daylight : :: core :: ffi :: c_int ; } extern "C" { pub static mut timezone : :: core :: ffi :: c_long ; } extern "C" { pub fn timegm (__tp : * mut tm) -> time_t ; } extern "C" { pub fn timelocal (__tp : * mut tm) -> time_t ; } extern "C" { pub fn dysize (__year : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn nanosleep (__requested_time : * const timespec , __remaining : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_getres (__clock_id : clockid_t , __res : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_gettime (__clock_id : clockid_t , __tp : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_settime (__clock_id : clockid_t , __tp : * const timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_nanosleep (__clock_id : clockid_t , __flags : :: core :: ffi :: c_int , __req : * const timespec , __rem : * mut timespec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clock_getcpuclockid (__pid : pid_t , __clock_id : * mut clockid_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_create (__clock_id : clockid_t , __evp : * mut sigevent , __timerid : * mut timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_delete (__timerid : timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_settime (__timerid : timer_t , __flags : :: core :: ffi :: c_int , __value : * const itimerspec , __ovalue : * mut itimerspec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_gettime (__timerid : timer_t , __value : * mut itimerspec) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timer_getoverrun (__timerid : timer_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn timespec_get (__ts : * mut timespec , __base : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } # [doc = " API parameters for a login request.\n If both password and api_token are provided, api_token will be ignored."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_login_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub password : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_login_request_t"] [:: core :: mem :: size_of :: < rc_api_login_request_t > () - 24usize] ; ["Alignment of rc_api_login_request_t"] [:: core :: mem :: align_of :: < rc_api_login_request_t > () - 8usize] ; ["Offset of field: rc_api_login_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , username) - 0usize] ; ["Offset of field: rc_api_login_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_login_request_t::password"] [:: core :: mem :: offset_of ! (rc_api_login_request_t , password) - 16usize] ; } ; # [doc = " Response data for a login request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_login_response_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub score : u32 , pub score_softcore : u32 , pub num_unread_messages : u32 , pub display_name : * const :: core :: ffi :: c_char , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_login_response_t"] [:: core :: mem :: size_of :: < rc_api_login_response_t > () - 352usize] ; ["Alignment of rc_api_login_response_t"] [:: core :: mem :: align_of :: < rc_api_login_response_t > () - 8usize] ; ["Offset of field: rc_api_login_response_t::username"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , username) - 0usize] ; ["Offset of field: rc_api_login_response_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , api_token) - 8usize] ; ["Offset of field: rc_api_login_response_t::score"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , score) - 16usize] ; ["Offset of field: rc_api_login_response_t::score_softcore"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , score_softcore) - 20usize] ; ["Offset of field: rc_api_login_response_t::num_unread_messages"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , num_unread_messages) - 24usize] ; ["Offset of field: rc_api_login_response_t::display_name"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , display_name) - 32usize] ; ["Offset of field: rc_api_login_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_login_response_t , response) - 40usize] ; } ; extern "C" { pub fn rc_api_init_login_request (request : * mut rc_api_request_t , api_params : * const rc_api_login_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_login_response (response : * mut rc_api_login_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_login_server_response (response : * mut rc_api_login_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_login_response (response : * mut rc_api_login_response_t) ; } # [doc = " API parameters for a start session request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_start_session_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub game_hash : * const :: core :: ffi :: c_char , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_start_session_request_t"] [:: core :: mem :: size_of :: < rc_api_start_session_request_t > () - 40usize] ; ["Alignment of rc_api_start_session_request_t"] [:: core :: mem :: align_of :: < rc_api_start_session_request_t > () - 8usize] ; ["Offset of field: rc_api_start_session_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , username) - 0usize] ; ["Offset of field: rc_api_start_session_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_start_session_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_start_session_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_start_session_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_start_session_request_t , hardcore) - 32usize] ; } ; # [doc = " Response data for an achievement unlock."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_unlock_entry_t { pub achievement_id : u32 , pub when : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_unlock_entry_t"] [:: core :: mem :: size_of :: < rc_api_unlock_entry_t > () - 16usize] ; ["Alignment of rc_api_unlock_entry_t"] [:: core :: mem :: align_of :: < rc_api_unlock_entry_t > () - 8usize] ; ["Offset of field: rc_api_unlock_entry_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_unlock_entry_t , achievement_id) - 0usize] ; ["Offset of field: rc_api_unlock_entry_t::when"] [:: core :: mem :: offset_of ! (rc_api_unlock_entry_t , when) - 8usize] ; } ; # [doc = " Response data for a start session request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_start_session_response_t { pub hardcore_unlocks : * mut rc_api_unlock_entry_t , pub unlocks : * mut rc_api_unlock_entry_t , pub num_hardcore_unlocks : u32 , pub num_unlocks : u32 , pub server_now : time_t , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_start_session_response_t"] [:: core :: mem :: size_of :: < rc_api_start_session_response_t > () - 344usize] ; ["Alignment of rc_api_start_session_response_t"] [:: core :: mem :: align_of :: < rc_api_start_session_response_t > () - 8usize] ; ["Offset of field: rc_api_start_session_response_t::hardcore_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , hardcore_unlocks) - 0usize] ; ["Offset of field: rc_api_start_session_response_t::unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , unlocks) - 8usize] ; ["Offset of field: rc_api_start_session_response_t::num_hardcore_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , num_hardcore_unlocks) - 16usize] ; ["Offset of field: rc_api_start_session_response_t::num_unlocks"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , num_unlocks) - 20usize] ; ["Offset of field: rc_api_start_session_response_t::server_now"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , server_now) - 24usize] ; ["Offset of field: rc_api_start_session_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_start_session_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_start_session_request (request : * mut rc_api_request_t , api_params : * const rc_api_start_session_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_start_session_response (response : * mut rc_api_start_session_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_start_session_server_response (response : * mut rc_api_start_session_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_start_session_response (response : * mut rc_api_start_session_response_t) ; } # [doc = " API parameters for a fetch user unlocks request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_user_unlocks_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_user_unlocks_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_user_unlocks_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_user_unlocks_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_user_unlocks_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_fetch_user_unlocks_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_request_t , hardcore) - 20usize] ; } ; # [doc = " Response data for a fetch user unlocks request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_user_unlocks_response_t { pub achievement_ids : * mut u32 , pub num_achievement_ids : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_user_unlocks_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_user_unlocks_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_user_unlocks_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_user_unlocks_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::achievement_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , achievement_ids) - 0usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::num_achievement_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , num_achievement_ids) - 8usize] ; ["Offset of field: rc_api_fetch_user_unlocks_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_user_unlocks_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_user_unlocks_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_user_unlocks_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_user_unlocks_response (response : * mut rc_api_fetch_user_unlocks_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_user_unlocks_server_response (response : * mut rc_api_fetch_user_unlocks_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_user_unlocks_response (response : * mut rc_api_fetch_user_unlocks_response_t) ; } # [doc = " API parameters for a fetch code notes request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_code_notes_request_t { pub game_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_code_notes_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_code_notes_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_code_notes_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_code_notes_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_code_notes_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_request_t , game_id) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_code_note_t { pub address : u32 , pub author : * const :: core :: ffi :: c_char , pub note : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_code_note_t"] [:: core :: mem :: size_of :: < rc_api_code_note_t > () - 24usize] ; ["Alignment of rc_api_code_note_t"] [:: core :: mem :: align_of :: < rc_api_code_note_t > () - 8usize] ; ["Offset of field: rc_api_code_note_t::address"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , address) - 0usize] ; ["Offset of field: rc_api_code_note_t::author"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , author) - 8usize] ; ["Offset of field: rc_api_code_note_t::note"] [:: core :: mem :: offset_of ! (rc_api_code_note_t , note) - 16usize] ; } ; # [doc = " Response data for a fetch code notes request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_code_notes_response_t { pub notes : * mut rc_api_code_note_t , pub num_notes : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_code_notes_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_code_notes_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_code_notes_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_code_notes_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::notes"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , notes) - 0usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::num_notes"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , num_notes) - 8usize] ; ["Offset of field: rc_api_fetch_code_notes_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_code_notes_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_code_notes_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_code_notes_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_code_notes_response (response : * mut rc_api_fetch_code_notes_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_code_notes_server_response (response : * mut rc_api_fetch_code_notes_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_code_notes_response (response : * mut rc_api_fetch_code_notes_response_t) ; } # [doc = " API parameters for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_code_note_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub address : u32 , pub note : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_code_note_request_t"] [:: core :: mem :: size_of :: < rc_api_update_code_note_request_t > () - 32usize] ; ["Alignment of rc_api_update_code_note_request_t"] [:: core :: mem :: align_of :: < rc_api_update_code_note_request_t > () - 8usize] ; ["Offset of field: rc_api_update_code_note_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_code_note_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_code_note_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_update_code_note_request_t::address"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , address) - 20usize] ; ["Offset of field: rc_api_update_code_note_request_t::note"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_request_t , note) - 24usize] ; } ; # [doc = " Response data for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_code_note_response_t { pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_code_note_response_t"] [:: core :: mem :: size_of :: < rc_api_update_code_note_response_t > () - 312usize] ; ["Alignment of rc_api_update_code_note_response_t"] [:: core :: mem :: align_of :: < rc_api_update_code_note_response_t > () - 8usize] ; ["Offset of field: rc_api_update_code_note_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_code_note_response_t , response) - 0usize] ; } ; extern "C" { pub fn rc_api_init_update_code_note_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_code_note_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_code_note_response (response : * mut rc_api_update_code_note_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_code_note_server_response (response : * mut rc_api_update_code_note_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_code_note_response (response : * mut rc_api_update_code_note_response_t) ; } # [doc = " API parameters for an update achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_achievement_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub game_id : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub badge : * const :: core :: ffi :: c_char , pub trigger : * const :: core :: ffi :: c_char , pub points : u32 , pub category : u32 , pub type_ : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_achievement_request_t"] [:: core :: mem :: size_of :: < rc_api_update_achievement_request_t > () - 72usize] ; ["Alignment of rc_api_update_achievement_request_t"] [:: core :: mem :: align_of :: < rc_api_update_achievement_request_t > () - 8usize] ; ["Offset of field: rc_api_update_achievement_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_achievement_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_achievement_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_update_achievement_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , game_id) - 20usize] ; ["Offset of field: rc_api_update_achievement_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , title) - 24usize] ; ["Offset of field: rc_api_update_achievement_request_t::description"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , description) - 32usize] ; ["Offset of field: rc_api_update_achievement_request_t::badge"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , badge) - 40usize] ; ["Offset of field: rc_api_update_achievement_request_t::trigger"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , trigger) - 48usize] ; ["Offset of field: rc_api_update_achievement_request_t::points"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , points) - 56usize] ; ["Offset of field: rc_api_update_achievement_request_t::category"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , category) - 60usize] ; ["Offset of field: rc_api_update_achievement_request_t::type_"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_request_t , type_) - 64usize] ; } ; # [doc = " Response data for an update achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_achievement_response_t { pub achievement_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_achievement_response_t"] [:: core :: mem :: size_of :: < rc_api_update_achievement_response_t > () - 320usize] ; ["Alignment of rc_api_update_achievement_response_t"] [:: core :: mem :: align_of :: < rc_api_update_achievement_response_t > () - 8usize] ; ["Offset of field: rc_api_update_achievement_response_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_response_t , achievement_id) - 0usize] ; ["Offset of field: rc_api_update_achievement_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_achievement_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_update_achievement_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_achievement_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_achievement_response (response : * mut rc_api_update_achievement_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_achievement_server_response (response : * mut rc_api_update_achievement_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_achievement_response (response : * mut rc_api_update_achievement_response_t) ; } # [doc = " API parameters for an update leaderboard request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_leaderboard_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub leaderboard_id : u32 , pub game_id : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub start_trigger : * const :: core :: ffi :: c_char , pub submit_trigger : * const :: core :: ffi :: c_char , pub cancel_trigger : * const :: core :: ffi :: c_char , pub value_definition : * const :: core :: ffi :: c_char , pub format : * const :: core :: ffi :: c_char , pub lower_is_better : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_leaderboard_request_t"] [:: core :: mem :: size_of :: < rc_api_update_leaderboard_request_t > () - 88usize] ; ["Alignment of rc_api_update_leaderboard_request_t"] [:: core :: mem :: align_of :: < rc_api_update_leaderboard_request_t > () - 8usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , username) - 0usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , leaderboard_id) - 16usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , game_id) - 20usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , title) - 24usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::description"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , description) - 32usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::start_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , start_trigger) - 40usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::submit_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , submit_trigger) - 48usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::cancel_trigger"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , cancel_trigger) - 56usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::value_definition"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , value_definition) - 64usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::format"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , format) - 72usize] ; ["Offset of field: rc_api_update_leaderboard_request_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_request_t , lower_is_better) - 80usize] ; } ; # [doc = " Response data for an update leaderboard request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_update_leaderboard_response_t { pub leaderboard_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_update_leaderboard_response_t"] [:: core :: mem :: size_of :: < rc_api_update_leaderboard_response_t > () - 320usize] ; ["Alignment of rc_api_update_leaderboard_response_t"] [:: core :: mem :: align_of :: < rc_api_update_leaderboard_response_t > () - 8usize] ; ["Offset of field: rc_api_update_leaderboard_response_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_response_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_api_update_leaderboard_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_update_leaderboard_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_update_leaderboard_request (request : * mut rc_api_request_t , api_params : * const rc_api_update_leaderboard_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_leaderboard_response (response : * mut rc_api_update_leaderboard_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_update_leaderboard_server_response (response : * mut rc_api_update_leaderboard_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_update_leaderboard_response (response : * mut rc_api_update_leaderboard_response_t) ; } # [doc = " API parameters for a fetch badge range request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_badge_range_request_t { pub unused : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_badge_range_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_badge_range_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_badge_range_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_badge_range_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_badge_range_request_t::unused"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_request_t , unused) - 0usize] ; } ; # [doc = " Response data for a fetch badge range request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_badge_range_response_t { pub first_badge_id : u32 , pub next_badge_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_badge_range_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_badge_range_response_t > () - 320usize] ; ["Alignment of rc_api_fetch_badge_range_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_badge_range_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::first_badge_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , first_badge_id) - 0usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::next_badge_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , next_badge_id) - 4usize] ; ["Offset of field: rc_api_fetch_badge_range_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_badge_range_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_fetch_badge_range_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_badge_range_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_badge_range_response (response : * mut rc_api_fetch_badge_range_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_badge_range_server_response (response : * mut rc_api_fetch_badge_range_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_badge_range_response (response : * mut rc_api_fetch_badge_range_response_t) ; } # [doc = " API parameters for an add game hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_add_game_hash_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub hash : * const :: core :: ffi :: c_char , pub hash_description : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_add_game_hash_request_t"] [:: core :: mem :: size_of :: < rc_api_add_game_hash_request_t > () - 48usize] ; ["Alignment of rc_api_add_game_hash_request_t"] [:: core :: mem :: align_of :: < rc_api_add_game_hash_request_t > () - 8usize] ; ["Offset of field: rc_api_add_game_hash_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , username) - 0usize] ; ["Offset of field: rc_api_add_game_hash_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_add_game_hash_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_add_game_hash_request_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , console_id) - 20usize] ; ["Offset of field: rc_api_add_game_hash_request_t::title"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , title) - 24usize] ; ["Offset of field: rc_api_add_game_hash_request_t::hash"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , hash) - 32usize] ; ["Offset of field: rc_api_add_game_hash_request_t::hash_description"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_request_t , hash_description) - 40usize] ; } ; # [doc = " Response data for an update code note request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_add_game_hash_response_t { pub game_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_add_game_hash_response_t"] [:: core :: mem :: size_of :: < rc_api_add_game_hash_response_t > () - 320usize] ; ["Alignment of rc_api_add_game_hash_response_t"] [:: core :: mem :: align_of :: < rc_api_add_game_hash_response_t > () - 8usize] ; ["Offset of field: rc_api_add_game_hash_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_response_t , game_id) - 0usize] ; ["Offset of field: rc_api_add_game_hash_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_add_game_hash_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_add_game_hash_request (request : * mut rc_api_request_t , api_params : * const rc_api_add_game_hash_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_add_game_hash_response (response : * mut rc_api_add_game_hash_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_add_game_hash_server_response (response : * mut rc_api_add_game_hash_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_add_game_hash_response (response : * mut rc_api_add_game_hash_response_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_t { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_menu_item_t { pub label : * const :: core :: ffi :: c_char , pub id : u32 , pub checked : u8 , pub enabled : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_menu_item_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_menu_item_t > () - 16usize] ; ["Alignment of rc_client_raintegration_menu_item_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_menu_item_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::label"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , label) - 0usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::id"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , id) - 8usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::checked"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , checked) - 12usize] ; ["Offset of field: rc_client_raintegration_menu_item_t::enabled"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_item_t , enabled) - 13usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_menu_t { pub items : * mut rc_client_raintegration_menu_item_t , pub num_items : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_menu_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_menu_t > () - 16usize] ; ["Alignment of rc_client_raintegration_menu_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_menu_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_menu_t::items"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_t , items) - 0usize] ; ["Offset of field: rc_client_raintegration_menu_t::num_items"] [:: core :: mem :: offset_of ! (rc_client_raintegration_menu_t , num_items) - 8usize] ; } ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_NONE : _bindgen_ty_10 = 0 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_PUBLISHED : _bindgen_ty_10 = 1 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_LOCAL : _bindgen_ty_10 = 2 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_MODIFIED : _bindgen_ty_10 = 3 ; pub const RC_CLIENT_RAINTEGRATION_ACHIEVEMENT_STATE_INSECURE : _bindgen_ty_10 = 4 ; pub type _bindgen_ty_10 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_RAINTEGRATION_EVENT_TYPE_NONE : _bindgen_ty_11 = 0 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_MENUITEM_CHECKED_CHANGED : _bindgen_ty_11 = 1 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_HARDCORE_CHANGED : _bindgen_ty_11 = 2 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_PAUSE : _bindgen_ty_11 = 3 ; pub const RC_CLIENT_RAINTEGRATION_EVENT_MENU_CHANGED : _bindgen_ty_11 = 4 ; pub type _bindgen_ty_11 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_raintegration_event_t { pub type_ : u32 , pub menu_item : * const rc_client_raintegration_menu_item_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_raintegration_event_t"] [:: core :: mem :: size_of :: < rc_client_raintegration_event_t > () - 16usize] ; ["Alignment of rc_client_raintegration_event_t"] [:: core :: mem :: align_of :: < rc_client_raintegration_event_t > () - 8usize] ; ["Offset of field: rc_client_raintegration_event_t::type_"] [:: core :: mem :: offset_of ! (rc_client_raintegration_event_t , type_) - 0usize] ; ["Offset of field: rc_client_raintegration_event_t::menu_item"] [:: core :: mem :: offset_of ! (rc_client_raintegration_event_t , menu_item) - 8usize] ; } ; pub type rc_client_raintegration_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (event : * const rc_client_raintegration_event_t , client : * mut rc_client_t) > ; pub type rc_client_raintegration_write_memory_func_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , buffer : * mut u8 , num_bytes : u32 , client : * mut rc_client_t) > ; pub type rc_client_raintegration_get_game_name_func_t = :: core :: option :: Option < unsafe extern "C" fn (buffer : * mut :: core :: ffi :: c_char , buffer_size : u32 , client : * mut rc_client_t) > ; # [doc = " API parameters for a fetch achievement info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_achievement_info_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub first_entry : u32 , pub count : u32 , pub friends_only : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_achievement_info_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_achievement_info_request_t > () - 32usize] ; ["Alignment of rc_api_fetch_achievement_info_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_achievement_info_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::first_entry"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , first_entry) - 20usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::count"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , count) - 24usize] ; ["Offset of field: rc_api_fetch_achievement_info_request_t::friends_only"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_request_t , friends_only) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_achievement_awarded_entry_t { pub username : * const :: core :: ffi :: c_char , pub awarded : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_achievement_awarded_entry_t"] [:: core :: mem :: size_of :: < rc_api_achievement_awarded_entry_t > () - 16usize] ; ["Alignment of rc_api_achievement_awarded_entry_t"] [:: core :: mem :: align_of :: < rc_api_achievement_awarded_entry_t > () - 8usize] ; ["Offset of field: rc_api_achievement_awarded_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_achievement_awarded_entry_t , username) - 0usize] ; ["Offset of field: rc_api_achievement_awarded_entry_t::awarded"] [:: core :: mem :: offset_of ! (rc_api_achievement_awarded_entry_t , awarded) - 8usize] ; } ; # [doc = " Response data for a fetch achievement info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_achievement_info_response_t { pub id : u32 , pub game_id : u32 , pub num_awarded : u32 , pub num_players : u32 , pub recently_awarded : * mut rc_api_achievement_awarded_entry_t , pub num_recently_awarded : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_achievement_info_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_achievement_info_response_t > () - 344usize] ; ["Alignment of rc_api_fetch_achievement_info_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_achievement_info_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , game_id) - 4usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_awarded) - 8usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_players"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_players) - 12usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::recently_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , recently_awarded) - 16usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::num_recently_awarded"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , num_recently_awarded) - 24usize] ; ["Offset of field: rc_api_fetch_achievement_info_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_achievement_info_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_fetch_achievement_info_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_achievement_info_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_achievement_info_response (response : * mut rc_api_fetch_achievement_info_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_achievement_info_server_response (response : * mut rc_api_fetch_achievement_info_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_achievement_info_response (response : * mut rc_api_fetch_achievement_info_response_t) ; } # [doc = " API parameters for a fetch leaderboard info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_leaderboard_info_request_t { pub leaderboard_id : u32 , pub count : u32 , pub first_entry : u32 , pub username : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_leaderboard_info_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_leaderboard_info_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_leaderboard_info_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_leaderboard_info_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::count"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , count) - 4usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::first_entry"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , first_entry) - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_request_t , username) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_lboard_info_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub index : u32 , pub score : i32 , pub submitted : time_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_lboard_info_entry_t"] [:: core :: mem :: size_of :: < rc_api_lboard_info_entry_t > () - 32usize] ; ["Alignment of rc_api_lboard_info_entry_t"] [:: core :: mem :: align_of :: < rc_api_lboard_info_entry_t > () - 8usize] ; ["Offset of field: rc_api_lboard_info_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , username) - 0usize] ; ["Offset of field: rc_api_lboard_info_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , rank) - 8usize] ; ["Offset of field: rc_api_lboard_info_entry_t::index"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , index) - 12usize] ; ["Offset of field: rc_api_lboard_info_entry_t::score"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , score) - 16usize] ; ["Offset of field: rc_api_lboard_info_entry_t::submitted"] [:: core :: mem :: offset_of ! (rc_api_lboard_info_entry_t , submitted) - 24usize] ; } ; # [doc = " Response data for a fetch leaderboard info request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_leaderboard_info_response_t { pub id : u32 , pub format : :: core :: ffi :: c_int , pub lower_is_better : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub game_id : u32 , pub author : * const :: core :: ffi :: c_char , pub created : time_t , pub updated : time_t , pub entries : * mut rc_api_lboard_info_entry_t , pub num_entries : u32 , pub total_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_leaderboard_info_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_leaderboard_info_response_t > () - 400usize] ; ["Alignment of rc_api_fetch_leaderboard_info_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_leaderboard_info_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::format"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , format) - 4usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , lower_is_better) - 8usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::title"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , title) - 16usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::description"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , description) - 24usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::definition"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , definition) - 32usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , game_id) - 40usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::author"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , author) - 48usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::created"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , created) - 56usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::updated"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , updated) - 64usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , entries) - 72usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , num_entries) - 80usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::total_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , total_entries) - 84usize] ; ["Offset of field: rc_api_fetch_leaderboard_info_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_leaderboard_info_response_t , response) - 88usize] ; } ; extern "C" { pub fn rc_api_init_fetch_leaderboard_info_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_leaderboard_info_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_leaderboard_info_response (response : * mut rc_api_fetch_leaderboard_info_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_leaderboard_info_server_response (response : * mut rc_api_fetch_leaderboard_info_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_leaderboard_info_response (response : * mut rc_api_fetch_leaderboard_info_response_t) ; } # [doc = " API parameters for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_games_list_request_t { pub console_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_games_list_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_games_list_request_t > () - 4usize] ; ["Alignment of rc_api_fetch_games_list_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_games_list_request_t > () - 4usize] ; ["Offset of field: rc_api_fetch_games_list_request_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_request_t , console_id) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_game_list_entry_t { pub id : u32 , pub name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_game_list_entry_t"] [:: core :: mem :: size_of :: < rc_api_game_list_entry_t > () - 16usize] ; ["Alignment of rc_api_game_list_entry_t"] [:: core :: mem :: align_of :: < rc_api_game_list_entry_t > () - 8usize] ; ["Offset of field: rc_api_game_list_entry_t::id"] [:: core :: mem :: offset_of ! (rc_api_game_list_entry_t , id) - 0usize] ; ["Offset of field: rc_api_game_list_entry_t::name"] [:: core :: mem :: offset_of ! (rc_api_game_list_entry_t , name) - 8usize] ; } ; # [doc = " Response data for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_games_list_response_t { pub entries : * mut rc_api_game_list_entry_t , pub num_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_games_list_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_games_list_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_games_list_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_games_list_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , entries) - 0usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , num_entries) - 8usize] ; ["Offset of field: rc_api_fetch_games_list_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_games_list_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_games_list_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_games_list_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_games_list_response (response : * mut rc_api_fetch_games_list_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_games_list_server_response (response : * mut rc_api_fetch_games_list_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_games_list_response (response : * mut rc_api_fetch_games_list_response_t) ; } # [doc = " API parameters for a fetch games list request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_titles_request_t { pub game_ids : * const u32 , pub num_game_ids : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_titles_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_titles_request_t > () - 16usize] ; ["Alignment of rc_api_fetch_game_titles_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_titles_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_request_t::game_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_request_t , game_ids) - 0usize] ; ["Offset of field: rc_api_fetch_game_titles_request_t::num_game_ids"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_request_t , num_game_ids) - 8usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_game_title_entry_t { pub id : u32 , pub title : * const :: core :: ffi :: c_char , pub image_name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_game_title_entry_t"] [:: core :: mem :: size_of :: < rc_api_game_title_entry_t > () - 24usize] ; ["Alignment of rc_api_game_title_entry_t"] [:: core :: mem :: align_of :: < rc_api_game_title_entry_t > () - 8usize] ; ["Offset of field: rc_api_game_title_entry_t::id"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , id) - 0usize] ; ["Offset of field: rc_api_game_title_entry_t::title"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , title) - 8usize] ; ["Offset of field: rc_api_game_title_entry_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_game_title_entry_t , image_name) - 16usize] ; } ; # [doc = " Response data for a fetch games title request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_titles_response_t { pub entries : * mut rc_api_game_title_entry_t , pub num_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_titles_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_titles_response_t > () - 328usize] ; ["Alignment of rc_api_fetch_game_titles_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_titles_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , entries) - 0usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , num_entries) - 8usize] ; ["Offset of field: rc_api_fetch_game_titles_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_titles_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_fetch_game_titles_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_game_titles_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_titles_server_response (response : * mut rc_api_fetch_game_titles_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_game_titles_response (response : * mut rc_api_fetch_game_titles_response_t) ; } pub type __gnuc_va_list = __builtin_va_list ; # [repr (C)] # [derive (Copy , Clone)] pub struct __mbstate_t { pub __count : :: core :: ffi :: c_int , pub __value : __mbstate_t__bindgen_ty_1 , } # [repr (C)] # [derive (Copy , Clone)] pub union __mbstate_t__bindgen_ty_1 { pub __wch : :: core :: ffi :: c_uint , pub __wchb : [:: core :: ffi :: c_char ; 4usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __mbstate_t__bindgen_ty_1"] [:: core :: mem :: size_of :: < __mbstate_t__bindgen_ty_1 > () - 4usize] ; ["Alignment of __mbstate_t__bindgen_ty_1"] [:: core :: mem :: align_of :: < __mbstate_t__bindgen_ty_1 > () - 4usize] ; ["Offset of field: __mbstate_t__bindgen_ty_1::__wch"] [:: core :: mem :: offset_of ! (__mbstate_t__bindgen_ty_1 , __wch) - 0usize] ; ["Offset of field: __mbstate_t__bindgen_ty_1::__wchb"] [:: core :: mem :: offset_of ! (__mbstate_t__bindgen_ty_1 , __wchb) - 0usize] ; } ; impl :: core :: fmt :: Debug for __mbstate_t__bindgen_ty_1 { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "__mbstate_t__bindgen_ty_1 {{ union }}") } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __mbstate_t"] [:: core :: mem :: size_of :: < __mbstate_t > () - 8usize] ; ["Alignment of __mbstate_t"] [:: core :: mem :: align_of :: < __mbstate_t > () - 4usize] ; ["Offset of field: __mbstate_t::__count"] [:: core :: mem :: offset_of ! (__mbstate_t , __count) - 0usize] ; ["Offset of field: __mbstate_t::__value"] [:: core :: mem :: offset_of ! (__mbstate_t , __value) - 4usize] ; } ; impl :: core :: fmt :: Debug for __mbstate_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "__mbstate_t {{ __count: {:?}, __value: {:?} }}" , self . __count , self . __value) } } # [repr (C)] # [derive (Copy , Clone)] pub struct _G_fpos_t { pub __pos : __off_t , pub __state : __mbstate_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _G_fpos_t"] [:: core :: mem :: size_of :: < _G_fpos_t > () - 16usize] ; ["Alignment of _G_fpos_t"] [:: core :: mem :: align_of :: < _G_fpos_t > () - 8usize] ; ["Offset of field: _G_fpos_t::__pos"] [:: core :: mem :: offset_of ! (_G_fpos_t , __pos) - 0usize] ; ["Offset of field: _G_fpos_t::__state"] [:: core :: mem :: offset_of ! (_G_fpos_t , __state) - 8usize] ; } ; impl :: core :: fmt :: Debug for _G_fpos_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "_G_fpos_t {{ __pos: {:?}, __state: {:?} }}" , self . __pos , self . __state) } } pub type __fpos_t = _G_fpos_t ; # [repr (C)] # [derive (Copy , Clone)] pub struct _G_fpos64_t { pub __pos : __off64_t , pub __state : __mbstate_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _G_fpos64_t"] [:: core :: mem :: size_of :: < _G_fpos64_t > () - 16usize] ; ["Alignment of _G_fpos64_t"] [:: core :: mem :: align_of :: < _G_fpos64_t > () - 8usize] ; ["Offset of field: _G_fpos64_t::__pos"] [:: core :: mem :: offset_of ! (_G_fpos64_t , __pos) - 0usize] ; ["Offset of field: _G_fpos64_t::__state"] [:: core :: mem :: offset_of ! (_G_fpos64_t , __state) - 8usize] ; } ; impl :: core :: fmt :: Debug for _G_fpos64_t { fn fmt (& self , f : & mut :: core :: fmt :: Formatter < '_ >) -> :: core :: fmt :: Result { write ! (f , "_G_fpos64_t {{ __pos: {:?}, __state: {:?} }}" , self . __pos , self . __state) } } pub type __fpos64_t = _G_fpos64_t ; pub type __FILE = _IO_FILE ; pub type FILE = _IO_FILE ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_marker { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_codecvt { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_wide_data { _unused : [u8 ; 0] , } pub type _IO_lock_t = :: core :: ffi :: c_void ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_FILE { pub _flags : :: core :: ffi :: c_int , pub _IO_read_ptr : * mut :: core :: ffi :: c_char , pub _IO_read_end : * mut :: core :: ffi :: c_char , pub _IO_read_base : * mut :: core :: ffi :: c_char , pub _IO_write_base : * mut :: core :: ffi :: c_char , pub _IO_write_ptr : * mut :: core :: ffi :: c_char , pub _IO_write_end : * mut :: core :: ffi :: c_char , pub _IO_buf_base : * mut :: core :: ffi :: c_char , pub _IO_buf_end : * mut :: core :: ffi :: c_char , pub _IO_save_base : * mut :: core :: ffi :: c_char , pub _IO_backup_base : * mut :: core :: ffi :: c_char , pub _IO_save_end : * mut :: core :: ffi :: c_char , pub _markers : * mut _IO_marker , pub _chain : * mut _IO_FILE , pub _fileno : :: core :: ffi :: c_int , pub _bitfield_align_1 : [u32 ; 0] , pub _bitfield_1 : __BindgenBitfieldUnit < [u8 ; 3usize] > , pub _short_backupbuf : [:: core :: ffi :: c_char ; 1usize] , pub _old_offset : __off_t , pub _cur_column : :: core :: ffi :: c_ushort , pub _vtable_offset : :: core :: ffi :: c_schar , pub _shortbuf : [:: core :: ffi :: c_char ; 1usize] , pub _lock : * mut _IO_lock_t , pub _offset : __off64_t , pub _codecvt : * mut _IO_codecvt , pub _wide_data : * mut _IO_wide_data , pub _freeres_list : * mut _IO_FILE , pub _freeres_buf : * mut :: core :: ffi :: c_void , pub _prevchain : * mut * mut _IO_FILE , pub _mode : :: core :: ffi :: c_int , pub _unused3 : :: core :: ffi :: c_int , pub _total_written : __uint64_t , pub _unused2 : [:: core :: ffi :: c_char ; 8usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _IO_FILE"] [:: core :: mem :: size_of :: < _IO_FILE > () - 216usize] ; ["Alignment of _IO_FILE"] [:: core :: mem :: align_of :: < _IO_FILE > () - 8usize] ; ["Offset of field: _IO_FILE::_flags"] [:: core :: mem :: offset_of ! (_IO_FILE , _flags) - 0usize] ; ["Offset of field: _IO_FILE::_IO_read_ptr"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_ptr) - 8usize] ; ["Offset of field: _IO_FILE::_IO_read_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_end) - 16usize] ; ["Offset of field: _IO_FILE::_IO_read_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_read_base) - 24usize] ; ["Offset of field: _IO_FILE::_IO_write_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_base) - 32usize] ; ["Offset of field: _IO_FILE::_IO_write_ptr"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_ptr) - 40usize] ; ["Offset of field: _IO_FILE::_IO_write_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_write_end) - 48usize] ; ["Offset of field: _IO_FILE::_IO_buf_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_buf_base) - 56usize] ; ["Offset of field: _IO_FILE::_IO_buf_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_buf_end) - 64usize] ; ["Offset of field: _IO_FILE::_IO_save_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_save_base) - 72usize] ; ["Offset of field: _IO_FILE::_IO_backup_base"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_backup_base) - 80usize] ; ["Offset of field: _IO_FILE::_IO_save_end"] [:: core :: mem :: offset_of ! (_IO_FILE , _IO_save_end) - 88usize] ; ["Offset of field: _IO_FILE::_markers"] [:: core :: mem :: offset_of ! (_IO_FILE , _markers) - 96usize] ; ["Offset of field: _IO_FILE::_chain"] [:: core :: mem :: offset_of ! (_IO_FILE , _chain) - 104usize] ; ["Offset of field: _IO_FILE::_fileno"] [:: core :: mem :: offset_of ! (_IO_FILE , _fileno) - 112usize] ; ["Offset of field: _IO_FILE::_short_backupbuf"] [:: core :: mem :: offset_of ! (_IO_FILE , _short_backupbuf) - 119usize] ; ["Offset of field: _IO_FILE::_old_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _old_offset) - 120usize] ; ["Offset of field: _IO_FILE::_cur_column"] [:: core :: mem :: offset_of ! (_IO_FILE , _cur_column) - 128usize] ; ["Offset of field: _IO_FILE::_vtable_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _vtable_offset) - 130usize] ; ["Offset of field: _IO_FILE::_shortbuf"] [:: core :: mem :: offset_of ! (_IO_FILE , _shortbuf) - 131usize] ; ["Offset of field: _IO_FILE::_lock"] [:: core :: mem :: offset_of ! (_IO_FILE , _lock) - 136usize] ; ["Offset of field: _IO_FILE::_offset"] [:: core :: mem :: offset_of ! (_IO_FILE , _offset) - 144usize] ; ["Offset of field: _IO_FILE::_codecvt"] [:: core :: mem :: offset_of ! (_IO_FILE , _codecvt) - 152usize] ; ["Offset of field: _IO_FILE::_wide_data"] [:: core :: mem :: offset_of ! (_IO_FILE , _wide_data) - 160usize] ; ["Offset of field: _IO_FILE::_freeres_list"] [:: core :: mem :: offset_of ! (_IO_FILE , _freeres_list) - 168usize] ; ["Offset of field: _IO_FILE::_freeres_buf"] [:: core :: mem :: offset_of ! (_IO_FILE , _freeres_buf) - 176usize] ; ["Offset of field: _IO_FILE::_prevchain"] [:: core :: mem :: offset_of ! (_IO_FILE , _prevchain) - 184usize] ; ["Offset of field: _IO_FILE::_mode"] [:: core :: mem :: offset_of ! (_IO_FILE , _mode) - 192usize] ; ["Offset of field: _IO_FILE::_unused3"] [:: core :: mem :: offset_of ! (_IO_FILE , _unused3) - 196usize] ; ["Offset of field: _IO_FILE::_total_written"] [:: core :: mem :: offset_of ! (_IO_FILE , _total_written) - 200usize] ; ["Offset of field: _IO_FILE::_unused2"] [:: core :: mem :: offset_of ! (_IO_FILE , _unused2) - 208usize] ; } ; impl _IO_FILE { # [inline] pub fn _flags2 (& self) -> :: core :: ffi :: c_int { unsafe { :: core :: mem :: transmute (self . _bitfield_1 . get (0usize , 24u8) as u32) } } # [inline] pub fn set__flags2 (& mut self , val : :: core :: ffi :: c_int) { unsafe { let val : u32 = :: core :: mem :: transmute (val) ; self . _bitfield_1 . set (0usize , 24u8 , val as u64) } } # [inline] pub fn new_bitfield_1 (_flags2 : :: core :: ffi :: c_int) -> __BindgenBitfieldUnit < [u8 ; 3usize] > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [u8 ; 3usize] > = Default :: default () ; __bindgen_bitfield_unit . set (0usize , 24u8 , { let _flags2 : u32 = unsafe { :: core :: mem :: transmute (_flags2) } ; _flags2 as u64 }) ; __bindgen_bitfield_unit } } pub type cookie_read_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __buf : * mut :: core :: ffi :: c_char , __nbytes : usize) -> __ssize_t > ; pub type cookie_write_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __buf : * const :: core :: ffi :: c_char , __nbytes : usize) -> __ssize_t > ; pub type cookie_seek_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void , __pos : * mut __off64_t , __w : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int > ; pub type cookie_close_function_t = :: core :: option :: Option < unsafe extern "C" fn (__cookie : * mut :: core :: ffi :: c_void) -> :: core :: ffi :: 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 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of _IO_cookie_io_functions_t"] [:: core :: mem :: size_of :: < _IO_cookie_io_functions_t > () - 32usize] ; ["Alignment of _IO_cookie_io_functions_t"] [:: core :: mem :: align_of :: < _IO_cookie_io_functions_t > () - 8usize] ; ["Offset of field: _IO_cookie_io_functions_t::read"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , read) - 0usize] ; ["Offset of field: _IO_cookie_io_functions_t::write"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , write) - 8usize] ; ["Offset of field: _IO_cookie_io_functions_t::seek"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , seek) - 16usize] ; ["Offset of field: _IO_cookie_io_functions_t::close"] [:: core :: mem :: offset_of ! (_IO_cookie_io_functions_t , close) - 24usize] ; } ; 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" { pub static mut stdin : * mut FILE ; } extern "C" { pub static mut stdout : * mut FILE ; } extern "C" { pub static mut stderr : * mut FILE ; } extern "C" { pub fn remove (__filename : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rename (__old : * const :: core :: ffi :: c_char , __new : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn renameat (__oldfd : :: core :: ffi :: c_int , __old : * const :: core :: ffi :: c_char , __newfd : :: core :: ffi :: c_int , __new : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fclose (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn tmpfile () -> * mut FILE ; } extern "C" { pub fn tmpnam (arg1 : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn tmpnam_r (__s : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn tempnam (__dir : * const :: core :: ffi :: c_char , __pfx : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn fflush (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fflush_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fopen (__filename : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn freopen (__filename : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char , __stream : * mut FILE) -> * mut FILE ; } extern "C" { pub fn fdopen (__fd : :: core :: ffi :: c_int , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn fopencookie (__magic_cookie : * mut :: core :: ffi :: c_void , __modes : * const :: core :: ffi :: c_char , __io_funcs : cookie_io_functions_t) -> * mut FILE ; } extern "C" { pub fn fmemopen (__s : * mut :: core :: ffi :: c_void , __len : usize , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn open_memstream (__bufloc : * mut * mut :: core :: ffi :: c_char , __sizeloc : * mut usize) -> * mut FILE ; } extern "C" { pub fn setbuf (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char) ; } extern "C" { pub fn setvbuf (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char , __modes : :: core :: ffi :: c_int , __n : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn setbuffer (__stream : * mut FILE , __buf : * mut :: core :: ffi :: c_char , __size : usize) ; } extern "C" { pub fn setlinebuf (__stream : * mut FILE) ; } extern "C" { pub fn fprintf (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn printf (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn sprintf (__s : * mut :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vfprintf (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vprintf (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsprintf (__s : * mut :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn snprintf (__s : * mut :: core :: ffi :: c_char , __maxlen : :: core :: ffi :: c_ulong , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsnprintf (__s : * mut :: core :: ffi :: c_char , __maxlen : :: core :: ffi :: c_ulong , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vasprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __f : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn __asprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn asprintf (__ptr : * mut * mut :: core :: ffi :: c_char , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vdprintf (__fd : :: core :: ffi :: c_int , __fmt : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn dprintf (__fd : :: core :: ffi :: c_int , __fmt : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fscanf (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn scanf (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn sscanf (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } pub type __cfloat128 = __BindgenComplex < u128 > ; pub type _Float128 = u128 ; pub type _Float32 = f32 ; pub type _Float64 = f64 ; pub type _Float32x = f64 ; pub type _Float64x = u128 ; extern "C" { # [link_name = "\u{1}__isoc99_fscanf"] pub fn fscanf1 (__stream : * mut FILE , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_scanf"] pub fn scanf1 (__format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_sscanf"] pub fn sscanf1 (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , ...) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vfscanf (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vscanf (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn vsscanf (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vfscanf"] pub fn vfscanf1 (__s : * mut FILE , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vscanf"] pub fn vscanf1 (__format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { # [link_name = "\u{1}__isoc99_vsscanf"] pub fn vsscanf1 (__s : * const :: core :: ffi :: c_char , __format : * const :: core :: ffi :: c_char , __arg : * mut __va_list_tag) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgetc (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getc (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getchar () -> :: core :: ffi :: c_int ; } extern "C" { pub fn getc_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getchar_unlocked () -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgetc_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fputc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putchar (__c : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fputc_unlocked (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putc_unlocked (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putchar_unlocked (__c : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn getw (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn putw (__w : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fgets (__s : * mut :: core :: ffi :: c_char , __n : :: core :: ffi :: c_int , __stream : * mut FILE) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn __getdelim (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __delimiter : :: core :: ffi :: c_int , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn getdelim (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __delimiter : :: core :: ffi :: c_int , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn getline (__lineptr : * mut * mut :: core :: ffi :: c_char , __n : * mut usize , __stream : * mut FILE) -> __ssize_t ; } extern "C" { pub fn fputs (__s : * const :: core :: ffi :: c_char , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn puts (__s : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ungetc (__c : :: core :: ffi :: c_int , __stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fread (__ptr : * mut :: core :: ffi :: c_void , __size : :: core :: ffi :: c_ulong , __n : :: core :: ffi :: c_ulong , __stream : * mut FILE) -> :: core :: ffi :: c_ulong ; } extern "C" { pub fn fwrite (__ptr : * const :: core :: ffi :: c_void , __size : :: core :: ffi :: c_ulong , __n : :: core :: ffi :: c_ulong , __s : * mut FILE) -> :: core :: ffi :: c_ulong ; } extern "C" { pub fn fread_unlocked (__ptr : * mut :: core :: ffi :: c_void , __size : usize , __n : usize , __stream : * mut FILE) -> usize ; } extern "C" { pub fn fwrite_unlocked (__ptr : * const :: core :: ffi :: c_void , __size : usize , __n : usize , __stream : * mut FILE) -> usize ; } extern "C" { pub fn fseek (__stream : * mut FILE , __off : :: core :: ffi :: c_long , __whence : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ftell (__stream : * mut FILE) -> :: core :: ffi :: c_long ; } extern "C" { pub fn rewind (__stream : * mut FILE) ; } extern "C" { pub fn fseeko (__stream : * mut FILE , __off : __off_t , __whence : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ftello (__stream : * mut FILE) -> __off_t ; } extern "C" { pub fn fgetpos (__stream : * mut FILE , __pos : * mut fpos_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fsetpos (__stream : * mut FILE , __pos : * const fpos_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clearerr (__stream : * mut FILE) ; } extern "C" { pub fn feof (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ferror (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn clearerr_unlocked (__stream : * mut FILE) ; } extern "C" { pub fn feof_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn ferror_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn perror (__s : * const :: core :: ffi :: c_char) ; } extern "C" { pub fn fileno (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn fileno_unlocked (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn pclose (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn popen (__command : * const :: core :: ffi :: c_char , __modes : * const :: core :: ffi :: c_char) -> * mut FILE ; } extern "C" { pub fn ctermid (__s : * mut :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_char ; } extern "C" { pub fn flockfile (__stream : * mut FILE) ; } extern "C" { pub fn ftrylockfile (__stream : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn funlockfile (__stream : * mut FILE) ; } extern "C" { pub fn __uflow (arg1 : * mut FILE) -> :: core :: ffi :: c_int ; } extern "C" { pub fn __overflow (arg1 : * mut FILE , arg2 : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } pub const RC_CONSOLE_UNKNOWN : _bindgen_ty_12 = 0 ; pub const RC_CONSOLE_MEGA_DRIVE : _bindgen_ty_12 = 1 ; pub const RC_CONSOLE_NINTENDO_64 : _bindgen_ty_12 = 2 ; pub const RC_CONSOLE_SUPER_NINTENDO : _bindgen_ty_12 = 3 ; pub const RC_CONSOLE_GAMEBOY : _bindgen_ty_12 = 4 ; pub const RC_CONSOLE_GAMEBOY_ADVANCE : _bindgen_ty_12 = 5 ; pub const RC_CONSOLE_GAMEBOY_COLOR : _bindgen_ty_12 = 6 ; pub const RC_CONSOLE_NINTENDO : _bindgen_ty_12 = 7 ; pub const RC_CONSOLE_PC_ENGINE : _bindgen_ty_12 = 8 ; pub const RC_CONSOLE_SEGA_CD : _bindgen_ty_12 = 9 ; pub const RC_CONSOLE_SEGA_32X : _bindgen_ty_12 = 10 ; pub const RC_CONSOLE_MASTER_SYSTEM : _bindgen_ty_12 = 11 ; pub const RC_CONSOLE_PLAYSTATION : _bindgen_ty_12 = 12 ; pub const RC_CONSOLE_ATARI_LYNX : _bindgen_ty_12 = 13 ; pub const RC_CONSOLE_NEOGEO_POCKET : _bindgen_ty_12 = 14 ; pub const RC_CONSOLE_GAME_GEAR : _bindgen_ty_12 = 15 ; pub const RC_CONSOLE_GAMECUBE : _bindgen_ty_12 = 16 ; pub const RC_CONSOLE_ATARI_JAGUAR : _bindgen_ty_12 = 17 ; pub const RC_CONSOLE_NINTENDO_DS : _bindgen_ty_12 = 18 ; pub const RC_CONSOLE_WII : _bindgen_ty_12 = 19 ; pub const RC_CONSOLE_WII_U : _bindgen_ty_12 = 20 ; pub const RC_CONSOLE_PLAYSTATION_2 : _bindgen_ty_12 = 21 ; pub const RC_CONSOLE_XBOX : _bindgen_ty_12 = 22 ; pub const RC_CONSOLE_MAGNAVOX_ODYSSEY2 : _bindgen_ty_12 = 23 ; pub const RC_CONSOLE_POKEMON_MINI : _bindgen_ty_12 = 24 ; pub const RC_CONSOLE_ATARI_2600 : _bindgen_ty_12 = 25 ; pub const RC_CONSOLE_MS_DOS : _bindgen_ty_12 = 26 ; pub const RC_CONSOLE_ARCADE : _bindgen_ty_12 = 27 ; pub const RC_CONSOLE_VIRTUAL_BOY : _bindgen_ty_12 = 28 ; pub const RC_CONSOLE_MSX : _bindgen_ty_12 = 29 ; pub const RC_CONSOLE_COMMODORE_64 : _bindgen_ty_12 = 30 ; pub const RC_CONSOLE_ZX81 : _bindgen_ty_12 = 31 ; pub const RC_CONSOLE_ORIC : _bindgen_ty_12 = 32 ; pub const RC_CONSOLE_SG1000 : _bindgen_ty_12 = 33 ; pub const RC_CONSOLE_VIC20 : _bindgen_ty_12 = 34 ; pub const RC_CONSOLE_AMIGA : _bindgen_ty_12 = 35 ; pub const RC_CONSOLE_ATARI_ST : _bindgen_ty_12 = 36 ; pub const RC_CONSOLE_AMSTRAD_PC : _bindgen_ty_12 = 37 ; pub const RC_CONSOLE_APPLE_II : _bindgen_ty_12 = 38 ; pub const RC_CONSOLE_SATURN : _bindgen_ty_12 = 39 ; pub const RC_CONSOLE_DREAMCAST : _bindgen_ty_12 = 40 ; pub const RC_CONSOLE_PSP : _bindgen_ty_12 = 41 ; pub const RC_CONSOLE_CDI : _bindgen_ty_12 = 42 ; pub const RC_CONSOLE_3DO : _bindgen_ty_12 = 43 ; pub const RC_CONSOLE_COLECOVISION : _bindgen_ty_12 = 44 ; pub const RC_CONSOLE_INTELLIVISION : _bindgen_ty_12 = 45 ; pub const RC_CONSOLE_VECTREX : _bindgen_ty_12 = 46 ; pub const RC_CONSOLE_PC8800 : _bindgen_ty_12 = 47 ; pub const RC_CONSOLE_PC9800 : _bindgen_ty_12 = 48 ; pub const RC_CONSOLE_PCFX : _bindgen_ty_12 = 49 ; pub const RC_CONSOLE_ATARI_5200 : _bindgen_ty_12 = 50 ; pub const RC_CONSOLE_ATARI_7800 : _bindgen_ty_12 = 51 ; pub const RC_CONSOLE_X68K : _bindgen_ty_12 = 52 ; pub const RC_CONSOLE_WONDERSWAN : _bindgen_ty_12 = 53 ; pub const RC_CONSOLE_CASSETTEVISION : _bindgen_ty_12 = 54 ; pub const RC_CONSOLE_SUPER_CASSETTEVISION : _bindgen_ty_12 = 55 ; pub const RC_CONSOLE_NEO_GEO_CD : _bindgen_ty_12 = 56 ; pub const RC_CONSOLE_FAIRCHILD_CHANNEL_F : _bindgen_ty_12 = 57 ; pub const RC_CONSOLE_FM_TOWNS : _bindgen_ty_12 = 58 ; pub const RC_CONSOLE_ZX_SPECTRUM : _bindgen_ty_12 = 59 ; pub const RC_CONSOLE_GAME_AND_WATCH : _bindgen_ty_12 = 60 ; pub const RC_CONSOLE_NOKIA_NGAGE : _bindgen_ty_12 = 61 ; pub const RC_CONSOLE_NINTENDO_3DS : _bindgen_ty_12 = 62 ; pub const RC_CONSOLE_SUPERVISION : _bindgen_ty_12 = 63 ; pub const RC_CONSOLE_SHARPX1 : _bindgen_ty_12 = 64 ; pub const RC_CONSOLE_TIC80 : _bindgen_ty_12 = 65 ; pub const RC_CONSOLE_THOMSONTO8 : _bindgen_ty_12 = 66 ; pub const RC_CONSOLE_PC6000 : _bindgen_ty_12 = 67 ; pub const RC_CONSOLE_PICO : _bindgen_ty_12 = 68 ; pub const RC_CONSOLE_MEGADUCK : _bindgen_ty_12 = 69 ; pub const RC_CONSOLE_ZEEBO : _bindgen_ty_12 = 70 ; pub const RC_CONSOLE_ARDUBOY : _bindgen_ty_12 = 71 ; pub const RC_CONSOLE_WASM4 : _bindgen_ty_12 = 72 ; pub const RC_CONSOLE_ARCADIA_2001 : _bindgen_ty_12 = 73 ; pub const RC_CONSOLE_INTERTON_VC_4000 : _bindgen_ty_12 = 74 ; pub const RC_CONSOLE_ELEKTOR_TV_GAMES_COMPUTER : _bindgen_ty_12 = 75 ; pub const RC_CONSOLE_PC_ENGINE_CD : _bindgen_ty_12 = 76 ; pub const RC_CONSOLE_ATARI_JAGUAR_CD : _bindgen_ty_12 = 77 ; pub const RC_CONSOLE_NINTENDO_DSI : _bindgen_ty_12 = 78 ; pub const RC_CONSOLE_TI83 : _bindgen_ty_12 = 79 ; pub const RC_CONSOLE_UZEBOX : _bindgen_ty_12 = 80 ; pub const RC_CONSOLE_HUBS : _bindgen_ty_12 = 100 ; pub const RC_CONSOLE_EVENTS : _bindgen_ty_12 = 101 ; pub const RC_CONSOLE_STANDALONE : _bindgen_ty_12 = 102 ; # [doc = "\\\n| Console identifiers                                                         |\n\\"] pub type _bindgen_ty_12 = :: core :: ffi :: c_uint ; extern "C" { pub fn rc_console_name (console_id : u32) -> * const :: core :: ffi :: c_char ; } pub const RC_MEMORY_TYPE_SYSTEM_RAM : _bindgen_ty_13 = 0 ; pub const RC_MEMORY_TYPE_SAVE_RAM : _bindgen_ty_13 = 1 ; pub const RC_MEMORY_TYPE_VIDEO_RAM : _bindgen_ty_13 = 2 ; pub const RC_MEMORY_TYPE_READONLY : _bindgen_ty_13 = 3 ; pub const RC_MEMORY_TYPE_HARDWARE_CONTROLLER : _bindgen_ty_13 = 4 ; pub const RC_MEMORY_TYPE_VIRTUAL_RAM : _bindgen_ty_13 = 5 ; pub const RC_MEMORY_TYPE_UNUSED : _bindgen_ty_13 = 6 ; # [doc = "\\\n| Memory mapping                                                              |\n\\"] pub type _bindgen_ty_13 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memory_region_t { pub start_address : u32 , pub end_address : u32 , pub real_address : u32 , pub type_ : u8 , pub description : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memory_region_t"] [:: core :: mem :: size_of :: < rc_memory_region_t > () - 24usize] ; ["Alignment of rc_memory_region_t"] [:: core :: mem :: align_of :: < rc_memory_region_t > () - 8usize] ; ["Offset of field: rc_memory_region_t::start_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , start_address) - 0usize] ; ["Offset of field: rc_memory_region_t::end_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , end_address) - 4usize] ; ["Offset of field: rc_memory_region_t::real_address"] [:: core :: mem :: offset_of ! (rc_memory_region_t , real_address) - 8usize] ; ["Offset of field: rc_memory_region_t::type_"] [:: core :: mem :: offset_of ! (rc_memory_region_t , type_) - 12usize] ; ["Offset of field: rc_memory_region_t::description"] [:: core :: mem :: offset_of ! (rc_memory_region_t , description) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_memory_regions_t { pub region : * const rc_memory_region_t , pub num_regions : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_memory_regions_t"] [:: core :: mem :: size_of :: < rc_memory_regions_t > () - 16usize] ; ["Alignment of rc_memory_regions_t"] [:: core :: mem :: align_of :: < rc_memory_regions_t > () - 8usize] ; ["Offset of field: rc_memory_regions_t::region"] [:: core :: mem :: offset_of ! (rc_memory_regions_t , region) - 0usize] ; ["Offset of field: rc_memory_regions_t::num_regions"] [:: core :: mem :: offset_of ! (rc_memory_regions_t , num_regions) - 8usize] ; } ; extern "C" { pub fn rc_console_memory_regions (console_id : u32) -> * const rc_memory_regions_t ; } extern "C" { pub fn rc_hash_generate_from_buffer (hash : * mut :: core :: ffi :: c_char , console_id : u32 , buffer : * const u8 , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_hash_generate_from_file (hash : * mut :: core :: ffi :: c_char , console_id : u32 , path : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_iterator { pub buffer : * const u8 , pub buffer_size : usize , pub consoles : [u8 ; 12usize] , pub index : :: core :: ffi :: c_int , pub path : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_iterator"] [:: core :: mem :: size_of :: < rc_hash_iterator > () - 40usize] ; ["Alignment of rc_hash_iterator"] [:: core :: mem :: align_of :: < rc_hash_iterator > () - 8usize] ; ["Offset of field: rc_hash_iterator::buffer"] [:: core :: mem :: offset_of ! (rc_hash_iterator , buffer) - 0usize] ; ["Offset of field: rc_hash_iterator::buffer_size"] [:: core :: mem :: offset_of ! (rc_hash_iterator , buffer_size) - 8usize] ; ["Offset of field: rc_hash_iterator::consoles"] [:: core :: mem :: offset_of ! (rc_hash_iterator , consoles) - 16usize] ; ["Offset of field: rc_hash_iterator::index"] [:: core :: mem :: offset_of ! (rc_hash_iterator , index) - 28usize] ; ["Offset of field: rc_hash_iterator::path"] [:: core :: mem :: offset_of ! (rc_hash_iterator , path) - 32usize] ; } ; pub type rc_hash_iterator_t = rc_hash_iterator ; extern "C" { pub fn rc_hash_initialize_iterator (iterator : * mut rc_hash_iterator , path : * const :: core :: ffi :: c_char , buffer : * const u8 , buffer_size : usize) ; } extern "C" { pub fn rc_hash_destroy_iterator (iterator : * mut rc_hash_iterator) ; } extern "C" { pub fn rc_hash_iterate (hash : * mut :: core :: ffi :: c_char , iterator : * mut rc_hash_iterator) -> :: core :: ffi :: c_int ; } pub type rc_hash_message_callback = :: core :: option :: Option < unsafe extern "C" fn (arg1 : * const :: core :: ffi :: c_char) > ; extern "C" { pub fn rc_hash_init_error_message_callback (callback : rc_hash_message_callback) ; } extern "C" { pub fn rc_hash_init_verbose_message_callback (callback : rc_hash_message_callback) ; } pub type rc_hash_filereader_open_file_handler = :: core :: option :: Option < unsafe extern "C" fn (path_utf8 : * const :: core :: ffi :: c_char) -> * mut :: core :: ffi :: c_void > ; pub type rc_hash_filereader_seek_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void , offset : i64 , origin : :: core :: ffi :: c_int) > ; pub type rc_hash_filereader_tell_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void) -> i64 > ; pub type rc_hash_filereader_read_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void , buffer : * mut :: core :: ffi :: c_void , requested_bytes : usize) -> usize > ; pub type rc_hash_filereader_close_file_handler = :: core :: option :: Option < unsafe extern "C" fn (file_handle : * mut :: core :: ffi :: c_void) > ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_filereader { pub open : rc_hash_filereader_open_file_handler , pub seek : rc_hash_filereader_seek_handler , pub tell : rc_hash_filereader_tell_handler , pub read : rc_hash_filereader_read_handler , pub close : rc_hash_filereader_close_file_handler , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_filereader"] [:: core :: mem :: size_of :: < rc_hash_filereader > () - 40usize] ; ["Alignment of rc_hash_filereader"] [:: core :: mem :: align_of :: < rc_hash_filereader > () - 8usize] ; ["Offset of field: rc_hash_filereader::open"] [:: core :: mem :: offset_of ! (rc_hash_filereader , open) - 0usize] ; ["Offset of field: rc_hash_filereader::seek"] [:: core :: mem :: offset_of ! (rc_hash_filereader , seek) - 8usize] ; ["Offset of field: rc_hash_filereader::tell"] [:: core :: mem :: offset_of ! (rc_hash_filereader , tell) - 16usize] ; ["Offset of field: rc_hash_filereader::read"] [:: core :: mem :: offset_of ! (rc_hash_filereader , read) - 24usize] ; ["Offset of field: rc_hash_filereader::close"] [:: core :: mem :: offset_of ! (rc_hash_filereader , close) - 32usize] ; } ; extern "C" { pub fn rc_hash_init_custom_filereader (reader : * mut rc_hash_filereader) ; } pub type rc_hash_cdreader_open_track_handler = :: core :: option :: Option < unsafe extern "C" fn (path : * const :: core :: ffi :: c_char , track : u32) -> * mut :: core :: ffi :: c_void > ; pub type rc_hash_cdreader_read_sector_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void , sector : u32 , buffer : * mut :: core :: ffi :: c_void , requested_bytes : usize) -> usize > ; pub type rc_hash_cdreader_close_track_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void) > ; pub type rc_hash_cdreader_first_track_sector_handler = :: core :: option :: Option < unsafe extern "C" fn (track_handle : * mut :: core :: ffi :: c_void) -> u32 > ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_hash_cdreader { pub open_track : rc_hash_cdreader_open_track_handler , pub read_sector : rc_hash_cdreader_read_sector_handler , pub close_track : rc_hash_cdreader_close_track_handler , pub first_track_sector : rc_hash_cdreader_first_track_sector_handler , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_hash_cdreader"] [:: core :: mem :: size_of :: < rc_hash_cdreader > () - 32usize] ; ["Alignment of rc_hash_cdreader"] [:: core :: mem :: align_of :: < rc_hash_cdreader > () - 8usize] ; ["Offset of field: rc_hash_cdreader::open_track"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , open_track) - 0usize] ; ["Offset of field: rc_hash_cdreader::read_sector"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , read_sector) - 8usize] ; ["Offset of field: rc_hash_cdreader::close_track"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , close_track) - 16usize] ; ["Offset of field: rc_hash_cdreader::first_track_sector"] [:: core :: mem :: offset_of ! (rc_hash_cdreader , first_track_sector) - 24usize] ; } ; extern "C" { pub fn rc_hash_get_default_cdreader (cdreader : * mut rc_hash_cdreader) ; } extern "C" { pub fn rc_hash_init_default_cdreader () ; } extern "C" { pub fn rc_hash_init_custom_cdreader (reader : * mut rc_hash_cdreader) ; } pub type rc_hash_3ds_get_cia_normal_key_func = :: core :: option :: Option < unsafe extern "C" fn (common_key_index : u8 , out_normal_key : * mut u8) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_hash_init_3ds_get_cia_normal_key_func (func : rc_hash_3ds_get_cia_normal_key_func) ; } pub type rc_hash_3ds_get_ncch_normal_keys_func = :: core :: option :: Option < unsafe extern "C" fn (primary_key_y : * mut u8 , secondary_key_x_slot : u8 , optional_program_id : * mut u8 , out_primary_key : * mut u8 , out_secondary_key : * mut u8) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_hash_init_3ds_get_ncch_normal_keys_func (func : rc_hash_3ds_get_ncch_normal_keys_func) ; } # [doc = " API parameters for a fetch image request.\n NOTE: fetch image server response is the raw image data. There is no rc_api_process_fetch_image_response function."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_image_request_t { pub image_name : * const :: core :: ffi :: c_char , pub image_type : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_image_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_image_request_t > () - 16usize] ; ["Alignment of rc_api_fetch_image_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_image_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_image_request_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_fetch_image_request_t , image_name) - 0usize] ; ["Offset of field: rc_api_fetch_image_request_t::image_type"] [:: core :: mem :: offset_of ! (rc_api_fetch_image_request_t , image_type) - 8usize] ; } ; extern "C" { pub fn rc_api_init_fetch_image_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_image_request_t) -> :: core :: ffi :: c_int ; } # [doc = " API parameters for a resolve hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_resolve_hash_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_hash : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_resolve_hash_request_t"] [:: core :: mem :: size_of :: < rc_api_resolve_hash_request_t > () - 24usize] ; ["Alignment of rc_api_resolve_hash_request_t"] [:: core :: mem :: align_of :: < rc_api_resolve_hash_request_t > () - 8usize] ; ["Offset of field: rc_api_resolve_hash_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , username) - 0usize] ; ["Offset of field: rc_api_resolve_hash_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_resolve_hash_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_request_t , game_hash) - 16usize] ; } ; # [doc = " Response data for a resolve hash request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_resolve_hash_response_t { pub game_id : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_resolve_hash_response_t"] [:: core :: mem :: size_of :: < rc_api_resolve_hash_response_t > () - 320usize] ; ["Alignment of rc_api_resolve_hash_response_t"] [:: core :: mem :: align_of :: < rc_api_resolve_hash_response_t > () - 8usize] ; ["Offset of field: rc_api_resolve_hash_response_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_response_t , game_id) - 0usize] ; ["Offset of field: rc_api_resolve_hash_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_resolve_hash_response_t , response) - 8usize] ; } ; extern "C" { pub fn rc_api_init_resolve_hash_request (request : * mut rc_api_request_t , api_params : * const rc_api_resolve_hash_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_resolve_hash_response (response : * mut rc_api_resolve_hash_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_resolve_hash_server_response (response : * mut rc_api_resolve_hash_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_resolve_hash_response (response : * mut rc_api_resolve_hash_response_t) ; } # [doc = " API parameters for a fetch game data request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_data_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_data_request_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_data_request_t > () - 24usize] ; ["Alignment of rc_api_fetch_game_data_request_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_data_request_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , username) - 0usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_fetch_game_data_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_request_t , game_id) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_leaderboard_definition_t { pub id : u32 , pub format : :: core :: ffi :: c_int , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub lower_is_better : u8 , pub hidden : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_leaderboard_definition_t"] [:: core :: mem :: size_of :: < rc_api_leaderboard_definition_t > () - 40usize] ; ["Alignment of rc_api_leaderboard_definition_t"] [:: core :: mem :: align_of :: < rc_api_leaderboard_definition_t > () - 8usize] ; ["Offset of field: rc_api_leaderboard_definition_t::id"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , id) - 0usize] ; ["Offset of field: rc_api_leaderboard_definition_t::format"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , format) - 4usize] ; ["Offset of field: rc_api_leaderboard_definition_t::title"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , title) - 8usize] ; ["Offset of field: rc_api_leaderboard_definition_t::description"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , description) - 16usize] ; ["Offset of field: rc_api_leaderboard_definition_t::definition"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , definition) - 24usize] ; ["Offset of field: rc_api_leaderboard_definition_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , lower_is_better) - 32usize] ; ["Offset of field: rc_api_leaderboard_definition_t::hidden"] [:: core :: mem :: offset_of ! (rc_api_leaderboard_definition_t , hidden) - 33usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_achievement_definition_t { pub id : u32 , pub points : u32 , pub category : u32 , pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub definition : * const :: core :: ffi :: c_char , pub author : * const :: core :: ffi :: c_char , pub badge_name : * const :: core :: ffi :: c_char , pub created : time_t , pub updated : time_t , pub type_ : u32 , pub rarity : f32 , pub rarity_hardcore : f32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_achievement_definition_t"] [:: core :: mem :: size_of :: < rc_api_achievement_definition_t > () - 88usize] ; ["Alignment of rc_api_achievement_definition_t"] [:: core :: mem :: align_of :: < rc_api_achievement_definition_t > () - 8usize] ; ["Offset of field: rc_api_achievement_definition_t::id"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , id) - 0usize] ; ["Offset of field: rc_api_achievement_definition_t::points"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , points) - 4usize] ; ["Offset of field: rc_api_achievement_definition_t::category"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , category) - 8usize] ; ["Offset of field: rc_api_achievement_definition_t::title"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , title) - 16usize] ; ["Offset of field: rc_api_achievement_definition_t::description"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , description) - 24usize] ; ["Offset of field: rc_api_achievement_definition_t::definition"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , definition) - 32usize] ; ["Offset of field: rc_api_achievement_definition_t::author"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , author) - 40usize] ; ["Offset of field: rc_api_achievement_definition_t::badge_name"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , badge_name) - 48usize] ; ["Offset of field: rc_api_achievement_definition_t::created"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , created) - 56usize] ; ["Offset of field: rc_api_achievement_definition_t::updated"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , updated) - 64usize] ; ["Offset of field: rc_api_achievement_definition_t::type_"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , type_) - 72usize] ; ["Offset of field: rc_api_achievement_definition_t::rarity"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , rarity) - 76usize] ; ["Offset of field: rc_api_achievement_definition_t::rarity_hardcore"] [:: core :: mem :: offset_of ! (rc_api_achievement_definition_t , rarity_hardcore) - 80usize] ; } ; # [doc = " Response data for a fetch game data request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_fetch_game_data_response_t { pub id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub image_name : * const :: core :: ffi :: c_char , pub rich_presence_script : * const :: core :: ffi :: c_char , pub achievements : * mut rc_api_achievement_definition_t , pub num_achievements : u32 , pub leaderboards : * mut rc_api_leaderboard_definition_t , pub num_leaderboards : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_fetch_game_data_response_t"] [:: core :: mem :: size_of :: < rc_api_fetch_game_data_response_t > () - 376usize] ; ["Alignment of rc_api_fetch_game_data_response_t"] [:: core :: mem :: align_of :: < rc_api_fetch_game_data_response_t > () - 8usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , id) - 0usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::console_id"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , console_id) - 4usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::title"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , title) - 8usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::image_name"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , image_name) - 16usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::rich_presence_script"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , rich_presence_script) - 24usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::achievements"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , achievements) - 32usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , num_achievements) - 40usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::leaderboards"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , leaderboards) - 48usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , num_leaderboards) - 56usize] ; ["Offset of field: rc_api_fetch_game_data_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_fetch_game_data_response_t , response) - 64usize] ; } ; extern "C" { pub fn rc_api_init_fetch_game_data_request (request : * mut rc_api_request_t , api_params : * const rc_api_fetch_game_data_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_data_response (response : * mut rc_api_fetch_game_data_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_fetch_game_data_server_response (response : * mut rc_api_fetch_game_data_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_fetch_game_data_response (response : * mut rc_api_fetch_game_data_response_t) ; } # [doc = " API parameters for a ping request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_ping_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub game_id : u32 , pub rich_presence : * const :: core :: ffi :: c_char , pub game_hash : * const :: core :: ffi :: c_char , pub hardcore : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_ping_request_t"] [:: core :: mem :: size_of :: < rc_api_ping_request_t > () - 48usize] ; ["Alignment of rc_api_ping_request_t"] [:: core :: mem :: align_of :: < rc_api_ping_request_t > () - 8usize] ; ["Offset of field: rc_api_ping_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , username) - 0usize] ; ["Offset of field: rc_api_ping_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_ping_request_t::game_id"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , game_id) - 16usize] ; ["Offset of field: rc_api_ping_request_t::rich_presence"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , rich_presence) - 24usize] ; ["Offset of field: rc_api_ping_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , game_hash) - 32usize] ; ["Offset of field: rc_api_ping_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_ping_request_t , hardcore) - 40usize] ; } ; # [doc = " Response data for a ping request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_ping_response_t { pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_ping_response_t"] [:: core :: mem :: size_of :: < rc_api_ping_response_t > () - 312usize] ; ["Alignment of rc_api_ping_response_t"] [:: core :: mem :: align_of :: < rc_api_ping_response_t > () - 8usize] ; ["Offset of field: rc_api_ping_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_ping_response_t , response) - 0usize] ; } ; extern "C" { pub fn rc_api_init_ping_request (request : * mut rc_api_request_t , api_params : * const rc_api_ping_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_ping_response (response : * mut rc_api_ping_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_ping_server_response (response : * mut rc_api_ping_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_ping_response (response : * mut rc_api_ping_response_t) ; } # [doc = " API parameters for an award achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_award_achievement_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub achievement_id : u32 , pub hardcore : u32 , pub game_hash : * const :: core :: ffi :: c_char , pub seconds_since_unlock : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_award_achievement_request_t"] [:: core :: mem :: size_of :: < rc_api_award_achievement_request_t > () - 40usize] ; ["Alignment of rc_api_award_achievement_request_t"] [:: core :: mem :: align_of :: < rc_api_award_achievement_request_t > () - 8usize] ; ["Offset of field: rc_api_award_achievement_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , username) - 0usize] ; ["Offset of field: rc_api_award_achievement_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_award_achievement_request_t::achievement_id"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , achievement_id) - 16usize] ; ["Offset of field: rc_api_award_achievement_request_t::hardcore"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , hardcore) - 20usize] ; ["Offset of field: rc_api_award_achievement_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_award_achievement_request_t::seconds_since_unlock"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_request_t , seconds_since_unlock) - 32usize] ; } ; # [doc = " Response data for an award achievement request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_award_achievement_response_t { pub awarded_achievement_id : u32 , pub new_player_score : u32 , pub new_player_score_softcore : u32 , pub achievements_remaining : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_award_achievement_response_t"] [:: core :: mem :: size_of :: < rc_api_award_achievement_response_t > () - 328usize] ; ["Alignment of rc_api_award_achievement_response_t"] [:: core :: mem :: align_of :: < rc_api_award_achievement_response_t > () - 8usize] ; ["Offset of field: rc_api_award_achievement_response_t::awarded_achievement_id"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , awarded_achievement_id) - 0usize] ; ["Offset of field: rc_api_award_achievement_response_t::new_player_score"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , new_player_score) - 4usize] ; ["Offset of field: rc_api_award_achievement_response_t::new_player_score_softcore"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , new_player_score_softcore) - 8usize] ; ["Offset of field: rc_api_award_achievement_response_t::achievements_remaining"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , achievements_remaining) - 12usize] ; ["Offset of field: rc_api_award_achievement_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_award_achievement_response_t , response) - 16usize] ; } ; extern "C" { pub fn rc_api_init_award_achievement_request (request : * mut rc_api_request_t , api_params : * const rc_api_award_achievement_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_award_achievement_response (response : * mut rc_api_award_achievement_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_award_achievement_server_response (response : * mut rc_api_award_achievement_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_award_achievement_response (response : * mut rc_api_award_achievement_response_t) ; } # [doc = " API parameters for a submit lboard entry request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_submit_lboard_entry_request_t { pub username : * const :: core :: ffi :: c_char , pub api_token : * const :: core :: ffi :: c_char , pub leaderboard_id : u32 , pub score : i32 , pub game_hash : * const :: core :: ffi :: c_char , pub seconds_since_completion : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_submit_lboard_entry_request_t"] [:: core :: mem :: size_of :: < rc_api_submit_lboard_entry_request_t > () - 40usize] ; ["Alignment of rc_api_submit_lboard_entry_request_t"] [:: core :: mem :: align_of :: < rc_api_submit_lboard_entry_request_t > () - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::username"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , username) - 0usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::api_token"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , api_token) - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , leaderboard_id) - 16usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , score) - 20usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::game_hash"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , game_hash) - 24usize] ; ["Offset of field: rc_api_submit_lboard_entry_request_t::seconds_since_completion"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_request_t , seconds_since_completion) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_lboard_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub score : i32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_lboard_entry_t"] [:: core :: mem :: size_of :: < rc_api_lboard_entry_t > () - 16usize] ; ["Alignment of rc_api_lboard_entry_t"] [:: core :: mem :: align_of :: < rc_api_lboard_entry_t > () - 8usize] ; ["Offset of field: rc_api_lboard_entry_t::username"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , username) - 0usize] ; ["Offset of field: rc_api_lboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , rank) - 8usize] ; ["Offset of field: rc_api_lboard_entry_t::score"] [:: core :: mem :: offset_of ! (rc_api_lboard_entry_t , score) - 12usize] ; } ; # [doc = " Response data for a submit lboard entry request."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_api_submit_lboard_entry_response_t { pub submitted_score : i32 , pub best_score : i32 , pub new_rank : u32 , pub num_entries : u32 , pub top_entries : * mut rc_api_lboard_entry_t , pub num_top_entries : u32 , pub response : rc_api_response_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_api_submit_lboard_entry_response_t"] [:: core :: mem :: size_of :: < rc_api_submit_lboard_entry_response_t > () - 344usize] ; ["Alignment of rc_api_submit_lboard_entry_response_t"] [:: core :: mem :: align_of :: < rc_api_submit_lboard_entry_response_t > () - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::submitted_score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , submitted_score) - 0usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::best_score"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , best_score) - 4usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::new_rank"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , new_rank) - 8usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::num_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , num_entries) - 12usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::top_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , top_entries) - 16usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::num_top_entries"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , num_top_entries) - 24usize] ; ["Offset of field: rc_api_submit_lboard_entry_response_t::response"] [:: core :: mem :: offset_of ! (rc_api_submit_lboard_entry_response_t , response) - 32usize] ; } ; extern "C" { pub fn rc_api_init_submit_lboard_entry_request (request : * mut rc_api_request_t , api_params : * const rc_api_submit_lboard_entry_request_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_submit_lboard_entry_response (response : * mut rc_api_submit_lboard_entry_response_t , server_response : * const :: core :: ffi :: c_char) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_process_submit_lboard_entry_server_response (response : * mut rc_api_submit_lboard_entry_response_t , server_response : * const rc_api_server_response_t) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_api_destroy_submit_lboard_entry_response (response : * mut rc_api_submit_lboard_entry_response_t) ; } # [doc = " Callback used to read num_bytes bytes from memory starting at address. If\n num_bytes is greater than 1, the value is read in little-endian from\n memory."] pub type rc_runtime_peek_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , num_bytes : u32 , ud : * mut :: core :: ffi :: c_void) -> u32 > ; # [doc = "\\\n| Runtime                                                                     |\n\\"] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_trigger_t { pub id : u32 , pub trigger : * mut rc_trigger_t , pub buffer : * mut :: core :: ffi :: c_void , pub invalid_memref : * mut rc_memref_t , pub md5 : [u8 ; 16usize] , pub serialized_size : i32 , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_trigger_t"] [:: core :: mem :: size_of :: < rc_runtime_trigger_t > () - 56usize] ; ["Alignment of rc_runtime_trigger_t"] [:: core :: mem :: align_of :: < rc_runtime_trigger_t > () - 8usize] ; ["Offset of field: rc_runtime_trigger_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , id) - 0usize] ; ["Offset of field: rc_runtime_trigger_t::trigger"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , trigger) - 8usize] ; ["Offset of field: rc_runtime_trigger_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , buffer) - 16usize] ; ["Offset of field: rc_runtime_trigger_t::invalid_memref"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , invalid_memref) - 24usize] ; ["Offset of field: rc_runtime_trigger_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , md5) - 32usize] ; ["Offset of field: rc_runtime_trigger_t::serialized_size"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , serialized_size) - 48usize] ; ["Offset of field: rc_runtime_trigger_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_trigger_t , owns_memrefs) - 52usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_lboard_t { pub id : u32 , pub value : i32 , pub lboard : * mut rc_lboard_t , pub buffer : * mut :: core :: ffi :: c_void , pub invalid_memref : * mut rc_memref_t , pub md5 : [u8 ; 16usize] , pub serialized_size : u32 , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_lboard_t"] [:: core :: mem :: size_of :: < rc_runtime_lboard_t > () - 56usize] ; ["Alignment of rc_runtime_lboard_t"] [:: core :: mem :: align_of :: < rc_runtime_lboard_t > () - 8usize] ; ["Offset of field: rc_runtime_lboard_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , id) - 0usize] ; ["Offset of field: rc_runtime_lboard_t::value"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , value) - 4usize] ; ["Offset of field: rc_runtime_lboard_t::lboard"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , lboard) - 8usize] ; ["Offset of field: rc_runtime_lboard_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , buffer) - 16usize] ; ["Offset of field: rc_runtime_lboard_t::invalid_memref"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , invalid_memref) - 24usize] ; ["Offset of field: rc_runtime_lboard_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , md5) - 32usize] ; ["Offset of field: rc_runtime_lboard_t::serialized_size"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , serialized_size) - 48usize] ; ["Offset of field: rc_runtime_lboard_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_lboard_t , owns_memrefs) - 52usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_richpresence_t { pub richpresence : * mut rc_richpresence_t , pub buffer : * mut :: core :: ffi :: c_void , pub previous : * mut rc_runtime_richpresence_t , pub md5 : [u8 ; 16usize] , pub owns_memrefs : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_richpresence_t"] [:: core :: mem :: size_of :: < rc_runtime_richpresence_t > () - 48usize] ; ["Alignment of rc_runtime_richpresence_t"] [:: core :: mem :: align_of :: < rc_runtime_richpresence_t > () - 8usize] ; ["Offset of field: rc_runtime_richpresence_t::richpresence"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , richpresence) - 0usize] ; ["Offset of field: rc_runtime_richpresence_t::buffer"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , buffer) - 8usize] ; ["Offset of field: rc_runtime_richpresence_t::previous"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , previous) - 16usize] ; ["Offset of field: rc_runtime_richpresence_t::md5"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , md5) - 24usize] ; ["Offset of field: rc_runtime_richpresence_t::owns_memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_richpresence_t , owns_memrefs) - 40usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_t { pub triggers : * mut rc_runtime_trigger_t , pub trigger_count : u32 , pub trigger_capacity : u32 , pub lboards : * mut rc_runtime_lboard_t , pub lboard_count : u32 , pub lboard_capacity : u32 , pub richpresence : * mut rc_runtime_richpresence_t , pub memrefs : * mut rc_memref_t , pub next_memref : * mut * mut rc_memref_t , pub variables : * mut rc_value_t , pub next_variable : * mut * mut rc_value_t , pub owns_self : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_t"] [:: core :: mem :: size_of :: < rc_runtime_t > () - 80usize] ; ["Alignment of rc_runtime_t"] [:: core :: mem :: align_of :: < rc_runtime_t > () - 8usize] ; ["Offset of field: rc_runtime_t::triggers"] [:: core :: mem :: offset_of ! (rc_runtime_t , triggers) - 0usize] ; ["Offset of field: rc_runtime_t::trigger_count"] [:: core :: mem :: offset_of ! (rc_runtime_t , trigger_count) - 8usize] ; ["Offset of field: rc_runtime_t::trigger_capacity"] [:: core :: mem :: offset_of ! (rc_runtime_t , trigger_capacity) - 12usize] ; ["Offset of field: rc_runtime_t::lboards"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboards) - 16usize] ; ["Offset of field: rc_runtime_t::lboard_count"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboard_count) - 24usize] ; ["Offset of field: rc_runtime_t::lboard_capacity"] [:: core :: mem :: offset_of ! (rc_runtime_t , lboard_capacity) - 28usize] ; ["Offset of field: rc_runtime_t::richpresence"] [:: core :: mem :: offset_of ! (rc_runtime_t , richpresence) - 32usize] ; ["Offset of field: rc_runtime_t::memrefs"] [:: core :: mem :: offset_of ! (rc_runtime_t , memrefs) - 40usize] ; ["Offset of field: rc_runtime_t::next_memref"] [:: core :: mem :: offset_of ! (rc_runtime_t , next_memref) - 48usize] ; ["Offset of field: rc_runtime_t::variables"] [:: core :: mem :: offset_of ! (rc_runtime_t , variables) - 56usize] ; ["Offset of field: rc_runtime_t::next_variable"] [:: core :: mem :: offset_of ! (rc_runtime_t , next_variable) - 64usize] ; ["Offset of field: rc_runtime_t::owns_self"] [:: core :: mem :: offset_of ! (rc_runtime_t , owns_self) - 72usize] ; } ; extern "C" { pub fn rc_runtime_alloc () -> * mut rc_runtime_t ; } extern "C" { pub fn rc_runtime_init (runtime : * mut rc_runtime_t) ; } extern "C" { pub fn rc_runtime_destroy (runtime : * mut rc_runtime_t) ; } extern "C" { pub fn rc_runtime_activate_achievement (runtime : * mut rc_runtime_t , id : u32 , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deactivate_achievement (runtime : * mut rc_runtime_t , id : u32) ; } extern "C" { pub fn rc_runtime_get_achievement (runtime : * const rc_runtime_t , id : u32) -> * mut rc_trigger_t ; } extern "C" { pub fn rc_runtime_get_achievement_measured (runtime : * const rc_runtime_t , id : u32 , measured_value : * mut :: core :: ffi :: c_uint , measured_target : * mut :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_format_achievement_measured (runtime : * const rc_runtime_t , id : u32 , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_activate_lboard (runtime : * mut rc_runtime_t , id : u32 , memaddr : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deactivate_lboard (runtime : * mut rc_runtime_t , id : u32) ; } extern "C" { pub fn rc_runtime_get_lboard (runtime : * const rc_runtime_t , id : u32) -> * mut rc_lboard_t ; } extern "C" { pub fn rc_runtime_format_lboard_value (buffer : * mut :: core :: ffi :: c_char , size : :: core :: ffi :: c_int , value : i32 , format : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_activate_richpresence (runtime : * mut rc_runtime_t , script : * const :: core :: ffi :: c_char , L : * mut lua_State , funcs_idx : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_get_richpresence (runtime : * const rc_runtime_t , buffer : * mut :: core :: ffi :: c_char , buffersize : usize , peek : rc_runtime_peek_t , peek_ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) -> :: core :: ffi :: c_int ; } pub const RC_RUNTIME_EVENT_ACHIEVEMENT_ACTIVATED : _bindgen_ty_14 = 0 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PAUSED : _bindgen_ty_14 = 1 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_RESET : _bindgen_ty_14 = 2 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_TRIGGERED : _bindgen_ty_14 = 3 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PRIMED : _bindgen_ty_14 = 4 ; pub const RC_RUNTIME_EVENT_LBOARD_STARTED : _bindgen_ty_14 = 5 ; pub const RC_RUNTIME_EVENT_LBOARD_CANCELED : _bindgen_ty_14 = 6 ; pub const RC_RUNTIME_EVENT_LBOARD_UPDATED : _bindgen_ty_14 = 7 ; pub const RC_RUNTIME_EVENT_LBOARD_TRIGGERED : _bindgen_ty_14 = 8 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_DISABLED : _bindgen_ty_14 = 9 ; pub const RC_RUNTIME_EVENT_LBOARD_DISABLED : _bindgen_ty_14 = 10 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_UNPRIMED : _bindgen_ty_14 = 11 ; pub const RC_RUNTIME_EVENT_ACHIEVEMENT_PROGRESS_UPDATED : _bindgen_ty_14 = 12 ; pub type _bindgen_ty_14 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_runtime_event_t { pub id : u32 , pub value : i32 , pub type_ : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_runtime_event_t"] [:: core :: mem :: size_of :: < rc_runtime_event_t > () - 12usize] ; ["Alignment of rc_runtime_event_t"] [:: core :: mem :: align_of :: < rc_runtime_event_t > () - 4usize] ; ["Offset of field: rc_runtime_event_t::id"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , id) - 0usize] ; ["Offset of field: rc_runtime_event_t::value"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , value) - 4usize] ; ["Offset of field: rc_runtime_event_t::type_"] [:: core :: mem :: offset_of ! (rc_runtime_event_t , type_) - 8usize] ; } ; pub type rc_runtime_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (runtime_event : * const rc_runtime_event_t) > ; extern "C" { pub fn rc_runtime_do_frame (runtime : * mut rc_runtime_t , event_handler : rc_runtime_event_handler_t , peek : rc_runtime_peek_t , ud : * mut :: core :: ffi :: c_void , L : * mut lua_State) ; } extern "C" { pub fn rc_runtime_reset (runtime : * mut rc_runtime_t) ; } pub type rc_runtime_validate_address_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32) -> :: core :: ffi :: c_int > ; extern "C" { pub fn rc_runtime_validate_addresses (runtime : * mut rc_runtime_t , event_handler : rc_runtime_event_handler_t , validate_handler : rc_runtime_validate_address_t) ; } extern "C" { pub fn rc_runtime_invalidate_address (runtime : * mut rc_runtime_t , address : u32) ; } extern "C" { pub fn rc_runtime_progress_size (runtime : * const rc_runtime_t , L : * mut lua_State) -> u32 ; } extern "C" { pub fn rc_runtime_serialize_progress (buffer : * mut :: core :: ffi :: c_void , runtime : * const rc_runtime_t , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_serialize_progress_sized (buffer : * mut u8 , buffer_size : u32 , runtime : * const rc_runtime_t , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deserialize_progress (runtime : * mut rc_runtime_t , serialized : * const u8 , L : * mut lua_State) -> :: core :: ffi :: c_int ; } extern "C" { pub fn rc_runtime_deserialize_progress_sized (runtime : * mut rc_runtime_t , serialized : * const u8 , serialized_size : u32 , L : * mut lua_State) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_async_handle_t { _unused : [u8 ; 0] , } # [doc = " Callback used to read num_bytes bytes from memory starting at address into buffer.\n Returns the number of bytes read. A return value of 0 indicates the address was invalid."] pub type rc_client_read_memory_func_t = :: core :: option :: Option < unsafe extern "C" fn (address : u32 , buffer : * mut u8 , num_bytes : u32 , client : * mut rc_client_t) -> u32 > ; # [doc = " Internal method passed to rc_client_server_call_t to process the server response."] pub type rc_client_server_callback_t = :: core :: option :: Option < unsafe extern "C" fn (server_response : * const rc_api_server_response_t , callback_data : * mut :: core :: ffi :: c_void) > ; # [doc = " Callback used to issue a request to the server."] pub type rc_client_server_call_t = :: core :: option :: Option < unsafe extern "C" fn (request : * const rc_api_request_t , callback : rc_client_server_callback_t , callback_data : * mut :: core :: ffi :: c_void , client : * mut rc_client_t) > ; # [doc = " Generic callback for asynchronous eventing."] pub type rc_client_callback_t = :: core :: option :: Option < unsafe extern "C" fn (result : :: core :: ffi :: c_int , error_message : * const :: core :: ffi :: c_char , client : * mut rc_client_t , userdata : * mut :: core :: ffi :: c_void) > ; # [doc = " Callback for logging or displaying a message."] pub type rc_client_message_callback_t = :: core :: option :: Option < unsafe extern "C" fn (message : * const :: core :: ffi :: c_char , client : * const rc_client_t) > ; extern "C" { # [doc = " Creates a new rc_client_t object."] pub fn rc_client_create (read_memory_function : rc_client_read_memory_func_t , server_call_function : rc_client_server_call_t) -> * mut rc_client_t ; } extern "C" { # [doc = " Releases resources associated to a rc_client_t object.\n Pointer will no longer be valid after making this call."] pub fn rc_client_destroy (client : * mut rc_client_t) ; } extern "C" { # [doc = " Sets whether hardcore is enabled (on by default).\n Can be called with a game loaded.\n Enabling hardcore with a game loaded will raise an RC_CLIENT_EVENT_RESET\n event. Processing will be disabled until rc_client_reset is called."] pub fn rc_client_set_hardcore_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether hardcore is enabled (on by default)."] pub fn rc_client_get_hardcore_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether encore mode is enabled (off by default).\n Evaluated when loading a game. Has no effect while a game is loaded."] pub fn rc_client_set_encore_mode_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether encore mode is enabled (off by default)."] pub fn rc_client_get_encore_mode_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether unofficial achievements should be loaded.\n Evaluated when loading a game. Has no effect while a game is loaded."] pub fn rc_client_set_unofficial_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether unofficial achievements should be loaded."] pub fn rc_client_get_unofficial_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Sets whether spectator mode is enabled (off by default).\n If enabled, events for achievement unlocks and leaderboard submissions will be\n raised, but server calls to actually perform the unlock/submit will not occur.\n Can be modified while a game is loaded. Evaluated at unlock/submit time.\n Cannot be modified if disabled before a game is loaded."] pub fn rc_client_set_spectator_mode_enabled (client : * mut rc_client_t , enabled : :: core :: ffi :: c_int) ; } extern "C" { # [doc = " Gets whether spectator mode is enabled (off by default)."] pub fn rc_client_get_spectator_mode_enabled (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Attaches client-specific data to the runtime."] pub fn rc_client_set_userdata (client : * mut rc_client_t , userdata : * mut :: core :: ffi :: c_void) ; } extern "C" { # [doc = " Gets the client-specific data attached to the runtime."] pub fn rc_client_get_userdata (client : * const rc_client_t) -> * mut :: core :: ffi :: c_void ; } extern "C" { # [doc = " Sets the name of the server to use."] pub fn rc_client_set_host (client : * const rc_client_t , hostname : * const :: core :: ffi :: c_char) ; } pub type rc_clock_t = u64 ; pub type rc_get_time_millisecs_func_t = :: core :: option :: Option < unsafe extern "C" fn (client : * const rc_client_t) -> rc_clock_t > ; extern "C" { # [doc = " Specifies a function that returns a value that increases once per millisecond."] pub fn rc_client_set_get_time_millisecs_function (client : * mut rc_client_t , handler : rc_get_time_millisecs_func_t) ; } extern "C" { # [doc = " Marks an async process as aborted. The associated callback will not be called."] pub fn rc_client_abort_async (client : * mut rc_client_t , async_handle : * mut rc_client_async_handle_t) ; } extern "C" { # [doc = " Gets a clause that can be added to the User-Agent to identify the version of rcheevos being used."] pub fn rc_client_get_user_agent_clause (client : * mut rc_client_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> usize ; } extern "C" { # [doc = " Sets the logging level and provides a callback to be called to do the logging."] pub fn rc_client_enable_logging (client : * mut rc_client_t , level : :: core :: ffi :: c_int , callback : rc_client_message_callback_t) ; } pub const RC_CLIENT_LOG_LEVEL_NONE : _bindgen_ty_15 = 0 ; pub const RC_CLIENT_LOG_LEVEL_ERROR : _bindgen_ty_15 = 1 ; pub const RC_CLIENT_LOG_LEVEL_WARN : _bindgen_ty_15 = 2 ; pub const RC_CLIENT_LOG_LEVEL_INFO : _bindgen_ty_15 = 3 ; pub const RC_CLIENT_LOG_LEVEL_VERBOSE : _bindgen_ty_15 = 4 ; pub const NUM_RC_CLIENT_LOG_LEVELS : _bindgen_ty_15 = 5 ; pub type _bindgen_ty_15 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Attempt to login a user."] pub fn rc_client_begin_login_with_password (client : * mut rc_client_t , username : * const :: core :: ffi :: c_char , password : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Attempt to login a user."] pub fn rc_client_begin_login_with_token (client : * mut rc_client_t , username : * const :: core :: ffi :: c_char , token : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Logout the user."] pub fn rc_client_logout (client : * mut rc_client_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_user_t { pub display_name : * const :: core :: ffi :: c_char , pub username : * const :: core :: ffi :: c_char , pub token : * const :: core :: ffi :: c_char , pub score : u32 , pub score_softcore : u32 , pub num_unread_messages : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_user_t"] [:: core :: mem :: size_of :: < rc_client_user_t > () - 40usize] ; ["Alignment of rc_client_user_t"] [:: core :: mem :: align_of :: < rc_client_user_t > () - 8usize] ; ["Offset of field: rc_client_user_t::display_name"] [:: core :: mem :: offset_of ! (rc_client_user_t , display_name) - 0usize] ; ["Offset of field: rc_client_user_t::username"] [:: core :: mem :: offset_of ! (rc_client_user_t , username) - 8usize] ; ["Offset of field: rc_client_user_t::token"] [:: core :: mem :: offset_of ! (rc_client_user_t , token) - 16usize] ; ["Offset of field: rc_client_user_t::score"] [:: core :: mem :: offset_of ! (rc_client_user_t , score) - 24usize] ; ["Offset of field: rc_client_user_t::score_softcore"] [:: core :: mem :: offset_of ! (rc_client_user_t , score_softcore) - 28usize] ; ["Offset of field: rc_client_user_t::num_unread_messages"] [:: core :: mem :: offset_of ! (rc_client_user_t , num_unread_messages) - 32usize] ; } ; extern "C" { # [doc = " Gets information about the logged in user. Will return NULL if the user is not logged in."] pub fn rc_client_get_user_info (client : * const rc_client_t) -> * const rc_client_user_t ; } extern "C" { # [doc = " Gets the URL for the user's profile picture.\n Returns RC_OK on success."] pub fn rc_client_user_get_image_url (user : * const rc_client_user_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_user_game_summary_t { pub num_core_achievements : u32 , pub num_unofficial_achievements : u32 , pub num_unlocked_achievements : u32 , pub num_unsupported_achievements : u32 , pub points_core : u32 , pub points_unlocked : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_user_game_summary_t"] [:: core :: mem :: size_of :: < rc_client_user_game_summary_t > () - 24usize] ; ["Alignment of rc_client_user_game_summary_t"] [:: core :: mem :: align_of :: < rc_client_user_game_summary_t > () - 4usize] ; ["Offset of field: rc_client_user_game_summary_t::num_core_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_core_achievements) - 0usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unofficial_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unofficial_achievements) - 4usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unlocked_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unlocked_achievements) - 8usize] ; ["Offset of field: rc_client_user_game_summary_t::num_unsupported_achievements"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , num_unsupported_achievements) - 12usize] ; ["Offset of field: rc_client_user_game_summary_t::points_core"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , points_core) - 16usize] ; ["Offset of field: rc_client_user_game_summary_t::points_unlocked"] [:: core :: mem :: offset_of ! (rc_client_user_game_summary_t , points_unlocked) - 20usize] ; } ; extern "C" { # [doc = " Gets a breakdown of the number of achievements in the game, and how many the user has unlocked.\n Used for the \"You have unlocked X of Y achievements\" message shown when the game starts."] pub fn rc_client_get_user_game_summary (client : * const rc_client_t , summary : * mut rc_client_user_game_summary_t) ; } extern "C" { # [doc = " Start loading an unidentified game."] pub fn rc_client_begin_identify_and_load_game (client : * mut rc_client_t , console_id : u32 , file_path : * const :: core :: ffi :: c_char , data : * const u8 , data_size : usize , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Start loading a game."] pub fn rc_client_begin_load_game (client : * mut rc_client_t , hash : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Gets the current progress of the asynchronous load game process."] pub fn rc_client_get_load_game_state (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } pub const RC_CLIENT_LOAD_GAME_STATE_NONE : _bindgen_ty_16 = 0 ; pub const RC_CLIENT_LOAD_GAME_STATE_IDENTIFYING_GAME : _bindgen_ty_16 = 1 ; pub const RC_CLIENT_LOAD_GAME_STATE_AWAIT_LOGIN : _bindgen_ty_16 = 2 ; pub const RC_CLIENT_LOAD_GAME_STATE_FETCHING_GAME_DATA : _bindgen_ty_16 = 3 ; pub const RC_CLIENT_LOAD_GAME_STATE_STARTING_SESSION : _bindgen_ty_16 = 4 ; pub const RC_CLIENT_LOAD_GAME_STATE_DONE : _bindgen_ty_16 = 5 ; pub const RC_CLIENT_LOAD_GAME_STATE_ABORTED : _bindgen_ty_16 = 6 ; pub type _bindgen_ty_16 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Determines if a game was successfully identified and loaded."] pub fn rc_client_is_game_loaded (client : * const rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Unloads the current game."] pub fn rc_client_unload_game (client : * mut rc_client_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_game_t { pub id : u32 , pub console_id : u32 , pub title : * const :: core :: ffi :: c_char , pub hash : * const :: core :: ffi :: c_char , pub badge_name : * const :: core :: ffi :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_game_t"] [:: core :: mem :: size_of :: < rc_client_game_t > () - 32usize] ; ["Alignment of rc_client_game_t"] [:: core :: mem :: align_of :: < rc_client_game_t > () - 8usize] ; ["Offset of field: rc_client_game_t::id"] [:: core :: mem :: offset_of ! (rc_client_game_t , id) - 0usize] ; ["Offset of field: rc_client_game_t::console_id"] [:: core :: mem :: offset_of ! (rc_client_game_t , console_id) - 4usize] ; ["Offset of field: rc_client_game_t::title"] [:: core :: mem :: offset_of ! (rc_client_game_t , title) - 8usize] ; ["Offset of field: rc_client_game_t::hash"] [:: core :: mem :: offset_of ! (rc_client_game_t , hash) - 16usize] ; ["Offset of field: rc_client_game_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_game_t , badge_name) - 24usize] ; } ; extern "C" { # [doc = " Get information about the current game. Returns NULL if no game is loaded.\n NOTE: returns a dummy game record if an unidentified game is loaded."] pub fn rc_client_get_game_info (client : * const rc_client_t) -> * const rc_client_game_t ; } extern "C" { # [doc = " Gets the URL for the game image.\n Returns RC_OK on success."] pub fn rc_client_game_get_image_url (game : * const rc_client_game_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Changes the active disc in a multi-disc game."] pub fn rc_client_begin_change_media (client : * mut rc_client_t , file_path : * const :: core :: ffi :: c_char , data : * const u8 , data_size : usize , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Changes the active disc in a multi-disc game."] pub fn rc_client_begin_change_media_from_hash (client : * mut rc_client_t , hash : * const :: core :: ffi :: c_char , callback : rc_client_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } # [doc = "\\\n| Subsets                                                                     |\n\\"] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_subset_t { pub id : u32 , pub title : * const :: core :: ffi :: c_char , pub badge_name : [:: core :: ffi :: c_char ; 16usize] , pub num_achievements : u32 , pub num_leaderboards : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_subset_t"] [:: core :: mem :: size_of :: < rc_client_subset_t > () - 40usize] ; ["Alignment of rc_client_subset_t"] [:: core :: mem :: align_of :: < rc_client_subset_t > () - 8usize] ; ["Offset of field: rc_client_subset_t::id"] [:: core :: mem :: offset_of ! (rc_client_subset_t , id) - 0usize] ; ["Offset of field: rc_client_subset_t::title"] [:: core :: mem :: offset_of ! (rc_client_subset_t , title) - 8usize] ; ["Offset of field: rc_client_subset_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_subset_t , badge_name) - 16usize] ; ["Offset of field: rc_client_subset_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_client_subset_t , num_achievements) - 32usize] ; ["Offset of field: rc_client_subset_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_client_subset_t , num_leaderboards) - 36usize] ; } ; extern "C" { pub fn rc_client_get_subset_info (client : * mut rc_client_t , subset_id : u32) -> * const rc_client_subset_t ; } pub const RC_CLIENT_ACHIEVEMENT_STATE_INACTIVE : _bindgen_ty_17 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_ACTIVE : _bindgen_ty_17 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_UNLOCKED : _bindgen_ty_17 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_STATE_DISABLED : _bindgen_ty_17 = 3 ; pub const NUM_RC_CLIENT_ACHIEVEMENT_STATES : _bindgen_ty_17 = 4 ; # [doc = "\\\n| Achievements                                                                |\n\\"] pub type _bindgen_ty_17 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_NONE : _bindgen_ty_18 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_CORE : _bindgen_ty_18 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_UNOFFICIAL : _bindgen_ty_18 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_CATEGORY_CORE_AND_UNOFFICIAL : _bindgen_ty_18 = 3 ; pub type _bindgen_ty_18 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_STANDARD : _bindgen_ty_19 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_MISSABLE : _bindgen_ty_19 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_PROGRESSION : _bindgen_ty_19 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_TYPE_WIN : _bindgen_ty_19 = 3 ; pub type _bindgen_ty_19 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNKNOWN : _bindgen_ty_20 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_LOCKED : _bindgen_ty_20 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNLOCKED : _bindgen_ty_20 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNSUPPORTED : _bindgen_ty_20 = 3 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNOFFICIAL : _bindgen_ty_20 = 4 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_RECENTLY_UNLOCKED : _bindgen_ty_20 = 5 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_ACTIVE_CHALLENGE : _bindgen_ty_20 = 6 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_ALMOST_THERE : _bindgen_ty_20 = 7 ; pub const RC_CLIENT_ACHIEVEMENT_BUCKET_UNSYNCED : _bindgen_ty_20 = 8 ; pub const NUM_RC_CLIENT_ACHIEVEMENT_BUCKETS : _bindgen_ty_20 = 9 ; pub type _bindgen_ty_20 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_NONE : _bindgen_ty_21 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_SOFTCORE : _bindgen_ty_21 = 1 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_HARDCORE : _bindgen_ty_21 = 2 ; pub const RC_CLIENT_ACHIEVEMENT_UNLOCKED_BOTH : _bindgen_ty_21 = 3 ; pub type _bindgen_ty_21 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_t { pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub badge_name : [:: core :: ffi :: c_char ; 8usize] , pub measured_progress : [:: core :: ffi :: c_char ; 24usize] , pub measured_percent : f32 , pub id : u32 , pub points : u32 , pub unlock_time : time_t , pub state : u8 , pub category : u8 , pub bucket : u8 , pub unlocked : u8 , pub rarity : f32 , pub rarity_hardcore : f32 , pub type_ : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_t"] [:: core :: mem :: size_of :: < rc_client_achievement_t > () - 88usize] ; ["Alignment of rc_client_achievement_t"] [:: core :: mem :: align_of :: < rc_client_achievement_t > () - 8usize] ; ["Offset of field: rc_client_achievement_t::title"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , title) - 0usize] ; ["Offset of field: rc_client_achievement_t::description"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , description) - 8usize] ; ["Offset of field: rc_client_achievement_t::badge_name"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , badge_name) - 16usize] ; ["Offset of field: rc_client_achievement_t::measured_progress"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , measured_progress) - 24usize] ; ["Offset of field: rc_client_achievement_t::measured_percent"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , measured_percent) - 48usize] ; ["Offset of field: rc_client_achievement_t::id"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , id) - 52usize] ; ["Offset of field: rc_client_achievement_t::points"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , points) - 56usize] ; ["Offset of field: rc_client_achievement_t::unlock_time"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , unlock_time) - 64usize] ; ["Offset of field: rc_client_achievement_t::state"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , state) - 72usize] ; ["Offset of field: rc_client_achievement_t::category"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , category) - 73usize] ; ["Offset of field: rc_client_achievement_t::bucket"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , bucket) - 74usize] ; ["Offset of field: rc_client_achievement_t::unlocked"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , unlocked) - 75usize] ; ["Offset of field: rc_client_achievement_t::rarity"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , rarity) - 76usize] ; ["Offset of field: rc_client_achievement_t::rarity_hardcore"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , rarity_hardcore) - 80usize] ; ["Offset of field: rc_client_achievement_t::type_"] [:: core :: mem :: offset_of ! (rc_client_achievement_t , type_) - 84usize] ; } ; extern "C" { # [doc = " Get information about an achievement. Returns NULL if not found."] pub fn rc_client_get_achievement_info (client : * mut rc_client_t , id : u32) -> * const rc_client_achievement_t ; } extern "C" { # [doc = " Gets the URL for the achievement image.\n Returns RC_OK on success."] pub fn rc_client_achievement_get_image_url (achievement : * const rc_client_achievement_t , state : :: core :: ffi :: c_int , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_bucket_t { pub achievements : * mut * mut rc_client_achievement_t , pub num_achievements : u32 , pub label : * const :: core :: ffi :: c_char , pub subset_id : u32 , pub bucket_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_bucket_t"] [:: core :: mem :: size_of :: < rc_client_achievement_bucket_t > () - 32usize] ; ["Alignment of rc_client_achievement_bucket_t"] [:: core :: mem :: align_of :: < rc_client_achievement_bucket_t > () - 8usize] ; ["Offset of field: rc_client_achievement_bucket_t::achievements"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , achievements) - 0usize] ; ["Offset of field: rc_client_achievement_bucket_t::num_achievements"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , num_achievements) - 8usize] ; ["Offset of field: rc_client_achievement_bucket_t::label"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , label) - 16usize] ; ["Offset of field: rc_client_achievement_bucket_t::subset_id"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , subset_id) - 24usize] ; ["Offset of field: rc_client_achievement_bucket_t::bucket_type"] [:: core :: mem :: offset_of ! (rc_client_achievement_bucket_t , bucket_type) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_achievement_list_t { pub buckets : * mut rc_client_achievement_bucket_t , pub num_buckets : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_achievement_list_t"] [:: core :: mem :: size_of :: < rc_client_achievement_list_t > () - 16usize] ; ["Alignment of rc_client_achievement_list_t"] [:: core :: mem :: align_of :: < rc_client_achievement_list_t > () - 8usize] ; ["Offset of field: rc_client_achievement_list_t::buckets"] [:: core :: mem :: offset_of ! (rc_client_achievement_list_t , buckets) - 0usize] ; ["Offset of field: rc_client_achievement_list_t::num_buckets"] [:: core :: mem :: offset_of ! (rc_client_achievement_list_t , num_buckets) - 8usize] ; } ; pub const RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_LOCK_STATE : _bindgen_ty_22 = 0 ; pub const RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_PROGRESS : _bindgen_ty_22 = 1 ; pub type _bindgen_ty_22 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Creates a list of achievements matching the specified category and grouping.\n Returns an allocated list that must be free'd by calling rc_client_destroy_achievement_list."] pub fn rc_client_create_achievement_list (client : * mut rc_client_t , category : :: core :: ffi :: c_int , grouping : :: core :: ffi :: c_int) -> * mut rc_client_achievement_list_t ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_get_achievement_list."] pub fn rc_client_destroy_achievement_list (list : * mut rc_client_achievement_list_t) ; } extern "C" { # [doc = " Returns non-zero if there are any achievements that can be queried through rc_client_create_achievement_list()."] pub fn rc_client_has_achievements (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } pub const RC_CLIENT_LEADERBOARD_STATE_INACTIVE : _bindgen_ty_23 = 0 ; pub const RC_CLIENT_LEADERBOARD_STATE_ACTIVE : _bindgen_ty_23 = 1 ; pub const RC_CLIENT_LEADERBOARD_STATE_TRACKING : _bindgen_ty_23 = 2 ; pub const RC_CLIENT_LEADERBOARD_STATE_DISABLED : _bindgen_ty_23 = 3 ; pub const NUM_RC_CLIENT_LEADERBOARD_STATES : _bindgen_ty_23 = 4 ; # [doc = "\\\n| Leaderboards                                                                |\n\\"] pub type _bindgen_ty_23 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_LEADERBOARD_FORMAT_TIME : _bindgen_ty_24 = 0 ; pub const RC_CLIENT_LEADERBOARD_FORMAT_SCORE : _bindgen_ty_24 = 1 ; pub const RC_CLIENT_LEADERBOARD_FORMAT_VALUE : _bindgen_ty_24 = 2 ; pub const NUM_RC_CLIENT_LEADERBOARD_FORMATS : _bindgen_ty_24 = 3 ; pub type _bindgen_ty_24 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_t { pub title : * const :: core :: ffi :: c_char , pub description : * const :: core :: ffi :: c_char , pub tracker_value : * const :: core :: ffi :: c_char , pub id : u32 , pub state : u8 , pub format : u8 , pub lower_is_better : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_t > () - 32usize] ; ["Alignment of rc_client_leaderboard_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_t::title"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , title) - 0usize] ; ["Offset of field: rc_client_leaderboard_t::description"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , description) - 8usize] ; ["Offset of field: rc_client_leaderboard_t::tracker_value"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , tracker_value) - 16usize] ; ["Offset of field: rc_client_leaderboard_t::id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , id) - 24usize] ; ["Offset of field: rc_client_leaderboard_t::state"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , state) - 28usize] ; ["Offset of field: rc_client_leaderboard_t::format"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , format) - 29usize] ; ["Offset of field: rc_client_leaderboard_t::lower_is_better"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_t , lower_is_better) - 30usize] ; } ; extern "C" { # [doc = " Get information about a leaderboard. Returns NULL if not found."] pub fn rc_client_get_leaderboard_info (client : * const rc_client_t , id : u32) -> * const rc_client_leaderboard_t ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_tracker_t { pub display : [:: core :: ffi :: c_char ; 24usize] , pub id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_tracker_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_tracker_t > () - 28usize] ; ["Alignment of rc_client_leaderboard_tracker_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_tracker_t > () - 4usize] ; ["Offset of field: rc_client_leaderboard_tracker_t::display"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_tracker_t , display) - 0usize] ; ["Offset of field: rc_client_leaderboard_tracker_t::id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_tracker_t , id) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_bucket_t { pub leaderboards : * mut * mut rc_client_leaderboard_t , pub num_leaderboards : u32 , pub label : * const :: core :: ffi :: c_char , pub subset_id : u32 , pub bucket_type : u8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_bucket_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_bucket_t > () - 32usize] ; ["Alignment of rc_client_leaderboard_bucket_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_bucket_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::leaderboards"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , leaderboards) - 0usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::num_leaderboards"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , num_leaderboards) - 8usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::label"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , label) - 16usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::subset_id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , subset_id) - 24usize] ; ["Offset of field: rc_client_leaderboard_bucket_t::bucket_type"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_bucket_t , bucket_type) - 28usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_list_t { pub buckets : * mut rc_client_leaderboard_bucket_t , pub num_buckets : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_list_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_list_t > () - 16usize] ; ["Alignment of rc_client_leaderboard_list_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_list_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_list_t::buckets"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_list_t , buckets) - 0usize] ; ["Offset of field: rc_client_leaderboard_list_t::num_buckets"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_list_t , num_buckets) - 8usize] ; } ; pub const RC_CLIENT_LEADERBOARD_BUCKET_UNKNOWN : _bindgen_ty_25 = 0 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_INACTIVE : _bindgen_ty_25 = 1 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_ACTIVE : _bindgen_ty_25 = 2 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_UNSUPPORTED : _bindgen_ty_25 = 3 ; pub const RC_CLIENT_LEADERBOARD_BUCKET_ALL : _bindgen_ty_25 = 4 ; pub const NUM_RC_CLIENT_LEADERBOARD_BUCKETS : _bindgen_ty_25 = 5 ; pub type _bindgen_ty_25 = :: core :: ffi :: c_uint ; pub const RC_CLIENT_LEADERBOARD_LIST_GROUPING_NONE : _bindgen_ty_26 = 0 ; pub const RC_CLIENT_LEADERBOARD_LIST_GROUPING_TRACKING : _bindgen_ty_26 = 1 ; pub type _bindgen_ty_26 = :: core :: ffi :: c_uint ; extern "C" { # [doc = " Creates a list of leaderboards matching the specified grouping.\n Returns an allocated list that must be free'd by calling rc_client_destroy_leaderboard_list."] pub fn rc_client_create_leaderboard_list (client : * mut rc_client_t , grouping : :: core :: ffi :: c_int) -> * mut rc_client_leaderboard_list_t ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_get_leaderboard_list."] pub fn rc_client_destroy_leaderboard_list (list : * mut rc_client_leaderboard_list_t) ; } extern "C" { # [doc = " Returns non-zero if the current game has any leaderboards."] pub fn rc_client_has_leaderboards (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_entry_t { pub user : * const :: core :: ffi :: c_char , pub display : [:: core :: ffi :: c_char ; 24usize] , pub submitted : time_t , pub rank : u32 , pub index : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_entry_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_entry_t > () - 48usize] ; ["Alignment of rc_client_leaderboard_entry_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_entry_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_t::user"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , user) - 0usize] ; ["Offset of field: rc_client_leaderboard_entry_t::display"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , display) - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_t::submitted"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , submitted) - 32usize] ; ["Offset of field: rc_client_leaderboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , rank) - 40usize] ; ["Offset of field: rc_client_leaderboard_entry_t::index"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_t , index) - 44usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_entry_list_t { pub entries : * mut rc_client_leaderboard_entry_t , pub num_entries : u32 , pub total_entries : u32 , pub user_index : i32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_entry_list_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_entry_list_t > () - 24usize] ; ["Alignment of rc_client_leaderboard_entry_list_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_entry_list_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , entries) - 0usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::num_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , num_entries) - 8usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::total_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , total_entries) - 12usize] ; ["Offset of field: rc_client_leaderboard_entry_list_t::user_index"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_entry_list_t , user_index) - 16usize] ; } ; pub type rc_client_fetch_leaderboard_entries_callback_t = :: core :: option :: Option < unsafe extern "C" fn (result : :: core :: ffi :: c_int , error_message : * const :: core :: ffi :: c_char , list : * mut rc_client_leaderboard_entry_list_t , client : * mut rc_client_t , callback_userdata : * mut :: core :: ffi :: c_void) > ; extern "C" { # [doc = " Fetches a list of leaderboard entries from the server.\n Callback receives an allocated list that must be free'd by calling rc_client_destroy_leaderboard_entry_list."] pub fn rc_client_begin_fetch_leaderboard_entries (client : * mut rc_client_t , leaderboard_id : u32 , first_entry : u32 , count : u32 , callback : rc_client_fetch_leaderboard_entries_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Fetches a list of leaderboard entries from the server containing the logged-in user.\n Callback receives an allocated list that must be free'd by calling rc_client_destroy_leaderboard_entry_list."] pub fn rc_client_begin_fetch_leaderboard_entries_around_user (client : * mut rc_client_t , leaderboard_id : u32 , count : u32 , callback : rc_client_fetch_leaderboard_entries_callback_t , callback_userdata : * mut :: core :: ffi :: c_void) -> * mut rc_client_async_handle_t ; } extern "C" { # [doc = " Gets the URL for the profile picture of the user associated to a leaderboard entry.\n Returns RC_OK on success."] pub fn rc_client_leaderboard_entry_get_user_image_url (entry : * const rc_client_leaderboard_entry_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Destroys a list allocated by rc_client_begin_fetch_leaderboard_entries or rc_client_begin_fetch_leaderboard_entries_around_user."] pub fn rc_client_destroy_leaderboard_entry_list (list : * mut rc_client_leaderboard_entry_list_t) ; } # [doc = " Used for scoreboard events. Contains the response from the server when a leaderboard entry is submitted.\n NOTE: This structure is only valid within the event callback. If you want to make use of the data outside\n of the callback, you should create copies of both the top entries and usernames within."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_scoreboard_entry_t { pub username : * const :: core :: ffi :: c_char , pub rank : u32 , pub score : [:: core :: ffi :: c_char ; 24usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_scoreboard_entry_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_scoreboard_entry_t > () - 40usize] ; ["Alignment of rc_client_leaderboard_scoreboard_entry_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_scoreboard_entry_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::username"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , username) - 0usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , rank) - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_entry_t::score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_entry_t , score) - 12usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_leaderboard_scoreboard_t { pub leaderboard_id : u32 , pub submitted_score : [:: core :: ffi :: c_char ; 24usize] , pub best_score : [:: core :: ffi :: c_char ; 24usize] , pub new_rank : u32 , pub num_entries : u32 , pub top_entries : * mut rc_client_leaderboard_scoreboard_entry_t , pub num_top_entries : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_leaderboard_scoreboard_t"] [:: core :: mem :: size_of :: < rc_client_leaderboard_scoreboard_t > () - 80usize] ; ["Alignment of rc_client_leaderboard_scoreboard_t"] [:: core :: mem :: align_of :: < rc_client_leaderboard_scoreboard_t > () - 8usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::leaderboard_id"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , leaderboard_id) - 0usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::submitted_score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , submitted_score) - 4usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::best_score"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , best_score) - 28usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::new_rank"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , new_rank) - 52usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::num_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , num_entries) - 56usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::top_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , top_entries) - 64usize] ; ["Offset of field: rc_client_leaderboard_scoreboard_t::num_top_entries"] [:: core :: mem :: offset_of ! (rc_client_leaderboard_scoreboard_t , num_top_entries) - 72usize] ; } ; extern "C" { # [doc = " Returns non-zero if the current game supports rich presence."] pub fn rc_client_has_rich_presence (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Gets the current rich presence message.\n Returns the number of characters written to buffer."] pub fn rc_client_get_rich_presence_message (client : * mut rc_client_t , buffer : * mut :: core :: ffi :: c_char , buffer_size : usize) -> usize ; } pub const RC_CLIENT_EVENT_TYPE_NONE : _bindgen_ty_27 = 0 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_TRIGGERED : _bindgen_ty_27 = 1 ; pub const RC_CLIENT_EVENT_LEADERBOARD_STARTED : _bindgen_ty_27 = 2 ; pub const RC_CLIENT_EVENT_LEADERBOARD_FAILED : _bindgen_ty_27 = 3 ; pub const RC_CLIENT_EVENT_LEADERBOARD_SUBMITTED : _bindgen_ty_27 = 4 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_CHALLENGE_INDICATOR_SHOW : _bindgen_ty_27 = 5 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_CHALLENGE_INDICATOR_HIDE : _bindgen_ty_27 = 6 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_SHOW : _bindgen_ty_27 = 7 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_HIDE : _bindgen_ty_27 = 8 ; pub const RC_CLIENT_EVENT_ACHIEVEMENT_PROGRESS_INDICATOR_UPDATE : _bindgen_ty_27 = 9 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_SHOW : _bindgen_ty_27 = 10 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_HIDE : _bindgen_ty_27 = 11 ; pub const RC_CLIENT_EVENT_LEADERBOARD_TRACKER_UPDATE : _bindgen_ty_27 = 12 ; pub const RC_CLIENT_EVENT_LEADERBOARD_SCOREBOARD : _bindgen_ty_27 = 13 ; pub const RC_CLIENT_EVENT_RESET : _bindgen_ty_27 = 14 ; pub const RC_CLIENT_EVENT_GAME_COMPLETED : _bindgen_ty_27 = 15 ; pub const RC_CLIENT_EVENT_SERVER_ERROR : _bindgen_ty_27 = 16 ; pub const RC_CLIENT_EVENT_DISCONNECTED : _bindgen_ty_27 = 17 ; pub const RC_CLIENT_EVENT_RECONNECTED : _bindgen_ty_27 = 18 ; # [doc = "\\\n| Processing                                                                  |\n\\"] pub type _bindgen_ty_27 = :: core :: ffi :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_server_error_t { pub error_message : * const :: core :: ffi :: c_char , pub api : * const :: core :: ffi :: c_char , pub result : :: core :: ffi :: c_int , pub related_id : u32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_server_error_t"] [:: core :: mem :: size_of :: < rc_client_server_error_t > () - 24usize] ; ["Alignment of rc_client_server_error_t"] [:: core :: mem :: align_of :: < rc_client_server_error_t > () - 8usize] ; ["Offset of field: rc_client_server_error_t::error_message"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , error_message) - 0usize] ; ["Offset of field: rc_client_server_error_t::api"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , api) - 8usize] ; ["Offset of field: rc_client_server_error_t::result"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , result) - 16usize] ; ["Offset of field: rc_client_server_error_t::related_id"] [:: core :: mem :: offset_of ! (rc_client_server_error_t , related_id) - 20usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rc_client_event_t { pub type_ : u32 , pub achievement : * mut rc_client_achievement_t , pub leaderboard : * mut rc_client_leaderboard_t , pub leaderboard_tracker : * mut rc_client_leaderboard_tracker_t , pub leaderboard_scoreboard : * mut rc_client_leaderboard_scoreboard_t , pub server_error : * mut rc_client_server_error_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of rc_client_event_t"] [:: core :: mem :: size_of :: < rc_client_event_t > () - 48usize] ; ["Alignment of rc_client_event_t"] [:: core :: mem :: align_of :: < rc_client_event_t > () - 8usize] ; ["Offset of field: rc_client_event_t::type_"] [:: core :: mem :: offset_of ! (rc_client_event_t , type_) - 0usize] ; ["Offset of field: rc_client_event_t::achievement"] [:: core :: mem :: offset_of ! (rc_client_event_t , achievement) - 8usize] ; ["Offset of field: rc_client_event_t::leaderboard"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard) - 16usize] ; ["Offset of field: rc_client_event_t::leaderboard_tracker"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard_tracker) - 24usize] ; ["Offset of field: rc_client_event_t::leaderboard_scoreboard"] [:: core :: mem :: offset_of ! (rc_client_event_t , leaderboard_scoreboard) - 32usize] ; ["Offset of field: rc_client_event_t::server_error"] [:: core :: mem :: offset_of ! (rc_client_event_t , server_error) - 40usize] ; } ; # [doc = " Callback used to notify the client when certain events occur."] pub type rc_client_event_handler_t = :: core :: option :: Option < unsafe extern "C" fn (event : * const rc_client_event_t , client : * mut rc_client_t) > ; extern "C" { # [doc = " Provides a callback for event handling."] pub fn rc_client_set_event_handler (client : * mut rc_client_t , handler : rc_client_event_handler_t) ; } extern "C" { # [doc = " Provides a callback for reading memory."] pub fn rc_client_set_read_memory_function (client : * mut rc_client_t , handler : rc_client_read_memory_func_t) ; } extern "C" { # [doc = " Determines if there are any active achievements/leaderboards/rich presence that need processing."] pub fn rc_client_is_processing_required (client : * mut rc_client_t) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Processes achievements for the current frame."] pub fn rc_client_do_frame (client : * mut rc_client_t) ; } extern "C" { # [doc = " Processes the periodic queue.\n Called internally by rc_client_do_frame.\n Should be explicitly called if rc_client_do_frame is not being called because emulation is paused."] pub fn rc_client_idle (client : * mut rc_client_t) ; } extern "C" { # [doc = " Determines if a sufficient amount of frames have been processed since the last call to rc_client_can_pause.\n Should not be called unless the client is trying to pause.\n If false is returned, and frames_remaining is not NULL, frames_remaining will be set to the number of frames\n still required before pause is allowed, which can be converted to a time in seconds for displaying to the user."] pub fn rc_client_can_pause (client : * mut rc_client_t , frames_remaining : * mut u32) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Informs the runtime that the emulator has been reset. Will reset all achievements and leaderboards\n to their initial state (includes hiding indicators/trackers)."] pub fn rc_client_reset (client : * mut rc_client_t) ; } extern "C" { # [doc = " Gets the number of bytes needed to serialized the runtime state."] pub fn rc_client_progress_size (client : * mut rc_client_t) -> usize ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator.\n [deprecated] use rc_client_serialize_progress_sized instead"] pub fn rc_client_serialize_progress (client : * mut rc_client_t , buffer : * mut u8) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator."] pub fn rc_client_serialize_progress_sized (client : * mut rc_client_t , buffer : * mut u8 , buffer_size : usize) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Deserializes the runtime state from a buffer.\n Returns RC_OK on success, or an error indicator.\n [deprecated] use rc_client_deserialize_progress_sized instead"] pub fn rc_client_deserialize_progress (client : * mut rc_client_t , serialized : * const u8) -> :: core :: ffi :: c_int ; } extern "C" { # [doc = " Serializes the runtime state into a buffer.\n Returns RC_OK on success, or an error indicator."] pub fn rc_client_deserialize_progress_sized (client : * mut rc_client_t , serialized : * const u8 , serialized_size : usize) -> :: core :: ffi :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __locale_data { pub _address : u8 , } pub type __builtin_va_list = [__va_list_tag ; 1usize] ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct __va_list_tag { pub gp_offset : :: core :: ffi :: c_uint , pub fp_offset : :: core :: ffi :: c_uint , pub overflow_arg_area : * mut :: core :: ffi :: c_void , pub reg_save_area : * mut :: core :: ffi :: c_void , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { ["Size of __va_list_tag"] [:: core :: mem :: size_of :: < __va_list_tag > () - 24usize] ; ["Alignment of __va_list_tag"] [:: core :: mem :: align_of :: < __va_list_tag > () - 8usize] ; ["Offset of field: __va_list_tag::gp_offset"] [:: core :: mem :: offset_of ! (__va_list_tag , gp_offset) - 0usize] ; ["Offset of field: __va_list_tag::fp_offset"] [:: core :: mem :: offset_of ! (__va_list_tag , fp_offset) - 4usize] ; ["Offset of field: __va_list_tag::overflow_arg_area"] [:: core :: mem :: offset_of ! (__va_list_tag , overflow_arg_area) - 8usize] ; ["Offset of field: __va_list_tag::reg_save_area"] [:: core :: mem :: offset_of ! (__va_list_tag , reg_save_area) - 16usize] ; } ;
[WARN] too much data in the log, truncating it
