steamworks_sys/
linux_bindings.rs

1/* automatically generated by rust-bindgen 0.69.2 */
2
3#[repr(C)]
4#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
5pub struct __BindgenBitfieldUnit<Storage> {
6    storage: Storage,
7}
8impl<Storage> __BindgenBitfieldUnit<Storage> {
9    #[inline]
10    pub const fn new(storage: Storage) -> Self {
11        Self { storage }
12    }
13}
14impl<Storage> __BindgenBitfieldUnit<Storage>
15where
16    Storage: AsRef<[u8]> + AsMut<[u8]>,
17{
18    #[inline]
19    pub fn get_bit(&self, index: usize) -> bool {
20        debug_assert!(index / 8 < self.storage.as_ref().len());
21        let byte_index = index / 8;
22        let byte = self.storage.as_ref()[byte_index];
23        let bit_index = if cfg!(target_endian = "big") {
24            7 - (index % 8)
25        } else {
26            index % 8
27        };
28        let mask = 1 << bit_index;
29        byte & mask == mask
30    }
31    #[inline]
32    pub fn set_bit(&mut self, index: usize, val: bool) {
33        debug_assert!(index / 8 < self.storage.as_ref().len());
34        let byte_index = index / 8;
35        let byte = &mut self.storage.as_mut()[byte_index];
36        let bit_index = if cfg!(target_endian = "big") {
37            7 - (index % 8)
38        } else {
39            index % 8
40        };
41        let mask = 1 << bit_index;
42        if val {
43            *byte |= mask;
44        } else {
45            *byte &= !mask;
46        }
47    }
48    #[inline]
49    pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
50        debug_assert!(bit_width <= 64);
51        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
52        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
53        let mut val = 0;
54        for i in 0..(bit_width as usize) {
55            if self.get_bit(i + bit_offset) {
56                let index = if cfg!(target_endian = "big") {
57                    bit_width as usize - 1 - i
58                } else {
59                    i
60                };
61                val |= 1 << index;
62            }
63        }
64        val
65    }
66    #[inline]
67    pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
68        debug_assert!(bit_width <= 64);
69        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
70        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
71        for i in 0..(bit_width as usize) {
72            let mask = 1 << i;
73            let val_bit_is_set = val & mask == mask;
74            let index = if cfg!(target_endian = "big") {
75                bit_width as usize - 1 - i
76            } else {
77                i
78            };
79            self.set_bit(index + bit_offset, val_bit_is_set);
80        }
81    }
82}
83pub const _STRING_H: u32 = 1;
84pub const _FEATURES_H: u32 = 1;
85pub const _ISOC95_SOURCE: u32 = 1;
86pub const _ISOC99_SOURCE: u32 = 1;
87pub const _ISOC11_SOURCE: u32 = 1;
88pub const _ISOC2X_SOURCE: u32 = 1;
89pub const _POSIX_SOURCE: u32 = 1;
90pub const _POSIX_C_SOURCE: u32 = 200809;
91pub const _XOPEN_SOURCE: u32 = 700;
92pub const _XOPEN_SOURCE_EXTENDED: u32 = 1;
93pub const _LARGEFILE64_SOURCE: u32 = 1;
94pub const _DEFAULT_SOURCE: u32 = 1;
95pub const _ATFILE_SOURCE: u32 = 1;
96pub const _DYNAMIC_STACK_SIZE_SOURCE: u32 = 1;
97pub const __GLIBC_USE_ISOC2X: u32 = 1;
98pub const __USE_ISOC11: u32 = 1;
99pub const __USE_ISOC99: u32 = 1;
100pub const __USE_ISOC95: u32 = 1;
101pub const __USE_ISOCXX11: u32 = 1;
102pub const __USE_POSIX: u32 = 1;
103pub const __USE_POSIX2: u32 = 1;
104pub const __USE_POSIX199309: u32 = 1;
105pub const __USE_POSIX199506: u32 = 1;
106pub const __USE_XOPEN2K: u32 = 1;
107pub const __USE_XOPEN2K8: u32 = 1;
108pub const __USE_XOPEN: u32 = 1;
109pub const __USE_XOPEN_EXTENDED: u32 = 1;
110pub const __USE_UNIX98: u32 = 1;
111pub const _LARGEFILE_SOURCE: u32 = 1;
112pub const __USE_XOPEN2K8XSI: u32 = 1;
113pub const __USE_XOPEN2KXSI: u32 = 1;
114pub const __USE_LARGEFILE: u32 = 1;
115pub const __USE_LARGEFILE64: u32 = 1;
116pub const __WORDSIZE: u32 = 64;
117pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1;
118pub const __SYSCALL_WORDSIZE: u32 = 64;
119pub const __TIMESIZE: u32 = 64;
120pub const __USE_MISC: u32 = 1;
121pub const __USE_ATFILE: u32 = 1;
122pub const __USE_DYNAMIC_STACK_SIZE: u32 = 1;
123pub const __USE_GNU: u32 = 1;
124pub const __USE_FORTIFY_LEVEL: u32 = 0;
125pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 1;
126pub const __GLIBC_USE_DEPRECATED_SCANF: u32 = 0;
127pub const _STDC_PREDEF_H: u32 = 1;
128pub const __STDC_IEC_559__: u32 = 1;
129pub const __STDC_IEC_60559_BFP__: u32 = 201404;
130pub const __STDC_IEC_559_COMPLEX__: u32 = 1;
131pub const __STDC_IEC_60559_COMPLEX__: u32 = 201404;
132pub const __STDC_ISO_10646__: u32 = 201706;
133pub const __GNU_LIBRARY__: u32 = 6;
134pub const __GLIBC__: u32 = 2;
135pub const __GLIBC_MINOR__: u32 = 35;
136pub const _SYS_CDEFS_H: u32 = 1;
137pub const __glibc_c99_flexarr_available: u32 = 1;
138pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI: u32 = 0;
139pub const __HAVE_GENERIC_SELECTION: u32 = 0;
140pub const __GLIBC_USE_LIB_EXT2: u32 = 1;
141pub const __GLIBC_USE_IEC_60559_BFP_EXT: u32 = 1;
142pub const __GLIBC_USE_IEC_60559_BFP_EXT_C2X: u32 = 1;
143pub const __GLIBC_USE_IEC_60559_EXT: u32 = 1;
144pub const __GLIBC_USE_IEC_60559_FUNCS_EXT: u32 = 1;
145pub const __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X: u32 = 1;
146pub const __GLIBC_USE_IEC_60559_TYPES_EXT: u32 = 1;
147pub const _BITS_TYPES_LOCALE_T_H: u32 = 1;
148pub const _BITS_TYPES___LOCALE_T_H: u32 = 1;
149pub const _STRINGS_H: u32 = 1;
150pub const STEAMCLIENT_INTERFACE_VERSION: &[u8; 15] = b"SteamClient020\0";
151pub const STEAMUSER_INTERFACE_VERSION: &[u8; 13] = b"SteamUser023\0";
152pub const STEAMFRIENDS_INTERFACE_VERSION: &[u8; 16] = b"SteamFriends017\0";
153pub const STEAMUTILS_INTERFACE_VERSION: &[u8; 14] = b"SteamUtils010\0";
154pub const _STDIO_H: u32 = 1;
155pub const __GNUC_VA_LIST: u32 = 1;
156pub const _BITS_TYPES_H: u32 = 1;
157pub const _BITS_TYPESIZES_H: u32 = 1;
158pub const __OFF_T_MATCHES_OFF64_T: u32 = 1;
159pub const __INO_T_MATCHES_INO64_T: u32 = 1;
160pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1;
161pub const __STATFS_MATCHES_STATFS64: u32 = 1;
162pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64: u32 = 1;
163pub const __FD_SETSIZE: u32 = 1024;
164pub const _BITS_TIME64_H: u32 = 1;
165pub const _____fpos_t_defined: u32 = 1;
166pub const ____mbstate_t_defined: u32 = 1;
167pub const _____fpos64_t_defined: u32 = 1;
168pub const ____FILE_defined: u32 = 1;
169pub const __FILE_defined: u32 = 1;
170pub const __struct_FILE_defined: u32 = 1;
171pub const _IO_EOF_SEEN: u32 = 16;
172pub const _IO_ERR_SEEN: u32 = 32;
173pub const _IO_USER_LOCK: u32 = 32768;
174pub const __cookie_io_functions_t_defined: u32 = 1;
175pub const _IOFBF: u32 = 0;
176pub const _IOLBF: u32 = 1;
177pub const _IONBF: u32 = 2;
178pub const BUFSIZ: u32 = 8192;
179pub const EOF: i32 = -1;
180pub const SEEK_SET: u32 = 0;
181pub const SEEK_CUR: u32 = 1;
182pub const SEEK_END: u32 = 2;
183pub const SEEK_DATA: u32 = 3;
184pub const SEEK_HOLE: u32 = 4;
185pub const P_tmpdir: &[u8; 5] = b"/tmp\0";
186pub const _BITS_STDIO_LIM_H: u32 = 1;
187pub const L_tmpnam: u32 = 20;
188pub const TMP_MAX: u32 = 238328;
189pub const FILENAME_MAX: u32 = 4096;
190pub const L_ctermid: u32 = 9;
191pub const L_cuserid: u32 = 9;
192pub const FOPEN_MAX: u32 = 16;
193pub const _PRINTF_NAN_LEN_MAX: u32 = 4;
194pub const RENAME_NOREPLACE: u32 = 1;
195pub const RENAME_EXCHANGE: u32 = 2;
196pub const RENAME_WHITEOUT: u32 = 4;
197pub const __HAVE_FLOAT128: u32 = 0;
198pub const __HAVE_DISTINCT_FLOAT128: u32 = 0;
199pub const __HAVE_FLOAT64X: u32 = 1;
200pub const __HAVE_FLOAT64X_LONG_DOUBLE: u32 = 1;
201pub const __HAVE_FLOAT16: u32 = 0;
202pub const __HAVE_FLOAT32: u32 = 1;
203pub const __HAVE_FLOAT64: u32 = 1;
204pub const __HAVE_FLOAT32X: u32 = 1;
205pub const __HAVE_FLOAT128X: u32 = 0;
206pub const __HAVE_DISTINCT_FLOAT16: u32 = 0;
207pub const __HAVE_DISTINCT_FLOAT32: u32 = 0;
208pub const __HAVE_DISTINCT_FLOAT64: u32 = 0;
209pub const __HAVE_DISTINCT_FLOAT32X: u32 = 0;
210pub const __HAVE_DISTINCT_FLOAT64X: u32 = 0;
211pub const __HAVE_DISTINCT_FLOAT128X: u32 = 0;
212pub const __HAVE_FLOATN_NOT_TYPEDEF: u32 = 0;
213pub const k_nMaxLobbyKeyLength: u32 = 255;
214pub const STEAMMATCHMAKING_INTERFACE_VERSION: &[u8; 20] = b"SteamMatchMaking009\0";
215pub const STEAMMATCHMAKINGSERVERS_INTERFACE_VERSION: &[u8; 27] = b"SteamMatchMakingServers002\0";
216pub const STEAMGAMESEARCH_INTERFACE_VERSION: &[u8; 24] = b"SteamMatchGameSearch001\0";
217pub const STEAMPARTIES_INTERFACE_VERSION: &[u8; 16] = b"SteamParties002\0";
218pub const STEAMREMOTESTORAGE_INTERFACE_VERSION: &[u8; 40] =
219    b"STEAMREMOTESTORAGE_INTERFACE_VERSION016\0";
220pub const STEAMUSERSTATS_INTERFACE_VERSION: &[u8; 36] = b"STEAMUSERSTATS_INTERFACE_VERSION012\0";
221pub const STEAMAPPS_INTERFACE_VERSION: &[u8; 31] = b"STEAMAPPS_INTERFACE_VERSION008\0";
222pub const STEAMNETWORKING_INTERFACE_VERSION: &[u8; 19] = b"SteamNetworking006\0";
223pub const INVALID_SCREENSHOT_HANDLE: u32 = 0;
224pub const STEAMSCREENSHOTS_INTERFACE_VERSION: &[u8; 38] =
225    b"STEAMSCREENSHOTS_INTERFACE_VERSION003\0";
226pub const STEAMMUSIC_INTERFACE_VERSION: &[u8; 32] = b"STEAMMUSIC_INTERFACE_VERSION001\0";
227pub const k_SteamMusicNameMaxLength: u32 = 255;
228pub const k_SteamMusicPNGMaxLength: u32 = 65535;
229pub const STEAMMUSICREMOTE_INTERFACE_VERSION: &[u8; 38] =
230    b"STEAMMUSICREMOTE_INTERFACE_VERSION001\0";
231pub const INVALID_HTTPREQUEST_HANDLE: u32 = 0;
232pub const INVALID_HTTPCOOKIE_HANDLE: u32 = 0;
233pub const STEAMHTTP_INTERFACE_VERSION: &[u8; 31] = b"STEAMHTTP_INTERFACE_VERSION003\0";
234pub const STEAM_INPUT_MAX_COUNT: u32 = 16;
235pub const STEAM_INPUT_MAX_ANALOG_ACTIONS: u32 = 24;
236pub const STEAM_INPUT_MAX_DIGITAL_ACTIONS: u32 = 256;
237pub const STEAM_INPUT_MAX_ORIGINS: u32 = 8;
238pub const STEAM_INPUT_MAX_ACTIVE_LAYERS: u32 = 16;
239pub const STEAM_INPUT_MIN_ANALOG_ACTION_DATA: f64 = -1.0;
240pub const STEAM_INPUT_MAX_ANALOG_ACTION_DATA: f64 = 1.0;
241pub const STEAMINPUT_INTERFACE_VERSION: &[u8; 14] = b"SteamInput006\0";
242pub const STEAM_CONTROLLER_MAX_COUNT: u32 = 16;
243pub const STEAM_CONTROLLER_MAX_ANALOG_ACTIONS: u32 = 24;
244pub const STEAM_CONTROLLER_MAX_DIGITAL_ACTIONS: u32 = 256;
245pub const STEAM_CONTROLLER_MAX_ORIGINS: u32 = 8;
246pub const STEAM_CONTROLLER_MAX_ACTIVE_LAYERS: u32 = 16;
247pub const STEAM_CONTROLLER_MIN_ANALOG_ACTION_DATA: f64 = -1.0;
248pub const STEAM_CONTROLLER_MAX_ANALOG_ACTION_DATA: f64 = 1.0;
249pub const STEAMCONTROLLER_INTERFACE_VERSION: &[u8; 19] = b"SteamController008\0";
250pub const STEAMUGC_INTERFACE_VERSION: &[u8; 30] = b"STEAMUGC_INTERFACE_VERSION018\0";
251pub const STEAMAPPLIST_INTERFACE_VERSION: &[u8; 34] = b"STEAMAPPLIST_INTERFACE_VERSION001\0";
252pub const STEAMHTMLSURFACE_INTERFACE_VERSION: &[u8; 39] =
253    b"STEAMHTMLSURFACE_INTERFACE_VERSION_005\0";
254pub const STEAMINVENTORY_INTERFACE_VERSION: &[u8; 30] = b"STEAMINVENTORY_INTERFACE_V003\0";
255pub const STEAMVIDEO_INTERFACE_VERSION: &[u8; 26] = b"STEAMVIDEO_INTERFACE_V002\0";
256pub const STEAMPARENTALSETTINGS_INTERFACE_VERSION: &[u8; 43] =
257    b"STEAMPARENTALSETTINGS_INTERFACE_VERSION001\0";
258pub const STEAMREMOTEPLAY_INTERFACE_VERSION: &[u8; 37] = b"STEAMREMOTEPLAY_INTERFACE_VERSION002\0";
259pub const _STDINT_H: u32 = 1;
260pub const _BITS_WCHAR_H: u32 = 1;
261pub const _BITS_STDINT_INTN_H: u32 = 1;
262pub const _BITS_STDINT_UINTN_H: u32 = 1;
263pub const INT8_MIN: i32 = -128;
264pub const INT16_MIN: i32 = -32768;
265pub const INT32_MIN: i32 = -2147483648;
266pub const INT8_MAX: u32 = 127;
267pub const INT16_MAX: u32 = 32767;
268pub const INT32_MAX: u32 = 2147483647;
269pub const UINT8_MAX: u32 = 255;
270pub const UINT16_MAX: u32 = 65535;
271pub const UINT32_MAX: u32 = 4294967295;
272pub const INT_LEAST8_MIN: i32 = -128;
273pub const INT_LEAST16_MIN: i32 = -32768;
274pub const INT_LEAST32_MIN: i32 = -2147483648;
275pub const INT_LEAST8_MAX: u32 = 127;
276pub const INT_LEAST16_MAX: u32 = 32767;
277pub const INT_LEAST32_MAX: u32 = 2147483647;
278pub const UINT_LEAST8_MAX: u32 = 255;
279pub const UINT_LEAST16_MAX: u32 = 65535;
280pub const UINT_LEAST32_MAX: u32 = 4294967295;
281pub const INT_FAST8_MIN: i32 = -128;
282pub const INT_FAST16_MIN: i64 = -9223372036854775808;
283pub const INT_FAST32_MIN: i64 = -9223372036854775808;
284pub const INT_FAST8_MAX: u32 = 127;
285pub const INT_FAST16_MAX: u64 = 9223372036854775807;
286pub const INT_FAST32_MAX: u64 = 9223372036854775807;
287pub const UINT_FAST8_MAX: u32 = 255;
288pub const UINT_FAST16_MAX: i32 = -1;
289pub const UINT_FAST32_MAX: i32 = -1;
290pub const INTPTR_MIN: i64 = -9223372036854775808;
291pub const INTPTR_MAX: u64 = 9223372036854775807;
292pub const UINTPTR_MAX: i32 = -1;
293pub const PTRDIFF_MIN: i64 = -9223372036854775808;
294pub const PTRDIFF_MAX: u64 = 9223372036854775807;
295pub const SIG_ATOMIC_MIN: i32 = -2147483648;
296pub const SIG_ATOMIC_MAX: u32 = 2147483647;
297pub const SIZE_MAX: i32 = -1;
298pub const WINT_MIN: u32 = 0;
299pub const WINT_MAX: u32 = 4294967295;
300pub const INT8_WIDTH: u32 = 8;
301pub const UINT8_WIDTH: u32 = 8;
302pub const INT16_WIDTH: u32 = 16;
303pub const UINT16_WIDTH: u32 = 16;
304pub const INT32_WIDTH: u32 = 32;
305pub const UINT32_WIDTH: u32 = 32;
306pub const INT64_WIDTH: u32 = 64;
307pub const UINT64_WIDTH: u32 = 64;
308pub const INT_LEAST8_WIDTH: u32 = 8;
309pub const UINT_LEAST8_WIDTH: u32 = 8;
310pub const INT_LEAST16_WIDTH: u32 = 16;
311pub const UINT_LEAST16_WIDTH: u32 = 16;
312pub const INT_LEAST32_WIDTH: u32 = 32;
313pub const UINT_LEAST32_WIDTH: u32 = 32;
314pub const INT_LEAST64_WIDTH: u32 = 64;
315pub const UINT_LEAST64_WIDTH: u32 = 64;
316pub const INT_FAST8_WIDTH: u32 = 8;
317pub const UINT_FAST8_WIDTH: u32 = 8;
318pub const INT_FAST16_WIDTH: u32 = 64;
319pub const UINT_FAST16_WIDTH: u32 = 64;
320pub const INT_FAST32_WIDTH: u32 = 64;
321pub const UINT_FAST32_WIDTH: u32 = 64;
322pub const INT_FAST64_WIDTH: u32 = 64;
323pub const UINT_FAST64_WIDTH: u32 = 64;
324pub const INTPTR_WIDTH: u32 = 64;
325pub const UINTPTR_WIDTH: u32 = 64;
326pub const INTMAX_WIDTH: u32 = 64;
327pub const UINTMAX_WIDTH: u32 = 64;
328pub const PTRDIFF_WIDTH: u32 = 64;
329pub const SIG_ATOMIC_WIDTH: u32 = 32;
330pub const SIZE_WIDTH: u32 = 64;
331pub const WCHAR_WIDTH: u32 = 32;
332pub const WINT_WIDTH: u32 = 32;
333pub const STEAMNETWORKINGMESSAGES_INTERFACE_VERSION: &[u8; 27] = b"SteamNetworkingMessages002\0";
334pub const STEAMNETWORKINGSOCKETS_INTERFACE_VERSION: &[u8; 26] = b"SteamNetworkingSockets012\0";
335pub const STEAMNETWORKINGUTILS_INTERFACE_VERSION: &[u8; 24] = b"SteamNetworkingUtils004\0";
336pub const STEAMGAMESERVER_INTERFACE_VERSION: &[u8; 19] = b"SteamGameServer015\0";
337pub const STEAMGAMESERVERSTATS_INTERFACE_VERSION: &[u8; 24] = b"SteamGameServerStats001\0";
338pub type uint8 = ::std::os::raw::c_uchar;
339pub type int8 = ::std::os::raw::c_schar;
340pub type int16 = ::std::os::raw::c_short;
341pub type uint16 = ::std::os::raw::c_ushort;
342pub type int32 = ::std::os::raw::c_int;
343pub type uint32 = ::std::os::raw::c_uint;
344pub type int64 = ::std::os::raw::c_longlong;
345pub type uint64 = ::std::os::raw::c_ulonglong;
346pub type lint64 = ::std::os::raw::c_long;
347pub type ulint64 = ::std::os::raw::c_ulong;
348pub type intp = ::std::os::raw::c_longlong;
349pub type uintp = ::std::os::raw::c_ulonglong;
350pub type AppId_t = uint32;
351pub const k_uAppIdInvalid: AppId_t = 0;
352pub type DepotId_t = uint32;
353pub const k_uDepotIdInvalid: DepotId_t = 0;
354pub type RTime32 = uint32;
355pub type SteamAPICall_t = uint64;
356pub const k_uAPICallInvalid: SteamAPICall_t = 0;
357pub type AccountID_t = uint32;
358pub type PartyBeaconID_t = uint64;
359pub const k_ulPartyBeaconIdInvalid: PartyBeaconID_t = 0;
360#[repr(u32)]
361#[non_exhaustive]
362#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
363pub enum ESteamIPType {
364    k_ESteamIPTypeIPv4 = 0,
365    k_ESteamIPTypeIPv6 = 1,
366}
367#[repr(C, packed)]
368#[derive(Copy, Clone)]
369pub struct SteamIPAddress_t {
370    pub __bindgen_anon_1: SteamIPAddress_t__bindgen_ty_1,
371    pub m_eType: ESteamIPType,
372}
373#[repr(C, packed)]
374#[derive(Copy, Clone)]
375pub union SteamIPAddress_t__bindgen_ty_1 {
376    pub m_unIPv4: uint32,
377    pub m_rgubIPv6: [uint8; 16usize],
378    pub m_ipv6Qword: [uint64; 2usize],
379}
380#[test]
381fn bindgen_test_layout_SteamIPAddress_t__bindgen_ty_1() {
382    const UNINIT: ::std::mem::MaybeUninit<SteamIPAddress_t__bindgen_ty_1> =
383        ::std::mem::MaybeUninit::uninit();
384    let ptr = UNINIT.as_ptr();
385    assert_eq!(
386        ::std::mem::size_of::<SteamIPAddress_t__bindgen_ty_1>(),
387        16usize,
388        concat!("Size of: ", stringify!(SteamIPAddress_t__bindgen_ty_1))
389    );
390    assert_eq!(
391        ::std::mem::align_of::<SteamIPAddress_t__bindgen_ty_1>(),
392        1usize,
393        concat!("Alignment of ", stringify!(SteamIPAddress_t__bindgen_ty_1))
394    );
395    assert_eq!(
396        unsafe { ::std::ptr::addr_of!((*ptr).m_unIPv4) as usize - ptr as usize },
397        0usize,
398        concat!(
399            "Offset of field: ",
400            stringify!(SteamIPAddress_t__bindgen_ty_1),
401            "::",
402            stringify!(m_unIPv4)
403        )
404    );
405    assert_eq!(
406        unsafe { ::std::ptr::addr_of!((*ptr).m_rgubIPv6) as usize - ptr as usize },
407        0usize,
408        concat!(
409            "Offset of field: ",
410            stringify!(SteamIPAddress_t__bindgen_ty_1),
411            "::",
412            stringify!(m_rgubIPv6)
413        )
414    );
415    assert_eq!(
416        unsafe { ::std::ptr::addr_of!((*ptr).m_ipv6Qword) as usize - ptr as usize },
417        0usize,
418        concat!(
419            "Offset of field: ",
420            stringify!(SteamIPAddress_t__bindgen_ty_1),
421            "::",
422            stringify!(m_ipv6Qword)
423        )
424    );
425}
426#[test]
427fn bindgen_test_layout_SteamIPAddress_t() {
428    const UNINIT: ::std::mem::MaybeUninit<SteamIPAddress_t> = ::std::mem::MaybeUninit::uninit();
429    let ptr = UNINIT.as_ptr();
430    assert_eq!(
431        ::std::mem::size_of::<SteamIPAddress_t>(),
432        20usize,
433        concat!("Size of: ", stringify!(SteamIPAddress_t))
434    );
435    assert_eq!(
436        ::std::mem::align_of::<SteamIPAddress_t>(),
437        1usize,
438        concat!("Alignment of ", stringify!(SteamIPAddress_t))
439    );
440    assert_eq!(
441        unsafe { ::std::ptr::addr_of!((*ptr).m_eType) as usize - ptr as usize },
442        16usize,
443        concat!(
444            "Offset of field: ",
445            stringify!(SteamIPAddress_t),
446            "::",
447            stringify!(m_eType)
448        )
449    );
450}
451#[repr(u32)]
452#[non_exhaustive]
453#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
454pub enum EUniverse {
455    k_EUniverseInvalid = 0,
456    k_EUniversePublic = 1,
457    k_EUniverseBeta = 2,
458    k_EUniverseInternal = 3,
459    k_EUniverseDev = 4,
460    k_EUniverseMax = 5,
461}
462#[repr(u32)]
463#[non_exhaustive]
464#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
465pub enum EResult {
466    k_EResultNone = 0,
467    k_EResultOK = 1,
468    k_EResultFail = 2,
469    k_EResultNoConnection = 3,
470    k_EResultInvalidPassword = 5,
471    k_EResultLoggedInElsewhere = 6,
472    k_EResultInvalidProtocolVer = 7,
473    k_EResultInvalidParam = 8,
474    k_EResultFileNotFound = 9,
475    k_EResultBusy = 10,
476    k_EResultInvalidState = 11,
477    k_EResultInvalidName = 12,
478    k_EResultInvalidEmail = 13,
479    k_EResultDuplicateName = 14,
480    k_EResultAccessDenied = 15,
481    k_EResultTimeout = 16,
482    k_EResultBanned = 17,
483    k_EResultAccountNotFound = 18,
484    k_EResultInvalidSteamID = 19,
485    k_EResultServiceUnavailable = 20,
486    k_EResultNotLoggedOn = 21,
487    k_EResultPending = 22,
488    k_EResultEncryptionFailure = 23,
489    k_EResultInsufficientPrivilege = 24,
490    k_EResultLimitExceeded = 25,
491    k_EResultRevoked = 26,
492    k_EResultExpired = 27,
493    k_EResultAlreadyRedeemed = 28,
494    k_EResultDuplicateRequest = 29,
495    k_EResultAlreadyOwned = 30,
496    k_EResultIPNotFound = 31,
497    k_EResultPersistFailed = 32,
498    k_EResultLockingFailed = 33,
499    k_EResultLogonSessionReplaced = 34,
500    k_EResultConnectFailed = 35,
501    k_EResultHandshakeFailed = 36,
502    k_EResultIOFailure = 37,
503    k_EResultRemoteDisconnect = 38,
504    k_EResultShoppingCartNotFound = 39,
505    k_EResultBlocked = 40,
506    k_EResultIgnored = 41,
507    k_EResultNoMatch = 42,
508    k_EResultAccountDisabled = 43,
509    k_EResultServiceReadOnly = 44,
510    k_EResultAccountNotFeatured = 45,
511    k_EResultAdministratorOK = 46,
512    k_EResultContentVersion = 47,
513    k_EResultTryAnotherCM = 48,
514    k_EResultPasswordRequiredToKickSession = 49,
515    k_EResultAlreadyLoggedInElsewhere = 50,
516    k_EResultSuspended = 51,
517    k_EResultCancelled = 52,
518    k_EResultDataCorruption = 53,
519    k_EResultDiskFull = 54,
520    k_EResultRemoteCallFailed = 55,
521    k_EResultPasswordUnset = 56,
522    k_EResultExternalAccountUnlinked = 57,
523    k_EResultPSNTicketInvalid = 58,
524    k_EResultExternalAccountAlreadyLinked = 59,
525    k_EResultRemoteFileConflict = 60,
526    k_EResultIllegalPassword = 61,
527    k_EResultSameAsPreviousValue = 62,
528    k_EResultAccountLogonDenied = 63,
529    k_EResultCannotUseOldPassword = 64,
530    k_EResultInvalidLoginAuthCode = 65,
531    k_EResultAccountLogonDeniedNoMail = 66,
532    k_EResultHardwareNotCapableOfIPT = 67,
533    k_EResultIPTInitError = 68,
534    k_EResultParentalControlRestricted = 69,
535    k_EResultFacebookQueryError = 70,
536    k_EResultExpiredLoginAuthCode = 71,
537    k_EResultIPLoginRestrictionFailed = 72,
538    k_EResultAccountLockedDown = 73,
539    k_EResultAccountLogonDeniedVerifiedEmailRequired = 74,
540    k_EResultNoMatchingURL = 75,
541    k_EResultBadResponse = 76,
542    k_EResultRequirePasswordReEntry = 77,
543    k_EResultValueOutOfRange = 78,
544    k_EResultUnexpectedError = 79,
545    k_EResultDisabled = 80,
546    k_EResultInvalidCEGSubmission = 81,
547    k_EResultRestrictedDevice = 82,
548    k_EResultRegionLocked = 83,
549    k_EResultRateLimitExceeded = 84,
550    k_EResultAccountLoginDeniedNeedTwoFactor = 85,
551    k_EResultItemDeleted = 86,
552    k_EResultAccountLoginDeniedThrottle = 87,
553    k_EResultTwoFactorCodeMismatch = 88,
554    k_EResultTwoFactorActivationCodeMismatch = 89,
555    k_EResultAccountAssociatedToMultiplePartners = 90,
556    k_EResultNotModified = 91,
557    k_EResultNoMobileDevice = 92,
558    k_EResultTimeNotSynced = 93,
559    k_EResultSmsCodeFailed = 94,
560    k_EResultAccountLimitExceeded = 95,
561    k_EResultAccountActivityLimitExceeded = 96,
562    k_EResultPhoneActivityLimitExceeded = 97,
563    k_EResultRefundToWallet = 98,
564    k_EResultEmailSendFailure = 99,
565    k_EResultNotSettled = 100,
566    k_EResultNeedCaptcha = 101,
567    k_EResultGSLTDenied = 102,
568    k_EResultGSOwnerDenied = 103,
569    k_EResultInvalidItemType = 104,
570    k_EResultIPBanned = 105,
571    k_EResultGSLTExpired = 106,
572    k_EResultInsufficientFunds = 107,
573    k_EResultTooManyPending = 108,
574    k_EResultNoSiteLicensesFound = 109,
575    k_EResultWGNetworkSendExceeded = 110,
576    k_EResultAccountNotFriends = 111,
577    k_EResultLimitedUserAccount = 112,
578    k_EResultCantRemoveItem = 113,
579    k_EResultAccountDeleted = 114,
580    k_EResultExistingUserCancelledLicense = 115,
581    k_EResultCommunityCooldown = 116,
582    k_EResultNoLauncherSpecified = 117,
583    k_EResultMustAgreeToSSA = 118,
584    k_EResultLauncherMigrated = 119,
585    k_EResultSteamRealmMismatch = 120,
586    k_EResultInvalidSignature = 121,
587    k_EResultParseFailure = 122,
588    k_EResultNoVerifiedPhone = 123,
589    k_EResultInsufficientBattery = 124,
590    k_EResultChargerRequired = 125,
591    k_EResultCachedCredentialInvalid = 126,
592    K_EResultPhoneNumberIsVOIP = 127,
593}
594#[repr(u32)]
595#[non_exhaustive]
596#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
597pub enum EVoiceResult {
598    k_EVoiceResultOK = 0,
599    k_EVoiceResultNotInitialized = 1,
600    k_EVoiceResultNotRecording = 2,
601    k_EVoiceResultNoData = 3,
602    k_EVoiceResultBufferTooSmall = 4,
603    k_EVoiceResultDataCorrupted = 5,
604    k_EVoiceResultRestricted = 6,
605    k_EVoiceResultUnsupportedCodec = 7,
606    k_EVoiceResultReceiverOutOfDate = 8,
607    k_EVoiceResultReceiverDidNotAnswer = 9,
608}
609#[repr(u32)]
610#[non_exhaustive]
611#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
612pub enum EDenyReason {
613    k_EDenyInvalid = 0,
614    k_EDenyInvalidVersion = 1,
615    k_EDenyGeneric = 2,
616    k_EDenyNotLoggedOn = 3,
617    k_EDenyNoLicense = 4,
618    k_EDenyCheater = 5,
619    k_EDenyLoggedInElseWhere = 6,
620    k_EDenyUnknownText = 7,
621    k_EDenyIncompatibleAnticheat = 8,
622    k_EDenyMemoryCorruption = 9,
623    k_EDenyIncompatibleSoftware = 10,
624    k_EDenySteamConnectionLost = 11,
625    k_EDenySteamConnectionError = 12,
626    k_EDenySteamResponseTimedOut = 13,
627    k_EDenySteamValidationStalled = 14,
628    k_EDenySteamOwnerLeftGuestUser = 15,
629}
630pub type HAuthTicket = uint32;
631pub const k_HAuthTicketInvalid: HAuthTicket = 0;
632#[repr(u32)]
633#[non_exhaustive]
634#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
635pub enum EBeginAuthSessionResult {
636    k_EBeginAuthSessionResultOK = 0,
637    k_EBeginAuthSessionResultInvalidTicket = 1,
638    k_EBeginAuthSessionResultDuplicateRequest = 2,
639    k_EBeginAuthSessionResultInvalidVersion = 3,
640    k_EBeginAuthSessionResultGameMismatch = 4,
641    k_EBeginAuthSessionResultExpiredTicket = 5,
642}
643#[repr(u32)]
644#[non_exhaustive]
645#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
646pub enum EAuthSessionResponse {
647    k_EAuthSessionResponseOK = 0,
648    k_EAuthSessionResponseUserNotConnectedToSteam = 1,
649    k_EAuthSessionResponseNoLicenseOrExpired = 2,
650    k_EAuthSessionResponseVACBanned = 3,
651    k_EAuthSessionResponseLoggedInElseWhere = 4,
652    k_EAuthSessionResponseVACCheckTimedOut = 5,
653    k_EAuthSessionResponseAuthTicketCanceled = 6,
654    k_EAuthSessionResponseAuthTicketInvalidAlreadyUsed = 7,
655    k_EAuthSessionResponseAuthTicketInvalid = 8,
656    k_EAuthSessionResponsePublisherIssuedBan = 9,
657    k_EAuthSessionResponseAuthTicketNetworkIdentityFailure = 10,
658}
659#[repr(u32)]
660#[non_exhaustive]
661#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
662pub enum EUserHasLicenseForAppResult {
663    k_EUserHasLicenseResultHasLicense = 0,
664    k_EUserHasLicenseResultDoesNotHaveLicense = 1,
665    k_EUserHasLicenseResultNoAuth = 2,
666}
667#[repr(u32)]
668#[non_exhaustive]
669#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
670pub enum EAccountType {
671    k_EAccountTypeInvalid = 0,
672    k_EAccountTypeIndividual = 1,
673    k_EAccountTypeMultiseat = 2,
674    k_EAccountTypeGameServer = 3,
675    k_EAccountTypeAnonGameServer = 4,
676    k_EAccountTypePending = 5,
677    k_EAccountTypeContentServer = 6,
678    k_EAccountTypeClan = 7,
679    k_EAccountTypeChat = 8,
680    k_EAccountTypeConsoleUser = 9,
681    k_EAccountTypeAnonUser = 10,
682    k_EAccountTypeMax = 11,
683}
684#[repr(u32)]
685#[non_exhaustive]
686#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
687pub enum EChatEntryType {
688    k_EChatEntryTypeInvalid = 0,
689    k_EChatEntryTypeChatMsg = 1,
690    k_EChatEntryTypeTyping = 2,
691    k_EChatEntryTypeInviteGame = 3,
692    k_EChatEntryTypeEmote = 4,
693    k_EChatEntryTypeLeftConversation = 6,
694    k_EChatEntryTypeEntered = 7,
695    k_EChatEntryTypeWasKicked = 8,
696    k_EChatEntryTypeWasBanned = 9,
697    k_EChatEntryTypeDisconnected = 10,
698    k_EChatEntryTypeHistoricalChat = 11,
699    k_EChatEntryTypeLinkBlocked = 14,
700}
701#[repr(u32)]
702#[non_exhaustive]
703#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
704pub enum EChatRoomEnterResponse {
705    k_EChatRoomEnterResponseSuccess = 1,
706    k_EChatRoomEnterResponseDoesntExist = 2,
707    k_EChatRoomEnterResponseNotAllowed = 3,
708    k_EChatRoomEnterResponseFull = 4,
709    k_EChatRoomEnterResponseError = 5,
710    k_EChatRoomEnterResponseBanned = 6,
711    k_EChatRoomEnterResponseLimited = 7,
712    k_EChatRoomEnterResponseClanDisabled = 8,
713    k_EChatRoomEnterResponseCommunityBan = 9,
714    k_EChatRoomEnterResponseMemberBlockedYou = 10,
715    k_EChatRoomEnterResponseYouBlockedMember = 11,
716    k_EChatRoomEnterResponseRatelimitExceeded = 15,
717}
718pub const k_unSteamAccountIDMask: ::std::os::raw::c_uint = 4294967295;
719pub const k_unSteamAccountInstanceMask: ::std::os::raw::c_uint = 1048575;
720pub const k_unSteamUserDefaultInstance: ::std::os::raw::c_uint = 1;
721#[repr(u32)]
722#[non_exhaustive]
723#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
724pub enum EChatSteamIDInstanceFlags {
725    k_EChatAccountInstanceMask = 4095,
726    k_EChatInstanceFlagClan = 524288,
727    k_EChatInstanceFlagLobby = 262144,
728    k_EChatInstanceFlagMMSLobby = 131072,
729}
730#[repr(i32)]
731#[non_exhaustive]
732#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
733pub enum ENotificationPosition {
734    k_EPositionInvalid = -1,
735    k_EPositionTopLeft = 0,
736    k_EPositionTopRight = 1,
737    k_EPositionBottomLeft = 2,
738    k_EPositionBottomRight = 3,
739}
740#[repr(u32)]
741#[non_exhaustive]
742#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
743pub enum EBroadcastUploadResult {
744    k_EBroadcastUploadResultNone = 0,
745    k_EBroadcastUploadResultOK = 1,
746    k_EBroadcastUploadResultInitFailed = 2,
747    k_EBroadcastUploadResultFrameFailed = 3,
748    k_EBroadcastUploadResultTimeout = 4,
749    k_EBroadcastUploadResultBandwidthExceeded = 5,
750    k_EBroadcastUploadResultLowFPS = 6,
751    k_EBroadcastUploadResultMissingKeyFrames = 7,
752    k_EBroadcastUploadResultNoConnection = 8,
753    k_EBroadcastUploadResultRelayFailed = 9,
754    k_EBroadcastUploadResultSettingsChanged = 10,
755    k_EBroadcastUploadResultMissingAudio = 11,
756    k_EBroadcastUploadResultTooFarBehind = 12,
757    k_EBroadcastUploadResultTranscodeBehind = 13,
758    k_EBroadcastUploadResultNotAllowedToPlay = 14,
759    k_EBroadcastUploadResultBusy = 15,
760    k_EBroadcastUploadResultBanned = 16,
761    k_EBroadcastUploadResultAlreadyActive = 17,
762    k_EBroadcastUploadResultForcedOff = 18,
763    k_EBroadcastUploadResultAudioBehind = 19,
764    k_EBroadcastUploadResultShutdown = 20,
765    k_EBroadcastUploadResultDisconnect = 21,
766    k_EBroadcastUploadResultVideoInitFailed = 22,
767    k_EBroadcastUploadResultAudioInitFailed = 23,
768}
769#[repr(u32)]
770#[non_exhaustive]
771#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
772pub enum EMarketNotAllowedReasonFlags {
773    k_EMarketNotAllowedReason_None = 0,
774    k_EMarketNotAllowedReason_TemporaryFailure = 1,
775    k_EMarketNotAllowedReason_AccountDisabled = 2,
776    k_EMarketNotAllowedReason_AccountLockedDown = 4,
777    k_EMarketNotAllowedReason_AccountLimited = 8,
778    k_EMarketNotAllowedReason_TradeBanned = 16,
779    k_EMarketNotAllowedReason_AccountNotTrusted = 32,
780    k_EMarketNotAllowedReason_SteamGuardNotEnabled = 64,
781    k_EMarketNotAllowedReason_SteamGuardOnlyRecentlyEnabled = 128,
782    k_EMarketNotAllowedReason_RecentPasswordReset = 256,
783    k_EMarketNotAllowedReason_NewPaymentMethod = 512,
784    k_EMarketNotAllowedReason_InvalidCookie = 1024,
785    k_EMarketNotAllowedReason_UsingNewDevice = 2048,
786    k_EMarketNotAllowedReason_RecentSelfRefund = 4096,
787    k_EMarketNotAllowedReason_NewPaymentMethodCannotBeVerified = 8192,
788    k_EMarketNotAllowedReason_NoRecentPurchases = 16384,
789    k_EMarketNotAllowedReason_AcceptedWalletGift = 32768,
790}
791#[repr(u32)]
792#[non_exhaustive]
793#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
794pub enum EDurationControlProgress {
795    k_EDurationControlProgress_Full = 0,
796    k_EDurationControlProgress_Half = 1,
797    k_EDurationControlProgress_None = 2,
798    k_EDurationControl_ExitSoon_3h = 3,
799    k_EDurationControl_ExitSoon_5h = 4,
800    k_EDurationControl_ExitSoon_Night = 5,
801}
802#[repr(u32)]
803#[non_exhaustive]
804#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
805pub enum EDurationControlNotification {
806    k_EDurationControlNotification_None = 0,
807    k_EDurationControlNotification_1Hour = 1,
808    k_EDurationControlNotification_3Hours = 2,
809    k_EDurationControlNotification_HalfProgress = 3,
810    k_EDurationControlNotification_NoProgress = 4,
811    k_EDurationControlNotification_ExitSoon_3h = 5,
812    k_EDurationControlNotification_ExitSoon_5h = 6,
813    k_EDurationControlNotification_ExitSoon_Night = 7,
814}
815#[repr(u32)]
816#[non_exhaustive]
817#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
818pub enum EDurationControlOnlineState {
819    k_EDurationControlOnlineState_Invalid = 0,
820    k_EDurationControlOnlineState_Offline = 1,
821    k_EDurationControlOnlineState_Online = 2,
822    k_EDurationControlOnlineState_OnlineHighPri = 3,
823}
824#[repr(C)]
825#[derive(Copy, Clone)]
826pub struct CSteamID {
827    pub m_steamid: CSteamID_SteamID_t,
828}
829#[repr(C, packed)]
830#[derive(Copy, Clone)]
831pub union CSteamID_SteamID_t {
832    pub m_comp: CSteamID_SteamID_t_SteamIDComponent_t,
833    pub m_unAll64Bits: uint64,
834}
835#[repr(C, packed)]
836#[derive(Debug, Copy, Clone)]
837pub struct CSteamID_SteamID_t_SteamIDComponent_t {
838    pub _bitfield_align_1: [u8; 0],
839    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
840}
841#[test]
842fn bindgen_test_layout_CSteamID_SteamID_t_SteamIDComponent_t() {
843    assert_eq!(
844        ::std::mem::size_of::<CSteamID_SteamID_t_SteamIDComponent_t>(),
845        8usize,
846        concat!(
847            "Size of: ",
848            stringify!(CSteamID_SteamID_t_SteamIDComponent_t)
849        )
850    );
851    assert_eq!(
852        ::std::mem::align_of::<CSteamID_SteamID_t_SteamIDComponent_t>(),
853        1usize,
854        concat!(
855            "Alignment of ",
856            stringify!(CSteamID_SteamID_t_SteamIDComponent_t)
857        )
858    );
859}
860impl CSteamID_SteamID_t_SteamIDComponent_t {
861    #[inline]
862    pub fn m_unAccountID(&self) -> uint32 {
863        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 32u8) as u32) }
864    }
865    #[inline]
866    pub fn set_m_unAccountID(&mut self, val: uint32) {
867        unsafe {
868            let val: u32 = ::std::mem::transmute(val);
869            self._bitfield_1.set(0usize, 32u8, val as u64)
870        }
871    }
872    #[inline]
873    pub fn m_unAccountInstance(&self) -> ::std::os::raw::c_uint {
874        unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 20u8) as u32) }
875    }
876    #[inline]
877    pub fn set_m_unAccountInstance(&mut self, val: ::std::os::raw::c_uint) {
878        unsafe {
879            let val: u32 = ::std::mem::transmute(val);
880            self._bitfield_1.set(32usize, 20u8, val as u64)
881        }
882    }
883    #[inline]
884    pub fn m_EAccountType(&self) -> ::std::os::raw::c_uint {
885        unsafe { ::std::mem::transmute(self._bitfield_1.get(52usize, 4u8) as u32) }
886    }
887    #[inline]
888    pub fn set_m_EAccountType(&mut self, val: ::std::os::raw::c_uint) {
889        unsafe {
890            let val: u32 = ::std::mem::transmute(val);
891            self._bitfield_1.set(52usize, 4u8, val as u64)
892        }
893    }
894    #[inline]
895    pub fn m_EUniverse(&self) -> EUniverse {
896        unsafe { ::std::mem::transmute(self._bitfield_1.get(56usize, 8u8) as u32) }
897    }
898    #[inline]
899    pub fn set_m_EUniverse(&mut self, val: EUniverse) {
900        unsafe {
901            let val: u32 = ::std::mem::transmute(val);
902            self._bitfield_1.set(56usize, 8u8, val as u64)
903        }
904    }
905    #[inline]
906    pub fn new_bitfield_1(
907        m_unAccountID: uint32,
908        m_unAccountInstance: ::std::os::raw::c_uint,
909        m_EAccountType: ::std::os::raw::c_uint,
910        m_EUniverse: EUniverse,
911    ) -> __BindgenBitfieldUnit<[u8; 8usize]> {
912        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
913        __bindgen_bitfield_unit.set(0usize, 32u8, {
914            let m_unAccountID: u32 = unsafe { ::std::mem::transmute(m_unAccountID) };
915            m_unAccountID as u64
916        });
917        __bindgen_bitfield_unit.set(32usize, 20u8, {
918            let m_unAccountInstance: u32 = unsafe { ::std::mem::transmute(m_unAccountInstance) };
919            m_unAccountInstance as u64
920        });
921        __bindgen_bitfield_unit.set(52usize, 4u8, {
922            let m_EAccountType: u32 = unsafe { ::std::mem::transmute(m_EAccountType) };
923            m_EAccountType as u64
924        });
925        __bindgen_bitfield_unit.set(56usize, 8u8, {
926            let m_EUniverse: u32 = unsafe { ::std::mem::transmute(m_EUniverse) };
927            m_EUniverse as u64
928        });
929        __bindgen_bitfield_unit
930    }
931}
932#[test]
933fn bindgen_test_layout_CSteamID_SteamID_t() {
934    const UNINIT: ::std::mem::MaybeUninit<CSteamID_SteamID_t> = ::std::mem::MaybeUninit::uninit();
935    let ptr = UNINIT.as_ptr();
936    assert_eq!(
937        ::std::mem::size_of::<CSteamID_SteamID_t>(),
938        8usize,
939        concat!("Size of: ", stringify!(CSteamID_SteamID_t))
940    );
941    assert_eq!(
942        ::std::mem::align_of::<CSteamID_SteamID_t>(),
943        1usize,
944        concat!("Alignment of ", stringify!(CSteamID_SteamID_t))
945    );
946    assert_eq!(
947        unsafe { ::std::ptr::addr_of!((*ptr).m_comp) as usize - ptr as usize },
948        0usize,
949        concat!(
950            "Offset of field: ",
951            stringify!(CSteamID_SteamID_t),
952            "::",
953            stringify!(m_comp)
954        )
955    );
956    assert_eq!(
957        unsafe { ::std::ptr::addr_of!((*ptr).m_unAll64Bits) as usize - ptr as usize },
958        0usize,
959        concat!(
960            "Offset of field: ",
961            stringify!(CSteamID_SteamID_t),
962            "::",
963            stringify!(m_unAll64Bits)
964        )
965    );
966}
967#[test]
968fn bindgen_test_layout_CSteamID() {
969    const UNINIT: ::std::mem::MaybeUninit<CSteamID> = ::std::mem::MaybeUninit::uninit();
970    let ptr = UNINIT.as_ptr();
971    assert_eq!(
972        ::std::mem::size_of::<CSteamID>(),
973        8usize,
974        concat!("Size of: ", stringify!(CSteamID))
975    );
976    assert_eq!(
977        ::std::mem::align_of::<CSteamID>(),
978        1usize,
979        concat!("Alignment of ", stringify!(CSteamID))
980    );
981    assert_eq!(
982        unsafe { ::std::ptr::addr_of!((*ptr).m_steamid) as usize - ptr as usize },
983        0usize,
984        concat!(
985            "Offset of field: ",
986            stringify!(CSteamID),
987            "::",
988            stringify!(m_steamid)
989        )
990    );
991}
992extern "C" {
993    #[link_name = "\u{1}_ZNK8CSteamID6RenderEv"]
994    pub fn CSteamID_Render(this: *const CSteamID) -> *const ::std::os::raw::c_char;
995}
996extern "C" {
997    #[link_name = "\u{1}_ZN8CSteamID6RenderEy"]
998    pub fn CSteamID_Render1(ulSteamID: uint64) -> *const ::std::os::raw::c_char;
999}
1000extern "C" {
1001    #[link_name = "\u{1}_ZN8CSteamID13SetFromStringEPKc9EUniverse"]
1002    pub fn CSteamID_SetFromString(
1003        this: *mut CSteamID,
1004        pchSteamID: *const ::std::os::raw::c_char,
1005        eDefaultUniverse: EUniverse,
1006    );
1007}
1008extern "C" {
1009    #[link_name = "\u{1}_ZN8CSteamID19SetFromStringStrictEPKc9EUniverse"]
1010    pub fn CSteamID_SetFromStringStrict(
1011        this: *mut CSteamID,
1012        pchSteamID: *const ::std::os::raw::c_char,
1013        eDefaultUniverse: EUniverse,
1014    ) -> bool;
1015}
1016extern "C" {
1017    #[link_name = "\u{1}_ZNK8CSteamID21BValidExternalSteamIDEv"]
1018    pub fn CSteamID_BValidExternalSteamID(this: *const CSteamID) -> bool;
1019}
1020extern "C" {
1021    #[link_name = "\u{1}_ZN8CSteamIDC1EPKc9EUniverse"]
1022    pub fn CSteamID_CSteamID(
1023        this: *mut CSteamID,
1024        pchSteamID: *const ::std::os::raw::c_char,
1025        eDefaultUniverse: EUniverse,
1026    );
1027}
1028impl CSteamID {
1029    #[inline]
1030    pub unsafe fn Render(&self) -> *const ::std::os::raw::c_char {
1031        CSteamID_Render(self)
1032    }
1033    #[inline]
1034    pub unsafe fn Render1(ulSteamID: uint64) -> *const ::std::os::raw::c_char {
1035        CSteamID_Render1(ulSteamID)
1036    }
1037    #[inline]
1038    pub unsafe fn SetFromString(
1039        &mut self,
1040        pchSteamID: *const ::std::os::raw::c_char,
1041        eDefaultUniverse: EUniverse,
1042    ) {
1043        CSteamID_SetFromString(self, pchSteamID, eDefaultUniverse)
1044    }
1045    #[inline]
1046    pub unsafe fn SetFromStringStrict(
1047        &mut self,
1048        pchSteamID: *const ::std::os::raw::c_char,
1049        eDefaultUniverse: EUniverse,
1050    ) -> bool {
1051        CSteamID_SetFromStringStrict(self, pchSteamID, eDefaultUniverse)
1052    }
1053    #[inline]
1054    pub unsafe fn BValidExternalSteamID(&self) -> bool {
1055        CSteamID_BValidExternalSteamID(self)
1056    }
1057    #[inline]
1058    pub unsafe fn new(
1059        pchSteamID: *const ::std::os::raw::c_char,
1060        eDefaultUniverse: EUniverse,
1061    ) -> Self {
1062        let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
1063        CSteamID_CSteamID(__bindgen_tmp.as_mut_ptr(), pchSteamID, eDefaultUniverse);
1064        __bindgen_tmp.assume_init()
1065    }
1066}
1067#[repr(C)]
1068#[derive(Copy, Clone)]
1069pub struct CGameID {
1070    pub __bindgen_anon_1: CGameID__bindgen_ty_1,
1071}
1072#[repr(u32)]
1073#[non_exhaustive]
1074#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1075pub enum CGameID_EGameIDType {
1076    k_EGameIDTypeApp = 0,
1077    k_EGameIDTypeGameMod = 1,
1078    k_EGameIDTypeShortcut = 2,
1079    k_EGameIDTypeP2P = 3,
1080}
1081#[repr(C, packed)]
1082#[derive(Debug, Copy, Clone)]
1083pub struct CGameID_GameID_t {
1084    pub _bitfield_align_1: [u8; 0],
1085    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
1086}
1087#[test]
1088fn bindgen_test_layout_CGameID_GameID_t() {
1089    assert_eq!(
1090        ::std::mem::size_of::<CGameID_GameID_t>(),
1091        8usize,
1092        concat!("Size of: ", stringify!(CGameID_GameID_t))
1093    );
1094    assert_eq!(
1095        ::std::mem::align_of::<CGameID_GameID_t>(),
1096        1usize,
1097        concat!("Alignment of ", stringify!(CGameID_GameID_t))
1098    );
1099}
1100impl CGameID_GameID_t {
1101    #[inline]
1102    pub fn m_nAppID(&self) -> ::std::os::raw::c_uint {
1103        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 24u8) as u32) }
1104    }
1105    #[inline]
1106    pub fn set_m_nAppID(&mut self, val: ::std::os::raw::c_uint) {
1107        unsafe {
1108            let val: u32 = ::std::mem::transmute(val);
1109            self._bitfield_1.set(0usize, 24u8, val as u64)
1110        }
1111    }
1112    #[inline]
1113    pub fn m_nType(&self) -> ::std::os::raw::c_uint {
1114        unsafe { ::std::mem::transmute(self._bitfield_1.get(24usize, 8u8) as u32) }
1115    }
1116    #[inline]
1117    pub fn set_m_nType(&mut self, val: ::std::os::raw::c_uint) {
1118        unsafe {
1119            let val: u32 = ::std::mem::transmute(val);
1120            self._bitfield_1.set(24usize, 8u8, val as u64)
1121        }
1122    }
1123    #[inline]
1124    pub fn m_nModID(&self) -> ::std::os::raw::c_uint {
1125        unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 32u8) as u32) }
1126    }
1127    #[inline]
1128    pub fn set_m_nModID(&mut self, val: ::std::os::raw::c_uint) {
1129        unsafe {
1130            let val: u32 = ::std::mem::transmute(val);
1131            self._bitfield_1.set(32usize, 32u8, val as u64)
1132        }
1133    }
1134    #[inline]
1135    pub fn new_bitfield_1(
1136        m_nAppID: ::std::os::raw::c_uint,
1137        m_nType: ::std::os::raw::c_uint,
1138        m_nModID: ::std::os::raw::c_uint,
1139    ) -> __BindgenBitfieldUnit<[u8; 8usize]> {
1140        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
1141        __bindgen_bitfield_unit.set(0usize, 24u8, {
1142            let m_nAppID: u32 = unsafe { ::std::mem::transmute(m_nAppID) };
1143            m_nAppID as u64
1144        });
1145        __bindgen_bitfield_unit.set(24usize, 8u8, {
1146            let m_nType: u32 = unsafe { ::std::mem::transmute(m_nType) };
1147            m_nType as u64
1148        });
1149        __bindgen_bitfield_unit.set(32usize, 32u8, {
1150            let m_nModID: u32 = unsafe { ::std::mem::transmute(m_nModID) };
1151            m_nModID as u64
1152        });
1153        __bindgen_bitfield_unit
1154    }
1155}
1156#[repr(C, packed)]
1157#[derive(Copy, Clone)]
1158pub union CGameID__bindgen_ty_1 {
1159    pub m_ulGameID: uint64,
1160    pub m_gameID: CGameID_GameID_t,
1161}
1162#[test]
1163fn bindgen_test_layout_CGameID__bindgen_ty_1() {
1164    const UNINIT: ::std::mem::MaybeUninit<CGameID__bindgen_ty_1> =
1165        ::std::mem::MaybeUninit::uninit();
1166    let ptr = UNINIT.as_ptr();
1167    assert_eq!(
1168        ::std::mem::size_of::<CGameID__bindgen_ty_1>(),
1169        8usize,
1170        concat!("Size of: ", stringify!(CGameID__bindgen_ty_1))
1171    );
1172    assert_eq!(
1173        ::std::mem::align_of::<CGameID__bindgen_ty_1>(),
1174        1usize,
1175        concat!("Alignment of ", stringify!(CGameID__bindgen_ty_1))
1176    );
1177    assert_eq!(
1178        unsafe { ::std::ptr::addr_of!((*ptr).m_ulGameID) as usize - ptr as usize },
1179        0usize,
1180        concat!(
1181            "Offset of field: ",
1182            stringify!(CGameID__bindgen_ty_1),
1183            "::",
1184            stringify!(m_ulGameID)
1185        )
1186    );
1187    assert_eq!(
1188        unsafe { ::std::ptr::addr_of!((*ptr).m_gameID) as usize - ptr as usize },
1189        0usize,
1190        concat!(
1191            "Offset of field: ",
1192            stringify!(CGameID__bindgen_ty_1),
1193            "::",
1194            stringify!(m_gameID)
1195        )
1196    );
1197}
1198#[test]
1199fn bindgen_test_layout_CGameID() {
1200    assert_eq!(
1201        ::std::mem::size_of::<CGameID>(),
1202        8usize,
1203        concat!("Size of: ", stringify!(CGameID))
1204    );
1205    assert_eq!(
1206        ::std::mem::align_of::<CGameID>(),
1207        1usize,
1208        concat!("Alignment of ", stringify!(CGameID))
1209    );
1210}
1211extern "C" {
1212    #[link_name = "\u{1}_ZNK7CGameID6RenderEv"]
1213    pub fn CGameID_Render(this: *const CGameID) -> *const ::std::os::raw::c_char;
1214}
1215extern "C" {
1216    #[link_name = "\u{1}_ZN7CGameID6RenderEy"]
1217    pub fn CGameID_Render1(ulGameID: uint64) -> *const ::std::os::raw::c_char;
1218}
1219extern "C" {
1220    #[link_name = "\u{1}_ZN7CGameIDC1EPKc"]
1221    pub fn CGameID_CGameID(this: *mut CGameID, pchGameID: *const ::std::os::raw::c_char);
1222}
1223impl CGameID {
1224    #[inline]
1225    pub unsafe fn Render(&self) -> *const ::std::os::raw::c_char {
1226        CGameID_Render(self)
1227    }
1228    #[inline]
1229    pub unsafe fn Render1(ulGameID: uint64) -> *const ::std::os::raw::c_char {
1230        CGameID_Render1(ulGameID)
1231    }
1232    #[inline]
1233    pub unsafe fn new(pchGameID: *const ::std::os::raw::c_char) -> Self {
1234        let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
1235        CGameID_CGameID(__bindgen_tmp.as_mut_ptr(), pchGameID);
1236        __bindgen_tmp.assume_init()
1237    }
1238}
1239pub const k_cchGameExtraInfoMax: ::std::os::raw::c_int = 64;
1240pub type PFNPreMinidumpCallback =
1241    ::std::option::Option<unsafe extern "C" fn(context: *mut ::std::os::raw::c_void)>;
1242#[repr(u32)]
1243#[non_exhaustive]
1244#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1245pub enum EGameSearchErrorCode_t {
1246    k_EGameSearchErrorCode_OK = 1,
1247    k_EGameSearchErrorCode_Failed_Search_Already_In_Progress = 2,
1248    k_EGameSearchErrorCode_Failed_No_Search_In_Progress = 3,
1249    k_EGameSearchErrorCode_Failed_Not_Lobby_Leader = 4,
1250    k_EGameSearchErrorCode_Failed_No_Host_Available = 5,
1251    k_EGameSearchErrorCode_Failed_Search_Params_Invalid = 6,
1252    k_EGameSearchErrorCode_Failed_Offline = 7,
1253    k_EGameSearchErrorCode_Failed_NotAuthorized = 8,
1254    k_EGameSearchErrorCode_Failed_Unknown_Error = 9,
1255}
1256#[repr(u32)]
1257#[non_exhaustive]
1258#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1259pub enum EPlayerResult_t {
1260    k_EPlayerResultFailedToConnect = 1,
1261    k_EPlayerResultAbandoned = 2,
1262    k_EPlayerResultKicked = 3,
1263    k_EPlayerResultIncomplete = 4,
1264    k_EPlayerResultCompleted = 5,
1265}
1266#[repr(u32)]
1267#[non_exhaustive]
1268#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1269pub enum ESteamIPv6ConnectivityProtocol {
1270    k_ESteamIPv6ConnectivityProtocol_Invalid = 0,
1271    k_ESteamIPv6ConnectivityProtocol_HTTP = 1,
1272    k_ESteamIPv6ConnectivityProtocol_UDP = 2,
1273}
1274#[repr(u32)]
1275#[non_exhaustive]
1276#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1277pub enum ESteamIPv6ConnectivityState {
1278    k_ESteamIPv6ConnectivityState_Unknown = 0,
1279    k_ESteamIPv6ConnectivityState_Good = 1,
1280    k_ESteamIPv6ConnectivityState_Bad = 2,
1281}
1282#[repr(C, packed(4))]
1283#[derive(Debug, Copy, Clone)]
1284pub struct ValvePackingSentinel_t {
1285    pub m_u32: uint32,
1286    pub m_u64: uint64,
1287    pub m_u16: uint16,
1288    pub m_d: f64,
1289}
1290#[test]
1291fn bindgen_test_layout_ValvePackingSentinel_t() {
1292    const UNINIT: ::std::mem::MaybeUninit<ValvePackingSentinel_t> =
1293        ::std::mem::MaybeUninit::uninit();
1294    let ptr = UNINIT.as_ptr();
1295    assert_eq!(
1296        ::std::mem::size_of::<ValvePackingSentinel_t>(),
1297        24usize,
1298        concat!("Size of: ", stringify!(ValvePackingSentinel_t))
1299    );
1300    assert_eq!(
1301        ::std::mem::align_of::<ValvePackingSentinel_t>(),
1302        4usize,
1303        concat!("Alignment of ", stringify!(ValvePackingSentinel_t))
1304    );
1305    assert_eq!(
1306        unsafe { ::std::ptr::addr_of!((*ptr).m_u32) as usize - ptr as usize },
1307        0usize,
1308        concat!(
1309            "Offset of field: ",
1310            stringify!(ValvePackingSentinel_t),
1311            "::",
1312            stringify!(m_u32)
1313        )
1314    );
1315    assert_eq!(
1316        unsafe { ::std::ptr::addr_of!((*ptr).m_u64) as usize - ptr as usize },
1317        4usize,
1318        concat!(
1319            "Offset of field: ",
1320            stringify!(ValvePackingSentinel_t),
1321            "::",
1322            stringify!(m_u64)
1323        )
1324    );
1325    assert_eq!(
1326        unsafe { ::std::ptr::addr_of!((*ptr).m_u16) as usize - ptr as usize },
1327        12usize,
1328        concat!(
1329            "Offset of field: ",
1330            stringify!(ValvePackingSentinel_t),
1331            "::",
1332            stringify!(m_u16)
1333        )
1334    );
1335    assert_eq!(
1336        unsafe { ::std::ptr::addr_of!((*ptr).m_d) as usize - ptr as usize },
1337        16usize,
1338        concat!(
1339            "Offset of field: ",
1340            stringify!(ValvePackingSentinel_t),
1341            "::",
1342            stringify!(m_d)
1343        )
1344    );
1345}
1346pub type compile_time_assert_type = [::std::os::raw::c_char; 1usize];
1347pub type HSteamPipe = int32;
1348pub type HSteamUser = int32;
1349pub const k_cchMaxSteamErrMsg: ::std::os::raw::c_int = 1024;
1350pub type SteamErrMsg = [::std::os::raw::c_char; 1024usize];
1351pub type SteamAPIWarningMessageHook_t = ::std::option::Option<
1352    unsafe extern "C" fn(arg1: ::std::os::raw::c_int, arg2: *const ::std::os::raw::c_char),
1353>;
1354pub type SteamAPI_CheckCallbackRegistered_t =
1355    ::std::option::Option<unsafe extern "C" fn(iCallbackNum: ::std::os::raw::c_int) -> uint32>;
1356extern "C" {
1357    pub fn SteamAPI_RunCallbacks();
1358}
1359extern "C" {
1360    pub fn SteamGameServer_RunCallbacks();
1361}
1362#[repr(C)]
1363pub struct CCallbackBase__bindgen_vtable(::std::os::raw::c_void);
1364#[repr(C)]
1365#[derive(Debug, Copy, Clone)]
1366pub struct CCallbackBase {
1367    pub vtable_: *const CCallbackBase__bindgen_vtable,
1368    pub m_nCallbackFlags: uint8,
1369    pub m_iCallback: ::std::os::raw::c_int,
1370}
1371pub const CCallbackBase_k_ECallbackFlagsRegistered: CCallbackBase__bindgen_ty_1 =
1372    CCallbackBase__bindgen_ty_1::k_ECallbackFlagsRegistered;
1373pub const CCallbackBase_k_ECallbackFlagsGameServer: CCallbackBase__bindgen_ty_1 =
1374    CCallbackBase__bindgen_ty_1::k_ECallbackFlagsGameServer;
1375#[repr(u32)]
1376#[non_exhaustive]
1377#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1378pub enum CCallbackBase__bindgen_ty_1 {
1379    k_ECallbackFlagsRegistered = 1,
1380    k_ECallbackFlagsGameServer = 2,
1381}
1382#[test]
1383fn bindgen_test_layout_CCallbackBase() {
1384    const UNINIT: ::std::mem::MaybeUninit<CCallbackBase> = ::std::mem::MaybeUninit::uninit();
1385    let ptr = UNINIT.as_ptr();
1386    assert_eq!(
1387        ::std::mem::size_of::<CCallbackBase>(),
1388        16usize,
1389        concat!("Size of: ", stringify!(CCallbackBase))
1390    );
1391    assert_eq!(
1392        ::std::mem::align_of::<CCallbackBase>(),
1393        8usize,
1394        concat!("Alignment of ", stringify!(CCallbackBase))
1395    );
1396    assert_eq!(
1397        unsafe { ::std::ptr::addr_of!((*ptr).m_nCallbackFlags) as usize - ptr as usize },
1398        8usize,
1399        concat!(
1400            "Offset of field: ",
1401            stringify!(CCallbackBase),
1402            "::",
1403            stringify!(m_nCallbackFlags)
1404        )
1405    );
1406    assert_eq!(
1407        unsafe { ::std::ptr::addr_of!((*ptr).m_iCallback) as usize - ptr as usize },
1408        12usize,
1409        concat!(
1410            "Offset of field: ",
1411            stringify!(CCallbackBase),
1412            "::",
1413            stringify!(m_iCallback)
1414        )
1415    );
1416}
1417#[repr(C)]
1418#[derive(Debug)]
1419pub struct CCallResult<T, P> {
1420    pub _base: CCallbackBase,
1421    pub m_hAPICall: SteamAPICall_t,
1422    pub m_pObj: *mut T,
1423    pub m_Func: CCallResult_func_t<P>,
1424    pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<T>>,
1425    pub _phantom_1: ::std::marker::PhantomData<::std::cell::UnsafeCell<P>>,
1426}
1427pub type CCallResult_func_t<P> =
1428    ::std::option::Option<unsafe extern "C" fn(arg1: *mut P, arg2: bool)>;
1429pub type CCallback_func_t<P> = ::std::option::Option<unsafe extern "C" fn(arg1: *mut P)>;
1430extern "C" {
1431    pub fn memcpy(
1432        __dest: *mut ::std::os::raw::c_void,
1433        __src: *const ::std::os::raw::c_void,
1434        __n: usize,
1435    ) -> *mut ::std::os::raw::c_void;
1436}
1437extern "C" {
1438    pub fn memmove(
1439        __dest: *mut ::std::os::raw::c_void,
1440        __src: *const ::std::os::raw::c_void,
1441        __n: usize,
1442    ) -> *mut ::std::os::raw::c_void;
1443}
1444extern "C" {
1445    pub fn memccpy(
1446        __dest: *mut ::std::os::raw::c_void,
1447        __src: *const ::std::os::raw::c_void,
1448        __c: ::std::os::raw::c_int,
1449        __n: usize,
1450    ) -> *mut ::std::os::raw::c_void;
1451}
1452extern "C" {
1453    pub fn memset(
1454        __s: *mut ::std::os::raw::c_void,
1455        __c: ::std::os::raw::c_int,
1456        __n: usize,
1457    ) -> *mut ::std::os::raw::c_void;
1458}
1459extern "C" {
1460    pub fn memcmp(
1461        __s1: *const ::std::os::raw::c_void,
1462        __s2: *const ::std::os::raw::c_void,
1463        __n: usize,
1464    ) -> ::std::os::raw::c_int;
1465}
1466extern "C" {
1467    pub fn __memcmpeq(
1468        __s1: *const ::std::os::raw::c_void,
1469        __s2: *const ::std::os::raw::c_void,
1470        __n: usize,
1471    ) -> ::std::os::raw::c_int;
1472}
1473extern "C" {
1474    pub fn memchr(
1475        __s: *mut ::std::os::raw::c_void,
1476        __c: ::std::os::raw::c_int,
1477        __n: usize,
1478    ) -> *mut ::std::os::raw::c_void;
1479}
1480extern "C" {
1481    pub fn rawmemchr(
1482        __s: *mut ::std::os::raw::c_void,
1483        __c: ::std::os::raw::c_int,
1484    ) -> *mut ::std::os::raw::c_void;
1485}
1486extern "C" {
1487    pub fn memrchr(
1488        __s: *mut ::std::os::raw::c_void,
1489        __c: ::std::os::raw::c_int,
1490        __n: usize,
1491    ) -> *mut ::std::os::raw::c_void;
1492}
1493extern "C" {
1494    pub fn strcpy(
1495        __dest: *mut ::std::os::raw::c_char,
1496        __src: *const ::std::os::raw::c_char,
1497    ) -> *mut ::std::os::raw::c_char;
1498}
1499extern "C" {
1500    pub fn strncpy(
1501        __dest: *mut ::std::os::raw::c_char,
1502        __src: *const ::std::os::raw::c_char,
1503        __n: usize,
1504    ) -> *mut ::std::os::raw::c_char;
1505}
1506extern "C" {
1507    pub fn strcat(
1508        __dest: *mut ::std::os::raw::c_char,
1509        __src: *const ::std::os::raw::c_char,
1510    ) -> *mut ::std::os::raw::c_char;
1511}
1512extern "C" {
1513    pub fn strncat(
1514        __dest: *mut ::std::os::raw::c_char,
1515        __src: *const ::std::os::raw::c_char,
1516        __n: usize,
1517    ) -> *mut ::std::os::raw::c_char;
1518}
1519extern "C" {
1520    pub fn strcmp(
1521        __s1: *const ::std::os::raw::c_char,
1522        __s2: *const ::std::os::raw::c_char,
1523    ) -> ::std::os::raw::c_int;
1524}
1525extern "C" {
1526    pub fn strncmp(
1527        __s1: *const ::std::os::raw::c_char,
1528        __s2: *const ::std::os::raw::c_char,
1529        __n: usize,
1530    ) -> ::std::os::raw::c_int;
1531}
1532extern "C" {
1533    pub fn strcoll(
1534        __s1: *const ::std::os::raw::c_char,
1535        __s2: *const ::std::os::raw::c_char,
1536    ) -> ::std::os::raw::c_int;
1537}
1538extern "C" {
1539    pub fn strxfrm(
1540        __dest: *mut ::std::os::raw::c_char,
1541        __src: *const ::std::os::raw::c_char,
1542        __n: usize,
1543    ) -> usize;
1544}
1545#[repr(C)]
1546#[derive(Debug, Copy, Clone)]
1547pub struct __locale_struct {
1548    pub __locales: [*mut __locale_data; 13usize],
1549    pub __ctype_b: *const ::std::os::raw::c_ushort,
1550    pub __ctype_tolower: *const ::std::os::raw::c_int,
1551    pub __ctype_toupper: *const ::std::os::raw::c_int,
1552    pub __names: [*const ::std::os::raw::c_char; 13usize],
1553}
1554#[test]
1555fn bindgen_test_layout___locale_struct() {
1556    const UNINIT: ::std::mem::MaybeUninit<__locale_struct> = ::std::mem::MaybeUninit::uninit();
1557    let ptr = UNINIT.as_ptr();
1558    assert_eq!(
1559        ::std::mem::size_of::<__locale_struct>(),
1560        232usize,
1561        concat!("Size of: ", stringify!(__locale_struct))
1562    );
1563    assert_eq!(
1564        ::std::mem::align_of::<__locale_struct>(),
1565        8usize,
1566        concat!("Alignment of ", stringify!(__locale_struct))
1567    );
1568    assert_eq!(
1569        unsafe { ::std::ptr::addr_of!((*ptr).__locales) as usize - ptr as usize },
1570        0usize,
1571        concat!(
1572            "Offset of field: ",
1573            stringify!(__locale_struct),
1574            "::",
1575            stringify!(__locales)
1576        )
1577    );
1578    assert_eq!(
1579        unsafe { ::std::ptr::addr_of!((*ptr).__ctype_b) as usize - ptr as usize },
1580        104usize,
1581        concat!(
1582            "Offset of field: ",
1583            stringify!(__locale_struct),
1584            "::",
1585            stringify!(__ctype_b)
1586        )
1587    );
1588    assert_eq!(
1589        unsafe { ::std::ptr::addr_of!((*ptr).__ctype_tolower) as usize - ptr as usize },
1590        112usize,
1591        concat!(
1592            "Offset of field: ",
1593            stringify!(__locale_struct),
1594            "::",
1595            stringify!(__ctype_tolower)
1596        )
1597    );
1598    assert_eq!(
1599        unsafe { ::std::ptr::addr_of!((*ptr).__ctype_toupper) as usize - ptr as usize },
1600        120usize,
1601        concat!(
1602            "Offset of field: ",
1603            stringify!(__locale_struct),
1604            "::",
1605            stringify!(__ctype_toupper)
1606        )
1607    );
1608    assert_eq!(
1609        unsafe { ::std::ptr::addr_of!((*ptr).__names) as usize - ptr as usize },
1610        128usize,
1611        concat!(
1612            "Offset of field: ",
1613            stringify!(__locale_struct),
1614            "::",
1615            stringify!(__names)
1616        )
1617    );
1618}
1619pub type __locale_t = *mut __locale_struct;
1620pub type locale_t = __locale_t;
1621extern "C" {
1622    pub fn strcoll_l(
1623        __s1: *const ::std::os::raw::c_char,
1624        __s2: *const ::std::os::raw::c_char,
1625        __l: locale_t,
1626    ) -> ::std::os::raw::c_int;
1627}
1628extern "C" {
1629    pub fn strxfrm_l(
1630        __dest: *mut ::std::os::raw::c_char,
1631        __src: *const ::std::os::raw::c_char,
1632        __n: usize,
1633        __l: locale_t,
1634    ) -> usize;
1635}
1636extern "C" {
1637    pub fn strdup(__s: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
1638}
1639extern "C" {
1640    pub fn strndup(
1641        __string: *const ::std::os::raw::c_char,
1642        __n: usize,
1643    ) -> *mut ::std::os::raw::c_char;
1644}
1645extern "C" {
1646    pub fn strchr(
1647        __s: *mut ::std::os::raw::c_char,
1648        __c: ::std::os::raw::c_int,
1649    ) -> *mut ::std::os::raw::c_char;
1650}
1651extern "C" {
1652    pub fn strrchr(
1653        __s: *mut ::std::os::raw::c_char,
1654        __c: ::std::os::raw::c_int,
1655    ) -> *mut ::std::os::raw::c_char;
1656}
1657extern "C" {
1658    pub fn strchrnul(
1659        __s: *mut ::std::os::raw::c_char,
1660        __c: ::std::os::raw::c_int,
1661    ) -> *mut ::std::os::raw::c_char;
1662}
1663extern "C" {
1664    pub fn strcspn(
1665        __s: *const ::std::os::raw::c_char,
1666        __reject: *const ::std::os::raw::c_char,
1667    ) -> usize;
1668}
1669extern "C" {
1670    pub fn strspn(
1671        __s: *const ::std::os::raw::c_char,
1672        __accept: *const ::std::os::raw::c_char,
1673    ) -> usize;
1674}
1675extern "C" {
1676    pub fn strpbrk(
1677        __s: *mut ::std::os::raw::c_char,
1678        __accept: *const ::std::os::raw::c_char,
1679    ) -> *mut ::std::os::raw::c_char;
1680}
1681extern "C" {
1682    pub fn strstr(
1683        __haystack: *mut ::std::os::raw::c_char,
1684        __needle: *const ::std::os::raw::c_char,
1685    ) -> *mut ::std::os::raw::c_char;
1686}
1687extern "C" {
1688    pub fn strtok(
1689        __s: *mut ::std::os::raw::c_char,
1690        __delim: *const ::std::os::raw::c_char,
1691    ) -> *mut ::std::os::raw::c_char;
1692}
1693extern "C" {
1694    pub fn __strtok_r(
1695        __s: *mut ::std::os::raw::c_char,
1696        __delim: *const ::std::os::raw::c_char,
1697        __save_ptr: *mut *mut ::std::os::raw::c_char,
1698    ) -> *mut ::std::os::raw::c_char;
1699}
1700extern "C" {
1701    pub fn strtok_r(
1702        __s: *mut ::std::os::raw::c_char,
1703        __delim: *const ::std::os::raw::c_char,
1704        __save_ptr: *mut *mut ::std::os::raw::c_char,
1705    ) -> *mut ::std::os::raw::c_char;
1706}
1707extern "C" {
1708    pub fn strcasestr(
1709        __haystack: *mut ::std::os::raw::c_char,
1710        __needle: *const ::std::os::raw::c_char,
1711    ) -> *mut ::std::os::raw::c_char;
1712}
1713extern "C" {
1714    pub fn memmem(
1715        __haystack: *const ::std::os::raw::c_void,
1716        __haystacklen: usize,
1717        __needle: *const ::std::os::raw::c_void,
1718        __needlelen: usize,
1719    ) -> *mut ::std::os::raw::c_void;
1720}
1721extern "C" {
1722    pub fn __mempcpy(
1723        __dest: *mut ::std::os::raw::c_void,
1724        __src: *const ::std::os::raw::c_void,
1725        __n: usize,
1726    ) -> *mut ::std::os::raw::c_void;
1727}
1728extern "C" {
1729    pub fn mempcpy(
1730        __dest: *mut ::std::os::raw::c_void,
1731        __src: *const ::std::os::raw::c_void,
1732        __n: usize,
1733    ) -> *mut ::std::os::raw::c_void;
1734}
1735extern "C" {
1736    pub fn strlen(__s: *const ::std::os::raw::c_char) -> usize;
1737}
1738extern "C" {
1739    pub fn strnlen(__string: *const ::std::os::raw::c_char, __maxlen: usize) -> usize;
1740}
1741extern "C" {
1742    pub fn strerror(__errnum: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char;
1743}
1744extern "C" {
1745    pub fn strerror_r(
1746        __errnum: ::std::os::raw::c_int,
1747        __buf: *mut ::std::os::raw::c_char,
1748        __buflen: usize,
1749    ) -> *mut ::std::os::raw::c_char;
1750}
1751extern "C" {
1752    pub fn strerrordesc_np(__err: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
1753}
1754extern "C" {
1755    pub fn strerrorname_np(__err: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
1756}
1757extern "C" {
1758    pub fn strerror_l(
1759        __errnum: ::std::os::raw::c_int,
1760        __l: locale_t,
1761    ) -> *mut ::std::os::raw::c_char;
1762}
1763extern "C" {
1764    pub fn bcmp(
1765        __s1: *const ::std::os::raw::c_void,
1766        __s2: *const ::std::os::raw::c_void,
1767        __n: usize,
1768    ) -> ::std::os::raw::c_int;
1769}
1770extern "C" {
1771    pub fn bcopy(
1772        __src: *const ::std::os::raw::c_void,
1773        __dest: *mut ::std::os::raw::c_void,
1774        __n: usize,
1775    );
1776}
1777extern "C" {
1778    pub fn bzero(__s: *mut ::std::os::raw::c_void, __n: usize);
1779}
1780extern "C" {
1781    pub fn index(
1782        __s: *const ::std::os::raw::c_char,
1783        __c: ::std::os::raw::c_int,
1784    ) -> *mut ::std::os::raw::c_char;
1785}
1786extern "C" {
1787    pub fn rindex(
1788        __s: *const ::std::os::raw::c_char,
1789        __c: ::std::os::raw::c_int,
1790    ) -> *mut ::std::os::raw::c_char;
1791}
1792extern "C" {
1793    pub fn ffs(__i: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
1794}
1795extern "C" {
1796    pub fn ffsl(__l: ::std::os::raw::c_long) -> ::std::os::raw::c_int;
1797}
1798extern "C" {
1799    pub fn ffsll(__ll: ::std::os::raw::c_longlong) -> ::std::os::raw::c_int;
1800}
1801extern "C" {
1802    pub fn strcasecmp(
1803        __s1: *const ::std::os::raw::c_char,
1804        __s2: *const ::std::os::raw::c_char,
1805    ) -> ::std::os::raw::c_int;
1806}
1807extern "C" {
1808    pub fn strncasecmp(
1809        __s1: *const ::std::os::raw::c_char,
1810        __s2: *const ::std::os::raw::c_char,
1811        __n: usize,
1812    ) -> ::std::os::raw::c_int;
1813}
1814extern "C" {
1815    pub fn strcasecmp_l(
1816        __s1: *const ::std::os::raw::c_char,
1817        __s2: *const ::std::os::raw::c_char,
1818        __loc: locale_t,
1819    ) -> ::std::os::raw::c_int;
1820}
1821extern "C" {
1822    pub fn strncasecmp_l(
1823        __s1: *const ::std::os::raw::c_char,
1824        __s2: *const ::std::os::raw::c_char,
1825        __n: usize,
1826        __loc: locale_t,
1827    ) -> ::std::os::raw::c_int;
1828}
1829extern "C" {
1830    pub fn explicit_bzero(__s: *mut ::std::os::raw::c_void, __n: usize);
1831}
1832extern "C" {
1833    pub fn strsep(
1834        __stringp: *mut *mut ::std::os::raw::c_char,
1835        __delim: *const ::std::os::raw::c_char,
1836    ) -> *mut ::std::os::raw::c_char;
1837}
1838extern "C" {
1839    pub fn strsignal(__sig: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char;
1840}
1841extern "C" {
1842    pub fn sigabbrev_np(__sig: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
1843}
1844extern "C" {
1845    pub fn sigdescr_np(__sig: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
1846}
1847extern "C" {
1848    pub fn __stpcpy(
1849        __dest: *mut ::std::os::raw::c_char,
1850        __src: *const ::std::os::raw::c_char,
1851    ) -> *mut ::std::os::raw::c_char;
1852}
1853extern "C" {
1854    pub fn stpcpy(
1855        __dest: *mut ::std::os::raw::c_char,
1856        __src: *const ::std::os::raw::c_char,
1857    ) -> *mut ::std::os::raw::c_char;
1858}
1859extern "C" {
1860    pub fn __stpncpy(
1861        __dest: *mut ::std::os::raw::c_char,
1862        __src: *const ::std::os::raw::c_char,
1863        __n: usize,
1864    ) -> *mut ::std::os::raw::c_char;
1865}
1866extern "C" {
1867    pub fn stpncpy(
1868        __dest: *mut ::std::os::raw::c_char,
1869        __src: *const ::std::os::raw::c_char,
1870        __n: usize,
1871    ) -> *mut ::std::os::raw::c_char;
1872}
1873extern "C" {
1874    pub fn strverscmp(
1875        __s1: *const ::std::os::raw::c_char,
1876        __s2: *const ::std::os::raw::c_char,
1877    ) -> ::std::os::raw::c_int;
1878}
1879extern "C" {
1880    pub fn strfry(__string: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
1881}
1882extern "C" {
1883    pub fn memfrob(__s: *mut ::std::os::raw::c_void, __n: usize) -> *mut ::std::os::raw::c_void;
1884}
1885extern "C" {
1886    pub fn basename(__filename: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
1887}
1888extern "C" {
1889    pub fn SteamAPI_GetHSteamPipe() -> HSteamPipe;
1890}
1891extern "C" {
1892    pub fn SteamAPI_GetHSteamUser() -> HSteamUser;
1893}
1894extern "C" {
1895    pub fn SteamGameServer_GetHSteamPipe() -> HSteamPipe;
1896}
1897extern "C" {
1898    pub fn SteamGameServer_GetHSteamUser() -> HSteamUser;
1899}
1900extern "C" {
1901    pub fn SteamInternal_ContextInit(
1902        pContextInitData: *mut ::std::os::raw::c_void,
1903    ) -> *mut ::std::os::raw::c_void;
1904}
1905extern "C" {
1906    pub fn SteamInternal_CreateInterface(
1907        ver: *const ::std::os::raw::c_char,
1908    ) -> *mut ::std::os::raw::c_void;
1909}
1910extern "C" {
1911    pub fn SteamInternal_FindOrCreateUserInterface(
1912        hSteamUser: HSteamUser,
1913        pszVersion: *const ::std::os::raw::c_char,
1914    ) -> *mut ::std::os::raw::c_void;
1915}
1916extern "C" {
1917    pub fn SteamInternal_FindOrCreateGameServerInterface(
1918        hSteamUser: HSteamUser,
1919        pszVersion: *const ::std::os::raw::c_char,
1920    ) -> *mut ::std::os::raw::c_void;
1921}
1922extern "C" {
1923    pub fn SteamAPI_RegisterCallback(
1924        pCallback: *mut CCallbackBase,
1925        iCallback: ::std::os::raw::c_int,
1926    );
1927}
1928extern "C" {
1929    pub fn SteamAPI_UnregisterCallback(pCallback: *mut CCallbackBase);
1930}
1931extern "C" {
1932    pub fn SteamAPI_RegisterCallResult(pCallback: *mut CCallbackBase, hAPICall: SteamAPICall_t);
1933}
1934extern "C" {
1935    pub fn SteamAPI_UnregisterCallResult(pCallback: *mut CCallbackBase, hAPICall: SteamAPICall_t);
1936}
1937#[doc = " Internal structure used in manual callback dispatch"]
1938#[repr(C, packed(4))]
1939#[derive(Debug, Copy, Clone)]
1940pub struct CallbackMsg_t {
1941    pub m_hSteamUser: HSteamUser,
1942    pub m_iCallback: ::std::os::raw::c_int,
1943    pub m_pubParam: *mut uint8,
1944    pub m_cubParam: ::std::os::raw::c_int,
1945}
1946#[test]
1947fn bindgen_test_layout_CallbackMsg_t() {
1948    const UNINIT: ::std::mem::MaybeUninit<CallbackMsg_t> = ::std::mem::MaybeUninit::uninit();
1949    let ptr = UNINIT.as_ptr();
1950    assert_eq!(
1951        ::std::mem::size_of::<CallbackMsg_t>(),
1952        20usize,
1953        concat!("Size of: ", stringify!(CallbackMsg_t))
1954    );
1955    assert_eq!(
1956        ::std::mem::align_of::<CallbackMsg_t>(),
1957        4usize,
1958        concat!("Alignment of ", stringify!(CallbackMsg_t))
1959    );
1960    assert_eq!(
1961        unsafe { ::std::ptr::addr_of!((*ptr).m_hSteamUser) as usize - ptr as usize },
1962        0usize,
1963        concat!(
1964            "Offset of field: ",
1965            stringify!(CallbackMsg_t),
1966            "::",
1967            stringify!(m_hSteamUser)
1968        )
1969    );
1970    assert_eq!(
1971        unsafe { ::std::ptr::addr_of!((*ptr).m_iCallback) as usize - ptr as usize },
1972        4usize,
1973        concat!(
1974            "Offset of field: ",
1975            stringify!(CallbackMsg_t),
1976            "::",
1977            stringify!(m_iCallback)
1978        )
1979    );
1980    assert_eq!(
1981        unsafe { ::std::ptr::addr_of!((*ptr).m_pubParam) as usize - ptr as usize },
1982        8usize,
1983        concat!(
1984            "Offset of field: ",
1985            stringify!(CallbackMsg_t),
1986            "::",
1987            stringify!(m_pubParam)
1988        )
1989    );
1990    assert_eq!(
1991        unsafe { ::std::ptr::addr_of!((*ptr).m_cubParam) as usize - ptr as usize },
1992        16usize,
1993        concat!(
1994            "Offset of field: ",
1995            stringify!(CallbackMsg_t),
1996            "::",
1997            stringify!(m_cubParam)
1998        )
1999    );
2000}
2001#[repr(C)]
2002#[derive(Debug, Copy, Clone)]
2003pub struct ISteamContentServer {
2004    _unused: [u8; 0],
2005}
2006#[repr(C)]
2007#[derive(Debug, Copy, Clone)]
2008pub struct ISteamPS3OverlayRender {
2009    _unused: [u8; 0],
2010}
2011pub const k_iSteamUserCallbacks: _bindgen_ty_1 = _bindgen_ty_1::k_iSteamUserCallbacks;
2012#[repr(u32)]
2013#[non_exhaustive]
2014#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2015pub enum _bindgen_ty_1 {
2016    k_iSteamUserCallbacks = 100,
2017}
2018pub const k_iSteamGameServerCallbacks: _bindgen_ty_2 = _bindgen_ty_2::k_iSteamGameServerCallbacks;
2019#[repr(u32)]
2020#[non_exhaustive]
2021#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2022pub enum _bindgen_ty_2 {
2023    k_iSteamGameServerCallbacks = 200,
2024}
2025pub const k_iSteamFriendsCallbacks: _bindgen_ty_3 = _bindgen_ty_3::k_iSteamFriendsCallbacks;
2026#[repr(u32)]
2027#[non_exhaustive]
2028#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2029pub enum _bindgen_ty_3 {
2030    k_iSteamFriendsCallbacks = 300,
2031}
2032pub const k_iSteamBillingCallbacks: _bindgen_ty_4 = _bindgen_ty_4::k_iSteamBillingCallbacks;
2033#[repr(u32)]
2034#[non_exhaustive]
2035#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2036pub enum _bindgen_ty_4 {
2037    k_iSteamBillingCallbacks = 400,
2038}
2039pub const k_iSteamMatchmakingCallbacks: _bindgen_ty_5 = _bindgen_ty_5::k_iSteamMatchmakingCallbacks;
2040#[repr(u32)]
2041#[non_exhaustive]
2042#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2043pub enum _bindgen_ty_5 {
2044    k_iSteamMatchmakingCallbacks = 500,
2045}
2046pub const k_iSteamContentServerCallbacks: _bindgen_ty_6 =
2047    _bindgen_ty_6::k_iSteamContentServerCallbacks;
2048#[repr(u32)]
2049#[non_exhaustive]
2050#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2051pub enum _bindgen_ty_6 {
2052    k_iSteamContentServerCallbacks = 600,
2053}
2054pub const k_iSteamUtilsCallbacks: _bindgen_ty_7 = _bindgen_ty_7::k_iSteamUtilsCallbacks;
2055#[repr(u32)]
2056#[non_exhaustive]
2057#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2058pub enum _bindgen_ty_7 {
2059    k_iSteamUtilsCallbacks = 700,
2060}
2061pub const k_iSteamAppsCallbacks: _bindgen_ty_8 = _bindgen_ty_8::k_iSteamAppsCallbacks;
2062#[repr(u32)]
2063#[non_exhaustive]
2064#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2065pub enum _bindgen_ty_8 {
2066    k_iSteamAppsCallbacks = 1000,
2067}
2068pub const k_iSteamUserStatsCallbacks: _bindgen_ty_9 = _bindgen_ty_9::k_iSteamUserStatsCallbacks;
2069#[repr(u32)]
2070#[non_exhaustive]
2071#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2072pub enum _bindgen_ty_9 {
2073    k_iSteamUserStatsCallbacks = 1100,
2074}
2075pub const k_iSteamNetworkingCallbacks: _bindgen_ty_10 = _bindgen_ty_10::k_iSteamNetworkingCallbacks;
2076#[repr(u32)]
2077#[non_exhaustive]
2078#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2079pub enum _bindgen_ty_10 {
2080    k_iSteamNetworkingCallbacks = 1200,
2081}
2082pub const k_iSteamNetworkingSocketsCallbacks: _bindgen_ty_11 =
2083    _bindgen_ty_11::k_iSteamNetworkingSocketsCallbacks;
2084#[repr(u32)]
2085#[non_exhaustive]
2086#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2087pub enum _bindgen_ty_11 {
2088    k_iSteamNetworkingSocketsCallbacks = 1220,
2089}
2090pub const k_iSteamNetworkingMessagesCallbacks: _bindgen_ty_12 =
2091    _bindgen_ty_12::k_iSteamNetworkingMessagesCallbacks;
2092#[repr(u32)]
2093#[non_exhaustive]
2094#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2095pub enum _bindgen_ty_12 {
2096    k_iSteamNetworkingMessagesCallbacks = 1250,
2097}
2098pub const k_iSteamNetworkingUtilsCallbacks: _bindgen_ty_13 =
2099    _bindgen_ty_13::k_iSteamNetworkingUtilsCallbacks;
2100#[repr(u32)]
2101#[non_exhaustive]
2102#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2103pub enum _bindgen_ty_13 {
2104    k_iSteamNetworkingUtilsCallbacks = 1280,
2105}
2106pub const k_iSteamRemoteStorageCallbacks: _bindgen_ty_14 =
2107    _bindgen_ty_14::k_iSteamRemoteStorageCallbacks;
2108#[repr(u32)]
2109#[non_exhaustive]
2110#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2111pub enum _bindgen_ty_14 {
2112    k_iSteamRemoteStorageCallbacks = 1300,
2113}
2114pub const k_iSteamGameServerItemsCallbacks: _bindgen_ty_15 =
2115    _bindgen_ty_15::k_iSteamGameServerItemsCallbacks;
2116#[repr(u32)]
2117#[non_exhaustive]
2118#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2119pub enum _bindgen_ty_15 {
2120    k_iSteamGameServerItemsCallbacks = 1500,
2121}
2122pub const k_iSteamGameCoordinatorCallbacks: _bindgen_ty_16 =
2123    _bindgen_ty_16::k_iSteamGameCoordinatorCallbacks;
2124#[repr(u32)]
2125#[non_exhaustive]
2126#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2127pub enum _bindgen_ty_16 {
2128    k_iSteamGameCoordinatorCallbacks = 1700,
2129}
2130pub const k_iSteamGameServerStatsCallbacks: _bindgen_ty_17 =
2131    _bindgen_ty_17::k_iSteamGameServerStatsCallbacks;
2132#[repr(u32)]
2133#[non_exhaustive]
2134#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2135pub enum _bindgen_ty_17 {
2136    k_iSteamGameServerStatsCallbacks = 1800,
2137}
2138pub const k_iSteam2AsyncCallbacks: _bindgen_ty_18 = _bindgen_ty_18::k_iSteam2AsyncCallbacks;
2139#[repr(u32)]
2140#[non_exhaustive]
2141#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2142pub enum _bindgen_ty_18 {
2143    k_iSteam2AsyncCallbacks = 1900,
2144}
2145pub const k_iSteamGameStatsCallbacks: _bindgen_ty_19 = _bindgen_ty_19::k_iSteamGameStatsCallbacks;
2146#[repr(u32)]
2147#[non_exhaustive]
2148#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2149pub enum _bindgen_ty_19 {
2150    k_iSteamGameStatsCallbacks = 2000,
2151}
2152pub const k_iSteamHTTPCallbacks: _bindgen_ty_20 = _bindgen_ty_20::k_iSteamHTTPCallbacks;
2153#[repr(u32)]
2154#[non_exhaustive]
2155#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2156pub enum _bindgen_ty_20 {
2157    k_iSteamHTTPCallbacks = 2100,
2158}
2159pub const k_iSteamScreenshotsCallbacks: _bindgen_ty_21 =
2160    _bindgen_ty_21::k_iSteamScreenshotsCallbacks;
2161#[repr(u32)]
2162#[non_exhaustive]
2163#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2164pub enum _bindgen_ty_21 {
2165    k_iSteamScreenshotsCallbacks = 2300,
2166}
2167pub const k_iSteamStreamLauncherCallbacks: _bindgen_ty_22 =
2168    _bindgen_ty_22::k_iSteamStreamLauncherCallbacks;
2169#[repr(u32)]
2170#[non_exhaustive]
2171#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2172pub enum _bindgen_ty_22 {
2173    k_iSteamStreamLauncherCallbacks = 2600,
2174}
2175pub const k_iSteamControllerCallbacks: _bindgen_ty_23 = _bindgen_ty_23::k_iSteamControllerCallbacks;
2176#[repr(u32)]
2177#[non_exhaustive]
2178#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2179pub enum _bindgen_ty_23 {
2180    k_iSteamControllerCallbacks = 2800,
2181}
2182pub const k_iSteamUGCCallbacks: _bindgen_ty_24 = _bindgen_ty_24::k_iSteamUGCCallbacks;
2183#[repr(u32)]
2184#[non_exhaustive]
2185#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2186pub enum _bindgen_ty_24 {
2187    k_iSteamUGCCallbacks = 3400,
2188}
2189pub const k_iSteamStreamClientCallbacks: _bindgen_ty_25 =
2190    _bindgen_ty_25::k_iSteamStreamClientCallbacks;
2191#[repr(u32)]
2192#[non_exhaustive]
2193#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2194pub enum _bindgen_ty_25 {
2195    k_iSteamStreamClientCallbacks = 3500,
2196}
2197pub const k_iSteamAppListCallbacks: _bindgen_ty_26 = _bindgen_ty_26::k_iSteamAppListCallbacks;
2198#[repr(u32)]
2199#[non_exhaustive]
2200#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2201pub enum _bindgen_ty_26 {
2202    k_iSteamAppListCallbacks = 3900,
2203}
2204pub const k_iSteamMusicCallbacks: _bindgen_ty_27 = _bindgen_ty_27::k_iSteamMusicCallbacks;
2205#[repr(u32)]
2206#[non_exhaustive]
2207#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2208pub enum _bindgen_ty_27 {
2209    k_iSteamMusicCallbacks = 4000,
2210}
2211pub const k_iSteamMusicRemoteCallbacks: _bindgen_ty_28 =
2212    _bindgen_ty_28::k_iSteamMusicRemoteCallbacks;
2213#[repr(u32)]
2214#[non_exhaustive]
2215#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2216pub enum _bindgen_ty_28 {
2217    k_iSteamMusicRemoteCallbacks = 4100,
2218}
2219pub const k_iSteamGameNotificationCallbacks: _bindgen_ty_29 =
2220    _bindgen_ty_29::k_iSteamGameNotificationCallbacks;
2221#[repr(u32)]
2222#[non_exhaustive]
2223#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2224pub enum _bindgen_ty_29 {
2225    k_iSteamGameNotificationCallbacks = 4400,
2226}
2227pub const k_iSteamHTMLSurfaceCallbacks: _bindgen_ty_30 =
2228    _bindgen_ty_30::k_iSteamHTMLSurfaceCallbacks;
2229#[repr(u32)]
2230#[non_exhaustive]
2231#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2232pub enum _bindgen_ty_30 {
2233    k_iSteamHTMLSurfaceCallbacks = 4500,
2234}
2235pub const k_iSteamVideoCallbacks: _bindgen_ty_31 = _bindgen_ty_31::k_iSteamVideoCallbacks;
2236#[repr(u32)]
2237#[non_exhaustive]
2238#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2239pub enum _bindgen_ty_31 {
2240    k_iSteamVideoCallbacks = 4600,
2241}
2242pub const k_iSteamInventoryCallbacks: _bindgen_ty_32 = _bindgen_ty_32::k_iSteamInventoryCallbacks;
2243#[repr(u32)]
2244#[non_exhaustive]
2245#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2246pub enum _bindgen_ty_32 {
2247    k_iSteamInventoryCallbacks = 4700,
2248}
2249pub const k_ISteamParentalSettingsCallbacks: _bindgen_ty_33 =
2250    _bindgen_ty_33::k_ISteamParentalSettingsCallbacks;
2251#[repr(u32)]
2252#[non_exhaustive]
2253#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2254pub enum _bindgen_ty_33 {
2255    k_ISteamParentalSettingsCallbacks = 5000,
2256}
2257pub const k_iSteamGameSearchCallbacks: _bindgen_ty_34 = _bindgen_ty_34::k_iSteamGameSearchCallbacks;
2258#[repr(u32)]
2259#[non_exhaustive]
2260#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2261pub enum _bindgen_ty_34 {
2262    k_iSteamGameSearchCallbacks = 5200,
2263}
2264pub const k_iSteamPartiesCallbacks: _bindgen_ty_35 = _bindgen_ty_35::k_iSteamPartiesCallbacks;
2265#[repr(u32)]
2266#[non_exhaustive]
2267#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2268pub enum _bindgen_ty_35 {
2269    k_iSteamPartiesCallbacks = 5300,
2270}
2271pub const k_iSteamSTARCallbacks: _bindgen_ty_36 = _bindgen_ty_36::k_iSteamSTARCallbacks;
2272#[repr(u32)]
2273#[non_exhaustive]
2274#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2275pub enum _bindgen_ty_36 {
2276    k_iSteamSTARCallbacks = 5500,
2277}
2278pub const k_iSteamRemotePlayCallbacks: _bindgen_ty_37 = _bindgen_ty_37::k_iSteamRemotePlayCallbacks;
2279#[repr(u32)]
2280#[non_exhaustive]
2281#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2282pub enum _bindgen_ty_37 {
2283    k_iSteamRemotePlayCallbacks = 5700,
2284}
2285pub const k_iSteamChatCallbacks: _bindgen_ty_38 = _bindgen_ty_38::k_iSteamChatCallbacks;
2286#[repr(u32)]
2287#[non_exhaustive]
2288#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2289pub enum _bindgen_ty_38 {
2290    k_iSteamChatCallbacks = 5900,
2291}
2292#[repr(C)]
2293#[derive(Debug, Copy, Clone)]
2294pub struct CSteamAPIContext {
2295    pub m_pSteamClient: *mut ISteamClient,
2296    pub m_pSteamUser: *mut ISteamUser,
2297    pub m_pSteamFriends: *mut ISteamFriends,
2298    pub m_pSteamUtils: *mut ISteamUtils,
2299    pub m_pSteamMatchmaking: *mut ISteamMatchmaking,
2300    pub m_pSteamGameSearch: *mut ISteamGameSearch,
2301    pub m_pSteamUserStats: *mut ISteamUserStats,
2302    pub m_pSteamApps: *mut ISteamApps,
2303    pub m_pSteamMatchmakingServers: *mut ISteamMatchmakingServers,
2304    pub m_pSteamNetworking: *mut ISteamNetworking,
2305    pub m_pSteamRemoteStorage: *mut ISteamRemoteStorage,
2306    pub m_pSteamScreenshots: *mut ISteamScreenshots,
2307    pub m_pSteamHTTP: *mut ISteamHTTP,
2308    pub m_pController: *mut ISteamController,
2309    pub m_pSteamUGC: *mut ISteamUGC,
2310    pub m_pSteamAppList: *mut ISteamAppList,
2311    pub m_pSteamMusic: *mut ISteamMusic,
2312    pub m_pSteamMusicRemote: *mut ISteamMusicRemote,
2313    pub m_pSteamHTMLSurface: *mut ISteamHTMLSurface,
2314    pub m_pSteamInventory: *mut ISteamInventory,
2315    pub m_pSteamVideo: *mut ISteamVideo,
2316    pub m_pSteamParentalSettings: *mut ISteamParentalSettings,
2317    pub m_pSteamInput: *mut ISteamInput,
2318}
2319#[test]
2320fn bindgen_test_layout_CSteamAPIContext() {
2321    const UNINIT: ::std::mem::MaybeUninit<CSteamAPIContext> = ::std::mem::MaybeUninit::uninit();
2322    let ptr = UNINIT.as_ptr();
2323    assert_eq!(
2324        ::std::mem::size_of::<CSteamAPIContext>(),
2325        184usize,
2326        concat!("Size of: ", stringify!(CSteamAPIContext))
2327    );
2328    assert_eq!(
2329        ::std::mem::align_of::<CSteamAPIContext>(),
2330        8usize,
2331        concat!("Alignment of ", stringify!(CSteamAPIContext))
2332    );
2333    assert_eq!(
2334        unsafe { ::std::ptr::addr_of!((*ptr).m_pSteamClient) as usize - ptr as usize },
2335        0usize,
2336        concat!(
2337            "Offset of field: ",
2338            stringify!(CSteamAPIContext),
2339            "::",
2340            stringify!(m_pSteamClient)
2341        )
2342    );
2343    assert_eq!(
2344        unsafe { ::std::ptr::addr_of!((*ptr).m_pSteamUser) as usize - ptr as usize },
2345        8usize,
2346        concat!(
2347            "Offset of field: ",
2348            stringify!(CSteamAPIContext),
2349            "::",
2350            stringify!(m_pSteamUser)
2351        )
2352    );
2353    assert_eq!(
2354        unsafe { ::std::ptr::addr_of!((*ptr).m_pSteamFriends) as usize - ptr as usize },
2355        16usize,
2356        concat!(
2357            "Offset of field: ",
2358            stringify!(CSteamAPIContext),
2359            "::",
2360            stringify!(m_pSteamFriends)
2361        )
2362    );
2363    assert_eq!(
2364        unsafe { ::std::ptr::addr_of!((*ptr).m_pSteamUtils) as usize - ptr as usize },
2365        24usize,
2366        concat!(
2367            "Offset of field: ",
2368            stringify!(CSteamAPIContext),
2369            "::",
2370            stringify!(m_pSteamUtils)
2371        )
2372    );
2373    assert_eq!(
2374        unsafe { ::std::ptr::addr_of!((*ptr).m_pSteamMatchmaking) as usize - ptr as usize },
2375        32usize,
2376        concat!(
2377            "Offset of field: ",
2378            stringify!(CSteamAPIContext),
2379            "::",
2380            stringify!(m_pSteamMatchmaking)
2381        )
2382    );
2383    assert_eq!(
2384        unsafe { ::std::ptr::addr_of!((*ptr).m_pSteamGameSearch) as usize - ptr as usize },
2385        40usize,
2386        concat!(
2387            "Offset of field: ",
2388            stringify!(CSteamAPIContext),
2389            "::",
2390            stringify!(m_pSteamGameSearch)
2391        )
2392    );
2393    assert_eq!(
2394        unsafe { ::std::ptr::addr_of!((*ptr).m_pSteamUserStats) as usize - ptr as usize },
2395        48usize,
2396        concat!(
2397            "Offset of field: ",
2398            stringify!(CSteamAPIContext),
2399            "::",
2400            stringify!(m_pSteamUserStats)
2401        )
2402    );
2403    assert_eq!(
2404        unsafe { ::std::ptr::addr_of!((*ptr).m_pSteamApps) as usize - ptr as usize },
2405        56usize,
2406        concat!(
2407            "Offset of field: ",
2408            stringify!(CSteamAPIContext),
2409            "::",
2410            stringify!(m_pSteamApps)
2411        )
2412    );
2413    assert_eq!(
2414        unsafe { ::std::ptr::addr_of!((*ptr).m_pSteamMatchmakingServers) as usize - ptr as usize },
2415        64usize,
2416        concat!(
2417            "Offset of field: ",
2418            stringify!(CSteamAPIContext),
2419            "::",
2420            stringify!(m_pSteamMatchmakingServers)
2421        )
2422    );
2423    assert_eq!(
2424        unsafe { ::std::ptr::addr_of!((*ptr).m_pSteamNetworking) as usize - ptr as usize },
2425        72usize,
2426        concat!(
2427            "Offset of field: ",
2428            stringify!(CSteamAPIContext),
2429            "::",
2430            stringify!(m_pSteamNetworking)
2431        )
2432    );
2433    assert_eq!(
2434        unsafe { ::std::ptr::addr_of!((*ptr).m_pSteamRemoteStorage) as usize - ptr as usize },
2435        80usize,
2436        concat!(
2437            "Offset of field: ",
2438            stringify!(CSteamAPIContext),
2439            "::",
2440            stringify!(m_pSteamRemoteStorage)
2441        )
2442    );
2443    assert_eq!(
2444        unsafe { ::std::ptr::addr_of!((*ptr).m_pSteamScreenshots) as usize - ptr as usize },
2445        88usize,
2446        concat!(
2447            "Offset of field: ",
2448            stringify!(CSteamAPIContext),
2449            "::",
2450            stringify!(m_pSteamScreenshots)
2451        )
2452    );
2453    assert_eq!(
2454        unsafe { ::std::ptr::addr_of!((*ptr).m_pSteamHTTP) as usize - ptr as usize },
2455        96usize,
2456        concat!(
2457            "Offset of field: ",
2458            stringify!(CSteamAPIContext),
2459            "::",
2460            stringify!(m_pSteamHTTP)
2461        )
2462    );
2463    assert_eq!(
2464        unsafe { ::std::ptr::addr_of!((*ptr).m_pController) as usize - ptr as usize },
2465        104usize,
2466        concat!(
2467            "Offset of field: ",
2468            stringify!(CSteamAPIContext),
2469            "::",
2470            stringify!(m_pController)
2471        )
2472    );
2473    assert_eq!(
2474        unsafe { ::std::ptr::addr_of!((*ptr).m_pSteamUGC) as usize - ptr as usize },
2475        112usize,
2476        concat!(
2477            "Offset of field: ",
2478            stringify!(CSteamAPIContext),
2479            "::",
2480            stringify!(m_pSteamUGC)
2481        )
2482    );
2483    assert_eq!(
2484        unsafe { ::std::ptr::addr_of!((*ptr).m_pSteamAppList) as usize - ptr as usize },
2485        120usize,
2486        concat!(
2487            "Offset of field: ",
2488            stringify!(CSteamAPIContext),
2489            "::",
2490            stringify!(m_pSteamAppList)
2491        )
2492    );
2493    assert_eq!(
2494        unsafe { ::std::ptr::addr_of!((*ptr).m_pSteamMusic) as usize - ptr as usize },
2495        128usize,
2496        concat!(
2497            "Offset of field: ",
2498            stringify!(CSteamAPIContext),
2499            "::",
2500            stringify!(m_pSteamMusic)
2501        )
2502    );
2503    assert_eq!(
2504        unsafe { ::std::ptr::addr_of!((*ptr).m_pSteamMusicRemote) as usize - ptr as usize },
2505        136usize,
2506        concat!(
2507            "Offset of field: ",
2508            stringify!(CSteamAPIContext),
2509            "::",
2510            stringify!(m_pSteamMusicRemote)
2511        )
2512    );
2513    assert_eq!(
2514        unsafe { ::std::ptr::addr_of!((*ptr).m_pSteamHTMLSurface) as usize - ptr as usize },
2515        144usize,
2516        concat!(
2517            "Offset of field: ",
2518            stringify!(CSteamAPIContext),
2519            "::",
2520            stringify!(m_pSteamHTMLSurface)
2521        )
2522    );
2523    assert_eq!(
2524        unsafe { ::std::ptr::addr_of!((*ptr).m_pSteamInventory) as usize - ptr as usize },
2525        152usize,
2526        concat!(
2527            "Offset of field: ",
2528            stringify!(CSteamAPIContext),
2529            "::",
2530            stringify!(m_pSteamInventory)
2531        )
2532    );
2533    assert_eq!(
2534        unsafe { ::std::ptr::addr_of!((*ptr).m_pSteamVideo) as usize - ptr as usize },
2535        160usize,
2536        concat!(
2537            "Offset of field: ",
2538            stringify!(CSteamAPIContext),
2539            "::",
2540            stringify!(m_pSteamVideo)
2541        )
2542    );
2543    assert_eq!(
2544        unsafe { ::std::ptr::addr_of!((*ptr).m_pSteamParentalSettings) as usize - ptr as usize },
2545        168usize,
2546        concat!(
2547            "Offset of field: ",
2548            stringify!(CSteamAPIContext),
2549            "::",
2550            stringify!(m_pSteamParentalSettings)
2551        )
2552    );
2553    assert_eq!(
2554        unsafe { ::std::ptr::addr_of!((*ptr).m_pSteamInput) as usize - ptr as usize },
2555        176usize,
2556        concat!(
2557            "Offset of field: ",
2558            stringify!(CSteamAPIContext),
2559            "::",
2560            stringify!(m_pSteamInput)
2561        )
2562    );
2563}
2564#[repr(C)]
2565#[derive(Debug, Copy, Clone)]
2566pub struct CSteamGameServerAPIContext {
2567    pub m_pSteamClient: *mut ISteamClient,
2568    pub m_pSteamGameServer: *mut ISteamGameServer,
2569    pub m_pSteamGameServerUtils: *mut ISteamUtils,
2570    pub m_pSteamGameServerNetworking: *mut ISteamNetworking,
2571    pub m_pSteamGameServerStats: *mut ISteamGameServerStats,
2572    pub m_pSteamHTTP: *mut ISteamHTTP,
2573    pub m_pSteamInventory: *mut ISteamInventory,
2574    pub m_pSteamUGC: *mut ISteamUGC,
2575}
2576#[test]
2577fn bindgen_test_layout_CSteamGameServerAPIContext() {
2578    const UNINIT: ::std::mem::MaybeUninit<CSteamGameServerAPIContext> =
2579        ::std::mem::MaybeUninit::uninit();
2580    let ptr = UNINIT.as_ptr();
2581    assert_eq!(
2582        ::std::mem::size_of::<CSteamGameServerAPIContext>(),
2583        64usize,
2584        concat!("Size of: ", stringify!(CSteamGameServerAPIContext))
2585    );
2586    assert_eq!(
2587        ::std::mem::align_of::<CSteamGameServerAPIContext>(),
2588        8usize,
2589        concat!("Alignment of ", stringify!(CSteamGameServerAPIContext))
2590    );
2591    assert_eq!(
2592        unsafe { ::std::ptr::addr_of!((*ptr).m_pSteamClient) as usize - ptr as usize },
2593        0usize,
2594        concat!(
2595            "Offset of field: ",
2596            stringify!(CSteamGameServerAPIContext),
2597            "::",
2598            stringify!(m_pSteamClient)
2599        )
2600    );
2601    assert_eq!(
2602        unsafe { ::std::ptr::addr_of!((*ptr).m_pSteamGameServer) as usize - ptr as usize },
2603        8usize,
2604        concat!(
2605            "Offset of field: ",
2606            stringify!(CSteamGameServerAPIContext),
2607            "::",
2608            stringify!(m_pSteamGameServer)
2609        )
2610    );
2611    assert_eq!(
2612        unsafe { ::std::ptr::addr_of!((*ptr).m_pSteamGameServerUtils) as usize - ptr as usize },
2613        16usize,
2614        concat!(
2615            "Offset of field: ",
2616            stringify!(CSteamGameServerAPIContext),
2617            "::",
2618            stringify!(m_pSteamGameServerUtils)
2619        )
2620    );
2621    assert_eq!(
2622        unsafe {
2623            ::std::ptr::addr_of!((*ptr).m_pSteamGameServerNetworking) as usize - ptr as usize
2624        },
2625        24usize,
2626        concat!(
2627            "Offset of field: ",
2628            stringify!(CSteamGameServerAPIContext),
2629            "::",
2630            stringify!(m_pSteamGameServerNetworking)
2631        )
2632    );
2633    assert_eq!(
2634        unsafe { ::std::ptr::addr_of!((*ptr).m_pSteamGameServerStats) as usize - ptr as usize },
2635        32usize,
2636        concat!(
2637            "Offset of field: ",
2638            stringify!(CSteamGameServerAPIContext),
2639            "::",
2640            stringify!(m_pSteamGameServerStats)
2641        )
2642    );
2643    assert_eq!(
2644        unsafe { ::std::ptr::addr_of!((*ptr).m_pSteamHTTP) as usize - ptr as usize },
2645        40usize,
2646        concat!(
2647            "Offset of field: ",
2648            stringify!(CSteamGameServerAPIContext),
2649            "::",
2650            stringify!(m_pSteamHTTP)
2651        )
2652    );
2653    assert_eq!(
2654        unsafe { ::std::ptr::addr_of!((*ptr).m_pSteamInventory) as usize - ptr as usize },
2655        48usize,
2656        concat!(
2657            "Offset of field: ",
2658            stringify!(CSteamGameServerAPIContext),
2659            "::",
2660            stringify!(m_pSteamInventory)
2661        )
2662    );
2663    assert_eq!(
2664        unsafe { ::std::ptr::addr_of!((*ptr).m_pSteamUGC) as usize - ptr as usize },
2665        56usize,
2666        concat!(
2667            "Offset of field: ",
2668            stringify!(CSteamGameServerAPIContext),
2669            "::",
2670            stringify!(m_pSteamUGC)
2671        )
2672    );
2673}
2674#[repr(C)]
2675pub struct ISteamClient__bindgen_vtable(::std::os::raw::c_void);
2676#[repr(C)]
2677#[derive(Debug, Copy, Clone)]
2678pub struct ISteamClient {
2679    pub vtable_: *const ISteamClient__bindgen_vtable,
2680}
2681#[test]
2682fn bindgen_test_layout_ISteamClient() {
2683    assert_eq!(
2684        ::std::mem::size_of::<ISteamClient>(),
2685        8usize,
2686        concat!("Size of: ", stringify!(ISteamClient))
2687    );
2688    assert_eq!(
2689        ::std::mem::align_of::<ISteamClient>(),
2690        8usize,
2691        concat!("Alignment of ", stringify!(ISteamClient))
2692    );
2693}
2694#[repr(C)]
2695pub struct ISteamUser__bindgen_vtable(::std::os::raw::c_void);
2696#[repr(C)]
2697#[derive(Debug, Copy, Clone)]
2698pub struct ISteamUser {
2699    pub vtable_: *const ISteamUser__bindgen_vtable,
2700}
2701#[test]
2702fn bindgen_test_layout_ISteamUser() {
2703    assert_eq!(
2704        ::std::mem::size_of::<ISteamUser>(),
2705        8usize,
2706        concat!("Size of: ", stringify!(ISteamUser))
2707    );
2708    assert_eq!(
2709        ::std::mem::align_of::<ISteamUser>(),
2710        8usize,
2711        concat!("Alignment of ", stringify!(ISteamUser))
2712    );
2713}
2714#[repr(C)]
2715#[derive(Debug, Copy, Clone)]
2716pub struct SteamServersConnected_t {
2717    pub _address: u8,
2718}
2719pub const SteamServersConnected_t_k_iCallback: SteamServersConnected_t__bindgen_ty_1 =
2720    SteamServersConnected_t__bindgen_ty_1::k_iCallback;
2721#[repr(u32)]
2722#[non_exhaustive]
2723#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2724pub enum SteamServersConnected_t__bindgen_ty_1 {
2725    k_iCallback = 101,
2726}
2727#[test]
2728fn bindgen_test_layout_SteamServersConnected_t() {
2729    assert_eq!(
2730        ::std::mem::size_of::<SteamServersConnected_t>(),
2731        1usize,
2732        concat!("Size of: ", stringify!(SteamServersConnected_t))
2733    );
2734    assert_eq!(
2735        ::std::mem::align_of::<SteamServersConnected_t>(),
2736        1usize,
2737        concat!("Alignment of ", stringify!(SteamServersConnected_t))
2738    );
2739}
2740#[repr(C)]
2741#[derive(Debug, Copy, Clone)]
2742pub struct SteamServerConnectFailure_t {
2743    pub m_eResult: EResult,
2744    pub m_bStillRetrying: bool,
2745}
2746pub const SteamServerConnectFailure_t_k_iCallback: SteamServerConnectFailure_t__bindgen_ty_1 =
2747    SteamServerConnectFailure_t__bindgen_ty_1::k_iCallback;
2748#[repr(u32)]
2749#[non_exhaustive]
2750#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2751pub enum SteamServerConnectFailure_t__bindgen_ty_1 {
2752    k_iCallback = 102,
2753}
2754#[test]
2755fn bindgen_test_layout_SteamServerConnectFailure_t() {
2756    const UNINIT: ::std::mem::MaybeUninit<SteamServerConnectFailure_t> =
2757        ::std::mem::MaybeUninit::uninit();
2758    let ptr = UNINIT.as_ptr();
2759    assert_eq!(
2760        ::std::mem::size_of::<SteamServerConnectFailure_t>(),
2761        8usize,
2762        concat!("Size of: ", stringify!(SteamServerConnectFailure_t))
2763    );
2764    assert_eq!(
2765        ::std::mem::align_of::<SteamServerConnectFailure_t>(),
2766        4usize,
2767        concat!("Alignment of ", stringify!(SteamServerConnectFailure_t))
2768    );
2769    assert_eq!(
2770        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
2771        0usize,
2772        concat!(
2773            "Offset of field: ",
2774            stringify!(SteamServerConnectFailure_t),
2775            "::",
2776            stringify!(m_eResult)
2777        )
2778    );
2779    assert_eq!(
2780        unsafe { ::std::ptr::addr_of!((*ptr).m_bStillRetrying) as usize - ptr as usize },
2781        4usize,
2782        concat!(
2783            "Offset of field: ",
2784            stringify!(SteamServerConnectFailure_t),
2785            "::",
2786            stringify!(m_bStillRetrying)
2787        )
2788    );
2789}
2790#[repr(C)]
2791#[derive(Debug, Copy, Clone)]
2792pub struct SteamServersDisconnected_t {
2793    pub m_eResult: EResult,
2794}
2795pub const SteamServersDisconnected_t_k_iCallback: SteamServersDisconnected_t__bindgen_ty_1 =
2796    SteamServersDisconnected_t__bindgen_ty_1::k_iCallback;
2797#[repr(u32)]
2798#[non_exhaustive]
2799#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2800pub enum SteamServersDisconnected_t__bindgen_ty_1 {
2801    k_iCallback = 103,
2802}
2803#[test]
2804fn bindgen_test_layout_SteamServersDisconnected_t() {
2805    const UNINIT: ::std::mem::MaybeUninit<SteamServersDisconnected_t> =
2806        ::std::mem::MaybeUninit::uninit();
2807    let ptr = UNINIT.as_ptr();
2808    assert_eq!(
2809        ::std::mem::size_of::<SteamServersDisconnected_t>(),
2810        4usize,
2811        concat!("Size of: ", stringify!(SteamServersDisconnected_t))
2812    );
2813    assert_eq!(
2814        ::std::mem::align_of::<SteamServersDisconnected_t>(),
2815        4usize,
2816        concat!("Alignment of ", stringify!(SteamServersDisconnected_t))
2817    );
2818    assert_eq!(
2819        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
2820        0usize,
2821        concat!(
2822            "Offset of field: ",
2823            stringify!(SteamServersDisconnected_t),
2824            "::",
2825            stringify!(m_eResult)
2826        )
2827    );
2828}
2829#[repr(C)]
2830#[derive(Debug, Copy, Clone)]
2831pub struct ClientGameServerDeny_t {
2832    pub m_uAppID: uint32,
2833    pub m_unGameServerIP: uint32,
2834    pub m_usGameServerPort: uint16,
2835    pub m_bSecure: uint16,
2836    pub m_uReason: uint32,
2837}
2838pub const ClientGameServerDeny_t_k_iCallback: ClientGameServerDeny_t__bindgen_ty_1 =
2839    ClientGameServerDeny_t__bindgen_ty_1::k_iCallback;
2840#[repr(u32)]
2841#[non_exhaustive]
2842#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2843pub enum ClientGameServerDeny_t__bindgen_ty_1 {
2844    k_iCallback = 113,
2845}
2846#[test]
2847fn bindgen_test_layout_ClientGameServerDeny_t() {
2848    const UNINIT: ::std::mem::MaybeUninit<ClientGameServerDeny_t> =
2849        ::std::mem::MaybeUninit::uninit();
2850    let ptr = UNINIT.as_ptr();
2851    assert_eq!(
2852        ::std::mem::size_of::<ClientGameServerDeny_t>(),
2853        16usize,
2854        concat!("Size of: ", stringify!(ClientGameServerDeny_t))
2855    );
2856    assert_eq!(
2857        ::std::mem::align_of::<ClientGameServerDeny_t>(),
2858        4usize,
2859        concat!("Alignment of ", stringify!(ClientGameServerDeny_t))
2860    );
2861    assert_eq!(
2862        unsafe { ::std::ptr::addr_of!((*ptr).m_uAppID) as usize - ptr as usize },
2863        0usize,
2864        concat!(
2865            "Offset of field: ",
2866            stringify!(ClientGameServerDeny_t),
2867            "::",
2868            stringify!(m_uAppID)
2869        )
2870    );
2871    assert_eq!(
2872        unsafe { ::std::ptr::addr_of!((*ptr).m_unGameServerIP) as usize - ptr as usize },
2873        4usize,
2874        concat!(
2875            "Offset of field: ",
2876            stringify!(ClientGameServerDeny_t),
2877            "::",
2878            stringify!(m_unGameServerIP)
2879        )
2880    );
2881    assert_eq!(
2882        unsafe { ::std::ptr::addr_of!((*ptr).m_usGameServerPort) as usize - ptr as usize },
2883        8usize,
2884        concat!(
2885            "Offset of field: ",
2886            stringify!(ClientGameServerDeny_t),
2887            "::",
2888            stringify!(m_usGameServerPort)
2889        )
2890    );
2891    assert_eq!(
2892        unsafe { ::std::ptr::addr_of!((*ptr).m_bSecure) as usize - ptr as usize },
2893        10usize,
2894        concat!(
2895            "Offset of field: ",
2896            stringify!(ClientGameServerDeny_t),
2897            "::",
2898            stringify!(m_bSecure)
2899        )
2900    );
2901    assert_eq!(
2902        unsafe { ::std::ptr::addr_of!((*ptr).m_uReason) as usize - ptr as usize },
2903        12usize,
2904        concat!(
2905            "Offset of field: ",
2906            stringify!(ClientGameServerDeny_t),
2907            "::",
2908            stringify!(m_uReason)
2909        )
2910    );
2911}
2912#[repr(C)]
2913#[derive(Debug, Copy, Clone)]
2914pub struct IPCFailure_t {
2915    pub m_eFailureType: uint8,
2916}
2917pub const IPCFailure_t_k_iCallback: IPCFailure_t__bindgen_ty_1 =
2918    IPCFailure_t__bindgen_ty_1::k_iCallback;
2919#[repr(u32)]
2920#[non_exhaustive]
2921#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2922pub enum IPCFailure_t__bindgen_ty_1 {
2923    k_iCallback = 117,
2924}
2925#[repr(u32)]
2926#[non_exhaustive]
2927#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2928pub enum IPCFailure_t_EFailureType {
2929    k_EFailureFlushedCallbackQueue = 0,
2930    k_EFailurePipeFail = 1,
2931}
2932#[test]
2933fn bindgen_test_layout_IPCFailure_t() {
2934    const UNINIT: ::std::mem::MaybeUninit<IPCFailure_t> = ::std::mem::MaybeUninit::uninit();
2935    let ptr = UNINIT.as_ptr();
2936    assert_eq!(
2937        ::std::mem::size_of::<IPCFailure_t>(),
2938        1usize,
2939        concat!("Size of: ", stringify!(IPCFailure_t))
2940    );
2941    assert_eq!(
2942        ::std::mem::align_of::<IPCFailure_t>(),
2943        1usize,
2944        concat!("Alignment of ", stringify!(IPCFailure_t))
2945    );
2946    assert_eq!(
2947        unsafe { ::std::ptr::addr_of!((*ptr).m_eFailureType) as usize - ptr as usize },
2948        0usize,
2949        concat!(
2950            "Offset of field: ",
2951            stringify!(IPCFailure_t),
2952            "::",
2953            stringify!(m_eFailureType)
2954        )
2955    );
2956}
2957#[repr(C)]
2958#[derive(Debug, Copy, Clone)]
2959pub struct LicensesUpdated_t {
2960    pub _address: u8,
2961}
2962pub const LicensesUpdated_t_k_iCallback: LicensesUpdated_t__bindgen_ty_1 =
2963    LicensesUpdated_t__bindgen_ty_1::k_iCallback;
2964#[repr(u32)]
2965#[non_exhaustive]
2966#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2967pub enum LicensesUpdated_t__bindgen_ty_1 {
2968    k_iCallback = 125,
2969}
2970#[test]
2971fn bindgen_test_layout_LicensesUpdated_t() {
2972    assert_eq!(
2973        ::std::mem::size_of::<LicensesUpdated_t>(),
2974        1usize,
2975        concat!("Size of: ", stringify!(LicensesUpdated_t))
2976    );
2977    assert_eq!(
2978        ::std::mem::align_of::<LicensesUpdated_t>(),
2979        1usize,
2980        concat!("Alignment of ", stringify!(LicensesUpdated_t))
2981    );
2982}
2983#[repr(C)]
2984#[derive(Copy, Clone)]
2985pub struct ValidateAuthTicketResponse_t {
2986    pub m_SteamID: CSteamID,
2987    pub m_eAuthSessionResponse: EAuthSessionResponse,
2988    pub m_OwnerSteamID: CSteamID,
2989}
2990pub const ValidateAuthTicketResponse_t_k_iCallback: ValidateAuthTicketResponse_t__bindgen_ty_1 =
2991    ValidateAuthTicketResponse_t__bindgen_ty_1::k_iCallback;
2992#[repr(u32)]
2993#[non_exhaustive]
2994#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2995pub enum ValidateAuthTicketResponse_t__bindgen_ty_1 {
2996    k_iCallback = 143,
2997}
2998#[test]
2999fn bindgen_test_layout_ValidateAuthTicketResponse_t() {
3000    const UNINIT: ::std::mem::MaybeUninit<ValidateAuthTicketResponse_t> =
3001        ::std::mem::MaybeUninit::uninit();
3002    let ptr = UNINIT.as_ptr();
3003    assert_eq!(
3004        ::std::mem::size_of::<ValidateAuthTicketResponse_t>(),
3005        20usize,
3006        concat!("Size of: ", stringify!(ValidateAuthTicketResponse_t))
3007    );
3008    assert_eq!(
3009        ::std::mem::align_of::<ValidateAuthTicketResponse_t>(),
3010        4usize,
3011        concat!("Alignment of ", stringify!(ValidateAuthTicketResponse_t))
3012    );
3013    assert_eq!(
3014        unsafe { ::std::ptr::addr_of!((*ptr).m_SteamID) as usize - ptr as usize },
3015        0usize,
3016        concat!(
3017            "Offset of field: ",
3018            stringify!(ValidateAuthTicketResponse_t),
3019            "::",
3020            stringify!(m_SteamID)
3021        )
3022    );
3023    assert_eq!(
3024        unsafe { ::std::ptr::addr_of!((*ptr).m_eAuthSessionResponse) as usize - ptr as usize },
3025        8usize,
3026        concat!(
3027            "Offset of field: ",
3028            stringify!(ValidateAuthTicketResponse_t),
3029            "::",
3030            stringify!(m_eAuthSessionResponse)
3031        )
3032    );
3033    assert_eq!(
3034        unsafe { ::std::ptr::addr_of!((*ptr).m_OwnerSteamID) as usize - ptr as usize },
3035        12usize,
3036        concat!(
3037            "Offset of field: ",
3038            stringify!(ValidateAuthTicketResponse_t),
3039            "::",
3040            stringify!(m_OwnerSteamID)
3041        )
3042    );
3043}
3044#[repr(C, packed(4))]
3045#[derive(Debug, Copy, Clone)]
3046pub struct MicroTxnAuthorizationResponse_t {
3047    pub m_unAppID: uint32,
3048    pub m_ulOrderID: uint64,
3049    pub m_bAuthorized: uint8,
3050}
3051pub const MicroTxnAuthorizationResponse_t_k_iCallback:
3052    MicroTxnAuthorizationResponse_t__bindgen_ty_1 =
3053    MicroTxnAuthorizationResponse_t__bindgen_ty_1::k_iCallback;
3054#[repr(u32)]
3055#[non_exhaustive]
3056#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3057pub enum MicroTxnAuthorizationResponse_t__bindgen_ty_1 {
3058    k_iCallback = 152,
3059}
3060#[test]
3061fn bindgen_test_layout_MicroTxnAuthorizationResponse_t() {
3062    const UNINIT: ::std::mem::MaybeUninit<MicroTxnAuthorizationResponse_t> =
3063        ::std::mem::MaybeUninit::uninit();
3064    let ptr = UNINIT.as_ptr();
3065    assert_eq!(
3066        ::std::mem::size_of::<MicroTxnAuthorizationResponse_t>(),
3067        16usize,
3068        concat!("Size of: ", stringify!(MicroTxnAuthorizationResponse_t))
3069    );
3070    assert_eq!(
3071        ::std::mem::align_of::<MicroTxnAuthorizationResponse_t>(),
3072        4usize,
3073        concat!("Alignment of ", stringify!(MicroTxnAuthorizationResponse_t))
3074    );
3075    assert_eq!(
3076        unsafe { ::std::ptr::addr_of!((*ptr).m_unAppID) as usize - ptr as usize },
3077        0usize,
3078        concat!(
3079            "Offset of field: ",
3080            stringify!(MicroTxnAuthorizationResponse_t),
3081            "::",
3082            stringify!(m_unAppID)
3083        )
3084    );
3085    assert_eq!(
3086        unsafe { ::std::ptr::addr_of!((*ptr).m_ulOrderID) as usize - ptr as usize },
3087        4usize,
3088        concat!(
3089            "Offset of field: ",
3090            stringify!(MicroTxnAuthorizationResponse_t),
3091            "::",
3092            stringify!(m_ulOrderID)
3093        )
3094    );
3095    assert_eq!(
3096        unsafe { ::std::ptr::addr_of!((*ptr).m_bAuthorized) as usize - ptr as usize },
3097        12usize,
3098        concat!(
3099            "Offset of field: ",
3100            stringify!(MicroTxnAuthorizationResponse_t),
3101            "::",
3102            stringify!(m_bAuthorized)
3103        )
3104    );
3105}
3106#[repr(C)]
3107#[derive(Debug, Copy, Clone)]
3108pub struct EncryptedAppTicketResponse_t {
3109    pub m_eResult: EResult,
3110}
3111pub const EncryptedAppTicketResponse_t_k_iCallback: EncryptedAppTicketResponse_t__bindgen_ty_1 =
3112    EncryptedAppTicketResponse_t__bindgen_ty_1::k_iCallback;
3113#[repr(u32)]
3114#[non_exhaustive]
3115#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3116pub enum EncryptedAppTicketResponse_t__bindgen_ty_1 {
3117    k_iCallback = 154,
3118}
3119#[test]
3120fn bindgen_test_layout_EncryptedAppTicketResponse_t() {
3121    const UNINIT: ::std::mem::MaybeUninit<EncryptedAppTicketResponse_t> =
3122        ::std::mem::MaybeUninit::uninit();
3123    let ptr = UNINIT.as_ptr();
3124    assert_eq!(
3125        ::std::mem::size_of::<EncryptedAppTicketResponse_t>(),
3126        4usize,
3127        concat!("Size of: ", stringify!(EncryptedAppTicketResponse_t))
3128    );
3129    assert_eq!(
3130        ::std::mem::align_of::<EncryptedAppTicketResponse_t>(),
3131        4usize,
3132        concat!("Alignment of ", stringify!(EncryptedAppTicketResponse_t))
3133    );
3134    assert_eq!(
3135        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
3136        0usize,
3137        concat!(
3138            "Offset of field: ",
3139            stringify!(EncryptedAppTicketResponse_t),
3140            "::",
3141            stringify!(m_eResult)
3142        )
3143    );
3144}
3145#[repr(C)]
3146#[derive(Debug, Copy, Clone)]
3147pub struct GetAuthSessionTicketResponse_t {
3148    pub m_hAuthTicket: HAuthTicket,
3149    pub m_eResult: EResult,
3150}
3151pub const GetAuthSessionTicketResponse_t_k_iCallback: GetAuthSessionTicketResponse_t__bindgen_ty_1 =
3152    GetAuthSessionTicketResponse_t__bindgen_ty_1::k_iCallback;
3153#[repr(u32)]
3154#[non_exhaustive]
3155#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3156pub enum GetAuthSessionTicketResponse_t__bindgen_ty_1 {
3157    k_iCallback = 163,
3158}
3159#[test]
3160fn bindgen_test_layout_GetAuthSessionTicketResponse_t() {
3161    const UNINIT: ::std::mem::MaybeUninit<GetAuthSessionTicketResponse_t> =
3162        ::std::mem::MaybeUninit::uninit();
3163    let ptr = UNINIT.as_ptr();
3164    assert_eq!(
3165        ::std::mem::size_of::<GetAuthSessionTicketResponse_t>(),
3166        8usize,
3167        concat!("Size of: ", stringify!(GetAuthSessionTicketResponse_t))
3168    );
3169    assert_eq!(
3170        ::std::mem::align_of::<GetAuthSessionTicketResponse_t>(),
3171        4usize,
3172        concat!("Alignment of ", stringify!(GetAuthSessionTicketResponse_t))
3173    );
3174    assert_eq!(
3175        unsafe { ::std::ptr::addr_of!((*ptr).m_hAuthTicket) as usize - ptr as usize },
3176        0usize,
3177        concat!(
3178            "Offset of field: ",
3179            stringify!(GetAuthSessionTicketResponse_t),
3180            "::",
3181            stringify!(m_hAuthTicket)
3182        )
3183    );
3184    assert_eq!(
3185        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
3186        4usize,
3187        concat!(
3188            "Offset of field: ",
3189            stringify!(GetAuthSessionTicketResponse_t),
3190            "::",
3191            stringify!(m_eResult)
3192        )
3193    );
3194}
3195#[repr(C)]
3196#[derive(Debug, Copy, Clone)]
3197pub struct GameWebCallback_t {
3198    pub m_szURL: [::std::os::raw::c_char; 256usize],
3199}
3200pub const GameWebCallback_t_k_iCallback: GameWebCallback_t__bindgen_ty_1 =
3201    GameWebCallback_t__bindgen_ty_1::k_iCallback;
3202#[repr(u32)]
3203#[non_exhaustive]
3204#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3205pub enum GameWebCallback_t__bindgen_ty_1 {
3206    k_iCallback = 164,
3207}
3208#[test]
3209fn bindgen_test_layout_GameWebCallback_t() {
3210    const UNINIT: ::std::mem::MaybeUninit<GameWebCallback_t> = ::std::mem::MaybeUninit::uninit();
3211    let ptr = UNINIT.as_ptr();
3212    assert_eq!(
3213        ::std::mem::size_of::<GameWebCallback_t>(),
3214        256usize,
3215        concat!("Size of: ", stringify!(GameWebCallback_t))
3216    );
3217    assert_eq!(
3218        ::std::mem::align_of::<GameWebCallback_t>(),
3219        1usize,
3220        concat!("Alignment of ", stringify!(GameWebCallback_t))
3221    );
3222    assert_eq!(
3223        unsafe { ::std::ptr::addr_of!((*ptr).m_szURL) as usize - ptr as usize },
3224        0usize,
3225        concat!(
3226            "Offset of field: ",
3227            stringify!(GameWebCallback_t),
3228            "::",
3229            stringify!(m_szURL)
3230        )
3231    );
3232}
3233#[repr(C)]
3234#[derive(Debug, Copy, Clone)]
3235pub struct StoreAuthURLResponse_t {
3236    pub m_szURL: [::std::os::raw::c_char; 512usize],
3237}
3238pub const StoreAuthURLResponse_t_k_iCallback: StoreAuthURLResponse_t__bindgen_ty_1 =
3239    StoreAuthURLResponse_t__bindgen_ty_1::k_iCallback;
3240#[repr(u32)]
3241#[non_exhaustive]
3242#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3243pub enum StoreAuthURLResponse_t__bindgen_ty_1 {
3244    k_iCallback = 165,
3245}
3246#[test]
3247fn bindgen_test_layout_StoreAuthURLResponse_t() {
3248    const UNINIT: ::std::mem::MaybeUninit<StoreAuthURLResponse_t> =
3249        ::std::mem::MaybeUninit::uninit();
3250    let ptr = UNINIT.as_ptr();
3251    assert_eq!(
3252        ::std::mem::size_of::<StoreAuthURLResponse_t>(),
3253        512usize,
3254        concat!("Size of: ", stringify!(StoreAuthURLResponse_t))
3255    );
3256    assert_eq!(
3257        ::std::mem::align_of::<StoreAuthURLResponse_t>(),
3258        1usize,
3259        concat!("Alignment of ", stringify!(StoreAuthURLResponse_t))
3260    );
3261    assert_eq!(
3262        unsafe { ::std::ptr::addr_of!((*ptr).m_szURL) as usize - ptr as usize },
3263        0usize,
3264        concat!(
3265            "Offset of field: ",
3266            stringify!(StoreAuthURLResponse_t),
3267            "::",
3268            stringify!(m_szURL)
3269        )
3270    );
3271}
3272#[repr(C)]
3273#[derive(Debug, Copy, Clone)]
3274pub struct MarketEligibilityResponse_t {
3275    pub m_bAllowed: bool,
3276    pub m_eNotAllowedReason: EMarketNotAllowedReasonFlags,
3277    pub m_rtAllowedAtTime: RTime32,
3278    pub m_cdaySteamGuardRequiredDays: ::std::os::raw::c_int,
3279    pub m_cdayNewDeviceCooldown: ::std::os::raw::c_int,
3280}
3281pub const MarketEligibilityResponse_t_k_iCallback: MarketEligibilityResponse_t__bindgen_ty_1 =
3282    MarketEligibilityResponse_t__bindgen_ty_1::k_iCallback;
3283#[repr(u32)]
3284#[non_exhaustive]
3285#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3286pub enum MarketEligibilityResponse_t__bindgen_ty_1 {
3287    k_iCallback = 166,
3288}
3289#[test]
3290fn bindgen_test_layout_MarketEligibilityResponse_t() {
3291    const UNINIT: ::std::mem::MaybeUninit<MarketEligibilityResponse_t> =
3292        ::std::mem::MaybeUninit::uninit();
3293    let ptr = UNINIT.as_ptr();
3294    assert_eq!(
3295        ::std::mem::size_of::<MarketEligibilityResponse_t>(),
3296        20usize,
3297        concat!("Size of: ", stringify!(MarketEligibilityResponse_t))
3298    );
3299    assert_eq!(
3300        ::std::mem::align_of::<MarketEligibilityResponse_t>(),
3301        4usize,
3302        concat!("Alignment of ", stringify!(MarketEligibilityResponse_t))
3303    );
3304    assert_eq!(
3305        unsafe { ::std::ptr::addr_of!((*ptr).m_bAllowed) as usize - ptr as usize },
3306        0usize,
3307        concat!(
3308            "Offset of field: ",
3309            stringify!(MarketEligibilityResponse_t),
3310            "::",
3311            stringify!(m_bAllowed)
3312        )
3313    );
3314    assert_eq!(
3315        unsafe { ::std::ptr::addr_of!((*ptr).m_eNotAllowedReason) as usize - ptr as usize },
3316        4usize,
3317        concat!(
3318            "Offset of field: ",
3319            stringify!(MarketEligibilityResponse_t),
3320            "::",
3321            stringify!(m_eNotAllowedReason)
3322        )
3323    );
3324    assert_eq!(
3325        unsafe { ::std::ptr::addr_of!((*ptr).m_rtAllowedAtTime) as usize - ptr as usize },
3326        8usize,
3327        concat!(
3328            "Offset of field: ",
3329            stringify!(MarketEligibilityResponse_t),
3330            "::",
3331            stringify!(m_rtAllowedAtTime)
3332        )
3333    );
3334    assert_eq!(
3335        unsafe {
3336            ::std::ptr::addr_of!((*ptr).m_cdaySteamGuardRequiredDays) as usize - ptr as usize
3337        },
3338        12usize,
3339        concat!(
3340            "Offset of field: ",
3341            stringify!(MarketEligibilityResponse_t),
3342            "::",
3343            stringify!(m_cdaySteamGuardRequiredDays)
3344        )
3345    );
3346    assert_eq!(
3347        unsafe { ::std::ptr::addr_of!((*ptr).m_cdayNewDeviceCooldown) as usize - ptr as usize },
3348        16usize,
3349        concat!(
3350            "Offset of field: ",
3351            stringify!(MarketEligibilityResponse_t),
3352            "::",
3353            stringify!(m_cdayNewDeviceCooldown)
3354        )
3355    );
3356}
3357#[repr(C)]
3358#[derive(Debug, Copy, Clone)]
3359pub struct DurationControl_t {
3360    pub m_eResult: EResult,
3361    pub m_appid: AppId_t,
3362    pub m_bApplicable: bool,
3363    pub m_csecsLast5h: int32,
3364    pub m_progress: EDurationControlProgress,
3365    pub m_notification: EDurationControlNotification,
3366    pub m_csecsToday: int32,
3367    pub m_csecsRemaining: int32,
3368}
3369pub const DurationControl_t_k_iCallback: DurationControl_t__bindgen_ty_1 =
3370    DurationControl_t__bindgen_ty_1::k_iCallback;
3371#[repr(u32)]
3372#[non_exhaustive]
3373#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3374pub enum DurationControl_t__bindgen_ty_1 {
3375    k_iCallback = 167,
3376}
3377#[test]
3378fn bindgen_test_layout_DurationControl_t() {
3379    const UNINIT: ::std::mem::MaybeUninit<DurationControl_t> = ::std::mem::MaybeUninit::uninit();
3380    let ptr = UNINIT.as_ptr();
3381    assert_eq!(
3382        ::std::mem::size_of::<DurationControl_t>(),
3383        32usize,
3384        concat!("Size of: ", stringify!(DurationControl_t))
3385    );
3386    assert_eq!(
3387        ::std::mem::align_of::<DurationControl_t>(),
3388        4usize,
3389        concat!("Alignment of ", stringify!(DurationControl_t))
3390    );
3391    assert_eq!(
3392        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
3393        0usize,
3394        concat!(
3395            "Offset of field: ",
3396            stringify!(DurationControl_t),
3397            "::",
3398            stringify!(m_eResult)
3399        )
3400    );
3401    assert_eq!(
3402        unsafe { ::std::ptr::addr_of!((*ptr).m_appid) as usize - ptr as usize },
3403        4usize,
3404        concat!(
3405            "Offset of field: ",
3406            stringify!(DurationControl_t),
3407            "::",
3408            stringify!(m_appid)
3409        )
3410    );
3411    assert_eq!(
3412        unsafe { ::std::ptr::addr_of!((*ptr).m_bApplicable) as usize - ptr as usize },
3413        8usize,
3414        concat!(
3415            "Offset of field: ",
3416            stringify!(DurationControl_t),
3417            "::",
3418            stringify!(m_bApplicable)
3419        )
3420    );
3421    assert_eq!(
3422        unsafe { ::std::ptr::addr_of!((*ptr).m_csecsLast5h) as usize - ptr as usize },
3423        12usize,
3424        concat!(
3425            "Offset of field: ",
3426            stringify!(DurationControl_t),
3427            "::",
3428            stringify!(m_csecsLast5h)
3429        )
3430    );
3431    assert_eq!(
3432        unsafe { ::std::ptr::addr_of!((*ptr).m_progress) as usize - ptr as usize },
3433        16usize,
3434        concat!(
3435            "Offset of field: ",
3436            stringify!(DurationControl_t),
3437            "::",
3438            stringify!(m_progress)
3439        )
3440    );
3441    assert_eq!(
3442        unsafe { ::std::ptr::addr_of!((*ptr).m_notification) as usize - ptr as usize },
3443        20usize,
3444        concat!(
3445            "Offset of field: ",
3446            stringify!(DurationControl_t),
3447            "::",
3448            stringify!(m_notification)
3449        )
3450    );
3451    assert_eq!(
3452        unsafe { ::std::ptr::addr_of!((*ptr).m_csecsToday) as usize - ptr as usize },
3453        24usize,
3454        concat!(
3455            "Offset of field: ",
3456            stringify!(DurationControl_t),
3457            "::",
3458            stringify!(m_csecsToday)
3459        )
3460    );
3461    assert_eq!(
3462        unsafe { ::std::ptr::addr_of!((*ptr).m_csecsRemaining) as usize - ptr as usize },
3463        28usize,
3464        concat!(
3465            "Offset of field: ",
3466            stringify!(DurationControl_t),
3467            "::",
3468            stringify!(m_csecsRemaining)
3469        )
3470    );
3471}
3472#[repr(C)]
3473#[derive(Debug, Copy, Clone)]
3474pub struct GetTicketForWebApiResponse_t {
3475    pub m_hAuthTicket: HAuthTicket,
3476    pub m_eResult: EResult,
3477    pub m_cubTicket: ::std::os::raw::c_int,
3478    pub m_rgubTicket: [uint8; 2560usize],
3479}
3480pub const GetTicketForWebApiResponse_t_k_iCallback: GetTicketForWebApiResponse_t__bindgen_ty_1 =
3481    GetTicketForWebApiResponse_t__bindgen_ty_1::k_iCallback;
3482#[repr(u32)]
3483#[non_exhaustive]
3484#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3485pub enum GetTicketForWebApiResponse_t__bindgen_ty_1 {
3486    k_iCallback = 168,
3487}
3488pub const GetTicketForWebApiResponse_t_k_nCubTicketMaxLength: ::std::os::raw::c_int = 2560;
3489#[test]
3490fn bindgen_test_layout_GetTicketForWebApiResponse_t() {
3491    const UNINIT: ::std::mem::MaybeUninit<GetTicketForWebApiResponse_t> =
3492        ::std::mem::MaybeUninit::uninit();
3493    let ptr = UNINIT.as_ptr();
3494    assert_eq!(
3495        ::std::mem::size_of::<GetTicketForWebApiResponse_t>(),
3496        2572usize,
3497        concat!("Size of: ", stringify!(GetTicketForWebApiResponse_t))
3498    );
3499    assert_eq!(
3500        ::std::mem::align_of::<GetTicketForWebApiResponse_t>(),
3501        4usize,
3502        concat!("Alignment of ", stringify!(GetTicketForWebApiResponse_t))
3503    );
3504    assert_eq!(
3505        unsafe { ::std::ptr::addr_of!((*ptr).m_hAuthTicket) as usize - ptr as usize },
3506        0usize,
3507        concat!(
3508            "Offset of field: ",
3509            stringify!(GetTicketForWebApiResponse_t),
3510            "::",
3511            stringify!(m_hAuthTicket)
3512        )
3513    );
3514    assert_eq!(
3515        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
3516        4usize,
3517        concat!(
3518            "Offset of field: ",
3519            stringify!(GetTicketForWebApiResponse_t),
3520            "::",
3521            stringify!(m_eResult)
3522        )
3523    );
3524    assert_eq!(
3525        unsafe { ::std::ptr::addr_of!((*ptr).m_cubTicket) as usize - ptr as usize },
3526        8usize,
3527        concat!(
3528            "Offset of field: ",
3529            stringify!(GetTicketForWebApiResponse_t),
3530            "::",
3531            stringify!(m_cubTicket)
3532        )
3533    );
3534    assert_eq!(
3535        unsafe { ::std::ptr::addr_of!((*ptr).m_rgubTicket) as usize - ptr as usize },
3536        12usize,
3537        concat!(
3538            "Offset of field: ",
3539            stringify!(GetTicketForWebApiResponse_t),
3540            "::",
3541            stringify!(m_rgubTicket)
3542        )
3543    );
3544}
3545#[repr(u32)]
3546#[non_exhaustive]
3547#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3548pub enum EFriendRelationship {
3549    k_EFriendRelationshipNone = 0,
3550    k_EFriendRelationshipBlocked = 1,
3551    k_EFriendRelationshipRequestRecipient = 2,
3552    k_EFriendRelationshipFriend = 3,
3553    k_EFriendRelationshipRequestInitiator = 4,
3554    k_EFriendRelationshipIgnored = 5,
3555    k_EFriendRelationshipIgnoredFriend = 6,
3556    k_EFriendRelationshipSuggested_DEPRECATED = 7,
3557    k_EFriendRelationshipMax = 8,
3558}
3559pub const k_cchMaxFriendsGroupName: ::std::os::raw::c_int = 64;
3560pub const k_cFriendsGroupLimit: ::std::os::raw::c_int = 100;
3561pub type FriendsGroupID_t = int16;
3562pub const k_FriendsGroupID_Invalid: FriendsGroupID_t = -1;
3563pub const k_cEnumerateFollowersMax: ::std::os::raw::c_int = 50;
3564#[repr(u32)]
3565#[non_exhaustive]
3566#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3567pub enum EPersonaState {
3568    k_EPersonaStateOffline = 0,
3569    k_EPersonaStateOnline = 1,
3570    k_EPersonaStateBusy = 2,
3571    k_EPersonaStateAway = 3,
3572    k_EPersonaStateSnooze = 4,
3573    k_EPersonaStateLookingToTrade = 5,
3574    k_EPersonaStateLookingToPlay = 6,
3575    k_EPersonaStateInvisible = 7,
3576    k_EPersonaStateMax = 8,
3577}
3578#[repr(u32)]
3579#[non_exhaustive]
3580#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3581pub enum EFriendFlags {
3582    k_EFriendFlagNone = 0,
3583    k_EFriendFlagBlocked = 1,
3584    k_EFriendFlagFriendshipRequested = 2,
3585    k_EFriendFlagImmediate = 4,
3586    k_EFriendFlagClanMember = 8,
3587    k_EFriendFlagOnGameServer = 16,
3588    k_EFriendFlagRequestingFriendship = 128,
3589    k_EFriendFlagRequestingInfo = 256,
3590    k_EFriendFlagIgnored = 512,
3591    k_EFriendFlagIgnoredFriend = 1024,
3592    k_EFriendFlagChatMember = 4096,
3593    k_EFriendFlagAll = 65535,
3594}
3595#[repr(C)]
3596#[derive(Copy, Clone)]
3597pub struct FriendGameInfo_t {
3598    pub m_gameID: CGameID,
3599    pub m_unGameIP: uint32,
3600    pub m_usGamePort: uint16,
3601    pub m_usQueryPort: uint16,
3602    pub m_steamIDLobby: CSteamID,
3603}
3604#[test]
3605fn bindgen_test_layout_FriendGameInfo_t() {
3606    const UNINIT: ::std::mem::MaybeUninit<FriendGameInfo_t> = ::std::mem::MaybeUninit::uninit();
3607    let ptr = UNINIT.as_ptr();
3608    assert_eq!(
3609        ::std::mem::size_of::<FriendGameInfo_t>(),
3610        24usize,
3611        concat!("Size of: ", stringify!(FriendGameInfo_t))
3612    );
3613    assert_eq!(
3614        ::std::mem::align_of::<FriendGameInfo_t>(),
3615        4usize,
3616        concat!("Alignment of ", stringify!(FriendGameInfo_t))
3617    );
3618    assert_eq!(
3619        unsafe { ::std::ptr::addr_of!((*ptr).m_gameID) as usize - ptr as usize },
3620        0usize,
3621        concat!(
3622            "Offset of field: ",
3623            stringify!(FriendGameInfo_t),
3624            "::",
3625            stringify!(m_gameID)
3626        )
3627    );
3628    assert_eq!(
3629        unsafe { ::std::ptr::addr_of!((*ptr).m_unGameIP) as usize - ptr as usize },
3630        8usize,
3631        concat!(
3632            "Offset of field: ",
3633            stringify!(FriendGameInfo_t),
3634            "::",
3635            stringify!(m_unGameIP)
3636        )
3637    );
3638    assert_eq!(
3639        unsafe { ::std::ptr::addr_of!((*ptr).m_usGamePort) as usize - ptr as usize },
3640        12usize,
3641        concat!(
3642            "Offset of field: ",
3643            stringify!(FriendGameInfo_t),
3644            "::",
3645            stringify!(m_usGamePort)
3646        )
3647    );
3648    assert_eq!(
3649        unsafe { ::std::ptr::addr_of!((*ptr).m_usQueryPort) as usize - ptr as usize },
3650        14usize,
3651        concat!(
3652            "Offset of field: ",
3653            stringify!(FriendGameInfo_t),
3654            "::",
3655            stringify!(m_usQueryPort)
3656        )
3657    );
3658    assert_eq!(
3659        unsafe { ::std::ptr::addr_of!((*ptr).m_steamIDLobby) as usize - ptr as usize },
3660        16usize,
3661        concat!(
3662            "Offset of field: ",
3663            stringify!(FriendGameInfo_t),
3664            "::",
3665            stringify!(m_steamIDLobby)
3666        )
3667    );
3668}
3669pub const k_cchPersonaNameMax: _bindgen_ty_39 = _bindgen_ty_39::k_cchPersonaNameMax;
3670pub const k_cwchPersonaNameMax: _bindgen_ty_39 = _bindgen_ty_39::k_cwchPersonaNameMax;
3671#[repr(u32)]
3672#[non_exhaustive]
3673#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3674pub enum _bindgen_ty_39 {
3675    k_cchPersonaNameMax = 128,
3676    k_cwchPersonaNameMax = 32,
3677}
3678#[repr(u32)]
3679#[non_exhaustive]
3680#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3681pub enum EUserRestriction {
3682    k_nUserRestrictionNone = 0,
3683    k_nUserRestrictionUnknown = 1,
3684    k_nUserRestrictionAnyChat = 2,
3685    k_nUserRestrictionVoiceChat = 4,
3686    k_nUserRestrictionGroupChat = 8,
3687    k_nUserRestrictionRating = 16,
3688    k_nUserRestrictionGameInvites = 32,
3689    k_nUserRestrictionTrading = 64,
3690}
3691pub const k_cubChatMetadataMax: uint32 = 8192;
3692pub const k_cchMaxRichPresenceKeys: _bindgen_ty_40 = _bindgen_ty_40::k_cchMaxRichPresenceKeys;
3693#[repr(u32)]
3694#[non_exhaustive]
3695#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3696pub enum _bindgen_ty_40 {
3697    k_cchMaxRichPresenceKeys = 30,
3698}
3699pub const k_cchMaxRichPresenceKeyLength: _bindgen_ty_41 =
3700    _bindgen_ty_41::k_cchMaxRichPresenceKeyLength;
3701#[repr(u32)]
3702#[non_exhaustive]
3703#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3704pub enum _bindgen_ty_41 {
3705    k_cchMaxRichPresenceKeyLength = 64,
3706}
3707pub const k_cchMaxRichPresenceValueLength: _bindgen_ty_42 =
3708    _bindgen_ty_42::k_cchMaxRichPresenceValueLength;
3709#[repr(u32)]
3710#[non_exhaustive]
3711#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3712pub enum _bindgen_ty_42 {
3713    k_cchMaxRichPresenceValueLength = 256,
3714}
3715#[repr(u32)]
3716#[non_exhaustive]
3717#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3718pub enum EOverlayToStoreFlag {
3719    k_EOverlayToStoreFlag_None = 0,
3720    k_EOverlayToStoreFlag_AddToCart = 1,
3721    k_EOverlayToStoreFlag_AddToCartAndShow = 2,
3722}
3723#[repr(u32)]
3724#[non_exhaustive]
3725#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3726pub enum EActivateGameOverlayToWebPageMode {
3727    k_EActivateGameOverlayToWebPageMode_Default = 0,
3728    k_EActivateGameOverlayToWebPageMode_Modal = 1,
3729}
3730#[repr(u32)]
3731#[non_exhaustive]
3732#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3733pub enum ECommunityProfileItemType {
3734    k_ECommunityProfileItemType_AnimatedAvatar = 0,
3735    k_ECommunityProfileItemType_AvatarFrame = 1,
3736    k_ECommunityProfileItemType_ProfileModifier = 2,
3737    k_ECommunityProfileItemType_ProfileBackground = 3,
3738    k_ECommunityProfileItemType_MiniProfileBackground = 4,
3739}
3740#[repr(u32)]
3741#[non_exhaustive]
3742#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3743pub enum ECommunityProfileItemProperty {
3744    k_ECommunityProfileItemProperty_ImageSmall = 0,
3745    k_ECommunityProfileItemProperty_ImageLarge = 1,
3746    k_ECommunityProfileItemProperty_InternalName = 2,
3747    k_ECommunityProfileItemProperty_Title = 3,
3748    k_ECommunityProfileItemProperty_Description = 4,
3749    k_ECommunityProfileItemProperty_AppID = 5,
3750    k_ECommunityProfileItemProperty_TypeID = 6,
3751    k_ECommunityProfileItemProperty_Class = 7,
3752    k_ECommunityProfileItemProperty_MovieWebM = 8,
3753    k_ECommunityProfileItemProperty_MovieMP4 = 9,
3754    k_ECommunityProfileItemProperty_MovieWebMSmall = 10,
3755    k_ECommunityProfileItemProperty_MovieMP4Small = 11,
3756}
3757#[repr(C)]
3758pub struct ISteamFriends__bindgen_vtable(::std::os::raw::c_void);
3759#[repr(C)]
3760#[derive(Debug, Copy, Clone)]
3761pub struct ISteamFriends {
3762    pub vtable_: *const ISteamFriends__bindgen_vtable,
3763}
3764#[test]
3765fn bindgen_test_layout_ISteamFriends() {
3766    assert_eq!(
3767        ::std::mem::size_of::<ISteamFriends>(),
3768        8usize,
3769        concat!("Size of: ", stringify!(ISteamFriends))
3770    );
3771    assert_eq!(
3772        ::std::mem::align_of::<ISteamFriends>(),
3773        8usize,
3774        concat!("Alignment of ", stringify!(ISteamFriends))
3775    );
3776}
3777#[repr(C, packed(4))]
3778#[derive(Debug, Copy, Clone)]
3779pub struct PersonaStateChange_t {
3780    pub m_ulSteamID: uint64,
3781    pub m_nChangeFlags: ::std::os::raw::c_int,
3782}
3783pub const PersonaStateChange_t_k_iCallback: PersonaStateChange_t__bindgen_ty_1 =
3784    PersonaStateChange_t__bindgen_ty_1::k_iCallback;
3785#[repr(u32)]
3786#[non_exhaustive]
3787#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3788pub enum PersonaStateChange_t__bindgen_ty_1 {
3789    k_iCallback = 304,
3790}
3791#[test]
3792fn bindgen_test_layout_PersonaStateChange_t() {
3793    const UNINIT: ::std::mem::MaybeUninit<PersonaStateChange_t> = ::std::mem::MaybeUninit::uninit();
3794    let ptr = UNINIT.as_ptr();
3795    assert_eq!(
3796        ::std::mem::size_of::<PersonaStateChange_t>(),
3797        12usize,
3798        concat!("Size of: ", stringify!(PersonaStateChange_t))
3799    );
3800    assert_eq!(
3801        ::std::mem::align_of::<PersonaStateChange_t>(),
3802        4usize,
3803        concat!("Alignment of ", stringify!(PersonaStateChange_t))
3804    );
3805    assert_eq!(
3806        unsafe { ::std::ptr::addr_of!((*ptr).m_ulSteamID) as usize - ptr as usize },
3807        0usize,
3808        concat!(
3809            "Offset of field: ",
3810            stringify!(PersonaStateChange_t),
3811            "::",
3812            stringify!(m_ulSteamID)
3813        )
3814    );
3815    assert_eq!(
3816        unsafe { ::std::ptr::addr_of!((*ptr).m_nChangeFlags) as usize - ptr as usize },
3817        8usize,
3818        concat!(
3819            "Offset of field: ",
3820            stringify!(PersonaStateChange_t),
3821            "::",
3822            stringify!(m_nChangeFlags)
3823        )
3824    );
3825}
3826#[repr(u32)]
3827#[non_exhaustive]
3828#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3829pub enum EPersonaChange {
3830    k_EPersonaChangeName = 1,
3831    k_EPersonaChangeStatus = 2,
3832    k_EPersonaChangeComeOnline = 4,
3833    k_EPersonaChangeGoneOffline = 8,
3834    k_EPersonaChangeGamePlayed = 16,
3835    k_EPersonaChangeGameServer = 32,
3836    k_EPersonaChangeAvatar = 64,
3837    k_EPersonaChangeJoinedSource = 128,
3838    k_EPersonaChangeLeftSource = 256,
3839    k_EPersonaChangeRelationshipChanged = 512,
3840    k_EPersonaChangeNameFirstSet = 1024,
3841    k_EPersonaChangeBroadcast = 2048,
3842    k_EPersonaChangeNickname = 4096,
3843    k_EPersonaChangeSteamLevel = 8192,
3844    k_EPersonaChangeRichPresence = 16384,
3845}
3846#[repr(C)]
3847#[derive(Debug, Copy, Clone)]
3848pub struct GameOverlayActivated_t {
3849    pub m_bActive: uint8,
3850    pub m_bUserInitiated: bool,
3851    pub m_nAppID: AppId_t,
3852    pub m_dwOverlayPID: uint32,
3853}
3854pub const GameOverlayActivated_t_k_iCallback: GameOverlayActivated_t__bindgen_ty_1 =
3855    GameOverlayActivated_t__bindgen_ty_1::k_iCallback;
3856#[repr(u32)]
3857#[non_exhaustive]
3858#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3859pub enum GameOverlayActivated_t__bindgen_ty_1 {
3860    k_iCallback = 331,
3861}
3862#[test]
3863fn bindgen_test_layout_GameOverlayActivated_t() {
3864    const UNINIT: ::std::mem::MaybeUninit<GameOverlayActivated_t> =
3865        ::std::mem::MaybeUninit::uninit();
3866    let ptr = UNINIT.as_ptr();
3867    assert_eq!(
3868        ::std::mem::size_of::<GameOverlayActivated_t>(),
3869        12usize,
3870        concat!("Size of: ", stringify!(GameOverlayActivated_t))
3871    );
3872    assert_eq!(
3873        ::std::mem::align_of::<GameOverlayActivated_t>(),
3874        4usize,
3875        concat!("Alignment of ", stringify!(GameOverlayActivated_t))
3876    );
3877    assert_eq!(
3878        unsafe { ::std::ptr::addr_of!((*ptr).m_bActive) as usize - ptr as usize },
3879        0usize,
3880        concat!(
3881            "Offset of field: ",
3882            stringify!(GameOverlayActivated_t),
3883            "::",
3884            stringify!(m_bActive)
3885        )
3886    );
3887    assert_eq!(
3888        unsafe { ::std::ptr::addr_of!((*ptr).m_bUserInitiated) as usize - ptr as usize },
3889        1usize,
3890        concat!(
3891            "Offset of field: ",
3892            stringify!(GameOverlayActivated_t),
3893            "::",
3894            stringify!(m_bUserInitiated)
3895        )
3896    );
3897    assert_eq!(
3898        unsafe { ::std::ptr::addr_of!((*ptr).m_nAppID) as usize - ptr as usize },
3899        4usize,
3900        concat!(
3901            "Offset of field: ",
3902            stringify!(GameOverlayActivated_t),
3903            "::",
3904            stringify!(m_nAppID)
3905        )
3906    );
3907    assert_eq!(
3908        unsafe { ::std::ptr::addr_of!((*ptr).m_dwOverlayPID) as usize - ptr as usize },
3909        8usize,
3910        concat!(
3911            "Offset of field: ",
3912            stringify!(GameOverlayActivated_t),
3913            "::",
3914            stringify!(m_dwOverlayPID)
3915        )
3916    );
3917}
3918#[repr(C)]
3919#[derive(Debug, Copy, Clone)]
3920pub struct GameServerChangeRequested_t {
3921    pub m_rgchServer: [::std::os::raw::c_char; 64usize],
3922    pub m_rgchPassword: [::std::os::raw::c_char; 64usize],
3923}
3924pub const GameServerChangeRequested_t_k_iCallback: GameServerChangeRequested_t__bindgen_ty_1 =
3925    GameServerChangeRequested_t__bindgen_ty_1::k_iCallback;
3926#[repr(u32)]
3927#[non_exhaustive]
3928#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3929pub enum GameServerChangeRequested_t__bindgen_ty_1 {
3930    k_iCallback = 332,
3931}
3932#[test]
3933fn bindgen_test_layout_GameServerChangeRequested_t() {
3934    const UNINIT: ::std::mem::MaybeUninit<GameServerChangeRequested_t> =
3935        ::std::mem::MaybeUninit::uninit();
3936    let ptr = UNINIT.as_ptr();
3937    assert_eq!(
3938        ::std::mem::size_of::<GameServerChangeRequested_t>(),
3939        128usize,
3940        concat!("Size of: ", stringify!(GameServerChangeRequested_t))
3941    );
3942    assert_eq!(
3943        ::std::mem::align_of::<GameServerChangeRequested_t>(),
3944        1usize,
3945        concat!("Alignment of ", stringify!(GameServerChangeRequested_t))
3946    );
3947    assert_eq!(
3948        unsafe { ::std::ptr::addr_of!((*ptr).m_rgchServer) as usize - ptr as usize },
3949        0usize,
3950        concat!(
3951            "Offset of field: ",
3952            stringify!(GameServerChangeRequested_t),
3953            "::",
3954            stringify!(m_rgchServer)
3955        )
3956    );
3957    assert_eq!(
3958        unsafe { ::std::ptr::addr_of!((*ptr).m_rgchPassword) as usize - ptr as usize },
3959        64usize,
3960        concat!(
3961            "Offset of field: ",
3962            stringify!(GameServerChangeRequested_t),
3963            "::",
3964            stringify!(m_rgchPassword)
3965        )
3966    );
3967}
3968#[repr(C)]
3969#[derive(Copy, Clone)]
3970pub struct GameLobbyJoinRequested_t {
3971    pub m_steamIDLobby: CSteamID,
3972    pub m_steamIDFriend: CSteamID,
3973}
3974pub const GameLobbyJoinRequested_t_k_iCallback: GameLobbyJoinRequested_t__bindgen_ty_1 =
3975    GameLobbyJoinRequested_t__bindgen_ty_1::k_iCallback;
3976#[repr(u32)]
3977#[non_exhaustive]
3978#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3979pub enum GameLobbyJoinRequested_t__bindgen_ty_1 {
3980    k_iCallback = 333,
3981}
3982#[test]
3983fn bindgen_test_layout_GameLobbyJoinRequested_t() {
3984    const UNINIT: ::std::mem::MaybeUninit<GameLobbyJoinRequested_t> =
3985        ::std::mem::MaybeUninit::uninit();
3986    let ptr = UNINIT.as_ptr();
3987    assert_eq!(
3988        ::std::mem::size_of::<GameLobbyJoinRequested_t>(),
3989        16usize,
3990        concat!("Size of: ", stringify!(GameLobbyJoinRequested_t))
3991    );
3992    assert_eq!(
3993        ::std::mem::align_of::<GameLobbyJoinRequested_t>(),
3994        1usize,
3995        concat!("Alignment of ", stringify!(GameLobbyJoinRequested_t))
3996    );
3997    assert_eq!(
3998        unsafe { ::std::ptr::addr_of!((*ptr).m_steamIDLobby) as usize - ptr as usize },
3999        0usize,
4000        concat!(
4001            "Offset of field: ",
4002            stringify!(GameLobbyJoinRequested_t),
4003            "::",
4004            stringify!(m_steamIDLobby)
4005        )
4006    );
4007    assert_eq!(
4008        unsafe { ::std::ptr::addr_of!((*ptr).m_steamIDFriend) as usize - ptr as usize },
4009        8usize,
4010        concat!(
4011            "Offset of field: ",
4012            stringify!(GameLobbyJoinRequested_t),
4013            "::",
4014            stringify!(m_steamIDFriend)
4015        )
4016    );
4017}
4018#[repr(C)]
4019#[derive(Copy, Clone)]
4020pub struct AvatarImageLoaded_t {
4021    pub m_steamID: CSteamID,
4022    pub m_iImage: ::std::os::raw::c_int,
4023    pub m_iWide: ::std::os::raw::c_int,
4024    pub m_iTall: ::std::os::raw::c_int,
4025}
4026pub const AvatarImageLoaded_t_k_iCallback: AvatarImageLoaded_t__bindgen_ty_1 =
4027    AvatarImageLoaded_t__bindgen_ty_1::k_iCallback;
4028#[repr(u32)]
4029#[non_exhaustive]
4030#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4031pub enum AvatarImageLoaded_t__bindgen_ty_1 {
4032    k_iCallback = 334,
4033}
4034#[test]
4035fn bindgen_test_layout_AvatarImageLoaded_t() {
4036    const UNINIT: ::std::mem::MaybeUninit<AvatarImageLoaded_t> = ::std::mem::MaybeUninit::uninit();
4037    let ptr = UNINIT.as_ptr();
4038    assert_eq!(
4039        ::std::mem::size_of::<AvatarImageLoaded_t>(),
4040        20usize,
4041        concat!("Size of: ", stringify!(AvatarImageLoaded_t))
4042    );
4043    assert_eq!(
4044        ::std::mem::align_of::<AvatarImageLoaded_t>(),
4045        4usize,
4046        concat!("Alignment of ", stringify!(AvatarImageLoaded_t))
4047    );
4048    assert_eq!(
4049        unsafe { ::std::ptr::addr_of!((*ptr).m_steamID) as usize - ptr as usize },
4050        0usize,
4051        concat!(
4052            "Offset of field: ",
4053            stringify!(AvatarImageLoaded_t),
4054            "::",
4055            stringify!(m_steamID)
4056        )
4057    );
4058    assert_eq!(
4059        unsafe { ::std::ptr::addr_of!((*ptr).m_iImage) as usize - ptr as usize },
4060        8usize,
4061        concat!(
4062            "Offset of field: ",
4063            stringify!(AvatarImageLoaded_t),
4064            "::",
4065            stringify!(m_iImage)
4066        )
4067    );
4068    assert_eq!(
4069        unsafe { ::std::ptr::addr_of!((*ptr).m_iWide) as usize - ptr as usize },
4070        12usize,
4071        concat!(
4072            "Offset of field: ",
4073            stringify!(AvatarImageLoaded_t),
4074            "::",
4075            stringify!(m_iWide)
4076        )
4077    );
4078    assert_eq!(
4079        unsafe { ::std::ptr::addr_of!((*ptr).m_iTall) as usize - ptr as usize },
4080        16usize,
4081        concat!(
4082            "Offset of field: ",
4083            stringify!(AvatarImageLoaded_t),
4084            "::",
4085            stringify!(m_iTall)
4086        )
4087    );
4088}
4089#[repr(C)]
4090#[derive(Copy, Clone)]
4091pub struct ClanOfficerListResponse_t {
4092    pub m_steamIDClan: CSteamID,
4093    pub m_cOfficers: ::std::os::raw::c_int,
4094    pub m_bSuccess: uint8,
4095}
4096pub const ClanOfficerListResponse_t_k_iCallback: ClanOfficerListResponse_t__bindgen_ty_1 =
4097    ClanOfficerListResponse_t__bindgen_ty_1::k_iCallback;
4098#[repr(u32)]
4099#[non_exhaustive]
4100#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4101pub enum ClanOfficerListResponse_t__bindgen_ty_1 {
4102    k_iCallback = 335,
4103}
4104#[test]
4105fn bindgen_test_layout_ClanOfficerListResponse_t() {
4106    const UNINIT: ::std::mem::MaybeUninit<ClanOfficerListResponse_t> =
4107        ::std::mem::MaybeUninit::uninit();
4108    let ptr = UNINIT.as_ptr();
4109    assert_eq!(
4110        ::std::mem::size_of::<ClanOfficerListResponse_t>(),
4111        16usize,
4112        concat!("Size of: ", stringify!(ClanOfficerListResponse_t))
4113    );
4114    assert_eq!(
4115        ::std::mem::align_of::<ClanOfficerListResponse_t>(),
4116        4usize,
4117        concat!("Alignment of ", stringify!(ClanOfficerListResponse_t))
4118    );
4119    assert_eq!(
4120        unsafe { ::std::ptr::addr_of!((*ptr).m_steamIDClan) as usize - ptr as usize },
4121        0usize,
4122        concat!(
4123            "Offset of field: ",
4124            stringify!(ClanOfficerListResponse_t),
4125            "::",
4126            stringify!(m_steamIDClan)
4127        )
4128    );
4129    assert_eq!(
4130        unsafe { ::std::ptr::addr_of!((*ptr).m_cOfficers) as usize - ptr as usize },
4131        8usize,
4132        concat!(
4133            "Offset of field: ",
4134            stringify!(ClanOfficerListResponse_t),
4135            "::",
4136            stringify!(m_cOfficers)
4137        )
4138    );
4139    assert_eq!(
4140        unsafe { ::std::ptr::addr_of!((*ptr).m_bSuccess) as usize - ptr as usize },
4141        12usize,
4142        concat!(
4143            "Offset of field: ",
4144            stringify!(ClanOfficerListResponse_t),
4145            "::",
4146            stringify!(m_bSuccess)
4147        )
4148    );
4149}
4150#[repr(C)]
4151#[derive(Copy, Clone)]
4152pub struct FriendRichPresenceUpdate_t {
4153    pub m_steamIDFriend: CSteamID,
4154    pub m_nAppID: AppId_t,
4155}
4156pub const FriendRichPresenceUpdate_t_k_iCallback: FriendRichPresenceUpdate_t__bindgen_ty_1 =
4157    FriendRichPresenceUpdate_t__bindgen_ty_1::k_iCallback;
4158#[repr(u32)]
4159#[non_exhaustive]
4160#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4161pub enum FriendRichPresenceUpdate_t__bindgen_ty_1 {
4162    k_iCallback = 336,
4163}
4164#[test]
4165fn bindgen_test_layout_FriendRichPresenceUpdate_t() {
4166    const UNINIT: ::std::mem::MaybeUninit<FriendRichPresenceUpdate_t> =
4167        ::std::mem::MaybeUninit::uninit();
4168    let ptr = UNINIT.as_ptr();
4169    assert_eq!(
4170        ::std::mem::size_of::<FriendRichPresenceUpdate_t>(),
4171        12usize,
4172        concat!("Size of: ", stringify!(FriendRichPresenceUpdate_t))
4173    );
4174    assert_eq!(
4175        ::std::mem::align_of::<FriendRichPresenceUpdate_t>(),
4176        4usize,
4177        concat!("Alignment of ", stringify!(FriendRichPresenceUpdate_t))
4178    );
4179    assert_eq!(
4180        unsafe { ::std::ptr::addr_of!((*ptr).m_steamIDFriend) as usize - ptr as usize },
4181        0usize,
4182        concat!(
4183            "Offset of field: ",
4184            stringify!(FriendRichPresenceUpdate_t),
4185            "::",
4186            stringify!(m_steamIDFriend)
4187        )
4188    );
4189    assert_eq!(
4190        unsafe { ::std::ptr::addr_of!((*ptr).m_nAppID) as usize - ptr as usize },
4191        8usize,
4192        concat!(
4193            "Offset of field: ",
4194            stringify!(FriendRichPresenceUpdate_t),
4195            "::",
4196            stringify!(m_nAppID)
4197        )
4198    );
4199}
4200#[repr(C)]
4201#[derive(Copy, Clone)]
4202pub struct GameRichPresenceJoinRequested_t {
4203    pub m_steamIDFriend: CSteamID,
4204    pub m_rgchConnect: [::std::os::raw::c_char; 256usize],
4205}
4206pub const GameRichPresenceJoinRequested_t_k_iCallback:
4207    GameRichPresenceJoinRequested_t__bindgen_ty_1 =
4208    GameRichPresenceJoinRequested_t__bindgen_ty_1::k_iCallback;
4209#[repr(u32)]
4210#[non_exhaustive]
4211#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4212pub enum GameRichPresenceJoinRequested_t__bindgen_ty_1 {
4213    k_iCallback = 337,
4214}
4215#[test]
4216fn bindgen_test_layout_GameRichPresenceJoinRequested_t() {
4217    const UNINIT: ::std::mem::MaybeUninit<GameRichPresenceJoinRequested_t> =
4218        ::std::mem::MaybeUninit::uninit();
4219    let ptr = UNINIT.as_ptr();
4220    assert_eq!(
4221        ::std::mem::size_of::<GameRichPresenceJoinRequested_t>(),
4222        264usize,
4223        concat!("Size of: ", stringify!(GameRichPresenceJoinRequested_t))
4224    );
4225    assert_eq!(
4226        ::std::mem::align_of::<GameRichPresenceJoinRequested_t>(),
4227        1usize,
4228        concat!("Alignment of ", stringify!(GameRichPresenceJoinRequested_t))
4229    );
4230    assert_eq!(
4231        unsafe { ::std::ptr::addr_of!((*ptr).m_steamIDFriend) as usize - ptr as usize },
4232        0usize,
4233        concat!(
4234            "Offset of field: ",
4235            stringify!(GameRichPresenceJoinRequested_t),
4236            "::",
4237            stringify!(m_steamIDFriend)
4238        )
4239    );
4240    assert_eq!(
4241        unsafe { ::std::ptr::addr_of!((*ptr).m_rgchConnect) as usize - ptr as usize },
4242        8usize,
4243        concat!(
4244            "Offset of field: ",
4245            stringify!(GameRichPresenceJoinRequested_t),
4246            "::",
4247            stringify!(m_rgchConnect)
4248        )
4249    );
4250}
4251#[repr(C)]
4252#[derive(Copy, Clone)]
4253pub struct GameConnectedClanChatMsg_t {
4254    pub m_steamIDClanChat: CSteamID,
4255    pub m_steamIDUser: CSteamID,
4256    pub m_iMessageID: ::std::os::raw::c_int,
4257}
4258pub const GameConnectedClanChatMsg_t_k_iCallback: GameConnectedClanChatMsg_t__bindgen_ty_1 =
4259    GameConnectedClanChatMsg_t__bindgen_ty_1::k_iCallback;
4260#[repr(u32)]
4261#[non_exhaustive]
4262#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4263pub enum GameConnectedClanChatMsg_t__bindgen_ty_1 {
4264    k_iCallback = 338,
4265}
4266#[test]
4267fn bindgen_test_layout_GameConnectedClanChatMsg_t() {
4268    const UNINIT: ::std::mem::MaybeUninit<GameConnectedClanChatMsg_t> =
4269        ::std::mem::MaybeUninit::uninit();
4270    let ptr = UNINIT.as_ptr();
4271    assert_eq!(
4272        ::std::mem::size_of::<GameConnectedClanChatMsg_t>(),
4273        20usize,
4274        concat!("Size of: ", stringify!(GameConnectedClanChatMsg_t))
4275    );
4276    assert_eq!(
4277        ::std::mem::align_of::<GameConnectedClanChatMsg_t>(),
4278        4usize,
4279        concat!("Alignment of ", stringify!(GameConnectedClanChatMsg_t))
4280    );
4281    assert_eq!(
4282        unsafe { ::std::ptr::addr_of!((*ptr).m_steamIDClanChat) as usize - ptr as usize },
4283        0usize,
4284        concat!(
4285            "Offset of field: ",
4286            stringify!(GameConnectedClanChatMsg_t),
4287            "::",
4288            stringify!(m_steamIDClanChat)
4289        )
4290    );
4291    assert_eq!(
4292        unsafe { ::std::ptr::addr_of!((*ptr).m_steamIDUser) as usize - ptr as usize },
4293        8usize,
4294        concat!(
4295            "Offset of field: ",
4296            stringify!(GameConnectedClanChatMsg_t),
4297            "::",
4298            stringify!(m_steamIDUser)
4299        )
4300    );
4301    assert_eq!(
4302        unsafe { ::std::ptr::addr_of!((*ptr).m_iMessageID) as usize - ptr as usize },
4303        16usize,
4304        concat!(
4305            "Offset of field: ",
4306            stringify!(GameConnectedClanChatMsg_t),
4307            "::",
4308            stringify!(m_iMessageID)
4309        )
4310    );
4311}
4312#[repr(C)]
4313#[derive(Copy, Clone)]
4314pub struct GameConnectedChatJoin_t {
4315    pub m_steamIDClanChat: CSteamID,
4316    pub m_steamIDUser: CSteamID,
4317}
4318pub const GameConnectedChatJoin_t_k_iCallback: GameConnectedChatJoin_t__bindgen_ty_1 =
4319    GameConnectedChatJoin_t__bindgen_ty_1::k_iCallback;
4320#[repr(u32)]
4321#[non_exhaustive]
4322#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4323pub enum GameConnectedChatJoin_t__bindgen_ty_1 {
4324    k_iCallback = 339,
4325}
4326#[test]
4327fn bindgen_test_layout_GameConnectedChatJoin_t() {
4328    const UNINIT: ::std::mem::MaybeUninit<GameConnectedChatJoin_t> =
4329        ::std::mem::MaybeUninit::uninit();
4330    let ptr = UNINIT.as_ptr();
4331    assert_eq!(
4332        ::std::mem::size_of::<GameConnectedChatJoin_t>(),
4333        16usize,
4334        concat!("Size of: ", stringify!(GameConnectedChatJoin_t))
4335    );
4336    assert_eq!(
4337        ::std::mem::align_of::<GameConnectedChatJoin_t>(),
4338        1usize,
4339        concat!("Alignment of ", stringify!(GameConnectedChatJoin_t))
4340    );
4341    assert_eq!(
4342        unsafe { ::std::ptr::addr_of!((*ptr).m_steamIDClanChat) as usize - ptr as usize },
4343        0usize,
4344        concat!(
4345            "Offset of field: ",
4346            stringify!(GameConnectedChatJoin_t),
4347            "::",
4348            stringify!(m_steamIDClanChat)
4349        )
4350    );
4351    assert_eq!(
4352        unsafe { ::std::ptr::addr_of!((*ptr).m_steamIDUser) as usize - ptr as usize },
4353        8usize,
4354        concat!(
4355            "Offset of field: ",
4356            stringify!(GameConnectedChatJoin_t),
4357            "::",
4358            stringify!(m_steamIDUser)
4359        )
4360    );
4361}
4362#[repr(C)]
4363#[derive(Copy, Clone)]
4364pub struct GameConnectedChatLeave_t {
4365    pub m_steamIDClanChat: CSteamID,
4366    pub m_steamIDUser: CSteamID,
4367    pub m_bKicked: bool,
4368    pub m_bDropped: bool,
4369}
4370pub const GameConnectedChatLeave_t_k_iCallback: GameConnectedChatLeave_t__bindgen_ty_1 =
4371    GameConnectedChatLeave_t__bindgen_ty_1::k_iCallback;
4372#[repr(u32)]
4373#[non_exhaustive]
4374#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4375pub enum GameConnectedChatLeave_t__bindgen_ty_1 {
4376    k_iCallback = 340,
4377}
4378#[test]
4379fn bindgen_test_layout_GameConnectedChatLeave_t() {
4380    const UNINIT: ::std::mem::MaybeUninit<GameConnectedChatLeave_t> =
4381        ::std::mem::MaybeUninit::uninit();
4382    let ptr = UNINIT.as_ptr();
4383    assert_eq!(
4384        ::std::mem::size_of::<GameConnectedChatLeave_t>(),
4385        18usize,
4386        concat!("Size of: ", stringify!(GameConnectedChatLeave_t))
4387    );
4388    assert_eq!(
4389        ::std::mem::align_of::<GameConnectedChatLeave_t>(),
4390        1usize,
4391        concat!("Alignment of ", stringify!(GameConnectedChatLeave_t))
4392    );
4393    assert_eq!(
4394        unsafe { ::std::ptr::addr_of!((*ptr).m_steamIDClanChat) as usize - ptr as usize },
4395        0usize,
4396        concat!(
4397            "Offset of field: ",
4398            stringify!(GameConnectedChatLeave_t),
4399            "::",
4400            stringify!(m_steamIDClanChat)
4401        )
4402    );
4403    assert_eq!(
4404        unsafe { ::std::ptr::addr_of!((*ptr).m_steamIDUser) as usize - ptr as usize },
4405        8usize,
4406        concat!(
4407            "Offset of field: ",
4408            stringify!(GameConnectedChatLeave_t),
4409            "::",
4410            stringify!(m_steamIDUser)
4411        )
4412    );
4413    assert_eq!(
4414        unsafe { ::std::ptr::addr_of!((*ptr).m_bKicked) as usize - ptr as usize },
4415        16usize,
4416        concat!(
4417            "Offset of field: ",
4418            stringify!(GameConnectedChatLeave_t),
4419            "::",
4420            stringify!(m_bKicked)
4421        )
4422    );
4423    assert_eq!(
4424        unsafe { ::std::ptr::addr_of!((*ptr).m_bDropped) as usize - ptr as usize },
4425        17usize,
4426        concat!(
4427            "Offset of field: ",
4428            stringify!(GameConnectedChatLeave_t),
4429            "::",
4430            stringify!(m_bDropped)
4431        )
4432    );
4433}
4434#[repr(C)]
4435#[derive(Debug, Copy, Clone)]
4436pub struct DownloadClanActivityCountsResult_t {
4437    pub m_bSuccess: bool,
4438}
4439pub const DownloadClanActivityCountsResult_t_k_iCallback:
4440    DownloadClanActivityCountsResult_t__bindgen_ty_1 =
4441    DownloadClanActivityCountsResult_t__bindgen_ty_1::k_iCallback;
4442#[repr(u32)]
4443#[non_exhaustive]
4444#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4445pub enum DownloadClanActivityCountsResult_t__bindgen_ty_1 {
4446    k_iCallback = 341,
4447}
4448#[test]
4449fn bindgen_test_layout_DownloadClanActivityCountsResult_t() {
4450    const UNINIT: ::std::mem::MaybeUninit<DownloadClanActivityCountsResult_t> =
4451        ::std::mem::MaybeUninit::uninit();
4452    let ptr = UNINIT.as_ptr();
4453    assert_eq!(
4454        ::std::mem::size_of::<DownloadClanActivityCountsResult_t>(),
4455        1usize,
4456        concat!("Size of: ", stringify!(DownloadClanActivityCountsResult_t))
4457    );
4458    assert_eq!(
4459        ::std::mem::align_of::<DownloadClanActivityCountsResult_t>(),
4460        1usize,
4461        concat!(
4462            "Alignment of ",
4463            stringify!(DownloadClanActivityCountsResult_t)
4464        )
4465    );
4466    assert_eq!(
4467        unsafe { ::std::ptr::addr_of!((*ptr).m_bSuccess) as usize - ptr as usize },
4468        0usize,
4469        concat!(
4470            "Offset of field: ",
4471            stringify!(DownloadClanActivityCountsResult_t),
4472            "::",
4473            stringify!(m_bSuccess)
4474        )
4475    );
4476}
4477#[repr(C)]
4478#[derive(Copy, Clone)]
4479pub struct JoinClanChatRoomCompletionResult_t {
4480    pub m_steamIDClanChat: CSteamID,
4481    pub m_eChatRoomEnterResponse: EChatRoomEnterResponse,
4482}
4483pub const JoinClanChatRoomCompletionResult_t_k_iCallback:
4484    JoinClanChatRoomCompletionResult_t__bindgen_ty_1 =
4485    JoinClanChatRoomCompletionResult_t__bindgen_ty_1::k_iCallback;
4486#[repr(u32)]
4487#[non_exhaustive]
4488#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4489pub enum JoinClanChatRoomCompletionResult_t__bindgen_ty_1 {
4490    k_iCallback = 342,
4491}
4492#[test]
4493fn bindgen_test_layout_JoinClanChatRoomCompletionResult_t() {
4494    const UNINIT: ::std::mem::MaybeUninit<JoinClanChatRoomCompletionResult_t> =
4495        ::std::mem::MaybeUninit::uninit();
4496    let ptr = UNINIT.as_ptr();
4497    assert_eq!(
4498        ::std::mem::size_of::<JoinClanChatRoomCompletionResult_t>(),
4499        12usize,
4500        concat!("Size of: ", stringify!(JoinClanChatRoomCompletionResult_t))
4501    );
4502    assert_eq!(
4503        ::std::mem::align_of::<JoinClanChatRoomCompletionResult_t>(),
4504        4usize,
4505        concat!(
4506            "Alignment of ",
4507            stringify!(JoinClanChatRoomCompletionResult_t)
4508        )
4509    );
4510    assert_eq!(
4511        unsafe { ::std::ptr::addr_of!((*ptr).m_steamIDClanChat) as usize - ptr as usize },
4512        0usize,
4513        concat!(
4514            "Offset of field: ",
4515            stringify!(JoinClanChatRoomCompletionResult_t),
4516            "::",
4517            stringify!(m_steamIDClanChat)
4518        )
4519    );
4520    assert_eq!(
4521        unsafe { ::std::ptr::addr_of!((*ptr).m_eChatRoomEnterResponse) as usize - ptr as usize },
4522        8usize,
4523        concat!(
4524            "Offset of field: ",
4525            stringify!(JoinClanChatRoomCompletionResult_t),
4526            "::",
4527            stringify!(m_eChatRoomEnterResponse)
4528        )
4529    );
4530}
4531#[repr(C)]
4532#[derive(Copy, Clone)]
4533pub struct GameConnectedFriendChatMsg_t {
4534    pub m_steamIDUser: CSteamID,
4535    pub m_iMessageID: ::std::os::raw::c_int,
4536}
4537pub const GameConnectedFriendChatMsg_t_k_iCallback: GameConnectedFriendChatMsg_t__bindgen_ty_1 =
4538    GameConnectedFriendChatMsg_t__bindgen_ty_1::k_iCallback;
4539#[repr(u32)]
4540#[non_exhaustive]
4541#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4542pub enum GameConnectedFriendChatMsg_t__bindgen_ty_1 {
4543    k_iCallback = 343,
4544}
4545#[test]
4546fn bindgen_test_layout_GameConnectedFriendChatMsg_t() {
4547    const UNINIT: ::std::mem::MaybeUninit<GameConnectedFriendChatMsg_t> =
4548        ::std::mem::MaybeUninit::uninit();
4549    let ptr = UNINIT.as_ptr();
4550    assert_eq!(
4551        ::std::mem::size_of::<GameConnectedFriendChatMsg_t>(),
4552        12usize,
4553        concat!("Size of: ", stringify!(GameConnectedFriendChatMsg_t))
4554    );
4555    assert_eq!(
4556        ::std::mem::align_of::<GameConnectedFriendChatMsg_t>(),
4557        4usize,
4558        concat!("Alignment of ", stringify!(GameConnectedFriendChatMsg_t))
4559    );
4560    assert_eq!(
4561        unsafe { ::std::ptr::addr_of!((*ptr).m_steamIDUser) as usize - ptr as usize },
4562        0usize,
4563        concat!(
4564            "Offset of field: ",
4565            stringify!(GameConnectedFriendChatMsg_t),
4566            "::",
4567            stringify!(m_steamIDUser)
4568        )
4569    );
4570    assert_eq!(
4571        unsafe { ::std::ptr::addr_of!((*ptr).m_iMessageID) as usize - ptr as usize },
4572        8usize,
4573        concat!(
4574            "Offset of field: ",
4575            stringify!(GameConnectedFriendChatMsg_t),
4576            "::",
4577            stringify!(m_iMessageID)
4578        )
4579    );
4580}
4581#[repr(C)]
4582#[derive(Copy, Clone)]
4583pub struct FriendsGetFollowerCount_t {
4584    pub m_eResult: EResult,
4585    pub m_steamID: CSteamID,
4586    pub m_nCount: ::std::os::raw::c_int,
4587}
4588pub const FriendsGetFollowerCount_t_k_iCallback: FriendsGetFollowerCount_t__bindgen_ty_1 =
4589    FriendsGetFollowerCount_t__bindgen_ty_1::k_iCallback;
4590#[repr(u32)]
4591#[non_exhaustive]
4592#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4593pub enum FriendsGetFollowerCount_t__bindgen_ty_1 {
4594    k_iCallback = 344,
4595}
4596#[test]
4597fn bindgen_test_layout_FriendsGetFollowerCount_t() {
4598    const UNINIT: ::std::mem::MaybeUninit<FriendsGetFollowerCount_t> =
4599        ::std::mem::MaybeUninit::uninit();
4600    let ptr = UNINIT.as_ptr();
4601    assert_eq!(
4602        ::std::mem::size_of::<FriendsGetFollowerCount_t>(),
4603        16usize,
4604        concat!("Size of: ", stringify!(FriendsGetFollowerCount_t))
4605    );
4606    assert_eq!(
4607        ::std::mem::align_of::<FriendsGetFollowerCount_t>(),
4608        4usize,
4609        concat!("Alignment of ", stringify!(FriendsGetFollowerCount_t))
4610    );
4611    assert_eq!(
4612        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
4613        0usize,
4614        concat!(
4615            "Offset of field: ",
4616            stringify!(FriendsGetFollowerCount_t),
4617            "::",
4618            stringify!(m_eResult)
4619        )
4620    );
4621    assert_eq!(
4622        unsafe { ::std::ptr::addr_of!((*ptr).m_steamID) as usize - ptr as usize },
4623        4usize,
4624        concat!(
4625            "Offset of field: ",
4626            stringify!(FriendsGetFollowerCount_t),
4627            "::",
4628            stringify!(m_steamID)
4629        )
4630    );
4631    assert_eq!(
4632        unsafe { ::std::ptr::addr_of!((*ptr).m_nCount) as usize - ptr as usize },
4633        12usize,
4634        concat!(
4635            "Offset of field: ",
4636            stringify!(FriendsGetFollowerCount_t),
4637            "::",
4638            stringify!(m_nCount)
4639        )
4640    );
4641}
4642#[repr(C)]
4643#[derive(Copy, Clone)]
4644pub struct FriendsIsFollowing_t {
4645    pub m_eResult: EResult,
4646    pub m_steamID: CSteamID,
4647    pub m_bIsFollowing: bool,
4648}
4649pub const FriendsIsFollowing_t_k_iCallback: FriendsIsFollowing_t__bindgen_ty_1 =
4650    FriendsIsFollowing_t__bindgen_ty_1::k_iCallback;
4651#[repr(u32)]
4652#[non_exhaustive]
4653#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4654pub enum FriendsIsFollowing_t__bindgen_ty_1 {
4655    k_iCallback = 345,
4656}
4657#[test]
4658fn bindgen_test_layout_FriendsIsFollowing_t() {
4659    const UNINIT: ::std::mem::MaybeUninit<FriendsIsFollowing_t> = ::std::mem::MaybeUninit::uninit();
4660    let ptr = UNINIT.as_ptr();
4661    assert_eq!(
4662        ::std::mem::size_of::<FriendsIsFollowing_t>(),
4663        16usize,
4664        concat!("Size of: ", stringify!(FriendsIsFollowing_t))
4665    );
4666    assert_eq!(
4667        ::std::mem::align_of::<FriendsIsFollowing_t>(),
4668        4usize,
4669        concat!("Alignment of ", stringify!(FriendsIsFollowing_t))
4670    );
4671    assert_eq!(
4672        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
4673        0usize,
4674        concat!(
4675            "Offset of field: ",
4676            stringify!(FriendsIsFollowing_t),
4677            "::",
4678            stringify!(m_eResult)
4679        )
4680    );
4681    assert_eq!(
4682        unsafe { ::std::ptr::addr_of!((*ptr).m_steamID) as usize - ptr as usize },
4683        4usize,
4684        concat!(
4685            "Offset of field: ",
4686            stringify!(FriendsIsFollowing_t),
4687            "::",
4688            stringify!(m_steamID)
4689        )
4690    );
4691    assert_eq!(
4692        unsafe { ::std::ptr::addr_of!((*ptr).m_bIsFollowing) as usize - ptr as usize },
4693        12usize,
4694        concat!(
4695            "Offset of field: ",
4696            stringify!(FriendsIsFollowing_t),
4697            "::",
4698            stringify!(m_bIsFollowing)
4699        )
4700    );
4701}
4702#[repr(C)]
4703#[derive(Copy, Clone)]
4704pub struct FriendsEnumerateFollowingList_t {
4705    pub m_eResult: EResult,
4706    pub m_rgSteamID: [CSteamID; 50usize],
4707    pub m_nResultsReturned: int32,
4708    pub m_nTotalResultCount: int32,
4709}
4710pub const FriendsEnumerateFollowingList_t_k_iCallback:
4711    FriendsEnumerateFollowingList_t__bindgen_ty_1 =
4712    FriendsEnumerateFollowingList_t__bindgen_ty_1::k_iCallback;
4713#[repr(u32)]
4714#[non_exhaustive]
4715#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4716pub enum FriendsEnumerateFollowingList_t__bindgen_ty_1 {
4717    k_iCallback = 346,
4718}
4719#[test]
4720fn bindgen_test_layout_FriendsEnumerateFollowingList_t() {
4721    const UNINIT: ::std::mem::MaybeUninit<FriendsEnumerateFollowingList_t> =
4722        ::std::mem::MaybeUninit::uninit();
4723    let ptr = UNINIT.as_ptr();
4724    assert_eq!(
4725        ::std::mem::size_of::<FriendsEnumerateFollowingList_t>(),
4726        412usize,
4727        concat!("Size of: ", stringify!(FriendsEnumerateFollowingList_t))
4728    );
4729    assert_eq!(
4730        ::std::mem::align_of::<FriendsEnumerateFollowingList_t>(),
4731        4usize,
4732        concat!("Alignment of ", stringify!(FriendsEnumerateFollowingList_t))
4733    );
4734    assert_eq!(
4735        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
4736        0usize,
4737        concat!(
4738            "Offset of field: ",
4739            stringify!(FriendsEnumerateFollowingList_t),
4740            "::",
4741            stringify!(m_eResult)
4742        )
4743    );
4744    assert_eq!(
4745        unsafe { ::std::ptr::addr_of!((*ptr).m_rgSteamID) as usize - ptr as usize },
4746        4usize,
4747        concat!(
4748            "Offset of field: ",
4749            stringify!(FriendsEnumerateFollowingList_t),
4750            "::",
4751            stringify!(m_rgSteamID)
4752        )
4753    );
4754    assert_eq!(
4755        unsafe { ::std::ptr::addr_of!((*ptr).m_nResultsReturned) as usize - ptr as usize },
4756        404usize,
4757        concat!(
4758            "Offset of field: ",
4759            stringify!(FriendsEnumerateFollowingList_t),
4760            "::",
4761            stringify!(m_nResultsReturned)
4762        )
4763    );
4764    assert_eq!(
4765        unsafe { ::std::ptr::addr_of!((*ptr).m_nTotalResultCount) as usize - ptr as usize },
4766        408usize,
4767        concat!(
4768            "Offset of field: ",
4769            stringify!(FriendsEnumerateFollowingList_t),
4770            "::",
4771            stringify!(m_nTotalResultCount)
4772        )
4773    );
4774}
4775#[repr(C)]
4776#[derive(Debug, Copy, Clone)]
4777pub struct SetPersonaNameResponse_t {
4778    pub m_bSuccess: bool,
4779    pub m_bLocalSuccess: bool,
4780    pub m_result: EResult,
4781}
4782pub const SetPersonaNameResponse_t_k_iCallback: SetPersonaNameResponse_t__bindgen_ty_1 =
4783    SetPersonaNameResponse_t__bindgen_ty_1::k_iCallback;
4784#[repr(u32)]
4785#[non_exhaustive]
4786#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4787pub enum SetPersonaNameResponse_t__bindgen_ty_1 {
4788    k_iCallback = 347,
4789}
4790#[test]
4791fn bindgen_test_layout_SetPersonaNameResponse_t() {
4792    const UNINIT: ::std::mem::MaybeUninit<SetPersonaNameResponse_t> =
4793        ::std::mem::MaybeUninit::uninit();
4794    let ptr = UNINIT.as_ptr();
4795    assert_eq!(
4796        ::std::mem::size_of::<SetPersonaNameResponse_t>(),
4797        8usize,
4798        concat!("Size of: ", stringify!(SetPersonaNameResponse_t))
4799    );
4800    assert_eq!(
4801        ::std::mem::align_of::<SetPersonaNameResponse_t>(),
4802        4usize,
4803        concat!("Alignment of ", stringify!(SetPersonaNameResponse_t))
4804    );
4805    assert_eq!(
4806        unsafe { ::std::ptr::addr_of!((*ptr).m_bSuccess) as usize - ptr as usize },
4807        0usize,
4808        concat!(
4809            "Offset of field: ",
4810            stringify!(SetPersonaNameResponse_t),
4811            "::",
4812            stringify!(m_bSuccess)
4813        )
4814    );
4815    assert_eq!(
4816        unsafe { ::std::ptr::addr_of!((*ptr).m_bLocalSuccess) as usize - ptr as usize },
4817        1usize,
4818        concat!(
4819            "Offset of field: ",
4820            stringify!(SetPersonaNameResponse_t),
4821            "::",
4822            stringify!(m_bLocalSuccess)
4823        )
4824    );
4825    assert_eq!(
4826        unsafe { ::std::ptr::addr_of!((*ptr).m_result) as usize - ptr as usize },
4827        4usize,
4828        concat!(
4829            "Offset of field: ",
4830            stringify!(SetPersonaNameResponse_t),
4831            "::",
4832            stringify!(m_result)
4833        )
4834    );
4835}
4836#[repr(C)]
4837#[derive(Debug, Copy, Clone)]
4838pub struct UnreadChatMessagesChanged_t {
4839    pub _address: u8,
4840}
4841pub const UnreadChatMessagesChanged_t_k_iCallback: UnreadChatMessagesChanged_t__bindgen_ty_1 =
4842    UnreadChatMessagesChanged_t__bindgen_ty_1::k_iCallback;
4843#[repr(u32)]
4844#[non_exhaustive]
4845#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4846pub enum UnreadChatMessagesChanged_t__bindgen_ty_1 {
4847    k_iCallback = 348,
4848}
4849#[test]
4850fn bindgen_test_layout_UnreadChatMessagesChanged_t() {
4851    assert_eq!(
4852        ::std::mem::size_of::<UnreadChatMessagesChanged_t>(),
4853        1usize,
4854        concat!("Size of: ", stringify!(UnreadChatMessagesChanged_t))
4855    );
4856    assert_eq!(
4857        ::std::mem::align_of::<UnreadChatMessagesChanged_t>(),
4858        1usize,
4859        concat!("Alignment of ", stringify!(UnreadChatMessagesChanged_t))
4860    );
4861}
4862#[repr(C)]
4863#[derive(Debug, Copy, Clone)]
4864pub struct OverlayBrowserProtocolNavigation_t {
4865    pub rgchURI: [::std::os::raw::c_char; 1024usize],
4866}
4867pub const OverlayBrowserProtocolNavigation_t_k_iCallback:
4868    OverlayBrowserProtocolNavigation_t__bindgen_ty_1 =
4869    OverlayBrowserProtocolNavigation_t__bindgen_ty_1::k_iCallback;
4870#[repr(u32)]
4871#[non_exhaustive]
4872#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4873pub enum OverlayBrowserProtocolNavigation_t__bindgen_ty_1 {
4874    k_iCallback = 349,
4875}
4876#[test]
4877fn bindgen_test_layout_OverlayBrowserProtocolNavigation_t() {
4878    const UNINIT: ::std::mem::MaybeUninit<OverlayBrowserProtocolNavigation_t> =
4879        ::std::mem::MaybeUninit::uninit();
4880    let ptr = UNINIT.as_ptr();
4881    assert_eq!(
4882        ::std::mem::size_of::<OverlayBrowserProtocolNavigation_t>(),
4883        1024usize,
4884        concat!("Size of: ", stringify!(OverlayBrowserProtocolNavigation_t))
4885    );
4886    assert_eq!(
4887        ::std::mem::align_of::<OverlayBrowserProtocolNavigation_t>(),
4888        1usize,
4889        concat!(
4890            "Alignment of ",
4891            stringify!(OverlayBrowserProtocolNavigation_t)
4892        )
4893    );
4894    assert_eq!(
4895        unsafe { ::std::ptr::addr_of!((*ptr).rgchURI) as usize - ptr as usize },
4896        0usize,
4897        concat!(
4898            "Offset of field: ",
4899            stringify!(OverlayBrowserProtocolNavigation_t),
4900            "::",
4901            stringify!(rgchURI)
4902        )
4903    );
4904}
4905#[repr(C)]
4906#[derive(Copy, Clone)]
4907pub struct EquippedProfileItemsChanged_t {
4908    pub m_steamID: CSteamID,
4909}
4910pub const EquippedProfileItemsChanged_t_k_iCallback: EquippedProfileItemsChanged_t__bindgen_ty_1 =
4911    EquippedProfileItemsChanged_t__bindgen_ty_1::k_iCallback;
4912#[repr(u32)]
4913#[non_exhaustive]
4914#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4915pub enum EquippedProfileItemsChanged_t__bindgen_ty_1 {
4916    k_iCallback = 350,
4917}
4918#[test]
4919fn bindgen_test_layout_EquippedProfileItemsChanged_t() {
4920    const UNINIT: ::std::mem::MaybeUninit<EquippedProfileItemsChanged_t> =
4921        ::std::mem::MaybeUninit::uninit();
4922    let ptr = UNINIT.as_ptr();
4923    assert_eq!(
4924        ::std::mem::size_of::<EquippedProfileItemsChanged_t>(),
4925        8usize,
4926        concat!("Size of: ", stringify!(EquippedProfileItemsChanged_t))
4927    );
4928    assert_eq!(
4929        ::std::mem::align_of::<EquippedProfileItemsChanged_t>(),
4930        1usize,
4931        concat!("Alignment of ", stringify!(EquippedProfileItemsChanged_t))
4932    );
4933    assert_eq!(
4934        unsafe { ::std::ptr::addr_of!((*ptr).m_steamID) as usize - ptr as usize },
4935        0usize,
4936        concat!(
4937            "Offset of field: ",
4938            stringify!(EquippedProfileItemsChanged_t),
4939            "::",
4940            stringify!(m_steamID)
4941        )
4942    );
4943}
4944#[repr(C)]
4945#[derive(Copy, Clone)]
4946pub struct EquippedProfileItems_t {
4947    pub m_eResult: EResult,
4948    pub m_steamID: CSteamID,
4949    pub m_bHasAnimatedAvatar: bool,
4950    pub m_bHasAvatarFrame: bool,
4951    pub m_bHasProfileModifier: bool,
4952    pub m_bHasProfileBackground: bool,
4953    pub m_bHasMiniProfileBackground: bool,
4954}
4955pub const EquippedProfileItems_t_k_iCallback: EquippedProfileItems_t__bindgen_ty_1 =
4956    EquippedProfileItems_t__bindgen_ty_1::k_iCallback;
4957#[repr(u32)]
4958#[non_exhaustive]
4959#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4960pub enum EquippedProfileItems_t__bindgen_ty_1 {
4961    k_iCallback = 351,
4962}
4963#[test]
4964fn bindgen_test_layout_EquippedProfileItems_t() {
4965    const UNINIT: ::std::mem::MaybeUninit<EquippedProfileItems_t> =
4966        ::std::mem::MaybeUninit::uninit();
4967    let ptr = UNINIT.as_ptr();
4968    assert_eq!(
4969        ::std::mem::size_of::<EquippedProfileItems_t>(),
4970        20usize,
4971        concat!("Size of: ", stringify!(EquippedProfileItems_t))
4972    );
4973    assert_eq!(
4974        ::std::mem::align_of::<EquippedProfileItems_t>(),
4975        4usize,
4976        concat!("Alignment of ", stringify!(EquippedProfileItems_t))
4977    );
4978    assert_eq!(
4979        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
4980        0usize,
4981        concat!(
4982            "Offset of field: ",
4983            stringify!(EquippedProfileItems_t),
4984            "::",
4985            stringify!(m_eResult)
4986        )
4987    );
4988    assert_eq!(
4989        unsafe { ::std::ptr::addr_of!((*ptr).m_steamID) as usize - ptr as usize },
4990        4usize,
4991        concat!(
4992            "Offset of field: ",
4993            stringify!(EquippedProfileItems_t),
4994            "::",
4995            stringify!(m_steamID)
4996        )
4997    );
4998    assert_eq!(
4999        unsafe { ::std::ptr::addr_of!((*ptr).m_bHasAnimatedAvatar) as usize - ptr as usize },
5000        12usize,
5001        concat!(
5002            "Offset of field: ",
5003            stringify!(EquippedProfileItems_t),
5004            "::",
5005            stringify!(m_bHasAnimatedAvatar)
5006        )
5007    );
5008    assert_eq!(
5009        unsafe { ::std::ptr::addr_of!((*ptr).m_bHasAvatarFrame) as usize - ptr as usize },
5010        13usize,
5011        concat!(
5012            "Offset of field: ",
5013            stringify!(EquippedProfileItems_t),
5014            "::",
5015            stringify!(m_bHasAvatarFrame)
5016        )
5017    );
5018    assert_eq!(
5019        unsafe { ::std::ptr::addr_of!((*ptr).m_bHasProfileModifier) as usize - ptr as usize },
5020        14usize,
5021        concat!(
5022            "Offset of field: ",
5023            stringify!(EquippedProfileItems_t),
5024            "::",
5025            stringify!(m_bHasProfileModifier)
5026        )
5027    );
5028    assert_eq!(
5029        unsafe { ::std::ptr::addr_of!((*ptr).m_bHasProfileBackground) as usize - ptr as usize },
5030        15usize,
5031        concat!(
5032            "Offset of field: ",
5033            stringify!(EquippedProfileItems_t),
5034            "::",
5035            stringify!(m_bHasProfileBackground)
5036        )
5037    );
5038    assert_eq!(
5039        unsafe { ::std::ptr::addr_of!((*ptr).m_bHasMiniProfileBackground) as usize - ptr as usize },
5040        16usize,
5041        concat!(
5042            "Offset of field: ",
5043            stringify!(EquippedProfileItems_t),
5044            "::",
5045            stringify!(m_bHasMiniProfileBackground)
5046        )
5047    );
5048}
5049#[repr(i32)]
5050#[non_exhaustive]
5051#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5052pub enum ESteamAPICallFailure {
5053    k_ESteamAPICallFailureNone = -1,
5054    k_ESteamAPICallFailureSteamGone = 0,
5055    k_ESteamAPICallFailureNetworkFailure = 1,
5056    k_ESteamAPICallFailureInvalidHandle = 2,
5057    k_ESteamAPICallFailureMismatchedCallback = 3,
5058}
5059#[repr(u32)]
5060#[non_exhaustive]
5061#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5062pub enum EGamepadTextInputMode {
5063    k_EGamepadTextInputModeNormal = 0,
5064    k_EGamepadTextInputModePassword = 1,
5065}
5066#[repr(u32)]
5067#[non_exhaustive]
5068#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5069pub enum EGamepadTextInputLineMode {
5070    k_EGamepadTextInputLineModeSingleLine = 0,
5071    k_EGamepadTextInputLineModeMultipleLines = 1,
5072}
5073#[repr(u32)]
5074#[non_exhaustive]
5075#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5076pub enum EFloatingGamepadTextInputMode {
5077    k_EFloatingGamepadTextInputModeModeSingleLine = 0,
5078    k_EFloatingGamepadTextInputModeModeMultipleLines = 1,
5079    k_EFloatingGamepadTextInputModeModeEmail = 2,
5080    k_EFloatingGamepadTextInputModeModeNumeric = 3,
5081}
5082#[repr(u32)]
5083#[non_exhaustive]
5084#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5085pub enum ETextFilteringContext {
5086    k_ETextFilteringContextUnknown = 0,
5087    k_ETextFilteringContextGameContent = 1,
5088    k_ETextFilteringContextChat = 2,
5089    k_ETextFilteringContextName = 3,
5090}
5091#[repr(C)]
5092pub struct ISteamUtils__bindgen_vtable(::std::os::raw::c_void);
5093#[repr(C)]
5094#[derive(Debug, Copy, Clone)]
5095pub struct ISteamUtils {
5096    pub vtable_: *const ISteamUtils__bindgen_vtable,
5097}
5098#[test]
5099fn bindgen_test_layout_ISteamUtils() {
5100    assert_eq!(
5101        ::std::mem::size_of::<ISteamUtils>(),
5102        8usize,
5103        concat!("Size of: ", stringify!(ISteamUtils))
5104    );
5105    assert_eq!(
5106        ::std::mem::align_of::<ISteamUtils>(),
5107        8usize,
5108        concat!("Alignment of ", stringify!(ISteamUtils))
5109    );
5110}
5111#[repr(C)]
5112#[derive(Debug, Copy, Clone)]
5113pub struct IPCountry_t {
5114    pub _address: u8,
5115}
5116pub const IPCountry_t_k_iCallback: IPCountry_t__bindgen_ty_1 =
5117    IPCountry_t__bindgen_ty_1::k_iCallback;
5118#[repr(u32)]
5119#[non_exhaustive]
5120#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5121pub enum IPCountry_t__bindgen_ty_1 {
5122    k_iCallback = 701,
5123}
5124#[test]
5125fn bindgen_test_layout_IPCountry_t() {
5126    assert_eq!(
5127        ::std::mem::size_of::<IPCountry_t>(),
5128        1usize,
5129        concat!("Size of: ", stringify!(IPCountry_t))
5130    );
5131    assert_eq!(
5132        ::std::mem::align_of::<IPCountry_t>(),
5133        1usize,
5134        concat!("Alignment of ", stringify!(IPCountry_t))
5135    );
5136}
5137#[repr(C)]
5138#[derive(Debug, Copy, Clone)]
5139pub struct LowBatteryPower_t {
5140    pub m_nMinutesBatteryLeft: uint8,
5141}
5142pub const LowBatteryPower_t_k_iCallback: LowBatteryPower_t__bindgen_ty_1 =
5143    LowBatteryPower_t__bindgen_ty_1::k_iCallback;
5144#[repr(u32)]
5145#[non_exhaustive]
5146#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5147pub enum LowBatteryPower_t__bindgen_ty_1 {
5148    k_iCallback = 702,
5149}
5150#[test]
5151fn bindgen_test_layout_LowBatteryPower_t() {
5152    const UNINIT: ::std::mem::MaybeUninit<LowBatteryPower_t> = ::std::mem::MaybeUninit::uninit();
5153    let ptr = UNINIT.as_ptr();
5154    assert_eq!(
5155        ::std::mem::size_of::<LowBatteryPower_t>(),
5156        1usize,
5157        concat!("Size of: ", stringify!(LowBatteryPower_t))
5158    );
5159    assert_eq!(
5160        ::std::mem::align_of::<LowBatteryPower_t>(),
5161        1usize,
5162        concat!("Alignment of ", stringify!(LowBatteryPower_t))
5163    );
5164    assert_eq!(
5165        unsafe { ::std::ptr::addr_of!((*ptr).m_nMinutesBatteryLeft) as usize - ptr as usize },
5166        0usize,
5167        concat!(
5168            "Offset of field: ",
5169            stringify!(LowBatteryPower_t),
5170            "::",
5171            stringify!(m_nMinutesBatteryLeft)
5172        )
5173    );
5174}
5175#[repr(C, packed(4))]
5176#[derive(Debug, Copy, Clone)]
5177pub struct SteamAPICallCompleted_t {
5178    pub m_hAsyncCall: SteamAPICall_t,
5179    pub m_iCallback: ::std::os::raw::c_int,
5180    pub m_cubParam: uint32,
5181}
5182pub const SteamAPICallCompleted_t_k_iCallback: SteamAPICallCompleted_t__bindgen_ty_1 =
5183    SteamAPICallCompleted_t__bindgen_ty_1::k_iCallback;
5184#[repr(u32)]
5185#[non_exhaustive]
5186#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5187pub enum SteamAPICallCompleted_t__bindgen_ty_1 {
5188    k_iCallback = 703,
5189}
5190#[test]
5191fn bindgen_test_layout_SteamAPICallCompleted_t() {
5192    const UNINIT: ::std::mem::MaybeUninit<SteamAPICallCompleted_t> =
5193        ::std::mem::MaybeUninit::uninit();
5194    let ptr = UNINIT.as_ptr();
5195    assert_eq!(
5196        ::std::mem::size_of::<SteamAPICallCompleted_t>(),
5197        16usize,
5198        concat!("Size of: ", stringify!(SteamAPICallCompleted_t))
5199    );
5200    assert_eq!(
5201        ::std::mem::align_of::<SteamAPICallCompleted_t>(),
5202        4usize,
5203        concat!("Alignment of ", stringify!(SteamAPICallCompleted_t))
5204    );
5205    assert_eq!(
5206        unsafe { ::std::ptr::addr_of!((*ptr).m_hAsyncCall) as usize - ptr as usize },
5207        0usize,
5208        concat!(
5209            "Offset of field: ",
5210            stringify!(SteamAPICallCompleted_t),
5211            "::",
5212            stringify!(m_hAsyncCall)
5213        )
5214    );
5215    assert_eq!(
5216        unsafe { ::std::ptr::addr_of!((*ptr).m_iCallback) as usize - ptr as usize },
5217        8usize,
5218        concat!(
5219            "Offset of field: ",
5220            stringify!(SteamAPICallCompleted_t),
5221            "::",
5222            stringify!(m_iCallback)
5223        )
5224    );
5225    assert_eq!(
5226        unsafe { ::std::ptr::addr_of!((*ptr).m_cubParam) as usize - ptr as usize },
5227        12usize,
5228        concat!(
5229            "Offset of field: ",
5230            stringify!(SteamAPICallCompleted_t),
5231            "::",
5232            stringify!(m_cubParam)
5233        )
5234    );
5235}
5236#[repr(C)]
5237#[derive(Debug, Copy, Clone)]
5238pub struct SteamShutdown_t {
5239    pub _address: u8,
5240}
5241pub const SteamShutdown_t_k_iCallback: SteamShutdown_t__bindgen_ty_1 =
5242    SteamShutdown_t__bindgen_ty_1::k_iCallback;
5243#[repr(u32)]
5244#[non_exhaustive]
5245#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5246pub enum SteamShutdown_t__bindgen_ty_1 {
5247    k_iCallback = 704,
5248}
5249#[test]
5250fn bindgen_test_layout_SteamShutdown_t() {
5251    assert_eq!(
5252        ::std::mem::size_of::<SteamShutdown_t>(),
5253        1usize,
5254        concat!("Size of: ", stringify!(SteamShutdown_t))
5255    );
5256    assert_eq!(
5257        ::std::mem::align_of::<SteamShutdown_t>(),
5258        1usize,
5259        concat!("Alignment of ", stringify!(SteamShutdown_t))
5260    );
5261}
5262#[repr(u32)]
5263#[non_exhaustive]
5264#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5265pub enum ECheckFileSignature {
5266    k_ECheckFileSignatureInvalidSignature = 0,
5267    k_ECheckFileSignatureValidSignature = 1,
5268    k_ECheckFileSignatureFileNotFound = 2,
5269    k_ECheckFileSignatureNoSignaturesFoundForThisApp = 3,
5270    k_ECheckFileSignatureNoSignaturesFoundForThisFile = 4,
5271}
5272#[repr(C)]
5273#[derive(Debug, Copy, Clone)]
5274pub struct CheckFileSignature_t {
5275    pub m_eCheckFileSignature: ECheckFileSignature,
5276}
5277pub const CheckFileSignature_t_k_iCallback: CheckFileSignature_t__bindgen_ty_1 =
5278    CheckFileSignature_t__bindgen_ty_1::k_iCallback;
5279#[repr(u32)]
5280#[non_exhaustive]
5281#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5282pub enum CheckFileSignature_t__bindgen_ty_1 {
5283    k_iCallback = 705,
5284}
5285#[test]
5286fn bindgen_test_layout_CheckFileSignature_t() {
5287    const UNINIT: ::std::mem::MaybeUninit<CheckFileSignature_t> = ::std::mem::MaybeUninit::uninit();
5288    let ptr = UNINIT.as_ptr();
5289    assert_eq!(
5290        ::std::mem::size_of::<CheckFileSignature_t>(),
5291        4usize,
5292        concat!("Size of: ", stringify!(CheckFileSignature_t))
5293    );
5294    assert_eq!(
5295        ::std::mem::align_of::<CheckFileSignature_t>(),
5296        4usize,
5297        concat!("Alignment of ", stringify!(CheckFileSignature_t))
5298    );
5299    assert_eq!(
5300        unsafe { ::std::ptr::addr_of!((*ptr).m_eCheckFileSignature) as usize - ptr as usize },
5301        0usize,
5302        concat!(
5303            "Offset of field: ",
5304            stringify!(CheckFileSignature_t),
5305            "::",
5306            stringify!(m_eCheckFileSignature)
5307        )
5308    );
5309}
5310#[repr(C)]
5311#[derive(Debug, Copy, Clone)]
5312pub struct GamepadTextInputDismissed_t {
5313    pub m_bSubmitted: bool,
5314    pub m_unSubmittedText: uint32,
5315    pub m_unAppID: AppId_t,
5316}
5317pub const GamepadTextInputDismissed_t_k_iCallback: GamepadTextInputDismissed_t__bindgen_ty_1 =
5318    GamepadTextInputDismissed_t__bindgen_ty_1::k_iCallback;
5319#[repr(u32)]
5320#[non_exhaustive]
5321#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5322pub enum GamepadTextInputDismissed_t__bindgen_ty_1 {
5323    k_iCallback = 714,
5324}
5325#[test]
5326fn bindgen_test_layout_GamepadTextInputDismissed_t() {
5327    const UNINIT: ::std::mem::MaybeUninit<GamepadTextInputDismissed_t> =
5328        ::std::mem::MaybeUninit::uninit();
5329    let ptr = UNINIT.as_ptr();
5330    assert_eq!(
5331        ::std::mem::size_of::<GamepadTextInputDismissed_t>(),
5332        12usize,
5333        concat!("Size of: ", stringify!(GamepadTextInputDismissed_t))
5334    );
5335    assert_eq!(
5336        ::std::mem::align_of::<GamepadTextInputDismissed_t>(),
5337        4usize,
5338        concat!("Alignment of ", stringify!(GamepadTextInputDismissed_t))
5339    );
5340    assert_eq!(
5341        unsafe { ::std::ptr::addr_of!((*ptr).m_bSubmitted) as usize - ptr as usize },
5342        0usize,
5343        concat!(
5344            "Offset of field: ",
5345            stringify!(GamepadTextInputDismissed_t),
5346            "::",
5347            stringify!(m_bSubmitted)
5348        )
5349    );
5350    assert_eq!(
5351        unsafe { ::std::ptr::addr_of!((*ptr).m_unSubmittedText) as usize - ptr as usize },
5352        4usize,
5353        concat!(
5354            "Offset of field: ",
5355            stringify!(GamepadTextInputDismissed_t),
5356            "::",
5357            stringify!(m_unSubmittedText)
5358        )
5359    );
5360    assert_eq!(
5361        unsafe { ::std::ptr::addr_of!((*ptr).m_unAppID) as usize - ptr as usize },
5362        8usize,
5363        concat!(
5364            "Offset of field: ",
5365            stringify!(GamepadTextInputDismissed_t),
5366            "::",
5367            stringify!(m_unAppID)
5368        )
5369    );
5370}
5371#[repr(C)]
5372#[derive(Debug, Copy, Clone)]
5373pub struct AppResumingFromSuspend_t {
5374    pub _address: u8,
5375}
5376pub const AppResumingFromSuspend_t_k_iCallback: AppResumingFromSuspend_t__bindgen_ty_1 =
5377    AppResumingFromSuspend_t__bindgen_ty_1::k_iCallback;
5378#[repr(u32)]
5379#[non_exhaustive]
5380#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5381pub enum AppResumingFromSuspend_t__bindgen_ty_1 {
5382    k_iCallback = 736,
5383}
5384#[test]
5385fn bindgen_test_layout_AppResumingFromSuspend_t() {
5386    assert_eq!(
5387        ::std::mem::size_of::<AppResumingFromSuspend_t>(),
5388        1usize,
5389        concat!("Size of: ", stringify!(AppResumingFromSuspend_t))
5390    );
5391    assert_eq!(
5392        ::std::mem::align_of::<AppResumingFromSuspend_t>(),
5393        1usize,
5394        concat!("Alignment of ", stringify!(AppResumingFromSuspend_t))
5395    );
5396}
5397#[repr(C)]
5398#[derive(Debug, Copy, Clone)]
5399pub struct FloatingGamepadTextInputDismissed_t {
5400    pub _address: u8,
5401}
5402pub const FloatingGamepadTextInputDismissed_t_k_iCallback:
5403    FloatingGamepadTextInputDismissed_t__bindgen_ty_1 =
5404    FloatingGamepadTextInputDismissed_t__bindgen_ty_1::k_iCallback;
5405#[repr(u32)]
5406#[non_exhaustive]
5407#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5408pub enum FloatingGamepadTextInputDismissed_t__bindgen_ty_1 {
5409    k_iCallback = 738,
5410}
5411#[test]
5412fn bindgen_test_layout_FloatingGamepadTextInputDismissed_t() {
5413    assert_eq!(
5414        ::std::mem::size_of::<FloatingGamepadTextInputDismissed_t>(),
5415        1usize,
5416        concat!("Size of: ", stringify!(FloatingGamepadTextInputDismissed_t))
5417    );
5418    assert_eq!(
5419        ::std::mem::align_of::<FloatingGamepadTextInputDismissed_t>(),
5420        1usize,
5421        concat!(
5422            "Alignment of ",
5423            stringify!(FloatingGamepadTextInputDismissed_t)
5424        )
5425    );
5426}
5427#[repr(C)]
5428#[derive(Debug, Copy, Clone)]
5429pub struct FilterTextDictionaryChanged_t {
5430    pub m_eLanguage: ::std::os::raw::c_int,
5431}
5432pub const FilterTextDictionaryChanged_t_k_iCallback: FilterTextDictionaryChanged_t__bindgen_ty_1 =
5433    FilterTextDictionaryChanged_t__bindgen_ty_1::k_iCallback;
5434#[repr(u32)]
5435#[non_exhaustive]
5436#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5437pub enum FilterTextDictionaryChanged_t__bindgen_ty_1 {
5438    k_iCallback = 739,
5439}
5440#[test]
5441fn bindgen_test_layout_FilterTextDictionaryChanged_t() {
5442    const UNINIT: ::std::mem::MaybeUninit<FilterTextDictionaryChanged_t> =
5443        ::std::mem::MaybeUninit::uninit();
5444    let ptr = UNINIT.as_ptr();
5445    assert_eq!(
5446        ::std::mem::size_of::<FilterTextDictionaryChanged_t>(),
5447        4usize,
5448        concat!("Size of: ", stringify!(FilterTextDictionaryChanged_t))
5449    );
5450    assert_eq!(
5451        ::std::mem::align_of::<FilterTextDictionaryChanged_t>(),
5452        4usize,
5453        concat!("Alignment of ", stringify!(FilterTextDictionaryChanged_t))
5454    );
5455    assert_eq!(
5456        unsafe { ::std::ptr::addr_of!((*ptr).m_eLanguage) as usize - ptr as usize },
5457        0usize,
5458        concat!(
5459            "Offset of field: ",
5460            stringify!(FilterTextDictionaryChanged_t),
5461            "::",
5462            stringify!(m_eLanguage)
5463        )
5464    );
5465}
5466pub type va_list = __builtin_va_list;
5467pub type __gnuc_va_list = __builtin_va_list;
5468pub type __u_char = ::std::os::raw::c_uchar;
5469pub type __u_short = ::std::os::raw::c_ushort;
5470pub type __u_int = ::std::os::raw::c_uint;
5471pub type __u_long = ::std::os::raw::c_ulong;
5472pub type __int8_t = ::std::os::raw::c_schar;
5473pub type __uint8_t = ::std::os::raw::c_uchar;
5474pub type __int16_t = ::std::os::raw::c_short;
5475pub type __uint16_t = ::std::os::raw::c_ushort;
5476pub type __int32_t = ::std::os::raw::c_int;
5477pub type __uint32_t = ::std::os::raw::c_uint;
5478pub type __int64_t = ::std::os::raw::c_long;
5479pub type __uint64_t = ::std::os::raw::c_ulong;
5480pub type __int_least8_t = __int8_t;
5481pub type __uint_least8_t = __uint8_t;
5482pub type __int_least16_t = __int16_t;
5483pub type __uint_least16_t = __uint16_t;
5484pub type __int_least32_t = __int32_t;
5485pub type __uint_least32_t = __uint32_t;
5486pub type __int_least64_t = __int64_t;
5487pub type __uint_least64_t = __uint64_t;
5488pub type __quad_t = ::std::os::raw::c_long;
5489pub type __u_quad_t = ::std::os::raw::c_ulong;
5490pub type __intmax_t = ::std::os::raw::c_long;
5491pub type __uintmax_t = ::std::os::raw::c_ulong;
5492pub type __dev_t = ::std::os::raw::c_ulong;
5493pub type __uid_t = ::std::os::raw::c_uint;
5494pub type __gid_t = ::std::os::raw::c_uint;
5495pub type __ino_t = ::std::os::raw::c_ulong;
5496pub type __ino64_t = ::std::os::raw::c_ulong;
5497pub type __mode_t = ::std::os::raw::c_uint;
5498pub type __nlink_t = ::std::os::raw::c_ulong;
5499pub type __off_t = ::std::os::raw::c_long;
5500pub type __off64_t = ::std::os::raw::c_long;
5501pub type __pid_t = ::std::os::raw::c_int;
5502#[repr(C)]
5503#[derive(Debug, Copy, Clone)]
5504pub struct __fsid_t {
5505    pub __val: [::std::os::raw::c_int; 2usize],
5506}
5507#[test]
5508fn bindgen_test_layout___fsid_t() {
5509    const UNINIT: ::std::mem::MaybeUninit<__fsid_t> = ::std::mem::MaybeUninit::uninit();
5510    let ptr = UNINIT.as_ptr();
5511    assert_eq!(
5512        ::std::mem::size_of::<__fsid_t>(),
5513        8usize,
5514        concat!("Size of: ", stringify!(__fsid_t))
5515    );
5516    assert_eq!(
5517        ::std::mem::align_of::<__fsid_t>(),
5518        4usize,
5519        concat!("Alignment of ", stringify!(__fsid_t))
5520    );
5521    assert_eq!(
5522        unsafe { ::std::ptr::addr_of!((*ptr).__val) as usize - ptr as usize },
5523        0usize,
5524        concat!(
5525            "Offset of field: ",
5526            stringify!(__fsid_t),
5527            "::",
5528            stringify!(__val)
5529        )
5530    );
5531}
5532pub type __clock_t = ::std::os::raw::c_long;
5533pub type __rlim_t = ::std::os::raw::c_ulong;
5534pub type __rlim64_t = ::std::os::raw::c_ulong;
5535pub type __id_t = ::std::os::raw::c_uint;
5536pub type __time_t = ::std::os::raw::c_long;
5537pub type __useconds_t = ::std::os::raw::c_uint;
5538pub type __suseconds_t = ::std::os::raw::c_long;
5539pub type __suseconds64_t = ::std::os::raw::c_long;
5540pub type __daddr_t = ::std::os::raw::c_int;
5541pub type __key_t = ::std::os::raw::c_int;
5542pub type __clockid_t = ::std::os::raw::c_int;
5543pub type __timer_t = *mut ::std::os::raw::c_void;
5544pub type __blksize_t = ::std::os::raw::c_long;
5545pub type __blkcnt_t = ::std::os::raw::c_long;
5546pub type __blkcnt64_t = ::std::os::raw::c_long;
5547pub type __fsblkcnt_t = ::std::os::raw::c_ulong;
5548pub type __fsblkcnt64_t = ::std::os::raw::c_ulong;
5549pub type __fsfilcnt_t = ::std::os::raw::c_ulong;
5550pub type __fsfilcnt64_t = ::std::os::raw::c_ulong;
5551pub type __fsword_t = ::std::os::raw::c_long;
5552pub type __ssize_t = ::std::os::raw::c_long;
5553pub type __syscall_slong_t = ::std::os::raw::c_long;
5554pub type __syscall_ulong_t = ::std::os::raw::c_ulong;
5555pub type __loff_t = __off64_t;
5556pub type __caddr_t = *mut ::std::os::raw::c_char;
5557pub type __intptr_t = ::std::os::raw::c_long;
5558pub type __socklen_t = ::std::os::raw::c_uint;
5559pub type __sig_atomic_t = ::std::os::raw::c_int;
5560#[repr(C)]
5561#[derive(Copy, Clone)]
5562pub struct __mbstate_t {
5563    pub __count: ::std::os::raw::c_int,
5564    pub __value: __mbstate_t__bindgen_ty_1,
5565}
5566#[repr(C)]
5567#[derive(Copy, Clone)]
5568pub union __mbstate_t__bindgen_ty_1 {
5569    pub __wch: ::std::os::raw::c_uint,
5570    pub __wchb: [::std::os::raw::c_char; 4usize],
5571}
5572#[test]
5573fn bindgen_test_layout___mbstate_t__bindgen_ty_1() {
5574    const UNINIT: ::std::mem::MaybeUninit<__mbstate_t__bindgen_ty_1> =
5575        ::std::mem::MaybeUninit::uninit();
5576    let ptr = UNINIT.as_ptr();
5577    assert_eq!(
5578        ::std::mem::size_of::<__mbstate_t__bindgen_ty_1>(),
5579        4usize,
5580        concat!("Size of: ", stringify!(__mbstate_t__bindgen_ty_1))
5581    );
5582    assert_eq!(
5583        ::std::mem::align_of::<__mbstate_t__bindgen_ty_1>(),
5584        4usize,
5585        concat!("Alignment of ", stringify!(__mbstate_t__bindgen_ty_1))
5586    );
5587    assert_eq!(
5588        unsafe { ::std::ptr::addr_of!((*ptr).__wch) as usize - ptr as usize },
5589        0usize,
5590        concat!(
5591            "Offset of field: ",
5592            stringify!(__mbstate_t__bindgen_ty_1),
5593            "::",
5594            stringify!(__wch)
5595        )
5596    );
5597    assert_eq!(
5598        unsafe { ::std::ptr::addr_of!((*ptr).__wchb) as usize - ptr as usize },
5599        0usize,
5600        concat!(
5601            "Offset of field: ",
5602            stringify!(__mbstate_t__bindgen_ty_1),
5603            "::",
5604            stringify!(__wchb)
5605        )
5606    );
5607}
5608#[test]
5609fn bindgen_test_layout___mbstate_t() {
5610    const UNINIT: ::std::mem::MaybeUninit<__mbstate_t> = ::std::mem::MaybeUninit::uninit();
5611    let ptr = UNINIT.as_ptr();
5612    assert_eq!(
5613        ::std::mem::size_of::<__mbstate_t>(),
5614        8usize,
5615        concat!("Size of: ", stringify!(__mbstate_t))
5616    );
5617    assert_eq!(
5618        ::std::mem::align_of::<__mbstate_t>(),
5619        4usize,
5620        concat!("Alignment of ", stringify!(__mbstate_t))
5621    );
5622    assert_eq!(
5623        unsafe { ::std::ptr::addr_of!((*ptr).__count) as usize - ptr as usize },
5624        0usize,
5625        concat!(
5626            "Offset of field: ",
5627            stringify!(__mbstate_t),
5628            "::",
5629            stringify!(__count)
5630        )
5631    );
5632    assert_eq!(
5633        unsafe { ::std::ptr::addr_of!((*ptr).__value) as usize - ptr as usize },
5634        4usize,
5635        concat!(
5636            "Offset of field: ",
5637            stringify!(__mbstate_t),
5638            "::",
5639            stringify!(__value)
5640        )
5641    );
5642}
5643#[repr(C)]
5644#[derive(Copy, Clone)]
5645pub struct _G_fpos_t {
5646    pub __pos: __off_t,
5647    pub __state: __mbstate_t,
5648}
5649#[test]
5650fn bindgen_test_layout__G_fpos_t() {
5651    const UNINIT: ::std::mem::MaybeUninit<_G_fpos_t> = ::std::mem::MaybeUninit::uninit();
5652    let ptr = UNINIT.as_ptr();
5653    assert_eq!(
5654        ::std::mem::size_of::<_G_fpos_t>(),
5655        16usize,
5656        concat!("Size of: ", stringify!(_G_fpos_t))
5657    );
5658    assert_eq!(
5659        ::std::mem::align_of::<_G_fpos_t>(),
5660        8usize,
5661        concat!("Alignment of ", stringify!(_G_fpos_t))
5662    );
5663    assert_eq!(
5664        unsafe { ::std::ptr::addr_of!((*ptr).__pos) as usize - ptr as usize },
5665        0usize,
5666        concat!(
5667            "Offset of field: ",
5668            stringify!(_G_fpos_t),
5669            "::",
5670            stringify!(__pos)
5671        )
5672    );
5673    assert_eq!(
5674        unsafe { ::std::ptr::addr_of!((*ptr).__state) as usize - ptr as usize },
5675        8usize,
5676        concat!(
5677            "Offset of field: ",
5678            stringify!(_G_fpos_t),
5679            "::",
5680            stringify!(__state)
5681        )
5682    );
5683}
5684pub type __fpos_t = _G_fpos_t;
5685#[repr(C)]
5686#[derive(Copy, Clone)]
5687pub struct _G_fpos64_t {
5688    pub __pos: __off64_t,
5689    pub __state: __mbstate_t,
5690}
5691#[test]
5692fn bindgen_test_layout__G_fpos64_t() {
5693    const UNINIT: ::std::mem::MaybeUninit<_G_fpos64_t> = ::std::mem::MaybeUninit::uninit();
5694    let ptr = UNINIT.as_ptr();
5695    assert_eq!(
5696        ::std::mem::size_of::<_G_fpos64_t>(),
5697        16usize,
5698        concat!("Size of: ", stringify!(_G_fpos64_t))
5699    );
5700    assert_eq!(
5701        ::std::mem::align_of::<_G_fpos64_t>(),
5702        8usize,
5703        concat!("Alignment of ", stringify!(_G_fpos64_t))
5704    );
5705    assert_eq!(
5706        unsafe { ::std::ptr::addr_of!((*ptr).__pos) as usize - ptr as usize },
5707        0usize,
5708        concat!(
5709            "Offset of field: ",
5710            stringify!(_G_fpos64_t),
5711            "::",
5712            stringify!(__pos)
5713        )
5714    );
5715    assert_eq!(
5716        unsafe { ::std::ptr::addr_of!((*ptr).__state) as usize - ptr as usize },
5717        8usize,
5718        concat!(
5719            "Offset of field: ",
5720            stringify!(_G_fpos64_t),
5721            "::",
5722            stringify!(__state)
5723        )
5724    );
5725}
5726pub type __fpos64_t = _G_fpos64_t;
5727pub type __FILE = _IO_FILE;
5728pub type FILE = _IO_FILE;
5729#[repr(C)]
5730#[derive(Debug, Copy, Clone)]
5731pub struct _IO_marker {
5732    _unused: [u8; 0],
5733}
5734#[repr(C)]
5735#[derive(Debug, Copy, Clone)]
5736pub struct _IO_codecvt {
5737    _unused: [u8; 0],
5738}
5739#[repr(C)]
5740#[derive(Debug, Copy, Clone)]
5741pub struct _IO_wide_data {
5742    _unused: [u8; 0],
5743}
5744pub type _IO_lock_t = ::std::os::raw::c_void;
5745#[repr(C)]
5746#[derive(Debug, Copy, Clone)]
5747pub struct _IO_FILE {
5748    pub _flags: ::std::os::raw::c_int,
5749    pub _IO_read_ptr: *mut ::std::os::raw::c_char,
5750    pub _IO_read_end: *mut ::std::os::raw::c_char,
5751    pub _IO_read_base: *mut ::std::os::raw::c_char,
5752    pub _IO_write_base: *mut ::std::os::raw::c_char,
5753    pub _IO_write_ptr: *mut ::std::os::raw::c_char,
5754    pub _IO_write_end: *mut ::std::os::raw::c_char,
5755    pub _IO_buf_base: *mut ::std::os::raw::c_char,
5756    pub _IO_buf_end: *mut ::std::os::raw::c_char,
5757    pub _IO_save_base: *mut ::std::os::raw::c_char,
5758    pub _IO_backup_base: *mut ::std::os::raw::c_char,
5759    pub _IO_save_end: *mut ::std::os::raw::c_char,
5760    pub _markers: *mut _IO_marker,
5761    pub _chain: *mut _IO_FILE,
5762    pub _fileno: ::std::os::raw::c_int,
5763    pub _flags2: ::std::os::raw::c_int,
5764    pub _old_offset: __off_t,
5765    pub _cur_column: ::std::os::raw::c_ushort,
5766    pub _vtable_offset: ::std::os::raw::c_schar,
5767    pub _shortbuf: [::std::os::raw::c_char; 1usize],
5768    pub _lock: *mut _IO_lock_t,
5769    pub _offset: __off64_t,
5770    pub _codecvt: *mut _IO_codecvt,
5771    pub _wide_data: *mut _IO_wide_data,
5772    pub _freeres_list: *mut _IO_FILE,
5773    pub _freeres_buf: *mut ::std::os::raw::c_void,
5774    pub __pad5: usize,
5775    pub _mode: ::std::os::raw::c_int,
5776    pub _unused2: [::std::os::raw::c_char; 20usize],
5777}
5778#[test]
5779fn bindgen_test_layout__IO_FILE() {
5780    const UNINIT: ::std::mem::MaybeUninit<_IO_FILE> = ::std::mem::MaybeUninit::uninit();
5781    let ptr = UNINIT.as_ptr();
5782    assert_eq!(
5783        ::std::mem::size_of::<_IO_FILE>(),
5784        216usize,
5785        concat!("Size of: ", stringify!(_IO_FILE))
5786    );
5787    assert_eq!(
5788        ::std::mem::align_of::<_IO_FILE>(),
5789        8usize,
5790        concat!("Alignment of ", stringify!(_IO_FILE))
5791    );
5792    assert_eq!(
5793        unsafe { ::std::ptr::addr_of!((*ptr)._flags) as usize - ptr as usize },
5794        0usize,
5795        concat!(
5796            "Offset of field: ",
5797            stringify!(_IO_FILE),
5798            "::",
5799            stringify!(_flags)
5800        )
5801    );
5802    assert_eq!(
5803        unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_ptr) as usize - ptr as usize },
5804        8usize,
5805        concat!(
5806            "Offset of field: ",
5807            stringify!(_IO_FILE),
5808            "::",
5809            stringify!(_IO_read_ptr)
5810        )
5811    );
5812    assert_eq!(
5813        unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_end) as usize - ptr as usize },
5814        16usize,
5815        concat!(
5816            "Offset of field: ",
5817            stringify!(_IO_FILE),
5818            "::",
5819            stringify!(_IO_read_end)
5820        )
5821    );
5822    assert_eq!(
5823        unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_base) as usize - ptr as usize },
5824        24usize,
5825        concat!(
5826            "Offset of field: ",
5827            stringify!(_IO_FILE),
5828            "::",
5829            stringify!(_IO_read_base)
5830        )
5831    );
5832    assert_eq!(
5833        unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_base) as usize - ptr as usize },
5834        32usize,
5835        concat!(
5836            "Offset of field: ",
5837            stringify!(_IO_FILE),
5838            "::",
5839            stringify!(_IO_write_base)
5840        )
5841    );
5842    assert_eq!(
5843        unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_ptr) as usize - ptr as usize },
5844        40usize,
5845        concat!(
5846            "Offset of field: ",
5847            stringify!(_IO_FILE),
5848            "::",
5849            stringify!(_IO_write_ptr)
5850        )
5851    );
5852    assert_eq!(
5853        unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_end) as usize - ptr as usize },
5854        48usize,
5855        concat!(
5856            "Offset of field: ",
5857            stringify!(_IO_FILE),
5858            "::",
5859            stringify!(_IO_write_end)
5860        )
5861    );
5862    assert_eq!(
5863        unsafe { ::std::ptr::addr_of!((*ptr)._IO_buf_base) as usize - ptr as usize },
5864        56usize,
5865        concat!(
5866            "Offset of field: ",
5867            stringify!(_IO_FILE),
5868            "::",
5869            stringify!(_IO_buf_base)
5870        )
5871    );
5872    assert_eq!(
5873        unsafe { ::std::ptr::addr_of!((*ptr)._IO_buf_end) as usize - ptr as usize },
5874        64usize,
5875        concat!(
5876            "Offset of field: ",
5877            stringify!(_IO_FILE),
5878            "::",
5879            stringify!(_IO_buf_end)
5880        )
5881    );
5882    assert_eq!(
5883        unsafe { ::std::ptr::addr_of!((*ptr)._IO_save_base) as usize - ptr as usize },
5884        72usize,
5885        concat!(
5886            "Offset of field: ",
5887            stringify!(_IO_FILE),
5888            "::",
5889            stringify!(_IO_save_base)
5890        )
5891    );
5892    assert_eq!(
5893        unsafe { ::std::ptr::addr_of!((*ptr)._IO_backup_base) as usize - ptr as usize },
5894        80usize,
5895        concat!(
5896            "Offset of field: ",
5897            stringify!(_IO_FILE),
5898            "::",
5899            stringify!(_IO_backup_base)
5900        )
5901    );
5902    assert_eq!(
5903        unsafe { ::std::ptr::addr_of!((*ptr)._IO_save_end) as usize - ptr as usize },
5904        88usize,
5905        concat!(
5906            "Offset of field: ",
5907            stringify!(_IO_FILE),
5908            "::",
5909            stringify!(_IO_save_end)
5910        )
5911    );
5912    assert_eq!(
5913        unsafe { ::std::ptr::addr_of!((*ptr)._markers) as usize - ptr as usize },
5914        96usize,
5915        concat!(
5916            "Offset of field: ",
5917            stringify!(_IO_FILE),
5918            "::",
5919            stringify!(_markers)
5920        )
5921    );
5922    assert_eq!(
5923        unsafe { ::std::ptr::addr_of!((*ptr)._chain) as usize - ptr as usize },
5924        104usize,
5925        concat!(
5926            "Offset of field: ",
5927            stringify!(_IO_FILE),
5928            "::",
5929            stringify!(_chain)
5930        )
5931    );
5932    assert_eq!(
5933        unsafe { ::std::ptr::addr_of!((*ptr)._fileno) as usize - ptr as usize },
5934        112usize,
5935        concat!(
5936            "Offset of field: ",
5937            stringify!(_IO_FILE),
5938            "::",
5939            stringify!(_fileno)
5940        )
5941    );
5942    assert_eq!(
5943        unsafe { ::std::ptr::addr_of!((*ptr)._flags2) as usize - ptr as usize },
5944        116usize,
5945        concat!(
5946            "Offset of field: ",
5947            stringify!(_IO_FILE),
5948            "::",
5949            stringify!(_flags2)
5950        )
5951    );
5952    assert_eq!(
5953        unsafe { ::std::ptr::addr_of!((*ptr)._old_offset) as usize - ptr as usize },
5954        120usize,
5955        concat!(
5956            "Offset of field: ",
5957            stringify!(_IO_FILE),
5958            "::",
5959            stringify!(_old_offset)
5960        )
5961    );
5962    assert_eq!(
5963        unsafe { ::std::ptr::addr_of!((*ptr)._cur_column) as usize - ptr as usize },
5964        128usize,
5965        concat!(
5966            "Offset of field: ",
5967            stringify!(_IO_FILE),
5968            "::",
5969            stringify!(_cur_column)
5970        )
5971    );
5972    assert_eq!(
5973        unsafe { ::std::ptr::addr_of!((*ptr)._vtable_offset) as usize - ptr as usize },
5974        130usize,
5975        concat!(
5976            "Offset of field: ",
5977            stringify!(_IO_FILE),
5978            "::",
5979            stringify!(_vtable_offset)
5980        )
5981    );
5982    assert_eq!(
5983        unsafe { ::std::ptr::addr_of!((*ptr)._shortbuf) as usize - ptr as usize },
5984        131usize,
5985        concat!(
5986            "Offset of field: ",
5987            stringify!(_IO_FILE),
5988            "::",
5989            stringify!(_shortbuf)
5990        )
5991    );
5992    assert_eq!(
5993        unsafe { ::std::ptr::addr_of!((*ptr)._lock) as usize - ptr as usize },
5994        136usize,
5995        concat!(
5996            "Offset of field: ",
5997            stringify!(_IO_FILE),
5998            "::",
5999            stringify!(_lock)
6000        )
6001    );
6002    assert_eq!(
6003        unsafe { ::std::ptr::addr_of!((*ptr)._offset) as usize - ptr as usize },
6004        144usize,
6005        concat!(
6006            "Offset of field: ",
6007            stringify!(_IO_FILE),
6008            "::",
6009            stringify!(_offset)
6010        )
6011    );
6012    assert_eq!(
6013        unsafe { ::std::ptr::addr_of!((*ptr)._codecvt) as usize - ptr as usize },
6014        152usize,
6015        concat!(
6016            "Offset of field: ",
6017            stringify!(_IO_FILE),
6018            "::",
6019            stringify!(_codecvt)
6020        )
6021    );
6022    assert_eq!(
6023        unsafe { ::std::ptr::addr_of!((*ptr)._wide_data) as usize - ptr as usize },
6024        160usize,
6025        concat!(
6026            "Offset of field: ",
6027            stringify!(_IO_FILE),
6028            "::",
6029            stringify!(_wide_data)
6030        )
6031    );
6032    assert_eq!(
6033        unsafe { ::std::ptr::addr_of!((*ptr)._freeres_list) as usize - ptr as usize },
6034        168usize,
6035        concat!(
6036            "Offset of field: ",
6037            stringify!(_IO_FILE),
6038            "::",
6039            stringify!(_freeres_list)
6040        )
6041    );
6042    assert_eq!(
6043        unsafe { ::std::ptr::addr_of!((*ptr)._freeres_buf) as usize - ptr as usize },
6044        176usize,
6045        concat!(
6046            "Offset of field: ",
6047            stringify!(_IO_FILE),
6048            "::",
6049            stringify!(_freeres_buf)
6050        )
6051    );
6052    assert_eq!(
6053        unsafe { ::std::ptr::addr_of!((*ptr).__pad5) as usize - ptr as usize },
6054        184usize,
6055        concat!(
6056            "Offset of field: ",
6057            stringify!(_IO_FILE),
6058            "::",
6059            stringify!(__pad5)
6060        )
6061    );
6062    assert_eq!(
6063        unsafe { ::std::ptr::addr_of!((*ptr)._mode) as usize - ptr as usize },
6064        192usize,
6065        concat!(
6066            "Offset of field: ",
6067            stringify!(_IO_FILE),
6068            "::",
6069            stringify!(_mode)
6070        )
6071    );
6072    assert_eq!(
6073        unsafe { ::std::ptr::addr_of!((*ptr)._unused2) as usize - ptr as usize },
6074        196usize,
6075        concat!(
6076            "Offset of field: ",
6077            stringify!(_IO_FILE),
6078            "::",
6079            stringify!(_unused2)
6080        )
6081    );
6082}
6083pub type cookie_read_function_t = ::std::option::Option<
6084    unsafe extern "C" fn(
6085        __cookie: *mut ::std::os::raw::c_void,
6086        __buf: *mut ::std::os::raw::c_char,
6087        __nbytes: usize,
6088    ) -> __ssize_t,
6089>;
6090pub type cookie_write_function_t = ::std::option::Option<
6091    unsafe extern "C" fn(
6092        __cookie: *mut ::std::os::raw::c_void,
6093        __buf: *const ::std::os::raw::c_char,
6094        __nbytes: usize,
6095    ) -> __ssize_t,
6096>;
6097pub type cookie_seek_function_t = ::std::option::Option<
6098    unsafe extern "C" fn(
6099        __cookie: *mut ::std::os::raw::c_void,
6100        __pos: *mut __off64_t,
6101        __w: ::std::os::raw::c_int,
6102    ) -> ::std::os::raw::c_int,
6103>;
6104pub type cookie_close_function_t = ::std::option::Option<
6105    unsafe extern "C" fn(__cookie: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int,
6106>;
6107#[repr(C)]
6108#[derive(Debug, Copy, Clone)]
6109pub struct _IO_cookie_io_functions_t {
6110    pub read: cookie_read_function_t,
6111    pub write: cookie_write_function_t,
6112    pub seek: cookie_seek_function_t,
6113    pub close: cookie_close_function_t,
6114}
6115#[test]
6116fn bindgen_test_layout__IO_cookie_io_functions_t() {
6117    const UNINIT: ::std::mem::MaybeUninit<_IO_cookie_io_functions_t> =
6118        ::std::mem::MaybeUninit::uninit();
6119    let ptr = UNINIT.as_ptr();
6120    assert_eq!(
6121        ::std::mem::size_of::<_IO_cookie_io_functions_t>(),
6122        32usize,
6123        concat!("Size of: ", stringify!(_IO_cookie_io_functions_t))
6124    );
6125    assert_eq!(
6126        ::std::mem::align_of::<_IO_cookie_io_functions_t>(),
6127        8usize,
6128        concat!("Alignment of ", stringify!(_IO_cookie_io_functions_t))
6129    );
6130    assert_eq!(
6131        unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize },
6132        0usize,
6133        concat!(
6134            "Offset of field: ",
6135            stringify!(_IO_cookie_io_functions_t),
6136            "::",
6137            stringify!(read)
6138        )
6139    );
6140    assert_eq!(
6141        unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize },
6142        8usize,
6143        concat!(
6144            "Offset of field: ",
6145            stringify!(_IO_cookie_io_functions_t),
6146            "::",
6147            stringify!(write)
6148        )
6149    );
6150    assert_eq!(
6151        unsafe { ::std::ptr::addr_of!((*ptr).seek) as usize - ptr as usize },
6152        16usize,
6153        concat!(
6154            "Offset of field: ",
6155            stringify!(_IO_cookie_io_functions_t),
6156            "::",
6157            stringify!(seek)
6158        )
6159    );
6160    assert_eq!(
6161        unsafe { ::std::ptr::addr_of!((*ptr).close) as usize - ptr as usize },
6162        24usize,
6163        concat!(
6164            "Offset of field: ",
6165            stringify!(_IO_cookie_io_functions_t),
6166            "::",
6167            stringify!(close)
6168        )
6169    );
6170}
6171pub type cookie_io_functions_t = _IO_cookie_io_functions_t;
6172pub type off_t = __off_t;
6173pub type off64_t = __off64_t;
6174pub type fpos_t = __fpos_t;
6175pub type fpos64_t = __fpos64_t;
6176extern "C" {
6177    pub static mut stdin: *mut FILE;
6178}
6179extern "C" {
6180    pub static mut stdout: *mut FILE;
6181}
6182extern "C" {
6183    pub static mut stderr: *mut FILE;
6184}
6185extern "C" {
6186    pub fn remove(__filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
6187}
6188extern "C" {
6189    pub fn rename(
6190        __old: *const ::std::os::raw::c_char,
6191        __new: *const ::std::os::raw::c_char,
6192    ) -> ::std::os::raw::c_int;
6193}
6194extern "C" {
6195    pub fn renameat(
6196        __oldfd: ::std::os::raw::c_int,
6197        __old: *const ::std::os::raw::c_char,
6198        __newfd: ::std::os::raw::c_int,
6199        __new: *const ::std::os::raw::c_char,
6200    ) -> ::std::os::raw::c_int;
6201}
6202extern "C" {
6203    pub fn renameat2(
6204        __oldfd: ::std::os::raw::c_int,
6205        __old: *const ::std::os::raw::c_char,
6206        __newfd: ::std::os::raw::c_int,
6207        __new: *const ::std::os::raw::c_char,
6208        __flags: ::std::os::raw::c_uint,
6209    ) -> ::std::os::raw::c_int;
6210}
6211extern "C" {
6212    pub fn fclose(__stream: *mut FILE) -> ::std::os::raw::c_int;
6213}
6214extern "C" {
6215    pub fn tmpfile() -> *mut FILE;
6216}
6217extern "C" {
6218    pub fn tmpfile64() -> *mut FILE;
6219}
6220extern "C" {
6221    pub fn tmpnam(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
6222}
6223extern "C" {
6224    pub fn tmpnam_r(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
6225}
6226extern "C" {
6227    pub fn tempnam(
6228        __dir: *const ::std::os::raw::c_char,
6229        __pfx: *const ::std::os::raw::c_char,
6230    ) -> *mut ::std::os::raw::c_char;
6231}
6232extern "C" {
6233    pub fn fflush(__stream: *mut FILE) -> ::std::os::raw::c_int;
6234}
6235extern "C" {
6236    pub fn fflush_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
6237}
6238extern "C" {
6239    pub fn fcloseall() -> ::std::os::raw::c_int;
6240}
6241extern "C" {
6242    pub fn fopen(
6243        __filename: *const ::std::os::raw::c_char,
6244        __modes: *const ::std::os::raw::c_char,
6245    ) -> *mut FILE;
6246}
6247extern "C" {
6248    pub fn freopen(
6249        __filename: *const ::std::os::raw::c_char,
6250        __modes: *const ::std::os::raw::c_char,
6251        __stream: *mut FILE,
6252    ) -> *mut FILE;
6253}
6254extern "C" {
6255    pub fn fopen64(
6256        __filename: *const ::std::os::raw::c_char,
6257        __modes: *const ::std::os::raw::c_char,
6258    ) -> *mut FILE;
6259}
6260extern "C" {
6261    pub fn freopen64(
6262        __filename: *const ::std::os::raw::c_char,
6263        __modes: *const ::std::os::raw::c_char,
6264        __stream: *mut FILE,
6265    ) -> *mut FILE;
6266}
6267extern "C" {
6268    pub fn fdopen(__fd: ::std::os::raw::c_int, __modes: *const ::std::os::raw::c_char)
6269        -> *mut FILE;
6270}
6271extern "C" {
6272    pub fn fopencookie(
6273        __magic_cookie: *mut ::std::os::raw::c_void,
6274        __modes: *const ::std::os::raw::c_char,
6275        __io_funcs: cookie_io_functions_t,
6276    ) -> *mut FILE;
6277}
6278extern "C" {
6279    pub fn fmemopen(
6280        __s: *mut ::std::os::raw::c_void,
6281        __len: usize,
6282        __modes: *const ::std::os::raw::c_char,
6283    ) -> *mut FILE;
6284}
6285extern "C" {
6286    pub fn open_memstream(
6287        __bufloc: *mut *mut ::std::os::raw::c_char,
6288        __sizeloc: *mut usize,
6289    ) -> *mut FILE;
6290}
6291extern "C" {
6292    pub fn setbuf(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char);
6293}
6294extern "C" {
6295    pub fn setvbuf(
6296        __stream: *mut FILE,
6297        __buf: *mut ::std::os::raw::c_char,
6298        __modes: ::std::os::raw::c_int,
6299        __n: usize,
6300    ) -> ::std::os::raw::c_int;
6301}
6302extern "C" {
6303    pub fn setbuffer(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char, __size: usize);
6304}
6305extern "C" {
6306    pub fn setlinebuf(__stream: *mut FILE);
6307}
6308extern "C" {
6309    pub fn fprintf(
6310        __stream: *mut FILE,
6311        __format: *const ::std::os::raw::c_char,
6312        ...
6313    ) -> ::std::os::raw::c_int;
6314}
6315extern "C" {
6316    pub fn printf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
6317}
6318extern "C" {
6319    pub fn sprintf(
6320        __s: *mut ::std::os::raw::c_char,
6321        __format: *const ::std::os::raw::c_char,
6322        ...
6323    ) -> ::std::os::raw::c_int;
6324}
6325extern "C" {
6326    pub fn vfprintf(
6327        __s: *mut FILE,
6328        __format: *const ::std::os::raw::c_char,
6329        __arg: *mut __va_list_tag,
6330    ) -> ::std::os::raw::c_int;
6331}
6332extern "C" {
6333    pub fn vprintf(
6334        __format: *const ::std::os::raw::c_char,
6335        __arg: *mut __va_list_tag,
6336    ) -> ::std::os::raw::c_int;
6337}
6338extern "C" {
6339    pub fn vsprintf(
6340        __s: *mut ::std::os::raw::c_char,
6341        __format: *const ::std::os::raw::c_char,
6342        __arg: *mut __va_list_tag,
6343    ) -> ::std::os::raw::c_int;
6344}
6345extern "C" {
6346    pub fn snprintf(
6347        __s: *mut ::std::os::raw::c_char,
6348        __maxlen: usize,
6349        __format: *const ::std::os::raw::c_char,
6350        ...
6351    ) -> ::std::os::raw::c_int;
6352}
6353extern "C" {
6354    pub fn vsnprintf(
6355        __s: *mut ::std::os::raw::c_char,
6356        __maxlen: usize,
6357        __format: *const ::std::os::raw::c_char,
6358        __arg: *mut __va_list_tag,
6359    ) -> ::std::os::raw::c_int;
6360}
6361extern "C" {
6362    pub fn vasprintf(
6363        __ptr: *mut *mut ::std::os::raw::c_char,
6364        __f: *const ::std::os::raw::c_char,
6365        __arg: *mut __va_list_tag,
6366    ) -> ::std::os::raw::c_int;
6367}
6368extern "C" {
6369    pub fn __asprintf(
6370        __ptr: *mut *mut ::std::os::raw::c_char,
6371        __fmt: *const ::std::os::raw::c_char,
6372        ...
6373    ) -> ::std::os::raw::c_int;
6374}
6375extern "C" {
6376    pub fn asprintf(
6377        __ptr: *mut *mut ::std::os::raw::c_char,
6378        __fmt: *const ::std::os::raw::c_char,
6379        ...
6380    ) -> ::std::os::raw::c_int;
6381}
6382extern "C" {
6383    pub fn vdprintf(
6384        __fd: ::std::os::raw::c_int,
6385        __fmt: *const ::std::os::raw::c_char,
6386        __arg: *mut __va_list_tag,
6387    ) -> ::std::os::raw::c_int;
6388}
6389extern "C" {
6390    pub fn dprintf(
6391        __fd: ::std::os::raw::c_int,
6392        __fmt: *const ::std::os::raw::c_char,
6393        ...
6394    ) -> ::std::os::raw::c_int;
6395}
6396extern "C" {
6397    pub fn fscanf(
6398        __stream: *mut FILE,
6399        __format: *const ::std::os::raw::c_char,
6400        ...
6401    ) -> ::std::os::raw::c_int;
6402}
6403extern "C" {
6404    pub fn scanf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
6405}
6406extern "C" {
6407    pub fn sscanf(
6408        __s: *const ::std::os::raw::c_char,
6409        __format: *const ::std::os::raw::c_char,
6410        ...
6411    ) -> ::std::os::raw::c_int;
6412}
6413pub type _Float32 = f32;
6414pub type _Float64 = f64;
6415pub type _Float32x = f64;
6416pub type _Float64x = u128;
6417extern "C" {
6418    #[link_name = "\u{1}__isoc99_fscanf"]
6419    pub fn fscanf1(
6420        __stream: *mut FILE,
6421        __format: *const ::std::os::raw::c_char,
6422        ...
6423    ) -> ::std::os::raw::c_int;
6424}
6425extern "C" {
6426    #[link_name = "\u{1}__isoc99_scanf"]
6427    pub fn scanf1(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
6428}
6429extern "C" {
6430    #[link_name = "\u{1}__isoc99_sscanf"]
6431    pub fn sscanf1(
6432        __s: *const ::std::os::raw::c_char,
6433        __format: *const ::std::os::raw::c_char,
6434        ...
6435    ) -> ::std::os::raw::c_int;
6436}
6437extern "C" {
6438    pub fn vfscanf(
6439        __s: *mut FILE,
6440        __format: *const ::std::os::raw::c_char,
6441        __arg: *mut __va_list_tag,
6442    ) -> ::std::os::raw::c_int;
6443}
6444extern "C" {
6445    pub fn vscanf(
6446        __format: *const ::std::os::raw::c_char,
6447        __arg: *mut __va_list_tag,
6448    ) -> ::std::os::raw::c_int;
6449}
6450extern "C" {
6451    pub fn vsscanf(
6452        __s: *const ::std::os::raw::c_char,
6453        __format: *const ::std::os::raw::c_char,
6454        __arg: *mut __va_list_tag,
6455    ) -> ::std::os::raw::c_int;
6456}
6457extern "C" {
6458    #[link_name = "\u{1}__isoc99_vfscanf"]
6459    pub fn vfscanf1(
6460        __s: *mut FILE,
6461        __format: *const ::std::os::raw::c_char,
6462        __arg: *mut __va_list_tag,
6463    ) -> ::std::os::raw::c_int;
6464}
6465extern "C" {
6466    #[link_name = "\u{1}__isoc99_vscanf"]
6467    pub fn vscanf1(
6468        __format: *const ::std::os::raw::c_char,
6469        __arg: *mut __va_list_tag,
6470    ) -> ::std::os::raw::c_int;
6471}
6472extern "C" {
6473    #[link_name = "\u{1}__isoc99_vsscanf"]
6474    pub fn vsscanf1(
6475        __s: *const ::std::os::raw::c_char,
6476        __format: *const ::std::os::raw::c_char,
6477        __arg: *mut __va_list_tag,
6478    ) -> ::std::os::raw::c_int;
6479}
6480extern "C" {
6481    pub fn fgetc(__stream: *mut FILE) -> ::std::os::raw::c_int;
6482}
6483extern "C" {
6484    pub fn getc(__stream: *mut FILE) -> ::std::os::raw::c_int;
6485}
6486extern "C" {
6487    pub fn getchar() -> ::std::os::raw::c_int;
6488}
6489extern "C" {
6490    pub fn getc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
6491}
6492extern "C" {
6493    pub fn getchar_unlocked() -> ::std::os::raw::c_int;
6494}
6495extern "C" {
6496    pub fn fgetc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
6497}
6498extern "C" {
6499    pub fn fputc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
6500}
6501extern "C" {
6502    pub fn putc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
6503}
6504extern "C" {
6505    pub fn putchar(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
6506}
6507extern "C" {
6508    pub fn fputc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE)
6509        -> ::std::os::raw::c_int;
6510}
6511extern "C" {
6512    pub fn putc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
6513}
6514extern "C" {
6515    pub fn putchar_unlocked(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
6516}
6517extern "C" {
6518    pub fn getw(__stream: *mut FILE) -> ::std::os::raw::c_int;
6519}
6520extern "C" {
6521    pub fn putw(__w: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
6522}
6523extern "C" {
6524    pub fn fgets(
6525        __s: *mut ::std::os::raw::c_char,
6526        __n: ::std::os::raw::c_int,
6527        __stream: *mut FILE,
6528    ) -> *mut ::std::os::raw::c_char;
6529}
6530extern "C" {
6531    pub fn gets(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
6532}
6533extern "C" {
6534    pub fn fgets_unlocked(
6535        __s: *mut ::std::os::raw::c_char,
6536        __n: ::std::os::raw::c_int,
6537        __stream: *mut FILE,
6538    ) -> *mut ::std::os::raw::c_char;
6539}
6540extern "C" {
6541    pub fn __getdelim(
6542        __lineptr: *mut *mut ::std::os::raw::c_char,
6543        __n: *mut usize,
6544        __delimiter: ::std::os::raw::c_int,
6545        __stream: *mut FILE,
6546    ) -> __ssize_t;
6547}
6548extern "C" {
6549    pub fn getdelim(
6550        __lineptr: *mut *mut ::std::os::raw::c_char,
6551        __n: *mut usize,
6552        __delimiter: ::std::os::raw::c_int,
6553        __stream: *mut FILE,
6554    ) -> __ssize_t;
6555}
6556extern "C" {
6557    pub fn getline(
6558        __lineptr: *mut *mut ::std::os::raw::c_char,
6559        __n: *mut usize,
6560        __stream: *mut FILE,
6561    ) -> __ssize_t;
6562}
6563extern "C" {
6564    pub fn fputs(__s: *const ::std::os::raw::c_char, __stream: *mut FILE) -> ::std::os::raw::c_int;
6565}
6566extern "C" {
6567    pub fn puts(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
6568}
6569extern "C" {
6570    pub fn ungetc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
6571}
6572extern "C" {
6573    pub fn fread(
6574        __ptr: *mut ::std::os::raw::c_void,
6575        __size: usize,
6576        __n: usize,
6577        __stream: *mut FILE,
6578    ) -> usize;
6579}
6580extern "C" {
6581    pub fn fwrite(
6582        __ptr: *const ::std::os::raw::c_void,
6583        __size: usize,
6584        __n: usize,
6585        __s: *mut FILE,
6586    ) -> usize;
6587}
6588extern "C" {
6589    pub fn fputs_unlocked(
6590        __s: *const ::std::os::raw::c_char,
6591        __stream: *mut FILE,
6592    ) -> ::std::os::raw::c_int;
6593}
6594extern "C" {
6595    pub fn fread_unlocked(
6596        __ptr: *mut ::std::os::raw::c_void,
6597        __size: usize,
6598        __n: usize,
6599        __stream: *mut FILE,
6600    ) -> usize;
6601}
6602extern "C" {
6603    pub fn fwrite_unlocked(
6604        __ptr: *const ::std::os::raw::c_void,
6605        __size: usize,
6606        __n: usize,
6607        __stream: *mut FILE,
6608    ) -> usize;
6609}
6610extern "C" {
6611    pub fn fseek(
6612        __stream: *mut FILE,
6613        __off: ::std::os::raw::c_long,
6614        __whence: ::std::os::raw::c_int,
6615    ) -> ::std::os::raw::c_int;
6616}
6617extern "C" {
6618    pub fn ftell(__stream: *mut FILE) -> ::std::os::raw::c_long;
6619}
6620extern "C" {
6621    pub fn rewind(__stream: *mut FILE);
6622}
6623extern "C" {
6624    pub fn fseeko(
6625        __stream: *mut FILE,
6626        __off: __off_t,
6627        __whence: ::std::os::raw::c_int,
6628    ) -> ::std::os::raw::c_int;
6629}
6630extern "C" {
6631    pub fn ftello(__stream: *mut FILE) -> __off_t;
6632}
6633extern "C" {
6634    pub fn fgetpos(__stream: *mut FILE, __pos: *mut fpos_t) -> ::std::os::raw::c_int;
6635}
6636extern "C" {
6637    pub fn fsetpos(__stream: *mut FILE, __pos: *const fpos_t) -> ::std::os::raw::c_int;
6638}
6639extern "C" {
6640    pub fn fseeko64(
6641        __stream: *mut FILE,
6642        __off: __off64_t,
6643        __whence: ::std::os::raw::c_int,
6644    ) -> ::std::os::raw::c_int;
6645}
6646extern "C" {
6647    pub fn ftello64(__stream: *mut FILE) -> __off64_t;
6648}
6649extern "C" {
6650    pub fn fgetpos64(__stream: *mut FILE, __pos: *mut fpos64_t) -> ::std::os::raw::c_int;
6651}
6652extern "C" {
6653    pub fn fsetpos64(__stream: *mut FILE, __pos: *const fpos64_t) -> ::std::os::raw::c_int;
6654}
6655extern "C" {
6656    pub fn clearerr(__stream: *mut FILE);
6657}
6658extern "C" {
6659    pub fn feof(__stream: *mut FILE) -> ::std::os::raw::c_int;
6660}
6661extern "C" {
6662    pub fn ferror(__stream: *mut FILE) -> ::std::os::raw::c_int;
6663}
6664extern "C" {
6665    pub fn clearerr_unlocked(__stream: *mut FILE);
6666}
6667extern "C" {
6668    pub fn feof_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
6669}
6670extern "C" {
6671    pub fn ferror_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
6672}
6673extern "C" {
6674    pub fn perror(__s: *const ::std::os::raw::c_char);
6675}
6676extern "C" {
6677    pub fn fileno(__stream: *mut FILE) -> ::std::os::raw::c_int;
6678}
6679extern "C" {
6680    pub fn fileno_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
6681}
6682extern "C" {
6683    pub fn pclose(__stream: *mut FILE) -> ::std::os::raw::c_int;
6684}
6685extern "C" {
6686    pub fn popen(
6687        __command: *const ::std::os::raw::c_char,
6688        __modes: *const ::std::os::raw::c_char,
6689    ) -> *mut FILE;
6690}
6691extern "C" {
6692    pub fn ctermid(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
6693}
6694extern "C" {
6695    pub fn cuserid(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
6696}
6697#[repr(C)]
6698#[derive(Debug, Copy, Clone)]
6699pub struct obstack {
6700    _unused: [u8; 0],
6701}
6702extern "C" {
6703    pub fn obstack_printf(
6704        __obstack: *mut obstack,
6705        __format: *const ::std::os::raw::c_char,
6706        ...
6707    ) -> ::std::os::raw::c_int;
6708}
6709extern "C" {
6710    pub fn obstack_vprintf(
6711        __obstack: *mut obstack,
6712        __format: *const ::std::os::raw::c_char,
6713        __args: *mut __va_list_tag,
6714    ) -> ::std::os::raw::c_int;
6715}
6716extern "C" {
6717    pub fn flockfile(__stream: *mut FILE);
6718}
6719extern "C" {
6720    pub fn ftrylockfile(__stream: *mut FILE) -> ::std::os::raw::c_int;
6721}
6722extern "C" {
6723    pub fn funlockfile(__stream: *mut FILE);
6724}
6725extern "C" {
6726    pub fn __uflow(arg1: *mut FILE) -> ::std::os::raw::c_int;
6727}
6728extern "C" {
6729    pub fn __overflow(arg1: *mut FILE, arg2: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
6730}
6731pub const k_cbMaxGameServerGameDir: ::std::os::raw::c_int = 32;
6732pub const k_cbMaxGameServerMapName: ::std::os::raw::c_int = 32;
6733pub const k_cbMaxGameServerGameDescription: ::std::os::raw::c_int = 64;
6734pub const k_cbMaxGameServerName: ::std::os::raw::c_int = 64;
6735pub const k_cbMaxGameServerTags: ::std::os::raw::c_int = 128;
6736pub const k_cbMaxGameServerGameData: ::std::os::raw::c_int = 2048;
6737#[doc = " Store key/value pair used in matchmaking queries.\n\n Actually, the name Key/Value is a bit misleading.  The \"key\" is better\n understood as \"filter operation code\" and the \"value\" is the operand to this\n filter operation.  The meaning of the operand depends upon the filter."]
6738#[repr(C)]
6739#[derive(Debug, Copy, Clone)]
6740pub struct MatchMakingKeyValuePair_t {
6741    pub m_szKey: [::std::os::raw::c_char; 256usize],
6742    pub m_szValue: [::std::os::raw::c_char; 256usize],
6743}
6744#[test]
6745fn bindgen_test_layout_MatchMakingKeyValuePair_t() {
6746    const UNINIT: ::std::mem::MaybeUninit<MatchMakingKeyValuePair_t> =
6747        ::std::mem::MaybeUninit::uninit();
6748    let ptr = UNINIT.as_ptr();
6749    assert_eq!(
6750        ::std::mem::size_of::<MatchMakingKeyValuePair_t>(),
6751        512usize,
6752        concat!("Size of: ", stringify!(MatchMakingKeyValuePair_t))
6753    );
6754    assert_eq!(
6755        ::std::mem::align_of::<MatchMakingKeyValuePair_t>(),
6756        1usize,
6757        concat!("Alignment of ", stringify!(MatchMakingKeyValuePair_t))
6758    );
6759    assert_eq!(
6760        unsafe { ::std::ptr::addr_of!((*ptr).m_szKey) as usize - ptr as usize },
6761        0usize,
6762        concat!(
6763            "Offset of field: ",
6764            stringify!(MatchMakingKeyValuePair_t),
6765            "::",
6766            stringify!(m_szKey)
6767        )
6768    );
6769    assert_eq!(
6770        unsafe { ::std::ptr::addr_of!((*ptr).m_szValue) as usize - ptr as usize },
6771        256usize,
6772        concat!(
6773            "Offset of field: ",
6774            stringify!(MatchMakingKeyValuePair_t),
6775            "::",
6776            stringify!(m_szValue)
6777        )
6778    );
6779}
6780#[repr(u32)]
6781#[non_exhaustive]
6782#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6783pub enum EMatchMakingServerResponse {
6784    eServerResponded = 0,
6785    eServerFailedToRespond = 1,
6786    eNoServersListedOnMasterServer = 2,
6787}
6788#[repr(C)]
6789#[derive(Debug, Copy, Clone)]
6790pub struct servernetadr_t {
6791    pub m_usConnectionPort: uint16,
6792    pub m_usQueryPort: uint16,
6793    pub m_unIP: uint32,
6794}
6795#[test]
6796fn bindgen_test_layout_servernetadr_t() {
6797    const UNINIT: ::std::mem::MaybeUninit<servernetadr_t> = ::std::mem::MaybeUninit::uninit();
6798    let ptr = UNINIT.as_ptr();
6799    assert_eq!(
6800        ::std::mem::size_of::<servernetadr_t>(),
6801        8usize,
6802        concat!("Size of: ", stringify!(servernetadr_t))
6803    );
6804    assert_eq!(
6805        ::std::mem::align_of::<servernetadr_t>(),
6806        4usize,
6807        concat!("Alignment of ", stringify!(servernetadr_t))
6808    );
6809    assert_eq!(
6810        unsafe { ::std::ptr::addr_of!((*ptr).m_usConnectionPort) as usize - ptr as usize },
6811        0usize,
6812        concat!(
6813            "Offset of field: ",
6814            stringify!(servernetadr_t),
6815            "::",
6816            stringify!(m_usConnectionPort)
6817        )
6818    );
6819    assert_eq!(
6820        unsafe { ::std::ptr::addr_of!((*ptr).m_usQueryPort) as usize - ptr as usize },
6821        2usize,
6822        concat!(
6823            "Offset of field: ",
6824            stringify!(servernetadr_t),
6825            "::",
6826            stringify!(m_usQueryPort)
6827        )
6828    );
6829    assert_eq!(
6830        unsafe { ::std::ptr::addr_of!((*ptr).m_unIP) as usize - ptr as usize },
6831        4usize,
6832        concat!(
6833            "Offset of field: ",
6834            stringify!(servernetadr_t),
6835            "::",
6836            stringify!(m_unIP)
6837        )
6838    );
6839}
6840#[repr(C)]
6841#[derive(Copy, Clone)]
6842pub struct gameserveritem_t {
6843    #[doc = "< IP/Query Port/Connection Port for this server"]
6844    pub m_NetAdr: servernetadr_t,
6845    #[doc = "< current ping time in milliseconds"]
6846    pub m_nPing: ::std::os::raw::c_int,
6847    #[doc = "< server has responded successfully in the past"]
6848    pub m_bHadSuccessfulResponse: bool,
6849    #[doc = "< server is marked as not responding and should no longer be refreshed"]
6850    pub m_bDoNotRefresh: bool,
6851    #[doc = "< current game directory"]
6852    pub m_szGameDir: [::std::os::raw::c_char; 32usize],
6853    #[doc = "< current map"]
6854    pub m_szMap: [::std::os::raw::c_char; 32usize],
6855    #[doc = "< game description"]
6856    pub m_szGameDescription: [::std::os::raw::c_char; 64usize],
6857    #[doc = "< Steam App ID of this server"]
6858    pub m_nAppID: uint32,
6859    #[doc = "< total number of players currently on the server.  INCLUDES BOTS!!"]
6860    pub m_nPlayers: ::std::os::raw::c_int,
6861    #[doc = "< Maximum players that can join this server"]
6862    pub m_nMaxPlayers: ::std::os::raw::c_int,
6863    #[doc = "< Number of bots (i.e simulated players) on this server"]
6864    pub m_nBotPlayers: ::std::os::raw::c_int,
6865    #[doc = "< true if this server needs a password to join"]
6866    pub m_bPassword: bool,
6867    #[doc = "< Is this server protected by VAC"]
6868    pub m_bSecure: bool,
6869    #[doc = "< time (in unix time) when this server was last played on (for favorite/history servers)"]
6870    pub m_ulTimeLastPlayed: uint32,
6871    #[doc = "< server version as reported to Steam"]
6872    pub m_nServerVersion: ::std::os::raw::c_int,
6873    #[doc = " Game server name"]
6874    pub m_szServerName: [::std::os::raw::c_char; 64usize],
6875    #[doc = " the tags this server exposes"]
6876    pub m_szGameTags: [::std::os::raw::c_char; 128usize],
6877    #[doc = " steamID of the game server - invalid if it's doesn't have one (old server, or not connected to Steam)"]
6878    pub m_steamID: CSteamID,
6879}
6880#[test]
6881fn bindgen_test_layout_gameserveritem_t() {
6882    const UNINIT: ::std::mem::MaybeUninit<gameserveritem_t> = ::std::mem::MaybeUninit::uninit();
6883    let ptr = UNINIT.as_ptr();
6884    assert_eq!(
6885        ::std::mem::size_of::<gameserveritem_t>(),
6886        372usize,
6887        concat!("Size of: ", stringify!(gameserveritem_t))
6888    );
6889    assert_eq!(
6890        ::std::mem::align_of::<gameserveritem_t>(),
6891        4usize,
6892        concat!("Alignment of ", stringify!(gameserveritem_t))
6893    );
6894    assert_eq!(
6895        unsafe { ::std::ptr::addr_of!((*ptr).m_NetAdr) as usize - ptr as usize },
6896        0usize,
6897        concat!(
6898            "Offset of field: ",
6899            stringify!(gameserveritem_t),
6900            "::",
6901            stringify!(m_NetAdr)
6902        )
6903    );
6904    assert_eq!(
6905        unsafe { ::std::ptr::addr_of!((*ptr).m_nPing) as usize - ptr as usize },
6906        8usize,
6907        concat!(
6908            "Offset of field: ",
6909            stringify!(gameserveritem_t),
6910            "::",
6911            stringify!(m_nPing)
6912        )
6913    );
6914    assert_eq!(
6915        unsafe { ::std::ptr::addr_of!((*ptr).m_bHadSuccessfulResponse) as usize - ptr as usize },
6916        12usize,
6917        concat!(
6918            "Offset of field: ",
6919            stringify!(gameserveritem_t),
6920            "::",
6921            stringify!(m_bHadSuccessfulResponse)
6922        )
6923    );
6924    assert_eq!(
6925        unsafe { ::std::ptr::addr_of!((*ptr).m_bDoNotRefresh) as usize - ptr as usize },
6926        13usize,
6927        concat!(
6928            "Offset of field: ",
6929            stringify!(gameserveritem_t),
6930            "::",
6931            stringify!(m_bDoNotRefresh)
6932        )
6933    );
6934    assert_eq!(
6935        unsafe { ::std::ptr::addr_of!((*ptr).m_szGameDir) as usize - ptr as usize },
6936        14usize,
6937        concat!(
6938            "Offset of field: ",
6939            stringify!(gameserveritem_t),
6940            "::",
6941            stringify!(m_szGameDir)
6942        )
6943    );
6944    assert_eq!(
6945        unsafe { ::std::ptr::addr_of!((*ptr).m_szMap) as usize - ptr as usize },
6946        46usize,
6947        concat!(
6948            "Offset of field: ",
6949            stringify!(gameserveritem_t),
6950            "::",
6951            stringify!(m_szMap)
6952        )
6953    );
6954    assert_eq!(
6955        unsafe { ::std::ptr::addr_of!((*ptr).m_szGameDescription) as usize - ptr as usize },
6956        78usize,
6957        concat!(
6958            "Offset of field: ",
6959            stringify!(gameserveritem_t),
6960            "::",
6961            stringify!(m_szGameDescription)
6962        )
6963    );
6964    assert_eq!(
6965        unsafe { ::std::ptr::addr_of!((*ptr).m_nAppID) as usize - ptr as usize },
6966        144usize,
6967        concat!(
6968            "Offset of field: ",
6969            stringify!(gameserveritem_t),
6970            "::",
6971            stringify!(m_nAppID)
6972        )
6973    );
6974    assert_eq!(
6975        unsafe { ::std::ptr::addr_of!((*ptr).m_nPlayers) as usize - ptr as usize },
6976        148usize,
6977        concat!(
6978            "Offset of field: ",
6979            stringify!(gameserveritem_t),
6980            "::",
6981            stringify!(m_nPlayers)
6982        )
6983    );
6984    assert_eq!(
6985        unsafe { ::std::ptr::addr_of!((*ptr).m_nMaxPlayers) as usize - ptr as usize },
6986        152usize,
6987        concat!(
6988            "Offset of field: ",
6989            stringify!(gameserveritem_t),
6990            "::",
6991            stringify!(m_nMaxPlayers)
6992        )
6993    );
6994    assert_eq!(
6995        unsafe { ::std::ptr::addr_of!((*ptr).m_nBotPlayers) as usize - ptr as usize },
6996        156usize,
6997        concat!(
6998            "Offset of field: ",
6999            stringify!(gameserveritem_t),
7000            "::",
7001            stringify!(m_nBotPlayers)
7002        )
7003    );
7004    assert_eq!(
7005        unsafe { ::std::ptr::addr_of!((*ptr).m_bPassword) as usize - ptr as usize },
7006        160usize,
7007        concat!(
7008            "Offset of field: ",
7009            stringify!(gameserveritem_t),
7010            "::",
7011            stringify!(m_bPassword)
7012        )
7013    );
7014    assert_eq!(
7015        unsafe { ::std::ptr::addr_of!((*ptr).m_bSecure) as usize - ptr as usize },
7016        161usize,
7017        concat!(
7018            "Offset of field: ",
7019            stringify!(gameserveritem_t),
7020            "::",
7021            stringify!(m_bSecure)
7022        )
7023    );
7024    assert_eq!(
7025        unsafe { ::std::ptr::addr_of!((*ptr).m_ulTimeLastPlayed) as usize - ptr as usize },
7026        164usize,
7027        concat!(
7028            "Offset of field: ",
7029            stringify!(gameserveritem_t),
7030            "::",
7031            stringify!(m_ulTimeLastPlayed)
7032        )
7033    );
7034    assert_eq!(
7035        unsafe { ::std::ptr::addr_of!((*ptr).m_nServerVersion) as usize - ptr as usize },
7036        168usize,
7037        concat!(
7038            "Offset of field: ",
7039            stringify!(gameserveritem_t),
7040            "::",
7041            stringify!(m_nServerVersion)
7042        )
7043    );
7044    assert_eq!(
7045        unsafe { ::std::ptr::addr_of!((*ptr).m_szServerName) as usize - ptr as usize },
7046        172usize,
7047        concat!(
7048            "Offset of field: ",
7049            stringify!(gameserveritem_t),
7050            "::",
7051            stringify!(m_szServerName)
7052        )
7053    );
7054    assert_eq!(
7055        unsafe { ::std::ptr::addr_of!((*ptr).m_szGameTags) as usize - ptr as usize },
7056        236usize,
7057        concat!(
7058            "Offset of field: ",
7059            stringify!(gameserveritem_t),
7060            "::",
7061            stringify!(m_szGameTags)
7062        )
7063    );
7064    assert_eq!(
7065        unsafe { ::std::ptr::addr_of!((*ptr).m_steamID) as usize - ptr as usize },
7066        364usize,
7067        concat!(
7068            "Offset of field: ",
7069            stringify!(gameserveritem_t),
7070            "::",
7071            stringify!(m_steamID)
7072        )
7073    );
7074}
7075#[repr(u32)]
7076#[non_exhaustive]
7077#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7078pub enum ELobbyType {
7079    k_ELobbyTypePrivate = 0,
7080    k_ELobbyTypeFriendsOnly = 1,
7081    k_ELobbyTypePublic = 2,
7082    k_ELobbyTypeInvisible = 3,
7083    k_ELobbyTypePrivateUnique = 4,
7084}
7085#[repr(i32)]
7086#[non_exhaustive]
7087#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7088pub enum ELobbyComparison {
7089    k_ELobbyComparisonEqualToOrLessThan = -2,
7090    k_ELobbyComparisonLessThan = -1,
7091    k_ELobbyComparisonEqual = 0,
7092    k_ELobbyComparisonGreaterThan = 1,
7093    k_ELobbyComparisonEqualToOrGreaterThan = 2,
7094    k_ELobbyComparisonNotEqual = 3,
7095}
7096#[repr(u32)]
7097#[non_exhaustive]
7098#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7099pub enum ELobbyDistanceFilter {
7100    k_ELobbyDistanceFilterClose = 0,
7101    k_ELobbyDistanceFilterDefault = 1,
7102    k_ELobbyDistanceFilterFar = 2,
7103    k_ELobbyDistanceFilterWorldwide = 3,
7104}
7105#[repr(C)]
7106pub struct ISteamMatchmaking__bindgen_vtable(::std::os::raw::c_void);
7107#[repr(C)]
7108#[derive(Debug, Copy, Clone)]
7109pub struct ISteamMatchmaking {
7110    pub vtable_: *const ISteamMatchmaking__bindgen_vtable,
7111}
7112#[test]
7113fn bindgen_test_layout_ISteamMatchmaking() {
7114    assert_eq!(
7115        ::std::mem::size_of::<ISteamMatchmaking>(),
7116        8usize,
7117        concat!("Size of: ", stringify!(ISteamMatchmaking))
7118    );
7119    assert_eq!(
7120        ::std::mem::align_of::<ISteamMatchmaking>(),
7121        8usize,
7122        concat!("Alignment of ", stringify!(ISteamMatchmaking))
7123    );
7124}
7125pub type HServerListRequest = *mut ::std::os::raw::c_void;
7126#[repr(C)]
7127pub struct ISteamMatchmakingServerListResponse__bindgen_vtable(::std::os::raw::c_void);
7128#[repr(C)]
7129#[derive(Debug, Copy, Clone)]
7130pub struct ISteamMatchmakingServerListResponse {
7131    pub vtable_: *const ISteamMatchmakingServerListResponse__bindgen_vtable,
7132}
7133#[test]
7134fn bindgen_test_layout_ISteamMatchmakingServerListResponse() {
7135    assert_eq!(
7136        ::std::mem::size_of::<ISteamMatchmakingServerListResponse>(),
7137        8usize,
7138        concat!("Size of: ", stringify!(ISteamMatchmakingServerListResponse))
7139    );
7140    assert_eq!(
7141        ::std::mem::align_of::<ISteamMatchmakingServerListResponse>(),
7142        8usize,
7143        concat!(
7144            "Alignment of ",
7145            stringify!(ISteamMatchmakingServerListResponse)
7146        )
7147    );
7148}
7149#[repr(C)]
7150pub struct ISteamMatchmakingPingResponse__bindgen_vtable(::std::os::raw::c_void);
7151#[repr(C)]
7152#[derive(Debug, Copy, Clone)]
7153pub struct ISteamMatchmakingPingResponse {
7154    pub vtable_: *const ISteamMatchmakingPingResponse__bindgen_vtable,
7155}
7156#[test]
7157fn bindgen_test_layout_ISteamMatchmakingPingResponse() {
7158    assert_eq!(
7159        ::std::mem::size_of::<ISteamMatchmakingPingResponse>(),
7160        8usize,
7161        concat!("Size of: ", stringify!(ISteamMatchmakingPingResponse))
7162    );
7163    assert_eq!(
7164        ::std::mem::align_of::<ISteamMatchmakingPingResponse>(),
7165        8usize,
7166        concat!("Alignment of ", stringify!(ISteamMatchmakingPingResponse))
7167    );
7168}
7169#[repr(C)]
7170pub struct ISteamMatchmakingPlayersResponse__bindgen_vtable(::std::os::raw::c_void);
7171#[repr(C)]
7172#[derive(Debug, Copy, Clone)]
7173pub struct ISteamMatchmakingPlayersResponse {
7174    pub vtable_: *const ISteamMatchmakingPlayersResponse__bindgen_vtable,
7175}
7176#[test]
7177fn bindgen_test_layout_ISteamMatchmakingPlayersResponse() {
7178    assert_eq!(
7179        ::std::mem::size_of::<ISteamMatchmakingPlayersResponse>(),
7180        8usize,
7181        concat!("Size of: ", stringify!(ISteamMatchmakingPlayersResponse))
7182    );
7183    assert_eq!(
7184        ::std::mem::align_of::<ISteamMatchmakingPlayersResponse>(),
7185        8usize,
7186        concat!(
7187            "Alignment of ",
7188            stringify!(ISteamMatchmakingPlayersResponse)
7189        )
7190    );
7191}
7192#[repr(C)]
7193pub struct ISteamMatchmakingRulesResponse__bindgen_vtable(::std::os::raw::c_void);
7194#[repr(C)]
7195#[derive(Debug, Copy, Clone)]
7196pub struct ISteamMatchmakingRulesResponse {
7197    pub vtable_: *const ISteamMatchmakingRulesResponse__bindgen_vtable,
7198}
7199#[test]
7200fn bindgen_test_layout_ISteamMatchmakingRulesResponse() {
7201    assert_eq!(
7202        ::std::mem::size_of::<ISteamMatchmakingRulesResponse>(),
7203        8usize,
7204        concat!("Size of: ", stringify!(ISteamMatchmakingRulesResponse))
7205    );
7206    assert_eq!(
7207        ::std::mem::align_of::<ISteamMatchmakingRulesResponse>(),
7208        8usize,
7209        concat!("Alignment of ", stringify!(ISteamMatchmakingRulesResponse))
7210    );
7211}
7212pub type HServerQuery = ::std::os::raw::c_int;
7213pub const HSERVERQUERY_INVALID: ::std::os::raw::c_int = -1;
7214#[repr(C)]
7215pub struct ISteamMatchmakingServers__bindgen_vtable(::std::os::raw::c_void);
7216#[repr(C)]
7217#[derive(Debug, Copy, Clone)]
7218pub struct ISteamMatchmakingServers {
7219    pub vtable_: *const ISteamMatchmakingServers__bindgen_vtable,
7220}
7221#[test]
7222fn bindgen_test_layout_ISteamMatchmakingServers() {
7223    assert_eq!(
7224        ::std::mem::size_of::<ISteamMatchmakingServers>(),
7225        8usize,
7226        concat!("Size of: ", stringify!(ISteamMatchmakingServers))
7227    );
7228    assert_eq!(
7229        ::std::mem::align_of::<ISteamMatchmakingServers>(),
7230        8usize,
7231        concat!("Alignment of ", stringify!(ISteamMatchmakingServers))
7232    );
7233}
7234pub const k_unFavoriteFlagNone: uint32 = 0;
7235pub const k_unFavoriteFlagFavorite: uint32 = 1;
7236pub const k_unFavoriteFlagHistory: uint32 = 2;
7237#[repr(u32)]
7238#[non_exhaustive]
7239#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7240pub enum EChatMemberStateChange {
7241    k_EChatMemberStateChangeEntered = 1,
7242    k_EChatMemberStateChangeLeft = 2,
7243    k_EChatMemberStateChangeDisconnected = 4,
7244    k_EChatMemberStateChangeKicked = 8,
7245    k_EChatMemberStateChangeBanned = 16,
7246}
7247#[repr(C)]
7248pub struct ISteamGameSearch__bindgen_vtable(::std::os::raw::c_void);
7249#[repr(C)]
7250#[derive(Debug, Copy, Clone)]
7251pub struct ISteamGameSearch {
7252    pub vtable_: *const ISteamGameSearch__bindgen_vtable,
7253}
7254#[test]
7255fn bindgen_test_layout_ISteamGameSearch() {
7256    assert_eq!(
7257        ::std::mem::size_of::<ISteamGameSearch>(),
7258        8usize,
7259        concat!("Size of: ", stringify!(ISteamGameSearch))
7260    );
7261    assert_eq!(
7262        ::std::mem::align_of::<ISteamGameSearch>(),
7263        8usize,
7264        concat!("Alignment of ", stringify!(ISteamGameSearch))
7265    );
7266}
7267#[repr(u32)]
7268#[non_exhaustive]
7269#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7270pub enum ESteamPartyBeaconLocationType {
7271    k_ESteamPartyBeaconLocationType_Invalid = 0,
7272    k_ESteamPartyBeaconLocationType_ChatGroup = 1,
7273    k_ESteamPartyBeaconLocationType_Max = 2,
7274}
7275#[repr(C, packed(4))]
7276#[derive(Debug, Copy, Clone)]
7277pub struct SteamPartyBeaconLocation_t {
7278    pub m_eType: ESteamPartyBeaconLocationType,
7279    pub m_ulLocationID: uint64,
7280}
7281#[test]
7282fn bindgen_test_layout_SteamPartyBeaconLocation_t() {
7283    const UNINIT: ::std::mem::MaybeUninit<SteamPartyBeaconLocation_t> =
7284        ::std::mem::MaybeUninit::uninit();
7285    let ptr = UNINIT.as_ptr();
7286    assert_eq!(
7287        ::std::mem::size_of::<SteamPartyBeaconLocation_t>(),
7288        12usize,
7289        concat!("Size of: ", stringify!(SteamPartyBeaconLocation_t))
7290    );
7291    assert_eq!(
7292        ::std::mem::align_of::<SteamPartyBeaconLocation_t>(),
7293        4usize,
7294        concat!("Alignment of ", stringify!(SteamPartyBeaconLocation_t))
7295    );
7296    assert_eq!(
7297        unsafe { ::std::ptr::addr_of!((*ptr).m_eType) as usize - ptr as usize },
7298        0usize,
7299        concat!(
7300            "Offset of field: ",
7301            stringify!(SteamPartyBeaconLocation_t),
7302            "::",
7303            stringify!(m_eType)
7304        )
7305    );
7306    assert_eq!(
7307        unsafe { ::std::ptr::addr_of!((*ptr).m_ulLocationID) as usize - ptr as usize },
7308        4usize,
7309        concat!(
7310            "Offset of field: ",
7311            stringify!(SteamPartyBeaconLocation_t),
7312            "::",
7313            stringify!(m_ulLocationID)
7314        )
7315    );
7316}
7317#[repr(u32)]
7318#[non_exhaustive]
7319#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7320pub enum ESteamPartyBeaconLocationData {
7321    k_ESteamPartyBeaconLocationDataInvalid = 0,
7322    k_ESteamPartyBeaconLocationDataName = 1,
7323    k_ESteamPartyBeaconLocationDataIconURLSmall = 2,
7324    k_ESteamPartyBeaconLocationDataIconURLMedium = 3,
7325    k_ESteamPartyBeaconLocationDataIconURLLarge = 4,
7326}
7327#[repr(C)]
7328pub struct ISteamParties__bindgen_vtable(::std::os::raw::c_void);
7329#[repr(C)]
7330#[derive(Debug, Copy, Clone)]
7331pub struct ISteamParties {
7332    pub vtable_: *const ISteamParties__bindgen_vtable,
7333}
7334#[test]
7335fn bindgen_test_layout_ISteamParties() {
7336    assert_eq!(
7337        ::std::mem::size_of::<ISteamParties>(),
7338        8usize,
7339        concat!("Size of: ", stringify!(ISteamParties))
7340    );
7341    assert_eq!(
7342        ::std::mem::align_of::<ISteamParties>(),
7343        4usize,
7344        concat!("Alignment of ", stringify!(ISteamParties))
7345    );
7346}
7347#[repr(C)]
7348#[derive(Debug, Copy, Clone)]
7349pub struct FavoritesListChanged_t {
7350    pub m_nIP: uint32,
7351    pub m_nQueryPort: uint32,
7352    pub m_nConnPort: uint32,
7353    pub m_nAppID: uint32,
7354    pub m_nFlags: uint32,
7355    pub m_bAdd: bool,
7356    pub m_unAccountId: AccountID_t,
7357}
7358pub const FavoritesListChanged_t_k_iCallback: FavoritesListChanged_t__bindgen_ty_1 =
7359    FavoritesListChanged_t__bindgen_ty_1::k_iCallback;
7360#[repr(u32)]
7361#[non_exhaustive]
7362#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7363pub enum FavoritesListChanged_t__bindgen_ty_1 {
7364    k_iCallback = 502,
7365}
7366#[test]
7367fn bindgen_test_layout_FavoritesListChanged_t() {
7368    const UNINIT: ::std::mem::MaybeUninit<FavoritesListChanged_t> =
7369        ::std::mem::MaybeUninit::uninit();
7370    let ptr = UNINIT.as_ptr();
7371    assert_eq!(
7372        ::std::mem::size_of::<FavoritesListChanged_t>(),
7373        28usize,
7374        concat!("Size of: ", stringify!(FavoritesListChanged_t))
7375    );
7376    assert_eq!(
7377        ::std::mem::align_of::<FavoritesListChanged_t>(),
7378        4usize,
7379        concat!("Alignment of ", stringify!(FavoritesListChanged_t))
7380    );
7381    assert_eq!(
7382        unsafe { ::std::ptr::addr_of!((*ptr).m_nIP) as usize - ptr as usize },
7383        0usize,
7384        concat!(
7385            "Offset of field: ",
7386            stringify!(FavoritesListChanged_t),
7387            "::",
7388            stringify!(m_nIP)
7389        )
7390    );
7391    assert_eq!(
7392        unsafe { ::std::ptr::addr_of!((*ptr).m_nQueryPort) as usize - ptr as usize },
7393        4usize,
7394        concat!(
7395            "Offset of field: ",
7396            stringify!(FavoritesListChanged_t),
7397            "::",
7398            stringify!(m_nQueryPort)
7399        )
7400    );
7401    assert_eq!(
7402        unsafe { ::std::ptr::addr_of!((*ptr).m_nConnPort) as usize - ptr as usize },
7403        8usize,
7404        concat!(
7405            "Offset of field: ",
7406            stringify!(FavoritesListChanged_t),
7407            "::",
7408            stringify!(m_nConnPort)
7409        )
7410    );
7411    assert_eq!(
7412        unsafe { ::std::ptr::addr_of!((*ptr).m_nAppID) as usize - ptr as usize },
7413        12usize,
7414        concat!(
7415            "Offset of field: ",
7416            stringify!(FavoritesListChanged_t),
7417            "::",
7418            stringify!(m_nAppID)
7419        )
7420    );
7421    assert_eq!(
7422        unsafe { ::std::ptr::addr_of!((*ptr).m_nFlags) as usize - ptr as usize },
7423        16usize,
7424        concat!(
7425            "Offset of field: ",
7426            stringify!(FavoritesListChanged_t),
7427            "::",
7428            stringify!(m_nFlags)
7429        )
7430    );
7431    assert_eq!(
7432        unsafe { ::std::ptr::addr_of!((*ptr).m_bAdd) as usize - ptr as usize },
7433        20usize,
7434        concat!(
7435            "Offset of field: ",
7436            stringify!(FavoritesListChanged_t),
7437            "::",
7438            stringify!(m_bAdd)
7439        )
7440    );
7441    assert_eq!(
7442        unsafe { ::std::ptr::addr_of!((*ptr).m_unAccountId) as usize - ptr as usize },
7443        24usize,
7444        concat!(
7445            "Offset of field: ",
7446            stringify!(FavoritesListChanged_t),
7447            "::",
7448            stringify!(m_unAccountId)
7449        )
7450    );
7451}
7452#[repr(C, packed(4))]
7453#[derive(Debug, Copy, Clone)]
7454pub struct LobbyInvite_t {
7455    pub m_ulSteamIDUser: uint64,
7456    pub m_ulSteamIDLobby: uint64,
7457    pub m_ulGameID: uint64,
7458}
7459pub const LobbyInvite_t_k_iCallback: LobbyInvite_t__bindgen_ty_1 =
7460    LobbyInvite_t__bindgen_ty_1::k_iCallback;
7461#[repr(u32)]
7462#[non_exhaustive]
7463#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7464pub enum LobbyInvite_t__bindgen_ty_1 {
7465    k_iCallback = 503,
7466}
7467#[test]
7468fn bindgen_test_layout_LobbyInvite_t() {
7469    const UNINIT: ::std::mem::MaybeUninit<LobbyInvite_t> = ::std::mem::MaybeUninit::uninit();
7470    let ptr = UNINIT.as_ptr();
7471    assert_eq!(
7472        ::std::mem::size_of::<LobbyInvite_t>(),
7473        24usize,
7474        concat!("Size of: ", stringify!(LobbyInvite_t))
7475    );
7476    assert_eq!(
7477        ::std::mem::align_of::<LobbyInvite_t>(),
7478        4usize,
7479        concat!("Alignment of ", stringify!(LobbyInvite_t))
7480    );
7481    assert_eq!(
7482        unsafe { ::std::ptr::addr_of!((*ptr).m_ulSteamIDUser) as usize - ptr as usize },
7483        0usize,
7484        concat!(
7485            "Offset of field: ",
7486            stringify!(LobbyInvite_t),
7487            "::",
7488            stringify!(m_ulSteamIDUser)
7489        )
7490    );
7491    assert_eq!(
7492        unsafe { ::std::ptr::addr_of!((*ptr).m_ulSteamIDLobby) as usize - ptr as usize },
7493        8usize,
7494        concat!(
7495            "Offset of field: ",
7496            stringify!(LobbyInvite_t),
7497            "::",
7498            stringify!(m_ulSteamIDLobby)
7499        )
7500    );
7501    assert_eq!(
7502        unsafe { ::std::ptr::addr_of!((*ptr).m_ulGameID) as usize - ptr as usize },
7503        16usize,
7504        concat!(
7505            "Offset of field: ",
7506            stringify!(LobbyInvite_t),
7507            "::",
7508            stringify!(m_ulGameID)
7509        )
7510    );
7511}
7512#[repr(C, packed(4))]
7513#[derive(Debug, Copy, Clone)]
7514pub struct LobbyEnter_t {
7515    pub m_ulSteamIDLobby: uint64,
7516    pub m_rgfChatPermissions: uint32,
7517    pub m_bLocked: bool,
7518    pub m_EChatRoomEnterResponse: uint32,
7519}
7520pub const LobbyEnter_t_k_iCallback: LobbyEnter_t__bindgen_ty_1 =
7521    LobbyEnter_t__bindgen_ty_1::k_iCallback;
7522#[repr(u32)]
7523#[non_exhaustive]
7524#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7525pub enum LobbyEnter_t__bindgen_ty_1 {
7526    k_iCallback = 504,
7527}
7528#[test]
7529fn bindgen_test_layout_LobbyEnter_t() {
7530    const UNINIT: ::std::mem::MaybeUninit<LobbyEnter_t> = ::std::mem::MaybeUninit::uninit();
7531    let ptr = UNINIT.as_ptr();
7532    assert_eq!(
7533        ::std::mem::size_of::<LobbyEnter_t>(),
7534        20usize,
7535        concat!("Size of: ", stringify!(LobbyEnter_t))
7536    );
7537    assert_eq!(
7538        ::std::mem::align_of::<LobbyEnter_t>(),
7539        4usize,
7540        concat!("Alignment of ", stringify!(LobbyEnter_t))
7541    );
7542    assert_eq!(
7543        unsafe { ::std::ptr::addr_of!((*ptr).m_ulSteamIDLobby) as usize - ptr as usize },
7544        0usize,
7545        concat!(
7546            "Offset of field: ",
7547            stringify!(LobbyEnter_t),
7548            "::",
7549            stringify!(m_ulSteamIDLobby)
7550        )
7551    );
7552    assert_eq!(
7553        unsafe { ::std::ptr::addr_of!((*ptr).m_rgfChatPermissions) as usize - ptr as usize },
7554        8usize,
7555        concat!(
7556            "Offset of field: ",
7557            stringify!(LobbyEnter_t),
7558            "::",
7559            stringify!(m_rgfChatPermissions)
7560        )
7561    );
7562    assert_eq!(
7563        unsafe { ::std::ptr::addr_of!((*ptr).m_bLocked) as usize - ptr as usize },
7564        12usize,
7565        concat!(
7566            "Offset of field: ",
7567            stringify!(LobbyEnter_t),
7568            "::",
7569            stringify!(m_bLocked)
7570        )
7571    );
7572    assert_eq!(
7573        unsafe { ::std::ptr::addr_of!((*ptr).m_EChatRoomEnterResponse) as usize - ptr as usize },
7574        16usize,
7575        concat!(
7576            "Offset of field: ",
7577            stringify!(LobbyEnter_t),
7578            "::",
7579            stringify!(m_EChatRoomEnterResponse)
7580        )
7581    );
7582}
7583#[repr(C, packed(4))]
7584#[derive(Debug, Copy, Clone)]
7585pub struct LobbyDataUpdate_t {
7586    pub m_ulSteamIDLobby: uint64,
7587    pub m_ulSteamIDMember: uint64,
7588    pub m_bSuccess: uint8,
7589}
7590pub const LobbyDataUpdate_t_k_iCallback: LobbyDataUpdate_t__bindgen_ty_1 =
7591    LobbyDataUpdate_t__bindgen_ty_1::k_iCallback;
7592#[repr(u32)]
7593#[non_exhaustive]
7594#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7595pub enum LobbyDataUpdate_t__bindgen_ty_1 {
7596    k_iCallback = 505,
7597}
7598#[test]
7599fn bindgen_test_layout_LobbyDataUpdate_t() {
7600    const UNINIT: ::std::mem::MaybeUninit<LobbyDataUpdate_t> = ::std::mem::MaybeUninit::uninit();
7601    let ptr = UNINIT.as_ptr();
7602    assert_eq!(
7603        ::std::mem::size_of::<LobbyDataUpdate_t>(),
7604        20usize,
7605        concat!("Size of: ", stringify!(LobbyDataUpdate_t))
7606    );
7607    assert_eq!(
7608        ::std::mem::align_of::<LobbyDataUpdate_t>(),
7609        4usize,
7610        concat!("Alignment of ", stringify!(LobbyDataUpdate_t))
7611    );
7612    assert_eq!(
7613        unsafe { ::std::ptr::addr_of!((*ptr).m_ulSteamIDLobby) as usize - ptr as usize },
7614        0usize,
7615        concat!(
7616            "Offset of field: ",
7617            stringify!(LobbyDataUpdate_t),
7618            "::",
7619            stringify!(m_ulSteamIDLobby)
7620        )
7621    );
7622    assert_eq!(
7623        unsafe { ::std::ptr::addr_of!((*ptr).m_ulSteamIDMember) as usize - ptr as usize },
7624        8usize,
7625        concat!(
7626            "Offset of field: ",
7627            stringify!(LobbyDataUpdate_t),
7628            "::",
7629            stringify!(m_ulSteamIDMember)
7630        )
7631    );
7632    assert_eq!(
7633        unsafe { ::std::ptr::addr_of!((*ptr).m_bSuccess) as usize - ptr as usize },
7634        16usize,
7635        concat!(
7636            "Offset of field: ",
7637            stringify!(LobbyDataUpdate_t),
7638            "::",
7639            stringify!(m_bSuccess)
7640        )
7641    );
7642}
7643#[repr(C, packed(4))]
7644#[derive(Debug, Copy, Clone)]
7645pub struct LobbyChatUpdate_t {
7646    pub m_ulSteamIDLobby: uint64,
7647    pub m_ulSteamIDUserChanged: uint64,
7648    pub m_ulSteamIDMakingChange: uint64,
7649    pub m_rgfChatMemberStateChange: uint32,
7650}
7651pub const LobbyChatUpdate_t_k_iCallback: LobbyChatUpdate_t__bindgen_ty_1 =
7652    LobbyChatUpdate_t__bindgen_ty_1::k_iCallback;
7653#[repr(u32)]
7654#[non_exhaustive]
7655#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7656pub enum LobbyChatUpdate_t__bindgen_ty_1 {
7657    k_iCallback = 506,
7658}
7659#[test]
7660fn bindgen_test_layout_LobbyChatUpdate_t() {
7661    const UNINIT: ::std::mem::MaybeUninit<LobbyChatUpdate_t> = ::std::mem::MaybeUninit::uninit();
7662    let ptr = UNINIT.as_ptr();
7663    assert_eq!(
7664        ::std::mem::size_of::<LobbyChatUpdate_t>(),
7665        28usize,
7666        concat!("Size of: ", stringify!(LobbyChatUpdate_t))
7667    );
7668    assert_eq!(
7669        ::std::mem::align_of::<LobbyChatUpdate_t>(),
7670        4usize,
7671        concat!("Alignment of ", stringify!(LobbyChatUpdate_t))
7672    );
7673    assert_eq!(
7674        unsafe { ::std::ptr::addr_of!((*ptr).m_ulSteamIDLobby) as usize - ptr as usize },
7675        0usize,
7676        concat!(
7677            "Offset of field: ",
7678            stringify!(LobbyChatUpdate_t),
7679            "::",
7680            stringify!(m_ulSteamIDLobby)
7681        )
7682    );
7683    assert_eq!(
7684        unsafe { ::std::ptr::addr_of!((*ptr).m_ulSteamIDUserChanged) as usize - ptr as usize },
7685        8usize,
7686        concat!(
7687            "Offset of field: ",
7688            stringify!(LobbyChatUpdate_t),
7689            "::",
7690            stringify!(m_ulSteamIDUserChanged)
7691        )
7692    );
7693    assert_eq!(
7694        unsafe { ::std::ptr::addr_of!((*ptr).m_ulSteamIDMakingChange) as usize - ptr as usize },
7695        16usize,
7696        concat!(
7697            "Offset of field: ",
7698            stringify!(LobbyChatUpdate_t),
7699            "::",
7700            stringify!(m_ulSteamIDMakingChange)
7701        )
7702    );
7703    assert_eq!(
7704        unsafe { ::std::ptr::addr_of!((*ptr).m_rgfChatMemberStateChange) as usize - ptr as usize },
7705        24usize,
7706        concat!(
7707            "Offset of field: ",
7708            stringify!(LobbyChatUpdate_t),
7709            "::",
7710            stringify!(m_rgfChatMemberStateChange)
7711        )
7712    );
7713}
7714#[repr(C, packed(4))]
7715#[derive(Debug, Copy, Clone)]
7716pub struct LobbyChatMsg_t {
7717    pub m_ulSteamIDLobby: uint64,
7718    pub m_ulSteamIDUser: uint64,
7719    pub m_eChatEntryType: uint8,
7720    pub m_iChatID: uint32,
7721}
7722pub const LobbyChatMsg_t_k_iCallback: LobbyChatMsg_t__bindgen_ty_1 =
7723    LobbyChatMsg_t__bindgen_ty_1::k_iCallback;
7724#[repr(u32)]
7725#[non_exhaustive]
7726#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7727pub enum LobbyChatMsg_t__bindgen_ty_1 {
7728    k_iCallback = 507,
7729}
7730#[test]
7731fn bindgen_test_layout_LobbyChatMsg_t() {
7732    const UNINIT: ::std::mem::MaybeUninit<LobbyChatMsg_t> = ::std::mem::MaybeUninit::uninit();
7733    let ptr = UNINIT.as_ptr();
7734    assert_eq!(
7735        ::std::mem::size_of::<LobbyChatMsg_t>(),
7736        24usize,
7737        concat!("Size of: ", stringify!(LobbyChatMsg_t))
7738    );
7739    assert_eq!(
7740        ::std::mem::align_of::<LobbyChatMsg_t>(),
7741        4usize,
7742        concat!("Alignment of ", stringify!(LobbyChatMsg_t))
7743    );
7744    assert_eq!(
7745        unsafe { ::std::ptr::addr_of!((*ptr).m_ulSteamIDLobby) as usize - ptr as usize },
7746        0usize,
7747        concat!(
7748            "Offset of field: ",
7749            stringify!(LobbyChatMsg_t),
7750            "::",
7751            stringify!(m_ulSteamIDLobby)
7752        )
7753    );
7754    assert_eq!(
7755        unsafe { ::std::ptr::addr_of!((*ptr).m_ulSteamIDUser) as usize - ptr as usize },
7756        8usize,
7757        concat!(
7758            "Offset of field: ",
7759            stringify!(LobbyChatMsg_t),
7760            "::",
7761            stringify!(m_ulSteamIDUser)
7762        )
7763    );
7764    assert_eq!(
7765        unsafe { ::std::ptr::addr_of!((*ptr).m_eChatEntryType) as usize - ptr as usize },
7766        16usize,
7767        concat!(
7768            "Offset of field: ",
7769            stringify!(LobbyChatMsg_t),
7770            "::",
7771            stringify!(m_eChatEntryType)
7772        )
7773    );
7774    assert_eq!(
7775        unsafe { ::std::ptr::addr_of!((*ptr).m_iChatID) as usize - ptr as usize },
7776        20usize,
7777        concat!(
7778            "Offset of field: ",
7779            stringify!(LobbyChatMsg_t),
7780            "::",
7781            stringify!(m_iChatID)
7782        )
7783    );
7784}
7785#[repr(C, packed(4))]
7786#[derive(Debug, Copy, Clone)]
7787pub struct LobbyGameCreated_t {
7788    pub m_ulSteamIDLobby: uint64,
7789    pub m_ulSteamIDGameServer: uint64,
7790    pub m_unIP: uint32,
7791    pub m_usPort: uint16,
7792}
7793pub const LobbyGameCreated_t_k_iCallback: LobbyGameCreated_t__bindgen_ty_1 =
7794    LobbyGameCreated_t__bindgen_ty_1::k_iCallback;
7795#[repr(u32)]
7796#[non_exhaustive]
7797#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7798pub enum LobbyGameCreated_t__bindgen_ty_1 {
7799    k_iCallback = 509,
7800}
7801#[test]
7802fn bindgen_test_layout_LobbyGameCreated_t() {
7803    const UNINIT: ::std::mem::MaybeUninit<LobbyGameCreated_t> = ::std::mem::MaybeUninit::uninit();
7804    let ptr = UNINIT.as_ptr();
7805    assert_eq!(
7806        ::std::mem::size_of::<LobbyGameCreated_t>(),
7807        24usize,
7808        concat!("Size of: ", stringify!(LobbyGameCreated_t))
7809    );
7810    assert_eq!(
7811        ::std::mem::align_of::<LobbyGameCreated_t>(),
7812        4usize,
7813        concat!("Alignment of ", stringify!(LobbyGameCreated_t))
7814    );
7815    assert_eq!(
7816        unsafe { ::std::ptr::addr_of!((*ptr).m_ulSteamIDLobby) as usize - ptr as usize },
7817        0usize,
7818        concat!(
7819            "Offset of field: ",
7820            stringify!(LobbyGameCreated_t),
7821            "::",
7822            stringify!(m_ulSteamIDLobby)
7823        )
7824    );
7825    assert_eq!(
7826        unsafe { ::std::ptr::addr_of!((*ptr).m_ulSteamIDGameServer) as usize - ptr as usize },
7827        8usize,
7828        concat!(
7829            "Offset of field: ",
7830            stringify!(LobbyGameCreated_t),
7831            "::",
7832            stringify!(m_ulSteamIDGameServer)
7833        )
7834    );
7835    assert_eq!(
7836        unsafe { ::std::ptr::addr_of!((*ptr).m_unIP) as usize - ptr as usize },
7837        16usize,
7838        concat!(
7839            "Offset of field: ",
7840            stringify!(LobbyGameCreated_t),
7841            "::",
7842            stringify!(m_unIP)
7843        )
7844    );
7845    assert_eq!(
7846        unsafe { ::std::ptr::addr_of!((*ptr).m_usPort) as usize - ptr as usize },
7847        20usize,
7848        concat!(
7849            "Offset of field: ",
7850            stringify!(LobbyGameCreated_t),
7851            "::",
7852            stringify!(m_usPort)
7853        )
7854    );
7855}
7856#[repr(C)]
7857#[derive(Debug, Copy, Clone)]
7858pub struct LobbyMatchList_t {
7859    pub m_nLobbiesMatching: uint32,
7860}
7861pub const LobbyMatchList_t_k_iCallback: LobbyMatchList_t__bindgen_ty_1 =
7862    LobbyMatchList_t__bindgen_ty_1::k_iCallback;
7863#[repr(u32)]
7864#[non_exhaustive]
7865#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7866pub enum LobbyMatchList_t__bindgen_ty_1 {
7867    k_iCallback = 510,
7868}
7869#[test]
7870fn bindgen_test_layout_LobbyMatchList_t() {
7871    const UNINIT: ::std::mem::MaybeUninit<LobbyMatchList_t> = ::std::mem::MaybeUninit::uninit();
7872    let ptr = UNINIT.as_ptr();
7873    assert_eq!(
7874        ::std::mem::size_of::<LobbyMatchList_t>(),
7875        4usize,
7876        concat!("Size of: ", stringify!(LobbyMatchList_t))
7877    );
7878    assert_eq!(
7879        ::std::mem::align_of::<LobbyMatchList_t>(),
7880        4usize,
7881        concat!("Alignment of ", stringify!(LobbyMatchList_t))
7882    );
7883    assert_eq!(
7884        unsafe { ::std::ptr::addr_of!((*ptr).m_nLobbiesMatching) as usize - ptr as usize },
7885        0usize,
7886        concat!(
7887            "Offset of field: ",
7888            stringify!(LobbyMatchList_t),
7889            "::",
7890            stringify!(m_nLobbiesMatching)
7891        )
7892    );
7893}
7894#[repr(C, packed(4))]
7895#[derive(Debug, Copy, Clone)]
7896pub struct LobbyKicked_t {
7897    pub m_ulSteamIDLobby: uint64,
7898    pub m_ulSteamIDAdmin: uint64,
7899    pub m_bKickedDueToDisconnect: uint8,
7900}
7901pub const LobbyKicked_t_k_iCallback: LobbyKicked_t__bindgen_ty_1 =
7902    LobbyKicked_t__bindgen_ty_1::k_iCallback;
7903#[repr(u32)]
7904#[non_exhaustive]
7905#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7906pub enum LobbyKicked_t__bindgen_ty_1 {
7907    k_iCallback = 512,
7908}
7909#[test]
7910fn bindgen_test_layout_LobbyKicked_t() {
7911    const UNINIT: ::std::mem::MaybeUninit<LobbyKicked_t> = ::std::mem::MaybeUninit::uninit();
7912    let ptr = UNINIT.as_ptr();
7913    assert_eq!(
7914        ::std::mem::size_of::<LobbyKicked_t>(),
7915        20usize,
7916        concat!("Size of: ", stringify!(LobbyKicked_t))
7917    );
7918    assert_eq!(
7919        ::std::mem::align_of::<LobbyKicked_t>(),
7920        4usize,
7921        concat!("Alignment of ", stringify!(LobbyKicked_t))
7922    );
7923    assert_eq!(
7924        unsafe { ::std::ptr::addr_of!((*ptr).m_ulSteamIDLobby) as usize - ptr as usize },
7925        0usize,
7926        concat!(
7927            "Offset of field: ",
7928            stringify!(LobbyKicked_t),
7929            "::",
7930            stringify!(m_ulSteamIDLobby)
7931        )
7932    );
7933    assert_eq!(
7934        unsafe { ::std::ptr::addr_of!((*ptr).m_ulSteamIDAdmin) as usize - ptr as usize },
7935        8usize,
7936        concat!(
7937            "Offset of field: ",
7938            stringify!(LobbyKicked_t),
7939            "::",
7940            stringify!(m_ulSteamIDAdmin)
7941        )
7942    );
7943    assert_eq!(
7944        unsafe { ::std::ptr::addr_of!((*ptr).m_bKickedDueToDisconnect) as usize - ptr as usize },
7945        16usize,
7946        concat!(
7947            "Offset of field: ",
7948            stringify!(LobbyKicked_t),
7949            "::",
7950            stringify!(m_bKickedDueToDisconnect)
7951        )
7952    );
7953}
7954#[repr(C, packed(4))]
7955#[derive(Debug, Copy, Clone)]
7956pub struct LobbyCreated_t {
7957    pub m_eResult: EResult,
7958    pub m_ulSteamIDLobby: uint64,
7959}
7960pub const LobbyCreated_t_k_iCallback: LobbyCreated_t__bindgen_ty_1 =
7961    LobbyCreated_t__bindgen_ty_1::k_iCallback;
7962#[repr(u32)]
7963#[non_exhaustive]
7964#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7965pub enum LobbyCreated_t__bindgen_ty_1 {
7966    k_iCallback = 513,
7967}
7968#[test]
7969fn bindgen_test_layout_LobbyCreated_t() {
7970    const UNINIT: ::std::mem::MaybeUninit<LobbyCreated_t> = ::std::mem::MaybeUninit::uninit();
7971    let ptr = UNINIT.as_ptr();
7972    assert_eq!(
7973        ::std::mem::size_of::<LobbyCreated_t>(),
7974        12usize,
7975        concat!("Size of: ", stringify!(LobbyCreated_t))
7976    );
7977    assert_eq!(
7978        ::std::mem::align_of::<LobbyCreated_t>(),
7979        4usize,
7980        concat!("Alignment of ", stringify!(LobbyCreated_t))
7981    );
7982    assert_eq!(
7983        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
7984        0usize,
7985        concat!(
7986            "Offset of field: ",
7987            stringify!(LobbyCreated_t),
7988            "::",
7989            stringify!(m_eResult)
7990        )
7991    );
7992    assert_eq!(
7993        unsafe { ::std::ptr::addr_of!((*ptr).m_ulSteamIDLobby) as usize - ptr as usize },
7994        4usize,
7995        concat!(
7996            "Offset of field: ",
7997            stringify!(LobbyCreated_t),
7998            "::",
7999            stringify!(m_ulSteamIDLobby)
8000        )
8001    );
8002}
8003#[repr(C)]
8004#[derive(Copy, Clone)]
8005pub struct PSNGameBootInviteResult_t {
8006    pub m_bGameBootInviteExists: bool,
8007    pub m_steamIDLobby: CSteamID,
8008}
8009pub const PSNGameBootInviteResult_t_k_iCallback: PSNGameBootInviteResult_t__bindgen_ty_1 =
8010    PSNGameBootInviteResult_t__bindgen_ty_1::k_iCallback;
8011#[repr(u32)]
8012#[non_exhaustive]
8013#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8014pub enum PSNGameBootInviteResult_t__bindgen_ty_1 {
8015    k_iCallback = 515,
8016}
8017#[test]
8018fn bindgen_test_layout_PSNGameBootInviteResult_t() {
8019    const UNINIT: ::std::mem::MaybeUninit<PSNGameBootInviteResult_t> =
8020        ::std::mem::MaybeUninit::uninit();
8021    let ptr = UNINIT.as_ptr();
8022    assert_eq!(
8023        ::std::mem::size_of::<PSNGameBootInviteResult_t>(),
8024        9usize,
8025        concat!("Size of: ", stringify!(PSNGameBootInviteResult_t))
8026    );
8027    assert_eq!(
8028        ::std::mem::align_of::<PSNGameBootInviteResult_t>(),
8029        1usize,
8030        concat!("Alignment of ", stringify!(PSNGameBootInviteResult_t))
8031    );
8032    assert_eq!(
8033        unsafe { ::std::ptr::addr_of!((*ptr).m_bGameBootInviteExists) as usize - ptr as usize },
8034        0usize,
8035        concat!(
8036            "Offset of field: ",
8037            stringify!(PSNGameBootInviteResult_t),
8038            "::",
8039            stringify!(m_bGameBootInviteExists)
8040        )
8041    );
8042    assert_eq!(
8043        unsafe { ::std::ptr::addr_of!((*ptr).m_steamIDLobby) as usize - ptr as usize },
8044        1usize,
8045        concat!(
8046            "Offset of field: ",
8047            stringify!(PSNGameBootInviteResult_t),
8048            "::",
8049            stringify!(m_steamIDLobby)
8050        )
8051    );
8052}
8053#[repr(C)]
8054#[derive(Debug, Copy, Clone)]
8055pub struct FavoritesListAccountsUpdated_t {
8056    pub m_eResult: EResult,
8057}
8058pub const FavoritesListAccountsUpdated_t_k_iCallback: FavoritesListAccountsUpdated_t__bindgen_ty_1 =
8059    FavoritesListAccountsUpdated_t__bindgen_ty_1::k_iCallback;
8060#[repr(u32)]
8061#[non_exhaustive]
8062#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8063pub enum FavoritesListAccountsUpdated_t__bindgen_ty_1 {
8064    k_iCallback = 516,
8065}
8066#[test]
8067fn bindgen_test_layout_FavoritesListAccountsUpdated_t() {
8068    const UNINIT: ::std::mem::MaybeUninit<FavoritesListAccountsUpdated_t> =
8069        ::std::mem::MaybeUninit::uninit();
8070    let ptr = UNINIT.as_ptr();
8071    assert_eq!(
8072        ::std::mem::size_of::<FavoritesListAccountsUpdated_t>(),
8073        4usize,
8074        concat!("Size of: ", stringify!(FavoritesListAccountsUpdated_t))
8075    );
8076    assert_eq!(
8077        ::std::mem::align_of::<FavoritesListAccountsUpdated_t>(),
8078        4usize,
8079        concat!("Alignment of ", stringify!(FavoritesListAccountsUpdated_t))
8080    );
8081    assert_eq!(
8082        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
8083        0usize,
8084        concat!(
8085            "Offset of field: ",
8086            stringify!(FavoritesListAccountsUpdated_t),
8087            "::",
8088            stringify!(m_eResult)
8089        )
8090    );
8091}
8092#[repr(C, packed(4))]
8093#[derive(Copy, Clone)]
8094pub struct SearchForGameProgressCallback_t {
8095    pub m_ullSearchID: uint64,
8096    pub m_eResult: EResult,
8097    pub m_lobbyID: CSteamID,
8098    pub m_steamIDEndedSearch: CSteamID,
8099    pub m_nSecondsRemainingEstimate: int32,
8100    pub m_cPlayersSearching: int32,
8101}
8102pub const SearchForGameProgressCallback_t_k_iCallback:
8103    SearchForGameProgressCallback_t__bindgen_ty_1 =
8104    SearchForGameProgressCallback_t__bindgen_ty_1::k_iCallback;
8105#[repr(u32)]
8106#[non_exhaustive]
8107#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8108pub enum SearchForGameProgressCallback_t__bindgen_ty_1 {
8109    k_iCallback = 5201,
8110}
8111#[test]
8112fn bindgen_test_layout_SearchForGameProgressCallback_t() {
8113    const UNINIT: ::std::mem::MaybeUninit<SearchForGameProgressCallback_t> =
8114        ::std::mem::MaybeUninit::uninit();
8115    let ptr = UNINIT.as_ptr();
8116    assert_eq!(
8117        ::std::mem::size_of::<SearchForGameProgressCallback_t>(),
8118        36usize,
8119        concat!("Size of: ", stringify!(SearchForGameProgressCallback_t))
8120    );
8121    assert_eq!(
8122        ::std::mem::align_of::<SearchForGameProgressCallback_t>(),
8123        4usize,
8124        concat!("Alignment of ", stringify!(SearchForGameProgressCallback_t))
8125    );
8126    assert_eq!(
8127        unsafe { ::std::ptr::addr_of!((*ptr).m_ullSearchID) as usize - ptr as usize },
8128        0usize,
8129        concat!(
8130            "Offset of field: ",
8131            stringify!(SearchForGameProgressCallback_t),
8132            "::",
8133            stringify!(m_ullSearchID)
8134        )
8135    );
8136    assert_eq!(
8137        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
8138        8usize,
8139        concat!(
8140            "Offset of field: ",
8141            stringify!(SearchForGameProgressCallback_t),
8142            "::",
8143            stringify!(m_eResult)
8144        )
8145    );
8146    assert_eq!(
8147        unsafe { ::std::ptr::addr_of!((*ptr).m_lobbyID) as usize - ptr as usize },
8148        12usize,
8149        concat!(
8150            "Offset of field: ",
8151            stringify!(SearchForGameProgressCallback_t),
8152            "::",
8153            stringify!(m_lobbyID)
8154        )
8155    );
8156    assert_eq!(
8157        unsafe { ::std::ptr::addr_of!((*ptr).m_steamIDEndedSearch) as usize - ptr as usize },
8158        20usize,
8159        concat!(
8160            "Offset of field: ",
8161            stringify!(SearchForGameProgressCallback_t),
8162            "::",
8163            stringify!(m_steamIDEndedSearch)
8164        )
8165    );
8166    assert_eq!(
8167        unsafe { ::std::ptr::addr_of!((*ptr).m_nSecondsRemainingEstimate) as usize - ptr as usize },
8168        28usize,
8169        concat!(
8170            "Offset of field: ",
8171            stringify!(SearchForGameProgressCallback_t),
8172            "::",
8173            stringify!(m_nSecondsRemainingEstimate)
8174        )
8175    );
8176    assert_eq!(
8177        unsafe { ::std::ptr::addr_of!((*ptr).m_cPlayersSearching) as usize - ptr as usize },
8178        32usize,
8179        concat!(
8180            "Offset of field: ",
8181            stringify!(SearchForGameProgressCallback_t),
8182            "::",
8183            stringify!(m_cPlayersSearching)
8184        )
8185    );
8186}
8187#[repr(C, packed(4))]
8188#[derive(Copy, Clone)]
8189pub struct SearchForGameResultCallback_t {
8190    pub m_ullSearchID: uint64,
8191    pub m_eResult: EResult,
8192    pub m_nCountPlayersInGame: int32,
8193    pub m_nCountAcceptedGame: int32,
8194    pub m_steamIDHost: CSteamID,
8195    pub m_bFinalCallback: bool,
8196}
8197pub const SearchForGameResultCallback_t_k_iCallback: SearchForGameResultCallback_t__bindgen_ty_1 =
8198    SearchForGameResultCallback_t__bindgen_ty_1::k_iCallback;
8199#[repr(u32)]
8200#[non_exhaustive]
8201#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8202pub enum SearchForGameResultCallback_t__bindgen_ty_1 {
8203    k_iCallback = 5202,
8204}
8205#[test]
8206fn bindgen_test_layout_SearchForGameResultCallback_t() {
8207    const UNINIT: ::std::mem::MaybeUninit<SearchForGameResultCallback_t> =
8208        ::std::mem::MaybeUninit::uninit();
8209    let ptr = UNINIT.as_ptr();
8210    assert_eq!(
8211        ::std::mem::size_of::<SearchForGameResultCallback_t>(),
8212        32usize,
8213        concat!("Size of: ", stringify!(SearchForGameResultCallback_t))
8214    );
8215    assert_eq!(
8216        ::std::mem::align_of::<SearchForGameResultCallback_t>(),
8217        4usize,
8218        concat!("Alignment of ", stringify!(SearchForGameResultCallback_t))
8219    );
8220    assert_eq!(
8221        unsafe { ::std::ptr::addr_of!((*ptr).m_ullSearchID) as usize - ptr as usize },
8222        0usize,
8223        concat!(
8224            "Offset of field: ",
8225            stringify!(SearchForGameResultCallback_t),
8226            "::",
8227            stringify!(m_ullSearchID)
8228        )
8229    );
8230    assert_eq!(
8231        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
8232        8usize,
8233        concat!(
8234            "Offset of field: ",
8235            stringify!(SearchForGameResultCallback_t),
8236            "::",
8237            stringify!(m_eResult)
8238        )
8239    );
8240    assert_eq!(
8241        unsafe { ::std::ptr::addr_of!((*ptr).m_nCountPlayersInGame) as usize - ptr as usize },
8242        12usize,
8243        concat!(
8244            "Offset of field: ",
8245            stringify!(SearchForGameResultCallback_t),
8246            "::",
8247            stringify!(m_nCountPlayersInGame)
8248        )
8249    );
8250    assert_eq!(
8251        unsafe { ::std::ptr::addr_of!((*ptr).m_nCountAcceptedGame) as usize - ptr as usize },
8252        16usize,
8253        concat!(
8254            "Offset of field: ",
8255            stringify!(SearchForGameResultCallback_t),
8256            "::",
8257            stringify!(m_nCountAcceptedGame)
8258        )
8259    );
8260    assert_eq!(
8261        unsafe { ::std::ptr::addr_of!((*ptr).m_steamIDHost) as usize - ptr as usize },
8262        20usize,
8263        concat!(
8264            "Offset of field: ",
8265            stringify!(SearchForGameResultCallback_t),
8266            "::",
8267            stringify!(m_steamIDHost)
8268        )
8269    );
8270    assert_eq!(
8271        unsafe { ::std::ptr::addr_of!((*ptr).m_bFinalCallback) as usize - ptr as usize },
8272        28usize,
8273        concat!(
8274            "Offset of field: ",
8275            stringify!(SearchForGameResultCallback_t),
8276            "::",
8277            stringify!(m_bFinalCallback)
8278        )
8279    );
8280}
8281#[repr(C, packed(4))]
8282#[derive(Debug, Copy, Clone)]
8283pub struct RequestPlayersForGameProgressCallback_t {
8284    pub m_eResult: EResult,
8285    pub m_ullSearchID: uint64,
8286}
8287pub const RequestPlayersForGameProgressCallback_t_k_iCallback:
8288    RequestPlayersForGameProgressCallback_t__bindgen_ty_1 =
8289    RequestPlayersForGameProgressCallback_t__bindgen_ty_1::k_iCallback;
8290#[repr(u32)]
8291#[non_exhaustive]
8292#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8293pub enum RequestPlayersForGameProgressCallback_t__bindgen_ty_1 {
8294    k_iCallback = 5211,
8295}
8296#[test]
8297fn bindgen_test_layout_RequestPlayersForGameProgressCallback_t() {
8298    const UNINIT: ::std::mem::MaybeUninit<RequestPlayersForGameProgressCallback_t> =
8299        ::std::mem::MaybeUninit::uninit();
8300    let ptr = UNINIT.as_ptr();
8301    assert_eq!(
8302        ::std::mem::size_of::<RequestPlayersForGameProgressCallback_t>(),
8303        12usize,
8304        concat!(
8305            "Size of: ",
8306            stringify!(RequestPlayersForGameProgressCallback_t)
8307        )
8308    );
8309    assert_eq!(
8310        ::std::mem::align_of::<RequestPlayersForGameProgressCallback_t>(),
8311        4usize,
8312        concat!(
8313            "Alignment of ",
8314            stringify!(RequestPlayersForGameProgressCallback_t)
8315        )
8316    );
8317    assert_eq!(
8318        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
8319        0usize,
8320        concat!(
8321            "Offset of field: ",
8322            stringify!(RequestPlayersForGameProgressCallback_t),
8323            "::",
8324            stringify!(m_eResult)
8325        )
8326    );
8327    assert_eq!(
8328        unsafe { ::std::ptr::addr_of!((*ptr).m_ullSearchID) as usize - ptr as usize },
8329        4usize,
8330        concat!(
8331            "Offset of field: ",
8332            stringify!(RequestPlayersForGameProgressCallback_t),
8333            "::",
8334            stringify!(m_ullSearchID)
8335        )
8336    );
8337}
8338#[repr(C, packed(4))]
8339#[derive(Copy, Clone)]
8340pub struct RequestPlayersForGameResultCallback_t {
8341    pub m_eResult: EResult,
8342    pub m_ullSearchID: uint64,
8343    pub m_SteamIDPlayerFound: CSteamID,
8344    pub m_SteamIDLobby: CSteamID,
8345    pub m_ePlayerAcceptState: RequestPlayersForGameResultCallback_t_PlayerAcceptState_t,
8346    pub m_nPlayerIndex: int32,
8347    pub m_nTotalPlayersFound: int32,
8348    pub m_nTotalPlayersAcceptedGame: int32,
8349    pub m_nSuggestedTeamIndex: int32,
8350    pub m_ullUniqueGameID: uint64,
8351}
8352pub const RequestPlayersForGameResultCallback_t_k_iCallback:
8353    RequestPlayersForGameResultCallback_t__bindgen_ty_1 =
8354    RequestPlayersForGameResultCallback_t__bindgen_ty_1::k_iCallback;
8355#[repr(u32)]
8356#[non_exhaustive]
8357#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8358pub enum RequestPlayersForGameResultCallback_t__bindgen_ty_1 {
8359    k_iCallback = 5212,
8360}
8361#[repr(u32)]
8362#[non_exhaustive]
8363#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8364pub enum RequestPlayersForGameResultCallback_t_PlayerAcceptState_t {
8365    k_EStateUnknown = 0,
8366    k_EStatePlayerAccepted = 1,
8367    k_EStatePlayerDeclined = 2,
8368}
8369#[test]
8370fn bindgen_test_layout_RequestPlayersForGameResultCallback_t() {
8371    const UNINIT: ::std::mem::MaybeUninit<RequestPlayersForGameResultCallback_t> =
8372        ::std::mem::MaybeUninit::uninit();
8373    let ptr = UNINIT.as_ptr();
8374    assert_eq!(
8375        ::std::mem::size_of::<RequestPlayersForGameResultCallback_t>(),
8376        56usize,
8377        concat!(
8378            "Size of: ",
8379            stringify!(RequestPlayersForGameResultCallback_t)
8380        )
8381    );
8382    assert_eq!(
8383        ::std::mem::align_of::<RequestPlayersForGameResultCallback_t>(),
8384        4usize,
8385        concat!(
8386            "Alignment of ",
8387            stringify!(RequestPlayersForGameResultCallback_t)
8388        )
8389    );
8390    assert_eq!(
8391        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
8392        0usize,
8393        concat!(
8394            "Offset of field: ",
8395            stringify!(RequestPlayersForGameResultCallback_t),
8396            "::",
8397            stringify!(m_eResult)
8398        )
8399    );
8400    assert_eq!(
8401        unsafe { ::std::ptr::addr_of!((*ptr).m_ullSearchID) as usize - ptr as usize },
8402        4usize,
8403        concat!(
8404            "Offset of field: ",
8405            stringify!(RequestPlayersForGameResultCallback_t),
8406            "::",
8407            stringify!(m_ullSearchID)
8408        )
8409    );
8410    assert_eq!(
8411        unsafe { ::std::ptr::addr_of!((*ptr).m_SteamIDPlayerFound) as usize - ptr as usize },
8412        12usize,
8413        concat!(
8414            "Offset of field: ",
8415            stringify!(RequestPlayersForGameResultCallback_t),
8416            "::",
8417            stringify!(m_SteamIDPlayerFound)
8418        )
8419    );
8420    assert_eq!(
8421        unsafe { ::std::ptr::addr_of!((*ptr).m_SteamIDLobby) as usize - ptr as usize },
8422        20usize,
8423        concat!(
8424            "Offset of field: ",
8425            stringify!(RequestPlayersForGameResultCallback_t),
8426            "::",
8427            stringify!(m_SteamIDLobby)
8428        )
8429    );
8430    assert_eq!(
8431        unsafe { ::std::ptr::addr_of!((*ptr).m_ePlayerAcceptState) as usize - ptr as usize },
8432        28usize,
8433        concat!(
8434            "Offset of field: ",
8435            stringify!(RequestPlayersForGameResultCallback_t),
8436            "::",
8437            stringify!(m_ePlayerAcceptState)
8438        )
8439    );
8440    assert_eq!(
8441        unsafe { ::std::ptr::addr_of!((*ptr).m_nPlayerIndex) as usize - ptr as usize },
8442        32usize,
8443        concat!(
8444            "Offset of field: ",
8445            stringify!(RequestPlayersForGameResultCallback_t),
8446            "::",
8447            stringify!(m_nPlayerIndex)
8448        )
8449    );
8450    assert_eq!(
8451        unsafe { ::std::ptr::addr_of!((*ptr).m_nTotalPlayersFound) as usize - ptr as usize },
8452        36usize,
8453        concat!(
8454            "Offset of field: ",
8455            stringify!(RequestPlayersForGameResultCallback_t),
8456            "::",
8457            stringify!(m_nTotalPlayersFound)
8458        )
8459    );
8460    assert_eq!(
8461        unsafe { ::std::ptr::addr_of!((*ptr).m_nTotalPlayersAcceptedGame) as usize - ptr as usize },
8462        40usize,
8463        concat!(
8464            "Offset of field: ",
8465            stringify!(RequestPlayersForGameResultCallback_t),
8466            "::",
8467            stringify!(m_nTotalPlayersAcceptedGame)
8468        )
8469    );
8470    assert_eq!(
8471        unsafe { ::std::ptr::addr_of!((*ptr).m_nSuggestedTeamIndex) as usize - ptr as usize },
8472        44usize,
8473        concat!(
8474            "Offset of field: ",
8475            stringify!(RequestPlayersForGameResultCallback_t),
8476            "::",
8477            stringify!(m_nSuggestedTeamIndex)
8478        )
8479    );
8480    assert_eq!(
8481        unsafe { ::std::ptr::addr_of!((*ptr).m_ullUniqueGameID) as usize - ptr as usize },
8482        48usize,
8483        concat!(
8484            "Offset of field: ",
8485            stringify!(RequestPlayersForGameResultCallback_t),
8486            "::",
8487            stringify!(m_ullUniqueGameID)
8488        )
8489    );
8490}
8491#[repr(C, packed(4))]
8492#[derive(Debug, Copy, Clone)]
8493pub struct RequestPlayersForGameFinalResultCallback_t {
8494    pub m_eResult: EResult,
8495    pub m_ullSearchID: uint64,
8496    pub m_ullUniqueGameID: uint64,
8497}
8498pub const RequestPlayersForGameFinalResultCallback_t_k_iCallback:
8499    RequestPlayersForGameFinalResultCallback_t__bindgen_ty_1 =
8500    RequestPlayersForGameFinalResultCallback_t__bindgen_ty_1::k_iCallback;
8501#[repr(u32)]
8502#[non_exhaustive]
8503#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8504pub enum RequestPlayersForGameFinalResultCallback_t__bindgen_ty_1 {
8505    k_iCallback = 5213,
8506}
8507#[test]
8508fn bindgen_test_layout_RequestPlayersForGameFinalResultCallback_t() {
8509    const UNINIT: ::std::mem::MaybeUninit<RequestPlayersForGameFinalResultCallback_t> =
8510        ::std::mem::MaybeUninit::uninit();
8511    let ptr = UNINIT.as_ptr();
8512    assert_eq!(
8513        ::std::mem::size_of::<RequestPlayersForGameFinalResultCallback_t>(),
8514        20usize,
8515        concat!(
8516            "Size of: ",
8517            stringify!(RequestPlayersForGameFinalResultCallback_t)
8518        )
8519    );
8520    assert_eq!(
8521        ::std::mem::align_of::<RequestPlayersForGameFinalResultCallback_t>(),
8522        4usize,
8523        concat!(
8524            "Alignment of ",
8525            stringify!(RequestPlayersForGameFinalResultCallback_t)
8526        )
8527    );
8528    assert_eq!(
8529        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
8530        0usize,
8531        concat!(
8532            "Offset of field: ",
8533            stringify!(RequestPlayersForGameFinalResultCallback_t),
8534            "::",
8535            stringify!(m_eResult)
8536        )
8537    );
8538    assert_eq!(
8539        unsafe { ::std::ptr::addr_of!((*ptr).m_ullSearchID) as usize - ptr as usize },
8540        4usize,
8541        concat!(
8542            "Offset of field: ",
8543            stringify!(RequestPlayersForGameFinalResultCallback_t),
8544            "::",
8545            stringify!(m_ullSearchID)
8546        )
8547    );
8548    assert_eq!(
8549        unsafe { ::std::ptr::addr_of!((*ptr).m_ullUniqueGameID) as usize - ptr as usize },
8550        12usize,
8551        concat!(
8552            "Offset of field: ",
8553            stringify!(RequestPlayersForGameFinalResultCallback_t),
8554            "::",
8555            stringify!(m_ullUniqueGameID)
8556        )
8557    );
8558}
8559#[repr(C, packed(4))]
8560#[derive(Copy, Clone)]
8561pub struct SubmitPlayerResultResultCallback_t {
8562    pub m_eResult: EResult,
8563    pub ullUniqueGameID: uint64,
8564    pub steamIDPlayer: CSteamID,
8565}
8566pub const SubmitPlayerResultResultCallback_t_k_iCallback:
8567    SubmitPlayerResultResultCallback_t__bindgen_ty_1 =
8568    SubmitPlayerResultResultCallback_t__bindgen_ty_1::k_iCallback;
8569#[repr(u32)]
8570#[non_exhaustive]
8571#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8572pub enum SubmitPlayerResultResultCallback_t__bindgen_ty_1 {
8573    k_iCallback = 5214,
8574}
8575#[test]
8576fn bindgen_test_layout_SubmitPlayerResultResultCallback_t() {
8577    const UNINIT: ::std::mem::MaybeUninit<SubmitPlayerResultResultCallback_t> =
8578        ::std::mem::MaybeUninit::uninit();
8579    let ptr = UNINIT.as_ptr();
8580    assert_eq!(
8581        ::std::mem::size_of::<SubmitPlayerResultResultCallback_t>(),
8582        20usize,
8583        concat!("Size of: ", stringify!(SubmitPlayerResultResultCallback_t))
8584    );
8585    assert_eq!(
8586        ::std::mem::align_of::<SubmitPlayerResultResultCallback_t>(),
8587        4usize,
8588        concat!(
8589            "Alignment of ",
8590            stringify!(SubmitPlayerResultResultCallback_t)
8591        )
8592    );
8593    assert_eq!(
8594        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
8595        0usize,
8596        concat!(
8597            "Offset of field: ",
8598            stringify!(SubmitPlayerResultResultCallback_t),
8599            "::",
8600            stringify!(m_eResult)
8601        )
8602    );
8603    assert_eq!(
8604        unsafe { ::std::ptr::addr_of!((*ptr).ullUniqueGameID) as usize - ptr as usize },
8605        4usize,
8606        concat!(
8607            "Offset of field: ",
8608            stringify!(SubmitPlayerResultResultCallback_t),
8609            "::",
8610            stringify!(ullUniqueGameID)
8611        )
8612    );
8613    assert_eq!(
8614        unsafe { ::std::ptr::addr_of!((*ptr).steamIDPlayer) as usize - ptr as usize },
8615        12usize,
8616        concat!(
8617            "Offset of field: ",
8618            stringify!(SubmitPlayerResultResultCallback_t),
8619            "::",
8620            stringify!(steamIDPlayer)
8621        )
8622    );
8623}
8624#[repr(C, packed(4))]
8625#[derive(Debug, Copy, Clone)]
8626pub struct EndGameResultCallback_t {
8627    pub m_eResult: EResult,
8628    pub ullUniqueGameID: uint64,
8629}
8630pub const EndGameResultCallback_t_k_iCallback: EndGameResultCallback_t__bindgen_ty_1 =
8631    EndGameResultCallback_t__bindgen_ty_1::k_iCallback;
8632#[repr(u32)]
8633#[non_exhaustive]
8634#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8635pub enum EndGameResultCallback_t__bindgen_ty_1 {
8636    k_iCallback = 5215,
8637}
8638#[test]
8639fn bindgen_test_layout_EndGameResultCallback_t() {
8640    const UNINIT: ::std::mem::MaybeUninit<EndGameResultCallback_t> =
8641        ::std::mem::MaybeUninit::uninit();
8642    let ptr = UNINIT.as_ptr();
8643    assert_eq!(
8644        ::std::mem::size_of::<EndGameResultCallback_t>(),
8645        12usize,
8646        concat!("Size of: ", stringify!(EndGameResultCallback_t))
8647    );
8648    assert_eq!(
8649        ::std::mem::align_of::<EndGameResultCallback_t>(),
8650        4usize,
8651        concat!("Alignment of ", stringify!(EndGameResultCallback_t))
8652    );
8653    assert_eq!(
8654        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
8655        0usize,
8656        concat!(
8657            "Offset of field: ",
8658            stringify!(EndGameResultCallback_t),
8659            "::",
8660            stringify!(m_eResult)
8661        )
8662    );
8663    assert_eq!(
8664        unsafe { ::std::ptr::addr_of!((*ptr).ullUniqueGameID) as usize - ptr as usize },
8665        4usize,
8666        concat!(
8667            "Offset of field: ",
8668            stringify!(EndGameResultCallback_t),
8669            "::",
8670            stringify!(ullUniqueGameID)
8671        )
8672    );
8673}
8674#[repr(C, packed(4))]
8675#[derive(Copy, Clone)]
8676pub struct JoinPartyCallback_t {
8677    pub m_eResult: EResult,
8678    pub m_ulBeaconID: PartyBeaconID_t,
8679    pub m_SteamIDBeaconOwner: CSteamID,
8680    pub m_rgchConnectString: [::std::os::raw::c_char; 256usize],
8681}
8682pub const JoinPartyCallback_t_k_iCallback: JoinPartyCallback_t__bindgen_ty_1 =
8683    JoinPartyCallback_t__bindgen_ty_1::k_iCallback;
8684#[repr(u32)]
8685#[non_exhaustive]
8686#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8687pub enum JoinPartyCallback_t__bindgen_ty_1 {
8688    k_iCallback = 5301,
8689}
8690#[test]
8691fn bindgen_test_layout_JoinPartyCallback_t() {
8692    const UNINIT: ::std::mem::MaybeUninit<JoinPartyCallback_t> = ::std::mem::MaybeUninit::uninit();
8693    let ptr = UNINIT.as_ptr();
8694    assert_eq!(
8695        ::std::mem::size_of::<JoinPartyCallback_t>(),
8696        276usize,
8697        concat!("Size of: ", stringify!(JoinPartyCallback_t))
8698    );
8699    assert_eq!(
8700        ::std::mem::align_of::<JoinPartyCallback_t>(),
8701        4usize,
8702        concat!("Alignment of ", stringify!(JoinPartyCallback_t))
8703    );
8704    assert_eq!(
8705        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
8706        0usize,
8707        concat!(
8708            "Offset of field: ",
8709            stringify!(JoinPartyCallback_t),
8710            "::",
8711            stringify!(m_eResult)
8712        )
8713    );
8714    assert_eq!(
8715        unsafe { ::std::ptr::addr_of!((*ptr).m_ulBeaconID) as usize - ptr as usize },
8716        4usize,
8717        concat!(
8718            "Offset of field: ",
8719            stringify!(JoinPartyCallback_t),
8720            "::",
8721            stringify!(m_ulBeaconID)
8722        )
8723    );
8724    assert_eq!(
8725        unsafe { ::std::ptr::addr_of!((*ptr).m_SteamIDBeaconOwner) as usize - ptr as usize },
8726        12usize,
8727        concat!(
8728            "Offset of field: ",
8729            stringify!(JoinPartyCallback_t),
8730            "::",
8731            stringify!(m_SteamIDBeaconOwner)
8732        )
8733    );
8734    assert_eq!(
8735        unsafe { ::std::ptr::addr_of!((*ptr).m_rgchConnectString) as usize - ptr as usize },
8736        20usize,
8737        concat!(
8738            "Offset of field: ",
8739            stringify!(JoinPartyCallback_t),
8740            "::",
8741            stringify!(m_rgchConnectString)
8742        )
8743    );
8744}
8745#[repr(C, packed(4))]
8746#[derive(Debug, Copy, Clone)]
8747pub struct CreateBeaconCallback_t {
8748    pub m_eResult: EResult,
8749    pub m_ulBeaconID: PartyBeaconID_t,
8750}
8751pub const CreateBeaconCallback_t_k_iCallback: CreateBeaconCallback_t__bindgen_ty_1 =
8752    CreateBeaconCallback_t__bindgen_ty_1::k_iCallback;
8753#[repr(u32)]
8754#[non_exhaustive]
8755#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8756pub enum CreateBeaconCallback_t__bindgen_ty_1 {
8757    k_iCallback = 5302,
8758}
8759#[test]
8760fn bindgen_test_layout_CreateBeaconCallback_t() {
8761    const UNINIT: ::std::mem::MaybeUninit<CreateBeaconCallback_t> =
8762        ::std::mem::MaybeUninit::uninit();
8763    let ptr = UNINIT.as_ptr();
8764    assert_eq!(
8765        ::std::mem::size_of::<CreateBeaconCallback_t>(),
8766        12usize,
8767        concat!("Size of: ", stringify!(CreateBeaconCallback_t))
8768    );
8769    assert_eq!(
8770        ::std::mem::align_of::<CreateBeaconCallback_t>(),
8771        4usize,
8772        concat!("Alignment of ", stringify!(CreateBeaconCallback_t))
8773    );
8774    assert_eq!(
8775        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
8776        0usize,
8777        concat!(
8778            "Offset of field: ",
8779            stringify!(CreateBeaconCallback_t),
8780            "::",
8781            stringify!(m_eResult)
8782        )
8783    );
8784    assert_eq!(
8785        unsafe { ::std::ptr::addr_of!((*ptr).m_ulBeaconID) as usize - ptr as usize },
8786        4usize,
8787        concat!(
8788            "Offset of field: ",
8789            stringify!(CreateBeaconCallback_t),
8790            "::",
8791            stringify!(m_ulBeaconID)
8792        )
8793    );
8794}
8795#[repr(C, packed(4))]
8796#[derive(Copy, Clone)]
8797pub struct ReservationNotificationCallback_t {
8798    pub m_ulBeaconID: PartyBeaconID_t,
8799    pub m_steamIDJoiner: CSteamID,
8800}
8801pub const ReservationNotificationCallback_t_k_iCallback:
8802    ReservationNotificationCallback_t__bindgen_ty_1 =
8803    ReservationNotificationCallback_t__bindgen_ty_1::k_iCallback;
8804#[repr(u32)]
8805#[non_exhaustive]
8806#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8807pub enum ReservationNotificationCallback_t__bindgen_ty_1 {
8808    k_iCallback = 5303,
8809}
8810#[test]
8811fn bindgen_test_layout_ReservationNotificationCallback_t() {
8812    const UNINIT: ::std::mem::MaybeUninit<ReservationNotificationCallback_t> =
8813        ::std::mem::MaybeUninit::uninit();
8814    let ptr = UNINIT.as_ptr();
8815    assert_eq!(
8816        ::std::mem::size_of::<ReservationNotificationCallback_t>(),
8817        16usize,
8818        concat!("Size of: ", stringify!(ReservationNotificationCallback_t))
8819    );
8820    assert_eq!(
8821        ::std::mem::align_of::<ReservationNotificationCallback_t>(),
8822        4usize,
8823        concat!(
8824            "Alignment of ",
8825            stringify!(ReservationNotificationCallback_t)
8826        )
8827    );
8828    assert_eq!(
8829        unsafe { ::std::ptr::addr_of!((*ptr).m_ulBeaconID) as usize - ptr as usize },
8830        0usize,
8831        concat!(
8832            "Offset of field: ",
8833            stringify!(ReservationNotificationCallback_t),
8834            "::",
8835            stringify!(m_ulBeaconID)
8836        )
8837    );
8838    assert_eq!(
8839        unsafe { ::std::ptr::addr_of!((*ptr).m_steamIDJoiner) as usize - ptr as usize },
8840        8usize,
8841        concat!(
8842            "Offset of field: ",
8843            stringify!(ReservationNotificationCallback_t),
8844            "::",
8845            stringify!(m_steamIDJoiner)
8846        )
8847    );
8848}
8849#[repr(C)]
8850#[derive(Debug, Copy, Clone)]
8851pub struct ChangeNumOpenSlotsCallback_t {
8852    pub m_eResult: EResult,
8853}
8854pub const ChangeNumOpenSlotsCallback_t_k_iCallback: ChangeNumOpenSlotsCallback_t__bindgen_ty_1 =
8855    ChangeNumOpenSlotsCallback_t__bindgen_ty_1::k_iCallback;
8856#[repr(u32)]
8857#[non_exhaustive]
8858#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8859pub enum ChangeNumOpenSlotsCallback_t__bindgen_ty_1 {
8860    k_iCallback = 5304,
8861}
8862#[test]
8863fn bindgen_test_layout_ChangeNumOpenSlotsCallback_t() {
8864    const UNINIT: ::std::mem::MaybeUninit<ChangeNumOpenSlotsCallback_t> =
8865        ::std::mem::MaybeUninit::uninit();
8866    let ptr = UNINIT.as_ptr();
8867    assert_eq!(
8868        ::std::mem::size_of::<ChangeNumOpenSlotsCallback_t>(),
8869        4usize,
8870        concat!("Size of: ", stringify!(ChangeNumOpenSlotsCallback_t))
8871    );
8872    assert_eq!(
8873        ::std::mem::align_of::<ChangeNumOpenSlotsCallback_t>(),
8874        4usize,
8875        concat!("Alignment of ", stringify!(ChangeNumOpenSlotsCallback_t))
8876    );
8877    assert_eq!(
8878        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
8879        0usize,
8880        concat!(
8881            "Offset of field: ",
8882            stringify!(ChangeNumOpenSlotsCallback_t),
8883            "::",
8884            stringify!(m_eResult)
8885        )
8886    );
8887}
8888#[repr(C)]
8889#[derive(Debug, Copy, Clone)]
8890pub struct AvailableBeaconLocationsUpdated_t {
8891    pub _address: u8,
8892}
8893pub const AvailableBeaconLocationsUpdated_t_k_iCallback:
8894    AvailableBeaconLocationsUpdated_t__bindgen_ty_1 =
8895    AvailableBeaconLocationsUpdated_t__bindgen_ty_1::k_iCallback;
8896#[repr(u32)]
8897#[non_exhaustive]
8898#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8899pub enum AvailableBeaconLocationsUpdated_t__bindgen_ty_1 {
8900    k_iCallback = 5305,
8901}
8902#[test]
8903fn bindgen_test_layout_AvailableBeaconLocationsUpdated_t() {
8904    assert_eq!(
8905        ::std::mem::size_of::<AvailableBeaconLocationsUpdated_t>(),
8906        1usize,
8907        concat!("Size of: ", stringify!(AvailableBeaconLocationsUpdated_t))
8908    );
8909    assert_eq!(
8910        ::std::mem::align_of::<AvailableBeaconLocationsUpdated_t>(),
8911        1usize,
8912        concat!(
8913            "Alignment of ",
8914            stringify!(AvailableBeaconLocationsUpdated_t)
8915        )
8916    );
8917}
8918#[repr(C)]
8919#[derive(Debug, Copy, Clone)]
8920pub struct ActiveBeaconsUpdated_t {
8921    pub _address: u8,
8922}
8923pub const ActiveBeaconsUpdated_t_k_iCallback: ActiveBeaconsUpdated_t__bindgen_ty_1 =
8924    ActiveBeaconsUpdated_t__bindgen_ty_1::k_iCallback;
8925#[repr(u32)]
8926#[non_exhaustive]
8927#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8928pub enum ActiveBeaconsUpdated_t__bindgen_ty_1 {
8929    k_iCallback = 5306,
8930}
8931#[test]
8932fn bindgen_test_layout_ActiveBeaconsUpdated_t() {
8933    assert_eq!(
8934        ::std::mem::size_of::<ActiveBeaconsUpdated_t>(),
8935        1usize,
8936        concat!("Size of: ", stringify!(ActiveBeaconsUpdated_t))
8937    );
8938    assert_eq!(
8939        ::std::mem::align_of::<ActiveBeaconsUpdated_t>(),
8940        1usize,
8941        concat!("Alignment of ", stringify!(ActiveBeaconsUpdated_t))
8942    );
8943}
8944pub const k_unMaxCloudFileChunkSize: uint32 = 104857600;
8945#[repr(C, packed(4))]
8946#[derive(Debug, Copy, Clone)]
8947pub struct SteamParamStringArray_t {
8948    pub m_ppStrings: *mut *const ::std::os::raw::c_char,
8949    pub m_nNumStrings: int32,
8950}
8951#[test]
8952fn bindgen_test_layout_SteamParamStringArray_t() {
8953    const UNINIT: ::std::mem::MaybeUninit<SteamParamStringArray_t> =
8954        ::std::mem::MaybeUninit::uninit();
8955    let ptr = UNINIT.as_ptr();
8956    assert_eq!(
8957        ::std::mem::size_of::<SteamParamStringArray_t>(),
8958        12usize,
8959        concat!("Size of: ", stringify!(SteamParamStringArray_t))
8960    );
8961    assert_eq!(
8962        ::std::mem::align_of::<SteamParamStringArray_t>(),
8963        4usize,
8964        concat!("Alignment of ", stringify!(SteamParamStringArray_t))
8965    );
8966    assert_eq!(
8967        unsafe { ::std::ptr::addr_of!((*ptr).m_ppStrings) as usize - ptr as usize },
8968        0usize,
8969        concat!(
8970            "Offset of field: ",
8971            stringify!(SteamParamStringArray_t),
8972            "::",
8973            stringify!(m_ppStrings)
8974        )
8975    );
8976    assert_eq!(
8977        unsafe { ::std::ptr::addr_of!((*ptr).m_nNumStrings) as usize - ptr as usize },
8978        8usize,
8979        concat!(
8980            "Offset of field: ",
8981            stringify!(SteamParamStringArray_t),
8982            "::",
8983            stringify!(m_nNumStrings)
8984        )
8985    );
8986}
8987pub type UGCHandle_t = uint64;
8988pub type PublishedFileUpdateHandle_t = uint64;
8989pub type PublishedFileId_t = uint64;
8990pub const k_PublishedFileIdInvalid: PublishedFileId_t = 0;
8991pub const k_UGCHandleInvalid: UGCHandle_t = 18446744073709551615;
8992pub const k_PublishedFileUpdateHandleInvalid: PublishedFileUpdateHandle_t = 18446744073709551615;
8993pub type UGCFileWriteStreamHandle_t = uint64;
8994pub const k_UGCFileStreamHandleInvalid: UGCFileWriteStreamHandle_t = 18446744073709551615;
8995pub const k_cchPublishedDocumentTitleMax: uint32 = 129;
8996pub const k_cchPublishedDocumentDescriptionMax: uint32 = 8000;
8997pub const k_cchPublishedDocumentChangeDescriptionMax: uint32 = 8000;
8998pub const k_unEnumeratePublishedFilesMaxResults: uint32 = 50;
8999pub const k_cchTagListMax: uint32 = 1025;
9000pub const k_cchFilenameMax: uint32 = 260;
9001pub const k_cchPublishedFileURLMax: uint32 = 256;
9002#[repr(u32)]
9003#[non_exhaustive]
9004#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9005pub enum ERemoteStoragePlatform {
9006    k_ERemoteStoragePlatformNone = 0,
9007    k_ERemoteStoragePlatformWindows = 1,
9008    k_ERemoteStoragePlatformOSX = 2,
9009    k_ERemoteStoragePlatformPS3 = 4,
9010    k_ERemoteStoragePlatformLinux = 8,
9011    k_ERemoteStoragePlatformSwitch = 16,
9012    k_ERemoteStoragePlatformAndroid = 32,
9013    k_ERemoteStoragePlatformIOS = 64,
9014    k_ERemoteStoragePlatformAll = 4294967295,
9015}
9016#[repr(u32)]
9017#[non_exhaustive]
9018#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9019pub enum ERemoteStoragePublishedFileVisibility {
9020    k_ERemoteStoragePublishedFileVisibilityPublic = 0,
9021    k_ERemoteStoragePublishedFileVisibilityFriendsOnly = 1,
9022    k_ERemoteStoragePublishedFileVisibilityPrivate = 2,
9023    k_ERemoteStoragePublishedFileVisibilityUnlisted = 3,
9024}
9025impl EWorkshopFileType {
9026    pub const k_EWorkshopFileTypeCommunity: EWorkshopFileType =
9027        EWorkshopFileType::k_EWorkshopFileTypeFirst;
9028}
9029#[repr(u32)]
9030#[non_exhaustive]
9031#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9032pub enum EWorkshopFileType {
9033    k_EWorkshopFileTypeFirst = 0,
9034    k_EWorkshopFileTypeMicrotransaction = 1,
9035    k_EWorkshopFileTypeCollection = 2,
9036    k_EWorkshopFileTypeArt = 3,
9037    k_EWorkshopFileTypeVideo = 4,
9038    k_EWorkshopFileTypeScreenshot = 5,
9039    k_EWorkshopFileTypeGame = 6,
9040    k_EWorkshopFileTypeSoftware = 7,
9041    k_EWorkshopFileTypeConcept = 8,
9042    k_EWorkshopFileTypeWebGuide = 9,
9043    k_EWorkshopFileTypeIntegratedGuide = 10,
9044    k_EWorkshopFileTypeMerch = 11,
9045    k_EWorkshopFileTypeControllerBinding = 12,
9046    k_EWorkshopFileTypeSteamworksAccessInvite = 13,
9047    k_EWorkshopFileTypeSteamVideo = 14,
9048    k_EWorkshopFileTypeGameManagedItem = 15,
9049    k_EWorkshopFileTypeMax = 16,
9050}
9051#[repr(u32)]
9052#[non_exhaustive]
9053#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9054pub enum EWorkshopVote {
9055    k_EWorkshopVoteUnvoted = 0,
9056    k_EWorkshopVoteFor = 1,
9057    k_EWorkshopVoteAgainst = 2,
9058    k_EWorkshopVoteLater = 3,
9059}
9060#[repr(u32)]
9061#[non_exhaustive]
9062#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9063pub enum EWorkshopFileAction {
9064    k_EWorkshopFileActionPlayed = 0,
9065    k_EWorkshopFileActionCompleted = 1,
9066}
9067#[repr(u32)]
9068#[non_exhaustive]
9069#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9070pub enum EWorkshopEnumerationType {
9071    k_EWorkshopEnumerationTypeRankedByVote = 0,
9072    k_EWorkshopEnumerationTypeRecent = 1,
9073    k_EWorkshopEnumerationTypeTrending = 2,
9074    k_EWorkshopEnumerationTypeFavoritesOfFriends = 3,
9075    k_EWorkshopEnumerationTypeVotedByFriends = 4,
9076    k_EWorkshopEnumerationTypeContentByFriends = 5,
9077    k_EWorkshopEnumerationTypeRecentFromFollowedUsers = 6,
9078}
9079#[repr(u32)]
9080#[non_exhaustive]
9081#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9082pub enum EWorkshopVideoProvider {
9083    k_EWorkshopVideoProviderNone = 0,
9084    k_EWorkshopVideoProviderYoutube = 1,
9085}
9086#[repr(u32)]
9087#[non_exhaustive]
9088#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9089pub enum EUGCReadAction {
9090    k_EUGCRead_ContinueReadingUntilFinished = 0,
9091    k_EUGCRead_ContinueReading = 1,
9092    k_EUGCRead_Close = 2,
9093}
9094#[repr(u32)]
9095#[non_exhaustive]
9096#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9097pub enum ERemoteStorageLocalFileChange {
9098    k_ERemoteStorageLocalFileChange_Invalid = 0,
9099    k_ERemoteStorageLocalFileChange_FileUpdated = 1,
9100    k_ERemoteStorageLocalFileChange_FileDeleted = 2,
9101}
9102#[repr(u32)]
9103#[non_exhaustive]
9104#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9105pub enum ERemoteStorageFilePathType {
9106    k_ERemoteStorageFilePathType_Invalid = 0,
9107    k_ERemoteStorageFilePathType_Absolute = 1,
9108    k_ERemoteStorageFilePathType_APIFilename = 2,
9109}
9110#[repr(C)]
9111pub struct ISteamRemoteStorage__bindgen_vtable(::std::os::raw::c_void);
9112#[repr(C)]
9113#[derive(Debug, Copy, Clone)]
9114pub struct ISteamRemoteStorage {
9115    pub vtable_: *const ISteamRemoteStorage__bindgen_vtable,
9116}
9117#[test]
9118fn bindgen_test_layout_ISteamRemoteStorage() {
9119    assert_eq!(
9120        ::std::mem::size_of::<ISteamRemoteStorage>(),
9121        8usize,
9122        concat!("Size of: ", stringify!(ISteamRemoteStorage))
9123    );
9124    assert_eq!(
9125        ::std::mem::align_of::<ISteamRemoteStorage>(),
9126        8usize,
9127        concat!("Alignment of ", stringify!(ISteamRemoteStorage))
9128    );
9129}
9130#[repr(C, packed(4))]
9131#[derive(Debug, Copy, Clone)]
9132pub struct RemoteStorageFileShareResult_t {
9133    pub m_eResult: EResult,
9134    pub m_hFile: UGCHandle_t,
9135    pub m_rgchFilename: [::std::os::raw::c_char; 260usize],
9136}
9137pub const RemoteStorageFileShareResult_t_k_iCallback: RemoteStorageFileShareResult_t__bindgen_ty_1 =
9138    RemoteStorageFileShareResult_t__bindgen_ty_1::k_iCallback;
9139#[repr(u32)]
9140#[non_exhaustive]
9141#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9142pub enum RemoteStorageFileShareResult_t__bindgen_ty_1 {
9143    k_iCallback = 1307,
9144}
9145#[test]
9146fn bindgen_test_layout_RemoteStorageFileShareResult_t() {
9147    const UNINIT: ::std::mem::MaybeUninit<RemoteStorageFileShareResult_t> =
9148        ::std::mem::MaybeUninit::uninit();
9149    let ptr = UNINIT.as_ptr();
9150    assert_eq!(
9151        ::std::mem::size_of::<RemoteStorageFileShareResult_t>(),
9152        272usize,
9153        concat!("Size of: ", stringify!(RemoteStorageFileShareResult_t))
9154    );
9155    assert_eq!(
9156        ::std::mem::align_of::<RemoteStorageFileShareResult_t>(),
9157        4usize,
9158        concat!("Alignment of ", stringify!(RemoteStorageFileShareResult_t))
9159    );
9160    assert_eq!(
9161        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
9162        0usize,
9163        concat!(
9164            "Offset of field: ",
9165            stringify!(RemoteStorageFileShareResult_t),
9166            "::",
9167            stringify!(m_eResult)
9168        )
9169    );
9170    assert_eq!(
9171        unsafe { ::std::ptr::addr_of!((*ptr).m_hFile) as usize - ptr as usize },
9172        4usize,
9173        concat!(
9174            "Offset of field: ",
9175            stringify!(RemoteStorageFileShareResult_t),
9176            "::",
9177            stringify!(m_hFile)
9178        )
9179    );
9180    assert_eq!(
9181        unsafe { ::std::ptr::addr_of!((*ptr).m_rgchFilename) as usize - ptr as usize },
9182        12usize,
9183        concat!(
9184            "Offset of field: ",
9185            stringify!(RemoteStorageFileShareResult_t),
9186            "::",
9187            stringify!(m_rgchFilename)
9188        )
9189    );
9190}
9191#[repr(C, packed(4))]
9192#[derive(Debug, Copy, Clone)]
9193pub struct RemoteStoragePublishFileResult_t {
9194    pub m_eResult: EResult,
9195    pub m_nPublishedFileId: PublishedFileId_t,
9196    pub m_bUserNeedsToAcceptWorkshopLegalAgreement: bool,
9197}
9198pub const RemoteStoragePublishFileResult_t_k_iCallback:
9199    RemoteStoragePublishFileResult_t__bindgen_ty_1 =
9200    RemoteStoragePublishFileResult_t__bindgen_ty_1::k_iCallback;
9201#[repr(u32)]
9202#[non_exhaustive]
9203#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9204pub enum RemoteStoragePublishFileResult_t__bindgen_ty_1 {
9205    k_iCallback = 1309,
9206}
9207#[test]
9208fn bindgen_test_layout_RemoteStoragePublishFileResult_t() {
9209    const UNINIT: ::std::mem::MaybeUninit<RemoteStoragePublishFileResult_t> =
9210        ::std::mem::MaybeUninit::uninit();
9211    let ptr = UNINIT.as_ptr();
9212    assert_eq!(
9213        ::std::mem::size_of::<RemoteStoragePublishFileResult_t>(),
9214        16usize,
9215        concat!("Size of: ", stringify!(RemoteStoragePublishFileResult_t))
9216    );
9217    assert_eq!(
9218        ::std::mem::align_of::<RemoteStoragePublishFileResult_t>(),
9219        4usize,
9220        concat!(
9221            "Alignment of ",
9222            stringify!(RemoteStoragePublishFileResult_t)
9223        )
9224    );
9225    assert_eq!(
9226        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
9227        0usize,
9228        concat!(
9229            "Offset of field: ",
9230            stringify!(RemoteStoragePublishFileResult_t),
9231            "::",
9232            stringify!(m_eResult)
9233        )
9234    );
9235    assert_eq!(
9236        unsafe { ::std::ptr::addr_of!((*ptr).m_nPublishedFileId) as usize - ptr as usize },
9237        4usize,
9238        concat!(
9239            "Offset of field: ",
9240            stringify!(RemoteStoragePublishFileResult_t),
9241            "::",
9242            stringify!(m_nPublishedFileId)
9243        )
9244    );
9245    assert_eq!(
9246        unsafe {
9247            ::std::ptr::addr_of!((*ptr).m_bUserNeedsToAcceptWorkshopLegalAgreement) as usize
9248                - ptr as usize
9249        },
9250        12usize,
9251        concat!(
9252            "Offset of field: ",
9253            stringify!(RemoteStoragePublishFileResult_t),
9254            "::",
9255            stringify!(m_bUserNeedsToAcceptWorkshopLegalAgreement)
9256        )
9257    );
9258}
9259#[repr(C, packed(4))]
9260#[derive(Debug, Copy, Clone)]
9261pub struct RemoteStorageDeletePublishedFileResult_t {
9262    pub m_eResult: EResult,
9263    pub m_nPublishedFileId: PublishedFileId_t,
9264}
9265pub const RemoteStorageDeletePublishedFileResult_t_k_iCallback:
9266    RemoteStorageDeletePublishedFileResult_t__bindgen_ty_1 =
9267    RemoteStorageDeletePublishedFileResult_t__bindgen_ty_1::k_iCallback;
9268#[repr(u32)]
9269#[non_exhaustive]
9270#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9271pub enum RemoteStorageDeletePublishedFileResult_t__bindgen_ty_1 {
9272    k_iCallback = 1311,
9273}
9274#[test]
9275fn bindgen_test_layout_RemoteStorageDeletePublishedFileResult_t() {
9276    const UNINIT: ::std::mem::MaybeUninit<RemoteStorageDeletePublishedFileResult_t> =
9277        ::std::mem::MaybeUninit::uninit();
9278    let ptr = UNINIT.as_ptr();
9279    assert_eq!(
9280        ::std::mem::size_of::<RemoteStorageDeletePublishedFileResult_t>(),
9281        12usize,
9282        concat!(
9283            "Size of: ",
9284            stringify!(RemoteStorageDeletePublishedFileResult_t)
9285        )
9286    );
9287    assert_eq!(
9288        ::std::mem::align_of::<RemoteStorageDeletePublishedFileResult_t>(),
9289        4usize,
9290        concat!(
9291            "Alignment of ",
9292            stringify!(RemoteStorageDeletePublishedFileResult_t)
9293        )
9294    );
9295    assert_eq!(
9296        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
9297        0usize,
9298        concat!(
9299            "Offset of field: ",
9300            stringify!(RemoteStorageDeletePublishedFileResult_t),
9301            "::",
9302            stringify!(m_eResult)
9303        )
9304    );
9305    assert_eq!(
9306        unsafe { ::std::ptr::addr_of!((*ptr).m_nPublishedFileId) as usize - ptr as usize },
9307        4usize,
9308        concat!(
9309            "Offset of field: ",
9310            stringify!(RemoteStorageDeletePublishedFileResult_t),
9311            "::",
9312            stringify!(m_nPublishedFileId)
9313        )
9314    );
9315}
9316#[repr(C, packed(4))]
9317#[derive(Debug, Copy, Clone)]
9318pub struct RemoteStorageEnumerateUserPublishedFilesResult_t {
9319    pub m_eResult: EResult,
9320    pub m_nResultsReturned: int32,
9321    pub m_nTotalResultCount: int32,
9322    pub m_rgPublishedFileId: [PublishedFileId_t; 50usize],
9323}
9324pub const RemoteStorageEnumerateUserPublishedFilesResult_t_k_iCallback:
9325    RemoteStorageEnumerateUserPublishedFilesResult_t__bindgen_ty_1 =
9326    RemoteStorageEnumerateUserPublishedFilesResult_t__bindgen_ty_1::k_iCallback;
9327#[repr(u32)]
9328#[non_exhaustive]
9329#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9330pub enum RemoteStorageEnumerateUserPublishedFilesResult_t__bindgen_ty_1 {
9331    k_iCallback = 1312,
9332}
9333#[test]
9334fn bindgen_test_layout_RemoteStorageEnumerateUserPublishedFilesResult_t() {
9335    const UNINIT: ::std::mem::MaybeUninit<RemoteStorageEnumerateUserPublishedFilesResult_t> =
9336        ::std::mem::MaybeUninit::uninit();
9337    let ptr = UNINIT.as_ptr();
9338    assert_eq!(
9339        ::std::mem::size_of::<RemoteStorageEnumerateUserPublishedFilesResult_t>(),
9340        412usize,
9341        concat!(
9342            "Size of: ",
9343            stringify!(RemoteStorageEnumerateUserPublishedFilesResult_t)
9344        )
9345    );
9346    assert_eq!(
9347        ::std::mem::align_of::<RemoteStorageEnumerateUserPublishedFilesResult_t>(),
9348        4usize,
9349        concat!(
9350            "Alignment of ",
9351            stringify!(RemoteStorageEnumerateUserPublishedFilesResult_t)
9352        )
9353    );
9354    assert_eq!(
9355        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
9356        0usize,
9357        concat!(
9358            "Offset of field: ",
9359            stringify!(RemoteStorageEnumerateUserPublishedFilesResult_t),
9360            "::",
9361            stringify!(m_eResult)
9362        )
9363    );
9364    assert_eq!(
9365        unsafe { ::std::ptr::addr_of!((*ptr).m_nResultsReturned) as usize - ptr as usize },
9366        4usize,
9367        concat!(
9368            "Offset of field: ",
9369            stringify!(RemoteStorageEnumerateUserPublishedFilesResult_t),
9370            "::",
9371            stringify!(m_nResultsReturned)
9372        )
9373    );
9374    assert_eq!(
9375        unsafe { ::std::ptr::addr_of!((*ptr).m_nTotalResultCount) as usize - ptr as usize },
9376        8usize,
9377        concat!(
9378            "Offset of field: ",
9379            stringify!(RemoteStorageEnumerateUserPublishedFilesResult_t),
9380            "::",
9381            stringify!(m_nTotalResultCount)
9382        )
9383    );
9384    assert_eq!(
9385        unsafe { ::std::ptr::addr_of!((*ptr).m_rgPublishedFileId) as usize - ptr as usize },
9386        12usize,
9387        concat!(
9388            "Offset of field: ",
9389            stringify!(RemoteStorageEnumerateUserPublishedFilesResult_t),
9390            "::",
9391            stringify!(m_rgPublishedFileId)
9392        )
9393    );
9394}
9395#[repr(C, packed(4))]
9396#[derive(Debug, Copy, Clone)]
9397pub struct RemoteStorageSubscribePublishedFileResult_t {
9398    pub m_eResult: EResult,
9399    pub m_nPublishedFileId: PublishedFileId_t,
9400}
9401pub const RemoteStorageSubscribePublishedFileResult_t_k_iCallback:
9402    RemoteStorageSubscribePublishedFileResult_t__bindgen_ty_1 =
9403    RemoteStorageSubscribePublishedFileResult_t__bindgen_ty_1::k_iCallback;
9404#[repr(u32)]
9405#[non_exhaustive]
9406#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9407pub enum RemoteStorageSubscribePublishedFileResult_t__bindgen_ty_1 {
9408    k_iCallback = 1313,
9409}
9410#[test]
9411fn bindgen_test_layout_RemoteStorageSubscribePublishedFileResult_t() {
9412    const UNINIT: ::std::mem::MaybeUninit<RemoteStorageSubscribePublishedFileResult_t> =
9413        ::std::mem::MaybeUninit::uninit();
9414    let ptr = UNINIT.as_ptr();
9415    assert_eq!(
9416        ::std::mem::size_of::<RemoteStorageSubscribePublishedFileResult_t>(),
9417        12usize,
9418        concat!(
9419            "Size of: ",
9420            stringify!(RemoteStorageSubscribePublishedFileResult_t)
9421        )
9422    );
9423    assert_eq!(
9424        ::std::mem::align_of::<RemoteStorageSubscribePublishedFileResult_t>(),
9425        4usize,
9426        concat!(
9427            "Alignment of ",
9428            stringify!(RemoteStorageSubscribePublishedFileResult_t)
9429        )
9430    );
9431    assert_eq!(
9432        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
9433        0usize,
9434        concat!(
9435            "Offset of field: ",
9436            stringify!(RemoteStorageSubscribePublishedFileResult_t),
9437            "::",
9438            stringify!(m_eResult)
9439        )
9440    );
9441    assert_eq!(
9442        unsafe { ::std::ptr::addr_of!((*ptr).m_nPublishedFileId) as usize - ptr as usize },
9443        4usize,
9444        concat!(
9445            "Offset of field: ",
9446            stringify!(RemoteStorageSubscribePublishedFileResult_t),
9447            "::",
9448            stringify!(m_nPublishedFileId)
9449        )
9450    );
9451}
9452#[repr(C, packed(4))]
9453#[derive(Debug, Copy, Clone)]
9454pub struct RemoteStorageEnumerateUserSubscribedFilesResult_t {
9455    pub m_eResult: EResult,
9456    pub m_nResultsReturned: int32,
9457    pub m_nTotalResultCount: int32,
9458    pub m_rgPublishedFileId: [PublishedFileId_t; 50usize],
9459    pub m_rgRTimeSubscribed: [uint32; 50usize],
9460}
9461pub const RemoteStorageEnumerateUserSubscribedFilesResult_t_k_iCallback:
9462    RemoteStorageEnumerateUserSubscribedFilesResult_t__bindgen_ty_1 =
9463    RemoteStorageEnumerateUserSubscribedFilesResult_t__bindgen_ty_1::k_iCallback;
9464#[repr(u32)]
9465#[non_exhaustive]
9466#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9467pub enum RemoteStorageEnumerateUserSubscribedFilesResult_t__bindgen_ty_1 {
9468    k_iCallback = 1314,
9469}
9470#[test]
9471fn bindgen_test_layout_RemoteStorageEnumerateUserSubscribedFilesResult_t() {
9472    const UNINIT: ::std::mem::MaybeUninit<RemoteStorageEnumerateUserSubscribedFilesResult_t> =
9473        ::std::mem::MaybeUninit::uninit();
9474    let ptr = UNINIT.as_ptr();
9475    assert_eq!(
9476        ::std::mem::size_of::<RemoteStorageEnumerateUserSubscribedFilesResult_t>(),
9477        612usize,
9478        concat!(
9479            "Size of: ",
9480            stringify!(RemoteStorageEnumerateUserSubscribedFilesResult_t)
9481        )
9482    );
9483    assert_eq!(
9484        ::std::mem::align_of::<RemoteStorageEnumerateUserSubscribedFilesResult_t>(),
9485        4usize,
9486        concat!(
9487            "Alignment of ",
9488            stringify!(RemoteStorageEnumerateUserSubscribedFilesResult_t)
9489        )
9490    );
9491    assert_eq!(
9492        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
9493        0usize,
9494        concat!(
9495            "Offset of field: ",
9496            stringify!(RemoteStorageEnumerateUserSubscribedFilesResult_t),
9497            "::",
9498            stringify!(m_eResult)
9499        )
9500    );
9501    assert_eq!(
9502        unsafe { ::std::ptr::addr_of!((*ptr).m_nResultsReturned) as usize - ptr as usize },
9503        4usize,
9504        concat!(
9505            "Offset of field: ",
9506            stringify!(RemoteStorageEnumerateUserSubscribedFilesResult_t),
9507            "::",
9508            stringify!(m_nResultsReturned)
9509        )
9510    );
9511    assert_eq!(
9512        unsafe { ::std::ptr::addr_of!((*ptr).m_nTotalResultCount) as usize - ptr as usize },
9513        8usize,
9514        concat!(
9515            "Offset of field: ",
9516            stringify!(RemoteStorageEnumerateUserSubscribedFilesResult_t),
9517            "::",
9518            stringify!(m_nTotalResultCount)
9519        )
9520    );
9521    assert_eq!(
9522        unsafe { ::std::ptr::addr_of!((*ptr).m_rgPublishedFileId) as usize - ptr as usize },
9523        12usize,
9524        concat!(
9525            "Offset of field: ",
9526            stringify!(RemoteStorageEnumerateUserSubscribedFilesResult_t),
9527            "::",
9528            stringify!(m_rgPublishedFileId)
9529        )
9530    );
9531    assert_eq!(
9532        unsafe { ::std::ptr::addr_of!((*ptr).m_rgRTimeSubscribed) as usize - ptr as usize },
9533        412usize,
9534        concat!(
9535            "Offset of field: ",
9536            stringify!(RemoteStorageEnumerateUserSubscribedFilesResult_t),
9537            "::",
9538            stringify!(m_rgRTimeSubscribed)
9539        )
9540    );
9541}
9542#[repr(C, packed(4))]
9543#[derive(Debug, Copy, Clone)]
9544pub struct RemoteStorageUnsubscribePublishedFileResult_t {
9545    pub m_eResult: EResult,
9546    pub m_nPublishedFileId: PublishedFileId_t,
9547}
9548pub const RemoteStorageUnsubscribePublishedFileResult_t_k_iCallback:
9549    RemoteStorageUnsubscribePublishedFileResult_t__bindgen_ty_1 =
9550    RemoteStorageUnsubscribePublishedFileResult_t__bindgen_ty_1::k_iCallback;
9551#[repr(u32)]
9552#[non_exhaustive]
9553#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9554pub enum RemoteStorageUnsubscribePublishedFileResult_t__bindgen_ty_1 {
9555    k_iCallback = 1315,
9556}
9557#[test]
9558fn bindgen_test_layout_RemoteStorageUnsubscribePublishedFileResult_t() {
9559    const UNINIT: ::std::mem::MaybeUninit<RemoteStorageUnsubscribePublishedFileResult_t> =
9560        ::std::mem::MaybeUninit::uninit();
9561    let ptr = UNINIT.as_ptr();
9562    assert_eq!(
9563        ::std::mem::size_of::<RemoteStorageUnsubscribePublishedFileResult_t>(),
9564        12usize,
9565        concat!(
9566            "Size of: ",
9567            stringify!(RemoteStorageUnsubscribePublishedFileResult_t)
9568        )
9569    );
9570    assert_eq!(
9571        ::std::mem::align_of::<RemoteStorageUnsubscribePublishedFileResult_t>(),
9572        4usize,
9573        concat!(
9574            "Alignment of ",
9575            stringify!(RemoteStorageUnsubscribePublishedFileResult_t)
9576        )
9577    );
9578    assert_eq!(
9579        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
9580        0usize,
9581        concat!(
9582            "Offset of field: ",
9583            stringify!(RemoteStorageUnsubscribePublishedFileResult_t),
9584            "::",
9585            stringify!(m_eResult)
9586        )
9587    );
9588    assert_eq!(
9589        unsafe { ::std::ptr::addr_of!((*ptr).m_nPublishedFileId) as usize - ptr as usize },
9590        4usize,
9591        concat!(
9592            "Offset of field: ",
9593            stringify!(RemoteStorageUnsubscribePublishedFileResult_t),
9594            "::",
9595            stringify!(m_nPublishedFileId)
9596        )
9597    );
9598}
9599#[repr(C, packed(4))]
9600#[derive(Debug, Copy, Clone)]
9601pub struct RemoteStorageUpdatePublishedFileResult_t {
9602    pub m_eResult: EResult,
9603    pub m_nPublishedFileId: PublishedFileId_t,
9604    pub m_bUserNeedsToAcceptWorkshopLegalAgreement: bool,
9605}
9606pub const RemoteStorageUpdatePublishedFileResult_t_k_iCallback:
9607    RemoteStorageUpdatePublishedFileResult_t__bindgen_ty_1 =
9608    RemoteStorageUpdatePublishedFileResult_t__bindgen_ty_1::k_iCallback;
9609#[repr(u32)]
9610#[non_exhaustive]
9611#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9612pub enum RemoteStorageUpdatePublishedFileResult_t__bindgen_ty_1 {
9613    k_iCallback = 1316,
9614}
9615#[test]
9616fn bindgen_test_layout_RemoteStorageUpdatePublishedFileResult_t() {
9617    const UNINIT: ::std::mem::MaybeUninit<RemoteStorageUpdatePublishedFileResult_t> =
9618        ::std::mem::MaybeUninit::uninit();
9619    let ptr = UNINIT.as_ptr();
9620    assert_eq!(
9621        ::std::mem::size_of::<RemoteStorageUpdatePublishedFileResult_t>(),
9622        16usize,
9623        concat!(
9624            "Size of: ",
9625            stringify!(RemoteStorageUpdatePublishedFileResult_t)
9626        )
9627    );
9628    assert_eq!(
9629        ::std::mem::align_of::<RemoteStorageUpdatePublishedFileResult_t>(),
9630        4usize,
9631        concat!(
9632            "Alignment of ",
9633            stringify!(RemoteStorageUpdatePublishedFileResult_t)
9634        )
9635    );
9636    assert_eq!(
9637        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
9638        0usize,
9639        concat!(
9640            "Offset of field: ",
9641            stringify!(RemoteStorageUpdatePublishedFileResult_t),
9642            "::",
9643            stringify!(m_eResult)
9644        )
9645    );
9646    assert_eq!(
9647        unsafe { ::std::ptr::addr_of!((*ptr).m_nPublishedFileId) as usize - ptr as usize },
9648        4usize,
9649        concat!(
9650            "Offset of field: ",
9651            stringify!(RemoteStorageUpdatePublishedFileResult_t),
9652            "::",
9653            stringify!(m_nPublishedFileId)
9654        )
9655    );
9656    assert_eq!(
9657        unsafe {
9658            ::std::ptr::addr_of!((*ptr).m_bUserNeedsToAcceptWorkshopLegalAgreement) as usize
9659                - ptr as usize
9660        },
9661        12usize,
9662        concat!(
9663            "Offset of field: ",
9664            stringify!(RemoteStorageUpdatePublishedFileResult_t),
9665            "::",
9666            stringify!(m_bUserNeedsToAcceptWorkshopLegalAgreement)
9667        )
9668    );
9669}
9670#[repr(C, packed(4))]
9671#[derive(Debug, Copy, Clone)]
9672pub struct RemoteStorageDownloadUGCResult_t {
9673    pub m_eResult: EResult,
9674    pub m_hFile: UGCHandle_t,
9675    pub m_nAppID: AppId_t,
9676    pub m_nSizeInBytes: int32,
9677    pub m_pchFileName: [::std::os::raw::c_char; 260usize],
9678    pub m_ulSteamIDOwner: uint64,
9679}
9680pub const RemoteStorageDownloadUGCResult_t_k_iCallback:
9681    RemoteStorageDownloadUGCResult_t__bindgen_ty_1 =
9682    RemoteStorageDownloadUGCResult_t__bindgen_ty_1::k_iCallback;
9683#[repr(u32)]
9684#[non_exhaustive]
9685#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9686pub enum RemoteStorageDownloadUGCResult_t__bindgen_ty_1 {
9687    k_iCallback = 1317,
9688}
9689#[test]
9690fn bindgen_test_layout_RemoteStorageDownloadUGCResult_t() {
9691    const UNINIT: ::std::mem::MaybeUninit<RemoteStorageDownloadUGCResult_t> =
9692        ::std::mem::MaybeUninit::uninit();
9693    let ptr = UNINIT.as_ptr();
9694    assert_eq!(
9695        ::std::mem::size_of::<RemoteStorageDownloadUGCResult_t>(),
9696        288usize,
9697        concat!("Size of: ", stringify!(RemoteStorageDownloadUGCResult_t))
9698    );
9699    assert_eq!(
9700        ::std::mem::align_of::<RemoteStorageDownloadUGCResult_t>(),
9701        4usize,
9702        concat!(
9703            "Alignment of ",
9704            stringify!(RemoteStorageDownloadUGCResult_t)
9705        )
9706    );
9707    assert_eq!(
9708        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
9709        0usize,
9710        concat!(
9711            "Offset of field: ",
9712            stringify!(RemoteStorageDownloadUGCResult_t),
9713            "::",
9714            stringify!(m_eResult)
9715        )
9716    );
9717    assert_eq!(
9718        unsafe { ::std::ptr::addr_of!((*ptr).m_hFile) as usize - ptr as usize },
9719        4usize,
9720        concat!(
9721            "Offset of field: ",
9722            stringify!(RemoteStorageDownloadUGCResult_t),
9723            "::",
9724            stringify!(m_hFile)
9725        )
9726    );
9727    assert_eq!(
9728        unsafe { ::std::ptr::addr_of!((*ptr).m_nAppID) as usize - ptr as usize },
9729        12usize,
9730        concat!(
9731            "Offset of field: ",
9732            stringify!(RemoteStorageDownloadUGCResult_t),
9733            "::",
9734            stringify!(m_nAppID)
9735        )
9736    );
9737    assert_eq!(
9738        unsafe { ::std::ptr::addr_of!((*ptr).m_nSizeInBytes) as usize - ptr as usize },
9739        16usize,
9740        concat!(
9741            "Offset of field: ",
9742            stringify!(RemoteStorageDownloadUGCResult_t),
9743            "::",
9744            stringify!(m_nSizeInBytes)
9745        )
9746    );
9747    assert_eq!(
9748        unsafe { ::std::ptr::addr_of!((*ptr).m_pchFileName) as usize - ptr as usize },
9749        20usize,
9750        concat!(
9751            "Offset of field: ",
9752            stringify!(RemoteStorageDownloadUGCResult_t),
9753            "::",
9754            stringify!(m_pchFileName)
9755        )
9756    );
9757    assert_eq!(
9758        unsafe { ::std::ptr::addr_of!((*ptr).m_ulSteamIDOwner) as usize - ptr as usize },
9759        280usize,
9760        concat!(
9761            "Offset of field: ",
9762            stringify!(RemoteStorageDownloadUGCResult_t),
9763            "::",
9764            stringify!(m_ulSteamIDOwner)
9765        )
9766    );
9767}
9768#[repr(C, packed(4))]
9769#[derive(Debug, Copy, Clone)]
9770pub struct RemoteStorageGetPublishedFileDetailsResult_t {
9771    pub m_eResult: EResult,
9772    pub m_nPublishedFileId: PublishedFileId_t,
9773    pub m_nCreatorAppID: AppId_t,
9774    pub m_nConsumerAppID: AppId_t,
9775    pub m_rgchTitle: [::std::os::raw::c_char; 129usize],
9776    pub m_rgchDescription: [::std::os::raw::c_char; 8000usize],
9777    pub m_hFile: UGCHandle_t,
9778    pub m_hPreviewFile: UGCHandle_t,
9779    pub m_ulSteamIDOwner: uint64,
9780    pub m_rtimeCreated: uint32,
9781    pub m_rtimeUpdated: uint32,
9782    pub m_eVisibility: ERemoteStoragePublishedFileVisibility,
9783    pub m_bBanned: bool,
9784    pub m_rgchTags: [::std::os::raw::c_char; 1025usize],
9785    pub m_bTagsTruncated: bool,
9786    pub m_pchFileName: [::std::os::raw::c_char; 260usize],
9787    pub m_nFileSize: int32,
9788    pub m_nPreviewFileSize: int32,
9789    pub m_rgchURL: [::std::os::raw::c_char; 256usize],
9790    pub m_eFileType: EWorkshopFileType,
9791    pub m_bAcceptedForUse: bool,
9792}
9793pub const RemoteStorageGetPublishedFileDetailsResult_t_k_iCallback:
9794    RemoteStorageGetPublishedFileDetailsResult_t__bindgen_ty_1 =
9795    RemoteStorageGetPublishedFileDetailsResult_t__bindgen_ty_1::k_iCallback;
9796#[repr(u32)]
9797#[non_exhaustive]
9798#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9799pub enum RemoteStorageGetPublishedFileDetailsResult_t__bindgen_ty_1 {
9800    k_iCallback = 1318,
9801}
9802#[test]
9803fn bindgen_test_layout_RemoteStorageGetPublishedFileDetailsResult_t() {
9804    const UNINIT: ::std::mem::MaybeUninit<RemoteStorageGetPublishedFileDetailsResult_t> =
9805        ::std::mem::MaybeUninit::uninit();
9806    let ptr = UNINIT.as_ptr();
9807    assert_eq!(
9808        ::std::mem::size_of::<RemoteStorageGetPublishedFileDetailsResult_t>(),
9809        9748usize,
9810        concat!(
9811            "Size of: ",
9812            stringify!(RemoteStorageGetPublishedFileDetailsResult_t)
9813        )
9814    );
9815    assert_eq!(
9816        ::std::mem::align_of::<RemoteStorageGetPublishedFileDetailsResult_t>(),
9817        4usize,
9818        concat!(
9819            "Alignment of ",
9820            stringify!(RemoteStorageGetPublishedFileDetailsResult_t)
9821        )
9822    );
9823    assert_eq!(
9824        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
9825        0usize,
9826        concat!(
9827            "Offset of field: ",
9828            stringify!(RemoteStorageGetPublishedFileDetailsResult_t),
9829            "::",
9830            stringify!(m_eResult)
9831        )
9832    );
9833    assert_eq!(
9834        unsafe { ::std::ptr::addr_of!((*ptr).m_nPublishedFileId) as usize - ptr as usize },
9835        4usize,
9836        concat!(
9837            "Offset of field: ",
9838            stringify!(RemoteStorageGetPublishedFileDetailsResult_t),
9839            "::",
9840            stringify!(m_nPublishedFileId)
9841        )
9842    );
9843    assert_eq!(
9844        unsafe { ::std::ptr::addr_of!((*ptr).m_nCreatorAppID) as usize - ptr as usize },
9845        12usize,
9846        concat!(
9847            "Offset of field: ",
9848            stringify!(RemoteStorageGetPublishedFileDetailsResult_t),
9849            "::",
9850            stringify!(m_nCreatorAppID)
9851        )
9852    );
9853    assert_eq!(
9854        unsafe { ::std::ptr::addr_of!((*ptr).m_nConsumerAppID) as usize - ptr as usize },
9855        16usize,
9856        concat!(
9857            "Offset of field: ",
9858            stringify!(RemoteStorageGetPublishedFileDetailsResult_t),
9859            "::",
9860            stringify!(m_nConsumerAppID)
9861        )
9862    );
9863    assert_eq!(
9864        unsafe { ::std::ptr::addr_of!((*ptr).m_rgchTitle) as usize - ptr as usize },
9865        20usize,
9866        concat!(
9867            "Offset of field: ",
9868            stringify!(RemoteStorageGetPublishedFileDetailsResult_t),
9869            "::",
9870            stringify!(m_rgchTitle)
9871        )
9872    );
9873    assert_eq!(
9874        unsafe { ::std::ptr::addr_of!((*ptr).m_rgchDescription) as usize - ptr as usize },
9875        149usize,
9876        concat!(
9877            "Offset of field: ",
9878            stringify!(RemoteStorageGetPublishedFileDetailsResult_t),
9879            "::",
9880            stringify!(m_rgchDescription)
9881        )
9882    );
9883    assert_eq!(
9884        unsafe { ::std::ptr::addr_of!((*ptr).m_hFile) as usize - ptr as usize },
9885        8152usize,
9886        concat!(
9887            "Offset of field: ",
9888            stringify!(RemoteStorageGetPublishedFileDetailsResult_t),
9889            "::",
9890            stringify!(m_hFile)
9891        )
9892    );
9893    assert_eq!(
9894        unsafe { ::std::ptr::addr_of!((*ptr).m_hPreviewFile) as usize - ptr as usize },
9895        8160usize,
9896        concat!(
9897            "Offset of field: ",
9898            stringify!(RemoteStorageGetPublishedFileDetailsResult_t),
9899            "::",
9900            stringify!(m_hPreviewFile)
9901        )
9902    );
9903    assert_eq!(
9904        unsafe { ::std::ptr::addr_of!((*ptr).m_ulSteamIDOwner) as usize - ptr as usize },
9905        8168usize,
9906        concat!(
9907            "Offset of field: ",
9908            stringify!(RemoteStorageGetPublishedFileDetailsResult_t),
9909            "::",
9910            stringify!(m_ulSteamIDOwner)
9911        )
9912    );
9913    assert_eq!(
9914        unsafe { ::std::ptr::addr_of!((*ptr).m_rtimeCreated) as usize - ptr as usize },
9915        8176usize,
9916        concat!(
9917            "Offset of field: ",
9918            stringify!(RemoteStorageGetPublishedFileDetailsResult_t),
9919            "::",
9920            stringify!(m_rtimeCreated)
9921        )
9922    );
9923    assert_eq!(
9924        unsafe { ::std::ptr::addr_of!((*ptr).m_rtimeUpdated) as usize - ptr as usize },
9925        8180usize,
9926        concat!(
9927            "Offset of field: ",
9928            stringify!(RemoteStorageGetPublishedFileDetailsResult_t),
9929            "::",
9930            stringify!(m_rtimeUpdated)
9931        )
9932    );
9933    assert_eq!(
9934        unsafe { ::std::ptr::addr_of!((*ptr).m_eVisibility) as usize - ptr as usize },
9935        8184usize,
9936        concat!(
9937            "Offset of field: ",
9938            stringify!(RemoteStorageGetPublishedFileDetailsResult_t),
9939            "::",
9940            stringify!(m_eVisibility)
9941        )
9942    );
9943    assert_eq!(
9944        unsafe { ::std::ptr::addr_of!((*ptr).m_bBanned) as usize - ptr as usize },
9945        8188usize,
9946        concat!(
9947            "Offset of field: ",
9948            stringify!(RemoteStorageGetPublishedFileDetailsResult_t),
9949            "::",
9950            stringify!(m_bBanned)
9951        )
9952    );
9953    assert_eq!(
9954        unsafe { ::std::ptr::addr_of!((*ptr).m_rgchTags) as usize - ptr as usize },
9955        8189usize,
9956        concat!(
9957            "Offset of field: ",
9958            stringify!(RemoteStorageGetPublishedFileDetailsResult_t),
9959            "::",
9960            stringify!(m_rgchTags)
9961        )
9962    );
9963    assert_eq!(
9964        unsafe { ::std::ptr::addr_of!((*ptr).m_bTagsTruncated) as usize - ptr as usize },
9965        9214usize,
9966        concat!(
9967            "Offset of field: ",
9968            stringify!(RemoteStorageGetPublishedFileDetailsResult_t),
9969            "::",
9970            stringify!(m_bTagsTruncated)
9971        )
9972    );
9973    assert_eq!(
9974        unsafe { ::std::ptr::addr_of!((*ptr).m_pchFileName) as usize - ptr as usize },
9975        9215usize,
9976        concat!(
9977            "Offset of field: ",
9978            stringify!(RemoteStorageGetPublishedFileDetailsResult_t),
9979            "::",
9980            stringify!(m_pchFileName)
9981        )
9982    );
9983    assert_eq!(
9984        unsafe { ::std::ptr::addr_of!((*ptr).m_nFileSize) as usize - ptr as usize },
9985        9476usize,
9986        concat!(
9987            "Offset of field: ",
9988            stringify!(RemoteStorageGetPublishedFileDetailsResult_t),
9989            "::",
9990            stringify!(m_nFileSize)
9991        )
9992    );
9993    assert_eq!(
9994        unsafe { ::std::ptr::addr_of!((*ptr).m_nPreviewFileSize) as usize - ptr as usize },
9995        9480usize,
9996        concat!(
9997            "Offset of field: ",
9998            stringify!(RemoteStorageGetPublishedFileDetailsResult_t),
9999            "::",
10000            stringify!(m_nPreviewFileSize)
10001        )
10002    );
10003    assert_eq!(
10004        unsafe { ::std::ptr::addr_of!((*ptr).m_rgchURL) as usize - ptr as usize },
10005        9484usize,
10006        concat!(
10007            "Offset of field: ",
10008            stringify!(RemoteStorageGetPublishedFileDetailsResult_t),
10009            "::",
10010            stringify!(m_rgchURL)
10011        )
10012    );
10013    assert_eq!(
10014        unsafe { ::std::ptr::addr_of!((*ptr).m_eFileType) as usize - ptr as usize },
10015        9740usize,
10016        concat!(
10017            "Offset of field: ",
10018            stringify!(RemoteStorageGetPublishedFileDetailsResult_t),
10019            "::",
10020            stringify!(m_eFileType)
10021        )
10022    );
10023    assert_eq!(
10024        unsafe { ::std::ptr::addr_of!((*ptr).m_bAcceptedForUse) as usize - ptr as usize },
10025        9744usize,
10026        concat!(
10027            "Offset of field: ",
10028            stringify!(RemoteStorageGetPublishedFileDetailsResult_t),
10029            "::",
10030            stringify!(m_bAcceptedForUse)
10031        )
10032    );
10033}
10034#[repr(C, packed(4))]
10035#[derive(Debug, Copy, Clone)]
10036pub struct RemoteStorageEnumerateWorkshopFilesResult_t {
10037    pub m_eResult: EResult,
10038    pub m_nResultsReturned: int32,
10039    pub m_nTotalResultCount: int32,
10040    pub m_rgPublishedFileId: [PublishedFileId_t; 50usize],
10041    pub m_rgScore: [f32; 50usize],
10042    pub m_nAppId: AppId_t,
10043    pub m_unStartIndex: uint32,
10044}
10045pub const RemoteStorageEnumerateWorkshopFilesResult_t_k_iCallback:
10046    RemoteStorageEnumerateWorkshopFilesResult_t__bindgen_ty_1 =
10047    RemoteStorageEnumerateWorkshopFilesResult_t__bindgen_ty_1::k_iCallback;
10048#[repr(u32)]
10049#[non_exhaustive]
10050#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10051pub enum RemoteStorageEnumerateWorkshopFilesResult_t__bindgen_ty_1 {
10052    k_iCallback = 1319,
10053}
10054#[test]
10055fn bindgen_test_layout_RemoteStorageEnumerateWorkshopFilesResult_t() {
10056    const UNINIT: ::std::mem::MaybeUninit<RemoteStorageEnumerateWorkshopFilesResult_t> =
10057        ::std::mem::MaybeUninit::uninit();
10058    let ptr = UNINIT.as_ptr();
10059    assert_eq!(
10060        ::std::mem::size_of::<RemoteStorageEnumerateWorkshopFilesResult_t>(),
10061        620usize,
10062        concat!(
10063            "Size of: ",
10064            stringify!(RemoteStorageEnumerateWorkshopFilesResult_t)
10065        )
10066    );
10067    assert_eq!(
10068        ::std::mem::align_of::<RemoteStorageEnumerateWorkshopFilesResult_t>(),
10069        4usize,
10070        concat!(
10071            "Alignment of ",
10072            stringify!(RemoteStorageEnumerateWorkshopFilesResult_t)
10073        )
10074    );
10075    assert_eq!(
10076        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
10077        0usize,
10078        concat!(
10079            "Offset of field: ",
10080            stringify!(RemoteStorageEnumerateWorkshopFilesResult_t),
10081            "::",
10082            stringify!(m_eResult)
10083        )
10084    );
10085    assert_eq!(
10086        unsafe { ::std::ptr::addr_of!((*ptr).m_nResultsReturned) as usize - ptr as usize },
10087        4usize,
10088        concat!(
10089            "Offset of field: ",
10090            stringify!(RemoteStorageEnumerateWorkshopFilesResult_t),
10091            "::",
10092            stringify!(m_nResultsReturned)
10093        )
10094    );
10095    assert_eq!(
10096        unsafe { ::std::ptr::addr_of!((*ptr).m_nTotalResultCount) as usize - ptr as usize },
10097        8usize,
10098        concat!(
10099            "Offset of field: ",
10100            stringify!(RemoteStorageEnumerateWorkshopFilesResult_t),
10101            "::",
10102            stringify!(m_nTotalResultCount)
10103        )
10104    );
10105    assert_eq!(
10106        unsafe { ::std::ptr::addr_of!((*ptr).m_rgPublishedFileId) as usize - ptr as usize },
10107        12usize,
10108        concat!(
10109            "Offset of field: ",
10110            stringify!(RemoteStorageEnumerateWorkshopFilesResult_t),
10111            "::",
10112            stringify!(m_rgPublishedFileId)
10113        )
10114    );
10115    assert_eq!(
10116        unsafe { ::std::ptr::addr_of!((*ptr).m_rgScore) as usize - ptr as usize },
10117        412usize,
10118        concat!(
10119            "Offset of field: ",
10120            stringify!(RemoteStorageEnumerateWorkshopFilesResult_t),
10121            "::",
10122            stringify!(m_rgScore)
10123        )
10124    );
10125    assert_eq!(
10126        unsafe { ::std::ptr::addr_of!((*ptr).m_nAppId) as usize - ptr as usize },
10127        612usize,
10128        concat!(
10129            "Offset of field: ",
10130            stringify!(RemoteStorageEnumerateWorkshopFilesResult_t),
10131            "::",
10132            stringify!(m_nAppId)
10133        )
10134    );
10135    assert_eq!(
10136        unsafe { ::std::ptr::addr_of!((*ptr).m_unStartIndex) as usize - ptr as usize },
10137        616usize,
10138        concat!(
10139            "Offset of field: ",
10140            stringify!(RemoteStorageEnumerateWorkshopFilesResult_t),
10141            "::",
10142            stringify!(m_unStartIndex)
10143        )
10144    );
10145}
10146#[repr(C, packed(4))]
10147#[derive(Debug, Copy, Clone)]
10148pub struct RemoteStorageGetPublishedItemVoteDetailsResult_t {
10149    pub m_eResult: EResult,
10150    pub m_unPublishedFileId: PublishedFileId_t,
10151    pub m_nVotesFor: int32,
10152    pub m_nVotesAgainst: int32,
10153    pub m_nReports: int32,
10154    pub m_fScore: f32,
10155}
10156pub const RemoteStorageGetPublishedItemVoteDetailsResult_t_k_iCallback:
10157    RemoteStorageGetPublishedItemVoteDetailsResult_t__bindgen_ty_1 =
10158    RemoteStorageGetPublishedItemVoteDetailsResult_t__bindgen_ty_1::k_iCallback;
10159#[repr(u32)]
10160#[non_exhaustive]
10161#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10162pub enum RemoteStorageGetPublishedItemVoteDetailsResult_t__bindgen_ty_1 {
10163    k_iCallback = 1320,
10164}
10165#[test]
10166fn bindgen_test_layout_RemoteStorageGetPublishedItemVoteDetailsResult_t() {
10167    const UNINIT: ::std::mem::MaybeUninit<RemoteStorageGetPublishedItemVoteDetailsResult_t> =
10168        ::std::mem::MaybeUninit::uninit();
10169    let ptr = UNINIT.as_ptr();
10170    assert_eq!(
10171        ::std::mem::size_of::<RemoteStorageGetPublishedItemVoteDetailsResult_t>(),
10172        28usize,
10173        concat!(
10174            "Size of: ",
10175            stringify!(RemoteStorageGetPublishedItemVoteDetailsResult_t)
10176        )
10177    );
10178    assert_eq!(
10179        ::std::mem::align_of::<RemoteStorageGetPublishedItemVoteDetailsResult_t>(),
10180        4usize,
10181        concat!(
10182            "Alignment of ",
10183            stringify!(RemoteStorageGetPublishedItemVoteDetailsResult_t)
10184        )
10185    );
10186    assert_eq!(
10187        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
10188        0usize,
10189        concat!(
10190            "Offset of field: ",
10191            stringify!(RemoteStorageGetPublishedItemVoteDetailsResult_t),
10192            "::",
10193            stringify!(m_eResult)
10194        )
10195    );
10196    assert_eq!(
10197        unsafe { ::std::ptr::addr_of!((*ptr).m_unPublishedFileId) as usize - ptr as usize },
10198        4usize,
10199        concat!(
10200            "Offset of field: ",
10201            stringify!(RemoteStorageGetPublishedItemVoteDetailsResult_t),
10202            "::",
10203            stringify!(m_unPublishedFileId)
10204        )
10205    );
10206    assert_eq!(
10207        unsafe { ::std::ptr::addr_of!((*ptr).m_nVotesFor) as usize - ptr as usize },
10208        12usize,
10209        concat!(
10210            "Offset of field: ",
10211            stringify!(RemoteStorageGetPublishedItemVoteDetailsResult_t),
10212            "::",
10213            stringify!(m_nVotesFor)
10214        )
10215    );
10216    assert_eq!(
10217        unsafe { ::std::ptr::addr_of!((*ptr).m_nVotesAgainst) as usize - ptr as usize },
10218        16usize,
10219        concat!(
10220            "Offset of field: ",
10221            stringify!(RemoteStorageGetPublishedItemVoteDetailsResult_t),
10222            "::",
10223            stringify!(m_nVotesAgainst)
10224        )
10225    );
10226    assert_eq!(
10227        unsafe { ::std::ptr::addr_of!((*ptr).m_nReports) as usize - ptr as usize },
10228        20usize,
10229        concat!(
10230            "Offset of field: ",
10231            stringify!(RemoteStorageGetPublishedItemVoteDetailsResult_t),
10232            "::",
10233            stringify!(m_nReports)
10234        )
10235    );
10236    assert_eq!(
10237        unsafe { ::std::ptr::addr_of!((*ptr).m_fScore) as usize - ptr as usize },
10238        24usize,
10239        concat!(
10240            "Offset of field: ",
10241            stringify!(RemoteStorageGetPublishedItemVoteDetailsResult_t),
10242            "::",
10243            stringify!(m_fScore)
10244        )
10245    );
10246}
10247#[repr(C, packed(4))]
10248#[derive(Debug, Copy, Clone)]
10249pub struct RemoteStoragePublishedFileSubscribed_t {
10250    pub m_nPublishedFileId: PublishedFileId_t,
10251    pub m_nAppID: AppId_t,
10252}
10253pub const RemoteStoragePublishedFileSubscribed_t_k_iCallback:
10254    RemoteStoragePublishedFileSubscribed_t__bindgen_ty_1 =
10255    RemoteStoragePublishedFileSubscribed_t__bindgen_ty_1::k_iCallback;
10256#[repr(u32)]
10257#[non_exhaustive]
10258#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10259pub enum RemoteStoragePublishedFileSubscribed_t__bindgen_ty_1 {
10260    k_iCallback = 1321,
10261}
10262#[test]
10263fn bindgen_test_layout_RemoteStoragePublishedFileSubscribed_t() {
10264    const UNINIT: ::std::mem::MaybeUninit<RemoteStoragePublishedFileSubscribed_t> =
10265        ::std::mem::MaybeUninit::uninit();
10266    let ptr = UNINIT.as_ptr();
10267    assert_eq!(
10268        ::std::mem::size_of::<RemoteStoragePublishedFileSubscribed_t>(),
10269        12usize,
10270        concat!(
10271            "Size of: ",
10272            stringify!(RemoteStoragePublishedFileSubscribed_t)
10273        )
10274    );
10275    assert_eq!(
10276        ::std::mem::align_of::<RemoteStoragePublishedFileSubscribed_t>(),
10277        4usize,
10278        concat!(
10279            "Alignment of ",
10280            stringify!(RemoteStoragePublishedFileSubscribed_t)
10281        )
10282    );
10283    assert_eq!(
10284        unsafe { ::std::ptr::addr_of!((*ptr).m_nPublishedFileId) as usize - ptr as usize },
10285        0usize,
10286        concat!(
10287            "Offset of field: ",
10288            stringify!(RemoteStoragePublishedFileSubscribed_t),
10289            "::",
10290            stringify!(m_nPublishedFileId)
10291        )
10292    );
10293    assert_eq!(
10294        unsafe { ::std::ptr::addr_of!((*ptr).m_nAppID) as usize - ptr as usize },
10295        8usize,
10296        concat!(
10297            "Offset of field: ",
10298            stringify!(RemoteStoragePublishedFileSubscribed_t),
10299            "::",
10300            stringify!(m_nAppID)
10301        )
10302    );
10303}
10304#[repr(C, packed(4))]
10305#[derive(Debug, Copy, Clone)]
10306pub struct RemoteStoragePublishedFileUnsubscribed_t {
10307    pub m_nPublishedFileId: PublishedFileId_t,
10308    pub m_nAppID: AppId_t,
10309}
10310pub const RemoteStoragePublishedFileUnsubscribed_t_k_iCallback:
10311    RemoteStoragePublishedFileUnsubscribed_t__bindgen_ty_1 =
10312    RemoteStoragePublishedFileUnsubscribed_t__bindgen_ty_1::k_iCallback;
10313#[repr(u32)]
10314#[non_exhaustive]
10315#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10316pub enum RemoteStoragePublishedFileUnsubscribed_t__bindgen_ty_1 {
10317    k_iCallback = 1322,
10318}
10319#[test]
10320fn bindgen_test_layout_RemoteStoragePublishedFileUnsubscribed_t() {
10321    const UNINIT: ::std::mem::MaybeUninit<RemoteStoragePublishedFileUnsubscribed_t> =
10322        ::std::mem::MaybeUninit::uninit();
10323    let ptr = UNINIT.as_ptr();
10324    assert_eq!(
10325        ::std::mem::size_of::<RemoteStoragePublishedFileUnsubscribed_t>(),
10326        12usize,
10327        concat!(
10328            "Size of: ",
10329            stringify!(RemoteStoragePublishedFileUnsubscribed_t)
10330        )
10331    );
10332    assert_eq!(
10333        ::std::mem::align_of::<RemoteStoragePublishedFileUnsubscribed_t>(),
10334        4usize,
10335        concat!(
10336            "Alignment of ",
10337            stringify!(RemoteStoragePublishedFileUnsubscribed_t)
10338        )
10339    );
10340    assert_eq!(
10341        unsafe { ::std::ptr::addr_of!((*ptr).m_nPublishedFileId) as usize - ptr as usize },
10342        0usize,
10343        concat!(
10344            "Offset of field: ",
10345            stringify!(RemoteStoragePublishedFileUnsubscribed_t),
10346            "::",
10347            stringify!(m_nPublishedFileId)
10348        )
10349    );
10350    assert_eq!(
10351        unsafe { ::std::ptr::addr_of!((*ptr).m_nAppID) as usize - ptr as usize },
10352        8usize,
10353        concat!(
10354            "Offset of field: ",
10355            stringify!(RemoteStoragePublishedFileUnsubscribed_t),
10356            "::",
10357            stringify!(m_nAppID)
10358        )
10359    );
10360}
10361#[repr(C, packed(4))]
10362#[derive(Debug, Copy, Clone)]
10363pub struct RemoteStoragePublishedFileDeleted_t {
10364    pub m_nPublishedFileId: PublishedFileId_t,
10365    pub m_nAppID: AppId_t,
10366}
10367pub const RemoteStoragePublishedFileDeleted_t_k_iCallback:
10368    RemoteStoragePublishedFileDeleted_t__bindgen_ty_1 =
10369    RemoteStoragePublishedFileDeleted_t__bindgen_ty_1::k_iCallback;
10370#[repr(u32)]
10371#[non_exhaustive]
10372#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10373pub enum RemoteStoragePublishedFileDeleted_t__bindgen_ty_1 {
10374    k_iCallback = 1323,
10375}
10376#[test]
10377fn bindgen_test_layout_RemoteStoragePublishedFileDeleted_t() {
10378    const UNINIT: ::std::mem::MaybeUninit<RemoteStoragePublishedFileDeleted_t> =
10379        ::std::mem::MaybeUninit::uninit();
10380    let ptr = UNINIT.as_ptr();
10381    assert_eq!(
10382        ::std::mem::size_of::<RemoteStoragePublishedFileDeleted_t>(),
10383        12usize,
10384        concat!("Size of: ", stringify!(RemoteStoragePublishedFileDeleted_t))
10385    );
10386    assert_eq!(
10387        ::std::mem::align_of::<RemoteStoragePublishedFileDeleted_t>(),
10388        4usize,
10389        concat!(
10390            "Alignment of ",
10391            stringify!(RemoteStoragePublishedFileDeleted_t)
10392        )
10393    );
10394    assert_eq!(
10395        unsafe { ::std::ptr::addr_of!((*ptr).m_nPublishedFileId) as usize - ptr as usize },
10396        0usize,
10397        concat!(
10398            "Offset of field: ",
10399            stringify!(RemoteStoragePublishedFileDeleted_t),
10400            "::",
10401            stringify!(m_nPublishedFileId)
10402        )
10403    );
10404    assert_eq!(
10405        unsafe { ::std::ptr::addr_of!((*ptr).m_nAppID) as usize - ptr as usize },
10406        8usize,
10407        concat!(
10408            "Offset of field: ",
10409            stringify!(RemoteStoragePublishedFileDeleted_t),
10410            "::",
10411            stringify!(m_nAppID)
10412        )
10413    );
10414}
10415#[repr(C, packed(4))]
10416#[derive(Debug, Copy, Clone)]
10417pub struct RemoteStorageUpdateUserPublishedItemVoteResult_t {
10418    pub m_eResult: EResult,
10419    pub m_nPublishedFileId: PublishedFileId_t,
10420}
10421pub const RemoteStorageUpdateUserPublishedItemVoteResult_t_k_iCallback:
10422    RemoteStorageUpdateUserPublishedItemVoteResult_t__bindgen_ty_1 =
10423    RemoteStorageUpdateUserPublishedItemVoteResult_t__bindgen_ty_1::k_iCallback;
10424#[repr(u32)]
10425#[non_exhaustive]
10426#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10427pub enum RemoteStorageUpdateUserPublishedItemVoteResult_t__bindgen_ty_1 {
10428    k_iCallback = 1324,
10429}
10430#[test]
10431fn bindgen_test_layout_RemoteStorageUpdateUserPublishedItemVoteResult_t() {
10432    const UNINIT: ::std::mem::MaybeUninit<RemoteStorageUpdateUserPublishedItemVoteResult_t> =
10433        ::std::mem::MaybeUninit::uninit();
10434    let ptr = UNINIT.as_ptr();
10435    assert_eq!(
10436        ::std::mem::size_of::<RemoteStorageUpdateUserPublishedItemVoteResult_t>(),
10437        12usize,
10438        concat!(
10439            "Size of: ",
10440            stringify!(RemoteStorageUpdateUserPublishedItemVoteResult_t)
10441        )
10442    );
10443    assert_eq!(
10444        ::std::mem::align_of::<RemoteStorageUpdateUserPublishedItemVoteResult_t>(),
10445        4usize,
10446        concat!(
10447            "Alignment of ",
10448            stringify!(RemoteStorageUpdateUserPublishedItemVoteResult_t)
10449        )
10450    );
10451    assert_eq!(
10452        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
10453        0usize,
10454        concat!(
10455            "Offset of field: ",
10456            stringify!(RemoteStorageUpdateUserPublishedItemVoteResult_t),
10457            "::",
10458            stringify!(m_eResult)
10459        )
10460    );
10461    assert_eq!(
10462        unsafe { ::std::ptr::addr_of!((*ptr).m_nPublishedFileId) as usize - ptr as usize },
10463        4usize,
10464        concat!(
10465            "Offset of field: ",
10466            stringify!(RemoteStorageUpdateUserPublishedItemVoteResult_t),
10467            "::",
10468            stringify!(m_nPublishedFileId)
10469        )
10470    );
10471}
10472#[repr(C, packed(4))]
10473#[derive(Debug, Copy, Clone)]
10474pub struct RemoteStorageUserVoteDetails_t {
10475    pub m_eResult: EResult,
10476    pub m_nPublishedFileId: PublishedFileId_t,
10477    pub m_eVote: EWorkshopVote,
10478}
10479pub const RemoteStorageUserVoteDetails_t_k_iCallback: RemoteStorageUserVoteDetails_t__bindgen_ty_1 =
10480    RemoteStorageUserVoteDetails_t__bindgen_ty_1::k_iCallback;
10481#[repr(u32)]
10482#[non_exhaustive]
10483#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10484pub enum RemoteStorageUserVoteDetails_t__bindgen_ty_1 {
10485    k_iCallback = 1325,
10486}
10487#[test]
10488fn bindgen_test_layout_RemoteStorageUserVoteDetails_t() {
10489    const UNINIT: ::std::mem::MaybeUninit<RemoteStorageUserVoteDetails_t> =
10490        ::std::mem::MaybeUninit::uninit();
10491    let ptr = UNINIT.as_ptr();
10492    assert_eq!(
10493        ::std::mem::size_of::<RemoteStorageUserVoteDetails_t>(),
10494        16usize,
10495        concat!("Size of: ", stringify!(RemoteStorageUserVoteDetails_t))
10496    );
10497    assert_eq!(
10498        ::std::mem::align_of::<RemoteStorageUserVoteDetails_t>(),
10499        4usize,
10500        concat!("Alignment of ", stringify!(RemoteStorageUserVoteDetails_t))
10501    );
10502    assert_eq!(
10503        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
10504        0usize,
10505        concat!(
10506            "Offset of field: ",
10507            stringify!(RemoteStorageUserVoteDetails_t),
10508            "::",
10509            stringify!(m_eResult)
10510        )
10511    );
10512    assert_eq!(
10513        unsafe { ::std::ptr::addr_of!((*ptr).m_nPublishedFileId) as usize - ptr as usize },
10514        4usize,
10515        concat!(
10516            "Offset of field: ",
10517            stringify!(RemoteStorageUserVoteDetails_t),
10518            "::",
10519            stringify!(m_nPublishedFileId)
10520        )
10521    );
10522    assert_eq!(
10523        unsafe { ::std::ptr::addr_of!((*ptr).m_eVote) as usize - ptr as usize },
10524        12usize,
10525        concat!(
10526            "Offset of field: ",
10527            stringify!(RemoteStorageUserVoteDetails_t),
10528            "::",
10529            stringify!(m_eVote)
10530        )
10531    );
10532}
10533#[repr(C, packed(4))]
10534#[derive(Debug, Copy, Clone)]
10535pub struct RemoteStorageEnumerateUserSharedWorkshopFilesResult_t {
10536    pub m_eResult: EResult,
10537    pub m_nResultsReturned: int32,
10538    pub m_nTotalResultCount: int32,
10539    pub m_rgPublishedFileId: [PublishedFileId_t; 50usize],
10540}
10541pub const RemoteStorageEnumerateUserSharedWorkshopFilesResult_t_k_iCallback:
10542    RemoteStorageEnumerateUserSharedWorkshopFilesResult_t__bindgen_ty_1 =
10543    RemoteStorageEnumerateUserSharedWorkshopFilesResult_t__bindgen_ty_1::k_iCallback;
10544#[repr(u32)]
10545#[non_exhaustive]
10546#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10547pub enum RemoteStorageEnumerateUserSharedWorkshopFilesResult_t__bindgen_ty_1 {
10548    k_iCallback = 1326,
10549}
10550#[test]
10551fn bindgen_test_layout_RemoteStorageEnumerateUserSharedWorkshopFilesResult_t() {
10552    const UNINIT: ::std::mem::MaybeUninit<RemoteStorageEnumerateUserSharedWorkshopFilesResult_t> =
10553        ::std::mem::MaybeUninit::uninit();
10554    let ptr = UNINIT.as_ptr();
10555    assert_eq!(
10556        ::std::mem::size_of::<RemoteStorageEnumerateUserSharedWorkshopFilesResult_t>(),
10557        412usize,
10558        concat!(
10559            "Size of: ",
10560            stringify!(RemoteStorageEnumerateUserSharedWorkshopFilesResult_t)
10561        )
10562    );
10563    assert_eq!(
10564        ::std::mem::align_of::<RemoteStorageEnumerateUserSharedWorkshopFilesResult_t>(),
10565        4usize,
10566        concat!(
10567            "Alignment of ",
10568            stringify!(RemoteStorageEnumerateUserSharedWorkshopFilesResult_t)
10569        )
10570    );
10571    assert_eq!(
10572        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
10573        0usize,
10574        concat!(
10575            "Offset of field: ",
10576            stringify!(RemoteStorageEnumerateUserSharedWorkshopFilesResult_t),
10577            "::",
10578            stringify!(m_eResult)
10579        )
10580    );
10581    assert_eq!(
10582        unsafe { ::std::ptr::addr_of!((*ptr).m_nResultsReturned) as usize - ptr as usize },
10583        4usize,
10584        concat!(
10585            "Offset of field: ",
10586            stringify!(RemoteStorageEnumerateUserSharedWorkshopFilesResult_t),
10587            "::",
10588            stringify!(m_nResultsReturned)
10589        )
10590    );
10591    assert_eq!(
10592        unsafe { ::std::ptr::addr_of!((*ptr).m_nTotalResultCount) as usize - ptr as usize },
10593        8usize,
10594        concat!(
10595            "Offset of field: ",
10596            stringify!(RemoteStorageEnumerateUserSharedWorkshopFilesResult_t),
10597            "::",
10598            stringify!(m_nTotalResultCount)
10599        )
10600    );
10601    assert_eq!(
10602        unsafe { ::std::ptr::addr_of!((*ptr).m_rgPublishedFileId) as usize - ptr as usize },
10603        12usize,
10604        concat!(
10605            "Offset of field: ",
10606            stringify!(RemoteStorageEnumerateUserSharedWorkshopFilesResult_t),
10607            "::",
10608            stringify!(m_rgPublishedFileId)
10609        )
10610    );
10611}
10612#[repr(C, packed(4))]
10613#[derive(Debug, Copy, Clone)]
10614pub struct RemoteStorageSetUserPublishedFileActionResult_t {
10615    pub m_eResult: EResult,
10616    pub m_nPublishedFileId: PublishedFileId_t,
10617    pub m_eAction: EWorkshopFileAction,
10618}
10619pub const RemoteStorageSetUserPublishedFileActionResult_t_k_iCallback:
10620    RemoteStorageSetUserPublishedFileActionResult_t__bindgen_ty_1 =
10621    RemoteStorageSetUserPublishedFileActionResult_t__bindgen_ty_1::k_iCallback;
10622#[repr(u32)]
10623#[non_exhaustive]
10624#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10625pub enum RemoteStorageSetUserPublishedFileActionResult_t__bindgen_ty_1 {
10626    k_iCallback = 1327,
10627}
10628#[test]
10629fn bindgen_test_layout_RemoteStorageSetUserPublishedFileActionResult_t() {
10630    const UNINIT: ::std::mem::MaybeUninit<RemoteStorageSetUserPublishedFileActionResult_t> =
10631        ::std::mem::MaybeUninit::uninit();
10632    let ptr = UNINIT.as_ptr();
10633    assert_eq!(
10634        ::std::mem::size_of::<RemoteStorageSetUserPublishedFileActionResult_t>(),
10635        16usize,
10636        concat!(
10637            "Size of: ",
10638            stringify!(RemoteStorageSetUserPublishedFileActionResult_t)
10639        )
10640    );
10641    assert_eq!(
10642        ::std::mem::align_of::<RemoteStorageSetUserPublishedFileActionResult_t>(),
10643        4usize,
10644        concat!(
10645            "Alignment of ",
10646            stringify!(RemoteStorageSetUserPublishedFileActionResult_t)
10647        )
10648    );
10649    assert_eq!(
10650        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
10651        0usize,
10652        concat!(
10653            "Offset of field: ",
10654            stringify!(RemoteStorageSetUserPublishedFileActionResult_t),
10655            "::",
10656            stringify!(m_eResult)
10657        )
10658    );
10659    assert_eq!(
10660        unsafe { ::std::ptr::addr_of!((*ptr).m_nPublishedFileId) as usize - ptr as usize },
10661        4usize,
10662        concat!(
10663            "Offset of field: ",
10664            stringify!(RemoteStorageSetUserPublishedFileActionResult_t),
10665            "::",
10666            stringify!(m_nPublishedFileId)
10667        )
10668    );
10669    assert_eq!(
10670        unsafe { ::std::ptr::addr_of!((*ptr).m_eAction) as usize - ptr as usize },
10671        12usize,
10672        concat!(
10673            "Offset of field: ",
10674            stringify!(RemoteStorageSetUserPublishedFileActionResult_t),
10675            "::",
10676            stringify!(m_eAction)
10677        )
10678    );
10679}
10680#[repr(C, packed(4))]
10681#[derive(Debug, Copy, Clone)]
10682pub struct RemoteStorageEnumeratePublishedFilesByUserActionResult_t {
10683    pub m_eResult: EResult,
10684    pub m_eAction: EWorkshopFileAction,
10685    pub m_nResultsReturned: int32,
10686    pub m_nTotalResultCount: int32,
10687    pub m_rgPublishedFileId: [PublishedFileId_t; 50usize],
10688    pub m_rgRTimeUpdated: [uint32; 50usize],
10689}
10690pub const RemoteStorageEnumeratePublishedFilesByUserActionResult_t_k_iCallback:
10691    RemoteStorageEnumeratePublishedFilesByUserActionResult_t__bindgen_ty_1 =
10692    RemoteStorageEnumeratePublishedFilesByUserActionResult_t__bindgen_ty_1::k_iCallback;
10693#[repr(u32)]
10694#[non_exhaustive]
10695#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10696pub enum RemoteStorageEnumeratePublishedFilesByUserActionResult_t__bindgen_ty_1 {
10697    k_iCallback = 1328,
10698}
10699#[test]
10700fn bindgen_test_layout_RemoteStorageEnumeratePublishedFilesByUserActionResult_t() {
10701    const UNINIT: ::std::mem::MaybeUninit<
10702        RemoteStorageEnumeratePublishedFilesByUserActionResult_t,
10703    > = ::std::mem::MaybeUninit::uninit();
10704    let ptr = UNINIT.as_ptr();
10705    assert_eq!(
10706        ::std::mem::size_of::<RemoteStorageEnumeratePublishedFilesByUserActionResult_t>(),
10707        616usize,
10708        concat!(
10709            "Size of: ",
10710            stringify!(RemoteStorageEnumeratePublishedFilesByUserActionResult_t)
10711        )
10712    );
10713    assert_eq!(
10714        ::std::mem::align_of::<RemoteStorageEnumeratePublishedFilesByUserActionResult_t>(),
10715        4usize,
10716        concat!(
10717            "Alignment of ",
10718            stringify!(RemoteStorageEnumeratePublishedFilesByUserActionResult_t)
10719        )
10720    );
10721    assert_eq!(
10722        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
10723        0usize,
10724        concat!(
10725            "Offset of field: ",
10726            stringify!(RemoteStorageEnumeratePublishedFilesByUserActionResult_t),
10727            "::",
10728            stringify!(m_eResult)
10729        )
10730    );
10731    assert_eq!(
10732        unsafe { ::std::ptr::addr_of!((*ptr).m_eAction) as usize - ptr as usize },
10733        4usize,
10734        concat!(
10735            "Offset of field: ",
10736            stringify!(RemoteStorageEnumeratePublishedFilesByUserActionResult_t),
10737            "::",
10738            stringify!(m_eAction)
10739        )
10740    );
10741    assert_eq!(
10742        unsafe { ::std::ptr::addr_of!((*ptr).m_nResultsReturned) as usize - ptr as usize },
10743        8usize,
10744        concat!(
10745            "Offset of field: ",
10746            stringify!(RemoteStorageEnumeratePublishedFilesByUserActionResult_t),
10747            "::",
10748            stringify!(m_nResultsReturned)
10749        )
10750    );
10751    assert_eq!(
10752        unsafe { ::std::ptr::addr_of!((*ptr).m_nTotalResultCount) as usize - ptr as usize },
10753        12usize,
10754        concat!(
10755            "Offset of field: ",
10756            stringify!(RemoteStorageEnumeratePublishedFilesByUserActionResult_t),
10757            "::",
10758            stringify!(m_nTotalResultCount)
10759        )
10760    );
10761    assert_eq!(
10762        unsafe { ::std::ptr::addr_of!((*ptr).m_rgPublishedFileId) as usize - ptr as usize },
10763        16usize,
10764        concat!(
10765            "Offset of field: ",
10766            stringify!(RemoteStorageEnumeratePublishedFilesByUserActionResult_t),
10767            "::",
10768            stringify!(m_rgPublishedFileId)
10769        )
10770    );
10771    assert_eq!(
10772        unsafe { ::std::ptr::addr_of!((*ptr).m_rgRTimeUpdated) as usize - ptr as usize },
10773        416usize,
10774        concat!(
10775            "Offset of field: ",
10776            stringify!(RemoteStorageEnumeratePublishedFilesByUserActionResult_t),
10777            "::",
10778            stringify!(m_rgRTimeUpdated)
10779        )
10780    );
10781}
10782#[repr(C, packed(4))]
10783#[derive(Debug, Copy, Clone)]
10784pub struct RemoteStoragePublishFileProgress_t {
10785    pub m_dPercentFile: f64,
10786    pub m_bPreview: bool,
10787}
10788pub const RemoteStoragePublishFileProgress_t_k_iCallback:
10789    RemoteStoragePublishFileProgress_t__bindgen_ty_1 =
10790    RemoteStoragePublishFileProgress_t__bindgen_ty_1::k_iCallback;
10791#[repr(u32)]
10792#[non_exhaustive]
10793#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10794pub enum RemoteStoragePublishFileProgress_t__bindgen_ty_1 {
10795    k_iCallback = 1329,
10796}
10797#[test]
10798fn bindgen_test_layout_RemoteStoragePublishFileProgress_t() {
10799    const UNINIT: ::std::mem::MaybeUninit<RemoteStoragePublishFileProgress_t> =
10800        ::std::mem::MaybeUninit::uninit();
10801    let ptr = UNINIT.as_ptr();
10802    assert_eq!(
10803        ::std::mem::size_of::<RemoteStoragePublishFileProgress_t>(),
10804        12usize,
10805        concat!("Size of: ", stringify!(RemoteStoragePublishFileProgress_t))
10806    );
10807    assert_eq!(
10808        ::std::mem::align_of::<RemoteStoragePublishFileProgress_t>(),
10809        4usize,
10810        concat!(
10811            "Alignment of ",
10812            stringify!(RemoteStoragePublishFileProgress_t)
10813        )
10814    );
10815    assert_eq!(
10816        unsafe { ::std::ptr::addr_of!((*ptr).m_dPercentFile) as usize - ptr as usize },
10817        0usize,
10818        concat!(
10819            "Offset of field: ",
10820            stringify!(RemoteStoragePublishFileProgress_t),
10821            "::",
10822            stringify!(m_dPercentFile)
10823        )
10824    );
10825    assert_eq!(
10826        unsafe { ::std::ptr::addr_of!((*ptr).m_bPreview) as usize - ptr as usize },
10827        8usize,
10828        concat!(
10829            "Offset of field: ",
10830            stringify!(RemoteStoragePublishFileProgress_t),
10831            "::",
10832            stringify!(m_bPreview)
10833        )
10834    );
10835}
10836#[repr(C, packed(4))]
10837#[derive(Debug, Copy, Clone)]
10838pub struct RemoteStoragePublishedFileUpdated_t {
10839    pub m_nPublishedFileId: PublishedFileId_t,
10840    pub m_nAppID: AppId_t,
10841    pub m_ulUnused: uint64,
10842}
10843pub const RemoteStoragePublishedFileUpdated_t_k_iCallback:
10844    RemoteStoragePublishedFileUpdated_t__bindgen_ty_1 =
10845    RemoteStoragePublishedFileUpdated_t__bindgen_ty_1::k_iCallback;
10846#[repr(u32)]
10847#[non_exhaustive]
10848#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10849pub enum RemoteStoragePublishedFileUpdated_t__bindgen_ty_1 {
10850    k_iCallback = 1330,
10851}
10852#[test]
10853fn bindgen_test_layout_RemoteStoragePublishedFileUpdated_t() {
10854    const UNINIT: ::std::mem::MaybeUninit<RemoteStoragePublishedFileUpdated_t> =
10855        ::std::mem::MaybeUninit::uninit();
10856    let ptr = UNINIT.as_ptr();
10857    assert_eq!(
10858        ::std::mem::size_of::<RemoteStoragePublishedFileUpdated_t>(),
10859        20usize,
10860        concat!("Size of: ", stringify!(RemoteStoragePublishedFileUpdated_t))
10861    );
10862    assert_eq!(
10863        ::std::mem::align_of::<RemoteStoragePublishedFileUpdated_t>(),
10864        4usize,
10865        concat!(
10866            "Alignment of ",
10867            stringify!(RemoteStoragePublishedFileUpdated_t)
10868        )
10869    );
10870    assert_eq!(
10871        unsafe { ::std::ptr::addr_of!((*ptr).m_nPublishedFileId) as usize - ptr as usize },
10872        0usize,
10873        concat!(
10874            "Offset of field: ",
10875            stringify!(RemoteStoragePublishedFileUpdated_t),
10876            "::",
10877            stringify!(m_nPublishedFileId)
10878        )
10879    );
10880    assert_eq!(
10881        unsafe { ::std::ptr::addr_of!((*ptr).m_nAppID) as usize - ptr as usize },
10882        8usize,
10883        concat!(
10884            "Offset of field: ",
10885            stringify!(RemoteStoragePublishedFileUpdated_t),
10886            "::",
10887            stringify!(m_nAppID)
10888        )
10889    );
10890    assert_eq!(
10891        unsafe { ::std::ptr::addr_of!((*ptr).m_ulUnused) as usize - ptr as usize },
10892        12usize,
10893        concat!(
10894            "Offset of field: ",
10895            stringify!(RemoteStoragePublishedFileUpdated_t),
10896            "::",
10897            stringify!(m_ulUnused)
10898        )
10899    );
10900}
10901#[repr(C)]
10902#[derive(Debug, Copy, Clone)]
10903pub struct RemoteStorageFileWriteAsyncComplete_t {
10904    pub m_eResult: EResult,
10905}
10906pub const RemoteStorageFileWriteAsyncComplete_t_k_iCallback:
10907    RemoteStorageFileWriteAsyncComplete_t__bindgen_ty_1 =
10908    RemoteStorageFileWriteAsyncComplete_t__bindgen_ty_1::k_iCallback;
10909#[repr(u32)]
10910#[non_exhaustive]
10911#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10912pub enum RemoteStorageFileWriteAsyncComplete_t__bindgen_ty_1 {
10913    k_iCallback = 1331,
10914}
10915#[test]
10916fn bindgen_test_layout_RemoteStorageFileWriteAsyncComplete_t() {
10917    const UNINIT: ::std::mem::MaybeUninit<RemoteStorageFileWriteAsyncComplete_t> =
10918        ::std::mem::MaybeUninit::uninit();
10919    let ptr = UNINIT.as_ptr();
10920    assert_eq!(
10921        ::std::mem::size_of::<RemoteStorageFileWriteAsyncComplete_t>(),
10922        4usize,
10923        concat!(
10924            "Size of: ",
10925            stringify!(RemoteStorageFileWriteAsyncComplete_t)
10926        )
10927    );
10928    assert_eq!(
10929        ::std::mem::align_of::<RemoteStorageFileWriteAsyncComplete_t>(),
10930        4usize,
10931        concat!(
10932            "Alignment of ",
10933            stringify!(RemoteStorageFileWriteAsyncComplete_t)
10934        )
10935    );
10936    assert_eq!(
10937        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
10938        0usize,
10939        concat!(
10940            "Offset of field: ",
10941            stringify!(RemoteStorageFileWriteAsyncComplete_t),
10942            "::",
10943            stringify!(m_eResult)
10944        )
10945    );
10946}
10947#[repr(C, packed(4))]
10948#[derive(Debug, Copy, Clone)]
10949pub struct RemoteStorageFileReadAsyncComplete_t {
10950    pub m_hFileReadAsync: SteamAPICall_t,
10951    pub m_eResult: EResult,
10952    pub m_nOffset: uint32,
10953    pub m_cubRead: uint32,
10954}
10955pub const RemoteStorageFileReadAsyncComplete_t_k_iCallback:
10956    RemoteStorageFileReadAsyncComplete_t__bindgen_ty_1 =
10957    RemoteStorageFileReadAsyncComplete_t__bindgen_ty_1::k_iCallback;
10958#[repr(u32)]
10959#[non_exhaustive]
10960#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10961pub enum RemoteStorageFileReadAsyncComplete_t__bindgen_ty_1 {
10962    k_iCallback = 1332,
10963}
10964#[test]
10965fn bindgen_test_layout_RemoteStorageFileReadAsyncComplete_t() {
10966    const UNINIT: ::std::mem::MaybeUninit<RemoteStorageFileReadAsyncComplete_t> =
10967        ::std::mem::MaybeUninit::uninit();
10968    let ptr = UNINIT.as_ptr();
10969    assert_eq!(
10970        ::std::mem::size_of::<RemoteStorageFileReadAsyncComplete_t>(),
10971        20usize,
10972        concat!(
10973            "Size of: ",
10974            stringify!(RemoteStorageFileReadAsyncComplete_t)
10975        )
10976    );
10977    assert_eq!(
10978        ::std::mem::align_of::<RemoteStorageFileReadAsyncComplete_t>(),
10979        4usize,
10980        concat!(
10981            "Alignment of ",
10982            stringify!(RemoteStorageFileReadAsyncComplete_t)
10983        )
10984    );
10985    assert_eq!(
10986        unsafe { ::std::ptr::addr_of!((*ptr).m_hFileReadAsync) as usize - ptr as usize },
10987        0usize,
10988        concat!(
10989            "Offset of field: ",
10990            stringify!(RemoteStorageFileReadAsyncComplete_t),
10991            "::",
10992            stringify!(m_hFileReadAsync)
10993        )
10994    );
10995    assert_eq!(
10996        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
10997        8usize,
10998        concat!(
10999            "Offset of field: ",
11000            stringify!(RemoteStorageFileReadAsyncComplete_t),
11001            "::",
11002            stringify!(m_eResult)
11003        )
11004    );
11005    assert_eq!(
11006        unsafe { ::std::ptr::addr_of!((*ptr).m_nOffset) as usize - ptr as usize },
11007        12usize,
11008        concat!(
11009            "Offset of field: ",
11010            stringify!(RemoteStorageFileReadAsyncComplete_t),
11011            "::",
11012            stringify!(m_nOffset)
11013        )
11014    );
11015    assert_eq!(
11016        unsafe { ::std::ptr::addr_of!((*ptr).m_cubRead) as usize - ptr as usize },
11017        16usize,
11018        concat!(
11019            "Offset of field: ",
11020            stringify!(RemoteStorageFileReadAsyncComplete_t),
11021            "::",
11022            stringify!(m_cubRead)
11023        )
11024    );
11025}
11026#[repr(C)]
11027#[derive(Debug, Copy, Clone)]
11028pub struct RemoteStorageLocalFileChange_t {
11029    pub _address: u8,
11030}
11031pub const RemoteStorageLocalFileChange_t_k_iCallback: RemoteStorageLocalFileChange_t__bindgen_ty_1 =
11032    RemoteStorageLocalFileChange_t__bindgen_ty_1::k_iCallback;
11033#[repr(u32)]
11034#[non_exhaustive]
11035#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
11036pub enum RemoteStorageLocalFileChange_t__bindgen_ty_1 {
11037    k_iCallback = 1333,
11038}
11039#[test]
11040fn bindgen_test_layout_RemoteStorageLocalFileChange_t() {
11041    assert_eq!(
11042        ::std::mem::size_of::<RemoteStorageLocalFileChange_t>(),
11043        1usize,
11044        concat!("Size of: ", stringify!(RemoteStorageLocalFileChange_t))
11045    );
11046    assert_eq!(
11047        ::std::mem::align_of::<RemoteStorageLocalFileChange_t>(),
11048        1usize,
11049        concat!("Alignment of ", stringify!(RemoteStorageLocalFileChange_t))
11050    );
11051}
11052pub const k_cchStatNameMax: _bindgen_ty_43 = _bindgen_ty_43::k_cchStatNameMax;
11053#[repr(u32)]
11054#[non_exhaustive]
11055#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
11056pub enum _bindgen_ty_43 {
11057    k_cchStatNameMax = 128,
11058}
11059pub const k_cchLeaderboardNameMax: _bindgen_ty_44 = _bindgen_ty_44::k_cchLeaderboardNameMax;
11060#[repr(u32)]
11061#[non_exhaustive]
11062#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
11063pub enum _bindgen_ty_44 {
11064    k_cchLeaderboardNameMax = 128,
11065}
11066pub const k_cLeaderboardDetailsMax: _bindgen_ty_45 = _bindgen_ty_45::k_cLeaderboardDetailsMax;
11067#[repr(u32)]
11068#[non_exhaustive]
11069#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
11070pub enum _bindgen_ty_45 {
11071    k_cLeaderboardDetailsMax = 64,
11072}
11073pub type SteamLeaderboard_t = uint64;
11074pub type SteamLeaderboardEntries_t = uint64;
11075#[repr(u32)]
11076#[non_exhaustive]
11077#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
11078pub enum ELeaderboardDataRequest {
11079    k_ELeaderboardDataRequestGlobal = 0,
11080    k_ELeaderboardDataRequestGlobalAroundUser = 1,
11081    k_ELeaderboardDataRequestFriends = 2,
11082    k_ELeaderboardDataRequestUsers = 3,
11083}
11084#[repr(u32)]
11085#[non_exhaustive]
11086#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
11087pub enum ELeaderboardSortMethod {
11088    k_ELeaderboardSortMethodNone = 0,
11089    k_ELeaderboardSortMethodAscending = 1,
11090    k_ELeaderboardSortMethodDescending = 2,
11091}
11092#[repr(u32)]
11093#[non_exhaustive]
11094#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
11095pub enum ELeaderboardDisplayType {
11096    k_ELeaderboardDisplayTypeNone = 0,
11097    k_ELeaderboardDisplayTypeNumeric = 1,
11098    k_ELeaderboardDisplayTypeTimeSeconds = 2,
11099    k_ELeaderboardDisplayTypeTimeMilliSeconds = 3,
11100}
11101#[repr(u32)]
11102#[non_exhaustive]
11103#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
11104pub enum ELeaderboardUploadScoreMethod {
11105    k_ELeaderboardUploadScoreMethodNone = 0,
11106    k_ELeaderboardUploadScoreMethodKeepBest = 1,
11107    k_ELeaderboardUploadScoreMethodForceUpdate = 2,
11108}
11109#[repr(C, packed(4))]
11110#[derive(Copy, Clone)]
11111pub struct LeaderboardEntry_t {
11112    pub m_steamIDUser: CSteamID,
11113    pub m_nGlobalRank: int32,
11114    pub m_nScore: int32,
11115    pub m_cDetails: int32,
11116    pub m_hUGC: UGCHandle_t,
11117}
11118#[test]
11119fn bindgen_test_layout_LeaderboardEntry_t() {
11120    const UNINIT: ::std::mem::MaybeUninit<LeaderboardEntry_t> = ::std::mem::MaybeUninit::uninit();
11121    let ptr = UNINIT.as_ptr();
11122    assert_eq!(
11123        ::std::mem::size_of::<LeaderboardEntry_t>(),
11124        28usize,
11125        concat!("Size of: ", stringify!(LeaderboardEntry_t))
11126    );
11127    assert_eq!(
11128        ::std::mem::align_of::<LeaderboardEntry_t>(),
11129        4usize,
11130        concat!("Alignment of ", stringify!(LeaderboardEntry_t))
11131    );
11132    assert_eq!(
11133        unsafe { ::std::ptr::addr_of!((*ptr).m_steamIDUser) as usize - ptr as usize },
11134        0usize,
11135        concat!(
11136            "Offset of field: ",
11137            stringify!(LeaderboardEntry_t),
11138            "::",
11139            stringify!(m_steamIDUser)
11140        )
11141    );
11142    assert_eq!(
11143        unsafe { ::std::ptr::addr_of!((*ptr).m_nGlobalRank) as usize - ptr as usize },
11144        8usize,
11145        concat!(
11146            "Offset of field: ",
11147            stringify!(LeaderboardEntry_t),
11148            "::",
11149            stringify!(m_nGlobalRank)
11150        )
11151    );
11152    assert_eq!(
11153        unsafe { ::std::ptr::addr_of!((*ptr).m_nScore) as usize - ptr as usize },
11154        12usize,
11155        concat!(
11156            "Offset of field: ",
11157            stringify!(LeaderboardEntry_t),
11158            "::",
11159            stringify!(m_nScore)
11160        )
11161    );
11162    assert_eq!(
11163        unsafe { ::std::ptr::addr_of!((*ptr).m_cDetails) as usize - ptr as usize },
11164        16usize,
11165        concat!(
11166            "Offset of field: ",
11167            stringify!(LeaderboardEntry_t),
11168            "::",
11169            stringify!(m_cDetails)
11170        )
11171    );
11172    assert_eq!(
11173        unsafe { ::std::ptr::addr_of!((*ptr).m_hUGC) as usize - ptr as usize },
11174        20usize,
11175        concat!(
11176            "Offset of field: ",
11177            stringify!(LeaderboardEntry_t),
11178            "::",
11179            stringify!(m_hUGC)
11180        )
11181    );
11182}
11183#[repr(C)]
11184pub struct ISteamUserStats__bindgen_vtable(::std::os::raw::c_void);
11185#[repr(C)]
11186#[derive(Debug, Copy, Clone)]
11187pub struct ISteamUserStats {
11188    pub vtable_: *const ISteamUserStats__bindgen_vtable,
11189}
11190#[test]
11191fn bindgen_test_layout_ISteamUserStats() {
11192    assert_eq!(
11193        ::std::mem::size_of::<ISteamUserStats>(),
11194        8usize,
11195        concat!("Size of: ", stringify!(ISteamUserStats))
11196    );
11197    assert_eq!(
11198        ::std::mem::align_of::<ISteamUserStats>(),
11199        8usize,
11200        concat!("Alignment of ", stringify!(ISteamUserStats))
11201    );
11202}
11203#[repr(C, packed(4))]
11204#[derive(Copy, Clone)]
11205pub struct UserStatsReceived_t {
11206    pub m_nGameID: uint64,
11207    pub m_eResult: EResult,
11208    pub m_steamIDUser: CSteamID,
11209}
11210pub const UserStatsReceived_t_k_iCallback: UserStatsReceived_t__bindgen_ty_1 =
11211    UserStatsReceived_t__bindgen_ty_1::k_iCallback;
11212#[repr(u32)]
11213#[non_exhaustive]
11214#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
11215pub enum UserStatsReceived_t__bindgen_ty_1 {
11216    k_iCallback = 1101,
11217}
11218#[test]
11219fn bindgen_test_layout_UserStatsReceived_t() {
11220    const UNINIT: ::std::mem::MaybeUninit<UserStatsReceived_t> = ::std::mem::MaybeUninit::uninit();
11221    let ptr = UNINIT.as_ptr();
11222    assert_eq!(
11223        ::std::mem::size_of::<UserStatsReceived_t>(),
11224        20usize,
11225        concat!("Size of: ", stringify!(UserStatsReceived_t))
11226    );
11227    assert_eq!(
11228        ::std::mem::align_of::<UserStatsReceived_t>(),
11229        4usize,
11230        concat!("Alignment of ", stringify!(UserStatsReceived_t))
11231    );
11232    assert_eq!(
11233        unsafe { ::std::ptr::addr_of!((*ptr).m_nGameID) as usize - ptr as usize },
11234        0usize,
11235        concat!(
11236            "Offset of field: ",
11237            stringify!(UserStatsReceived_t),
11238            "::",
11239            stringify!(m_nGameID)
11240        )
11241    );
11242    assert_eq!(
11243        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
11244        8usize,
11245        concat!(
11246            "Offset of field: ",
11247            stringify!(UserStatsReceived_t),
11248            "::",
11249            stringify!(m_eResult)
11250        )
11251    );
11252    assert_eq!(
11253        unsafe { ::std::ptr::addr_of!((*ptr).m_steamIDUser) as usize - ptr as usize },
11254        12usize,
11255        concat!(
11256            "Offset of field: ",
11257            stringify!(UserStatsReceived_t),
11258            "::",
11259            stringify!(m_steamIDUser)
11260        )
11261    );
11262}
11263#[repr(C, packed(4))]
11264#[derive(Debug, Copy, Clone)]
11265pub struct UserStatsStored_t {
11266    pub m_nGameID: uint64,
11267    pub m_eResult: EResult,
11268}
11269pub const UserStatsStored_t_k_iCallback: UserStatsStored_t__bindgen_ty_1 =
11270    UserStatsStored_t__bindgen_ty_1::k_iCallback;
11271#[repr(u32)]
11272#[non_exhaustive]
11273#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
11274pub enum UserStatsStored_t__bindgen_ty_1 {
11275    k_iCallback = 1102,
11276}
11277#[test]
11278fn bindgen_test_layout_UserStatsStored_t() {
11279    const UNINIT: ::std::mem::MaybeUninit<UserStatsStored_t> = ::std::mem::MaybeUninit::uninit();
11280    let ptr = UNINIT.as_ptr();
11281    assert_eq!(
11282        ::std::mem::size_of::<UserStatsStored_t>(),
11283        12usize,
11284        concat!("Size of: ", stringify!(UserStatsStored_t))
11285    );
11286    assert_eq!(
11287        ::std::mem::align_of::<UserStatsStored_t>(),
11288        4usize,
11289        concat!("Alignment of ", stringify!(UserStatsStored_t))
11290    );
11291    assert_eq!(
11292        unsafe { ::std::ptr::addr_of!((*ptr).m_nGameID) as usize - ptr as usize },
11293        0usize,
11294        concat!(
11295            "Offset of field: ",
11296            stringify!(UserStatsStored_t),
11297            "::",
11298            stringify!(m_nGameID)
11299        )
11300    );
11301    assert_eq!(
11302        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
11303        8usize,
11304        concat!(
11305            "Offset of field: ",
11306            stringify!(UserStatsStored_t),
11307            "::",
11308            stringify!(m_eResult)
11309        )
11310    );
11311}
11312#[repr(C, packed(4))]
11313#[derive(Debug, Copy, Clone)]
11314pub struct UserAchievementStored_t {
11315    pub m_nGameID: uint64,
11316    pub m_bGroupAchievement: bool,
11317    pub m_rgchAchievementName: [::std::os::raw::c_char; 128usize],
11318    pub m_nCurProgress: uint32,
11319    pub m_nMaxProgress: uint32,
11320}
11321pub const UserAchievementStored_t_k_iCallback: UserAchievementStored_t__bindgen_ty_1 =
11322    UserAchievementStored_t__bindgen_ty_1::k_iCallback;
11323#[repr(u32)]
11324#[non_exhaustive]
11325#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
11326pub enum UserAchievementStored_t__bindgen_ty_1 {
11327    k_iCallback = 1103,
11328}
11329#[test]
11330fn bindgen_test_layout_UserAchievementStored_t() {
11331    const UNINIT: ::std::mem::MaybeUninit<UserAchievementStored_t> =
11332        ::std::mem::MaybeUninit::uninit();
11333    let ptr = UNINIT.as_ptr();
11334    assert_eq!(
11335        ::std::mem::size_of::<UserAchievementStored_t>(),
11336        148usize,
11337        concat!("Size of: ", stringify!(UserAchievementStored_t))
11338    );
11339    assert_eq!(
11340        ::std::mem::align_of::<UserAchievementStored_t>(),
11341        4usize,
11342        concat!("Alignment of ", stringify!(UserAchievementStored_t))
11343    );
11344    assert_eq!(
11345        unsafe { ::std::ptr::addr_of!((*ptr).m_nGameID) as usize - ptr as usize },
11346        0usize,
11347        concat!(
11348            "Offset of field: ",
11349            stringify!(UserAchievementStored_t),
11350            "::",
11351            stringify!(m_nGameID)
11352        )
11353    );
11354    assert_eq!(
11355        unsafe { ::std::ptr::addr_of!((*ptr).m_bGroupAchievement) as usize - ptr as usize },
11356        8usize,
11357        concat!(
11358            "Offset of field: ",
11359            stringify!(UserAchievementStored_t),
11360            "::",
11361            stringify!(m_bGroupAchievement)
11362        )
11363    );
11364    assert_eq!(
11365        unsafe { ::std::ptr::addr_of!((*ptr).m_rgchAchievementName) as usize - ptr as usize },
11366        9usize,
11367        concat!(
11368            "Offset of field: ",
11369            stringify!(UserAchievementStored_t),
11370            "::",
11371            stringify!(m_rgchAchievementName)
11372        )
11373    );
11374    assert_eq!(
11375        unsafe { ::std::ptr::addr_of!((*ptr).m_nCurProgress) as usize - ptr as usize },
11376        140usize,
11377        concat!(
11378            "Offset of field: ",
11379            stringify!(UserAchievementStored_t),
11380            "::",
11381            stringify!(m_nCurProgress)
11382        )
11383    );
11384    assert_eq!(
11385        unsafe { ::std::ptr::addr_of!((*ptr).m_nMaxProgress) as usize - ptr as usize },
11386        144usize,
11387        concat!(
11388            "Offset of field: ",
11389            stringify!(UserAchievementStored_t),
11390            "::",
11391            stringify!(m_nMaxProgress)
11392        )
11393    );
11394}
11395#[repr(C, packed(4))]
11396#[derive(Debug, Copy, Clone)]
11397pub struct LeaderboardFindResult_t {
11398    pub m_hSteamLeaderboard: SteamLeaderboard_t,
11399    pub m_bLeaderboardFound: uint8,
11400}
11401pub const LeaderboardFindResult_t_k_iCallback: LeaderboardFindResult_t__bindgen_ty_1 =
11402    LeaderboardFindResult_t__bindgen_ty_1::k_iCallback;
11403#[repr(u32)]
11404#[non_exhaustive]
11405#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
11406pub enum LeaderboardFindResult_t__bindgen_ty_1 {
11407    k_iCallback = 1104,
11408}
11409#[test]
11410fn bindgen_test_layout_LeaderboardFindResult_t() {
11411    const UNINIT: ::std::mem::MaybeUninit<LeaderboardFindResult_t> =
11412        ::std::mem::MaybeUninit::uninit();
11413    let ptr = UNINIT.as_ptr();
11414    assert_eq!(
11415        ::std::mem::size_of::<LeaderboardFindResult_t>(),
11416        12usize,
11417        concat!("Size of: ", stringify!(LeaderboardFindResult_t))
11418    );
11419    assert_eq!(
11420        ::std::mem::align_of::<LeaderboardFindResult_t>(),
11421        4usize,
11422        concat!("Alignment of ", stringify!(LeaderboardFindResult_t))
11423    );
11424    assert_eq!(
11425        unsafe { ::std::ptr::addr_of!((*ptr).m_hSteamLeaderboard) as usize - ptr as usize },
11426        0usize,
11427        concat!(
11428            "Offset of field: ",
11429            stringify!(LeaderboardFindResult_t),
11430            "::",
11431            stringify!(m_hSteamLeaderboard)
11432        )
11433    );
11434    assert_eq!(
11435        unsafe { ::std::ptr::addr_of!((*ptr).m_bLeaderboardFound) as usize - ptr as usize },
11436        8usize,
11437        concat!(
11438            "Offset of field: ",
11439            stringify!(LeaderboardFindResult_t),
11440            "::",
11441            stringify!(m_bLeaderboardFound)
11442        )
11443    );
11444}
11445#[repr(C, packed(4))]
11446#[derive(Debug, Copy, Clone)]
11447pub struct LeaderboardScoresDownloaded_t {
11448    pub m_hSteamLeaderboard: SteamLeaderboard_t,
11449    pub m_hSteamLeaderboardEntries: SteamLeaderboardEntries_t,
11450    pub m_cEntryCount: ::std::os::raw::c_int,
11451}
11452pub const LeaderboardScoresDownloaded_t_k_iCallback: LeaderboardScoresDownloaded_t__bindgen_ty_1 =
11453    LeaderboardScoresDownloaded_t__bindgen_ty_1::k_iCallback;
11454#[repr(u32)]
11455#[non_exhaustive]
11456#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
11457pub enum LeaderboardScoresDownloaded_t__bindgen_ty_1 {
11458    k_iCallback = 1105,
11459}
11460#[test]
11461fn bindgen_test_layout_LeaderboardScoresDownloaded_t() {
11462    const UNINIT: ::std::mem::MaybeUninit<LeaderboardScoresDownloaded_t> =
11463        ::std::mem::MaybeUninit::uninit();
11464    let ptr = UNINIT.as_ptr();
11465    assert_eq!(
11466        ::std::mem::size_of::<LeaderboardScoresDownloaded_t>(),
11467        20usize,
11468        concat!("Size of: ", stringify!(LeaderboardScoresDownloaded_t))
11469    );
11470    assert_eq!(
11471        ::std::mem::align_of::<LeaderboardScoresDownloaded_t>(),
11472        4usize,
11473        concat!("Alignment of ", stringify!(LeaderboardScoresDownloaded_t))
11474    );
11475    assert_eq!(
11476        unsafe { ::std::ptr::addr_of!((*ptr).m_hSteamLeaderboard) as usize - ptr as usize },
11477        0usize,
11478        concat!(
11479            "Offset of field: ",
11480            stringify!(LeaderboardScoresDownloaded_t),
11481            "::",
11482            stringify!(m_hSteamLeaderboard)
11483        )
11484    );
11485    assert_eq!(
11486        unsafe { ::std::ptr::addr_of!((*ptr).m_hSteamLeaderboardEntries) as usize - ptr as usize },
11487        8usize,
11488        concat!(
11489            "Offset of field: ",
11490            stringify!(LeaderboardScoresDownloaded_t),
11491            "::",
11492            stringify!(m_hSteamLeaderboardEntries)
11493        )
11494    );
11495    assert_eq!(
11496        unsafe { ::std::ptr::addr_of!((*ptr).m_cEntryCount) as usize - ptr as usize },
11497        16usize,
11498        concat!(
11499            "Offset of field: ",
11500            stringify!(LeaderboardScoresDownloaded_t),
11501            "::",
11502            stringify!(m_cEntryCount)
11503        )
11504    );
11505}
11506#[repr(C, packed(4))]
11507#[derive(Debug, Copy, Clone)]
11508pub struct LeaderboardScoreUploaded_t {
11509    pub m_bSuccess: uint8,
11510    pub m_hSteamLeaderboard: SteamLeaderboard_t,
11511    pub m_nScore: int32,
11512    pub m_bScoreChanged: uint8,
11513    pub m_nGlobalRankNew: ::std::os::raw::c_int,
11514    pub m_nGlobalRankPrevious: ::std::os::raw::c_int,
11515}
11516pub const LeaderboardScoreUploaded_t_k_iCallback: LeaderboardScoreUploaded_t__bindgen_ty_1 =
11517    LeaderboardScoreUploaded_t__bindgen_ty_1::k_iCallback;
11518#[repr(u32)]
11519#[non_exhaustive]
11520#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
11521pub enum LeaderboardScoreUploaded_t__bindgen_ty_1 {
11522    k_iCallback = 1106,
11523}
11524#[test]
11525fn bindgen_test_layout_LeaderboardScoreUploaded_t() {
11526    const UNINIT: ::std::mem::MaybeUninit<LeaderboardScoreUploaded_t> =
11527        ::std::mem::MaybeUninit::uninit();
11528    let ptr = UNINIT.as_ptr();
11529    assert_eq!(
11530        ::std::mem::size_of::<LeaderboardScoreUploaded_t>(),
11531        28usize,
11532        concat!("Size of: ", stringify!(LeaderboardScoreUploaded_t))
11533    );
11534    assert_eq!(
11535        ::std::mem::align_of::<LeaderboardScoreUploaded_t>(),
11536        4usize,
11537        concat!("Alignment of ", stringify!(LeaderboardScoreUploaded_t))
11538    );
11539    assert_eq!(
11540        unsafe { ::std::ptr::addr_of!((*ptr).m_bSuccess) as usize - ptr as usize },
11541        0usize,
11542        concat!(
11543            "Offset of field: ",
11544            stringify!(LeaderboardScoreUploaded_t),
11545            "::",
11546            stringify!(m_bSuccess)
11547        )
11548    );
11549    assert_eq!(
11550        unsafe { ::std::ptr::addr_of!((*ptr).m_hSteamLeaderboard) as usize - ptr as usize },
11551        4usize,
11552        concat!(
11553            "Offset of field: ",
11554            stringify!(LeaderboardScoreUploaded_t),
11555            "::",
11556            stringify!(m_hSteamLeaderboard)
11557        )
11558    );
11559    assert_eq!(
11560        unsafe { ::std::ptr::addr_of!((*ptr).m_nScore) as usize - ptr as usize },
11561        12usize,
11562        concat!(
11563            "Offset of field: ",
11564            stringify!(LeaderboardScoreUploaded_t),
11565            "::",
11566            stringify!(m_nScore)
11567        )
11568    );
11569    assert_eq!(
11570        unsafe { ::std::ptr::addr_of!((*ptr).m_bScoreChanged) as usize - ptr as usize },
11571        16usize,
11572        concat!(
11573            "Offset of field: ",
11574            stringify!(LeaderboardScoreUploaded_t),
11575            "::",
11576            stringify!(m_bScoreChanged)
11577        )
11578    );
11579    assert_eq!(
11580        unsafe { ::std::ptr::addr_of!((*ptr).m_nGlobalRankNew) as usize - ptr as usize },
11581        20usize,
11582        concat!(
11583            "Offset of field: ",
11584            stringify!(LeaderboardScoreUploaded_t),
11585            "::",
11586            stringify!(m_nGlobalRankNew)
11587        )
11588    );
11589    assert_eq!(
11590        unsafe { ::std::ptr::addr_of!((*ptr).m_nGlobalRankPrevious) as usize - ptr as usize },
11591        24usize,
11592        concat!(
11593            "Offset of field: ",
11594            stringify!(LeaderboardScoreUploaded_t),
11595            "::",
11596            stringify!(m_nGlobalRankPrevious)
11597        )
11598    );
11599}
11600#[repr(C)]
11601#[derive(Debug, Copy, Clone)]
11602pub struct NumberOfCurrentPlayers_t {
11603    pub m_bSuccess: uint8,
11604    pub m_cPlayers: int32,
11605}
11606pub const NumberOfCurrentPlayers_t_k_iCallback: NumberOfCurrentPlayers_t__bindgen_ty_1 =
11607    NumberOfCurrentPlayers_t__bindgen_ty_1::k_iCallback;
11608#[repr(u32)]
11609#[non_exhaustive]
11610#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
11611pub enum NumberOfCurrentPlayers_t__bindgen_ty_1 {
11612    k_iCallback = 1107,
11613}
11614#[test]
11615fn bindgen_test_layout_NumberOfCurrentPlayers_t() {
11616    const UNINIT: ::std::mem::MaybeUninit<NumberOfCurrentPlayers_t> =
11617        ::std::mem::MaybeUninit::uninit();
11618    let ptr = UNINIT.as_ptr();
11619    assert_eq!(
11620        ::std::mem::size_of::<NumberOfCurrentPlayers_t>(),
11621        8usize,
11622        concat!("Size of: ", stringify!(NumberOfCurrentPlayers_t))
11623    );
11624    assert_eq!(
11625        ::std::mem::align_of::<NumberOfCurrentPlayers_t>(),
11626        4usize,
11627        concat!("Alignment of ", stringify!(NumberOfCurrentPlayers_t))
11628    );
11629    assert_eq!(
11630        unsafe { ::std::ptr::addr_of!((*ptr).m_bSuccess) as usize - ptr as usize },
11631        0usize,
11632        concat!(
11633            "Offset of field: ",
11634            stringify!(NumberOfCurrentPlayers_t),
11635            "::",
11636            stringify!(m_bSuccess)
11637        )
11638    );
11639    assert_eq!(
11640        unsafe { ::std::ptr::addr_of!((*ptr).m_cPlayers) as usize - ptr as usize },
11641        4usize,
11642        concat!(
11643            "Offset of field: ",
11644            stringify!(NumberOfCurrentPlayers_t),
11645            "::",
11646            stringify!(m_cPlayers)
11647        )
11648    );
11649}
11650#[repr(C)]
11651#[derive(Copy, Clone)]
11652pub struct UserStatsUnloaded_t {
11653    pub m_steamIDUser: CSteamID,
11654}
11655pub const UserStatsUnloaded_t_k_iCallback: UserStatsUnloaded_t__bindgen_ty_1 =
11656    UserStatsUnloaded_t__bindgen_ty_1::k_iCallback;
11657#[repr(u32)]
11658#[non_exhaustive]
11659#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
11660pub enum UserStatsUnloaded_t__bindgen_ty_1 {
11661    k_iCallback = 1108,
11662}
11663#[test]
11664fn bindgen_test_layout_UserStatsUnloaded_t() {
11665    const UNINIT: ::std::mem::MaybeUninit<UserStatsUnloaded_t> = ::std::mem::MaybeUninit::uninit();
11666    let ptr = UNINIT.as_ptr();
11667    assert_eq!(
11668        ::std::mem::size_of::<UserStatsUnloaded_t>(),
11669        8usize,
11670        concat!("Size of: ", stringify!(UserStatsUnloaded_t))
11671    );
11672    assert_eq!(
11673        ::std::mem::align_of::<UserStatsUnloaded_t>(),
11674        1usize,
11675        concat!("Alignment of ", stringify!(UserStatsUnloaded_t))
11676    );
11677    assert_eq!(
11678        unsafe { ::std::ptr::addr_of!((*ptr).m_steamIDUser) as usize - ptr as usize },
11679        0usize,
11680        concat!(
11681            "Offset of field: ",
11682            stringify!(UserStatsUnloaded_t),
11683            "::",
11684            stringify!(m_steamIDUser)
11685        )
11686    );
11687}
11688#[repr(C)]
11689#[derive(Copy, Clone)]
11690pub struct UserAchievementIconFetched_t {
11691    pub m_nGameID: CGameID,
11692    pub m_rgchAchievementName: [::std::os::raw::c_char; 128usize],
11693    pub m_bAchieved: bool,
11694    pub m_nIconHandle: ::std::os::raw::c_int,
11695}
11696pub const UserAchievementIconFetched_t_k_iCallback: UserAchievementIconFetched_t__bindgen_ty_1 =
11697    UserAchievementIconFetched_t__bindgen_ty_1::k_iCallback;
11698#[repr(u32)]
11699#[non_exhaustive]
11700#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
11701pub enum UserAchievementIconFetched_t__bindgen_ty_1 {
11702    k_iCallback = 1109,
11703}
11704#[test]
11705fn bindgen_test_layout_UserAchievementIconFetched_t() {
11706    const UNINIT: ::std::mem::MaybeUninit<UserAchievementIconFetched_t> =
11707        ::std::mem::MaybeUninit::uninit();
11708    let ptr = UNINIT.as_ptr();
11709    assert_eq!(
11710        ::std::mem::size_of::<UserAchievementIconFetched_t>(),
11711        144usize,
11712        concat!("Size of: ", stringify!(UserAchievementIconFetched_t))
11713    );
11714    assert_eq!(
11715        ::std::mem::align_of::<UserAchievementIconFetched_t>(),
11716        4usize,
11717        concat!("Alignment of ", stringify!(UserAchievementIconFetched_t))
11718    );
11719    assert_eq!(
11720        unsafe { ::std::ptr::addr_of!((*ptr).m_nGameID) as usize - ptr as usize },
11721        0usize,
11722        concat!(
11723            "Offset of field: ",
11724            stringify!(UserAchievementIconFetched_t),
11725            "::",
11726            stringify!(m_nGameID)
11727        )
11728    );
11729    assert_eq!(
11730        unsafe { ::std::ptr::addr_of!((*ptr).m_rgchAchievementName) as usize - ptr as usize },
11731        8usize,
11732        concat!(
11733            "Offset of field: ",
11734            stringify!(UserAchievementIconFetched_t),
11735            "::",
11736            stringify!(m_rgchAchievementName)
11737        )
11738    );
11739    assert_eq!(
11740        unsafe { ::std::ptr::addr_of!((*ptr).m_bAchieved) as usize - ptr as usize },
11741        136usize,
11742        concat!(
11743            "Offset of field: ",
11744            stringify!(UserAchievementIconFetched_t),
11745            "::",
11746            stringify!(m_bAchieved)
11747        )
11748    );
11749    assert_eq!(
11750        unsafe { ::std::ptr::addr_of!((*ptr).m_nIconHandle) as usize - ptr as usize },
11751        140usize,
11752        concat!(
11753            "Offset of field: ",
11754            stringify!(UserAchievementIconFetched_t),
11755            "::",
11756            stringify!(m_nIconHandle)
11757        )
11758    );
11759}
11760#[repr(C, packed(4))]
11761#[derive(Debug, Copy, Clone)]
11762pub struct GlobalAchievementPercentagesReady_t {
11763    pub m_nGameID: uint64,
11764    pub m_eResult: EResult,
11765}
11766pub const GlobalAchievementPercentagesReady_t_k_iCallback:
11767    GlobalAchievementPercentagesReady_t__bindgen_ty_1 =
11768    GlobalAchievementPercentagesReady_t__bindgen_ty_1::k_iCallback;
11769#[repr(u32)]
11770#[non_exhaustive]
11771#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
11772pub enum GlobalAchievementPercentagesReady_t__bindgen_ty_1 {
11773    k_iCallback = 1110,
11774}
11775#[test]
11776fn bindgen_test_layout_GlobalAchievementPercentagesReady_t() {
11777    const UNINIT: ::std::mem::MaybeUninit<GlobalAchievementPercentagesReady_t> =
11778        ::std::mem::MaybeUninit::uninit();
11779    let ptr = UNINIT.as_ptr();
11780    assert_eq!(
11781        ::std::mem::size_of::<GlobalAchievementPercentagesReady_t>(),
11782        12usize,
11783        concat!("Size of: ", stringify!(GlobalAchievementPercentagesReady_t))
11784    );
11785    assert_eq!(
11786        ::std::mem::align_of::<GlobalAchievementPercentagesReady_t>(),
11787        4usize,
11788        concat!(
11789            "Alignment of ",
11790            stringify!(GlobalAchievementPercentagesReady_t)
11791        )
11792    );
11793    assert_eq!(
11794        unsafe { ::std::ptr::addr_of!((*ptr).m_nGameID) as usize - ptr as usize },
11795        0usize,
11796        concat!(
11797            "Offset of field: ",
11798            stringify!(GlobalAchievementPercentagesReady_t),
11799            "::",
11800            stringify!(m_nGameID)
11801        )
11802    );
11803    assert_eq!(
11804        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
11805        8usize,
11806        concat!(
11807            "Offset of field: ",
11808            stringify!(GlobalAchievementPercentagesReady_t),
11809            "::",
11810            stringify!(m_eResult)
11811        )
11812    );
11813}
11814#[repr(C, packed(4))]
11815#[derive(Debug, Copy, Clone)]
11816pub struct LeaderboardUGCSet_t {
11817    pub m_eResult: EResult,
11818    pub m_hSteamLeaderboard: SteamLeaderboard_t,
11819}
11820pub const LeaderboardUGCSet_t_k_iCallback: LeaderboardUGCSet_t__bindgen_ty_1 =
11821    LeaderboardUGCSet_t__bindgen_ty_1::k_iCallback;
11822#[repr(u32)]
11823#[non_exhaustive]
11824#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
11825pub enum LeaderboardUGCSet_t__bindgen_ty_1 {
11826    k_iCallback = 1111,
11827}
11828#[test]
11829fn bindgen_test_layout_LeaderboardUGCSet_t() {
11830    const UNINIT: ::std::mem::MaybeUninit<LeaderboardUGCSet_t> = ::std::mem::MaybeUninit::uninit();
11831    let ptr = UNINIT.as_ptr();
11832    assert_eq!(
11833        ::std::mem::size_of::<LeaderboardUGCSet_t>(),
11834        12usize,
11835        concat!("Size of: ", stringify!(LeaderboardUGCSet_t))
11836    );
11837    assert_eq!(
11838        ::std::mem::align_of::<LeaderboardUGCSet_t>(),
11839        4usize,
11840        concat!("Alignment of ", stringify!(LeaderboardUGCSet_t))
11841    );
11842    assert_eq!(
11843        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
11844        0usize,
11845        concat!(
11846            "Offset of field: ",
11847            stringify!(LeaderboardUGCSet_t),
11848            "::",
11849            stringify!(m_eResult)
11850        )
11851    );
11852    assert_eq!(
11853        unsafe { ::std::ptr::addr_of!((*ptr).m_hSteamLeaderboard) as usize - ptr as usize },
11854        4usize,
11855        concat!(
11856            "Offset of field: ",
11857            stringify!(LeaderboardUGCSet_t),
11858            "::",
11859            stringify!(m_hSteamLeaderboard)
11860        )
11861    );
11862}
11863#[repr(C, packed(4))]
11864#[derive(Debug, Copy, Clone)]
11865pub struct PS3TrophiesInstalled_t {
11866    pub m_nGameID: uint64,
11867    pub m_eResult: EResult,
11868    pub m_ulRequiredDiskSpace: uint64,
11869}
11870pub const PS3TrophiesInstalled_t_k_iCallback: PS3TrophiesInstalled_t__bindgen_ty_1 =
11871    PS3TrophiesInstalled_t__bindgen_ty_1::k_iCallback;
11872#[repr(u32)]
11873#[non_exhaustive]
11874#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
11875pub enum PS3TrophiesInstalled_t__bindgen_ty_1 {
11876    k_iCallback = 1112,
11877}
11878#[test]
11879fn bindgen_test_layout_PS3TrophiesInstalled_t() {
11880    const UNINIT: ::std::mem::MaybeUninit<PS3TrophiesInstalled_t> =
11881        ::std::mem::MaybeUninit::uninit();
11882    let ptr = UNINIT.as_ptr();
11883    assert_eq!(
11884        ::std::mem::size_of::<PS3TrophiesInstalled_t>(),
11885        20usize,
11886        concat!("Size of: ", stringify!(PS3TrophiesInstalled_t))
11887    );
11888    assert_eq!(
11889        ::std::mem::align_of::<PS3TrophiesInstalled_t>(),
11890        4usize,
11891        concat!("Alignment of ", stringify!(PS3TrophiesInstalled_t))
11892    );
11893    assert_eq!(
11894        unsafe { ::std::ptr::addr_of!((*ptr).m_nGameID) as usize - ptr as usize },
11895        0usize,
11896        concat!(
11897            "Offset of field: ",
11898            stringify!(PS3TrophiesInstalled_t),
11899            "::",
11900            stringify!(m_nGameID)
11901        )
11902    );
11903    assert_eq!(
11904        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
11905        8usize,
11906        concat!(
11907            "Offset of field: ",
11908            stringify!(PS3TrophiesInstalled_t),
11909            "::",
11910            stringify!(m_eResult)
11911        )
11912    );
11913    assert_eq!(
11914        unsafe { ::std::ptr::addr_of!((*ptr).m_ulRequiredDiskSpace) as usize - ptr as usize },
11915        12usize,
11916        concat!(
11917            "Offset of field: ",
11918            stringify!(PS3TrophiesInstalled_t),
11919            "::",
11920            stringify!(m_ulRequiredDiskSpace)
11921        )
11922    );
11923}
11924#[repr(C, packed(4))]
11925#[derive(Debug, Copy, Clone)]
11926pub struct GlobalStatsReceived_t {
11927    pub m_nGameID: uint64,
11928    pub m_eResult: EResult,
11929}
11930pub const GlobalStatsReceived_t_k_iCallback: GlobalStatsReceived_t__bindgen_ty_1 =
11931    GlobalStatsReceived_t__bindgen_ty_1::k_iCallback;
11932#[repr(u32)]
11933#[non_exhaustive]
11934#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
11935pub enum GlobalStatsReceived_t__bindgen_ty_1 {
11936    k_iCallback = 1112,
11937}
11938#[test]
11939fn bindgen_test_layout_GlobalStatsReceived_t() {
11940    const UNINIT: ::std::mem::MaybeUninit<GlobalStatsReceived_t> =
11941        ::std::mem::MaybeUninit::uninit();
11942    let ptr = UNINIT.as_ptr();
11943    assert_eq!(
11944        ::std::mem::size_of::<GlobalStatsReceived_t>(),
11945        12usize,
11946        concat!("Size of: ", stringify!(GlobalStatsReceived_t))
11947    );
11948    assert_eq!(
11949        ::std::mem::align_of::<GlobalStatsReceived_t>(),
11950        4usize,
11951        concat!("Alignment of ", stringify!(GlobalStatsReceived_t))
11952    );
11953    assert_eq!(
11954        unsafe { ::std::ptr::addr_of!((*ptr).m_nGameID) as usize - ptr as usize },
11955        0usize,
11956        concat!(
11957            "Offset of field: ",
11958            stringify!(GlobalStatsReceived_t),
11959            "::",
11960            stringify!(m_nGameID)
11961        )
11962    );
11963    assert_eq!(
11964        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
11965        8usize,
11966        concat!(
11967            "Offset of field: ",
11968            stringify!(GlobalStatsReceived_t),
11969            "::",
11970            stringify!(m_eResult)
11971        )
11972    );
11973}
11974pub const k_cubAppProofOfPurchaseKeyMax: ::std::os::raw::c_int = 240;
11975#[repr(C)]
11976pub struct ISteamApps__bindgen_vtable(::std::os::raw::c_void);
11977#[repr(C)]
11978#[derive(Debug, Copy, Clone)]
11979pub struct ISteamApps {
11980    pub vtable_: *const ISteamApps__bindgen_vtable,
11981}
11982#[test]
11983fn bindgen_test_layout_ISteamApps() {
11984    assert_eq!(
11985        ::std::mem::size_of::<ISteamApps>(),
11986        8usize,
11987        concat!("Size of: ", stringify!(ISteamApps))
11988    );
11989    assert_eq!(
11990        ::std::mem::align_of::<ISteamApps>(),
11991        8usize,
11992        concat!("Alignment of ", stringify!(ISteamApps))
11993    );
11994}
11995#[repr(C)]
11996#[derive(Debug, Copy, Clone)]
11997pub struct DlcInstalled_t {
11998    pub m_nAppID: AppId_t,
11999}
12000pub const DlcInstalled_t_k_iCallback: DlcInstalled_t__bindgen_ty_1 =
12001    DlcInstalled_t__bindgen_ty_1::k_iCallback;
12002#[repr(u32)]
12003#[non_exhaustive]
12004#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
12005pub enum DlcInstalled_t__bindgen_ty_1 {
12006    k_iCallback = 1005,
12007}
12008#[test]
12009fn bindgen_test_layout_DlcInstalled_t() {
12010    const UNINIT: ::std::mem::MaybeUninit<DlcInstalled_t> = ::std::mem::MaybeUninit::uninit();
12011    let ptr = UNINIT.as_ptr();
12012    assert_eq!(
12013        ::std::mem::size_of::<DlcInstalled_t>(),
12014        4usize,
12015        concat!("Size of: ", stringify!(DlcInstalled_t))
12016    );
12017    assert_eq!(
12018        ::std::mem::align_of::<DlcInstalled_t>(),
12019        4usize,
12020        concat!("Alignment of ", stringify!(DlcInstalled_t))
12021    );
12022    assert_eq!(
12023        unsafe { ::std::ptr::addr_of!((*ptr).m_nAppID) as usize - ptr as usize },
12024        0usize,
12025        concat!(
12026            "Offset of field: ",
12027            stringify!(DlcInstalled_t),
12028            "::",
12029            stringify!(m_nAppID)
12030        )
12031    );
12032}
12033#[repr(C)]
12034#[derive(Debug, Copy, Clone)]
12035pub struct NewUrlLaunchParameters_t {
12036    pub _address: u8,
12037}
12038pub const NewUrlLaunchParameters_t_k_iCallback: NewUrlLaunchParameters_t__bindgen_ty_1 =
12039    NewUrlLaunchParameters_t__bindgen_ty_1::k_iCallback;
12040#[repr(u32)]
12041#[non_exhaustive]
12042#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
12043pub enum NewUrlLaunchParameters_t__bindgen_ty_1 {
12044    k_iCallback = 1014,
12045}
12046#[test]
12047fn bindgen_test_layout_NewUrlLaunchParameters_t() {
12048    assert_eq!(
12049        ::std::mem::size_of::<NewUrlLaunchParameters_t>(),
12050        1usize,
12051        concat!("Size of: ", stringify!(NewUrlLaunchParameters_t))
12052    );
12053    assert_eq!(
12054        ::std::mem::align_of::<NewUrlLaunchParameters_t>(),
12055        1usize,
12056        concat!("Alignment of ", stringify!(NewUrlLaunchParameters_t))
12057    );
12058}
12059#[repr(C)]
12060#[derive(Debug, Copy, Clone)]
12061pub struct AppProofOfPurchaseKeyResponse_t {
12062    pub m_eResult: EResult,
12063    pub m_nAppID: uint32,
12064    pub m_cchKeyLength: uint32,
12065    pub m_rgchKey: [::std::os::raw::c_char; 240usize],
12066}
12067pub const AppProofOfPurchaseKeyResponse_t_k_iCallback:
12068    AppProofOfPurchaseKeyResponse_t__bindgen_ty_1 =
12069    AppProofOfPurchaseKeyResponse_t__bindgen_ty_1::k_iCallback;
12070#[repr(u32)]
12071#[non_exhaustive]
12072#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
12073pub enum AppProofOfPurchaseKeyResponse_t__bindgen_ty_1 {
12074    k_iCallback = 1021,
12075}
12076#[test]
12077fn bindgen_test_layout_AppProofOfPurchaseKeyResponse_t() {
12078    const UNINIT: ::std::mem::MaybeUninit<AppProofOfPurchaseKeyResponse_t> =
12079        ::std::mem::MaybeUninit::uninit();
12080    let ptr = UNINIT.as_ptr();
12081    assert_eq!(
12082        ::std::mem::size_of::<AppProofOfPurchaseKeyResponse_t>(),
12083        252usize,
12084        concat!("Size of: ", stringify!(AppProofOfPurchaseKeyResponse_t))
12085    );
12086    assert_eq!(
12087        ::std::mem::align_of::<AppProofOfPurchaseKeyResponse_t>(),
12088        4usize,
12089        concat!("Alignment of ", stringify!(AppProofOfPurchaseKeyResponse_t))
12090    );
12091    assert_eq!(
12092        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
12093        0usize,
12094        concat!(
12095            "Offset of field: ",
12096            stringify!(AppProofOfPurchaseKeyResponse_t),
12097            "::",
12098            stringify!(m_eResult)
12099        )
12100    );
12101    assert_eq!(
12102        unsafe { ::std::ptr::addr_of!((*ptr).m_nAppID) as usize - ptr as usize },
12103        4usize,
12104        concat!(
12105            "Offset of field: ",
12106            stringify!(AppProofOfPurchaseKeyResponse_t),
12107            "::",
12108            stringify!(m_nAppID)
12109        )
12110    );
12111    assert_eq!(
12112        unsafe { ::std::ptr::addr_of!((*ptr).m_cchKeyLength) as usize - ptr as usize },
12113        8usize,
12114        concat!(
12115            "Offset of field: ",
12116            stringify!(AppProofOfPurchaseKeyResponse_t),
12117            "::",
12118            stringify!(m_cchKeyLength)
12119        )
12120    );
12121    assert_eq!(
12122        unsafe { ::std::ptr::addr_of!((*ptr).m_rgchKey) as usize - ptr as usize },
12123        12usize,
12124        concat!(
12125            "Offset of field: ",
12126            stringify!(AppProofOfPurchaseKeyResponse_t),
12127            "::",
12128            stringify!(m_rgchKey)
12129        )
12130    );
12131}
12132#[repr(C, packed(4))]
12133#[derive(Debug, Copy, Clone)]
12134pub struct FileDetailsResult_t {
12135    pub m_eResult: EResult,
12136    pub m_ulFileSize: uint64,
12137    pub m_FileSHA: [uint8; 20usize],
12138    pub m_unFlags: uint32,
12139}
12140pub const FileDetailsResult_t_k_iCallback: FileDetailsResult_t__bindgen_ty_1 =
12141    FileDetailsResult_t__bindgen_ty_1::k_iCallback;
12142#[repr(u32)]
12143#[non_exhaustive]
12144#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
12145pub enum FileDetailsResult_t__bindgen_ty_1 {
12146    k_iCallback = 1023,
12147}
12148#[test]
12149fn bindgen_test_layout_FileDetailsResult_t() {
12150    const UNINIT: ::std::mem::MaybeUninit<FileDetailsResult_t> = ::std::mem::MaybeUninit::uninit();
12151    let ptr = UNINIT.as_ptr();
12152    assert_eq!(
12153        ::std::mem::size_of::<FileDetailsResult_t>(),
12154        36usize,
12155        concat!("Size of: ", stringify!(FileDetailsResult_t))
12156    );
12157    assert_eq!(
12158        ::std::mem::align_of::<FileDetailsResult_t>(),
12159        4usize,
12160        concat!("Alignment of ", stringify!(FileDetailsResult_t))
12161    );
12162    assert_eq!(
12163        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
12164        0usize,
12165        concat!(
12166            "Offset of field: ",
12167            stringify!(FileDetailsResult_t),
12168            "::",
12169            stringify!(m_eResult)
12170        )
12171    );
12172    assert_eq!(
12173        unsafe { ::std::ptr::addr_of!((*ptr).m_ulFileSize) as usize - ptr as usize },
12174        4usize,
12175        concat!(
12176            "Offset of field: ",
12177            stringify!(FileDetailsResult_t),
12178            "::",
12179            stringify!(m_ulFileSize)
12180        )
12181    );
12182    assert_eq!(
12183        unsafe { ::std::ptr::addr_of!((*ptr).m_FileSHA) as usize - ptr as usize },
12184        12usize,
12185        concat!(
12186            "Offset of field: ",
12187            stringify!(FileDetailsResult_t),
12188            "::",
12189            stringify!(m_FileSHA)
12190        )
12191    );
12192    assert_eq!(
12193        unsafe { ::std::ptr::addr_of!((*ptr).m_unFlags) as usize - ptr as usize },
12194        32usize,
12195        concat!(
12196            "Offset of field: ",
12197            stringify!(FileDetailsResult_t),
12198            "::",
12199            stringify!(m_unFlags)
12200        )
12201    );
12202}
12203#[repr(C)]
12204#[derive(Debug, Copy, Clone)]
12205pub struct TimedTrialStatus_t {
12206    pub m_unAppID: AppId_t,
12207    pub m_bIsOffline: bool,
12208    pub m_unSecondsAllowed: uint32,
12209    pub m_unSecondsPlayed: uint32,
12210}
12211pub const TimedTrialStatus_t_k_iCallback: TimedTrialStatus_t__bindgen_ty_1 =
12212    TimedTrialStatus_t__bindgen_ty_1::k_iCallback;
12213#[repr(u32)]
12214#[non_exhaustive]
12215#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
12216pub enum TimedTrialStatus_t__bindgen_ty_1 {
12217    k_iCallback = 1030,
12218}
12219#[test]
12220fn bindgen_test_layout_TimedTrialStatus_t() {
12221    const UNINIT: ::std::mem::MaybeUninit<TimedTrialStatus_t> = ::std::mem::MaybeUninit::uninit();
12222    let ptr = UNINIT.as_ptr();
12223    assert_eq!(
12224        ::std::mem::size_of::<TimedTrialStatus_t>(),
12225        16usize,
12226        concat!("Size of: ", stringify!(TimedTrialStatus_t))
12227    );
12228    assert_eq!(
12229        ::std::mem::align_of::<TimedTrialStatus_t>(),
12230        4usize,
12231        concat!("Alignment of ", stringify!(TimedTrialStatus_t))
12232    );
12233    assert_eq!(
12234        unsafe { ::std::ptr::addr_of!((*ptr).m_unAppID) as usize - ptr as usize },
12235        0usize,
12236        concat!(
12237            "Offset of field: ",
12238            stringify!(TimedTrialStatus_t),
12239            "::",
12240            stringify!(m_unAppID)
12241        )
12242    );
12243    assert_eq!(
12244        unsafe { ::std::ptr::addr_of!((*ptr).m_bIsOffline) as usize - ptr as usize },
12245        4usize,
12246        concat!(
12247            "Offset of field: ",
12248            stringify!(TimedTrialStatus_t),
12249            "::",
12250            stringify!(m_bIsOffline)
12251        )
12252    );
12253    assert_eq!(
12254        unsafe { ::std::ptr::addr_of!((*ptr).m_unSecondsAllowed) as usize - ptr as usize },
12255        8usize,
12256        concat!(
12257            "Offset of field: ",
12258            stringify!(TimedTrialStatus_t),
12259            "::",
12260            stringify!(m_unSecondsAllowed)
12261        )
12262    );
12263    assert_eq!(
12264        unsafe { ::std::ptr::addr_of!((*ptr).m_unSecondsPlayed) as usize - ptr as usize },
12265        12usize,
12266        concat!(
12267            "Offset of field: ",
12268            stringify!(TimedTrialStatus_t),
12269            "::",
12270            stringify!(m_unSecondsPlayed)
12271        )
12272    );
12273}
12274#[repr(u32)]
12275#[non_exhaustive]
12276#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
12277pub enum EP2PSessionError {
12278    k_EP2PSessionErrorNone = 0,
12279    k_EP2PSessionErrorNoRightsToApp = 2,
12280    k_EP2PSessionErrorTimeout = 4,
12281    k_EP2PSessionErrorNotRunningApp_DELETED = 1,
12282    k_EP2PSessionErrorDestinationNotLoggedIn_DELETED = 3,
12283    k_EP2PSessionErrorMax = 5,
12284}
12285#[repr(u32)]
12286#[non_exhaustive]
12287#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
12288pub enum EP2PSend {
12289    k_EP2PSendUnreliable = 0,
12290    k_EP2PSendUnreliableNoDelay = 1,
12291    k_EP2PSendReliable = 2,
12292    k_EP2PSendReliableWithBuffering = 3,
12293}
12294#[repr(C)]
12295#[derive(Debug, Copy, Clone)]
12296pub struct P2PSessionState_t {
12297    pub m_bConnectionActive: uint8,
12298    pub m_bConnecting: uint8,
12299    pub m_eP2PSessionError: uint8,
12300    pub m_bUsingRelay: uint8,
12301    pub m_nBytesQueuedForSend: int32,
12302    pub m_nPacketsQueuedForSend: int32,
12303    pub m_nRemoteIP: uint32,
12304    pub m_nRemotePort: uint16,
12305}
12306#[test]
12307fn bindgen_test_layout_P2PSessionState_t() {
12308    const UNINIT: ::std::mem::MaybeUninit<P2PSessionState_t> = ::std::mem::MaybeUninit::uninit();
12309    let ptr = UNINIT.as_ptr();
12310    assert_eq!(
12311        ::std::mem::size_of::<P2PSessionState_t>(),
12312        20usize,
12313        concat!("Size of: ", stringify!(P2PSessionState_t))
12314    );
12315    assert_eq!(
12316        ::std::mem::align_of::<P2PSessionState_t>(),
12317        4usize,
12318        concat!("Alignment of ", stringify!(P2PSessionState_t))
12319    );
12320    assert_eq!(
12321        unsafe { ::std::ptr::addr_of!((*ptr).m_bConnectionActive) as usize - ptr as usize },
12322        0usize,
12323        concat!(
12324            "Offset of field: ",
12325            stringify!(P2PSessionState_t),
12326            "::",
12327            stringify!(m_bConnectionActive)
12328        )
12329    );
12330    assert_eq!(
12331        unsafe { ::std::ptr::addr_of!((*ptr).m_bConnecting) as usize - ptr as usize },
12332        1usize,
12333        concat!(
12334            "Offset of field: ",
12335            stringify!(P2PSessionState_t),
12336            "::",
12337            stringify!(m_bConnecting)
12338        )
12339    );
12340    assert_eq!(
12341        unsafe { ::std::ptr::addr_of!((*ptr).m_eP2PSessionError) as usize - ptr as usize },
12342        2usize,
12343        concat!(
12344            "Offset of field: ",
12345            stringify!(P2PSessionState_t),
12346            "::",
12347            stringify!(m_eP2PSessionError)
12348        )
12349    );
12350    assert_eq!(
12351        unsafe { ::std::ptr::addr_of!((*ptr).m_bUsingRelay) as usize - ptr as usize },
12352        3usize,
12353        concat!(
12354            "Offset of field: ",
12355            stringify!(P2PSessionState_t),
12356            "::",
12357            stringify!(m_bUsingRelay)
12358        )
12359    );
12360    assert_eq!(
12361        unsafe { ::std::ptr::addr_of!((*ptr).m_nBytesQueuedForSend) as usize - ptr as usize },
12362        4usize,
12363        concat!(
12364            "Offset of field: ",
12365            stringify!(P2PSessionState_t),
12366            "::",
12367            stringify!(m_nBytesQueuedForSend)
12368        )
12369    );
12370    assert_eq!(
12371        unsafe { ::std::ptr::addr_of!((*ptr).m_nPacketsQueuedForSend) as usize - ptr as usize },
12372        8usize,
12373        concat!(
12374            "Offset of field: ",
12375            stringify!(P2PSessionState_t),
12376            "::",
12377            stringify!(m_nPacketsQueuedForSend)
12378        )
12379    );
12380    assert_eq!(
12381        unsafe { ::std::ptr::addr_of!((*ptr).m_nRemoteIP) as usize - ptr as usize },
12382        12usize,
12383        concat!(
12384            "Offset of field: ",
12385            stringify!(P2PSessionState_t),
12386            "::",
12387            stringify!(m_nRemoteIP)
12388        )
12389    );
12390    assert_eq!(
12391        unsafe { ::std::ptr::addr_of!((*ptr).m_nRemotePort) as usize - ptr as usize },
12392        16usize,
12393        concat!(
12394            "Offset of field: ",
12395            stringify!(P2PSessionState_t),
12396            "::",
12397            stringify!(m_nRemotePort)
12398        )
12399    );
12400}
12401pub type SNetSocket_t = uint32;
12402pub type SNetListenSocket_t = uint32;
12403#[repr(u32)]
12404#[non_exhaustive]
12405#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
12406pub enum ESNetSocketState {
12407    k_ESNetSocketStateInvalid = 0,
12408    k_ESNetSocketStateConnected = 1,
12409    k_ESNetSocketStateInitiated = 10,
12410    k_ESNetSocketStateLocalCandidatesFound = 11,
12411    k_ESNetSocketStateReceivedRemoteCandidates = 12,
12412    k_ESNetSocketStateChallengeHandshake = 15,
12413    k_ESNetSocketStateDisconnecting = 21,
12414    k_ESNetSocketStateLocalDisconnect = 22,
12415    k_ESNetSocketStateTimeoutDuringConnect = 23,
12416    k_ESNetSocketStateRemoteEndDisconnected = 24,
12417    k_ESNetSocketStateConnectionBroken = 25,
12418}
12419#[repr(u32)]
12420#[non_exhaustive]
12421#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
12422pub enum ESNetSocketConnectionType {
12423    k_ESNetSocketConnectionTypeNotConnected = 0,
12424    k_ESNetSocketConnectionTypeUDP = 1,
12425    k_ESNetSocketConnectionTypeUDPRelay = 2,
12426}
12427#[repr(C)]
12428pub struct ISteamNetworking__bindgen_vtable(::std::os::raw::c_void);
12429#[doc = "      the Steamworks SDK.  Please see ISteamNetworkingSockets and\n      ISteamNetworkingMessages"]
12430#[repr(C)]
12431#[derive(Debug, Copy, Clone)]
12432pub struct ISteamNetworking {
12433    pub vtable_: *const ISteamNetworking__bindgen_vtable,
12434}
12435#[test]
12436fn bindgen_test_layout_ISteamNetworking() {
12437    assert_eq!(
12438        ::std::mem::size_of::<ISteamNetworking>(),
12439        8usize,
12440        concat!("Size of: ", stringify!(ISteamNetworking))
12441    );
12442    assert_eq!(
12443        ::std::mem::align_of::<ISteamNetworking>(),
12444        8usize,
12445        concat!("Alignment of ", stringify!(ISteamNetworking))
12446    );
12447}
12448#[repr(C)]
12449#[derive(Copy, Clone)]
12450pub struct P2PSessionRequest_t {
12451    pub m_steamIDRemote: CSteamID,
12452}
12453pub const P2PSessionRequest_t_k_iCallback: P2PSessionRequest_t__bindgen_ty_1 =
12454    P2PSessionRequest_t__bindgen_ty_1::k_iCallback;
12455#[repr(u32)]
12456#[non_exhaustive]
12457#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
12458pub enum P2PSessionRequest_t__bindgen_ty_1 {
12459    k_iCallback = 1202,
12460}
12461#[test]
12462fn bindgen_test_layout_P2PSessionRequest_t() {
12463    const UNINIT: ::std::mem::MaybeUninit<P2PSessionRequest_t> = ::std::mem::MaybeUninit::uninit();
12464    let ptr = UNINIT.as_ptr();
12465    assert_eq!(
12466        ::std::mem::size_of::<P2PSessionRequest_t>(),
12467        8usize,
12468        concat!("Size of: ", stringify!(P2PSessionRequest_t))
12469    );
12470    assert_eq!(
12471        ::std::mem::align_of::<P2PSessionRequest_t>(),
12472        1usize,
12473        concat!("Alignment of ", stringify!(P2PSessionRequest_t))
12474    );
12475    assert_eq!(
12476        unsafe { ::std::ptr::addr_of!((*ptr).m_steamIDRemote) as usize - ptr as usize },
12477        0usize,
12478        concat!(
12479            "Offset of field: ",
12480            stringify!(P2PSessionRequest_t),
12481            "::",
12482            stringify!(m_steamIDRemote)
12483        )
12484    );
12485}
12486#[repr(C)]
12487#[derive(Copy, Clone)]
12488pub struct P2PSessionConnectFail_t {
12489    pub m_steamIDRemote: CSteamID,
12490    pub m_eP2PSessionError: uint8,
12491}
12492pub const P2PSessionConnectFail_t_k_iCallback: P2PSessionConnectFail_t__bindgen_ty_1 =
12493    P2PSessionConnectFail_t__bindgen_ty_1::k_iCallback;
12494#[repr(u32)]
12495#[non_exhaustive]
12496#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
12497pub enum P2PSessionConnectFail_t__bindgen_ty_1 {
12498    k_iCallback = 1203,
12499}
12500#[test]
12501fn bindgen_test_layout_P2PSessionConnectFail_t() {
12502    const UNINIT: ::std::mem::MaybeUninit<P2PSessionConnectFail_t> =
12503        ::std::mem::MaybeUninit::uninit();
12504    let ptr = UNINIT.as_ptr();
12505    assert_eq!(
12506        ::std::mem::size_of::<P2PSessionConnectFail_t>(),
12507        9usize,
12508        concat!("Size of: ", stringify!(P2PSessionConnectFail_t))
12509    );
12510    assert_eq!(
12511        ::std::mem::align_of::<P2PSessionConnectFail_t>(),
12512        1usize,
12513        concat!("Alignment of ", stringify!(P2PSessionConnectFail_t))
12514    );
12515    assert_eq!(
12516        unsafe { ::std::ptr::addr_of!((*ptr).m_steamIDRemote) as usize - ptr as usize },
12517        0usize,
12518        concat!(
12519            "Offset of field: ",
12520            stringify!(P2PSessionConnectFail_t),
12521            "::",
12522            stringify!(m_steamIDRemote)
12523        )
12524    );
12525    assert_eq!(
12526        unsafe { ::std::ptr::addr_of!((*ptr).m_eP2PSessionError) as usize - ptr as usize },
12527        8usize,
12528        concat!(
12529            "Offset of field: ",
12530            stringify!(P2PSessionConnectFail_t),
12531            "::",
12532            stringify!(m_eP2PSessionError)
12533        )
12534    );
12535}
12536#[repr(C)]
12537#[derive(Copy, Clone)]
12538pub struct SocketStatusCallback_t {
12539    pub m_hSocket: SNetSocket_t,
12540    pub m_hListenSocket: SNetListenSocket_t,
12541    pub m_steamIDRemote: CSteamID,
12542    pub m_eSNetSocketState: ::std::os::raw::c_int,
12543}
12544pub const SocketStatusCallback_t_k_iCallback: SocketStatusCallback_t__bindgen_ty_1 =
12545    SocketStatusCallback_t__bindgen_ty_1::k_iCallback;
12546#[repr(u32)]
12547#[non_exhaustive]
12548#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
12549pub enum SocketStatusCallback_t__bindgen_ty_1 {
12550    k_iCallback = 1201,
12551}
12552#[test]
12553fn bindgen_test_layout_SocketStatusCallback_t() {
12554    const UNINIT: ::std::mem::MaybeUninit<SocketStatusCallback_t> =
12555        ::std::mem::MaybeUninit::uninit();
12556    let ptr = UNINIT.as_ptr();
12557    assert_eq!(
12558        ::std::mem::size_of::<SocketStatusCallback_t>(),
12559        20usize,
12560        concat!("Size of: ", stringify!(SocketStatusCallback_t))
12561    );
12562    assert_eq!(
12563        ::std::mem::align_of::<SocketStatusCallback_t>(),
12564        4usize,
12565        concat!("Alignment of ", stringify!(SocketStatusCallback_t))
12566    );
12567    assert_eq!(
12568        unsafe { ::std::ptr::addr_of!((*ptr).m_hSocket) as usize - ptr as usize },
12569        0usize,
12570        concat!(
12571            "Offset of field: ",
12572            stringify!(SocketStatusCallback_t),
12573            "::",
12574            stringify!(m_hSocket)
12575        )
12576    );
12577    assert_eq!(
12578        unsafe { ::std::ptr::addr_of!((*ptr).m_hListenSocket) as usize - ptr as usize },
12579        4usize,
12580        concat!(
12581            "Offset of field: ",
12582            stringify!(SocketStatusCallback_t),
12583            "::",
12584            stringify!(m_hListenSocket)
12585        )
12586    );
12587    assert_eq!(
12588        unsafe { ::std::ptr::addr_of!((*ptr).m_steamIDRemote) as usize - ptr as usize },
12589        8usize,
12590        concat!(
12591            "Offset of field: ",
12592            stringify!(SocketStatusCallback_t),
12593            "::",
12594            stringify!(m_steamIDRemote)
12595        )
12596    );
12597    assert_eq!(
12598        unsafe { ::std::ptr::addr_of!((*ptr).m_eSNetSocketState) as usize - ptr as usize },
12599        16usize,
12600        concat!(
12601            "Offset of field: ",
12602            stringify!(SocketStatusCallback_t),
12603            "::",
12604            stringify!(m_eSNetSocketState)
12605        )
12606    );
12607}
12608pub const k_nScreenshotMaxTaggedUsers: uint32 = 32;
12609pub const k_nScreenshotMaxTaggedPublishedFiles: uint32 = 32;
12610pub const k_cubUFSTagTypeMax: ::std::os::raw::c_int = 255;
12611pub const k_cubUFSTagValueMax: ::std::os::raw::c_int = 255;
12612pub const k_ScreenshotThumbWidth: ::std::os::raw::c_int = 200;
12613pub type ScreenshotHandle = uint32;
12614#[repr(u32)]
12615#[non_exhaustive]
12616#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
12617pub enum EVRScreenshotType {
12618    k_EVRScreenshotType_None = 0,
12619    k_EVRScreenshotType_Mono = 1,
12620    k_EVRScreenshotType_Stereo = 2,
12621    k_EVRScreenshotType_MonoCubemap = 3,
12622    k_EVRScreenshotType_MonoPanorama = 4,
12623    k_EVRScreenshotType_StereoPanorama = 5,
12624}
12625#[repr(C)]
12626pub struct ISteamScreenshots__bindgen_vtable(::std::os::raw::c_void);
12627#[repr(C)]
12628#[derive(Debug, Copy, Clone)]
12629pub struct ISteamScreenshots {
12630    pub vtable_: *const ISteamScreenshots__bindgen_vtable,
12631}
12632#[test]
12633fn bindgen_test_layout_ISteamScreenshots() {
12634    assert_eq!(
12635        ::std::mem::size_of::<ISteamScreenshots>(),
12636        8usize,
12637        concat!("Size of: ", stringify!(ISteamScreenshots))
12638    );
12639    assert_eq!(
12640        ::std::mem::align_of::<ISteamScreenshots>(),
12641        8usize,
12642        concat!("Alignment of ", stringify!(ISteamScreenshots))
12643    );
12644}
12645#[repr(C)]
12646#[derive(Debug, Copy, Clone)]
12647pub struct ScreenshotReady_t {
12648    pub m_hLocal: ScreenshotHandle,
12649    pub m_eResult: EResult,
12650}
12651pub const ScreenshotReady_t_k_iCallback: ScreenshotReady_t__bindgen_ty_1 =
12652    ScreenshotReady_t__bindgen_ty_1::k_iCallback;
12653#[repr(u32)]
12654#[non_exhaustive]
12655#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
12656pub enum ScreenshotReady_t__bindgen_ty_1 {
12657    k_iCallback = 2301,
12658}
12659#[test]
12660fn bindgen_test_layout_ScreenshotReady_t() {
12661    const UNINIT: ::std::mem::MaybeUninit<ScreenshotReady_t> = ::std::mem::MaybeUninit::uninit();
12662    let ptr = UNINIT.as_ptr();
12663    assert_eq!(
12664        ::std::mem::size_of::<ScreenshotReady_t>(),
12665        8usize,
12666        concat!("Size of: ", stringify!(ScreenshotReady_t))
12667    );
12668    assert_eq!(
12669        ::std::mem::align_of::<ScreenshotReady_t>(),
12670        4usize,
12671        concat!("Alignment of ", stringify!(ScreenshotReady_t))
12672    );
12673    assert_eq!(
12674        unsafe { ::std::ptr::addr_of!((*ptr).m_hLocal) as usize - ptr as usize },
12675        0usize,
12676        concat!(
12677            "Offset of field: ",
12678            stringify!(ScreenshotReady_t),
12679            "::",
12680            stringify!(m_hLocal)
12681        )
12682    );
12683    assert_eq!(
12684        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
12685        4usize,
12686        concat!(
12687            "Offset of field: ",
12688            stringify!(ScreenshotReady_t),
12689            "::",
12690            stringify!(m_eResult)
12691        )
12692    );
12693}
12694#[repr(C)]
12695#[derive(Debug, Copy, Clone)]
12696pub struct ScreenshotRequested_t {
12697    pub _address: u8,
12698}
12699pub const ScreenshotRequested_t_k_iCallback: ScreenshotRequested_t__bindgen_ty_1 =
12700    ScreenshotRequested_t__bindgen_ty_1::k_iCallback;
12701#[repr(u32)]
12702#[non_exhaustive]
12703#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
12704pub enum ScreenshotRequested_t__bindgen_ty_1 {
12705    k_iCallback = 2302,
12706}
12707#[test]
12708fn bindgen_test_layout_ScreenshotRequested_t() {
12709    assert_eq!(
12710        ::std::mem::size_of::<ScreenshotRequested_t>(),
12711        1usize,
12712        concat!("Size of: ", stringify!(ScreenshotRequested_t))
12713    );
12714    assert_eq!(
12715        ::std::mem::align_of::<ScreenshotRequested_t>(),
12716        1usize,
12717        concat!("Alignment of ", stringify!(ScreenshotRequested_t))
12718    );
12719}
12720#[repr(u32)]
12721#[non_exhaustive]
12722#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
12723pub enum AudioPlayback_Status {
12724    AudioPlayback_Undefined = 0,
12725    AudioPlayback_Playing = 1,
12726    AudioPlayback_Paused = 2,
12727    AudioPlayback_Idle = 3,
12728}
12729#[repr(C)]
12730pub struct ISteamMusic__bindgen_vtable(::std::os::raw::c_void);
12731#[repr(C)]
12732#[derive(Debug, Copy, Clone)]
12733pub struct ISteamMusic {
12734    pub vtable_: *const ISteamMusic__bindgen_vtable,
12735}
12736#[test]
12737fn bindgen_test_layout_ISteamMusic() {
12738    assert_eq!(
12739        ::std::mem::size_of::<ISteamMusic>(),
12740        8usize,
12741        concat!("Size of: ", stringify!(ISteamMusic))
12742    );
12743    assert_eq!(
12744        ::std::mem::align_of::<ISteamMusic>(),
12745        8usize,
12746        concat!("Alignment of ", stringify!(ISteamMusic))
12747    );
12748}
12749#[repr(C)]
12750#[derive(Debug, Copy, Clone)]
12751pub struct PlaybackStatusHasChanged_t {
12752    pub _address: u8,
12753}
12754pub const PlaybackStatusHasChanged_t_k_iCallback: PlaybackStatusHasChanged_t__bindgen_ty_1 =
12755    PlaybackStatusHasChanged_t__bindgen_ty_1::k_iCallback;
12756#[repr(u32)]
12757#[non_exhaustive]
12758#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
12759pub enum PlaybackStatusHasChanged_t__bindgen_ty_1 {
12760    k_iCallback = 4001,
12761}
12762#[test]
12763fn bindgen_test_layout_PlaybackStatusHasChanged_t() {
12764    assert_eq!(
12765        ::std::mem::size_of::<PlaybackStatusHasChanged_t>(),
12766        1usize,
12767        concat!("Size of: ", stringify!(PlaybackStatusHasChanged_t))
12768    );
12769    assert_eq!(
12770        ::std::mem::align_of::<PlaybackStatusHasChanged_t>(),
12771        1usize,
12772        concat!("Alignment of ", stringify!(PlaybackStatusHasChanged_t))
12773    );
12774}
12775#[repr(C)]
12776#[derive(Debug, Copy, Clone)]
12777pub struct VolumeHasChanged_t {
12778    pub m_flNewVolume: f32,
12779}
12780pub const VolumeHasChanged_t_k_iCallback: VolumeHasChanged_t__bindgen_ty_1 =
12781    VolumeHasChanged_t__bindgen_ty_1::k_iCallback;
12782#[repr(u32)]
12783#[non_exhaustive]
12784#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
12785pub enum VolumeHasChanged_t__bindgen_ty_1 {
12786    k_iCallback = 4002,
12787}
12788#[test]
12789fn bindgen_test_layout_VolumeHasChanged_t() {
12790    const UNINIT: ::std::mem::MaybeUninit<VolumeHasChanged_t> = ::std::mem::MaybeUninit::uninit();
12791    let ptr = UNINIT.as_ptr();
12792    assert_eq!(
12793        ::std::mem::size_of::<VolumeHasChanged_t>(),
12794        4usize,
12795        concat!("Size of: ", stringify!(VolumeHasChanged_t))
12796    );
12797    assert_eq!(
12798        ::std::mem::align_of::<VolumeHasChanged_t>(),
12799        4usize,
12800        concat!("Alignment of ", stringify!(VolumeHasChanged_t))
12801    );
12802    assert_eq!(
12803        unsafe { ::std::ptr::addr_of!((*ptr).m_flNewVolume) as usize - ptr as usize },
12804        0usize,
12805        concat!(
12806            "Offset of field: ",
12807            stringify!(VolumeHasChanged_t),
12808            "::",
12809            stringify!(m_flNewVolume)
12810        )
12811    );
12812}
12813#[repr(C)]
12814pub struct ISteamMusicRemote__bindgen_vtable(::std::os::raw::c_void);
12815#[repr(C)]
12816#[derive(Debug, Copy, Clone)]
12817pub struct ISteamMusicRemote {
12818    pub vtable_: *const ISteamMusicRemote__bindgen_vtable,
12819}
12820#[test]
12821fn bindgen_test_layout_ISteamMusicRemote() {
12822    assert_eq!(
12823        ::std::mem::size_of::<ISteamMusicRemote>(),
12824        8usize,
12825        concat!("Size of: ", stringify!(ISteamMusicRemote))
12826    );
12827    assert_eq!(
12828        ::std::mem::align_of::<ISteamMusicRemote>(),
12829        8usize,
12830        concat!("Alignment of ", stringify!(ISteamMusicRemote))
12831    );
12832}
12833#[repr(C)]
12834#[derive(Debug, Copy, Clone)]
12835pub struct MusicPlayerRemoteWillActivate_t {
12836    pub _address: u8,
12837}
12838pub const MusicPlayerRemoteWillActivate_t_k_iCallback:
12839    MusicPlayerRemoteWillActivate_t__bindgen_ty_1 =
12840    MusicPlayerRemoteWillActivate_t__bindgen_ty_1::k_iCallback;
12841#[repr(u32)]
12842#[non_exhaustive]
12843#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
12844pub enum MusicPlayerRemoteWillActivate_t__bindgen_ty_1 {
12845    k_iCallback = 4101,
12846}
12847#[test]
12848fn bindgen_test_layout_MusicPlayerRemoteWillActivate_t() {
12849    assert_eq!(
12850        ::std::mem::size_of::<MusicPlayerRemoteWillActivate_t>(),
12851        1usize,
12852        concat!("Size of: ", stringify!(MusicPlayerRemoteWillActivate_t))
12853    );
12854    assert_eq!(
12855        ::std::mem::align_of::<MusicPlayerRemoteWillActivate_t>(),
12856        1usize,
12857        concat!("Alignment of ", stringify!(MusicPlayerRemoteWillActivate_t))
12858    );
12859}
12860#[repr(C)]
12861#[derive(Debug, Copy, Clone)]
12862pub struct MusicPlayerRemoteWillDeactivate_t {
12863    pub _address: u8,
12864}
12865pub const MusicPlayerRemoteWillDeactivate_t_k_iCallback:
12866    MusicPlayerRemoteWillDeactivate_t__bindgen_ty_1 =
12867    MusicPlayerRemoteWillDeactivate_t__bindgen_ty_1::k_iCallback;
12868#[repr(u32)]
12869#[non_exhaustive]
12870#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
12871pub enum MusicPlayerRemoteWillDeactivate_t__bindgen_ty_1 {
12872    k_iCallback = 4102,
12873}
12874#[test]
12875fn bindgen_test_layout_MusicPlayerRemoteWillDeactivate_t() {
12876    assert_eq!(
12877        ::std::mem::size_of::<MusicPlayerRemoteWillDeactivate_t>(),
12878        1usize,
12879        concat!("Size of: ", stringify!(MusicPlayerRemoteWillDeactivate_t))
12880    );
12881    assert_eq!(
12882        ::std::mem::align_of::<MusicPlayerRemoteWillDeactivate_t>(),
12883        1usize,
12884        concat!(
12885            "Alignment of ",
12886            stringify!(MusicPlayerRemoteWillDeactivate_t)
12887        )
12888    );
12889}
12890#[repr(C)]
12891#[derive(Debug, Copy, Clone)]
12892pub struct MusicPlayerRemoteToFront_t {
12893    pub _address: u8,
12894}
12895pub const MusicPlayerRemoteToFront_t_k_iCallback: MusicPlayerRemoteToFront_t__bindgen_ty_1 =
12896    MusicPlayerRemoteToFront_t__bindgen_ty_1::k_iCallback;
12897#[repr(u32)]
12898#[non_exhaustive]
12899#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
12900pub enum MusicPlayerRemoteToFront_t__bindgen_ty_1 {
12901    k_iCallback = 4103,
12902}
12903#[test]
12904fn bindgen_test_layout_MusicPlayerRemoteToFront_t() {
12905    assert_eq!(
12906        ::std::mem::size_of::<MusicPlayerRemoteToFront_t>(),
12907        1usize,
12908        concat!("Size of: ", stringify!(MusicPlayerRemoteToFront_t))
12909    );
12910    assert_eq!(
12911        ::std::mem::align_of::<MusicPlayerRemoteToFront_t>(),
12912        1usize,
12913        concat!("Alignment of ", stringify!(MusicPlayerRemoteToFront_t))
12914    );
12915}
12916#[repr(C)]
12917#[derive(Debug, Copy, Clone)]
12918pub struct MusicPlayerWillQuit_t {
12919    pub _address: u8,
12920}
12921pub const MusicPlayerWillQuit_t_k_iCallback: MusicPlayerWillQuit_t__bindgen_ty_1 =
12922    MusicPlayerWillQuit_t__bindgen_ty_1::k_iCallback;
12923#[repr(u32)]
12924#[non_exhaustive]
12925#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
12926pub enum MusicPlayerWillQuit_t__bindgen_ty_1 {
12927    k_iCallback = 4104,
12928}
12929#[test]
12930fn bindgen_test_layout_MusicPlayerWillQuit_t() {
12931    assert_eq!(
12932        ::std::mem::size_of::<MusicPlayerWillQuit_t>(),
12933        1usize,
12934        concat!("Size of: ", stringify!(MusicPlayerWillQuit_t))
12935    );
12936    assert_eq!(
12937        ::std::mem::align_of::<MusicPlayerWillQuit_t>(),
12938        1usize,
12939        concat!("Alignment of ", stringify!(MusicPlayerWillQuit_t))
12940    );
12941}
12942#[repr(C)]
12943#[derive(Debug, Copy, Clone)]
12944pub struct MusicPlayerWantsPlay_t {
12945    pub _address: u8,
12946}
12947pub const MusicPlayerWantsPlay_t_k_iCallback: MusicPlayerWantsPlay_t__bindgen_ty_1 =
12948    MusicPlayerWantsPlay_t__bindgen_ty_1::k_iCallback;
12949#[repr(u32)]
12950#[non_exhaustive]
12951#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
12952pub enum MusicPlayerWantsPlay_t__bindgen_ty_1 {
12953    k_iCallback = 4105,
12954}
12955#[test]
12956fn bindgen_test_layout_MusicPlayerWantsPlay_t() {
12957    assert_eq!(
12958        ::std::mem::size_of::<MusicPlayerWantsPlay_t>(),
12959        1usize,
12960        concat!("Size of: ", stringify!(MusicPlayerWantsPlay_t))
12961    );
12962    assert_eq!(
12963        ::std::mem::align_of::<MusicPlayerWantsPlay_t>(),
12964        1usize,
12965        concat!("Alignment of ", stringify!(MusicPlayerWantsPlay_t))
12966    );
12967}
12968#[repr(C)]
12969#[derive(Debug, Copy, Clone)]
12970pub struct MusicPlayerWantsPause_t {
12971    pub _address: u8,
12972}
12973pub const MusicPlayerWantsPause_t_k_iCallback: MusicPlayerWantsPause_t__bindgen_ty_1 =
12974    MusicPlayerWantsPause_t__bindgen_ty_1::k_iCallback;
12975#[repr(u32)]
12976#[non_exhaustive]
12977#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
12978pub enum MusicPlayerWantsPause_t__bindgen_ty_1 {
12979    k_iCallback = 4106,
12980}
12981#[test]
12982fn bindgen_test_layout_MusicPlayerWantsPause_t() {
12983    assert_eq!(
12984        ::std::mem::size_of::<MusicPlayerWantsPause_t>(),
12985        1usize,
12986        concat!("Size of: ", stringify!(MusicPlayerWantsPause_t))
12987    );
12988    assert_eq!(
12989        ::std::mem::align_of::<MusicPlayerWantsPause_t>(),
12990        1usize,
12991        concat!("Alignment of ", stringify!(MusicPlayerWantsPause_t))
12992    );
12993}
12994#[repr(C)]
12995#[derive(Debug, Copy, Clone)]
12996pub struct MusicPlayerWantsPlayPrevious_t {
12997    pub _address: u8,
12998}
12999pub const MusicPlayerWantsPlayPrevious_t_k_iCallback: MusicPlayerWantsPlayPrevious_t__bindgen_ty_1 =
13000    MusicPlayerWantsPlayPrevious_t__bindgen_ty_1::k_iCallback;
13001#[repr(u32)]
13002#[non_exhaustive]
13003#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
13004pub enum MusicPlayerWantsPlayPrevious_t__bindgen_ty_1 {
13005    k_iCallback = 4107,
13006}
13007#[test]
13008fn bindgen_test_layout_MusicPlayerWantsPlayPrevious_t() {
13009    assert_eq!(
13010        ::std::mem::size_of::<MusicPlayerWantsPlayPrevious_t>(),
13011        1usize,
13012        concat!("Size of: ", stringify!(MusicPlayerWantsPlayPrevious_t))
13013    );
13014    assert_eq!(
13015        ::std::mem::align_of::<MusicPlayerWantsPlayPrevious_t>(),
13016        1usize,
13017        concat!("Alignment of ", stringify!(MusicPlayerWantsPlayPrevious_t))
13018    );
13019}
13020#[repr(C)]
13021#[derive(Debug, Copy, Clone)]
13022pub struct MusicPlayerWantsPlayNext_t {
13023    pub _address: u8,
13024}
13025pub const MusicPlayerWantsPlayNext_t_k_iCallback: MusicPlayerWantsPlayNext_t__bindgen_ty_1 =
13026    MusicPlayerWantsPlayNext_t__bindgen_ty_1::k_iCallback;
13027#[repr(u32)]
13028#[non_exhaustive]
13029#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
13030pub enum MusicPlayerWantsPlayNext_t__bindgen_ty_1 {
13031    k_iCallback = 4108,
13032}
13033#[test]
13034fn bindgen_test_layout_MusicPlayerWantsPlayNext_t() {
13035    assert_eq!(
13036        ::std::mem::size_of::<MusicPlayerWantsPlayNext_t>(),
13037        1usize,
13038        concat!("Size of: ", stringify!(MusicPlayerWantsPlayNext_t))
13039    );
13040    assert_eq!(
13041        ::std::mem::align_of::<MusicPlayerWantsPlayNext_t>(),
13042        1usize,
13043        concat!("Alignment of ", stringify!(MusicPlayerWantsPlayNext_t))
13044    );
13045}
13046#[repr(C)]
13047#[derive(Debug, Copy, Clone)]
13048pub struct MusicPlayerWantsShuffled_t {
13049    pub m_bShuffled: bool,
13050}
13051pub const MusicPlayerWantsShuffled_t_k_iCallback: MusicPlayerWantsShuffled_t__bindgen_ty_1 =
13052    MusicPlayerWantsShuffled_t__bindgen_ty_1::k_iCallback;
13053#[repr(u32)]
13054#[non_exhaustive]
13055#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
13056pub enum MusicPlayerWantsShuffled_t__bindgen_ty_1 {
13057    k_iCallback = 4109,
13058}
13059#[test]
13060fn bindgen_test_layout_MusicPlayerWantsShuffled_t() {
13061    const UNINIT: ::std::mem::MaybeUninit<MusicPlayerWantsShuffled_t> =
13062        ::std::mem::MaybeUninit::uninit();
13063    let ptr = UNINIT.as_ptr();
13064    assert_eq!(
13065        ::std::mem::size_of::<MusicPlayerWantsShuffled_t>(),
13066        1usize,
13067        concat!("Size of: ", stringify!(MusicPlayerWantsShuffled_t))
13068    );
13069    assert_eq!(
13070        ::std::mem::align_of::<MusicPlayerWantsShuffled_t>(),
13071        1usize,
13072        concat!("Alignment of ", stringify!(MusicPlayerWantsShuffled_t))
13073    );
13074    assert_eq!(
13075        unsafe { ::std::ptr::addr_of!((*ptr).m_bShuffled) as usize - ptr as usize },
13076        0usize,
13077        concat!(
13078            "Offset of field: ",
13079            stringify!(MusicPlayerWantsShuffled_t),
13080            "::",
13081            stringify!(m_bShuffled)
13082        )
13083    );
13084}
13085#[repr(C)]
13086#[derive(Debug, Copy, Clone)]
13087pub struct MusicPlayerWantsLooped_t {
13088    pub m_bLooped: bool,
13089}
13090pub const MusicPlayerWantsLooped_t_k_iCallback: MusicPlayerWantsLooped_t__bindgen_ty_1 =
13091    MusicPlayerWantsLooped_t__bindgen_ty_1::k_iCallback;
13092#[repr(u32)]
13093#[non_exhaustive]
13094#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
13095pub enum MusicPlayerWantsLooped_t__bindgen_ty_1 {
13096    k_iCallback = 4110,
13097}
13098#[test]
13099fn bindgen_test_layout_MusicPlayerWantsLooped_t() {
13100    const UNINIT: ::std::mem::MaybeUninit<MusicPlayerWantsLooped_t> =
13101        ::std::mem::MaybeUninit::uninit();
13102    let ptr = UNINIT.as_ptr();
13103    assert_eq!(
13104        ::std::mem::size_of::<MusicPlayerWantsLooped_t>(),
13105        1usize,
13106        concat!("Size of: ", stringify!(MusicPlayerWantsLooped_t))
13107    );
13108    assert_eq!(
13109        ::std::mem::align_of::<MusicPlayerWantsLooped_t>(),
13110        1usize,
13111        concat!("Alignment of ", stringify!(MusicPlayerWantsLooped_t))
13112    );
13113    assert_eq!(
13114        unsafe { ::std::ptr::addr_of!((*ptr).m_bLooped) as usize - ptr as usize },
13115        0usize,
13116        concat!(
13117            "Offset of field: ",
13118            stringify!(MusicPlayerWantsLooped_t),
13119            "::",
13120            stringify!(m_bLooped)
13121        )
13122    );
13123}
13124#[repr(C)]
13125#[derive(Debug, Copy, Clone)]
13126pub struct MusicPlayerWantsVolume_t {
13127    pub m_flNewVolume: f32,
13128}
13129pub const MusicPlayerWantsVolume_t_k_iCallback: MusicPlayerWantsVolume_t__bindgen_ty_1 =
13130    MusicPlayerWantsVolume_t__bindgen_ty_1::k_iCallback;
13131#[repr(u32)]
13132#[non_exhaustive]
13133#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
13134pub enum MusicPlayerWantsVolume_t__bindgen_ty_1 {
13135    k_iCallback = 4011,
13136}
13137#[test]
13138fn bindgen_test_layout_MusicPlayerWantsVolume_t() {
13139    const UNINIT: ::std::mem::MaybeUninit<MusicPlayerWantsVolume_t> =
13140        ::std::mem::MaybeUninit::uninit();
13141    let ptr = UNINIT.as_ptr();
13142    assert_eq!(
13143        ::std::mem::size_of::<MusicPlayerWantsVolume_t>(),
13144        4usize,
13145        concat!("Size of: ", stringify!(MusicPlayerWantsVolume_t))
13146    );
13147    assert_eq!(
13148        ::std::mem::align_of::<MusicPlayerWantsVolume_t>(),
13149        4usize,
13150        concat!("Alignment of ", stringify!(MusicPlayerWantsVolume_t))
13151    );
13152    assert_eq!(
13153        unsafe { ::std::ptr::addr_of!((*ptr).m_flNewVolume) as usize - ptr as usize },
13154        0usize,
13155        concat!(
13156            "Offset of field: ",
13157            stringify!(MusicPlayerWantsVolume_t),
13158            "::",
13159            stringify!(m_flNewVolume)
13160        )
13161    );
13162}
13163#[repr(C)]
13164#[derive(Debug, Copy, Clone)]
13165pub struct MusicPlayerSelectsQueueEntry_t {
13166    pub nID: ::std::os::raw::c_int,
13167}
13168pub const MusicPlayerSelectsQueueEntry_t_k_iCallback: MusicPlayerSelectsQueueEntry_t__bindgen_ty_1 =
13169    MusicPlayerSelectsQueueEntry_t__bindgen_ty_1::k_iCallback;
13170#[repr(u32)]
13171#[non_exhaustive]
13172#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
13173pub enum MusicPlayerSelectsQueueEntry_t__bindgen_ty_1 {
13174    k_iCallback = 4012,
13175}
13176#[test]
13177fn bindgen_test_layout_MusicPlayerSelectsQueueEntry_t() {
13178    const UNINIT: ::std::mem::MaybeUninit<MusicPlayerSelectsQueueEntry_t> =
13179        ::std::mem::MaybeUninit::uninit();
13180    let ptr = UNINIT.as_ptr();
13181    assert_eq!(
13182        ::std::mem::size_of::<MusicPlayerSelectsQueueEntry_t>(),
13183        4usize,
13184        concat!("Size of: ", stringify!(MusicPlayerSelectsQueueEntry_t))
13185    );
13186    assert_eq!(
13187        ::std::mem::align_of::<MusicPlayerSelectsQueueEntry_t>(),
13188        4usize,
13189        concat!("Alignment of ", stringify!(MusicPlayerSelectsQueueEntry_t))
13190    );
13191    assert_eq!(
13192        unsafe { ::std::ptr::addr_of!((*ptr).nID) as usize - ptr as usize },
13193        0usize,
13194        concat!(
13195            "Offset of field: ",
13196            stringify!(MusicPlayerSelectsQueueEntry_t),
13197            "::",
13198            stringify!(nID)
13199        )
13200    );
13201}
13202#[repr(C)]
13203#[derive(Debug, Copy, Clone)]
13204pub struct MusicPlayerSelectsPlaylistEntry_t {
13205    pub nID: ::std::os::raw::c_int,
13206}
13207pub const MusicPlayerSelectsPlaylistEntry_t_k_iCallback:
13208    MusicPlayerSelectsPlaylistEntry_t__bindgen_ty_1 =
13209    MusicPlayerSelectsPlaylistEntry_t__bindgen_ty_1::k_iCallback;
13210#[repr(u32)]
13211#[non_exhaustive]
13212#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
13213pub enum MusicPlayerSelectsPlaylistEntry_t__bindgen_ty_1 {
13214    k_iCallback = 4013,
13215}
13216#[test]
13217fn bindgen_test_layout_MusicPlayerSelectsPlaylistEntry_t() {
13218    const UNINIT: ::std::mem::MaybeUninit<MusicPlayerSelectsPlaylistEntry_t> =
13219        ::std::mem::MaybeUninit::uninit();
13220    let ptr = UNINIT.as_ptr();
13221    assert_eq!(
13222        ::std::mem::size_of::<MusicPlayerSelectsPlaylistEntry_t>(),
13223        4usize,
13224        concat!("Size of: ", stringify!(MusicPlayerSelectsPlaylistEntry_t))
13225    );
13226    assert_eq!(
13227        ::std::mem::align_of::<MusicPlayerSelectsPlaylistEntry_t>(),
13228        4usize,
13229        concat!(
13230            "Alignment of ",
13231            stringify!(MusicPlayerSelectsPlaylistEntry_t)
13232        )
13233    );
13234    assert_eq!(
13235        unsafe { ::std::ptr::addr_of!((*ptr).nID) as usize - ptr as usize },
13236        0usize,
13237        concat!(
13238            "Offset of field: ",
13239            stringify!(MusicPlayerSelectsPlaylistEntry_t),
13240            "::",
13241            stringify!(nID)
13242        )
13243    );
13244}
13245#[repr(C)]
13246#[derive(Debug, Copy, Clone)]
13247pub struct MusicPlayerWantsPlayingRepeatStatus_t {
13248    pub m_nPlayingRepeatStatus: ::std::os::raw::c_int,
13249}
13250pub const MusicPlayerWantsPlayingRepeatStatus_t_k_iCallback:
13251    MusicPlayerWantsPlayingRepeatStatus_t__bindgen_ty_1 =
13252    MusicPlayerWantsPlayingRepeatStatus_t__bindgen_ty_1::k_iCallback;
13253#[repr(u32)]
13254#[non_exhaustive]
13255#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
13256pub enum MusicPlayerWantsPlayingRepeatStatus_t__bindgen_ty_1 {
13257    k_iCallback = 4114,
13258}
13259#[test]
13260fn bindgen_test_layout_MusicPlayerWantsPlayingRepeatStatus_t() {
13261    const UNINIT: ::std::mem::MaybeUninit<MusicPlayerWantsPlayingRepeatStatus_t> =
13262        ::std::mem::MaybeUninit::uninit();
13263    let ptr = UNINIT.as_ptr();
13264    assert_eq!(
13265        ::std::mem::size_of::<MusicPlayerWantsPlayingRepeatStatus_t>(),
13266        4usize,
13267        concat!(
13268            "Size of: ",
13269            stringify!(MusicPlayerWantsPlayingRepeatStatus_t)
13270        )
13271    );
13272    assert_eq!(
13273        ::std::mem::align_of::<MusicPlayerWantsPlayingRepeatStatus_t>(),
13274        4usize,
13275        concat!(
13276            "Alignment of ",
13277            stringify!(MusicPlayerWantsPlayingRepeatStatus_t)
13278        )
13279    );
13280    assert_eq!(
13281        unsafe { ::std::ptr::addr_of!((*ptr).m_nPlayingRepeatStatus) as usize - ptr as usize },
13282        0usize,
13283        concat!(
13284            "Offset of field: ",
13285            stringify!(MusicPlayerWantsPlayingRepeatStatus_t),
13286            "::",
13287            stringify!(m_nPlayingRepeatStatus)
13288        )
13289    );
13290}
13291#[repr(u32)]
13292#[non_exhaustive]
13293#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
13294pub enum EHTTPMethod {
13295    k_EHTTPMethodInvalid = 0,
13296    k_EHTTPMethodGET = 1,
13297    k_EHTTPMethodHEAD = 2,
13298    k_EHTTPMethodPOST = 3,
13299    k_EHTTPMethodPUT = 4,
13300    k_EHTTPMethodDELETE = 5,
13301    k_EHTTPMethodOPTIONS = 6,
13302    k_EHTTPMethodPATCH = 7,
13303}
13304#[repr(u32)]
13305#[non_exhaustive]
13306#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
13307pub enum EHTTPStatusCode {
13308    k_EHTTPStatusCodeInvalid = 0,
13309    k_EHTTPStatusCode100Continue = 100,
13310    k_EHTTPStatusCode101SwitchingProtocols = 101,
13311    k_EHTTPStatusCode200OK = 200,
13312    k_EHTTPStatusCode201Created = 201,
13313    k_EHTTPStatusCode202Accepted = 202,
13314    k_EHTTPStatusCode203NonAuthoritative = 203,
13315    k_EHTTPStatusCode204NoContent = 204,
13316    k_EHTTPStatusCode205ResetContent = 205,
13317    k_EHTTPStatusCode206PartialContent = 206,
13318    k_EHTTPStatusCode300MultipleChoices = 300,
13319    k_EHTTPStatusCode301MovedPermanently = 301,
13320    k_EHTTPStatusCode302Found = 302,
13321    k_EHTTPStatusCode303SeeOther = 303,
13322    k_EHTTPStatusCode304NotModified = 304,
13323    k_EHTTPStatusCode305UseProxy = 305,
13324    k_EHTTPStatusCode307TemporaryRedirect = 307,
13325    k_EHTTPStatusCode308PermanentRedirect = 308,
13326    k_EHTTPStatusCode400BadRequest = 400,
13327    k_EHTTPStatusCode401Unauthorized = 401,
13328    k_EHTTPStatusCode402PaymentRequired = 402,
13329    k_EHTTPStatusCode403Forbidden = 403,
13330    k_EHTTPStatusCode404NotFound = 404,
13331    k_EHTTPStatusCode405MethodNotAllowed = 405,
13332    k_EHTTPStatusCode406NotAcceptable = 406,
13333    k_EHTTPStatusCode407ProxyAuthRequired = 407,
13334    k_EHTTPStatusCode408RequestTimeout = 408,
13335    k_EHTTPStatusCode409Conflict = 409,
13336    k_EHTTPStatusCode410Gone = 410,
13337    k_EHTTPStatusCode411LengthRequired = 411,
13338    k_EHTTPStatusCode412PreconditionFailed = 412,
13339    k_EHTTPStatusCode413RequestEntityTooLarge = 413,
13340    k_EHTTPStatusCode414RequestURITooLong = 414,
13341    k_EHTTPStatusCode415UnsupportedMediaType = 415,
13342    k_EHTTPStatusCode416RequestedRangeNotSatisfiable = 416,
13343    k_EHTTPStatusCode417ExpectationFailed = 417,
13344    k_EHTTPStatusCode4xxUnknown = 418,
13345    k_EHTTPStatusCode429TooManyRequests = 429,
13346    k_EHTTPStatusCode444ConnectionClosed = 444,
13347    k_EHTTPStatusCode500InternalServerError = 500,
13348    k_EHTTPStatusCode501NotImplemented = 501,
13349    k_EHTTPStatusCode502BadGateway = 502,
13350    k_EHTTPStatusCode503ServiceUnavailable = 503,
13351    k_EHTTPStatusCode504GatewayTimeout = 504,
13352    k_EHTTPStatusCode505HTTPVersionNotSupported = 505,
13353    k_EHTTPStatusCode5xxUnknown = 599,
13354}
13355pub type HTTPRequestHandle = uint32;
13356pub type HTTPCookieContainerHandle = uint32;
13357#[repr(C)]
13358pub struct ISteamHTTP__bindgen_vtable(::std::os::raw::c_void);
13359#[repr(C)]
13360#[derive(Debug, Copy, Clone)]
13361pub struct ISteamHTTP {
13362    pub vtable_: *const ISteamHTTP__bindgen_vtable,
13363}
13364#[test]
13365fn bindgen_test_layout_ISteamHTTP() {
13366    assert_eq!(
13367        ::std::mem::size_of::<ISteamHTTP>(),
13368        8usize,
13369        concat!("Size of: ", stringify!(ISteamHTTP))
13370    );
13371    assert_eq!(
13372        ::std::mem::align_of::<ISteamHTTP>(),
13373        8usize,
13374        concat!("Alignment of ", stringify!(ISteamHTTP))
13375    );
13376}
13377#[repr(C, packed(4))]
13378#[derive(Debug, Copy, Clone)]
13379pub struct HTTPRequestCompleted_t {
13380    pub m_hRequest: HTTPRequestHandle,
13381    pub m_ulContextValue: uint64,
13382    pub m_bRequestSuccessful: bool,
13383    pub m_eStatusCode: EHTTPStatusCode,
13384    pub m_unBodySize: uint32,
13385}
13386pub const HTTPRequestCompleted_t_k_iCallback: HTTPRequestCompleted_t__bindgen_ty_1 =
13387    HTTPRequestCompleted_t__bindgen_ty_1::k_iCallback;
13388#[repr(u32)]
13389#[non_exhaustive]
13390#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
13391pub enum HTTPRequestCompleted_t__bindgen_ty_1 {
13392    k_iCallback = 2101,
13393}
13394#[test]
13395fn bindgen_test_layout_HTTPRequestCompleted_t() {
13396    const UNINIT: ::std::mem::MaybeUninit<HTTPRequestCompleted_t> =
13397        ::std::mem::MaybeUninit::uninit();
13398    let ptr = UNINIT.as_ptr();
13399    assert_eq!(
13400        ::std::mem::size_of::<HTTPRequestCompleted_t>(),
13401        24usize,
13402        concat!("Size of: ", stringify!(HTTPRequestCompleted_t))
13403    );
13404    assert_eq!(
13405        ::std::mem::align_of::<HTTPRequestCompleted_t>(),
13406        4usize,
13407        concat!("Alignment of ", stringify!(HTTPRequestCompleted_t))
13408    );
13409    assert_eq!(
13410        unsafe { ::std::ptr::addr_of!((*ptr).m_hRequest) as usize - ptr as usize },
13411        0usize,
13412        concat!(
13413            "Offset of field: ",
13414            stringify!(HTTPRequestCompleted_t),
13415            "::",
13416            stringify!(m_hRequest)
13417        )
13418    );
13419    assert_eq!(
13420        unsafe { ::std::ptr::addr_of!((*ptr).m_ulContextValue) as usize - ptr as usize },
13421        4usize,
13422        concat!(
13423            "Offset of field: ",
13424            stringify!(HTTPRequestCompleted_t),
13425            "::",
13426            stringify!(m_ulContextValue)
13427        )
13428    );
13429    assert_eq!(
13430        unsafe { ::std::ptr::addr_of!((*ptr).m_bRequestSuccessful) as usize - ptr as usize },
13431        12usize,
13432        concat!(
13433            "Offset of field: ",
13434            stringify!(HTTPRequestCompleted_t),
13435            "::",
13436            stringify!(m_bRequestSuccessful)
13437        )
13438    );
13439    assert_eq!(
13440        unsafe { ::std::ptr::addr_of!((*ptr).m_eStatusCode) as usize - ptr as usize },
13441        16usize,
13442        concat!(
13443            "Offset of field: ",
13444            stringify!(HTTPRequestCompleted_t),
13445            "::",
13446            stringify!(m_eStatusCode)
13447        )
13448    );
13449    assert_eq!(
13450        unsafe { ::std::ptr::addr_of!((*ptr).m_unBodySize) as usize - ptr as usize },
13451        20usize,
13452        concat!(
13453            "Offset of field: ",
13454            stringify!(HTTPRequestCompleted_t),
13455            "::",
13456            stringify!(m_unBodySize)
13457        )
13458    );
13459}
13460#[repr(C, packed(4))]
13461#[derive(Debug, Copy, Clone)]
13462pub struct HTTPRequestHeadersReceived_t {
13463    pub m_hRequest: HTTPRequestHandle,
13464    pub m_ulContextValue: uint64,
13465}
13466pub const HTTPRequestHeadersReceived_t_k_iCallback: HTTPRequestHeadersReceived_t__bindgen_ty_1 =
13467    HTTPRequestHeadersReceived_t__bindgen_ty_1::k_iCallback;
13468#[repr(u32)]
13469#[non_exhaustive]
13470#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
13471pub enum HTTPRequestHeadersReceived_t__bindgen_ty_1 {
13472    k_iCallback = 2102,
13473}
13474#[test]
13475fn bindgen_test_layout_HTTPRequestHeadersReceived_t() {
13476    const UNINIT: ::std::mem::MaybeUninit<HTTPRequestHeadersReceived_t> =
13477        ::std::mem::MaybeUninit::uninit();
13478    let ptr = UNINIT.as_ptr();
13479    assert_eq!(
13480        ::std::mem::size_of::<HTTPRequestHeadersReceived_t>(),
13481        12usize,
13482        concat!("Size of: ", stringify!(HTTPRequestHeadersReceived_t))
13483    );
13484    assert_eq!(
13485        ::std::mem::align_of::<HTTPRequestHeadersReceived_t>(),
13486        4usize,
13487        concat!("Alignment of ", stringify!(HTTPRequestHeadersReceived_t))
13488    );
13489    assert_eq!(
13490        unsafe { ::std::ptr::addr_of!((*ptr).m_hRequest) as usize - ptr as usize },
13491        0usize,
13492        concat!(
13493            "Offset of field: ",
13494            stringify!(HTTPRequestHeadersReceived_t),
13495            "::",
13496            stringify!(m_hRequest)
13497        )
13498    );
13499    assert_eq!(
13500        unsafe { ::std::ptr::addr_of!((*ptr).m_ulContextValue) as usize - ptr as usize },
13501        4usize,
13502        concat!(
13503            "Offset of field: ",
13504            stringify!(HTTPRequestHeadersReceived_t),
13505            "::",
13506            stringify!(m_ulContextValue)
13507        )
13508    );
13509}
13510#[repr(C, packed(4))]
13511#[derive(Debug, Copy, Clone)]
13512pub struct HTTPRequestDataReceived_t {
13513    pub m_hRequest: HTTPRequestHandle,
13514    pub m_ulContextValue: uint64,
13515    pub m_cOffset: uint32,
13516    pub m_cBytesReceived: uint32,
13517}
13518pub const HTTPRequestDataReceived_t_k_iCallback: HTTPRequestDataReceived_t__bindgen_ty_1 =
13519    HTTPRequestDataReceived_t__bindgen_ty_1::k_iCallback;
13520#[repr(u32)]
13521#[non_exhaustive]
13522#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
13523pub enum HTTPRequestDataReceived_t__bindgen_ty_1 {
13524    k_iCallback = 2103,
13525}
13526#[test]
13527fn bindgen_test_layout_HTTPRequestDataReceived_t() {
13528    const UNINIT: ::std::mem::MaybeUninit<HTTPRequestDataReceived_t> =
13529        ::std::mem::MaybeUninit::uninit();
13530    let ptr = UNINIT.as_ptr();
13531    assert_eq!(
13532        ::std::mem::size_of::<HTTPRequestDataReceived_t>(),
13533        20usize,
13534        concat!("Size of: ", stringify!(HTTPRequestDataReceived_t))
13535    );
13536    assert_eq!(
13537        ::std::mem::align_of::<HTTPRequestDataReceived_t>(),
13538        4usize,
13539        concat!("Alignment of ", stringify!(HTTPRequestDataReceived_t))
13540    );
13541    assert_eq!(
13542        unsafe { ::std::ptr::addr_of!((*ptr).m_hRequest) as usize - ptr as usize },
13543        0usize,
13544        concat!(
13545            "Offset of field: ",
13546            stringify!(HTTPRequestDataReceived_t),
13547            "::",
13548            stringify!(m_hRequest)
13549        )
13550    );
13551    assert_eq!(
13552        unsafe { ::std::ptr::addr_of!((*ptr).m_ulContextValue) as usize - ptr as usize },
13553        4usize,
13554        concat!(
13555            "Offset of field: ",
13556            stringify!(HTTPRequestDataReceived_t),
13557            "::",
13558            stringify!(m_ulContextValue)
13559        )
13560    );
13561    assert_eq!(
13562        unsafe { ::std::ptr::addr_of!((*ptr).m_cOffset) as usize - ptr as usize },
13563        12usize,
13564        concat!(
13565            "Offset of field: ",
13566            stringify!(HTTPRequestDataReceived_t),
13567            "::",
13568            stringify!(m_cOffset)
13569        )
13570    );
13571    assert_eq!(
13572        unsafe { ::std::ptr::addr_of!((*ptr).m_cBytesReceived) as usize - ptr as usize },
13573        16usize,
13574        concat!(
13575            "Offset of field: ",
13576            stringify!(HTTPRequestDataReceived_t),
13577            "::",
13578            stringify!(m_cBytesReceived)
13579        )
13580    );
13581}
13582#[repr(u32)]
13583#[non_exhaustive]
13584#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
13585pub enum EInputSourceMode {
13586    k_EInputSourceMode_None = 0,
13587    k_EInputSourceMode_Dpad = 1,
13588    k_EInputSourceMode_Buttons = 2,
13589    k_EInputSourceMode_FourButtons = 3,
13590    k_EInputSourceMode_AbsoluteMouse = 4,
13591    k_EInputSourceMode_RelativeMouse = 5,
13592    k_EInputSourceMode_JoystickMove = 6,
13593    k_EInputSourceMode_JoystickMouse = 7,
13594    k_EInputSourceMode_JoystickCamera = 8,
13595    k_EInputSourceMode_ScrollWheel = 9,
13596    k_EInputSourceMode_Trigger = 10,
13597    k_EInputSourceMode_TouchMenu = 11,
13598    k_EInputSourceMode_MouseJoystick = 12,
13599    k_EInputSourceMode_MouseRegion = 13,
13600    k_EInputSourceMode_RadialMenu = 14,
13601    k_EInputSourceMode_SingleButton = 15,
13602    k_EInputSourceMode_Switches = 16,
13603}
13604#[repr(u32)]
13605#[non_exhaustive]
13606#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
13607pub enum EInputActionOrigin {
13608    k_EInputActionOrigin_None = 0,
13609    k_EInputActionOrigin_SteamController_A = 1,
13610    k_EInputActionOrigin_SteamController_B = 2,
13611    k_EInputActionOrigin_SteamController_X = 3,
13612    k_EInputActionOrigin_SteamController_Y = 4,
13613    k_EInputActionOrigin_SteamController_LeftBumper = 5,
13614    k_EInputActionOrigin_SteamController_RightBumper = 6,
13615    k_EInputActionOrigin_SteamController_LeftGrip = 7,
13616    k_EInputActionOrigin_SteamController_RightGrip = 8,
13617    k_EInputActionOrigin_SteamController_Start = 9,
13618    k_EInputActionOrigin_SteamController_Back = 10,
13619    k_EInputActionOrigin_SteamController_LeftPad_Touch = 11,
13620    k_EInputActionOrigin_SteamController_LeftPad_Swipe = 12,
13621    k_EInputActionOrigin_SteamController_LeftPad_Click = 13,
13622    k_EInputActionOrigin_SteamController_LeftPad_DPadNorth = 14,
13623    k_EInputActionOrigin_SteamController_LeftPad_DPadSouth = 15,
13624    k_EInputActionOrigin_SteamController_LeftPad_DPadWest = 16,
13625    k_EInputActionOrigin_SteamController_LeftPad_DPadEast = 17,
13626    k_EInputActionOrigin_SteamController_RightPad_Touch = 18,
13627    k_EInputActionOrigin_SteamController_RightPad_Swipe = 19,
13628    k_EInputActionOrigin_SteamController_RightPad_Click = 20,
13629    k_EInputActionOrigin_SteamController_RightPad_DPadNorth = 21,
13630    k_EInputActionOrigin_SteamController_RightPad_DPadSouth = 22,
13631    k_EInputActionOrigin_SteamController_RightPad_DPadWest = 23,
13632    k_EInputActionOrigin_SteamController_RightPad_DPadEast = 24,
13633    k_EInputActionOrigin_SteamController_LeftTrigger_Pull = 25,
13634    k_EInputActionOrigin_SteamController_LeftTrigger_Click = 26,
13635    k_EInputActionOrigin_SteamController_RightTrigger_Pull = 27,
13636    k_EInputActionOrigin_SteamController_RightTrigger_Click = 28,
13637    k_EInputActionOrigin_SteamController_LeftStick_Move = 29,
13638    k_EInputActionOrigin_SteamController_LeftStick_Click = 30,
13639    k_EInputActionOrigin_SteamController_LeftStick_DPadNorth = 31,
13640    k_EInputActionOrigin_SteamController_LeftStick_DPadSouth = 32,
13641    k_EInputActionOrigin_SteamController_LeftStick_DPadWest = 33,
13642    k_EInputActionOrigin_SteamController_LeftStick_DPadEast = 34,
13643    k_EInputActionOrigin_SteamController_Gyro_Move = 35,
13644    k_EInputActionOrigin_SteamController_Gyro_Pitch = 36,
13645    k_EInputActionOrigin_SteamController_Gyro_Yaw = 37,
13646    k_EInputActionOrigin_SteamController_Gyro_Roll = 38,
13647    k_EInputActionOrigin_SteamController_Reserved0 = 39,
13648    k_EInputActionOrigin_SteamController_Reserved1 = 40,
13649    k_EInputActionOrigin_SteamController_Reserved2 = 41,
13650    k_EInputActionOrigin_SteamController_Reserved3 = 42,
13651    k_EInputActionOrigin_SteamController_Reserved4 = 43,
13652    k_EInputActionOrigin_SteamController_Reserved5 = 44,
13653    k_EInputActionOrigin_SteamController_Reserved6 = 45,
13654    k_EInputActionOrigin_SteamController_Reserved7 = 46,
13655    k_EInputActionOrigin_SteamController_Reserved8 = 47,
13656    k_EInputActionOrigin_SteamController_Reserved9 = 48,
13657    k_EInputActionOrigin_SteamController_Reserved10 = 49,
13658    k_EInputActionOrigin_PS4_X = 50,
13659    k_EInputActionOrigin_PS4_Circle = 51,
13660    k_EInputActionOrigin_PS4_Triangle = 52,
13661    k_EInputActionOrigin_PS4_Square = 53,
13662    k_EInputActionOrigin_PS4_LeftBumper = 54,
13663    k_EInputActionOrigin_PS4_RightBumper = 55,
13664    k_EInputActionOrigin_PS4_Options = 56,
13665    k_EInputActionOrigin_PS4_Share = 57,
13666    k_EInputActionOrigin_PS4_LeftPad_Touch = 58,
13667    k_EInputActionOrigin_PS4_LeftPad_Swipe = 59,
13668    k_EInputActionOrigin_PS4_LeftPad_Click = 60,
13669    k_EInputActionOrigin_PS4_LeftPad_DPadNorth = 61,
13670    k_EInputActionOrigin_PS4_LeftPad_DPadSouth = 62,
13671    k_EInputActionOrigin_PS4_LeftPad_DPadWest = 63,
13672    k_EInputActionOrigin_PS4_LeftPad_DPadEast = 64,
13673    k_EInputActionOrigin_PS4_RightPad_Touch = 65,
13674    k_EInputActionOrigin_PS4_RightPad_Swipe = 66,
13675    k_EInputActionOrigin_PS4_RightPad_Click = 67,
13676    k_EInputActionOrigin_PS4_RightPad_DPadNorth = 68,
13677    k_EInputActionOrigin_PS4_RightPad_DPadSouth = 69,
13678    k_EInputActionOrigin_PS4_RightPad_DPadWest = 70,
13679    k_EInputActionOrigin_PS4_RightPad_DPadEast = 71,
13680    k_EInputActionOrigin_PS4_CenterPad_Touch = 72,
13681    k_EInputActionOrigin_PS4_CenterPad_Swipe = 73,
13682    k_EInputActionOrigin_PS4_CenterPad_Click = 74,
13683    k_EInputActionOrigin_PS4_CenterPad_DPadNorth = 75,
13684    k_EInputActionOrigin_PS4_CenterPad_DPadSouth = 76,
13685    k_EInputActionOrigin_PS4_CenterPad_DPadWest = 77,
13686    k_EInputActionOrigin_PS4_CenterPad_DPadEast = 78,
13687    k_EInputActionOrigin_PS4_LeftTrigger_Pull = 79,
13688    k_EInputActionOrigin_PS4_LeftTrigger_Click = 80,
13689    k_EInputActionOrigin_PS4_RightTrigger_Pull = 81,
13690    k_EInputActionOrigin_PS4_RightTrigger_Click = 82,
13691    k_EInputActionOrigin_PS4_LeftStick_Move = 83,
13692    k_EInputActionOrigin_PS4_LeftStick_Click = 84,
13693    k_EInputActionOrigin_PS4_LeftStick_DPadNorth = 85,
13694    k_EInputActionOrigin_PS4_LeftStick_DPadSouth = 86,
13695    k_EInputActionOrigin_PS4_LeftStick_DPadWest = 87,
13696    k_EInputActionOrigin_PS4_LeftStick_DPadEast = 88,
13697    k_EInputActionOrigin_PS4_RightStick_Move = 89,
13698    k_EInputActionOrigin_PS4_RightStick_Click = 90,
13699    k_EInputActionOrigin_PS4_RightStick_DPadNorth = 91,
13700    k_EInputActionOrigin_PS4_RightStick_DPadSouth = 92,
13701    k_EInputActionOrigin_PS4_RightStick_DPadWest = 93,
13702    k_EInputActionOrigin_PS4_RightStick_DPadEast = 94,
13703    k_EInputActionOrigin_PS4_DPad_North = 95,
13704    k_EInputActionOrigin_PS4_DPad_South = 96,
13705    k_EInputActionOrigin_PS4_DPad_West = 97,
13706    k_EInputActionOrigin_PS4_DPad_East = 98,
13707    k_EInputActionOrigin_PS4_Gyro_Move = 99,
13708    k_EInputActionOrigin_PS4_Gyro_Pitch = 100,
13709    k_EInputActionOrigin_PS4_Gyro_Yaw = 101,
13710    k_EInputActionOrigin_PS4_Gyro_Roll = 102,
13711    k_EInputActionOrigin_PS4_DPad_Move = 103,
13712    k_EInputActionOrigin_PS4_Reserved1 = 104,
13713    k_EInputActionOrigin_PS4_Reserved2 = 105,
13714    k_EInputActionOrigin_PS4_Reserved3 = 106,
13715    k_EInputActionOrigin_PS4_Reserved4 = 107,
13716    k_EInputActionOrigin_PS4_Reserved5 = 108,
13717    k_EInputActionOrigin_PS4_Reserved6 = 109,
13718    k_EInputActionOrigin_PS4_Reserved7 = 110,
13719    k_EInputActionOrigin_PS4_Reserved8 = 111,
13720    k_EInputActionOrigin_PS4_Reserved9 = 112,
13721    k_EInputActionOrigin_PS4_Reserved10 = 113,
13722    k_EInputActionOrigin_XBoxOne_A = 114,
13723    k_EInputActionOrigin_XBoxOne_B = 115,
13724    k_EInputActionOrigin_XBoxOne_X = 116,
13725    k_EInputActionOrigin_XBoxOne_Y = 117,
13726    k_EInputActionOrigin_XBoxOne_LeftBumper = 118,
13727    k_EInputActionOrigin_XBoxOne_RightBumper = 119,
13728    k_EInputActionOrigin_XBoxOne_Menu = 120,
13729    k_EInputActionOrigin_XBoxOne_View = 121,
13730    k_EInputActionOrigin_XBoxOne_LeftTrigger_Pull = 122,
13731    k_EInputActionOrigin_XBoxOne_LeftTrigger_Click = 123,
13732    k_EInputActionOrigin_XBoxOne_RightTrigger_Pull = 124,
13733    k_EInputActionOrigin_XBoxOne_RightTrigger_Click = 125,
13734    k_EInputActionOrigin_XBoxOne_LeftStick_Move = 126,
13735    k_EInputActionOrigin_XBoxOne_LeftStick_Click = 127,
13736    k_EInputActionOrigin_XBoxOne_LeftStick_DPadNorth = 128,
13737    k_EInputActionOrigin_XBoxOne_LeftStick_DPadSouth = 129,
13738    k_EInputActionOrigin_XBoxOne_LeftStick_DPadWest = 130,
13739    k_EInputActionOrigin_XBoxOne_LeftStick_DPadEast = 131,
13740    k_EInputActionOrigin_XBoxOne_RightStick_Move = 132,
13741    k_EInputActionOrigin_XBoxOne_RightStick_Click = 133,
13742    k_EInputActionOrigin_XBoxOne_RightStick_DPadNorth = 134,
13743    k_EInputActionOrigin_XBoxOne_RightStick_DPadSouth = 135,
13744    k_EInputActionOrigin_XBoxOne_RightStick_DPadWest = 136,
13745    k_EInputActionOrigin_XBoxOne_RightStick_DPadEast = 137,
13746    k_EInputActionOrigin_XBoxOne_DPad_North = 138,
13747    k_EInputActionOrigin_XBoxOne_DPad_South = 139,
13748    k_EInputActionOrigin_XBoxOne_DPad_West = 140,
13749    k_EInputActionOrigin_XBoxOne_DPad_East = 141,
13750    k_EInputActionOrigin_XBoxOne_DPad_Move = 142,
13751    k_EInputActionOrigin_XBoxOne_LeftGrip_Lower = 143,
13752    k_EInputActionOrigin_XBoxOne_LeftGrip_Upper = 144,
13753    k_EInputActionOrigin_XBoxOne_RightGrip_Lower = 145,
13754    k_EInputActionOrigin_XBoxOne_RightGrip_Upper = 146,
13755    k_EInputActionOrigin_XBoxOne_Share = 147,
13756    k_EInputActionOrigin_XBoxOne_Reserved6 = 148,
13757    k_EInputActionOrigin_XBoxOne_Reserved7 = 149,
13758    k_EInputActionOrigin_XBoxOne_Reserved8 = 150,
13759    k_EInputActionOrigin_XBoxOne_Reserved9 = 151,
13760    k_EInputActionOrigin_XBoxOne_Reserved10 = 152,
13761    k_EInputActionOrigin_XBox360_A = 153,
13762    k_EInputActionOrigin_XBox360_B = 154,
13763    k_EInputActionOrigin_XBox360_X = 155,
13764    k_EInputActionOrigin_XBox360_Y = 156,
13765    k_EInputActionOrigin_XBox360_LeftBumper = 157,
13766    k_EInputActionOrigin_XBox360_RightBumper = 158,
13767    k_EInputActionOrigin_XBox360_Start = 159,
13768    k_EInputActionOrigin_XBox360_Back = 160,
13769    k_EInputActionOrigin_XBox360_LeftTrigger_Pull = 161,
13770    k_EInputActionOrigin_XBox360_LeftTrigger_Click = 162,
13771    k_EInputActionOrigin_XBox360_RightTrigger_Pull = 163,
13772    k_EInputActionOrigin_XBox360_RightTrigger_Click = 164,
13773    k_EInputActionOrigin_XBox360_LeftStick_Move = 165,
13774    k_EInputActionOrigin_XBox360_LeftStick_Click = 166,
13775    k_EInputActionOrigin_XBox360_LeftStick_DPadNorth = 167,
13776    k_EInputActionOrigin_XBox360_LeftStick_DPadSouth = 168,
13777    k_EInputActionOrigin_XBox360_LeftStick_DPadWest = 169,
13778    k_EInputActionOrigin_XBox360_LeftStick_DPadEast = 170,
13779    k_EInputActionOrigin_XBox360_RightStick_Move = 171,
13780    k_EInputActionOrigin_XBox360_RightStick_Click = 172,
13781    k_EInputActionOrigin_XBox360_RightStick_DPadNorth = 173,
13782    k_EInputActionOrigin_XBox360_RightStick_DPadSouth = 174,
13783    k_EInputActionOrigin_XBox360_RightStick_DPadWest = 175,
13784    k_EInputActionOrigin_XBox360_RightStick_DPadEast = 176,
13785    k_EInputActionOrigin_XBox360_DPad_North = 177,
13786    k_EInputActionOrigin_XBox360_DPad_South = 178,
13787    k_EInputActionOrigin_XBox360_DPad_West = 179,
13788    k_EInputActionOrigin_XBox360_DPad_East = 180,
13789    k_EInputActionOrigin_XBox360_DPad_Move = 181,
13790    k_EInputActionOrigin_XBox360_Reserved1 = 182,
13791    k_EInputActionOrigin_XBox360_Reserved2 = 183,
13792    k_EInputActionOrigin_XBox360_Reserved3 = 184,
13793    k_EInputActionOrigin_XBox360_Reserved4 = 185,
13794    k_EInputActionOrigin_XBox360_Reserved5 = 186,
13795    k_EInputActionOrigin_XBox360_Reserved6 = 187,
13796    k_EInputActionOrigin_XBox360_Reserved7 = 188,
13797    k_EInputActionOrigin_XBox360_Reserved8 = 189,
13798    k_EInputActionOrigin_XBox360_Reserved9 = 190,
13799    k_EInputActionOrigin_XBox360_Reserved10 = 191,
13800    k_EInputActionOrigin_Switch_A = 192,
13801    k_EInputActionOrigin_Switch_B = 193,
13802    k_EInputActionOrigin_Switch_X = 194,
13803    k_EInputActionOrigin_Switch_Y = 195,
13804    k_EInputActionOrigin_Switch_LeftBumper = 196,
13805    k_EInputActionOrigin_Switch_RightBumper = 197,
13806    k_EInputActionOrigin_Switch_Plus = 198,
13807    k_EInputActionOrigin_Switch_Minus = 199,
13808    k_EInputActionOrigin_Switch_Capture = 200,
13809    k_EInputActionOrigin_Switch_LeftTrigger_Pull = 201,
13810    k_EInputActionOrigin_Switch_LeftTrigger_Click = 202,
13811    k_EInputActionOrigin_Switch_RightTrigger_Pull = 203,
13812    k_EInputActionOrigin_Switch_RightTrigger_Click = 204,
13813    k_EInputActionOrigin_Switch_LeftStick_Move = 205,
13814    k_EInputActionOrigin_Switch_LeftStick_Click = 206,
13815    k_EInputActionOrigin_Switch_LeftStick_DPadNorth = 207,
13816    k_EInputActionOrigin_Switch_LeftStick_DPadSouth = 208,
13817    k_EInputActionOrigin_Switch_LeftStick_DPadWest = 209,
13818    k_EInputActionOrigin_Switch_LeftStick_DPadEast = 210,
13819    k_EInputActionOrigin_Switch_RightStick_Move = 211,
13820    k_EInputActionOrigin_Switch_RightStick_Click = 212,
13821    k_EInputActionOrigin_Switch_RightStick_DPadNorth = 213,
13822    k_EInputActionOrigin_Switch_RightStick_DPadSouth = 214,
13823    k_EInputActionOrigin_Switch_RightStick_DPadWest = 215,
13824    k_EInputActionOrigin_Switch_RightStick_DPadEast = 216,
13825    k_EInputActionOrigin_Switch_DPad_North = 217,
13826    k_EInputActionOrigin_Switch_DPad_South = 218,
13827    k_EInputActionOrigin_Switch_DPad_West = 219,
13828    k_EInputActionOrigin_Switch_DPad_East = 220,
13829    k_EInputActionOrigin_Switch_ProGyro_Move = 221,
13830    k_EInputActionOrigin_Switch_ProGyro_Pitch = 222,
13831    k_EInputActionOrigin_Switch_ProGyro_Yaw = 223,
13832    k_EInputActionOrigin_Switch_ProGyro_Roll = 224,
13833    k_EInputActionOrigin_Switch_DPad_Move = 225,
13834    k_EInputActionOrigin_Switch_Reserved1 = 226,
13835    k_EInputActionOrigin_Switch_Reserved2 = 227,
13836    k_EInputActionOrigin_Switch_Reserved3 = 228,
13837    k_EInputActionOrigin_Switch_Reserved4 = 229,
13838    k_EInputActionOrigin_Switch_Reserved5 = 230,
13839    k_EInputActionOrigin_Switch_Reserved6 = 231,
13840    k_EInputActionOrigin_Switch_Reserved7 = 232,
13841    k_EInputActionOrigin_Switch_Reserved8 = 233,
13842    k_EInputActionOrigin_Switch_Reserved9 = 234,
13843    k_EInputActionOrigin_Switch_Reserved10 = 235,
13844    k_EInputActionOrigin_Switch_RightGyro_Move = 236,
13845    k_EInputActionOrigin_Switch_RightGyro_Pitch = 237,
13846    k_EInputActionOrigin_Switch_RightGyro_Yaw = 238,
13847    k_EInputActionOrigin_Switch_RightGyro_Roll = 239,
13848    k_EInputActionOrigin_Switch_LeftGyro_Move = 240,
13849    k_EInputActionOrigin_Switch_LeftGyro_Pitch = 241,
13850    k_EInputActionOrigin_Switch_LeftGyro_Yaw = 242,
13851    k_EInputActionOrigin_Switch_LeftGyro_Roll = 243,
13852    k_EInputActionOrigin_Switch_LeftGrip_Lower = 244,
13853    k_EInputActionOrigin_Switch_LeftGrip_Upper = 245,
13854    k_EInputActionOrigin_Switch_RightGrip_Lower = 246,
13855    k_EInputActionOrigin_Switch_RightGrip_Upper = 247,
13856    k_EInputActionOrigin_Switch_JoyConButton_N = 248,
13857    k_EInputActionOrigin_Switch_JoyConButton_E = 249,
13858    k_EInputActionOrigin_Switch_JoyConButton_S = 250,
13859    k_EInputActionOrigin_Switch_JoyConButton_W = 251,
13860    k_EInputActionOrigin_Switch_Reserved15 = 252,
13861    k_EInputActionOrigin_Switch_Reserved16 = 253,
13862    k_EInputActionOrigin_Switch_Reserved17 = 254,
13863    k_EInputActionOrigin_Switch_Reserved18 = 255,
13864    k_EInputActionOrigin_Switch_Reserved19 = 256,
13865    k_EInputActionOrigin_Switch_Reserved20 = 257,
13866    k_EInputActionOrigin_PS5_X = 258,
13867    k_EInputActionOrigin_PS5_Circle = 259,
13868    k_EInputActionOrigin_PS5_Triangle = 260,
13869    k_EInputActionOrigin_PS5_Square = 261,
13870    k_EInputActionOrigin_PS5_LeftBumper = 262,
13871    k_EInputActionOrigin_PS5_RightBumper = 263,
13872    k_EInputActionOrigin_PS5_Option = 264,
13873    k_EInputActionOrigin_PS5_Create = 265,
13874    k_EInputActionOrigin_PS5_Mute = 266,
13875    k_EInputActionOrigin_PS5_LeftPad_Touch = 267,
13876    k_EInputActionOrigin_PS5_LeftPad_Swipe = 268,
13877    k_EInputActionOrigin_PS5_LeftPad_Click = 269,
13878    k_EInputActionOrigin_PS5_LeftPad_DPadNorth = 270,
13879    k_EInputActionOrigin_PS5_LeftPad_DPadSouth = 271,
13880    k_EInputActionOrigin_PS5_LeftPad_DPadWest = 272,
13881    k_EInputActionOrigin_PS5_LeftPad_DPadEast = 273,
13882    k_EInputActionOrigin_PS5_RightPad_Touch = 274,
13883    k_EInputActionOrigin_PS5_RightPad_Swipe = 275,
13884    k_EInputActionOrigin_PS5_RightPad_Click = 276,
13885    k_EInputActionOrigin_PS5_RightPad_DPadNorth = 277,
13886    k_EInputActionOrigin_PS5_RightPad_DPadSouth = 278,
13887    k_EInputActionOrigin_PS5_RightPad_DPadWest = 279,
13888    k_EInputActionOrigin_PS5_RightPad_DPadEast = 280,
13889    k_EInputActionOrigin_PS5_CenterPad_Touch = 281,
13890    k_EInputActionOrigin_PS5_CenterPad_Swipe = 282,
13891    k_EInputActionOrigin_PS5_CenterPad_Click = 283,
13892    k_EInputActionOrigin_PS5_CenterPad_DPadNorth = 284,
13893    k_EInputActionOrigin_PS5_CenterPad_DPadSouth = 285,
13894    k_EInputActionOrigin_PS5_CenterPad_DPadWest = 286,
13895    k_EInputActionOrigin_PS5_CenterPad_DPadEast = 287,
13896    k_EInputActionOrigin_PS5_LeftTrigger_Pull = 288,
13897    k_EInputActionOrigin_PS5_LeftTrigger_Click = 289,
13898    k_EInputActionOrigin_PS5_RightTrigger_Pull = 290,
13899    k_EInputActionOrigin_PS5_RightTrigger_Click = 291,
13900    k_EInputActionOrigin_PS5_LeftStick_Move = 292,
13901    k_EInputActionOrigin_PS5_LeftStick_Click = 293,
13902    k_EInputActionOrigin_PS5_LeftStick_DPadNorth = 294,
13903    k_EInputActionOrigin_PS5_LeftStick_DPadSouth = 295,
13904    k_EInputActionOrigin_PS5_LeftStick_DPadWest = 296,
13905    k_EInputActionOrigin_PS5_LeftStick_DPadEast = 297,
13906    k_EInputActionOrigin_PS5_RightStick_Move = 298,
13907    k_EInputActionOrigin_PS5_RightStick_Click = 299,
13908    k_EInputActionOrigin_PS5_RightStick_DPadNorth = 300,
13909    k_EInputActionOrigin_PS5_RightStick_DPadSouth = 301,
13910    k_EInputActionOrigin_PS5_RightStick_DPadWest = 302,
13911    k_EInputActionOrigin_PS5_RightStick_DPadEast = 303,
13912    k_EInputActionOrigin_PS5_DPad_North = 304,
13913    k_EInputActionOrigin_PS5_DPad_South = 305,
13914    k_EInputActionOrigin_PS5_DPad_West = 306,
13915    k_EInputActionOrigin_PS5_DPad_East = 307,
13916    k_EInputActionOrigin_PS5_Gyro_Move = 308,
13917    k_EInputActionOrigin_PS5_Gyro_Pitch = 309,
13918    k_EInputActionOrigin_PS5_Gyro_Yaw = 310,
13919    k_EInputActionOrigin_PS5_Gyro_Roll = 311,
13920    k_EInputActionOrigin_PS5_DPad_Move = 312,
13921    k_EInputActionOrigin_PS5_LeftGrip = 313,
13922    k_EInputActionOrigin_PS5_RightGrip = 314,
13923    k_EInputActionOrigin_PS5_LeftFn = 315,
13924    k_EInputActionOrigin_PS5_RightFn = 316,
13925    k_EInputActionOrigin_PS5_Reserved5 = 317,
13926    k_EInputActionOrigin_PS5_Reserved6 = 318,
13927    k_EInputActionOrigin_PS5_Reserved7 = 319,
13928    k_EInputActionOrigin_PS5_Reserved8 = 320,
13929    k_EInputActionOrigin_PS5_Reserved9 = 321,
13930    k_EInputActionOrigin_PS5_Reserved10 = 322,
13931    k_EInputActionOrigin_PS5_Reserved11 = 323,
13932    k_EInputActionOrigin_PS5_Reserved12 = 324,
13933    k_EInputActionOrigin_PS5_Reserved13 = 325,
13934    k_EInputActionOrigin_PS5_Reserved14 = 326,
13935    k_EInputActionOrigin_PS5_Reserved15 = 327,
13936    k_EInputActionOrigin_PS5_Reserved16 = 328,
13937    k_EInputActionOrigin_PS5_Reserved17 = 329,
13938    k_EInputActionOrigin_PS5_Reserved18 = 330,
13939    k_EInputActionOrigin_PS5_Reserved19 = 331,
13940    k_EInputActionOrigin_PS5_Reserved20 = 332,
13941    k_EInputActionOrigin_SteamDeck_A = 333,
13942    k_EInputActionOrigin_SteamDeck_B = 334,
13943    k_EInputActionOrigin_SteamDeck_X = 335,
13944    k_EInputActionOrigin_SteamDeck_Y = 336,
13945    k_EInputActionOrigin_SteamDeck_L1 = 337,
13946    k_EInputActionOrigin_SteamDeck_R1 = 338,
13947    k_EInputActionOrigin_SteamDeck_Menu = 339,
13948    k_EInputActionOrigin_SteamDeck_View = 340,
13949    k_EInputActionOrigin_SteamDeck_LeftPad_Touch = 341,
13950    k_EInputActionOrigin_SteamDeck_LeftPad_Swipe = 342,
13951    k_EInputActionOrigin_SteamDeck_LeftPad_Click = 343,
13952    k_EInputActionOrigin_SteamDeck_LeftPad_DPadNorth = 344,
13953    k_EInputActionOrigin_SteamDeck_LeftPad_DPadSouth = 345,
13954    k_EInputActionOrigin_SteamDeck_LeftPad_DPadWest = 346,
13955    k_EInputActionOrigin_SteamDeck_LeftPad_DPadEast = 347,
13956    k_EInputActionOrigin_SteamDeck_RightPad_Touch = 348,
13957    k_EInputActionOrigin_SteamDeck_RightPad_Swipe = 349,
13958    k_EInputActionOrigin_SteamDeck_RightPad_Click = 350,
13959    k_EInputActionOrigin_SteamDeck_RightPad_DPadNorth = 351,
13960    k_EInputActionOrigin_SteamDeck_RightPad_DPadSouth = 352,
13961    k_EInputActionOrigin_SteamDeck_RightPad_DPadWest = 353,
13962    k_EInputActionOrigin_SteamDeck_RightPad_DPadEast = 354,
13963    k_EInputActionOrigin_SteamDeck_L2_SoftPull = 355,
13964    k_EInputActionOrigin_SteamDeck_L2 = 356,
13965    k_EInputActionOrigin_SteamDeck_R2_SoftPull = 357,
13966    k_EInputActionOrigin_SteamDeck_R2 = 358,
13967    k_EInputActionOrigin_SteamDeck_LeftStick_Move = 359,
13968    k_EInputActionOrigin_SteamDeck_L3 = 360,
13969    k_EInputActionOrigin_SteamDeck_LeftStick_DPadNorth = 361,
13970    k_EInputActionOrigin_SteamDeck_LeftStick_DPadSouth = 362,
13971    k_EInputActionOrigin_SteamDeck_LeftStick_DPadWest = 363,
13972    k_EInputActionOrigin_SteamDeck_LeftStick_DPadEast = 364,
13973    k_EInputActionOrigin_SteamDeck_LeftStick_Touch = 365,
13974    k_EInputActionOrigin_SteamDeck_RightStick_Move = 366,
13975    k_EInputActionOrigin_SteamDeck_R3 = 367,
13976    k_EInputActionOrigin_SteamDeck_RightStick_DPadNorth = 368,
13977    k_EInputActionOrigin_SteamDeck_RightStick_DPadSouth = 369,
13978    k_EInputActionOrigin_SteamDeck_RightStick_DPadWest = 370,
13979    k_EInputActionOrigin_SteamDeck_RightStick_DPadEast = 371,
13980    k_EInputActionOrigin_SteamDeck_RightStick_Touch = 372,
13981    k_EInputActionOrigin_SteamDeck_L4 = 373,
13982    k_EInputActionOrigin_SteamDeck_R4 = 374,
13983    k_EInputActionOrigin_SteamDeck_L5 = 375,
13984    k_EInputActionOrigin_SteamDeck_R5 = 376,
13985    k_EInputActionOrigin_SteamDeck_DPad_Move = 377,
13986    k_EInputActionOrigin_SteamDeck_DPad_North = 378,
13987    k_EInputActionOrigin_SteamDeck_DPad_South = 379,
13988    k_EInputActionOrigin_SteamDeck_DPad_West = 380,
13989    k_EInputActionOrigin_SteamDeck_DPad_East = 381,
13990    k_EInputActionOrigin_SteamDeck_Gyro_Move = 382,
13991    k_EInputActionOrigin_SteamDeck_Gyro_Pitch = 383,
13992    k_EInputActionOrigin_SteamDeck_Gyro_Yaw = 384,
13993    k_EInputActionOrigin_SteamDeck_Gyro_Roll = 385,
13994    k_EInputActionOrigin_SteamDeck_Reserved1 = 386,
13995    k_EInputActionOrigin_SteamDeck_Reserved2 = 387,
13996    k_EInputActionOrigin_SteamDeck_Reserved3 = 388,
13997    k_EInputActionOrigin_SteamDeck_Reserved4 = 389,
13998    k_EInputActionOrigin_SteamDeck_Reserved5 = 390,
13999    k_EInputActionOrigin_SteamDeck_Reserved6 = 391,
14000    k_EInputActionOrigin_SteamDeck_Reserved7 = 392,
14001    k_EInputActionOrigin_SteamDeck_Reserved8 = 393,
14002    k_EInputActionOrigin_SteamDeck_Reserved9 = 394,
14003    k_EInputActionOrigin_SteamDeck_Reserved10 = 395,
14004    k_EInputActionOrigin_SteamDeck_Reserved11 = 396,
14005    k_EInputActionOrigin_SteamDeck_Reserved12 = 397,
14006    k_EInputActionOrigin_SteamDeck_Reserved13 = 398,
14007    k_EInputActionOrigin_SteamDeck_Reserved14 = 399,
14008    k_EInputActionOrigin_SteamDeck_Reserved15 = 400,
14009    k_EInputActionOrigin_SteamDeck_Reserved16 = 401,
14010    k_EInputActionOrigin_SteamDeck_Reserved17 = 402,
14011    k_EInputActionOrigin_SteamDeck_Reserved18 = 403,
14012    k_EInputActionOrigin_SteamDeck_Reserved19 = 404,
14013    k_EInputActionOrigin_SteamDeck_Reserved20 = 405,
14014    k_EInputActionOrigin_Count = 406,
14015    k_EInputActionOrigin_MaximumPossibleValue = 32767,
14016}
14017#[repr(u32)]
14018#[non_exhaustive]
14019#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
14020pub enum EXboxOrigin {
14021    k_EXboxOrigin_A = 0,
14022    k_EXboxOrigin_B = 1,
14023    k_EXboxOrigin_X = 2,
14024    k_EXboxOrigin_Y = 3,
14025    k_EXboxOrigin_LeftBumper = 4,
14026    k_EXboxOrigin_RightBumper = 5,
14027    k_EXboxOrigin_Menu = 6,
14028    k_EXboxOrigin_View = 7,
14029    k_EXboxOrigin_LeftTrigger_Pull = 8,
14030    k_EXboxOrigin_LeftTrigger_Click = 9,
14031    k_EXboxOrigin_RightTrigger_Pull = 10,
14032    k_EXboxOrigin_RightTrigger_Click = 11,
14033    k_EXboxOrigin_LeftStick_Move = 12,
14034    k_EXboxOrigin_LeftStick_Click = 13,
14035    k_EXboxOrigin_LeftStick_DPadNorth = 14,
14036    k_EXboxOrigin_LeftStick_DPadSouth = 15,
14037    k_EXboxOrigin_LeftStick_DPadWest = 16,
14038    k_EXboxOrigin_LeftStick_DPadEast = 17,
14039    k_EXboxOrigin_RightStick_Move = 18,
14040    k_EXboxOrigin_RightStick_Click = 19,
14041    k_EXboxOrigin_RightStick_DPadNorth = 20,
14042    k_EXboxOrigin_RightStick_DPadSouth = 21,
14043    k_EXboxOrigin_RightStick_DPadWest = 22,
14044    k_EXboxOrigin_RightStick_DPadEast = 23,
14045    k_EXboxOrigin_DPad_North = 24,
14046    k_EXboxOrigin_DPad_South = 25,
14047    k_EXboxOrigin_DPad_West = 26,
14048    k_EXboxOrigin_DPad_East = 27,
14049    k_EXboxOrigin_Count = 28,
14050}
14051#[repr(u32)]
14052#[non_exhaustive]
14053#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
14054pub enum ESteamControllerPad {
14055    k_ESteamControllerPad_Left = 0,
14056    k_ESteamControllerPad_Right = 1,
14057}
14058#[repr(u32)]
14059#[non_exhaustive]
14060#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
14061pub enum EControllerHapticLocation {
14062    k_EControllerHapticLocation_Left = 1,
14063    k_EControllerHapticLocation_Right = 2,
14064    k_EControllerHapticLocation_Both = 3,
14065}
14066#[repr(u32)]
14067#[non_exhaustive]
14068#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
14069pub enum EControllerHapticType {
14070    k_EControllerHapticType_Off = 0,
14071    k_EControllerHapticType_Tick = 1,
14072    k_EControllerHapticType_Click = 2,
14073}
14074#[repr(u32)]
14075#[non_exhaustive]
14076#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
14077pub enum ESteamInputType {
14078    k_ESteamInputType_Unknown = 0,
14079    k_ESteamInputType_SteamController = 1,
14080    k_ESteamInputType_XBox360Controller = 2,
14081    k_ESteamInputType_XBoxOneController = 3,
14082    k_ESteamInputType_GenericGamepad = 4,
14083    k_ESteamInputType_PS4Controller = 5,
14084    k_ESteamInputType_AppleMFiController = 6,
14085    k_ESteamInputType_AndroidController = 7,
14086    k_ESteamInputType_SwitchJoyConPair = 8,
14087    k_ESteamInputType_SwitchJoyConSingle = 9,
14088    k_ESteamInputType_SwitchProController = 10,
14089    k_ESteamInputType_MobileTouch = 11,
14090    k_ESteamInputType_PS3Controller = 12,
14091    k_ESteamInputType_PS5Controller = 13,
14092    k_ESteamInputType_SteamDeckController = 14,
14093    k_ESteamInputType_Count = 15,
14094    k_ESteamInputType_MaximumPossibleValue = 255,
14095}
14096#[repr(u32)]
14097#[non_exhaustive]
14098#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
14099pub enum ESteamInputConfigurationEnableType {
14100    k_ESteamInputConfigurationEnableType_None = 0,
14101    k_ESteamInputConfigurationEnableType_Playstation = 1,
14102    k_ESteamInputConfigurationEnableType_Xbox = 2,
14103    k_ESteamInputConfigurationEnableType_Generic = 4,
14104    k_ESteamInputConfigurationEnableType_Switch = 8,
14105}
14106#[repr(u32)]
14107#[non_exhaustive]
14108#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
14109pub enum ESteamInputLEDFlag {
14110    k_ESteamInputLEDFlag_SetColor = 0,
14111    k_ESteamInputLEDFlag_RestoreUserDefault = 1,
14112}
14113#[repr(u32)]
14114#[non_exhaustive]
14115#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
14116pub enum ESteamInputGlyphSize {
14117    k_ESteamInputGlyphSize_Small = 0,
14118    k_ESteamInputGlyphSize_Medium = 1,
14119    k_ESteamInputGlyphSize_Large = 2,
14120    k_ESteamInputGlyphSize_Count = 3,
14121}
14122#[repr(u32)]
14123#[non_exhaustive]
14124#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
14125pub enum ESteamInputGlyphStyle {
14126    ESteamInputGlyphStyle_Knockout = 0,
14127    ESteamInputGlyphStyle_Light = 1,
14128    ESteamInputGlyphStyle_Dark = 2,
14129    ESteamInputGlyphStyle_NeutralColorABXY = 16,
14130    ESteamInputGlyphStyle_SolidABXY = 32,
14131}
14132#[repr(u32)]
14133#[non_exhaustive]
14134#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
14135pub enum ESteamInputActionEventType {
14136    ESteamInputActionEventType_DigitalAction = 0,
14137    ESteamInputActionEventType_AnalogAction = 1,
14138}
14139pub type InputHandle_t = uint64;
14140pub type InputActionSetHandle_t = uint64;
14141pub type InputDigitalActionHandle_t = uint64;
14142pub type InputAnalogActionHandle_t = uint64;
14143#[repr(C, packed)]
14144#[derive(Debug, Copy, Clone)]
14145pub struct InputAnalogActionData_t {
14146    pub eMode: EInputSourceMode,
14147    pub x: f32,
14148    pub y: f32,
14149    pub bActive: bool,
14150}
14151#[test]
14152fn bindgen_test_layout_InputAnalogActionData_t() {
14153    const UNINIT: ::std::mem::MaybeUninit<InputAnalogActionData_t> =
14154        ::std::mem::MaybeUninit::uninit();
14155    let ptr = UNINIT.as_ptr();
14156    assert_eq!(
14157        ::std::mem::size_of::<InputAnalogActionData_t>(),
14158        13usize,
14159        concat!("Size of: ", stringify!(InputAnalogActionData_t))
14160    );
14161    assert_eq!(
14162        ::std::mem::align_of::<InputAnalogActionData_t>(),
14163        1usize,
14164        concat!("Alignment of ", stringify!(InputAnalogActionData_t))
14165    );
14166    assert_eq!(
14167        unsafe { ::std::ptr::addr_of!((*ptr).eMode) as usize - ptr as usize },
14168        0usize,
14169        concat!(
14170            "Offset of field: ",
14171            stringify!(InputAnalogActionData_t),
14172            "::",
14173            stringify!(eMode)
14174        )
14175    );
14176    assert_eq!(
14177        unsafe { ::std::ptr::addr_of!((*ptr).x) as usize - ptr as usize },
14178        4usize,
14179        concat!(
14180            "Offset of field: ",
14181            stringify!(InputAnalogActionData_t),
14182            "::",
14183            stringify!(x)
14184        )
14185    );
14186    assert_eq!(
14187        unsafe { ::std::ptr::addr_of!((*ptr).y) as usize - ptr as usize },
14188        8usize,
14189        concat!(
14190            "Offset of field: ",
14191            stringify!(InputAnalogActionData_t),
14192            "::",
14193            stringify!(y)
14194        )
14195    );
14196    assert_eq!(
14197        unsafe { ::std::ptr::addr_of!((*ptr).bActive) as usize - ptr as usize },
14198        12usize,
14199        concat!(
14200            "Offset of field: ",
14201            stringify!(InputAnalogActionData_t),
14202            "::",
14203            stringify!(bActive)
14204        )
14205    );
14206}
14207#[repr(C)]
14208#[derive(Debug, Copy, Clone)]
14209pub struct InputDigitalActionData_t {
14210    pub bState: bool,
14211    pub bActive: bool,
14212}
14213#[test]
14214fn bindgen_test_layout_InputDigitalActionData_t() {
14215    const UNINIT: ::std::mem::MaybeUninit<InputDigitalActionData_t> =
14216        ::std::mem::MaybeUninit::uninit();
14217    let ptr = UNINIT.as_ptr();
14218    assert_eq!(
14219        ::std::mem::size_of::<InputDigitalActionData_t>(),
14220        2usize,
14221        concat!("Size of: ", stringify!(InputDigitalActionData_t))
14222    );
14223    assert_eq!(
14224        ::std::mem::align_of::<InputDigitalActionData_t>(),
14225        1usize,
14226        concat!("Alignment of ", stringify!(InputDigitalActionData_t))
14227    );
14228    assert_eq!(
14229        unsafe { ::std::ptr::addr_of!((*ptr).bState) as usize - ptr as usize },
14230        0usize,
14231        concat!(
14232            "Offset of field: ",
14233            stringify!(InputDigitalActionData_t),
14234            "::",
14235            stringify!(bState)
14236        )
14237    );
14238    assert_eq!(
14239        unsafe { ::std::ptr::addr_of!((*ptr).bActive) as usize - ptr as usize },
14240        1usize,
14241        concat!(
14242            "Offset of field: ",
14243            stringify!(InputDigitalActionData_t),
14244            "::",
14245            stringify!(bActive)
14246        )
14247    );
14248}
14249#[repr(C, packed)]
14250#[derive(Debug, Copy, Clone)]
14251pub struct InputMotionData_t {
14252    pub rotQuatX: f32,
14253    pub rotQuatY: f32,
14254    pub rotQuatZ: f32,
14255    pub rotQuatW: f32,
14256    pub posAccelX: f32,
14257    pub posAccelY: f32,
14258    pub posAccelZ: f32,
14259    pub rotVelX: f32,
14260    pub rotVelY: f32,
14261    pub rotVelZ: f32,
14262}
14263#[test]
14264fn bindgen_test_layout_InputMotionData_t() {
14265    const UNINIT: ::std::mem::MaybeUninit<InputMotionData_t> = ::std::mem::MaybeUninit::uninit();
14266    let ptr = UNINIT.as_ptr();
14267    assert_eq!(
14268        ::std::mem::size_of::<InputMotionData_t>(),
14269        40usize,
14270        concat!("Size of: ", stringify!(InputMotionData_t))
14271    );
14272    assert_eq!(
14273        ::std::mem::align_of::<InputMotionData_t>(),
14274        1usize,
14275        concat!("Alignment of ", stringify!(InputMotionData_t))
14276    );
14277    assert_eq!(
14278        unsafe { ::std::ptr::addr_of!((*ptr).rotQuatX) as usize - ptr as usize },
14279        0usize,
14280        concat!(
14281            "Offset of field: ",
14282            stringify!(InputMotionData_t),
14283            "::",
14284            stringify!(rotQuatX)
14285        )
14286    );
14287    assert_eq!(
14288        unsafe { ::std::ptr::addr_of!((*ptr).rotQuatY) as usize - ptr as usize },
14289        4usize,
14290        concat!(
14291            "Offset of field: ",
14292            stringify!(InputMotionData_t),
14293            "::",
14294            stringify!(rotQuatY)
14295        )
14296    );
14297    assert_eq!(
14298        unsafe { ::std::ptr::addr_of!((*ptr).rotQuatZ) as usize - ptr as usize },
14299        8usize,
14300        concat!(
14301            "Offset of field: ",
14302            stringify!(InputMotionData_t),
14303            "::",
14304            stringify!(rotQuatZ)
14305        )
14306    );
14307    assert_eq!(
14308        unsafe { ::std::ptr::addr_of!((*ptr).rotQuatW) as usize - ptr as usize },
14309        12usize,
14310        concat!(
14311            "Offset of field: ",
14312            stringify!(InputMotionData_t),
14313            "::",
14314            stringify!(rotQuatW)
14315        )
14316    );
14317    assert_eq!(
14318        unsafe { ::std::ptr::addr_of!((*ptr).posAccelX) as usize - ptr as usize },
14319        16usize,
14320        concat!(
14321            "Offset of field: ",
14322            stringify!(InputMotionData_t),
14323            "::",
14324            stringify!(posAccelX)
14325        )
14326    );
14327    assert_eq!(
14328        unsafe { ::std::ptr::addr_of!((*ptr).posAccelY) as usize - ptr as usize },
14329        20usize,
14330        concat!(
14331            "Offset of field: ",
14332            stringify!(InputMotionData_t),
14333            "::",
14334            stringify!(posAccelY)
14335        )
14336    );
14337    assert_eq!(
14338        unsafe { ::std::ptr::addr_of!((*ptr).posAccelZ) as usize - ptr as usize },
14339        24usize,
14340        concat!(
14341            "Offset of field: ",
14342            stringify!(InputMotionData_t),
14343            "::",
14344            stringify!(posAccelZ)
14345        )
14346    );
14347    assert_eq!(
14348        unsafe { ::std::ptr::addr_of!((*ptr).rotVelX) as usize - ptr as usize },
14349        28usize,
14350        concat!(
14351            "Offset of field: ",
14352            stringify!(InputMotionData_t),
14353            "::",
14354            stringify!(rotVelX)
14355        )
14356    );
14357    assert_eq!(
14358        unsafe { ::std::ptr::addr_of!((*ptr).rotVelY) as usize - ptr as usize },
14359        32usize,
14360        concat!(
14361            "Offset of field: ",
14362            stringify!(InputMotionData_t),
14363            "::",
14364            stringify!(rotVelY)
14365        )
14366    );
14367    assert_eq!(
14368        unsafe { ::std::ptr::addr_of!((*ptr).rotVelZ) as usize - ptr as usize },
14369        36usize,
14370        concat!(
14371            "Offset of field: ",
14372            stringify!(InputMotionData_t),
14373            "::",
14374            stringify!(rotVelZ)
14375        )
14376    );
14377}
14378#[repr(C, packed)]
14379#[derive(Debug, Copy, Clone)]
14380pub struct InputMotionDataV2_t {
14381    pub driftCorrectedQuatX: f32,
14382    pub driftCorrectedQuatY: f32,
14383    pub driftCorrectedQuatZ: f32,
14384    pub driftCorrectedQuatW: f32,
14385    pub sensorFusionQuatX: f32,
14386    pub sensorFusionQuatY: f32,
14387    pub sensorFusionQuatZ: f32,
14388    pub sensorFusionQuatW: f32,
14389    pub deferredSensorFusionQuatX: f32,
14390    pub deferredSensorFusionQuatY: f32,
14391    pub deferredSensorFusionQuatZ: f32,
14392    pub deferredSensorFusionQuatW: f32,
14393    pub gravityX: f32,
14394    pub gravityY: f32,
14395    pub gravityZ: f32,
14396    pub degreesPerSecondX: f32,
14397    pub degreesPerSecondY: f32,
14398    pub degreesPerSecondZ: f32,
14399}
14400#[test]
14401fn bindgen_test_layout_InputMotionDataV2_t() {
14402    const UNINIT: ::std::mem::MaybeUninit<InputMotionDataV2_t> = ::std::mem::MaybeUninit::uninit();
14403    let ptr = UNINIT.as_ptr();
14404    assert_eq!(
14405        ::std::mem::size_of::<InputMotionDataV2_t>(),
14406        72usize,
14407        concat!("Size of: ", stringify!(InputMotionDataV2_t))
14408    );
14409    assert_eq!(
14410        ::std::mem::align_of::<InputMotionDataV2_t>(),
14411        1usize,
14412        concat!("Alignment of ", stringify!(InputMotionDataV2_t))
14413    );
14414    assert_eq!(
14415        unsafe { ::std::ptr::addr_of!((*ptr).driftCorrectedQuatX) as usize - ptr as usize },
14416        0usize,
14417        concat!(
14418            "Offset of field: ",
14419            stringify!(InputMotionDataV2_t),
14420            "::",
14421            stringify!(driftCorrectedQuatX)
14422        )
14423    );
14424    assert_eq!(
14425        unsafe { ::std::ptr::addr_of!((*ptr).driftCorrectedQuatY) as usize - ptr as usize },
14426        4usize,
14427        concat!(
14428            "Offset of field: ",
14429            stringify!(InputMotionDataV2_t),
14430            "::",
14431            stringify!(driftCorrectedQuatY)
14432        )
14433    );
14434    assert_eq!(
14435        unsafe { ::std::ptr::addr_of!((*ptr).driftCorrectedQuatZ) as usize - ptr as usize },
14436        8usize,
14437        concat!(
14438            "Offset of field: ",
14439            stringify!(InputMotionDataV2_t),
14440            "::",
14441            stringify!(driftCorrectedQuatZ)
14442        )
14443    );
14444    assert_eq!(
14445        unsafe { ::std::ptr::addr_of!((*ptr).driftCorrectedQuatW) as usize - ptr as usize },
14446        12usize,
14447        concat!(
14448            "Offset of field: ",
14449            stringify!(InputMotionDataV2_t),
14450            "::",
14451            stringify!(driftCorrectedQuatW)
14452        )
14453    );
14454    assert_eq!(
14455        unsafe { ::std::ptr::addr_of!((*ptr).sensorFusionQuatX) as usize - ptr as usize },
14456        16usize,
14457        concat!(
14458            "Offset of field: ",
14459            stringify!(InputMotionDataV2_t),
14460            "::",
14461            stringify!(sensorFusionQuatX)
14462        )
14463    );
14464    assert_eq!(
14465        unsafe { ::std::ptr::addr_of!((*ptr).sensorFusionQuatY) as usize - ptr as usize },
14466        20usize,
14467        concat!(
14468            "Offset of field: ",
14469            stringify!(InputMotionDataV2_t),
14470            "::",
14471            stringify!(sensorFusionQuatY)
14472        )
14473    );
14474    assert_eq!(
14475        unsafe { ::std::ptr::addr_of!((*ptr).sensorFusionQuatZ) as usize - ptr as usize },
14476        24usize,
14477        concat!(
14478            "Offset of field: ",
14479            stringify!(InputMotionDataV2_t),
14480            "::",
14481            stringify!(sensorFusionQuatZ)
14482        )
14483    );
14484    assert_eq!(
14485        unsafe { ::std::ptr::addr_of!((*ptr).sensorFusionQuatW) as usize - ptr as usize },
14486        28usize,
14487        concat!(
14488            "Offset of field: ",
14489            stringify!(InputMotionDataV2_t),
14490            "::",
14491            stringify!(sensorFusionQuatW)
14492        )
14493    );
14494    assert_eq!(
14495        unsafe { ::std::ptr::addr_of!((*ptr).deferredSensorFusionQuatX) as usize - ptr as usize },
14496        32usize,
14497        concat!(
14498            "Offset of field: ",
14499            stringify!(InputMotionDataV2_t),
14500            "::",
14501            stringify!(deferredSensorFusionQuatX)
14502        )
14503    );
14504    assert_eq!(
14505        unsafe { ::std::ptr::addr_of!((*ptr).deferredSensorFusionQuatY) as usize - ptr as usize },
14506        36usize,
14507        concat!(
14508            "Offset of field: ",
14509            stringify!(InputMotionDataV2_t),
14510            "::",
14511            stringify!(deferredSensorFusionQuatY)
14512        )
14513    );
14514    assert_eq!(
14515        unsafe { ::std::ptr::addr_of!((*ptr).deferredSensorFusionQuatZ) as usize - ptr as usize },
14516        40usize,
14517        concat!(
14518            "Offset of field: ",
14519            stringify!(InputMotionDataV2_t),
14520            "::",
14521            stringify!(deferredSensorFusionQuatZ)
14522        )
14523    );
14524    assert_eq!(
14525        unsafe { ::std::ptr::addr_of!((*ptr).deferredSensorFusionQuatW) as usize - ptr as usize },
14526        44usize,
14527        concat!(
14528            "Offset of field: ",
14529            stringify!(InputMotionDataV2_t),
14530            "::",
14531            stringify!(deferredSensorFusionQuatW)
14532        )
14533    );
14534    assert_eq!(
14535        unsafe { ::std::ptr::addr_of!((*ptr).gravityX) as usize - ptr as usize },
14536        48usize,
14537        concat!(
14538            "Offset of field: ",
14539            stringify!(InputMotionDataV2_t),
14540            "::",
14541            stringify!(gravityX)
14542        )
14543    );
14544    assert_eq!(
14545        unsafe { ::std::ptr::addr_of!((*ptr).gravityY) as usize - ptr as usize },
14546        52usize,
14547        concat!(
14548            "Offset of field: ",
14549            stringify!(InputMotionDataV2_t),
14550            "::",
14551            stringify!(gravityY)
14552        )
14553    );
14554    assert_eq!(
14555        unsafe { ::std::ptr::addr_of!((*ptr).gravityZ) as usize - ptr as usize },
14556        56usize,
14557        concat!(
14558            "Offset of field: ",
14559            stringify!(InputMotionDataV2_t),
14560            "::",
14561            stringify!(gravityZ)
14562        )
14563    );
14564    assert_eq!(
14565        unsafe { ::std::ptr::addr_of!((*ptr).degreesPerSecondX) as usize - ptr as usize },
14566        60usize,
14567        concat!(
14568            "Offset of field: ",
14569            stringify!(InputMotionDataV2_t),
14570            "::",
14571            stringify!(degreesPerSecondX)
14572        )
14573    );
14574    assert_eq!(
14575        unsafe { ::std::ptr::addr_of!((*ptr).degreesPerSecondY) as usize - ptr as usize },
14576        64usize,
14577        concat!(
14578            "Offset of field: ",
14579            stringify!(InputMotionDataV2_t),
14580            "::",
14581            stringify!(degreesPerSecondY)
14582        )
14583    );
14584    assert_eq!(
14585        unsafe { ::std::ptr::addr_of!((*ptr).degreesPerSecondZ) as usize - ptr as usize },
14586        68usize,
14587        concat!(
14588            "Offset of field: ",
14589            stringify!(InputMotionDataV2_t),
14590            "::",
14591            stringify!(degreesPerSecondZ)
14592        )
14593    );
14594}
14595#[repr(C, packed)]
14596#[derive(Copy, Clone)]
14597pub struct SteamInputActionEvent_t {
14598    pub controllerHandle: InputHandle_t,
14599    pub eEventType: ESteamInputActionEventType,
14600    pub __bindgen_anon_1: SteamInputActionEvent_t__bindgen_ty_1,
14601}
14602#[repr(C, packed)]
14603#[derive(Debug, Copy, Clone)]
14604pub struct SteamInputActionEvent_t_AnalogAction_t {
14605    pub actionHandle: InputAnalogActionHandle_t,
14606    pub analogActionData: InputAnalogActionData_t,
14607}
14608#[test]
14609fn bindgen_test_layout_SteamInputActionEvent_t_AnalogAction_t() {
14610    const UNINIT: ::std::mem::MaybeUninit<SteamInputActionEvent_t_AnalogAction_t> =
14611        ::std::mem::MaybeUninit::uninit();
14612    let ptr = UNINIT.as_ptr();
14613    assert_eq!(
14614        ::std::mem::size_of::<SteamInputActionEvent_t_AnalogAction_t>(),
14615        21usize,
14616        concat!(
14617            "Size of: ",
14618            stringify!(SteamInputActionEvent_t_AnalogAction_t)
14619        )
14620    );
14621    assert_eq!(
14622        ::std::mem::align_of::<SteamInputActionEvent_t_AnalogAction_t>(),
14623        1usize,
14624        concat!(
14625            "Alignment of ",
14626            stringify!(SteamInputActionEvent_t_AnalogAction_t)
14627        )
14628    );
14629    assert_eq!(
14630        unsafe { ::std::ptr::addr_of!((*ptr).actionHandle) as usize - ptr as usize },
14631        0usize,
14632        concat!(
14633            "Offset of field: ",
14634            stringify!(SteamInputActionEvent_t_AnalogAction_t),
14635            "::",
14636            stringify!(actionHandle)
14637        )
14638    );
14639    assert_eq!(
14640        unsafe { ::std::ptr::addr_of!((*ptr).analogActionData) as usize - ptr as usize },
14641        8usize,
14642        concat!(
14643            "Offset of field: ",
14644            stringify!(SteamInputActionEvent_t_AnalogAction_t),
14645            "::",
14646            stringify!(analogActionData)
14647        )
14648    );
14649}
14650#[repr(C, packed)]
14651#[derive(Debug, Copy, Clone)]
14652pub struct SteamInputActionEvent_t_DigitalAction_t {
14653    pub actionHandle: InputDigitalActionHandle_t,
14654    pub digitalActionData: InputDigitalActionData_t,
14655}
14656#[test]
14657fn bindgen_test_layout_SteamInputActionEvent_t_DigitalAction_t() {
14658    const UNINIT: ::std::mem::MaybeUninit<SteamInputActionEvent_t_DigitalAction_t> =
14659        ::std::mem::MaybeUninit::uninit();
14660    let ptr = UNINIT.as_ptr();
14661    assert_eq!(
14662        ::std::mem::size_of::<SteamInputActionEvent_t_DigitalAction_t>(),
14663        10usize,
14664        concat!(
14665            "Size of: ",
14666            stringify!(SteamInputActionEvent_t_DigitalAction_t)
14667        )
14668    );
14669    assert_eq!(
14670        ::std::mem::align_of::<SteamInputActionEvent_t_DigitalAction_t>(),
14671        1usize,
14672        concat!(
14673            "Alignment of ",
14674            stringify!(SteamInputActionEvent_t_DigitalAction_t)
14675        )
14676    );
14677    assert_eq!(
14678        unsafe { ::std::ptr::addr_of!((*ptr).actionHandle) as usize - ptr as usize },
14679        0usize,
14680        concat!(
14681            "Offset of field: ",
14682            stringify!(SteamInputActionEvent_t_DigitalAction_t),
14683            "::",
14684            stringify!(actionHandle)
14685        )
14686    );
14687    assert_eq!(
14688        unsafe { ::std::ptr::addr_of!((*ptr).digitalActionData) as usize - ptr as usize },
14689        8usize,
14690        concat!(
14691            "Offset of field: ",
14692            stringify!(SteamInputActionEvent_t_DigitalAction_t),
14693            "::",
14694            stringify!(digitalActionData)
14695        )
14696    );
14697}
14698#[repr(C)]
14699#[derive(Copy, Clone)]
14700pub union SteamInputActionEvent_t__bindgen_ty_1 {
14701    pub analogAction: SteamInputActionEvent_t_AnalogAction_t,
14702    pub digitalAction: SteamInputActionEvent_t_DigitalAction_t,
14703}
14704#[test]
14705fn bindgen_test_layout_SteamInputActionEvent_t__bindgen_ty_1() {
14706    const UNINIT: ::std::mem::MaybeUninit<SteamInputActionEvent_t__bindgen_ty_1> =
14707        ::std::mem::MaybeUninit::uninit();
14708    let ptr = UNINIT.as_ptr();
14709    assert_eq!(
14710        ::std::mem::size_of::<SteamInputActionEvent_t__bindgen_ty_1>(),
14711        21usize,
14712        concat!(
14713            "Size of: ",
14714            stringify!(SteamInputActionEvent_t__bindgen_ty_1)
14715        )
14716    );
14717    assert_eq!(
14718        ::std::mem::align_of::<SteamInputActionEvent_t__bindgen_ty_1>(),
14719        1usize,
14720        concat!(
14721            "Alignment of ",
14722            stringify!(SteamInputActionEvent_t__bindgen_ty_1)
14723        )
14724    );
14725    assert_eq!(
14726        unsafe { ::std::ptr::addr_of!((*ptr).analogAction) as usize - ptr as usize },
14727        0usize,
14728        concat!(
14729            "Offset of field: ",
14730            stringify!(SteamInputActionEvent_t__bindgen_ty_1),
14731            "::",
14732            stringify!(analogAction)
14733        )
14734    );
14735    assert_eq!(
14736        unsafe { ::std::ptr::addr_of!((*ptr).digitalAction) as usize - ptr as usize },
14737        0usize,
14738        concat!(
14739            "Offset of field: ",
14740            stringify!(SteamInputActionEvent_t__bindgen_ty_1),
14741            "::",
14742            stringify!(digitalAction)
14743        )
14744    );
14745}
14746#[test]
14747fn bindgen_test_layout_SteamInputActionEvent_t() {
14748    const UNINIT: ::std::mem::MaybeUninit<SteamInputActionEvent_t> =
14749        ::std::mem::MaybeUninit::uninit();
14750    let ptr = UNINIT.as_ptr();
14751    assert_eq!(
14752        ::std::mem::size_of::<SteamInputActionEvent_t>(),
14753        33usize,
14754        concat!("Size of: ", stringify!(SteamInputActionEvent_t))
14755    );
14756    assert_eq!(
14757        ::std::mem::align_of::<SteamInputActionEvent_t>(),
14758        1usize,
14759        concat!("Alignment of ", stringify!(SteamInputActionEvent_t))
14760    );
14761    assert_eq!(
14762        unsafe { ::std::ptr::addr_of!((*ptr).controllerHandle) as usize - ptr as usize },
14763        0usize,
14764        concat!(
14765            "Offset of field: ",
14766            stringify!(SteamInputActionEvent_t),
14767            "::",
14768            stringify!(controllerHandle)
14769        )
14770    );
14771    assert_eq!(
14772        unsafe { ::std::ptr::addr_of!((*ptr).eEventType) as usize - ptr as usize },
14773        8usize,
14774        concat!(
14775            "Offset of field: ",
14776            stringify!(SteamInputActionEvent_t),
14777            "::",
14778            stringify!(eEventType)
14779        )
14780    );
14781}
14782#[repr(C)]
14783#[derive(Debug, Copy, Clone)]
14784pub struct ScePadTriggerEffectParam {
14785    _unused: [u8; 0],
14786}
14787pub type SteamInputActionEventCallbackPointer =
14788    ::std::option::Option<unsafe extern "C" fn(arg1: *mut SteamInputActionEvent_t)>;
14789#[repr(C)]
14790pub struct ISteamInput__bindgen_vtable(::std::os::raw::c_void);
14791#[repr(C)]
14792#[derive(Debug, Copy, Clone)]
14793pub struct ISteamInput {
14794    pub vtable_: *const ISteamInput__bindgen_vtable,
14795}
14796#[test]
14797fn bindgen_test_layout_ISteamInput() {
14798    assert_eq!(
14799        ::std::mem::size_of::<ISteamInput>(),
14800        8usize,
14801        concat!("Size of: ", stringify!(ISteamInput))
14802    );
14803    assert_eq!(
14804        ::std::mem::align_of::<ISteamInput>(),
14805        8usize,
14806        concat!("Alignment of ", stringify!(ISteamInput))
14807    );
14808}
14809#[repr(C, packed(4))]
14810#[derive(Debug, Copy, Clone)]
14811pub struct SteamInputDeviceConnected_t {
14812    pub m_ulConnectedDeviceHandle: InputHandle_t,
14813}
14814pub const SteamInputDeviceConnected_t_k_iCallback: SteamInputDeviceConnected_t__bindgen_ty_1 =
14815    SteamInputDeviceConnected_t__bindgen_ty_1::k_iCallback;
14816#[repr(u32)]
14817#[non_exhaustive]
14818#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
14819pub enum SteamInputDeviceConnected_t__bindgen_ty_1 {
14820    k_iCallback = 2801,
14821}
14822#[test]
14823fn bindgen_test_layout_SteamInputDeviceConnected_t() {
14824    const UNINIT: ::std::mem::MaybeUninit<SteamInputDeviceConnected_t> =
14825        ::std::mem::MaybeUninit::uninit();
14826    let ptr = UNINIT.as_ptr();
14827    assert_eq!(
14828        ::std::mem::size_of::<SteamInputDeviceConnected_t>(),
14829        8usize,
14830        concat!("Size of: ", stringify!(SteamInputDeviceConnected_t))
14831    );
14832    assert_eq!(
14833        ::std::mem::align_of::<SteamInputDeviceConnected_t>(),
14834        4usize,
14835        concat!("Alignment of ", stringify!(SteamInputDeviceConnected_t))
14836    );
14837    assert_eq!(
14838        unsafe { ::std::ptr::addr_of!((*ptr).m_ulConnectedDeviceHandle) as usize - ptr as usize },
14839        0usize,
14840        concat!(
14841            "Offset of field: ",
14842            stringify!(SteamInputDeviceConnected_t),
14843            "::",
14844            stringify!(m_ulConnectedDeviceHandle)
14845        )
14846    );
14847}
14848#[repr(C, packed(4))]
14849#[derive(Debug, Copy, Clone)]
14850pub struct SteamInputDeviceDisconnected_t {
14851    pub m_ulDisconnectedDeviceHandle: InputHandle_t,
14852}
14853pub const SteamInputDeviceDisconnected_t_k_iCallback: SteamInputDeviceDisconnected_t__bindgen_ty_1 =
14854    SteamInputDeviceDisconnected_t__bindgen_ty_1::k_iCallback;
14855#[repr(u32)]
14856#[non_exhaustive]
14857#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
14858pub enum SteamInputDeviceDisconnected_t__bindgen_ty_1 {
14859    k_iCallback = 2802,
14860}
14861#[test]
14862fn bindgen_test_layout_SteamInputDeviceDisconnected_t() {
14863    const UNINIT: ::std::mem::MaybeUninit<SteamInputDeviceDisconnected_t> =
14864        ::std::mem::MaybeUninit::uninit();
14865    let ptr = UNINIT.as_ptr();
14866    assert_eq!(
14867        ::std::mem::size_of::<SteamInputDeviceDisconnected_t>(),
14868        8usize,
14869        concat!("Size of: ", stringify!(SteamInputDeviceDisconnected_t))
14870    );
14871    assert_eq!(
14872        ::std::mem::align_of::<SteamInputDeviceDisconnected_t>(),
14873        4usize,
14874        concat!("Alignment of ", stringify!(SteamInputDeviceDisconnected_t))
14875    );
14876    assert_eq!(
14877        unsafe {
14878            ::std::ptr::addr_of!((*ptr).m_ulDisconnectedDeviceHandle) as usize - ptr as usize
14879        },
14880        0usize,
14881        concat!(
14882            "Offset of field: ",
14883            stringify!(SteamInputDeviceDisconnected_t),
14884            "::",
14885            stringify!(m_ulDisconnectedDeviceHandle)
14886        )
14887    );
14888}
14889#[repr(C, packed(4))]
14890#[derive(Copy, Clone)]
14891pub struct SteamInputConfigurationLoaded_t {
14892    pub m_unAppID: AppId_t,
14893    pub m_ulDeviceHandle: InputHandle_t,
14894    pub m_ulMappingCreator: CSteamID,
14895    pub m_unMajorRevision: uint32,
14896    pub m_unMinorRevision: uint32,
14897    pub m_bUsesSteamInputAPI: bool,
14898    pub m_bUsesGamepadAPI: bool,
14899}
14900pub const SteamInputConfigurationLoaded_t_k_iCallback:
14901    SteamInputConfigurationLoaded_t__bindgen_ty_1 =
14902    SteamInputConfigurationLoaded_t__bindgen_ty_1::k_iCallback;
14903#[repr(u32)]
14904#[non_exhaustive]
14905#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
14906pub enum SteamInputConfigurationLoaded_t__bindgen_ty_1 {
14907    k_iCallback = 2803,
14908}
14909#[test]
14910fn bindgen_test_layout_SteamInputConfigurationLoaded_t() {
14911    const UNINIT: ::std::mem::MaybeUninit<SteamInputConfigurationLoaded_t> =
14912        ::std::mem::MaybeUninit::uninit();
14913    let ptr = UNINIT.as_ptr();
14914    assert_eq!(
14915        ::std::mem::size_of::<SteamInputConfigurationLoaded_t>(),
14916        32usize,
14917        concat!("Size of: ", stringify!(SteamInputConfigurationLoaded_t))
14918    );
14919    assert_eq!(
14920        ::std::mem::align_of::<SteamInputConfigurationLoaded_t>(),
14921        4usize,
14922        concat!("Alignment of ", stringify!(SteamInputConfigurationLoaded_t))
14923    );
14924    assert_eq!(
14925        unsafe { ::std::ptr::addr_of!((*ptr).m_unAppID) as usize - ptr as usize },
14926        0usize,
14927        concat!(
14928            "Offset of field: ",
14929            stringify!(SteamInputConfigurationLoaded_t),
14930            "::",
14931            stringify!(m_unAppID)
14932        )
14933    );
14934    assert_eq!(
14935        unsafe { ::std::ptr::addr_of!((*ptr).m_ulDeviceHandle) as usize - ptr as usize },
14936        4usize,
14937        concat!(
14938            "Offset of field: ",
14939            stringify!(SteamInputConfigurationLoaded_t),
14940            "::",
14941            stringify!(m_ulDeviceHandle)
14942        )
14943    );
14944    assert_eq!(
14945        unsafe { ::std::ptr::addr_of!((*ptr).m_ulMappingCreator) as usize - ptr as usize },
14946        12usize,
14947        concat!(
14948            "Offset of field: ",
14949            stringify!(SteamInputConfigurationLoaded_t),
14950            "::",
14951            stringify!(m_ulMappingCreator)
14952        )
14953    );
14954    assert_eq!(
14955        unsafe { ::std::ptr::addr_of!((*ptr).m_unMajorRevision) as usize - ptr as usize },
14956        20usize,
14957        concat!(
14958            "Offset of field: ",
14959            stringify!(SteamInputConfigurationLoaded_t),
14960            "::",
14961            stringify!(m_unMajorRevision)
14962        )
14963    );
14964    assert_eq!(
14965        unsafe { ::std::ptr::addr_of!((*ptr).m_unMinorRevision) as usize - ptr as usize },
14966        24usize,
14967        concat!(
14968            "Offset of field: ",
14969            stringify!(SteamInputConfigurationLoaded_t),
14970            "::",
14971            stringify!(m_unMinorRevision)
14972        )
14973    );
14974    assert_eq!(
14975        unsafe { ::std::ptr::addr_of!((*ptr).m_bUsesSteamInputAPI) as usize - ptr as usize },
14976        28usize,
14977        concat!(
14978            "Offset of field: ",
14979            stringify!(SteamInputConfigurationLoaded_t),
14980            "::",
14981            stringify!(m_bUsesSteamInputAPI)
14982        )
14983    );
14984    assert_eq!(
14985        unsafe { ::std::ptr::addr_of!((*ptr).m_bUsesGamepadAPI) as usize - ptr as usize },
14986        29usize,
14987        concat!(
14988            "Offset of field: ",
14989            stringify!(SteamInputConfigurationLoaded_t),
14990            "::",
14991            stringify!(m_bUsesGamepadAPI)
14992        )
14993    );
14994}
14995#[repr(C, packed(4))]
14996#[derive(Debug, Copy, Clone)]
14997pub struct SteamInputGamepadSlotChange_t {
14998    pub m_unAppID: AppId_t,
14999    pub m_ulDeviceHandle: InputHandle_t,
15000    pub m_eDeviceType: ESteamInputType,
15001    pub m_nOldGamepadSlot: ::std::os::raw::c_int,
15002    pub m_nNewGamepadSlot: ::std::os::raw::c_int,
15003}
15004pub const SteamInputGamepadSlotChange_t_k_iCallback: SteamInputGamepadSlotChange_t__bindgen_ty_1 =
15005    SteamInputGamepadSlotChange_t__bindgen_ty_1::k_iCallback;
15006#[repr(u32)]
15007#[non_exhaustive]
15008#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
15009pub enum SteamInputGamepadSlotChange_t__bindgen_ty_1 {
15010    k_iCallback = 2804,
15011}
15012#[test]
15013fn bindgen_test_layout_SteamInputGamepadSlotChange_t() {
15014    const UNINIT: ::std::mem::MaybeUninit<SteamInputGamepadSlotChange_t> =
15015        ::std::mem::MaybeUninit::uninit();
15016    let ptr = UNINIT.as_ptr();
15017    assert_eq!(
15018        ::std::mem::size_of::<SteamInputGamepadSlotChange_t>(),
15019        24usize,
15020        concat!("Size of: ", stringify!(SteamInputGamepadSlotChange_t))
15021    );
15022    assert_eq!(
15023        ::std::mem::align_of::<SteamInputGamepadSlotChange_t>(),
15024        4usize,
15025        concat!("Alignment of ", stringify!(SteamInputGamepadSlotChange_t))
15026    );
15027    assert_eq!(
15028        unsafe { ::std::ptr::addr_of!((*ptr).m_unAppID) as usize - ptr as usize },
15029        0usize,
15030        concat!(
15031            "Offset of field: ",
15032            stringify!(SteamInputGamepadSlotChange_t),
15033            "::",
15034            stringify!(m_unAppID)
15035        )
15036    );
15037    assert_eq!(
15038        unsafe { ::std::ptr::addr_of!((*ptr).m_ulDeviceHandle) as usize - ptr as usize },
15039        4usize,
15040        concat!(
15041            "Offset of field: ",
15042            stringify!(SteamInputGamepadSlotChange_t),
15043            "::",
15044            stringify!(m_ulDeviceHandle)
15045        )
15046    );
15047    assert_eq!(
15048        unsafe { ::std::ptr::addr_of!((*ptr).m_eDeviceType) as usize - ptr as usize },
15049        12usize,
15050        concat!(
15051            "Offset of field: ",
15052            stringify!(SteamInputGamepadSlotChange_t),
15053            "::",
15054            stringify!(m_eDeviceType)
15055        )
15056    );
15057    assert_eq!(
15058        unsafe { ::std::ptr::addr_of!((*ptr).m_nOldGamepadSlot) as usize - ptr as usize },
15059        16usize,
15060        concat!(
15061            "Offset of field: ",
15062            stringify!(SteamInputGamepadSlotChange_t),
15063            "::",
15064            stringify!(m_nOldGamepadSlot)
15065        )
15066    );
15067    assert_eq!(
15068        unsafe { ::std::ptr::addr_of!((*ptr).m_nNewGamepadSlot) as usize - ptr as usize },
15069        20usize,
15070        concat!(
15071            "Offset of field: ",
15072            stringify!(SteamInputGamepadSlotChange_t),
15073            "::",
15074            stringify!(m_nNewGamepadSlot)
15075        )
15076    );
15077}
15078#[repr(u32)]
15079#[non_exhaustive]
15080#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
15081pub enum EControllerActionOrigin {
15082    k_EControllerActionOrigin_None = 0,
15083    k_EControllerActionOrigin_A = 1,
15084    k_EControllerActionOrigin_B = 2,
15085    k_EControllerActionOrigin_X = 3,
15086    k_EControllerActionOrigin_Y = 4,
15087    k_EControllerActionOrigin_LeftBumper = 5,
15088    k_EControllerActionOrigin_RightBumper = 6,
15089    k_EControllerActionOrigin_LeftGrip = 7,
15090    k_EControllerActionOrigin_RightGrip = 8,
15091    k_EControllerActionOrigin_Start = 9,
15092    k_EControllerActionOrigin_Back = 10,
15093    k_EControllerActionOrigin_LeftPad_Touch = 11,
15094    k_EControllerActionOrigin_LeftPad_Swipe = 12,
15095    k_EControllerActionOrigin_LeftPad_Click = 13,
15096    k_EControllerActionOrigin_LeftPad_DPadNorth = 14,
15097    k_EControllerActionOrigin_LeftPad_DPadSouth = 15,
15098    k_EControllerActionOrigin_LeftPad_DPadWest = 16,
15099    k_EControllerActionOrigin_LeftPad_DPadEast = 17,
15100    k_EControllerActionOrigin_RightPad_Touch = 18,
15101    k_EControllerActionOrigin_RightPad_Swipe = 19,
15102    k_EControllerActionOrigin_RightPad_Click = 20,
15103    k_EControllerActionOrigin_RightPad_DPadNorth = 21,
15104    k_EControllerActionOrigin_RightPad_DPadSouth = 22,
15105    k_EControllerActionOrigin_RightPad_DPadWest = 23,
15106    k_EControllerActionOrigin_RightPad_DPadEast = 24,
15107    k_EControllerActionOrigin_LeftTrigger_Pull = 25,
15108    k_EControllerActionOrigin_LeftTrigger_Click = 26,
15109    k_EControllerActionOrigin_RightTrigger_Pull = 27,
15110    k_EControllerActionOrigin_RightTrigger_Click = 28,
15111    k_EControllerActionOrigin_LeftStick_Move = 29,
15112    k_EControllerActionOrigin_LeftStick_Click = 30,
15113    k_EControllerActionOrigin_LeftStick_DPadNorth = 31,
15114    k_EControllerActionOrigin_LeftStick_DPadSouth = 32,
15115    k_EControllerActionOrigin_LeftStick_DPadWest = 33,
15116    k_EControllerActionOrigin_LeftStick_DPadEast = 34,
15117    k_EControllerActionOrigin_Gyro_Move = 35,
15118    k_EControllerActionOrigin_Gyro_Pitch = 36,
15119    k_EControllerActionOrigin_Gyro_Yaw = 37,
15120    k_EControllerActionOrigin_Gyro_Roll = 38,
15121    k_EControllerActionOrigin_PS4_X = 39,
15122    k_EControllerActionOrigin_PS4_Circle = 40,
15123    k_EControllerActionOrigin_PS4_Triangle = 41,
15124    k_EControllerActionOrigin_PS4_Square = 42,
15125    k_EControllerActionOrigin_PS4_LeftBumper = 43,
15126    k_EControllerActionOrigin_PS4_RightBumper = 44,
15127    k_EControllerActionOrigin_PS4_Options = 45,
15128    k_EControllerActionOrigin_PS4_Share = 46,
15129    k_EControllerActionOrigin_PS4_LeftPad_Touch = 47,
15130    k_EControllerActionOrigin_PS4_LeftPad_Swipe = 48,
15131    k_EControllerActionOrigin_PS4_LeftPad_Click = 49,
15132    k_EControllerActionOrigin_PS4_LeftPad_DPadNorth = 50,
15133    k_EControllerActionOrigin_PS4_LeftPad_DPadSouth = 51,
15134    k_EControllerActionOrigin_PS4_LeftPad_DPadWest = 52,
15135    k_EControllerActionOrigin_PS4_LeftPad_DPadEast = 53,
15136    k_EControllerActionOrigin_PS4_RightPad_Touch = 54,
15137    k_EControllerActionOrigin_PS4_RightPad_Swipe = 55,
15138    k_EControllerActionOrigin_PS4_RightPad_Click = 56,
15139    k_EControllerActionOrigin_PS4_RightPad_DPadNorth = 57,
15140    k_EControllerActionOrigin_PS4_RightPad_DPadSouth = 58,
15141    k_EControllerActionOrigin_PS4_RightPad_DPadWest = 59,
15142    k_EControllerActionOrigin_PS4_RightPad_DPadEast = 60,
15143    k_EControllerActionOrigin_PS4_CenterPad_Touch = 61,
15144    k_EControllerActionOrigin_PS4_CenterPad_Swipe = 62,
15145    k_EControllerActionOrigin_PS4_CenterPad_Click = 63,
15146    k_EControllerActionOrigin_PS4_CenterPad_DPadNorth = 64,
15147    k_EControllerActionOrigin_PS4_CenterPad_DPadSouth = 65,
15148    k_EControllerActionOrigin_PS4_CenterPad_DPadWest = 66,
15149    k_EControllerActionOrigin_PS4_CenterPad_DPadEast = 67,
15150    k_EControllerActionOrigin_PS4_LeftTrigger_Pull = 68,
15151    k_EControllerActionOrigin_PS4_LeftTrigger_Click = 69,
15152    k_EControllerActionOrigin_PS4_RightTrigger_Pull = 70,
15153    k_EControllerActionOrigin_PS4_RightTrigger_Click = 71,
15154    k_EControllerActionOrigin_PS4_LeftStick_Move = 72,
15155    k_EControllerActionOrigin_PS4_LeftStick_Click = 73,
15156    k_EControllerActionOrigin_PS4_LeftStick_DPadNorth = 74,
15157    k_EControllerActionOrigin_PS4_LeftStick_DPadSouth = 75,
15158    k_EControllerActionOrigin_PS4_LeftStick_DPadWest = 76,
15159    k_EControllerActionOrigin_PS4_LeftStick_DPadEast = 77,
15160    k_EControllerActionOrigin_PS4_RightStick_Move = 78,
15161    k_EControllerActionOrigin_PS4_RightStick_Click = 79,
15162    k_EControllerActionOrigin_PS4_RightStick_DPadNorth = 80,
15163    k_EControllerActionOrigin_PS4_RightStick_DPadSouth = 81,
15164    k_EControllerActionOrigin_PS4_RightStick_DPadWest = 82,
15165    k_EControllerActionOrigin_PS4_RightStick_DPadEast = 83,
15166    k_EControllerActionOrigin_PS4_DPad_North = 84,
15167    k_EControllerActionOrigin_PS4_DPad_South = 85,
15168    k_EControllerActionOrigin_PS4_DPad_West = 86,
15169    k_EControllerActionOrigin_PS4_DPad_East = 87,
15170    k_EControllerActionOrigin_PS4_Gyro_Move = 88,
15171    k_EControllerActionOrigin_PS4_Gyro_Pitch = 89,
15172    k_EControllerActionOrigin_PS4_Gyro_Yaw = 90,
15173    k_EControllerActionOrigin_PS4_Gyro_Roll = 91,
15174    k_EControllerActionOrigin_XBoxOne_A = 92,
15175    k_EControllerActionOrigin_XBoxOne_B = 93,
15176    k_EControllerActionOrigin_XBoxOne_X = 94,
15177    k_EControllerActionOrigin_XBoxOne_Y = 95,
15178    k_EControllerActionOrigin_XBoxOne_LeftBumper = 96,
15179    k_EControllerActionOrigin_XBoxOne_RightBumper = 97,
15180    k_EControllerActionOrigin_XBoxOne_Menu = 98,
15181    k_EControllerActionOrigin_XBoxOne_View = 99,
15182    k_EControllerActionOrigin_XBoxOne_LeftTrigger_Pull = 100,
15183    k_EControllerActionOrigin_XBoxOne_LeftTrigger_Click = 101,
15184    k_EControllerActionOrigin_XBoxOne_RightTrigger_Pull = 102,
15185    k_EControllerActionOrigin_XBoxOne_RightTrigger_Click = 103,
15186    k_EControllerActionOrigin_XBoxOne_LeftStick_Move = 104,
15187    k_EControllerActionOrigin_XBoxOne_LeftStick_Click = 105,
15188    k_EControllerActionOrigin_XBoxOne_LeftStick_DPadNorth = 106,
15189    k_EControllerActionOrigin_XBoxOne_LeftStick_DPadSouth = 107,
15190    k_EControllerActionOrigin_XBoxOne_LeftStick_DPadWest = 108,
15191    k_EControllerActionOrigin_XBoxOne_LeftStick_DPadEast = 109,
15192    k_EControllerActionOrigin_XBoxOne_RightStick_Move = 110,
15193    k_EControllerActionOrigin_XBoxOne_RightStick_Click = 111,
15194    k_EControllerActionOrigin_XBoxOne_RightStick_DPadNorth = 112,
15195    k_EControllerActionOrigin_XBoxOne_RightStick_DPadSouth = 113,
15196    k_EControllerActionOrigin_XBoxOne_RightStick_DPadWest = 114,
15197    k_EControllerActionOrigin_XBoxOne_RightStick_DPadEast = 115,
15198    k_EControllerActionOrigin_XBoxOne_DPad_North = 116,
15199    k_EControllerActionOrigin_XBoxOne_DPad_South = 117,
15200    k_EControllerActionOrigin_XBoxOne_DPad_West = 118,
15201    k_EControllerActionOrigin_XBoxOne_DPad_East = 119,
15202    k_EControllerActionOrigin_XBox360_A = 120,
15203    k_EControllerActionOrigin_XBox360_B = 121,
15204    k_EControllerActionOrigin_XBox360_X = 122,
15205    k_EControllerActionOrigin_XBox360_Y = 123,
15206    k_EControllerActionOrigin_XBox360_LeftBumper = 124,
15207    k_EControllerActionOrigin_XBox360_RightBumper = 125,
15208    k_EControllerActionOrigin_XBox360_Start = 126,
15209    k_EControllerActionOrigin_XBox360_Back = 127,
15210    k_EControllerActionOrigin_XBox360_LeftTrigger_Pull = 128,
15211    k_EControllerActionOrigin_XBox360_LeftTrigger_Click = 129,
15212    k_EControllerActionOrigin_XBox360_RightTrigger_Pull = 130,
15213    k_EControllerActionOrigin_XBox360_RightTrigger_Click = 131,
15214    k_EControllerActionOrigin_XBox360_LeftStick_Move = 132,
15215    k_EControllerActionOrigin_XBox360_LeftStick_Click = 133,
15216    k_EControllerActionOrigin_XBox360_LeftStick_DPadNorth = 134,
15217    k_EControllerActionOrigin_XBox360_LeftStick_DPadSouth = 135,
15218    k_EControllerActionOrigin_XBox360_LeftStick_DPadWest = 136,
15219    k_EControllerActionOrigin_XBox360_LeftStick_DPadEast = 137,
15220    k_EControllerActionOrigin_XBox360_RightStick_Move = 138,
15221    k_EControllerActionOrigin_XBox360_RightStick_Click = 139,
15222    k_EControllerActionOrigin_XBox360_RightStick_DPadNorth = 140,
15223    k_EControllerActionOrigin_XBox360_RightStick_DPadSouth = 141,
15224    k_EControllerActionOrigin_XBox360_RightStick_DPadWest = 142,
15225    k_EControllerActionOrigin_XBox360_RightStick_DPadEast = 143,
15226    k_EControllerActionOrigin_XBox360_DPad_North = 144,
15227    k_EControllerActionOrigin_XBox360_DPad_South = 145,
15228    k_EControllerActionOrigin_XBox360_DPad_West = 146,
15229    k_EControllerActionOrigin_XBox360_DPad_East = 147,
15230    k_EControllerActionOrigin_SteamV2_A = 148,
15231    k_EControllerActionOrigin_SteamV2_B = 149,
15232    k_EControllerActionOrigin_SteamV2_X = 150,
15233    k_EControllerActionOrigin_SteamV2_Y = 151,
15234    k_EControllerActionOrigin_SteamV2_LeftBumper = 152,
15235    k_EControllerActionOrigin_SteamV2_RightBumper = 153,
15236    k_EControllerActionOrigin_SteamV2_LeftGrip_Lower = 154,
15237    k_EControllerActionOrigin_SteamV2_LeftGrip_Upper = 155,
15238    k_EControllerActionOrigin_SteamV2_RightGrip_Lower = 156,
15239    k_EControllerActionOrigin_SteamV2_RightGrip_Upper = 157,
15240    k_EControllerActionOrigin_SteamV2_LeftBumper_Pressure = 158,
15241    k_EControllerActionOrigin_SteamV2_RightBumper_Pressure = 159,
15242    k_EControllerActionOrigin_SteamV2_LeftGrip_Pressure = 160,
15243    k_EControllerActionOrigin_SteamV2_RightGrip_Pressure = 161,
15244    k_EControllerActionOrigin_SteamV2_LeftGrip_Upper_Pressure = 162,
15245    k_EControllerActionOrigin_SteamV2_RightGrip_Upper_Pressure = 163,
15246    k_EControllerActionOrigin_SteamV2_Start = 164,
15247    k_EControllerActionOrigin_SteamV2_Back = 165,
15248    k_EControllerActionOrigin_SteamV2_LeftPad_Touch = 166,
15249    k_EControllerActionOrigin_SteamV2_LeftPad_Swipe = 167,
15250    k_EControllerActionOrigin_SteamV2_LeftPad_Click = 168,
15251    k_EControllerActionOrigin_SteamV2_LeftPad_Pressure = 169,
15252    k_EControllerActionOrigin_SteamV2_LeftPad_DPadNorth = 170,
15253    k_EControllerActionOrigin_SteamV2_LeftPad_DPadSouth = 171,
15254    k_EControllerActionOrigin_SteamV2_LeftPad_DPadWest = 172,
15255    k_EControllerActionOrigin_SteamV2_LeftPad_DPadEast = 173,
15256    k_EControllerActionOrigin_SteamV2_RightPad_Touch = 174,
15257    k_EControllerActionOrigin_SteamV2_RightPad_Swipe = 175,
15258    k_EControllerActionOrigin_SteamV2_RightPad_Click = 176,
15259    k_EControllerActionOrigin_SteamV2_RightPad_Pressure = 177,
15260    k_EControllerActionOrigin_SteamV2_RightPad_DPadNorth = 178,
15261    k_EControllerActionOrigin_SteamV2_RightPad_DPadSouth = 179,
15262    k_EControllerActionOrigin_SteamV2_RightPad_DPadWest = 180,
15263    k_EControllerActionOrigin_SteamV2_RightPad_DPadEast = 181,
15264    k_EControllerActionOrigin_SteamV2_LeftTrigger_Pull = 182,
15265    k_EControllerActionOrigin_SteamV2_LeftTrigger_Click = 183,
15266    k_EControllerActionOrigin_SteamV2_RightTrigger_Pull = 184,
15267    k_EControllerActionOrigin_SteamV2_RightTrigger_Click = 185,
15268    k_EControllerActionOrigin_SteamV2_LeftStick_Move = 186,
15269    k_EControllerActionOrigin_SteamV2_LeftStick_Click = 187,
15270    k_EControllerActionOrigin_SteamV2_LeftStick_DPadNorth = 188,
15271    k_EControllerActionOrigin_SteamV2_LeftStick_DPadSouth = 189,
15272    k_EControllerActionOrigin_SteamV2_LeftStick_DPadWest = 190,
15273    k_EControllerActionOrigin_SteamV2_LeftStick_DPadEast = 191,
15274    k_EControllerActionOrigin_SteamV2_Gyro_Move = 192,
15275    k_EControllerActionOrigin_SteamV2_Gyro_Pitch = 193,
15276    k_EControllerActionOrigin_SteamV2_Gyro_Yaw = 194,
15277    k_EControllerActionOrigin_SteamV2_Gyro_Roll = 195,
15278    k_EControllerActionOrigin_Switch_A = 196,
15279    k_EControllerActionOrigin_Switch_B = 197,
15280    k_EControllerActionOrigin_Switch_X = 198,
15281    k_EControllerActionOrigin_Switch_Y = 199,
15282    k_EControllerActionOrigin_Switch_LeftBumper = 200,
15283    k_EControllerActionOrigin_Switch_RightBumper = 201,
15284    k_EControllerActionOrigin_Switch_Plus = 202,
15285    k_EControllerActionOrigin_Switch_Minus = 203,
15286    k_EControllerActionOrigin_Switch_Capture = 204,
15287    k_EControllerActionOrigin_Switch_LeftTrigger_Pull = 205,
15288    k_EControllerActionOrigin_Switch_LeftTrigger_Click = 206,
15289    k_EControllerActionOrigin_Switch_RightTrigger_Pull = 207,
15290    k_EControllerActionOrigin_Switch_RightTrigger_Click = 208,
15291    k_EControllerActionOrigin_Switch_LeftStick_Move = 209,
15292    k_EControllerActionOrigin_Switch_LeftStick_Click = 210,
15293    k_EControllerActionOrigin_Switch_LeftStick_DPadNorth = 211,
15294    k_EControllerActionOrigin_Switch_LeftStick_DPadSouth = 212,
15295    k_EControllerActionOrigin_Switch_LeftStick_DPadWest = 213,
15296    k_EControllerActionOrigin_Switch_LeftStick_DPadEast = 214,
15297    k_EControllerActionOrigin_Switch_RightStick_Move = 215,
15298    k_EControllerActionOrigin_Switch_RightStick_Click = 216,
15299    k_EControllerActionOrigin_Switch_RightStick_DPadNorth = 217,
15300    k_EControllerActionOrigin_Switch_RightStick_DPadSouth = 218,
15301    k_EControllerActionOrigin_Switch_RightStick_DPadWest = 219,
15302    k_EControllerActionOrigin_Switch_RightStick_DPadEast = 220,
15303    k_EControllerActionOrigin_Switch_DPad_North = 221,
15304    k_EControllerActionOrigin_Switch_DPad_South = 222,
15305    k_EControllerActionOrigin_Switch_DPad_West = 223,
15306    k_EControllerActionOrigin_Switch_DPad_East = 224,
15307    k_EControllerActionOrigin_Switch_ProGyro_Move = 225,
15308    k_EControllerActionOrigin_Switch_ProGyro_Pitch = 226,
15309    k_EControllerActionOrigin_Switch_ProGyro_Yaw = 227,
15310    k_EControllerActionOrigin_Switch_ProGyro_Roll = 228,
15311    k_EControllerActionOrigin_Switch_RightGyro_Move = 229,
15312    k_EControllerActionOrigin_Switch_RightGyro_Pitch = 230,
15313    k_EControllerActionOrigin_Switch_RightGyro_Yaw = 231,
15314    k_EControllerActionOrigin_Switch_RightGyro_Roll = 232,
15315    k_EControllerActionOrigin_Switch_LeftGyro_Move = 233,
15316    k_EControllerActionOrigin_Switch_LeftGyro_Pitch = 234,
15317    k_EControllerActionOrigin_Switch_LeftGyro_Yaw = 235,
15318    k_EControllerActionOrigin_Switch_LeftGyro_Roll = 236,
15319    k_EControllerActionOrigin_Switch_LeftGrip_Lower = 237,
15320    k_EControllerActionOrigin_Switch_LeftGrip_Upper = 238,
15321    k_EControllerActionOrigin_Switch_RightGrip_Lower = 239,
15322    k_EControllerActionOrigin_Switch_RightGrip_Upper = 240,
15323    k_EControllerActionOrigin_PS4_DPad_Move = 241,
15324    k_EControllerActionOrigin_XBoxOne_DPad_Move = 242,
15325    k_EControllerActionOrigin_XBox360_DPad_Move = 243,
15326    k_EControllerActionOrigin_Switch_DPad_Move = 244,
15327    k_EControllerActionOrigin_PS5_X = 245,
15328    k_EControllerActionOrigin_PS5_Circle = 246,
15329    k_EControllerActionOrigin_PS5_Triangle = 247,
15330    k_EControllerActionOrigin_PS5_Square = 248,
15331    k_EControllerActionOrigin_PS5_LeftBumper = 249,
15332    k_EControllerActionOrigin_PS5_RightBumper = 250,
15333    k_EControllerActionOrigin_PS5_Option = 251,
15334    k_EControllerActionOrigin_PS5_Create = 252,
15335    k_EControllerActionOrigin_PS5_Mute = 253,
15336    k_EControllerActionOrigin_PS5_LeftPad_Touch = 254,
15337    k_EControllerActionOrigin_PS5_LeftPad_Swipe = 255,
15338    k_EControllerActionOrigin_PS5_LeftPad_Click = 256,
15339    k_EControllerActionOrigin_PS5_LeftPad_DPadNorth = 257,
15340    k_EControllerActionOrigin_PS5_LeftPad_DPadSouth = 258,
15341    k_EControllerActionOrigin_PS5_LeftPad_DPadWest = 259,
15342    k_EControllerActionOrigin_PS5_LeftPad_DPadEast = 260,
15343    k_EControllerActionOrigin_PS5_RightPad_Touch = 261,
15344    k_EControllerActionOrigin_PS5_RightPad_Swipe = 262,
15345    k_EControllerActionOrigin_PS5_RightPad_Click = 263,
15346    k_EControllerActionOrigin_PS5_RightPad_DPadNorth = 264,
15347    k_EControllerActionOrigin_PS5_RightPad_DPadSouth = 265,
15348    k_EControllerActionOrigin_PS5_RightPad_DPadWest = 266,
15349    k_EControllerActionOrigin_PS5_RightPad_DPadEast = 267,
15350    k_EControllerActionOrigin_PS5_CenterPad_Touch = 268,
15351    k_EControllerActionOrigin_PS5_CenterPad_Swipe = 269,
15352    k_EControllerActionOrigin_PS5_CenterPad_Click = 270,
15353    k_EControllerActionOrigin_PS5_CenterPad_DPadNorth = 271,
15354    k_EControllerActionOrigin_PS5_CenterPad_DPadSouth = 272,
15355    k_EControllerActionOrigin_PS5_CenterPad_DPadWest = 273,
15356    k_EControllerActionOrigin_PS5_CenterPad_DPadEast = 274,
15357    k_EControllerActionOrigin_PS5_LeftTrigger_Pull = 275,
15358    k_EControllerActionOrigin_PS5_LeftTrigger_Click = 276,
15359    k_EControllerActionOrigin_PS5_RightTrigger_Pull = 277,
15360    k_EControllerActionOrigin_PS5_RightTrigger_Click = 278,
15361    k_EControllerActionOrigin_PS5_LeftStick_Move = 279,
15362    k_EControllerActionOrigin_PS5_LeftStick_Click = 280,
15363    k_EControllerActionOrigin_PS5_LeftStick_DPadNorth = 281,
15364    k_EControllerActionOrigin_PS5_LeftStick_DPadSouth = 282,
15365    k_EControllerActionOrigin_PS5_LeftStick_DPadWest = 283,
15366    k_EControllerActionOrigin_PS5_LeftStick_DPadEast = 284,
15367    k_EControllerActionOrigin_PS5_RightStick_Move = 285,
15368    k_EControllerActionOrigin_PS5_RightStick_Click = 286,
15369    k_EControllerActionOrigin_PS5_RightStick_DPadNorth = 287,
15370    k_EControllerActionOrigin_PS5_RightStick_DPadSouth = 288,
15371    k_EControllerActionOrigin_PS5_RightStick_DPadWest = 289,
15372    k_EControllerActionOrigin_PS5_RightStick_DPadEast = 290,
15373    k_EControllerActionOrigin_PS5_DPad_Move = 291,
15374    k_EControllerActionOrigin_PS5_DPad_North = 292,
15375    k_EControllerActionOrigin_PS5_DPad_South = 293,
15376    k_EControllerActionOrigin_PS5_DPad_West = 294,
15377    k_EControllerActionOrigin_PS5_DPad_East = 295,
15378    k_EControllerActionOrigin_PS5_Gyro_Move = 296,
15379    k_EControllerActionOrigin_PS5_Gyro_Pitch = 297,
15380    k_EControllerActionOrigin_PS5_Gyro_Yaw = 298,
15381    k_EControllerActionOrigin_PS5_Gyro_Roll = 299,
15382    k_EControllerActionOrigin_XBoxOne_LeftGrip_Lower = 300,
15383    k_EControllerActionOrigin_XBoxOne_LeftGrip_Upper = 301,
15384    k_EControllerActionOrigin_XBoxOne_RightGrip_Lower = 302,
15385    k_EControllerActionOrigin_XBoxOne_RightGrip_Upper = 303,
15386    k_EControllerActionOrigin_XBoxOne_Share = 304,
15387    k_EControllerActionOrigin_SteamDeck_A = 305,
15388    k_EControllerActionOrigin_SteamDeck_B = 306,
15389    k_EControllerActionOrigin_SteamDeck_X = 307,
15390    k_EControllerActionOrigin_SteamDeck_Y = 308,
15391    k_EControllerActionOrigin_SteamDeck_L1 = 309,
15392    k_EControllerActionOrigin_SteamDeck_R1 = 310,
15393    k_EControllerActionOrigin_SteamDeck_Menu = 311,
15394    k_EControllerActionOrigin_SteamDeck_View = 312,
15395    k_EControllerActionOrigin_SteamDeck_LeftPad_Touch = 313,
15396    k_EControllerActionOrigin_SteamDeck_LeftPad_Swipe = 314,
15397    k_EControllerActionOrigin_SteamDeck_LeftPad_Click = 315,
15398    k_EControllerActionOrigin_SteamDeck_LeftPad_DPadNorth = 316,
15399    k_EControllerActionOrigin_SteamDeck_LeftPad_DPadSouth = 317,
15400    k_EControllerActionOrigin_SteamDeck_LeftPad_DPadWest = 318,
15401    k_EControllerActionOrigin_SteamDeck_LeftPad_DPadEast = 319,
15402    k_EControllerActionOrigin_SteamDeck_RightPad_Touch = 320,
15403    k_EControllerActionOrigin_SteamDeck_RightPad_Swipe = 321,
15404    k_EControllerActionOrigin_SteamDeck_RightPad_Click = 322,
15405    k_EControllerActionOrigin_SteamDeck_RightPad_DPadNorth = 323,
15406    k_EControllerActionOrigin_SteamDeck_RightPad_DPadSouth = 324,
15407    k_EControllerActionOrigin_SteamDeck_RightPad_DPadWest = 325,
15408    k_EControllerActionOrigin_SteamDeck_RightPad_DPadEast = 326,
15409    k_EControllerActionOrigin_SteamDeck_L2_SoftPull = 327,
15410    k_EControllerActionOrigin_SteamDeck_L2 = 328,
15411    k_EControllerActionOrigin_SteamDeck_R2_SoftPull = 329,
15412    k_EControllerActionOrigin_SteamDeck_R2 = 330,
15413    k_EControllerActionOrigin_SteamDeck_LeftStick_Move = 331,
15414    k_EControllerActionOrigin_SteamDeck_L3 = 332,
15415    k_EControllerActionOrigin_SteamDeck_LeftStick_DPadNorth = 333,
15416    k_EControllerActionOrigin_SteamDeck_LeftStick_DPadSouth = 334,
15417    k_EControllerActionOrigin_SteamDeck_LeftStick_DPadWest = 335,
15418    k_EControllerActionOrigin_SteamDeck_LeftStick_DPadEast = 336,
15419    k_EControllerActionOrigin_SteamDeck_LeftStick_Touch = 337,
15420    k_EControllerActionOrigin_SteamDeck_RightStick_Move = 338,
15421    k_EControllerActionOrigin_SteamDeck_R3 = 339,
15422    k_EControllerActionOrigin_SteamDeck_RightStick_DPadNorth = 340,
15423    k_EControllerActionOrigin_SteamDeck_RightStick_DPadSouth = 341,
15424    k_EControllerActionOrigin_SteamDeck_RightStick_DPadWest = 342,
15425    k_EControllerActionOrigin_SteamDeck_RightStick_DPadEast = 343,
15426    k_EControllerActionOrigin_SteamDeck_RightStick_Touch = 344,
15427    k_EControllerActionOrigin_SteamDeck_L4 = 345,
15428    k_EControllerActionOrigin_SteamDeck_R4 = 346,
15429    k_EControllerActionOrigin_SteamDeck_L5 = 347,
15430    k_EControllerActionOrigin_SteamDeck_R5 = 348,
15431    k_EControllerActionOrigin_SteamDeck_DPad_Move = 349,
15432    k_EControllerActionOrigin_SteamDeck_DPad_North = 350,
15433    k_EControllerActionOrigin_SteamDeck_DPad_South = 351,
15434    k_EControllerActionOrigin_SteamDeck_DPad_West = 352,
15435    k_EControllerActionOrigin_SteamDeck_DPad_East = 353,
15436    k_EControllerActionOrigin_SteamDeck_Gyro_Move = 354,
15437    k_EControllerActionOrigin_SteamDeck_Gyro_Pitch = 355,
15438    k_EControllerActionOrigin_SteamDeck_Gyro_Yaw = 356,
15439    k_EControllerActionOrigin_SteamDeck_Gyro_Roll = 357,
15440    k_EControllerActionOrigin_SteamDeck_Reserved1 = 358,
15441    k_EControllerActionOrigin_SteamDeck_Reserved2 = 359,
15442    k_EControllerActionOrigin_SteamDeck_Reserved3 = 360,
15443    k_EControllerActionOrigin_SteamDeck_Reserved4 = 361,
15444    k_EControllerActionOrigin_SteamDeck_Reserved5 = 362,
15445    k_EControllerActionOrigin_SteamDeck_Reserved6 = 363,
15446    k_EControllerActionOrigin_SteamDeck_Reserved7 = 364,
15447    k_EControllerActionOrigin_SteamDeck_Reserved8 = 365,
15448    k_EControllerActionOrigin_SteamDeck_Reserved9 = 366,
15449    k_EControllerActionOrigin_SteamDeck_Reserved10 = 367,
15450    k_EControllerActionOrigin_SteamDeck_Reserved11 = 368,
15451    k_EControllerActionOrigin_SteamDeck_Reserved12 = 369,
15452    k_EControllerActionOrigin_SteamDeck_Reserved13 = 370,
15453    k_EControllerActionOrigin_SteamDeck_Reserved14 = 371,
15454    k_EControllerActionOrigin_SteamDeck_Reserved15 = 372,
15455    k_EControllerActionOrigin_SteamDeck_Reserved16 = 373,
15456    k_EControllerActionOrigin_SteamDeck_Reserved17 = 374,
15457    k_EControllerActionOrigin_SteamDeck_Reserved18 = 375,
15458    k_EControllerActionOrigin_SteamDeck_Reserved19 = 376,
15459    k_EControllerActionOrigin_SteamDeck_Reserved20 = 377,
15460    k_EControllerActionOrigin_Switch_JoyConButton_N = 378,
15461    k_EControllerActionOrigin_Switch_JoyConButton_E = 379,
15462    k_EControllerActionOrigin_Switch_JoyConButton_S = 380,
15463    k_EControllerActionOrigin_Switch_JoyConButton_W = 381,
15464    k_EControllerActionOrigin_PS5_LeftGrip = 382,
15465    k_EControllerActionOrigin_PS5_RightGrip = 383,
15466    k_EControllerActionOrigin_PS5_LeftFn = 384,
15467    k_EControllerActionOrigin_PS5_RightFn = 385,
15468    k_EControllerActionOrigin_Count = 386,
15469    k_EControllerActionOrigin_MaximumPossibleValue = 32767,
15470}
15471#[repr(u32)]
15472#[non_exhaustive]
15473#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
15474pub enum ESteamControllerLEDFlag {
15475    k_ESteamControllerLEDFlag_SetColor = 0,
15476    k_ESteamControllerLEDFlag_RestoreUserDefault = 1,
15477}
15478pub type ControllerHandle_t = uint64;
15479pub type ControllerActionSetHandle_t = uint64;
15480pub type ControllerDigitalActionHandle_t = uint64;
15481pub type ControllerAnalogActionHandle_t = uint64;
15482#[repr(C)]
15483pub struct ISteamController__bindgen_vtable(::std::os::raw::c_void);
15484#[repr(C)]
15485#[derive(Debug, Copy, Clone)]
15486pub struct ISteamController {
15487    pub vtable_: *const ISteamController__bindgen_vtable,
15488}
15489#[test]
15490fn bindgen_test_layout_ISteamController() {
15491    assert_eq!(
15492        ::std::mem::size_of::<ISteamController>(),
15493        8usize,
15494        concat!("Size of: ", stringify!(ISteamController))
15495    );
15496    assert_eq!(
15497        ::std::mem::align_of::<ISteamController>(),
15498        8usize,
15499        concat!("Alignment of ", stringify!(ISteamController))
15500    );
15501}
15502pub type UGCQueryHandle_t = uint64;
15503pub type UGCUpdateHandle_t = uint64;
15504pub const k_UGCQueryHandleInvalid: UGCQueryHandle_t = 18446744073709551615;
15505pub const k_UGCUpdateHandleInvalid: UGCUpdateHandle_t = 18446744073709551615;
15506#[repr(i32)]
15507#[non_exhaustive]
15508#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
15509pub enum EUGCMatchingUGCType {
15510    k_EUGCMatchingUGCType_Items = 0,
15511    k_EUGCMatchingUGCType_Items_Mtx = 1,
15512    k_EUGCMatchingUGCType_Items_ReadyToUse = 2,
15513    k_EUGCMatchingUGCType_Collections = 3,
15514    k_EUGCMatchingUGCType_Artwork = 4,
15515    k_EUGCMatchingUGCType_Videos = 5,
15516    k_EUGCMatchingUGCType_Screenshots = 6,
15517    k_EUGCMatchingUGCType_AllGuides = 7,
15518    k_EUGCMatchingUGCType_WebGuides = 8,
15519    k_EUGCMatchingUGCType_IntegratedGuides = 9,
15520    k_EUGCMatchingUGCType_UsableInGame = 10,
15521    k_EUGCMatchingUGCType_ControllerBindings = 11,
15522    k_EUGCMatchingUGCType_GameManagedItems = 12,
15523    k_EUGCMatchingUGCType_All = -1,
15524}
15525#[repr(u32)]
15526#[non_exhaustive]
15527#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
15528pub enum EUserUGCList {
15529    k_EUserUGCList_Published = 0,
15530    k_EUserUGCList_VotedOn = 1,
15531    k_EUserUGCList_VotedUp = 2,
15532    k_EUserUGCList_VotedDown = 3,
15533    k_EUserUGCList_WillVoteLater = 4,
15534    k_EUserUGCList_Favorited = 5,
15535    k_EUserUGCList_Subscribed = 6,
15536    k_EUserUGCList_UsedOrPlayed = 7,
15537    k_EUserUGCList_Followed = 8,
15538}
15539#[repr(u32)]
15540#[non_exhaustive]
15541#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
15542pub enum EUserUGCListSortOrder {
15543    k_EUserUGCListSortOrder_CreationOrderDesc = 0,
15544    k_EUserUGCListSortOrder_CreationOrderAsc = 1,
15545    k_EUserUGCListSortOrder_TitleAsc = 2,
15546    k_EUserUGCListSortOrder_LastUpdatedDesc = 3,
15547    k_EUserUGCListSortOrder_SubscriptionDateDesc = 4,
15548    k_EUserUGCListSortOrder_VoteScoreDesc = 5,
15549    k_EUserUGCListSortOrder_ForModeration = 6,
15550}
15551#[repr(u32)]
15552#[non_exhaustive]
15553#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
15554pub enum EUGCQuery {
15555    k_EUGCQuery_RankedByVote = 0,
15556    k_EUGCQuery_RankedByPublicationDate = 1,
15557    k_EUGCQuery_AcceptedForGameRankedByAcceptanceDate = 2,
15558    k_EUGCQuery_RankedByTrend = 3,
15559    k_EUGCQuery_FavoritedByFriendsRankedByPublicationDate = 4,
15560    k_EUGCQuery_CreatedByFriendsRankedByPublicationDate = 5,
15561    k_EUGCQuery_RankedByNumTimesReported = 6,
15562    k_EUGCQuery_CreatedByFollowedUsersRankedByPublicationDate = 7,
15563    k_EUGCQuery_NotYetRated = 8,
15564    k_EUGCQuery_RankedByTotalVotesAsc = 9,
15565    k_EUGCQuery_RankedByVotesUp = 10,
15566    k_EUGCQuery_RankedByTextSearch = 11,
15567    k_EUGCQuery_RankedByTotalUniqueSubscriptions = 12,
15568    k_EUGCQuery_RankedByPlaytimeTrend = 13,
15569    k_EUGCQuery_RankedByTotalPlaytime = 14,
15570    k_EUGCQuery_RankedByAveragePlaytimeTrend = 15,
15571    k_EUGCQuery_RankedByLifetimeAveragePlaytime = 16,
15572    k_EUGCQuery_RankedByPlaytimeSessionsTrend = 17,
15573    k_EUGCQuery_RankedByLifetimePlaytimeSessions = 18,
15574    k_EUGCQuery_RankedByLastUpdatedDate = 19,
15575}
15576#[repr(u32)]
15577#[non_exhaustive]
15578#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
15579pub enum EItemUpdateStatus {
15580    k_EItemUpdateStatusInvalid = 0,
15581    k_EItemUpdateStatusPreparingConfig = 1,
15582    k_EItemUpdateStatusPreparingContent = 2,
15583    k_EItemUpdateStatusUploadingContent = 3,
15584    k_EItemUpdateStatusUploadingPreviewFile = 4,
15585    k_EItemUpdateStatusCommittingChanges = 5,
15586}
15587#[repr(u32)]
15588#[non_exhaustive]
15589#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
15590pub enum EItemState {
15591    k_EItemStateNone = 0,
15592    k_EItemStateSubscribed = 1,
15593    k_EItemStateLegacyItem = 2,
15594    k_EItemStateInstalled = 4,
15595    k_EItemStateNeedsUpdate = 8,
15596    k_EItemStateDownloading = 16,
15597    k_EItemStateDownloadPending = 32,
15598}
15599#[repr(u32)]
15600#[non_exhaustive]
15601#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
15602pub enum EItemStatistic {
15603    k_EItemStatistic_NumSubscriptions = 0,
15604    k_EItemStatistic_NumFavorites = 1,
15605    k_EItemStatistic_NumFollowers = 2,
15606    k_EItemStatistic_NumUniqueSubscriptions = 3,
15607    k_EItemStatistic_NumUniqueFavorites = 4,
15608    k_EItemStatistic_NumUniqueFollowers = 5,
15609    k_EItemStatistic_NumUniqueWebsiteViews = 6,
15610    k_EItemStatistic_ReportScore = 7,
15611    k_EItemStatistic_NumSecondsPlayed = 8,
15612    k_EItemStatistic_NumPlaytimeSessions = 9,
15613    k_EItemStatistic_NumComments = 10,
15614    k_EItemStatistic_NumSecondsPlayedDuringTimePeriod = 11,
15615    k_EItemStatistic_NumPlaytimeSessionsDuringTimePeriod = 12,
15616}
15617#[repr(u32)]
15618#[non_exhaustive]
15619#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
15620pub enum EItemPreviewType {
15621    k_EItemPreviewType_Image = 0,
15622    k_EItemPreviewType_YouTubeVideo = 1,
15623    k_EItemPreviewType_Sketchfab = 2,
15624    k_EItemPreviewType_EnvironmentMap_HorizontalCross = 3,
15625    k_EItemPreviewType_EnvironmentMap_LatLong = 4,
15626    k_EItemPreviewType_ReservedMax = 255,
15627}
15628#[repr(u32)]
15629#[non_exhaustive]
15630#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
15631pub enum EUGCContentDescriptorID {
15632    k_EUGCContentDescriptor_NudityOrSexualContent = 1,
15633    k_EUGCContentDescriptor_FrequentViolenceOrGore = 2,
15634    k_EUGCContentDescriptor_AdultOnlySexualContent = 3,
15635    k_EUGCContentDescriptor_GratuitousSexualContent = 4,
15636    k_EUGCContentDescriptor_AnyMatureContent = 5,
15637}
15638pub const kNumUGCResultsPerPage: uint32 = 50;
15639pub const k_cchDeveloperMetadataMax: uint32 = 5000;
15640#[repr(C, packed(4))]
15641#[derive(Debug, Copy, Clone)]
15642pub struct SteamUGCDetails_t {
15643    pub m_nPublishedFileId: PublishedFileId_t,
15644    pub m_eResult: EResult,
15645    pub m_eFileType: EWorkshopFileType,
15646    pub m_nCreatorAppID: AppId_t,
15647    pub m_nConsumerAppID: AppId_t,
15648    pub m_rgchTitle: [::std::os::raw::c_char; 129usize],
15649    pub m_rgchDescription: [::std::os::raw::c_char; 8000usize],
15650    pub m_ulSteamIDOwner: uint64,
15651    pub m_rtimeCreated: uint32,
15652    pub m_rtimeUpdated: uint32,
15653    pub m_rtimeAddedToUserList: uint32,
15654    pub m_eVisibility: ERemoteStoragePublishedFileVisibility,
15655    pub m_bBanned: bool,
15656    pub m_bAcceptedForUse: bool,
15657    pub m_bTagsTruncated: bool,
15658    pub m_rgchTags: [::std::os::raw::c_char; 1025usize],
15659    pub m_hFile: UGCHandle_t,
15660    pub m_hPreviewFile: UGCHandle_t,
15661    pub m_pchFileName: [::std::os::raw::c_char; 260usize],
15662    pub m_nFileSize: int32,
15663    pub m_nPreviewFileSize: int32,
15664    pub m_rgchURL: [::std::os::raw::c_char; 256usize],
15665    pub m_unVotesUp: uint32,
15666    pub m_unVotesDown: uint32,
15667    pub m_flScore: f32,
15668    pub m_unNumChildren: uint32,
15669}
15670#[test]
15671fn bindgen_test_layout_SteamUGCDetails_t() {
15672    const UNINIT: ::std::mem::MaybeUninit<SteamUGCDetails_t> = ::std::mem::MaybeUninit::uninit();
15673    let ptr = UNINIT.as_ptr();
15674    assert_eq!(
15675        ::std::mem::size_of::<SteamUGCDetails_t>(),
15676        9764usize,
15677        concat!("Size of: ", stringify!(SteamUGCDetails_t))
15678    );
15679    assert_eq!(
15680        ::std::mem::align_of::<SteamUGCDetails_t>(),
15681        4usize,
15682        concat!("Alignment of ", stringify!(SteamUGCDetails_t))
15683    );
15684    assert_eq!(
15685        unsafe { ::std::ptr::addr_of!((*ptr).m_nPublishedFileId) as usize - ptr as usize },
15686        0usize,
15687        concat!(
15688            "Offset of field: ",
15689            stringify!(SteamUGCDetails_t),
15690            "::",
15691            stringify!(m_nPublishedFileId)
15692        )
15693    );
15694    assert_eq!(
15695        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
15696        8usize,
15697        concat!(
15698            "Offset of field: ",
15699            stringify!(SteamUGCDetails_t),
15700            "::",
15701            stringify!(m_eResult)
15702        )
15703    );
15704    assert_eq!(
15705        unsafe { ::std::ptr::addr_of!((*ptr).m_eFileType) as usize - ptr as usize },
15706        12usize,
15707        concat!(
15708            "Offset of field: ",
15709            stringify!(SteamUGCDetails_t),
15710            "::",
15711            stringify!(m_eFileType)
15712        )
15713    );
15714    assert_eq!(
15715        unsafe { ::std::ptr::addr_of!((*ptr).m_nCreatorAppID) as usize - ptr as usize },
15716        16usize,
15717        concat!(
15718            "Offset of field: ",
15719            stringify!(SteamUGCDetails_t),
15720            "::",
15721            stringify!(m_nCreatorAppID)
15722        )
15723    );
15724    assert_eq!(
15725        unsafe { ::std::ptr::addr_of!((*ptr).m_nConsumerAppID) as usize - ptr as usize },
15726        20usize,
15727        concat!(
15728            "Offset of field: ",
15729            stringify!(SteamUGCDetails_t),
15730            "::",
15731            stringify!(m_nConsumerAppID)
15732        )
15733    );
15734    assert_eq!(
15735        unsafe { ::std::ptr::addr_of!((*ptr).m_rgchTitle) as usize - ptr as usize },
15736        24usize,
15737        concat!(
15738            "Offset of field: ",
15739            stringify!(SteamUGCDetails_t),
15740            "::",
15741            stringify!(m_rgchTitle)
15742        )
15743    );
15744    assert_eq!(
15745        unsafe { ::std::ptr::addr_of!((*ptr).m_rgchDescription) as usize - ptr as usize },
15746        153usize,
15747        concat!(
15748            "Offset of field: ",
15749            stringify!(SteamUGCDetails_t),
15750            "::",
15751            stringify!(m_rgchDescription)
15752        )
15753    );
15754    assert_eq!(
15755        unsafe { ::std::ptr::addr_of!((*ptr).m_ulSteamIDOwner) as usize - ptr as usize },
15756        8156usize,
15757        concat!(
15758            "Offset of field: ",
15759            stringify!(SteamUGCDetails_t),
15760            "::",
15761            stringify!(m_ulSteamIDOwner)
15762        )
15763    );
15764    assert_eq!(
15765        unsafe { ::std::ptr::addr_of!((*ptr).m_rtimeCreated) as usize - ptr as usize },
15766        8164usize,
15767        concat!(
15768            "Offset of field: ",
15769            stringify!(SteamUGCDetails_t),
15770            "::",
15771            stringify!(m_rtimeCreated)
15772        )
15773    );
15774    assert_eq!(
15775        unsafe { ::std::ptr::addr_of!((*ptr).m_rtimeUpdated) as usize - ptr as usize },
15776        8168usize,
15777        concat!(
15778            "Offset of field: ",
15779            stringify!(SteamUGCDetails_t),
15780            "::",
15781            stringify!(m_rtimeUpdated)
15782        )
15783    );
15784    assert_eq!(
15785        unsafe { ::std::ptr::addr_of!((*ptr).m_rtimeAddedToUserList) as usize - ptr as usize },
15786        8172usize,
15787        concat!(
15788            "Offset of field: ",
15789            stringify!(SteamUGCDetails_t),
15790            "::",
15791            stringify!(m_rtimeAddedToUserList)
15792        )
15793    );
15794    assert_eq!(
15795        unsafe { ::std::ptr::addr_of!((*ptr).m_eVisibility) as usize - ptr as usize },
15796        8176usize,
15797        concat!(
15798            "Offset of field: ",
15799            stringify!(SteamUGCDetails_t),
15800            "::",
15801            stringify!(m_eVisibility)
15802        )
15803    );
15804    assert_eq!(
15805        unsafe { ::std::ptr::addr_of!((*ptr).m_bBanned) as usize - ptr as usize },
15806        8180usize,
15807        concat!(
15808            "Offset of field: ",
15809            stringify!(SteamUGCDetails_t),
15810            "::",
15811            stringify!(m_bBanned)
15812        )
15813    );
15814    assert_eq!(
15815        unsafe { ::std::ptr::addr_of!((*ptr).m_bAcceptedForUse) as usize - ptr as usize },
15816        8181usize,
15817        concat!(
15818            "Offset of field: ",
15819            stringify!(SteamUGCDetails_t),
15820            "::",
15821            stringify!(m_bAcceptedForUse)
15822        )
15823    );
15824    assert_eq!(
15825        unsafe { ::std::ptr::addr_of!((*ptr).m_bTagsTruncated) as usize - ptr as usize },
15826        8182usize,
15827        concat!(
15828            "Offset of field: ",
15829            stringify!(SteamUGCDetails_t),
15830            "::",
15831            stringify!(m_bTagsTruncated)
15832        )
15833    );
15834    assert_eq!(
15835        unsafe { ::std::ptr::addr_of!((*ptr).m_rgchTags) as usize - ptr as usize },
15836        8183usize,
15837        concat!(
15838            "Offset of field: ",
15839            stringify!(SteamUGCDetails_t),
15840            "::",
15841            stringify!(m_rgchTags)
15842        )
15843    );
15844    assert_eq!(
15845        unsafe { ::std::ptr::addr_of!((*ptr).m_hFile) as usize - ptr as usize },
15846        9208usize,
15847        concat!(
15848            "Offset of field: ",
15849            stringify!(SteamUGCDetails_t),
15850            "::",
15851            stringify!(m_hFile)
15852        )
15853    );
15854    assert_eq!(
15855        unsafe { ::std::ptr::addr_of!((*ptr).m_hPreviewFile) as usize - ptr as usize },
15856        9216usize,
15857        concat!(
15858            "Offset of field: ",
15859            stringify!(SteamUGCDetails_t),
15860            "::",
15861            stringify!(m_hPreviewFile)
15862        )
15863    );
15864    assert_eq!(
15865        unsafe { ::std::ptr::addr_of!((*ptr).m_pchFileName) as usize - ptr as usize },
15866        9224usize,
15867        concat!(
15868            "Offset of field: ",
15869            stringify!(SteamUGCDetails_t),
15870            "::",
15871            stringify!(m_pchFileName)
15872        )
15873    );
15874    assert_eq!(
15875        unsafe { ::std::ptr::addr_of!((*ptr).m_nFileSize) as usize - ptr as usize },
15876        9484usize,
15877        concat!(
15878            "Offset of field: ",
15879            stringify!(SteamUGCDetails_t),
15880            "::",
15881            stringify!(m_nFileSize)
15882        )
15883    );
15884    assert_eq!(
15885        unsafe { ::std::ptr::addr_of!((*ptr).m_nPreviewFileSize) as usize - ptr as usize },
15886        9488usize,
15887        concat!(
15888            "Offset of field: ",
15889            stringify!(SteamUGCDetails_t),
15890            "::",
15891            stringify!(m_nPreviewFileSize)
15892        )
15893    );
15894    assert_eq!(
15895        unsafe { ::std::ptr::addr_of!((*ptr).m_rgchURL) as usize - ptr as usize },
15896        9492usize,
15897        concat!(
15898            "Offset of field: ",
15899            stringify!(SteamUGCDetails_t),
15900            "::",
15901            stringify!(m_rgchURL)
15902        )
15903    );
15904    assert_eq!(
15905        unsafe { ::std::ptr::addr_of!((*ptr).m_unVotesUp) as usize - ptr as usize },
15906        9748usize,
15907        concat!(
15908            "Offset of field: ",
15909            stringify!(SteamUGCDetails_t),
15910            "::",
15911            stringify!(m_unVotesUp)
15912        )
15913    );
15914    assert_eq!(
15915        unsafe { ::std::ptr::addr_of!((*ptr).m_unVotesDown) as usize - ptr as usize },
15916        9752usize,
15917        concat!(
15918            "Offset of field: ",
15919            stringify!(SteamUGCDetails_t),
15920            "::",
15921            stringify!(m_unVotesDown)
15922        )
15923    );
15924    assert_eq!(
15925        unsafe { ::std::ptr::addr_of!((*ptr).m_flScore) as usize - ptr as usize },
15926        9756usize,
15927        concat!(
15928            "Offset of field: ",
15929            stringify!(SteamUGCDetails_t),
15930            "::",
15931            stringify!(m_flScore)
15932        )
15933    );
15934    assert_eq!(
15935        unsafe { ::std::ptr::addr_of!((*ptr).m_unNumChildren) as usize - ptr as usize },
15936        9760usize,
15937        concat!(
15938            "Offset of field: ",
15939            stringify!(SteamUGCDetails_t),
15940            "::",
15941            stringify!(m_unNumChildren)
15942        )
15943    );
15944}
15945#[repr(C)]
15946pub struct ISteamUGC__bindgen_vtable(::std::os::raw::c_void);
15947#[repr(C)]
15948#[derive(Debug, Copy, Clone)]
15949pub struct ISteamUGC {
15950    pub vtable_: *const ISteamUGC__bindgen_vtable,
15951}
15952#[test]
15953fn bindgen_test_layout_ISteamUGC() {
15954    assert_eq!(
15955        ::std::mem::size_of::<ISteamUGC>(),
15956        8usize,
15957        concat!("Size of: ", stringify!(ISteamUGC))
15958    );
15959    assert_eq!(
15960        ::std::mem::align_of::<ISteamUGC>(),
15961        4usize,
15962        concat!("Alignment of ", stringify!(ISteamUGC))
15963    );
15964}
15965#[repr(C, packed(4))]
15966#[derive(Debug, Copy, Clone)]
15967pub struct SteamUGCQueryCompleted_t {
15968    pub m_handle: UGCQueryHandle_t,
15969    pub m_eResult: EResult,
15970    pub m_unNumResultsReturned: uint32,
15971    pub m_unTotalMatchingResults: uint32,
15972    pub m_bCachedData: bool,
15973    pub m_rgchNextCursor: [::std::os::raw::c_char; 256usize],
15974}
15975pub const SteamUGCQueryCompleted_t_k_iCallback: SteamUGCQueryCompleted_t__bindgen_ty_1 =
15976    SteamUGCQueryCompleted_t__bindgen_ty_1::k_iCallback;
15977#[repr(u32)]
15978#[non_exhaustive]
15979#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
15980pub enum SteamUGCQueryCompleted_t__bindgen_ty_1 {
15981    k_iCallback = 3401,
15982}
15983#[test]
15984fn bindgen_test_layout_SteamUGCQueryCompleted_t() {
15985    const UNINIT: ::std::mem::MaybeUninit<SteamUGCQueryCompleted_t> =
15986        ::std::mem::MaybeUninit::uninit();
15987    let ptr = UNINIT.as_ptr();
15988    assert_eq!(
15989        ::std::mem::size_of::<SteamUGCQueryCompleted_t>(),
15990        280usize,
15991        concat!("Size of: ", stringify!(SteamUGCQueryCompleted_t))
15992    );
15993    assert_eq!(
15994        ::std::mem::align_of::<SteamUGCQueryCompleted_t>(),
15995        4usize,
15996        concat!("Alignment of ", stringify!(SteamUGCQueryCompleted_t))
15997    );
15998    assert_eq!(
15999        unsafe { ::std::ptr::addr_of!((*ptr).m_handle) as usize - ptr as usize },
16000        0usize,
16001        concat!(
16002            "Offset of field: ",
16003            stringify!(SteamUGCQueryCompleted_t),
16004            "::",
16005            stringify!(m_handle)
16006        )
16007    );
16008    assert_eq!(
16009        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
16010        8usize,
16011        concat!(
16012            "Offset of field: ",
16013            stringify!(SteamUGCQueryCompleted_t),
16014            "::",
16015            stringify!(m_eResult)
16016        )
16017    );
16018    assert_eq!(
16019        unsafe { ::std::ptr::addr_of!((*ptr).m_unNumResultsReturned) as usize - ptr as usize },
16020        12usize,
16021        concat!(
16022            "Offset of field: ",
16023            stringify!(SteamUGCQueryCompleted_t),
16024            "::",
16025            stringify!(m_unNumResultsReturned)
16026        )
16027    );
16028    assert_eq!(
16029        unsafe { ::std::ptr::addr_of!((*ptr).m_unTotalMatchingResults) as usize - ptr as usize },
16030        16usize,
16031        concat!(
16032            "Offset of field: ",
16033            stringify!(SteamUGCQueryCompleted_t),
16034            "::",
16035            stringify!(m_unTotalMatchingResults)
16036        )
16037    );
16038    assert_eq!(
16039        unsafe { ::std::ptr::addr_of!((*ptr).m_bCachedData) as usize - ptr as usize },
16040        20usize,
16041        concat!(
16042            "Offset of field: ",
16043            stringify!(SteamUGCQueryCompleted_t),
16044            "::",
16045            stringify!(m_bCachedData)
16046        )
16047    );
16048    assert_eq!(
16049        unsafe { ::std::ptr::addr_of!((*ptr).m_rgchNextCursor) as usize - ptr as usize },
16050        21usize,
16051        concat!(
16052            "Offset of field: ",
16053            stringify!(SteamUGCQueryCompleted_t),
16054            "::",
16055            stringify!(m_rgchNextCursor)
16056        )
16057    );
16058}
16059#[repr(C)]
16060#[derive(Debug, Copy, Clone)]
16061pub struct SteamUGCRequestUGCDetailsResult_t {
16062    pub m_details: SteamUGCDetails_t,
16063    pub m_bCachedData: bool,
16064}
16065pub const SteamUGCRequestUGCDetailsResult_t_k_iCallback:
16066    SteamUGCRequestUGCDetailsResult_t__bindgen_ty_1 =
16067    SteamUGCRequestUGCDetailsResult_t__bindgen_ty_1::k_iCallback;
16068#[repr(u32)]
16069#[non_exhaustive]
16070#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
16071pub enum SteamUGCRequestUGCDetailsResult_t__bindgen_ty_1 {
16072    k_iCallback = 3402,
16073}
16074#[test]
16075fn bindgen_test_layout_SteamUGCRequestUGCDetailsResult_t() {
16076    const UNINIT: ::std::mem::MaybeUninit<SteamUGCRequestUGCDetailsResult_t> =
16077        ::std::mem::MaybeUninit::uninit();
16078    let ptr = UNINIT.as_ptr();
16079    assert_eq!(
16080        ::std::mem::size_of::<SteamUGCRequestUGCDetailsResult_t>(),
16081        9768usize,
16082        concat!("Size of: ", stringify!(SteamUGCRequestUGCDetailsResult_t))
16083    );
16084    assert_eq!(
16085        ::std::mem::align_of::<SteamUGCRequestUGCDetailsResult_t>(),
16086        4usize,
16087        concat!(
16088            "Alignment of ",
16089            stringify!(SteamUGCRequestUGCDetailsResult_t)
16090        )
16091    );
16092    assert_eq!(
16093        unsafe { ::std::ptr::addr_of!((*ptr).m_details) as usize - ptr as usize },
16094        0usize,
16095        concat!(
16096            "Offset of field: ",
16097            stringify!(SteamUGCRequestUGCDetailsResult_t),
16098            "::",
16099            stringify!(m_details)
16100        )
16101    );
16102    assert_eq!(
16103        unsafe { ::std::ptr::addr_of!((*ptr).m_bCachedData) as usize - ptr as usize },
16104        9764usize,
16105        concat!(
16106            "Offset of field: ",
16107            stringify!(SteamUGCRequestUGCDetailsResult_t),
16108            "::",
16109            stringify!(m_bCachedData)
16110        )
16111    );
16112}
16113#[repr(C, packed(4))]
16114#[derive(Debug, Copy, Clone)]
16115pub struct CreateItemResult_t {
16116    pub m_eResult: EResult,
16117    pub m_nPublishedFileId: PublishedFileId_t,
16118    pub m_bUserNeedsToAcceptWorkshopLegalAgreement: bool,
16119}
16120pub const CreateItemResult_t_k_iCallback: CreateItemResult_t__bindgen_ty_1 =
16121    CreateItemResult_t__bindgen_ty_1::k_iCallback;
16122#[repr(u32)]
16123#[non_exhaustive]
16124#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
16125pub enum CreateItemResult_t__bindgen_ty_1 {
16126    k_iCallback = 3403,
16127}
16128#[test]
16129fn bindgen_test_layout_CreateItemResult_t() {
16130    const UNINIT: ::std::mem::MaybeUninit<CreateItemResult_t> = ::std::mem::MaybeUninit::uninit();
16131    let ptr = UNINIT.as_ptr();
16132    assert_eq!(
16133        ::std::mem::size_of::<CreateItemResult_t>(),
16134        16usize,
16135        concat!("Size of: ", stringify!(CreateItemResult_t))
16136    );
16137    assert_eq!(
16138        ::std::mem::align_of::<CreateItemResult_t>(),
16139        4usize,
16140        concat!("Alignment of ", stringify!(CreateItemResult_t))
16141    );
16142    assert_eq!(
16143        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
16144        0usize,
16145        concat!(
16146            "Offset of field: ",
16147            stringify!(CreateItemResult_t),
16148            "::",
16149            stringify!(m_eResult)
16150        )
16151    );
16152    assert_eq!(
16153        unsafe { ::std::ptr::addr_of!((*ptr).m_nPublishedFileId) as usize - ptr as usize },
16154        4usize,
16155        concat!(
16156            "Offset of field: ",
16157            stringify!(CreateItemResult_t),
16158            "::",
16159            stringify!(m_nPublishedFileId)
16160        )
16161    );
16162    assert_eq!(
16163        unsafe {
16164            ::std::ptr::addr_of!((*ptr).m_bUserNeedsToAcceptWorkshopLegalAgreement) as usize
16165                - ptr as usize
16166        },
16167        12usize,
16168        concat!(
16169            "Offset of field: ",
16170            stringify!(CreateItemResult_t),
16171            "::",
16172            stringify!(m_bUserNeedsToAcceptWorkshopLegalAgreement)
16173        )
16174    );
16175}
16176#[repr(C, packed(4))]
16177#[derive(Debug, Copy, Clone)]
16178pub struct SubmitItemUpdateResult_t {
16179    pub m_eResult: EResult,
16180    pub m_bUserNeedsToAcceptWorkshopLegalAgreement: bool,
16181    pub m_nPublishedFileId: PublishedFileId_t,
16182}
16183pub const SubmitItemUpdateResult_t_k_iCallback: SubmitItemUpdateResult_t__bindgen_ty_1 =
16184    SubmitItemUpdateResult_t__bindgen_ty_1::k_iCallback;
16185#[repr(u32)]
16186#[non_exhaustive]
16187#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
16188pub enum SubmitItemUpdateResult_t__bindgen_ty_1 {
16189    k_iCallback = 3404,
16190}
16191#[test]
16192fn bindgen_test_layout_SubmitItemUpdateResult_t() {
16193    const UNINIT: ::std::mem::MaybeUninit<SubmitItemUpdateResult_t> =
16194        ::std::mem::MaybeUninit::uninit();
16195    let ptr = UNINIT.as_ptr();
16196    assert_eq!(
16197        ::std::mem::size_of::<SubmitItemUpdateResult_t>(),
16198        16usize,
16199        concat!("Size of: ", stringify!(SubmitItemUpdateResult_t))
16200    );
16201    assert_eq!(
16202        ::std::mem::align_of::<SubmitItemUpdateResult_t>(),
16203        4usize,
16204        concat!("Alignment of ", stringify!(SubmitItemUpdateResult_t))
16205    );
16206    assert_eq!(
16207        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
16208        0usize,
16209        concat!(
16210            "Offset of field: ",
16211            stringify!(SubmitItemUpdateResult_t),
16212            "::",
16213            stringify!(m_eResult)
16214        )
16215    );
16216    assert_eq!(
16217        unsafe {
16218            ::std::ptr::addr_of!((*ptr).m_bUserNeedsToAcceptWorkshopLegalAgreement) as usize
16219                - ptr as usize
16220        },
16221        4usize,
16222        concat!(
16223            "Offset of field: ",
16224            stringify!(SubmitItemUpdateResult_t),
16225            "::",
16226            stringify!(m_bUserNeedsToAcceptWorkshopLegalAgreement)
16227        )
16228    );
16229    assert_eq!(
16230        unsafe { ::std::ptr::addr_of!((*ptr).m_nPublishedFileId) as usize - ptr as usize },
16231        8usize,
16232        concat!(
16233            "Offset of field: ",
16234            stringify!(SubmitItemUpdateResult_t),
16235            "::",
16236            stringify!(m_nPublishedFileId)
16237        )
16238    );
16239}
16240#[repr(C, packed(4))]
16241#[derive(Debug, Copy, Clone)]
16242pub struct ItemInstalled_t {
16243    pub m_unAppID: AppId_t,
16244    pub m_nPublishedFileId: PublishedFileId_t,
16245}
16246pub const ItemInstalled_t_k_iCallback: ItemInstalled_t__bindgen_ty_1 =
16247    ItemInstalled_t__bindgen_ty_1::k_iCallback;
16248#[repr(u32)]
16249#[non_exhaustive]
16250#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
16251pub enum ItemInstalled_t__bindgen_ty_1 {
16252    k_iCallback = 3405,
16253}
16254#[test]
16255fn bindgen_test_layout_ItemInstalled_t() {
16256    const UNINIT: ::std::mem::MaybeUninit<ItemInstalled_t> = ::std::mem::MaybeUninit::uninit();
16257    let ptr = UNINIT.as_ptr();
16258    assert_eq!(
16259        ::std::mem::size_of::<ItemInstalled_t>(),
16260        12usize,
16261        concat!("Size of: ", stringify!(ItemInstalled_t))
16262    );
16263    assert_eq!(
16264        ::std::mem::align_of::<ItemInstalled_t>(),
16265        4usize,
16266        concat!("Alignment of ", stringify!(ItemInstalled_t))
16267    );
16268    assert_eq!(
16269        unsafe { ::std::ptr::addr_of!((*ptr).m_unAppID) as usize - ptr as usize },
16270        0usize,
16271        concat!(
16272            "Offset of field: ",
16273            stringify!(ItemInstalled_t),
16274            "::",
16275            stringify!(m_unAppID)
16276        )
16277    );
16278    assert_eq!(
16279        unsafe { ::std::ptr::addr_of!((*ptr).m_nPublishedFileId) as usize - ptr as usize },
16280        4usize,
16281        concat!(
16282            "Offset of field: ",
16283            stringify!(ItemInstalled_t),
16284            "::",
16285            stringify!(m_nPublishedFileId)
16286        )
16287    );
16288}
16289#[repr(C, packed(4))]
16290#[derive(Debug, Copy, Clone)]
16291pub struct DownloadItemResult_t {
16292    pub m_unAppID: AppId_t,
16293    pub m_nPublishedFileId: PublishedFileId_t,
16294    pub m_eResult: EResult,
16295}
16296pub const DownloadItemResult_t_k_iCallback: DownloadItemResult_t__bindgen_ty_1 =
16297    DownloadItemResult_t__bindgen_ty_1::k_iCallback;
16298#[repr(u32)]
16299#[non_exhaustive]
16300#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
16301pub enum DownloadItemResult_t__bindgen_ty_1 {
16302    k_iCallback = 3406,
16303}
16304#[test]
16305fn bindgen_test_layout_DownloadItemResult_t() {
16306    const UNINIT: ::std::mem::MaybeUninit<DownloadItemResult_t> = ::std::mem::MaybeUninit::uninit();
16307    let ptr = UNINIT.as_ptr();
16308    assert_eq!(
16309        ::std::mem::size_of::<DownloadItemResult_t>(),
16310        16usize,
16311        concat!("Size of: ", stringify!(DownloadItemResult_t))
16312    );
16313    assert_eq!(
16314        ::std::mem::align_of::<DownloadItemResult_t>(),
16315        4usize,
16316        concat!("Alignment of ", stringify!(DownloadItemResult_t))
16317    );
16318    assert_eq!(
16319        unsafe { ::std::ptr::addr_of!((*ptr).m_unAppID) as usize - ptr as usize },
16320        0usize,
16321        concat!(
16322            "Offset of field: ",
16323            stringify!(DownloadItemResult_t),
16324            "::",
16325            stringify!(m_unAppID)
16326        )
16327    );
16328    assert_eq!(
16329        unsafe { ::std::ptr::addr_of!((*ptr).m_nPublishedFileId) as usize - ptr as usize },
16330        4usize,
16331        concat!(
16332            "Offset of field: ",
16333            stringify!(DownloadItemResult_t),
16334            "::",
16335            stringify!(m_nPublishedFileId)
16336        )
16337    );
16338    assert_eq!(
16339        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
16340        12usize,
16341        concat!(
16342            "Offset of field: ",
16343            stringify!(DownloadItemResult_t),
16344            "::",
16345            stringify!(m_eResult)
16346        )
16347    );
16348}
16349#[repr(C, packed(4))]
16350#[derive(Debug, Copy, Clone)]
16351pub struct UserFavoriteItemsListChanged_t {
16352    pub m_nPublishedFileId: PublishedFileId_t,
16353    pub m_eResult: EResult,
16354    pub m_bWasAddRequest: bool,
16355}
16356pub const UserFavoriteItemsListChanged_t_k_iCallback: UserFavoriteItemsListChanged_t__bindgen_ty_1 =
16357    UserFavoriteItemsListChanged_t__bindgen_ty_1::k_iCallback;
16358#[repr(u32)]
16359#[non_exhaustive]
16360#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
16361pub enum UserFavoriteItemsListChanged_t__bindgen_ty_1 {
16362    k_iCallback = 3407,
16363}
16364#[test]
16365fn bindgen_test_layout_UserFavoriteItemsListChanged_t() {
16366    const UNINIT: ::std::mem::MaybeUninit<UserFavoriteItemsListChanged_t> =
16367        ::std::mem::MaybeUninit::uninit();
16368    let ptr = UNINIT.as_ptr();
16369    assert_eq!(
16370        ::std::mem::size_of::<UserFavoriteItemsListChanged_t>(),
16371        16usize,
16372        concat!("Size of: ", stringify!(UserFavoriteItemsListChanged_t))
16373    );
16374    assert_eq!(
16375        ::std::mem::align_of::<UserFavoriteItemsListChanged_t>(),
16376        4usize,
16377        concat!("Alignment of ", stringify!(UserFavoriteItemsListChanged_t))
16378    );
16379    assert_eq!(
16380        unsafe { ::std::ptr::addr_of!((*ptr).m_nPublishedFileId) as usize - ptr as usize },
16381        0usize,
16382        concat!(
16383            "Offset of field: ",
16384            stringify!(UserFavoriteItemsListChanged_t),
16385            "::",
16386            stringify!(m_nPublishedFileId)
16387        )
16388    );
16389    assert_eq!(
16390        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
16391        8usize,
16392        concat!(
16393            "Offset of field: ",
16394            stringify!(UserFavoriteItemsListChanged_t),
16395            "::",
16396            stringify!(m_eResult)
16397        )
16398    );
16399    assert_eq!(
16400        unsafe { ::std::ptr::addr_of!((*ptr).m_bWasAddRequest) as usize - ptr as usize },
16401        12usize,
16402        concat!(
16403            "Offset of field: ",
16404            stringify!(UserFavoriteItemsListChanged_t),
16405            "::",
16406            stringify!(m_bWasAddRequest)
16407        )
16408    );
16409}
16410#[repr(C, packed(4))]
16411#[derive(Debug, Copy, Clone)]
16412pub struct SetUserItemVoteResult_t {
16413    pub m_nPublishedFileId: PublishedFileId_t,
16414    pub m_eResult: EResult,
16415    pub m_bVoteUp: bool,
16416}
16417pub const SetUserItemVoteResult_t_k_iCallback: SetUserItemVoteResult_t__bindgen_ty_1 =
16418    SetUserItemVoteResult_t__bindgen_ty_1::k_iCallback;
16419#[repr(u32)]
16420#[non_exhaustive]
16421#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
16422pub enum SetUserItemVoteResult_t__bindgen_ty_1 {
16423    k_iCallback = 3408,
16424}
16425#[test]
16426fn bindgen_test_layout_SetUserItemVoteResult_t() {
16427    const UNINIT: ::std::mem::MaybeUninit<SetUserItemVoteResult_t> =
16428        ::std::mem::MaybeUninit::uninit();
16429    let ptr = UNINIT.as_ptr();
16430    assert_eq!(
16431        ::std::mem::size_of::<SetUserItemVoteResult_t>(),
16432        16usize,
16433        concat!("Size of: ", stringify!(SetUserItemVoteResult_t))
16434    );
16435    assert_eq!(
16436        ::std::mem::align_of::<SetUserItemVoteResult_t>(),
16437        4usize,
16438        concat!("Alignment of ", stringify!(SetUserItemVoteResult_t))
16439    );
16440    assert_eq!(
16441        unsafe { ::std::ptr::addr_of!((*ptr).m_nPublishedFileId) as usize - ptr as usize },
16442        0usize,
16443        concat!(
16444            "Offset of field: ",
16445            stringify!(SetUserItemVoteResult_t),
16446            "::",
16447            stringify!(m_nPublishedFileId)
16448        )
16449    );
16450    assert_eq!(
16451        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
16452        8usize,
16453        concat!(
16454            "Offset of field: ",
16455            stringify!(SetUserItemVoteResult_t),
16456            "::",
16457            stringify!(m_eResult)
16458        )
16459    );
16460    assert_eq!(
16461        unsafe { ::std::ptr::addr_of!((*ptr).m_bVoteUp) as usize - ptr as usize },
16462        12usize,
16463        concat!(
16464            "Offset of field: ",
16465            stringify!(SetUserItemVoteResult_t),
16466            "::",
16467            stringify!(m_bVoteUp)
16468        )
16469    );
16470}
16471#[repr(C, packed(4))]
16472#[derive(Debug, Copy, Clone)]
16473pub struct GetUserItemVoteResult_t {
16474    pub m_nPublishedFileId: PublishedFileId_t,
16475    pub m_eResult: EResult,
16476    pub m_bVotedUp: bool,
16477    pub m_bVotedDown: bool,
16478    pub m_bVoteSkipped: bool,
16479}
16480pub const GetUserItemVoteResult_t_k_iCallback: GetUserItemVoteResult_t__bindgen_ty_1 =
16481    GetUserItemVoteResult_t__bindgen_ty_1::k_iCallback;
16482#[repr(u32)]
16483#[non_exhaustive]
16484#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
16485pub enum GetUserItemVoteResult_t__bindgen_ty_1 {
16486    k_iCallback = 3409,
16487}
16488#[test]
16489fn bindgen_test_layout_GetUserItemVoteResult_t() {
16490    const UNINIT: ::std::mem::MaybeUninit<GetUserItemVoteResult_t> =
16491        ::std::mem::MaybeUninit::uninit();
16492    let ptr = UNINIT.as_ptr();
16493    assert_eq!(
16494        ::std::mem::size_of::<GetUserItemVoteResult_t>(),
16495        16usize,
16496        concat!("Size of: ", stringify!(GetUserItemVoteResult_t))
16497    );
16498    assert_eq!(
16499        ::std::mem::align_of::<GetUserItemVoteResult_t>(),
16500        4usize,
16501        concat!("Alignment of ", stringify!(GetUserItemVoteResult_t))
16502    );
16503    assert_eq!(
16504        unsafe { ::std::ptr::addr_of!((*ptr).m_nPublishedFileId) as usize - ptr as usize },
16505        0usize,
16506        concat!(
16507            "Offset of field: ",
16508            stringify!(GetUserItemVoteResult_t),
16509            "::",
16510            stringify!(m_nPublishedFileId)
16511        )
16512    );
16513    assert_eq!(
16514        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
16515        8usize,
16516        concat!(
16517            "Offset of field: ",
16518            stringify!(GetUserItemVoteResult_t),
16519            "::",
16520            stringify!(m_eResult)
16521        )
16522    );
16523    assert_eq!(
16524        unsafe { ::std::ptr::addr_of!((*ptr).m_bVotedUp) as usize - ptr as usize },
16525        12usize,
16526        concat!(
16527            "Offset of field: ",
16528            stringify!(GetUserItemVoteResult_t),
16529            "::",
16530            stringify!(m_bVotedUp)
16531        )
16532    );
16533    assert_eq!(
16534        unsafe { ::std::ptr::addr_of!((*ptr).m_bVotedDown) as usize - ptr as usize },
16535        13usize,
16536        concat!(
16537            "Offset of field: ",
16538            stringify!(GetUserItemVoteResult_t),
16539            "::",
16540            stringify!(m_bVotedDown)
16541        )
16542    );
16543    assert_eq!(
16544        unsafe { ::std::ptr::addr_of!((*ptr).m_bVoteSkipped) as usize - ptr as usize },
16545        14usize,
16546        concat!(
16547            "Offset of field: ",
16548            stringify!(GetUserItemVoteResult_t),
16549            "::",
16550            stringify!(m_bVoteSkipped)
16551        )
16552    );
16553}
16554#[repr(C)]
16555#[derive(Debug, Copy, Clone)]
16556pub struct StartPlaytimeTrackingResult_t {
16557    pub m_eResult: EResult,
16558}
16559pub const StartPlaytimeTrackingResult_t_k_iCallback: StartPlaytimeTrackingResult_t__bindgen_ty_1 =
16560    StartPlaytimeTrackingResult_t__bindgen_ty_1::k_iCallback;
16561#[repr(u32)]
16562#[non_exhaustive]
16563#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
16564pub enum StartPlaytimeTrackingResult_t__bindgen_ty_1 {
16565    k_iCallback = 3410,
16566}
16567#[test]
16568fn bindgen_test_layout_StartPlaytimeTrackingResult_t() {
16569    const UNINIT: ::std::mem::MaybeUninit<StartPlaytimeTrackingResult_t> =
16570        ::std::mem::MaybeUninit::uninit();
16571    let ptr = UNINIT.as_ptr();
16572    assert_eq!(
16573        ::std::mem::size_of::<StartPlaytimeTrackingResult_t>(),
16574        4usize,
16575        concat!("Size of: ", stringify!(StartPlaytimeTrackingResult_t))
16576    );
16577    assert_eq!(
16578        ::std::mem::align_of::<StartPlaytimeTrackingResult_t>(),
16579        4usize,
16580        concat!("Alignment of ", stringify!(StartPlaytimeTrackingResult_t))
16581    );
16582    assert_eq!(
16583        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
16584        0usize,
16585        concat!(
16586            "Offset of field: ",
16587            stringify!(StartPlaytimeTrackingResult_t),
16588            "::",
16589            stringify!(m_eResult)
16590        )
16591    );
16592}
16593#[repr(C)]
16594#[derive(Debug, Copy, Clone)]
16595pub struct StopPlaytimeTrackingResult_t {
16596    pub m_eResult: EResult,
16597}
16598pub const StopPlaytimeTrackingResult_t_k_iCallback: StopPlaytimeTrackingResult_t__bindgen_ty_1 =
16599    StopPlaytimeTrackingResult_t__bindgen_ty_1::k_iCallback;
16600#[repr(u32)]
16601#[non_exhaustive]
16602#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
16603pub enum StopPlaytimeTrackingResult_t__bindgen_ty_1 {
16604    k_iCallback = 3411,
16605}
16606#[test]
16607fn bindgen_test_layout_StopPlaytimeTrackingResult_t() {
16608    const UNINIT: ::std::mem::MaybeUninit<StopPlaytimeTrackingResult_t> =
16609        ::std::mem::MaybeUninit::uninit();
16610    let ptr = UNINIT.as_ptr();
16611    assert_eq!(
16612        ::std::mem::size_of::<StopPlaytimeTrackingResult_t>(),
16613        4usize,
16614        concat!("Size of: ", stringify!(StopPlaytimeTrackingResult_t))
16615    );
16616    assert_eq!(
16617        ::std::mem::align_of::<StopPlaytimeTrackingResult_t>(),
16618        4usize,
16619        concat!("Alignment of ", stringify!(StopPlaytimeTrackingResult_t))
16620    );
16621    assert_eq!(
16622        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
16623        0usize,
16624        concat!(
16625            "Offset of field: ",
16626            stringify!(StopPlaytimeTrackingResult_t),
16627            "::",
16628            stringify!(m_eResult)
16629        )
16630    );
16631}
16632#[repr(C, packed(4))]
16633#[derive(Debug, Copy, Clone)]
16634pub struct AddUGCDependencyResult_t {
16635    pub m_eResult: EResult,
16636    pub m_nPublishedFileId: PublishedFileId_t,
16637    pub m_nChildPublishedFileId: PublishedFileId_t,
16638}
16639pub const AddUGCDependencyResult_t_k_iCallback: AddUGCDependencyResult_t__bindgen_ty_1 =
16640    AddUGCDependencyResult_t__bindgen_ty_1::k_iCallback;
16641#[repr(u32)]
16642#[non_exhaustive]
16643#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
16644pub enum AddUGCDependencyResult_t__bindgen_ty_1 {
16645    k_iCallback = 3412,
16646}
16647#[test]
16648fn bindgen_test_layout_AddUGCDependencyResult_t() {
16649    const UNINIT: ::std::mem::MaybeUninit<AddUGCDependencyResult_t> =
16650        ::std::mem::MaybeUninit::uninit();
16651    let ptr = UNINIT.as_ptr();
16652    assert_eq!(
16653        ::std::mem::size_of::<AddUGCDependencyResult_t>(),
16654        20usize,
16655        concat!("Size of: ", stringify!(AddUGCDependencyResult_t))
16656    );
16657    assert_eq!(
16658        ::std::mem::align_of::<AddUGCDependencyResult_t>(),
16659        4usize,
16660        concat!("Alignment of ", stringify!(AddUGCDependencyResult_t))
16661    );
16662    assert_eq!(
16663        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
16664        0usize,
16665        concat!(
16666            "Offset of field: ",
16667            stringify!(AddUGCDependencyResult_t),
16668            "::",
16669            stringify!(m_eResult)
16670        )
16671    );
16672    assert_eq!(
16673        unsafe { ::std::ptr::addr_of!((*ptr).m_nPublishedFileId) as usize - ptr as usize },
16674        4usize,
16675        concat!(
16676            "Offset of field: ",
16677            stringify!(AddUGCDependencyResult_t),
16678            "::",
16679            stringify!(m_nPublishedFileId)
16680        )
16681    );
16682    assert_eq!(
16683        unsafe { ::std::ptr::addr_of!((*ptr).m_nChildPublishedFileId) as usize - ptr as usize },
16684        12usize,
16685        concat!(
16686            "Offset of field: ",
16687            stringify!(AddUGCDependencyResult_t),
16688            "::",
16689            stringify!(m_nChildPublishedFileId)
16690        )
16691    );
16692}
16693#[repr(C, packed(4))]
16694#[derive(Debug, Copy, Clone)]
16695pub struct RemoveUGCDependencyResult_t {
16696    pub m_eResult: EResult,
16697    pub m_nPublishedFileId: PublishedFileId_t,
16698    pub m_nChildPublishedFileId: PublishedFileId_t,
16699}
16700pub const RemoveUGCDependencyResult_t_k_iCallback: RemoveUGCDependencyResult_t__bindgen_ty_1 =
16701    RemoveUGCDependencyResult_t__bindgen_ty_1::k_iCallback;
16702#[repr(u32)]
16703#[non_exhaustive]
16704#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
16705pub enum RemoveUGCDependencyResult_t__bindgen_ty_1 {
16706    k_iCallback = 3413,
16707}
16708#[test]
16709fn bindgen_test_layout_RemoveUGCDependencyResult_t() {
16710    const UNINIT: ::std::mem::MaybeUninit<RemoveUGCDependencyResult_t> =
16711        ::std::mem::MaybeUninit::uninit();
16712    let ptr = UNINIT.as_ptr();
16713    assert_eq!(
16714        ::std::mem::size_of::<RemoveUGCDependencyResult_t>(),
16715        20usize,
16716        concat!("Size of: ", stringify!(RemoveUGCDependencyResult_t))
16717    );
16718    assert_eq!(
16719        ::std::mem::align_of::<RemoveUGCDependencyResult_t>(),
16720        4usize,
16721        concat!("Alignment of ", stringify!(RemoveUGCDependencyResult_t))
16722    );
16723    assert_eq!(
16724        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
16725        0usize,
16726        concat!(
16727            "Offset of field: ",
16728            stringify!(RemoveUGCDependencyResult_t),
16729            "::",
16730            stringify!(m_eResult)
16731        )
16732    );
16733    assert_eq!(
16734        unsafe { ::std::ptr::addr_of!((*ptr).m_nPublishedFileId) as usize - ptr as usize },
16735        4usize,
16736        concat!(
16737            "Offset of field: ",
16738            stringify!(RemoveUGCDependencyResult_t),
16739            "::",
16740            stringify!(m_nPublishedFileId)
16741        )
16742    );
16743    assert_eq!(
16744        unsafe { ::std::ptr::addr_of!((*ptr).m_nChildPublishedFileId) as usize - ptr as usize },
16745        12usize,
16746        concat!(
16747            "Offset of field: ",
16748            stringify!(RemoveUGCDependencyResult_t),
16749            "::",
16750            stringify!(m_nChildPublishedFileId)
16751        )
16752    );
16753}
16754#[repr(C, packed(4))]
16755#[derive(Debug, Copy, Clone)]
16756pub struct AddAppDependencyResult_t {
16757    pub m_eResult: EResult,
16758    pub m_nPublishedFileId: PublishedFileId_t,
16759    pub m_nAppID: AppId_t,
16760}
16761pub const AddAppDependencyResult_t_k_iCallback: AddAppDependencyResult_t__bindgen_ty_1 =
16762    AddAppDependencyResult_t__bindgen_ty_1::k_iCallback;
16763#[repr(u32)]
16764#[non_exhaustive]
16765#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
16766pub enum AddAppDependencyResult_t__bindgen_ty_1 {
16767    k_iCallback = 3414,
16768}
16769#[test]
16770fn bindgen_test_layout_AddAppDependencyResult_t() {
16771    const UNINIT: ::std::mem::MaybeUninit<AddAppDependencyResult_t> =
16772        ::std::mem::MaybeUninit::uninit();
16773    let ptr = UNINIT.as_ptr();
16774    assert_eq!(
16775        ::std::mem::size_of::<AddAppDependencyResult_t>(),
16776        16usize,
16777        concat!("Size of: ", stringify!(AddAppDependencyResult_t))
16778    );
16779    assert_eq!(
16780        ::std::mem::align_of::<AddAppDependencyResult_t>(),
16781        4usize,
16782        concat!("Alignment of ", stringify!(AddAppDependencyResult_t))
16783    );
16784    assert_eq!(
16785        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
16786        0usize,
16787        concat!(
16788            "Offset of field: ",
16789            stringify!(AddAppDependencyResult_t),
16790            "::",
16791            stringify!(m_eResult)
16792        )
16793    );
16794    assert_eq!(
16795        unsafe { ::std::ptr::addr_of!((*ptr).m_nPublishedFileId) as usize - ptr as usize },
16796        4usize,
16797        concat!(
16798            "Offset of field: ",
16799            stringify!(AddAppDependencyResult_t),
16800            "::",
16801            stringify!(m_nPublishedFileId)
16802        )
16803    );
16804    assert_eq!(
16805        unsafe { ::std::ptr::addr_of!((*ptr).m_nAppID) as usize - ptr as usize },
16806        12usize,
16807        concat!(
16808            "Offset of field: ",
16809            stringify!(AddAppDependencyResult_t),
16810            "::",
16811            stringify!(m_nAppID)
16812        )
16813    );
16814}
16815#[repr(C, packed(4))]
16816#[derive(Debug, Copy, Clone)]
16817pub struct RemoveAppDependencyResult_t {
16818    pub m_eResult: EResult,
16819    pub m_nPublishedFileId: PublishedFileId_t,
16820    pub m_nAppID: AppId_t,
16821}
16822pub const RemoveAppDependencyResult_t_k_iCallback: RemoveAppDependencyResult_t__bindgen_ty_1 =
16823    RemoveAppDependencyResult_t__bindgen_ty_1::k_iCallback;
16824#[repr(u32)]
16825#[non_exhaustive]
16826#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
16827pub enum RemoveAppDependencyResult_t__bindgen_ty_1 {
16828    k_iCallback = 3415,
16829}
16830#[test]
16831fn bindgen_test_layout_RemoveAppDependencyResult_t() {
16832    const UNINIT: ::std::mem::MaybeUninit<RemoveAppDependencyResult_t> =
16833        ::std::mem::MaybeUninit::uninit();
16834    let ptr = UNINIT.as_ptr();
16835    assert_eq!(
16836        ::std::mem::size_of::<RemoveAppDependencyResult_t>(),
16837        16usize,
16838        concat!("Size of: ", stringify!(RemoveAppDependencyResult_t))
16839    );
16840    assert_eq!(
16841        ::std::mem::align_of::<RemoveAppDependencyResult_t>(),
16842        4usize,
16843        concat!("Alignment of ", stringify!(RemoveAppDependencyResult_t))
16844    );
16845    assert_eq!(
16846        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
16847        0usize,
16848        concat!(
16849            "Offset of field: ",
16850            stringify!(RemoveAppDependencyResult_t),
16851            "::",
16852            stringify!(m_eResult)
16853        )
16854    );
16855    assert_eq!(
16856        unsafe { ::std::ptr::addr_of!((*ptr).m_nPublishedFileId) as usize - ptr as usize },
16857        4usize,
16858        concat!(
16859            "Offset of field: ",
16860            stringify!(RemoveAppDependencyResult_t),
16861            "::",
16862            stringify!(m_nPublishedFileId)
16863        )
16864    );
16865    assert_eq!(
16866        unsafe { ::std::ptr::addr_of!((*ptr).m_nAppID) as usize - ptr as usize },
16867        12usize,
16868        concat!(
16869            "Offset of field: ",
16870            stringify!(RemoveAppDependencyResult_t),
16871            "::",
16872            stringify!(m_nAppID)
16873        )
16874    );
16875}
16876#[repr(C, packed(4))]
16877#[derive(Debug, Copy, Clone)]
16878pub struct GetAppDependenciesResult_t {
16879    pub m_eResult: EResult,
16880    pub m_nPublishedFileId: PublishedFileId_t,
16881    pub m_rgAppIDs: [AppId_t; 32usize],
16882    pub m_nNumAppDependencies: uint32,
16883    pub m_nTotalNumAppDependencies: uint32,
16884}
16885pub const GetAppDependenciesResult_t_k_iCallback: GetAppDependenciesResult_t__bindgen_ty_1 =
16886    GetAppDependenciesResult_t__bindgen_ty_1::k_iCallback;
16887#[repr(u32)]
16888#[non_exhaustive]
16889#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
16890pub enum GetAppDependenciesResult_t__bindgen_ty_1 {
16891    k_iCallback = 3416,
16892}
16893#[test]
16894fn bindgen_test_layout_GetAppDependenciesResult_t() {
16895    const UNINIT: ::std::mem::MaybeUninit<GetAppDependenciesResult_t> =
16896        ::std::mem::MaybeUninit::uninit();
16897    let ptr = UNINIT.as_ptr();
16898    assert_eq!(
16899        ::std::mem::size_of::<GetAppDependenciesResult_t>(),
16900        148usize,
16901        concat!("Size of: ", stringify!(GetAppDependenciesResult_t))
16902    );
16903    assert_eq!(
16904        ::std::mem::align_of::<GetAppDependenciesResult_t>(),
16905        4usize,
16906        concat!("Alignment of ", stringify!(GetAppDependenciesResult_t))
16907    );
16908    assert_eq!(
16909        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
16910        0usize,
16911        concat!(
16912            "Offset of field: ",
16913            stringify!(GetAppDependenciesResult_t),
16914            "::",
16915            stringify!(m_eResult)
16916        )
16917    );
16918    assert_eq!(
16919        unsafe { ::std::ptr::addr_of!((*ptr).m_nPublishedFileId) as usize - ptr as usize },
16920        4usize,
16921        concat!(
16922            "Offset of field: ",
16923            stringify!(GetAppDependenciesResult_t),
16924            "::",
16925            stringify!(m_nPublishedFileId)
16926        )
16927    );
16928    assert_eq!(
16929        unsafe { ::std::ptr::addr_of!((*ptr).m_rgAppIDs) as usize - ptr as usize },
16930        12usize,
16931        concat!(
16932            "Offset of field: ",
16933            stringify!(GetAppDependenciesResult_t),
16934            "::",
16935            stringify!(m_rgAppIDs)
16936        )
16937    );
16938    assert_eq!(
16939        unsafe { ::std::ptr::addr_of!((*ptr).m_nNumAppDependencies) as usize - ptr as usize },
16940        140usize,
16941        concat!(
16942            "Offset of field: ",
16943            stringify!(GetAppDependenciesResult_t),
16944            "::",
16945            stringify!(m_nNumAppDependencies)
16946        )
16947    );
16948    assert_eq!(
16949        unsafe { ::std::ptr::addr_of!((*ptr).m_nTotalNumAppDependencies) as usize - ptr as usize },
16950        144usize,
16951        concat!(
16952            "Offset of field: ",
16953            stringify!(GetAppDependenciesResult_t),
16954            "::",
16955            stringify!(m_nTotalNumAppDependencies)
16956        )
16957    );
16958}
16959#[repr(C, packed(4))]
16960#[derive(Debug, Copy, Clone)]
16961pub struct DeleteItemResult_t {
16962    pub m_eResult: EResult,
16963    pub m_nPublishedFileId: PublishedFileId_t,
16964}
16965pub const DeleteItemResult_t_k_iCallback: DeleteItemResult_t__bindgen_ty_1 =
16966    DeleteItemResult_t__bindgen_ty_1::k_iCallback;
16967#[repr(u32)]
16968#[non_exhaustive]
16969#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
16970pub enum DeleteItemResult_t__bindgen_ty_1 {
16971    k_iCallback = 3417,
16972}
16973#[test]
16974fn bindgen_test_layout_DeleteItemResult_t() {
16975    const UNINIT: ::std::mem::MaybeUninit<DeleteItemResult_t> = ::std::mem::MaybeUninit::uninit();
16976    let ptr = UNINIT.as_ptr();
16977    assert_eq!(
16978        ::std::mem::size_of::<DeleteItemResult_t>(),
16979        12usize,
16980        concat!("Size of: ", stringify!(DeleteItemResult_t))
16981    );
16982    assert_eq!(
16983        ::std::mem::align_of::<DeleteItemResult_t>(),
16984        4usize,
16985        concat!("Alignment of ", stringify!(DeleteItemResult_t))
16986    );
16987    assert_eq!(
16988        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
16989        0usize,
16990        concat!(
16991            "Offset of field: ",
16992            stringify!(DeleteItemResult_t),
16993            "::",
16994            stringify!(m_eResult)
16995        )
16996    );
16997    assert_eq!(
16998        unsafe { ::std::ptr::addr_of!((*ptr).m_nPublishedFileId) as usize - ptr as usize },
16999        4usize,
17000        concat!(
17001            "Offset of field: ",
17002            stringify!(DeleteItemResult_t),
17003            "::",
17004            stringify!(m_nPublishedFileId)
17005        )
17006    );
17007}
17008#[repr(C)]
17009#[derive(Debug, Copy, Clone)]
17010pub struct UserSubscribedItemsListChanged_t {
17011    pub m_nAppID: AppId_t,
17012}
17013pub const UserSubscribedItemsListChanged_t_k_iCallback:
17014    UserSubscribedItemsListChanged_t__bindgen_ty_1 =
17015    UserSubscribedItemsListChanged_t__bindgen_ty_1::k_iCallback;
17016#[repr(u32)]
17017#[non_exhaustive]
17018#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
17019pub enum UserSubscribedItemsListChanged_t__bindgen_ty_1 {
17020    k_iCallback = 3418,
17021}
17022#[test]
17023fn bindgen_test_layout_UserSubscribedItemsListChanged_t() {
17024    const UNINIT: ::std::mem::MaybeUninit<UserSubscribedItemsListChanged_t> =
17025        ::std::mem::MaybeUninit::uninit();
17026    let ptr = UNINIT.as_ptr();
17027    assert_eq!(
17028        ::std::mem::size_of::<UserSubscribedItemsListChanged_t>(),
17029        4usize,
17030        concat!("Size of: ", stringify!(UserSubscribedItemsListChanged_t))
17031    );
17032    assert_eq!(
17033        ::std::mem::align_of::<UserSubscribedItemsListChanged_t>(),
17034        4usize,
17035        concat!(
17036            "Alignment of ",
17037            stringify!(UserSubscribedItemsListChanged_t)
17038        )
17039    );
17040    assert_eq!(
17041        unsafe { ::std::ptr::addr_of!((*ptr).m_nAppID) as usize - ptr as usize },
17042        0usize,
17043        concat!(
17044            "Offset of field: ",
17045            stringify!(UserSubscribedItemsListChanged_t),
17046            "::",
17047            stringify!(m_nAppID)
17048        )
17049    );
17050}
17051#[repr(C)]
17052#[derive(Debug, Copy, Clone)]
17053pub struct WorkshopEULAStatus_t {
17054    pub m_eResult: EResult,
17055    pub m_nAppID: AppId_t,
17056    pub m_unVersion: uint32,
17057    pub m_rtAction: RTime32,
17058    pub m_bAccepted: bool,
17059    pub m_bNeedsAction: bool,
17060}
17061pub const WorkshopEULAStatus_t_k_iCallback: WorkshopEULAStatus_t__bindgen_ty_1 =
17062    WorkshopEULAStatus_t__bindgen_ty_1::k_iCallback;
17063#[repr(u32)]
17064#[non_exhaustive]
17065#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
17066pub enum WorkshopEULAStatus_t__bindgen_ty_1 {
17067    k_iCallback = 3420,
17068}
17069#[test]
17070fn bindgen_test_layout_WorkshopEULAStatus_t() {
17071    const UNINIT: ::std::mem::MaybeUninit<WorkshopEULAStatus_t> = ::std::mem::MaybeUninit::uninit();
17072    let ptr = UNINIT.as_ptr();
17073    assert_eq!(
17074        ::std::mem::size_of::<WorkshopEULAStatus_t>(),
17075        20usize,
17076        concat!("Size of: ", stringify!(WorkshopEULAStatus_t))
17077    );
17078    assert_eq!(
17079        ::std::mem::align_of::<WorkshopEULAStatus_t>(),
17080        4usize,
17081        concat!("Alignment of ", stringify!(WorkshopEULAStatus_t))
17082    );
17083    assert_eq!(
17084        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
17085        0usize,
17086        concat!(
17087            "Offset of field: ",
17088            stringify!(WorkshopEULAStatus_t),
17089            "::",
17090            stringify!(m_eResult)
17091        )
17092    );
17093    assert_eq!(
17094        unsafe { ::std::ptr::addr_of!((*ptr).m_nAppID) as usize - ptr as usize },
17095        4usize,
17096        concat!(
17097            "Offset of field: ",
17098            stringify!(WorkshopEULAStatus_t),
17099            "::",
17100            stringify!(m_nAppID)
17101        )
17102    );
17103    assert_eq!(
17104        unsafe { ::std::ptr::addr_of!((*ptr).m_unVersion) as usize - ptr as usize },
17105        8usize,
17106        concat!(
17107            "Offset of field: ",
17108            stringify!(WorkshopEULAStatus_t),
17109            "::",
17110            stringify!(m_unVersion)
17111        )
17112    );
17113    assert_eq!(
17114        unsafe { ::std::ptr::addr_of!((*ptr).m_rtAction) as usize - ptr as usize },
17115        12usize,
17116        concat!(
17117            "Offset of field: ",
17118            stringify!(WorkshopEULAStatus_t),
17119            "::",
17120            stringify!(m_rtAction)
17121        )
17122    );
17123    assert_eq!(
17124        unsafe { ::std::ptr::addr_of!((*ptr).m_bAccepted) as usize - ptr as usize },
17125        16usize,
17126        concat!(
17127            "Offset of field: ",
17128            stringify!(WorkshopEULAStatus_t),
17129            "::",
17130            stringify!(m_bAccepted)
17131        )
17132    );
17133    assert_eq!(
17134        unsafe { ::std::ptr::addr_of!((*ptr).m_bNeedsAction) as usize - ptr as usize },
17135        17usize,
17136        concat!(
17137            "Offset of field: ",
17138            stringify!(WorkshopEULAStatus_t),
17139            "::",
17140            stringify!(m_bNeedsAction)
17141        )
17142    );
17143}
17144#[repr(C)]
17145pub struct ISteamAppList__bindgen_vtable(::std::os::raw::c_void);
17146#[repr(C)]
17147#[derive(Debug, Copy, Clone)]
17148pub struct ISteamAppList {
17149    pub vtable_: *const ISteamAppList__bindgen_vtable,
17150}
17151#[test]
17152fn bindgen_test_layout_ISteamAppList() {
17153    assert_eq!(
17154        ::std::mem::size_of::<ISteamAppList>(),
17155        8usize,
17156        concat!("Size of: ", stringify!(ISteamAppList))
17157    );
17158    assert_eq!(
17159        ::std::mem::align_of::<ISteamAppList>(),
17160        8usize,
17161        concat!("Alignment of ", stringify!(ISteamAppList))
17162    );
17163}
17164#[repr(C)]
17165#[derive(Debug, Copy, Clone)]
17166pub struct SteamAppInstalled_t {
17167    pub m_nAppID: AppId_t,
17168    pub m_iInstallFolderIndex: ::std::os::raw::c_int,
17169}
17170pub const SteamAppInstalled_t_k_iCallback: SteamAppInstalled_t__bindgen_ty_1 =
17171    SteamAppInstalled_t__bindgen_ty_1::k_iCallback;
17172#[repr(u32)]
17173#[non_exhaustive]
17174#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
17175pub enum SteamAppInstalled_t__bindgen_ty_1 {
17176    k_iCallback = 3901,
17177}
17178#[test]
17179fn bindgen_test_layout_SteamAppInstalled_t() {
17180    const UNINIT: ::std::mem::MaybeUninit<SteamAppInstalled_t> = ::std::mem::MaybeUninit::uninit();
17181    let ptr = UNINIT.as_ptr();
17182    assert_eq!(
17183        ::std::mem::size_of::<SteamAppInstalled_t>(),
17184        8usize,
17185        concat!("Size of: ", stringify!(SteamAppInstalled_t))
17186    );
17187    assert_eq!(
17188        ::std::mem::align_of::<SteamAppInstalled_t>(),
17189        4usize,
17190        concat!("Alignment of ", stringify!(SteamAppInstalled_t))
17191    );
17192    assert_eq!(
17193        unsafe { ::std::ptr::addr_of!((*ptr).m_nAppID) as usize - ptr as usize },
17194        0usize,
17195        concat!(
17196            "Offset of field: ",
17197            stringify!(SteamAppInstalled_t),
17198            "::",
17199            stringify!(m_nAppID)
17200        )
17201    );
17202    assert_eq!(
17203        unsafe { ::std::ptr::addr_of!((*ptr).m_iInstallFolderIndex) as usize - ptr as usize },
17204        4usize,
17205        concat!(
17206            "Offset of field: ",
17207            stringify!(SteamAppInstalled_t),
17208            "::",
17209            stringify!(m_iInstallFolderIndex)
17210        )
17211    );
17212}
17213#[repr(C)]
17214#[derive(Debug, Copy, Clone)]
17215pub struct SteamAppUninstalled_t {
17216    pub m_nAppID: AppId_t,
17217    pub m_iInstallFolderIndex: ::std::os::raw::c_int,
17218}
17219pub const SteamAppUninstalled_t_k_iCallback: SteamAppUninstalled_t__bindgen_ty_1 =
17220    SteamAppUninstalled_t__bindgen_ty_1::k_iCallback;
17221#[repr(u32)]
17222#[non_exhaustive]
17223#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
17224pub enum SteamAppUninstalled_t__bindgen_ty_1 {
17225    k_iCallback = 3902,
17226}
17227#[test]
17228fn bindgen_test_layout_SteamAppUninstalled_t() {
17229    const UNINIT: ::std::mem::MaybeUninit<SteamAppUninstalled_t> =
17230        ::std::mem::MaybeUninit::uninit();
17231    let ptr = UNINIT.as_ptr();
17232    assert_eq!(
17233        ::std::mem::size_of::<SteamAppUninstalled_t>(),
17234        8usize,
17235        concat!("Size of: ", stringify!(SteamAppUninstalled_t))
17236    );
17237    assert_eq!(
17238        ::std::mem::align_of::<SteamAppUninstalled_t>(),
17239        4usize,
17240        concat!("Alignment of ", stringify!(SteamAppUninstalled_t))
17241    );
17242    assert_eq!(
17243        unsafe { ::std::ptr::addr_of!((*ptr).m_nAppID) as usize - ptr as usize },
17244        0usize,
17245        concat!(
17246            "Offset of field: ",
17247            stringify!(SteamAppUninstalled_t),
17248            "::",
17249            stringify!(m_nAppID)
17250        )
17251    );
17252    assert_eq!(
17253        unsafe { ::std::ptr::addr_of!((*ptr).m_iInstallFolderIndex) as usize - ptr as usize },
17254        4usize,
17255        concat!(
17256            "Offset of field: ",
17257            stringify!(SteamAppUninstalled_t),
17258            "::",
17259            stringify!(m_iInstallFolderIndex)
17260        )
17261    );
17262}
17263pub type HHTMLBrowser = uint32;
17264pub const INVALID_HTMLBROWSER: uint32 = 0;
17265#[repr(C)]
17266pub struct ISteamHTMLSurface__bindgen_vtable(::std::os::raw::c_void);
17267#[repr(C)]
17268#[derive(Debug)]
17269pub struct ISteamHTMLSurface {
17270    pub vtable_: *const ISteamHTMLSurface__bindgen_vtable,
17271}
17272#[repr(u32)]
17273#[non_exhaustive]
17274#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
17275pub enum ISteamHTMLSurface_EHTMLMouseButton {
17276    eHTMLMouseButton_Left = 0,
17277    eHTMLMouseButton_Right = 1,
17278    eHTMLMouseButton_Middle = 2,
17279}
17280#[repr(u32)]
17281#[non_exhaustive]
17282#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
17283pub enum ISteamHTMLSurface_EMouseCursor {
17284    dc_user = 0,
17285    dc_none = 1,
17286    dc_arrow = 2,
17287    dc_ibeam = 3,
17288    dc_hourglass = 4,
17289    dc_waitarrow = 5,
17290    dc_crosshair = 6,
17291    dc_up = 7,
17292    dc_sizenw = 8,
17293    dc_sizese = 9,
17294    dc_sizene = 10,
17295    dc_sizesw = 11,
17296    dc_sizew = 12,
17297    dc_sizee = 13,
17298    dc_sizen = 14,
17299    dc_sizes = 15,
17300    dc_sizewe = 16,
17301    dc_sizens = 17,
17302    dc_sizeall = 18,
17303    dc_no = 19,
17304    dc_hand = 20,
17305    dc_blank = 21,
17306    dc_middle_pan = 22,
17307    dc_north_pan = 23,
17308    dc_north_east_pan = 24,
17309    dc_east_pan = 25,
17310    dc_south_east_pan = 26,
17311    dc_south_pan = 27,
17312    dc_south_west_pan = 28,
17313    dc_west_pan = 29,
17314    dc_north_west_pan = 30,
17315    dc_alias = 31,
17316    dc_cell = 32,
17317    dc_colresize = 33,
17318    dc_copycur = 34,
17319    dc_verticaltext = 35,
17320    dc_rowresize = 36,
17321    dc_zoomin = 37,
17322    dc_zoomout = 38,
17323    dc_help = 39,
17324    dc_custom = 40,
17325    dc_last = 41,
17326}
17327#[repr(u32)]
17328#[non_exhaustive]
17329#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
17330pub enum ISteamHTMLSurface_EHTMLKeyModifiers {
17331    k_eHTMLKeyModifier_None = 0,
17332    k_eHTMLKeyModifier_AltDown = 1,
17333    k_eHTMLKeyModifier_CtrlDown = 2,
17334    k_eHTMLKeyModifier_ShiftDown = 4,
17335}
17336#[test]
17337fn bindgen_test_layout_ISteamHTMLSurface() {
17338    assert_eq!(
17339        ::std::mem::size_of::<ISteamHTMLSurface>(),
17340        8usize,
17341        concat!("Size of: ", stringify!(ISteamHTMLSurface))
17342    );
17343    assert_eq!(
17344        ::std::mem::align_of::<ISteamHTMLSurface>(),
17345        8usize,
17346        concat!("Alignment of ", stringify!(ISteamHTMLSurface))
17347    );
17348}
17349#[repr(C)]
17350#[derive(Debug, Copy, Clone)]
17351pub struct HTML_BrowserReady_t {
17352    pub unBrowserHandle: HHTMLBrowser,
17353}
17354pub const HTML_BrowserReady_t_k_iCallback: HTML_BrowserReady_t__bindgen_ty_1 =
17355    HTML_BrowserReady_t__bindgen_ty_1::k_iCallback;
17356#[repr(u32)]
17357#[non_exhaustive]
17358#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
17359pub enum HTML_BrowserReady_t__bindgen_ty_1 {
17360    k_iCallback = 4501,
17361}
17362#[test]
17363fn bindgen_test_layout_HTML_BrowserReady_t() {
17364    const UNINIT: ::std::mem::MaybeUninit<HTML_BrowserReady_t> = ::std::mem::MaybeUninit::uninit();
17365    let ptr = UNINIT.as_ptr();
17366    assert_eq!(
17367        ::std::mem::size_of::<HTML_BrowserReady_t>(),
17368        4usize,
17369        concat!("Size of: ", stringify!(HTML_BrowserReady_t))
17370    );
17371    assert_eq!(
17372        ::std::mem::align_of::<HTML_BrowserReady_t>(),
17373        4usize,
17374        concat!("Alignment of ", stringify!(HTML_BrowserReady_t))
17375    );
17376    assert_eq!(
17377        unsafe { ::std::ptr::addr_of!((*ptr).unBrowserHandle) as usize - ptr as usize },
17378        0usize,
17379        concat!(
17380            "Offset of field: ",
17381            stringify!(HTML_BrowserReady_t),
17382            "::",
17383            stringify!(unBrowserHandle)
17384        )
17385    );
17386}
17387#[repr(C, packed(4))]
17388#[derive(Debug, Copy, Clone)]
17389pub struct HTML_NeedsPaint_t {
17390    pub unBrowserHandle: HHTMLBrowser,
17391    pub pBGRA: *const ::std::os::raw::c_char,
17392    pub unWide: uint32,
17393    pub unTall: uint32,
17394    pub unUpdateX: uint32,
17395    pub unUpdateY: uint32,
17396    pub unUpdateWide: uint32,
17397    pub unUpdateTall: uint32,
17398    pub unScrollX: uint32,
17399    pub unScrollY: uint32,
17400    pub flPageScale: f32,
17401    pub unPageSerial: uint32,
17402}
17403pub const HTML_NeedsPaint_t_k_iCallback: HTML_NeedsPaint_t__bindgen_ty_1 =
17404    HTML_NeedsPaint_t__bindgen_ty_1::k_iCallback;
17405#[repr(u32)]
17406#[non_exhaustive]
17407#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
17408pub enum HTML_NeedsPaint_t__bindgen_ty_1 {
17409    k_iCallback = 4502,
17410}
17411#[test]
17412fn bindgen_test_layout_HTML_NeedsPaint_t() {
17413    const UNINIT: ::std::mem::MaybeUninit<HTML_NeedsPaint_t> = ::std::mem::MaybeUninit::uninit();
17414    let ptr = UNINIT.as_ptr();
17415    assert_eq!(
17416        ::std::mem::size_of::<HTML_NeedsPaint_t>(),
17417        52usize,
17418        concat!("Size of: ", stringify!(HTML_NeedsPaint_t))
17419    );
17420    assert_eq!(
17421        ::std::mem::align_of::<HTML_NeedsPaint_t>(),
17422        4usize,
17423        concat!("Alignment of ", stringify!(HTML_NeedsPaint_t))
17424    );
17425    assert_eq!(
17426        unsafe { ::std::ptr::addr_of!((*ptr).unBrowserHandle) as usize - ptr as usize },
17427        0usize,
17428        concat!(
17429            "Offset of field: ",
17430            stringify!(HTML_NeedsPaint_t),
17431            "::",
17432            stringify!(unBrowserHandle)
17433        )
17434    );
17435    assert_eq!(
17436        unsafe { ::std::ptr::addr_of!((*ptr).pBGRA) as usize - ptr as usize },
17437        4usize,
17438        concat!(
17439            "Offset of field: ",
17440            stringify!(HTML_NeedsPaint_t),
17441            "::",
17442            stringify!(pBGRA)
17443        )
17444    );
17445    assert_eq!(
17446        unsafe { ::std::ptr::addr_of!((*ptr).unWide) as usize - ptr as usize },
17447        12usize,
17448        concat!(
17449            "Offset of field: ",
17450            stringify!(HTML_NeedsPaint_t),
17451            "::",
17452            stringify!(unWide)
17453        )
17454    );
17455    assert_eq!(
17456        unsafe { ::std::ptr::addr_of!((*ptr).unTall) as usize - ptr as usize },
17457        16usize,
17458        concat!(
17459            "Offset of field: ",
17460            stringify!(HTML_NeedsPaint_t),
17461            "::",
17462            stringify!(unTall)
17463        )
17464    );
17465    assert_eq!(
17466        unsafe { ::std::ptr::addr_of!((*ptr).unUpdateX) as usize - ptr as usize },
17467        20usize,
17468        concat!(
17469            "Offset of field: ",
17470            stringify!(HTML_NeedsPaint_t),
17471            "::",
17472            stringify!(unUpdateX)
17473        )
17474    );
17475    assert_eq!(
17476        unsafe { ::std::ptr::addr_of!((*ptr).unUpdateY) as usize - ptr as usize },
17477        24usize,
17478        concat!(
17479            "Offset of field: ",
17480            stringify!(HTML_NeedsPaint_t),
17481            "::",
17482            stringify!(unUpdateY)
17483        )
17484    );
17485    assert_eq!(
17486        unsafe { ::std::ptr::addr_of!((*ptr).unUpdateWide) as usize - ptr as usize },
17487        28usize,
17488        concat!(
17489            "Offset of field: ",
17490            stringify!(HTML_NeedsPaint_t),
17491            "::",
17492            stringify!(unUpdateWide)
17493        )
17494    );
17495    assert_eq!(
17496        unsafe { ::std::ptr::addr_of!((*ptr).unUpdateTall) as usize - ptr as usize },
17497        32usize,
17498        concat!(
17499            "Offset of field: ",
17500            stringify!(HTML_NeedsPaint_t),
17501            "::",
17502            stringify!(unUpdateTall)
17503        )
17504    );
17505    assert_eq!(
17506        unsafe { ::std::ptr::addr_of!((*ptr).unScrollX) as usize - ptr as usize },
17507        36usize,
17508        concat!(
17509            "Offset of field: ",
17510            stringify!(HTML_NeedsPaint_t),
17511            "::",
17512            stringify!(unScrollX)
17513        )
17514    );
17515    assert_eq!(
17516        unsafe { ::std::ptr::addr_of!((*ptr).unScrollY) as usize - ptr as usize },
17517        40usize,
17518        concat!(
17519            "Offset of field: ",
17520            stringify!(HTML_NeedsPaint_t),
17521            "::",
17522            stringify!(unScrollY)
17523        )
17524    );
17525    assert_eq!(
17526        unsafe { ::std::ptr::addr_of!((*ptr).flPageScale) as usize - ptr as usize },
17527        44usize,
17528        concat!(
17529            "Offset of field: ",
17530            stringify!(HTML_NeedsPaint_t),
17531            "::",
17532            stringify!(flPageScale)
17533        )
17534    );
17535    assert_eq!(
17536        unsafe { ::std::ptr::addr_of!((*ptr).unPageSerial) as usize - ptr as usize },
17537        48usize,
17538        concat!(
17539            "Offset of field: ",
17540            stringify!(HTML_NeedsPaint_t),
17541            "::",
17542            stringify!(unPageSerial)
17543        )
17544    );
17545}
17546#[repr(C, packed(4))]
17547#[derive(Debug, Copy, Clone)]
17548pub struct HTML_StartRequest_t {
17549    pub unBrowserHandle: HHTMLBrowser,
17550    pub pchURL: *const ::std::os::raw::c_char,
17551    pub pchTarget: *const ::std::os::raw::c_char,
17552    pub pchPostData: *const ::std::os::raw::c_char,
17553    pub bIsRedirect: bool,
17554}
17555pub const HTML_StartRequest_t_k_iCallback: HTML_StartRequest_t__bindgen_ty_1 =
17556    HTML_StartRequest_t__bindgen_ty_1::k_iCallback;
17557#[repr(u32)]
17558#[non_exhaustive]
17559#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
17560pub enum HTML_StartRequest_t__bindgen_ty_1 {
17561    k_iCallback = 4503,
17562}
17563#[test]
17564fn bindgen_test_layout_HTML_StartRequest_t() {
17565    const UNINIT: ::std::mem::MaybeUninit<HTML_StartRequest_t> = ::std::mem::MaybeUninit::uninit();
17566    let ptr = UNINIT.as_ptr();
17567    assert_eq!(
17568        ::std::mem::size_of::<HTML_StartRequest_t>(),
17569        32usize,
17570        concat!("Size of: ", stringify!(HTML_StartRequest_t))
17571    );
17572    assert_eq!(
17573        ::std::mem::align_of::<HTML_StartRequest_t>(),
17574        4usize,
17575        concat!("Alignment of ", stringify!(HTML_StartRequest_t))
17576    );
17577    assert_eq!(
17578        unsafe { ::std::ptr::addr_of!((*ptr).unBrowserHandle) as usize - ptr as usize },
17579        0usize,
17580        concat!(
17581            "Offset of field: ",
17582            stringify!(HTML_StartRequest_t),
17583            "::",
17584            stringify!(unBrowserHandle)
17585        )
17586    );
17587    assert_eq!(
17588        unsafe { ::std::ptr::addr_of!((*ptr).pchURL) as usize - ptr as usize },
17589        4usize,
17590        concat!(
17591            "Offset of field: ",
17592            stringify!(HTML_StartRequest_t),
17593            "::",
17594            stringify!(pchURL)
17595        )
17596    );
17597    assert_eq!(
17598        unsafe { ::std::ptr::addr_of!((*ptr).pchTarget) as usize - ptr as usize },
17599        12usize,
17600        concat!(
17601            "Offset of field: ",
17602            stringify!(HTML_StartRequest_t),
17603            "::",
17604            stringify!(pchTarget)
17605        )
17606    );
17607    assert_eq!(
17608        unsafe { ::std::ptr::addr_of!((*ptr).pchPostData) as usize - ptr as usize },
17609        20usize,
17610        concat!(
17611            "Offset of field: ",
17612            stringify!(HTML_StartRequest_t),
17613            "::",
17614            stringify!(pchPostData)
17615        )
17616    );
17617    assert_eq!(
17618        unsafe { ::std::ptr::addr_of!((*ptr).bIsRedirect) as usize - ptr as usize },
17619        28usize,
17620        concat!(
17621            "Offset of field: ",
17622            stringify!(HTML_StartRequest_t),
17623            "::",
17624            stringify!(bIsRedirect)
17625        )
17626    );
17627}
17628#[repr(C)]
17629#[derive(Debug, Copy, Clone)]
17630pub struct HTML_CloseBrowser_t {
17631    pub unBrowserHandle: HHTMLBrowser,
17632}
17633pub const HTML_CloseBrowser_t_k_iCallback: HTML_CloseBrowser_t__bindgen_ty_1 =
17634    HTML_CloseBrowser_t__bindgen_ty_1::k_iCallback;
17635#[repr(u32)]
17636#[non_exhaustive]
17637#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
17638pub enum HTML_CloseBrowser_t__bindgen_ty_1 {
17639    k_iCallback = 4504,
17640}
17641#[test]
17642fn bindgen_test_layout_HTML_CloseBrowser_t() {
17643    const UNINIT: ::std::mem::MaybeUninit<HTML_CloseBrowser_t> = ::std::mem::MaybeUninit::uninit();
17644    let ptr = UNINIT.as_ptr();
17645    assert_eq!(
17646        ::std::mem::size_of::<HTML_CloseBrowser_t>(),
17647        4usize,
17648        concat!("Size of: ", stringify!(HTML_CloseBrowser_t))
17649    );
17650    assert_eq!(
17651        ::std::mem::align_of::<HTML_CloseBrowser_t>(),
17652        4usize,
17653        concat!("Alignment of ", stringify!(HTML_CloseBrowser_t))
17654    );
17655    assert_eq!(
17656        unsafe { ::std::ptr::addr_of!((*ptr).unBrowserHandle) as usize - ptr as usize },
17657        0usize,
17658        concat!(
17659            "Offset of field: ",
17660            stringify!(HTML_CloseBrowser_t),
17661            "::",
17662            stringify!(unBrowserHandle)
17663        )
17664    );
17665}
17666#[repr(C, packed(4))]
17667#[derive(Debug, Copy, Clone)]
17668pub struct HTML_URLChanged_t {
17669    pub unBrowserHandle: HHTMLBrowser,
17670    pub pchURL: *const ::std::os::raw::c_char,
17671    pub pchPostData: *const ::std::os::raw::c_char,
17672    pub bIsRedirect: bool,
17673    pub pchPageTitle: *const ::std::os::raw::c_char,
17674    pub bNewNavigation: bool,
17675}
17676pub const HTML_URLChanged_t_k_iCallback: HTML_URLChanged_t__bindgen_ty_1 =
17677    HTML_URLChanged_t__bindgen_ty_1::k_iCallback;
17678#[repr(u32)]
17679#[non_exhaustive]
17680#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
17681pub enum HTML_URLChanged_t__bindgen_ty_1 {
17682    k_iCallback = 4505,
17683}
17684#[test]
17685fn bindgen_test_layout_HTML_URLChanged_t() {
17686    const UNINIT: ::std::mem::MaybeUninit<HTML_URLChanged_t> = ::std::mem::MaybeUninit::uninit();
17687    let ptr = UNINIT.as_ptr();
17688    assert_eq!(
17689        ::std::mem::size_of::<HTML_URLChanged_t>(),
17690        36usize,
17691        concat!("Size of: ", stringify!(HTML_URLChanged_t))
17692    );
17693    assert_eq!(
17694        ::std::mem::align_of::<HTML_URLChanged_t>(),
17695        4usize,
17696        concat!("Alignment of ", stringify!(HTML_URLChanged_t))
17697    );
17698    assert_eq!(
17699        unsafe { ::std::ptr::addr_of!((*ptr).unBrowserHandle) as usize - ptr as usize },
17700        0usize,
17701        concat!(
17702            "Offset of field: ",
17703            stringify!(HTML_URLChanged_t),
17704            "::",
17705            stringify!(unBrowserHandle)
17706        )
17707    );
17708    assert_eq!(
17709        unsafe { ::std::ptr::addr_of!((*ptr).pchURL) as usize - ptr as usize },
17710        4usize,
17711        concat!(
17712            "Offset of field: ",
17713            stringify!(HTML_URLChanged_t),
17714            "::",
17715            stringify!(pchURL)
17716        )
17717    );
17718    assert_eq!(
17719        unsafe { ::std::ptr::addr_of!((*ptr).pchPostData) as usize - ptr as usize },
17720        12usize,
17721        concat!(
17722            "Offset of field: ",
17723            stringify!(HTML_URLChanged_t),
17724            "::",
17725            stringify!(pchPostData)
17726        )
17727    );
17728    assert_eq!(
17729        unsafe { ::std::ptr::addr_of!((*ptr).bIsRedirect) as usize - ptr as usize },
17730        20usize,
17731        concat!(
17732            "Offset of field: ",
17733            stringify!(HTML_URLChanged_t),
17734            "::",
17735            stringify!(bIsRedirect)
17736        )
17737    );
17738    assert_eq!(
17739        unsafe { ::std::ptr::addr_of!((*ptr).pchPageTitle) as usize - ptr as usize },
17740        24usize,
17741        concat!(
17742            "Offset of field: ",
17743            stringify!(HTML_URLChanged_t),
17744            "::",
17745            stringify!(pchPageTitle)
17746        )
17747    );
17748    assert_eq!(
17749        unsafe { ::std::ptr::addr_of!((*ptr).bNewNavigation) as usize - ptr as usize },
17750        32usize,
17751        concat!(
17752            "Offset of field: ",
17753            stringify!(HTML_URLChanged_t),
17754            "::",
17755            stringify!(bNewNavigation)
17756        )
17757    );
17758}
17759#[repr(C, packed(4))]
17760#[derive(Debug, Copy, Clone)]
17761pub struct HTML_FinishedRequest_t {
17762    pub unBrowserHandle: HHTMLBrowser,
17763    pub pchURL: *const ::std::os::raw::c_char,
17764    pub pchPageTitle: *const ::std::os::raw::c_char,
17765}
17766pub const HTML_FinishedRequest_t_k_iCallback: HTML_FinishedRequest_t__bindgen_ty_1 =
17767    HTML_FinishedRequest_t__bindgen_ty_1::k_iCallback;
17768#[repr(u32)]
17769#[non_exhaustive]
17770#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
17771pub enum HTML_FinishedRequest_t__bindgen_ty_1 {
17772    k_iCallback = 4506,
17773}
17774#[test]
17775fn bindgen_test_layout_HTML_FinishedRequest_t() {
17776    const UNINIT: ::std::mem::MaybeUninit<HTML_FinishedRequest_t> =
17777        ::std::mem::MaybeUninit::uninit();
17778    let ptr = UNINIT.as_ptr();
17779    assert_eq!(
17780        ::std::mem::size_of::<HTML_FinishedRequest_t>(),
17781        20usize,
17782        concat!("Size of: ", stringify!(HTML_FinishedRequest_t))
17783    );
17784    assert_eq!(
17785        ::std::mem::align_of::<HTML_FinishedRequest_t>(),
17786        4usize,
17787        concat!("Alignment of ", stringify!(HTML_FinishedRequest_t))
17788    );
17789    assert_eq!(
17790        unsafe { ::std::ptr::addr_of!((*ptr).unBrowserHandle) as usize - ptr as usize },
17791        0usize,
17792        concat!(
17793            "Offset of field: ",
17794            stringify!(HTML_FinishedRequest_t),
17795            "::",
17796            stringify!(unBrowserHandle)
17797        )
17798    );
17799    assert_eq!(
17800        unsafe { ::std::ptr::addr_of!((*ptr).pchURL) as usize - ptr as usize },
17801        4usize,
17802        concat!(
17803            "Offset of field: ",
17804            stringify!(HTML_FinishedRequest_t),
17805            "::",
17806            stringify!(pchURL)
17807        )
17808    );
17809    assert_eq!(
17810        unsafe { ::std::ptr::addr_of!((*ptr).pchPageTitle) as usize - ptr as usize },
17811        12usize,
17812        concat!(
17813            "Offset of field: ",
17814            stringify!(HTML_FinishedRequest_t),
17815            "::",
17816            stringify!(pchPageTitle)
17817        )
17818    );
17819}
17820#[repr(C, packed(4))]
17821#[derive(Debug, Copy, Clone)]
17822pub struct HTML_OpenLinkInNewTab_t {
17823    pub unBrowserHandle: HHTMLBrowser,
17824    pub pchURL: *const ::std::os::raw::c_char,
17825}
17826pub const HTML_OpenLinkInNewTab_t_k_iCallback: HTML_OpenLinkInNewTab_t__bindgen_ty_1 =
17827    HTML_OpenLinkInNewTab_t__bindgen_ty_1::k_iCallback;
17828#[repr(u32)]
17829#[non_exhaustive]
17830#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
17831pub enum HTML_OpenLinkInNewTab_t__bindgen_ty_1 {
17832    k_iCallback = 4507,
17833}
17834#[test]
17835fn bindgen_test_layout_HTML_OpenLinkInNewTab_t() {
17836    const UNINIT: ::std::mem::MaybeUninit<HTML_OpenLinkInNewTab_t> =
17837        ::std::mem::MaybeUninit::uninit();
17838    let ptr = UNINIT.as_ptr();
17839    assert_eq!(
17840        ::std::mem::size_of::<HTML_OpenLinkInNewTab_t>(),
17841        12usize,
17842        concat!("Size of: ", stringify!(HTML_OpenLinkInNewTab_t))
17843    );
17844    assert_eq!(
17845        ::std::mem::align_of::<HTML_OpenLinkInNewTab_t>(),
17846        4usize,
17847        concat!("Alignment of ", stringify!(HTML_OpenLinkInNewTab_t))
17848    );
17849    assert_eq!(
17850        unsafe { ::std::ptr::addr_of!((*ptr).unBrowserHandle) as usize - ptr as usize },
17851        0usize,
17852        concat!(
17853            "Offset of field: ",
17854            stringify!(HTML_OpenLinkInNewTab_t),
17855            "::",
17856            stringify!(unBrowserHandle)
17857        )
17858    );
17859    assert_eq!(
17860        unsafe { ::std::ptr::addr_of!((*ptr).pchURL) as usize - ptr as usize },
17861        4usize,
17862        concat!(
17863            "Offset of field: ",
17864            stringify!(HTML_OpenLinkInNewTab_t),
17865            "::",
17866            stringify!(pchURL)
17867        )
17868    );
17869}
17870#[repr(C, packed(4))]
17871#[derive(Debug, Copy, Clone)]
17872pub struct HTML_ChangedTitle_t {
17873    pub unBrowserHandle: HHTMLBrowser,
17874    pub pchTitle: *const ::std::os::raw::c_char,
17875}
17876pub const HTML_ChangedTitle_t_k_iCallback: HTML_ChangedTitle_t__bindgen_ty_1 =
17877    HTML_ChangedTitle_t__bindgen_ty_1::k_iCallback;
17878#[repr(u32)]
17879#[non_exhaustive]
17880#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
17881pub enum HTML_ChangedTitle_t__bindgen_ty_1 {
17882    k_iCallback = 4508,
17883}
17884#[test]
17885fn bindgen_test_layout_HTML_ChangedTitle_t() {
17886    const UNINIT: ::std::mem::MaybeUninit<HTML_ChangedTitle_t> = ::std::mem::MaybeUninit::uninit();
17887    let ptr = UNINIT.as_ptr();
17888    assert_eq!(
17889        ::std::mem::size_of::<HTML_ChangedTitle_t>(),
17890        12usize,
17891        concat!("Size of: ", stringify!(HTML_ChangedTitle_t))
17892    );
17893    assert_eq!(
17894        ::std::mem::align_of::<HTML_ChangedTitle_t>(),
17895        4usize,
17896        concat!("Alignment of ", stringify!(HTML_ChangedTitle_t))
17897    );
17898    assert_eq!(
17899        unsafe { ::std::ptr::addr_of!((*ptr).unBrowserHandle) as usize - ptr as usize },
17900        0usize,
17901        concat!(
17902            "Offset of field: ",
17903            stringify!(HTML_ChangedTitle_t),
17904            "::",
17905            stringify!(unBrowserHandle)
17906        )
17907    );
17908    assert_eq!(
17909        unsafe { ::std::ptr::addr_of!((*ptr).pchTitle) as usize - ptr as usize },
17910        4usize,
17911        concat!(
17912            "Offset of field: ",
17913            stringify!(HTML_ChangedTitle_t),
17914            "::",
17915            stringify!(pchTitle)
17916        )
17917    );
17918}
17919#[repr(C)]
17920#[derive(Debug, Copy, Clone)]
17921pub struct HTML_SearchResults_t {
17922    pub unBrowserHandle: HHTMLBrowser,
17923    pub unResults: uint32,
17924    pub unCurrentMatch: uint32,
17925}
17926pub const HTML_SearchResults_t_k_iCallback: HTML_SearchResults_t__bindgen_ty_1 =
17927    HTML_SearchResults_t__bindgen_ty_1::k_iCallback;
17928#[repr(u32)]
17929#[non_exhaustive]
17930#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
17931pub enum HTML_SearchResults_t__bindgen_ty_1 {
17932    k_iCallback = 4509,
17933}
17934#[test]
17935fn bindgen_test_layout_HTML_SearchResults_t() {
17936    const UNINIT: ::std::mem::MaybeUninit<HTML_SearchResults_t> = ::std::mem::MaybeUninit::uninit();
17937    let ptr = UNINIT.as_ptr();
17938    assert_eq!(
17939        ::std::mem::size_of::<HTML_SearchResults_t>(),
17940        12usize,
17941        concat!("Size of: ", stringify!(HTML_SearchResults_t))
17942    );
17943    assert_eq!(
17944        ::std::mem::align_of::<HTML_SearchResults_t>(),
17945        4usize,
17946        concat!("Alignment of ", stringify!(HTML_SearchResults_t))
17947    );
17948    assert_eq!(
17949        unsafe { ::std::ptr::addr_of!((*ptr).unBrowserHandle) as usize - ptr as usize },
17950        0usize,
17951        concat!(
17952            "Offset of field: ",
17953            stringify!(HTML_SearchResults_t),
17954            "::",
17955            stringify!(unBrowserHandle)
17956        )
17957    );
17958    assert_eq!(
17959        unsafe { ::std::ptr::addr_of!((*ptr).unResults) as usize - ptr as usize },
17960        4usize,
17961        concat!(
17962            "Offset of field: ",
17963            stringify!(HTML_SearchResults_t),
17964            "::",
17965            stringify!(unResults)
17966        )
17967    );
17968    assert_eq!(
17969        unsafe { ::std::ptr::addr_of!((*ptr).unCurrentMatch) as usize - ptr as usize },
17970        8usize,
17971        concat!(
17972            "Offset of field: ",
17973            stringify!(HTML_SearchResults_t),
17974            "::",
17975            stringify!(unCurrentMatch)
17976        )
17977    );
17978}
17979#[repr(C)]
17980#[derive(Debug, Copy, Clone)]
17981pub struct HTML_CanGoBackAndForward_t {
17982    pub unBrowserHandle: HHTMLBrowser,
17983    pub bCanGoBack: bool,
17984    pub bCanGoForward: bool,
17985}
17986pub const HTML_CanGoBackAndForward_t_k_iCallback: HTML_CanGoBackAndForward_t__bindgen_ty_1 =
17987    HTML_CanGoBackAndForward_t__bindgen_ty_1::k_iCallback;
17988#[repr(u32)]
17989#[non_exhaustive]
17990#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
17991pub enum HTML_CanGoBackAndForward_t__bindgen_ty_1 {
17992    k_iCallback = 4510,
17993}
17994#[test]
17995fn bindgen_test_layout_HTML_CanGoBackAndForward_t() {
17996    const UNINIT: ::std::mem::MaybeUninit<HTML_CanGoBackAndForward_t> =
17997        ::std::mem::MaybeUninit::uninit();
17998    let ptr = UNINIT.as_ptr();
17999    assert_eq!(
18000        ::std::mem::size_of::<HTML_CanGoBackAndForward_t>(),
18001        8usize,
18002        concat!("Size of: ", stringify!(HTML_CanGoBackAndForward_t))
18003    );
18004    assert_eq!(
18005        ::std::mem::align_of::<HTML_CanGoBackAndForward_t>(),
18006        4usize,
18007        concat!("Alignment of ", stringify!(HTML_CanGoBackAndForward_t))
18008    );
18009    assert_eq!(
18010        unsafe { ::std::ptr::addr_of!((*ptr).unBrowserHandle) as usize - ptr as usize },
18011        0usize,
18012        concat!(
18013            "Offset of field: ",
18014            stringify!(HTML_CanGoBackAndForward_t),
18015            "::",
18016            stringify!(unBrowserHandle)
18017        )
18018    );
18019    assert_eq!(
18020        unsafe { ::std::ptr::addr_of!((*ptr).bCanGoBack) as usize - ptr as usize },
18021        4usize,
18022        concat!(
18023            "Offset of field: ",
18024            stringify!(HTML_CanGoBackAndForward_t),
18025            "::",
18026            stringify!(bCanGoBack)
18027        )
18028    );
18029    assert_eq!(
18030        unsafe { ::std::ptr::addr_of!((*ptr).bCanGoForward) as usize - ptr as usize },
18031        5usize,
18032        concat!(
18033            "Offset of field: ",
18034            stringify!(HTML_CanGoBackAndForward_t),
18035            "::",
18036            stringify!(bCanGoForward)
18037        )
18038    );
18039}
18040#[repr(C)]
18041#[derive(Debug, Copy, Clone)]
18042pub struct HTML_HorizontalScroll_t {
18043    pub unBrowserHandle: HHTMLBrowser,
18044    pub unScrollMax: uint32,
18045    pub unScrollCurrent: uint32,
18046    pub flPageScale: f32,
18047    pub bVisible: bool,
18048    pub unPageSize: uint32,
18049}
18050pub const HTML_HorizontalScroll_t_k_iCallback: HTML_HorizontalScroll_t__bindgen_ty_1 =
18051    HTML_HorizontalScroll_t__bindgen_ty_1::k_iCallback;
18052#[repr(u32)]
18053#[non_exhaustive]
18054#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
18055pub enum HTML_HorizontalScroll_t__bindgen_ty_1 {
18056    k_iCallback = 4511,
18057}
18058#[test]
18059fn bindgen_test_layout_HTML_HorizontalScroll_t() {
18060    const UNINIT: ::std::mem::MaybeUninit<HTML_HorizontalScroll_t> =
18061        ::std::mem::MaybeUninit::uninit();
18062    let ptr = UNINIT.as_ptr();
18063    assert_eq!(
18064        ::std::mem::size_of::<HTML_HorizontalScroll_t>(),
18065        24usize,
18066        concat!("Size of: ", stringify!(HTML_HorizontalScroll_t))
18067    );
18068    assert_eq!(
18069        ::std::mem::align_of::<HTML_HorizontalScroll_t>(),
18070        4usize,
18071        concat!("Alignment of ", stringify!(HTML_HorizontalScroll_t))
18072    );
18073    assert_eq!(
18074        unsafe { ::std::ptr::addr_of!((*ptr).unBrowserHandle) as usize - ptr as usize },
18075        0usize,
18076        concat!(
18077            "Offset of field: ",
18078            stringify!(HTML_HorizontalScroll_t),
18079            "::",
18080            stringify!(unBrowserHandle)
18081        )
18082    );
18083    assert_eq!(
18084        unsafe { ::std::ptr::addr_of!((*ptr).unScrollMax) as usize - ptr as usize },
18085        4usize,
18086        concat!(
18087            "Offset of field: ",
18088            stringify!(HTML_HorizontalScroll_t),
18089            "::",
18090            stringify!(unScrollMax)
18091        )
18092    );
18093    assert_eq!(
18094        unsafe { ::std::ptr::addr_of!((*ptr).unScrollCurrent) as usize - ptr as usize },
18095        8usize,
18096        concat!(
18097            "Offset of field: ",
18098            stringify!(HTML_HorizontalScroll_t),
18099            "::",
18100            stringify!(unScrollCurrent)
18101        )
18102    );
18103    assert_eq!(
18104        unsafe { ::std::ptr::addr_of!((*ptr).flPageScale) as usize - ptr as usize },
18105        12usize,
18106        concat!(
18107            "Offset of field: ",
18108            stringify!(HTML_HorizontalScroll_t),
18109            "::",
18110            stringify!(flPageScale)
18111        )
18112    );
18113    assert_eq!(
18114        unsafe { ::std::ptr::addr_of!((*ptr).bVisible) as usize - ptr as usize },
18115        16usize,
18116        concat!(
18117            "Offset of field: ",
18118            stringify!(HTML_HorizontalScroll_t),
18119            "::",
18120            stringify!(bVisible)
18121        )
18122    );
18123    assert_eq!(
18124        unsafe { ::std::ptr::addr_of!((*ptr).unPageSize) as usize - ptr as usize },
18125        20usize,
18126        concat!(
18127            "Offset of field: ",
18128            stringify!(HTML_HorizontalScroll_t),
18129            "::",
18130            stringify!(unPageSize)
18131        )
18132    );
18133}
18134#[repr(C)]
18135#[derive(Debug, Copy, Clone)]
18136pub struct HTML_VerticalScroll_t {
18137    pub unBrowserHandle: HHTMLBrowser,
18138    pub unScrollMax: uint32,
18139    pub unScrollCurrent: uint32,
18140    pub flPageScale: f32,
18141    pub bVisible: bool,
18142    pub unPageSize: uint32,
18143}
18144pub const HTML_VerticalScroll_t_k_iCallback: HTML_VerticalScroll_t__bindgen_ty_1 =
18145    HTML_VerticalScroll_t__bindgen_ty_1::k_iCallback;
18146#[repr(u32)]
18147#[non_exhaustive]
18148#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
18149pub enum HTML_VerticalScroll_t__bindgen_ty_1 {
18150    k_iCallback = 4512,
18151}
18152#[test]
18153fn bindgen_test_layout_HTML_VerticalScroll_t() {
18154    const UNINIT: ::std::mem::MaybeUninit<HTML_VerticalScroll_t> =
18155        ::std::mem::MaybeUninit::uninit();
18156    let ptr = UNINIT.as_ptr();
18157    assert_eq!(
18158        ::std::mem::size_of::<HTML_VerticalScroll_t>(),
18159        24usize,
18160        concat!("Size of: ", stringify!(HTML_VerticalScroll_t))
18161    );
18162    assert_eq!(
18163        ::std::mem::align_of::<HTML_VerticalScroll_t>(),
18164        4usize,
18165        concat!("Alignment of ", stringify!(HTML_VerticalScroll_t))
18166    );
18167    assert_eq!(
18168        unsafe { ::std::ptr::addr_of!((*ptr).unBrowserHandle) as usize - ptr as usize },
18169        0usize,
18170        concat!(
18171            "Offset of field: ",
18172            stringify!(HTML_VerticalScroll_t),
18173            "::",
18174            stringify!(unBrowserHandle)
18175        )
18176    );
18177    assert_eq!(
18178        unsafe { ::std::ptr::addr_of!((*ptr).unScrollMax) as usize - ptr as usize },
18179        4usize,
18180        concat!(
18181            "Offset of field: ",
18182            stringify!(HTML_VerticalScroll_t),
18183            "::",
18184            stringify!(unScrollMax)
18185        )
18186    );
18187    assert_eq!(
18188        unsafe { ::std::ptr::addr_of!((*ptr).unScrollCurrent) as usize - ptr as usize },
18189        8usize,
18190        concat!(
18191            "Offset of field: ",
18192            stringify!(HTML_VerticalScroll_t),
18193            "::",
18194            stringify!(unScrollCurrent)
18195        )
18196    );
18197    assert_eq!(
18198        unsafe { ::std::ptr::addr_of!((*ptr).flPageScale) as usize - ptr as usize },
18199        12usize,
18200        concat!(
18201            "Offset of field: ",
18202            stringify!(HTML_VerticalScroll_t),
18203            "::",
18204            stringify!(flPageScale)
18205        )
18206    );
18207    assert_eq!(
18208        unsafe { ::std::ptr::addr_of!((*ptr).bVisible) as usize - ptr as usize },
18209        16usize,
18210        concat!(
18211            "Offset of field: ",
18212            stringify!(HTML_VerticalScroll_t),
18213            "::",
18214            stringify!(bVisible)
18215        )
18216    );
18217    assert_eq!(
18218        unsafe { ::std::ptr::addr_of!((*ptr).unPageSize) as usize - ptr as usize },
18219        20usize,
18220        concat!(
18221            "Offset of field: ",
18222            stringify!(HTML_VerticalScroll_t),
18223            "::",
18224            stringify!(unPageSize)
18225        )
18226    );
18227}
18228#[repr(C, packed(4))]
18229#[derive(Debug, Copy, Clone)]
18230pub struct HTML_LinkAtPosition_t {
18231    pub unBrowserHandle: HHTMLBrowser,
18232    pub x: uint32,
18233    pub y: uint32,
18234    pub pchURL: *const ::std::os::raw::c_char,
18235    pub bInput: bool,
18236    pub bLiveLink: bool,
18237}
18238pub const HTML_LinkAtPosition_t_k_iCallback: HTML_LinkAtPosition_t__bindgen_ty_1 =
18239    HTML_LinkAtPosition_t__bindgen_ty_1::k_iCallback;
18240#[repr(u32)]
18241#[non_exhaustive]
18242#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
18243pub enum HTML_LinkAtPosition_t__bindgen_ty_1 {
18244    k_iCallback = 4513,
18245}
18246#[test]
18247fn bindgen_test_layout_HTML_LinkAtPosition_t() {
18248    const UNINIT: ::std::mem::MaybeUninit<HTML_LinkAtPosition_t> =
18249        ::std::mem::MaybeUninit::uninit();
18250    let ptr = UNINIT.as_ptr();
18251    assert_eq!(
18252        ::std::mem::size_of::<HTML_LinkAtPosition_t>(),
18253        24usize,
18254        concat!("Size of: ", stringify!(HTML_LinkAtPosition_t))
18255    );
18256    assert_eq!(
18257        ::std::mem::align_of::<HTML_LinkAtPosition_t>(),
18258        4usize,
18259        concat!("Alignment of ", stringify!(HTML_LinkAtPosition_t))
18260    );
18261    assert_eq!(
18262        unsafe { ::std::ptr::addr_of!((*ptr).unBrowserHandle) as usize - ptr as usize },
18263        0usize,
18264        concat!(
18265            "Offset of field: ",
18266            stringify!(HTML_LinkAtPosition_t),
18267            "::",
18268            stringify!(unBrowserHandle)
18269        )
18270    );
18271    assert_eq!(
18272        unsafe { ::std::ptr::addr_of!((*ptr).x) as usize - ptr as usize },
18273        4usize,
18274        concat!(
18275            "Offset of field: ",
18276            stringify!(HTML_LinkAtPosition_t),
18277            "::",
18278            stringify!(x)
18279        )
18280    );
18281    assert_eq!(
18282        unsafe { ::std::ptr::addr_of!((*ptr).y) as usize - ptr as usize },
18283        8usize,
18284        concat!(
18285            "Offset of field: ",
18286            stringify!(HTML_LinkAtPosition_t),
18287            "::",
18288            stringify!(y)
18289        )
18290    );
18291    assert_eq!(
18292        unsafe { ::std::ptr::addr_of!((*ptr).pchURL) as usize - ptr as usize },
18293        12usize,
18294        concat!(
18295            "Offset of field: ",
18296            stringify!(HTML_LinkAtPosition_t),
18297            "::",
18298            stringify!(pchURL)
18299        )
18300    );
18301    assert_eq!(
18302        unsafe { ::std::ptr::addr_of!((*ptr).bInput) as usize - ptr as usize },
18303        20usize,
18304        concat!(
18305            "Offset of field: ",
18306            stringify!(HTML_LinkAtPosition_t),
18307            "::",
18308            stringify!(bInput)
18309        )
18310    );
18311    assert_eq!(
18312        unsafe { ::std::ptr::addr_of!((*ptr).bLiveLink) as usize - ptr as usize },
18313        21usize,
18314        concat!(
18315            "Offset of field: ",
18316            stringify!(HTML_LinkAtPosition_t),
18317            "::",
18318            stringify!(bLiveLink)
18319        )
18320    );
18321}
18322#[repr(C, packed(4))]
18323#[derive(Debug, Copy, Clone)]
18324pub struct HTML_JSAlert_t {
18325    pub unBrowserHandle: HHTMLBrowser,
18326    pub pchMessage: *const ::std::os::raw::c_char,
18327}
18328pub const HTML_JSAlert_t_k_iCallback: HTML_JSAlert_t__bindgen_ty_1 =
18329    HTML_JSAlert_t__bindgen_ty_1::k_iCallback;
18330#[repr(u32)]
18331#[non_exhaustive]
18332#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
18333pub enum HTML_JSAlert_t__bindgen_ty_1 {
18334    k_iCallback = 4514,
18335}
18336#[test]
18337fn bindgen_test_layout_HTML_JSAlert_t() {
18338    const UNINIT: ::std::mem::MaybeUninit<HTML_JSAlert_t> = ::std::mem::MaybeUninit::uninit();
18339    let ptr = UNINIT.as_ptr();
18340    assert_eq!(
18341        ::std::mem::size_of::<HTML_JSAlert_t>(),
18342        12usize,
18343        concat!("Size of: ", stringify!(HTML_JSAlert_t))
18344    );
18345    assert_eq!(
18346        ::std::mem::align_of::<HTML_JSAlert_t>(),
18347        4usize,
18348        concat!("Alignment of ", stringify!(HTML_JSAlert_t))
18349    );
18350    assert_eq!(
18351        unsafe { ::std::ptr::addr_of!((*ptr).unBrowserHandle) as usize - ptr as usize },
18352        0usize,
18353        concat!(
18354            "Offset of field: ",
18355            stringify!(HTML_JSAlert_t),
18356            "::",
18357            stringify!(unBrowserHandle)
18358        )
18359    );
18360    assert_eq!(
18361        unsafe { ::std::ptr::addr_of!((*ptr).pchMessage) as usize - ptr as usize },
18362        4usize,
18363        concat!(
18364            "Offset of field: ",
18365            stringify!(HTML_JSAlert_t),
18366            "::",
18367            stringify!(pchMessage)
18368        )
18369    );
18370}
18371#[repr(C, packed(4))]
18372#[derive(Debug, Copy, Clone)]
18373pub struct HTML_JSConfirm_t {
18374    pub unBrowserHandle: HHTMLBrowser,
18375    pub pchMessage: *const ::std::os::raw::c_char,
18376}
18377pub const HTML_JSConfirm_t_k_iCallback: HTML_JSConfirm_t__bindgen_ty_1 =
18378    HTML_JSConfirm_t__bindgen_ty_1::k_iCallback;
18379#[repr(u32)]
18380#[non_exhaustive]
18381#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
18382pub enum HTML_JSConfirm_t__bindgen_ty_1 {
18383    k_iCallback = 4515,
18384}
18385#[test]
18386fn bindgen_test_layout_HTML_JSConfirm_t() {
18387    const UNINIT: ::std::mem::MaybeUninit<HTML_JSConfirm_t> = ::std::mem::MaybeUninit::uninit();
18388    let ptr = UNINIT.as_ptr();
18389    assert_eq!(
18390        ::std::mem::size_of::<HTML_JSConfirm_t>(),
18391        12usize,
18392        concat!("Size of: ", stringify!(HTML_JSConfirm_t))
18393    );
18394    assert_eq!(
18395        ::std::mem::align_of::<HTML_JSConfirm_t>(),
18396        4usize,
18397        concat!("Alignment of ", stringify!(HTML_JSConfirm_t))
18398    );
18399    assert_eq!(
18400        unsafe { ::std::ptr::addr_of!((*ptr).unBrowserHandle) as usize - ptr as usize },
18401        0usize,
18402        concat!(
18403            "Offset of field: ",
18404            stringify!(HTML_JSConfirm_t),
18405            "::",
18406            stringify!(unBrowserHandle)
18407        )
18408    );
18409    assert_eq!(
18410        unsafe { ::std::ptr::addr_of!((*ptr).pchMessage) as usize - ptr as usize },
18411        4usize,
18412        concat!(
18413            "Offset of field: ",
18414            stringify!(HTML_JSConfirm_t),
18415            "::",
18416            stringify!(pchMessage)
18417        )
18418    );
18419}
18420#[repr(C, packed(4))]
18421#[derive(Debug, Copy, Clone)]
18422pub struct HTML_FileOpenDialog_t {
18423    pub unBrowserHandle: HHTMLBrowser,
18424    pub pchTitle: *const ::std::os::raw::c_char,
18425    pub pchInitialFile: *const ::std::os::raw::c_char,
18426}
18427pub const HTML_FileOpenDialog_t_k_iCallback: HTML_FileOpenDialog_t__bindgen_ty_1 =
18428    HTML_FileOpenDialog_t__bindgen_ty_1::k_iCallback;
18429#[repr(u32)]
18430#[non_exhaustive]
18431#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
18432pub enum HTML_FileOpenDialog_t__bindgen_ty_1 {
18433    k_iCallback = 4516,
18434}
18435#[test]
18436fn bindgen_test_layout_HTML_FileOpenDialog_t() {
18437    const UNINIT: ::std::mem::MaybeUninit<HTML_FileOpenDialog_t> =
18438        ::std::mem::MaybeUninit::uninit();
18439    let ptr = UNINIT.as_ptr();
18440    assert_eq!(
18441        ::std::mem::size_of::<HTML_FileOpenDialog_t>(),
18442        20usize,
18443        concat!("Size of: ", stringify!(HTML_FileOpenDialog_t))
18444    );
18445    assert_eq!(
18446        ::std::mem::align_of::<HTML_FileOpenDialog_t>(),
18447        4usize,
18448        concat!("Alignment of ", stringify!(HTML_FileOpenDialog_t))
18449    );
18450    assert_eq!(
18451        unsafe { ::std::ptr::addr_of!((*ptr).unBrowserHandle) as usize - ptr as usize },
18452        0usize,
18453        concat!(
18454            "Offset of field: ",
18455            stringify!(HTML_FileOpenDialog_t),
18456            "::",
18457            stringify!(unBrowserHandle)
18458        )
18459    );
18460    assert_eq!(
18461        unsafe { ::std::ptr::addr_of!((*ptr).pchTitle) as usize - ptr as usize },
18462        4usize,
18463        concat!(
18464            "Offset of field: ",
18465            stringify!(HTML_FileOpenDialog_t),
18466            "::",
18467            stringify!(pchTitle)
18468        )
18469    );
18470    assert_eq!(
18471        unsafe { ::std::ptr::addr_of!((*ptr).pchInitialFile) as usize - ptr as usize },
18472        12usize,
18473        concat!(
18474            "Offset of field: ",
18475            stringify!(HTML_FileOpenDialog_t),
18476            "::",
18477            stringify!(pchInitialFile)
18478        )
18479    );
18480}
18481#[repr(C, packed(4))]
18482#[derive(Debug, Copy, Clone)]
18483pub struct HTML_NewWindow_t {
18484    pub unBrowserHandle: HHTMLBrowser,
18485    pub pchURL: *const ::std::os::raw::c_char,
18486    pub unX: uint32,
18487    pub unY: uint32,
18488    pub unWide: uint32,
18489    pub unTall: uint32,
18490    pub unNewWindow_BrowserHandle_IGNORE: HHTMLBrowser,
18491}
18492pub const HTML_NewWindow_t_k_iCallback: HTML_NewWindow_t__bindgen_ty_1 =
18493    HTML_NewWindow_t__bindgen_ty_1::k_iCallback;
18494#[repr(u32)]
18495#[non_exhaustive]
18496#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
18497pub enum HTML_NewWindow_t__bindgen_ty_1 {
18498    k_iCallback = 4521,
18499}
18500#[test]
18501fn bindgen_test_layout_HTML_NewWindow_t() {
18502    const UNINIT: ::std::mem::MaybeUninit<HTML_NewWindow_t> = ::std::mem::MaybeUninit::uninit();
18503    let ptr = UNINIT.as_ptr();
18504    assert_eq!(
18505        ::std::mem::size_of::<HTML_NewWindow_t>(),
18506        32usize,
18507        concat!("Size of: ", stringify!(HTML_NewWindow_t))
18508    );
18509    assert_eq!(
18510        ::std::mem::align_of::<HTML_NewWindow_t>(),
18511        4usize,
18512        concat!("Alignment of ", stringify!(HTML_NewWindow_t))
18513    );
18514    assert_eq!(
18515        unsafe { ::std::ptr::addr_of!((*ptr).unBrowserHandle) as usize - ptr as usize },
18516        0usize,
18517        concat!(
18518            "Offset of field: ",
18519            stringify!(HTML_NewWindow_t),
18520            "::",
18521            stringify!(unBrowserHandle)
18522        )
18523    );
18524    assert_eq!(
18525        unsafe { ::std::ptr::addr_of!((*ptr).pchURL) as usize - ptr as usize },
18526        4usize,
18527        concat!(
18528            "Offset of field: ",
18529            stringify!(HTML_NewWindow_t),
18530            "::",
18531            stringify!(pchURL)
18532        )
18533    );
18534    assert_eq!(
18535        unsafe { ::std::ptr::addr_of!((*ptr).unX) as usize - ptr as usize },
18536        12usize,
18537        concat!(
18538            "Offset of field: ",
18539            stringify!(HTML_NewWindow_t),
18540            "::",
18541            stringify!(unX)
18542        )
18543    );
18544    assert_eq!(
18545        unsafe { ::std::ptr::addr_of!((*ptr).unY) as usize - ptr as usize },
18546        16usize,
18547        concat!(
18548            "Offset of field: ",
18549            stringify!(HTML_NewWindow_t),
18550            "::",
18551            stringify!(unY)
18552        )
18553    );
18554    assert_eq!(
18555        unsafe { ::std::ptr::addr_of!((*ptr).unWide) as usize - ptr as usize },
18556        20usize,
18557        concat!(
18558            "Offset of field: ",
18559            stringify!(HTML_NewWindow_t),
18560            "::",
18561            stringify!(unWide)
18562        )
18563    );
18564    assert_eq!(
18565        unsafe { ::std::ptr::addr_of!((*ptr).unTall) as usize - ptr as usize },
18566        24usize,
18567        concat!(
18568            "Offset of field: ",
18569            stringify!(HTML_NewWindow_t),
18570            "::",
18571            stringify!(unTall)
18572        )
18573    );
18574    assert_eq!(
18575        unsafe {
18576            ::std::ptr::addr_of!((*ptr).unNewWindow_BrowserHandle_IGNORE) as usize - ptr as usize
18577        },
18578        28usize,
18579        concat!(
18580            "Offset of field: ",
18581            stringify!(HTML_NewWindow_t),
18582            "::",
18583            stringify!(unNewWindow_BrowserHandle_IGNORE)
18584        )
18585    );
18586}
18587#[repr(C)]
18588#[derive(Debug, Copy, Clone)]
18589pub struct HTML_SetCursor_t {
18590    pub unBrowserHandle: HHTMLBrowser,
18591    pub eMouseCursor: uint32,
18592}
18593pub const HTML_SetCursor_t_k_iCallback: HTML_SetCursor_t__bindgen_ty_1 =
18594    HTML_SetCursor_t__bindgen_ty_1::k_iCallback;
18595#[repr(u32)]
18596#[non_exhaustive]
18597#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
18598pub enum HTML_SetCursor_t__bindgen_ty_1 {
18599    k_iCallback = 4522,
18600}
18601#[test]
18602fn bindgen_test_layout_HTML_SetCursor_t() {
18603    const UNINIT: ::std::mem::MaybeUninit<HTML_SetCursor_t> = ::std::mem::MaybeUninit::uninit();
18604    let ptr = UNINIT.as_ptr();
18605    assert_eq!(
18606        ::std::mem::size_of::<HTML_SetCursor_t>(),
18607        8usize,
18608        concat!("Size of: ", stringify!(HTML_SetCursor_t))
18609    );
18610    assert_eq!(
18611        ::std::mem::align_of::<HTML_SetCursor_t>(),
18612        4usize,
18613        concat!("Alignment of ", stringify!(HTML_SetCursor_t))
18614    );
18615    assert_eq!(
18616        unsafe { ::std::ptr::addr_of!((*ptr).unBrowserHandle) as usize - ptr as usize },
18617        0usize,
18618        concat!(
18619            "Offset of field: ",
18620            stringify!(HTML_SetCursor_t),
18621            "::",
18622            stringify!(unBrowserHandle)
18623        )
18624    );
18625    assert_eq!(
18626        unsafe { ::std::ptr::addr_of!((*ptr).eMouseCursor) as usize - ptr as usize },
18627        4usize,
18628        concat!(
18629            "Offset of field: ",
18630            stringify!(HTML_SetCursor_t),
18631            "::",
18632            stringify!(eMouseCursor)
18633        )
18634    );
18635}
18636#[repr(C, packed(4))]
18637#[derive(Debug, Copy, Clone)]
18638pub struct HTML_StatusText_t {
18639    pub unBrowserHandle: HHTMLBrowser,
18640    pub pchMsg: *const ::std::os::raw::c_char,
18641}
18642pub const HTML_StatusText_t_k_iCallback: HTML_StatusText_t__bindgen_ty_1 =
18643    HTML_StatusText_t__bindgen_ty_1::k_iCallback;
18644#[repr(u32)]
18645#[non_exhaustive]
18646#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
18647pub enum HTML_StatusText_t__bindgen_ty_1 {
18648    k_iCallback = 4523,
18649}
18650#[test]
18651fn bindgen_test_layout_HTML_StatusText_t() {
18652    const UNINIT: ::std::mem::MaybeUninit<HTML_StatusText_t> = ::std::mem::MaybeUninit::uninit();
18653    let ptr = UNINIT.as_ptr();
18654    assert_eq!(
18655        ::std::mem::size_of::<HTML_StatusText_t>(),
18656        12usize,
18657        concat!("Size of: ", stringify!(HTML_StatusText_t))
18658    );
18659    assert_eq!(
18660        ::std::mem::align_of::<HTML_StatusText_t>(),
18661        4usize,
18662        concat!("Alignment of ", stringify!(HTML_StatusText_t))
18663    );
18664    assert_eq!(
18665        unsafe { ::std::ptr::addr_of!((*ptr).unBrowserHandle) as usize - ptr as usize },
18666        0usize,
18667        concat!(
18668            "Offset of field: ",
18669            stringify!(HTML_StatusText_t),
18670            "::",
18671            stringify!(unBrowserHandle)
18672        )
18673    );
18674    assert_eq!(
18675        unsafe { ::std::ptr::addr_of!((*ptr).pchMsg) as usize - ptr as usize },
18676        4usize,
18677        concat!(
18678            "Offset of field: ",
18679            stringify!(HTML_StatusText_t),
18680            "::",
18681            stringify!(pchMsg)
18682        )
18683    );
18684}
18685#[repr(C, packed(4))]
18686#[derive(Debug, Copy, Clone)]
18687pub struct HTML_ShowToolTip_t {
18688    pub unBrowserHandle: HHTMLBrowser,
18689    pub pchMsg: *const ::std::os::raw::c_char,
18690}
18691pub const HTML_ShowToolTip_t_k_iCallback: HTML_ShowToolTip_t__bindgen_ty_1 =
18692    HTML_ShowToolTip_t__bindgen_ty_1::k_iCallback;
18693#[repr(u32)]
18694#[non_exhaustive]
18695#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
18696pub enum HTML_ShowToolTip_t__bindgen_ty_1 {
18697    k_iCallback = 4524,
18698}
18699#[test]
18700fn bindgen_test_layout_HTML_ShowToolTip_t() {
18701    const UNINIT: ::std::mem::MaybeUninit<HTML_ShowToolTip_t> = ::std::mem::MaybeUninit::uninit();
18702    let ptr = UNINIT.as_ptr();
18703    assert_eq!(
18704        ::std::mem::size_of::<HTML_ShowToolTip_t>(),
18705        12usize,
18706        concat!("Size of: ", stringify!(HTML_ShowToolTip_t))
18707    );
18708    assert_eq!(
18709        ::std::mem::align_of::<HTML_ShowToolTip_t>(),
18710        4usize,
18711        concat!("Alignment of ", stringify!(HTML_ShowToolTip_t))
18712    );
18713    assert_eq!(
18714        unsafe { ::std::ptr::addr_of!((*ptr).unBrowserHandle) as usize - ptr as usize },
18715        0usize,
18716        concat!(
18717            "Offset of field: ",
18718            stringify!(HTML_ShowToolTip_t),
18719            "::",
18720            stringify!(unBrowserHandle)
18721        )
18722    );
18723    assert_eq!(
18724        unsafe { ::std::ptr::addr_of!((*ptr).pchMsg) as usize - ptr as usize },
18725        4usize,
18726        concat!(
18727            "Offset of field: ",
18728            stringify!(HTML_ShowToolTip_t),
18729            "::",
18730            stringify!(pchMsg)
18731        )
18732    );
18733}
18734#[repr(C, packed(4))]
18735#[derive(Debug, Copy, Clone)]
18736pub struct HTML_UpdateToolTip_t {
18737    pub unBrowserHandle: HHTMLBrowser,
18738    pub pchMsg: *const ::std::os::raw::c_char,
18739}
18740pub const HTML_UpdateToolTip_t_k_iCallback: HTML_UpdateToolTip_t__bindgen_ty_1 =
18741    HTML_UpdateToolTip_t__bindgen_ty_1::k_iCallback;
18742#[repr(u32)]
18743#[non_exhaustive]
18744#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
18745pub enum HTML_UpdateToolTip_t__bindgen_ty_1 {
18746    k_iCallback = 4525,
18747}
18748#[test]
18749fn bindgen_test_layout_HTML_UpdateToolTip_t() {
18750    const UNINIT: ::std::mem::MaybeUninit<HTML_UpdateToolTip_t> = ::std::mem::MaybeUninit::uninit();
18751    let ptr = UNINIT.as_ptr();
18752    assert_eq!(
18753        ::std::mem::size_of::<HTML_UpdateToolTip_t>(),
18754        12usize,
18755        concat!("Size of: ", stringify!(HTML_UpdateToolTip_t))
18756    );
18757    assert_eq!(
18758        ::std::mem::align_of::<HTML_UpdateToolTip_t>(),
18759        4usize,
18760        concat!("Alignment of ", stringify!(HTML_UpdateToolTip_t))
18761    );
18762    assert_eq!(
18763        unsafe { ::std::ptr::addr_of!((*ptr).unBrowserHandle) as usize - ptr as usize },
18764        0usize,
18765        concat!(
18766            "Offset of field: ",
18767            stringify!(HTML_UpdateToolTip_t),
18768            "::",
18769            stringify!(unBrowserHandle)
18770        )
18771    );
18772    assert_eq!(
18773        unsafe { ::std::ptr::addr_of!((*ptr).pchMsg) as usize - ptr as usize },
18774        4usize,
18775        concat!(
18776            "Offset of field: ",
18777            stringify!(HTML_UpdateToolTip_t),
18778            "::",
18779            stringify!(pchMsg)
18780        )
18781    );
18782}
18783#[repr(C)]
18784#[derive(Debug, Copy, Clone)]
18785pub struct HTML_HideToolTip_t {
18786    pub unBrowserHandle: HHTMLBrowser,
18787}
18788pub const HTML_HideToolTip_t_k_iCallback: HTML_HideToolTip_t__bindgen_ty_1 =
18789    HTML_HideToolTip_t__bindgen_ty_1::k_iCallback;
18790#[repr(u32)]
18791#[non_exhaustive]
18792#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
18793pub enum HTML_HideToolTip_t__bindgen_ty_1 {
18794    k_iCallback = 4526,
18795}
18796#[test]
18797fn bindgen_test_layout_HTML_HideToolTip_t() {
18798    const UNINIT: ::std::mem::MaybeUninit<HTML_HideToolTip_t> = ::std::mem::MaybeUninit::uninit();
18799    let ptr = UNINIT.as_ptr();
18800    assert_eq!(
18801        ::std::mem::size_of::<HTML_HideToolTip_t>(),
18802        4usize,
18803        concat!("Size of: ", stringify!(HTML_HideToolTip_t))
18804    );
18805    assert_eq!(
18806        ::std::mem::align_of::<HTML_HideToolTip_t>(),
18807        4usize,
18808        concat!("Alignment of ", stringify!(HTML_HideToolTip_t))
18809    );
18810    assert_eq!(
18811        unsafe { ::std::ptr::addr_of!((*ptr).unBrowserHandle) as usize - ptr as usize },
18812        0usize,
18813        concat!(
18814            "Offset of field: ",
18815            stringify!(HTML_HideToolTip_t),
18816            "::",
18817            stringify!(unBrowserHandle)
18818        )
18819    );
18820}
18821#[repr(C)]
18822#[derive(Debug, Copy, Clone)]
18823pub struct HTML_BrowserRestarted_t {
18824    pub unBrowserHandle: HHTMLBrowser,
18825    pub unOldBrowserHandle: HHTMLBrowser,
18826}
18827pub const HTML_BrowserRestarted_t_k_iCallback: HTML_BrowserRestarted_t__bindgen_ty_1 =
18828    HTML_BrowserRestarted_t__bindgen_ty_1::k_iCallback;
18829#[repr(u32)]
18830#[non_exhaustive]
18831#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
18832pub enum HTML_BrowserRestarted_t__bindgen_ty_1 {
18833    k_iCallback = 4527,
18834}
18835#[test]
18836fn bindgen_test_layout_HTML_BrowserRestarted_t() {
18837    const UNINIT: ::std::mem::MaybeUninit<HTML_BrowserRestarted_t> =
18838        ::std::mem::MaybeUninit::uninit();
18839    let ptr = UNINIT.as_ptr();
18840    assert_eq!(
18841        ::std::mem::size_of::<HTML_BrowserRestarted_t>(),
18842        8usize,
18843        concat!("Size of: ", stringify!(HTML_BrowserRestarted_t))
18844    );
18845    assert_eq!(
18846        ::std::mem::align_of::<HTML_BrowserRestarted_t>(),
18847        4usize,
18848        concat!("Alignment of ", stringify!(HTML_BrowserRestarted_t))
18849    );
18850    assert_eq!(
18851        unsafe { ::std::ptr::addr_of!((*ptr).unBrowserHandle) as usize - ptr as usize },
18852        0usize,
18853        concat!(
18854            "Offset of field: ",
18855            stringify!(HTML_BrowserRestarted_t),
18856            "::",
18857            stringify!(unBrowserHandle)
18858        )
18859    );
18860    assert_eq!(
18861        unsafe { ::std::ptr::addr_of!((*ptr).unOldBrowserHandle) as usize - ptr as usize },
18862        4usize,
18863        concat!(
18864            "Offset of field: ",
18865            stringify!(HTML_BrowserRestarted_t),
18866            "::",
18867            stringify!(unOldBrowserHandle)
18868        )
18869    );
18870}
18871pub type SteamItemInstanceID_t = uint64;
18872extern "C" {
18873    #[link_name = "\u{1}_ZL28k_SteamItemInstanceIDInvalid"]
18874    pub static k_SteamItemInstanceIDInvalid: SteamItemInstanceID_t;
18875}
18876pub type SteamItemDef_t = int32;
18877#[repr(u32)]
18878#[non_exhaustive]
18879#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
18880pub enum ESteamItemFlags {
18881    k_ESteamItemNoTrade = 1,
18882    k_ESteamItemRemoved = 256,
18883    k_ESteamItemConsumed = 512,
18884}
18885#[repr(C, packed(4))]
18886#[derive(Debug, Copy, Clone)]
18887pub struct SteamItemDetails_t {
18888    pub m_itemId: SteamItemInstanceID_t,
18889    pub m_iDefinition: SteamItemDef_t,
18890    pub m_unQuantity: uint16,
18891    pub m_unFlags: uint16,
18892}
18893#[test]
18894fn bindgen_test_layout_SteamItemDetails_t() {
18895    const UNINIT: ::std::mem::MaybeUninit<SteamItemDetails_t> = ::std::mem::MaybeUninit::uninit();
18896    let ptr = UNINIT.as_ptr();
18897    assert_eq!(
18898        ::std::mem::size_of::<SteamItemDetails_t>(),
18899        16usize,
18900        concat!("Size of: ", stringify!(SteamItemDetails_t))
18901    );
18902    assert_eq!(
18903        ::std::mem::align_of::<SteamItemDetails_t>(),
18904        4usize,
18905        concat!("Alignment of ", stringify!(SteamItemDetails_t))
18906    );
18907    assert_eq!(
18908        unsafe { ::std::ptr::addr_of!((*ptr).m_itemId) as usize - ptr as usize },
18909        0usize,
18910        concat!(
18911            "Offset of field: ",
18912            stringify!(SteamItemDetails_t),
18913            "::",
18914            stringify!(m_itemId)
18915        )
18916    );
18917    assert_eq!(
18918        unsafe { ::std::ptr::addr_of!((*ptr).m_iDefinition) as usize - ptr as usize },
18919        8usize,
18920        concat!(
18921            "Offset of field: ",
18922            stringify!(SteamItemDetails_t),
18923            "::",
18924            stringify!(m_iDefinition)
18925        )
18926    );
18927    assert_eq!(
18928        unsafe { ::std::ptr::addr_of!((*ptr).m_unQuantity) as usize - ptr as usize },
18929        12usize,
18930        concat!(
18931            "Offset of field: ",
18932            stringify!(SteamItemDetails_t),
18933            "::",
18934            stringify!(m_unQuantity)
18935        )
18936    );
18937    assert_eq!(
18938        unsafe { ::std::ptr::addr_of!((*ptr).m_unFlags) as usize - ptr as usize },
18939        14usize,
18940        concat!(
18941            "Offset of field: ",
18942            stringify!(SteamItemDetails_t),
18943            "::",
18944            stringify!(m_unFlags)
18945        )
18946    );
18947}
18948pub type SteamInventoryResult_t = int32;
18949pub const k_SteamInventoryResultInvalid: SteamInventoryResult_t = -1;
18950pub type SteamInventoryUpdateHandle_t = uint64;
18951pub const k_SteamInventoryUpdateHandleInvalid: SteamInventoryUpdateHandle_t = 18446744073709551615;
18952#[repr(C)]
18953pub struct ISteamInventory__bindgen_vtable(::std::os::raw::c_void);
18954#[repr(C)]
18955#[derive(Debug, Copy, Clone)]
18956pub struct ISteamInventory {
18957    pub vtable_: *const ISteamInventory__bindgen_vtable,
18958}
18959#[test]
18960fn bindgen_test_layout_ISteamInventory() {
18961    assert_eq!(
18962        ::std::mem::size_of::<ISteamInventory>(),
18963        8usize,
18964        concat!("Size of: ", stringify!(ISteamInventory))
18965    );
18966    assert_eq!(
18967        ::std::mem::align_of::<ISteamInventory>(),
18968        4usize,
18969        concat!("Alignment of ", stringify!(ISteamInventory))
18970    );
18971}
18972#[repr(C)]
18973#[derive(Debug, Copy, Clone)]
18974pub struct SteamInventoryResultReady_t {
18975    pub m_handle: SteamInventoryResult_t,
18976    pub m_result: EResult,
18977}
18978pub const SteamInventoryResultReady_t_k_iCallback: SteamInventoryResultReady_t__bindgen_ty_1 =
18979    SteamInventoryResultReady_t__bindgen_ty_1::k_iCallback;
18980#[repr(u32)]
18981#[non_exhaustive]
18982#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
18983pub enum SteamInventoryResultReady_t__bindgen_ty_1 {
18984    k_iCallback = 4700,
18985}
18986#[test]
18987fn bindgen_test_layout_SteamInventoryResultReady_t() {
18988    const UNINIT: ::std::mem::MaybeUninit<SteamInventoryResultReady_t> =
18989        ::std::mem::MaybeUninit::uninit();
18990    let ptr = UNINIT.as_ptr();
18991    assert_eq!(
18992        ::std::mem::size_of::<SteamInventoryResultReady_t>(),
18993        8usize,
18994        concat!("Size of: ", stringify!(SteamInventoryResultReady_t))
18995    );
18996    assert_eq!(
18997        ::std::mem::align_of::<SteamInventoryResultReady_t>(),
18998        4usize,
18999        concat!("Alignment of ", stringify!(SteamInventoryResultReady_t))
19000    );
19001    assert_eq!(
19002        unsafe { ::std::ptr::addr_of!((*ptr).m_handle) as usize - ptr as usize },
19003        0usize,
19004        concat!(
19005            "Offset of field: ",
19006            stringify!(SteamInventoryResultReady_t),
19007            "::",
19008            stringify!(m_handle)
19009        )
19010    );
19011    assert_eq!(
19012        unsafe { ::std::ptr::addr_of!((*ptr).m_result) as usize - ptr as usize },
19013        4usize,
19014        concat!(
19015            "Offset of field: ",
19016            stringify!(SteamInventoryResultReady_t),
19017            "::",
19018            stringify!(m_result)
19019        )
19020    );
19021}
19022#[repr(C)]
19023#[derive(Debug, Copy, Clone)]
19024pub struct SteamInventoryFullUpdate_t {
19025    pub m_handle: SteamInventoryResult_t,
19026}
19027pub const SteamInventoryFullUpdate_t_k_iCallback: SteamInventoryFullUpdate_t__bindgen_ty_1 =
19028    SteamInventoryFullUpdate_t__bindgen_ty_1::k_iCallback;
19029#[repr(u32)]
19030#[non_exhaustive]
19031#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
19032pub enum SteamInventoryFullUpdate_t__bindgen_ty_1 {
19033    k_iCallback = 4701,
19034}
19035#[test]
19036fn bindgen_test_layout_SteamInventoryFullUpdate_t() {
19037    const UNINIT: ::std::mem::MaybeUninit<SteamInventoryFullUpdate_t> =
19038        ::std::mem::MaybeUninit::uninit();
19039    let ptr = UNINIT.as_ptr();
19040    assert_eq!(
19041        ::std::mem::size_of::<SteamInventoryFullUpdate_t>(),
19042        4usize,
19043        concat!("Size of: ", stringify!(SteamInventoryFullUpdate_t))
19044    );
19045    assert_eq!(
19046        ::std::mem::align_of::<SteamInventoryFullUpdate_t>(),
19047        4usize,
19048        concat!("Alignment of ", stringify!(SteamInventoryFullUpdate_t))
19049    );
19050    assert_eq!(
19051        unsafe { ::std::ptr::addr_of!((*ptr).m_handle) as usize - ptr as usize },
19052        0usize,
19053        concat!(
19054            "Offset of field: ",
19055            stringify!(SteamInventoryFullUpdate_t),
19056            "::",
19057            stringify!(m_handle)
19058        )
19059    );
19060}
19061#[repr(C)]
19062#[derive(Debug, Copy, Clone)]
19063pub struct SteamInventoryDefinitionUpdate_t {
19064    pub _address: u8,
19065}
19066pub const SteamInventoryDefinitionUpdate_t_k_iCallback:
19067    SteamInventoryDefinitionUpdate_t__bindgen_ty_1 =
19068    SteamInventoryDefinitionUpdate_t__bindgen_ty_1::k_iCallback;
19069#[repr(u32)]
19070#[non_exhaustive]
19071#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
19072pub enum SteamInventoryDefinitionUpdate_t__bindgen_ty_1 {
19073    k_iCallback = 4702,
19074}
19075#[test]
19076fn bindgen_test_layout_SteamInventoryDefinitionUpdate_t() {
19077    assert_eq!(
19078        ::std::mem::size_of::<SteamInventoryDefinitionUpdate_t>(),
19079        1usize,
19080        concat!("Size of: ", stringify!(SteamInventoryDefinitionUpdate_t))
19081    );
19082    assert_eq!(
19083        ::std::mem::align_of::<SteamInventoryDefinitionUpdate_t>(),
19084        1usize,
19085        concat!(
19086            "Alignment of ",
19087            stringify!(SteamInventoryDefinitionUpdate_t)
19088        )
19089    );
19090}
19091#[repr(C)]
19092#[derive(Copy, Clone)]
19093pub struct SteamInventoryEligiblePromoItemDefIDs_t {
19094    pub m_result: EResult,
19095    pub m_steamID: CSteamID,
19096    pub m_numEligiblePromoItemDefs: ::std::os::raw::c_int,
19097    pub m_bCachedData: bool,
19098}
19099pub const SteamInventoryEligiblePromoItemDefIDs_t_k_iCallback:
19100    SteamInventoryEligiblePromoItemDefIDs_t__bindgen_ty_1 =
19101    SteamInventoryEligiblePromoItemDefIDs_t__bindgen_ty_1::k_iCallback;
19102#[repr(u32)]
19103#[non_exhaustive]
19104#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
19105pub enum SteamInventoryEligiblePromoItemDefIDs_t__bindgen_ty_1 {
19106    k_iCallback = 4703,
19107}
19108#[test]
19109fn bindgen_test_layout_SteamInventoryEligiblePromoItemDefIDs_t() {
19110    const UNINIT: ::std::mem::MaybeUninit<SteamInventoryEligiblePromoItemDefIDs_t> =
19111        ::std::mem::MaybeUninit::uninit();
19112    let ptr = UNINIT.as_ptr();
19113    assert_eq!(
19114        ::std::mem::size_of::<SteamInventoryEligiblePromoItemDefIDs_t>(),
19115        20usize,
19116        concat!(
19117            "Size of: ",
19118            stringify!(SteamInventoryEligiblePromoItemDefIDs_t)
19119        )
19120    );
19121    assert_eq!(
19122        ::std::mem::align_of::<SteamInventoryEligiblePromoItemDefIDs_t>(),
19123        4usize,
19124        concat!(
19125            "Alignment of ",
19126            stringify!(SteamInventoryEligiblePromoItemDefIDs_t)
19127        )
19128    );
19129    assert_eq!(
19130        unsafe { ::std::ptr::addr_of!((*ptr).m_result) as usize - ptr as usize },
19131        0usize,
19132        concat!(
19133            "Offset of field: ",
19134            stringify!(SteamInventoryEligiblePromoItemDefIDs_t),
19135            "::",
19136            stringify!(m_result)
19137        )
19138    );
19139    assert_eq!(
19140        unsafe { ::std::ptr::addr_of!((*ptr).m_steamID) as usize - ptr as usize },
19141        4usize,
19142        concat!(
19143            "Offset of field: ",
19144            stringify!(SteamInventoryEligiblePromoItemDefIDs_t),
19145            "::",
19146            stringify!(m_steamID)
19147        )
19148    );
19149    assert_eq!(
19150        unsafe { ::std::ptr::addr_of!((*ptr).m_numEligiblePromoItemDefs) as usize - ptr as usize },
19151        12usize,
19152        concat!(
19153            "Offset of field: ",
19154            stringify!(SteamInventoryEligiblePromoItemDefIDs_t),
19155            "::",
19156            stringify!(m_numEligiblePromoItemDefs)
19157        )
19158    );
19159    assert_eq!(
19160        unsafe { ::std::ptr::addr_of!((*ptr).m_bCachedData) as usize - ptr as usize },
19161        16usize,
19162        concat!(
19163            "Offset of field: ",
19164            stringify!(SteamInventoryEligiblePromoItemDefIDs_t),
19165            "::",
19166            stringify!(m_bCachedData)
19167        )
19168    );
19169}
19170#[repr(C, packed(4))]
19171#[derive(Debug, Copy, Clone)]
19172pub struct SteamInventoryStartPurchaseResult_t {
19173    pub m_result: EResult,
19174    pub m_ulOrderID: uint64,
19175    pub m_ulTransID: uint64,
19176}
19177pub const SteamInventoryStartPurchaseResult_t_k_iCallback:
19178    SteamInventoryStartPurchaseResult_t__bindgen_ty_1 =
19179    SteamInventoryStartPurchaseResult_t__bindgen_ty_1::k_iCallback;
19180#[repr(u32)]
19181#[non_exhaustive]
19182#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
19183pub enum SteamInventoryStartPurchaseResult_t__bindgen_ty_1 {
19184    k_iCallback = 4704,
19185}
19186#[test]
19187fn bindgen_test_layout_SteamInventoryStartPurchaseResult_t() {
19188    const UNINIT: ::std::mem::MaybeUninit<SteamInventoryStartPurchaseResult_t> =
19189        ::std::mem::MaybeUninit::uninit();
19190    let ptr = UNINIT.as_ptr();
19191    assert_eq!(
19192        ::std::mem::size_of::<SteamInventoryStartPurchaseResult_t>(),
19193        20usize,
19194        concat!("Size of: ", stringify!(SteamInventoryStartPurchaseResult_t))
19195    );
19196    assert_eq!(
19197        ::std::mem::align_of::<SteamInventoryStartPurchaseResult_t>(),
19198        4usize,
19199        concat!(
19200            "Alignment of ",
19201            stringify!(SteamInventoryStartPurchaseResult_t)
19202        )
19203    );
19204    assert_eq!(
19205        unsafe { ::std::ptr::addr_of!((*ptr).m_result) as usize - ptr as usize },
19206        0usize,
19207        concat!(
19208            "Offset of field: ",
19209            stringify!(SteamInventoryStartPurchaseResult_t),
19210            "::",
19211            stringify!(m_result)
19212        )
19213    );
19214    assert_eq!(
19215        unsafe { ::std::ptr::addr_of!((*ptr).m_ulOrderID) as usize - ptr as usize },
19216        4usize,
19217        concat!(
19218            "Offset of field: ",
19219            stringify!(SteamInventoryStartPurchaseResult_t),
19220            "::",
19221            stringify!(m_ulOrderID)
19222        )
19223    );
19224    assert_eq!(
19225        unsafe { ::std::ptr::addr_of!((*ptr).m_ulTransID) as usize - ptr as usize },
19226        12usize,
19227        concat!(
19228            "Offset of field: ",
19229            stringify!(SteamInventoryStartPurchaseResult_t),
19230            "::",
19231            stringify!(m_ulTransID)
19232        )
19233    );
19234}
19235#[repr(C)]
19236#[derive(Debug, Copy, Clone)]
19237pub struct SteamInventoryRequestPricesResult_t {
19238    pub m_result: EResult,
19239    pub m_rgchCurrency: [::std::os::raw::c_char; 4usize],
19240}
19241pub const SteamInventoryRequestPricesResult_t_k_iCallback:
19242    SteamInventoryRequestPricesResult_t__bindgen_ty_1 =
19243    SteamInventoryRequestPricesResult_t__bindgen_ty_1::k_iCallback;
19244#[repr(u32)]
19245#[non_exhaustive]
19246#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
19247pub enum SteamInventoryRequestPricesResult_t__bindgen_ty_1 {
19248    k_iCallback = 4705,
19249}
19250#[test]
19251fn bindgen_test_layout_SteamInventoryRequestPricesResult_t() {
19252    const UNINIT: ::std::mem::MaybeUninit<SteamInventoryRequestPricesResult_t> =
19253        ::std::mem::MaybeUninit::uninit();
19254    let ptr = UNINIT.as_ptr();
19255    assert_eq!(
19256        ::std::mem::size_of::<SteamInventoryRequestPricesResult_t>(),
19257        8usize,
19258        concat!("Size of: ", stringify!(SteamInventoryRequestPricesResult_t))
19259    );
19260    assert_eq!(
19261        ::std::mem::align_of::<SteamInventoryRequestPricesResult_t>(),
19262        4usize,
19263        concat!(
19264            "Alignment of ",
19265            stringify!(SteamInventoryRequestPricesResult_t)
19266        )
19267    );
19268    assert_eq!(
19269        unsafe { ::std::ptr::addr_of!((*ptr).m_result) as usize - ptr as usize },
19270        0usize,
19271        concat!(
19272            "Offset of field: ",
19273            stringify!(SteamInventoryRequestPricesResult_t),
19274            "::",
19275            stringify!(m_result)
19276        )
19277    );
19278    assert_eq!(
19279        unsafe { ::std::ptr::addr_of!((*ptr).m_rgchCurrency) as usize - ptr as usize },
19280        4usize,
19281        concat!(
19282            "Offset of field: ",
19283            stringify!(SteamInventoryRequestPricesResult_t),
19284            "::",
19285            stringify!(m_rgchCurrency)
19286        )
19287    );
19288}
19289#[repr(C)]
19290pub struct ISteamVideo__bindgen_vtable(::std::os::raw::c_void);
19291#[repr(C)]
19292#[derive(Debug, Copy, Clone)]
19293pub struct ISteamVideo {
19294    pub vtable_: *const ISteamVideo__bindgen_vtable,
19295}
19296#[test]
19297fn bindgen_test_layout_ISteamVideo() {
19298    assert_eq!(
19299        ::std::mem::size_of::<ISteamVideo>(),
19300        8usize,
19301        concat!("Size of: ", stringify!(ISteamVideo))
19302    );
19303    assert_eq!(
19304        ::std::mem::align_of::<ISteamVideo>(),
19305        4usize,
19306        concat!("Alignment of ", stringify!(ISteamVideo))
19307    );
19308}
19309#[repr(C)]
19310#[derive(Debug, Copy, Clone)]
19311pub struct GetVideoURLResult_t {
19312    pub m_eResult: EResult,
19313    pub m_unVideoAppID: AppId_t,
19314    pub m_rgchURL: [::std::os::raw::c_char; 256usize],
19315}
19316pub const GetVideoURLResult_t_k_iCallback: GetVideoURLResult_t__bindgen_ty_1 =
19317    GetVideoURLResult_t__bindgen_ty_1::k_iCallback;
19318#[repr(u32)]
19319#[non_exhaustive]
19320#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
19321pub enum GetVideoURLResult_t__bindgen_ty_1 {
19322    k_iCallback = 4611,
19323}
19324#[test]
19325fn bindgen_test_layout_GetVideoURLResult_t() {
19326    const UNINIT: ::std::mem::MaybeUninit<GetVideoURLResult_t> = ::std::mem::MaybeUninit::uninit();
19327    let ptr = UNINIT.as_ptr();
19328    assert_eq!(
19329        ::std::mem::size_of::<GetVideoURLResult_t>(),
19330        264usize,
19331        concat!("Size of: ", stringify!(GetVideoURLResult_t))
19332    );
19333    assert_eq!(
19334        ::std::mem::align_of::<GetVideoURLResult_t>(),
19335        4usize,
19336        concat!("Alignment of ", stringify!(GetVideoURLResult_t))
19337    );
19338    assert_eq!(
19339        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
19340        0usize,
19341        concat!(
19342            "Offset of field: ",
19343            stringify!(GetVideoURLResult_t),
19344            "::",
19345            stringify!(m_eResult)
19346        )
19347    );
19348    assert_eq!(
19349        unsafe { ::std::ptr::addr_of!((*ptr).m_unVideoAppID) as usize - ptr as usize },
19350        4usize,
19351        concat!(
19352            "Offset of field: ",
19353            stringify!(GetVideoURLResult_t),
19354            "::",
19355            stringify!(m_unVideoAppID)
19356        )
19357    );
19358    assert_eq!(
19359        unsafe { ::std::ptr::addr_of!((*ptr).m_rgchURL) as usize - ptr as usize },
19360        8usize,
19361        concat!(
19362            "Offset of field: ",
19363            stringify!(GetVideoURLResult_t),
19364            "::",
19365            stringify!(m_rgchURL)
19366        )
19367    );
19368}
19369#[repr(C)]
19370#[derive(Debug, Copy, Clone)]
19371pub struct GetOPFSettingsResult_t {
19372    pub m_eResult: EResult,
19373    pub m_unVideoAppID: AppId_t,
19374}
19375pub const GetOPFSettingsResult_t_k_iCallback: GetOPFSettingsResult_t__bindgen_ty_1 =
19376    GetOPFSettingsResult_t__bindgen_ty_1::k_iCallback;
19377#[repr(u32)]
19378#[non_exhaustive]
19379#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
19380pub enum GetOPFSettingsResult_t__bindgen_ty_1 {
19381    k_iCallback = 4624,
19382}
19383#[test]
19384fn bindgen_test_layout_GetOPFSettingsResult_t() {
19385    const UNINIT: ::std::mem::MaybeUninit<GetOPFSettingsResult_t> =
19386        ::std::mem::MaybeUninit::uninit();
19387    let ptr = UNINIT.as_ptr();
19388    assert_eq!(
19389        ::std::mem::size_of::<GetOPFSettingsResult_t>(),
19390        8usize,
19391        concat!("Size of: ", stringify!(GetOPFSettingsResult_t))
19392    );
19393    assert_eq!(
19394        ::std::mem::align_of::<GetOPFSettingsResult_t>(),
19395        4usize,
19396        concat!("Alignment of ", stringify!(GetOPFSettingsResult_t))
19397    );
19398    assert_eq!(
19399        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
19400        0usize,
19401        concat!(
19402            "Offset of field: ",
19403            stringify!(GetOPFSettingsResult_t),
19404            "::",
19405            stringify!(m_eResult)
19406        )
19407    );
19408    assert_eq!(
19409        unsafe { ::std::ptr::addr_of!((*ptr).m_unVideoAppID) as usize - ptr as usize },
19410        4usize,
19411        concat!(
19412            "Offset of field: ",
19413            stringify!(GetOPFSettingsResult_t),
19414            "::",
19415            stringify!(m_unVideoAppID)
19416        )
19417    );
19418}
19419#[repr(u32)]
19420#[non_exhaustive]
19421#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
19422pub enum EParentalFeature {
19423    k_EFeatureInvalid = 0,
19424    k_EFeatureStore = 1,
19425    k_EFeatureCommunity = 2,
19426    k_EFeatureProfile = 3,
19427    k_EFeatureFriends = 4,
19428    k_EFeatureNews = 5,
19429    k_EFeatureTrading = 6,
19430    k_EFeatureSettings = 7,
19431    k_EFeatureConsole = 8,
19432    k_EFeatureBrowser = 9,
19433    k_EFeatureParentalSetup = 10,
19434    k_EFeatureLibrary = 11,
19435    k_EFeatureTest = 12,
19436    k_EFeatureSiteLicense = 13,
19437    k_EFeatureKioskMode = 14,
19438    k_EFeatureMax = 15,
19439}
19440#[repr(C)]
19441pub struct ISteamParentalSettings__bindgen_vtable(::std::os::raw::c_void);
19442#[repr(C)]
19443#[derive(Debug, Copy, Clone)]
19444pub struct ISteamParentalSettings {
19445    pub vtable_: *const ISteamParentalSettings__bindgen_vtable,
19446}
19447#[test]
19448fn bindgen_test_layout_ISteamParentalSettings() {
19449    assert_eq!(
19450        ::std::mem::size_of::<ISteamParentalSettings>(),
19451        8usize,
19452        concat!("Size of: ", stringify!(ISteamParentalSettings))
19453    );
19454    assert_eq!(
19455        ::std::mem::align_of::<ISteamParentalSettings>(),
19456        8usize,
19457        concat!("Alignment of ", stringify!(ISteamParentalSettings))
19458    );
19459}
19460#[repr(C)]
19461#[derive(Debug, Copy, Clone)]
19462pub struct SteamParentalSettingsChanged_t {
19463    pub _address: u8,
19464}
19465pub const SteamParentalSettingsChanged_t_k_iCallback: SteamParentalSettingsChanged_t__bindgen_ty_1 =
19466    SteamParentalSettingsChanged_t__bindgen_ty_1::k_iCallback;
19467#[repr(u32)]
19468#[non_exhaustive]
19469#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
19470pub enum SteamParentalSettingsChanged_t__bindgen_ty_1 {
19471    k_iCallback = 5001,
19472}
19473#[test]
19474fn bindgen_test_layout_SteamParentalSettingsChanged_t() {
19475    assert_eq!(
19476        ::std::mem::size_of::<SteamParentalSettingsChanged_t>(),
19477        1usize,
19478        concat!("Size of: ", stringify!(SteamParentalSettingsChanged_t))
19479    );
19480    assert_eq!(
19481        ::std::mem::align_of::<SteamParentalSettingsChanged_t>(),
19482        1usize,
19483        concat!("Alignment of ", stringify!(SteamParentalSettingsChanged_t))
19484    );
19485}
19486#[repr(u32)]
19487#[non_exhaustive]
19488#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
19489pub enum ESteamDeviceFormFactor {
19490    k_ESteamDeviceFormFactorUnknown = 0,
19491    k_ESteamDeviceFormFactorPhone = 1,
19492    k_ESteamDeviceFormFactorTablet = 2,
19493    k_ESteamDeviceFormFactorComputer = 3,
19494    k_ESteamDeviceFormFactorTV = 4,
19495}
19496pub type RemotePlaySessionID_t = uint32;
19497#[repr(C)]
19498pub struct ISteamRemotePlay__bindgen_vtable(::std::os::raw::c_void);
19499#[repr(C)]
19500#[derive(Debug, Copy, Clone)]
19501pub struct ISteamRemotePlay {
19502    pub vtable_: *const ISteamRemotePlay__bindgen_vtable,
19503}
19504#[test]
19505fn bindgen_test_layout_ISteamRemotePlay() {
19506    assert_eq!(
19507        ::std::mem::size_of::<ISteamRemotePlay>(),
19508        8usize,
19509        concat!("Size of: ", stringify!(ISteamRemotePlay))
19510    );
19511    assert_eq!(
19512        ::std::mem::align_of::<ISteamRemotePlay>(),
19513        8usize,
19514        concat!("Alignment of ", stringify!(ISteamRemotePlay))
19515    );
19516}
19517#[repr(C)]
19518#[derive(Debug, Copy, Clone)]
19519pub struct SteamRemotePlaySessionConnected_t {
19520    pub m_unSessionID: RemotePlaySessionID_t,
19521}
19522pub const SteamRemotePlaySessionConnected_t_k_iCallback:
19523    SteamRemotePlaySessionConnected_t__bindgen_ty_1 =
19524    SteamRemotePlaySessionConnected_t__bindgen_ty_1::k_iCallback;
19525#[repr(u32)]
19526#[non_exhaustive]
19527#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
19528pub enum SteamRemotePlaySessionConnected_t__bindgen_ty_1 {
19529    k_iCallback = 5701,
19530}
19531#[test]
19532fn bindgen_test_layout_SteamRemotePlaySessionConnected_t() {
19533    const UNINIT: ::std::mem::MaybeUninit<SteamRemotePlaySessionConnected_t> =
19534        ::std::mem::MaybeUninit::uninit();
19535    let ptr = UNINIT.as_ptr();
19536    assert_eq!(
19537        ::std::mem::size_of::<SteamRemotePlaySessionConnected_t>(),
19538        4usize,
19539        concat!("Size of: ", stringify!(SteamRemotePlaySessionConnected_t))
19540    );
19541    assert_eq!(
19542        ::std::mem::align_of::<SteamRemotePlaySessionConnected_t>(),
19543        4usize,
19544        concat!(
19545            "Alignment of ",
19546            stringify!(SteamRemotePlaySessionConnected_t)
19547        )
19548    );
19549    assert_eq!(
19550        unsafe { ::std::ptr::addr_of!((*ptr).m_unSessionID) as usize - ptr as usize },
19551        0usize,
19552        concat!(
19553            "Offset of field: ",
19554            stringify!(SteamRemotePlaySessionConnected_t),
19555            "::",
19556            stringify!(m_unSessionID)
19557        )
19558    );
19559}
19560#[repr(C)]
19561#[derive(Debug, Copy, Clone)]
19562pub struct SteamRemotePlaySessionDisconnected_t {
19563    pub m_unSessionID: RemotePlaySessionID_t,
19564}
19565pub const SteamRemotePlaySessionDisconnected_t_k_iCallback:
19566    SteamRemotePlaySessionDisconnected_t__bindgen_ty_1 =
19567    SteamRemotePlaySessionDisconnected_t__bindgen_ty_1::k_iCallback;
19568#[repr(u32)]
19569#[non_exhaustive]
19570#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
19571pub enum SteamRemotePlaySessionDisconnected_t__bindgen_ty_1 {
19572    k_iCallback = 5702,
19573}
19574#[test]
19575fn bindgen_test_layout_SteamRemotePlaySessionDisconnected_t() {
19576    const UNINIT: ::std::mem::MaybeUninit<SteamRemotePlaySessionDisconnected_t> =
19577        ::std::mem::MaybeUninit::uninit();
19578    let ptr = UNINIT.as_ptr();
19579    assert_eq!(
19580        ::std::mem::size_of::<SteamRemotePlaySessionDisconnected_t>(),
19581        4usize,
19582        concat!(
19583            "Size of: ",
19584            stringify!(SteamRemotePlaySessionDisconnected_t)
19585        )
19586    );
19587    assert_eq!(
19588        ::std::mem::align_of::<SteamRemotePlaySessionDisconnected_t>(),
19589        4usize,
19590        concat!(
19591            "Alignment of ",
19592            stringify!(SteamRemotePlaySessionDisconnected_t)
19593        )
19594    );
19595    assert_eq!(
19596        unsafe { ::std::ptr::addr_of!((*ptr).m_unSessionID) as usize - ptr as usize },
19597        0usize,
19598        concat!(
19599            "Offset of field: ",
19600            stringify!(SteamRemotePlaySessionDisconnected_t),
19601            "::",
19602            stringify!(m_unSessionID)
19603        )
19604    );
19605}
19606#[repr(C)]
19607#[derive(Debug, Copy, Clone)]
19608pub struct SteamRemotePlayTogetherGuestInvite_t {
19609    pub m_szConnectURL: [::std::os::raw::c_char; 1024usize],
19610}
19611pub const SteamRemotePlayTogetherGuestInvite_t_k_iCallback:
19612    SteamRemotePlayTogetherGuestInvite_t__bindgen_ty_1 =
19613    SteamRemotePlayTogetherGuestInvite_t__bindgen_ty_1::k_iCallback;
19614#[repr(u32)]
19615#[non_exhaustive]
19616#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
19617pub enum SteamRemotePlayTogetherGuestInvite_t__bindgen_ty_1 {
19618    k_iCallback = 5703,
19619}
19620#[test]
19621fn bindgen_test_layout_SteamRemotePlayTogetherGuestInvite_t() {
19622    const UNINIT: ::std::mem::MaybeUninit<SteamRemotePlayTogetherGuestInvite_t> =
19623        ::std::mem::MaybeUninit::uninit();
19624    let ptr = UNINIT.as_ptr();
19625    assert_eq!(
19626        ::std::mem::size_of::<SteamRemotePlayTogetherGuestInvite_t>(),
19627        1024usize,
19628        concat!(
19629            "Size of: ",
19630            stringify!(SteamRemotePlayTogetherGuestInvite_t)
19631        )
19632    );
19633    assert_eq!(
19634        ::std::mem::align_of::<SteamRemotePlayTogetherGuestInvite_t>(),
19635        1usize,
19636        concat!(
19637            "Alignment of ",
19638            stringify!(SteamRemotePlayTogetherGuestInvite_t)
19639        )
19640    );
19641    assert_eq!(
19642        unsafe { ::std::ptr::addr_of!((*ptr).m_szConnectURL) as usize - ptr as usize },
19643        0usize,
19644        concat!(
19645            "Offset of field: ",
19646            stringify!(SteamRemotePlayTogetherGuestInvite_t),
19647            "::",
19648            stringify!(m_szConnectURL)
19649        )
19650    );
19651}
19652pub type int_least8_t = __int_least8_t;
19653pub type int_least16_t = __int_least16_t;
19654pub type int_least32_t = __int_least32_t;
19655pub type int_least64_t = __int_least64_t;
19656pub type uint_least8_t = __uint_least8_t;
19657pub type uint_least16_t = __uint_least16_t;
19658pub type uint_least32_t = __uint_least32_t;
19659pub type uint_least64_t = __uint_least64_t;
19660pub type int_fast8_t = ::std::os::raw::c_schar;
19661pub type int_fast16_t = ::std::os::raw::c_long;
19662pub type int_fast32_t = ::std::os::raw::c_long;
19663pub type int_fast64_t = ::std::os::raw::c_long;
19664pub type uint_fast8_t = ::std::os::raw::c_uchar;
19665pub type uint_fast16_t = ::std::os::raw::c_ulong;
19666pub type uint_fast32_t = ::std::os::raw::c_ulong;
19667pub type uint_fast64_t = ::std::os::raw::c_ulong;
19668pub type intmax_t = __intmax_t;
19669pub type uintmax_t = __uintmax_t;
19670#[repr(C)]
19671#[derive(Debug, Copy, Clone)]
19672pub struct SteamDatagramRelayAuthTicket {
19673    _unused: [u8; 0],
19674}
19675#[repr(C)]
19676#[derive(Debug, Copy, Clone)]
19677pub struct SteamDatagramHostedAddress {
19678    _unused: [u8; 0],
19679}
19680#[repr(C)]
19681#[derive(Debug, Copy, Clone)]
19682pub struct SteamDatagramGameCoordinatorServerLogin {
19683    _unused: [u8; 0],
19684}
19685#[repr(C)]
19686#[derive(Debug, Copy, Clone)]
19687pub struct SteamNetworkingFakeIPResult_t {
19688    _unused: [u8; 0],
19689}
19690pub type FnSteamNetConnectionStatusChanged = ::std::option::Option<
19691    unsafe extern "C" fn(arg1: *mut SteamNetConnectionStatusChangedCallback_t),
19692>;
19693pub type FnSteamNetAuthenticationStatusChanged =
19694    ::std::option::Option<unsafe extern "C" fn(arg1: *mut SteamNetAuthenticationStatus_t)>;
19695pub type FnSteamRelayNetworkStatusChanged =
19696    ::std::option::Option<unsafe extern "C" fn(arg1: *mut SteamRelayNetworkStatus_t)>;
19697pub type FnSteamNetworkingMessagesSessionRequest =
19698    ::std::option::Option<unsafe extern "C" fn(arg1: *mut SteamNetworkingMessagesSessionRequest_t)>;
19699pub type FnSteamNetworkingMessagesSessionFailed =
19700    ::std::option::Option<unsafe extern "C" fn(arg1: *mut SteamNetworkingMessagesSessionFailed_t)>;
19701pub type FnSteamNetworkingFakeIPResult =
19702    ::std::option::Option<unsafe extern "C" fn(arg1: *mut SteamNetworkingFakeIPResult_t)>;
19703#[doc = " Handle used to identify a connection to a remote host."]
19704pub type HSteamNetConnection = uint32;
19705pub const k_HSteamNetConnection_Invalid: HSteamNetConnection = 0;
19706#[doc = " Handle used to identify a \"listen socket\".  Unlike traditional\n Berkeley sockets, a listen socket and a connection are two\n different abstractions."]
19707pub type HSteamListenSocket = uint32;
19708pub const k_HSteamListenSocket_Invalid: HSteamListenSocket = 0;
19709#[doc = " Handle used to identify a poll group, used to query many\n connections at once efficiently."]
19710pub type HSteamNetPollGroup = uint32;
19711pub const k_HSteamNetPollGroup_Invalid: HSteamNetPollGroup = 0;
19712#[doc = " Max length of diagnostic error message"]
19713pub const k_cchMaxSteamNetworkingErrMsg: ::std::os::raw::c_int = 1024;
19714#[doc = " Used to return English-language diagnostic error messages to caller.\n (For debugging or spewing to a console, etc.  Not intended for UI.)"]
19715pub type SteamNetworkingErrMsg = [::std::os::raw::c_char; 1024usize];
19716#[doc = " Identifier used for a network location point of presence.  (E.g. a Valve data center.)\n Typically you won't need to directly manipulate these."]
19717pub type SteamNetworkingPOPID = uint32;
19718#[doc = " A local timestamp.  You can subtract two timestamps to get the number of elapsed\n microseconds.  This is guaranteed to increase over time during the lifetime\n of a process, but not globally across runs.  You don't need to worry about\n the value wrapping around.  Note that the underlying clock might not actually have\n microsecond resolution."]
19719pub type SteamNetworkingMicroseconds = int64;
19720#[repr(i32)]
19721#[non_exhaustive]
19722#[doc = " Describe the status of a particular network resource"]
19723#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
19724pub enum ESteamNetworkingAvailability {
19725    k_ESteamNetworkingAvailability_CannotTry = -102,
19726    k_ESteamNetworkingAvailability_Failed = -101,
19727    k_ESteamNetworkingAvailability_Previously = -100,
19728    k_ESteamNetworkingAvailability_Retrying = -10,
19729    k_ESteamNetworkingAvailability_NeverTried = 1,
19730    k_ESteamNetworkingAvailability_Waiting = 2,
19731    k_ESteamNetworkingAvailability_Attempting = 3,
19732    k_ESteamNetworkingAvailability_Current = 100,
19733    k_ESteamNetworkingAvailability_Unknown = 0,
19734    k_ESteamNetworkingAvailability__Force32bit = 2147483647,
19735}
19736#[repr(u32)]
19737#[non_exhaustive]
19738#[doc = " Different methods of describing the identity of a network host"]
19739#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
19740pub enum ESteamNetworkingIdentityType {
19741    k_ESteamNetworkingIdentityType_Invalid = 0,
19742    k_ESteamNetworkingIdentityType_SteamID = 16,
19743    k_ESteamNetworkingIdentityType_XboxPairwiseID = 17,
19744    k_ESteamNetworkingIdentityType_SonyPSN = 18,
19745    k_ESteamNetworkingIdentityType_GoogleStadia = 19,
19746    k_ESteamNetworkingIdentityType_IPAddress = 1,
19747    k_ESteamNetworkingIdentityType_GenericString = 2,
19748    k_ESteamNetworkingIdentityType_GenericBytes = 3,
19749    k_ESteamNetworkingIdentityType_UnknownType = 4,
19750    k_ESteamNetworkingIdentityType__Force32bit = 2147483647,
19751}
19752#[repr(u32)]
19753#[non_exhaustive]
19754#[doc = " \"Fake IPs\" are assigned to hosts, to make it easier to interface with\n older code that assumed all hosts will have an IPv4 address"]
19755#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
19756pub enum ESteamNetworkingFakeIPType {
19757    k_ESteamNetworkingFakeIPType_Invalid = 0,
19758    k_ESteamNetworkingFakeIPType_NotFake = 1,
19759    k_ESteamNetworkingFakeIPType_GlobalIPv4 = 2,
19760    k_ESteamNetworkingFakeIPType_LocalIPv4 = 3,
19761    k_ESteamNetworkingFakeIPType__Force32Bit = 2147483647,
19762}
19763#[doc = " Store an IP and port.  IPv6 is always used; IPv4 is represented using\n \"IPv4-mapped\" addresses: IPv4 aa.bb.cc.dd => IPv6 ::ffff:aabb:ccdd\n (RFC 4291 section 2.5.5.2.)"]
19764#[repr(C, packed)]
19765#[derive(Copy, Clone)]
19766pub struct SteamNetworkingIPAddr {
19767    pub __bindgen_anon_1: SteamNetworkingIPAddr__bindgen_ty_2,
19768    pub m_port: uint16,
19769}
19770pub const SteamNetworkingIPAddr_k_cchMaxString: SteamNetworkingIPAddr__bindgen_ty_1 =
19771    SteamNetworkingIPAddr__bindgen_ty_1::k_cchMaxString;
19772#[repr(u32)]
19773#[non_exhaustive]
19774#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
19775pub enum SteamNetworkingIPAddr__bindgen_ty_1 {
19776    k_cchMaxString = 48,
19777}
19778#[doc = " RFC4038, section 4.2"]
19779#[repr(C, packed)]
19780#[derive(Debug, Copy, Clone)]
19781pub struct SteamNetworkingIPAddr_IPv4MappedAddress {
19782    pub m_8zeros: uint64,
19783    pub m_0000: uint16,
19784    pub m_ffff: uint16,
19785    pub m_ip: [uint8; 4usize],
19786}
19787#[test]
19788fn bindgen_test_layout_SteamNetworkingIPAddr_IPv4MappedAddress() {
19789    const UNINIT: ::std::mem::MaybeUninit<SteamNetworkingIPAddr_IPv4MappedAddress> =
19790        ::std::mem::MaybeUninit::uninit();
19791    let ptr = UNINIT.as_ptr();
19792    assert_eq!(
19793        ::std::mem::size_of::<SteamNetworkingIPAddr_IPv4MappedAddress>(),
19794        16usize,
19795        concat!(
19796            "Size of: ",
19797            stringify!(SteamNetworkingIPAddr_IPv4MappedAddress)
19798        )
19799    );
19800    assert_eq!(
19801        ::std::mem::align_of::<SteamNetworkingIPAddr_IPv4MappedAddress>(),
19802        1usize,
19803        concat!(
19804            "Alignment of ",
19805            stringify!(SteamNetworkingIPAddr_IPv4MappedAddress)
19806        )
19807    );
19808    assert_eq!(
19809        unsafe { ::std::ptr::addr_of!((*ptr).m_8zeros) as usize - ptr as usize },
19810        0usize,
19811        concat!(
19812            "Offset of field: ",
19813            stringify!(SteamNetworkingIPAddr_IPv4MappedAddress),
19814            "::",
19815            stringify!(m_8zeros)
19816        )
19817    );
19818    assert_eq!(
19819        unsafe { ::std::ptr::addr_of!((*ptr).m_0000) as usize - ptr as usize },
19820        8usize,
19821        concat!(
19822            "Offset of field: ",
19823            stringify!(SteamNetworkingIPAddr_IPv4MappedAddress),
19824            "::",
19825            stringify!(m_0000)
19826        )
19827    );
19828    assert_eq!(
19829        unsafe { ::std::ptr::addr_of!((*ptr).m_ffff) as usize - ptr as usize },
19830        10usize,
19831        concat!(
19832            "Offset of field: ",
19833            stringify!(SteamNetworkingIPAddr_IPv4MappedAddress),
19834            "::",
19835            stringify!(m_ffff)
19836        )
19837    );
19838    assert_eq!(
19839        unsafe { ::std::ptr::addr_of!((*ptr).m_ip) as usize - ptr as usize },
19840        12usize,
19841        concat!(
19842            "Offset of field: ",
19843            stringify!(SteamNetworkingIPAddr_IPv4MappedAddress),
19844            "::",
19845            stringify!(m_ip)
19846        )
19847    );
19848}
19849#[repr(C)]
19850#[derive(Copy, Clone)]
19851pub union SteamNetworkingIPAddr__bindgen_ty_2 {
19852    pub m_ipv6: [uint8; 16usize],
19853    pub m_ipv4: SteamNetworkingIPAddr_IPv4MappedAddress,
19854}
19855#[test]
19856fn bindgen_test_layout_SteamNetworkingIPAddr__bindgen_ty_2() {
19857    const UNINIT: ::std::mem::MaybeUninit<SteamNetworkingIPAddr__bindgen_ty_2> =
19858        ::std::mem::MaybeUninit::uninit();
19859    let ptr = UNINIT.as_ptr();
19860    assert_eq!(
19861        ::std::mem::size_of::<SteamNetworkingIPAddr__bindgen_ty_2>(),
19862        16usize,
19863        concat!("Size of: ", stringify!(SteamNetworkingIPAddr__bindgen_ty_2))
19864    );
19865    assert_eq!(
19866        ::std::mem::align_of::<SteamNetworkingIPAddr__bindgen_ty_2>(),
19867        1usize,
19868        concat!(
19869            "Alignment of ",
19870            stringify!(SteamNetworkingIPAddr__bindgen_ty_2)
19871        )
19872    );
19873    assert_eq!(
19874        unsafe { ::std::ptr::addr_of!((*ptr).m_ipv6) as usize - ptr as usize },
19875        0usize,
19876        concat!(
19877            "Offset of field: ",
19878            stringify!(SteamNetworkingIPAddr__bindgen_ty_2),
19879            "::",
19880            stringify!(m_ipv6)
19881        )
19882    );
19883    assert_eq!(
19884        unsafe { ::std::ptr::addr_of!((*ptr).m_ipv4) as usize - ptr as usize },
19885        0usize,
19886        concat!(
19887            "Offset of field: ",
19888            stringify!(SteamNetworkingIPAddr__bindgen_ty_2),
19889            "::",
19890            stringify!(m_ipv4)
19891        )
19892    );
19893}
19894#[test]
19895fn bindgen_test_layout_SteamNetworkingIPAddr() {
19896    const UNINIT: ::std::mem::MaybeUninit<SteamNetworkingIPAddr> =
19897        ::std::mem::MaybeUninit::uninit();
19898    let ptr = UNINIT.as_ptr();
19899    assert_eq!(
19900        ::std::mem::size_of::<SteamNetworkingIPAddr>(),
19901        18usize,
19902        concat!("Size of: ", stringify!(SteamNetworkingIPAddr))
19903    );
19904    assert_eq!(
19905        ::std::mem::align_of::<SteamNetworkingIPAddr>(),
19906        1usize,
19907        concat!("Alignment of ", stringify!(SteamNetworkingIPAddr))
19908    );
19909    assert_eq!(
19910        unsafe { ::std::ptr::addr_of!((*ptr).m_port) as usize - ptr as usize },
19911        16usize,
19912        concat!(
19913            "Offset of field: ",
19914            stringify!(SteamNetworkingIPAddr),
19915            "::",
19916            stringify!(m_port)
19917        )
19918    );
19919}
19920#[doc = " An abstract way to represent the identity of a network host.  All identities can\n be represented as simple string.  Furthermore, this string representation is actually\n used on the wire in several places, even though it is less efficient, in order to\n facilitate forward compatibility.  (Old client code can handle an identity type that\n it doesn't understand.)"]
19921#[repr(C, packed)]
19922#[derive(Copy, Clone)]
19923pub struct SteamNetworkingIdentity {
19924    #[doc = " Type of identity."]
19925    pub m_eType: ESteamNetworkingIdentityType,
19926    pub m_cbSize: ::std::os::raw::c_int,
19927    pub __bindgen_anon_1: SteamNetworkingIdentity__bindgen_ty_2,
19928}
19929pub const SteamNetworkingIdentity_k_cchMaxString: SteamNetworkingIdentity__bindgen_ty_1 =
19930    SteamNetworkingIdentity__bindgen_ty_1::k_cchMaxString;
19931pub const SteamNetworkingIdentity_k_cchMaxGenericString: SteamNetworkingIdentity__bindgen_ty_1 =
19932    SteamNetworkingIdentity__bindgen_ty_1::k_cchMaxGenericString;
19933pub const SteamNetworkingIdentity_k_cchMaxXboxPairwiseID: SteamNetworkingIdentity__bindgen_ty_1 =
19934    SteamNetworkingIdentity__bindgen_ty_1::k_cchMaxXboxPairwiseID;
19935pub const SteamNetworkingIdentity_k_cbMaxGenericBytes: SteamNetworkingIdentity__bindgen_ty_1 =
19936    SteamNetworkingIdentity__bindgen_ty_1::k_cchMaxGenericString;
19937#[repr(u32)]
19938#[non_exhaustive]
19939#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
19940pub enum SteamNetworkingIdentity__bindgen_ty_1 {
19941    k_cchMaxString = 128,
19942    k_cchMaxGenericString = 32,
19943    k_cchMaxXboxPairwiseID = 33,
19944}
19945#[repr(C, packed)]
19946#[derive(Copy, Clone)]
19947pub union SteamNetworkingIdentity__bindgen_ty_2 {
19948    pub m_steamID64: uint64,
19949    pub m_PSNID: uint64,
19950    pub m_stadiaID: uint64,
19951    pub m_szGenericString: [::std::os::raw::c_char; 32usize],
19952    pub m_szXboxPairwiseID: [::std::os::raw::c_char; 33usize],
19953    pub m_genericBytes: [uint8; 32usize],
19954    pub m_szUnknownRawString: [::std::os::raw::c_char; 128usize],
19955    pub m_ip: SteamNetworkingIPAddr,
19956    pub m_reserved: [uint32; 32usize],
19957}
19958#[test]
19959fn bindgen_test_layout_SteamNetworkingIdentity__bindgen_ty_2() {
19960    const UNINIT: ::std::mem::MaybeUninit<SteamNetworkingIdentity__bindgen_ty_2> =
19961        ::std::mem::MaybeUninit::uninit();
19962    let ptr = UNINIT.as_ptr();
19963    assert_eq!(
19964        ::std::mem::size_of::<SteamNetworkingIdentity__bindgen_ty_2>(),
19965        128usize,
19966        concat!(
19967            "Size of: ",
19968            stringify!(SteamNetworkingIdentity__bindgen_ty_2)
19969        )
19970    );
19971    assert_eq!(
19972        ::std::mem::align_of::<SteamNetworkingIdentity__bindgen_ty_2>(),
19973        1usize,
19974        concat!(
19975            "Alignment of ",
19976            stringify!(SteamNetworkingIdentity__bindgen_ty_2)
19977        )
19978    );
19979    assert_eq!(
19980        unsafe { ::std::ptr::addr_of!((*ptr).m_steamID64) as usize - ptr as usize },
19981        0usize,
19982        concat!(
19983            "Offset of field: ",
19984            stringify!(SteamNetworkingIdentity__bindgen_ty_2),
19985            "::",
19986            stringify!(m_steamID64)
19987        )
19988    );
19989    assert_eq!(
19990        unsafe { ::std::ptr::addr_of!((*ptr).m_PSNID) as usize - ptr as usize },
19991        0usize,
19992        concat!(
19993            "Offset of field: ",
19994            stringify!(SteamNetworkingIdentity__bindgen_ty_2),
19995            "::",
19996            stringify!(m_PSNID)
19997        )
19998    );
19999    assert_eq!(
20000        unsafe { ::std::ptr::addr_of!((*ptr).m_stadiaID) as usize - ptr as usize },
20001        0usize,
20002        concat!(
20003            "Offset of field: ",
20004            stringify!(SteamNetworkingIdentity__bindgen_ty_2),
20005            "::",
20006            stringify!(m_stadiaID)
20007        )
20008    );
20009    assert_eq!(
20010        unsafe { ::std::ptr::addr_of!((*ptr).m_szGenericString) as usize - ptr as usize },
20011        0usize,
20012        concat!(
20013            "Offset of field: ",
20014            stringify!(SteamNetworkingIdentity__bindgen_ty_2),
20015            "::",
20016            stringify!(m_szGenericString)
20017        )
20018    );
20019    assert_eq!(
20020        unsafe { ::std::ptr::addr_of!((*ptr).m_szXboxPairwiseID) as usize - ptr as usize },
20021        0usize,
20022        concat!(
20023            "Offset of field: ",
20024            stringify!(SteamNetworkingIdentity__bindgen_ty_2),
20025            "::",
20026            stringify!(m_szXboxPairwiseID)
20027        )
20028    );
20029    assert_eq!(
20030        unsafe { ::std::ptr::addr_of!((*ptr).m_genericBytes) as usize - ptr as usize },
20031        0usize,
20032        concat!(
20033            "Offset of field: ",
20034            stringify!(SteamNetworkingIdentity__bindgen_ty_2),
20035            "::",
20036            stringify!(m_genericBytes)
20037        )
20038    );
20039    assert_eq!(
20040        unsafe { ::std::ptr::addr_of!((*ptr).m_szUnknownRawString) as usize - ptr as usize },
20041        0usize,
20042        concat!(
20043            "Offset of field: ",
20044            stringify!(SteamNetworkingIdentity__bindgen_ty_2),
20045            "::",
20046            stringify!(m_szUnknownRawString)
20047        )
20048    );
20049    assert_eq!(
20050        unsafe { ::std::ptr::addr_of!((*ptr).m_ip) as usize - ptr as usize },
20051        0usize,
20052        concat!(
20053            "Offset of field: ",
20054            stringify!(SteamNetworkingIdentity__bindgen_ty_2),
20055            "::",
20056            stringify!(m_ip)
20057        )
20058    );
20059    assert_eq!(
20060        unsafe { ::std::ptr::addr_of!((*ptr).m_reserved) as usize - ptr as usize },
20061        0usize,
20062        concat!(
20063            "Offset of field: ",
20064            stringify!(SteamNetworkingIdentity__bindgen_ty_2),
20065            "::",
20066            stringify!(m_reserved)
20067        )
20068    );
20069}
20070#[test]
20071fn bindgen_test_layout_SteamNetworkingIdentity() {
20072    const UNINIT: ::std::mem::MaybeUninit<SteamNetworkingIdentity> =
20073        ::std::mem::MaybeUninit::uninit();
20074    let ptr = UNINIT.as_ptr();
20075    assert_eq!(
20076        ::std::mem::size_of::<SteamNetworkingIdentity>(),
20077        136usize,
20078        concat!("Size of: ", stringify!(SteamNetworkingIdentity))
20079    );
20080    assert_eq!(
20081        ::std::mem::align_of::<SteamNetworkingIdentity>(),
20082        1usize,
20083        concat!("Alignment of ", stringify!(SteamNetworkingIdentity))
20084    );
20085    assert_eq!(
20086        unsafe { ::std::ptr::addr_of!((*ptr).m_eType) as usize - ptr as usize },
20087        0usize,
20088        concat!(
20089            "Offset of field: ",
20090            stringify!(SteamNetworkingIdentity),
20091            "::",
20092            stringify!(m_eType)
20093        )
20094    );
20095    assert_eq!(
20096        unsafe { ::std::ptr::addr_of!((*ptr).m_cbSize) as usize - ptr as usize },
20097        4usize,
20098        concat!(
20099            "Offset of field: ",
20100            stringify!(SteamNetworkingIdentity),
20101            "::",
20102            stringify!(m_cbSize)
20103        )
20104    );
20105}
20106#[repr(i32)]
20107#[non_exhaustive]
20108#[doc = " High level connection status"]
20109#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
20110pub enum ESteamNetworkingConnectionState {
20111    #[doc = " Dummy value used to indicate an error condition in the API.\n Specified connection doesn't exist or has already been closed."]
20112    k_ESteamNetworkingConnectionState_None = 0,
20113    #[doc = " We are trying to establish whether peers can talk to each other,\n whether they WANT to talk to each other, perform basic auth,\n and exchange crypt keys.\n\n - For connections on the \"client\" side (initiated locally):\n   We're in the process of trying to establish a connection.\n   Depending on the connection type, we might not know who they are.\n   Note that it is not possible to tell if we are waiting on the\n   network to complete handshake packets, or for the application layer\n   to accept the connection.\n\n - For connections on the \"server\" side (accepted through listen socket):\n   We have completed some basic handshake and the client has presented\n   some proof of identity.  The connection is ready to be accepted\n   using AcceptConnection().\n\n In either case, any unreliable packets sent now are almost certain\n to be dropped.  Attempts to receive packets are guaranteed to fail.\n You may send messages if the send mode allows for them to be queued.\n but if you close the connection before the connection is actually\n established, any queued messages will be discarded immediately.\n (We will not attempt to flush the queue and confirm delivery to the\n remote host, which ordinarily happens when a connection is closed.)"]
20114    k_ESteamNetworkingConnectionState_Connecting = 1,
20115    #[doc = " Some connection types use a back channel or trusted 3rd party\n for earliest communication.  If the server accepts the connection,\n then these connections switch into the rendezvous state.  During this\n state, we still have not yet established an end-to-end route (through\n the relay network), and so if you send any messages unreliable, they\n are going to be discarded."]
20116    k_ESteamNetworkingConnectionState_FindingRoute = 2,
20117    #[doc = " We've received communications from our peer (and we know\n who they are) and are all good.  If you close the connection now,\n we will make our best effort to flush out any reliable sent data that\n has not been acknowledged by the peer.  (But note that this happens\n from within the application process, so unlike a TCP connection, you are\n not totally handing it off to the operating system to deal with it.)"]
20118    k_ESteamNetworkingConnectionState_Connected = 3,
20119    #[doc = " Connection has been closed by our peer, but not closed locally.\n The connection still exists from an API perspective.  You must close the\n handle to free up resources.  If there are any messages in the inbound queue,\n you may retrieve them.  Otherwise, nothing may be done with the connection\n except to close it.\n\n This stats is similar to CLOSE_WAIT in the TCP state machine."]
20120    k_ESteamNetworkingConnectionState_ClosedByPeer = 4,
20121    #[doc = " A disruption in the connection has been detected locally.  (E.g. timeout,\n local internet connection disrupted, etc.)\n\n The connection still exists from an API perspective.  You must close the\n handle to free up resources.\n\n Attempts to send further messages will fail.  Any remaining received messages\n in the queue are available."]
20122    k_ESteamNetworkingConnectionState_ProblemDetectedLocally = 5,
20123    #[doc = " We've disconnected on our side, and from an API perspective the connection is closed.\n No more data may be sent or received.  All reliable data has been flushed, or else\n we've given up and discarded it.  We do not yet know for sure that the peer knows\n the connection has been closed, however, so we're just hanging around so that if we do\n get a packet from them, we can send them the appropriate packets so that they can\n know why the connection was closed (and not have to rely on a timeout, which makes\n it appear as if something is wrong)."]
20124    k_ESteamNetworkingConnectionState_FinWait = -1,
20125    #[doc = " We've disconnected on our side, and from an API perspective the connection is closed.\n No more data may be sent or received.  From a network perspective, however, on the wire,\n we have not yet given any indication to the peer that the connection is closed.\n We are in the process of flushing out the last bit of reliable data.  Once that is done,\n we will inform the peer that the connection has been closed, and transition to the\n FinWait state.\n\n Note that no indication is given to the remote host that we have closed the connection,\n until the data has been flushed.  If the remote host attempts to send us data, we will\n do whatever is necessary to keep the connection alive until it can be closed properly.\n But in fact the data will be discarded, since there is no way for the application to\n read it back.  Typically this is not a problem, as application protocols that utilize\n the lingering functionality are designed for the remote host to wait for the response\n before sending any more data."]
20126    k_ESteamNetworkingConnectionState_Linger = -2,
20127    #[doc = " Connection is completely inactive and ready to be destroyed"]
20128    k_ESteamNetworkingConnectionState_Dead = -3,
20129    #[doc = " Connection is completely inactive and ready to be destroyed"]
20130    k_ESteamNetworkingConnectionState__Force32Bit = 2147483647,
20131}
20132impl ESteamNetConnectionEnd {
20133    pub const k_ESteamNetConnectionEnd_App_Generic: ESteamNetConnectionEnd =
20134        ESteamNetConnectionEnd::k_ESteamNetConnectionEnd_App_Min;
20135}
20136impl ESteamNetConnectionEnd {
20137    pub const k_ESteamNetConnectionEnd_AppException_Generic: ESteamNetConnectionEnd =
20138        ESteamNetConnectionEnd::k_ESteamNetConnectionEnd_AppException_Min;
20139}
20140#[repr(u32)]
20141#[non_exhaustive]
20142#[doc = " Enumerate various causes of connection termination.  These are designed to work similar\n to HTTP error codes: the numeric range gives you a rough classification as to the source\n of the problem."]
20143#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
20144pub enum ESteamNetConnectionEnd {
20145    k_ESteamNetConnectionEnd_Invalid = 0,
20146    k_ESteamNetConnectionEnd_App_Min = 1000,
20147    k_ESteamNetConnectionEnd_App_Max = 1999,
20148    k_ESteamNetConnectionEnd_AppException_Min = 2000,
20149    k_ESteamNetConnectionEnd_AppException_Max = 2999,
20150    k_ESteamNetConnectionEnd_Local_Min = 3000,
20151    k_ESteamNetConnectionEnd_Local_OfflineMode = 3001,
20152    k_ESteamNetConnectionEnd_Local_ManyRelayConnectivity = 3002,
20153    k_ESteamNetConnectionEnd_Local_HostedServerPrimaryRelay = 3003,
20154    k_ESteamNetConnectionEnd_Local_NetworkConfig = 3004,
20155    k_ESteamNetConnectionEnd_Local_Rights = 3005,
20156    k_ESteamNetConnectionEnd_Local_P2P_ICE_NoPublicAddresses = 3006,
20157    k_ESteamNetConnectionEnd_Local_Max = 3999,
20158    k_ESteamNetConnectionEnd_Remote_Min = 4000,
20159    k_ESteamNetConnectionEnd_Remote_Timeout = 4001,
20160    k_ESteamNetConnectionEnd_Remote_BadCrypt = 4002,
20161    k_ESteamNetConnectionEnd_Remote_BadCert = 4003,
20162    k_ESteamNetConnectionEnd_Remote_BadProtocolVersion = 4006,
20163    k_ESteamNetConnectionEnd_Remote_P2P_ICE_NoPublicAddresses = 4007,
20164    k_ESteamNetConnectionEnd_Remote_Max = 4999,
20165    k_ESteamNetConnectionEnd_Misc_Min = 5000,
20166    k_ESteamNetConnectionEnd_Misc_Generic = 5001,
20167    k_ESteamNetConnectionEnd_Misc_InternalError = 5002,
20168    k_ESteamNetConnectionEnd_Misc_Timeout = 5003,
20169    k_ESteamNetConnectionEnd_Misc_SteamConnectivity = 5005,
20170    k_ESteamNetConnectionEnd_Misc_NoRelaySessionsToClient = 5006,
20171    k_ESteamNetConnectionEnd_Misc_P2P_Rendezvous = 5008,
20172    k_ESteamNetConnectionEnd_Misc_P2P_NAT_Firewall = 5009,
20173    k_ESteamNetConnectionEnd_Misc_PeerSentNoConnection = 5010,
20174    k_ESteamNetConnectionEnd_Misc_Max = 5999,
20175    k_ESteamNetConnectionEnd__Force32Bit = 2147483647,
20176}
20177#[doc = " Max length, in bytes (including null terminator) of the reason string\n when a connection is closed."]
20178pub const k_cchSteamNetworkingMaxConnectionCloseReason: ::std::os::raw::c_int = 128;
20179#[doc = " Max length, in bytes (include null terminator) of debug description\n of a connection."]
20180pub const k_cchSteamNetworkingMaxConnectionDescription: ::std::os::raw::c_int = 128;
20181#[doc = " Max length of the app's part of the description"]
20182pub const k_cchSteamNetworkingMaxConnectionAppName: ::std::os::raw::c_int = 32;
20183pub const k_nSteamNetworkConnectionInfoFlags_Unauthenticated: ::std::os::raw::c_int = 1;
20184pub const k_nSteamNetworkConnectionInfoFlags_Unencrypted: ::std::os::raw::c_int = 2;
20185pub const k_nSteamNetworkConnectionInfoFlags_LoopbackBuffers: ::std::os::raw::c_int = 4;
20186pub const k_nSteamNetworkConnectionInfoFlags_Fast: ::std::os::raw::c_int = 8;
20187pub const k_nSteamNetworkConnectionInfoFlags_Relayed: ::std::os::raw::c_int = 16;
20188pub const k_nSteamNetworkConnectionInfoFlags_DualWifi: ::std::os::raw::c_int = 32;
20189#[doc = " Describe the state of a connection."]
20190#[repr(C, packed(4))]
20191#[derive(Copy, Clone)]
20192pub struct SteamNetConnectionInfo_t {
20193    #[doc = " Who is on the other end?  Depending on the connection type and phase of the connection, we might not know"]
20194    pub m_identityRemote: SteamNetworkingIdentity,
20195    #[doc = " Arbitrary user data set by the local application code"]
20196    pub m_nUserData: int64,
20197    #[doc = " Handle to listen socket this was connected on, or k_HSteamListenSocket_Invalid if we initiated the connection"]
20198    pub m_hListenSocket: HSteamListenSocket,
20199    #[doc = " Remote address.  Might be all 0's if we don't know it, or if this is N/A.\n (E.g. Basically everything except direct UDP connection.)"]
20200    pub m_addrRemote: SteamNetworkingIPAddr,
20201    pub m__pad1: uint16,
20202    #[doc = " What data center is the remote host in?  (0 if we don't know.)"]
20203    pub m_idPOPRemote: SteamNetworkingPOPID,
20204    #[doc = " What relay are we using to communicate with the remote host?\n (0 if not applicable.)"]
20205    pub m_idPOPRelay: SteamNetworkingPOPID,
20206    #[doc = " High level state of the connection"]
20207    pub m_eState: ESteamNetworkingConnectionState,
20208    #[doc = " Basic cause of the connection termination or problem.\n See ESteamNetConnectionEnd for the values used"]
20209    pub m_eEndReason: ::std::os::raw::c_int,
20210    #[doc = " Human-readable, but non-localized explanation for connection\n termination or problem.  This is intended for debugging /\n diagnostic purposes only, not to display to users.  It might\n have some details specific to the issue."]
20211    pub m_szEndDebug: [::std::os::raw::c_char; 128usize],
20212    #[doc = " Debug description.  This includes the internal connection ID,\n connection type (and peer information), and any name\n given to the connection by the app.  This string is used in various\n internal logging messages.\n\n Note that the connection ID *usually* matches the HSteamNetConnection\n handle, but in certain cases with symmetric connections it might not."]
20213    pub m_szConnectionDescription: [::std::os::raw::c_char; 128usize],
20214    #[doc = " Misc flags.  Bitmask of k_nSteamNetworkConnectionInfoFlags_Xxxx"]
20215    pub m_nFlags: ::std::os::raw::c_int,
20216    #[doc = " Internal stuff, room to change API easily"]
20217    pub reserved: [uint32; 63usize],
20218}
20219#[test]
20220fn bindgen_test_layout_SteamNetConnectionInfo_t() {
20221    const UNINIT: ::std::mem::MaybeUninit<SteamNetConnectionInfo_t> =
20222        ::std::mem::MaybeUninit::uninit();
20223    let ptr = UNINIT.as_ptr();
20224    assert_eq!(
20225        ::std::mem::size_of::<SteamNetConnectionInfo_t>(),
20226        696usize,
20227        concat!("Size of: ", stringify!(SteamNetConnectionInfo_t))
20228    );
20229    assert_eq!(
20230        ::std::mem::align_of::<SteamNetConnectionInfo_t>(),
20231        4usize,
20232        concat!("Alignment of ", stringify!(SteamNetConnectionInfo_t))
20233    );
20234    assert_eq!(
20235        unsafe { ::std::ptr::addr_of!((*ptr).m_identityRemote) as usize - ptr as usize },
20236        0usize,
20237        concat!(
20238            "Offset of field: ",
20239            stringify!(SteamNetConnectionInfo_t),
20240            "::",
20241            stringify!(m_identityRemote)
20242        )
20243    );
20244    assert_eq!(
20245        unsafe { ::std::ptr::addr_of!((*ptr).m_nUserData) as usize - ptr as usize },
20246        136usize,
20247        concat!(
20248            "Offset of field: ",
20249            stringify!(SteamNetConnectionInfo_t),
20250            "::",
20251            stringify!(m_nUserData)
20252        )
20253    );
20254    assert_eq!(
20255        unsafe { ::std::ptr::addr_of!((*ptr).m_hListenSocket) as usize - ptr as usize },
20256        144usize,
20257        concat!(
20258            "Offset of field: ",
20259            stringify!(SteamNetConnectionInfo_t),
20260            "::",
20261            stringify!(m_hListenSocket)
20262        )
20263    );
20264    assert_eq!(
20265        unsafe { ::std::ptr::addr_of!((*ptr).m_addrRemote) as usize - ptr as usize },
20266        148usize,
20267        concat!(
20268            "Offset of field: ",
20269            stringify!(SteamNetConnectionInfo_t),
20270            "::",
20271            stringify!(m_addrRemote)
20272        )
20273    );
20274    assert_eq!(
20275        unsafe { ::std::ptr::addr_of!((*ptr).m__pad1) as usize - ptr as usize },
20276        166usize,
20277        concat!(
20278            "Offset of field: ",
20279            stringify!(SteamNetConnectionInfo_t),
20280            "::",
20281            stringify!(m__pad1)
20282        )
20283    );
20284    assert_eq!(
20285        unsafe { ::std::ptr::addr_of!((*ptr).m_idPOPRemote) as usize - ptr as usize },
20286        168usize,
20287        concat!(
20288            "Offset of field: ",
20289            stringify!(SteamNetConnectionInfo_t),
20290            "::",
20291            stringify!(m_idPOPRemote)
20292        )
20293    );
20294    assert_eq!(
20295        unsafe { ::std::ptr::addr_of!((*ptr).m_idPOPRelay) as usize - ptr as usize },
20296        172usize,
20297        concat!(
20298            "Offset of field: ",
20299            stringify!(SteamNetConnectionInfo_t),
20300            "::",
20301            stringify!(m_idPOPRelay)
20302        )
20303    );
20304    assert_eq!(
20305        unsafe { ::std::ptr::addr_of!((*ptr).m_eState) as usize - ptr as usize },
20306        176usize,
20307        concat!(
20308            "Offset of field: ",
20309            stringify!(SteamNetConnectionInfo_t),
20310            "::",
20311            stringify!(m_eState)
20312        )
20313    );
20314    assert_eq!(
20315        unsafe { ::std::ptr::addr_of!((*ptr).m_eEndReason) as usize - ptr as usize },
20316        180usize,
20317        concat!(
20318            "Offset of field: ",
20319            stringify!(SteamNetConnectionInfo_t),
20320            "::",
20321            stringify!(m_eEndReason)
20322        )
20323    );
20324    assert_eq!(
20325        unsafe { ::std::ptr::addr_of!((*ptr).m_szEndDebug) as usize - ptr as usize },
20326        184usize,
20327        concat!(
20328            "Offset of field: ",
20329            stringify!(SteamNetConnectionInfo_t),
20330            "::",
20331            stringify!(m_szEndDebug)
20332        )
20333    );
20334    assert_eq!(
20335        unsafe { ::std::ptr::addr_of!((*ptr).m_szConnectionDescription) as usize - ptr as usize },
20336        312usize,
20337        concat!(
20338            "Offset of field: ",
20339            stringify!(SteamNetConnectionInfo_t),
20340            "::",
20341            stringify!(m_szConnectionDescription)
20342        )
20343    );
20344    assert_eq!(
20345        unsafe { ::std::ptr::addr_of!((*ptr).m_nFlags) as usize - ptr as usize },
20346        440usize,
20347        concat!(
20348            "Offset of field: ",
20349            stringify!(SteamNetConnectionInfo_t),
20350            "::",
20351            stringify!(m_nFlags)
20352        )
20353    );
20354    assert_eq!(
20355        unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize },
20356        444usize,
20357        concat!(
20358            "Offset of field: ",
20359            stringify!(SteamNetConnectionInfo_t),
20360            "::",
20361            stringify!(reserved)
20362        )
20363    );
20364}
20365#[doc = " Quick connection state, pared down to something you could call\n more frequently without it being too big of a perf hit."]
20366#[repr(C, packed(4))]
20367#[derive(Debug, Copy, Clone)]
20368pub struct SteamNetConnectionRealTimeStatus_t {
20369    #[doc = " High level state of the connection"]
20370    pub m_eState: ESteamNetworkingConnectionState,
20371    #[doc = " Current ping (ms)"]
20372    pub m_nPing: ::std::os::raw::c_int,
20373    #[doc = " Connection quality measured locally, 0...1.  (Percentage of packets delivered\n end-to-end in order)."]
20374    pub m_flConnectionQualityLocal: f32,
20375    #[doc = " Packet delivery success rate as observed from remote host"]
20376    pub m_flConnectionQualityRemote: f32,
20377    #[doc = " Current data rates from recent history."]
20378    pub m_flOutPacketsPerSec: f32,
20379    pub m_flOutBytesPerSec: f32,
20380    pub m_flInPacketsPerSec: f32,
20381    pub m_flInBytesPerSec: f32,
20382    #[doc = " Estimate rate that we believe that we can send data to our peer.\n Note that this could be significantly higher than m_flOutBytesPerSec,\n meaning the capacity of the channel is higher than you are sending data.\n (That's OK!)"]
20383    pub m_nSendRateBytesPerSecond: ::std::os::raw::c_int,
20384    #[doc = " Number of bytes pending to be sent.  This is data that you have recently\n requested to be sent but has not yet actually been put on the wire.  The\n reliable number ALSO includes data that was previously placed on the wire,\n but has now been scheduled for re-transmission.  Thus, it's possible to\n observe m_cbPendingReliable increasing between two checks, even if no\n calls were made to send reliable data between the checks.  Data that is\n awaiting the Nagle delay will appear in these numbers."]
20385    pub m_cbPendingUnreliable: ::std::os::raw::c_int,
20386    pub m_cbPendingReliable: ::std::os::raw::c_int,
20387    #[doc = " Number of bytes of reliable data that has been placed the wire, but\n for which we have not yet received an acknowledgment, and thus we may\n have to re-transmit."]
20388    pub m_cbSentUnackedReliable: ::std::os::raw::c_int,
20389    #[doc = " If you queued a message right now, approximately how long would that message\n wait in the queue before we actually started putting its data on the wire in\n a packet?\n\n In general, data that is sent by the application is limited by the bandwidth\n of the channel.  If you send data faster than this, it must be queued and\n put on the wire at a metered rate.  Even sending a small amount of data (e.g.\n a few MTU, say ~3k) will require some of the data to be delayed a bit.\n\n Ignoring multiple lanes, the estimated delay will be approximately equal to\n\n\t\t( m_cbPendingUnreliable+m_cbPendingReliable ) / m_nSendRateBytesPerSecond\n\n plus or minus one MTU.  It depends on how much time has elapsed since the last\n packet was put on the wire.  For example, the queue might have *just* been emptied,\n and the last packet placed on the wire, and we are exactly up against the send\n rate limit.  In that case we might need to wait for one packet's worth of time to\n elapse before we can send again.  On the other extreme, the queue might have data\n in it waiting for Nagle.  (This will always be less than one packet, because as\n soon as we have a complete packet we would send it.)  In that case, we might be\n ready to send data now, and this value will be 0.\n\n This value is only valid if multiple lanes are not used.  If multiple lanes are\n in use, then the queue time will be different for each lane, and you must use\n the value in SteamNetConnectionRealTimeLaneStatus_t.\n\n Nagle delay is ignored for the purposes of this calculation."]
20390    pub m_usecQueueTime: SteamNetworkingMicroseconds,
20391    pub reserved: [uint32; 16usize],
20392}
20393#[test]
20394fn bindgen_test_layout_SteamNetConnectionRealTimeStatus_t() {
20395    const UNINIT: ::std::mem::MaybeUninit<SteamNetConnectionRealTimeStatus_t> =
20396        ::std::mem::MaybeUninit::uninit();
20397    let ptr = UNINIT.as_ptr();
20398    assert_eq!(
20399        ::std::mem::size_of::<SteamNetConnectionRealTimeStatus_t>(),
20400        120usize,
20401        concat!("Size of: ", stringify!(SteamNetConnectionRealTimeStatus_t))
20402    );
20403    assert_eq!(
20404        ::std::mem::align_of::<SteamNetConnectionRealTimeStatus_t>(),
20405        4usize,
20406        concat!(
20407            "Alignment of ",
20408            stringify!(SteamNetConnectionRealTimeStatus_t)
20409        )
20410    );
20411    assert_eq!(
20412        unsafe { ::std::ptr::addr_of!((*ptr).m_eState) as usize - ptr as usize },
20413        0usize,
20414        concat!(
20415            "Offset of field: ",
20416            stringify!(SteamNetConnectionRealTimeStatus_t),
20417            "::",
20418            stringify!(m_eState)
20419        )
20420    );
20421    assert_eq!(
20422        unsafe { ::std::ptr::addr_of!((*ptr).m_nPing) as usize - ptr as usize },
20423        4usize,
20424        concat!(
20425            "Offset of field: ",
20426            stringify!(SteamNetConnectionRealTimeStatus_t),
20427            "::",
20428            stringify!(m_nPing)
20429        )
20430    );
20431    assert_eq!(
20432        unsafe { ::std::ptr::addr_of!((*ptr).m_flConnectionQualityLocal) as usize - ptr as usize },
20433        8usize,
20434        concat!(
20435            "Offset of field: ",
20436            stringify!(SteamNetConnectionRealTimeStatus_t),
20437            "::",
20438            stringify!(m_flConnectionQualityLocal)
20439        )
20440    );
20441    assert_eq!(
20442        unsafe { ::std::ptr::addr_of!((*ptr).m_flConnectionQualityRemote) as usize - ptr as usize },
20443        12usize,
20444        concat!(
20445            "Offset of field: ",
20446            stringify!(SteamNetConnectionRealTimeStatus_t),
20447            "::",
20448            stringify!(m_flConnectionQualityRemote)
20449        )
20450    );
20451    assert_eq!(
20452        unsafe { ::std::ptr::addr_of!((*ptr).m_flOutPacketsPerSec) as usize - ptr as usize },
20453        16usize,
20454        concat!(
20455            "Offset of field: ",
20456            stringify!(SteamNetConnectionRealTimeStatus_t),
20457            "::",
20458            stringify!(m_flOutPacketsPerSec)
20459        )
20460    );
20461    assert_eq!(
20462        unsafe { ::std::ptr::addr_of!((*ptr).m_flOutBytesPerSec) as usize - ptr as usize },
20463        20usize,
20464        concat!(
20465            "Offset of field: ",
20466            stringify!(SteamNetConnectionRealTimeStatus_t),
20467            "::",
20468            stringify!(m_flOutBytesPerSec)
20469        )
20470    );
20471    assert_eq!(
20472        unsafe { ::std::ptr::addr_of!((*ptr).m_flInPacketsPerSec) as usize - ptr as usize },
20473        24usize,
20474        concat!(
20475            "Offset of field: ",
20476            stringify!(SteamNetConnectionRealTimeStatus_t),
20477            "::",
20478            stringify!(m_flInPacketsPerSec)
20479        )
20480    );
20481    assert_eq!(
20482        unsafe { ::std::ptr::addr_of!((*ptr).m_flInBytesPerSec) as usize - ptr as usize },
20483        28usize,
20484        concat!(
20485            "Offset of field: ",
20486            stringify!(SteamNetConnectionRealTimeStatus_t),
20487            "::",
20488            stringify!(m_flInBytesPerSec)
20489        )
20490    );
20491    assert_eq!(
20492        unsafe { ::std::ptr::addr_of!((*ptr).m_nSendRateBytesPerSecond) as usize - ptr as usize },
20493        32usize,
20494        concat!(
20495            "Offset of field: ",
20496            stringify!(SteamNetConnectionRealTimeStatus_t),
20497            "::",
20498            stringify!(m_nSendRateBytesPerSecond)
20499        )
20500    );
20501    assert_eq!(
20502        unsafe { ::std::ptr::addr_of!((*ptr).m_cbPendingUnreliable) as usize - ptr as usize },
20503        36usize,
20504        concat!(
20505            "Offset of field: ",
20506            stringify!(SteamNetConnectionRealTimeStatus_t),
20507            "::",
20508            stringify!(m_cbPendingUnreliable)
20509        )
20510    );
20511    assert_eq!(
20512        unsafe { ::std::ptr::addr_of!((*ptr).m_cbPendingReliable) as usize - ptr as usize },
20513        40usize,
20514        concat!(
20515            "Offset of field: ",
20516            stringify!(SteamNetConnectionRealTimeStatus_t),
20517            "::",
20518            stringify!(m_cbPendingReliable)
20519        )
20520    );
20521    assert_eq!(
20522        unsafe { ::std::ptr::addr_of!((*ptr).m_cbSentUnackedReliable) as usize - ptr as usize },
20523        44usize,
20524        concat!(
20525            "Offset of field: ",
20526            stringify!(SteamNetConnectionRealTimeStatus_t),
20527            "::",
20528            stringify!(m_cbSentUnackedReliable)
20529        )
20530    );
20531    assert_eq!(
20532        unsafe { ::std::ptr::addr_of!((*ptr).m_usecQueueTime) as usize - ptr as usize },
20533        48usize,
20534        concat!(
20535            "Offset of field: ",
20536            stringify!(SteamNetConnectionRealTimeStatus_t),
20537            "::",
20538            stringify!(m_usecQueueTime)
20539        )
20540    );
20541    assert_eq!(
20542        unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize },
20543        56usize,
20544        concat!(
20545            "Offset of field: ",
20546            stringify!(SteamNetConnectionRealTimeStatus_t),
20547            "::",
20548            stringify!(reserved)
20549        )
20550    );
20551}
20552#[doc = " Quick status of a particular lane"]
20553#[repr(C, packed(4))]
20554#[derive(Debug, Copy, Clone)]
20555pub struct SteamNetConnectionRealTimeLaneStatus_t {
20556    pub m_cbPendingUnreliable: ::std::os::raw::c_int,
20557    pub m_cbPendingReliable: ::std::os::raw::c_int,
20558    pub m_cbSentUnackedReliable: ::std::os::raw::c_int,
20559    pub _reservePad1: ::std::os::raw::c_int,
20560    #[doc = " Lane-specific queue time.  This value takes into consideration lane priorities\n and weights, and how much data is queued in each lane, and attempts to predict\n how any data currently queued will be sent out."]
20561    pub m_usecQueueTime: SteamNetworkingMicroseconds,
20562    pub reserved: [uint32; 10usize],
20563}
20564#[test]
20565fn bindgen_test_layout_SteamNetConnectionRealTimeLaneStatus_t() {
20566    const UNINIT: ::std::mem::MaybeUninit<SteamNetConnectionRealTimeLaneStatus_t> =
20567        ::std::mem::MaybeUninit::uninit();
20568    let ptr = UNINIT.as_ptr();
20569    assert_eq!(
20570        ::std::mem::size_of::<SteamNetConnectionRealTimeLaneStatus_t>(),
20571        64usize,
20572        concat!(
20573            "Size of: ",
20574            stringify!(SteamNetConnectionRealTimeLaneStatus_t)
20575        )
20576    );
20577    assert_eq!(
20578        ::std::mem::align_of::<SteamNetConnectionRealTimeLaneStatus_t>(),
20579        4usize,
20580        concat!(
20581            "Alignment of ",
20582            stringify!(SteamNetConnectionRealTimeLaneStatus_t)
20583        )
20584    );
20585    assert_eq!(
20586        unsafe { ::std::ptr::addr_of!((*ptr).m_cbPendingUnreliable) as usize - ptr as usize },
20587        0usize,
20588        concat!(
20589            "Offset of field: ",
20590            stringify!(SteamNetConnectionRealTimeLaneStatus_t),
20591            "::",
20592            stringify!(m_cbPendingUnreliable)
20593        )
20594    );
20595    assert_eq!(
20596        unsafe { ::std::ptr::addr_of!((*ptr).m_cbPendingReliable) as usize - ptr as usize },
20597        4usize,
20598        concat!(
20599            "Offset of field: ",
20600            stringify!(SteamNetConnectionRealTimeLaneStatus_t),
20601            "::",
20602            stringify!(m_cbPendingReliable)
20603        )
20604    );
20605    assert_eq!(
20606        unsafe { ::std::ptr::addr_of!((*ptr).m_cbSentUnackedReliable) as usize - ptr as usize },
20607        8usize,
20608        concat!(
20609            "Offset of field: ",
20610            stringify!(SteamNetConnectionRealTimeLaneStatus_t),
20611            "::",
20612            stringify!(m_cbSentUnackedReliable)
20613        )
20614    );
20615    assert_eq!(
20616        unsafe { ::std::ptr::addr_of!((*ptr)._reservePad1) as usize - ptr as usize },
20617        12usize,
20618        concat!(
20619            "Offset of field: ",
20620            stringify!(SteamNetConnectionRealTimeLaneStatus_t),
20621            "::",
20622            stringify!(_reservePad1)
20623        )
20624    );
20625    assert_eq!(
20626        unsafe { ::std::ptr::addr_of!((*ptr).m_usecQueueTime) as usize - ptr as usize },
20627        16usize,
20628        concat!(
20629            "Offset of field: ",
20630            stringify!(SteamNetConnectionRealTimeLaneStatus_t),
20631            "::",
20632            stringify!(m_usecQueueTime)
20633        )
20634    );
20635    assert_eq!(
20636        unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize },
20637        24usize,
20638        concat!(
20639            "Offset of field: ",
20640            stringify!(SteamNetConnectionRealTimeLaneStatus_t),
20641            "::",
20642            stringify!(reserved)
20643        )
20644    );
20645}
20646#[doc = " Max size of a single message that we can SEND.\n Note: We might be wiling to receive larger messages,\n and our peer might, too."]
20647pub const k_cbMaxSteamNetworkingSocketsMessageSizeSend: ::std::os::raw::c_int = 524288;
20648#[doc = " A message that has been received."]
20649#[repr(C)]
20650pub struct SteamNetworkingMessage_t {
20651    #[doc = " Message payload"]
20652    pub m_pData: *mut ::std::os::raw::c_void,
20653    #[doc = " Size of the payload."]
20654    pub m_cbSize: ::std::os::raw::c_int,
20655    #[doc = " For messages received on connections: what connection did this come from?\n For outgoing messages: what connection to send it to?\n Not used when using the ISteamNetworkingMessages interface"]
20656    pub m_conn: HSteamNetConnection,
20657    #[doc = " For inbound messages: Who sent this to us?\n For outbound messages on connections: not used.\n For outbound messages on the ad-hoc ISteamNetworkingMessages interface: who should we send this to?"]
20658    pub m_identityPeer: SteamNetworkingIdentity,
20659    #[doc = " For messages received on connections, this is the user data\n associated with the connection.\n\n This is *usually* the same as calling GetConnection() and then\n fetching the user data associated with that connection, but for\n the following subtle differences:\n\n - This user data will match the connection's user data at the time\n   is captured at the time the message is returned by the API.\n   If you subsequently change the userdata on the connection,\n   this won't be updated.\n - This is an inline call, so it's *much* faster.\n - You might have closed the connection, so fetching the user data\n   would not be possible.\n\n Not used when sending messages."]
20660    pub m_nConnUserData: int64,
20661    #[doc = " Local timestamp when the message was received\n Not used for outbound messages."]
20662    pub m_usecTimeReceived: SteamNetworkingMicroseconds,
20663    #[doc = " Message number assigned by the sender.  This is not used for outbound\n messages.  Note that if multiple lanes are used, each lane has its own\n message numbers, which are assigned sequentially, so messages from\n different lanes will share the same numbers."]
20664    pub m_nMessageNumber: int64,
20665    #[doc = " Function used to free up m_pData.  This mechanism exists so that\n apps can create messages with buffers allocated from their own\n heap, and pass them into the library.  This function will\n usually be something like:\n\n free( pMsg->m_pData );"]
20666    pub m_pfnFreeData:
20667        ::std::option::Option<unsafe extern "C" fn(pMsg: *mut SteamNetworkingMessage_t)>,
20668    #[doc = " Function to used to decrement the internal reference count and, if\n it's zero, release the message.  You should not set this function pointer,\n or need to access this directly!  Use the Release() function instead!"]
20669    pub m_pfnRelease:
20670        ::std::option::Option<unsafe extern "C" fn(pMsg: *mut SteamNetworkingMessage_t)>,
20671    #[doc = " When using ISteamNetworkingMessages, the channel number the message was received on\n (Not used for messages sent or received on \"connections\")"]
20672    pub m_nChannel: ::std::os::raw::c_int,
20673    #[doc = " Bitmask of k_nSteamNetworkingSend_xxx flags.\n For received messages, only the k_nSteamNetworkingSend_Reliable bit is valid.\n For outbound messages, all bits are relevant"]
20674    pub m_nFlags: ::std::os::raw::c_int,
20675    #[doc = " Arbitrary user data that you can use when sending messages using\n ISteamNetworkingUtils::AllocateMessage and ISteamNetworkingSockets::SendMessage.\n (The callback you set in m_pfnFreeData might use this field.)\n\n Not used for received messages."]
20676    pub m_nUserData: int64,
20677    #[doc = " For outbound messages, which lane to use?  See ISteamNetworkingSockets::ConfigureConnectionLanes.\n For inbound messages, what lane was the message received on?"]
20678    pub m_idxLane: uint16,
20679    pub _pad1__: uint16,
20680}
20681#[test]
20682fn bindgen_test_layout_SteamNetworkingMessage_t() {
20683    const UNINIT: ::std::mem::MaybeUninit<SteamNetworkingMessage_t> =
20684        ::std::mem::MaybeUninit::uninit();
20685    let ptr = UNINIT.as_ptr();
20686    assert_eq!(
20687        ::std::mem::size_of::<SteamNetworkingMessage_t>(),
20688        216usize,
20689        concat!("Size of: ", stringify!(SteamNetworkingMessage_t))
20690    );
20691    assert_eq!(
20692        ::std::mem::align_of::<SteamNetworkingMessage_t>(),
20693        8usize,
20694        concat!("Alignment of ", stringify!(SteamNetworkingMessage_t))
20695    );
20696    assert_eq!(
20697        unsafe { ::std::ptr::addr_of!((*ptr).m_pData) as usize - ptr as usize },
20698        0usize,
20699        concat!(
20700            "Offset of field: ",
20701            stringify!(SteamNetworkingMessage_t),
20702            "::",
20703            stringify!(m_pData)
20704        )
20705    );
20706    assert_eq!(
20707        unsafe { ::std::ptr::addr_of!((*ptr).m_cbSize) as usize - ptr as usize },
20708        8usize,
20709        concat!(
20710            "Offset of field: ",
20711            stringify!(SteamNetworkingMessage_t),
20712            "::",
20713            stringify!(m_cbSize)
20714        )
20715    );
20716    assert_eq!(
20717        unsafe { ::std::ptr::addr_of!((*ptr).m_conn) as usize - ptr as usize },
20718        12usize,
20719        concat!(
20720            "Offset of field: ",
20721            stringify!(SteamNetworkingMessage_t),
20722            "::",
20723            stringify!(m_conn)
20724        )
20725    );
20726    assert_eq!(
20727        unsafe { ::std::ptr::addr_of!((*ptr).m_identityPeer) as usize - ptr as usize },
20728        16usize,
20729        concat!(
20730            "Offset of field: ",
20731            stringify!(SteamNetworkingMessage_t),
20732            "::",
20733            stringify!(m_identityPeer)
20734        )
20735    );
20736    assert_eq!(
20737        unsafe { ::std::ptr::addr_of!((*ptr).m_nConnUserData) as usize - ptr as usize },
20738        152usize,
20739        concat!(
20740            "Offset of field: ",
20741            stringify!(SteamNetworkingMessage_t),
20742            "::",
20743            stringify!(m_nConnUserData)
20744        )
20745    );
20746    assert_eq!(
20747        unsafe { ::std::ptr::addr_of!((*ptr).m_usecTimeReceived) as usize - ptr as usize },
20748        160usize,
20749        concat!(
20750            "Offset of field: ",
20751            stringify!(SteamNetworkingMessage_t),
20752            "::",
20753            stringify!(m_usecTimeReceived)
20754        )
20755    );
20756    assert_eq!(
20757        unsafe { ::std::ptr::addr_of!((*ptr).m_nMessageNumber) as usize - ptr as usize },
20758        168usize,
20759        concat!(
20760            "Offset of field: ",
20761            stringify!(SteamNetworkingMessage_t),
20762            "::",
20763            stringify!(m_nMessageNumber)
20764        )
20765    );
20766    assert_eq!(
20767        unsafe { ::std::ptr::addr_of!((*ptr).m_pfnFreeData) as usize - ptr as usize },
20768        176usize,
20769        concat!(
20770            "Offset of field: ",
20771            stringify!(SteamNetworkingMessage_t),
20772            "::",
20773            stringify!(m_pfnFreeData)
20774        )
20775    );
20776    assert_eq!(
20777        unsafe { ::std::ptr::addr_of!((*ptr).m_pfnRelease) as usize - ptr as usize },
20778        184usize,
20779        concat!(
20780            "Offset of field: ",
20781            stringify!(SteamNetworkingMessage_t),
20782            "::",
20783            stringify!(m_pfnRelease)
20784        )
20785    );
20786    assert_eq!(
20787        unsafe { ::std::ptr::addr_of!((*ptr).m_nChannel) as usize - ptr as usize },
20788        192usize,
20789        concat!(
20790            "Offset of field: ",
20791            stringify!(SteamNetworkingMessage_t),
20792            "::",
20793            stringify!(m_nChannel)
20794        )
20795    );
20796    assert_eq!(
20797        unsafe { ::std::ptr::addr_of!((*ptr).m_nFlags) as usize - ptr as usize },
20798        196usize,
20799        concat!(
20800            "Offset of field: ",
20801            stringify!(SteamNetworkingMessage_t),
20802            "::",
20803            stringify!(m_nFlags)
20804        )
20805    );
20806    assert_eq!(
20807        unsafe { ::std::ptr::addr_of!((*ptr).m_nUserData) as usize - ptr as usize },
20808        200usize,
20809        concat!(
20810            "Offset of field: ",
20811            stringify!(SteamNetworkingMessage_t),
20812            "::",
20813            stringify!(m_nUserData)
20814        )
20815    );
20816    assert_eq!(
20817        unsafe { ::std::ptr::addr_of!((*ptr).m_idxLane) as usize - ptr as usize },
20818        208usize,
20819        concat!(
20820            "Offset of field: ",
20821            stringify!(SteamNetworkingMessage_t),
20822            "::",
20823            stringify!(m_idxLane)
20824        )
20825    );
20826    assert_eq!(
20827        unsafe { ::std::ptr::addr_of!((*ptr)._pad1__) as usize - ptr as usize },
20828        210usize,
20829        concat!(
20830            "Offset of field: ",
20831            stringify!(SteamNetworkingMessage_t),
20832            "::",
20833            stringify!(_pad1__)
20834        )
20835    );
20836}
20837pub const k_nSteamNetworkingSend_Unreliable: ::std::os::raw::c_int = 0;
20838pub const k_nSteamNetworkingSend_NoNagle: ::std::os::raw::c_int = 1;
20839pub const k_nSteamNetworkingSend_UnreliableNoNagle: ::std::os::raw::c_int = 1;
20840pub const k_nSteamNetworkingSend_NoDelay: ::std::os::raw::c_int = 4;
20841pub const k_nSteamNetworkingSend_UnreliableNoDelay: ::std::os::raw::c_int = 5;
20842pub const k_nSteamNetworkingSend_Reliable: ::std::os::raw::c_int = 8;
20843pub const k_nSteamNetworkingSend_ReliableNoNagle: ::std::os::raw::c_int = 9;
20844pub const k_nSteamNetworkingSend_UseCurrentThread: ::std::os::raw::c_int = 16;
20845pub const k_nSteamNetworkingSend_AutoRestartBrokenSession: ::std::os::raw::c_int = 32;
20846#[doc = " Object that describes a \"location\" on the Internet with sufficient\n detail that we can reasonably estimate an upper bound on the ping between\n the two hosts, even if a direct route between the hosts is not possible,\n and the connection must be routed through the Steam Datagram Relay network.\n This does not contain any information that identifies the host.  Indeed,\n if two hosts are in the same building or otherwise have nearly identical\n networking characteristics, then it's valid to use the same location\n object for both of them.\n\n NOTE: This object should only be used in the same process!  Do not serialize it,\n send it over the wire, or persist it in a file or database!  If you need\n to do that, convert it to a string representation using the methods in\n ISteamNetworkingUtils()."]
20847#[repr(C)]
20848#[derive(Debug, Copy, Clone)]
20849pub struct SteamNetworkPingLocation_t {
20850    pub m_data: [uint8; 512usize],
20851}
20852#[test]
20853fn bindgen_test_layout_SteamNetworkPingLocation_t() {
20854    const UNINIT: ::std::mem::MaybeUninit<SteamNetworkPingLocation_t> =
20855        ::std::mem::MaybeUninit::uninit();
20856    let ptr = UNINIT.as_ptr();
20857    assert_eq!(
20858        ::std::mem::size_of::<SteamNetworkPingLocation_t>(),
20859        512usize,
20860        concat!("Size of: ", stringify!(SteamNetworkPingLocation_t))
20861    );
20862    assert_eq!(
20863        ::std::mem::align_of::<SteamNetworkPingLocation_t>(),
20864        1usize,
20865        concat!("Alignment of ", stringify!(SteamNetworkPingLocation_t))
20866    );
20867    assert_eq!(
20868        unsafe { ::std::ptr::addr_of!((*ptr).m_data) as usize - ptr as usize },
20869        0usize,
20870        concat!(
20871            "Offset of field: ",
20872            stringify!(SteamNetworkPingLocation_t),
20873            "::",
20874            stringify!(m_data)
20875        )
20876    );
20877}
20878#[doc = " Max possible length of a ping location, in string format.  This is\n an extremely conservative worst case value which leaves room for future\n syntax enhancements.  Most strings in practice are a lot shorter.\n If you are storing many of these, you will very likely benefit from\n using dynamic memory."]
20879pub const k_cchMaxSteamNetworkingPingLocationString: ::std::os::raw::c_int = 1024;
20880#[doc = " Special values that are returned by some functions that return a ping."]
20881pub const k_nSteamNetworkingPing_Failed: ::std::os::raw::c_int = -1;
20882pub const k_nSteamNetworkingPing_Unknown: ::std::os::raw::c_int = -2;
20883#[repr(u32)]
20884#[non_exhaustive]
20885#[doc = " Configuration values can be applied to different types of objects."]
20886#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
20887pub enum ESteamNetworkingConfigScope {
20888    #[doc = " Get/set global option, or defaults.  Even options that apply to more specific scopes\n have global scope, and you may be able to just change the global defaults.  If you\n need different settings per connection (for example), then you will need to set those\n options at the more specific scope."]
20889    k_ESteamNetworkingConfig_Global = 1,
20890    #[doc = " Some options are specific to a particular interface.  Note that all connection\n and listen socket settings can also be set at the interface level, and they will\n apply to objects created through those interfaces."]
20891    k_ESteamNetworkingConfig_SocketsInterface = 2,
20892    #[doc = " Options for a listen socket.  Listen socket options can be set at the interface layer,\n if  you have multiple listen sockets and they all use the same options.\n You can also set connection options on a listen socket, and they set the defaults\n for all connections accepted through this listen socket.  (They will be used if you don't\n set a connection option.)"]
20893    k_ESteamNetworkingConfig_ListenSocket = 3,
20894    #[doc = " Options for a specific connection."]
20895    k_ESteamNetworkingConfig_Connection = 4,
20896    #[doc = " Options for a specific connection."]
20897    k_ESteamNetworkingConfigScope__Force32Bit = 2147483647,
20898}
20899#[repr(u32)]
20900#[non_exhaustive]
20901#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
20902pub enum ESteamNetworkingConfigDataType {
20903    k_ESteamNetworkingConfig_Int32 = 1,
20904    k_ESteamNetworkingConfig_Int64 = 2,
20905    k_ESteamNetworkingConfig_Float = 3,
20906    k_ESteamNetworkingConfig_String = 4,
20907    k_ESteamNetworkingConfig_Ptr = 5,
20908    k_ESteamNetworkingConfigDataType__Force32Bit = 2147483647,
20909}
20910#[repr(u32)]
20911#[non_exhaustive]
20912#[doc = " Configuration options"]
20913#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
20914pub enum ESteamNetworkingConfigValue {
20915    k_ESteamNetworkingConfig_Invalid = 0,
20916    #[doc = " [connection int32] Timeout value (in ms) to use when first connecting"]
20917    k_ESteamNetworkingConfig_TimeoutInitial = 24,
20918    #[doc = " [connection int32] Timeout value (in ms) to use after connection is established"]
20919    k_ESteamNetworkingConfig_TimeoutConnected = 25,
20920    #[doc = " [connection int32] Upper limit of buffered pending bytes to be sent,\n if this is reached SendMessage will return k_EResultLimitExceeded\n Default is 512k (524288 bytes)"]
20921    k_ESteamNetworkingConfig_SendBufferSize = 9,
20922    #[doc = " [connection int32] Upper limit on total size (in bytes) of received messages\n that will be buffered waiting to be processed by the application.  If this limit\n is exceeded, packets will be dropped.  This is to protect us from a malicious\n peer flooding us with messages faster than we can process them.\n\n This must be bigger than k_ESteamNetworkingConfig_RecvMaxMessageSize"]
20923    k_ESteamNetworkingConfig_RecvBufferSize = 47,
20924    #[doc = " [connection int32] Upper limit on the number of received messages that will\n that will be buffered waiting to be processed by the application.  If this limit\n is exceeded, packets will be dropped.  This is to protect us from a malicious\n peer flooding us with messages faster than we can pull them off the wire."]
20925    k_ESteamNetworkingConfig_RecvBufferMessages = 48,
20926    #[doc = " [connection int32] Maximum message size that we are willing to receive.\n if a client attempts to send us a message larger than this, the connection\n will be immediately closed.\n\n Default is 512k (524288 bytes).  Note that the peer needs to be able to\n send a message this big.  (See k_cbMaxSteamNetworkingSocketsMessageSizeSend.)"]
20927    k_ESteamNetworkingConfig_RecvMaxMessageSize = 49,
20928    #[doc = " [connection int32] Max number of message segments that can be received\n in a single UDP packet.  While decoding a packet, if the number of segments\n exceeds this, we will abort further packet processing.\n\n The default is effectively unlimited.  If you know that you very rarely\n send small packets, you can protect yourself from malicious senders by\n lowering this number.\n\n In particular, if you are NOT using the reliability layer and are only using\n SteamNetworkingSockets for datagram transport, setting this to a very low\n number may be beneficial.  (We recommend a value of 2.)  Make sure your sender\n disables Nagle!"]
20929    k_ESteamNetworkingConfig_RecvMaxSegmentsPerPacket = 50,
20930    #[doc = " [connection int64] Get/set userdata as a configuration option.\n The default value is -1.   You may want to set the user data as\n a config value, instead of using ISteamNetworkingSockets::SetConnectionUserData\n in two specific instances:\n\n - You wish to set the userdata atomically when creating\n   an outbound connection, so that the userdata is filled in properly\n   for any callbacks that happen.  However, note that this trick\n   only works for connections initiated locally!  For incoming\n   connections, multiple state transitions may happen and\n   callbacks be queued, before you are able to service the first\n   callback!  Be careful!\n\n - You can set the default userdata for all newly created connections\n   by setting this value at a higher level (e.g. on the listen\n   socket or at the global level.)  Then this default\n   value will be inherited when the connection is created.\n   This is useful in case -1 is a valid userdata value, and you\n   wish to use something else as the default value so you can\n   tell if it has been set or not.\n\n   HOWEVER: once a connection is created, the effective value is\n   then bound to the connection.  Unlike other connection options,\n   if you change it again at a higher level, the new value will not\n   be inherited by connections.\n\n Using the userdata field in callback structs is not advised because\n of tricky race conditions.  Instead, you might try one of these methods:\n\n - Use a separate map with the HSteamNetConnection as the key.\n - Fetch the userdata from the connection in your callback\n   using ISteamNetworkingSockets::GetConnectionUserData, to"]
20931    k_ESteamNetworkingConfig_ConnectionUserData = 40,
20932    #[doc = " [connection int32] Minimum/maximum send rate clamp, in bytes/sec.\n At the time of this writing these two options should always be set to\n the same value, to manually configure a specific send rate.  The default\n value is 256K.  Eventually we hope to have the library estimate the bandwidth\n of the channel and set the send rate to that estimated bandwidth, and these\n values will only set limits on that send rate."]
20933    k_ESteamNetworkingConfig_SendRateMin = 10,
20934    #[doc = " [connection int32] Minimum/maximum send rate clamp, in bytes/sec.\n At the time of this writing these two options should always be set to\n the same value, to manually configure a specific send rate.  The default\n value is 256K.  Eventually we hope to have the library estimate the bandwidth\n of the channel and set the send rate to that estimated bandwidth, and these\n values will only set limits on that send rate."]
20935    k_ESteamNetworkingConfig_SendRateMax = 11,
20936    #[doc = " [connection int32] Nagle time, in microseconds.  When SendMessage is called, if\n the outgoing message is less than the size of the MTU, it will be\n queued for a delay equal to the Nagle timer value.  This is to ensure\n that if the application sends several small messages rapidly, they are\n coalesced into a single packet.\n See historical RFC 896.  Value is in microseconds.\n Default is 5000us (5ms)."]
20937    k_ESteamNetworkingConfig_NagleTime = 12,
20938    #[doc = " [connection int32] Don't automatically fail IP connections that don't have\n strong auth.  On clients, this means we will attempt the connection even if\n we don't know our identity or can't get a cert.  On the server, it means that\n we won't automatically reject a connection due to a failure to authenticate.\n (You can examine the incoming connection and decide whether to accept it.)\n\n This is a dev configuration value, and you should not let users modify it in\n production."]
20939    k_ESteamNetworkingConfig_IP_AllowWithoutAuth = 23,
20940    #[doc = " [connection int32] Do not send UDP packets with a payload of\n larger than N bytes.  If you set this, k_ESteamNetworkingConfig_MTU_DataSize\n is automatically adjusted"]
20941    k_ESteamNetworkingConfig_MTU_PacketSize = 32,
20942    #[doc = " [connection int32] (read only) Maximum message size you can send that\n will not fragment, based on k_ESteamNetworkingConfig_MTU_PacketSize"]
20943    k_ESteamNetworkingConfig_MTU_DataSize = 33,
20944    #[doc = " [connection int32] Allow unencrypted (and unauthenticated) communication.\n 0: Not allowed (the default)\n 1: Allowed, but prefer encrypted\n 2: Allowed, and preferred\n 3: Required.  (Fail the connection if the peer requires encryption.)\n\n This is a dev configuration value, since its purpose is to disable encryption.\n You should not let users modify it in production.  (But note that it requires\n the peer to also modify their value in order for encryption to be disabled.)"]
20945    k_ESteamNetworkingConfig_Unencrypted = 34,
20946    #[doc = " [connection int32] Set this to 1 on outbound connections and listen sockets,\n to enable \"symmetric connect mode\", which is useful in the following\n common peer-to-peer use case:\n\n - The two peers are \"equal\" to each other.  (Neither is clearly the \"client\"\n   or \"server\".)\n - Either peer may initiate the connection, and indeed they may do this\n   at the same time\n - The peers only desire a single connection to each other, and if both\n   peers initiate connections simultaneously, a protocol is needed for them\n   to resolve the conflict, so that we end up with a single connection.\n\n This use case is both common, and involves subtle race conditions and tricky\n pitfalls, which is why the API has support for dealing with it.\n\n If an incoming connection arrives on a listen socket or via custom signaling,\n and the application has not attempted to make a matching outbound connection\n in symmetric mode, then the incoming connection can be accepted as usual.\n A \"matching\" connection means that the relevant endpoint information matches.\n (At the time this comment is being written, this is only supported for P2P\n connections, which means that the peer identities must match, and the virtual\n port must match.  At a later time, symmetric mode may be supported for other\n connection types.)\n\n If connections are initiated by both peers simultaneously, race conditions\n can arise, but fortunately, most of them are handled internally and do not\n require any special awareness from the application.  However, there\n is one important case that application code must be aware of:\n If application code attempts an outbound connection using a ConnectXxx\n function in symmetric mode, and a matching incoming connection is already\n waiting on a listen socket, then instead of forming a new connection,\n the ConnectXxx call will accept the existing incoming connection, and return\n a connection handle to this accepted connection.\n IMPORTANT: in this case, a SteamNetConnectionStatusChangedCallback_t\n has probably *already* been posted to the queue for the incoming connection!\n (Once callbacks are posted to the queue, they are not modified.)  It doesn't\n matter if the callback has not been consumed by the app.  Thus, application\n code that makes use of symmetric connections must be aware that, when processing a\n SteamNetConnectionStatusChangedCallback_t for an incoming connection, the\n m_hConn may refer to a new connection that the app has has not\n seen before (the usual case), but it may also refer to a connection that\n has already been accepted implicitly through a call to Connect()!  In this\n case, AcceptConnection() will return k_EResultDuplicateRequest.\n\n Only one symmetric connection to a given peer (on a given virtual port)\n may exist at any given time.  If client code attempts to create a connection,\n and a (live) connection already exists on the local host, then either the\n existing connection will be accepted as described above, or the attempt\n to create a new connection will fail.  Furthermore, linger mode functionality\n is not supported on symmetric connections.\n\n A more complicated race condition can arise if both peers initiate a connection\n at roughly the same time.  In this situation, each peer will receive an incoming\n connection from the other peer, when the application code has already initiated\n an outgoing connection to that peer.  The peers must resolve this conflict and\n decide who is going to act as the \"server\" and who will act as the \"client\".\n Typically the application does not need to be aware of this case as it is handled\n internally.  On both sides, the will observe their outbound connection being\n \"accepted\", although one of them one have been converted internally to act\n as the \"server\".\n\n In general, symmetric mode should be all-or-nothing: do not mix symmetric\n connections with a non-symmetric connection that it might possible \"match\"\n with.  If you use symmetric mode on any connections, then both peers should\n use it on all connections, and the corresponding listen socket, if any.  The\n behaviour when symmetric and ordinary connections are mixed is not defined by\n this API, and you should not rely on it.  (This advice only applies when connections\n might possibly \"match\".  For example, it's OK to use all symmetric mode\n connections on one virtual port, and all ordinary, non-symmetric connections\n on a different virtual port, as there is no potential for ambiguity.)\n\n When using the feature, you should set it in the following situations on\n applicable objects:\n\n - When creating an outbound connection using ConnectXxx function\n - When creating a listen socket.  (Note that this will automatically cause\n   any accepted connections to inherit the flag.)\n - When using custom signaling, before accepting an incoming connection.\n\n Setting the flag on listen socket and accepted connections will enable the\n API to automatically deal with duplicate incoming connections, even if the\n local host has not made any outbound requests.  (In general, such duplicate\n requests from a peer are ignored internally and will not be visible to the\n application code.  The previous connection must be closed or resolved first.)"]
20947    k_ESteamNetworkingConfig_SymmetricConnect = 37,
20948    #[doc = " [connection int32] For connection types that use \"virtual ports\", this can be used\n to assign a local virtual port.  For incoming connections, this will always be the\n virtual port of the listen socket (or the port requested by the remote host if custom\n signaling is used and the connection is accepted), and cannot be changed.  For\n connections initiated locally, the local virtual port will default to the same as the\n requested remote virtual port, if you do not specify a different option when creating\n the connection.  The local port is only relevant for symmetric connections, when\n determining if two connections \"match.\"  In this case, if you need the local and remote\n port to differ, you can set this value.\n\n You can also read back this value on listen sockets.\n\n This value should not be read or written in any other context."]
20949    k_ESteamNetworkingConfig_LocalVirtualPort = 38,
20950    #[doc = " [connection int32] Enable Dual wifi band support for this connection\n 0 = no, 1 = yes, 2 = simulate it for debugging, even if dual wifi not available"]
20951    k_ESteamNetworkingConfig_DualWifi_Enable = 39,
20952    #[doc = " [connection int32] True to enable diagnostics reporting through\n generic platform UI.  (Only available on Steam.)"]
20953    k_ESteamNetworkingConfig_EnableDiagnosticsUI = 46,
20954    #[doc = " [global float, 0--100] Randomly discard N pct of packets instead of sending/recv\n This is a global option only, since it is applied at a low level\n where we don't have much context"]
20955    k_ESteamNetworkingConfig_FakePacketLoss_Send = 2,
20956    #[doc = " [global float, 0--100] Randomly discard N pct of packets instead of sending/recv\n This is a global option only, since it is applied at a low level\n where we don't have much context"]
20957    k_ESteamNetworkingConfig_FakePacketLoss_Recv = 3,
20958    #[doc = " [global int32].  Delay all outbound/inbound packets by N ms"]
20959    k_ESteamNetworkingConfig_FakePacketLag_Send = 4,
20960    #[doc = " [global int32].  Delay all outbound/inbound packets by N ms"]
20961    k_ESteamNetworkingConfig_FakePacketLag_Recv = 5,
20962    #[doc = " [global float] 0-100 Percentage of packets we will add additional delay\n to (causing them to be reordered)"]
20963    k_ESteamNetworkingConfig_FakePacketReorder_Send = 6,
20964    #[doc = " [global float] 0-100 Percentage of packets we will add additional delay\n to (causing them to be reordered)"]
20965    k_ESteamNetworkingConfig_FakePacketReorder_Recv = 7,
20966    #[doc = " [global int32] Extra delay, in ms, to apply to reordered packets."]
20967    k_ESteamNetworkingConfig_FakePacketReorder_Time = 8,
20968    #[doc = " [global float 0--100] Globally duplicate some percentage of packets we send"]
20969    k_ESteamNetworkingConfig_FakePacketDup_Send = 26,
20970    #[doc = " [global float 0--100] Globally duplicate some percentage of packets we send"]
20971    k_ESteamNetworkingConfig_FakePacketDup_Recv = 27,
20972    #[doc = " [global int32] Amount of delay, in ms, to delay duplicated packets.\n (We chose a random delay between 0 and this value)"]
20973    k_ESteamNetworkingConfig_FakePacketDup_TimeMax = 28,
20974    #[doc = " [global int32] Trace every UDP packet, similar to Wireshark or tcpdump.\n Value is max number of bytes to dump.  -1 disables tracing."]
20975    k_ESteamNetworkingConfig_PacketTraceMaxBytes = 41,
20976    k_ESteamNetworkingConfig_FakeRateLimit_Send_Rate = 42,
20977    k_ESteamNetworkingConfig_FakeRateLimit_Send_Burst = 43,
20978    k_ESteamNetworkingConfig_FakeRateLimit_Recv_Rate = 44,
20979    k_ESteamNetworkingConfig_FakeRateLimit_Recv_Burst = 45,
20980    #[doc = " [connection FnSteamNetConnectionStatusChanged] Callback that will be invoked\n when the state of a connection changes.\n\n IMPORTANT: callbacks are dispatched to the handler that is in effect at the time\n the event occurs, which might be in another thread.  For example, immediately after\n creating a listen socket, you may receive an incoming connection.  And then immediately\n after this, the remote host may close the connection.  All of this could happen\n before the function to create the listen socket has returned.  For this reason,\n callbacks usually must be in effect at the time of object creation.  This means\n you should set them when you are creating the listen socket or connection, or have\n them in effect so they will be inherited at the time of object creation.\n\n For example:\n\n exterm void MyStatusChangedFunc( SteamNetConnectionStatusChangedCallback_t *info );\n SteamNetworkingConfigValue_t opt; opt.SetPtr( k_ESteamNetworkingConfig_Callback_ConnectionStatusChanged, MyStatusChangedFunc );\n SteamNetworkingIPAddr localAddress; localAddress.Clear();\n HSteamListenSocket hListenSock = SteamNetworkingSockets()->CreateListenSocketIP( localAddress, 1, &opt );\n\n When accepting an incoming connection, there is no atomic way to switch the\n callback.  However, if the connection is DOA, AcceptConnection() will fail, and\n you can fetch the state of the connection at that time.\n\n If all connections and listen sockets can use the same callback, the simplest\n method is to set it globally before you create any listen sockets or connections."]
20981    k_ESteamNetworkingConfig_Callback_ConnectionStatusChanged = 201,
20982    #[doc = " [global FnSteamNetAuthenticationStatusChanged] Callback that will be invoked\n when our auth state changes.  If you use this, install the callback before creating\n any connections or listen sockets, and don't change it.\n See: ISteamNetworkingUtils::SetGlobalCallback_SteamNetAuthenticationStatusChanged"]
20983    k_ESteamNetworkingConfig_Callback_AuthStatusChanged = 202,
20984    #[doc = " [global FnSteamRelayNetworkStatusChanged] Callback that will be invoked\n when our auth state changes.  If you use this, install the callback before creating\n any connections or listen sockets, and don't change it.\n See: ISteamNetworkingUtils::SetGlobalCallback_SteamRelayNetworkStatusChanged"]
20985    k_ESteamNetworkingConfig_Callback_RelayNetworkStatusChanged = 203,
20986    #[doc = " [global FnSteamNetworkingMessagesSessionRequest] Callback that will be invoked\n when a peer wants to initiate a SteamNetworkingMessagesSessionRequest.\n See: ISteamNetworkingUtils::SetGlobalCallback_MessagesSessionRequest"]
20987    k_ESteamNetworkingConfig_Callback_MessagesSessionRequest = 204,
20988    #[doc = " [global FnSteamNetworkingMessagesSessionFailed] Callback that will be invoked\n when a session you have initiated, or accepted either fails to connect, or loses\n connection in some unexpected way.\n See: ISteamNetworkingUtils::SetGlobalCallback_MessagesSessionFailed"]
20989    k_ESteamNetworkingConfig_Callback_MessagesSessionFailed = 205,
20990    #[doc = " [global FnSteamNetworkingSocketsCreateConnectionSignaling] Callback that will\n be invoked when we need to create a signaling object for a connection\n initiated locally.  See: ISteamNetworkingSockets::ConnectP2P,\n ISteamNetworkingMessages."]
20991    k_ESteamNetworkingConfig_Callback_CreateConnectionSignaling = 206,
20992    #[doc = " [global FnSteamNetworkingFakeIPResult] Callback that's invoked when\n a FakeIP allocation finishes.  See: ISteamNetworkingSockets::BeginAsyncRequestFakeIP,\n ISteamNetworkingUtils::SetGlobalCallback_FakeIPResult"]
20993    k_ESteamNetworkingConfig_Callback_FakeIPResult = 207,
20994    #[doc = " [connection string] Comma-separated list of STUN servers that can be used\n for NAT piercing.  If you set this to an empty string, NAT piercing will\n not be attempted.  Also if \"public\" candidates are not allowed for\n P2P_Transport_ICE_Enable, then this is ignored."]
20995    k_ESteamNetworkingConfig_P2P_STUN_ServerList = 103,
20996    #[doc = " [connection int32] What types of ICE candidates to share with the peer.\n See k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_xxx values"]
20997    k_ESteamNetworkingConfig_P2P_Transport_ICE_Enable = 104,
20998    #[doc = " [connection int32] When selecting P2P transport, add various\n penalties to the scores for selected transports.  (Route selection\n scores are on a scale of milliseconds.  The score begins with the\n route ping time and is then adjusted.)"]
20999    k_ESteamNetworkingConfig_P2P_Transport_ICE_Penalty = 105,
21000    #[doc = " [connection int32] When selecting P2P transport, add various\n penalties to the scores for selected transports.  (Route selection\n scores are on a scale of milliseconds.  The score begins with the\n route ping time and is then adjusted.)"]
21001    k_ESteamNetworkingConfig_P2P_Transport_SDR_Penalty = 106,
21002    #[doc = " [connection int32] When selecting P2P transport, add various\n penalties to the scores for selected transports.  (Route selection\n scores are on a scale of milliseconds.  The score begins with the\n route ping time and is then adjusted.)"]
21003    k_ESteamNetworkingConfig_P2P_TURN_ServerList = 107,
21004    #[doc = " [connection int32] When selecting P2P transport, add various\n penalties to the scores for selected transports.  (Route selection\n scores are on a scale of milliseconds.  The score begins with the\n route ping time and is then adjusted.)"]
21005    k_ESteamNetworkingConfig_P2P_TURN_UserList = 108,
21006    #[doc = " [connection int32] When selecting P2P transport, add various\n penalties to the scores for selected transports.  (Route selection\n scores are on a scale of milliseconds.  The score begins with the\n route ping time and is then adjusted.)"]
21007    k_ESteamNetworkingConfig_P2P_TURN_PassList = 109,
21008    #[doc = " [connection int32] When selecting P2P transport, add various\n penalties to the scores for selected transports.  (Route selection\n scores are on a scale of milliseconds.  The score begins with the\n route ping time and is then adjusted.)"]
21009    k_ESteamNetworkingConfig_P2P_Transport_ICE_Implementation = 110,
21010    #[doc = " [int32 global] If the first N pings to a port all fail, mark that port as unavailable for\n a while, and try a different one.  Some ISPs and routers may drop the first\n packet, so setting this to 1 may greatly disrupt communications."]
21011    k_ESteamNetworkingConfig_SDRClient_ConsecutitivePingTimeoutsFailInitial = 19,
21012    #[doc = " [int32 global] If N consecutive pings to a port fail, after having received successful\n communication, mark that port as unavailable for a while, and try a\n different one."]
21013    k_ESteamNetworkingConfig_SDRClient_ConsecutitivePingTimeoutsFail = 20,
21014    #[doc = " [int32 global] Minimum number of lifetime pings we need to send, before we think our estimate\n is solid.  The first ping to each cluster is very often delayed because of NAT,\n routers not having the best route, etc.  Until we've sent a sufficient number\n of pings, our estimate is often inaccurate.  Keep pinging until we get this\n many pings."]
21015    k_ESteamNetworkingConfig_SDRClient_MinPingsBeforePingAccurate = 21,
21016    #[doc = " [int32 global] Set all steam datagram traffic to originate from the same\n local port. By default, we open up a new UDP socket (on a different local\n port) for each relay.  This is slightly less optimal, but it works around\n some routers that don't implement NAT properly.  If you have intermittent\n problems talking to relays that might be NAT related, try toggling\n this flag"]
21017    k_ESteamNetworkingConfig_SDRClient_SingleSocket = 22,
21018    #[doc = " [global string] Code of relay cluster to force use.  If not empty, we will\n only use relays in that cluster.  E.g. 'iad'"]
21019    k_ESteamNetworkingConfig_SDRClient_ForceRelayCluster = 29,
21020    #[doc = " [connection string] For debugging, generate our own (unsigned) ticket, using\n the specified  gameserver address.  Router must be configured to accept unsigned\n tickets."]
21021    k_ESteamNetworkingConfig_SDRClient_DebugTicketAddress = 30,
21022    #[doc = " [global string] For debugging.  Override list of relays from the config with\n this set (maybe just one).  Comma-separated list."]
21023    k_ESteamNetworkingConfig_SDRClient_ForceProxyAddr = 31,
21024    #[doc = " [global string] For debugging.  Force ping times to clusters to be the specified\n values.  A comma separated list of <cluster>=<ms> values.  E.g. \"sto=32,iad=100\"\n\n This is a dev configuration value, you probably should not let users modify it\n in production."]
21025    k_ESteamNetworkingConfig_SDRClient_FakeClusterPing = 36,
21026    #[doc = " [global string] For debugging.  Force ping times to clusters to be the specified\n values.  A comma separated list of <cluster>=<ms> values.  E.g. \"sto=32,iad=100\"\n\n This is a dev configuration value, you probably should not let users modify it\n in production."]
21027    k_ESteamNetworkingConfig_LogLevel_AckRTT = 13,
21028    #[doc = " [global string] For debugging.  Force ping times to clusters to be the specified\n values.  A comma separated list of <cluster>=<ms> values.  E.g. \"sto=32,iad=100\"\n\n This is a dev configuration value, you probably should not let users modify it\n in production."]
21029    k_ESteamNetworkingConfig_LogLevel_PacketDecode = 14,
21030    #[doc = " [global string] For debugging.  Force ping times to clusters to be the specified\n values.  A comma separated list of <cluster>=<ms> values.  E.g. \"sto=32,iad=100\"\n\n This is a dev configuration value, you probably should not let users modify it\n in production."]
21031    k_ESteamNetworkingConfig_LogLevel_Message = 15,
21032    #[doc = " [global string] For debugging.  Force ping times to clusters to be the specified\n values.  A comma separated list of <cluster>=<ms> values.  E.g. \"sto=32,iad=100\"\n\n This is a dev configuration value, you probably should not let users modify it\n in production."]
21033    k_ESteamNetworkingConfig_LogLevel_PacketGaps = 16,
21034    #[doc = " [global string] For debugging.  Force ping times to clusters to be the specified\n values.  A comma separated list of <cluster>=<ms> values.  E.g. \"sto=32,iad=100\"\n\n This is a dev configuration value, you probably should not let users modify it\n in production."]
21035    k_ESteamNetworkingConfig_LogLevel_P2PRendezvous = 17,
21036    #[doc = " [global string] For debugging.  Force ping times to clusters to be the specified\n values.  A comma separated list of <cluster>=<ms> values.  E.g. \"sto=32,iad=100\"\n\n This is a dev configuration value, you probably should not let users modify it\n in production."]
21037    k_ESteamNetworkingConfig_LogLevel_SDRRelayPings = 18,
21038    #[doc = " [global string] For debugging.  Force ping times to clusters to be the specified\n values.  A comma separated list of <cluster>=<ms> values.  E.g. \"sto=32,iad=100\"\n\n This is a dev configuration value, you probably should not let users modify it\n in production."]
21039    k_ESteamNetworkingConfig_DELETED_EnumerateDevVars = 35,
21040    #[doc = " [global string] For debugging.  Force ping times to clusters to be the specified\n values.  A comma separated list of <cluster>=<ms> values.  E.g. \"sto=32,iad=100\"\n\n This is a dev configuration value, you probably should not let users modify it\n in production."]
21041    k_ESteamNetworkingConfigValue__Force32Bit = 2147483647,
21042}
21043pub const k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Default: ::std::os::raw::c_int = -1;
21044pub const k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Disable: ::std::os::raw::c_int = 0;
21045pub const k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Relay: ::std::os::raw::c_int = 1;
21046pub const k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Private: ::std::os::raw::c_int = 2;
21047pub const k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Public: ::std::os::raw::c_int = 4;
21048pub const k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_All: ::std::os::raw::c_int = 2147483647;
21049#[doc = " In a few places we need to set configuration options on listen sockets and connections, and\n have them take effect *before* the listen socket or connection really starts doing anything.\n Creating the object and then setting the options \"immediately\" after creation doesn't work\n completely, because network packets could be received between the time the object is created and\n when the options are applied.  To set options at creation time in a reliable way, they must be\n passed to the creation function.  This structure is used to pass those options.\n\n For the meaning of these fields, see ISteamNetworkingUtils::SetConfigValue.  Basically\n when the object is created, we just iterate over the list of options and call\n ISteamNetworkingUtils::SetConfigValueStruct, where the scope arguments are supplied by the\n object being created."]
21050#[repr(C)]
21051#[derive(Copy, Clone)]
21052pub struct SteamNetworkingConfigValue_t {
21053    #[doc = " Which option is being set"]
21054    pub m_eValue: ESteamNetworkingConfigValue,
21055    #[doc = " Which field below did you fill in?"]
21056    pub m_eDataType: ESteamNetworkingConfigDataType,
21057    pub m_val: SteamNetworkingConfigValue_t__bindgen_ty_1,
21058}
21059#[doc = " Option value"]
21060#[repr(C)]
21061#[derive(Copy, Clone)]
21062pub union SteamNetworkingConfigValue_t__bindgen_ty_1 {
21063    pub m_int32: i32,
21064    pub m_int64: i64,
21065    pub m_float: f32,
21066    pub m_string: *const ::std::os::raw::c_char,
21067    pub m_ptr: *mut ::std::os::raw::c_void,
21068}
21069#[test]
21070fn bindgen_test_layout_SteamNetworkingConfigValue_t__bindgen_ty_1() {
21071    const UNINIT: ::std::mem::MaybeUninit<SteamNetworkingConfigValue_t__bindgen_ty_1> =
21072        ::std::mem::MaybeUninit::uninit();
21073    let ptr = UNINIT.as_ptr();
21074    assert_eq!(
21075        ::std::mem::size_of::<SteamNetworkingConfigValue_t__bindgen_ty_1>(),
21076        8usize,
21077        concat!(
21078            "Size of: ",
21079            stringify!(SteamNetworkingConfigValue_t__bindgen_ty_1)
21080        )
21081    );
21082    assert_eq!(
21083        ::std::mem::align_of::<SteamNetworkingConfigValue_t__bindgen_ty_1>(),
21084        8usize,
21085        concat!(
21086            "Alignment of ",
21087            stringify!(SteamNetworkingConfigValue_t__bindgen_ty_1)
21088        )
21089    );
21090    assert_eq!(
21091        unsafe { ::std::ptr::addr_of!((*ptr).m_int32) as usize - ptr as usize },
21092        0usize,
21093        concat!(
21094            "Offset of field: ",
21095            stringify!(SteamNetworkingConfigValue_t__bindgen_ty_1),
21096            "::",
21097            stringify!(m_int32)
21098        )
21099    );
21100    assert_eq!(
21101        unsafe { ::std::ptr::addr_of!((*ptr).m_int64) as usize - ptr as usize },
21102        0usize,
21103        concat!(
21104            "Offset of field: ",
21105            stringify!(SteamNetworkingConfigValue_t__bindgen_ty_1),
21106            "::",
21107            stringify!(m_int64)
21108        )
21109    );
21110    assert_eq!(
21111        unsafe { ::std::ptr::addr_of!((*ptr).m_float) as usize - ptr as usize },
21112        0usize,
21113        concat!(
21114            "Offset of field: ",
21115            stringify!(SteamNetworkingConfigValue_t__bindgen_ty_1),
21116            "::",
21117            stringify!(m_float)
21118        )
21119    );
21120    assert_eq!(
21121        unsafe { ::std::ptr::addr_of!((*ptr).m_string) as usize - ptr as usize },
21122        0usize,
21123        concat!(
21124            "Offset of field: ",
21125            stringify!(SteamNetworkingConfigValue_t__bindgen_ty_1),
21126            "::",
21127            stringify!(m_string)
21128        )
21129    );
21130    assert_eq!(
21131        unsafe { ::std::ptr::addr_of!((*ptr).m_ptr) as usize - ptr as usize },
21132        0usize,
21133        concat!(
21134            "Offset of field: ",
21135            stringify!(SteamNetworkingConfigValue_t__bindgen_ty_1),
21136            "::",
21137            stringify!(m_ptr)
21138        )
21139    );
21140}
21141#[test]
21142fn bindgen_test_layout_SteamNetworkingConfigValue_t() {
21143    const UNINIT: ::std::mem::MaybeUninit<SteamNetworkingConfigValue_t> =
21144        ::std::mem::MaybeUninit::uninit();
21145    let ptr = UNINIT.as_ptr();
21146    assert_eq!(
21147        ::std::mem::size_of::<SteamNetworkingConfigValue_t>(),
21148        16usize,
21149        concat!("Size of: ", stringify!(SteamNetworkingConfigValue_t))
21150    );
21151    assert_eq!(
21152        ::std::mem::align_of::<SteamNetworkingConfigValue_t>(),
21153        8usize,
21154        concat!("Alignment of ", stringify!(SteamNetworkingConfigValue_t))
21155    );
21156    assert_eq!(
21157        unsafe { ::std::ptr::addr_of!((*ptr).m_eValue) as usize - ptr as usize },
21158        0usize,
21159        concat!(
21160            "Offset of field: ",
21161            stringify!(SteamNetworkingConfigValue_t),
21162            "::",
21163            stringify!(m_eValue)
21164        )
21165    );
21166    assert_eq!(
21167        unsafe { ::std::ptr::addr_of!((*ptr).m_eDataType) as usize - ptr as usize },
21168        4usize,
21169        concat!(
21170            "Offset of field: ",
21171            stringify!(SteamNetworkingConfigValue_t),
21172            "::",
21173            stringify!(m_eDataType)
21174        )
21175    );
21176    assert_eq!(
21177        unsafe { ::std::ptr::addr_of!((*ptr).m_val) as usize - ptr as usize },
21178        8usize,
21179        concat!(
21180            "Offset of field: ",
21181            stringify!(SteamNetworkingConfigValue_t),
21182            "::",
21183            stringify!(m_val)
21184        )
21185    );
21186}
21187#[repr(i32)]
21188#[non_exhaustive]
21189#[doc = " Return value of ISteamNetworkintgUtils::GetConfigValue"]
21190#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
21191pub enum ESteamNetworkingGetConfigValueResult {
21192    k_ESteamNetworkingGetConfigValue_BadValue = -1,
21193    k_ESteamNetworkingGetConfigValue_BadScopeObj = -2,
21194    k_ESteamNetworkingGetConfigValue_BufferTooSmall = -3,
21195    k_ESteamNetworkingGetConfigValue_OK = 1,
21196    k_ESteamNetworkingGetConfigValue_OKInherited = 2,
21197    k_ESteamNetworkingGetConfigValueResult__Force32Bit = 2147483647,
21198}
21199#[repr(u32)]
21200#[non_exhaustive]
21201#[doc = " Detail level for diagnostic output callback.\n See ISteamNetworkingUtils::SetDebugOutputFunction"]
21202#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
21203pub enum ESteamNetworkingSocketsDebugOutputType {
21204    k_ESteamNetworkingSocketsDebugOutputType_None = 0,
21205    k_ESteamNetworkingSocketsDebugOutputType_Bug = 1,
21206    k_ESteamNetworkingSocketsDebugOutputType_Error = 2,
21207    k_ESteamNetworkingSocketsDebugOutputType_Important = 3,
21208    k_ESteamNetworkingSocketsDebugOutputType_Warning = 4,
21209    k_ESteamNetworkingSocketsDebugOutputType_Msg = 5,
21210    k_ESteamNetworkingSocketsDebugOutputType_Verbose = 6,
21211    k_ESteamNetworkingSocketsDebugOutputType_Debug = 7,
21212    k_ESteamNetworkingSocketsDebugOutputType_Everything = 8,
21213    k_ESteamNetworkingSocketsDebugOutputType__Force32Bit = 2147483647,
21214}
21215#[doc = " Setup callback for debug output, and the desired verbosity you want."]
21216pub type FSteamNetworkingSocketsDebugOutput = ::std::option::Option<
21217    unsafe extern "C" fn(
21218        nType: ESteamNetworkingSocketsDebugOutputType,
21219        pszMsg: *const ::std::os::raw::c_char,
21220    ),
21221>;
21222#[doc = " The POPID \"dev\" is used in non-production environments for testing."]
21223pub const k_SteamDatagramPOPID_dev: SteamNetworkingPOPID = 6579574;
21224#[doc = " Utility class for printing a SteamNetworkingPOPID."]
21225#[repr(C)]
21226#[derive(Debug, Copy, Clone)]
21227pub struct SteamNetworkingPOPIDRender {
21228    pub buf: [::std::os::raw::c_char; 8usize],
21229}
21230#[test]
21231fn bindgen_test_layout_SteamNetworkingPOPIDRender() {
21232    const UNINIT: ::std::mem::MaybeUninit<SteamNetworkingPOPIDRender> =
21233        ::std::mem::MaybeUninit::uninit();
21234    let ptr = UNINIT.as_ptr();
21235    assert_eq!(
21236        ::std::mem::size_of::<SteamNetworkingPOPIDRender>(),
21237        8usize,
21238        concat!("Size of: ", stringify!(SteamNetworkingPOPIDRender))
21239    );
21240    assert_eq!(
21241        ::std::mem::align_of::<SteamNetworkingPOPIDRender>(),
21242        1usize,
21243        concat!("Alignment of ", stringify!(SteamNetworkingPOPIDRender))
21244    );
21245    assert_eq!(
21246        unsafe { ::std::ptr::addr_of!((*ptr).buf) as usize - ptr as usize },
21247        0usize,
21248        concat!(
21249            "Offset of field: ",
21250            stringify!(SteamNetworkingPOPIDRender),
21251            "::",
21252            stringify!(buf)
21253        )
21254    );
21255}
21256#[doc = " A message that has been received."]
21257pub type ISteamNetworkingMessage = SteamNetworkingMessage_t;
21258pub type SteamDatagramErrMsg = SteamNetworkingErrMsg;
21259#[repr(C)]
21260pub struct ISteamNetworkingMessages__bindgen_vtable(::std::os::raw::c_void);
21261#[doc = " The non-connection-oriented interface to send and receive messages\n (whether they be \"clients\" or \"servers\").\n\n ISteamNetworkingSockets is connection-oriented (like TCP), meaning you\n need to listen and connect, and then you send messages using a connection\n handle.  ISteamNetworkingMessages is more like UDP, in that you can just send\n messages to arbitrary peers at any time.  The underlying connections are\n established implicitly.\n\n Under the hood ISteamNetworkingMessages works on top of the ISteamNetworkingSockets\n code, so you get the same routing and messaging efficiency.  The difference is\n mainly in your responsibility to explicitly establish a connection and\n the type of feedback you get about the state of the connection.  Both\n interfaces can do \"P2P\" communications, and both support both unreliable\n and reliable messages, fragmentation and reassembly.\n\n The primary purpose of this interface is to be \"like UDP\", so that UDP-based code\n can be ported easily to take advantage of relayed connections.  If you find\n yourself needing more low level information or control, or to be able to better\n handle failure, then you probably need to use ISteamNetworkingSockets directly.\n Also, note that if your main goal is to obtain a connection between two peers\n without concerning yourself with assigning roles of \"client\" and \"server\",\n you may find the symmetric connection mode of ISteamNetworkingSockets useful.\n (See k_ESteamNetworkingConfig_SymmetricConnect.)\n"]
21262#[repr(C)]
21263#[derive(Debug, Copy, Clone)]
21264pub struct ISteamNetworkingMessages {
21265    pub vtable_: *const ISteamNetworkingMessages__bindgen_vtable,
21266}
21267#[test]
21268fn bindgen_test_layout_ISteamNetworkingMessages() {
21269    assert_eq!(
21270        ::std::mem::size_of::<ISteamNetworkingMessages>(),
21271        8usize,
21272        concat!("Size of: ", stringify!(ISteamNetworkingMessages))
21273    );
21274    assert_eq!(
21275        ::std::mem::align_of::<ISteamNetworkingMessages>(),
21276        8usize,
21277        concat!("Alignment of ", stringify!(ISteamNetworkingMessages))
21278    );
21279}
21280#[doc = " Posted when a remote host is sending us a message, and we do not already have a session with them"]
21281#[repr(C)]
21282#[derive(Copy, Clone)]
21283pub struct SteamNetworkingMessagesSessionRequest_t {
21284    pub m_identityRemote: SteamNetworkingIdentity,
21285}
21286pub const SteamNetworkingMessagesSessionRequest_t_k_iCallback:
21287    SteamNetworkingMessagesSessionRequest_t__bindgen_ty_1 =
21288    SteamNetworkingMessagesSessionRequest_t__bindgen_ty_1::k_iCallback;
21289#[repr(u32)]
21290#[non_exhaustive]
21291#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
21292pub enum SteamNetworkingMessagesSessionRequest_t__bindgen_ty_1 {
21293    k_iCallback = 1251,
21294}
21295#[test]
21296fn bindgen_test_layout_SteamNetworkingMessagesSessionRequest_t() {
21297    const UNINIT: ::std::mem::MaybeUninit<SteamNetworkingMessagesSessionRequest_t> =
21298        ::std::mem::MaybeUninit::uninit();
21299    let ptr = UNINIT.as_ptr();
21300    assert_eq!(
21301        ::std::mem::size_of::<SteamNetworkingMessagesSessionRequest_t>(),
21302        136usize,
21303        concat!(
21304            "Size of: ",
21305            stringify!(SteamNetworkingMessagesSessionRequest_t)
21306        )
21307    );
21308    assert_eq!(
21309        ::std::mem::align_of::<SteamNetworkingMessagesSessionRequest_t>(),
21310        1usize,
21311        concat!(
21312            "Alignment of ",
21313            stringify!(SteamNetworkingMessagesSessionRequest_t)
21314        )
21315    );
21316    assert_eq!(
21317        unsafe { ::std::ptr::addr_of!((*ptr).m_identityRemote) as usize - ptr as usize },
21318        0usize,
21319        concat!(
21320            "Offset of field: ",
21321            stringify!(SteamNetworkingMessagesSessionRequest_t),
21322            "::",
21323            stringify!(m_identityRemote)
21324        )
21325    );
21326}
21327#[doc = " Posted when we fail to establish a connection, or we detect that communications\n have been disrupted it an unusual way.  There is no notification when a peer proactively\n closes the session.  (\"Closed by peer\" is not a concept of UDP-style communications, and\n SteamNetworkingMessages is primarily intended to make porting UDP code easy.)\n\n Remember: callbacks are asynchronous.   See notes on SendMessageToUser,\n and k_nSteamNetworkingSend_AutoRestartBrokenSession in particular.\n\n Also, if a session times out due to inactivity, no callbacks will be posted.  The only\n way to detect that this is happening is that querying the session state may return\n none, connecting, and findingroute again."]
21328#[repr(C, packed)]
21329#[derive(Copy, Clone)]
21330pub struct SteamNetworkingMessagesSessionFailed_t {
21331    #[doc = " Detailed info about the session that failed.\n SteamNetConnectionInfo_t::m_identityRemote indicates who this session\n was with."]
21332    pub m_info: SteamNetConnectionInfo_t,
21333}
21334pub const SteamNetworkingMessagesSessionFailed_t_k_iCallback:
21335    SteamNetworkingMessagesSessionFailed_t__bindgen_ty_1 =
21336    SteamNetworkingMessagesSessionFailed_t__bindgen_ty_1::k_iCallback;
21337#[repr(u32)]
21338#[non_exhaustive]
21339#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
21340pub enum SteamNetworkingMessagesSessionFailed_t__bindgen_ty_1 {
21341    k_iCallback = 1252,
21342}
21343#[test]
21344fn bindgen_test_layout_SteamNetworkingMessagesSessionFailed_t() {
21345    const UNINIT: ::std::mem::MaybeUninit<SteamNetworkingMessagesSessionFailed_t> =
21346        ::std::mem::MaybeUninit::uninit();
21347    let ptr = UNINIT.as_ptr();
21348    assert_eq!(
21349        ::std::mem::size_of::<SteamNetworkingMessagesSessionFailed_t>(),
21350        696usize,
21351        concat!(
21352            "Size of: ",
21353            stringify!(SteamNetworkingMessagesSessionFailed_t)
21354        )
21355    );
21356    assert_eq!(
21357        ::std::mem::align_of::<SteamNetworkingMessagesSessionFailed_t>(),
21358        1usize,
21359        concat!(
21360            "Alignment of ",
21361            stringify!(SteamNetworkingMessagesSessionFailed_t)
21362        )
21363    );
21364    assert_eq!(
21365        unsafe { ::std::ptr::addr_of!((*ptr).m_info) as usize - ptr as usize },
21366        0usize,
21367        concat!(
21368            "Offset of field: ",
21369            stringify!(SteamNetworkingMessagesSessionFailed_t),
21370            "::",
21371            stringify!(m_info)
21372        )
21373    );
21374}
21375#[repr(C)]
21376#[derive(Debug, Copy, Clone)]
21377pub struct ISteamNetworkingConnectionSignaling {
21378    _unused: [u8; 0],
21379}
21380#[repr(C)]
21381#[derive(Debug, Copy, Clone)]
21382pub struct ISteamNetworkingSignalingRecvContext {
21383    _unused: [u8; 0],
21384}
21385#[repr(C)]
21386#[derive(Debug, Copy, Clone)]
21387pub struct ISteamNetworkingFakeUDPPort {
21388    _unused: [u8; 0],
21389}
21390#[repr(C)]
21391pub struct ISteamNetworkingSockets__bindgen_vtable(::std::os::raw::c_void);
21392#[doc = " Lower level networking API.\n\n - Connection-oriented API (like TCP, not UDP).  When sending and receiving\n   messages, a connection handle is used.  (For a UDP-style interface, where\n   the peer is identified by their address with each send/recv call, see\n   ISteamNetworkingMessages.)  The typical pattern is for a \"server\" to \"listen\"\n   on a \"listen socket.\"  A \"client\" will \"connect\" to the server, and the\n   server will \"accept\" the connection.  If you have a symmetric situation\n   where either peer may initiate the connection and server/client roles are\n   not clearly defined, check out k_ESteamNetworkingConfig_SymmetricConnect.\n - But unlike TCP, it's message-oriented, not stream-oriented.\n - Mix of reliable and unreliable messages\n - Fragmentation and reassembly\n - Supports connectivity over plain UDP\n - Also supports SDR (\"Steam Datagram Relay\") connections, which are\n   addressed by the identity of the peer.  There is a \"P2P\" use case and\n   a \"hosted dedicated server\" use case.\n\n Note that neither of the terms \"connection\" nor \"socket\" necessarily correspond\n one-to-one with an underlying UDP socket.  An attempt has been made to\n keep the semantics as similar to the standard socket model when appropriate,\n but some deviations do exist.\n\n See also: ISteamNetworkingMessages, the UDP-style interface.  This API might be\n easier to use, especially when porting existing UDP code."]
21393#[repr(C)]
21394#[derive(Debug)]
21395pub struct ISteamNetworkingSockets {
21396    pub vtable_: *const ISteamNetworkingSockets__bindgen_vtable,
21397}
21398#[test]
21399fn bindgen_test_layout_ISteamNetworkingSockets() {
21400    assert_eq!(
21401        ::std::mem::size_of::<ISteamNetworkingSockets>(),
21402        8usize,
21403        concat!("Size of: ", stringify!(ISteamNetworkingSockets))
21404    );
21405    assert_eq!(
21406        ::std::mem::align_of::<ISteamNetworkingSockets>(),
21407        8usize,
21408        concat!("Alignment of ", stringify!(ISteamNetworkingSockets))
21409    );
21410}
21411extern "C" {
21412    #[link_name = "\u{1}_ZN23ISteamNetworkingSocketsD1Ev"]
21413    pub fn ISteamNetworkingSockets_ISteamNetworkingSockets_destructor(
21414        this: *mut ISteamNetworkingSockets,
21415    );
21416}
21417impl ISteamNetworkingSockets {
21418    #[inline]
21419    pub unsafe fn destruct(&mut self) {
21420        ISteamNetworkingSockets_ISteamNetworkingSockets_destructor(self)
21421    }
21422}
21423#[doc = " This callback is posted whenever a connection is created, destroyed, or changes state.\n The m_info field will contain a complete description of the connection at the time the\n change occurred and the callback was posted.  In particular, m_eState will have the\n new connection state.\n\n You will usually need to listen for this callback to know when:\n - A new connection arrives on a listen socket.\n   m_info.m_hListenSocket will be set, m_eOldState = k_ESteamNetworkingConnectionState_None,\n   and m_info.m_eState = k_ESteamNetworkingConnectionState_Connecting.\n   See ISteamNetworkigSockets::AcceptConnection.\n - A connection you initiated has been accepted by the remote host.\n   m_eOldState = k_ESteamNetworkingConnectionState_Connecting, and\n   m_info.m_eState = k_ESteamNetworkingConnectionState_Connected.\n   Some connections might transition to k_ESteamNetworkingConnectionState_FindingRoute first.\n - A connection has been actively rejected or closed by the remote host.\n   m_eOldState = k_ESteamNetworkingConnectionState_Connecting or k_ESteamNetworkingConnectionState_Connected,\n   and m_info.m_eState = k_ESteamNetworkingConnectionState_ClosedByPeer.  m_info.m_eEndReason\n   and m_info.m_szEndDebug will have for more details.\n   NOTE: upon receiving this callback, you must still destroy the connection using\n   ISteamNetworkingSockets::CloseConnection to free up local resources.  (The details\n   passed to the function are not used in this case, since the connection is already closed.)\n - A problem was detected with the connection, and it has been closed by the local host.\n   The most common failure is timeout, but other configuration or authentication failures\n   can cause this.  m_eOldState = k_ESteamNetworkingConnectionState_Connecting or\n   k_ESteamNetworkingConnectionState_Connected, and m_info.m_eState = k_ESteamNetworkingConnectionState_ProblemDetectedLocally.\n   m_info.m_eEndReason and m_info.m_szEndDebug will have for more details.\n   NOTE: upon receiving this callback, you must still destroy the connection using\n   ISteamNetworkingSockets::CloseConnection to free up local resources.  (The details\n   passed to the function are not used in this case, since the connection is already closed.)\n\n Remember that callbacks are posted to a queue, and networking connections can\n change at any time.  It is possible that the connection has already changed\n state by the time you process this callback.\n\n Also note that callbacks will be posted when connections are created and destroyed by your own API calls."]
21424#[repr(C)]
21425#[derive(Copy, Clone)]
21426pub struct SteamNetConnectionStatusChangedCallback_t {
21427    #[doc = " Connection handle"]
21428    pub m_hConn: HSteamNetConnection,
21429    #[doc = " Full connection info"]
21430    pub m_info: SteamNetConnectionInfo_t,
21431    #[doc = " Previous state.  (Current state is in m_info.m_eState)"]
21432    pub m_eOldState: ESteamNetworkingConnectionState,
21433}
21434pub const SteamNetConnectionStatusChangedCallback_t_k_iCallback:
21435    SteamNetConnectionStatusChangedCallback_t__bindgen_ty_1 =
21436    SteamNetConnectionStatusChangedCallback_t__bindgen_ty_1::k_iCallback;
21437#[repr(u32)]
21438#[non_exhaustive]
21439#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
21440pub enum SteamNetConnectionStatusChangedCallback_t__bindgen_ty_1 {
21441    k_iCallback = 1221,
21442}
21443#[test]
21444fn bindgen_test_layout_SteamNetConnectionStatusChangedCallback_t() {
21445    const UNINIT: ::std::mem::MaybeUninit<SteamNetConnectionStatusChangedCallback_t> =
21446        ::std::mem::MaybeUninit::uninit();
21447    let ptr = UNINIT.as_ptr();
21448    assert_eq!(
21449        ::std::mem::size_of::<SteamNetConnectionStatusChangedCallback_t>(),
21450        704usize,
21451        concat!(
21452            "Size of: ",
21453            stringify!(SteamNetConnectionStatusChangedCallback_t)
21454        )
21455    );
21456    assert_eq!(
21457        ::std::mem::align_of::<SteamNetConnectionStatusChangedCallback_t>(),
21458        4usize,
21459        concat!(
21460            "Alignment of ",
21461            stringify!(SteamNetConnectionStatusChangedCallback_t)
21462        )
21463    );
21464    assert_eq!(
21465        unsafe { ::std::ptr::addr_of!((*ptr).m_hConn) as usize - ptr as usize },
21466        0usize,
21467        concat!(
21468            "Offset of field: ",
21469            stringify!(SteamNetConnectionStatusChangedCallback_t),
21470            "::",
21471            stringify!(m_hConn)
21472        )
21473    );
21474    assert_eq!(
21475        unsafe { ::std::ptr::addr_of!((*ptr).m_info) as usize - ptr as usize },
21476        4usize,
21477        concat!(
21478            "Offset of field: ",
21479            stringify!(SteamNetConnectionStatusChangedCallback_t),
21480            "::",
21481            stringify!(m_info)
21482        )
21483    );
21484    assert_eq!(
21485        unsafe { ::std::ptr::addr_of!((*ptr).m_eOldState) as usize - ptr as usize },
21486        700usize,
21487        concat!(
21488            "Offset of field: ",
21489            stringify!(SteamNetConnectionStatusChangedCallback_t),
21490            "::",
21491            stringify!(m_eOldState)
21492        )
21493    );
21494}
21495#[doc = " A struct used to describe our readiness to participate in authenticated,\n encrypted communication.  In order to do this we need:\n\n - The list of trusted CA certificates that might be relevant for this\n   app.\n - A valid certificate issued by a CA.\n\n This callback is posted whenever the state of our readiness changes."]
21496#[repr(C)]
21497#[derive(Debug, Copy, Clone)]
21498pub struct SteamNetAuthenticationStatus_t {
21499    #[doc = " Status"]
21500    pub m_eAvail: ESteamNetworkingAvailability,
21501    #[doc = " Non-localized English language status.  For diagnostic/debugging\n purposes only."]
21502    pub m_debugMsg: [::std::os::raw::c_char; 256usize],
21503}
21504pub const SteamNetAuthenticationStatus_t_k_iCallback: SteamNetAuthenticationStatus_t__bindgen_ty_1 =
21505    SteamNetAuthenticationStatus_t__bindgen_ty_1::k_iCallback;
21506#[repr(u32)]
21507#[non_exhaustive]
21508#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
21509pub enum SteamNetAuthenticationStatus_t__bindgen_ty_1 {
21510    k_iCallback = 1222,
21511}
21512#[test]
21513fn bindgen_test_layout_SteamNetAuthenticationStatus_t() {
21514    const UNINIT: ::std::mem::MaybeUninit<SteamNetAuthenticationStatus_t> =
21515        ::std::mem::MaybeUninit::uninit();
21516    let ptr = UNINIT.as_ptr();
21517    assert_eq!(
21518        ::std::mem::size_of::<SteamNetAuthenticationStatus_t>(),
21519        260usize,
21520        concat!("Size of: ", stringify!(SteamNetAuthenticationStatus_t))
21521    );
21522    assert_eq!(
21523        ::std::mem::align_of::<SteamNetAuthenticationStatus_t>(),
21524        4usize,
21525        concat!("Alignment of ", stringify!(SteamNetAuthenticationStatus_t))
21526    );
21527    assert_eq!(
21528        unsafe { ::std::ptr::addr_of!((*ptr).m_eAvail) as usize - ptr as usize },
21529        0usize,
21530        concat!(
21531            "Offset of field: ",
21532            stringify!(SteamNetAuthenticationStatus_t),
21533            "::",
21534            stringify!(m_eAvail)
21535        )
21536    );
21537    assert_eq!(
21538        unsafe { ::std::ptr::addr_of!((*ptr).m_debugMsg) as usize - ptr as usize },
21539        4usize,
21540        concat!(
21541            "Offset of field: ",
21542            stringify!(SteamNetAuthenticationStatus_t),
21543            "::",
21544            stringify!(m_debugMsg)
21545        )
21546    );
21547}
21548#[repr(C)]
21549pub struct ISteamNetworkingUtils__bindgen_vtable(::std::os::raw::c_void);
21550#[doc = " Misc networking utilities for checking the local networking environment\n and estimating pings."]
21551#[repr(C)]
21552#[derive(Debug)]
21553pub struct ISteamNetworkingUtils {
21554    pub vtable_: *const ISteamNetworkingUtils__bindgen_vtable,
21555}
21556#[test]
21557fn bindgen_test_layout_ISteamNetworkingUtils() {
21558    assert_eq!(
21559        ::std::mem::size_of::<ISteamNetworkingUtils>(),
21560        8usize,
21561        concat!("Size of: ", stringify!(ISteamNetworkingUtils))
21562    );
21563    assert_eq!(
21564        ::std::mem::align_of::<ISteamNetworkingUtils>(),
21565        8usize,
21566        concat!("Alignment of ", stringify!(ISteamNetworkingUtils))
21567    );
21568}
21569extern "C" {
21570    #[link_name = "\u{1}_ZN21ISteamNetworkingUtilsD1Ev"]
21571    pub fn ISteamNetworkingUtils_ISteamNetworkingUtils_destructor(this: *mut ISteamNetworkingUtils);
21572}
21573impl ISteamNetworkingUtils {
21574    #[inline]
21575    pub unsafe fn destruct(&mut self) {
21576        ISteamNetworkingUtils_ISteamNetworkingUtils_destructor(self)
21577    }
21578}
21579#[doc = " A struct used to describe our readiness to use the relay network.\n To do this we first need to fetch the network configuration,\n which describes what POPs are available."]
21580#[repr(C)]
21581#[derive(Debug, Copy, Clone)]
21582pub struct SteamRelayNetworkStatus_t {
21583    #[doc = " Summary status.  When this is \"current\", initialization has\n completed.  Anything else means you are not ready yet, or\n there is a significant problem."]
21584    pub m_eAvail: ESteamNetworkingAvailability,
21585    #[doc = " Nonzero if latency measurement is in progress (or pending,\n awaiting a prerequisite)."]
21586    pub m_bPingMeasurementInProgress: ::std::os::raw::c_int,
21587    #[doc = " Status obtaining the network config.  This is a prerequisite\n for relay network access.\n\n Failure to obtain the network config almost always indicates\n a problem with the local internet connection."]
21588    pub m_eAvailNetworkConfig: ESteamNetworkingAvailability,
21589    #[doc = " Current ability to communicate with ANY relay.  Note that\n the complete failure to communicate with any relays almost\n always indicates a problem with the local Internet connection.\n (However, just because you can reach a single relay doesn't\n mean that the local connection is in perfect health.)"]
21590    pub m_eAvailAnyRelay: ESteamNetworkingAvailability,
21591    #[doc = " Non-localized English language status.  For diagnostic/debugging\n purposes only."]
21592    pub m_debugMsg: [::std::os::raw::c_char; 256usize],
21593}
21594pub const SteamRelayNetworkStatus_t_k_iCallback: SteamRelayNetworkStatus_t__bindgen_ty_1 =
21595    SteamRelayNetworkStatus_t__bindgen_ty_1::k_iCallback;
21596#[repr(u32)]
21597#[non_exhaustive]
21598#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
21599pub enum SteamRelayNetworkStatus_t__bindgen_ty_1 {
21600    k_iCallback = 1281,
21601}
21602#[test]
21603fn bindgen_test_layout_SteamRelayNetworkStatus_t() {
21604    const UNINIT: ::std::mem::MaybeUninit<SteamRelayNetworkStatus_t> =
21605        ::std::mem::MaybeUninit::uninit();
21606    let ptr = UNINIT.as_ptr();
21607    assert_eq!(
21608        ::std::mem::size_of::<SteamRelayNetworkStatus_t>(),
21609        272usize,
21610        concat!("Size of: ", stringify!(SteamRelayNetworkStatus_t))
21611    );
21612    assert_eq!(
21613        ::std::mem::align_of::<SteamRelayNetworkStatus_t>(),
21614        4usize,
21615        concat!("Alignment of ", stringify!(SteamRelayNetworkStatus_t))
21616    );
21617    assert_eq!(
21618        unsafe { ::std::ptr::addr_of!((*ptr).m_eAvail) as usize - ptr as usize },
21619        0usize,
21620        concat!(
21621            "Offset of field: ",
21622            stringify!(SteamRelayNetworkStatus_t),
21623            "::",
21624            stringify!(m_eAvail)
21625        )
21626    );
21627    assert_eq!(
21628        unsafe {
21629            ::std::ptr::addr_of!((*ptr).m_bPingMeasurementInProgress) as usize - ptr as usize
21630        },
21631        4usize,
21632        concat!(
21633            "Offset of field: ",
21634            stringify!(SteamRelayNetworkStatus_t),
21635            "::",
21636            stringify!(m_bPingMeasurementInProgress)
21637        )
21638    );
21639    assert_eq!(
21640        unsafe { ::std::ptr::addr_of!((*ptr).m_eAvailNetworkConfig) as usize - ptr as usize },
21641        8usize,
21642        concat!(
21643            "Offset of field: ",
21644            stringify!(SteamRelayNetworkStatus_t),
21645            "::",
21646            stringify!(m_eAvailNetworkConfig)
21647        )
21648    );
21649    assert_eq!(
21650        unsafe { ::std::ptr::addr_of!((*ptr).m_eAvailAnyRelay) as usize - ptr as usize },
21651        12usize,
21652        concat!(
21653            "Offset of field: ",
21654            stringify!(SteamRelayNetworkStatus_t),
21655            "::",
21656            stringify!(m_eAvailAnyRelay)
21657        )
21658    );
21659    assert_eq!(
21660        unsafe { ::std::ptr::addr_of!((*ptr).m_debugMsg) as usize - ptr as usize },
21661        16usize,
21662        concat!(
21663            "Offset of field: ",
21664            stringify!(SteamRelayNetworkStatus_t),
21665            "::",
21666            stringify!(m_debugMsg)
21667        )
21668    );
21669}
21670#[doc = " Utility class for printing a SteamNetworkingIdentity.\n E.g. printf( \"Identity is '%s'\\n\", SteamNetworkingIdentityRender( identity ).c_str() );"]
21671#[repr(C)]
21672#[derive(Debug, Copy, Clone)]
21673pub struct SteamNetworkingIdentityRender {
21674    pub buf: [::std::os::raw::c_char; 128usize],
21675}
21676#[test]
21677fn bindgen_test_layout_SteamNetworkingIdentityRender() {
21678    const UNINIT: ::std::mem::MaybeUninit<SteamNetworkingIdentityRender> =
21679        ::std::mem::MaybeUninit::uninit();
21680    let ptr = UNINIT.as_ptr();
21681    assert_eq!(
21682        ::std::mem::size_of::<SteamNetworkingIdentityRender>(),
21683        128usize,
21684        concat!("Size of: ", stringify!(SteamNetworkingIdentityRender))
21685    );
21686    assert_eq!(
21687        ::std::mem::align_of::<SteamNetworkingIdentityRender>(),
21688        1usize,
21689        concat!("Alignment of ", stringify!(SteamNetworkingIdentityRender))
21690    );
21691    assert_eq!(
21692        unsafe { ::std::ptr::addr_of!((*ptr).buf) as usize - ptr as usize },
21693        0usize,
21694        concat!(
21695            "Offset of field: ",
21696            stringify!(SteamNetworkingIdentityRender),
21697            "::",
21698            stringify!(buf)
21699        )
21700    );
21701}
21702#[doc = " Utility class for printing a SteamNetworkingIPAddrRender."]
21703#[repr(C)]
21704#[derive(Debug, Copy, Clone)]
21705pub struct SteamNetworkingIPAddrRender {
21706    pub buf: [::std::os::raw::c_char; 48usize],
21707}
21708#[test]
21709fn bindgen_test_layout_SteamNetworkingIPAddrRender() {
21710    const UNINIT: ::std::mem::MaybeUninit<SteamNetworkingIPAddrRender> =
21711        ::std::mem::MaybeUninit::uninit();
21712    let ptr = UNINIT.as_ptr();
21713    assert_eq!(
21714        ::std::mem::size_of::<SteamNetworkingIPAddrRender>(),
21715        48usize,
21716        concat!("Size of: ", stringify!(SteamNetworkingIPAddrRender))
21717    );
21718    assert_eq!(
21719        ::std::mem::align_of::<SteamNetworkingIPAddrRender>(),
21720        1usize,
21721        concat!("Alignment of ", stringify!(SteamNetworkingIPAddrRender))
21722    );
21723    assert_eq!(
21724        unsafe { ::std::ptr::addr_of!((*ptr).buf) as usize - ptr as usize },
21725        0usize,
21726        concat!(
21727            "Offset of field: ",
21728            stringify!(SteamNetworkingIPAddrRender),
21729            "::",
21730            stringify!(buf)
21731        )
21732    );
21733}
21734#[repr(u32)]
21735#[non_exhaustive]
21736#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
21737pub enum ESteamAPIInitResult {
21738    k_ESteamAPIInitResult_OK = 0,
21739    k_ESteamAPIInitResult_FailedGeneric = 1,
21740    k_ESteamAPIInitResult_NoSteamClient = 2,
21741    k_ESteamAPIInitResult_VersionMismatch = 3,
21742}
21743extern "C" {
21744    pub fn SteamAPI_Shutdown();
21745}
21746extern "C" {
21747    pub fn SteamAPI_RestartAppIfNecessary(unOwnAppID: uint32) -> bool;
21748}
21749extern "C" {
21750    pub fn SteamAPI_ReleaseCurrentThreadMemory();
21751}
21752extern "C" {
21753    pub fn SteamAPI_WriteMiniDump(
21754        uStructuredExceptionCode: uint32,
21755        pvExceptionInfo: *mut ::std::os::raw::c_void,
21756        uBuildID: uint32,
21757    );
21758}
21759extern "C" {
21760    pub fn SteamAPI_SetMiniDumpComment(pchMsg: *const ::std::os::raw::c_char);
21761}
21762extern "C" {
21763    pub fn SteamAPI_IsSteamRunning() -> bool;
21764}
21765extern "C" {
21766    pub fn SteamAPI_GetSteamInstallPath() -> *const ::std::os::raw::c_char;
21767}
21768extern "C" {
21769    pub fn SteamAPI_SetTryCatchCallbacks(bTryCatchCallbacks: bool);
21770}
21771extern "C" {
21772    #[doc = " Inform the API that you wish to use manual event dispatch.  This must be called after SteamAPI_Init, but before\n you use any of the other manual dispatch functions below."]
21773    pub fn SteamAPI_ManualDispatch_Init();
21774}
21775extern "C" {
21776    #[doc = " Perform certain periodic actions that need to be performed."]
21777    pub fn SteamAPI_ManualDispatch_RunFrame(hSteamPipe: HSteamPipe);
21778}
21779extern "C" {
21780    #[doc = " Fetch the next pending callback on the given pipe, if any.  If a callback is available, true is returned\n and the structure is populated.  In this case, you MUST call SteamAPI_ManualDispatch_FreeLastCallback\n (after dispatching the callback) before calling SteamAPI_ManualDispatch_GetNextCallback again."]
21781    pub fn SteamAPI_ManualDispatch_GetNextCallback(
21782        hSteamPipe: HSteamPipe,
21783        pCallbackMsg: *mut CallbackMsg_t,
21784    ) -> bool;
21785}
21786extern "C" {
21787    #[doc = " You must call this after dispatching the callback, if SteamAPI_ManualDispatch_GetNextCallback returns true."]
21788    pub fn SteamAPI_ManualDispatch_FreeLastCallback(hSteamPipe: HSteamPipe);
21789}
21790extern "C" {
21791    #[doc = " Return the call result for the specified call on the specified pipe.  You really should\n only call this in a handler for SteamAPICallCompleted_t callback."]
21792    pub fn SteamAPI_ManualDispatch_GetAPICallResult(
21793        hSteamPipe: HSteamPipe,
21794        hSteamAPICall: SteamAPICall_t,
21795        pCallback: *mut ::std::os::raw::c_void,
21796        cubCallback: ::std::os::raw::c_int,
21797        iCallbackExpected: ::std::os::raw::c_int,
21798        pbFailed: *mut bool,
21799    ) -> bool;
21800}
21801extern "C" {
21802    pub fn SteamInternal_SteamAPI_Init(
21803        pszInternalCheckInterfaceVersions: *const ::std::os::raw::c_char,
21804        pOutErrMsg: *mut SteamErrMsg,
21805    ) -> ESteamAPIInitResult;
21806}
21807#[repr(C)]
21808pub struct ISteamGameServer__bindgen_vtable(::std::os::raw::c_void);
21809#[repr(C)]
21810#[derive(Debug, Copy, Clone)]
21811pub struct ISteamGameServer {
21812    pub vtable_: *const ISteamGameServer__bindgen_vtable,
21813}
21814#[test]
21815fn bindgen_test_layout_ISteamGameServer() {
21816    assert_eq!(
21817        ::std::mem::size_of::<ISteamGameServer>(),
21818        8usize,
21819        concat!("Size of: ", stringify!(ISteamGameServer))
21820    );
21821    assert_eq!(
21822        ::std::mem::align_of::<ISteamGameServer>(),
21823        8usize,
21824        concat!("Alignment of ", stringify!(ISteamGameServer))
21825    );
21826}
21827#[repr(C)]
21828#[derive(Copy, Clone)]
21829pub struct GSClientApprove_t {
21830    pub m_SteamID: CSteamID,
21831    pub m_OwnerSteamID: CSteamID,
21832}
21833pub const GSClientApprove_t_k_iCallback: GSClientApprove_t__bindgen_ty_1 =
21834    GSClientApprove_t__bindgen_ty_1::k_iCallback;
21835#[repr(u32)]
21836#[non_exhaustive]
21837#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
21838pub enum GSClientApprove_t__bindgen_ty_1 {
21839    k_iCallback = 201,
21840}
21841#[test]
21842fn bindgen_test_layout_GSClientApprove_t() {
21843    const UNINIT: ::std::mem::MaybeUninit<GSClientApprove_t> = ::std::mem::MaybeUninit::uninit();
21844    let ptr = UNINIT.as_ptr();
21845    assert_eq!(
21846        ::std::mem::size_of::<GSClientApprove_t>(),
21847        16usize,
21848        concat!("Size of: ", stringify!(GSClientApprove_t))
21849    );
21850    assert_eq!(
21851        ::std::mem::align_of::<GSClientApprove_t>(),
21852        1usize,
21853        concat!("Alignment of ", stringify!(GSClientApprove_t))
21854    );
21855    assert_eq!(
21856        unsafe { ::std::ptr::addr_of!((*ptr).m_SteamID) as usize - ptr as usize },
21857        0usize,
21858        concat!(
21859            "Offset of field: ",
21860            stringify!(GSClientApprove_t),
21861            "::",
21862            stringify!(m_SteamID)
21863        )
21864    );
21865    assert_eq!(
21866        unsafe { ::std::ptr::addr_of!((*ptr).m_OwnerSteamID) as usize - ptr as usize },
21867        8usize,
21868        concat!(
21869            "Offset of field: ",
21870            stringify!(GSClientApprove_t),
21871            "::",
21872            stringify!(m_OwnerSteamID)
21873        )
21874    );
21875}
21876#[repr(C)]
21877#[derive(Copy, Clone)]
21878pub struct GSClientDeny_t {
21879    pub m_SteamID: CSteamID,
21880    pub m_eDenyReason: EDenyReason,
21881    pub m_rgchOptionalText: [::std::os::raw::c_char; 128usize],
21882}
21883pub const GSClientDeny_t_k_iCallback: GSClientDeny_t__bindgen_ty_1 =
21884    GSClientDeny_t__bindgen_ty_1::k_iCallback;
21885#[repr(u32)]
21886#[non_exhaustive]
21887#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
21888pub enum GSClientDeny_t__bindgen_ty_1 {
21889    k_iCallback = 202,
21890}
21891#[test]
21892fn bindgen_test_layout_GSClientDeny_t() {
21893    const UNINIT: ::std::mem::MaybeUninit<GSClientDeny_t> = ::std::mem::MaybeUninit::uninit();
21894    let ptr = UNINIT.as_ptr();
21895    assert_eq!(
21896        ::std::mem::size_of::<GSClientDeny_t>(),
21897        140usize,
21898        concat!("Size of: ", stringify!(GSClientDeny_t))
21899    );
21900    assert_eq!(
21901        ::std::mem::align_of::<GSClientDeny_t>(),
21902        4usize,
21903        concat!("Alignment of ", stringify!(GSClientDeny_t))
21904    );
21905    assert_eq!(
21906        unsafe { ::std::ptr::addr_of!((*ptr).m_SteamID) as usize - ptr as usize },
21907        0usize,
21908        concat!(
21909            "Offset of field: ",
21910            stringify!(GSClientDeny_t),
21911            "::",
21912            stringify!(m_SteamID)
21913        )
21914    );
21915    assert_eq!(
21916        unsafe { ::std::ptr::addr_of!((*ptr).m_eDenyReason) as usize - ptr as usize },
21917        8usize,
21918        concat!(
21919            "Offset of field: ",
21920            stringify!(GSClientDeny_t),
21921            "::",
21922            stringify!(m_eDenyReason)
21923        )
21924    );
21925    assert_eq!(
21926        unsafe { ::std::ptr::addr_of!((*ptr).m_rgchOptionalText) as usize - ptr as usize },
21927        12usize,
21928        concat!(
21929            "Offset of field: ",
21930            stringify!(GSClientDeny_t),
21931            "::",
21932            stringify!(m_rgchOptionalText)
21933        )
21934    );
21935}
21936#[repr(C)]
21937#[derive(Copy, Clone)]
21938pub struct GSClientKick_t {
21939    pub m_SteamID: CSteamID,
21940    pub m_eDenyReason: EDenyReason,
21941}
21942pub const GSClientKick_t_k_iCallback: GSClientKick_t__bindgen_ty_1 =
21943    GSClientKick_t__bindgen_ty_1::k_iCallback;
21944#[repr(u32)]
21945#[non_exhaustive]
21946#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
21947pub enum GSClientKick_t__bindgen_ty_1 {
21948    k_iCallback = 203,
21949}
21950#[test]
21951fn bindgen_test_layout_GSClientKick_t() {
21952    const UNINIT: ::std::mem::MaybeUninit<GSClientKick_t> = ::std::mem::MaybeUninit::uninit();
21953    let ptr = UNINIT.as_ptr();
21954    assert_eq!(
21955        ::std::mem::size_of::<GSClientKick_t>(),
21956        12usize,
21957        concat!("Size of: ", stringify!(GSClientKick_t))
21958    );
21959    assert_eq!(
21960        ::std::mem::align_of::<GSClientKick_t>(),
21961        4usize,
21962        concat!("Alignment of ", stringify!(GSClientKick_t))
21963    );
21964    assert_eq!(
21965        unsafe { ::std::ptr::addr_of!((*ptr).m_SteamID) as usize - ptr as usize },
21966        0usize,
21967        concat!(
21968            "Offset of field: ",
21969            stringify!(GSClientKick_t),
21970            "::",
21971            stringify!(m_SteamID)
21972        )
21973    );
21974    assert_eq!(
21975        unsafe { ::std::ptr::addr_of!((*ptr).m_eDenyReason) as usize - ptr as usize },
21976        8usize,
21977        concat!(
21978            "Offset of field: ",
21979            stringify!(GSClientKick_t),
21980            "::",
21981            stringify!(m_eDenyReason)
21982        )
21983    );
21984}
21985#[repr(C, packed(4))]
21986#[derive(Debug, Copy, Clone)]
21987pub struct GSClientAchievementStatus_t {
21988    pub m_SteamID: uint64,
21989    pub m_pchAchievement: [::std::os::raw::c_char; 128usize],
21990    pub m_bUnlocked: bool,
21991}
21992pub const GSClientAchievementStatus_t_k_iCallback: GSClientAchievementStatus_t__bindgen_ty_1 =
21993    GSClientAchievementStatus_t__bindgen_ty_1::k_iCallback;
21994#[repr(u32)]
21995#[non_exhaustive]
21996#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
21997pub enum GSClientAchievementStatus_t__bindgen_ty_1 {
21998    k_iCallback = 206,
21999}
22000#[test]
22001fn bindgen_test_layout_GSClientAchievementStatus_t() {
22002    const UNINIT: ::std::mem::MaybeUninit<GSClientAchievementStatus_t> =
22003        ::std::mem::MaybeUninit::uninit();
22004    let ptr = UNINIT.as_ptr();
22005    assert_eq!(
22006        ::std::mem::size_of::<GSClientAchievementStatus_t>(),
22007        140usize,
22008        concat!("Size of: ", stringify!(GSClientAchievementStatus_t))
22009    );
22010    assert_eq!(
22011        ::std::mem::align_of::<GSClientAchievementStatus_t>(),
22012        4usize,
22013        concat!("Alignment of ", stringify!(GSClientAchievementStatus_t))
22014    );
22015    assert_eq!(
22016        unsafe { ::std::ptr::addr_of!((*ptr).m_SteamID) as usize - ptr as usize },
22017        0usize,
22018        concat!(
22019            "Offset of field: ",
22020            stringify!(GSClientAchievementStatus_t),
22021            "::",
22022            stringify!(m_SteamID)
22023        )
22024    );
22025    assert_eq!(
22026        unsafe { ::std::ptr::addr_of!((*ptr).m_pchAchievement) as usize - ptr as usize },
22027        8usize,
22028        concat!(
22029            "Offset of field: ",
22030            stringify!(GSClientAchievementStatus_t),
22031            "::",
22032            stringify!(m_pchAchievement)
22033        )
22034    );
22035    assert_eq!(
22036        unsafe { ::std::ptr::addr_of!((*ptr).m_bUnlocked) as usize - ptr as usize },
22037        136usize,
22038        concat!(
22039            "Offset of field: ",
22040            stringify!(GSClientAchievementStatus_t),
22041            "::",
22042            stringify!(m_bUnlocked)
22043        )
22044    );
22045}
22046#[repr(C)]
22047#[derive(Debug, Copy, Clone)]
22048pub struct GSPolicyResponse_t {
22049    pub m_bSecure: uint8,
22050}
22051pub const GSPolicyResponse_t_k_iCallback: GSPolicyResponse_t__bindgen_ty_1 =
22052    GSPolicyResponse_t__bindgen_ty_1::k_iCallback;
22053#[repr(u32)]
22054#[non_exhaustive]
22055#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
22056pub enum GSPolicyResponse_t__bindgen_ty_1 {
22057    k_iCallback = 115,
22058}
22059#[test]
22060fn bindgen_test_layout_GSPolicyResponse_t() {
22061    const UNINIT: ::std::mem::MaybeUninit<GSPolicyResponse_t> = ::std::mem::MaybeUninit::uninit();
22062    let ptr = UNINIT.as_ptr();
22063    assert_eq!(
22064        ::std::mem::size_of::<GSPolicyResponse_t>(),
22065        1usize,
22066        concat!("Size of: ", stringify!(GSPolicyResponse_t))
22067    );
22068    assert_eq!(
22069        ::std::mem::align_of::<GSPolicyResponse_t>(),
22070        1usize,
22071        concat!("Alignment of ", stringify!(GSPolicyResponse_t))
22072    );
22073    assert_eq!(
22074        unsafe { ::std::ptr::addr_of!((*ptr).m_bSecure) as usize - ptr as usize },
22075        0usize,
22076        concat!(
22077            "Offset of field: ",
22078            stringify!(GSPolicyResponse_t),
22079            "::",
22080            stringify!(m_bSecure)
22081        )
22082    );
22083}
22084#[repr(C)]
22085#[derive(Debug, Copy, Clone)]
22086pub struct GSGameplayStats_t {
22087    pub m_eResult: EResult,
22088    pub m_nRank: int32,
22089    pub m_unTotalConnects: uint32,
22090    pub m_unTotalMinutesPlayed: uint32,
22091}
22092pub const GSGameplayStats_t_k_iCallback: GSGameplayStats_t__bindgen_ty_1 =
22093    GSGameplayStats_t__bindgen_ty_1::k_iCallback;
22094#[repr(u32)]
22095#[non_exhaustive]
22096#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
22097pub enum GSGameplayStats_t__bindgen_ty_1 {
22098    k_iCallback = 207,
22099}
22100#[test]
22101fn bindgen_test_layout_GSGameplayStats_t() {
22102    const UNINIT: ::std::mem::MaybeUninit<GSGameplayStats_t> = ::std::mem::MaybeUninit::uninit();
22103    let ptr = UNINIT.as_ptr();
22104    assert_eq!(
22105        ::std::mem::size_of::<GSGameplayStats_t>(),
22106        16usize,
22107        concat!("Size of: ", stringify!(GSGameplayStats_t))
22108    );
22109    assert_eq!(
22110        ::std::mem::align_of::<GSGameplayStats_t>(),
22111        4usize,
22112        concat!("Alignment of ", stringify!(GSGameplayStats_t))
22113    );
22114    assert_eq!(
22115        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
22116        0usize,
22117        concat!(
22118            "Offset of field: ",
22119            stringify!(GSGameplayStats_t),
22120            "::",
22121            stringify!(m_eResult)
22122        )
22123    );
22124    assert_eq!(
22125        unsafe { ::std::ptr::addr_of!((*ptr).m_nRank) as usize - ptr as usize },
22126        4usize,
22127        concat!(
22128            "Offset of field: ",
22129            stringify!(GSGameplayStats_t),
22130            "::",
22131            stringify!(m_nRank)
22132        )
22133    );
22134    assert_eq!(
22135        unsafe { ::std::ptr::addr_of!((*ptr).m_unTotalConnects) as usize - ptr as usize },
22136        8usize,
22137        concat!(
22138            "Offset of field: ",
22139            stringify!(GSGameplayStats_t),
22140            "::",
22141            stringify!(m_unTotalConnects)
22142        )
22143    );
22144    assert_eq!(
22145        unsafe { ::std::ptr::addr_of!((*ptr).m_unTotalMinutesPlayed) as usize - ptr as usize },
22146        12usize,
22147        concat!(
22148            "Offset of field: ",
22149            stringify!(GSGameplayStats_t),
22150            "::",
22151            stringify!(m_unTotalMinutesPlayed)
22152        )
22153    );
22154}
22155#[repr(C)]
22156#[derive(Copy, Clone)]
22157pub struct GSClientGroupStatus_t {
22158    pub m_SteamIDUser: CSteamID,
22159    pub m_SteamIDGroup: CSteamID,
22160    pub m_bMember: bool,
22161    pub m_bOfficer: bool,
22162}
22163pub const GSClientGroupStatus_t_k_iCallback: GSClientGroupStatus_t__bindgen_ty_1 =
22164    GSClientGroupStatus_t__bindgen_ty_1::k_iCallback;
22165#[repr(u32)]
22166#[non_exhaustive]
22167#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
22168pub enum GSClientGroupStatus_t__bindgen_ty_1 {
22169    k_iCallback = 208,
22170}
22171#[test]
22172fn bindgen_test_layout_GSClientGroupStatus_t() {
22173    const UNINIT: ::std::mem::MaybeUninit<GSClientGroupStatus_t> =
22174        ::std::mem::MaybeUninit::uninit();
22175    let ptr = UNINIT.as_ptr();
22176    assert_eq!(
22177        ::std::mem::size_of::<GSClientGroupStatus_t>(),
22178        18usize,
22179        concat!("Size of: ", stringify!(GSClientGroupStatus_t))
22180    );
22181    assert_eq!(
22182        ::std::mem::align_of::<GSClientGroupStatus_t>(),
22183        1usize,
22184        concat!("Alignment of ", stringify!(GSClientGroupStatus_t))
22185    );
22186    assert_eq!(
22187        unsafe { ::std::ptr::addr_of!((*ptr).m_SteamIDUser) as usize - ptr as usize },
22188        0usize,
22189        concat!(
22190            "Offset of field: ",
22191            stringify!(GSClientGroupStatus_t),
22192            "::",
22193            stringify!(m_SteamIDUser)
22194        )
22195    );
22196    assert_eq!(
22197        unsafe { ::std::ptr::addr_of!((*ptr).m_SteamIDGroup) as usize - ptr as usize },
22198        8usize,
22199        concat!(
22200            "Offset of field: ",
22201            stringify!(GSClientGroupStatus_t),
22202            "::",
22203            stringify!(m_SteamIDGroup)
22204        )
22205    );
22206    assert_eq!(
22207        unsafe { ::std::ptr::addr_of!((*ptr).m_bMember) as usize - ptr as usize },
22208        16usize,
22209        concat!(
22210            "Offset of field: ",
22211            stringify!(GSClientGroupStatus_t),
22212            "::",
22213            stringify!(m_bMember)
22214        )
22215    );
22216    assert_eq!(
22217        unsafe { ::std::ptr::addr_of!((*ptr).m_bOfficer) as usize - ptr as usize },
22218        17usize,
22219        concat!(
22220            "Offset of field: ",
22221            stringify!(GSClientGroupStatus_t),
22222            "::",
22223            stringify!(m_bOfficer)
22224        )
22225    );
22226}
22227#[repr(C, packed(4))]
22228#[derive(Debug, Copy, Clone)]
22229pub struct GSReputation_t {
22230    pub m_eResult: EResult,
22231    pub m_unReputationScore: uint32,
22232    pub m_bBanned: bool,
22233    pub m_unBannedIP: uint32,
22234    pub m_usBannedPort: uint16,
22235    pub m_ulBannedGameID: uint64,
22236    pub m_unBanExpires: uint32,
22237}
22238pub const GSReputation_t_k_iCallback: GSReputation_t__bindgen_ty_1 =
22239    GSReputation_t__bindgen_ty_1::k_iCallback;
22240#[repr(u32)]
22241#[non_exhaustive]
22242#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
22243pub enum GSReputation_t__bindgen_ty_1 {
22244    k_iCallback = 209,
22245}
22246#[test]
22247fn bindgen_test_layout_GSReputation_t() {
22248    const UNINIT: ::std::mem::MaybeUninit<GSReputation_t> = ::std::mem::MaybeUninit::uninit();
22249    let ptr = UNINIT.as_ptr();
22250    assert_eq!(
22251        ::std::mem::size_of::<GSReputation_t>(),
22252        32usize,
22253        concat!("Size of: ", stringify!(GSReputation_t))
22254    );
22255    assert_eq!(
22256        ::std::mem::align_of::<GSReputation_t>(),
22257        4usize,
22258        concat!("Alignment of ", stringify!(GSReputation_t))
22259    );
22260    assert_eq!(
22261        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
22262        0usize,
22263        concat!(
22264            "Offset of field: ",
22265            stringify!(GSReputation_t),
22266            "::",
22267            stringify!(m_eResult)
22268        )
22269    );
22270    assert_eq!(
22271        unsafe { ::std::ptr::addr_of!((*ptr).m_unReputationScore) as usize - ptr as usize },
22272        4usize,
22273        concat!(
22274            "Offset of field: ",
22275            stringify!(GSReputation_t),
22276            "::",
22277            stringify!(m_unReputationScore)
22278        )
22279    );
22280    assert_eq!(
22281        unsafe { ::std::ptr::addr_of!((*ptr).m_bBanned) as usize - ptr as usize },
22282        8usize,
22283        concat!(
22284            "Offset of field: ",
22285            stringify!(GSReputation_t),
22286            "::",
22287            stringify!(m_bBanned)
22288        )
22289    );
22290    assert_eq!(
22291        unsafe { ::std::ptr::addr_of!((*ptr).m_unBannedIP) as usize - ptr as usize },
22292        12usize,
22293        concat!(
22294            "Offset of field: ",
22295            stringify!(GSReputation_t),
22296            "::",
22297            stringify!(m_unBannedIP)
22298        )
22299    );
22300    assert_eq!(
22301        unsafe { ::std::ptr::addr_of!((*ptr).m_usBannedPort) as usize - ptr as usize },
22302        16usize,
22303        concat!(
22304            "Offset of field: ",
22305            stringify!(GSReputation_t),
22306            "::",
22307            stringify!(m_usBannedPort)
22308        )
22309    );
22310    assert_eq!(
22311        unsafe { ::std::ptr::addr_of!((*ptr).m_ulBannedGameID) as usize - ptr as usize },
22312        20usize,
22313        concat!(
22314            "Offset of field: ",
22315            stringify!(GSReputation_t),
22316            "::",
22317            stringify!(m_ulBannedGameID)
22318        )
22319    );
22320    assert_eq!(
22321        unsafe { ::std::ptr::addr_of!((*ptr).m_unBanExpires) as usize - ptr as usize },
22322        28usize,
22323        concat!(
22324            "Offset of field: ",
22325            stringify!(GSReputation_t),
22326            "::",
22327            stringify!(m_unBanExpires)
22328        )
22329    );
22330}
22331#[repr(C)]
22332#[derive(Debug, Copy, Clone)]
22333pub struct AssociateWithClanResult_t {
22334    pub m_eResult: EResult,
22335}
22336pub const AssociateWithClanResult_t_k_iCallback: AssociateWithClanResult_t__bindgen_ty_1 =
22337    AssociateWithClanResult_t__bindgen_ty_1::k_iCallback;
22338#[repr(u32)]
22339#[non_exhaustive]
22340#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
22341pub enum AssociateWithClanResult_t__bindgen_ty_1 {
22342    k_iCallback = 210,
22343}
22344#[test]
22345fn bindgen_test_layout_AssociateWithClanResult_t() {
22346    const UNINIT: ::std::mem::MaybeUninit<AssociateWithClanResult_t> =
22347        ::std::mem::MaybeUninit::uninit();
22348    let ptr = UNINIT.as_ptr();
22349    assert_eq!(
22350        ::std::mem::size_of::<AssociateWithClanResult_t>(),
22351        4usize,
22352        concat!("Size of: ", stringify!(AssociateWithClanResult_t))
22353    );
22354    assert_eq!(
22355        ::std::mem::align_of::<AssociateWithClanResult_t>(),
22356        4usize,
22357        concat!("Alignment of ", stringify!(AssociateWithClanResult_t))
22358    );
22359    assert_eq!(
22360        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
22361        0usize,
22362        concat!(
22363            "Offset of field: ",
22364            stringify!(AssociateWithClanResult_t),
22365            "::",
22366            stringify!(m_eResult)
22367        )
22368    );
22369}
22370#[repr(C)]
22371#[derive(Copy, Clone)]
22372pub struct ComputeNewPlayerCompatibilityResult_t {
22373    pub m_eResult: EResult,
22374    pub m_cPlayersThatDontLikeCandidate: ::std::os::raw::c_int,
22375    pub m_cPlayersThatCandidateDoesntLike: ::std::os::raw::c_int,
22376    pub m_cClanPlayersThatDontLikeCandidate: ::std::os::raw::c_int,
22377    pub m_SteamIDCandidate: CSteamID,
22378}
22379pub const ComputeNewPlayerCompatibilityResult_t_k_iCallback:
22380    ComputeNewPlayerCompatibilityResult_t__bindgen_ty_1 =
22381    ComputeNewPlayerCompatibilityResult_t__bindgen_ty_1::k_iCallback;
22382#[repr(u32)]
22383#[non_exhaustive]
22384#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
22385pub enum ComputeNewPlayerCompatibilityResult_t__bindgen_ty_1 {
22386    k_iCallback = 211,
22387}
22388#[test]
22389fn bindgen_test_layout_ComputeNewPlayerCompatibilityResult_t() {
22390    const UNINIT: ::std::mem::MaybeUninit<ComputeNewPlayerCompatibilityResult_t> =
22391        ::std::mem::MaybeUninit::uninit();
22392    let ptr = UNINIT.as_ptr();
22393    assert_eq!(
22394        ::std::mem::size_of::<ComputeNewPlayerCompatibilityResult_t>(),
22395        24usize,
22396        concat!(
22397            "Size of: ",
22398            stringify!(ComputeNewPlayerCompatibilityResult_t)
22399        )
22400    );
22401    assert_eq!(
22402        ::std::mem::align_of::<ComputeNewPlayerCompatibilityResult_t>(),
22403        4usize,
22404        concat!(
22405            "Alignment of ",
22406            stringify!(ComputeNewPlayerCompatibilityResult_t)
22407        )
22408    );
22409    assert_eq!(
22410        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
22411        0usize,
22412        concat!(
22413            "Offset of field: ",
22414            stringify!(ComputeNewPlayerCompatibilityResult_t),
22415            "::",
22416            stringify!(m_eResult)
22417        )
22418    );
22419    assert_eq!(
22420        unsafe {
22421            ::std::ptr::addr_of!((*ptr).m_cPlayersThatDontLikeCandidate) as usize - ptr as usize
22422        },
22423        4usize,
22424        concat!(
22425            "Offset of field: ",
22426            stringify!(ComputeNewPlayerCompatibilityResult_t),
22427            "::",
22428            stringify!(m_cPlayersThatDontLikeCandidate)
22429        )
22430    );
22431    assert_eq!(
22432        unsafe {
22433            ::std::ptr::addr_of!((*ptr).m_cPlayersThatCandidateDoesntLike) as usize - ptr as usize
22434        },
22435        8usize,
22436        concat!(
22437            "Offset of field: ",
22438            stringify!(ComputeNewPlayerCompatibilityResult_t),
22439            "::",
22440            stringify!(m_cPlayersThatCandidateDoesntLike)
22441        )
22442    );
22443    assert_eq!(
22444        unsafe {
22445            ::std::ptr::addr_of!((*ptr).m_cClanPlayersThatDontLikeCandidate) as usize - ptr as usize
22446        },
22447        12usize,
22448        concat!(
22449            "Offset of field: ",
22450            stringify!(ComputeNewPlayerCompatibilityResult_t),
22451            "::",
22452            stringify!(m_cClanPlayersThatDontLikeCandidate)
22453        )
22454    );
22455    assert_eq!(
22456        unsafe { ::std::ptr::addr_of!((*ptr).m_SteamIDCandidate) as usize - ptr as usize },
22457        16usize,
22458        concat!(
22459            "Offset of field: ",
22460            stringify!(ComputeNewPlayerCompatibilityResult_t),
22461            "::",
22462            stringify!(m_SteamIDCandidate)
22463        )
22464    );
22465}
22466#[repr(C)]
22467pub struct ISteamGameServerStats__bindgen_vtable(::std::os::raw::c_void);
22468#[repr(C)]
22469#[derive(Debug, Copy, Clone)]
22470pub struct ISteamGameServerStats {
22471    pub vtable_: *const ISteamGameServerStats__bindgen_vtable,
22472}
22473#[test]
22474fn bindgen_test_layout_ISteamGameServerStats() {
22475    assert_eq!(
22476        ::std::mem::size_of::<ISteamGameServerStats>(),
22477        8usize,
22478        concat!("Size of: ", stringify!(ISteamGameServerStats))
22479    );
22480    assert_eq!(
22481        ::std::mem::align_of::<ISteamGameServerStats>(),
22482        8usize,
22483        concat!("Alignment of ", stringify!(ISteamGameServerStats))
22484    );
22485}
22486#[repr(C)]
22487#[derive(Copy, Clone)]
22488pub struct GSStatsReceived_t {
22489    pub m_eResult: EResult,
22490    pub m_steamIDUser: CSteamID,
22491}
22492pub const GSStatsReceived_t_k_iCallback: GSStatsReceived_t__bindgen_ty_1 =
22493    GSStatsReceived_t__bindgen_ty_1::k_iCallback;
22494#[repr(u32)]
22495#[non_exhaustive]
22496#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
22497pub enum GSStatsReceived_t__bindgen_ty_1 {
22498    k_iCallback = 1800,
22499}
22500#[test]
22501fn bindgen_test_layout_GSStatsReceived_t() {
22502    const UNINIT: ::std::mem::MaybeUninit<GSStatsReceived_t> = ::std::mem::MaybeUninit::uninit();
22503    let ptr = UNINIT.as_ptr();
22504    assert_eq!(
22505        ::std::mem::size_of::<GSStatsReceived_t>(),
22506        12usize,
22507        concat!("Size of: ", stringify!(GSStatsReceived_t))
22508    );
22509    assert_eq!(
22510        ::std::mem::align_of::<GSStatsReceived_t>(),
22511        4usize,
22512        concat!("Alignment of ", stringify!(GSStatsReceived_t))
22513    );
22514    assert_eq!(
22515        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
22516        0usize,
22517        concat!(
22518            "Offset of field: ",
22519            stringify!(GSStatsReceived_t),
22520            "::",
22521            stringify!(m_eResult)
22522        )
22523    );
22524    assert_eq!(
22525        unsafe { ::std::ptr::addr_of!((*ptr).m_steamIDUser) as usize - ptr as usize },
22526        4usize,
22527        concat!(
22528            "Offset of field: ",
22529            stringify!(GSStatsReceived_t),
22530            "::",
22531            stringify!(m_steamIDUser)
22532        )
22533    );
22534}
22535#[repr(C)]
22536#[derive(Copy, Clone)]
22537pub struct GSStatsStored_t {
22538    pub m_eResult: EResult,
22539    pub m_steamIDUser: CSteamID,
22540}
22541pub const GSStatsStored_t_k_iCallback: GSStatsStored_t__bindgen_ty_1 =
22542    GSStatsStored_t__bindgen_ty_1::k_iCallback;
22543#[repr(u32)]
22544#[non_exhaustive]
22545#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
22546pub enum GSStatsStored_t__bindgen_ty_1 {
22547    k_iCallback = 1801,
22548}
22549#[test]
22550fn bindgen_test_layout_GSStatsStored_t() {
22551    const UNINIT: ::std::mem::MaybeUninit<GSStatsStored_t> = ::std::mem::MaybeUninit::uninit();
22552    let ptr = UNINIT.as_ptr();
22553    assert_eq!(
22554        ::std::mem::size_of::<GSStatsStored_t>(),
22555        12usize,
22556        concat!("Size of: ", stringify!(GSStatsStored_t))
22557    );
22558    assert_eq!(
22559        ::std::mem::align_of::<GSStatsStored_t>(),
22560        4usize,
22561        concat!("Alignment of ", stringify!(GSStatsStored_t))
22562    );
22563    assert_eq!(
22564        unsafe { ::std::ptr::addr_of!((*ptr).m_eResult) as usize - ptr as usize },
22565        0usize,
22566        concat!(
22567            "Offset of field: ",
22568            stringify!(GSStatsStored_t),
22569            "::",
22570            stringify!(m_eResult)
22571        )
22572    );
22573    assert_eq!(
22574        unsafe { ::std::ptr::addr_of!((*ptr).m_steamIDUser) as usize - ptr as usize },
22575        4usize,
22576        concat!(
22577            "Offset of field: ",
22578            stringify!(GSStatsStored_t),
22579            "::",
22580            stringify!(m_steamIDUser)
22581        )
22582    );
22583}
22584#[repr(C)]
22585#[derive(Copy, Clone)]
22586pub struct GSStatsUnloaded_t {
22587    pub m_steamIDUser: CSteamID,
22588}
22589pub const GSStatsUnloaded_t_k_iCallback: GSStatsUnloaded_t__bindgen_ty_1 =
22590    GSStatsUnloaded_t__bindgen_ty_1::k_iCallback;
22591#[repr(u32)]
22592#[non_exhaustive]
22593#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
22594pub enum GSStatsUnloaded_t__bindgen_ty_1 {
22595    k_iCallback = 1108,
22596}
22597#[test]
22598fn bindgen_test_layout_GSStatsUnloaded_t() {
22599    const UNINIT: ::std::mem::MaybeUninit<GSStatsUnloaded_t> = ::std::mem::MaybeUninit::uninit();
22600    let ptr = UNINIT.as_ptr();
22601    assert_eq!(
22602        ::std::mem::size_of::<GSStatsUnloaded_t>(),
22603        8usize,
22604        concat!("Size of: ", stringify!(GSStatsUnloaded_t))
22605    );
22606    assert_eq!(
22607        ::std::mem::align_of::<GSStatsUnloaded_t>(),
22608        1usize,
22609        concat!("Alignment of ", stringify!(GSStatsUnloaded_t))
22610    );
22611    assert_eq!(
22612        unsafe { ::std::ptr::addr_of!((*ptr).m_steamIDUser) as usize - ptr as usize },
22613        0usize,
22614        concat!(
22615            "Offset of field: ",
22616            stringify!(GSStatsUnloaded_t),
22617            "::",
22618            stringify!(m_steamIDUser)
22619        )
22620    );
22621}
22622pub type uint64_steamid = uint64;
22623pub type uint64_gameid = uint64;
22624extern "C" {
22625    pub fn SteamAPI_ISteamClient_CreateSteamPipe(self_: *mut ISteamClient) -> HSteamPipe;
22626}
22627extern "C" {
22628    pub fn SteamAPI_ISteamClient_BReleaseSteamPipe(
22629        self_: *mut ISteamClient,
22630        hSteamPipe: HSteamPipe,
22631    ) -> bool;
22632}
22633extern "C" {
22634    pub fn SteamAPI_ISteamClient_ConnectToGlobalUser(
22635        self_: *mut ISteamClient,
22636        hSteamPipe: HSteamPipe,
22637    ) -> HSteamUser;
22638}
22639extern "C" {
22640    pub fn SteamAPI_ISteamClient_CreateLocalUser(
22641        self_: *mut ISteamClient,
22642        phSteamPipe: *mut HSteamPipe,
22643        eAccountType: EAccountType,
22644    ) -> HSteamUser;
22645}
22646extern "C" {
22647    pub fn SteamAPI_ISteamClient_ReleaseUser(
22648        self_: *mut ISteamClient,
22649        hSteamPipe: HSteamPipe,
22650        hUser: HSteamUser,
22651    );
22652}
22653extern "C" {
22654    pub fn SteamAPI_ISteamClient_GetISteamUser(
22655        self_: *mut ISteamClient,
22656        hSteamUser: HSteamUser,
22657        hSteamPipe: HSteamPipe,
22658        pchVersion: *const ::std::os::raw::c_char,
22659    ) -> *mut ISteamUser;
22660}
22661extern "C" {
22662    pub fn SteamAPI_ISteamClient_GetISteamGameServer(
22663        self_: *mut ISteamClient,
22664        hSteamUser: HSteamUser,
22665        hSteamPipe: HSteamPipe,
22666        pchVersion: *const ::std::os::raw::c_char,
22667    ) -> *mut ISteamGameServer;
22668}
22669extern "C" {
22670    pub fn SteamAPI_ISteamClient_SetLocalIPBinding(
22671        self_: *mut ISteamClient,
22672        unIP: *const SteamIPAddress_t,
22673        usPort: uint16,
22674    );
22675}
22676extern "C" {
22677    pub fn SteamAPI_ISteamClient_GetISteamFriends(
22678        self_: *mut ISteamClient,
22679        hSteamUser: HSteamUser,
22680        hSteamPipe: HSteamPipe,
22681        pchVersion: *const ::std::os::raw::c_char,
22682    ) -> *mut ISteamFriends;
22683}
22684extern "C" {
22685    pub fn SteamAPI_ISteamClient_GetISteamUtils(
22686        self_: *mut ISteamClient,
22687        hSteamPipe: HSteamPipe,
22688        pchVersion: *const ::std::os::raw::c_char,
22689    ) -> *mut ISteamUtils;
22690}
22691extern "C" {
22692    pub fn SteamAPI_ISteamClient_GetISteamMatchmaking(
22693        self_: *mut ISteamClient,
22694        hSteamUser: HSteamUser,
22695        hSteamPipe: HSteamPipe,
22696        pchVersion: *const ::std::os::raw::c_char,
22697    ) -> *mut ISteamMatchmaking;
22698}
22699extern "C" {
22700    pub fn SteamAPI_ISteamClient_GetISteamMatchmakingServers(
22701        self_: *mut ISteamClient,
22702        hSteamUser: HSteamUser,
22703        hSteamPipe: HSteamPipe,
22704        pchVersion: *const ::std::os::raw::c_char,
22705    ) -> *mut ISteamMatchmakingServers;
22706}
22707extern "C" {
22708    pub fn SteamAPI_ISteamClient_GetISteamGenericInterface(
22709        self_: *mut ISteamClient,
22710        hSteamUser: HSteamUser,
22711        hSteamPipe: HSteamPipe,
22712        pchVersion: *const ::std::os::raw::c_char,
22713    ) -> *mut ::std::os::raw::c_void;
22714}
22715extern "C" {
22716    pub fn SteamAPI_ISteamClient_GetISteamUserStats(
22717        self_: *mut ISteamClient,
22718        hSteamUser: HSteamUser,
22719        hSteamPipe: HSteamPipe,
22720        pchVersion: *const ::std::os::raw::c_char,
22721    ) -> *mut ISteamUserStats;
22722}
22723extern "C" {
22724    pub fn SteamAPI_ISteamClient_GetISteamGameServerStats(
22725        self_: *mut ISteamClient,
22726        hSteamuser: HSteamUser,
22727        hSteamPipe: HSteamPipe,
22728        pchVersion: *const ::std::os::raw::c_char,
22729    ) -> *mut ISteamGameServerStats;
22730}
22731extern "C" {
22732    pub fn SteamAPI_ISteamClient_GetISteamApps(
22733        self_: *mut ISteamClient,
22734        hSteamUser: HSteamUser,
22735        hSteamPipe: HSteamPipe,
22736        pchVersion: *const ::std::os::raw::c_char,
22737    ) -> *mut ISteamApps;
22738}
22739extern "C" {
22740    pub fn SteamAPI_ISteamClient_GetISteamNetworking(
22741        self_: *mut ISteamClient,
22742        hSteamUser: HSteamUser,
22743        hSteamPipe: HSteamPipe,
22744        pchVersion: *const ::std::os::raw::c_char,
22745    ) -> *mut ISteamNetworking;
22746}
22747extern "C" {
22748    pub fn SteamAPI_ISteamClient_GetISteamRemoteStorage(
22749        self_: *mut ISteamClient,
22750        hSteamuser: HSteamUser,
22751        hSteamPipe: HSteamPipe,
22752        pchVersion: *const ::std::os::raw::c_char,
22753    ) -> *mut ISteamRemoteStorage;
22754}
22755extern "C" {
22756    pub fn SteamAPI_ISteamClient_GetISteamScreenshots(
22757        self_: *mut ISteamClient,
22758        hSteamuser: HSteamUser,
22759        hSteamPipe: HSteamPipe,
22760        pchVersion: *const ::std::os::raw::c_char,
22761    ) -> *mut ISteamScreenshots;
22762}
22763extern "C" {
22764    pub fn SteamAPI_ISteamClient_GetISteamGameSearch(
22765        self_: *mut ISteamClient,
22766        hSteamuser: HSteamUser,
22767        hSteamPipe: HSteamPipe,
22768        pchVersion: *const ::std::os::raw::c_char,
22769    ) -> *mut ISteamGameSearch;
22770}
22771extern "C" {
22772    pub fn SteamAPI_ISteamClient_GetIPCCallCount(self_: *mut ISteamClient) -> uint32;
22773}
22774extern "C" {
22775    pub fn SteamAPI_ISteamClient_SetWarningMessageHook(
22776        self_: *mut ISteamClient,
22777        pFunction: SteamAPIWarningMessageHook_t,
22778    );
22779}
22780extern "C" {
22781    pub fn SteamAPI_ISteamClient_BShutdownIfAllPipesClosed(self_: *mut ISteamClient) -> bool;
22782}
22783extern "C" {
22784    pub fn SteamAPI_ISteamClient_GetISteamHTTP(
22785        self_: *mut ISteamClient,
22786        hSteamuser: HSteamUser,
22787        hSteamPipe: HSteamPipe,
22788        pchVersion: *const ::std::os::raw::c_char,
22789    ) -> *mut ISteamHTTP;
22790}
22791extern "C" {
22792    pub fn SteamAPI_ISteamClient_GetISteamController(
22793        self_: *mut ISteamClient,
22794        hSteamUser: HSteamUser,
22795        hSteamPipe: HSteamPipe,
22796        pchVersion: *const ::std::os::raw::c_char,
22797    ) -> *mut ISteamController;
22798}
22799extern "C" {
22800    pub fn SteamAPI_ISteamClient_GetISteamUGC(
22801        self_: *mut ISteamClient,
22802        hSteamUser: HSteamUser,
22803        hSteamPipe: HSteamPipe,
22804        pchVersion: *const ::std::os::raw::c_char,
22805    ) -> *mut ISteamUGC;
22806}
22807extern "C" {
22808    pub fn SteamAPI_ISteamClient_GetISteamAppList(
22809        self_: *mut ISteamClient,
22810        hSteamUser: HSteamUser,
22811        hSteamPipe: HSteamPipe,
22812        pchVersion: *const ::std::os::raw::c_char,
22813    ) -> *mut ISteamAppList;
22814}
22815extern "C" {
22816    pub fn SteamAPI_ISteamClient_GetISteamMusic(
22817        self_: *mut ISteamClient,
22818        hSteamuser: HSteamUser,
22819        hSteamPipe: HSteamPipe,
22820        pchVersion: *const ::std::os::raw::c_char,
22821    ) -> *mut ISteamMusic;
22822}
22823extern "C" {
22824    pub fn SteamAPI_ISteamClient_GetISteamMusicRemote(
22825        self_: *mut ISteamClient,
22826        hSteamuser: HSteamUser,
22827        hSteamPipe: HSteamPipe,
22828        pchVersion: *const ::std::os::raw::c_char,
22829    ) -> *mut ISteamMusicRemote;
22830}
22831extern "C" {
22832    pub fn SteamAPI_ISteamClient_GetISteamHTMLSurface(
22833        self_: *mut ISteamClient,
22834        hSteamuser: HSteamUser,
22835        hSteamPipe: HSteamPipe,
22836        pchVersion: *const ::std::os::raw::c_char,
22837    ) -> *mut ISteamHTMLSurface;
22838}
22839extern "C" {
22840    pub fn SteamAPI_ISteamClient_GetISteamInventory(
22841        self_: *mut ISteamClient,
22842        hSteamuser: HSteamUser,
22843        hSteamPipe: HSteamPipe,
22844        pchVersion: *const ::std::os::raw::c_char,
22845    ) -> *mut ISteamInventory;
22846}
22847extern "C" {
22848    pub fn SteamAPI_ISteamClient_GetISteamVideo(
22849        self_: *mut ISteamClient,
22850        hSteamuser: HSteamUser,
22851        hSteamPipe: HSteamPipe,
22852        pchVersion: *const ::std::os::raw::c_char,
22853    ) -> *mut ISteamVideo;
22854}
22855extern "C" {
22856    pub fn SteamAPI_ISteamClient_GetISteamParentalSettings(
22857        self_: *mut ISteamClient,
22858        hSteamuser: HSteamUser,
22859        hSteamPipe: HSteamPipe,
22860        pchVersion: *const ::std::os::raw::c_char,
22861    ) -> *mut ISteamParentalSettings;
22862}
22863extern "C" {
22864    pub fn SteamAPI_ISteamClient_GetISteamInput(
22865        self_: *mut ISteamClient,
22866        hSteamUser: HSteamUser,
22867        hSteamPipe: HSteamPipe,
22868        pchVersion: *const ::std::os::raw::c_char,
22869    ) -> *mut ISteamInput;
22870}
22871extern "C" {
22872    pub fn SteamAPI_ISteamClient_GetISteamParties(
22873        self_: *mut ISteamClient,
22874        hSteamUser: HSteamUser,
22875        hSteamPipe: HSteamPipe,
22876        pchVersion: *const ::std::os::raw::c_char,
22877    ) -> *mut ISteamParties;
22878}
22879extern "C" {
22880    pub fn SteamAPI_ISteamClient_GetISteamRemotePlay(
22881        self_: *mut ISteamClient,
22882        hSteamUser: HSteamUser,
22883        hSteamPipe: HSteamPipe,
22884        pchVersion: *const ::std::os::raw::c_char,
22885    ) -> *mut ISteamRemotePlay;
22886}
22887extern "C" {
22888    pub fn SteamAPI_SteamUser_v023() -> *mut ISteamUser;
22889}
22890extern "C" {
22891    pub fn SteamAPI_ISteamUser_GetHSteamUser(self_: *mut ISteamUser) -> HSteamUser;
22892}
22893extern "C" {
22894    pub fn SteamAPI_ISteamUser_BLoggedOn(self_: *mut ISteamUser) -> bool;
22895}
22896extern "C" {
22897    pub fn SteamAPI_ISteamUser_GetSteamID(self_: *mut ISteamUser) -> uint64_steamid;
22898}
22899extern "C" {
22900    pub fn SteamAPI_ISteamUser_InitiateGameConnection_DEPRECATED(
22901        self_: *mut ISteamUser,
22902        pAuthBlob: *mut ::std::os::raw::c_void,
22903        cbMaxAuthBlob: ::std::os::raw::c_int,
22904        steamIDGameServer: uint64_steamid,
22905        unIPServer: uint32,
22906        usPortServer: uint16,
22907        bSecure: bool,
22908    ) -> ::std::os::raw::c_int;
22909}
22910extern "C" {
22911    pub fn SteamAPI_ISteamUser_TerminateGameConnection_DEPRECATED(
22912        self_: *mut ISteamUser,
22913        unIPServer: uint32,
22914        usPortServer: uint16,
22915    );
22916}
22917extern "C" {
22918    pub fn SteamAPI_ISteamUser_TrackAppUsageEvent(
22919        self_: *mut ISteamUser,
22920        gameID: uint64_gameid,
22921        eAppUsageEvent: ::std::os::raw::c_int,
22922        pchExtraInfo: *const ::std::os::raw::c_char,
22923    );
22924}
22925extern "C" {
22926    pub fn SteamAPI_ISteamUser_GetUserDataFolder(
22927        self_: *mut ISteamUser,
22928        pchBuffer: *mut ::std::os::raw::c_char,
22929        cubBuffer: ::std::os::raw::c_int,
22930    ) -> bool;
22931}
22932extern "C" {
22933    pub fn SteamAPI_ISteamUser_StartVoiceRecording(self_: *mut ISteamUser);
22934}
22935extern "C" {
22936    pub fn SteamAPI_ISteamUser_StopVoiceRecording(self_: *mut ISteamUser);
22937}
22938extern "C" {
22939    pub fn SteamAPI_ISteamUser_GetAvailableVoice(
22940        self_: *mut ISteamUser,
22941        pcbCompressed: *mut uint32,
22942        pcbUncompressed_Deprecated: *mut uint32,
22943        nUncompressedVoiceDesiredSampleRate_Deprecated: uint32,
22944    ) -> EVoiceResult;
22945}
22946extern "C" {
22947    pub fn SteamAPI_ISteamUser_GetVoice(
22948        self_: *mut ISteamUser,
22949        bWantCompressed: bool,
22950        pDestBuffer: *mut ::std::os::raw::c_void,
22951        cbDestBufferSize: uint32,
22952        nBytesWritten: *mut uint32,
22953        bWantUncompressed_Deprecated: bool,
22954        pUncompressedDestBuffer_Deprecated: *mut ::std::os::raw::c_void,
22955        cbUncompressedDestBufferSize_Deprecated: uint32,
22956        nUncompressBytesWritten_Deprecated: *mut uint32,
22957        nUncompressedVoiceDesiredSampleRate_Deprecated: uint32,
22958    ) -> EVoiceResult;
22959}
22960extern "C" {
22961    pub fn SteamAPI_ISteamUser_DecompressVoice(
22962        self_: *mut ISteamUser,
22963        pCompressed: *const ::std::os::raw::c_void,
22964        cbCompressed: uint32,
22965        pDestBuffer: *mut ::std::os::raw::c_void,
22966        cbDestBufferSize: uint32,
22967        nBytesWritten: *mut uint32,
22968        nDesiredSampleRate: uint32,
22969    ) -> EVoiceResult;
22970}
22971extern "C" {
22972    pub fn SteamAPI_ISteamUser_GetVoiceOptimalSampleRate(self_: *mut ISteamUser) -> uint32;
22973}
22974extern "C" {
22975    pub fn SteamAPI_ISteamUser_GetAuthSessionTicket(
22976        self_: *mut ISteamUser,
22977        pTicket: *mut ::std::os::raw::c_void,
22978        cbMaxTicket: ::std::os::raw::c_int,
22979        pcbTicket: *mut uint32,
22980        pSteamNetworkingIdentity: *const SteamNetworkingIdentity,
22981    ) -> HAuthTicket;
22982}
22983extern "C" {
22984    pub fn SteamAPI_ISteamUser_GetAuthTicketForWebApi(
22985        self_: *mut ISteamUser,
22986        pchIdentity: *const ::std::os::raw::c_char,
22987    ) -> HAuthTicket;
22988}
22989extern "C" {
22990    pub fn SteamAPI_ISteamUser_BeginAuthSession(
22991        self_: *mut ISteamUser,
22992        pAuthTicket: *const ::std::os::raw::c_void,
22993        cbAuthTicket: ::std::os::raw::c_int,
22994        steamID: uint64_steamid,
22995    ) -> EBeginAuthSessionResult;
22996}
22997extern "C" {
22998    pub fn SteamAPI_ISteamUser_EndAuthSession(self_: *mut ISteamUser, steamID: uint64_steamid);
22999}
23000extern "C" {
23001    pub fn SteamAPI_ISteamUser_CancelAuthTicket(self_: *mut ISteamUser, hAuthTicket: HAuthTicket);
23002}
23003extern "C" {
23004    pub fn SteamAPI_ISteamUser_UserHasLicenseForApp(
23005        self_: *mut ISteamUser,
23006        steamID: uint64_steamid,
23007        appID: AppId_t,
23008    ) -> EUserHasLicenseForAppResult;
23009}
23010extern "C" {
23011    pub fn SteamAPI_ISteamUser_BIsBehindNAT(self_: *mut ISteamUser) -> bool;
23012}
23013extern "C" {
23014    pub fn SteamAPI_ISteamUser_AdvertiseGame(
23015        self_: *mut ISteamUser,
23016        steamIDGameServer: uint64_steamid,
23017        unIPServer: uint32,
23018        usPortServer: uint16,
23019    );
23020}
23021extern "C" {
23022    pub fn SteamAPI_ISteamUser_RequestEncryptedAppTicket(
23023        self_: *mut ISteamUser,
23024        pDataToInclude: *mut ::std::os::raw::c_void,
23025        cbDataToInclude: ::std::os::raw::c_int,
23026    ) -> SteamAPICall_t;
23027}
23028extern "C" {
23029    pub fn SteamAPI_ISteamUser_GetEncryptedAppTicket(
23030        self_: *mut ISteamUser,
23031        pTicket: *mut ::std::os::raw::c_void,
23032        cbMaxTicket: ::std::os::raw::c_int,
23033        pcbTicket: *mut uint32,
23034    ) -> bool;
23035}
23036extern "C" {
23037    pub fn SteamAPI_ISteamUser_GetGameBadgeLevel(
23038        self_: *mut ISteamUser,
23039        nSeries: ::std::os::raw::c_int,
23040        bFoil: bool,
23041    ) -> ::std::os::raw::c_int;
23042}
23043extern "C" {
23044    pub fn SteamAPI_ISteamUser_GetPlayerSteamLevel(self_: *mut ISteamUser)
23045        -> ::std::os::raw::c_int;
23046}
23047extern "C" {
23048    pub fn SteamAPI_ISteamUser_RequestStoreAuthURL(
23049        self_: *mut ISteamUser,
23050        pchRedirectURL: *const ::std::os::raw::c_char,
23051    ) -> SteamAPICall_t;
23052}
23053extern "C" {
23054    pub fn SteamAPI_ISteamUser_BIsPhoneVerified(self_: *mut ISteamUser) -> bool;
23055}
23056extern "C" {
23057    pub fn SteamAPI_ISteamUser_BIsTwoFactorEnabled(self_: *mut ISteamUser) -> bool;
23058}
23059extern "C" {
23060    pub fn SteamAPI_ISteamUser_BIsPhoneIdentifying(self_: *mut ISteamUser) -> bool;
23061}
23062extern "C" {
23063    pub fn SteamAPI_ISteamUser_BIsPhoneRequiringVerification(self_: *mut ISteamUser) -> bool;
23064}
23065extern "C" {
23066    pub fn SteamAPI_ISteamUser_GetMarketEligibility(self_: *mut ISteamUser) -> SteamAPICall_t;
23067}
23068extern "C" {
23069    pub fn SteamAPI_ISteamUser_GetDurationControl(self_: *mut ISteamUser) -> SteamAPICall_t;
23070}
23071extern "C" {
23072    pub fn SteamAPI_ISteamUser_BSetDurationControlOnlineState(
23073        self_: *mut ISteamUser,
23074        eNewState: EDurationControlOnlineState,
23075    ) -> bool;
23076}
23077extern "C" {
23078    pub fn SteamAPI_SteamFriends_v017() -> *mut ISteamFriends;
23079}
23080extern "C" {
23081    pub fn SteamAPI_ISteamFriends_GetPersonaName(
23082        self_: *mut ISteamFriends,
23083    ) -> *const ::std::os::raw::c_char;
23084}
23085extern "C" {
23086    pub fn SteamAPI_ISteamFriends_SetPersonaName(
23087        self_: *mut ISteamFriends,
23088        pchPersonaName: *const ::std::os::raw::c_char,
23089    ) -> SteamAPICall_t;
23090}
23091extern "C" {
23092    pub fn SteamAPI_ISteamFriends_GetPersonaState(self_: *mut ISteamFriends) -> EPersonaState;
23093}
23094extern "C" {
23095    pub fn SteamAPI_ISteamFriends_GetFriendCount(
23096        self_: *mut ISteamFriends,
23097        iFriendFlags: ::std::os::raw::c_int,
23098    ) -> ::std::os::raw::c_int;
23099}
23100extern "C" {
23101    pub fn SteamAPI_ISteamFriends_GetFriendByIndex(
23102        self_: *mut ISteamFriends,
23103        iFriend: ::std::os::raw::c_int,
23104        iFriendFlags: ::std::os::raw::c_int,
23105    ) -> uint64_steamid;
23106}
23107extern "C" {
23108    pub fn SteamAPI_ISteamFriends_GetFriendRelationship(
23109        self_: *mut ISteamFriends,
23110        steamIDFriend: uint64_steamid,
23111    ) -> EFriendRelationship;
23112}
23113extern "C" {
23114    pub fn SteamAPI_ISteamFriends_GetFriendPersonaState(
23115        self_: *mut ISteamFriends,
23116        steamIDFriend: uint64_steamid,
23117    ) -> EPersonaState;
23118}
23119extern "C" {
23120    pub fn SteamAPI_ISteamFriends_GetFriendPersonaName(
23121        self_: *mut ISteamFriends,
23122        steamIDFriend: uint64_steamid,
23123    ) -> *const ::std::os::raw::c_char;
23124}
23125extern "C" {
23126    pub fn SteamAPI_ISteamFriends_GetFriendGamePlayed(
23127        self_: *mut ISteamFriends,
23128        steamIDFriend: uint64_steamid,
23129        pFriendGameInfo: *mut FriendGameInfo_t,
23130    ) -> bool;
23131}
23132extern "C" {
23133    pub fn SteamAPI_ISteamFriends_GetFriendPersonaNameHistory(
23134        self_: *mut ISteamFriends,
23135        steamIDFriend: uint64_steamid,
23136        iPersonaName: ::std::os::raw::c_int,
23137    ) -> *const ::std::os::raw::c_char;
23138}
23139extern "C" {
23140    pub fn SteamAPI_ISteamFriends_GetFriendSteamLevel(
23141        self_: *mut ISteamFriends,
23142        steamIDFriend: uint64_steamid,
23143    ) -> ::std::os::raw::c_int;
23144}
23145extern "C" {
23146    pub fn SteamAPI_ISteamFriends_GetPlayerNickname(
23147        self_: *mut ISteamFriends,
23148        steamIDPlayer: uint64_steamid,
23149    ) -> *const ::std::os::raw::c_char;
23150}
23151extern "C" {
23152    pub fn SteamAPI_ISteamFriends_GetFriendsGroupCount(
23153        self_: *mut ISteamFriends,
23154    ) -> ::std::os::raw::c_int;
23155}
23156extern "C" {
23157    pub fn SteamAPI_ISteamFriends_GetFriendsGroupIDByIndex(
23158        self_: *mut ISteamFriends,
23159        iFG: ::std::os::raw::c_int,
23160    ) -> FriendsGroupID_t;
23161}
23162extern "C" {
23163    pub fn SteamAPI_ISteamFriends_GetFriendsGroupName(
23164        self_: *mut ISteamFriends,
23165        friendsGroupID: FriendsGroupID_t,
23166    ) -> *const ::std::os::raw::c_char;
23167}
23168extern "C" {
23169    pub fn SteamAPI_ISteamFriends_GetFriendsGroupMembersCount(
23170        self_: *mut ISteamFriends,
23171        friendsGroupID: FriendsGroupID_t,
23172    ) -> ::std::os::raw::c_int;
23173}
23174extern "C" {
23175    pub fn SteamAPI_ISteamFriends_GetFriendsGroupMembersList(
23176        self_: *mut ISteamFriends,
23177        friendsGroupID: FriendsGroupID_t,
23178        pOutSteamIDMembers: *mut CSteamID,
23179        nMembersCount: ::std::os::raw::c_int,
23180    );
23181}
23182extern "C" {
23183    pub fn SteamAPI_ISteamFriends_HasFriend(
23184        self_: *mut ISteamFriends,
23185        steamIDFriend: uint64_steamid,
23186        iFriendFlags: ::std::os::raw::c_int,
23187    ) -> bool;
23188}
23189extern "C" {
23190    pub fn SteamAPI_ISteamFriends_GetClanCount(self_: *mut ISteamFriends) -> ::std::os::raw::c_int;
23191}
23192extern "C" {
23193    pub fn SteamAPI_ISteamFriends_GetClanByIndex(
23194        self_: *mut ISteamFriends,
23195        iClan: ::std::os::raw::c_int,
23196    ) -> uint64_steamid;
23197}
23198extern "C" {
23199    pub fn SteamAPI_ISteamFriends_GetClanName(
23200        self_: *mut ISteamFriends,
23201        steamIDClan: uint64_steamid,
23202    ) -> *const ::std::os::raw::c_char;
23203}
23204extern "C" {
23205    pub fn SteamAPI_ISteamFriends_GetClanTag(
23206        self_: *mut ISteamFriends,
23207        steamIDClan: uint64_steamid,
23208    ) -> *const ::std::os::raw::c_char;
23209}
23210extern "C" {
23211    pub fn SteamAPI_ISteamFriends_GetClanActivityCounts(
23212        self_: *mut ISteamFriends,
23213        steamIDClan: uint64_steamid,
23214        pnOnline: *mut ::std::os::raw::c_int,
23215        pnInGame: *mut ::std::os::raw::c_int,
23216        pnChatting: *mut ::std::os::raw::c_int,
23217    ) -> bool;
23218}
23219extern "C" {
23220    pub fn SteamAPI_ISteamFriends_DownloadClanActivityCounts(
23221        self_: *mut ISteamFriends,
23222        psteamIDClans: *mut CSteamID,
23223        cClansToRequest: ::std::os::raw::c_int,
23224    ) -> SteamAPICall_t;
23225}
23226extern "C" {
23227    pub fn SteamAPI_ISteamFriends_GetFriendCountFromSource(
23228        self_: *mut ISteamFriends,
23229        steamIDSource: uint64_steamid,
23230    ) -> ::std::os::raw::c_int;
23231}
23232extern "C" {
23233    pub fn SteamAPI_ISteamFriends_GetFriendFromSourceByIndex(
23234        self_: *mut ISteamFriends,
23235        steamIDSource: uint64_steamid,
23236        iFriend: ::std::os::raw::c_int,
23237    ) -> uint64_steamid;
23238}
23239extern "C" {
23240    pub fn SteamAPI_ISteamFriends_IsUserInSource(
23241        self_: *mut ISteamFriends,
23242        steamIDUser: uint64_steamid,
23243        steamIDSource: uint64_steamid,
23244    ) -> bool;
23245}
23246extern "C" {
23247    pub fn SteamAPI_ISteamFriends_SetInGameVoiceSpeaking(
23248        self_: *mut ISteamFriends,
23249        steamIDUser: uint64_steamid,
23250        bSpeaking: bool,
23251    );
23252}
23253extern "C" {
23254    pub fn SteamAPI_ISteamFriends_ActivateGameOverlay(
23255        self_: *mut ISteamFriends,
23256        pchDialog: *const ::std::os::raw::c_char,
23257    );
23258}
23259extern "C" {
23260    pub fn SteamAPI_ISteamFriends_ActivateGameOverlayToUser(
23261        self_: *mut ISteamFriends,
23262        pchDialog: *const ::std::os::raw::c_char,
23263        steamID: uint64_steamid,
23264    );
23265}
23266extern "C" {
23267    pub fn SteamAPI_ISteamFriends_ActivateGameOverlayToWebPage(
23268        self_: *mut ISteamFriends,
23269        pchURL: *const ::std::os::raw::c_char,
23270        eMode: EActivateGameOverlayToWebPageMode,
23271    );
23272}
23273extern "C" {
23274    pub fn SteamAPI_ISteamFriends_ActivateGameOverlayToStore(
23275        self_: *mut ISteamFriends,
23276        nAppID: AppId_t,
23277        eFlag: EOverlayToStoreFlag,
23278    );
23279}
23280extern "C" {
23281    pub fn SteamAPI_ISteamFriends_SetPlayedWith(
23282        self_: *mut ISteamFriends,
23283        steamIDUserPlayedWith: uint64_steamid,
23284    );
23285}
23286extern "C" {
23287    pub fn SteamAPI_ISteamFriends_ActivateGameOverlayInviteDialog(
23288        self_: *mut ISteamFriends,
23289        steamIDLobby: uint64_steamid,
23290    );
23291}
23292extern "C" {
23293    pub fn SteamAPI_ISteamFriends_GetSmallFriendAvatar(
23294        self_: *mut ISteamFriends,
23295        steamIDFriend: uint64_steamid,
23296    ) -> ::std::os::raw::c_int;
23297}
23298extern "C" {
23299    pub fn SteamAPI_ISteamFriends_GetMediumFriendAvatar(
23300        self_: *mut ISteamFriends,
23301        steamIDFriend: uint64_steamid,
23302    ) -> ::std::os::raw::c_int;
23303}
23304extern "C" {
23305    pub fn SteamAPI_ISteamFriends_GetLargeFriendAvatar(
23306        self_: *mut ISteamFriends,
23307        steamIDFriend: uint64_steamid,
23308    ) -> ::std::os::raw::c_int;
23309}
23310extern "C" {
23311    pub fn SteamAPI_ISteamFriends_RequestUserInformation(
23312        self_: *mut ISteamFriends,
23313        steamIDUser: uint64_steamid,
23314        bRequireNameOnly: bool,
23315    ) -> bool;
23316}
23317extern "C" {
23318    pub fn SteamAPI_ISteamFriends_RequestClanOfficerList(
23319        self_: *mut ISteamFriends,
23320        steamIDClan: uint64_steamid,
23321    ) -> SteamAPICall_t;
23322}
23323extern "C" {
23324    pub fn SteamAPI_ISteamFriends_GetClanOwner(
23325        self_: *mut ISteamFriends,
23326        steamIDClan: uint64_steamid,
23327    ) -> uint64_steamid;
23328}
23329extern "C" {
23330    pub fn SteamAPI_ISteamFriends_GetClanOfficerCount(
23331        self_: *mut ISteamFriends,
23332        steamIDClan: uint64_steamid,
23333    ) -> ::std::os::raw::c_int;
23334}
23335extern "C" {
23336    pub fn SteamAPI_ISteamFriends_GetClanOfficerByIndex(
23337        self_: *mut ISteamFriends,
23338        steamIDClan: uint64_steamid,
23339        iOfficer: ::std::os::raw::c_int,
23340    ) -> uint64_steamid;
23341}
23342extern "C" {
23343    pub fn SteamAPI_ISteamFriends_GetUserRestrictions(self_: *mut ISteamFriends) -> uint32;
23344}
23345extern "C" {
23346    pub fn SteamAPI_ISteamFriends_SetRichPresence(
23347        self_: *mut ISteamFriends,
23348        pchKey: *const ::std::os::raw::c_char,
23349        pchValue: *const ::std::os::raw::c_char,
23350    ) -> bool;
23351}
23352extern "C" {
23353    pub fn SteamAPI_ISteamFriends_ClearRichPresence(self_: *mut ISteamFriends);
23354}
23355extern "C" {
23356    pub fn SteamAPI_ISteamFriends_GetFriendRichPresence(
23357        self_: *mut ISteamFriends,
23358        steamIDFriend: uint64_steamid,
23359        pchKey: *const ::std::os::raw::c_char,
23360    ) -> *const ::std::os::raw::c_char;
23361}
23362extern "C" {
23363    pub fn SteamAPI_ISteamFriends_GetFriendRichPresenceKeyCount(
23364        self_: *mut ISteamFriends,
23365        steamIDFriend: uint64_steamid,
23366    ) -> ::std::os::raw::c_int;
23367}
23368extern "C" {
23369    pub fn SteamAPI_ISteamFriends_GetFriendRichPresenceKeyByIndex(
23370        self_: *mut ISteamFriends,
23371        steamIDFriend: uint64_steamid,
23372        iKey: ::std::os::raw::c_int,
23373    ) -> *const ::std::os::raw::c_char;
23374}
23375extern "C" {
23376    pub fn SteamAPI_ISteamFriends_RequestFriendRichPresence(
23377        self_: *mut ISteamFriends,
23378        steamIDFriend: uint64_steamid,
23379    );
23380}
23381extern "C" {
23382    pub fn SteamAPI_ISteamFriends_InviteUserToGame(
23383        self_: *mut ISteamFriends,
23384        steamIDFriend: uint64_steamid,
23385        pchConnectString: *const ::std::os::raw::c_char,
23386    ) -> bool;
23387}
23388extern "C" {
23389    pub fn SteamAPI_ISteamFriends_GetCoplayFriendCount(
23390        self_: *mut ISteamFriends,
23391    ) -> ::std::os::raw::c_int;
23392}
23393extern "C" {
23394    pub fn SteamAPI_ISteamFriends_GetCoplayFriend(
23395        self_: *mut ISteamFriends,
23396        iCoplayFriend: ::std::os::raw::c_int,
23397    ) -> uint64_steamid;
23398}
23399extern "C" {
23400    pub fn SteamAPI_ISteamFriends_GetFriendCoplayTime(
23401        self_: *mut ISteamFriends,
23402        steamIDFriend: uint64_steamid,
23403    ) -> ::std::os::raw::c_int;
23404}
23405extern "C" {
23406    pub fn SteamAPI_ISteamFriends_GetFriendCoplayGame(
23407        self_: *mut ISteamFriends,
23408        steamIDFriend: uint64_steamid,
23409    ) -> AppId_t;
23410}
23411extern "C" {
23412    pub fn SteamAPI_ISteamFriends_JoinClanChatRoom(
23413        self_: *mut ISteamFriends,
23414        steamIDClan: uint64_steamid,
23415    ) -> SteamAPICall_t;
23416}
23417extern "C" {
23418    pub fn SteamAPI_ISteamFriends_LeaveClanChatRoom(
23419        self_: *mut ISteamFriends,
23420        steamIDClan: uint64_steamid,
23421    ) -> bool;
23422}
23423extern "C" {
23424    pub fn SteamAPI_ISteamFriends_GetClanChatMemberCount(
23425        self_: *mut ISteamFriends,
23426        steamIDClan: uint64_steamid,
23427    ) -> ::std::os::raw::c_int;
23428}
23429extern "C" {
23430    pub fn SteamAPI_ISteamFriends_GetChatMemberByIndex(
23431        self_: *mut ISteamFriends,
23432        steamIDClan: uint64_steamid,
23433        iUser: ::std::os::raw::c_int,
23434    ) -> uint64_steamid;
23435}
23436extern "C" {
23437    pub fn SteamAPI_ISteamFriends_SendClanChatMessage(
23438        self_: *mut ISteamFriends,
23439        steamIDClanChat: uint64_steamid,
23440        pchText: *const ::std::os::raw::c_char,
23441    ) -> bool;
23442}
23443extern "C" {
23444    pub fn SteamAPI_ISteamFriends_GetClanChatMessage(
23445        self_: *mut ISteamFriends,
23446        steamIDClanChat: uint64_steamid,
23447        iMessage: ::std::os::raw::c_int,
23448        prgchText: *mut ::std::os::raw::c_void,
23449        cchTextMax: ::std::os::raw::c_int,
23450        peChatEntryType: *mut EChatEntryType,
23451        psteamidChatter: *mut CSteamID,
23452    ) -> ::std::os::raw::c_int;
23453}
23454extern "C" {
23455    pub fn SteamAPI_ISteamFriends_IsClanChatAdmin(
23456        self_: *mut ISteamFriends,
23457        steamIDClanChat: uint64_steamid,
23458        steamIDUser: uint64_steamid,
23459    ) -> bool;
23460}
23461extern "C" {
23462    pub fn SteamAPI_ISteamFriends_IsClanChatWindowOpenInSteam(
23463        self_: *mut ISteamFriends,
23464        steamIDClanChat: uint64_steamid,
23465    ) -> bool;
23466}
23467extern "C" {
23468    pub fn SteamAPI_ISteamFriends_OpenClanChatWindowInSteam(
23469        self_: *mut ISteamFriends,
23470        steamIDClanChat: uint64_steamid,
23471    ) -> bool;
23472}
23473extern "C" {
23474    pub fn SteamAPI_ISteamFriends_CloseClanChatWindowInSteam(
23475        self_: *mut ISteamFriends,
23476        steamIDClanChat: uint64_steamid,
23477    ) -> bool;
23478}
23479extern "C" {
23480    pub fn SteamAPI_ISteamFriends_SetListenForFriendsMessages(
23481        self_: *mut ISteamFriends,
23482        bInterceptEnabled: bool,
23483    ) -> bool;
23484}
23485extern "C" {
23486    pub fn SteamAPI_ISteamFriends_ReplyToFriendMessage(
23487        self_: *mut ISteamFriends,
23488        steamIDFriend: uint64_steamid,
23489        pchMsgToSend: *const ::std::os::raw::c_char,
23490    ) -> bool;
23491}
23492extern "C" {
23493    pub fn SteamAPI_ISteamFriends_GetFriendMessage(
23494        self_: *mut ISteamFriends,
23495        steamIDFriend: uint64_steamid,
23496        iMessageID: ::std::os::raw::c_int,
23497        pvData: *mut ::std::os::raw::c_void,
23498        cubData: ::std::os::raw::c_int,
23499        peChatEntryType: *mut EChatEntryType,
23500    ) -> ::std::os::raw::c_int;
23501}
23502extern "C" {
23503    pub fn SteamAPI_ISteamFriends_GetFollowerCount(
23504        self_: *mut ISteamFriends,
23505        steamID: uint64_steamid,
23506    ) -> SteamAPICall_t;
23507}
23508extern "C" {
23509    pub fn SteamAPI_ISteamFriends_IsFollowing(
23510        self_: *mut ISteamFriends,
23511        steamID: uint64_steamid,
23512    ) -> SteamAPICall_t;
23513}
23514extern "C" {
23515    pub fn SteamAPI_ISteamFriends_EnumerateFollowingList(
23516        self_: *mut ISteamFriends,
23517        unStartIndex: uint32,
23518    ) -> SteamAPICall_t;
23519}
23520extern "C" {
23521    pub fn SteamAPI_ISteamFriends_IsClanPublic(
23522        self_: *mut ISteamFriends,
23523        steamIDClan: uint64_steamid,
23524    ) -> bool;
23525}
23526extern "C" {
23527    pub fn SteamAPI_ISteamFriends_IsClanOfficialGameGroup(
23528        self_: *mut ISteamFriends,
23529        steamIDClan: uint64_steamid,
23530    ) -> bool;
23531}
23532extern "C" {
23533    pub fn SteamAPI_ISteamFriends_GetNumChatsWithUnreadPriorityMessages(
23534        self_: *mut ISteamFriends,
23535    ) -> ::std::os::raw::c_int;
23536}
23537extern "C" {
23538    pub fn SteamAPI_ISteamFriends_ActivateGameOverlayRemotePlayTogetherInviteDialog(
23539        self_: *mut ISteamFriends,
23540        steamIDLobby: uint64_steamid,
23541    );
23542}
23543extern "C" {
23544    pub fn SteamAPI_ISteamFriends_RegisterProtocolInOverlayBrowser(
23545        self_: *mut ISteamFriends,
23546        pchProtocol: *const ::std::os::raw::c_char,
23547    ) -> bool;
23548}
23549extern "C" {
23550    pub fn SteamAPI_ISteamFriends_ActivateGameOverlayInviteDialogConnectString(
23551        self_: *mut ISteamFriends,
23552        pchConnectString: *const ::std::os::raw::c_char,
23553    );
23554}
23555extern "C" {
23556    pub fn SteamAPI_ISteamFriends_RequestEquippedProfileItems(
23557        self_: *mut ISteamFriends,
23558        steamID: uint64_steamid,
23559    ) -> SteamAPICall_t;
23560}
23561extern "C" {
23562    pub fn SteamAPI_ISteamFriends_BHasEquippedProfileItem(
23563        self_: *mut ISteamFriends,
23564        steamID: uint64_steamid,
23565        itemType: ECommunityProfileItemType,
23566    ) -> bool;
23567}
23568extern "C" {
23569    pub fn SteamAPI_ISteamFriends_GetProfileItemPropertyString(
23570        self_: *mut ISteamFriends,
23571        steamID: uint64_steamid,
23572        itemType: ECommunityProfileItemType,
23573        prop: ECommunityProfileItemProperty,
23574    ) -> *const ::std::os::raw::c_char;
23575}
23576extern "C" {
23577    pub fn SteamAPI_ISteamFriends_GetProfileItemPropertyUint(
23578        self_: *mut ISteamFriends,
23579        steamID: uint64_steamid,
23580        itemType: ECommunityProfileItemType,
23581        prop: ECommunityProfileItemProperty,
23582    ) -> uint32;
23583}
23584extern "C" {
23585    pub fn SteamAPI_SteamUtils_v010() -> *mut ISteamUtils;
23586}
23587extern "C" {
23588    pub fn SteamAPI_SteamGameServerUtils_v010() -> *mut ISteamUtils;
23589}
23590extern "C" {
23591    pub fn SteamAPI_ISteamUtils_GetSecondsSinceAppActive(self_: *mut ISteamUtils) -> uint32;
23592}
23593extern "C" {
23594    pub fn SteamAPI_ISteamUtils_GetSecondsSinceComputerActive(self_: *mut ISteamUtils) -> uint32;
23595}
23596extern "C" {
23597    pub fn SteamAPI_ISteamUtils_GetConnectedUniverse(self_: *mut ISteamUtils) -> EUniverse;
23598}
23599extern "C" {
23600    pub fn SteamAPI_ISteamUtils_GetServerRealTime(self_: *mut ISteamUtils) -> uint32;
23601}
23602extern "C" {
23603    pub fn SteamAPI_ISteamUtils_GetIPCountry(
23604        self_: *mut ISteamUtils,
23605    ) -> *const ::std::os::raw::c_char;
23606}
23607extern "C" {
23608    pub fn SteamAPI_ISteamUtils_GetImageSize(
23609        self_: *mut ISteamUtils,
23610        iImage: ::std::os::raw::c_int,
23611        pnWidth: *mut uint32,
23612        pnHeight: *mut uint32,
23613    ) -> bool;
23614}
23615extern "C" {
23616    pub fn SteamAPI_ISteamUtils_GetImageRGBA(
23617        self_: *mut ISteamUtils,
23618        iImage: ::std::os::raw::c_int,
23619        pubDest: *mut uint8,
23620        nDestBufferSize: ::std::os::raw::c_int,
23621    ) -> bool;
23622}
23623extern "C" {
23624    pub fn SteamAPI_ISteamUtils_GetCurrentBatteryPower(self_: *mut ISteamUtils) -> uint8;
23625}
23626extern "C" {
23627    pub fn SteamAPI_ISteamUtils_GetAppID(self_: *mut ISteamUtils) -> uint32;
23628}
23629extern "C" {
23630    pub fn SteamAPI_ISteamUtils_SetOverlayNotificationPosition(
23631        self_: *mut ISteamUtils,
23632        eNotificationPosition: ENotificationPosition,
23633    );
23634}
23635extern "C" {
23636    pub fn SteamAPI_ISteamUtils_IsAPICallCompleted(
23637        self_: *mut ISteamUtils,
23638        hSteamAPICall: SteamAPICall_t,
23639        pbFailed: *mut bool,
23640    ) -> bool;
23641}
23642extern "C" {
23643    pub fn SteamAPI_ISteamUtils_GetAPICallFailureReason(
23644        self_: *mut ISteamUtils,
23645        hSteamAPICall: SteamAPICall_t,
23646    ) -> ESteamAPICallFailure;
23647}
23648extern "C" {
23649    pub fn SteamAPI_ISteamUtils_GetAPICallResult(
23650        self_: *mut ISteamUtils,
23651        hSteamAPICall: SteamAPICall_t,
23652        pCallback: *mut ::std::os::raw::c_void,
23653        cubCallback: ::std::os::raw::c_int,
23654        iCallbackExpected: ::std::os::raw::c_int,
23655        pbFailed: *mut bool,
23656    ) -> bool;
23657}
23658extern "C" {
23659    pub fn SteamAPI_ISteamUtils_GetIPCCallCount(self_: *mut ISteamUtils) -> uint32;
23660}
23661extern "C" {
23662    pub fn SteamAPI_ISteamUtils_SetWarningMessageHook(
23663        self_: *mut ISteamUtils,
23664        pFunction: SteamAPIWarningMessageHook_t,
23665    );
23666}
23667extern "C" {
23668    pub fn SteamAPI_ISteamUtils_IsOverlayEnabled(self_: *mut ISteamUtils) -> bool;
23669}
23670extern "C" {
23671    pub fn SteamAPI_ISteamUtils_BOverlayNeedsPresent(self_: *mut ISteamUtils) -> bool;
23672}
23673extern "C" {
23674    pub fn SteamAPI_ISteamUtils_CheckFileSignature(
23675        self_: *mut ISteamUtils,
23676        szFileName: *const ::std::os::raw::c_char,
23677    ) -> SteamAPICall_t;
23678}
23679extern "C" {
23680    pub fn SteamAPI_ISteamUtils_ShowGamepadTextInput(
23681        self_: *mut ISteamUtils,
23682        eInputMode: EGamepadTextInputMode,
23683        eLineInputMode: EGamepadTextInputLineMode,
23684        pchDescription: *const ::std::os::raw::c_char,
23685        unCharMax: uint32,
23686        pchExistingText: *const ::std::os::raw::c_char,
23687    ) -> bool;
23688}
23689extern "C" {
23690    pub fn SteamAPI_ISteamUtils_GetEnteredGamepadTextLength(self_: *mut ISteamUtils) -> uint32;
23691}
23692extern "C" {
23693    pub fn SteamAPI_ISteamUtils_GetEnteredGamepadTextInput(
23694        self_: *mut ISteamUtils,
23695        pchText: *mut ::std::os::raw::c_char,
23696        cchText: uint32,
23697    ) -> bool;
23698}
23699extern "C" {
23700    pub fn SteamAPI_ISteamUtils_GetSteamUILanguage(
23701        self_: *mut ISteamUtils,
23702    ) -> *const ::std::os::raw::c_char;
23703}
23704extern "C" {
23705    pub fn SteamAPI_ISteamUtils_IsSteamRunningInVR(self_: *mut ISteamUtils) -> bool;
23706}
23707extern "C" {
23708    pub fn SteamAPI_ISteamUtils_SetOverlayNotificationInset(
23709        self_: *mut ISteamUtils,
23710        nHorizontalInset: ::std::os::raw::c_int,
23711        nVerticalInset: ::std::os::raw::c_int,
23712    );
23713}
23714extern "C" {
23715    pub fn SteamAPI_ISteamUtils_IsSteamInBigPictureMode(self_: *mut ISteamUtils) -> bool;
23716}
23717extern "C" {
23718    pub fn SteamAPI_ISteamUtils_StartVRDashboard(self_: *mut ISteamUtils);
23719}
23720extern "C" {
23721    pub fn SteamAPI_ISteamUtils_IsVRHeadsetStreamingEnabled(self_: *mut ISteamUtils) -> bool;
23722}
23723extern "C" {
23724    pub fn SteamAPI_ISteamUtils_SetVRHeadsetStreamingEnabled(
23725        self_: *mut ISteamUtils,
23726        bEnabled: bool,
23727    );
23728}
23729extern "C" {
23730    pub fn SteamAPI_ISteamUtils_IsSteamChinaLauncher(self_: *mut ISteamUtils) -> bool;
23731}
23732extern "C" {
23733    pub fn SteamAPI_ISteamUtils_InitFilterText(
23734        self_: *mut ISteamUtils,
23735        unFilterOptions: uint32,
23736    ) -> bool;
23737}
23738extern "C" {
23739    pub fn SteamAPI_ISteamUtils_FilterText(
23740        self_: *mut ISteamUtils,
23741        eContext: ETextFilteringContext,
23742        sourceSteamID: uint64_steamid,
23743        pchInputMessage: *const ::std::os::raw::c_char,
23744        pchOutFilteredText: *mut ::std::os::raw::c_char,
23745        nByteSizeOutFilteredText: uint32,
23746    ) -> ::std::os::raw::c_int;
23747}
23748extern "C" {
23749    pub fn SteamAPI_ISteamUtils_GetIPv6ConnectivityState(
23750        self_: *mut ISteamUtils,
23751        eProtocol: ESteamIPv6ConnectivityProtocol,
23752    ) -> ESteamIPv6ConnectivityState;
23753}
23754extern "C" {
23755    pub fn SteamAPI_ISteamUtils_IsSteamRunningOnSteamDeck(self_: *mut ISteamUtils) -> bool;
23756}
23757extern "C" {
23758    pub fn SteamAPI_ISteamUtils_ShowFloatingGamepadTextInput(
23759        self_: *mut ISteamUtils,
23760        eKeyboardMode: EFloatingGamepadTextInputMode,
23761        nTextFieldXPosition: ::std::os::raw::c_int,
23762        nTextFieldYPosition: ::std::os::raw::c_int,
23763        nTextFieldWidth: ::std::os::raw::c_int,
23764        nTextFieldHeight: ::std::os::raw::c_int,
23765    ) -> bool;
23766}
23767extern "C" {
23768    pub fn SteamAPI_ISteamUtils_SetGameLauncherMode(self_: *mut ISteamUtils, bLauncherMode: bool);
23769}
23770extern "C" {
23771    pub fn SteamAPI_ISteamUtils_DismissFloatingGamepadTextInput(self_: *mut ISteamUtils) -> bool;
23772}
23773extern "C" {
23774    pub fn SteamAPI_SteamMatchmaking_v009() -> *mut ISteamMatchmaking;
23775}
23776extern "C" {
23777    pub fn SteamAPI_ISteamMatchmaking_GetFavoriteGameCount(
23778        self_: *mut ISteamMatchmaking,
23779    ) -> ::std::os::raw::c_int;
23780}
23781extern "C" {
23782    pub fn SteamAPI_ISteamMatchmaking_GetFavoriteGame(
23783        self_: *mut ISteamMatchmaking,
23784        iGame: ::std::os::raw::c_int,
23785        pnAppID: *mut AppId_t,
23786        pnIP: *mut uint32,
23787        pnConnPort: *mut uint16,
23788        pnQueryPort: *mut uint16,
23789        punFlags: *mut uint32,
23790        pRTime32LastPlayedOnServer: *mut uint32,
23791    ) -> bool;
23792}
23793extern "C" {
23794    pub fn SteamAPI_ISteamMatchmaking_AddFavoriteGame(
23795        self_: *mut ISteamMatchmaking,
23796        nAppID: AppId_t,
23797        nIP: uint32,
23798        nConnPort: uint16,
23799        nQueryPort: uint16,
23800        unFlags: uint32,
23801        rTime32LastPlayedOnServer: uint32,
23802    ) -> ::std::os::raw::c_int;
23803}
23804extern "C" {
23805    pub fn SteamAPI_ISteamMatchmaking_RemoveFavoriteGame(
23806        self_: *mut ISteamMatchmaking,
23807        nAppID: AppId_t,
23808        nIP: uint32,
23809        nConnPort: uint16,
23810        nQueryPort: uint16,
23811        unFlags: uint32,
23812    ) -> bool;
23813}
23814extern "C" {
23815    pub fn SteamAPI_ISteamMatchmaking_RequestLobbyList(
23816        self_: *mut ISteamMatchmaking,
23817    ) -> SteamAPICall_t;
23818}
23819extern "C" {
23820    pub fn SteamAPI_ISteamMatchmaking_AddRequestLobbyListStringFilter(
23821        self_: *mut ISteamMatchmaking,
23822        pchKeyToMatch: *const ::std::os::raw::c_char,
23823        pchValueToMatch: *const ::std::os::raw::c_char,
23824        eComparisonType: ELobbyComparison,
23825    );
23826}
23827extern "C" {
23828    pub fn SteamAPI_ISteamMatchmaking_AddRequestLobbyListNumericalFilter(
23829        self_: *mut ISteamMatchmaking,
23830        pchKeyToMatch: *const ::std::os::raw::c_char,
23831        nValueToMatch: ::std::os::raw::c_int,
23832        eComparisonType: ELobbyComparison,
23833    );
23834}
23835extern "C" {
23836    pub fn SteamAPI_ISteamMatchmaking_AddRequestLobbyListNearValueFilter(
23837        self_: *mut ISteamMatchmaking,
23838        pchKeyToMatch: *const ::std::os::raw::c_char,
23839        nValueToBeCloseTo: ::std::os::raw::c_int,
23840    );
23841}
23842extern "C" {
23843    pub fn SteamAPI_ISteamMatchmaking_AddRequestLobbyListFilterSlotsAvailable(
23844        self_: *mut ISteamMatchmaking,
23845        nSlotsAvailable: ::std::os::raw::c_int,
23846    );
23847}
23848extern "C" {
23849    pub fn SteamAPI_ISteamMatchmaking_AddRequestLobbyListDistanceFilter(
23850        self_: *mut ISteamMatchmaking,
23851        eLobbyDistanceFilter: ELobbyDistanceFilter,
23852    );
23853}
23854extern "C" {
23855    pub fn SteamAPI_ISteamMatchmaking_AddRequestLobbyListResultCountFilter(
23856        self_: *mut ISteamMatchmaking,
23857        cMaxResults: ::std::os::raw::c_int,
23858    );
23859}
23860extern "C" {
23861    pub fn SteamAPI_ISteamMatchmaking_AddRequestLobbyListCompatibleMembersFilter(
23862        self_: *mut ISteamMatchmaking,
23863        steamIDLobby: uint64_steamid,
23864    );
23865}
23866extern "C" {
23867    pub fn SteamAPI_ISteamMatchmaking_GetLobbyByIndex(
23868        self_: *mut ISteamMatchmaking,
23869        iLobby: ::std::os::raw::c_int,
23870    ) -> uint64_steamid;
23871}
23872extern "C" {
23873    pub fn SteamAPI_ISteamMatchmaking_CreateLobby(
23874        self_: *mut ISteamMatchmaking,
23875        eLobbyType: ELobbyType,
23876        cMaxMembers: ::std::os::raw::c_int,
23877    ) -> SteamAPICall_t;
23878}
23879extern "C" {
23880    pub fn SteamAPI_ISteamMatchmaking_JoinLobby(
23881        self_: *mut ISteamMatchmaking,
23882        steamIDLobby: uint64_steamid,
23883    ) -> SteamAPICall_t;
23884}
23885extern "C" {
23886    pub fn SteamAPI_ISteamMatchmaking_LeaveLobby(
23887        self_: *mut ISteamMatchmaking,
23888        steamIDLobby: uint64_steamid,
23889    );
23890}
23891extern "C" {
23892    pub fn SteamAPI_ISteamMatchmaking_InviteUserToLobby(
23893        self_: *mut ISteamMatchmaking,
23894        steamIDLobby: uint64_steamid,
23895        steamIDInvitee: uint64_steamid,
23896    ) -> bool;
23897}
23898extern "C" {
23899    pub fn SteamAPI_ISteamMatchmaking_GetNumLobbyMembers(
23900        self_: *mut ISteamMatchmaking,
23901        steamIDLobby: uint64_steamid,
23902    ) -> ::std::os::raw::c_int;
23903}
23904extern "C" {
23905    pub fn SteamAPI_ISteamMatchmaking_GetLobbyMemberByIndex(
23906        self_: *mut ISteamMatchmaking,
23907        steamIDLobby: uint64_steamid,
23908        iMember: ::std::os::raw::c_int,
23909    ) -> uint64_steamid;
23910}
23911extern "C" {
23912    pub fn SteamAPI_ISteamMatchmaking_GetLobbyData(
23913        self_: *mut ISteamMatchmaking,
23914        steamIDLobby: uint64_steamid,
23915        pchKey: *const ::std::os::raw::c_char,
23916    ) -> *const ::std::os::raw::c_char;
23917}
23918extern "C" {
23919    pub fn SteamAPI_ISteamMatchmaking_SetLobbyData(
23920        self_: *mut ISteamMatchmaking,
23921        steamIDLobby: uint64_steamid,
23922        pchKey: *const ::std::os::raw::c_char,
23923        pchValue: *const ::std::os::raw::c_char,
23924    ) -> bool;
23925}
23926extern "C" {
23927    pub fn SteamAPI_ISteamMatchmaking_GetLobbyDataCount(
23928        self_: *mut ISteamMatchmaking,
23929        steamIDLobby: uint64_steamid,
23930    ) -> ::std::os::raw::c_int;
23931}
23932extern "C" {
23933    pub fn SteamAPI_ISteamMatchmaking_GetLobbyDataByIndex(
23934        self_: *mut ISteamMatchmaking,
23935        steamIDLobby: uint64_steamid,
23936        iLobbyData: ::std::os::raw::c_int,
23937        pchKey: *mut ::std::os::raw::c_char,
23938        cchKeyBufferSize: ::std::os::raw::c_int,
23939        pchValue: *mut ::std::os::raw::c_char,
23940        cchValueBufferSize: ::std::os::raw::c_int,
23941    ) -> bool;
23942}
23943extern "C" {
23944    pub fn SteamAPI_ISteamMatchmaking_DeleteLobbyData(
23945        self_: *mut ISteamMatchmaking,
23946        steamIDLobby: uint64_steamid,
23947        pchKey: *const ::std::os::raw::c_char,
23948    ) -> bool;
23949}
23950extern "C" {
23951    pub fn SteamAPI_ISteamMatchmaking_GetLobbyMemberData(
23952        self_: *mut ISteamMatchmaking,
23953        steamIDLobby: uint64_steamid,
23954        steamIDUser: uint64_steamid,
23955        pchKey: *const ::std::os::raw::c_char,
23956    ) -> *const ::std::os::raw::c_char;
23957}
23958extern "C" {
23959    pub fn SteamAPI_ISteamMatchmaking_SetLobbyMemberData(
23960        self_: *mut ISteamMatchmaking,
23961        steamIDLobby: uint64_steamid,
23962        pchKey: *const ::std::os::raw::c_char,
23963        pchValue: *const ::std::os::raw::c_char,
23964    );
23965}
23966extern "C" {
23967    pub fn SteamAPI_ISteamMatchmaking_SendLobbyChatMsg(
23968        self_: *mut ISteamMatchmaking,
23969        steamIDLobby: uint64_steamid,
23970        pvMsgBody: *const ::std::os::raw::c_void,
23971        cubMsgBody: ::std::os::raw::c_int,
23972    ) -> bool;
23973}
23974extern "C" {
23975    pub fn SteamAPI_ISteamMatchmaking_GetLobbyChatEntry(
23976        self_: *mut ISteamMatchmaking,
23977        steamIDLobby: uint64_steamid,
23978        iChatID: ::std::os::raw::c_int,
23979        pSteamIDUser: *mut CSteamID,
23980        pvData: *mut ::std::os::raw::c_void,
23981        cubData: ::std::os::raw::c_int,
23982        peChatEntryType: *mut EChatEntryType,
23983    ) -> ::std::os::raw::c_int;
23984}
23985extern "C" {
23986    pub fn SteamAPI_ISteamMatchmaking_RequestLobbyData(
23987        self_: *mut ISteamMatchmaking,
23988        steamIDLobby: uint64_steamid,
23989    ) -> bool;
23990}
23991extern "C" {
23992    pub fn SteamAPI_ISteamMatchmaking_SetLobbyGameServer(
23993        self_: *mut ISteamMatchmaking,
23994        steamIDLobby: uint64_steamid,
23995        unGameServerIP: uint32,
23996        unGameServerPort: uint16,
23997        steamIDGameServer: uint64_steamid,
23998    );
23999}
24000extern "C" {
24001    pub fn SteamAPI_ISteamMatchmaking_GetLobbyGameServer(
24002        self_: *mut ISteamMatchmaking,
24003        steamIDLobby: uint64_steamid,
24004        punGameServerIP: *mut uint32,
24005        punGameServerPort: *mut uint16,
24006        psteamIDGameServer: *mut CSteamID,
24007    ) -> bool;
24008}
24009extern "C" {
24010    pub fn SteamAPI_ISteamMatchmaking_SetLobbyMemberLimit(
24011        self_: *mut ISteamMatchmaking,
24012        steamIDLobby: uint64_steamid,
24013        cMaxMembers: ::std::os::raw::c_int,
24014    ) -> bool;
24015}
24016extern "C" {
24017    pub fn SteamAPI_ISteamMatchmaking_GetLobbyMemberLimit(
24018        self_: *mut ISteamMatchmaking,
24019        steamIDLobby: uint64_steamid,
24020    ) -> ::std::os::raw::c_int;
24021}
24022extern "C" {
24023    pub fn SteamAPI_ISteamMatchmaking_SetLobbyType(
24024        self_: *mut ISteamMatchmaking,
24025        steamIDLobby: uint64_steamid,
24026        eLobbyType: ELobbyType,
24027    ) -> bool;
24028}
24029extern "C" {
24030    pub fn SteamAPI_ISteamMatchmaking_SetLobbyJoinable(
24031        self_: *mut ISteamMatchmaking,
24032        steamIDLobby: uint64_steamid,
24033        bLobbyJoinable: bool,
24034    ) -> bool;
24035}
24036extern "C" {
24037    pub fn SteamAPI_ISteamMatchmaking_GetLobbyOwner(
24038        self_: *mut ISteamMatchmaking,
24039        steamIDLobby: uint64_steamid,
24040    ) -> uint64_steamid;
24041}
24042extern "C" {
24043    pub fn SteamAPI_ISteamMatchmaking_SetLobbyOwner(
24044        self_: *mut ISteamMatchmaking,
24045        steamIDLobby: uint64_steamid,
24046        steamIDNewOwner: uint64_steamid,
24047    ) -> bool;
24048}
24049extern "C" {
24050    pub fn SteamAPI_ISteamMatchmaking_SetLinkedLobby(
24051        self_: *mut ISteamMatchmaking,
24052        steamIDLobby: uint64_steamid,
24053        steamIDLobbyDependent: uint64_steamid,
24054    ) -> bool;
24055}
24056extern "C" {
24057    pub fn SteamAPI_ISteamMatchmakingServerListResponse_ServerResponded(
24058        self_: *mut ISteamMatchmakingServerListResponse,
24059        hRequest: HServerListRequest,
24060        iServer: ::std::os::raw::c_int,
24061    );
24062}
24063extern "C" {
24064    pub fn SteamAPI_ISteamMatchmakingServerListResponse_ServerFailedToRespond(
24065        self_: *mut ISteamMatchmakingServerListResponse,
24066        hRequest: HServerListRequest,
24067        iServer: ::std::os::raw::c_int,
24068    );
24069}
24070extern "C" {
24071    pub fn SteamAPI_ISteamMatchmakingServerListResponse_RefreshComplete(
24072        self_: *mut ISteamMatchmakingServerListResponse,
24073        hRequest: HServerListRequest,
24074        response: EMatchMakingServerResponse,
24075    );
24076}
24077extern "C" {
24078    pub fn SteamAPI_ISteamMatchmakingPingResponse_ServerResponded(
24079        self_: *mut ISteamMatchmakingPingResponse,
24080        server: *mut gameserveritem_t,
24081    );
24082}
24083extern "C" {
24084    pub fn SteamAPI_ISteamMatchmakingPingResponse_ServerFailedToRespond(
24085        self_: *mut ISteamMatchmakingPingResponse,
24086    );
24087}
24088extern "C" {
24089    pub fn SteamAPI_ISteamMatchmakingPlayersResponse_AddPlayerToList(
24090        self_: *mut ISteamMatchmakingPlayersResponse,
24091        pchName: *const ::std::os::raw::c_char,
24092        nScore: ::std::os::raw::c_int,
24093        flTimePlayed: f32,
24094    );
24095}
24096extern "C" {
24097    pub fn SteamAPI_ISteamMatchmakingPlayersResponse_PlayersFailedToRespond(
24098        self_: *mut ISteamMatchmakingPlayersResponse,
24099    );
24100}
24101extern "C" {
24102    pub fn SteamAPI_ISteamMatchmakingPlayersResponse_PlayersRefreshComplete(
24103        self_: *mut ISteamMatchmakingPlayersResponse,
24104    );
24105}
24106extern "C" {
24107    pub fn SteamAPI_ISteamMatchmakingRulesResponse_RulesResponded(
24108        self_: *mut ISteamMatchmakingRulesResponse,
24109        pchRule: *const ::std::os::raw::c_char,
24110        pchValue: *const ::std::os::raw::c_char,
24111    );
24112}
24113extern "C" {
24114    pub fn SteamAPI_ISteamMatchmakingRulesResponse_RulesFailedToRespond(
24115        self_: *mut ISteamMatchmakingRulesResponse,
24116    );
24117}
24118extern "C" {
24119    pub fn SteamAPI_ISteamMatchmakingRulesResponse_RulesRefreshComplete(
24120        self_: *mut ISteamMatchmakingRulesResponse,
24121    );
24122}
24123extern "C" {
24124    pub fn SteamAPI_SteamMatchmakingServers_v002() -> *mut ISteamMatchmakingServers;
24125}
24126extern "C" {
24127    pub fn SteamAPI_ISteamMatchmakingServers_RequestInternetServerList(
24128        self_: *mut ISteamMatchmakingServers,
24129        iApp: AppId_t,
24130        ppchFilters: *mut *mut MatchMakingKeyValuePair_t,
24131        nFilters: uint32,
24132        pRequestServersResponse: *mut ISteamMatchmakingServerListResponse,
24133    ) -> HServerListRequest;
24134}
24135extern "C" {
24136    pub fn SteamAPI_ISteamMatchmakingServers_RequestLANServerList(
24137        self_: *mut ISteamMatchmakingServers,
24138        iApp: AppId_t,
24139        pRequestServersResponse: *mut ISteamMatchmakingServerListResponse,
24140    ) -> HServerListRequest;
24141}
24142extern "C" {
24143    pub fn SteamAPI_ISteamMatchmakingServers_RequestFriendsServerList(
24144        self_: *mut ISteamMatchmakingServers,
24145        iApp: AppId_t,
24146        ppchFilters: *mut *mut MatchMakingKeyValuePair_t,
24147        nFilters: uint32,
24148        pRequestServersResponse: *mut ISteamMatchmakingServerListResponse,
24149    ) -> HServerListRequest;
24150}
24151extern "C" {
24152    pub fn SteamAPI_ISteamMatchmakingServers_RequestFavoritesServerList(
24153        self_: *mut ISteamMatchmakingServers,
24154        iApp: AppId_t,
24155        ppchFilters: *mut *mut MatchMakingKeyValuePair_t,
24156        nFilters: uint32,
24157        pRequestServersResponse: *mut ISteamMatchmakingServerListResponse,
24158    ) -> HServerListRequest;
24159}
24160extern "C" {
24161    pub fn SteamAPI_ISteamMatchmakingServers_RequestHistoryServerList(
24162        self_: *mut ISteamMatchmakingServers,
24163        iApp: AppId_t,
24164        ppchFilters: *mut *mut MatchMakingKeyValuePair_t,
24165        nFilters: uint32,
24166        pRequestServersResponse: *mut ISteamMatchmakingServerListResponse,
24167    ) -> HServerListRequest;
24168}
24169extern "C" {
24170    pub fn SteamAPI_ISteamMatchmakingServers_RequestSpectatorServerList(
24171        self_: *mut ISteamMatchmakingServers,
24172        iApp: AppId_t,
24173        ppchFilters: *mut *mut MatchMakingKeyValuePair_t,
24174        nFilters: uint32,
24175        pRequestServersResponse: *mut ISteamMatchmakingServerListResponse,
24176    ) -> HServerListRequest;
24177}
24178extern "C" {
24179    pub fn SteamAPI_ISteamMatchmakingServers_ReleaseRequest(
24180        self_: *mut ISteamMatchmakingServers,
24181        hServerListRequest: HServerListRequest,
24182    );
24183}
24184extern "C" {
24185    pub fn SteamAPI_ISteamMatchmakingServers_GetServerDetails(
24186        self_: *mut ISteamMatchmakingServers,
24187        hRequest: HServerListRequest,
24188        iServer: ::std::os::raw::c_int,
24189    ) -> *mut gameserveritem_t;
24190}
24191extern "C" {
24192    pub fn SteamAPI_ISteamMatchmakingServers_CancelQuery(
24193        self_: *mut ISteamMatchmakingServers,
24194        hRequest: HServerListRequest,
24195    );
24196}
24197extern "C" {
24198    pub fn SteamAPI_ISteamMatchmakingServers_RefreshQuery(
24199        self_: *mut ISteamMatchmakingServers,
24200        hRequest: HServerListRequest,
24201    );
24202}
24203extern "C" {
24204    pub fn SteamAPI_ISteamMatchmakingServers_IsRefreshing(
24205        self_: *mut ISteamMatchmakingServers,
24206        hRequest: HServerListRequest,
24207    ) -> bool;
24208}
24209extern "C" {
24210    pub fn SteamAPI_ISteamMatchmakingServers_GetServerCount(
24211        self_: *mut ISteamMatchmakingServers,
24212        hRequest: HServerListRequest,
24213    ) -> ::std::os::raw::c_int;
24214}
24215extern "C" {
24216    pub fn SteamAPI_ISteamMatchmakingServers_RefreshServer(
24217        self_: *mut ISteamMatchmakingServers,
24218        hRequest: HServerListRequest,
24219        iServer: ::std::os::raw::c_int,
24220    );
24221}
24222extern "C" {
24223    pub fn SteamAPI_ISteamMatchmakingServers_PingServer(
24224        self_: *mut ISteamMatchmakingServers,
24225        unIP: uint32,
24226        usPort: uint16,
24227        pRequestServersResponse: *mut ISteamMatchmakingPingResponse,
24228    ) -> HServerQuery;
24229}
24230extern "C" {
24231    pub fn SteamAPI_ISteamMatchmakingServers_PlayerDetails(
24232        self_: *mut ISteamMatchmakingServers,
24233        unIP: uint32,
24234        usPort: uint16,
24235        pRequestServersResponse: *mut ISteamMatchmakingPlayersResponse,
24236    ) -> HServerQuery;
24237}
24238extern "C" {
24239    pub fn SteamAPI_ISteamMatchmakingServers_ServerRules(
24240        self_: *mut ISteamMatchmakingServers,
24241        unIP: uint32,
24242        usPort: uint16,
24243        pRequestServersResponse: *mut ISteamMatchmakingRulesResponse,
24244    ) -> HServerQuery;
24245}
24246extern "C" {
24247    pub fn SteamAPI_ISteamMatchmakingServers_CancelServerQuery(
24248        self_: *mut ISteamMatchmakingServers,
24249        hServerQuery: HServerQuery,
24250    );
24251}
24252extern "C" {
24253    pub fn SteamAPI_SteamGameSearch_v001() -> *mut ISteamGameSearch;
24254}
24255extern "C" {
24256    pub fn SteamAPI_ISteamGameSearch_AddGameSearchParams(
24257        self_: *mut ISteamGameSearch,
24258        pchKeyToFind: *const ::std::os::raw::c_char,
24259        pchValuesToFind: *const ::std::os::raw::c_char,
24260    ) -> EGameSearchErrorCode_t;
24261}
24262extern "C" {
24263    pub fn SteamAPI_ISteamGameSearch_SearchForGameWithLobby(
24264        self_: *mut ISteamGameSearch,
24265        steamIDLobby: uint64_steamid,
24266        nPlayerMin: ::std::os::raw::c_int,
24267        nPlayerMax: ::std::os::raw::c_int,
24268    ) -> EGameSearchErrorCode_t;
24269}
24270extern "C" {
24271    pub fn SteamAPI_ISteamGameSearch_SearchForGameSolo(
24272        self_: *mut ISteamGameSearch,
24273        nPlayerMin: ::std::os::raw::c_int,
24274        nPlayerMax: ::std::os::raw::c_int,
24275    ) -> EGameSearchErrorCode_t;
24276}
24277extern "C" {
24278    pub fn SteamAPI_ISteamGameSearch_AcceptGame(
24279        self_: *mut ISteamGameSearch,
24280    ) -> EGameSearchErrorCode_t;
24281}
24282extern "C" {
24283    pub fn SteamAPI_ISteamGameSearch_DeclineGame(
24284        self_: *mut ISteamGameSearch,
24285    ) -> EGameSearchErrorCode_t;
24286}
24287extern "C" {
24288    pub fn SteamAPI_ISteamGameSearch_RetrieveConnectionDetails(
24289        self_: *mut ISteamGameSearch,
24290        steamIDHost: uint64_steamid,
24291        pchConnectionDetails: *mut ::std::os::raw::c_char,
24292        cubConnectionDetails: ::std::os::raw::c_int,
24293    ) -> EGameSearchErrorCode_t;
24294}
24295extern "C" {
24296    pub fn SteamAPI_ISteamGameSearch_EndGameSearch(
24297        self_: *mut ISteamGameSearch,
24298    ) -> EGameSearchErrorCode_t;
24299}
24300extern "C" {
24301    pub fn SteamAPI_ISteamGameSearch_SetGameHostParams(
24302        self_: *mut ISteamGameSearch,
24303        pchKey: *const ::std::os::raw::c_char,
24304        pchValue: *const ::std::os::raw::c_char,
24305    ) -> EGameSearchErrorCode_t;
24306}
24307extern "C" {
24308    pub fn SteamAPI_ISteamGameSearch_SetConnectionDetails(
24309        self_: *mut ISteamGameSearch,
24310        pchConnectionDetails: *const ::std::os::raw::c_char,
24311        cubConnectionDetails: ::std::os::raw::c_int,
24312    ) -> EGameSearchErrorCode_t;
24313}
24314extern "C" {
24315    pub fn SteamAPI_ISteamGameSearch_RequestPlayersForGame(
24316        self_: *mut ISteamGameSearch,
24317        nPlayerMin: ::std::os::raw::c_int,
24318        nPlayerMax: ::std::os::raw::c_int,
24319        nMaxTeamSize: ::std::os::raw::c_int,
24320    ) -> EGameSearchErrorCode_t;
24321}
24322extern "C" {
24323    pub fn SteamAPI_ISteamGameSearch_HostConfirmGameStart(
24324        self_: *mut ISteamGameSearch,
24325        ullUniqueGameID: uint64,
24326    ) -> EGameSearchErrorCode_t;
24327}
24328extern "C" {
24329    pub fn SteamAPI_ISteamGameSearch_CancelRequestPlayersForGame(
24330        self_: *mut ISteamGameSearch,
24331    ) -> EGameSearchErrorCode_t;
24332}
24333extern "C" {
24334    pub fn SteamAPI_ISteamGameSearch_SubmitPlayerResult(
24335        self_: *mut ISteamGameSearch,
24336        ullUniqueGameID: uint64,
24337        steamIDPlayer: uint64_steamid,
24338        EPlayerResult: EPlayerResult_t,
24339    ) -> EGameSearchErrorCode_t;
24340}
24341extern "C" {
24342    pub fn SteamAPI_ISteamGameSearch_EndGame(
24343        self_: *mut ISteamGameSearch,
24344        ullUniqueGameID: uint64,
24345    ) -> EGameSearchErrorCode_t;
24346}
24347extern "C" {
24348    pub fn SteamAPI_SteamParties_v002() -> *mut ISteamParties;
24349}
24350extern "C" {
24351    pub fn SteamAPI_ISteamParties_GetNumActiveBeacons(self_: *mut ISteamParties) -> uint32;
24352}
24353extern "C" {
24354    pub fn SteamAPI_ISteamParties_GetBeaconByIndex(
24355        self_: *mut ISteamParties,
24356        unIndex: uint32,
24357    ) -> PartyBeaconID_t;
24358}
24359extern "C" {
24360    pub fn SteamAPI_ISteamParties_GetBeaconDetails(
24361        self_: *mut ISteamParties,
24362        ulBeaconID: PartyBeaconID_t,
24363        pSteamIDBeaconOwner: *mut CSteamID,
24364        pLocation: *mut SteamPartyBeaconLocation_t,
24365        pchMetadata: *mut ::std::os::raw::c_char,
24366        cchMetadata: ::std::os::raw::c_int,
24367    ) -> bool;
24368}
24369extern "C" {
24370    pub fn SteamAPI_ISteamParties_JoinParty(
24371        self_: *mut ISteamParties,
24372        ulBeaconID: PartyBeaconID_t,
24373    ) -> SteamAPICall_t;
24374}
24375extern "C" {
24376    pub fn SteamAPI_ISteamParties_GetNumAvailableBeaconLocations(
24377        self_: *mut ISteamParties,
24378        puNumLocations: *mut uint32,
24379    ) -> bool;
24380}
24381extern "C" {
24382    pub fn SteamAPI_ISteamParties_GetAvailableBeaconLocations(
24383        self_: *mut ISteamParties,
24384        pLocationList: *mut SteamPartyBeaconLocation_t,
24385        uMaxNumLocations: uint32,
24386    ) -> bool;
24387}
24388extern "C" {
24389    pub fn SteamAPI_ISteamParties_CreateBeacon(
24390        self_: *mut ISteamParties,
24391        unOpenSlots: uint32,
24392        pBeaconLocation: *mut SteamPartyBeaconLocation_t,
24393        pchConnectString: *const ::std::os::raw::c_char,
24394        pchMetadata: *const ::std::os::raw::c_char,
24395    ) -> SteamAPICall_t;
24396}
24397extern "C" {
24398    pub fn SteamAPI_ISteamParties_OnReservationCompleted(
24399        self_: *mut ISteamParties,
24400        ulBeacon: PartyBeaconID_t,
24401        steamIDUser: uint64_steamid,
24402    );
24403}
24404extern "C" {
24405    pub fn SteamAPI_ISteamParties_CancelReservation(
24406        self_: *mut ISteamParties,
24407        ulBeacon: PartyBeaconID_t,
24408        steamIDUser: uint64_steamid,
24409    );
24410}
24411extern "C" {
24412    pub fn SteamAPI_ISteamParties_ChangeNumOpenSlots(
24413        self_: *mut ISteamParties,
24414        ulBeacon: PartyBeaconID_t,
24415        unOpenSlots: uint32,
24416    ) -> SteamAPICall_t;
24417}
24418extern "C" {
24419    pub fn SteamAPI_ISteamParties_DestroyBeacon(
24420        self_: *mut ISteamParties,
24421        ulBeacon: PartyBeaconID_t,
24422    ) -> bool;
24423}
24424extern "C" {
24425    pub fn SteamAPI_ISteamParties_GetBeaconLocationData(
24426        self_: *mut ISteamParties,
24427        BeaconLocation: SteamPartyBeaconLocation_t,
24428        eData: ESteamPartyBeaconLocationData,
24429        pchDataStringOut: *mut ::std::os::raw::c_char,
24430        cchDataStringOut: ::std::os::raw::c_int,
24431    ) -> bool;
24432}
24433extern "C" {
24434    pub fn SteamAPI_SteamRemoteStorage_v016() -> *mut ISteamRemoteStorage;
24435}
24436extern "C" {
24437    pub fn SteamAPI_ISteamRemoteStorage_FileWrite(
24438        self_: *mut ISteamRemoteStorage,
24439        pchFile: *const ::std::os::raw::c_char,
24440        pvData: *const ::std::os::raw::c_void,
24441        cubData: int32,
24442    ) -> bool;
24443}
24444extern "C" {
24445    pub fn SteamAPI_ISteamRemoteStorage_FileRead(
24446        self_: *mut ISteamRemoteStorage,
24447        pchFile: *const ::std::os::raw::c_char,
24448        pvData: *mut ::std::os::raw::c_void,
24449        cubDataToRead: int32,
24450    ) -> int32;
24451}
24452extern "C" {
24453    pub fn SteamAPI_ISteamRemoteStorage_FileWriteAsync(
24454        self_: *mut ISteamRemoteStorage,
24455        pchFile: *const ::std::os::raw::c_char,
24456        pvData: *const ::std::os::raw::c_void,
24457        cubData: uint32,
24458    ) -> SteamAPICall_t;
24459}
24460extern "C" {
24461    pub fn SteamAPI_ISteamRemoteStorage_FileReadAsync(
24462        self_: *mut ISteamRemoteStorage,
24463        pchFile: *const ::std::os::raw::c_char,
24464        nOffset: uint32,
24465        cubToRead: uint32,
24466    ) -> SteamAPICall_t;
24467}
24468extern "C" {
24469    pub fn SteamAPI_ISteamRemoteStorage_FileReadAsyncComplete(
24470        self_: *mut ISteamRemoteStorage,
24471        hReadCall: SteamAPICall_t,
24472        pvBuffer: *mut ::std::os::raw::c_void,
24473        cubToRead: uint32,
24474    ) -> bool;
24475}
24476extern "C" {
24477    pub fn SteamAPI_ISteamRemoteStorage_FileForget(
24478        self_: *mut ISteamRemoteStorage,
24479        pchFile: *const ::std::os::raw::c_char,
24480    ) -> bool;
24481}
24482extern "C" {
24483    pub fn SteamAPI_ISteamRemoteStorage_FileDelete(
24484        self_: *mut ISteamRemoteStorage,
24485        pchFile: *const ::std::os::raw::c_char,
24486    ) -> bool;
24487}
24488extern "C" {
24489    pub fn SteamAPI_ISteamRemoteStorage_FileShare(
24490        self_: *mut ISteamRemoteStorage,
24491        pchFile: *const ::std::os::raw::c_char,
24492    ) -> SteamAPICall_t;
24493}
24494extern "C" {
24495    pub fn SteamAPI_ISteamRemoteStorage_SetSyncPlatforms(
24496        self_: *mut ISteamRemoteStorage,
24497        pchFile: *const ::std::os::raw::c_char,
24498        eRemoteStoragePlatform: ERemoteStoragePlatform,
24499    ) -> bool;
24500}
24501extern "C" {
24502    pub fn SteamAPI_ISteamRemoteStorage_FileWriteStreamOpen(
24503        self_: *mut ISteamRemoteStorage,
24504        pchFile: *const ::std::os::raw::c_char,
24505    ) -> UGCFileWriteStreamHandle_t;
24506}
24507extern "C" {
24508    pub fn SteamAPI_ISteamRemoteStorage_FileWriteStreamWriteChunk(
24509        self_: *mut ISteamRemoteStorage,
24510        writeHandle: UGCFileWriteStreamHandle_t,
24511        pvData: *const ::std::os::raw::c_void,
24512        cubData: int32,
24513    ) -> bool;
24514}
24515extern "C" {
24516    pub fn SteamAPI_ISteamRemoteStorage_FileWriteStreamClose(
24517        self_: *mut ISteamRemoteStorage,
24518        writeHandle: UGCFileWriteStreamHandle_t,
24519    ) -> bool;
24520}
24521extern "C" {
24522    pub fn SteamAPI_ISteamRemoteStorage_FileWriteStreamCancel(
24523        self_: *mut ISteamRemoteStorage,
24524        writeHandle: UGCFileWriteStreamHandle_t,
24525    ) -> bool;
24526}
24527extern "C" {
24528    pub fn SteamAPI_ISteamRemoteStorage_FileExists(
24529        self_: *mut ISteamRemoteStorage,
24530        pchFile: *const ::std::os::raw::c_char,
24531    ) -> bool;
24532}
24533extern "C" {
24534    pub fn SteamAPI_ISteamRemoteStorage_FilePersisted(
24535        self_: *mut ISteamRemoteStorage,
24536        pchFile: *const ::std::os::raw::c_char,
24537    ) -> bool;
24538}
24539extern "C" {
24540    pub fn SteamAPI_ISteamRemoteStorage_GetFileSize(
24541        self_: *mut ISteamRemoteStorage,
24542        pchFile: *const ::std::os::raw::c_char,
24543    ) -> int32;
24544}
24545extern "C" {
24546    pub fn SteamAPI_ISteamRemoteStorage_GetFileTimestamp(
24547        self_: *mut ISteamRemoteStorage,
24548        pchFile: *const ::std::os::raw::c_char,
24549    ) -> int64;
24550}
24551extern "C" {
24552    pub fn SteamAPI_ISteamRemoteStorage_GetSyncPlatforms(
24553        self_: *mut ISteamRemoteStorage,
24554        pchFile: *const ::std::os::raw::c_char,
24555    ) -> ERemoteStoragePlatform;
24556}
24557extern "C" {
24558    pub fn SteamAPI_ISteamRemoteStorage_GetFileCount(self_: *mut ISteamRemoteStorage) -> int32;
24559}
24560extern "C" {
24561    pub fn SteamAPI_ISteamRemoteStorage_GetFileNameAndSize(
24562        self_: *mut ISteamRemoteStorage,
24563        iFile: ::std::os::raw::c_int,
24564        pnFileSizeInBytes: *mut int32,
24565    ) -> *const ::std::os::raw::c_char;
24566}
24567extern "C" {
24568    pub fn SteamAPI_ISteamRemoteStorage_GetQuota(
24569        self_: *mut ISteamRemoteStorage,
24570        pnTotalBytes: *mut uint64,
24571        puAvailableBytes: *mut uint64,
24572    ) -> bool;
24573}
24574extern "C" {
24575    pub fn SteamAPI_ISteamRemoteStorage_IsCloudEnabledForAccount(
24576        self_: *mut ISteamRemoteStorage,
24577    ) -> bool;
24578}
24579extern "C" {
24580    pub fn SteamAPI_ISteamRemoteStorage_IsCloudEnabledForApp(
24581        self_: *mut ISteamRemoteStorage,
24582    ) -> bool;
24583}
24584extern "C" {
24585    pub fn SteamAPI_ISteamRemoteStorage_SetCloudEnabledForApp(
24586        self_: *mut ISteamRemoteStorage,
24587        bEnabled: bool,
24588    );
24589}
24590extern "C" {
24591    pub fn SteamAPI_ISteamRemoteStorage_UGCDownload(
24592        self_: *mut ISteamRemoteStorage,
24593        hContent: UGCHandle_t,
24594        unPriority: uint32,
24595    ) -> SteamAPICall_t;
24596}
24597extern "C" {
24598    pub fn SteamAPI_ISteamRemoteStorage_GetUGCDownloadProgress(
24599        self_: *mut ISteamRemoteStorage,
24600        hContent: UGCHandle_t,
24601        pnBytesDownloaded: *mut int32,
24602        pnBytesExpected: *mut int32,
24603    ) -> bool;
24604}
24605extern "C" {
24606    pub fn SteamAPI_ISteamRemoteStorage_GetUGCDetails(
24607        self_: *mut ISteamRemoteStorage,
24608        hContent: UGCHandle_t,
24609        pnAppID: *mut AppId_t,
24610        ppchName: *mut *mut ::std::os::raw::c_char,
24611        pnFileSizeInBytes: *mut int32,
24612        pSteamIDOwner: *mut CSteamID,
24613    ) -> bool;
24614}
24615extern "C" {
24616    pub fn SteamAPI_ISteamRemoteStorage_UGCRead(
24617        self_: *mut ISteamRemoteStorage,
24618        hContent: UGCHandle_t,
24619        pvData: *mut ::std::os::raw::c_void,
24620        cubDataToRead: int32,
24621        cOffset: uint32,
24622        eAction: EUGCReadAction,
24623    ) -> int32;
24624}
24625extern "C" {
24626    pub fn SteamAPI_ISteamRemoteStorage_GetCachedUGCCount(self_: *mut ISteamRemoteStorage)
24627        -> int32;
24628}
24629extern "C" {
24630    pub fn SteamAPI_ISteamRemoteStorage_GetCachedUGCHandle(
24631        self_: *mut ISteamRemoteStorage,
24632        iCachedContent: int32,
24633    ) -> UGCHandle_t;
24634}
24635extern "C" {
24636    pub fn SteamAPI_ISteamRemoteStorage_PublishWorkshopFile(
24637        self_: *mut ISteamRemoteStorage,
24638        pchFile: *const ::std::os::raw::c_char,
24639        pchPreviewFile: *const ::std::os::raw::c_char,
24640        nConsumerAppId: AppId_t,
24641        pchTitle: *const ::std::os::raw::c_char,
24642        pchDescription: *const ::std::os::raw::c_char,
24643        eVisibility: ERemoteStoragePublishedFileVisibility,
24644        pTags: *mut SteamParamStringArray_t,
24645        eWorkshopFileType: EWorkshopFileType,
24646    ) -> SteamAPICall_t;
24647}
24648extern "C" {
24649    pub fn SteamAPI_ISteamRemoteStorage_CreatePublishedFileUpdateRequest(
24650        self_: *mut ISteamRemoteStorage,
24651        unPublishedFileId: PublishedFileId_t,
24652    ) -> PublishedFileUpdateHandle_t;
24653}
24654extern "C" {
24655    pub fn SteamAPI_ISteamRemoteStorage_UpdatePublishedFileFile(
24656        self_: *mut ISteamRemoteStorage,
24657        updateHandle: PublishedFileUpdateHandle_t,
24658        pchFile: *const ::std::os::raw::c_char,
24659    ) -> bool;
24660}
24661extern "C" {
24662    pub fn SteamAPI_ISteamRemoteStorage_UpdatePublishedFilePreviewFile(
24663        self_: *mut ISteamRemoteStorage,
24664        updateHandle: PublishedFileUpdateHandle_t,
24665        pchPreviewFile: *const ::std::os::raw::c_char,
24666    ) -> bool;
24667}
24668extern "C" {
24669    pub fn SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTitle(
24670        self_: *mut ISteamRemoteStorage,
24671        updateHandle: PublishedFileUpdateHandle_t,
24672        pchTitle: *const ::std::os::raw::c_char,
24673    ) -> bool;
24674}
24675extern "C" {
24676    pub fn SteamAPI_ISteamRemoteStorage_UpdatePublishedFileDescription(
24677        self_: *mut ISteamRemoteStorage,
24678        updateHandle: PublishedFileUpdateHandle_t,
24679        pchDescription: *const ::std::os::raw::c_char,
24680    ) -> bool;
24681}
24682extern "C" {
24683    pub fn SteamAPI_ISteamRemoteStorage_UpdatePublishedFileVisibility(
24684        self_: *mut ISteamRemoteStorage,
24685        updateHandle: PublishedFileUpdateHandle_t,
24686        eVisibility: ERemoteStoragePublishedFileVisibility,
24687    ) -> bool;
24688}
24689extern "C" {
24690    pub fn SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTags(
24691        self_: *mut ISteamRemoteStorage,
24692        updateHandle: PublishedFileUpdateHandle_t,
24693        pTags: *mut SteamParamStringArray_t,
24694    ) -> bool;
24695}
24696extern "C" {
24697    pub fn SteamAPI_ISteamRemoteStorage_CommitPublishedFileUpdate(
24698        self_: *mut ISteamRemoteStorage,
24699        updateHandle: PublishedFileUpdateHandle_t,
24700    ) -> SteamAPICall_t;
24701}
24702extern "C" {
24703    pub fn SteamAPI_ISteamRemoteStorage_GetPublishedFileDetails(
24704        self_: *mut ISteamRemoteStorage,
24705        unPublishedFileId: PublishedFileId_t,
24706        unMaxSecondsOld: uint32,
24707    ) -> SteamAPICall_t;
24708}
24709extern "C" {
24710    pub fn SteamAPI_ISteamRemoteStorage_DeletePublishedFile(
24711        self_: *mut ISteamRemoteStorage,
24712        unPublishedFileId: PublishedFileId_t,
24713    ) -> SteamAPICall_t;
24714}
24715extern "C" {
24716    pub fn SteamAPI_ISteamRemoteStorage_EnumerateUserPublishedFiles(
24717        self_: *mut ISteamRemoteStorage,
24718        unStartIndex: uint32,
24719    ) -> SteamAPICall_t;
24720}
24721extern "C" {
24722    pub fn SteamAPI_ISteamRemoteStorage_SubscribePublishedFile(
24723        self_: *mut ISteamRemoteStorage,
24724        unPublishedFileId: PublishedFileId_t,
24725    ) -> SteamAPICall_t;
24726}
24727extern "C" {
24728    pub fn SteamAPI_ISteamRemoteStorage_EnumerateUserSubscribedFiles(
24729        self_: *mut ISteamRemoteStorage,
24730        unStartIndex: uint32,
24731    ) -> SteamAPICall_t;
24732}
24733extern "C" {
24734    pub fn SteamAPI_ISteamRemoteStorage_UnsubscribePublishedFile(
24735        self_: *mut ISteamRemoteStorage,
24736        unPublishedFileId: PublishedFileId_t,
24737    ) -> SteamAPICall_t;
24738}
24739extern "C" {
24740    pub fn SteamAPI_ISteamRemoteStorage_UpdatePublishedFileSetChangeDescription(
24741        self_: *mut ISteamRemoteStorage,
24742        updateHandle: PublishedFileUpdateHandle_t,
24743        pchChangeDescription: *const ::std::os::raw::c_char,
24744    ) -> bool;
24745}
24746extern "C" {
24747    pub fn SteamAPI_ISteamRemoteStorage_GetPublishedItemVoteDetails(
24748        self_: *mut ISteamRemoteStorage,
24749        unPublishedFileId: PublishedFileId_t,
24750    ) -> SteamAPICall_t;
24751}
24752extern "C" {
24753    pub fn SteamAPI_ISteamRemoteStorage_UpdateUserPublishedItemVote(
24754        self_: *mut ISteamRemoteStorage,
24755        unPublishedFileId: PublishedFileId_t,
24756        bVoteUp: bool,
24757    ) -> SteamAPICall_t;
24758}
24759extern "C" {
24760    pub fn SteamAPI_ISteamRemoteStorage_GetUserPublishedItemVoteDetails(
24761        self_: *mut ISteamRemoteStorage,
24762        unPublishedFileId: PublishedFileId_t,
24763    ) -> SteamAPICall_t;
24764}
24765extern "C" {
24766    pub fn SteamAPI_ISteamRemoteStorage_EnumerateUserSharedWorkshopFiles(
24767        self_: *mut ISteamRemoteStorage,
24768        steamId: uint64_steamid,
24769        unStartIndex: uint32,
24770        pRequiredTags: *mut SteamParamStringArray_t,
24771        pExcludedTags: *mut SteamParamStringArray_t,
24772    ) -> SteamAPICall_t;
24773}
24774extern "C" {
24775    pub fn SteamAPI_ISteamRemoteStorage_PublishVideo(
24776        self_: *mut ISteamRemoteStorage,
24777        eVideoProvider: EWorkshopVideoProvider,
24778        pchVideoAccount: *const ::std::os::raw::c_char,
24779        pchVideoIdentifier: *const ::std::os::raw::c_char,
24780        pchPreviewFile: *const ::std::os::raw::c_char,
24781        nConsumerAppId: AppId_t,
24782        pchTitle: *const ::std::os::raw::c_char,
24783        pchDescription: *const ::std::os::raw::c_char,
24784        eVisibility: ERemoteStoragePublishedFileVisibility,
24785        pTags: *mut SteamParamStringArray_t,
24786    ) -> SteamAPICall_t;
24787}
24788extern "C" {
24789    pub fn SteamAPI_ISteamRemoteStorage_SetUserPublishedFileAction(
24790        self_: *mut ISteamRemoteStorage,
24791        unPublishedFileId: PublishedFileId_t,
24792        eAction: EWorkshopFileAction,
24793    ) -> SteamAPICall_t;
24794}
24795extern "C" {
24796    pub fn SteamAPI_ISteamRemoteStorage_EnumeratePublishedFilesByUserAction(
24797        self_: *mut ISteamRemoteStorage,
24798        eAction: EWorkshopFileAction,
24799        unStartIndex: uint32,
24800    ) -> SteamAPICall_t;
24801}
24802extern "C" {
24803    pub fn SteamAPI_ISteamRemoteStorage_EnumeratePublishedWorkshopFiles(
24804        self_: *mut ISteamRemoteStorage,
24805        eEnumerationType: EWorkshopEnumerationType,
24806        unStartIndex: uint32,
24807        unCount: uint32,
24808        unDays: uint32,
24809        pTags: *mut SteamParamStringArray_t,
24810        pUserTags: *mut SteamParamStringArray_t,
24811    ) -> SteamAPICall_t;
24812}
24813extern "C" {
24814    pub fn SteamAPI_ISteamRemoteStorage_UGCDownloadToLocation(
24815        self_: *mut ISteamRemoteStorage,
24816        hContent: UGCHandle_t,
24817        pchLocation: *const ::std::os::raw::c_char,
24818        unPriority: uint32,
24819    ) -> SteamAPICall_t;
24820}
24821extern "C" {
24822    pub fn SteamAPI_ISteamRemoteStorage_GetLocalFileChangeCount(
24823        self_: *mut ISteamRemoteStorage,
24824    ) -> int32;
24825}
24826extern "C" {
24827    pub fn SteamAPI_ISteamRemoteStorage_GetLocalFileChange(
24828        self_: *mut ISteamRemoteStorage,
24829        iFile: ::std::os::raw::c_int,
24830        pEChangeType: *mut ERemoteStorageLocalFileChange,
24831        pEFilePathType: *mut ERemoteStorageFilePathType,
24832    ) -> *const ::std::os::raw::c_char;
24833}
24834extern "C" {
24835    pub fn SteamAPI_ISteamRemoteStorage_BeginFileWriteBatch(
24836        self_: *mut ISteamRemoteStorage,
24837    ) -> bool;
24838}
24839extern "C" {
24840    pub fn SteamAPI_ISteamRemoteStorage_EndFileWriteBatch(self_: *mut ISteamRemoteStorage) -> bool;
24841}
24842extern "C" {
24843    pub fn SteamAPI_SteamUserStats_v012() -> *mut ISteamUserStats;
24844}
24845extern "C" {
24846    pub fn SteamAPI_ISteamUserStats_RequestCurrentStats(self_: *mut ISteamUserStats) -> bool;
24847}
24848extern "C" {
24849    pub fn SteamAPI_ISteamUserStats_GetStatInt32(
24850        self_: *mut ISteamUserStats,
24851        pchName: *const ::std::os::raw::c_char,
24852        pData: *mut int32,
24853    ) -> bool;
24854}
24855extern "C" {
24856    pub fn SteamAPI_ISteamUserStats_GetStatFloat(
24857        self_: *mut ISteamUserStats,
24858        pchName: *const ::std::os::raw::c_char,
24859        pData: *mut f32,
24860    ) -> bool;
24861}
24862extern "C" {
24863    pub fn SteamAPI_ISteamUserStats_SetStatInt32(
24864        self_: *mut ISteamUserStats,
24865        pchName: *const ::std::os::raw::c_char,
24866        nData: int32,
24867    ) -> bool;
24868}
24869extern "C" {
24870    pub fn SteamAPI_ISteamUserStats_SetStatFloat(
24871        self_: *mut ISteamUserStats,
24872        pchName: *const ::std::os::raw::c_char,
24873        fData: f32,
24874    ) -> bool;
24875}
24876extern "C" {
24877    pub fn SteamAPI_ISteamUserStats_UpdateAvgRateStat(
24878        self_: *mut ISteamUserStats,
24879        pchName: *const ::std::os::raw::c_char,
24880        flCountThisSession: f32,
24881        dSessionLength: f64,
24882    ) -> bool;
24883}
24884extern "C" {
24885    pub fn SteamAPI_ISteamUserStats_GetAchievement(
24886        self_: *mut ISteamUserStats,
24887        pchName: *const ::std::os::raw::c_char,
24888        pbAchieved: *mut bool,
24889    ) -> bool;
24890}
24891extern "C" {
24892    pub fn SteamAPI_ISteamUserStats_SetAchievement(
24893        self_: *mut ISteamUserStats,
24894        pchName: *const ::std::os::raw::c_char,
24895    ) -> bool;
24896}
24897extern "C" {
24898    pub fn SteamAPI_ISteamUserStats_ClearAchievement(
24899        self_: *mut ISteamUserStats,
24900        pchName: *const ::std::os::raw::c_char,
24901    ) -> bool;
24902}
24903extern "C" {
24904    pub fn SteamAPI_ISteamUserStats_GetAchievementAndUnlockTime(
24905        self_: *mut ISteamUserStats,
24906        pchName: *const ::std::os::raw::c_char,
24907        pbAchieved: *mut bool,
24908        punUnlockTime: *mut uint32,
24909    ) -> bool;
24910}
24911extern "C" {
24912    pub fn SteamAPI_ISteamUserStats_StoreStats(self_: *mut ISteamUserStats) -> bool;
24913}
24914extern "C" {
24915    pub fn SteamAPI_ISteamUserStats_GetAchievementIcon(
24916        self_: *mut ISteamUserStats,
24917        pchName: *const ::std::os::raw::c_char,
24918    ) -> ::std::os::raw::c_int;
24919}
24920extern "C" {
24921    pub fn SteamAPI_ISteamUserStats_GetAchievementDisplayAttribute(
24922        self_: *mut ISteamUserStats,
24923        pchName: *const ::std::os::raw::c_char,
24924        pchKey: *const ::std::os::raw::c_char,
24925    ) -> *const ::std::os::raw::c_char;
24926}
24927extern "C" {
24928    pub fn SteamAPI_ISteamUserStats_IndicateAchievementProgress(
24929        self_: *mut ISteamUserStats,
24930        pchName: *const ::std::os::raw::c_char,
24931        nCurProgress: uint32,
24932        nMaxProgress: uint32,
24933    ) -> bool;
24934}
24935extern "C" {
24936    pub fn SteamAPI_ISteamUserStats_GetNumAchievements(self_: *mut ISteamUserStats) -> uint32;
24937}
24938extern "C" {
24939    pub fn SteamAPI_ISteamUserStats_GetAchievementName(
24940        self_: *mut ISteamUserStats,
24941        iAchievement: uint32,
24942    ) -> *const ::std::os::raw::c_char;
24943}
24944extern "C" {
24945    pub fn SteamAPI_ISteamUserStats_RequestUserStats(
24946        self_: *mut ISteamUserStats,
24947        steamIDUser: uint64_steamid,
24948    ) -> SteamAPICall_t;
24949}
24950extern "C" {
24951    pub fn SteamAPI_ISteamUserStats_GetUserStatInt32(
24952        self_: *mut ISteamUserStats,
24953        steamIDUser: uint64_steamid,
24954        pchName: *const ::std::os::raw::c_char,
24955        pData: *mut int32,
24956    ) -> bool;
24957}
24958extern "C" {
24959    pub fn SteamAPI_ISteamUserStats_GetUserStatFloat(
24960        self_: *mut ISteamUserStats,
24961        steamIDUser: uint64_steamid,
24962        pchName: *const ::std::os::raw::c_char,
24963        pData: *mut f32,
24964    ) -> bool;
24965}
24966extern "C" {
24967    pub fn SteamAPI_ISteamUserStats_GetUserAchievement(
24968        self_: *mut ISteamUserStats,
24969        steamIDUser: uint64_steamid,
24970        pchName: *const ::std::os::raw::c_char,
24971        pbAchieved: *mut bool,
24972    ) -> bool;
24973}
24974extern "C" {
24975    pub fn SteamAPI_ISteamUserStats_GetUserAchievementAndUnlockTime(
24976        self_: *mut ISteamUserStats,
24977        steamIDUser: uint64_steamid,
24978        pchName: *const ::std::os::raw::c_char,
24979        pbAchieved: *mut bool,
24980        punUnlockTime: *mut uint32,
24981    ) -> bool;
24982}
24983extern "C" {
24984    pub fn SteamAPI_ISteamUserStats_ResetAllStats(
24985        self_: *mut ISteamUserStats,
24986        bAchievementsToo: bool,
24987    ) -> bool;
24988}
24989extern "C" {
24990    pub fn SteamAPI_ISteamUserStats_FindOrCreateLeaderboard(
24991        self_: *mut ISteamUserStats,
24992        pchLeaderboardName: *const ::std::os::raw::c_char,
24993        eLeaderboardSortMethod: ELeaderboardSortMethod,
24994        eLeaderboardDisplayType: ELeaderboardDisplayType,
24995    ) -> SteamAPICall_t;
24996}
24997extern "C" {
24998    pub fn SteamAPI_ISteamUserStats_FindLeaderboard(
24999        self_: *mut ISteamUserStats,
25000        pchLeaderboardName: *const ::std::os::raw::c_char,
25001    ) -> SteamAPICall_t;
25002}
25003extern "C" {
25004    pub fn SteamAPI_ISteamUserStats_GetLeaderboardName(
25005        self_: *mut ISteamUserStats,
25006        hSteamLeaderboard: SteamLeaderboard_t,
25007    ) -> *const ::std::os::raw::c_char;
25008}
25009extern "C" {
25010    pub fn SteamAPI_ISteamUserStats_GetLeaderboardEntryCount(
25011        self_: *mut ISteamUserStats,
25012        hSteamLeaderboard: SteamLeaderboard_t,
25013    ) -> ::std::os::raw::c_int;
25014}
25015extern "C" {
25016    pub fn SteamAPI_ISteamUserStats_GetLeaderboardSortMethod(
25017        self_: *mut ISteamUserStats,
25018        hSteamLeaderboard: SteamLeaderboard_t,
25019    ) -> ELeaderboardSortMethod;
25020}
25021extern "C" {
25022    pub fn SteamAPI_ISteamUserStats_GetLeaderboardDisplayType(
25023        self_: *mut ISteamUserStats,
25024        hSteamLeaderboard: SteamLeaderboard_t,
25025    ) -> ELeaderboardDisplayType;
25026}
25027extern "C" {
25028    pub fn SteamAPI_ISteamUserStats_DownloadLeaderboardEntries(
25029        self_: *mut ISteamUserStats,
25030        hSteamLeaderboard: SteamLeaderboard_t,
25031        eLeaderboardDataRequest: ELeaderboardDataRequest,
25032        nRangeStart: ::std::os::raw::c_int,
25033        nRangeEnd: ::std::os::raw::c_int,
25034    ) -> SteamAPICall_t;
25035}
25036extern "C" {
25037    pub fn SteamAPI_ISteamUserStats_DownloadLeaderboardEntriesForUsers(
25038        self_: *mut ISteamUserStats,
25039        hSteamLeaderboard: SteamLeaderboard_t,
25040        prgUsers: *mut CSteamID,
25041        cUsers: ::std::os::raw::c_int,
25042    ) -> SteamAPICall_t;
25043}
25044extern "C" {
25045    pub fn SteamAPI_ISteamUserStats_GetDownloadedLeaderboardEntry(
25046        self_: *mut ISteamUserStats,
25047        hSteamLeaderboardEntries: SteamLeaderboardEntries_t,
25048        index: ::std::os::raw::c_int,
25049        pLeaderboardEntry: *mut LeaderboardEntry_t,
25050        pDetails: *mut int32,
25051        cDetailsMax: ::std::os::raw::c_int,
25052    ) -> bool;
25053}
25054extern "C" {
25055    pub fn SteamAPI_ISteamUserStats_UploadLeaderboardScore(
25056        self_: *mut ISteamUserStats,
25057        hSteamLeaderboard: SteamLeaderboard_t,
25058        eLeaderboardUploadScoreMethod: ELeaderboardUploadScoreMethod,
25059        nScore: int32,
25060        pScoreDetails: *const int32,
25061        cScoreDetailsCount: ::std::os::raw::c_int,
25062    ) -> SteamAPICall_t;
25063}
25064extern "C" {
25065    pub fn SteamAPI_ISteamUserStats_AttachLeaderboardUGC(
25066        self_: *mut ISteamUserStats,
25067        hSteamLeaderboard: SteamLeaderboard_t,
25068        hUGC: UGCHandle_t,
25069    ) -> SteamAPICall_t;
25070}
25071extern "C" {
25072    pub fn SteamAPI_ISteamUserStats_GetNumberOfCurrentPlayers(
25073        self_: *mut ISteamUserStats,
25074    ) -> SteamAPICall_t;
25075}
25076extern "C" {
25077    pub fn SteamAPI_ISteamUserStats_RequestGlobalAchievementPercentages(
25078        self_: *mut ISteamUserStats,
25079    ) -> SteamAPICall_t;
25080}
25081extern "C" {
25082    pub fn SteamAPI_ISteamUserStats_GetMostAchievedAchievementInfo(
25083        self_: *mut ISteamUserStats,
25084        pchName: *mut ::std::os::raw::c_char,
25085        unNameBufLen: uint32,
25086        pflPercent: *mut f32,
25087        pbAchieved: *mut bool,
25088    ) -> ::std::os::raw::c_int;
25089}
25090extern "C" {
25091    pub fn SteamAPI_ISteamUserStats_GetNextMostAchievedAchievementInfo(
25092        self_: *mut ISteamUserStats,
25093        iIteratorPrevious: ::std::os::raw::c_int,
25094        pchName: *mut ::std::os::raw::c_char,
25095        unNameBufLen: uint32,
25096        pflPercent: *mut f32,
25097        pbAchieved: *mut bool,
25098    ) -> ::std::os::raw::c_int;
25099}
25100extern "C" {
25101    pub fn SteamAPI_ISteamUserStats_GetAchievementAchievedPercent(
25102        self_: *mut ISteamUserStats,
25103        pchName: *const ::std::os::raw::c_char,
25104        pflPercent: *mut f32,
25105    ) -> bool;
25106}
25107extern "C" {
25108    pub fn SteamAPI_ISteamUserStats_RequestGlobalStats(
25109        self_: *mut ISteamUserStats,
25110        nHistoryDays: ::std::os::raw::c_int,
25111    ) -> SteamAPICall_t;
25112}
25113extern "C" {
25114    pub fn SteamAPI_ISteamUserStats_GetGlobalStatInt64(
25115        self_: *mut ISteamUserStats,
25116        pchStatName: *const ::std::os::raw::c_char,
25117        pData: *mut int64,
25118    ) -> bool;
25119}
25120extern "C" {
25121    pub fn SteamAPI_ISteamUserStats_GetGlobalStatDouble(
25122        self_: *mut ISteamUserStats,
25123        pchStatName: *const ::std::os::raw::c_char,
25124        pData: *mut f64,
25125    ) -> bool;
25126}
25127extern "C" {
25128    pub fn SteamAPI_ISteamUserStats_GetGlobalStatHistoryInt64(
25129        self_: *mut ISteamUserStats,
25130        pchStatName: *const ::std::os::raw::c_char,
25131        pData: *mut int64,
25132        cubData: uint32,
25133    ) -> int32;
25134}
25135extern "C" {
25136    pub fn SteamAPI_ISteamUserStats_GetGlobalStatHistoryDouble(
25137        self_: *mut ISteamUserStats,
25138        pchStatName: *const ::std::os::raw::c_char,
25139        pData: *mut f64,
25140        cubData: uint32,
25141    ) -> int32;
25142}
25143extern "C" {
25144    pub fn SteamAPI_ISteamUserStats_GetAchievementProgressLimitsInt32(
25145        self_: *mut ISteamUserStats,
25146        pchName: *const ::std::os::raw::c_char,
25147        pnMinProgress: *mut int32,
25148        pnMaxProgress: *mut int32,
25149    ) -> bool;
25150}
25151extern "C" {
25152    pub fn SteamAPI_ISteamUserStats_GetAchievementProgressLimitsFloat(
25153        self_: *mut ISteamUserStats,
25154        pchName: *const ::std::os::raw::c_char,
25155        pfMinProgress: *mut f32,
25156        pfMaxProgress: *mut f32,
25157    ) -> bool;
25158}
25159extern "C" {
25160    pub fn SteamAPI_SteamApps_v008() -> *mut ISteamApps;
25161}
25162extern "C" {
25163    pub fn SteamAPI_ISteamApps_BIsSubscribed(self_: *mut ISteamApps) -> bool;
25164}
25165extern "C" {
25166    pub fn SteamAPI_ISteamApps_BIsLowViolence(self_: *mut ISteamApps) -> bool;
25167}
25168extern "C" {
25169    pub fn SteamAPI_ISteamApps_BIsCybercafe(self_: *mut ISteamApps) -> bool;
25170}
25171extern "C" {
25172    pub fn SteamAPI_ISteamApps_BIsVACBanned(self_: *mut ISteamApps) -> bool;
25173}
25174extern "C" {
25175    pub fn SteamAPI_ISteamApps_GetCurrentGameLanguage(
25176        self_: *mut ISteamApps,
25177    ) -> *const ::std::os::raw::c_char;
25178}
25179extern "C" {
25180    pub fn SteamAPI_ISteamApps_GetAvailableGameLanguages(
25181        self_: *mut ISteamApps,
25182    ) -> *const ::std::os::raw::c_char;
25183}
25184extern "C" {
25185    pub fn SteamAPI_ISteamApps_BIsSubscribedApp(self_: *mut ISteamApps, appID: AppId_t) -> bool;
25186}
25187extern "C" {
25188    pub fn SteamAPI_ISteamApps_BIsDlcInstalled(self_: *mut ISteamApps, appID: AppId_t) -> bool;
25189}
25190extern "C" {
25191    pub fn SteamAPI_ISteamApps_GetEarliestPurchaseUnixTime(
25192        self_: *mut ISteamApps,
25193        nAppID: AppId_t,
25194    ) -> uint32;
25195}
25196extern "C" {
25197    pub fn SteamAPI_ISteamApps_BIsSubscribedFromFreeWeekend(self_: *mut ISteamApps) -> bool;
25198}
25199extern "C" {
25200    pub fn SteamAPI_ISteamApps_GetDLCCount(self_: *mut ISteamApps) -> ::std::os::raw::c_int;
25201}
25202extern "C" {
25203    pub fn SteamAPI_ISteamApps_BGetDLCDataByIndex(
25204        self_: *mut ISteamApps,
25205        iDLC: ::std::os::raw::c_int,
25206        pAppID: *mut AppId_t,
25207        pbAvailable: *mut bool,
25208        pchName: *mut ::std::os::raw::c_char,
25209        cchNameBufferSize: ::std::os::raw::c_int,
25210    ) -> bool;
25211}
25212extern "C" {
25213    pub fn SteamAPI_ISteamApps_InstallDLC(self_: *mut ISteamApps, nAppID: AppId_t);
25214}
25215extern "C" {
25216    pub fn SteamAPI_ISteamApps_UninstallDLC(self_: *mut ISteamApps, nAppID: AppId_t);
25217}
25218extern "C" {
25219    pub fn SteamAPI_ISteamApps_RequestAppProofOfPurchaseKey(
25220        self_: *mut ISteamApps,
25221        nAppID: AppId_t,
25222    );
25223}
25224extern "C" {
25225    pub fn SteamAPI_ISteamApps_GetCurrentBetaName(
25226        self_: *mut ISteamApps,
25227        pchName: *mut ::std::os::raw::c_char,
25228        cchNameBufferSize: ::std::os::raw::c_int,
25229    ) -> bool;
25230}
25231extern "C" {
25232    pub fn SteamAPI_ISteamApps_MarkContentCorrupt(
25233        self_: *mut ISteamApps,
25234        bMissingFilesOnly: bool,
25235    ) -> bool;
25236}
25237extern "C" {
25238    pub fn SteamAPI_ISteamApps_GetInstalledDepots(
25239        self_: *mut ISteamApps,
25240        appID: AppId_t,
25241        pvecDepots: *mut DepotId_t,
25242        cMaxDepots: uint32,
25243    ) -> uint32;
25244}
25245extern "C" {
25246    pub fn SteamAPI_ISteamApps_GetAppInstallDir(
25247        self_: *mut ISteamApps,
25248        appID: AppId_t,
25249        pchFolder: *mut ::std::os::raw::c_char,
25250        cchFolderBufferSize: uint32,
25251    ) -> uint32;
25252}
25253extern "C" {
25254    pub fn SteamAPI_ISteamApps_BIsAppInstalled(self_: *mut ISteamApps, appID: AppId_t) -> bool;
25255}
25256extern "C" {
25257    pub fn SteamAPI_ISteamApps_GetAppOwner(self_: *mut ISteamApps) -> uint64_steamid;
25258}
25259extern "C" {
25260    pub fn SteamAPI_ISteamApps_GetLaunchQueryParam(
25261        self_: *mut ISteamApps,
25262        pchKey: *const ::std::os::raw::c_char,
25263    ) -> *const ::std::os::raw::c_char;
25264}
25265extern "C" {
25266    pub fn SteamAPI_ISteamApps_GetDlcDownloadProgress(
25267        self_: *mut ISteamApps,
25268        nAppID: AppId_t,
25269        punBytesDownloaded: *mut uint64,
25270        punBytesTotal: *mut uint64,
25271    ) -> bool;
25272}
25273extern "C" {
25274    pub fn SteamAPI_ISteamApps_GetAppBuildId(self_: *mut ISteamApps) -> ::std::os::raw::c_int;
25275}
25276extern "C" {
25277    pub fn SteamAPI_ISteamApps_RequestAllProofOfPurchaseKeys(self_: *mut ISteamApps);
25278}
25279extern "C" {
25280    pub fn SteamAPI_ISteamApps_GetFileDetails(
25281        self_: *mut ISteamApps,
25282        pszFileName: *const ::std::os::raw::c_char,
25283    ) -> SteamAPICall_t;
25284}
25285extern "C" {
25286    pub fn SteamAPI_ISteamApps_GetLaunchCommandLine(
25287        self_: *mut ISteamApps,
25288        pszCommandLine: *mut ::std::os::raw::c_char,
25289        cubCommandLine: ::std::os::raw::c_int,
25290    ) -> ::std::os::raw::c_int;
25291}
25292extern "C" {
25293    pub fn SteamAPI_ISteamApps_BIsSubscribedFromFamilySharing(self_: *mut ISteamApps) -> bool;
25294}
25295extern "C" {
25296    pub fn SteamAPI_ISteamApps_BIsTimedTrial(
25297        self_: *mut ISteamApps,
25298        punSecondsAllowed: *mut uint32,
25299        punSecondsPlayed: *mut uint32,
25300    ) -> bool;
25301}
25302extern "C" {
25303    pub fn SteamAPI_ISteamApps_SetDlcContext(self_: *mut ISteamApps, nAppID: AppId_t) -> bool;
25304}
25305extern "C" {
25306    pub fn SteamAPI_SteamNetworking_v006() -> *mut ISteamNetworking;
25307}
25308extern "C" {
25309    pub fn SteamAPI_SteamGameServerNetworking_v006() -> *mut ISteamNetworking;
25310}
25311extern "C" {
25312    pub fn SteamAPI_ISteamNetworking_SendP2PPacket(
25313        self_: *mut ISteamNetworking,
25314        steamIDRemote: uint64_steamid,
25315        pubData: *const ::std::os::raw::c_void,
25316        cubData: uint32,
25317        eP2PSendType: EP2PSend,
25318        nChannel: ::std::os::raw::c_int,
25319    ) -> bool;
25320}
25321extern "C" {
25322    pub fn SteamAPI_ISteamNetworking_IsP2PPacketAvailable(
25323        self_: *mut ISteamNetworking,
25324        pcubMsgSize: *mut uint32,
25325        nChannel: ::std::os::raw::c_int,
25326    ) -> bool;
25327}
25328extern "C" {
25329    pub fn SteamAPI_ISteamNetworking_ReadP2PPacket(
25330        self_: *mut ISteamNetworking,
25331        pubDest: *mut ::std::os::raw::c_void,
25332        cubDest: uint32,
25333        pcubMsgSize: *mut uint32,
25334        psteamIDRemote: *mut CSteamID,
25335        nChannel: ::std::os::raw::c_int,
25336    ) -> bool;
25337}
25338extern "C" {
25339    pub fn SteamAPI_ISteamNetworking_AcceptP2PSessionWithUser(
25340        self_: *mut ISteamNetworking,
25341        steamIDRemote: uint64_steamid,
25342    ) -> bool;
25343}
25344extern "C" {
25345    pub fn SteamAPI_ISteamNetworking_CloseP2PSessionWithUser(
25346        self_: *mut ISteamNetworking,
25347        steamIDRemote: uint64_steamid,
25348    ) -> bool;
25349}
25350extern "C" {
25351    pub fn SteamAPI_ISteamNetworking_CloseP2PChannelWithUser(
25352        self_: *mut ISteamNetworking,
25353        steamIDRemote: uint64_steamid,
25354        nChannel: ::std::os::raw::c_int,
25355    ) -> bool;
25356}
25357extern "C" {
25358    pub fn SteamAPI_ISteamNetworking_GetP2PSessionState(
25359        self_: *mut ISteamNetworking,
25360        steamIDRemote: uint64_steamid,
25361        pConnectionState: *mut P2PSessionState_t,
25362    ) -> bool;
25363}
25364extern "C" {
25365    pub fn SteamAPI_ISteamNetworking_AllowP2PPacketRelay(
25366        self_: *mut ISteamNetworking,
25367        bAllow: bool,
25368    ) -> bool;
25369}
25370extern "C" {
25371    pub fn SteamAPI_ISteamNetworking_CreateListenSocket(
25372        self_: *mut ISteamNetworking,
25373        nVirtualP2PPort: ::std::os::raw::c_int,
25374        nIP: SteamIPAddress_t,
25375        nPort: uint16,
25376        bAllowUseOfPacketRelay: bool,
25377    ) -> SNetListenSocket_t;
25378}
25379extern "C" {
25380    pub fn SteamAPI_ISteamNetworking_CreateP2PConnectionSocket(
25381        self_: *mut ISteamNetworking,
25382        steamIDTarget: uint64_steamid,
25383        nVirtualPort: ::std::os::raw::c_int,
25384        nTimeoutSec: ::std::os::raw::c_int,
25385        bAllowUseOfPacketRelay: bool,
25386    ) -> SNetSocket_t;
25387}
25388extern "C" {
25389    pub fn SteamAPI_ISteamNetworking_CreateConnectionSocket(
25390        self_: *mut ISteamNetworking,
25391        nIP: SteamIPAddress_t,
25392        nPort: uint16,
25393        nTimeoutSec: ::std::os::raw::c_int,
25394    ) -> SNetSocket_t;
25395}
25396extern "C" {
25397    pub fn SteamAPI_ISteamNetworking_DestroySocket(
25398        self_: *mut ISteamNetworking,
25399        hSocket: SNetSocket_t,
25400        bNotifyRemoteEnd: bool,
25401    ) -> bool;
25402}
25403extern "C" {
25404    pub fn SteamAPI_ISteamNetworking_DestroyListenSocket(
25405        self_: *mut ISteamNetworking,
25406        hSocket: SNetListenSocket_t,
25407        bNotifyRemoteEnd: bool,
25408    ) -> bool;
25409}
25410extern "C" {
25411    pub fn SteamAPI_ISteamNetworking_SendDataOnSocket(
25412        self_: *mut ISteamNetworking,
25413        hSocket: SNetSocket_t,
25414        pubData: *mut ::std::os::raw::c_void,
25415        cubData: uint32,
25416        bReliable: bool,
25417    ) -> bool;
25418}
25419extern "C" {
25420    pub fn SteamAPI_ISteamNetworking_IsDataAvailableOnSocket(
25421        self_: *mut ISteamNetworking,
25422        hSocket: SNetSocket_t,
25423        pcubMsgSize: *mut uint32,
25424    ) -> bool;
25425}
25426extern "C" {
25427    pub fn SteamAPI_ISteamNetworking_RetrieveDataFromSocket(
25428        self_: *mut ISteamNetworking,
25429        hSocket: SNetSocket_t,
25430        pubDest: *mut ::std::os::raw::c_void,
25431        cubDest: uint32,
25432        pcubMsgSize: *mut uint32,
25433    ) -> bool;
25434}
25435extern "C" {
25436    pub fn SteamAPI_ISteamNetworking_IsDataAvailable(
25437        self_: *mut ISteamNetworking,
25438        hListenSocket: SNetListenSocket_t,
25439        pcubMsgSize: *mut uint32,
25440        phSocket: *mut SNetSocket_t,
25441    ) -> bool;
25442}
25443extern "C" {
25444    pub fn SteamAPI_ISteamNetworking_RetrieveData(
25445        self_: *mut ISteamNetworking,
25446        hListenSocket: SNetListenSocket_t,
25447        pubDest: *mut ::std::os::raw::c_void,
25448        cubDest: uint32,
25449        pcubMsgSize: *mut uint32,
25450        phSocket: *mut SNetSocket_t,
25451    ) -> bool;
25452}
25453extern "C" {
25454    pub fn SteamAPI_ISteamNetworking_GetSocketInfo(
25455        self_: *mut ISteamNetworking,
25456        hSocket: SNetSocket_t,
25457        pSteamIDRemote: *mut CSteamID,
25458        peSocketStatus: *mut ::std::os::raw::c_int,
25459        punIPRemote: *mut SteamIPAddress_t,
25460        punPortRemote: *mut uint16,
25461    ) -> bool;
25462}
25463extern "C" {
25464    pub fn SteamAPI_ISteamNetworking_GetListenSocketInfo(
25465        self_: *mut ISteamNetworking,
25466        hListenSocket: SNetListenSocket_t,
25467        pnIP: *mut SteamIPAddress_t,
25468        pnPort: *mut uint16,
25469    ) -> bool;
25470}
25471extern "C" {
25472    pub fn SteamAPI_ISteamNetworking_GetSocketConnectionType(
25473        self_: *mut ISteamNetworking,
25474        hSocket: SNetSocket_t,
25475    ) -> ESNetSocketConnectionType;
25476}
25477extern "C" {
25478    pub fn SteamAPI_ISteamNetworking_GetMaxPacketSize(
25479        self_: *mut ISteamNetworking,
25480        hSocket: SNetSocket_t,
25481    ) -> ::std::os::raw::c_int;
25482}
25483extern "C" {
25484    pub fn SteamAPI_SteamScreenshots_v003() -> *mut ISteamScreenshots;
25485}
25486extern "C" {
25487    pub fn SteamAPI_ISteamScreenshots_WriteScreenshot(
25488        self_: *mut ISteamScreenshots,
25489        pubRGB: *mut ::std::os::raw::c_void,
25490        cubRGB: uint32,
25491        nWidth: ::std::os::raw::c_int,
25492        nHeight: ::std::os::raw::c_int,
25493    ) -> ScreenshotHandle;
25494}
25495extern "C" {
25496    pub fn SteamAPI_ISteamScreenshots_AddScreenshotToLibrary(
25497        self_: *mut ISteamScreenshots,
25498        pchFilename: *const ::std::os::raw::c_char,
25499        pchThumbnailFilename: *const ::std::os::raw::c_char,
25500        nWidth: ::std::os::raw::c_int,
25501        nHeight: ::std::os::raw::c_int,
25502    ) -> ScreenshotHandle;
25503}
25504extern "C" {
25505    pub fn SteamAPI_ISteamScreenshots_TriggerScreenshot(self_: *mut ISteamScreenshots);
25506}
25507extern "C" {
25508    pub fn SteamAPI_ISteamScreenshots_HookScreenshots(self_: *mut ISteamScreenshots, bHook: bool);
25509}
25510extern "C" {
25511    pub fn SteamAPI_ISteamScreenshots_SetLocation(
25512        self_: *mut ISteamScreenshots,
25513        hScreenshot: ScreenshotHandle,
25514        pchLocation: *const ::std::os::raw::c_char,
25515    ) -> bool;
25516}
25517extern "C" {
25518    pub fn SteamAPI_ISteamScreenshots_TagUser(
25519        self_: *mut ISteamScreenshots,
25520        hScreenshot: ScreenshotHandle,
25521        steamID: uint64_steamid,
25522    ) -> bool;
25523}
25524extern "C" {
25525    pub fn SteamAPI_ISteamScreenshots_TagPublishedFile(
25526        self_: *mut ISteamScreenshots,
25527        hScreenshot: ScreenshotHandle,
25528        unPublishedFileID: PublishedFileId_t,
25529    ) -> bool;
25530}
25531extern "C" {
25532    pub fn SteamAPI_ISteamScreenshots_IsScreenshotsHooked(self_: *mut ISteamScreenshots) -> bool;
25533}
25534extern "C" {
25535    pub fn SteamAPI_ISteamScreenshots_AddVRScreenshotToLibrary(
25536        self_: *mut ISteamScreenshots,
25537        eType: EVRScreenshotType,
25538        pchFilename: *const ::std::os::raw::c_char,
25539        pchVRFilename: *const ::std::os::raw::c_char,
25540    ) -> ScreenshotHandle;
25541}
25542extern "C" {
25543    pub fn SteamAPI_SteamMusic_v001() -> *mut ISteamMusic;
25544}
25545extern "C" {
25546    pub fn SteamAPI_ISteamMusic_BIsEnabled(self_: *mut ISteamMusic) -> bool;
25547}
25548extern "C" {
25549    pub fn SteamAPI_ISteamMusic_BIsPlaying(self_: *mut ISteamMusic) -> bool;
25550}
25551extern "C" {
25552    pub fn SteamAPI_ISteamMusic_GetPlaybackStatus(self_: *mut ISteamMusic) -> AudioPlayback_Status;
25553}
25554extern "C" {
25555    pub fn SteamAPI_ISteamMusic_Play(self_: *mut ISteamMusic);
25556}
25557extern "C" {
25558    pub fn SteamAPI_ISteamMusic_Pause(self_: *mut ISteamMusic);
25559}
25560extern "C" {
25561    pub fn SteamAPI_ISteamMusic_PlayPrevious(self_: *mut ISteamMusic);
25562}
25563extern "C" {
25564    pub fn SteamAPI_ISteamMusic_PlayNext(self_: *mut ISteamMusic);
25565}
25566extern "C" {
25567    pub fn SteamAPI_ISteamMusic_SetVolume(self_: *mut ISteamMusic, flVolume: f32);
25568}
25569extern "C" {
25570    pub fn SteamAPI_ISteamMusic_GetVolume(self_: *mut ISteamMusic) -> f32;
25571}
25572extern "C" {
25573    pub fn SteamAPI_SteamMusicRemote_v001() -> *mut ISteamMusicRemote;
25574}
25575extern "C" {
25576    pub fn SteamAPI_ISteamMusicRemote_RegisterSteamMusicRemote(
25577        self_: *mut ISteamMusicRemote,
25578        pchName: *const ::std::os::raw::c_char,
25579    ) -> bool;
25580}
25581extern "C" {
25582    pub fn SteamAPI_ISteamMusicRemote_DeregisterSteamMusicRemote(
25583        self_: *mut ISteamMusicRemote,
25584    ) -> bool;
25585}
25586extern "C" {
25587    pub fn SteamAPI_ISteamMusicRemote_BIsCurrentMusicRemote(self_: *mut ISteamMusicRemote) -> bool;
25588}
25589extern "C" {
25590    pub fn SteamAPI_ISteamMusicRemote_BActivationSuccess(
25591        self_: *mut ISteamMusicRemote,
25592        bValue: bool,
25593    ) -> bool;
25594}
25595extern "C" {
25596    pub fn SteamAPI_ISteamMusicRemote_SetDisplayName(
25597        self_: *mut ISteamMusicRemote,
25598        pchDisplayName: *const ::std::os::raw::c_char,
25599    ) -> bool;
25600}
25601extern "C" {
25602    pub fn SteamAPI_ISteamMusicRemote_SetPNGIcon_64x64(
25603        self_: *mut ISteamMusicRemote,
25604        pvBuffer: *mut ::std::os::raw::c_void,
25605        cbBufferLength: uint32,
25606    ) -> bool;
25607}
25608extern "C" {
25609    pub fn SteamAPI_ISteamMusicRemote_EnablePlayPrevious(
25610        self_: *mut ISteamMusicRemote,
25611        bValue: bool,
25612    ) -> bool;
25613}
25614extern "C" {
25615    pub fn SteamAPI_ISteamMusicRemote_EnablePlayNext(
25616        self_: *mut ISteamMusicRemote,
25617        bValue: bool,
25618    ) -> bool;
25619}
25620extern "C" {
25621    pub fn SteamAPI_ISteamMusicRemote_EnableShuffled(
25622        self_: *mut ISteamMusicRemote,
25623        bValue: bool,
25624    ) -> bool;
25625}
25626extern "C" {
25627    pub fn SteamAPI_ISteamMusicRemote_EnableLooped(
25628        self_: *mut ISteamMusicRemote,
25629        bValue: bool,
25630    ) -> bool;
25631}
25632extern "C" {
25633    pub fn SteamAPI_ISteamMusicRemote_EnableQueue(
25634        self_: *mut ISteamMusicRemote,
25635        bValue: bool,
25636    ) -> bool;
25637}
25638extern "C" {
25639    pub fn SteamAPI_ISteamMusicRemote_EnablePlaylists(
25640        self_: *mut ISteamMusicRemote,
25641        bValue: bool,
25642    ) -> bool;
25643}
25644extern "C" {
25645    pub fn SteamAPI_ISteamMusicRemote_UpdatePlaybackStatus(
25646        self_: *mut ISteamMusicRemote,
25647        nStatus: AudioPlayback_Status,
25648    ) -> bool;
25649}
25650extern "C" {
25651    pub fn SteamAPI_ISteamMusicRemote_UpdateShuffled(
25652        self_: *mut ISteamMusicRemote,
25653        bValue: bool,
25654    ) -> bool;
25655}
25656extern "C" {
25657    pub fn SteamAPI_ISteamMusicRemote_UpdateLooped(
25658        self_: *mut ISteamMusicRemote,
25659        bValue: bool,
25660    ) -> bool;
25661}
25662extern "C" {
25663    pub fn SteamAPI_ISteamMusicRemote_UpdateVolume(
25664        self_: *mut ISteamMusicRemote,
25665        flValue: f32,
25666    ) -> bool;
25667}
25668extern "C" {
25669    pub fn SteamAPI_ISteamMusicRemote_CurrentEntryWillChange(self_: *mut ISteamMusicRemote)
25670        -> bool;
25671}
25672extern "C" {
25673    pub fn SteamAPI_ISteamMusicRemote_CurrentEntryIsAvailable(
25674        self_: *mut ISteamMusicRemote,
25675        bAvailable: bool,
25676    ) -> bool;
25677}
25678extern "C" {
25679    pub fn SteamAPI_ISteamMusicRemote_UpdateCurrentEntryText(
25680        self_: *mut ISteamMusicRemote,
25681        pchText: *const ::std::os::raw::c_char,
25682    ) -> bool;
25683}
25684extern "C" {
25685    pub fn SteamAPI_ISteamMusicRemote_UpdateCurrentEntryElapsedSeconds(
25686        self_: *mut ISteamMusicRemote,
25687        nValue: ::std::os::raw::c_int,
25688    ) -> bool;
25689}
25690extern "C" {
25691    pub fn SteamAPI_ISteamMusicRemote_UpdateCurrentEntryCoverArt(
25692        self_: *mut ISteamMusicRemote,
25693        pvBuffer: *mut ::std::os::raw::c_void,
25694        cbBufferLength: uint32,
25695    ) -> bool;
25696}
25697extern "C" {
25698    pub fn SteamAPI_ISteamMusicRemote_CurrentEntryDidChange(self_: *mut ISteamMusicRemote) -> bool;
25699}
25700extern "C" {
25701    pub fn SteamAPI_ISteamMusicRemote_QueueWillChange(self_: *mut ISteamMusicRemote) -> bool;
25702}
25703extern "C" {
25704    pub fn SteamAPI_ISteamMusicRemote_ResetQueueEntries(self_: *mut ISteamMusicRemote) -> bool;
25705}
25706extern "C" {
25707    pub fn SteamAPI_ISteamMusicRemote_SetQueueEntry(
25708        self_: *mut ISteamMusicRemote,
25709        nID: ::std::os::raw::c_int,
25710        nPosition: ::std::os::raw::c_int,
25711        pchEntryText: *const ::std::os::raw::c_char,
25712    ) -> bool;
25713}
25714extern "C" {
25715    pub fn SteamAPI_ISteamMusicRemote_SetCurrentQueueEntry(
25716        self_: *mut ISteamMusicRemote,
25717        nID: ::std::os::raw::c_int,
25718    ) -> bool;
25719}
25720extern "C" {
25721    pub fn SteamAPI_ISteamMusicRemote_QueueDidChange(self_: *mut ISteamMusicRemote) -> bool;
25722}
25723extern "C" {
25724    pub fn SteamAPI_ISteamMusicRemote_PlaylistWillChange(self_: *mut ISteamMusicRemote) -> bool;
25725}
25726extern "C" {
25727    pub fn SteamAPI_ISteamMusicRemote_ResetPlaylistEntries(self_: *mut ISteamMusicRemote) -> bool;
25728}
25729extern "C" {
25730    pub fn SteamAPI_ISteamMusicRemote_SetPlaylistEntry(
25731        self_: *mut ISteamMusicRemote,
25732        nID: ::std::os::raw::c_int,
25733        nPosition: ::std::os::raw::c_int,
25734        pchEntryText: *const ::std::os::raw::c_char,
25735    ) -> bool;
25736}
25737extern "C" {
25738    pub fn SteamAPI_ISteamMusicRemote_SetCurrentPlaylistEntry(
25739        self_: *mut ISteamMusicRemote,
25740        nID: ::std::os::raw::c_int,
25741    ) -> bool;
25742}
25743extern "C" {
25744    pub fn SteamAPI_ISteamMusicRemote_PlaylistDidChange(self_: *mut ISteamMusicRemote) -> bool;
25745}
25746extern "C" {
25747    pub fn SteamAPI_SteamHTTP_v003() -> *mut ISteamHTTP;
25748}
25749extern "C" {
25750    pub fn SteamAPI_SteamGameServerHTTP_v003() -> *mut ISteamHTTP;
25751}
25752extern "C" {
25753    pub fn SteamAPI_ISteamHTTP_CreateHTTPRequest(
25754        self_: *mut ISteamHTTP,
25755        eHTTPRequestMethod: EHTTPMethod,
25756        pchAbsoluteURL: *const ::std::os::raw::c_char,
25757    ) -> HTTPRequestHandle;
25758}
25759extern "C" {
25760    pub fn SteamAPI_ISteamHTTP_SetHTTPRequestContextValue(
25761        self_: *mut ISteamHTTP,
25762        hRequest: HTTPRequestHandle,
25763        ulContextValue: uint64,
25764    ) -> bool;
25765}
25766extern "C" {
25767    pub fn SteamAPI_ISteamHTTP_SetHTTPRequestNetworkActivityTimeout(
25768        self_: *mut ISteamHTTP,
25769        hRequest: HTTPRequestHandle,
25770        unTimeoutSeconds: uint32,
25771    ) -> bool;
25772}
25773extern "C" {
25774    pub fn SteamAPI_ISteamHTTP_SetHTTPRequestHeaderValue(
25775        self_: *mut ISteamHTTP,
25776        hRequest: HTTPRequestHandle,
25777        pchHeaderName: *const ::std::os::raw::c_char,
25778        pchHeaderValue: *const ::std::os::raw::c_char,
25779    ) -> bool;
25780}
25781extern "C" {
25782    pub fn SteamAPI_ISteamHTTP_SetHTTPRequestGetOrPostParameter(
25783        self_: *mut ISteamHTTP,
25784        hRequest: HTTPRequestHandle,
25785        pchParamName: *const ::std::os::raw::c_char,
25786        pchParamValue: *const ::std::os::raw::c_char,
25787    ) -> bool;
25788}
25789extern "C" {
25790    pub fn SteamAPI_ISteamHTTP_SendHTTPRequest(
25791        self_: *mut ISteamHTTP,
25792        hRequest: HTTPRequestHandle,
25793        pCallHandle: *mut SteamAPICall_t,
25794    ) -> bool;
25795}
25796extern "C" {
25797    pub fn SteamAPI_ISteamHTTP_SendHTTPRequestAndStreamResponse(
25798        self_: *mut ISteamHTTP,
25799        hRequest: HTTPRequestHandle,
25800        pCallHandle: *mut SteamAPICall_t,
25801    ) -> bool;
25802}
25803extern "C" {
25804    pub fn SteamAPI_ISteamHTTP_DeferHTTPRequest(
25805        self_: *mut ISteamHTTP,
25806        hRequest: HTTPRequestHandle,
25807    ) -> bool;
25808}
25809extern "C" {
25810    pub fn SteamAPI_ISteamHTTP_PrioritizeHTTPRequest(
25811        self_: *mut ISteamHTTP,
25812        hRequest: HTTPRequestHandle,
25813    ) -> bool;
25814}
25815extern "C" {
25816    pub fn SteamAPI_ISteamHTTP_GetHTTPResponseHeaderSize(
25817        self_: *mut ISteamHTTP,
25818        hRequest: HTTPRequestHandle,
25819        pchHeaderName: *const ::std::os::raw::c_char,
25820        unResponseHeaderSize: *mut uint32,
25821    ) -> bool;
25822}
25823extern "C" {
25824    pub fn SteamAPI_ISteamHTTP_GetHTTPResponseHeaderValue(
25825        self_: *mut ISteamHTTP,
25826        hRequest: HTTPRequestHandle,
25827        pchHeaderName: *const ::std::os::raw::c_char,
25828        pHeaderValueBuffer: *mut uint8,
25829        unBufferSize: uint32,
25830    ) -> bool;
25831}
25832extern "C" {
25833    pub fn SteamAPI_ISteamHTTP_GetHTTPResponseBodySize(
25834        self_: *mut ISteamHTTP,
25835        hRequest: HTTPRequestHandle,
25836        unBodySize: *mut uint32,
25837    ) -> bool;
25838}
25839extern "C" {
25840    pub fn SteamAPI_ISteamHTTP_GetHTTPResponseBodyData(
25841        self_: *mut ISteamHTTP,
25842        hRequest: HTTPRequestHandle,
25843        pBodyDataBuffer: *mut uint8,
25844        unBufferSize: uint32,
25845    ) -> bool;
25846}
25847extern "C" {
25848    pub fn SteamAPI_ISteamHTTP_GetHTTPStreamingResponseBodyData(
25849        self_: *mut ISteamHTTP,
25850        hRequest: HTTPRequestHandle,
25851        cOffset: uint32,
25852        pBodyDataBuffer: *mut uint8,
25853        unBufferSize: uint32,
25854    ) -> bool;
25855}
25856extern "C" {
25857    pub fn SteamAPI_ISteamHTTP_ReleaseHTTPRequest(
25858        self_: *mut ISteamHTTP,
25859        hRequest: HTTPRequestHandle,
25860    ) -> bool;
25861}
25862extern "C" {
25863    pub fn SteamAPI_ISteamHTTP_GetHTTPDownloadProgressPct(
25864        self_: *mut ISteamHTTP,
25865        hRequest: HTTPRequestHandle,
25866        pflPercentOut: *mut f32,
25867    ) -> bool;
25868}
25869extern "C" {
25870    pub fn SteamAPI_ISteamHTTP_SetHTTPRequestRawPostBody(
25871        self_: *mut ISteamHTTP,
25872        hRequest: HTTPRequestHandle,
25873        pchContentType: *const ::std::os::raw::c_char,
25874        pubBody: *mut uint8,
25875        unBodyLen: uint32,
25876    ) -> bool;
25877}
25878extern "C" {
25879    pub fn SteamAPI_ISteamHTTP_CreateCookieContainer(
25880        self_: *mut ISteamHTTP,
25881        bAllowResponsesToModify: bool,
25882    ) -> HTTPCookieContainerHandle;
25883}
25884extern "C" {
25885    pub fn SteamAPI_ISteamHTTP_ReleaseCookieContainer(
25886        self_: *mut ISteamHTTP,
25887        hCookieContainer: HTTPCookieContainerHandle,
25888    ) -> bool;
25889}
25890extern "C" {
25891    pub fn SteamAPI_ISteamHTTP_SetCookie(
25892        self_: *mut ISteamHTTP,
25893        hCookieContainer: HTTPCookieContainerHandle,
25894        pchHost: *const ::std::os::raw::c_char,
25895        pchUrl: *const ::std::os::raw::c_char,
25896        pchCookie: *const ::std::os::raw::c_char,
25897    ) -> bool;
25898}
25899extern "C" {
25900    pub fn SteamAPI_ISteamHTTP_SetHTTPRequestCookieContainer(
25901        self_: *mut ISteamHTTP,
25902        hRequest: HTTPRequestHandle,
25903        hCookieContainer: HTTPCookieContainerHandle,
25904    ) -> bool;
25905}
25906extern "C" {
25907    pub fn SteamAPI_ISteamHTTP_SetHTTPRequestUserAgentInfo(
25908        self_: *mut ISteamHTTP,
25909        hRequest: HTTPRequestHandle,
25910        pchUserAgentInfo: *const ::std::os::raw::c_char,
25911    ) -> bool;
25912}
25913extern "C" {
25914    pub fn SteamAPI_ISteamHTTP_SetHTTPRequestRequiresVerifiedCertificate(
25915        self_: *mut ISteamHTTP,
25916        hRequest: HTTPRequestHandle,
25917        bRequireVerifiedCertificate: bool,
25918    ) -> bool;
25919}
25920extern "C" {
25921    pub fn SteamAPI_ISteamHTTP_SetHTTPRequestAbsoluteTimeoutMS(
25922        self_: *mut ISteamHTTP,
25923        hRequest: HTTPRequestHandle,
25924        unMilliseconds: uint32,
25925    ) -> bool;
25926}
25927extern "C" {
25928    pub fn SteamAPI_ISteamHTTP_GetHTTPRequestWasTimedOut(
25929        self_: *mut ISteamHTTP,
25930        hRequest: HTTPRequestHandle,
25931        pbWasTimedOut: *mut bool,
25932    ) -> bool;
25933}
25934extern "C" {
25935    pub fn SteamAPI_SteamInput_v006() -> *mut ISteamInput;
25936}
25937extern "C" {
25938    pub fn SteamAPI_ISteamInput_Init(
25939        self_: *mut ISteamInput,
25940        bExplicitlyCallRunFrame: bool,
25941    ) -> bool;
25942}
25943extern "C" {
25944    pub fn SteamAPI_ISteamInput_Shutdown(self_: *mut ISteamInput) -> bool;
25945}
25946extern "C" {
25947    pub fn SteamAPI_ISteamInput_SetInputActionManifestFilePath(
25948        self_: *mut ISteamInput,
25949        pchInputActionManifestAbsolutePath: *const ::std::os::raw::c_char,
25950    ) -> bool;
25951}
25952extern "C" {
25953    pub fn SteamAPI_ISteamInput_RunFrame(self_: *mut ISteamInput, bReservedValue: bool);
25954}
25955extern "C" {
25956    pub fn SteamAPI_ISteamInput_BWaitForData(
25957        self_: *mut ISteamInput,
25958        bWaitForever: bool,
25959        unTimeout: uint32,
25960    ) -> bool;
25961}
25962extern "C" {
25963    pub fn SteamAPI_ISteamInput_BNewDataAvailable(self_: *mut ISteamInput) -> bool;
25964}
25965extern "C" {
25966    pub fn SteamAPI_ISteamInput_GetConnectedControllers(
25967        self_: *mut ISteamInput,
25968        handlesOut: *mut InputHandle_t,
25969    ) -> ::std::os::raw::c_int;
25970}
25971extern "C" {
25972    pub fn SteamAPI_ISteamInput_EnableDeviceCallbacks(self_: *mut ISteamInput);
25973}
25974extern "C" {
25975    pub fn SteamAPI_ISteamInput_EnableActionEventCallbacks(
25976        self_: *mut ISteamInput,
25977        pCallback: SteamInputActionEventCallbackPointer,
25978    );
25979}
25980extern "C" {
25981    pub fn SteamAPI_ISteamInput_GetActionSetHandle(
25982        self_: *mut ISteamInput,
25983        pszActionSetName: *const ::std::os::raw::c_char,
25984    ) -> InputActionSetHandle_t;
25985}
25986extern "C" {
25987    pub fn SteamAPI_ISteamInput_ActivateActionSet(
25988        self_: *mut ISteamInput,
25989        inputHandle: InputHandle_t,
25990        actionSetHandle: InputActionSetHandle_t,
25991    );
25992}
25993extern "C" {
25994    pub fn SteamAPI_ISteamInput_GetCurrentActionSet(
25995        self_: *mut ISteamInput,
25996        inputHandle: InputHandle_t,
25997    ) -> InputActionSetHandle_t;
25998}
25999extern "C" {
26000    pub fn SteamAPI_ISteamInput_ActivateActionSetLayer(
26001        self_: *mut ISteamInput,
26002        inputHandle: InputHandle_t,
26003        actionSetLayerHandle: InputActionSetHandle_t,
26004    );
26005}
26006extern "C" {
26007    pub fn SteamAPI_ISteamInput_DeactivateActionSetLayer(
26008        self_: *mut ISteamInput,
26009        inputHandle: InputHandle_t,
26010        actionSetLayerHandle: InputActionSetHandle_t,
26011    );
26012}
26013extern "C" {
26014    pub fn SteamAPI_ISteamInput_DeactivateAllActionSetLayers(
26015        self_: *mut ISteamInput,
26016        inputHandle: InputHandle_t,
26017    );
26018}
26019extern "C" {
26020    pub fn SteamAPI_ISteamInput_GetActiveActionSetLayers(
26021        self_: *mut ISteamInput,
26022        inputHandle: InputHandle_t,
26023        handlesOut: *mut InputActionSetHandle_t,
26024    ) -> ::std::os::raw::c_int;
26025}
26026extern "C" {
26027    pub fn SteamAPI_ISteamInput_GetDigitalActionHandle(
26028        self_: *mut ISteamInput,
26029        pszActionName: *const ::std::os::raw::c_char,
26030    ) -> InputDigitalActionHandle_t;
26031}
26032extern "C" {
26033    pub fn SteamAPI_ISteamInput_GetDigitalActionData(
26034        self_: *mut ISteamInput,
26035        inputHandle: InputHandle_t,
26036        digitalActionHandle: InputDigitalActionHandle_t,
26037    ) -> InputDigitalActionData_t;
26038}
26039extern "C" {
26040    pub fn SteamAPI_ISteamInput_GetDigitalActionOrigins(
26041        self_: *mut ISteamInput,
26042        inputHandle: InputHandle_t,
26043        actionSetHandle: InputActionSetHandle_t,
26044        digitalActionHandle: InputDigitalActionHandle_t,
26045        originsOut: *mut EInputActionOrigin,
26046    ) -> ::std::os::raw::c_int;
26047}
26048extern "C" {
26049    pub fn SteamAPI_ISteamInput_GetStringForDigitalActionName(
26050        self_: *mut ISteamInput,
26051        eActionHandle: InputDigitalActionHandle_t,
26052    ) -> *const ::std::os::raw::c_char;
26053}
26054extern "C" {
26055    pub fn SteamAPI_ISteamInput_GetAnalogActionHandle(
26056        self_: *mut ISteamInput,
26057        pszActionName: *const ::std::os::raw::c_char,
26058    ) -> InputAnalogActionHandle_t;
26059}
26060extern "C" {
26061    pub fn SteamAPI_ISteamInput_GetAnalogActionData(
26062        self_: *mut ISteamInput,
26063        inputHandle: InputHandle_t,
26064        analogActionHandle: InputAnalogActionHandle_t,
26065    ) -> InputAnalogActionData_t;
26066}
26067extern "C" {
26068    pub fn SteamAPI_ISteamInput_GetAnalogActionOrigins(
26069        self_: *mut ISteamInput,
26070        inputHandle: InputHandle_t,
26071        actionSetHandle: InputActionSetHandle_t,
26072        analogActionHandle: InputAnalogActionHandle_t,
26073        originsOut: *mut EInputActionOrigin,
26074    ) -> ::std::os::raw::c_int;
26075}
26076extern "C" {
26077    pub fn SteamAPI_ISteamInput_GetGlyphPNGForActionOrigin(
26078        self_: *mut ISteamInput,
26079        eOrigin: EInputActionOrigin,
26080        eSize: ESteamInputGlyphSize,
26081        unFlags: uint32,
26082    ) -> *const ::std::os::raw::c_char;
26083}
26084extern "C" {
26085    pub fn SteamAPI_ISteamInput_GetGlyphSVGForActionOrigin(
26086        self_: *mut ISteamInput,
26087        eOrigin: EInputActionOrigin,
26088        unFlags: uint32,
26089    ) -> *const ::std::os::raw::c_char;
26090}
26091extern "C" {
26092    pub fn SteamAPI_ISteamInput_GetGlyphForActionOrigin_Legacy(
26093        self_: *mut ISteamInput,
26094        eOrigin: EInputActionOrigin,
26095    ) -> *const ::std::os::raw::c_char;
26096}
26097extern "C" {
26098    pub fn SteamAPI_ISteamInput_GetStringForActionOrigin(
26099        self_: *mut ISteamInput,
26100        eOrigin: EInputActionOrigin,
26101    ) -> *const ::std::os::raw::c_char;
26102}
26103extern "C" {
26104    pub fn SteamAPI_ISteamInput_GetStringForAnalogActionName(
26105        self_: *mut ISteamInput,
26106        eActionHandle: InputAnalogActionHandle_t,
26107    ) -> *const ::std::os::raw::c_char;
26108}
26109extern "C" {
26110    pub fn SteamAPI_ISteamInput_StopAnalogActionMomentum(
26111        self_: *mut ISteamInput,
26112        inputHandle: InputHandle_t,
26113        eAction: InputAnalogActionHandle_t,
26114    );
26115}
26116extern "C" {
26117    pub fn SteamAPI_ISteamInput_GetMotionData(
26118        self_: *mut ISteamInput,
26119        inputHandle: InputHandle_t,
26120    ) -> InputMotionData_t;
26121}
26122extern "C" {
26123    pub fn SteamAPI_ISteamInput_TriggerVibration(
26124        self_: *mut ISteamInput,
26125        inputHandle: InputHandle_t,
26126        usLeftSpeed: ::std::os::raw::c_ushort,
26127        usRightSpeed: ::std::os::raw::c_ushort,
26128    );
26129}
26130extern "C" {
26131    pub fn SteamAPI_ISteamInput_TriggerVibrationExtended(
26132        self_: *mut ISteamInput,
26133        inputHandle: InputHandle_t,
26134        usLeftSpeed: ::std::os::raw::c_ushort,
26135        usRightSpeed: ::std::os::raw::c_ushort,
26136        usLeftTriggerSpeed: ::std::os::raw::c_ushort,
26137        usRightTriggerSpeed: ::std::os::raw::c_ushort,
26138    );
26139}
26140extern "C" {
26141    pub fn SteamAPI_ISteamInput_TriggerSimpleHapticEvent(
26142        self_: *mut ISteamInput,
26143        inputHandle: InputHandle_t,
26144        eHapticLocation: EControllerHapticLocation,
26145        nIntensity: uint8,
26146        nGainDB: ::std::os::raw::c_char,
26147        nOtherIntensity: uint8,
26148        nOtherGainDB: ::std::os::raw::c_char,
26149    );
26150}
26151extern "C" {
26152    pub fn SteamAPI_ISteamInput_SetLEDColor(
26153        self_: *mut ISteamInput,
26154        inputHandle: InputHandle_t,
26155        nColorR: uint8,
26156        nColorG: uint8,
26157        nColorB: uint8,
26158        nFlags: ::std::os::raw::c_uint,
26159    );
26160}
26161extern "C" {
26162    pub fn SteamAPI_ISteamInput_Legacy_TriggerHapticPulse(
26163        self_: *mut ISteamInput,
26164        inputHandle: InputHandle_t,
26165        eTargetPad: ESteamControllerPad,
26166        usDurationMicroSec: ::std::os::raw::c_ushort,
26167    );
26168}
26169extern "C" {
26170    pub fn SteamAPI_ISteamInput_Legacy_TriggerRepeatedHapticPulse(
26171        self_: *mut ISteamInput,
26172        inputHandle: InputHandle_t,
26173        eTargetPad: ESteamControllerPad,
26174        usDurationMicroSec: ::std::os::raw::c_ushort,
26175        usOffMicroSec: ::std::os::raw::c_ushort,
26176        unRepeat: ::std::os::raw::c_ushort,
26177        nFlags: ::std::os::raw::c_uint,
26178    );
26179}
26180extern "C" {
26181    pub fn SteamAPI_ISteamInput_ShowBindingPanel(
26182        self_: *mut ISteamInput,
26183        inputHandle: InputHandle_t,
26184    ) -> bool;
26185}
26186extern "C" {
26187    pub fn SteamAPI_ISteamInput_GetInputTypeForHandle(
26188        self_: *mut ISteamInput,
26189        inputHandle: InputHandle_t,
26190    ) -> ESteamInputType;
26191}
26192extern "C" {
26193    pub fn SteamAPI_ISteamInput_GetControllerForGamepadIndex(
26194        self_: *mut ISteamInput,
26195        nIndex: ::std::os::raw::c_int,
26196    ) -> InputHandle_t;
26197}
26198extern "C" {
26199    pub fn SteamAPI_ISteamInput_GetGamepadIndexForController(
26200        self_: *mut ISteamInput,
26201        ulinputHandle: InputHandle_t,
26202    ) -> ::std::os::raw::c_int;
26203}
26204extern "C" {
26205    pub fn SteamAPI_ISteamInput_GetStringForXboxOrigin(
26206        self_: *mut ISteamInput,
26207        eOrigin: EXboxOrigin,
26208    ) -> *const ::std::os::raw::c_char;
26209}
26210extern "C" {
26211    pub fn SteamAPI_ISteamInput_GetGlyphForXboxOrigin(
26212        self_: *mut ISteamInput,
26213        eOrigin: EXboxOrigin,
26214    ) -> *const ::std::os::raw::c_char;
26215}
26216extern "C" {
26217    pub fn SteamAPI_ISteamInput_GetActionOriginFromXboxOrigin(
26218        self_: *mut ISteamInput,
26219        inputHandle: InputHandle_t,
26220        eOrigin: EXboxOrigin,
26221    ) -> EInputActionOrigin;
26222}
26223extern "C" {
26224    pub fn SteamAPI_ISteamInput_TranslateActionOrigin(
26225        self_: *mut ISteamInput,
26226        eDestinationInputType: ESteamInputType,
26227        eSourceOrigin: EInputActionOrigin,
26228    ) -> EInputActionOrigin;
26229}
26230extern "C" {
26231    pub fn SteamAPI_ISteamInput_GetDeviceBindingRevision(
26232        self_: *mut ISteamInput,
26233        inputHandle: InputHandle_t,
26234        pMajor: *mut ::std::os::raw::c_int,
26235        pMinor: *mut ::std::os::raw::c_int,
26236    ) -> bool;
26237}
26238extern "C" {
26239    pub fn SteamAPI_ISteamInput_GetRemotePlaySessionID(
26240        self_: *mut ISteamInput,
26241        inputHandle: InputHandle_t,
26242    ) -> uint32;
26243}
26244extern "C" {
26245    pub fn SteamAPI_ISteamInput_GetSessionInputConfigurationSettings(
26246        self_: *mut ISteamInput,
26247    ) -> uint16;
26248}
26249extern "C" {
26250    pub fn SteamAPI_ISteamInput_SetDualSenseTriggerEffect(
26251        self_: *mut ISteamInput,
26252        inputHandle: InputHandle_t,
26253        pParam: *const ScePadTriggerEffectParam,
26254    );
26255}
26256extern "C" {
26257    pub fn SteamAPI_SteamController_v008() -> *mut ISteamController;
26258}
26259extern "C" {
26260    pub fn SteamAPI_ISteamController_Init(self_: *mut ISteamController) -> bool;
26261}
26262extern "C" {
26263    pub fn SteamAPI_ISteamController_Shutdown(self_: *mut ISteamController) -> bool;
26264}
26265extern "C" {
26266    pub fn SteamAPI_ISteamController_RunFrame(self_: *mut ISteamController);
26267}
26268extern "C" {
26269    pub fn SteamAPI_ISteamController_GetConnectedControllers(
26270        self_: *mut ISteamController,
26271        handlesOut: *mut ControllerHandle_t,
26272    ) -> ::std::os::raw::c_int;
26273}
26274extern "C" {
26275    pub fn SteamAPI_ISteamController_GetActionSetHandle(
26276        self_: *mut ISteamController,
26277        pszActionSetName: *const ::std::os::raw::c_char,
26278    ) -> ControllerActionSetHandle_t;
26279}
26280extern "C" {
26281    pub fn SteamAPI_ISteamController_ActivateActionSet(
26282        self_: *mut ISteamController,
26283        controllerHandle: ControllerHandle_t,
26284        actionSetHandle: ControllerActionSetHandle_t,
26285    );
26286}
26287extern "C" {
26288    pub fn SteamAPI_ISteamController_GetCurrentActionSet(
26289        self_: *mut ISteamController,
26290        controllerHandle: ControllerHandle_t,
26291    ) -> ControllerActionSetHandle_t;
26292}
26293extern "C" {
26294    pub fn SteamAPI_ISteamController_ActivateActionSetLayer(
26295        self_: *mut ISteamController,
26296        controllerHandle: ControllerHandle_t,
26297        actionSetLayerHandle: ControllerActionSetHandle_t,
26298    );
26299}
26300extern "C" {
26301    pub fn SteamAPI_ISteamController_DeactivateActionSetLayer(
26302        self_: *mut ISteamController,
26303        controllerHandle: ControllerHandle_t,
26304        actionSetLayerHandle: ControllerActionSetHandle_t,
26305    );
26306}
26307extern "C" {
26308    pub fn SteamAPI_ISteamController_DeactivateAllActionSetLayers(
26309        self_: *mut ISteamController,
26310        controllerHandle: ControllerHandle_t,
26311    );
26312}
26313extern "C" {
26314    pub fn SteamAPI_ISteamController_GetActiveActionSetLayers(
26315        self_: *mut ISteamController,
26316        controllerHandle: ControllerHandle_t,
26317        handlesOut: *mut ControllerActionSetHandle_t,
26318    ) -> ::std::os::raw::c_int;
26319}
26320extern "C" {
26321    pub fn SteamAPI_ISteamController_GetDigitalActionHandle(
26322        self_: *mut ISteamController,
26323        pszActionName: *const ::std::os::raw::c_char,
26324    ) -> ControllerDigitalActionHandle_t;
26325}
26326extern "C" {
26327    pub fn SteamAPI_ISteamController_GetDigitalActionData(
26328        self_: *mut ISteamController,
26329        controllerHandle: ControllerHandle_t,
26330        digitalActionHandle: ControllerDigitalActionHandle_t,
26331    ) -> InputDigitalActionData_t;
26332}
26333extern "C" {
26334    pub fn SteamAPI_ISteamController_GetDigitalActionOrigins(
26335        self_: *mut ISteamController,
26336        controllerHandle: ControllerHandle_t,
26337        actionSetHandle: ControllerActionSetHandle_t,
26338        digitalActionHandle: ControllerDigitalActionHandle_t,
26339        originsOut: *mut EControllerActionOrigin,
26340    ) -> ::std::os::raw::c_int;
26341}
26342extern "C" {
26343    pub fn SteamAPI_ISteamController_GetAnalogActionHandle(
26344        self_: *mut ISteamController,
26345        pszActionName: *const ::std::os::raw::c_char,
26346    ) -> ControllerAnalogActionHandle_t;
26347}
26348extern "C" {
26349    pub fn SteamAPI_ISteamController_GetAnalogActionData(
26350        self_: *mut ISteamController,
26351        controllerHandle: ControllerHandle_t,
26352        analogActionHandle: ControllerAnalogActionHandle_t,
26353    ) -> InputAnalogActionData_t;
26354}
26355extern "C" {
26356    pub fn SteamAPI_ISteamController_GetAnalogActionOrigins(
26357        self_: *mut ISteamController,
26358        controllerHandle: ControllerHandle_t,
26359        actionSetHandle: ControllerActionSetHandle_t,
26360        analogActionHandle: ControllerAnalogActionHandle_t,
26361        originsOut: *mut EControllerActionOrigin,
26362    ) -> ::std::os::raw::c_int;
26363}
26364extern "C" {
26365    pub fn SteamAPI_ISteamController_GetGlyphForActionOrigin(
26366        self_: *mut ISteamController,
26367        eOrigin: EControllerActionOrigin,
26368    ) -> *const ::std::os::raw::c_char;
26369}
26370extern "C" {
26371    pub fn SteamAPI_ISteamController_GetStringForActionOrigin(
26372        self_: *mut ISteamController,
26373        eOrigin: EControllerActionOrigin,
26374    ) -> *const ::std::os::raw::c_char;
26375}
26376extern "C" {
26377    pub fn SteamAPI_ISteamController_StopAnalogActionMomentum(
26378        self_: *mut ISteamController,
26379        controllerHandle: ControllerHandle_t,
26380        eAction: ControllerAnalogActionHandle_t,
26381    );
26382}
26383extern "C" {
26384    pub fn SteamAPI_ISteamController_GetMotionData(
26385        self_: *mut ISteamController,
26386        controllerHandle: ControllerHandle_t,
26387    ) -> InputMotionData_t;
26388}
26389extern "C" {
26390    pub fn SteamAPI_ISteamController_TriggerHapticPulse(
26391        self_: *mut ISteamController,
26392        controllerHandle: ControllerHandle_t,
26393        eTargetPad: ESteamControllerPad,
26394        usDurationMicroSec: ::std::os::raw::c_ushort,
26395    );
26396}
26397extern "C" {
26398    pub fn SteamAPI_ISteamController_TriggerRepeatedHapticPulse(
26399        self_: *mut ISteamController,
26400        controllerHandle: ControllerHandle_t,
26401        eTargetPad: ESteamControllerPad,
26402        usDurationMicroSec: ::std::os::raw::c_ushort,
26403        usOffMicroSec: ::std::os::raw::c_ushort,
26404        unRepeat: ::std::os::raw::c_ushort,
26405        nFlags: ::std::os::raw::c_uint,
26406    );
26407}
26408extern "C" {
26409    pub fn SteamAPI_ISteamController_TriggerVibration(
26410        self_: *mut ISteamController,
26411        controllerHandle: ControllerHandle_t,
26412        usLeftSpeed: ::std::os::raw::c_ushort,
26413        usRightSpeed: ::std::os::raw::c_ushort,
26414    );
26415}
26416extern "C" {
26417    pub fn SteamAPI_ISteamController_SetLEDColor(
26418        self_: *mut ISteamController,
26419        controllerHandle: ControllerHandle_t,
26420        nColorR: uint8,
26421        nColorG: uint8,
26422        nColorB: uint8,
26423        nFlags: ::std::os::raw::c_uint,
26424    );
26425}
26426extern "C" {
26427    pub fn SteamAPI_ISteamController_ShowBindingPanel(
26428        self_: *mut ISteamController,
26429        controllerHandle: ControllerHandle_t,
26430    ) -> bool;
26431}
26432extern "C" {
26433    pub fn SteamAPI_ISteamController_GetInputTypeForHandle(
26434        self_: *mut ISteamController,
26435        controllerHandle: ControllerHandle_t,
26436    ) -> ESteamInputType;
26437}
26438extern "C" {
26439    pub fn SteamAPI_ISteamController_GetControllerForGamepadIndex(
26440        self_: *mut ISteamController,
26441        nIndex: ::std::os::raw::c_int,
26442    ) -> ControllerHandle_t;
26443}
26444extern "C" {
26445    pub fn SteamAPI_ISteamController_GetGamepadIndexForController(
26446        self_: *mut ISteamController,
26447        ulControllerHandle: ControllerHandle_t,
26448    ) -> ::std::os::raw::c_int;
26449}
26450extern "C" {
26451    pub fn SteamAPI_ISteamController_GetStringForXboxOrigin(
26452        self_: *mut ISteamController,
26453        eOrigin: EXboxOrigin,
26454    ) -> *const ::std::os::raw::c_char;
26455}
26456extern "C" {
26457    pub fn SteamAPI_ISteamController_GetGlyphForXboxOrigin(
26458        self_: *mut ISteamController,
26459        eOrigin: EXboxOrigin,
26460    ) -> *const ::std::os::raw::c_char;
26461}
26462extern "C" {
26463    pub fn SteamAPI_ISteamController_GetActionOriginFromXboxOrigin(
26464        self_: *mut ISteamController,
26465        controllerHandle: ControllerHandle_t,
26466        eOrigin: EXboxOrigin,
26467    ) -> EControllerActionOrigin;
26468}
26469extern "C" {
26470    pub fn SteamAPI_ISteamController_TranslateActionOrigin(
26471        self_: *mut ISteamController,
26472        eDestinationInputType: ESteamInputType,
26473        eSourceOrigin: EControllerActionOrigin,
26474    ) -> EControllerActionOrigin;
26475}
26476extern "C" {
26477    pub fn SteamAPI_ISteamController_GetControllerBindingRevision(
26478        self_: *mut ISteamController,
26479        controllerHandle: ControllerHandle_t,
26480        pMajor: *mut ::std::os::raw::c_int,
26481        pMinor: *mut ::std::os::raw::c_int,
26482    ) -> bool;
26483}
26484extern "C" {
26485    pub fn SteamAPI_SteamUGC_v018() -> *mut ISteamUGC;
26486}
26487extern "C" {
26488    pub fn SteamAPI_SteamGameServerUGC_v018() -> *mut ISteamUGC;
26489}
26490extern "C" {
26491    pub fn SteamAPI_ISteamUGC_CreateQueryUserUGCRequest(
26492        self_: *mut ISteamUGC,
26493        unAccountID: AccountID_t,
26494        eListType: EUserUGCList,
26495        eMatchingUGCType: EUGCMatchingUGCType,
26496        eSortOrder: EUserUGCListSortOrder,
26497        nCreatorAppID: AppId_t,
26498        nConsumerAppID: AppId_t,
26499        unPage: uint32,
26500    ) -> UGCQueryHandle_t;
26501}
26502extern "C" {
26503    pub fn SteamAPI_ISteamUGC_CreateQueryAllUGCRequestPage(
26504        self_: *mut ISteamUGC,
26505        eQueryType: EUGCQuery,
26506        eMatchingeMatchingUGCTypeFileType: EUGCMatchingUGCType,
26507        nCreatorAppID: AppId_t,
26508        nConsumerAppID: AppId_t,
26509        unPage: uint32,
26510    ) -> UGCQueryHandle_t;
26511}
26512extern "C" {
26513    pub fn SteamAPI_ISteamUGC_CreateQueryAllUGCRequestCursor(
26514        self_: *mut ISteamUGC,
26515        eQueryType: EUGCQuery,
26516        eMatchingeMatchingUGCTypeFileType: EUGCMatchingUGCType,
26517        nCreatorAppID: AppId_t,
26518        nConsumerAppID: AppId_t,
26519        pchCursor: *const ::std::os::raw::c_char,
26520    ) -> UGCQueryHandle_t;
26521}
26522extern "C" {
26523    pub fn SteamAPI_ISteamUGC_CreateQueryUGCDetailsRequest(
26524        self_: *mut ISteamUGC,
26525        pvecPublishedFileID: *mut PublishedFileId_t,
26526        unNumPublishedFileIDs: uint32,
26527    ) -> UGCQueryHandle_t;
26528}
26529extern "C" {
26530    pub fn SteamAPI_ISteamUGC_SendQueryUGCRequest(
26531        self_: *mut ISteamUGC,
26532        handle: UGCQueryHandle_t,
26533    ) -> SteamAPICall_t;
26534}
26535extern "C" {
26536    pub fn SteamAPI_ISteamUGC_GetQueryUGCResult(
26537        self_: *mut ISteamUGC,
26538        handle: UGCQueryHandle_t,
26539        index: uint32,
26540        pDetails: *mut SteamUGCDetails_t,
26541    ) -> bool;
26542}
26543extern "C" {
26544    pub fn SteamAPI_ISteamUGC_GetQueryUGCNumTags(
26545        self_: *mut ISteamUGC,
26546        handle: UGCQueryHandle_t,
26547        index: uint32,
26548    ) -> uint32;
26549}
26550extern "C" {
26551    pub fn SteamAPI_ISteamUGC_GetQueryUGCTag(
26552        self_: *mut ISteamUGC,
26553        handle: UGCQueryHandle_t,
26554        index: uint32,
26555        indexTag: uint32,
26556        pchValue: *mut ::std::os::raw::c_char,
26557        cchValueSize: uint32,
26558    ) -> bool;
26559}
26560extern "C" {
26561    pub fn SteamAPI_ISteamUGC_GetQueryUGCTagDisplayName(
26562        self_: *mut ISteamUGC,
26563        handle: UGCQueryHandle_t,
26564        index: uint32,
26565        indexTag: uint32,
26566        pchValue: *mut ::std::os::raw::c_char,
26567        cchValueSize: uint32,
26568    ) -> bool;
26569}
26570extern "C" {
26571    pub fn SteamAPI_ISteamUGC_GetQueryUGCPreviewURL(
26572        self_: *mut ISteamUGC,
26573        handle: UGCQueryHandle_t,
26574        index: uint32,
26575        pchURL: *mut ::std::os::raw::c_char,
26576        cchURLSize: uint32,
26577    ) -> bool;
26578}
26579extern "C" {
26580    pub fn SteamAPI_ISteamUGC_GetQueryUGCMetadata(
26581        self_: *mut ISteamUGC,
26582        handle: UGCQueryHandle_t,
26583        index: uint32,
26584        pchMetadata: *mut ::std::os::raw::c_char,
26585        cchMetadatasize: uint32,
26586    ) -> bool;
26587}
26588extern "C" {
26589    pub fn SteamAPI_ISteamUGC_GetQueryUGCChildren(
26590        self_: *mut ISteamUGC,
26591        handle: UGCQueryHandle_t,
26592        index: uint32,
26593        pvecPublishedFileID: *mut PublishedFileId_t,
26594        cMaxEntries: uint32,
26595    ) -> bool;
26596}
26597extern "C" {
26598    pub fn SteamAPI_ISteamUGC_GetQueryUGCStatistic(
26599        self_: *mut ISteamUGC,
26600        handle: UGCQueryHandle_t,
26601        index: uint32,
26602        eStatType: EItemStatistic,
26603        pStatValue: *mut uint64,
26604    ) -> bool;
26605}
26606extern "C" {
26607    pub fn SteamAPI_ISteamUGC_GetQueryUGCNumAdditionalPreviews(
26608        self_: *mut ISteamUGC,
26609        handle: UGCQueryHandle_t,
26610        index: uint32,
26611    ) -> uint32;
26612}
26613extern "C" {
26614    pub fn SteamAPI_ISteamUGC_GetQueryUGCAdditionalPreview(
26615        self_: *mut ISteamUGC,
26616        handle: UGCQueryHandle_t,
26617        index: uint32,
26618        previewIndex: uint32,
26619        pchURLOrVideoID: *mut ::std::os::raw::c_char,
26620        cchURLSize: uint32,
26621        pchOriginalFileName: *mut ::std::os::raw::c_char,
26622        cchOriginalFileNameSize: uint32,
26623        pPreviewType: *mut EItemPreviewType,
26624    ) -> bool;
26625}
26626extern "C" {
26627    pub fn SteamAPI_ISteamUGC_GetQueryUGCNumKeyValueTags(
26628        self_: *mut ISteamUGC,
26629        handle: UGCQueryHandle_t,
26630        index: uint32,
26631    ) -> uint32;
26632}
26633extern "C" {
26634    pub fn SteamAPI_ISteamUGC_GetQueryUGCKeyValueTag(
26635        self_: *mut ISteamUGC,
26636        handle: UGCQueryHandle_t,
26637        index: uint32,
26638        keyValueTagIndex: uint32,
26639        pchKey: *mut ::std::os::raw::c_char,
26640        cchKeySize: uint32,
26641        pchValue: *mut ::std::os::raw::c_char,
26642        cchValueSize: uint32,
26643    ) -> bool;
26644}
26645extern "C" {
26646    pub fn SteamAPI_ISteamUGC_GetQueryFirstUGCKeyValueTag(
26647        self_: *mut ISteamUGC,
26648        handle: UGCQueryHandle_t,
26649        index: uint32,
26650        pchKey: *const ::std::os::raw::c_char,
26651        pchValue: *mut ::std::os::raw::c_char,
26652        cchValueSize: uint32,
26653    ) -> bool;
26654}
26655extern "C" {
26656    pub fn SteamAPI_ISteamUGC_GetQueryUGCContentDescriptors(
26657        self_: *mut ISteamUGC,
26658        handle: UGCQueryHandle_t,
26659        index: uint32,
26660        pvecDescriptors: *mut EUGCContentDescriptorID,
26661        cMaxEntries: uint32,
26662    ) -> uint32;
26663}
26664extern "C" {
26665    pub fn SteamAPI_ISteamUGC_ReleaseQueryUGCRequest(
26666        self_: *mut ISteamUGC,
26667        handle: UGCQueryHandle_t,
26668    ) -> bool;
26669}
26670extern "C" {
26671    pub fn SteamAPI_ISteamUGC_AddRequiredTag(
26672        self_: *mut ISteamUGC,
26673        handle: UGCQueryHandle_t,
26674        pTagName: *const ::std::os::raw::c_char,
26675    ) -> bool;
26676}
26677extern "C" {
26678    pub fn SteamAPI_ISteamUGC_AddRequiredTagGroup(
26679        self_: *mut ISteamUGC,
26680        handle: UGCQueryHandle_t,
26681        pTagGroups: *const SteamParamStringArray_t,
26682    ) -> bool;
26683}
26684extern "C" {
26685    pub fn SteamAPI_ISteamUGC_AddExcludedTag(
26686        self_: *mut ISteamUGC,
26687        handle: UGCQueryHandle_t,
26688        pTagName: *const ::std::os::raw::c_char,
26689    ) -> bool;
26690}
26691extern "C" {
26692    pub fn SteamAPI_ISteamUGC_SetReturnOnlyIDs(
26693        self_: *mut ISteamUGC,
26694        handle: UGCQueryHandle_t,
26695        bReturnOnlyIDs: bool,
26696    ) -> bool;
26697}
26698extern "C" {
26699    pub fn SteamAPI_ISteamUGC_SetReturnKeyValueTags(
26700        self_: *mut ISteamUGC,
26701        handle: UGCQueryHandle_t,
26702        bReturnKeyValueTags: bool,
26703    ) -> bool;
26704}
26705extern "C" {
26706    pub fn SteamAPI_ISteamUGC_SetReturnLongDescription(
26707        self_: *mut ISteamUGC,
26708        handle: UGCQueryHandle_t,
26709        bReturnLongDescription: bool,
26710    ) -> bool;
26711}
26712extern "C" {
26713    pub fn SteamAPI_ISteamUGC_SetReturnMetadata(
26714        self_: *mut ISteamUGC,
26715        handle: UGCQueryHandle_t,
26716        bReturnMetadata: bool,
26717    ) -> bool;
26718}
26719extern "C" {
26720    pub fn SteamAPI_ISteamUGC_SetReturnChildren(
26721        self_: *mut ISteamUGC,
26722        handle: UGCQueryHandle_t,
26723        bReturnChildren: bool,
26724    ) -> bool;
26725}
26726extern "C" {
26727    pub fn SteamAPI_ISteamUGC_SetReturnAdditionalPreviews(
26728        self_: *mut ISteamUGC,
26729        handle: UGCQueryHandle_t,
26730        bReturnAdditionalPreviews: bool,
26731    ) -> bool;
26732}
26733extern "C" {
26734    pub fn SteamAPI_ISteamUGC_SetReturnTotalOnly(
26735        self_: *mut ISteamUGC,
26736        handle: UGCQueryHandle_t,
26737        bReturnTotalOnly: bool,
26738    ) -> bool;
26739}
26740extern "C" {
26741    pub fn SteamAPI_ISteamUGC_SetReturnPlaytimeStats(
26742        self_: *mut ISteamUGC,
26743        handle: UGCQueryHandle_t,
26744        unDays: uint32,
26745    ) -> bool;
26746}
26747extern "C" {
26748    pub fn SteamAPI_ISteamUGC_SetLanguage(
26749        self_: *mut ISteamUGC,
26750        handle: UGCQueryHandle_t,
26751        pchLanguage: *const ::std::os::raw::c_char,
26752    ) -> bool;
26753}
26754extern "C" {
26755    pub fn SteamAPI_ISteamUGC_SetAllowCachedResponse(
26756        self_: *mut ISteamUGC,
26757        handle: UGCQueryHandle_t,
26758        unMaxAgeSeconds: uint32,
26759    ) -> bool;
26760}
26761extern "C" {
26762    pub fn SteamAPI_ISteamUGC_SetCloudFileNameFilter(
26763        self_: *mut ISteamUGC,
26764        handle: UGCQueryHandle_t,
26765        pMatchCloudFileName: *const ::std::os::raw::c_char,
26766    ) -> bool;
26767}
26768extern "C" {
26769    pub fn SteamAPI_ISteamUGC_SetMatchAnyTag(
26770        self_: *mut ISteamUGC,
26771        handle: UGCQueryHandle_t,
26772        bMatchAnyTag: bool,
26773    ) -> bool;
26774}
26775extern "C" {
26776    pub fn SteamAPI_ISteamUGC_SetSearchText(
26777        self_: *mut ISteamUGC,
26778        handle: UGCQueryHandle_t,
26779        pSearchText: *const ::std::os::raw::c_char,
26780    ) -> bool;
26781}
26782extern "C" {
26783    pub fn SteamAPI_ISteamUGC_SetRankedByTrendDays(
26784        self_: *mut ISteamUGC,
26785        handle: UGCQueryHandle_t,
26786        unDays: uint32,
26787    ) -> bool;
26788}
26789extern "C" {
26790    pub fn SteamAPI_ISteamUGC_SetTimeCreatedDateRange(
26791        self_: *mut ISteamUGC,
26792        handle: UGCQueryHandle_t,
26793        rtStart: RTime32,
26794        rtEnd: RTime32,
26795    ) -> bool;
26796}
26797extern "C" {
26798    pub fn SteamAPI_ISteamUGC_SetTimeUpdatedDateRange(
26799        self_: *mut ISteamUGC,
26800        handle: UGCQueryHandle_t,
26801        rtStart: RTime32,
26802        rtEnd: RTime32,
26803    ) -> bool;
26804}
26805extern "C" {
26806    pub fn SteamAPI_ISteamUGC_AddRequiredKeyValueTag(
26807        self_: *mut ISteamUGC,
26808        handle: UGCQueryHandle_t,
26809        pKey: *const ::std::os::raw::c_char,
26810        pValue: *const ::std::os::raw::c_char,
26811    ) -> bool;
26812}
26813extern "C" {
26814    pub fn SteamAPI_ISteamUGC_RequestUGCDetails(
26815        self_: *mut ISteamUGC,
26816        nPublishedFileID: PublishedFileId_t,
26817        unMaxAgeSeconds: uint32,
26818    ) -> SteamAPICall_t;
26819}
26820extern "C" {
26821    pub fn SteamAPI_ISteamUGC_CreateItem(
26822        self_: *mut ISteamUGC,
26823        nConsumerAppId: AppId_t,
26824        eFileType: EWorkshopFileType,
26825    ) -> SteamAPICall_t;
26826}
26827extern "C" {
26828    pub fn SteamAPI_ISteamUGC_StartItemUpdate(
26829        self_: *mut ISteamUGC,
26830        nConsumerAppId: AppId_t,
26831        nPublishedFileID: PublishedFileId_t,
26832    ) -> UGCUpdateHandle_t;
26833}
26834extern "C" {
26835    pub fn SteamAPI_ISteamUGC_SetItemTitle(
26836        self_: *mut ISteamUGC,
26837        handle: UGCUpdateHandle_t,
26838        pchTitle: *const ::std::os::raw::c_char,
26839    ) -> bool;
26840}
26841extern "C" {
26842    pub fn SteamAPI_ISteamUGC_SetItemDescription(
26843        self_: *mut ISteamUGC,
26844        handle: UGCUpdateHandle_t,
26845        pchDescription: *const ::std::os::raw::c_char,
26846    ) -> bool;
26847}
26848extern "C" {
26849    pub fn SteamAPI_ISteamUGC_SetItemUpdateLanguage(
26850        self_: *mut ISteamUGC,
26851        handle: UGCUpdateHandle_t,
26852        pchLanguage: *const ::std::os::raw::c_char,
26853    ) -> bool;
26854}
26855extern "C" {
26856    pub fn SteamAPI_ISteamUGC_SetItemMetadata(
26857        self_: *mut ISteamUGC,
26858        handle: UGCUpdateHandle_t,
26859        pchMetaData: *const ::std::os::raw::c_char,
26860    ) -> bool;
26861}
26862extern "C" {
26863    pub fn SteamAPI_ISteamUGC_SetItemVisibility(
26864        self_: *mut ISteamUGC,
26865        handle: UGCUpdateHandle_t,
26866        eVisibility: ERemoteStoragePublishedFileVisibility,
26867    ) -> bool;
26868}
26869extern "C" {
26870    pub fn SteamAPI_ISteamUGC_SetItemTags(
26871        self_: *mut ISteamUGC,
26872        updateHandle: UGCUpdateHandle_t,
26873        pTags: *const SteamParamStringArray_t,
26874        bAllowAdminTags: bool,
26875    ) -> bool;
26876}
26877extern "C" {
26878    pub fn SteamAPI_ISteamUGC_SetItemContent(
26879        self_: *mut ISteamUGC,
26880        handle: UGCUpdateHandle_t,
26881        pszContentFolder: *const ::std::os::raw::c_char,
26882    ) -> bool;
26883}
26884extern "C" {
26885    pub fn SteamAPI_ISteamUGC_SetItemPreview(
26886        self_: *mut ISteamUGC,
26887        handle: UGCUpdateHandle_t,
26888        pszPreviewFile: *const ::std::os::raw::c_char,
26889    ) -> bool;
26890}
26891extern "C" {
26892    pub fn SteamAPI_ISteamUGC_SetAllowLegacyUpload(
26893        self_: *mut ISteamUGC,
26894        handle: UGCUpdateHandle_t,
26895        bAllowLegacyUpload: bool,
26896    ) -> bool;
26897}
26898extern "C" {
26899    pub fn SteamAPI_ISteamUGC_RemoveAllItemKeyValueTags(
26900        self_: *mut ISteamUGC,
26901        handle: UGCUpdateHandle_t,
26902    ) -> bool;
26903}
26904extern "C" {
26905    pub fn SteamAPI_ISteamUGC_RemoveItemKeyValueTags(
26906        self_: *mut ISteamUGC,
26907        handle: UGCUpdateHandle_t,
26908        pchKey: *const ::std::os::raw::c_char,
26909    ) -> bool;
26910}
26911extern "C" {
26912    pub fn SteamAPI_ISteamUGC_AddItemKeyValueTag(
26913        self_: *mut ISteamUGC,
26914        handle: UGCUpdateHandle_t,
26915        pchKey: *const ::std::os::raw::c_char,
26916        pchValue: *const ::std::os::raw::c_char,
26917    ) -> bool;
26918}
26919extern "C" {
26920    pub fn SteamAPI_ISteamUGC_AddItemPreviewFile(
26921        self_: *mut ISteamUGC,
26922        handle: UGCUpdateHandle_t,
26923        pszPreviewFile: *const ::std::os::raw::c_char,
26924        type_: EItemPreviewType,
26925    ) -> bool;
26926}
26927extern "C" {
26928    pub fn SteamAPI_ISteamUGC_AddItemPreviewVideo(
26929        self_: *mut ISteamUGC,
26930        handle: UGCUpdateHandle_t,
26931        pszVideoID: *const ::std::os::raw::c_char,
26932    ) -> bool;
26933}
26934extern "C" {
26935    pub fn SteamAPI_ISteamUGC_UpdateItemPreviewFile(
26936        self_: *mut ISteamUGC,
26937        handle: UGCUpdateHandle_t,
26938        index: uint32,
26939        pszPreviewFile: *const ::std::os::raw::c_char,
26940    ) -> bool;
26941}
26942extern "C" {
26943    pub fn SteamAPI_ISteamUGC_UpdateItemPreviewVideo(
26944        self_: *mut ISteamUGC,
26945        handle: UGCUpdateHandle_t,
26946        index: uint32,
26947        pszVideoID: *const ::std::os::raw::c_char,
26948    ) -> bool;
26949}
26950extern "C" {
26951    pub fn SteamAPI_ISteamUGC_RemoveItemPreview(
26952        self_: *mut ISteamUGC,
26953        handle: UGCUpdateHandle_t,
26954        index: uint32,
26955    ) -> bool;
26956}
26957extern "C" {
26958    pub fn SteamAPI_ISteamUGC_AddContentDescriptor(
26959        self_: *mut ISteamUGC,
26960        handle: UGCUpdateHandle_t,
26961        descid: EUGCContentDescriptorID,
26962    ) -> bool;
26963}
26964extern "C" {
26965    pub fn SteamAPI_ISteamUGC_RemoveContentDescriptor(
26966        self_: *mut ISteamUGC,
26967        handle: UGCUpdateHandle_t,
26968        descid: EUGCContentDescriptorID,
26969    ) -> bool;
26970}
26971extern "C" {
26972    pub fn SteamAPI_ISteamUGC_SubmitItemUpdate(
26973        self_: *mut ISteamUGC,
26974        handle: UGCUpdateHandle_t,
26975        pchChangeNote: *const ::std::os::raw::c_char,
26976    ) -> SteamAPICall_t;
26977}
26978extern "C" {
26979    pub fn SteamAPI_ISteamUGC_GetItemUpdateProgress(
26980        self_: *mut ISteamUGC,
26981        handle: UGCUpdateHandle_t,
26982        punBytesProcessed: *mut uint64,
26983        punBytesTotal: *mut uint64,
26984    ) -> EItemUpdateStatus;
26985}
26986extern "C" {
26987    pub fn SteamAPI_ISteamUGC_SetUserItemVote(
26988        self_: *mut ISteamUGC,
26989        nPublishedFileID: PublishedFileId_t,
26990        bVoteUp: bool,
26991    ) -> SteamAPICall_t;
26992}
26993extern "C" {
26994    pub fn SteamAPI_ISteamUGC_GetUserItemVote(
26995        self_: *mut ISteamUGC,
26996        nPublishedFileID: PublishedFileId_t,
26997    ) -> SteamAPICall_t;
26998}
26999extern "C" {
27000    pub fn SteamAPI_ISteamUGC_AddItemToFavorites(
27001        self_: *mut ISteamUGC,
27002        nAppId: AppId_t,
27003        nPublishedFileID: PublishedFileId_t,
27004    ) -> SteamAPICall_t;
27005}
27006extern "C" {
27007    pub fn SteamAPI_ISteamUGC_RemoveItemFromFavorites(
27008        self_: *mut ISteamUGC,
27009        nAppId: AppId_t,
27010        nPublishedFileID: PublishedFileId_t,
27011    ) -> SteamAPICall_t;
27012}
27013extern "C" {
27014    pub fn SteamAPI_ISteamUGC_SubscribeItem(
27015        self_: *mut ISteamUGC,
27016        nPublishedFileID: PublishedFileId_t,
27017    ) -> SteamAPICall_t;
27018}
27019extern "C" {
27020    pub fn SteamAPI_ISteamUGC_UnsubscribeItem(
27021        self_: *mut ISteamUGC,
27022        nPublishedFileID: PublishedFileId_t,
27023    ) -> SteamAPICall_t;
27024}
27025extern "C" {
27026    pub fn SteamAPI_ISteamUGC_GetNumSubscribedItems(self_: *mut ISteamUGC) -> uint32;
27027}
27028extern "C" {
27029    pub fn SteamAPI_ISteamUGC_GetSubscribedItems(
27030        self_: *mut ISteamUGC,
27031        pvecPublishedFileID: *mut PublishedFileId_t,
27032        cMaxEntries: uint32,
27033    ) -> uint32;
27034}
27035extern "C" {
27036    pub fn SteamAPI_ISteamUGC_GetItemState(
27037        self_: *mut ISteamUGC,
27038        nPublishedFileID: PublishedFileId_t,
27039    ) -> uint32;
27040}
27041extern "C" {
27042    pub fn SteamAPI_ISteamUGC_GetItemInstallInfo(
27043        self_: *mut ISteamUGC,
27044        nPublishedFileID: PublishedFileId_t,
27045        punSizeOnDisk: *mut uint64,
27046        pchFolder: *mut ::std::os::raw::c_char,
27047        cchFolderSize: uint32,
27048        punTimeStamp: *mut uint32,
27049    ) -> bool;
27050}
27051extern "C" {
27052    pub fn SteamAPI_ISteamUGC_GetItemDownloadInfo(
27053        self_: *mut ISteamUGC,
27054        nPublishedFileID: PublishedFileId_t,
27055        punBytesDownloaded: *mut uint64,
27056        punBytesTotal: *mut uint64,
27057    ) -> bool;
27058}
27059extern "C" {
27060    pub fn SteamAPI_ISteamUGC_DownloadItem(
27061        self_: *mut ISteamUGC,
27062        nPublishedFileID: PublishedFileId_t,
27063        bHighPriority: bool,
27064    ) -> bool;
27065}
27066extern "C" {
27067    pub fn SteamAPI_ISteamUGC_BInitWorkshopForGameServer(
27068        self_: *mut ISteamUGC,
27069        unWorkshopDepotID: DepotId_t,
27070        pszFolder: *const ::std::os::raw::c_char,
27071    ) -> bool;
27072}
27073extern "C" {
27074    pub fn SteamAPI_ISteamUGC_SuspendDownloads(self_: *mut ISteamUGC, bSuspend: bool);
27075}
27076extern "C" {
27077    pub fn SteamAPI_ISteamUGC_StartPlaytimeTracking(
27078        self_: *mut ISteamUGC,
27079        pvecPublishedFileID: *mut PublishedFileId_t,
27080        unNumPublishedFileIDs: uint32,
27081    ) -> SteamAPICall_t;
27082}
27083extern "C" {
27084    pub fn SteamAPI_ISteamUGC_StopPlaytimeTracking(
27085        self_: *mut ISteamUGC,
27086        pvecPublishedFileID: *mut PublishedFileId_t,
27087        unNumPublishedFileIDs: uint32,
27088    ) -> SteamAPICall_t;
27089}
27090extern "C" {
27091    pub fn SteamAPI_ISteamUGC_StopPlaytimeTrackingForAllItems(
27092        self_: *mut ISteamUGC,
27093    ) -> SteamAPICall_t;
27094}
27095extern "C" {
27096    pub fn SteamAPI_ISteamUGC_AddDependency(
27097        self_: *mut ISteamUGC,
27098        nParentPublishedFileID: PublishedFileId_t,
27099        nChildPublishedFileID: PublishedFileId_t,
27100    ) -> SteamAPICall_t;
27101}
27102extern "C" {
27103    pub fn SteamAPI_ISteamUGC_RemoveDependency(
27104        self_: *mut ISteamUGC,
27105        nParentPublishedFileID: PublishedFileId_t,
27106        nChildPublishedFileID: PublishedFileId_t,
27107    ) -> SteamAPICall_t;
27108}
27109extern "C" {
27110    pub fn SteamAPI_ISteamUGC_AddAppDependency(
27111        self_: *mut ISteamUGC,
27112        nPublishedFileID: PublishedFileId_t,
27113        nAppID: AppId_t,
27114    ) -> SteamAPICall_t;
27115}
27116extern "C" {
27117    pub fn SteamAPI_ISteamUGC_RemoveAppDependency(
27118        self_: *mut ISteamUGC,
27119        nPublishedFileID: PublishedFileId_t,
27120        nAppID: AppId_t,
27121    ) -> SteamAPICall_t;
27122}
27123extern "C" {
27124    pub fn SteamAPI_ISteamUGC_GetAppDependencies(
27125        self_: *mut ISteamUGC,
27126        nPublishedFileID: PublishedFileId_t,
27127    ) -> SteamAPICall_t;
27128}
27129extern "C" {
27130    pub fn SteamAPI_ISteamUGC_DeleteItem(
27131        self_: *mut ISteamUGC,
27132        nPublishedFileID: PublishedFileId_t,
27133    ) -> SteamAPICall_t;
27134}
27135extern "C" {
27136    pub fn SteamAPI_ISteamUGC_ShowWorkshopEULA(self_: *mut ISteamUGC) -> bool;
27137}
27138extern "C" {
27139    pub fn SteamAPI_ISteamUGC_GetWorkshopEULAStatus(self_: *mut ISteamUGC) -> SteamAPICall_t;
27140}
27141extern "C" {
27142    pub fn SteamAPI_ISteamUGC_GetUserContentDescriptorPreferences(
27143        self_: *mut ISteamUGC,
27144        pvecDescriptors: *mut EUGCContentDescriptorID,
27145        cMaxEntries: uint32,
27146    ) -> uint32;
27147}
27148extern "C" {
27149    pub fn SteamAPI_SteamAppList_v001() -> *mut ISteamAppList;
27150}
27151extern "C" {
27152    pub fn SteamAPI_ISteamAppList_GetNumInstalledApps(self_: *mut ISteamAppList) -> uint32;
27153}
27154extern "C" {
27155    pub fn SteamAPI_ISteamAppList_GetInstalledApps(
27156        self_: *mut ISteamAppList,
27157        pvecAppID: *mut AppId_t,
27158        unMaxAppIDs: uint32,
27159    ) -> uint32;
27160}
27161extern "C" {
27162    pub fn SteamAPI_ISteamAppList_GetAppName(
27163        self_: *mut ISteamAppList,
27164        nAppID: AppId_t,
27165        pchName: *mut ::std::os::raw::c_char,
27166        cchNameMax: ::std::os::raw::c_int,
27167    ) -> ::std::os::raw::c_int;
27168}
27169extern "C" {
27170    pub fn SteamAPI_ISteamAppList_GetAppInstallDir(
27171        self_: *mut ISteamAppList,
27172        nAppID: AppId_t,
27173        pchDirectory: *mut ::std::os::raw::c_char,
27174        cchNameMax: ::std::os::raw::c_int,
27175    ) -> ::std::os::raw::c_int;
27176}
27177extern "C" {
27178    pub fn SteamAPI_ISteamAppList_GetAppBuildId(
27179        self_: *mut ISteamAppList,
27180        nAppID: AppId_t,
27181    ) -> ::std::os::raw::c_int;
27182}
27183extern "C" {
27184    pub fn SteamAPI_SteamHTMLSurface_v005() -> *mut ISteamHTMLSurface;
27185}
27186extern "C" {
27187    pub fn SteamAPI_ISteamHTMLSurface_Init(self_: *mut ISteamHTMLSurface) -> bool;
27188}
27189extern "C" {
27190    pub fn SteamAPI_ISteamHTMLSurface_Shutdown(self_: *mut ISteamHTMLSurface) -> bool;
27191}
27192extern "C" {
27193    pub fn SteamAPI_ISteamHTMLSurface_CreateBrowser(
27194        self_: *mut ISteamHTMLSurface,
27195        pchUserAgent: *const ::std::os::raw::c_char,
27196        pchUserCSS: *const ::std::os::raw::c_char,
27197    ) -> SteamAPICall_t;
27198}
27199extern "C" {
27200    pub fn SteamAPI_ISteamHTMLSurface_RemoveBrowser(
27201        self_: *mut ISteamHTMLSurface,
27202        unBrowserHandle: HHTMLBrowser,
27203    );
27204}
27205extern "C" {
27206    pub fn SteamAPI_ISteamHTMLSurface_LoadURL(
27207        self_: *mut ISteamHTMLSurface,
27208        unBrowserHandle: HHTMLBrowser,
27209        pchURL: *const ::std::os::raw::c_char,
27210        pchPostData: *const ::std::os::raw::c_char,
27211    );
27212}
27213extern "C" {
27214    pub fn SteamAPI_ISteamHTMLSurface_SetSize(
27215        self_: *mut ISteamHTMLSurface,
27216        unBrowserHandle: HHTMLBrowser,
27217        unWidth: uint32,
27218        unHeight: uint32,
27219    );
27220}
27221extern "C" {
27222    pub fn SteamAPI_ISteamHTMLSurface_StopLoad(
27223        self_: *mut ISteamHTMLSurface,
27224        unBrowserHandle: HHTMLBrowser,
27225    );
27226}
27227extern "C" {
27228    pub fn SteamAPI_ISteamHTMLSurface_Reload(
27229        self_: *mut ISteamHTMLSurface,
27230        unBrowserHandle: HHTMLBrowser,
27231    );
27232}
27233extern "C" {
27234    pub fn SteamAPI_ISteamHTMLSurface_GoBack(
27235        self_: *mut ISteamHTMLSurface,
27236        unBrowserHandle: HHTMLBrowser,
27237    );
27238}
27239extern "C" {
27240    pub fn SteamAPI_ISteamHTMLSurface_GoForward(
27241        self_: *mut ISteamHTMLSurface,
27242        unBrowserHandle: HHTMLBrowser,
27243    );
27244}
27245extern "C" {
27246    pub fn SteamAPI_ISteamHTMLSurface_AddHeader(
27247        self_: *mut ISteamHTMLSurface,
27248        unBrowserHandle: HHTMLBrowser,
27249        pchKey: *const ::std::os::raw::c_char,
27250        pchValue: *const ::std::os::raw::c_char,
27251    );
27252}
27253extern "C" {
27254    pub fn SteamAPI_ISteamHTMLSurface_ExecuteJavascript(
27255        self_: *mut ISteamHTMLSurface,
27256        unBrowserHandle: HHTMLBrowser,
27257        pchScript: *const ::std::os::raw::c_char,
27258    );
27259}
27260extern "C" {
27261    pub fn SteamAPI_ISteamHTMLSurface_MouseUp(
27262        self_: *mut ISteamHTMLSurface,
27263        unBrowserHandle: HHTMLBrowser,
27264        eMouseButton: ISteamHTMLSurface_EHTMLMouseButton,
27265    );
27266}
27267extern "C" {
27268    pub fn SteamAPI_ISteamHTMLSurface_MouseDown(
27269        self_: *mut ISteamHTMLSurface,
27270        unBrowserHandle: HHTMLBrowser,
27271        eMouseButton: ISteamHTMLSurface_EHTMLMouseButton,
27272    );
27273}
27274extern "C" {
27275    pub fn SteamAPI_ISteamHTMLSurface_MouseDoubleClick(
27276        self_: *mut ISteamHTMLSurface,
27277        unBrowserHandle: HHTMLBrowser,
27278        eMouseButton: ISteamHTMLSurface_EHTMLMouseButton,
27279    );
27280}
27281extern "C" {
27282    pub fn SteamAPI_ISteamHTMLSurface_MouseMove(
27283        self_: *mut ISteamHTMLSurface,
27284        unBrowserHandle: HHTMLBrowser,
27285        x: ::std::os::raw::c_int,
27286        y: ::std::os::raw::c_int,
27287    );
27288}
27289extern "C" {
27290    pub fn SteamAPI_ISteamHTMLSurface_MouseWheel(
27291        self_: *mut ISteamHTMLSurface,
27292        unBrowserHandle: HHTMLBrowser,
27293        nDelta: int32,
27294    );
27295}
27296extern "C" {
27297    pub fn SteamAPI_ISteamHTMLSurface_KeyDown(
27298        self_: *mut ISteamHTMLSurface,
27299        unBrowserHandle: HHTMLBrowser,
27300        nNativeKeyCode: uint32,
27301        eHTMLKeyModifiers: ISteamHTMLSurface_EHTMLKeyModifiers,
27302        bIsSystemKey: bool,
27303    );
27304}
27305extern "C" {
27306    pub fn SteamAPI_ISteamHTMLSurface_KeyUp(
27307        self_: *mut ISteamHTMLSurface,
27308        unBrowserHandle: HHTMLBrowser,
27309        nNativeKeyCode: uint32,
27310        eHTMLKeyModifiers: ISteamHTMLSurface_EHTMLKeyModifiers,
27311    );
27312}
27313extern "C" {
27314    pub fn SteamAPI_ISteamHTMLSurface_KeyChar(
27315        self_: *mut ISteamHTMLSurface,
27316        unBrowserHandle: HHTMLBrowser,
27317        cUnicodeChar: uint32,
27318        eHTMLKeyModifiers: ISteamHTMLSurface_EHTMLKeyModifiers,
27319    );
27320}
27321extern "C" {
27322    pub fn SteamAPI_ISteamHTMLSurface_SetHorizontalScroll(
27323        self_: *mut ISteamHTMLSurface,
27324        unBrowserHandle: HHTMLBrowser,
27325        nAbsolutePixelScroll: uint32,
27326    );
27327}
27328extern "C" {
27329    pub fn SteamAPI_ISteamHTMLSurface_SetVerticalScroll(
27330        self_: *mut ISteamHTMLSurface,
27331        unBrowserHandle: HHTMLBrowser,
27332        nAbsolutePixelScroll: uint32,
27333    );
27334}
27335extern "C" {
27336    pub fn SteamAPI_ISteamHTMLSurface_SetKeyFocus(
27337        self_: *mut ISteamHTMLSurface,
27338        unBrowserHandle: HHTMLBrowser,
27339        bHasKeyFocus: bool,
27340    );
27341}
27342extern "C" {
27343    pub fn SteamAPI_ISteamHTMLSurface_ViewSource(
27344        self_: *mut ISteamHTMLSurface,
27345        unBrowserHandle: HHTMLBrowser,
27346    );
27347}
27348extern "C" {
27349    pub fn SteamAPI_ISteamHTMLSurface_CopyToClipboard(
27350        self_: *mut ISteamHTMLSurface,
27351        unBrowserHandle: HHTMLBrowser,
27352    );
27353}
27354extern "C" {
27355    pub fn SteamAPI_ISteamHTMLSurface_PasteFromClipboard(
27356        self_: *mut ISteamHTMLSurface,
27357        unBrowserHandle: HHTMLBrowser,
27358    );
27359}
27360extern "C" {
27361    pub fn SteamAPI_ISteamHTMLSurface_Find(
27362        self_: *mut ISteamHTMLSurface,
27363        unBrowserHandle: HHTMLBrowser,
27364        pchSearchStr: *const ::std::os::raw::c_char,
27365        bCurrentlyInFind: bool,
27366        bReverse: bool,
27367    );
27368}
27369extern "C" {
27370    pub fn SteamAPI_ISteamHTMLSurface_StopFind(
27371        self_: *mut ISteamHTMLSurface,
27372        unBrowserHandle: HHTMLBrowser,
27373    );
27374}
27375extern "C" {
27376    pub fn SteamAPI_ISteamHTMLSurface_GetLinkAtPosition(
27377        self_: *mut ISteamHTMLSurface,
27378        unBrowserHandle: HHTMLBrowser,
27379        x: ::std::os::raw::c_int,
27380        y: ::std::os::raw::c_int,
27381    );
27382}
27383extern "C" {
27384    pub fn SteamAPI_ISteamHTMLSurface_SetCookie(
27385        self_: *mut ISteamHTMLSurface,
27386        pchHostname: *const ::std::os::raw::c_char,
27387        pchKey: *const ::std::os::raw::c_char,
27388        pchValue: *const ::std::os::raw::c_char,
27389        pchPath: *const ::std::os::raw::c_char,
27390        nExpires: RTime32,
27391        bSecure: bool,
27392        bHTTPOnly: bool,
27393    );
27394}
27395extern "C" {
27396    pub fn SteamAPI_ISteamHTMLSurface_SetPageScaleFactor(
27397        self_: *mut ISteamHTMLSurface,
27398        unBrowserHandle: HHTMLBrowser,
27399        flZoom: f32,
27400        nPointX: ::std::os::raw::c_int,
27401        nPointY: ::std::os::raw::c_int,
27402    );
27403}
27404extern "C" {
27405    pub fn SteamAPI_ISteamHTMLSurface_SetBackgroundMode(
27406        self_: *mut ISteamHTMLSurface,
27407        unBrowserHandle: HHTMLBrowser,
27408        bBackgroundMode: bool,
27409    );
27410}
27411extern "C" {
27412    pub fn SteamAPI_ISteamHTMLSurface_SetDPIScalingFactor(
27413        self_: *mut ISteamHTMLSurface,
27414        unBrowserHandle: HHTMLBrowser,
27415        flDPIScaling: f32,
27416    );
27417}
27418extern "C" {
27419    pub fn SteamAPI_ISteamHTMLSurface_OpenDeveloperTools(
27420        self_: *mut ISteamHTMLSurface,
27421        unBrowserHandle: HHTMLBrowser,
27422    );
27423}
27424extern "C" {
27425    pub fn SteamAPI_ISteamHTMLSurface_AllowStartRequest(
27426        self_: *mut ISteamHTMLSurface,
27427        unBrowserHandle: HHTMLBrowser,
27428        bAllowed: bool,
27429    );
27430}
27431extern "C" {
27432    pub fn SteamAPI_ISteamHTMLSurface_JSDialogResponse(
27433        self_: *mut ISteamHTMLSurface,
27434        unBrowserHandle: HHTMLBrowser,
27435        bResult: bool,
27436    );
27437}
27438extern "C" {
27439    pub fn SteamAPI_ISteamHTMLSurface_FileLoadDialogResponse(
27440        self_: *mut ISteamHTMLSurface,
27441        unBrowserHandle: HHTMLBrowser,
27442        pchSelectedFiles: *mut *const ::std::os::raw::c_char,
27443    );
27444}
27445extern "C" {
27446    pub fn SteamAPI_SteamInventory_v003() -> *mut ISteamInventory;
27447}
27448extern "C" {
27449    pub fn SteamAPI_SteamGameServerInventory_v003() -> *mut ISteamInventory;
27450}
27451extern "C" {
27452    pub fn SteamAPI_ISteamInventory_GetResultStatus(
27453        self_: *mut ISteamInventory,
27454        resultHandle: SteamInventoryResult_t,
27455    ) -> EResult;
27456}
27457extern "C" {
27458    pub fn SteamAPI_ISteamInventory_GetResultItems(
27459        self_: *mut ISteamInventory,
27460        resultHandle: SteamInventoryResult_t,
27461        pOutItemsArray: *mut SteamItemDetails_t,
27462        punOutItemsArraySize: *mut uint32,
27463    ) -> bool;
27464}
27465extern "C" {
27466    pub fn SteamAPI_ISteamInventory_GetResultItemProperty(
27467        self_: *mut ISteamInventory,
27468        resultHandle: SteamInventoryResult_t,
27469        unItemIndex: uint32,
27470        pchPropertyName: *const ::std::os::raw::c_char,
27471        pchValueBuffer: *mut ::std::os::raw::c_char,
27472        punValueBufferSizeOut: *mut uint32,
27473    ) -> bool;
27474}
27475extern "C" {
27476    pub fn SteamAPI_ISteamInventory_GetResultTimestamp(
27477        self_: *mut ISteamInventory,
27478        resultHandle: SteamInventoryResult_t,
27479    ) -> uint32;
27480}
27481extern "C" {
27482    pub fn SteamAPI_ISteamInventory_CheckResultSteamID(
27483        self_: *mut ISteamInventory,
27484        resultHandle: SteamInventoryResult_t,
27485        steamIDExpected: uint64_steamid,
27486    ) -> bool;
27487}
27488extern "C" {
27489    pub fn SteamAPI_ISteamInventory_DestroyResult(
27490        self_: *mut ISteamInventory,
27491        resultHandle: SteamInventoryResult_t,
27492    );
27493}
27494extern "C" {
27495    pub fn SteamAPI_ISteamInventory_GetAllItems(
27496        self_: *mut ISteamInventory,
27497        pResultHandle: *mut SteamInventoryResult_t,
27498    ) -> bool;
27499}
27500extern "C" {
27501    pub fn SteamAPI_ISteamInventory_GetItemsByID(
27502        self_: *mut ISteamInventory,
27503        pResultHandle: *mut SteamInventoryResult_t,
27504        pInstanceIDs: *const SteamItemInstanceID_t,
27505        unCountInstanceIDs: uint32,
27506    ) -> bool;
27507}
27508extern "C" {
27509    pub fn SteamAPI_ISteamInventory_SerializeResult(
27510        self_: *mut ISteamInventory,
27511        resultHandle: SteamInventoryResult_t,
27512        pOutBuffer: *mut ::std::os::raw::c_void,
27513        punOutBufferSize: *mut uint32,
27514    ) -> bool;
27515}
27516extern "C" {
27517    pub fn SteamAPI_ISteamInventory_DeserializeResult(
27518        self_: *mut ISteamInventory,
27519        pOutResultHandle: *mut SteamInventoryResult_t,
27520        pBuffer: *const ::std::os::raw::c_void,
27521        unBufferSize: uint32,
27522        bRESERVED_MUST_BE_FALSE: bool,
27523    ) -> bool;
27524}
27525extern "C" {
27526    pub fn SteamAPI_ISteamInventory_GenerateItems(
27527        self_: *mut ISteamInventory,
27528        pResultHandle: *mut SteamInventoryResult_t,
27529        pArrayItemDefs: *const SteamItemDef_t,
27530        punArrayQuantity: *const uint32,
27531        unArrayLength: uint32,
27532    ) -> bool;
27533}
27534extern "C" {
27535    pub fn SteamAPI_ISteamInventory_GrantPromoItems(
27536        self_: *mut ISteamInventory,
27537        pResultHandle: *mut SteamInventoryResult_t,
27538    ) -> bool;
27539}
27540extern "C" {
27541    pub fn SteamAPI_ISteamInventory_AddPromoItem(
27542        self_: *mut ISteamInventory,
27543        pResultHandle: *mut SteamInventoryResult_t,
27544        itemDef: SteamItemDef_t,
27545    ) -> bool;
27546}
27547extern "C" {
27548    pub fn SteamAPI_ISteamInventory_AddPromoItems(
27549        self_: *mut ISteamInventory,
27550        pResultHandle: *mut SteamInventoryResult_t,
27551        pArrayItemDefs: *const SteamItemDef_t,
27552        unArrayLength: uint32,
27553    ) -> bool;
27554}
27555extern "C" {
27556    pub fn SteamAPI_ISteamInventory_ConsumeItem(
27557        self_: *mut ISteamInventory,
27558        pResultHandle: *mut SteamInventoryResult_t,
27559        itemConsume: SteamItemInstanceID_t,
27560        unQuantity: uint32,
27561    ) -> bool;
27562}
27563extern "C" {
27564    pub fn SteamAPI_ISteamInventory_ExchangeItems(
27565        self_: *mut ISteamInventory,
27566        pResultHandle: *mut SteamInventoryResult_t,
27567        pArrayGenerate: *const SteamItemDef_t,
27568        punArrayGenerateQuantity: *const uint32,
27569        unArrayGenerateLength: uint32,
27570        pArrayDestroy: *const SteamItemInstanceID_t,
27571        punArrayDestroyQuantity: *const uint32,
27572        unArrayDestroyLength: uint32,
27573    ) -> bool;
27574}
27575extern "C" {
27576    pub fn SteamAPI_ISteamInventory_TransferItemQuantity(
27577        self_: *mut ISteamInventory,
27578        pResultHandle: *mut SteamInventoryResult_t,
27579        itemIdSource: SteamItemInstanceID_t,
27580        unQuantity: uint32,
27581        itemIdDest: SteamItemInstanceID_t,
27582    ) -> bool;
27583}
27584extern "C" {
27585    pub fn SteamAPI_ISteamInventory_SendItemDropHeartbeat(self_: *mut ISteamInventory);
27586}
27587extern "C" {
27588    pub fn SteamAPI_ISteamInventory_TriggerItemDrop(
27589        self_: *mut ISteamInventory,
27590        pResultHandle: *mut SteamInventoryResult_t,
27591        dropListDefinition: SteamItemDef_t,
27592    ) -> bool;
27593}
27594extern "C" {
27595    pub fn SteamAPI_ISteamInventory_TradeItems(
27596        self_: *mut ISteamInventory,
27597        pResultHandle: *mut SteamInventoryResult_t,
27598        steamIDTradePartner: uint64_steamid,
27599        pArrayGive: *const SteamItemInstanceID_t,
27600        pArrayGiveQuantity: *const uint32,
27601        nArrayGiveLength: uint32,
27602        pArrayGet: *const SteamItemInstanceID_t,
27603        pArrayGetQuantity: *const uint32,
27604        nArrayGetLength: uint32,
27605    ) -> bool;
27606}
27607extern "C" {
27608    pub fn SteamAPI_ISteamInventory_LoadItemDefinitions(self_: *mut ISteamInventory) -> bool;
27609}
27610extern "C" {
27611    pub fn SteamAPI_ISteamInventory_GetItemDefinitionIDs(
27612        self_: *mut ISteamInventory,
27613        pItemDefIDs: *mut SteamItemDef_t,
27614        punItemDefIDsArraySize: *mut uint32,
27615    ) -> bool;
27616}
27617extern "C" {
27618    pub fn SteamAPI_ISteamInventory_GetItemDefinitionProperty(
27619        self_: *mut ISteamInventory,
27620        iDefinition: SteamItemDef_t,
27621        pchPropertyName: *const ::std::os::raw::c_char,
27622        pchValueBuffer: *mut ::std::os::raw::c_char,
27623        punValueBufferSizeOut: *mut uint32,
27624    ) -> bool;
27625}
27626extern "C" {
27627    pub fn SteamAPI_ISteamInventory_RequestEligiblePromoItemDefinitionsIDs(
27628        self_: *mut ISteamInventory,
27629        steamID: uint64_steamid,
27630    ) -> SteamAPICall_t;
27631}
27632extern "C" {
27633    pub fn SteamAPI_ISteamInventory_GetEligiblePromoItemDefinitionIDs(
27634        self_: *mut ISteamInventory,
27635        steamID: uint64_steamid,
27636        pItemDefIDs: *mut SteamItemDef_t,
27637        punItemDefIDsArraySize: *mut uint32,
27638    ) -> bool;
27639}
27640extern "C" {
27641    pub fn SteamAPI_ISteamInventory_StartPurchase(
27642        self_: *mut ISteamInventory,
27643        pArrayItemDefs: *const SteamItemDef_t,
27644        punArrayQuantity: *const uint32,
27645        unArrayLength: uint32,
27646    ) -> SteamAPICall_t;
27647}
27648extern "C" {
27649    pub fn SteamAPI_ISteamInventory_RequestPrices(self_: *mut ISteamInventory) -> SteamAPICall_t;
27650}
27651extern "C" {
27652    pub fn SteamAPI_ISteamInventory_GetNumItemsWithPrices(self_: *mut ISteamInventory) -> uint32;
27653}
27654extern "C" {
27655    pub fn SteamAPI_ISteamInventory_GetItemsWithPrices(
27656        self_: *mut ISteamInventory,
27657        pArrayItemDefs: *mut SteamItemDef_t,
27658        pCurrentPrices: *mut uint64,
27659        pBasePrices: *mut uint64,
27660        unArrayLength: uint32,
27661    ) -> bool;
27662}
27663extern "C" {
27664    pub fn SteamAPI_ISteamInventory_GetItemPrice(
27665        self_: *mut ISteamInventory,
27666        iDefinition: SteamItemDef_t,
27667        pCurrentPrice: *mut uint64,
27668        pBasePrice: *mut uint64,
27669    ) -> bool;
27670}
27671extern "C" {
27672    pub fn SteamAPI_ISteamInventory_StartUpdateProperties(
27673        self_: *mut ISteamInventory,
27674    ) -> SteamInventoryUpdateHandle_t;
27675}
27676extern "C" {
27677    pub fn SteamAPI_ISteamInventory_RemoveProperty(
27678        self_: *mut ISteamInventory,
27679        handle: SteamInventoryUpdateHandle_t,
27680        nItemID: SteamItemInstanceID_t,
27681        pchPropertyName: *const ::std::os::raw::c_char,
27682    ) -> bool;
27683}
27684extern "C" {
27685    pub fn SteamAPI_ISteamInventory_SetPropertyString(
27686        self_: *mut ISteamInventory,
27687        handle: SteamInventoryUpdateHandle_t,
27688        nItemID: SteamItemInstanceID_t,
27689        pchPropertyName: *const ::std::os::raw::c_char,
27690        pchPropertyValue: *const ::std::os::raw::c_char,
27691    ) -> bool;
27692}
27693extern "C" {
27694    pub fn SteamAPI_ISteamInventory_SetPropertyBool(
27695        self_: *mut ISteamInventory,
27696        handle: SteamInventoryUpdateHandle_t,
27697        nItemID: SteamItemInstanceID_t,
27698        pchPropertyName: *const ::std::os::raw::c_char,
27699        bValue: bool,
27700    ) -> bool;
27701}
27702extern "C" {
27703    pub fn SteamAPI_ISteamInventory_SetPropertyInt64(
27704        self_: *mut ISteamInventory,
27705        handle: SteamInventoryUpdateHandle_t,
27706        nItemID: SteamItemInstanceID_t,
27707        pchPropertyName: *const ::std::os::raw::c_char,
27708        nValue: int64,
27709    ) -> bool;
27710}
27711extern "C" {
27712    pub fn SteamAPI_ISteamInventory_SetPropertyFloat(
27713        self_: *mut ISteamInventory,
27714        handle: SteamInventoryUpdateHandle_t,
27715        nItemID: SteamItemInstanceID_t,
27716        pchPropertyName: *const ::std::os::raw::c_char,
27717        flValue: f32,
27718    ) -> bool;
27719}
27720extern "C" {
27721    pub fn SteamAPI_ISteamInventory_SubmitUpdateProperties(
27722        self_: *mut ISteamInventory,
27723        handle: SteamInventoryUpdateHandle_t,
27724        pResultHandle: *mut SteamInventoryResult_t,
27725    ) -> bool;
27726}
27727extern "C" {
27728    pub fn SteamAPI_ISteamInventory_InspectItem(
27729        self_: *mut ISteamInventory,
27730        pResultHandle: *mut SteamInventoryResult_t,
27731        pchItemToken: *const ::std::os::raw::c_char,
27732    ) -> bool;
27733}
27734extern "C" {
27735    pub fn SteamAPI_SteamVideo_v002() -> *mut ISteamVideo;
27736}
27737extern "C" {
27738    pub fn SteamAPI_ISteamVideo_GetVideoURL(self_: *mut ISteamVideo, unVideoAppID: AppId_t);
27739}
27740extern "C" {
27741    pub fn SteamAPI_ISteamVideo_IsBroadcasting(
27742        self_: *mut ISteamVideo,
27743        pnNumViewers: *mut ::std::os::raw::c_int,
27744    ) -> bool;
27745}
27746extern "C" {
27747    pub fn SteamAPI_ISteamVideo_GetOPFSettings(self_: *mut ISteamVideo, unVideoAppID: AppId_t);
27748}
27749extern "C" {
27750    pub fn SteamAPI_ISteamVideo_GetOPFStringForApp(
27751        self_: *mut ISteamVideo,
27752        unVideoAppID: AppId_t,
27753        pchBuffer: *mut ::std::os::raw::c_char,
27754        pnBufferSize: *mut int32,
27755    ) -> bool;
27756}
27757extern "C" {
27758    pub fn SteamAPI_SteamParentalSettings_v001() -> *mut ISteamParentalSettings;
27759}
27760extern "C" {
27761    pub fn SteamAPI_ISteamParentalSettings_BIsParentalLockEnabled(
27762        self_: *mut ISteamParentalSettings,
27763    ) -> bool;
27764}
27765extern "C" {
27766    pub fn SteamAPI_ISteamParentalSettings_BIsParentalLockLocked(
27767        self_: *mut ISteamParentalSettings,
27768    ) -> bool;
27769}
27770extern "C" {
27771    pub fn SteamAPI_ISteamParentalSettings_BIsAppBlocked(
27772        self_: *mut ISteamParentalSettings,
27773        nAppID: AppId_t,
27774    ) -> bool;
27775}
27776extern "C" {
27777    pub fn SteamAPI_ISteamParentalSettings_BIsAppInBlockList(
27778        self_: *mut ISteamParentalSettings,
27779        nAppID: AppId_t,
27780    ) -> bool;
27781}
27782extern "C" {
27783    pub fn SteamAPI_ISteamParentalSettings_BIsFeatureBlocked(
27784        self_: *mut ISteamParentalSettings,
27785        eFeature: EParentalFeature,
27786    ) -> bool;
27787}
27788extern "C" {
27789    pub fn SteamAPI_ISteamParentalSettings_BIsFeatureInBlockList(
27790        self_: *mut ISteamParentalSettings,
27791        eFeature: EParentalFeature,
27792    ) -> bool;
27793}
27794extern "C" {
27795    pub fn SteamAPI_SteamRemotePlay_v002() -> *mut ISteamRemotePlay;
27796}
27797extern "C" {
27798    pub fn SteamAPI_ISteamRemotePlay_GetSessionCount(self_: *mut ISteamRemotePlay) -> uint32;
27799}
27800extern "C" {
27801    pub fn SteamAPI_ISteamRemotePlay_GetSessionID(
27802        self_: *mut ISteamRemotePlay,
27803        iSessionIndex: ::std::os::raw::c_int,
27804    ) -> RemotePlaySessionID_t;
27805}
27806extern "C" {
27807    pub fn SteamAPI_ISteamRemotePlay_GetSessionSteamID(
27808        self_: *mut ISteamRemotePlay,
27809        unSessionID: RemotePlaySessionID_t,
27810    ) -> uint64_steamid;
27811}
27812extern "C" {
27813    pub fn SteamAPI_ISteamRemotePlay_GetSessionClientName(
27814        self_: *mut ISteamRemotePlay,
27815        unSessionID: RemotePlaySessionID_t,
27816    ) -> *const ::std::os::raw::c_char;
27817}
27818extern "C" {
27819    pub fn SteamAPI_ISteamRemotePlay_GetSessionClientFormFactor(
27820        self_: *mut ISteamRemotePlay,
27821        unSessionID: RemotePlaySessionID_t,
27822    ) -> ESteamDeviceFormFactor;
27823}
27824extern "C" {
27825    pub fn SteamAPI_ISteamRemotePlay_BGetSessionClientResolution(
27826        self_: *mut ISteamRemotePlay,
27827        unSessionID: RemotePlaySessionID_t,
27828        pnResolutionX: *mut ::std::os::raw::c_int,
27829        pnResolutionY: *mut ::std::os::raw::c_int,
27830    ) -> bool;
27831}
27832extern "C" {
27833    pub fn SteamAPI_ISteamRemotePlay_BStartRemotePlayTogether(
27834        self_: *mut ISteamRemotePlay,
27835        bShowOverlay: bool,
27836    ) -> bool;
27837}
27838extern "C" {
27839    pub fn SteamAPI_ISteamRemotePlay_BSendRemotePlayTogetherInvite(
27840        self_: *mut ISteamRemotePlay,
27841        steamIDFriend: uint64_steamid,
27842    ) -> bool;
27843}
27844extern "C" {
27845    pub fn SteamAPI_SteamNetworkingMessages_SteamAPI_v002() -> *mut ISteamNetworkingMessages;
27846}
27847extern "C" {
27848    pub fn SteamAPI_SteamGameServerNetworkingMessages_SteamAPI_v002(
27849    ) -> *mut ISteamNetworkingMessages;
27850}
27851extern "C" {
27852    pub fn SteamAPI_ISteamNetworkingMessages_SendMessageToUser(
27853        self_: *mut ISteamNetworkingMessages,
27854        identityRemote: *const SteamNetworkingIdentity,
27855        pubData: *const ::std::os::raw::c_void,
27856        cubData: uint32,
27857        nSendFlags: ::std::os::raw::c_int,
27858        nRemoteChannel: ::std::os::raw::c_int,
27859    ) -> EResult;
27860}
27861extern "C" {
27862    pub fn SteamAPI_ISteamNetworkingMessages_ReceiveMessagesOnChannel(
27863        self_: *mut ISteamNetworkingMessages,
27864        nLocalChannel: ::std::os::raw::c_int,
27865        ppOutMessages: *mut *mut SteamNetworkingMessage_t,
27866        nMaxMessages: ::std::os::raw::c_int,
27867    ) -> ::std::os::raw::c_int;
27868}
27869extern "C" {
27870    pub fn SteamAPI_ISteamNetworkingMessages_AcceptSessionWithUser(
27871        self_: *mut ISteamNetworkingMessages,
27872        identityRemote: *const SteamNetworkingIdentity,
27873    ) -> bool;
27874}
27875extern "C" {
27876    pub fn SteamAPI_ISteamNetworkingMessages_CloseSessionWithUser(
27877        self_: *mut ISteamNetworkingMessages,
27878        identityRemote: *const SteamNetworkingIdentity,
27879    ) -> bool;
27880}
27881extern "C" {
27882    pub fn SteamAPI_ISteamNetworkingMessages_CloseChannelWithUser(
27883        self_: *mut ISteamNetworkingMessages,
27884        identityRemote: *const SteamNetworkingIdentity,
27885        nLocalChannel: ::std::os::raw::c_int,
27886    ) -> bool;
27887}
27888extern "C" {
27889    pub fn SteamAPI_ISteamNetworkingMessages_GetSessionConnectionInfo(
27890        self_: *mut ISteamNetworkingMessages,
27891        identityRemote: *const SteamNetworkingIdentity,
27892        pConnectionInfo: *mut SteamNetConnectionInfo_t,
27893        pQuickStatus: *mut SteamNetConnectionRealTimeStatus_t,
27894    ) -> ESteamNetworkingConnectionState;
27895}
27896extern "C" {
27897    pub fn SteamAPI_SteamNetworkingSockets_SteamAPI_v012() -> *mut ISteamNetworkingSockets;
27898}
27899extern "C" {
27900    pub fn SteamAPI_SteamGameServerNetworkingSockets_SteamAPI_v012() -> *mut ISteamNetworkingSockets;
27901}
27902extern "C" {
27903    pub fn SteamAPI_ISteamNetworkingSockets_CreateListenSocketIP(
27904        self_: *mut ISteamNetworkingSockets,
27905        localAddress: *const SteamNetworkingIPAddr,
27906        nOptions: ::std::os::raw::c_int,
27907        pOptions: *const SteamNetworkingConfigValue_t,
27908    ) -> HSteamListenSocket;
27909}
27910extern "C" {
27911    pub fn SteamAPI_ISteamNetworkingSockets_ConnectByIPAddress(
27912        self_: *mut ISteamNetworkingSockets,
27913        address: *const SteamNetworkingIPAddr,
27914        nOptions: ::std::os::raw::c_int,
27915        pOptions: *const SteamNetworkingConfigValue_t,
27916    ) -> HSteamNetConnection;
27917}
27918extern "C" {
27919    pub fn SteamAPI_ISteamNetworkingSockets_CreateListenSocketP2P(
27920        self_: *mut ISteamNetworkingSockets,
27921        nLocalVirtualPort: ::std::os::raw::c_int,
27922        nOptions: ::std::os::raw::c_int,
27923        pOptions: *const SteamNetworkingConfigValue_t,
27924    ) -> HSteamListenSocket;
27925}
27926extern "C" {
27927    pub fn SteamAPI_ISteamNetworkingSockets_ConnectP2P(
27928        self_: *mut ISteamNetworkingSockets,
27929        identityRemote: *const SteamNetworkingIdentity,
27930        nRemoteVirtualPort: ::std::os::raw::c_int,
27931        nOptions: ::std::os::raw::c_int,
27932        pOptions: *const SteamNetworkingConfigValue_t,
27933    ) -> HSteamNetConnection;
27934}
27935extern "C" {
27936    pub fn SteamAPI_ISteamNetworkingSockets_AcceptConnection(
27937        self_: *mut ISteamNetworkingSockets,
27938        hConn: HSteamNetConnection,
27939    ) -> EResult;
27940}
27941extern "C" {
27942    pub fn SteamAPI_ISteamNetworkingSockets_CloseConnection(
27943        self_: *mut ISteamNetworkingSockets,
27944        hPeer: HSteamNetConnection,
27945        nReason: ::std::os::raw::c_int,
27946        pszDebug: *const ::std::os::raw::c_char,
27947        bEnableLinger: bool,
27948    ) -> bool;
27949}
27950extern "C" {
27951    pub fn SteamAPI_ISteamNetworkingSockets_CloseListenSocket(
27952        self_: *mut ISteamNetworkingSockets,
27953        hSocket: HSteamListenSocket,
27954    ) -> bool;
27955}
27956extern "C" {
27957    pub fn SteamAPI_ISteamNetworkingSockets_SetConnectionUserData(
27958        self_: *mut ISteamNetworkingSockets,
27959        hPeer: HSteamNetConnection,
27960        nUserData: int64,
27961    ) -> bool;
27962}
27963extern "C" {
27964    pub fn SteamAPI_ISteamNetworkingSockets_GetConnectionUserData(
27965        self_: *mut ISteamNetworkingSockets,
27966        hPeer: HSteamNetConnection,
27967    ) -> int64;
27968}
27969extern "C" {
27970    pub fn SteamAPI_ISteamNetworkingSockets_SetConnectionName(
27971        self_: *mut ISteamNetworkingSockets,
27972        hPeer: HSteamNetConnection,
27973        pszName: *const ::std::os::raw::c_char,
27974    );
27975}
27976extern "C" {
27977    pub fn SteamAPI_ISteamNetworkingSockets_GetConnectionName(
27978        self_: *mut ISteamNetworkingSockets,
27979        hPeer: HSteamNetConnection,
27980        pszName: *mut ::std::os::raw::c_char,
27981        nMaxLen: ::std::os::raw::c_int,
27982    ) -> bool;
27983}
27984extern "C" {
27985    pub fn SteamAPI_ISteamNetworkingSockets_SendMessageToConnection(
27986        self_: *mut ISteamNetworkingSockets,
27987        hConn: HSteamNetConnection,
27988        pData: *const ::std::os::raw::c_void,
27989        cbData: uint32,
27990        nSendFlags: ::std::os::raw::c_int,
27991        pOutMessageNumber: *mut int64,
27992    ) -> EResult;
27993}
27994extern "C" {
27995    pub fn SteamAPI_ISteamNetworkingSockets_SendMessages(
27996        self_: *mut ISteamNetworkingSockets,
27997        nMessages: ::std::os::raw::c_int,
27998        pMessages: *const *mut SteamNetworkingMessage_t,
27999        pOutMessageNumberOrResult: *mut int64,
28000    );
28001}
28002extern "C" {
28003    pub fn SteamAPI_ISteamNetworkingSockets_FlushMessagesOnConnection(
28004        self_: *mut ISteamNetworkingSockets,
28005        hConn: HSteamNetConnection,
28006    ) -> EResult;
28007}
28008extern "C" {
28009    pub fn SteamAPI_ISteamNetworkingSockets_ReceiveMessagesOnConnection(
28010        self_: *mut ISteamNetworkingSockets,
28011        hConn: HSteamNetConnection,
28012        ppOutMessages: *mut *mut SteamNetworkingMessage_t,
28013        nMaxMessages: ::std::os::raw::c_int,
28014    ) -> ::std::os::raw::c_int;
28015}
28016extern "C" {
28017    pub fn SteamAPI_ISteamNetworkingSockets_GetConnectionInfo(
28018        self_: *mut ISteamNetworkingSockets,
28019        hConn: HSteamNetConnection,
28020        pInfo: *mut SteamNetConnectionInfo_t,
28021    ) -> bool;
28022}
28023extern "C" {
28024    pub fn SteamAPI_ISteamNetworkingSockets_GetConnectionRealTimeStatus(
28025        self_: *mut ISteamNetworkingSockets,
28026        hConn: HSteamNetConnection,
28027        pStatus: *mut SteamNetConnectionRealTimeStatus_t,
28028        nLanes: ::std::os::raw::c_int,
28029        pLanes: *mut SteamNetConnectionRealTimeLaneStatus_t,
28030    ) -> EResult;
28031}
28032extern "C" {
28033    pub fn SteamAPI_ISteamNetworkingSockets_GetDetailedConnectionStatus(
28034        self_: *mut ISteamNetworkingSockets,
28035        hConn: HSteamNetConnection,
28036        pszBuf: *mut ::std::os::raw::c_char,
28037        cbBuf: ::std::os::raw::c_int,
28038    ) -> ::std::os::raw::c_int;
28039}
28040extern "C" {
28041    pub fn SteamAPI_ISteamNetworkingSockets_GetListenSocketAddress(
28042        self_: *mut ISteamNetworkingSockets,
28043        hSocket: HSteamListenSocket,
28044        address: *mut SteamNetworkingIPAddr,
28045    ) -> bool;
28046}
28047extern "C" {
28048    pub fn SteamAPI_ISteamNetworkingSockets_CreateSocketPair(
28049        self_: *mut ISteamNetworkingSockets,
28050        pOutConnection1: *mut HSteamNetConnection,
28051        pOutConnection2: *mut HSteamNetConnection,
28052        bUseNetworkLoopback: bool,
28053        pIdentity1: *const SteamNetworkingIdentity,
28054        pIdentity2: *const SteamNetworkingIdentity,
28055    ) -> bool;
28056}
28057extern "C" {
28058    pub fn SteamAPI_ISteamNetworkingSockets_ConfigureConnectionLanes(
28059        self_: *mut ISteamNetworkingSockets,
28060        hConn: HSteamNetConnection,
28061        nNumLanes: ::std::os::raw::c_int,
28062        pLanePriorities: *const ::std::os::raw::c_int,
28063        pLaneWeights: *const uint16,
28064    ) -> EResult;
28065}
28066extern "C" {
28067    pub fn SteamAPI_ISteamNetworkingSockets_GetIdentity(
28068        self_: *mut ISteamNetworkingSockets,
28069        pIdentity: *mut SteamNetworkingIdentity,
28070    ) -> bool;
28071}
28072extern "C" {
28073    pub fn SteamAPI_ISteamNetworkingSockets_InitAuthentication(
28074        self_: *mut ISteamNetworkingSockets,
28075    ) -> ESteamNetworkingAvailability;
28076}
28077extern "C" {
28078    pub fn SteamAPI_ISteamNetworkingSockets_GetAuthenticationStatus(
28079        self_: *mut ISteamNetworkingSockets,
28080        pDetails: *mut SteamNetAuthenticationStatus_t,
28081    ) -> ESteamNetworkingAvailability;
28082}
28083extern "C" {
28084    pub fn SteamAPI_ISteamNetworkingSockets_CreatePollGroup(
28085        self_: *mut ISteamNetworkingSockets,
28086    ) -> HSteamNetPollGroup;
28087}
28088extern "C" {
28089    pub fn SteamAPI_ISteamNetworkingSockets_DestroyPollGroup(
28090        self_: *mut ISteamNetworkingSockets,
28091        hPollGroup: HSteamNetPollGroup,
28092    ) -> bool;
28093}
28094extern "C" {
28095    pub fn SteamAPI_ISteamNetworkingSockets_SetConnectionPollGroup(
28096        self_: *mut ISteamNetworkingSockets,
28097        hConn: HSteamNetConnection,
28098        hPollGroup: HSteamNetPollGroup,
28099    ) -> bool;
28100}
28101extern "C" {
28102    pub fn SteamAPI_ISteamNetworkingSockets_ReceiveMessagesOnPollGroup(
28103        self_: *mut ISteamNetworkingSockets,
28104        hPollGroup: HSteamNetPollGroup,
28105        ppOutMessages: *mut *mut SteamNetworkingMessage_t,
28106        nMaxMessages: ::std::os::raw::c_int,
28107    ) -> ::std::os::raw::c_int;
28108}
28109extern "C" {
28110    pub fn SteamAPI_ISteamNetworkingSockets_ReceivedRelayAuthTicket(
28111        self_: *mut ISteamNetworkingSockets,
28112        pvTicket: *const ::std::os::raw::c_void,
28113        cbTicket: ::std::os::raw::c_int,
28114        pOutParsedTicket: *mut SteamDatagramRelayAuthTicket,
28115    ) -> bool;
28116}
28117extern "C" {
28118    pub fn SteamAPI_ISteamNetworkingSockets_FindRelayAuthTicketForServer(
28119        self_: *mut ISteamNetworkingSockets,
28120        identityGameServer: *const SteamNetworkingIdentity,
28121        nRemoteVirtualPort: ::std::os::raw::c_int,
28122        pOutParsedTicket: *mut SteamDatagramRelayAuthTicket,
28123    ) -> ::std::os::raw::c_int;
28124}
28125extern "C" {
28126    pub fn SteamAPI_ISteamNetworkingSockets_ConnectToHostedDedicatedServer(
28127        self_: *mut ISteamNetworkingSockets,
28128        identityTarget: *const SteamNetworkingIdentity,
28129        nRemoteVirtualPort: ::std::os::raw::c_int,
28130        nOptions: ::std::os::raw::c_int,
28131        pOptions: *const SteamNetworkingConfigValue_t,
28132    ) -> HSteamNetConnection;
28133}
28134extern "C" {
28135    pub fn SteamAPI_ISteamNetworkingSockets_GetHostedDedicatedServerPort(
28136        self_: *mut ISteamNetworkingSockets,
28137    ) -> uint16;
28138}
28139extern "C" {
28140    pub fn SteamAPI_ISteamNetworkingSockets_GetHostedDedicatedServerPOPID(
28141        self_: *mut ISteamNetworkingSockets,
28142    ) -> SteamNetworkingPOPID;
28143}
28144extern "C" {
28145    pub fn SteamAPI_ISteamNetworkingSockets_GetHostedDedicatedServerAddress(
28146        self_: *mut ISteamNetworkingSockets,
28147        pRouting: *mut SteamDatagramHostedAddress,
28148    ) -> EResult;
28149}
28150extern "C" {
28151    pub fn SteamAPI_ISteamNetworkingSockets_CreateHostedDedicatedServerListenSocket(
28152        self_: *mut ISteamNetworkingSockets,
28153        nLocalVirtualPort: ::std::os::raw::c_int,
28154        nOptions: ::std::os::raw::c_int,
28155        pOptions: *const SteamNetworkingConfigValue_t,
28156    ) -> HSteamListenSocket;
28157}
28158extern "C" {
28159    pub fn SteamAPI_ISteamNetworkingSockets_GetGameCoordinatorServerLogin(
28160        self_: *mut ISteamNetworkingSockets,
28161        pLoginInfo: *mut SteamDatagramGameCoordinatorServerLogin,
28162        pcbSignedBlob: *mut ::std::os::raw::c_int,
28163        pBlob: *mut ::std::os::raw::c_void,
28164    ) -> EResult;
28165}
28166extern "C" {
28167    pub fn SteamAPI_ISteamNetworkingSockets_ConnectP2PCustomSignaling(
28168        self_: *mut ISteamNetworkingSockets,
28169        pSignaling: *mut ISteamNetworkingConnectionSignaling,
28170        pPeerIdentity: *const SteamNetworkingIdentity,
28171        nRemoteVirtualPort: ::std::os::raw::c_int,
28172        nOptions: ::std::os::raw::c_int,
28173        pOptions: *const SteamNetworkingConfigValue_t,
28174    ) -> HSteamNetConnection;
28175}
28176extern "C" {
28177    pub fn SteamAPI_ISteamNetworkingSockets_ReceivedP2PCustomSignal(
28178        self_: *mut ISteamNetworkingSockets,
28179        pMsg: *const ::std::os::raw::c_void,
28180        cbMsg: ::std::os::raw::c_int,
28181        pContext: *mut ISteamNetworkingSignalingRecvContext,
28182    ) -> bool;
28183}
28184extern "C" {
28185    pub fn SteamAPI_ISteamNetworkingSockets_GetCertificateRequest(
28186        self_: *mut ISteamNetworkingSockets,
28187        pcbBlob: *mut ::std::os::raw::c_int,
28188        pBlob: *mut ::std::os::raw::c_void,
28189        errMsg: *mut SteamNetworkingErrMsg,
28190    ) -> bool;
28191}
28192extern "C" {
28193    pub fn SteamAPI_ISteamNetworkingSockets_SetCertificate(
28194        self_: *mut ISteamNetworkingSockets,
28195        pCertificate: *const ::std::os::raw::c_void,
28196        cbCertificate: ::std::os::raw::c_int,
28197        errMsg: *mut SteamNetworkingErrMsg,
28198    ) -> bool;
28199}
28200extern "C" {
28201    pub fn SteamAPI_ISteamNetworkingSockets_ResetIdentity(
28202        self_: *mut ISteamNetworkingSockets,
28203        pIdentity: *const SteamNetworkingIdentity,
28204    );
28205}
28206extern "C" {
28207    pub fn SteamAPI_ISteamNetworkingSockets_RunCallbacks(self_: *mut ISteamNetworkingSockets);
28208}
28209extern "C" {
28210    pub fn SteamAPI_ISteamNetworkingSockets_BeginAsyncRequestFakeIP(
28211        self_: *mut ISteamNetworkingSockets,
28212        nNumPorts: ::std::os::raw::c_int,
28213    ) -> bool;
28214}
28215extern "C" {
28216    pub fn SteamAPI_ISteamNetworkingSockets_GetFakeIP(
28217        self_: *mut ISteamNetworkingSockets,
28218        idxFirstPort: ::std::os::raw::c_int,
28219        pInfo: *mut SteamNetworkingFakeIPResult_t,
28220    );
28221}
28222extern "C" {
28223    pub fn SteamAPI_ISteamNetworkingSockets_CreateListenSocketP2PFakeIP(
28224        self_: *mut ISteamNetworkingSockets,
28225        idxFakePort: ::std::os::raw::c_int,
28226        nOptions: ::std::os::raw::c_int,
28227        pOptions: *const SteamNetworkingConfigValue_t,
28228    ) -> HSteamListenSocket;
28229}
28230extern "C" {
28231    pub fn SteamAPI_ISteamNetworkingSockets_GetRemoteFakeIPForConnection(
28232        self_: *mut ISteamNetworkingSockets,
28233        hConn: HSteamNetConnection,
28234        pOutAddr: *mut SteamNetworkingIPAddr,
28235    ) -> EResult;
28236}
28237extern "C" {
28238    pub fn SteamAPI_ISteamNetworkingSockets_CreateFakeUDPPort(
28239        self_: *mut ISteamNetworkingSockets,
28240        idxFakeServerPort: ::std::os::raw::c_int,
28241    ) -> *mut ISteamNetworkingFakeUDPPort;
28242}
28243extern "C" {
28244    pub fn SteamAPI_SteamNetworkingUtils_SteamAPI_v004() -> *mut ISteamNetworkingUtils;
28245}
28246extern "C" {
28247    pub fn SteamAPI_ISteamNetworkingUtils_AllocateMessage(
28248        self_: *mut ISteamNetworkingUtils,
28249        cbAllocateBuffer: ::std::os::raw::c_int,
28250    ) -> *mut SteamNetworkingMessage_t;
28251}
28252extern "C" {
28253    pub fn SteamAPI_ISteamNetworkingUtils_InitRelayNetworkAccess(self_: *mut ISteamNetworkingUtils);
28254}
28255extern "C" {
28256    pub fn SteamAPI_ISteamNetworkingUtils_GetRelayNetworkStatus(
28257        self_: *mut ISteamNetworkingUtils,
28258        pDetails: *mut SteamRelayNetworkStatus_t,
28259    ) -> ESteamNetworkingAvailability;
28260}
28261extern "C" {
28262    pub fn SteamAPI_ISteamNetworkingUtils_GetLocalPingLocation(
28263        self_: *mut ISteamNetworkingUtils,
28264        result: *mut SteamNetworkPingLocation_t,
28265    ) -> f32;
28266}
28267extern "C" {
28268    pub fn SteamAPI_ISteamNetworkingUtils_EstimatePingTimeBetweenTwoLocations(
28269        self_: *mut ISteamNetworkingUtils,
28270        location1: *const SteamNetworkPingLocation_t,
28271        location2: *const SteamNetworkPingLocation_t,
28272    ) -> ::std::os::raw::c_int;
28273}
28274extern "C" {
28275    pub fn SteamAPI_ISteamNetworkingUtils_EstimatePingTimeFromLocalHost(
28276        self_: *mut ISteamNetworkingUtils,
28277        remoteLocation: *const SteamNetworkPingLocation_t,
28278    ) -> ::std::os::raw::c_int;
28279}
28280extern "C" {
28281    pub fn SteamAPI_ISteamNetworkingUtils_ConvertPingLocationToString(
28282        self_: *mut ISteamNetworkingUtils,
28283        location: *const SteamNetworkPingLocation_t,
28284        pszBuf: *mut ::std::os::raw::c_char,
28285        cchBufSize: ::std::os::raw::c_int,
28286    );
28287}
28288extern "C" {
28289    pub fn SteamAPI_ISteamNetworkingUtils_ParsePingLocationString(
28290        self_: *mut ISteamNetworkingUtils,
28291        pszString: *const ::std::os::raw::c_char,
28292        result: *mut SteamNetworkPingLocation_t,
28293    ) -> bool;
28294}
28295extern "C" {
28296    pub fn SteamAPI_ISteamNetworkingUtils_CheckPingDataUpToDate(
28297        self_: *mut ISteamNetworkingUtils,
28298        flMaxAgeSeconds: f32,
28299    ) -> bool;
28300}
28301extern "C" {
28302    pub fn SteamAPI_ISteamNetworkingUtils_GetPingToDataCenter(
28303        self_: *mut ISteamNetworkingUtils,
28304        popID: SteamNetworkingPOPID,
28305        pViaRelayPoP: *mut SteamNetworkingPOPID,
28306    ) -> ::std::os::raw::c_int;
28307}
28308extern "C" {
28309    pub fn SteamAPI_ISteamNetworkingUtils_GetDirectPingToPOP(
28310        self_: *mut ISteamNetworkingUtils,
28311        popID: SteamNetworkingPOPID,
28312    ) -> ::std::os::raw::c_int;
28313}
28314extern "C" {
28315    pub fn SteamAPI_ISteamNetworkingUtils_GetPOPCount(
28316        self_: *mut ISteamNetworkingUtils,
28317    ) -> ::std::os::raw::c_int;
28318}
28319extern "C" {
28320    pub fn SteamAPI_ISteamNetworkingUtils_GetPOPList(
28321        self_: *mut ISteamNetworkingUtils,
28322        list: *mut SteamNetworkingPOPID,
28323        nListSz: ::std::os::raw::c_int,
28324    ) -> ::std::os::raw::c_int;
28325}
28326extern "C" {
28327    pub fn SteamAPI_ISteamNetworkingUtils_GetLocalTimestamp(
28328        self_: *mut ISteamNetworkingUtils,
28329    ) -> SteamNetworkingMicroseconds;
28330}
28331extern "C" {
28332    pub fn SteamAPI_ISteamNetworkingUtils_SetDebugOutputFunction(
28333        self_: *mut ISteamNetworkingUtils,
28334        eDetailLevel: ESteamNetworkingSocketsDebugOutputType,
28335        pfnFunc: FSteamNetworkingSocketsDebugOutput,
28336    );
28337}
28338extern "C" {
28339    pub fn SteamAPI_ISteamNetworkingUtils_IsFakeIPv4(
28340        self_: *mut ISteamNetworkingUtils,
28341        nIPv4: uint32,
28342    ) -> bool;
28343}
28344extern "C" {
28345    pub fn SteamAPI_ISteamNetworkingUtils_GetIPv4FakeIPType(
28346        self_: *mut ISteamNetworkingUtils,
28347        nIPv4: uint32,
28348    ) -> ESteamNetworkingFakeIPType;
28349}
28350extern "C" {
28351    pub fn SteamAPI_ISteamNetworkingUtils_GetRealIdentityForFakeIP(
28352        self_: *mut ISteamNetworkingUtils,
28353        fakeIP: *const SteamNetworkingIPAddr,
28354        pOutRealIdentity: *mut SteamNetworkingIdentity,
28355    ) -> EResult;
28356}
28357extern "C" {
28358    pub fn SteamAPI_ISteamNetworkingUtils_SetGlobalConfigValueInt32(
28359        self_: *mut ISteamNetworkingUtils,
28360        eValue: ESteamNetworkingConfigValue,
28361        val: int32,
28362    ) -> bool;
28363}
28364extern "C" {
28365    pub fn SteamAPI_ISteamNetworkingUtils_SetGlobalConfigValueFloat(
28366        self_: *mut ISteamNetworkingUtils,
28367        eValue: ESteamNetworkingConfigValue,
28368        val: f32,
28369    ) -> bool;
28370}
28371extern "C" {
28372    pub fn SteamAPI_ISteamNetworkingUtils_SetGlobalConfigValueString(
28373        self_: *mut ISteamNetworkingUtils,
28374        eValue: ESteamNetworkingConfigValue,
28375        val: *const ::std::os::raw::c_char,
28376    ) -> bool;
28377}
28378extern "C" {
28379    pub fn SteamAPI_ISteamNetworkingUtils_SetGlobalConfigValuePtr(
28380        self_: *mut ISteamNetworkingUtils,
28381        eValue: ESteamNetworkingConfigValue,
28382        val: *mut ::std::os::raw::c_void,
28383    ) -> bool;
28384}
28385extern "C" {
28386    pub fn SteamAPI_ISteamNetworkingUtils_SetConnectionConfigValueInt32(
28387        self_: *mut ISteamNetworkingUtils,
28388        hConn: HSteamNetConnection,
28389        eValue: ESteamNetworkingConfigValue,
28390        val: int32,
28391    ) -> bool;
28392}
28393extern "C" {
28394    pub fn SteamAPI_ISteamNetworkingUtils_SetConnectionConfigValueFloat(
28395        self_: *mut ISteamNetworkingUtils,
28396        hConn: HSteamNetConnection,
28397        eValue: ESteamNetworkingConfigValue,
28398        val: f32,
28399    ) -> bool;
28400}
28401extern "C" {
28402    pub fn SteamAPI_ISteamNetworkingUtils_SetConnectionConfigValueString(
28403        self_: *mut ISteamNetworkingUtils,
28404        hConn: HSteamNetConnection,
28405        eValue: ESteamNetworkingConfigValue,
28406        val: *const ::std::os::raw::c_char,
28407    ) -> bool;
28408}
28409extern "C" {
28410    pub fn SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_SteamNetConnectionStatusChanged(
28411        self_: *mut ISteamNetworkingUtils,
28412        fnCallback: FnSteamNetConnectionStatusChanged,
28413    ) -> bool;
28414}
28415extern "C" {
28416    pub fn SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_SteamNetAuthenticationStatusChanged(
28417        self_: *mut ISteamNetworkingUtils,
28418        fnCallback: FnSteamNetAuthenticationStatusChanged,
28419    ) -> bool;
28420}
28421extern "C" {
28422    pub fn SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_SteamRelayNetworkStatusChanged(
28423        self_: *mut ISteamNetworkingUtils,
28424        fnCallback: FnSteamRelayNetworkStatusChanged,
28425    ) -> bool;
28426}
28427extern "C" {
28428    pub fn SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_FakeIPResult(
28429        self_: *mut ISteamNetworkingUtils,
28430        fnCallback: FnSteamNetworkingFakeIPResult,
28431    ) -> bool;
28432}
28433extern "C" {
28434    pub fn SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_MessagesSessionRequest(
28435        self_: *mut ISteamNetworkingUtils,
28436        fnCallback: FnSteamNetworkingMessagesSessionRequest,
28437    ) -> bool;
28438}
28439extern "C" {
28440    pub fn SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_MessagesSessionFailed(
28441        self_: *mut ISteamNetworkingUtils,
28442        fnCallback: FnSteamNetworkingMessagesSessionFailed,
28443    ) -> bool;
28444}
28445extern "C" {
28446    pub fn SteamAPI_ISteamNetworkingUtils_SetConfigValue(
28447        self_: *mut ISteamNetworkingUtils,
28448        eValue: ESteamNetworkingConfigValue,
28449        eScopeType: ESteamNetworkingConfigScope,
28450        scopeObj: isize,
28451        eDataType: ESteamNetworkingConfigDataType,
28452        pArg: *const ::std::os::raw::c_void,
28453    ) -> bool;
28454}
28455extern "C" {
28456    pub fn SteamAPI_ISteamNetworkingUtils_SetConfigValueStruct(
28457        self_: *mut ISteamNetworkingUtils,
28458        opt: *const SteamNetworkingConfigValue_t,
28459        eScopeType: ESteamNetworkingConfigScope,
28460        scopeObj: isize,
28461    ) -> bool;
28462}
28463extern "C" {
28464    pub fn SteamAPI_ISteamNetworkingUtils_GetConfigValue(
28465        self_: *mut ISteamNetworkingUtils,
28466        eValue: ESteamNetworkingConfigValue,
28467        eScopeType: ESteamNetworkingConfigScope,
28468        scopeObj: isize,
28469        pOutDataType: *mut ESteamNetworkingConfigDataType,
28470        pResult: *mut ::std::os::raw::c_void,
28471        cbResult: *mut usize,
28472    ) -> ESteamNetworkingGetConfigValueResult;
28473}
28474extern "C" {
28475    pub fn SteamAPI_ISteamNetworkingUtils_GetConfigValueInfo(
28476        self_: *mut ISteamNetworkingUtils,
28477        eValue: ESteamNetworkingConfigValue,
28478        pOutDataType: *mut ESteamNetworkingConfigDataType,
28479        pOutScope: *mut ESteamNetworkingConfigScope,
28480    ) -> *const ::std::os::raw::c_char;
28481}
28482extern "C" {
28483    pub fn SteamAPI_ISteamNetworkingUtils_IterateGenericEditableConfigValues(
28484        self_: *mut ISteamNetworkingUtils,
28485        eCurrent: ESteamNetworkingConfigValue,
28486        bEnumerateDevVars: bool,
28487    ) -> ESteamNetworkingConfigValue;
28488}
28489extern "C" {
28490    pub fn SteamAPI_ISteamNetworkingUtils_SteamNetworkingIPAddr_ToString(
28491        self_: *mut ISteamNetworkingUtils,
28492        addr: *const SteamNetworkingIPAddr,
28493        buf: *mut ::std::os::raw::c_char,
28494        cbBuf: uint32,
28495        bWithPort: bool,
28496    );
28497}
28498extern "C" {
28499    pub fn SteamAPI_ISteamNetworkingUtils_SteamNetworkingIPAddr_ParseString(
28500        self_: *mut ISteamNetworkingUtils,
28501        pAddr: *mut SteamNetworkingIPAddr,
28502        pszStr: *const ::std::os::raw::c_char,
28503    ) -> bool;
28504}
28505extern "C" {
28506    pub fn SteamAPI_ISteamNetworkingUtils_SteamNetworkingIPAddr_GetFakeIPType(
28507        self_: *mut ISteamNetworkingUtils,
28508        addr: *const SteamNetworkingIPAddr,
28509    ) -> ESteamNetworkingFakeIPType;
28510}
28511extern "C" {
28512    pub fn SteamAPI_ISteamNetworkingUtils_SteamNetworkingIdentity_ToString(
28513        self_: *mut ISteamNetworkingUtils,
28514        identity: *const SteamNetworkingIdentity,
28515        buf: *mut ::std::os::raw::c_char,
28516        cbBuf: uint32,
28517    );
28518}
28519extern "C" {
28520    pub fn SteamAPI_ISteamNetworkingUtils_SteamNetworkingIdentity_ParseString(
28521        self_: *mut ISteamNetworkingUtils,
28522        pIdentity: *mut SteamNetworkingIdentity,
28523        pszStr: *const ::std::os::raw::c_char,
28524    ) -> bool;
28525}
28526extern "C" {
28527    pub fn SteamAPI_SteamGameServer_v015() -> *mut ISteamGameServer;
28528}
28529extern "C" {
28530    pub fn SteamAPI_ISteamGameServer_SetProduct(
28531        self_: *mut ISteamGameServer,
28532        pszProduct: *const ::std::os::raw::c_char,
28533    );
28534}
28535extern "C" {
28536    pub fn SteamAPI_ISteamGameServer_SetGameDescription(
28537        self_: *mut ISteamGameServer,
28538        pszGameDescription: *const ::std::os::raw::c_char,
28539    );
28540}
28541extern "C" {
28542    pub fn SteamAPI_ISteamGameServer_SetModDir(
28543        self_: *mut ISteamGameServer,
28544        pszModDir: *const ::std::os::raw::c_char,
28545    );
28546}
28547extern "C" {
28548    pub fn SteamAPI_ISteamGameServer_SetDedicatedServer(
28549        self_: *mut ISteamGameServer,
28550        bDedicated: bool,
28551    );
28552}
28553extern "C" {
28554    pub fn SteamAPI_ISteamGameServer_LogOn(
28555        self_: *mut ISteamGameServer,
28556        pszToken: *const ::std::os::raw::c_char,
28557    );
28558}
28559extern "C" {
28560    pub fn SteamAPI_ISteamGameServer_LogOnAnonymous(self_: *mut ISteamGameServer);
28561}
28562extern "C" {
28563    pub fn SteamAPI_ISteamGameServer_LogOff(self_: *mut ISteamGameServer);
28564}
28565extern "C" {
28566    pub fn SteamAPI_ISteamGameServer_BLoggedOn(self_: *mut ISteamGameServer) -> bool;
28567}
28568extern "C" {
28569    pub fn SteamAPI_ISteamGameServer_BSecure(self_: *mut ISteamGameServer) -> bool;
28570}
28571extern "C" {
28572    pub fn SteamAPI_ISteamGameServer_GetSteamID(self_: *mut ISteamGameServer) -> uint64_steamid;
28573}
28574extern "C" {
28575    pub fn SteamAPI_ISteamGameServer_WasRestartRequested(self_: *mut ISteamGameServer) -> bool;
28576}
28577extern "C" {
28578    pub fn SteamAPI_ISteamGameServer_SetMaxPlayerCount(
28579        self_: *mut ISteamGameServer,
28580        cPlayersMax: ::std::os::raw::c_int,
28581    );
28582}
28583extern "C" {
28584    pub fn SteamAPI_ISteamGameServer_SetBotPlayerCount(
28585        self_: *mut ISteamGameServer,
28586        cBotplayers: ::std::os::raw::c_int,
28587    );
28588}
28589extern "C" {
28590    pub fn SteamAPI_ISteamGameServer_SetServerName(
28591        self_: *mut ISteamGameServer,
28592        pszServerName: *const ::std::os::raw::c_char,
28593    );
28594}
28595extern "C" {
28596    pub fn SteamAPI_ISteamGameServer_SetMapName(
28597        self_: *mut ISteamGameServer,
28598        pszMapName: *const ::std::os::raw::c_char,
28599    );
28600}
28601extern "C" {
28602    pub fn SteamAPI_ISteamGameServer_SetPasswordProtected(
28603        self_: *mut ISteamGameServer,
28604        bPasswordProtected: bool,
28605    );
28606}
28607extern "C" {
28608    pub fn SteamAPI_ISteamGameServer_SetSpectatorPort(
28609        self_: *mut ISteamGameServer,
28610        unSpectatorPort: uint16,
28611    );
28612}
28613extern "C" {
28614    pub fn SteamAPI_ISteamGameServer_SetSpectatorServerName(
28615        self_: *mut ISteamGameServer,
28616        pszSpectatorServerName: *const ::std::os::raw::c_char,
28617    );
28618}
28619extern "C" {
28620    pub fn SteamAPI_ISteamGameServer_ClearAllKeyValues(self_: *mut ISteamGameServer);
28621}
28622extern "C" {
28623    pub fn SteamAPI_ISteamGameServer_SetKeyValue(
28624        self_: *mut ISteamGameServer,
28625        pKey: *const ::std::os::raw::c_char,
28626        pValue: *const ::std::os::raw::c_char,
28627    );
28628}
28629extern "C" {
28630    pub fn SteamAPI_ISteamGameServer_SetGameTags(
28631        self_: *mut ISteamGameServer,
28632        pchGameTags: *const ::std::os::raw::c_char,
28633    );
28634}
28635extern "C" {
28636    pub fn SteamAPI_ISteamGameServer_SetGameData(
28637        self_: *mut ISteamGameServer,
28638        pchGameData: *const ::std::os::raw::c_char,
28639    );
28640}
28641extern "C" {
28642    pub fn SteamAPI_ISteamGameServer_SetRegion(
28643        self_: *mut ISteamGameServer,
28644        pszRegion: *const ::std::os::raw::c_char,
28645    );
28646}
28647extern "C" {
28648    pub fn SteamAPI_ISteamGameServer_SetAdvertiseServerActive(
28649        self_: *mut ISteamGameServer,
28650        bActive: bool,
28651    );
28652}
28653extern "C" {
28654    pub fn SteamAPI_ISteamGameServer_GetAuthSessionTicket(
28655        self_: *mut ISteamGameServer,
28656        pTicket: *mut ::std::os::raw::c_void,
28657        cbMaxTicket: ::std::os::raw::c_int,
28658        pcbTicket: *mut uint32,
28659        pSnid: *const SteamNetworkingIdentity,
28660    ) -> HAuthTicket;
28661}
28662extern "C" {
28663    pub fn SteamAPI_ISteamGameServer_BeginAuthSession(
28664        self_: *mut ISteamGameServer,
28665        pAuthTicket: *const ::std::os::raw::c_void,
28666        cbAuthTicket: ::std::os::raw::c_int,
28667        steamID: uint64_steamid,
28668    ) -> EBeginAuthSessionResult;
28669}
28670extern "C" {
28671    pub fn SteamAPI_ISteamGameServer_EndAuthSession(
28672        self_: *mut ISteamGameServer,
28673        steamID: uint64_steamid,
28674    );
28675}
28676extern "C" {
28677    pub fn SteamAPI_ISteamGameServer_CancelAuthTicket(
28678        self_: *mut ISteamGameServer,
28679        hAuthTicket: HAuthTicket,
28680    );
28681}
28682extern "C" {
28683    pub fn SteamAPI_ISteamGameServer_UserHasLicenseForApp(
28684        self_: *mut ISteamGameServer,
28685        steamID: uint64_steamid,
28686        appID: AppId_t,
28687    ) -> EUserHasLicenseForAppResult;
28688}
28689extern "C" {
28690    pub fn SteamAPI_ISteamGameServer_RequestUserGroupStatus(
28691        self_: *mut ISteamGameServer,
28692        steamIDUser: uint64_steamid,
28693        steamIDGroup: uint64_steamid,
28694    ) -> bool;
28695}
28696extern "C" {
28697    pub fn SteamAPI_ISteamGameServer_GetGameplayStats(self_: *mut ISteamGameServer);
28698}
28699extern "C" {
28700    pub fn SteamAPI_ISteamGameServer_GetServerReputation(
28701        self_: *mut ISteamGameServer,
28702    ) -> SteamAPICall_t;
28703}
28704extern "C" {
28705    pub fn SteamAPI_ISteamGameServer_GetPublicIP(self_: *mut ISteamGameServer) -> SteamIPAddress_t;
28706}
28707extern "C" {
28708    pub fn SteamAPI_ISteamGameServer_HandleIncomingPacket(
28709        self_: *mut ISteamGameServer,
28710        pData: *const ::std::os::raw::c_void,
28711        cbData: ::std::os::raw::c_int,
28712        srcIP: uint32,
28713        srcPort: uint16,
28714    ) -> bool;
28715}
28716extern "C" {
28717    pub fn SteamAPI_ISteamGameServer_GetNextOutgoingPacket(
28718        self_: *mut ISteamGameServer,
28719        pOut: *mut ::std::os::raw::c_void,
28720        cbMaxOut: ::std::os::raw::c_int,
28721        pNetAdr: *mut uint32,
28722        pPort: *mut uint16,
28723    ) -> ::std::os::raw::c_int;
28724}
28725extern "C" {
28726    pub fn SteamAPI_ISteamGameServer_AssociateWithClan(
28727        self_: *mut ISteamGameServer,
28728        steamIDClan: uint64_steamid,
28729    ) -> SteamAPICall_t;
28730}
28731extern "C" {
28732    pub fn SteamAPI_ISteamGameServer_ComputeNewPlayerCompatibility(
28733        self_: *mut ISteamGameServer,
28734        steamIDNewPlayer: uint64_steamid,
28735    ) -> SteamAPICall_t;
28736}
28737extern "C" {
28738    pub fn SteamAPI_ISteamGameServer_SendUserConnectAndAuthenticate_DEPRECATED(
28739        self_: *mut ISteamGameServer,
28740        unIPClient: uint32,
28741        pvAuthBlob: *const ::std::os::raw::c_void,
28742        cubAuthBlobSize: uint32,
28743        pSteamIDUser: *mut CSteamID,
28744    ) -> bool;
28745}
28746extern "C" {
28747    pub fn SteamAPI_ISteamGameServer_CreateUnauthenticatedUserConnection(
28748        self_: *mut ISteamGameServer,
28749    ) -> uint64_steamid;
28750}
28751extern "C" {
28752    pub fn SteamAPI_ISteamGameServer_SendUserDisconnect_DEPRECATED(
28753        self_: *mut ISteamGameServer,
28754        steamIDUser: uint64_steamid,
28755    );
28756}
28757extern "C" {
28758    pub fn SteamAPI_ISteamGameServer_BUpdateUserData(
28759        self_: *mut ISteamGameServer,
28760        steamIDUser: uint64_steamid,
28761        pchPlayerName: *const ::std::os::raw::c_char,
28762        uScore: uint32,
28763    ) -> bool;
28764}
28765extern "C" {
28766    pub fn SteamAPI_SteamGameServerStats_v001() -> *mut ISteamGameServerStats;
28767}
28768extern "C" {
28769    pub fn SteamAPI_ISteamGameServerStats_RequestUserStats(
28770        self_: *mut ISteamGameServerStats,
28771        steamIDUser: uint64_steamid,
28772    ) -> SteamAPICall_t;
28773}
28774extern "C" {
28775    pub fn SteamAPI_ISteamGameServerStats_GetUserStatInt32(
28776        self_: *mut ISteamGameServerStats,
28777        steamIDUser: uint64_steamid,
28778        pchName: *const ::std::os::raw::c_char,
28779        pData: *mut int32,
28780    ) -> bool;
28781}
28782extern "C" {
28783    pub fn SteamAPI_ISteamGameServerStats_GetUserStatFloat(
28784        self_: *mut ISteamGameServerStats,
28785        steamIDUser: uint64_steamid,
28786        pchName: *const ::std::os::raw::c_char,
28787        pData: *mut f32,
28788    ) -> bool;
28789}
28790extern "C" {
28791    pub fn SteamAPI_ISteamGameServerStats_GetUserAchievement(
28792        self_: *mut ISteamGameServerStats,
28793        steamIDUser: uint64_steamid,
28794        pchName: *const ::std::os::raw::c_char,
28795        pbAchieved: *mut bool,
28796    ) -> bool;
28797}
28798extern "C" {
28799    pub fn SteamAPI_ISteamGameServerStats_SetUserStatInt32(
28800        self_: *mut ISteamGameServerStats,
28801        steamIDUser: uint64_steamid,
28802        pchName: *const ::std::os::raw::c_char,
28803        nData: int32,
28804    ) -> bool;
28805}
28806extern "C" {
28807    pub fn SteamAPI_ISteamGameServerStats_SetUserStatFloat(
28808        self_: *mut ISteamGameServerStats,
28809        steamIDUser: uint64_steamid,
28810        pchName: *const ::std::os::raw::c_char,
28811        fData: f32,
28812    ) -> bool;
28813}
28814extern "C" {
28815    pub fn SteamAPI_ISteamGameServerStats_UpdateUserAvgRateStat(
28816        self_: *mut ISteamGameServerStats,
28817        steamIDUser: uint64_steamid,
28818        pchName: *const ::std::os::raw::c_char,
28819        flCountThisSession: f32,
28820        dSessionLength: f64,
28821    ) -> bool;
28822}
28823extern "C" {
28824    pub fn SteamAPI_ISteamGameServerStats_SetUserAchievement(
28825        self_: *mut ISteamGameServerStats,
28826        steamIDUser: uint64_steamid,
28827        pchName: *const ::std::os::raw::c_char,
28828    ) -> bool;
28829}
28830extern "C" {
28831    pub fn SteamAPI_ISteamGameServerStats_ClearUserAchievement(
28832        self_: *mut ISteamGameServerStats,
28833        steamIDUser: uint64_steamid,
28834        pchName: *const ::std::os::raw::c_char,
28835    ) -> bool;
28836}
28837extern "C" {
28838    pub fn SteamAPI_ISteamGameServerStats_StoreUserStats(
28839        self_: *mut ISteamGameServerStats,
28840        steamIDUser: uint64_steamid,
28841    ) -> SteamAPICall_t;
28842}
28843extern "C" {
28844    pub fn SteamAPI_ISteamNetworkingFakeUDPPort_DestroyFakeUDPPort(
28845        self_: *mut ISteamNetworkingFakeUDPPort,
28846    );
28847}
28848extern "C" {
28849    pub fn SteamAPI_ISteamNetworkingFakeUDPPort_SendMessageToFakeIP(
28850        self_: *mut ISteamNetworkingFakeUDPPort,
28851        remoteAddress: *const SteamNetworkingIPAddr,
28852        pData: *const ::std::os::raw::c_void,
28853        cbData: uint32,
28854        nSendFlags: ::std::os::raw::c_int,
28855    ) -> EResult;
28856}
28857extern "C" {
28858    pub fn SteamAPI_ISteamNetworkingFakeUDPPort_ReceiveMessages(
28859        self_: *mut ISteamNetworkingFakeUDPPort,
28860        ppOutMessages: *mut *mut SteamNetworkingMessage_t,
28861        nMaxMessages: ::std::os::raw::c_int,
28862    ) -> ::std::os::raw::c_int;
28863}
28864extern "C" {
28865    pub fn SteamAPI_ISteamNetworkingFakeUDPPort_ScheduleCleanup(
28866        self_: *mut ISteamNetworkingFakeUDPPort,
28867        remoteAddress: *const SteamNetworkingIPAddr,
28868    );
28869}
28870extern "C" {
28871    pub fn SteamAPI_SteamIPAddress_t_IsSet(self_: *mut SteamIPAddress_t) -> bool;
28872}
28873extern "C" {
28874    pub fn SteamAPI_MatchMakingKeyValuePair_t_Construct(self_: *mut MatchMakingKeyValuePair_t);
28875}
28876extern "C" {
28877    pub fn SteamAPI_servernetadr_t_Construct(self_: *mut servernetadr_t);
28878}
28879extern "C" {
28880    pub fn SteamAPI_servernetadr_t_Init(
28881        self_: *mut servernetadr_t,
28882        ip: ::std::os::raw::c_uint,
28883        usQueryPort: uint16,
28884        usConnectionPort: uint16,
28885    );
28886}
28887extern "C" {
28888    pub fn SteamAPI_servernetadr_t_GetQueryPort(self_: *mut servernetadr_t) -> uint16;
28889}
28890extern "C" {
28891    pub fn SteamAPI_servernetadr_t_SetQueryPort(self_: *mut servernetadr_t, usPort: uint16);
28892}
28893extern "C" {
28894    pub fn SteamAPI_servernetadr_t_GetConnectionPort(self_: *mut servernetadr_t) -> uint16;
28895}
28896extern "C" {
28897    pub fn SteamAPI_servernetadr_t_SetConnectionPort(self_: *mut servernetadr_t, usPort: uint16);
28898}
28899extern "C" {
28900    pub fn SteamAPI_servernetadr_t_GetIP(self_: *mut servernetadr_t) -> uint32;
28901}
28902extern "C" {
28903    pub fn SteamAPI_servernetadr_t_SetIP(self_: *mut servernetadr_t, unIP: uint32);
28904}
28905extern "C" {
28906    pub fn SteamAPI_servernetadr_t_GetConnectionAddressString(
28907        self_: *mut servernetadr_t,
28908    ) -> *const ::std::os::raw::c_char;
28909}
28910extern "C" {
28911    pub fn SteamAPI_servernetadr_t_GetQueryAddressString(
28912        self_: *mut servernetadr_t,
28913    ) -> *const ::std::os::raw::c_char;
28914}
28915extern "C" {
28916    pub fn SteamAPI_servernetadr_t_IsLessThan(
28917        self_: *mut servernetadr_t,
28918        netadr: *const servernetadr_t,
28919    ) -> bool;
28920}
28921extern "C" {
28922    pub fn SteamAPI_servernetadr_t_Assign(self_: *mut servernetadr_t, that: *const servernetadr_t);
28923}
28924extern "C" {
28925    pub fn SteamAPI_gameserveritem_t_Construct(self_: *mut gameserveritem_t);
28926}
28927extern "C" {
28928    pub fn SteamAPI_gameserveritem_t_GetName(
28929        self_: *mut gameserveritem_t,
28930    ) -> *const ::std::os::raw::c_char;
28931}
28932extern "C" {
28933    pub fn SteamAPI_gameserveritem_t_SetName(
28934        self_: *mut gameserveritem_t,
28935        pName: *const ::std::os::raw::c_char,
28936    );
28937}
28938extern "C" {
28939    pub fn SteamAPI_SteamNetworkingIPAddr_Clear(self_: *mut SteamNetworkingIPAddr);
28940}
28941extern "C" {
28942    pub fn SteamAPI_SteamNetworkingIPAddr_IsIPv6AllZeros(self_: *mut SteamNetworkingIPAddr)
28943        -> bool;
28944}
28945extern "C" {
28946    pub fn SteamAPI_SteamNetworkingIPAddr_SetIPv6(
28947        self_: *mut SteamNetworkingIPAddr,
28948        ipv6: *const uint8,
28949        nPort: uint16,
28950    );
28951}
28952extern "C" {
28953    pub fn SteamAPI_SteamNetworkingIPAddr_SetIPv4(
28954        self_: *mut SteamNetworkingIPAddr,
28955        nIP: uint32,
28956        nPort: uint16,
28957    );
28958}
28959extern "C" {
28960    pub fn SteamAPI_SteamNetworkingIPAddr_IsIPv4(self_: *mut SteamNetworkingIPAddr) -> bool;
28961}
28962extern "C" {
28963    pub fn SteamAPI_SteamNetworkingIPAddr_GetIPv4(self_: *mut SteamNetworkingIPAddr) -> uint32;
28964}
28965extern "C" {
28966    pub fn SteamAPI_SteamNetworkingIPAddr_SetIPv6LocalHost(
28967        self_: *mut SteamNetworkingIPAddr,
28968        nPort: uint16,
28969    );
28970}
28971extern "C" {
28972    pub fn SteamAPI_SteamNetworkingIPAddr_IsLocalHost(self_: *mut SteamNetworkingIPAddr) -> bool;
28973}
28974extern "C" {
28975    pub fn SteamAPI_SteamNetworkingIPAddr_ToString(
28976        self_: *mut SteamNetworkingIPAddr,
28977        buf: *mut ::std::os::raw::c_char,
28978        cbBuf: uint32,
28979        bWithPort: bool,
28980    );
28981}
28982extern "C" {
28983    pub fn SteamAPI_SteamNetworkingIPAddr_ParseString(
28984        self_: *mut SteamNetworkingIPAddr,
28985        pszStr: *const ::std::os::raw::c_char,
28986    ) -> bool;
28987}
28988extern "C" {
28989    pub fn SteamAPI_SteamNetworkingIPAddr_IsEqualTo(
28990        self_: *mut SteamNetworkingIPAddr,
28991        x: *const SteamNetworkingIPAddr,
28992    ) -> bool;
28993}
28994extern "C" {
28995    pub fn SteamAPI_SteamNetworkingIPAddr_GetFakeIPType(
28996        self_: *mut SteamNetworkingIPAddr,
28997    ) -> ESteamNetworkingFakeIPType;
28998}
28999extern "C" {
29000    pub fn SteamAPI_SteamNetworkingIPAddr_IsFakeIP(self_: *mut SteamNetworkingIPAddr) -> bool;
29001}
29002extern "C" {
29003    pub fn SteamAPI_SteamNetworkingIdentity_Clear(self_: *mut SteamNetworkingIdentity);
29004}
29005extern "C" {
29006    pub fn SteamAPI_SteamNetworkingIdentity_IsInvalid(self_: *mut SteamNetworkingIdentity) -> bool;
29007}
29008extern "C" {
29009    pub fn SteamAPI_SteamNetworkingIdentity_SetSteamID(
29010        self_: *mut SteamNetworkingIdentity,
29011        steamID: uint64_steamid,
29012    );
29013}
29014extern "C" {
29015    pub fn SteamAPI_SteamNetworkingIdentity_GetSteamID(
29016        self_: *mut SteamNetworkingIdentity,
29017    ) -> uint64_steamid;
29018}
29019extern "C" {
29020    pub fn SteamAPI_SteamNetworkingIdentity_SetSteamID64(
29021        self_: *mut SteamNetworkingIdentity,
29022        steamID: uint64,
29023    );
29024}
29025extern "C" {
29026    pub fn SteamAPI_SteamNetworkingIdentity_GetSteamID64(
29027        self_: *mut SteamNetworkingIdentity,
29028    ) -> uint64;
29029}
29030extern "C" {
29031    pub fn SteamAPI_SteamNetworkingIdentity_SetXboxPairwiseID(
29032        self_: *mut SteamNetworkingIdentity,
29033        pszString: *const ::std::os::raw::c_char,
29034    ) -> bool;
29035}
29036extern "C" {
29037    pub fn SteamAPI_SteamNetworkingIdentity_GetXboxPairwiseID(
29038        self_: *mut SteamNetworkingIdentity,
29039    ) -> *const ::std::os::raw::c_char;
29040}
29041extern "C" {
29042    pub fn SteamAPI_SteamNetworkingIdentity_SetPSNID(
29043        self_: *mut SteamNetworkingIdentity,
29044        id: uint64,
29045    );
29046}
29047extern "C" {
29048    pub fn SteamAPI_SteamNetworkingIdentity_GetPSNID(self_: *mut SteamNetworkingIdentity)
29049        -> uint64;
29050}
29051extern "C" {
29052    pub fn SteamAPI_SteamNetworkingIdentity_SetStadiaID(
29053        self_: *mut SteamNetworkingIdentity,
29054        id: uint64,
29055    );
29056}
29057extern "C" {
29058    pub fn SteamAPI_SteamNetworkingIdentity_GetStadiaID(
29059        self_: *mut SteamNetworkingIdentity,
29060    ) -> uint64;
29061}
29062extern "C" {
29063    pub fn SteamAPI_SteamNetworkingIdentity_SetIPAddr(
29064        self_: *mut SteamNetworkingIdentity,
29065        addr: *const SteamNetworkingIPAddr,
29066    );
29067}
29068extern "C" {
29069    pub fn SteamAPI_SteamNetworkingIdentity_GetIPAddr(
29070        self_: *mut SteamNetworkingIdentity,
29071    ) -> *const SteamNetworkingIPAddr;
29072}
29073extern "C" {
29074    pub fn SteamAPI_SteamNetworkingIdentity_SetIPv4Addr(
29075        self_: *mut SteamNetworkingIdentity,
29076        nIPv4: uint32,
29077        nPort: uint16,
29078    );
29079}
29080extern "C" {
29081    pub fn SteamAPI_SteamNetworkingIdentity_GetIPv4(self_: *mut SteamNetworkingIdentity) -> uint32;
29082}
29083extern "C" {
29084    pub fn SteamAPI_SteamNetworkingIdentity_GetFakeIPType(
29085        self_: *mut SteamNetworkingIdentity,
29086    ) -> ESteamNetworkingFakeIPType;
29087}
29088extern "C" {
29089    pub fn SteamAPI_SteamNetworkingIdentity_IsFakeIP(self_: *mut SteamNetworkingIdentity) -> bool;
29090}
29091extern "C" {
29092    pub fn SteamAPI_SteamNetworkingIdentity_SetLocalHost(self_: *mut SteamNetworkingIdentity);
29093}
29094extern "C" {
29095    pub fn SteamAPI_SteamNetworkingIdentity_IsLocalHost(
29096        self_: *mut SteamNetworkingIdentity,
29097    ) -> bool;
29098}
29099extern "C" {
29100    pub fn SteamAPI_SteamNetworkingIdentity_SetGenericString(
29101        self_: *mut SteamNetworkingIdentity,
29102        pszString: *const ::std::os::raw::c_char,
29103    ) -> bool;
29104}
29105extern "C" {
29106    pub fn SteamAPI_SteamNetworkingIdentity_GetGenericString(
29107        self_: *mut SteamNetworkingIdentity,
29108    ) -> *const ::std::os::raw::c_char;
29109}
29110extern "C" {
29111    pub fn SteamAPI_SteamNetworkingIdentity_SetGenericBytes(
29112        self_: *mut SteamNetworkingIdentity,
29113        data: *const ::std::os::raw::c_void,
29114        cbLen: uint32,
29115    ) -> bool;
29116}
29117extern "C" {
29118    pub fn SteamAPI_SteamNetworkingIdentity_GetGenericBytes(
29119        self_: *mut SteamNetworkingIdentity,
29120        cbLen: *mut ::std::os::raw::c_int,
29121    ) -> *const uint8;
29122}
29123extern "C" {
29124    pub fn SteamAPI_SteamNetworkingIdentity_IsEqualTo(
29125        self_: *mut SteamNetworkingIdentity,
29126        x: *const SteamNetworkingIdentity,
29127    ) -> bool;
29128}
29129extern "C" {
29130    pub fn SteamAPI_SteamNetworkingIdentity_ToString(
29131        self_: *mut SteamNetworkingIdentity,
29132        buf: *mut ::std::os::raw::c_char,
29133        cbBuf: uint32,
29134    );
29135}
29136extern "C" {
29137    pub fn SteamAPI_SteamNetworkingIdentity_ParseString(
29138        self_: *mut SteamNetworkingIdentity,
29139        pszStr: *const ::std::os::raw::c_char,
29140    ) -> bool;
29141}
29142extern "C" {
29143    pub fn SteamAPI_SteamNetworkingMessage_t_Release(self_: *mut SteamNetworkingMessage_t);
29144}
29145extern "C" {
29146    pub fn SteamAPI_SteamNetworkingConfigValue_t_SetInt32(
29147        self_: *mut SteamNetworkingConfigValue_t,
29148        eVal: ESteamNetworkingConfigValue,
29149        data: i32,
29150    );
29151}
29152extern "C" {
29153    pub fn SteamAPI_SteamNetworkingConfigValue_t_SetInt64(
29154        self_: *mut SteamNetworkingConfigValue_t,
29155        eVal: ESteamNetworkingConfigValue,
29156        data: i64,
29157    );
29158}
29159extern "C" {
29160    pub fn SteamAPI_SteamNetworkingConfigValue_t_SetFloat(
29161        self_: *mut SteamNetworkingConfigValue_t,
29162        eVal: ESteamNetworkingConfigValue,
29163        data: f32,
29164    );
29165}
29166extern "C" {
29167    pub fn SteamAPI_SteamNetworkingConfigValue_t_SetPtr(
29168        self_: *mut SteamNetworkingConfigValue_t,
29169        eVal: ESteamNetworkingConfigValue,
29170        data: *mut ::std::os::raw::c_void,
29171    );
29172}
29173extern "C" {
29174    pub fn SteamAPI_SteamNetworkingConfigValue_t_SetString(
29175        self_: *mut SteamNetworkingConfigValue_t,
29176        eVal: ESteamNetworkingConfigValue,
29177        data: *const ::std::os::raw::c_char,
29178    );
29179}
29180extern "C" {
29181    pub fn SteamAPI_SteamDatagramHostedAddress_Clear(self_: *mut SteamDatagramHostedAddress);
29182}
29183extern "C" {
29184    pub fn SteamAPI_SteamDatagramHostedAddress_GetPopID(
29185        self_: *mut SteamDatagramHostedAddress,
29186    ) -> SteamNetworkingPOPID;
29187}
29188extern "C" {
29189    pub fn SteamAPI_SteamDatagramHostedAddress_SetDevAddress(
29190        self_: *mut SteamDatagramHostedAddress,
29191        nIP: uint32,
29192        nPort: uint16,
29193        popid: SteamNetworkingPOPID,
29194    );
29195}
29196#[repr(u32)]
29197#[non_exhaustive]
29198#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
29199pub enum EServerMode {
29200    eServerModeInvalid = 0,
29201    eServerModeNoAuthentication = 1,
29202    eServerModeAuthentication = 2,
29203    eServerModeAuthenticationAndSecure = 3,
29204}
29205#[doc = " Pass to SteamGameServer_Init to indicate that the same UDP port will be used for game traffic\n UDP queries for server browser pings and LAN discovery.  In this case, Steam will not open up a\n socket to handle server browser queries, and you must use ISteamGameServer::HandleIncomingPacket\n and ISteamGameServer::GetNextOutgoingPacket to handle packets related to server discovery on your socket."]
29206pub const STEAMGAMESERVER_QUERY_PORT_SHARED: uint16 = 65535;
29207pub const MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE: uint16 = 65535;
29208extern "C" {
29209    pub fn SteamGameServer_Shutdown();
29210}
29211extern "C" {
29212    pub fn SteamGameServer_BSecure() -> bool;
29213}
29214extern "C" {
29215    pub fn SteamGameServer_GetSteamID() -> uint64;
29216}
29217extern "C" {
29218    pub fn SteamInternal_GameServer_Init_V2(
29219        unIP: uint32,
29220        usGamePort: uint16,
29221        usQueryPort: uint16,
29222        eServerMode: EServerMode,
29223        pchVersionString: *const ::std::os::raw::c_char,
29224        pszInternalCheckInterfaceVersions: *const ::std::os::raw::c_char,
29225        pOutErrMsg: *mut SteamErrMsg,
29226    ) -> ESteamAPIInitResult;
29227}
29228#[repr(C)]
29229#[derive(Debug, Copy, Clone)]
29230pub struct __locale_data {
29231    pub _address: u8,
29232}
29233pub type __builtin_va_list = [__va_list_tag; 1usize];
29234#[repr(C)]
29235#[derive(Debug, Copy, Clone)]
29236pub struct __va_list_tag {
29237    pub gp_offset: ::std::os::raw::c_uint,
29238    pub fp_offset: ::std::os::raw::c_uint,
29239    pub overflow_arg_area: *mut ::std::os::raw::c_void,
29240    pub reg_save_area: *mut ::std::os::raw::c_void,
29241}
29242#[test]
29243fn bindgen_test_layout___va_list_tag() {
29244    const UNINIT: ::std::mem::MaybeUninit<__va_list_tag> = ::std::mem::MaybeUninit::uninit();
29245    let ptr = UNINIT.as_ptr();
29246    assert_eq!(
29247        ::std::mem::size_of::<__va_list_tag>(),
29248        24usize,
29249        concat!("Size of: ", stringify!(__va_list_tag))
29250    );
29251    assert_eq!(
29252        ::std::mem::align_of::<__va_list_tag>(),
29253        8usize,
29254        concat!("Alignment of ", stringify!(__va_list_tag))
29255    );
29256    assert_eq!(
29257        unsafe { ::std::ptr::addr_of!((*ptr).gp_offset) as usize - ptr as usize },
29258        0usize,
29259        concat!(
29260            "Offset of field: ",
29261            stringify!(__va_list_tag),
29262            "::",
29263            stringify!(gp_offset)
29264        )
29265    );
29266    assert_eq!(
29267        unsafe { ::std::ptr::addr_of!((*ptr).fp_offset) as usize - ptr as usize },
29268        4usize,
29269        concat!(
29270            "Offset of field: ",
29271            stringify!(__va_list_tag),
29272            "::",
29273            stringify!(fp_offset)
29274        )
29275    );
29276    assert_eq!(
29277        unsafe { ::std::ptr::addr_of!((*ptr).overflow_arg_area) as usize - ptr as usize },
29278        8usize,
29279        concat!(
29280            "Offset of field: ",
29281            stringify!(__va_list_tag),
29282            "::",
29283            stringify!(overflow_arg_area)
29284        )
29285    );
29286    assert_eq!(
29287        unsafe { ::std::ptr::addr_of!((*ptr).reg_save_area) as usize - ptr as usize },
29288        16usize,
29289        concat!(
29290            "Offset of field: ",
29291            stringify!(__va_list_tag),
29292            "::",
29293            stringify!(reg_save_area)
29294        )
29295    );
29296}