Skip to main content

eos_sys/
bindings.rs

1// This file is generated by `bindgen` and checked into the repository so
2// downstream users do NOT need clang/LLVM (libclang) installed.
3//
4// Regenerate (requires libclang):
5// `cargo clean && cargo build -p eos-sys --no-default-features --features bindgen`
6/* automatically generated by rust-bindgen 0.71.1 */
7
8pub const EOS_USE_DLLEXPORT: u32 = 1;
9pub const EOS_TRUE: u32 = 1;
10pub const EOS_FALSE: u32 = 0;
11pub const EOS_EPICACCOUNTID_MAX_LENGTH: u32 = 32;
12pub const EOS_PRODUCTUSERID_MAX_LENGTH: u32 = 32;
13pub const EOS_OPT_Unknown: u32 = 0;
14pub const EOS_OPT_Epic: u32 = 100;
15pub const EOS_OPT_PSN: u32 = 1000;
16pub const EOS_OPT_Nintendo: u32 = 2000;
17pub const EOS_OPT_XBL: u32 = 3000;
18pub const EOS_OPT_Steam: u32 = 4000;
19pub const EOS_IPT_Steam: &[u8; 6] = b"STEAM\0";
20pub const EOS_INTEGRATEDPLATFORM_OPTIONS_API_LATEST: u32 = 1;
21pub const EOS_INTEGRATEDPLATFORM_STEAM_OPTIONS_API_LATEST: u32 = 3;
22pub const EOS_INTEGRATEDPLATFORM_STEAM_MAX_STEAMAPIINTERFACEVERSIONSARRAY_SIZE: u32 = 4096;
23pub const EOS_INTEGRATEDPLATFORM_CREATEINTEGRATEDPLATFORMOPTIONSCONTAINER_API_LATEST: u32 = 1;
24pub const EOS_INTEGRATEDPLATFORMOPTIONSCONTAINER_ADD_API_LATEST: u32 = 1;
25pub const EOS_INTEGRATEDPLATFORM_SETUSERLOGINSTATUS_API_LATEST: u32 = 1;
26pub const EOS_INTEGRATEDPLATFORM_ADDNOTIFYUSERLOGINSTATUSCHANGED_API_LATEST: u32 = 1;
27pub const EOS_INTEGRATEDPLATFORM_SETUSERPRELOGOUTCALLBACK_API_LATEST: u32 = 1;
28pub const EOS_INTEGRATEDPLATFORM_CLEARUSERPRELOGOUTCALLBACK_API_LATEST: u32 = 1;
29pub const EOS_INTEGRATEDPLATFORM_FINALIZEDEFERREDUSERLOGOUT_API_LATEST: u32 = 1;
30pub const EOS_PLATFORM_CLIENTCREDENTIALS_CLIENTID_MAX_LENGTH: u32 = 64;
31pub const EOS_PLATFORM_CLIENTCREDENTIALS_CLIENTSECRET_MAX_LENGTH: u32 = 64;
32pub const EOS_PLATFORM_RTCOPTIONS_API_LATEST: u32 = 3;
33pub const EOS_COUNTRYCODE_MAX_LENGTH: u32 = 4;
34pub const EOS_COUNTRYCODE_MAX_BUFFER_LEN: u32 = 5;
35pub const EOS_LOCALECODE_MAX_LENGTH: u32 = 9;
36pub const EOS_LOCALECODE_MAX_BUFFER_LEN: u32 = 10;
37pub const EOS_PLATFORM_OPTIONS_API_LATEST: u32 = 15;
38pub const EOS_PF_LOADING_IN_EDITOR: u32 = 1;
39pub const EOS_PF_DISABLE_OVERLAY: u32 = 2;
40pub const EOS_PF_DISABLE_SOCIAL_OVERLAY: u32 = 4;
41pub const EOS_PF_RESERVED1: u32 = 8;
42pub const EOS_PF_WINDOWS_ENABLE_OVERLAY_D3D9: u32 = 16;
43pub const EOS_PF_WINDOWS_ENABLE_OVERLAY_D3D10: u32 = 32;
44pub const EOS_PF_WINDOWS_ENABLE_OVERLAY_OPENGL: u32 = 64;
45pub const EOS_PF_CONSOLE_ENABLE_OVERLAY_AUTOMATIC_UNLOADING: u32 = 128;
46pub const EOS_PF_ENABLE_OVERLAY_DEBUG_LOGGING: u32 = 256;
47pub const EOS_PLATFORM_OPTIONS_PRODUCTID_MAX_LENGTH: u32 = 64;
48pub const EOS_PLATFORM_OPTIONS_SANDBOXID_MAX_LENGTH: u32 = 64;
49pub const EOS_PLATFORM_OPTIONS_ENCRYPTIONKEY_LENGTH: u32 = 64;
50pub const EOS_PLATFORM_OPTIONS_DEPLOYMENTID_MAX_LENGTH: u32 = 64;
51pub const EOS_PLATFORM_GETDESKTOPCROSSPLAYSTATUS_API_LATEST: u32 = 1;
52pub const EOS_PLATFORM_CHECKFORLAUNCHERANDRESTART_ENV_VAR: &[u8; 21] = b"EOS_LAUNCHED_BY_EPIC\0";
53pub const EOS_INITIALIZE_THREADAFFINITY_API_LATEST: u32 = 4;
54pub const EOS_INITIALIZE_API_LATEST: u32 = 5;
55pub const EOS_INITIALIZEOPTIONS_PRODUCTNAME_MAX_LENGTH: u32 = 64;
56pub const EOS_INITIALIZEOPTIONS_PRODUCTVERSION_MAX_LENGTH: u32 = 64;
57pub const EOS_METRICS_BEGINPLAYERSESSION_API_LATEST: u32 = 1;
58pub const EOS_METRICS_ENDPLAYERSESSION_API_LATEST: u32 = 1;
59pub const EOS_AUTH_ACCOUNTFEATURERESTRICTEDINFO_API_LATEST: u32 = 1;
60pub const EOS_AUTH_TOKEN_API_LATEST: u32 = 2;
61pub const EOS_AUTH_CREDENTIALS_API_LATEST: u32 = 4;
62pub const EOS_AUTH_PINGRANTINFO_API_LATEST: u32 = 2;
63pub const EOS_LF_NO_USER_INTERFACE: u32 = 1;
64pub const EOS_AUTH_LOGIN_API_LATEST: u32 = 3;
65pub const EOS_AUTH_LOGOUT_API_LATEST: u32 = 1;
66pub const EOS_AUTH_LINKACCOUNT_API_LATEST: u32 = 1;
67pub const EOS_AUTH_VERIFYUSERAUTH_API_LATEST: u32 = 1;
68pub const EOS_AUTH_COPYUSERAUTHTOKEN_API_LATEST: u32 = 1;
69pub const EOS_AUTH_COPYIDTOKEN_API_LATEST: u32 = 1;
70pub const EOS_AUTH_IDTOKEN_API_LATEST: u32 = 1;
71pub const EOS_AUTH_QUERYIDTOKEN_API_LATEST: u32 = 1;
72pub const EOS_AUTH_VERIFYIDTOKEN_API_LATEST: u32 = 1;
73pub const EOS_AUTH_ADDNOTIFYLOGINSTATUSCHANGED_API_LATEST: u32 = 1;
74pub const EOS_AUTH_DELETEPERSISTENTAUTH_API_LATEST: u32 = 2;
75pub const EOS_ECOM_ENTITLEMENT_API_LATEST: u32 = 2;
76pub const EOS_ECOM_ENTITLEMENT_ENDTIMESTAMP_UNDEFINED: i32 = -1;
77pub const EOS_ECOM_ITEMOWNERSHIP_API_LATEST: u32 = 1;
78pub const EOS_ECOM_CATALOGITEM_API_LATEST: u32 = 1;
79pub const EOS_ECOM_CATALOGITEM_ENTITLEMENTENDTIMESTAMP_UNDEFINED: i32 = -1;
80pub const EOS_ECOM_CATALOGITEMID_MAX_LENGTH: u32 = 32;
81pub const EOS_ECOM_CATALOGOFFER_API_LATEST: u32 = 5;
82pub const EOS_ECOM_CATALOGOFFER_EXPIRATIONTIMESTAMP_UNDEFINED: i32 = -1;
83pub const EOS_ECOM_CATALOGOFFER_RELEASEDATETIMESTAMP_UNDEFINED: i32 = -1;
84pub const EOS_ECOM_CATALOGOFFER_EFFECTIVEDATETIMESTAMP_UNDEFINED: i32 = -1;
85pub const EOS_ECOM_CATALOGOFFERID_MAX_LENGTH: u32 = 32;
86pub const EOS_ECOM_KEYIMAGEINFO_API_LATEST: u32 = 1;
87pub const EOS_ECOM_CATALOGRELEASE_API_LATEST: u32 = 1;
88pub const EOS_ECOM_CHECKOUTENTRY_API_LATEST: u32 = 1;
89pub const EOS_ECOM_QUERYOWNERSHIP_API_LATEST: u32 = 2;
90pub const EOS_ECOM_QUERYOWNERSHIP_MAX_CATALOG_IDS: u32 = 400;
91pub const EOS_ECOM_QUERYOWNERSHIPBYSANDBOXIDSOPTIONS_API_LATEST: u32 = 1;
92pub const EOS_ECOM_QUERYOWNERSHIP_MAX_SANDBOX_IDS: u32 = 10;
93pub const EOS_ECOM_QUERYOWNERSHIPTOKEN_API_LATEST: u32 = 2;
94pub const EOS_ECOM_QUERYOWNERSHIPTOKEN_MAX_CATALOGITEM_IDS: u32 = 32;
95pub const EOS_ECOM_QUERYENTITLEMENTS_API_LATEST: u32 = 3;
96pub const EOS_ECOM_QUERYENTITLEMENTS_MAX_ENTITLEMENT_IDS: u32 = 256;
97pub const EOS_ECOM_QUERYENTITLEMENTTOKEN_API_LATEST: u32 = 1;
98pub const EOS_ECOM_QUERYENTITLEMENTTOKEN_MAX_ENTITLEMENT_IDS: u32 = 32;
99pub const EOS_ECOM_QUERYOFFERS_API_LATEST: u32 = 1;
100pub const EOS_ECOM_CHECKOUT_API_LATEST: u32 = 2;
101pub const EOS_ECOM_CHECKOUT_MAX_ENTRIES: u32 = 10;
102pub const EOS_ECOM_TRANSACTIONID_MAXIMUM_LENGTH: u32 = 64;
103pub const EOS_ECOM_TRANSACTIONID_MAX_LENGTH: u32 = 64;
104pub const EOS_ECOM_REDEEMENTITLEMENTS_API_LATEST: u32 = 2;
105pub const EOS_ECOM_REDEEMENTITLEMENTS_MAX_IDS: u32 = 32;
106pub const EOS_ECOM_ENTITLEMENTID_MAX_LENGTH: u32 = 32;
107pub const EOS_ECOM_GETLASTREDEEMEDENTITLEMENTSCOUNT_API_LATEST: u32 = 1;
108pub const EOS_ECOM_COPYLASTREDEEMEDENTITLEMENTBYINDEX_API_LATEST: u32 = 1;
109pub const EOS_ECOM_GETLASTREDEEMENTITLEMENTSRESULTCOUNT_API_LATEST: u32 = 1;
110pub const EOS_ECOM_COPYLASTREDEEMENTITLEMENTSRESULTBYINDEX_API_LATEST: u32 = 1;
111pub const EOS_ECOM_GETENTITLEMENTSCOUNT_API_LATEST: u32 = 1;
112pub const EOS_ECOM_GETENTITLEMENTSBYNAMECOUNT_API_LATEST: u32 = 1;
113pub const EOS_ECOM_COPYENTITLEMENTBYINDEX_API_LATEST: u32 = 1;
114pub const EOS_ECOM_COPYENTITLEMENTBYNAMEANDINDEX_API_LATEST: u32 = 1;
115pub const EOS_ECOM_COPYENTITLEMENTBYID_API_LATEST: u32 = 2;
116pub const EOS_ECOM_GETOFFERCOUNT_API_LATEST: u32 = 1;
117pub const EOS_ECOM_COPYOFFERBYINDEX_API_LATEST: u32 = 3;
118pub const EOS_ECOM_COPYOFFERBYID_API_LATEST: u32 = 3;
119pub const EOS_ECOM_GETOFFERITEMCOUNT_API_LATEST: u32 = 1;
120pub const EOS_ECOM_COPYOFFERITEMBYINDEX_API_LATEST: u32 = 1;
121pub const EOS_ECOM_COPYITEMBYID_API_LATEST: u32 = 1;
122pub const EOS_ECOM_GETOFFERIMAGEINFOCOUNT_API_LATEST: u32 = 1;
123pub const EOS_ECOM_COPYOFFERIMAGEINFOBYINDEX_API_LATEST: u32 = 1;
124pub const EOS_ECOM_GETITEMIMAGEINFOCOUNT_API_LATEST: u32 = 1;
125pub const EOS_ECOM_COPYITEMIMAGEINFOBYINDEX_API_LATEST: u32 = 1;
126pub const EOS_ECOM_GETITEMRELEASECOUNT_API_LATEST: u32 = 1;
127pub const EOS_ECOM_COPYITEMRELEASEBYINDEX_API_LATEST: u32 = 1;
128pub const EOS_ECOM_GETTRANSACTIONCOUNT_API_LATEST: u32 = 1;
129pub const EOS_ECOM_COPYTRANSACTIONBYINDEX_API_LATEST: u32 = 1;
130pub const EOS_ECOM_COPYTRANSACTIONBYID_API_LATEST: u32 = 1;
131pub const EOS_ECOM_TRANSACTION_GETENTITLEMENTSCOUNT_API_LATEST: u32 = 1;
132pub const EOS_ECOM_TRANSACTION_COPYENTITLEMENTBYINDEX_API_LATEST: u32 = 1;
133pub const EOS_UI_EVENTID_INVALID: u32 = 0;
134pub const EOS_UI_SHOWFRIENDS_API_LATEST: u32 = 1;
135pub const EOS_UI_HIDEFRIENDS_API_LATEST: u32 = 1;
136pub const EOS_UI_GETFRIENDSVISIBLE_API_LATEST: u32 = 1;
137pub const EOS_UI_GETFRIENDSEXCLUSIVEINPUT_API_LATEST: u32 = 1;
138pub const EOS_UI_ADDNOTIFYDISPLAYSETTINGSUPDATED_API_LATEST: u32 = 1;
139pub const EOS_UI_SETTOGGLEFRIENDSKEY_API_LATEST: u32 = 1;
140pub const EOS_UI_GETTOGGLEFRIENDSKEY_API_LATEST: u32 = 1;
141pub const EOS_UI_SETTOGGLEFRIENDSBUTTON_API_LATEST: u32 = 1;
142pub const EOS_UI_GETTOGGLEFRIENDSBUTTON_API_LATEST: u32 = 1;
143pub const EOS_UI_SETDISPLAYPREFERENCE_API_LATEST: u32 = 1;
144pub const EOS_UI_ACKNOWLEDGEEVENTID_API_LATEST: u32 = 1;
145pub const EOS_UI_ACKNOWLEDGECORRELATIONID_API_LATEST: u32 = 1;
146pub const EOS_UI_REPORTINPUTSTATE_API_LATEST: u32 = 2;
147pub const EOS_UI_PREPRESENT_API_LATEST: u32 = 1;
148pub const EOS_UI_SHOWBLOCKPLAYER_API_LATEST: u32 = 1;
149pub const EOS_UI_SHOWREPORTPLAYER_API_LATEST: u32 = 1;
150pub const EOS_UI_SHOWNATIVEPROFILE_API_LATEST: u32 = 1;
151pub const EOS_UI_PAUSESOCIALOVERLAY_API_LATEST: u32 = 1;
152pub const EOS_UI_ISSOCIALOVERLAYPAUSED_API_LATEST: u32 = 1;
153pub const EOS_UI_RECT_API_LATEST: u32 = 1;
154pub const EOS_UI_ADDNOTIFYMEMORYMONITOR_API_LATEST: u32 = 1;
155pub const EOS_UI_ADDNOTIFYMEMORYMONITOROPTIONS_API_LATEST: u32 = 1;
156pub const EOS_UI_CONFIGUREONSCREENKEYBOARD_API_LATEST: u32 = 1;
157pub const EOS_UI_ADDNOTIFYONSCREENKEYBOARDREQUESTED_API_LATEST: u32 = 1;
158pub const EOS_FRIENDS_QUERYFRIENDS_API_LATEST: u32 = 1;
159pub const EOS_FRIENDS_SENDINVITE_API_LATEST: u32 = 1;
160pub const EOS_FRIENDS_ACCEPTINVITE_API_LATEST: u32 = 1;
161pub const EOS_FRIENDS_REJECTINVITE_API_LATEST: u32 = 1;
162pub const EOS_FRIENDS_GETFRIENDSCOUNT_API_LATEST: u32 = 1;
163pub const EOS_FRIENDS_GETFRIENDATINDEX_API_LATEST: u32 = 1;
164pub const EOS_FRIENDS_GETSTATUS_API_LATEST: u32 = 1;
165pub const EOS_FRIENDS_ADDNOTIFYFRIENDSUPDATE_API_LATEST: u32 = 1;
166pub const EOS_FRIENDS_GETBLOCKEDUSERSCOUNT_API_LATEST: u32 = 1;
167pub const EOS_FRIENDS_GETBLOCKEDUSERATINDEX_API_LATEST: u32 = 1;
168pub const EOS_FRIENDS_ADDNOTIFYBLOCKEDUSERSUPDATE_API_LATEST: u32 = 1;
169pub const EOS_PRESENCE_DATARECORD_API_LATEST: u32 = 1;
170pub const EOS_PRESENCE_INFO_API_LATEST: u32 = 3;
171pub const EOS_PRESENCE_QUERYPRESENCE_API_LATEST: u32 = 1;
172pub const EOS_PRESENCE_HASPRESENCE_API_LATEST: u32 = 1;
173pub const EOS_PRESENCE_COPYPRESENCE_API_LATEST: u32 = 3;
174pub const EOS_PRESENCE_CREATEPRESENCEMODIFICATION_API_LATEST: u32 = 1;
175pub const EOS_PRESENCE_SETPRESENCE_API_LATEST: u32 = 1;
176pub const EOS_PRESENCE_ADDNOTIFYONPRESENCECHANGED_API_LATEST: u32 = 1;
177pub const EOS_PRESENCE_ADDNOTIFYJOINGAMEACCEPTED_API_LATEST: u32 = 2;
178pub const EOS_PRESENCE_GETJOININFO_API_LATEST: u32 = 1;
179pub const EOS_PRESENCEMODIFICATION_SETJOININFO_API_LATEST: u32 = 1;
180pub const EOS_PRESENCE_DATA_MAX_KEYS: u32 = 32;
181pub const EOS_PRESENCE_DATA_MAX_KEY_LENGTH: u32 = 64;
182pub const EOS_PRESENCE_DATA_MAX_VALUE_LENGTH: u32 = 255;
183pub const EOS_PRESENCE_RICH_TEXT_MAX_VALUE_LENGTH: u32 = 255;
184pub const EOS_PRESENCE_KEY_PLATFORM_PRESENCE: &[u8; 21] = b"EOS_PlatformPresence\0";
185pub const EOS_PRESENCEMODIFICATION_SETSTATUS_API_LATEST: u32 = 1;
186pub const EOS_PRESENCE_SETSTATUS_API_LATEST: u32 = 1;
187pub const EOS_PRESENCEMODIFICATION_SETRAWRICHTEXT_API_LATEST: u32 = 1;
188pub const EOS_PRESENCE_SETRAWRICHTEXT_API_LATEST: u32 = 1;
189pub const EOS_PRESENCEMODIFICATION_SETDATA_API_LATEST: u32 = 1;
190pub const EOS_PRESENCE_SETDATA_API_LATEST: u32 = 1;
191pub const EOS_PRESENCEMODIFICATION_DATARECORDID_API_LATEST: u32 = 1;
192pub const EOS_PRESENCEMODIFICATION_DELETEDATA_API_LATEST: u32 = 1;
193pub const EOS_PRESENCE_DELETEDATA_API_LATEST: u32 = 1;
194pub const EOS_P2P_MAX_PACKET_SIZE: u32 = 1170;
195pub const EOS_P2P_MAX_CONNECTIONS: u32 = 32;
196pub const EOS_P2P_SOCKETID_API_LATEST: u32 = 1;
197pub const EOS_P2P_SOCKETID_SOCKETNAME_SIZE: u32 = 33;
198pub const EOS_P2P_SENDPACKET_API_LATEST: u32 = 3;
199pub const EOS_P2P_GETNEXTRECEIVEDPACKETSIZE_API_LATEST: u32 = 2;
200pub const EOS_P2P_RECEIVEPACKET_API_LATEST: u32 = 2;
201pub const EOS_P2P_ADDNOTIFYPEERCONNECTIONREQUEST_API_LATEST: u32 = 1;
202pub const EOS_P2P_ADDNOTIFYPEERCONNECTIONESTABLISHED_API_LATEST: u32 = 1;
203pub const EOS_P2P_ADDNOTIFYPEERCONNECTIONINTERRUPTED_API_LATEST: u32 = 1;
204pub const EOS_P2P_ADDNOTIFYPEERCONNECTIONCLOSED_API_LATEST: u32 = 1;
205pub const EOS_P2P_ACCEPTCONNECTION_API_LATEST: u32 = 1;
206pub const EOS_P2P_CLOSECONNECTION_API_LATEST: u32 = 1;
207pub const EOS_P2P_CLOSECONNECTIONS_API_LATEST: u32 = 1;
208pub const EOS_P2P_QUERYNATTYPE_API_LATEST: u32 = 1;
209pub const EOS_P2P_GETNATTYPE_API_LATEST: u32 = 1;
210pub const EOS_P2P_SETRELAYCONTROL_API_LATEST: u32 = 1;
211pub const EOS_P2P_GETRELAYCONTROL_API_LATEST: u32 = 1;
212pub const EOS_P2P_SETPORTRANGE_API_LATEST: u32 = 1;
213pub const EOS_P2P_GETPORTRANGE_API_LATEST: u32 = 1;
214pub const EOS_P2P_MAX_QUEUE_SIZE_UNLIMITED: u32 = 0;
215pub const EOS_P2P_SETPACKETQUEUESIZE_API_LATEST: u32 = 1;
216pub const EOS_P2P_GETPACKETQUEUEINFO_API_LATEST: u32 = 1;
217pub const EOS_P2P_ADDNOTIFYINCOMINGPACKETQUEUEFULL_API_LATEST: u32 = 1;
218pub const EOS_P2P_CLEARPACKETQUEUE_API_LATEST: u32 = 1;
219pub const EOS_SESSIONMODIFICATION_MAX_SESSION_ATTRIBUTES: u32 = 64;
220pub const EOS_SESSIONMODIFICATION_MAX_SESSION_ATTRIBUTE_LENGTH: u32 = 64;
221pub const EOS_SESSIONMODIFICATION_MIN_SESSIONIDOVERRIDE_LENGTH: u32 = 16;
222pub const EOS_SESSIONMODIFICATION_MAX_SESSIONIDOVERRIDE_LENGTH: u32 = 64;
223pub const EOS_SESSIONS_CREATESESSIONMODIFICATION_API_LATEST: u32 = 5;
224pub const EOS_SESSIONS_UPDATESESSIONMODIFICATION_API_LATEST: u32 = 1;
225pub const EOS_SESSIONS_INVITEID_MAX_LENGTH: u32 = 64;
226pub const EOS_SESSIONS_SENDINVITE_API_LATEST: u32 = 1;
227pub const EOS_SESSIONS_REJECTINVITE_API_LATEST: u32 = 1;
228pub const EOS_SESSIONS_QUERYINVITES_API_LATEST: u32 = 1;
229pub const EOS_SESSIONS_GETINVITECOUNT_API_LATEST: u32 = 1;
230pub const EOS_SESSIONS_GETINVITEIDBYINDEX_API_LATEST: u32 = 1;
231pub const EOS_SESSIONS_CREATESESSIONSEARCH_API_LATEST: u32 = 1;
232pub const EOS_SESSIONS_UPDATESESSION_API_LATEST: u32 = 1;
233pub const EOS_SESSIONS_DESTROYSESSION_API_LATEST: u32 = 1;
234pub const EOS_SESSIONS_JOINSESSION_API_LATEST: u32 = 2;
235pub const EOS_SESSIONS_STARTSESSION_API_LATEST: u32 = 1;
236pub const EOS_SESSIONS_ENDSESSION_API_LATEST: u32 = 1;
237pub const EOS_SESSIONS_REGISTERPLAYERS_API_LATEST: u32 = 3;
238pub const EOS_SESSIONS_UNREGISTERPLAYERS_API_LATEST: u32 = 2;
239pub const EOS_SESSIONMODIFICATION_SETBUCKETID_API_LATEST: u32 = 1;
240pub const EOS_SESSIONMODIFICATION_SETHOSTADDRESS_API_LATEST: u32 = 1;
241pub const EOS_SESSIONMODIFICATION_SETPERMISSIONLEVEL_API_LATEST: u32 = 1;
242pub const EOS_SESSIONMODIFICATION_SETJOININPROGRESSALLOWED_API_LATEST: u32 = 1;
243pub const EOS_SESSIONS_MAXREGISTEREDPLAYERS: u32 = 1000;
244pub const EOS_SESSIONMODIFICATION_SETMAXPLAYERS_API_LATEST: u32 = 1;
245pub const EOS_SESSIONMODIFICATION_SETINVITESALLOWED_API_LATEST: u32 = 1;
246pub const EOS_SESSIONMODIFICATION_SETALLOWEDPLATFORMIDS_API_LATEST: u32 = 1;
247pub const EOS_SESSIONS_SEARCH_BUCKET_ID: &[u8; 7] = b"bucket\0";
248pub const EOS_SESSIONS_SEARCH_EMPTY_SERVERS_ONLY: &[u8; 10] = b"emptyonly\0";
249pub const EOS_SESSIONS_SEARCH_NONEMPTY_SERVERS_ONLY: &[u8; 13] = b"nonemptyonly\0";
250pub const EOS_SESSIONS_SEARCH_MINSLOTSAVAILABLE: &[u8; 18] = b"minslotsavailable\0";
251pub const EOS_SESSIONS_ATTRIBUTEDATA_API_LATEST: u32 = 1;
252pub const EOS_SESSIONS_SESSIONATTRIBUTEDATA_API_LATEST: u32 = 1;
253pub const EOS_ACTIVESESSION_COPYINFO_API_LATEST: u32 = 1;
254pub const EOS_ACTIVESESSION_GETREGISTEREDPLAYERCOUNT_API_LATEST: u32 = 1;
255pub const EOS_ACTIVESESSION_GETREGISTEREDPLAYERBYINDEX_API_LATEST: u32 = 1;
256pub const EOS_SESSIONDETAILS_ATTRIBUTE_API_LATEST: u32 = 1;
257pub const EOS_SESSIONS_SESSIONATTRIBUTE_API_LATEST: u32 = 1;
258pub const EOS_SESSIONMODIFICATION_ADDATTRIBUTE_API_LATEST: u32 = 2;
259pub const EOS_SESSIONMODIFICATION_REMOVEATTRIBUTE_API_LATEST: u32 = 1;
260pub const EOS_SESSIONS_MAX_SEARCH_RESULTS: u32 = 200;
261pub const EOS_SESSIONSEARCH_SETMAXSEARCHRESULTS_API_LATEST: u32 = 1;
262pub const EOS_SESSIONSEARCH_FIND_API_LATEST: u32 = 2;
263pub const EOS_SESSIONSEARCH_GETSEARCHRESULTCOUNT_API_LATEST: u32 = 1;
264pub const EOS_SESSIONSEARCH_COPYSEARCHRESULTBYINDEX_API_LATEST: u32 = 1;
265pub const EOS_SESSIONSEARCH_SETSESSIONID_API_LATEST: u32 = 1;
266pub const EOS_SESSIONSEARCH_SETTARGETUSERID_API_LATEST: u32 = 1;
267pub const EOS_SESSIONSEARCH_SETPARAMETER_API_LATEST: u32 = 1;
268pub const EOS_SESSIONSEARCH_REMOVEPARAMETER_API_LATEST: u32 = 1;
269pub const EOS_SESSIONDETAILS_SETTINGS_API_LATEST: u32 = 4;
270pub const EOS_SESSIONDETAILS_INFO_API_LATEST: u32 = 2;
271pub const EOS_SESSIONDETAILS_COPYINFO_API_LATEST: u32 = 1;
272pub const EOS_SESSIONDETAILS_GETSESSIONATTRIBUTECOUNT_API_LATEST: u32 = 1;
273pub const EOS_SESSIONDETAILS_COPYSESSIONATTRIBUTEBYINDEX_API_LATEST: u32 = 1;
274pub const EOS_SESSIONDETAILS_COPYSESSIONATTRIBUTEBYKEY_API_LATEST: u32 = 1;
275pub const EOS_ACTIVESESSION_INFO_API_LATEST: u32 = 1;
276pub const EOS_SESSIONS_COPYACTIVESESSIONHANDLE_API_LATEST: u32 = 1;
277pub const EOS_SESSIONS_ADDNOTIFYSESSIONINVITERECEIVED_API_LATEST: u32 = 1;
278pub const EOS_SESSIONS_ADDNOTIFYSESSIONINVITEACCEPTED_API_LATEST: u32 = 1;
279pub const EOS_SESSIONS_ADDNOTIFYSESSIONINVITEREJECTED_API_LATEST: u32 = 1;
280pub const EOS_SESSIONS_ADDNOTIFYJOINSESSIONACCEPTED_API_LATEST: u32 = 1;
281pub const EOS_SESSIONS_COPYSESSIONHANDLEBYINVITEID_API_LATEST: u32 = 1;
282pub const EOS_SESSIONS_COPYSESSIONHANDLEBYUIEVENTID_API_LATEST: u32 = 1;
283pub const EOS_SESSIONS_COPYSESSIONHANDLEFORPRESENCE_API_LATEST: u32 = 1;
284pub const EOS_SESSIONS_ISUSERINSESSION_API_LATEST: u32 = 1;
285pub const EOS_SESSIONS_DUMPSESSIONSTATE_API_LATEST: u32 = 1;
286pub const EOS_SESSIONS_ADDNOTIFYLEAVESESSIONREQUESTED_API_LATEST: u32 = 1;
287pub const EOS_SESSIONS_ADDNOTIFYSENDSESSIONNATIVEINVITEREQUESTED_API_LATEST: u32 = 1;
288pub const EOS_LOBBY_MAX_LOBBIES: u32 = 16;
289pub const EOS_LOBBY_MAX_LOBBY_MEMBERS: u32 = 64;
290pub const EOS_LOBBY_MAX_SEARCH_RESULTS: u32 = 200;
291pub const EOS_LOBBY_MIN_LOBBYIDOVERRIDE_LENGTH: u32 = 4;
292pub const EOS_LOBBY_MAX_LOBBYIDOVERRIDE_LENGTH: u32 = 60;
293pub const EOS_LOBBYMODIFICATION_MAX_ATTRIBUTES: u32 = 64;
294pub const EOS_LOBBYMODIFICATION_MAX_ATTRIBUTE_LENGTH: u32 = 64;
295pub const EOS_LOBBYDETAILS_INFO_API_LATEST: u32 = 3;
296pub const EOS_LOBBY_LOCALRTCOPTIONS_API_LATEST: u32 = 2;
297pub const EOS_LOBBY_CREATELOBBY_API_LATEST: u32 = 10;
298pub const EOS_LOBBY_DESTROYLOBBY_API_LATEST: u32 = 1;
299pub const EOS_LOBBY_JOINLOBBY_API_LATEST: u32 = 5;
300pub const EOS_LOBBY_JOINLOBBYBYID_API_LATEST: u32 = 3;
301pub const EOS_LOBBY_LEAVELOBBY_API_LATEST: u32 = 1;
302pub const EOS_LOBBY_UPDATELOBBYMODIFICATION_API_LATEST: u32 = 1;
303pub const EOS_LOBBY_UPDATELOBBY_API_LATEST: u32 = 1;
304pub const EOS_LOBBY_JOINRTCROOM_API_LATEST: u32 = 1;
305pub const EOS_LOBBY_LEAVERTCROOM_API_LATEST: u32 = 1;
306pub const EOS_LOBBY_PROMOTEMEMBER_API_LATEST: u32 = 1;
307pub const EOS_LOBBY_KICKMEMBER_API_LATEST: u32 = 1;
308pub const EOS_LOBBY_HARDMUTEMEMBER_API_LATEST: u32 = 1;
309pub const EOS_LOBBY_ADDNOTIFYLOBBYUPDATERECEIVED_API_LATEST: u32 = 1;
310pub const EOS_LOBBY_ADDNOTIFYLOBBYMEMBERUPDATERECEIVED_API_LATEST: u32 = 1;
311pub const EOS_LOBBY_ADDNOTIFYLOBBYMEMBERSTATUSRECEIVED_API_LATEST: u32 = 1;
312pub const EOS_LOBBY_INVITEID_MAX_LENGTH: u32 = 64;
313pub const EOS_LOBBY_ADDNOTIFYLOBBYINVITERECEIVED_API_LATEST: u32 = 1;
314pub const EOS_LOBBY_ADDNOTIFYLOBBYINVITEACCEPTED_API_LATEST: u32 = 1;
315pub const EOS_LOBBY_ADDNOTIFYJOINLOBBYACCEPTED_API_LATEST: u32 = 1;
316pub const EOS_LOBBY_ADDNOTIFYLOBBYINVITEREJECTED_API_LATEST: u32 = 1;
317pub const EOS_LOBBY_ADDNOTIFYSENDLOBBYNATIVEINVITEREQUESTED_API_LATEST: u32 = 1;
318pub const EOS_LOBBY_COPYLOBBYDETAILSHANDLEBYINVITEID_API_LATEST: u32 = 1;
319pub const EOS_LOBBY_COPYLOBBYDETAILSHANDLEBYUIEVENTID_API_LATEST: u32 = 1;
320pub const EOS_LOBBY_CREATELOBBYSEARCH_API_LATEST: u32 = 1;
321pub const EOS_LOBBY_SENDINVITE_API_LATEST: u32 = 1;
322pub const EOS_LOBBY_REJECTINVITE_API_LATEST: u32 = 1;
323pub const EOS_LOBBY_QUERYINVITES_API_LATEST: u32 = 1;
324pub const EOS_LOBBY_GETINVITECOUNT_API_LATEST: u32 = 1;
325pub const EOS_LOBBY_GETINVITEIDBYINDEX_API_LATEST: u32 = 1;
326pub const EOS_LOBBY_COPYLOBBYDETAILSHANDLE_API_LATEST: u32 = 1;
327pub const EOS_LOBBY_GETRTCROOMNAME_API_LATEST: u32 = 1;
328pub const EOS_LOBBY_ISRTCROOMCONNECTED_API_LATEST: u32 = 1;
329pub const EOS_LOBBY_ADDNOTIFYRTCROOMCONNECTIONCHANGED_API_LATEST: u32 = 2;
330pub const EOS_LOBBY_SEARCH_BUCKET_ID: &[u8; 7] = b"bucket\0";
331pub const EOS_LOBBY_SEARCH_MINCURRENTMEMBERS: &[u8; 18] = b"mincurrentmembers\0";
332pub const EOS_LOBBY_SEARCH_MINSLOTSAVAILABLE: &[u8; 18] = b"minslotsavailable\0";
333pub const EOS_LOBBY_ATTRIBUTEDATA_API_LATEST: u32 = 1;
334pub const EOS_LOBBY_ATTRIBUTE_API_LATEST: u32 = 1;
335pub const EOS_LOBBY_GETCONNECTSTRING_API_LATEST: u32 = 1;
336pub const EOS_LOBBY_GETCONNECTSTRING_BUFFER_SIZE: u32 = 256;
337pub const EOS_LOBBY_PARSECONNECTSTRING_API_LATEST: u32 = 1;
338pub const EOS_LOBBY_PARSECONNECTSTRING_BUFFER_SIZE: u32 = 256;
339pub const EOS_LOBBYMODIFICATION_SETBUCKETID_API_LATEST: u32 = 1;
340pub const EOS_LOBBYMODIFICATION_SETPERMISSIONLEVEL_API_LATEST: u32 = 1;
341pub const EOS_LOBBYMODIFICATION_SETMAXMEMBERS_API_LATEST: u32 = 1;
342pub const EOS_LOBBYMODIFICATION_SETINVITESALLOWED_API_LATEST: u32 = 1;
343pub const EOS_LOBBYMODIFICATION_ADDATTRIBUTE_API_LATEST: u32 = 2;
344pub const EOS_LOBBYMODIFICATION_REMOVEATTRIBUTE_API_LATEST: u32 = 1;
345pub const EOS_LOBBYMODIFICATION_ADDMEMBERATTRIBUTE_API_LATEST: u32 = 2;
346pub const EOS_LOBBYMODIFICATION_REMOVEMEMBERATTRIBUTE_API_LATEST: u32 = 1;
347pub const EOS_LOBBYMODIFICATION_SETALLOWEDPLATFORMIDS_API_LATEST: u32 = 1;
348pub const EOS_LOBBYDETAILS_GETLOBBYOWNER_API_LATEST: u32 = 1;
349pub const EOS_LOBBYDETAILS_COPYINFO_API_LATEST: u32 = 1;
350pub const EOS_LOBBYDETAILS_GETATTRIBUTECOUNT_API_LATEST: u32 = 1;
351pub const EOS_LOBBYDETAILS_COPYATTRIBUTEBYINDEX_API_LATEST: u32 = 1;
352pub const EOS_LOBBYDETAILS_COPYATTRIBUTEBYKEY_API_LATEST: u32 = 1;
353pub const EOS_LOBBYDETAILS_GETMEMBERATTRIBUTECOUNT_API_LATEST: u32 = 1;
354pub const EOS_LOBBYDETAILS_COPYMEMBERATTRIBUTEBYINDEX_API_LATEST: u32 = 1;
355pub const EOS_LOBBYDETAILS_COPYMEMBERATTRIBUTEBYKEY_API_LATEST: u32 = 1;
356pub const EOS_LOBBYDETAILS_GETMEMBERCOUNT_API_LATEST: u32 = 1;
357pub const EOS_LOBBYDETAILS_GETMEMBERBYINDEX_API_LATEST: u32 = 1;
358pub const EOS_LOBBYSEARCH_FIND_API_LATEST: u32 = 1;
359pub const EOS_LOBBYSEARCH_SETLOBBYID_API_LATEST: u32 = 1;
360pub const EOS_LOBBYSEARCH_SETTARGETUSERID_API_LATEST: u32 = 1;
361pub const EOS_LOBBYSEARCH_SETPARAMETER_API_LATEST: u32 = 1;
362pub const EOS_LOBBYSEARCH_REMOVEPARAMETER_API_LATEST: u32 = 1;
363pub const EOS_LOBBYSEARCH_SETMAXRESULTS_API_LATEST: u32 = 1;
364pub const EOS_LOBBYSEARCH_GETSEARCHRESULTCOUNT_API_LATEST: u32 = 1;
365pub const EOS_LOBBYSEARCH_COPYSEARCHRESULTBYINDEX_API_LATEST: u32 = 1;
366pub const EOS_LOBBYDETAILS_COPYMEMBERINFO_API_LATEST: u32 = 1;
367pub const EOS_LOBBYDETAILS_MEMBERINFO_API_LATEST: u32 = 1;
368pub const EOS_LOBBY_ADDNOTIFYLEAVELOBBYREQUESTED_API_LATEST: u32 = 1;
369pub const EOS_USERINFO_QUERYUSERINFO_API_LATEST: u32 = 1;
370pub const EOS_USERINFO_QUERYUSERINFOBYDISPLAYNAME_API_LATEST: u32 = 1;
371pub const EOS_USERINFO_QUERYUSERINFOBYEXTERNALACCOUNT_API_LATEST: u32 = 1;
372pub const EOS_USERINFO_MAX_DISPLAYNAME_CHARACTERS: u32 = 16;
373pub const EOS_USERINFO_MAX_DISPLAYNAME_UTF8_LENGTH: u32 = 64;
374pub const EOS_USERINFO_COPYUSERINFO_API_LATEST: u32 = 3;
375pub const EOS_USERINFO_EXTERNALUSERINFO_API_LATEST: u32 = 2;
376pub const EOS_USERINFO_GETEXTERNALUSERINFOCOUNT_API_LATEST: u32 = 1;
377pub const EOS_USERINFO_COPYEXTERNALUSERINFOBYINDEX_API_LATEST: u32 = 1;
378pub const EOS_USERINFO_COPYEXTERNALUSERINFOBYACCOUNTTYPE_API_LATEST: u32 = 1;
379pub const EOS_USERINFO_COPYEXTERNALUSERINFOBYACCOUNTID_API_LATEST: u32 = 1;
380pub const EOS_USERINFO_BESTDISPLAYNAME_API_LATEST: u32 = 1;
381pub const EOS_USERINFO_COPYBESTDISPLAYNAME_API_LATEST: u32 = 1;
382pub const EOS_USERINFO_COPYBESTDISPLAYNAMEWITHPLATFORM_API_LATEST: u32 = 1;
383pub const EOS_USERINFO_GETLOCALPLATFORMTYPE_API_LATEST: u32 = 1;
384pub const EOS_PLAYERDATASTORAGE_FILENAME_MAX_LENGTH_BYTES: u32 = 64;
385pub const EOS_PLAYERDATASTORAGE_TIME_UNDEFINED: i32 = -1;
386pub const EOS_PLAYERDATASTORAGE_FILEMETADATA_API_LATEST: u32 = 3;
387pub const EOS_PLAYERDATASTORAGE_QUERYFILE_API_LATEST: u32 = 1;
388pub const EOS_PLAYERDATASTORAGE_QUERYFILEOPTIONS_API_LATEST: u32 = 1;
389pub const EOS_PLAYERDATASTORAGE_QUERYFILELIST_API_LATEST: u32 = 2;
390pub const EOS_PLAYERDATASTORAGE_QUERYFILELISTOPTIONS_API_LATEST: u32 = 2;
391pub const EOS_PLAYERDATASTORAGE_GETFILEMETADATACOUNT_API_LATEST: u32 = 1;
392pub const EOS_PLAYERDATASTORAGE_GETFILEMETADATACOUNTOPTIONS_API_LATEST: u32 = 1;
393pub const EOS_PLAYERDATASTORAGE_COPYFILEMETADATAATINDEX_API_LATEST: u32 = 1;
394pub const EOS_PLAYERDATASTORAGE_COPYFILEMETADATAATINDEXOPTIONS_API_LATEST: u32 = 1;
395pub const EOS_PLAYERDATASTORAGE_COPYFILEMETADATABYFILENAME_API_LATEST: u32 = 1;
396pub const EOS_PLAYERDATASTORAGE_COPYFILEMETADATABYFILENAMEOPTIONS_API_LATEST: u32 = 1;
397pub const EOS_PLAYERDATASTORAGE_DUPLICATEFILE_API_LATEST: u32 = 1;
398pub const EOS_PLAYERDATASTORAGE_DUPLICATEFILEOPTIONS_API_LATEST: u32 = 1;
399pub const EOS_PLAYERDATASTORAGE_DELETEFILE_API_LATEST: u32 = 1;
400pub const EOS_PLAYERDATASTORAGE_DELETEFILEOPTIONS_API_LATEST: u32 = 1;
401pub const EOS_PLAYERDATASTORAGE_READFILE_API_LATEST: u32 = 2;
402pub const EOS_PLAYERDATASTORAGE_READFILEOPTIONS_API_LATEST: u32 = 2;
403pub const EOS_PLAYERDATASTORAGE_WRITEFILE_API_LATEST: u32 = 2;
404pub const EOS_PLAYERDATASTORAGE_WRITEFILEOPTIONS_API_LATEST: u32 = 2;
405pub const EOS_PLAYERDATASTORAGE_DELETECACHE_API_LATEST: u32 = 1;
406pub const EOS_PLAYERDATASTORAGE_DELETECACHEOPTIONS_API_LATEST: u32 = 1;
407pub const EOS_TITLESTORAGE_FILENAME_MAX_LENGTH_BYTES: u32 = 64;
408pub const EOS_TITLESTORAGE_FILEMETADATA_API_LATEST: u32 = 2;
409pub const EOS_TITLESTORAGE_QUERYFILE_API_LATEST: u32 = 1;
410pub const EOS_TITLESTORAGE_QUERYFILEOPTIONS_API_LATEST: u32 = 1;
411pub const EOS_TITLESTORAGE_QUERYFILELIST_API_LATEST: u32 = 1;
412pub const EOS_TITLESTORAGE_QUERYFILELISTOPTIONS_API_LATEST: u32 = 1;
413pub const EOS_TITLESTORAGE_GETFILEMETADATACOUNT_API_LATEST: u32 = 1;
414pub const EOS_TITLESTORAGE_GETFILEMETADATACOUNTOPTIONS_API_LATEST: u32 = 1;
415pub const EOS_TITLESTORAGE_COPYFILEMETADATAATINDEX_API_LATEST: u32 = 1;
416pub const EOS_TITLESTORAGE_COPYFILEMETADATAATINDEXOPTIONS_API_LATEST: u32 = 1;
417pub const EOS_TITLESTORAGE_COPYFILEMETADATABYFILENAME_API_LATEST: u32 = 1;
418pub const EOS_TITLESTORAGE_COPYFILEMETADATABYFILENAMEOPTIONS_API_LATEST: u32 = 1;
419pub const EOS_TITLESTORAGE_READFILE_API_LATEST: u32 = 2;
420pub const EOS_TITLESTORAGE_READFILEOPTIONS_API_LATEST: u32 = 2;
421pub const EOS_TITLESTORAGE_DELETECACHE_API_LATEST: u32 = 1;
422pub const EOS_TITLESTORAGE_DELETECACHEOPTIONS_API_LATEST: u32 = 1;
423pub const EOS_CONNECT_EXTERNAL_ACCOUNT_ID_MAX_LENGTH: u32 = 256;
424pub const EOS_CONNECT_CREDENTIALS_API_LATEST: u32 = 1;
425pub const EOS_CONNECT_USERLOGININFO_DISPLAYNAME_MAX_LENGTH: u32 = 32;
426pub const EOS_CONNECT_USERLOGININFO_API_LATEST: u32 = 2;
427pub const EOS_CONNECT_LOGIN_API_LATEST: u32 = 2;
428pub const EOS_CONNECT_LOGOUT_API_LATEST: u32 = 1;
429pub const EOS_CONNECT_CREATEUSER_API_LATEST: u32 = 1;
430pub const EOS_CONNECT_LINKACCOUNT_API_LATEST: u32 = 1;
431pub const EOS_CONNECT_UNLINKACCOUNT_API_LATEST: u32 = 1;
432pub const EOS_CONNECT_CREATEDEVICEID_API_LATEST: u32 = 1;
433pub const EOS_CONNECT_CREATEDEVICEID_DEVICEMODEL_MAX_LENGTH: u32 = 64;
434pub const EOS_CONNECT_DELETEDEVICEID_API_LATEST: u32 = 1;
435pub const EOS_CONNECT_TRANSFERDEVICEIDACCOUNT_API_LATEST: u32 = 1;
436pub const EOS_CONNECT_QUERYEXTERNALACCOUNTMAPPINGS_API_LATEST: u32 = 1;
437pub const EOS_CONNECT_QUERYEXTERNALACCOUNTMAPPINGS_MAX_ACCOUNT_IDS: u32 = 128;
438pub const EOS_CONNECT_GETEXTERNALACCOUNTMAPPING_API_LATEST: u32 = 1;
439pub const EOS_CONNECT_GETEXTERNALACCOUNTMAPPINGS_API_LATEST: u32 = 1;
440pub const EOS_CONNECT_QUERYPRODUCTUSERIDMAPPINGS_API_LATEST: u32 = 2;
441pub const EOS_CONNECT_GETPRODUCTUSERIDMAPPING_API_LATEST: u32 = 1;
442pub const EOS_CONNECT_GETPRODUCTUSEREXTERNALACCOUNTCOUNT_API_LATEST: u32 = 1;
443pub const EOS_CONNECT_COPYPRODUCTUSEREXTERNALACCOUNTBYINDEX_API_LATEST: u32 = 1;
444pub const EOS_CONNECT_COPYPRODUCTUSEREXTERNALACCOUNTBYACCOUNTTYPE_API_LATEST: u32 = 1;
445pub const EOS_CONNECT_COPYPRODUCTUSEREXTERNALACCOUNTBYACCOUNTID_API_LATEST: u32 = 1;
446pub const EOS_CONNECT_COPYPRODUCTUSERINFO_API_LATEST: u32 = 1;
447pub const EOS_CONNECT_TIME_UNDEFINED: i32 = -1;
448pub const EOS_CONNECT_EXTERNALACCOUNTINFO_API_LATEST: u32 = 1;
449pub const EOS_CONNECT_ADDNOTIFYAUTHEXPIRATION_API_LATEST: u32 = 1;
450pub const EOS_CONNECT_ADDNOTIFYLOGINSTATUSCHANGED_API_LATEST: u32 = 1;
451pub const EOS_CONNECT_IDTOKEN_API_LATEST: u32 = 1;
452pub const EOS_CONNECT_COPYIDTOKEN_API_LATEST: u32 = 1;
453pub const EOS_CONNECT_VERIFYIDTOKEN_API_LATEST: u32 = 1;
454pub const EOS_ACHIEVEMENTS_QUERYDEFINITIONS_API_LATEST: u32 = 3;
455pub const EOS_ACHIEVEMENTS_STATTHRESHOLDS_API_LATEST: u32 = 1;
456pub const EOS_ACHIEVEMENTS_STATTHRESHOLD_API_LATEST: u32 = 1;
457pub const EOS_ACHIEVEMENTS_PLAYERSTATINFO_API_LATEST: u32 = 1;
458pub const EOS_ACHIEVEMENTS_DEFINITIONV2_API_LATEST: u32 = 2;
459pub const EOS_ACHIEVEMENTS_GETACHIEVEMENTDEFINITIONCOUNT_API_LATEST: u32 = 1;
460pub const EOS_ACHIEVEMENTS_COPYACHIEVEMENTDEFINITIONV2BYINDEX_API_LATEST: u32 = 2;
461pub const EOS_ACHIEVEMENTS_COPYDEFINITIONV2BYINDEX_API_LATEST: u32 = 2;
462pub const EOS_ACHIEVEMENTS_COPYACHIEVEMENTDEFINITIONV2BYACHIEVEMENTID_API_LATEST: u32 = 2;
463pub const EOS_ACHIEVEMENTS_COPYDEFINITIONV2BYACHIEVEMENTID_API_LATEST: u32 = 2;
464pub const EOS_ACHIEVEMENTS_QUERYPLAYERACHIEVEMENTS_API_LATEST: u32 = 2;
465pub const EOS_ACHIEVEMENTS_ACHIEVEMENT_UNLOCKTIME_UNDEFINED: i32 = -1;
466pub const EOS_ACHIEVEMENTS_PLAYERACHIEVEMENT_API_LATEST: u32 = 2;
467pub const EOS_ACHIEVEMENTS_GETPLAYERACHIEVEMENTCOUNT_API_LATEST: u32 = 1;
468pub const EOS_ACHIEVEMENTS_COPYPLAYERACHIEVEMENTBYINDEX_API_LATEST: u32 = 2;
469pub const EOS_ACHIEVEMENTS_COPYPLAYERACHIEVEMENTBYACHIEVEMENTID_API_LATEST: u32 = 2;
470pub const EOS_ACHIEVEMENTS_UNLOCKACHIEVEMENTS_API_LATEST: u32 = 1;
471pub const EOS_ACHIEVEMENTS_ADDNOTIFYACHIEVEMENTSUNLOCKEDV2_API_LATEST: u32 = 2;
472pub const EOS_ACHIEVEMENTS_DEFINITION_API_LATEST: u32 = 1;
473pub const EOS_ACHIEVEMENTS_COPYDEFINITIONBYINDEX_API_LATEST: u32 = 1;
474pub const EOS_ACHIEVEMENTS_COPYDEFINITIONBYACHIEVEMENTID_API_LATEST: u32 = 1;
475pub const EOS_ACHIEVEMENTS_UNLOCKEDACHIEVEMENT_API_LATEST: u32 = 1;
476pub const EOS_ACHIEVEMENTS_GETUNLOCKEDACHIEVEMENTCOUNT_API_LATEST: u32 = 1;
477pub const EOS_ACHIEVEMENTS_COPYUNLOCKEDACHIEVEMENTBYINDEX_API_LATEST: u32 = 1;
478pub const EOS_ACHIEVEMENTS_COPYUNLOCKEDACHIEVEMENTBYACHIEVEMENTID_API_LATEST: u32 = 1;
479pub const EOS_ACHIEVEMENTS_ADDNOTIFYACHIEVEMENTSUNLOCKED_API_LATEST: u32 = 1;
480pub const EOS_STATS_INGESTDATA_API_LATEST: u32 = 1;
481pub const EOS_STATS_MAX_INGEST_STATS: u32 = 3000;
482pub const EOS_STATS_INGESTSTAT_API_LATEST: u32 = 3;
483pub const EOS_STATS_MAX_QUERY_STATS: u32 = 1000;
484pub const EOS_STATS_QUERYSTATS_API_LATEST: u32 = 3;
485pub const EOS_STATS_TIME_UNDEFINED: i32 = -1;
486pub const EOS_STATS_STAT_API_LATEST: u32 = 1;
487pub const EOS_STATS_GETSTATSCOUNT_API_LATEST: u32 = 1;
488pub const EOS_STATS_GETSTATCOUNT_API_LATEST: u32 = 1;
489pub const EOS_STATS_COPYSTATBYINDEX_API_LATEST: u32 = 1;
490pub const EOS_STATS_COPYSTATBYNAME_API_LATEST: u32 = 1;
491pub const EOS_LEADERBOARDS_TIME_UNDEFINED: i32 = -1;
492pub const EOS_LEADERBOARDS_QUERYLEADERBOARDDEFINITIONS_API_LATEST: u32 = 2;
493pub const EOS_LEADERBOARDS_DEFINITION_API_LATEST: u32 = 1;
494pub const EOS_LEADERBOARDS_GETLEADERBOARDDEFINITIONCOUNT_API_LATEST: u32 = 1;
495pub const EOS_LEADERBOARDS_COPYLEADERBOARDDEFINITIONBYINDEX_API_LATEST: u32 = 1;
496pub const EOS_LEADERBOARDS_COPYLEADERBOARDDEFINITIONBYLEADERBOARDID_API_LATEST: u32 = 1;
497pub const EOS_LEADERBOARDS_USERSCORESQUERYSTATINFO_API_LATEST: u32 = 1;
498pub const EOS_LEADERBOARDS_QUERYLEADERBOARDUSERSCORES_API_LATEST: u32 = 2;
499pub const EOS_LEADERBOARDS_LEADERBOARDUSERSCORE_API_LATEST: u32 = 1;
500pub const EOS_LEADERBOARDS_GETLEADERBOARDUSERSCORECOUNT_API_LATEST: u32 = 1;
501pub const EOS_LEADERBOARDS_COPYLEADERBOARDUSERSCOREBYINDEX_API_LATEST: u32 = 1;
502pub const EOS_LEADERBOARDS_COPYLEADERBOARDUSERSCOREBYUSERID_API_LATEST: u32 = 1;
503pub const EOS_LEADERBOARDS_QUERYLEADERBOARDRANKS_API_LATEST: u32 = 2;
504pub const EOS_LEADERBOARDS_LEADERBOARDRECORD_API_LATEST: u32 = 2;
505pub const EOS_LEADERBOARDS_GETLEADERBOARDRECORDCOUNT_API_LATEST: u32 = 1;
506pub const EOS_LEADERBOARDS_COPYLEADERBOARDRECORDBYINDEX_API_LATEST: u32 = 2;
507pub const EOS_LEADERBOARDS_COPYLEADERBOARDRECORDBYUSERID_API_LATEST: u32 = 2;
508pub const EOS_MOD_IDENTIFIER_API_LATEST: u32 = 1;
509pub const EOS_MODS_INSTALLMOD_API_LATEST: u32 = 1;
510pub const EOS_MODS_UNINSTALLMOD_API_LATEST: u32 = 1;
511pub const EOS_MODS_ENUMERATEMODS_API_LATEST: u32 = 1;
512pub const EOS_MODS_COPYMODINFO_API_LATEST: u32 = 1;
513pub const EOS_MODS_MODINFO_API_LATEST: u32 = 1;
514pub const EOS_MODS_UPDATEMOD_API_LATEST: u32 = 1;
515pub const EOS_ANTICHEATCOMMON_SETCLIENTDETAILS_API_LATEST: u32 = 1;
516pub const EOS_ANTICHEATCOMMON_SETGAMESESSIONID_API_LATEST: u32 = 1;
517pub const EOS_ANTICHEATCOMMON_REGISTEREVENT_CUSTOMEVENTBASE: u32 = 268435456;
518pub const EOS_ANTICHEATCOMMON_REGISTEREVENT_MAX_PARAMDEFSCOUNT: u32 = 12;
519pub const EOS_ANTICHEATCOMMON_REGISTEREVENT_API_LATEST: u32 = 1;
520pub const EOS_ANTICHEATCOMMON_LOGEVENT_STRING_MAX_LENGTH: u32 = 39;
521pub const EOS_ANTICHEATCOMMON_LOGEVENT_API_LATEST: u32 = 1;
522pub const EOS_ANTICHEATCOMMON_LOGGAMEROUNDSTART_API_LATEST: u32 = 2;
523pub const EOS_ANTICHEATCOMMON_LOGGAMEROUNDEND_API_LATEST: u32 = 1;
524pub const EOS_ANTICHEATCOMMON_LOGPLAYERSPAWN_API_LATEST: u32 = 1;
525pub const EOS_ANTICHEATCOMMON_LOGPLAYERDESPAWN_API_LATEST: u32 = 1;
526pub const EOS_ANTICHEATCOMMON_LOGPLAYERREVIVE_API_LATEST: u32 = 1;
527pub const EOS_ANTICHEATCOMMON_LOGPLAYERTICK_API_LATEST: u32 = 3;
528pub const EOS_ANTICHEATCOMMON_LOGPLAYERUSEWEAPON_WEAPONNAME_MAX_LENGTH: u32 = 32;
529pub const EOS_ANTICHEATCOMMON_LOGPLAYERUSEWEAPON_API_LATEST: u32 = 2;
530pub const EOS_ANTICHEATCOMMON_LOGPLAYERUSEABILITY_API_LATEST: u32 = 1;
531pub const EOS_ANTICHEATCOMMON_LOGPLAYERTAKEDAMAGE_API_LATEST: u32 = 4;
532pub const EOS_ANTICHEATCLIENT_ONMESSAGETOSERVERCALLBACK_MAX_MESSAGE_SIZE: u32 = 512;
533pub const EOS_ANTICHEATCLIENT_ONMESSAGETOPEERCALLBACK_MAX_MESSAGE_SIZE: u32 = 512;
534pub const EOS_ANTICHEATCLIENT_ADDNOTIFYMESSAGETOSERVER_API_LATEST: u32 = 1;
535pub const EOS_ANTICHEATCLIENT_ADDNOTIFYMESSAGETOPEER_API_LATEST: u32 = 1;
536pub const EOS_ANTICHEATCLIENT_ADDNOTIFYPEERACTIONREQUIRED_API_LATEST: u32 = 1;
537pub const EOS_ANTICHEATCLIENT_ADDNOTIFYPEERAUTHSTATUSCHANGED_API_LATEST: u32 = 1;
538pub const EOS_ANTICHEATCLIENT_ADDNOTIFYCLIENTINTEGRITYVIOLATED_API_LATEST: u32 = 1;
539pub const EOS_ANTICHEATCLIENT_BEGINSESSION_API_LATEST: u32 = 3;
540pub const EOS_ANTICHEATCLIENT_ENDSESSION_API_LATEST: u32 = 1;
541pub const EOS_ANTICHEATCLIENT_RESERVED01_API_LATEST: u32 = 1;
542pub const EOS_ANTICHEATCLIENT_RESERVED02_API_LATEST: u32 = 1;
543pub const EOS_ANTICHEATCLIENT_GETMODULEBUILDID_API_LATEST: u32 = 1;
544pub const EOS_ANTICHEATCLIENT_ADDEXTERNALINTEGRITYCATALOG_API_LATEST: u32 = 1;
545pub const EOS_ANTICHEATCLIENT_RECEIVEMESSAGEFROMSERVER_API_LATEST: u32 = 1;
546pub const EOS_ANTICHEATCLIENT_GETPROTECTMESSAGEOUTPUTLENGTH_API_LATEST: u32 = 1;
547pub const EOS_ANTICHEATCLIENT_PROTECTMESSAGE_API_LATEST: u32 = 1;
548pub const EOS_ANTICHEATCLIENT_UNPROTECTMESSAGE_API_LATEST: u32 = 1;
549pub const EOS_ANTICHEATCLIENT_REGISTERPEER_MIN_AUTHENTICATIONTIMEOUT: u32 = 40;
550pub const EOS_ANTICHEATCLIENT_REGISTERPEER_MAX_AUTHENTICATIONTIMEOUT: u32 = 120;
551pub const EOS_ANTICHEATCLIENT_REGISTERPEER_API_LATEST: u32 = 3;
552pub const EOS_ANTICHEATCLIENT_UNREGISTERPEER_API_LATEST: u32 = 1;
553pub const EOS_ANTICHEATCLIENT_RECEIVEMESSAGEFROMPEER_API_LATEST: u32 = 1;
554pub const EOS_ANTICHEATCLIENT_POLLSTATUS_API_LATEST: u32 = 1;
555pub const EOS_ANTICHEATSERVER_ONMESSAGETOCLIENTCALLBACK_MAX_MESSAGE_SIZE: u32 = 512;
556pub const EOS_ANTICHEATSERVER_ADDNOTIFYMESSAGETOCLIENT_API_LATEST: u32 = 1;
557pub const EOS_ANTICHEATSERVER_ADDNOTIFYCLIENTACTIONREQUIRED_API_LATEST: u32 = 1;
558pub const EOS_ANTICHEATSERVER_ADDNOTIFYCLIENTAUTHSTATUSCHANGED_API_LATEST: u32 = 1;
559pub const EOS_ANTICHEATSERVER_BEGINSESSION_MIN_REGISTERTIMEOUT: u32 = 10;
560pub const EOS_ANTICHEATSERVER_BEGINSESSION_MAX_REGISTERTIMEOUT: u32 = 120;
561pub const EOS_ANTICHEATSERVER_BEGINSESSION_API_LATEST: u32 = 3;
562pub const EOS_ANTICHEATSERVER_ENDSESSION_API_LATEST: u32 = 1;
563pub const EOS_ANTICHEATSERVER_REGISTERCLIENT_API_LATEST: u32 = 3;
564pub const EOS_ANTICHEATSERVER_UNREGISTERCLIENT_API_LATEST: u32 = 1;
565pub const EOS_ANTICHEATSERVER_RECEIVEMESSAGEFROMCLIENT_API_LATEST: u32 = 1;
566pub const EOS_ANTICHEATSERVER_SETCLIENTNETWORKSTATE_API_LATEST: u32 = 1;
567pub const EOS_ANTICHEATSERVER_GETPROTECTMESSAGEOUTPUTLENGTH_API_LATEST: u32 = 1;
568pub const EOS_ANTICHEATSERVER_PROTECTMESSAGE_API_LATEST: u32 = 1;
569pub const EOS_ANTICHEATSERVER_UNPROTECTMESSAGE_API_LATEST: u32 = 1;
570pub const EOS_REPORTS_REPORTMESSAGE_MAX_LENGTH: u32 = 512;
571pub const EOS_REPORTS_REPORTCONTEXT_MAX_LENGTH: u32 = 4096;
572pub const EOS_REPORTS_SENDPLAYERBEHAVIORREPORT_API_LATEST: u32 = 2;
573pub const EOS_SANCTIONS_PLAYERSANCTION_API_LATEST: u32 = 2;
574pub const EOS_SANCTIONS_QUERYACTIVEPLAYERSANCTIONS_API_LATEST: u32 = 2;
575pub const EOS_SANCTIONS_GETPLAYERSANCTIONCOUNT_API_LATEST: u32 = 1;
576pub const EOS_SANCTIONS_COPYPLAYERSANCTIONBYINDEX_API_LATEST: u32 = 1;
577pub const EOS_SANCTIONS_CREATEPLAYERSANCTIONAPPEAL_API_LATEST: u32 = 1;
578pub const EOS_KWS_MAX_PERMISSIONS: u32 = 16;
579pub const EOS_KWS_MAX_PERMISSION_LENGTH: u32 = 32;
580pub const EOS_KWS_PERMISSIONSTATUS_API_LATEST: u32 = 1;
581pub const EOS_KWS_QUERYAGEGATE_API_LATEST: u32 = 1;
582pub const EOS_KWS_CREATEUSER_API_LATEST: u32 = 1;
583pub const EOS_KWS_QUERYPERMISSIONS_API_LATEST: u32 = 1;
584pub const EOS_KWS_UPDATEPARENTEMAIL_API_LATEST: u32 = 1;
585pub const EOS_KWS_REQUESTPERMISSIONS_API_LATEST: u32 = 1;
586pub const EOS_KWS_GETPERMISSIONSCOUNT_API_LATEST: u32 = 1;
587pub const EOS_KWS_COPYPERMISSIONBYINDEX_API_LATEST: u32 = 1;
588pub const EOS_KWS_GETPERMISSIONBYKEY_API_LATEST: u32 = 1;
589pub const EOS_KWS_ADDNOTIFYPERMISSIONSUPDATERECEIVED_API_LATEST: u32 = 1;
590pub const EOS_RTC_JOINROOM_API_LATEST: u32 = 1;
591pub const EOS_RTC_JOINROOMFLAGS_ENABLE_ECHO: u32 = 1;
592pub const EOS_RTC_JOINROOMFLAGS_ENABLE_DATACHANNEL: u32 = 4;
593pub const EOS_RTC_JOINROOMFLAGS_RESERVED_VOICE_FEATURE: u32 = 8;
594pub const EOS_RTC_OPTION_KEY_MAXCHARCOUNT: u32 = 256;
595pub const EOS_RTC_OPTION_VALUE_MAXCHARCOUNT: u32 = 256;
596pub const EOS_RTC_OPTION_API_LATEST: u32 = 1;
597pub const EOS_RTC_LEAVEROOM_API_LATEST: u32 = 1;
598pub const EOS_RTC_BLOCKPARTICIPANT_API_LATEST: u32 = 1;
599pub const EOS_RTC_ADDNOTIFYDISCONNECTED_API_LATEST: u32 = 1;
600pub const EOS_RTC_PARTICIPANTMETADATA_KEY_MAXCHARCOUNT: u32 = 256;
601pub const EOS_RTC_PARTICIPANTMETADATA_VALUE_MAXCHARCOUNT: u32 = 256;
602pub const EOS_RTC_PARTICIPANTMETADATA_API_LATEST: u32 = 1;
603pub const EOS_RTC_ADDNOTIFYPARTICIPANTSTATUSCHANGED_API_LATEST: u32 = 1;
604pub const EOS_RTC_ADDNOTIFYROOMBEFOREJOIN_API_LATEST: u32 = 1;
605pub const EOS_RTC_SETSETTING_API_LATEST: u32 = 1;
606pub const EOS_RTC_SETROOMSETTING_API_LATEST: u32 = 1;
607pub const EOS_RTC_ADDNOTIFYROOMSTATISTICSUPDATED_API_LATEST: u32 = 1;
608pub const EOS_RTCADMIN_QUERYJOINROOMTOKEN_API_LATEST: u32 = 2;
609pub const EOS_RTCADMIN_USERTOKEN_API_LATEST: u32 = 1;
610pub const EOS_RTCADMIN_COPYUSERTOKENBYINDEX_API_LATEST: u32 = 2;
611pub const EOS_RTCADMIN_COPYUSERTOKENBYUSERID_API_LATEST: u32 = 2;
612pub const EOS_RTCADMIN_KICK_API_LATEST: u32 = 1;
613pub const EOS_RTCADMIN_SETPARTICIPANTHARDMUTE_API_LATEST: u32 = 1;
614pub const EOS_INVALID_PROGRESSIONSNAPSHOTID: u32 = 0;
615pub const EOS_PROGRESSIONSNAPSHOT_BEGINSNAPSHOT_API_LATEST: u32 = 1;
616pub const EOS_PROGRESSIONSNAPSHOT_ADDPROGRESSION_API_LATEST: u32 = 1;
617pub const EOS_PROGRESSIONSNAPSHOT_SUBMITSNAPSHOT_API_LATEST: u32 = 1;
618pub const EOS_PROGRESSIONSNAPSHOT_ENDSNAPSHOT_API_LATEST: u32 = 1;
619pub const EOS_PROGRESSIONSNAPSHOT_DELETESNAPSHOT_API_LATEST: u32 = 1;
620pub const EOS_CUSTOMINVITES_MAX_PAYLOAD_LENGTH: u32 = 500;
621pub const EOS_CUSTOMINVITES_SETCUSTOMINVITE_API_LATEST: u32 = 1;
622pub const EOS_CUSTOMINVITES_SENDCUSTOMINVITE_API_LATEST: u32 = 1;
623pub const EOS_CUSTOMINVITES_ADDNOTIFYCUSTOMINVITERECEIVED_API_LATEST: u32 = 1;
624pub const EOS_CUSTOMINVITES_ADDNOTIFYCUSTOMINVITEACCEPTED_API_LATEST: u32 = 1;
625pub const EOS_CUSTOMINVITES_ADDNOTIFYCUSTOMINVITEREJECTED_API_LATEST: u32 = 1;
626pub const EOS_CUSTOMINVITES_FINALIZEINVITE_API_LATEST: u32 = 1;
627pub const EOS_CUSTOMINVITES_SENDREQUESTTOJOIN_API_LATEST: u32 = 1;
628pub const EOS_CUSTOMINVITES_ADDNOTIFYREQUESTTOJOINRESPONSERECEIVED_API_LATEST: u32 = 1;
629pub const EOS_CUSTOMINVITES_ADDNOTIFYREQUESTTOJOINRECEIVED_API_LATEST: u32 = 1;
630pub const EOS_CUSTOMINVITES_ACCEPTREQUESTTOJOIN_API_LATEST: u32 = 1;
631pub const EOS_CUSTOMINVITES_REJECTREQUESTTOJOIN_API_LATEST: u32 = 1;
632pub const EOS_CUSTOMINVITES_ADDNOTIFYSENDCUSTOMNATIVEINVITEREQUESTED_API_LATEST: u32 = 1;
633pub const EOS_CUSTOMINVITES_ADDNOTIFYREQUESTTOJOINACCEPTED_API_LATEST: u32 = 1;
634pub const EOS_CUSTOMINVITES_ADDNOTIFYREQUESTTOJOINREJECTED_API_LATEST: u32 = 1;
635pub type EOS_Bool = i32;
636#[doc = " Successful result. no further error processing needed"]
637pub const EOS_EResult_EOS_Success: EOS_EResult = 0;
638#[doc = " Failed due to no connection"]
639pub const EOS_EResult_EOS_NoConnection: EOS_EResult = 1;
640#[doc = " Failed login due to invalid credentials"]
641pub const EOS_EResult_EOS_InvalidCredentials: EOS_EResult = 2;
642#[doc = " Failed due to invalid or missing user"]
643pub const EOS_EResult_EOS_InvalidUser: EOS_EResult = 3;
644#[doc = " Failed due to invalid or missing authentication token for user (e.g. not logged in)"]
645pub const EOS_EResult_EOS_InvalidAuth: EOS_EResult = 4;
646#[doc = " Failed due to invalid access"]
647pub const EOS_EResult_EOS_AccessDenied: EOS_EResult = 5;
648#[doc = " If the client does not possess the permission required"]
649pub const EOS_EResult_EOS_MissingPermissions: EOS_EResult = 6;
650#[doc = " If the token provided does not represent an account"]
651pub const EOS_EResult_EOS_Token_Not_Account: EOS_EResult = 7;
652#[doc = " Throttled due to too many requests"]
653pub const EOS_EResult_EOS_TooManyRequests: EOS_EResult = 8;
654#[doc = " Async request was already pending"]
655pub const EOS_EResult_EOS_AlreadyPending: EOS_EResult = 9;
656#[doc = " Invalid parameters specified for request"]
657pub const EOS_EResult_EOS_InvalidParameters: EOS_EResult = 10;
658#[doc = " Invalid request"]
659pub const EOS_EResult_EOS_InvalidRequest: EOS_EResult = 11;
660#[doc = " Failed due to unable to parse or recognize a backend response"]
661pub const EOS_EResult_EOS_UnrecognizedResponse: EOS_EResult = 12;
662#[doc = " Incompatible client for backend version"]
663pub const EOS_EResult_EOS_IncompatibleVersion: EOS_EResult = 13;
664#[doc = " Not configured correctly for use"]
665pub const EOS_EResult_EOS_NotConfigured: EOS_EResult = 14;
666#[doc = " Already configured for use."]
667pub const EOS_EResult_EOS_AlreadyConfigured: EOS_EResult = 15;
668#[doc = " Feature not available on this implementation"]
669pub const EOS_EResult_EOS_NotImplemented: EOS_EResult = 16;
670#[doc = " Operation was canceled (likely by user)"]
671pub const EOS_EResult_EOS_Canceled: EOS_EResult = 17;
672#[doc = " The requested information was not found"]
673pub const EOS_EResult_EOS_NotFound: EOS_EResult = 18;
674#[doc = " An error occurred during an asynchronous operation, and it will be retried. Callbacks receiving this result will be called again in the future."]
675pub const EOS_EResult_EOS_OperationWillRetry: EOS_EResult = 19;
676#[doc = " The request had no effect"]
677pub const EOS_EResult_EOS_NoChange: EOS_EResult = 20;
678#[doc = " The request attempted to use multiple or inconsistent API versions"]
679pub const EOS_EResult_EOS_VersionMismatch: EOS_EResult = 21;
680#[doc = " A maximum limit was exceeded on the client, different from EOS_TooManyRequests"]
681pub const EOS_EResult_EOS_LimitExceeded: EOS_EResult = 22;
682#[doc = " Feature or client ID performing the operation has been disabled."]
683pub const EOS_EResult_EOS_Disabled: EOS_EResult = 23;
684#[doc = " Duplicate entry not allowed"]
685pub const EOS_EResult_EOS_DuplicateNotAllowed: EOS_EResult = 24;
686#[doc = " Required parameters are missing. DEPRECATED: This error is no longer used."]
687pub const EOS_EResult_EOS_MissingParameters_DEPRECATED: EOS_EResult = 25;
688#[doc = " Sandbox ID is invalid"]
689pub const EOS_EResult_EOS_InvalidSandboxId: EOS_EResult = 26;
690#[doc = " Request timed out"]
691pub const EOS_EResult_EOS_TimedOut: EOS_EResult = 27;
692#[doc = " A query returned some but not all of the requested results."]
693pub const EOS_EResult_EOS_PartialResult: EOS_EResult = 28;
694#[doc = " Client is missing the whitelisted role"]
695pub const EOS_EResult_EOS_Missing_Role: EOS_EResult = 29;
696#[doc = " Client is missing the whitelisted feature"]
697pub const EOS_EResult_EOS_Missing_Feature: EOS_EResult = 30;
698#[doc = " The sandbox given to the backend is invalid"]
699pub const EOS_EResult_EOS_Invalid_Sandbox: EOS_EResult = 31;
700#[doc = " The deployment given to the backend is invalid"]
701pub const EOS_EResult_EOS_Invalid_Deployment: EOS_EResult = 32;
702#[doc = " The product ID specified to the backend is invalid"]
703pub const EOS_EResult_EOS_Invalid_Product: EOS_EResult = 33;
704#[doc = " The product user ID specified to the backend is invalid"]
705pub const EOS_EResult_EOS_Invalid_ProductUserID: EOS_EResult = 34;
706#[doc = " There was a failure with the backend service"]
707pub const EOS_EResult_EOS_ServiceFailure: EOS_EResult = 35;
708#[doc = " Cache directory is not set in platform options."]
709pub const EOS_EResult_EOS_CacheDirectoryMissing: EOS_EResult = 36;
710#[doc = " Cache directory is not accessible."]
711pub const EOS_EResult_EOS_CacheDirectoryInvalid: EOS_EResult = 37;
712#[doc = " The request failed because resource was in an invalid state"]
713pub const EOS_EResult_EOS_InvalidState: EOS_EResult = 38;
714#[doc = " Request is in progress"]
715pub const EOS_EResult_EOS_RequestInProgress: EOS_EResult = 39;
716#[doc = " Application is suspended"]
717pub const EOS_EResult_EOS_ApplicationSuspended: EOS_EResult = 40;
718#[doc = " Network is disconnected"]
719pub const EOS_EResult_EOS_NetworkDisconnected: EOS_EResult = 41;
720#[doc = " Given output buffer is insufficient to complete the operation"]
721pub const EOS_EResult_EOS_InsufficientOutputBuffer: EOS_EResult = 42;
722#[doc = " The associated feature or action is not enabled in the client policy"]
723pub const EOS_EResult_EOS_ClientPolicyMissingAction: EOS_EResult = 43;
724#[doc = " Account locked due to login failures"]
725pub const EOS_EResult_EOS_Auth_AccountLocked: EOS_EResult = 1001;
726#[doc = " Account locked by update operation."]
727pub const EOS_EResult_EOS_Auth_AccountLockedForUpdate: EOS_EResult = 1002;
728#[doc = " Refresh token used was invalid"]
729pub const EOS_EResult_EOS_Auth_InvalidRefreshToken: EOS_EResult = 1003;
730#[doc = " Invalid access token, typically when switching between backend environments"]
731pub const EOS_EResult_EOS_Auth_InvalidToken: EOS_EResult = 1004;
732#[doc = " Invalid bearer token"]
733pub const EOS_EResult_EOS_Auth_AuthenticationFailure: EOS_EResult = 1005;
734#[doc = " Invalid platform token"]
735pub const EOS_EResult_EOS_Auth_InvalidPlatformToken: EOS_EResult = 1006;
736#[doc = " Auth parameters are not associated with this account"]
737pub const EOS_EResult_EOS_Auth_WrongAccount: EOS_EResult = 1007;
738#[doc = " Auth parameters are not associated with this client"]
739pub const EOS_EResult_EOS_Auth_WrongClient: EOS_EResult = 1008;
740#[doc = " Full account is required"]
741pub const EOS_EResult_EOS_Auth_FullAccountRequired: EOS_EResult = 1009;
742#[doc = " Headless account is required"]
743pub const EOS_EResult_EOS_Auth_HeadlessAccountRequired: EOS_EResult = 1010;
744#[doc = " Password reset is required"]
745pub const EOS_EResult_EOS_Auth_PasswordResetRequired: EOS_EResult = 1011;
746#[doc = " Password was previously used and cannot be reused"]
747pub const EOS_EResult_EOS_Auth_PasswordCannotBeReused: EOS_EResult = 1012;
748#[doc = " Authorization code/exchange code has expired"]
749pub const EOS_EResult_EOS_Auth_Expired: EOS_EResult = 1013;
750#[doc = " Consent has not been given by the user"]
751pub const EOS_EResult_EOS_Auth_ScopeConsentRequired: EOS_EResult = 1014;
752#[doc = " The application has no profile on the backend"]
753pub const EOS_EResult_EOS_Auth_ApplicationNotFound: EOS_EResult = 1015;
754#[doc = " The requested consent wasn't found on the backend"]
755pub const EOS_EResult_EOS_Auth_ScopeNotFound: EOS_EResult = 1016;
756#[doc = " This account has been denied access to login"]
757pub const EOS_EResult_EOS_Auth_AccountFeatureRestricted: EOS_EResult = 1017;
758#[doc = " The overlay failed to load the Account Portal. This can range from general overlay failure, to overlay failed to connect to the web server, to overlay failed to render the web page."]
759pub const EOS_EResult_EOS_Auth_AccountPortalLoadError: EOS_EResult = 1018;
760#[doc = " An attempted login has failed due to the user needing to take corrective action on their account."]
761pub const EOS_EResult_EOS_Auth_CorrectiveActionRequired: EOS_EResult = 1019;
762#[doc = " Pin grant code initiated"]
763pub const EOS_EResult_EOS_Auth_PinGrantCode: EOS_EResult = 1020;
764#[doc = " Pin grant code attempt expired"]
765pub const EOS_EResult_EOS_Auth_PinGrantExpired: EOS_EResult = 1021;
766#[doc = " Pin grant code attempt pending"]
767pub const EOS_EResult_EOS_Auth_PinGrantPending: EOS_EResult = 1022;
768#[doc = " External auth source did not yield an account"]
769pub const EOS_EResult_EOS_Auth_ExternalAuthNotLinked: EOS_EResult = 1030;
770#[doc = " External auth access revoked"]
771pub const EOS_EResult_EOS_Auth_ExternalAuthRevoked: EOS_EResult = 1032;
772#[doc = " External auth token cannot be interpreted"]
773pub const EOS_EResult_EOS_Auth_ExternalAuthInvalid: EOS_EResult = 1033;
774#[doc = " External auth cannot be linked to his account due to restrictions"]
775pub const EOS_EResult_EOS_Auth_ExternalAuthRestricted: EOS_EResult = 1034;
776#[doc = " External auth cannot be used for login"]
777pub const EOS_EResult_EOS_Auth_ExternalAuthCannotLogin: EOS_EResult = 1035;
778#[doc = " External auth is expired"]
779pub const EOS_EResult_EOS_Auth_ExternalAuthExpired: EOS_EResult = 1036;
780#[doc = " External auth cannot be removed since it's the last possible way to login"]
781pub const EOS_EResult_EOS_Auth_ExternalAuthIsLastLoginType: EOS_EResult = 1037;
782#[doc = " Exchange code not found"]
783pub const EOS_EResult_EOS_Auth_ExchangeCodeNotFound: EOS_EResult = 1040;
784#[doc = " Originating exchange code session has expired"]
785pub const EOS_EResult_EOS_Auth_OriginatingExchangeCodeSessionExpired: EOS_EResult = 1041;
786#[doc = " The account has been disabled and cannot be used for authentication"]
787pub const EOS_EResult_EOS_Auth_AccountNotActive: EOS_EResult = 1050;
788#[doc = " MFA challenge required"]
789pub const EOS_EResult_EOS_Auth_MFARequired: EOS_EResult = 1060;
790#[doc = " Parental locks are in place"]
791pub const EOS_EResult_EOS_Auth_ParentalControls: EOS_EResult = 1070;
792#[doc = " Korea real ID association required but missing"]
793pub const EOS_EResult_EOS_Auth_NoRealId: EOS_EResult = 1080;
794#[doc = " Silent login failed when EOS_LF_NO_USER_INTERFACE was specified, and user interaction is needed before the user can be logged in."]
795pub const EOS_EResult_EOS_Auth_UserInterfaceRequired: EOS_EResult = 1090;
796#[doc = " An outgoing friend invitation is awaiting acceptance; sending another invite to the same user is erroneous"]
797pub const EOS_EResult_EOS_Friends_InviteAwaitingAcceptance: EOS_EResult = 2000;
798#[doc = " There is no friend invitation to accept/reject"]
799pub const EOS_EResult_EOS_Friends_NoInvitation: EOS_EResult = 2001;
800#[doc = " Users are already friends, so sending another invite is erroneous"]
801pub const EOS_EResult_EOS_Friends_AlreadyFriends: EOS_EResult = 2003;
802#[doc = " Users are not friends, so deleting the friend is erroneous"]
803pub const EOS_EResult_EOS_Friends_NotFriends: EOS_EResult = 2004;
804#[doc = " Remote user has too many invites to receive new invites"]
805pub const EOS_EResult_EOS_Friends_TargetUserTooManyInvites: EOS_EResult = 2005;
806#[doc = " Local user has too many invites to send new invites"]
807pub const EOS_EResult_EOS_Friends_LocalUserTooManyInvites: EOS_EResult = 2006;
808#[doc = " Remote user has too many friends to make a new friendship"]
809pub const EOS_EResult_EOS_Friends_TargetUserFriendLimitExceeded: EOS_EResult = 2007;
810#[doc = " Local user has too many friends to make a new friendship"]
811pub const EOS_EResult_EOS_Friends_LocalUserFriendLimitExceeded: EOS_EResult = 2008;
812#[doc = " Request data was null or invalid"]
813pub const EOS_EResult_EOS_Presence_DataInvalid: EOS_EResult = 3000;
814#[doc = " Request contained too many or too few unique data items, or the request would overflow the maximum amount of data allowed"]
815pub const EOS_EResult_EOS_Presence_DataLengthInvalid: EOS_EResult = 3001;
816#[doc = " Request contained data with an invalid key"]
817pub const EOS_EResult_EOS_Presence_DataKeyInvalid: EOS_EResult = 3002;
818#[doc = " Request contained data with a key too long or too short"]
819pub const EOS_EResult_EOS_Presence_DataKeyLengthInvalid: EOS_EResult = 3003;
820#[doc = " Request contained data with an invalid value"]
821pub const EOS_EResult_EOS_Presence_DataValueInvalid: EOS_EResult = 3004;
822#[doc = " Request contained data with a value too long"]
823pub const EOS_EResult_EOS_Presence_DataValueLengthInvalid: EOS_EResult = 3005;
824#[doc = " Request contained an invalid rich text string"]
825pub const EOS_EResult_EOS_Presence_RichTextInvalid: EOS_EResult = 3006;
826#[doc = " Request contained a rich text string that was too long"]
827pub const EOS_EResult_EOS_Presence_RichTextLengthInvalid: EOS_EResult = 3007;
828#[doc = " Request contained an invalid status state"]
829pub const EOS_EResult_EOS_Presence_StatusInvalid: EOS_EResult = 3008;
830#[doc = " Request created with a template - rich text is not supported"]
831pub const EOS_EResult_EOS_Presence_RichTextNotSupported: EOS_EResult = 3009;
832#[doc = " Request not created with a template - rich text expected"]
833pub const EOS_EResult_EOS_Presence_TemplateNotSupported: EOS_EResult = 3010;
834#[doc = " Invalid Rich Presence Template ID"]
835pub const EOS_EResult_EOS_Presence_TemplateIdInvalid: EOS_EResult = 3011;
836#[doc = " Template type value is not supported"]
837pub const EOS_EResult_EOS_Presence_TemplateTypeInvalid: EOS_EResult = 3012;
838#[doc = " Template key is null or not supplied"]
839pub const EOS_EResult_EOS_Presence_TemplateKeyInvalid: EOS_EResult = 3013;
840#[doc = " Template value, if type is a string, is null or not supplie"]
841pub const EOS_EResult_EOS_Presence_TemplateValueInvalid: EOS_EResult = 3014;
842#[doc = " Template id was not found for the product or deployment"]
843pub const EOS_EResult_EOS_Presence_TemplateNotFound: EOS_EResult = 3015;
844#[doc = " Failed to format template with given vairable data"]
845pub const EOS_EResult_EOS_Presence_TemplateInvalidVariableInput: EOS_EResult = 3016;
846#[doc = " Localization server failed to format template"]
847pub const EOS_EResult_EOS_Presence_TemplateLocalizationServerError: EOS_EResult = 3017;
848#[doc = " Unknown error formatting template"]
849pub const EOS_EResult_EOS_Presence_TemplateUnknownError: EOS_EResult = 3018;
850#[doc = " The entitlement retrieved is stale, requery for updated information"]
851pub const EOS_EResult_EOS_Ecom_EntitlementStale: EOS_EResult = 4000;
852#[doc = " The offer retrieved is stale, requery for updated information"]
853pub const EOS_EResult_EOS_Ecom_CatalogOfferStale: EOS_EResult = 4001;
854#[doc = " The item or associated structure retrieved is stale, requery for updated information"]
855pub const EOS_EResult_EOS_Ecom_CatalogItemStale: EOS_EResult = 4002;
856#[doc = " The one or more offers has an invalid price. This may be caused by the price setup."]
857pub const EOS_EResult_EOS_Ecom_CatalogOfferPriceInvalid: EOS_EResult = 4003;
858#[doc = " The checkout page failed to load"]
859pub const EOS_EResult_EOS_Ecom_CheckoutLoadError: EOS_EResult = 4004;
860#[doc = " The player closed the purchase flow overlay after clicking the purchase button. The purchase may still go through, and the game needs to query unredeemed entitlements for a short time."]
861pub const EOS_EResult_EOS_Ecom_PurchaseProcessing: EOS_EResult = 4005;
862#[doc = " Session is already in progress"]
863pub const EOS_EResult_EOS_Sessions_SessionInProgress: EOS_EResult = 5000;
864#[doc = " Too many players to register with this session"]
865pub const EOS_EResult_EOS_Sessions_TooManyPlayers: EOS_EResult = 5001;
866#[doc = " Client has no permissions to access this session"]
867pub const EOS_EResult_EOS_Sessions_NoPermission: EOS_EResult = 5002;
868#[doc = " Session already exists in the system"]
869pub const EOS_EResult_EOS_Sessions_SessionAlreadyExists: EOS_EResult = 5003;
870#[doc = " Session lock required for operation"]
871pub const EOS_EResult_EOS_Sessions_InvalidLock: EOS_EResult = 5004;
872#[doc = " Invalid session reference"]
873pub const EOS_EResult_EOS_Sessions_InvalidSession: EOS_EResult = 5005;
874#[doc = " Sandbox ID associated with auth didn't match"]
875pub const EOS_EResult_EOS_Sessions_SandboxNotAllowed: EOS_EResult = 5006;
876#[doc = " Invite failed to send"]
877pub const EOS_EResult_EOS_Sessions_InviteFailed: EOS_EResult = 5007;
878#[doc = " Invite was not found with the service"]
879pub const EOS_EResult_EOS_Sessions_InviteNotFound: EOS_EResult = 5008;
880#[doc = " This client may not modify the session"]
881pub const EOS_EResult_EOS_Sessions_UpsertNotAllowed: EOS_EResult = 5009;
882#[doc = " Backend nodes unavailable to process request"]
883pub const EOS_EResult_EOS_Sessions_AggregationFailed: EOS_EResult = 5010;
884#[doc = " Individual backend node is as capacity"]
885pub const EOS_EResult_EOS_Sessions_HostAtCapacity: EOS_EResult = 5011;
886#[doc = " Sandbox on node is at capacity"]
887pub const EOS_EResult_EOS_Sessions_SandboxAtCapacity: EOS_EResult = 5012;
888#[doc = " An anonymous operation was attempted on a non anonymous session"]
889pub const EOS_EResult_EOS_Sessions_SessionNotAnonymous: EOS_EResult = 5013;
890#[doc = " Session is currently out of sync with the backend, data is saved locally but needs to sync with backend"]
891pub const EOS_EResult_EOS_Sessions_OutOfSync: EOS_EResult = 5014;
892#[doc = " User has received too many invites"]
893pub const EOS_EResult_EOS_Sessions_TooManyInvites: EOS_EResult = 5015;
894#[doc = " Presence session already exists for the client"]
895pub const EOS_EResult_EOS_Sessions_PresenceSessionExists: EOS_EResult = 5016;
896#[doc = " Deployment on node is at capacity"]
897pub const EOS_EResult_EOS_Sessions_DeploymentAtCapacity: EOS_EResult = 5017;
898#[doc = " Session operation not allowed"]
899pub const EOS_EResult_EOS_Sessions_NotAllowed: EOS_EResult = 5018;
900#[doc = " Session operation not allowed"]
901pub const EOS_EResult_EOS_Sessions_PlayerSanctioned: EOS_EResult = 5019;
902#[doc = " Request filename was invalid"]
903pub const EOS_EResult_EOS_PlayerDataStorage_FilenameInvalid: EOS_EResult = 6000;
904#[doc = " Request filename was too long"]
905pub const EOS_EResult_EOS_PlayerDataStorage_FilenameLengthInvalid: EOS_EResult = 6001;
906#[doc = " Request filename contained invalid characters"]
907pub const EOS_EResult_EOS_PlayerDataStorage_FilenameInvalidChars: EOS_EResult = 6002;
908#[doc = " Request operation would grow file too large"]
909pub const EOS_EResult_EOS_PlayerDataStorage_FileSizeTooLarge: EOS_EResult = 6003;
910#[doc = " Request file length is not valid"]
911pub const EOS_EResult_EOS_PlayerDataStorage_FileSizeInvalid: EOS_EResult = 6004;
912#[doc = " Request file handle is not valid"]
913pub const EOS_EResult_EOS_PlayerDataStorage_FileHandleInvalid: EOS_EResult = 6005;
914#[doc = " Request data is invalid"]
915pub const EOS_EResult_EOS_PlayerDataStorage_DataInvalid: EOS_EResult = 6006;
916#[doc = " Request data length was invalid"]
917pub const EOS_EResult_EOS_PlayerDataStorage_DataLengthInvalid: EOS_EResult = 6007;
918#[doc = " Request start index was invalid"]
919pub const EOS_EResult_EOS_PlayerDataStorage_StartIndexInvalid: EOS_EResult = 6008;
920#[doc = " Request is in progress"]
921pub const EOS_EResult_EOS_PlayerDataStorage_RequestInProgress: EOS_EResult = 6009;
922#[doc = " User is marked as throttled which means he can't perform some operations because limits are exceeded."]
923pub const EOS_EResult_EOS_PlayerDataStorage_UserThrottled: EOS_EResult = 6010;
924#[doc = " Encryption key is not set during SDK init."]
925pub const EOS_EResult_EOS_PlayerDataStorage_EncryptionKeyNotSet: EOS_EResult = 6011;
926#[doc = " User data callback returned error (EOS_PlayerDataStorage_EWriteResult::EOS_WR_FailRequest or EOS_PlayerDataStorage_EReadResult::EOS_RR_FailRequest)"]
927pub const EOS_EResult_EOS_PlayerDataStorage_UserErrorFromDataCallback: EOS_EResult = 6012;
928#[doc = " User is trying to read file that has header from newer version of SDK. Game/SDK needs to be updated."]
929pub const EOS_EResult_EOS_PlayerDataStorage_FileHeaderHasNewerVersion: EOS_EResult = 6013;
930#[doc = " The file is corrupted. In some cases retry can fix the issue."]
931pub const EOS_EResult_EOS_PlayerDataStorage_FileCorrupted: EOS_EResult = 6014;
932#[doc = " EOS Auth service deemed the external token invalid"]
933pub const EOS_EResult_EOS_Connect_ExternalTokenValidationFailed: EOS_EResult = 7000;
934#[doc = " EOS Auth user already exists"]
935pub const EOS_EResult_EOS_Connect_UserAlreadyExists: EOS_EResult = 7001;
936#[doc = " EOS Auth expired"]
937pub const EOS_EResult_EOS_Connect_AuthExpired: EOS_EResult = 7002;
938#[doc = " EOS Auth invalid token"]
939pub const EOS_EResult_EOS_Connect_InvalidToken: EOS_EResult = 7003;
940#[doc = " EOS Auth doesn't support this token type"]
941pub const EOS_EResult_EOS_Connect_UnsupportedTokenType: EOS_EResult = 7004;
942#[doc = " EOS Auth Account link failure"]
943pub const EOS_EResult_EOS_Connect_LinkAccountFailed: EOS_EResult = 7005;
944#[doc = " EOS Auth External service for validation was unavailable"]
945pub const EOS_EResult_EOS_Connect_ExternalServiceUnavailable: EOS_EResult = 7006;
946#[doc = " EOS Auth External Service configuration failure with Dev Portal"]
947pub const EOS_EResult_EOS_Connect_ExternalServiceConfigurationFailure: EOS_EResult = 7007;
948#[doc = " EOS Auth Account link failure. Tried to link Nintendo Network Service Account without first linking Nintendo Account. DEPRECATED: The requirement has been removed and this error is no longer used."]
949pub const EOS_EResult_EOS_Connect_LinkAccountFailedMissingNintendoIdAccount_DEPRECATED:
950    EOS_EResult = 7008;
951#[doc = " The social overlay page failed to load"]
952pub const EOS_EResult_EOS_UI_SocialOverlayLoadError: EOS_EResult = 8000;
953#[doc = " Virtual Memory Functions are an inconsistent mix of functions and nullptrs"]
954pub const EOS_EResult_EOS_UI_InconsistentVirtualMemoryFunctions: EOS_EResult = 8001;
955#[doc = " Client has no permissions to modify this lobby"]
956pub const EOS_EResult_EOS_Lobby_NotOwner: EOS_EResult = 9000;
957#[doc = " Lobby lock required for operation"]
958pub const EOS_EResult_EOS_Lobby_InvalidLock: EOS_EResult = 9001;
959#[doc = " Lobby already exists in the system"]
960pub const EOS_EResult_EOS_Lobby_LobbyAlreadyExists: EOS_EResult = 9002;
961#[doc = " Lobby is already in progress"]
962pub const EOS_EResult_EOS_Lobby_SessionInProgress: EOS_EResult = 9003;
963#[doc = " Too many players to register with this lobby"]
964pub const EOS_EResult_EOS_Lobby_TooManyPlayers: EOS_EResult = 9004;
965#[doc = " Client has no permissions to access this lobby"]
966pub const EOS_EResult_EOS_Lobby_NoPermission: EOS_EResult = 9005;
967#[doc = " Invalid lobby session reference"]
968pub const EOS_EResult_EOS_Lobby_InvalidSession: EOS_EResult = 9006;
969#[doc = " Sandbox ID associated with auth didn't match"]
970pub const EOS_EResult_EOS_Lobby_SandboxNotAllowed: EOS_EResult = 9007;
971#[doc = " Invite failed to send"]
972pub const EOS_EResult_EOS_Lobby_InviteFailed: EOS_EResult = 9008;
973#[doc = " Invite was not found with the service"]
974pub const EOS_EResult_EOS_Lobby_InviteNotFound: EOS_EResult = 9009;
975#[doc = " This client may not modify the lobby"]
976pub const EOS_EResult_EOS_Lobby_UpsertNotAllowed: EOS_EResult = 9010;
977#[doc = " Backend nodes unavailable to process request"]
978pub const EOS_EResult_EOS_Lobby_AggregationFailed: EOS_EResult = 9011;
979#[doc = " Individual backend node is as capacity"]
980pub const EOS_EResult_EOS_Lobby_HostAtCapacity: EOS_EResult = 9012;
981#[doc = " Sandbox on node is at capacity"]
982pub const EOS_EResult_EOS_Lobby_SandboxAtCapacity: EOS_EResult = 9013;
983#[doc = " User has received too many invites"]
984pub const EOS_EResult_EOS_Lobby_TooManyInvites: EOS_EResult = 9014;
985#[doc = " Deployment on node is at capacity"]
986pub const EOS_EResult_EOS_Lobby_DeploymentAtCapacity: EOS_EResult = 9015;
987#[doc = " Lobby operation not allowed"]
988pub const EOS_EResult_EOS_Lobby_NotAllowed: EOS_EResult = 9016;
989#[doc = " While restoring a lost connection lobby ownership changed and only local member data was updated"]
990pub const EOS_EResult_EOS_Lobby_MemberUpdateOnly: EOS_EResult = 9017;
991#[doc = " Presence lobby already exists for the client"]
992pub const EOS_EResult_EOS_Lobby_PresenceLobbyExists: EOS_EResult = 9018;
993#[doc = " Operation requires lobby with voice enabled"]
994pub const EOS_EResult_EOS_Lobby_VoiceNotEnabled: EOS_EResult = 9019;
995#[doc = " The client platform does not match the allowed platform list for the lobby."]
996pub const EOS_EResult_EOS_Lobby_PlatformNotAllowed: EOS_EResult = 9020;
997#[doc = " User callback that receives data from storage returned error."]
998pub const EOS_EResult_EOS_TitleStorage_UserErrorFromDataCallback: EOS_EResult = 10000;
999#[doc = " User forgot to set Encryption key during platform init. Title Storage can't work without it."]
1000pub const EOS_EResult_EOS_TitleStorage_EncryptionKeyNotSet: EOS_EResult = 10001;
1001#[doc = " Downloaded file is corrupted."]
1002pub const EOS_EResult_EOS_TitleStorage_FileCorrupted: EOS_EResult = 10002;
1003#[doc = " Downloaded file's format is newer than client SDK version."]
1004pub const EOS_EResult_EOS_TitleStorage_FileHeaderHasNewerVersion: EOS_EResult = 10003;
1005#[doc = " ModSdk process is already running. This error comes from the EOSSDK."]
1006pub const EOS_EResult_EOS_Mods_ModSdkProcessIsAlreadyRunning: EOS_EResult = 11000;
1007#[doc = " ModSdk command is empty. Either the ModSdk configuration file is missing or the manifest location is empty."]
1008pub const EOS_EResult_EOS_Mods_ModSdkCommandIsEmpty: EOS_EResult = 11001;
1009#[doc = " Creation of the ModSdk process failed. This error comes from the SDK."]
1010pub const EOS_EResult_EOS_Mods_ModSdkProcessCreationFailed: EOS_EResult = 11002;
1011#[doc = " A critical error occurred in the external ModSdk process that we were unable to resolve."]
1012pub const EOS_EResult_EOS_Mods_CriticalError: EOS_EResult = 11003;
1013#[doc = " A internal error occurred in the external ModSdk process that we were unable to resolve."]
1014pub const EOS_EResult_EOS_Mods_ToolInternalError: EOS_EResult = 11004;
1015#[doc = " A IPC failure occurred in the external ModSdk process."]
1016pub const EOS_EResult_EOS_Mods_IPCFailure: EOS_EResult = 11005;
1017#[doc = " A invalid IPC response received in the external ModSdk process."]
1018pub const EOS_EResult_EOS_Mods_InvalidIPCResponse: EOS_EResult = 11006;
1019#[doc = " A URI Launch failure occurred in the external ModSdk process."]
1020pub const EOS_EResult_EOS_Mods_URILaunchFailure: EOS_EResult = 11007;
1021#[doc = " Attempting to perform an action with a mod that is not installed. This error comes from the external ModSdk process."]
1022pub const EOS_EResult_EOS_Mods_ModIsNotInstalled: EOS_EResult = 11008;
1023#[doc = " Attempting to perform an action on a game that the user doesn't own. This error comes from the external ModSdk process."]
1024pub const EOS_EResult_EOS_Mods_UserDoesNotOwnTheGame: EOS_EResult = 11009;
1025#[doc = " Invalid result of the request to get the offer for the mod. This error comes from the external ModSdk process."]
1026pub const EOS_EResult_EOS_Mods_OfferRequestByIdInvalidResult: EOS_EResult = 11010;
1027#[doc = " Could not find the offer for the mod. This error comes from the external ModSdk process."]
1028pub const EOS_EResult_EOS_Mods_CouldNotFindOffer: EOS_EResult = 11011;
1029#[doc = " Request to get the offer for the mod failed. This error comes from the external ModSdk process."]
1030pub const EOS_EResult_EOS_Mods_OfferRequestByIdFailure: EOS_EResult = 11012;
1031#[doc = " Request to purchase the mod failed. This error comes from the external ModSdk process."]
1032pub const EOS_EResult_EOS_Mods_PurchaseFailure: EOS_EResult = 11013;
1033#[doc = " Attempting to perform an action on a game that is not installed or is partially installed. This error comes from the external ModSdk process."]
1034pub const EOS_EResult_EOS_Mods_InvalidGameInstallInfo: EOS_EResult = 11014;
1035#[doc = " Failed to get manifest location. Either the ModSdk configuration file is missing or the manifest location is empty"]
1036pub const EOS_EResult_EOS_Mods_CannotGetManifestLocation: EOS_EResult = 11015;
1037#[doc = " Attempting to perform an action with a mod that does not support the current operating system."]
1038pub const EOS_EResult_EOS_Mods_UnsupportedOS: EOS_EResult = 11016;
1039#[doc = " The anti-cheat client protection is not available. Check that the game was started using the anti-cheat bootstrapper."]
1040pub const EOS_EResult_EOS_AntiCheat_ClientProtectionNotAvailable: EOS_EResult = 12000;
1041#[doc = " The current anti-cheat mode is incorrect for using this API"]
1042pub const EOS_EResult_EOS_AntiCheat_InvalidMode: EOS_EResult = 12001;
1043#[doc = " The ProductId provided to the anti-cheat client helper executable does not match what was used to initialize the EOS SDK"]
1044pub const EOS_EResult_EOS_AntiCheat_ClientProductIdMismatch: EOS_EResult = 12002;
1045#[doc = " The SandboxId provided to the anti-cheat client helper executable does not match what was used to initialize the EOS SDK"]
1046pub const EOS_EResult_EOS_AntiCheat_ClientSandboxIdMismatch: EOS_EResult = 12003;
1047#[doc = " (ProtectMessage/UnprotectMessage) No session key is available, but it is required to complete this operation"]
1048pub const EOS_EResult_EOS_AntiCheat_ProtectMessageSessionKeyRequired: EOS_EResult = 12004;
1049#[doc = " (ProtectMessage/UnprotectMessage) Message integrity is invalid"]
1050pub const EOS_EResult_EOS_AntiCheat_ProtectMessageValidationFailed: EOS_EResult = 12005;
1051#[doc = " (ProtectMessage/UnprotectMessage) Initialization failed"]
1052pub const EOS_EResult_EOS_AntiCheat_ProtectMessageInitializationFailed: EOS_EResult = 12006;
1053#[doc = " (RegisterPeer) Peer is already registered"]
1054pub const EOS_EResult_EOS_AntiCheat_PeerAlreadyRegistered: EOS_EResult = 12007;
1055#[doc = " (UnregisterPeer) Peer does not exist"]
1056pub const EOS_EResult_EOS_AntiCheat_PeerNotFound: EOS_EResult = 12008;
1057#[doc = " (ReceiveMessageFromPeer) Invalid call: Peer is not protected"]
1058pub const EOS_EResult_EOS_AntiCheat_PeerNotProtected: EOS_EResult = 12009;
1059#[doc = " The DeploymentId provided to the anti-cheat client helper executable does not match what was used to initialize the EOS SDK"]
1060pub const EOS_EResult_EOS_AntiCheat_ClientDeploymentIdMismatch: EOS_EResult = 12010;
1061#[doc = " EOS Connect DeviceID auth method is not supported for anti-cheat"]
1062pub const EOS_EResult_EOS_AntiCheat_DeviceIdAuthIsNotSupported: EOS_EResult = 12011;
1063#[doc = " EOS RTC room cannot accept more participants"]
1064pub const EOS_EResult_EOS_RTC_TooManyParticipants: EOS_EResult = 13000;
1065#[doc = " EOS RTC room already exists"]
1066pub const EOS_EResult_EOS_RTC_RoomAlreadyExists: EOS_EResult = 13001;
1067#[doc = " The user kicked out from the room"]
1068pub const EOS_EResult_EOS_RTC_UserKicked: EOS_EResult = 13002;
1069#[doc = " The user is banned"]
1070pub const EOS_EResult_EOS_RTC_UserBanned: EOS_EResult = 13003;
1071#[doc = " EOS RTC room was left successfully"]
1072pub const EOS_EResult_EOS_RTC_RoomWasLeft: EOS_EResult = 13004;
1073#[doc = " Connection dropped due to long timeout"]
1074pub const EOS_EResult_EOS_RTC_ReconnectionTimegateExpired: EOS_EResult = 13005;
1075#[doc = " EOS RTC room was left due to platform release"]
1076pub const EOS_EResult_EOS_RTC_ShutdownInvoked: EOS_EResult = 13006;
1077#[doc = " EOS RTC operation failed because the user is in the local user's block list"]
1078pub const EOS_EResult_EOS_RTC_UserIsInBlocklist: EOS_EResult = 13007;
1079#[doc = " Failed to allocate resources"]
1080pub const EOS_EResult_EOS_RTC_AllocationFailed: EOS_EResult = 13009;
1081#[doc = " Failed to join room due to voice moderation mode mismatch"]
1082pub const EOS_EResult_EOS_RTC_VoiceModerationModeMismatch: EOS_EResult = 13010;
1083#[doc = " EOS RTC record buffer was empty"]
1084pub const EOS_EResult_EOS_RTC_EmptyRecord: EOS_EResult = 13011;
1085#[doc = " Failed to join room due to room options mismatch"]
1086pub const EOS_EResult_EOS_RTC_RoomOptionsMismatch: EOS_EResult = 13012;
1087#[doc = " The number of available Snapshot IDs have all been exhausted."]
1088pub const EOS_EResult_EOS_ProgressionSnapshot_SnapshotIdUnavailable: EOS_EResult = 14000;
1089#[doc = " The KWS user does not have a parental email associated with the account.  The parent account was unlinked or deleted"]
1090pub const EOS_EResult_EOS_KWS_ParentEmailMissing: EOS_EResult = 15000;
1091#[doc = " The KWS user is no longer a minor and trying to update the parent email"]
1092pub const EOS_EResult_EOS_KWS_UserGraduated: EOS_EResult = 15001;
1093#[doc = " EOS Android VM not stored"]
1094pub const EOS_EResult_EOS_Android_JavaVMNotStored: EOS_EResult = 17000;
1095#[doc = " EOS Android if Reserved is set it must reference stored VM"]
1096pub const EOS_EResult_EOS_Android_ReservedMustReferenceLocalVM: EOS_EResult = 17001;
1097#[doc = " EOS Android Reserved must not be provided"]
1098pub const EOS_EResult_EOS_Android_ReservedMustBeNull: EOS_EResult = 17002;
1099#[doc = " Patch required before the user can use the privilege"]
1100pub const EOS_EResult_EOS_Permission_RequiredPatchAvailable: EOS_EResult = 18000;
1101#[doc = " System update required before the user can use the privilege"]
1102pub const EOS_EResult_EOS_Permission_RequiredSystemUpdate: EOS_EResult = 18001;
1103#[doc = " Parental control failure usually"]
1104pub const EOS_EResult_EOS_Permission_AgeRestrictionFailure: EOS_EResult = 18002;
1105#[doc = " Premium Account Subscription required but not available"]
1106pub const EOS_EResult_EOS_Permission_AccountTypeFailure: EOS_EResult = 18003;
1107#[doc = " User restricted from chat"]
1108pub const EOS_EResult_EOS_Permission_ChatRestriction: EOS_EResult = 18004;
1109#[doc = " User restricted from User Generated Content"]
1110pub const EOS_EResult_EOS_Permission_UGCRestriction: EOS_EResult = 18005;
1111#[doc = " Online play is restricted"]
1112pub const EOS_EResult_EOS_Permission_OnlinePlayRestricted: EOS_EResult = 18006;
1113#[doc = " The application was not launched through the Bootstrapper. Desktop crossplay functionality is unavailable."]
1114pub const EOS_EResult_EOS_DesktopCrossplay_ApplicationNotBootstrapped: EOS_EResult = 19000;
1115#[doc = " The redistributable service is not installed."]
1116pub const EOS_EResult_EOS_DesktopCrossplay_ServiceNotInstalled: EOS_EResult = 19001;
1117#[doc = " The desktop crossplay service failed to start."]
1118pub const EOS_EResult_EOS_DesktopCrossplay_ServiceStartFailed: EOS_EResult = 19002;
1119#[doc = " The desktop crossplay service is no longer running for an unknown reason."]
1120pub const EOS_EResult_EOS_DesktopCrossplay_ServiceNotRunning: EOS_EResult = 19003;
1121#[doc = " When sending the custom invite failed."]
1122pub const EOS_EResult_EOS_CustomInvites_InviteFailed: EOS_EResult = 20000;
1123#[doc = " The best display name could not be safely determined."]
1124pub const EOS_EResult_EOS_UserInfo_BestDisplayNameIndeterminate: EOS_EResult = 22000;
1125#[doc = " OnNetworkRequested_DEPRECATED callback not set when initializing platform"]
1126pub const EOS_EResult_EOS_ConsoleInit_OnNetworkRequestedDeprecatedCallbackNotSet: EOS_EResult =
1127    23000;
1128#[doc = " CacheStorageSizeKB must be a multiple of 16"]
1129pub const EOS_EResult_EOS_ConsoleInit_CacheStorage_SizeKBNotMultipleOf16: EOS_EResult = 23001;
1130#[doc = " CacheStorageSizeKB is less than the minimum allowed"]
1131pub const EOS_EResult_EOS_ConsoleInit_CacheStorage_SizeKBBelowMinimumSize: EOS_EResult = 23002;
1132#[doc = " CacheStorageSizeKB is greater than the maximum allowed (4000 MB)"]
1133pub const EOS_EResult_EOS_ConsoleInit_CacheStorage_SizeKBExceedsMaximumSize: EOS_EResult = 23003;
1134#[doc = " CacheStorageIndex is out of its allowed range"]
1135pub const EOS_EResult_EOS_ConsoleInit_CacheStorage_IndexOutOfRangeRange: EOS_EResult = 23004;
1136#[doc = " An unexpected error that we cannot identify has occurred."]
1137pub const EOS_EResult_EOS_UnexpectedError: EOS_EResult = 2147483647;
1138pub const EOS_EResult___EOS_EResult_PAD_INT32__: EOS_EResult = 2147483647;
1139#[doc = " Enum flags for all possible result values of operations in the SDK."]
1140pub type EOS_EResult = ::std::os::raw::c_int;
1141unsafe extern "C" {
1142    #[doc = " Returns a string representation of an EOS_EResult.\n The return value is never null.\n The return value must not be freed.\n\n Example: EOS_EResult_ToString(EOS_Success) returns \"EOS_Success\""]
1143    pub fn EOS_EResult_ToString(Result: EOS_EResult) -> *const ::std::os::raw::c_char;
1144}
1145unsafe extern "C" {
1146    #[doc = " Returns whether a result is to be considered the final result, or false if the callback that returned this result\n will be called again either after some time or from another action.\n\n @param Result The result to check against being a final result for an operation\n @return True if this result means the operation is complete, false otherwise"]
1147    pub fn EOS_EResult_IsOperationComplete(Result: EOS_EResult) -> EOS_Bool;
1148}
1149unsafe extern "C" {
1150    #[doc = " Encode a byte array into hex encoded string\n\n @return An EOS_EResult that indicates whether the byte array was converted and copied into the OutBuffer.\n         EOS_Success if the encoding was successful and passed out in OutBuffer\n         EOS_InvalidParameters if you pass a null pointer on invalid length for any of the parameters\n         EOS_LimitExceeded - The OutBuffer is not large enough to receive the encoding. InOutBufferLength contains the required minimum length to perform the operation successfully."]
1151    pub fn EOS_ByteArray_ToString(
1152        ByteArray: *const u8,
1153        Length: u32,
1154        OutBuffer: *mut ::std::os::raw::c_char,
1155        InOutBufferLength: *mut u32,
1156    ) -> EOS_EResult;
1157}
1158#[repr(C)]
1159#[derive(Debug, Copy, Clone)]
1160pub struct EOS_EpicAccountIdDetails {
1161    _unused: [u8; 0],
1162}
1163#[doc = " A handle to a user's Epic Account ID\n This ID is associated with a specific login associated with Epic Account Services\n\n @see EOS_Auth_Login"]
1164pub type EOS_EpicAccountId = *mut EOS_EpicAccountIdDetails;
1165unsafe extern "C" {
1166    #[doc = " Check whether or not the given Epic Account ID is considered valid\n NOTE: This will return true for any EOS_EpicAccountId created with EOS_EpicAccountId_FromString as there is no validation\n\n @param AccountId The Epic Account ID to check for validity\n @return EOS_TRUE if the EOS_EpicAccountId is valid, otherwise EOS_FALSE"]
1167    pub fn EOS_EpicAccountId_IsValid(AccountId: EOS_EpicAccountId) -> EOS_Bool;
1168}
1169unsafe extern "C" {
1170    #[doc = " Retrieve a null-terminated stringified Epic Account ID from an EOS_EpicAccountId. This is useful for replication of Epic Account IDs in multiplayer games.\n This string will be no larger than EOS_EPICACCOUNTID_MAX_LENGTH + 1 and will only contain UTF8-encoded printable characters as well as a null-terminator.\n\n @param AccountId The Epic Account ID for which to retrieve the stringified version.\n @param OutBuffer The buffer into which the character data should be written\n @param InOutBufferLength The size of the OutBuffer in characters.\n                          The input buffer should include enough space to be null-terminated.\n                          When the function returns, this parameter will be filled with the length of the string copied into OutBuffer including the null-termination character.\n\n @return An EOS_EResult that indicates whether the Epic Account ID string was copied into the OutBuffer.\n         EOS_Success - The OutBuffer was filled, and InOutBufferLength contains the number of characters copied into OutBuffer including the null-terminator.\n         EOS_InvalidParameters - Either OutBuffer or InOutBufferLength were passed as NULL parameters.\n         EOS_InvalidUser - The AccountId is invalid and cannot be stringified.\n         EOS_LimitExceeded - The OutBuffer is not large enough to receive the Epic Account ID string. InOutBufferLength contains the required minimum length to perform the operation successfully."]
1171    pub fn EOS_EpicAccountId_ToString(
1172        AccountId: EOS_EpicAccountId,
1173        OutBuffer: *mut ::std::os::raw::c_char,
1174        InOutBufferLength: *mut i32,
1175    ) -> EOS_EResult;
1176}
1177unsafe extern "C" {
1178    #[doc = " Retrieve an EOS_EpicAccountId from a raw string representing an Epic Account ID. The input string must be null-terminated.\n NOTE: There is no validation on the string format, this should only be used with values serialized from legitimate sources such as EOS_EpicAccountId_ToString\n\n @param AccountIdString The stringified account ID for which to retrieve the Epic Account ID\n @return The EOS_EpicAccountId that corresponds to the AccountIdString"]
1179    pub fn EOS_EpicAccountId_FromString(
1180        AccountIdString: *const ::std::os::raw::c_char,
1181    ) -> EOS_EpicAccountId;
1182}
1183#[repr(C)]
1184#[derive(Debug, Copy, Clone)]
1185pub struct EOS_ProductUserIdDetails {
1186    _unused: [u8; 0],
1187}
1188#[doc = " A handle to a user's Product User ID (game services related ecosystem)\n This ID is associated with any of the external account providers (of which Epic Account Services is one)\n\n @see EOS_Connect_Login\n @see EOS_EExternalCredentialType"]
1189pub type EOS_ProductUserId = *mut EOS_ProductUserIdDetails;
1190unsafe extern "C" {
1191    #[doc = " Check whether or not the given account unique ID is considered valid\n NOTE: This will return true for any EOS_ProductUserId created with EOS_ProductUserId_FromString as there is no validation\n\n @param AccountId The Product User ID to check for validity\n @return EOS_TRUE if the EOS_ProductUserId is valid, otherwise EOS_FALSE"]
1192    pub fn EOS_ProductUserId_IsValid(AccountId: EOS_ProductUserId) -> EOS_Bool;
1193}
1194unsafe extern "C" {
1195    #[doc = " Retrieve a null-terminated stringified Product User ID from an EOS_ProductUserId. This is useful for replication of Product User IDs in multiplayer games.\n This string will be no larger than EOS_PRODUCTUSERID_MAX_LENGTH + 1 and will only contain UTF8-encoded printable characters as well as the null-terminator.\n\n @param AccountId The Product User ID for which to retrieve the stringified version.\n @param OutBuffer The buffer into which the character data should be written\n @param InOutBufferLength The size of the OutBuffer in characters.\n                          The input buffer should include enough space to be null-terminated.\n                          When the function returns, this parameter will be filled with the length of the string copied into OutBuffer including the null-termination character.\n\n @return An EOS_EResult that indicates whether the Product User ID string was copied into the OutBuffer.\n         EOS_Success - The OutBuffer was filled, and InOutBufferLength contains the number of characters copied into OutBuffer including the null-terminator.\n         EOS_InvalidParameters - Either OutBuffer or InOutBufferLength were passed as NULL parameters.\n         EOS_InvalidUser - The AccountId is invalid and cannot be stringified.\n         EOS_LimitExceeded - The OutBuffer is not large enough to receive the Product User ID string. InOutBufferLength contains the required minimum length to perform the operation successfully."]
1196    pub fn EOS_ProductUserId_ToString(
1197        AccountId: EOS_ProductUserId,
1198        OutBuffer: *mut ::std::os::raw::c_char,
1199        InOutBufferLength: *mut i32,
1200    ) -> EOS_EResult;
1201}
1202unsafe extern "C" {
1203    #[doc = " Retrieve an EOS_ProductUserId from a raw string representing an Epic Online Services Product User ID. The input string must be null-terminated.\n NOTE: There is no validation on the string format, this should only be used with values serialized from legitimate sources such as EOS_ProductUserId_ToString\n\n @param ProductUserIdString The stringified product user ID for which to retrieve the Epic Online Services Product User ID\n @return The EOS_ProductUserId that corresponds to the ProductUserIdString"]
1204    pub fn EOS_ProductUserId_FromString(
1205        ProductUserIdString: *const ::std::os::raw::c_char,
1206    ) -> EOS_ProductUserId;
1207}
1208#[doc = " Handle to an existing registered notification (0 is an invalid handle)"]
1209pub type EOS_NotificationId = u64;
1210#[repr(C)]
1211#[derive(Debug, Copy, Clone)]
1212pub struct EOS_ContinuanceTokenDetails {
1213    _unused: [u8; 0],
1214}
1215#[doc = " A handle to a continuance token @see eos_connect.h"]
1216pub type EOS_ContinuanceToken = *mut EOS_ContinuanceTokenDetails;
1217unsafe extern "C" {
1218    #[doc = " Retrieve a null-terminated stringified continuance token from an EOS_ContinuanceToken.\n\n To get the required buffer size, call once with OutBuffer set to NULL, InOutBufferLength will contain the buffer size needed.\n Call again with valid params to get the stringified continuance token which will only contain UTF8-encoded printable characters as well as the null-terminator.\n\n @param ContinuanceToken The continuance token for which to retrieve the stringified version.\n @param OutBuffer The buffer into which the character data should be written\n @param InOutBufferLength The size of the OutBuffer in characters.\n                          The input buffer should include enough space to be null-terminated.\n                          When the function returns, this parameter will be filled with the length of the string copied into OutBuffer including the null-termination character.\n\n @return An EOS_EResult that indicates whether the continuance token string was copied into the OutBuffer.\n         EOS_Success - The OutBuffer was filled, and InOutBufferLength contains the number of characters copied into OutBuffer including the null-terminator.\n         EOS_InvalidParameters - Either OutBuffer or InOutBufferLength were passed as NULL parameters.\n         EOS_InvalidUser - The AccountId is invalid and cannot be stringified.\n         EOS_LimitExceeded - The OutBuffer is not large enough to receive the continuance token string. InOutBufferLength contains the required minimum length to perform the operation successfully."]
1219    pub fn EOS_ContinuanceToken_ToString(
1220        ContinuanceToken: EOS_ContinuanceToken,
1221        OutBuffer: *mut ::std::os::raw::c_char,
1222        InOutBufferLength: *mut i32,
1223    ) -> EOS_EResult;
1224}
1225#[doc = " Player has not logged in or chosen a local profile"]
1226pub const EOS_ELoginStatus_EOS_LS_NotLoggedIn: EOS_ELoginStatus = 0;
1227#[doc = " Player is using a local profile but is not logged in"]
1228pub const EOS_ELoginStatus_EOS_LS_UsingLocalProfile: EOS_ELoginStatus = 1;
1229#[doc = " Player has been validated by the platform specific authentication service"]
1230pub const EOS_ELoginStatus_EOS_LS_LoggedIn: EOS_ELoginStatus = 2;
1231pub const EOS_ELoginStatus___EOS_ELoginStatus_PAD_INT32__: EOS_ELoginStatus = 2147483647;
1232#[doc = " All possible states of a local user\n\n @see EOS_Auth_AddNotifyLoginStatusChanged\n @see EOS_Auth_GetLoginStatus\n @see EOS_Auth_Login\n @see EOS_Connect_AddNotifyLoginStatusChanged\n @see EOS_Connect_GetLoginStatus\n @see EOS_Connect_Login"]
1233pub type EOS_ELoginStatus = ::std::os::raw::c_int;
1234#[doc = " Boolean value (true/false)"]
1235pub const EOS_EAttributeType_EOS_AT_BOOLEAN: EOS_EAttributeType = 0;
1236#[doc = " 64 bit integers"]
1237pub const EOS_EAttributeType_EOS_AT_INT64: EOS_EAttributeType = 1;
1238#[doc = " Double/floating point precision"]
1239pub const EOS_EAttributeType_EOS_AT_DOUBLE: EOS_EAttributeType = 2;
1240#[doc = " UTF8 Strings"]
1241pub const EOS_EAttributeType_EOS_AT_STRING: EOS_EAttributeType = 3;
1242pub const EOS_EAttributeType___EOS_EAttributeType_PAD_INT32__: EOS_EAttributeType = 2147483647;
1243#[doc = " Supported types of data that can be stored with inside an attribute (used by sessions/lobbies/etc)\n\n @see EOS_LobbySearch_SetParameter\n @see EOS_SessionSearch_SetParameter"]
1244pub type EOS_EAttributeType = ::std::os::raw::c_int;
1245#[doc = " Supported types of data that can be stored with inside an attribute (used by sessions/lobbies/etc)\n\n @see EOS_LobbySearch_SetParameter\n @see EOS_SessionSearch_SetParameter"]
1246pub use self::EOS_EAttributeType as EOS_ESessionAttributeType;
1247#[doc = " Supported types of data that can be stored with inside an attribute (used by sessions/lobbies/etc)\n\n @see EOS_LobbySearch_SetParameter\n @see EOS_SessionSearch_SetParameter"]
1248pub use self::EOS_EAttributeType as EOS_ELobbyAttributeType;
1249#[doc = " Value must equal the one stored in the attribute"]
1250pub const EOS_EComparisonOp_EOS_CO_EQUAL: EOS_EComparisonOp = 0;
1251#[doc = " Value must not equal the one stored in the attribute"]
1252pub const EOS_EComparisonOp_EOS_CO_NOTEQUAL: EOS_EComparisonOp = 1;
1253#[doc = " Value must be strictly greater than the one stored in the attribute"]
1254pub const EOS_EComparisonOp_EOS_CO_GREATERTHAN: EOS_EComparisonOp = 2;
1255#[doc = " Value must be greater than or equal to the one stored in the attribute"]
1256pub const EOS_EComparisonOp_EOS_CO_GREATERTHANOREQUAL: EOS_EComparisonOp = 3;
1257#[doc = " Value must be strictly less than the one stored in the attribute"]
1258pub const EOS_EComparisonOp_EOS_CO_LESSTHAN: EOS_EComparisonOp = 4;
1259#[doc = " Value must be less than or equal to the one stored in the attribute"]
1260pub const EOS_EComparisonOp_EOS_CO_LESSTHANOREQUAL: EOS_EComparisonOp = 5;
1261#[doc = " Prefer values nearest the one specified ie. abs(SearchValue-SessionValue) closest to 0"]
1262pub const EOS_EComparisonOp_EOS_CO_DISTANCE: EOS_EComparisonOp = 6;
1263#[doc = " Value stored in the attribute may be any from a specified list"]
1264pub const EOS_EComparisonOp_EOS_CO_ANYOF: EOS_EComparisonOp = 7;
1265#[doc = " Value stored in the attribute may NOT be any from a specified list"]
1266pub const EOS_EComparisonOp_EOS_CO_NOTANYOF: EOS_EComparisonOp = 8;
1267#[doc = " This one value is a part of a collection. Supported in EOS_SessionSearch_SetParameter only."]
1268pub const EOS_EComparisonOp_EOS_CO_ONEOF: EOS_EComparisonOp = 9;
1269#[doc = " This one value is NOT part of a collection. Supported in EOS_SessionSearch_SetParameter only."]
1270pub const EOS_EComparisonOp_EOS_CO_NOTONEOF: EOS_EComparisonOp = 10;
1271#[doc = " This value is a CASE SENSITIVE substring of an attribute"]
1272pub const EOS_EComparisonOp_EOS_CO_CONTAINS: EOS_EComparisonOp = 11;
1273#[doc = " This value is a regex match of an attribute"]
1274pub const EOS_EComparisonOp_EOS_CO_REGEXMATCH: EOS_EComparisonOp = 12;
1275#[doc = " This array or string value's size must be equal to the one stored in the attribute"]
1276pub const EOS_EComparisonOp_EOS_CO_SIZE: EOS_EComparisonOp = 13;
1277pub const EOS_EComparisonOp___EOS_EComparisonOp_PAD_INT32__: EOS_EComparisonOp = 2147483647;
1278#[doc = " All comparison operators associated with attributes.\n\n @see EOS_LobbySearch_SetParameter\n @see EOS_SessionSearch_SetParameter"]
1279pub type EOS_EComparisonOp = ::std::os::raw::c_int;
1280#[doc = " All comparison operators associated with attributes.\n\n @see EOS_LobbySearch_SetParameter\n @see EOS_SessionSearch_SetParameter"]
1281pub use self::EOS_EComparisonOp as EOS_EOnlineComparisonOp;
1282#[doc = " External account is associated with Epic Games"]
1283pub const EOS_EExternalAccountType_EOS_EAT_EPIC: EOS_EExternalAccountType = 0;
1284#[doc = " External account is associated with Steam"]
1285pub const EOS_EExternalAccountType_EOS_EAT_STEAM: EOS_EExternalAccountType = 1;
1286#[doc = " External account is associated with PlayStation(TM)Network"]
1287pub const EOS_EExternalAccountType_EOS_EAT_PSN: EOS_EExternalAccountType = 2;
1288#[doc = " External account is associated with Xbox Live"]
1289pub const EOS_EExternalAccountType_EOS_EAT_XBL: EOS_EExternalAccountType = 3;
1290#[doc = " External account is associated with Discord"]
1291pub const EOS_EExternalAccountType_EOS_EAT_DISCORD: EOS_EExternalAccountType = 4;
1292#[doc = " External account is associated with GOG"]
1293pub const EOS_EExternalAccountType_EOS_EAT_GOG: EOS_EExternalAccountType = 5;
1294#[doc = " External account is associated with Nintendo\n\n With both EOS Connect and EOS UserInfo APIs, the associated account type is Nintendo Service Account ID.\n Local user authentication is possible using Nintendo Account ID, while the account type does not get exposed to the SDK in queries related to linked accounts information."]
1295pub const EOS_EExternalAccountType_EOS_EAT_NINTENDO: EOS_EExternalAccountType = 6;
1296#[doc = " External account is associated with Uplay"]
1297pub const EOS_EExternalAccountType_EOS_EAT_UPLAY: EOS_EExternalAccountType = 7;
1298#[doc = " External account is associated with an OpenID Provider"]
1299pub const EOS_EExternalAccountType_EOS_EAT_OPENID: EOS_EExternalAccountType = 8;
1300#[doc = " External account is associated with Apple"]
1301pub const EOS_EExternalAccountType_EOS_EAT_APPLE: EOS_EExternalAccountType = 9;
1302#[doc = " External account is associated with Google"]
1303pub const EOS_EExternalAccountType_EOS_EAT_GOOGLE: EOS_EExternalAccountType = 10;
1304#[doc = " External account is associated with Oculus"]
1305pub const EOS_EExternalAccountType_EOS_EAT_OCULUS: EOS_EExternalAccountType = 11;
1306#[doc = " External account is associated with itch.io"]
1307pub const EOS_EExternalAccountType_EOS_EAT_ITCHIO: EOS_EExternalAccountType = 12;
1308#[doc = " External account is associated with Amazon"]
1309pub const EOS_EExternalAccountType_EOS_EAT_AMAZON: EOS_EExternalAccountType = 13;
1310#[doc = " External account is associated with Viveport"]
1311pub const EOS_EExternalAccountType_EOS_EAT_VIVEPORT: EOS_EExternalAccountType = 14;
1312pub const EOS_EExternalAccountType___EOS_EExternalAccountType_PAD_INT32__:
1313    EOS_EExternalAccountType = 2147483647;
1314#[doc = " All supported external account providers\n\n @see EOS_Connect_QueryExternalAccountMappings"]
1315pub type EOS_EExternalAccountType = ::std::os::raw::c_int;
1316#[doc = " Epic Account Services Token\n\n Using ID Token is preferred, retrieved with EOS_Auth_CopyIdToken that returns EOS_Auth_IdToken::JsonWebToken.\n Using Auth Token is supported for backwards compatibility, retrieved with EOS_Auth_CopyUserAuthToken that returns EOS_Auth_Token::AccessToken.\n\n Supported with EOS_Connect_Login.\n\n @see EOS_Auth_CopyIdToken\n @see EOS_Auth_CopyUserAuthToken"]
1317pub const EOS_EExternalCredentialType_EOS_ECT_EPIC: EOS_EExternalCredentialType = 0;
1318#[doc = " Steam Encrypted App Ticket\n Note that EOS_ECT_STEAM_APP_TICKET is deprecated for use with EOS_Auth_Login. Use EOS_ECT_STEAM_SESSION_TICKET instead.\n\n Generated using the ISteamUser::RequestEncryptedAppTicket API of Steamworks SDK.\n For ticket generation parameters, use pDataToInclude(NULL) and cbDataToInclude(0).\n\n The retrieved App Ticket byte buffer needs to be converted into a hex-encoded UTF-8 string (e.g. \"FA87097A..\") before passing it to the EOS_Connect_Login API.\n EOS_ByteArray_ToString can be used for this conversion.\n\n Supported with EOS_Connect_Login.\n\n @see EOS_ECT_STEAM_SESSION_TICKET"]
1319pub const EOS_EExternalCredentialType_EOS_ECT_STEAM_APP_TICKET: EOS_EExternalCredentialType = 1;
1320#[doc = " PlayStation(TM)Network ID Token\n\n Retrieved from the PlayStation(R) SDK. Please see first-party documentation for additional information.\n\n Supported with EOS_Auth_Login, EOS_Connect_Login."]
1321pub const EOS_EExternalCredentialType_EOS_ECT_PSN_ID_TOKEN: EOS_EExternalCredentialType = 2;
1322#[doc = " Xbox Live XSTS Token\n\n Retrieved from the GDK and XDK. Please see first-party documentation for additional information.\n\n Supported with EOS_Auth_Login, EOS_Connect_Login."]
1323pub const EOS_EExternalCredentialType_EOS_ECT_XBL_XSTS_TOKEN: EOS_EExternalCredentialType = 3;
1324#[doc = " Discord Access Token\n\n Retrieved using the ApplicationManager::GetOAuth2Token API of Discord SDK.\n\n Supported with EOS_Connect_Login."]
1325pub const EOS_EExternalCredentialType_EOS_ECT_DISCORD_ACCESS_TOKEN: EOS_EExternalCredentialType = 4;
1326#[doc = " GOG Galaxy Encrypted App Ticket\n\n Generated using the IUser::RequestEncryptedAppTicket API of GOG Galaxy SDK.\n For ticket generation parameters, use data(NULL) and dataSize(0).\n\n The retrieved App Ticket byte buffer needs to be converted into a hex-encoded UTF-8 string (e.g. \"FA87097A..\") before passing it to the EOS_Connect_Login API.\n For C/C++ API integration, use the EOS_ByteArray_ToString API for the conversion.\n For C# integration, you can use <see cref=\"Helper.ToHexString\" /> for the conversion.\n\n Supported with EOS_Connect_Login."]
1327pub const EOS_EExternalCredentialType_EOS_ECT_GOG_SESSION_TICKET: EOS_EExternalCredentialType = 5;
1328#[doc = " Nintendo Account ID Token\n\n Identifies a Nintendo user account and is acquired through web flow authentication where the local user logs in using their email address/sign-in ID and password.\n This is the common Nintendo account that users login with outside the Nintendo Switch device.\n\n Supported with EOS_Auth_Login, EOS_Connect_Login.\n\n Note: EOS_Auth_Login usage is restricted to Epic first party products only, attempting to use it will result in authentication failures."]
1329pub const EOS_EExternalCredentialType_EOS_ECT_NINTENDO_ID_TOKEN: EOS_EExternalCredentialType = 6;
1330#[doc = " Nintendo Service Account ID Token (NSA ID)\n\n The NSA ID identifies uniquely the local Nintendo Switch device. The authentication token is acquired locally without explicit user credentials.\n As such, it is the primary authentication method for seamless login on Nintendo Switch.\n\n The NSA ID is not exposed directly to the user and does not provide any means for login outside the local device.\n Because of this, Nintendo Switch users will need to link their Nintendo Account or another external user account\n to their Product User ID in order to share their game progression across other platforms. Otherwise, the user will\n not be able to login to their existing Product User ID on another platform due to missing login credentials to use.\n It is recommended that the game explicitly communicates this restriction to the user so that they will know to add\n the first linked external account on the Nintendo Switch device and then proceed with login on another platform.\n\n In addition to sharing cross-platform game progression, linking the Nintendo Account or another external account\n will allow preserving the game progression permanently. Otherwise, the game progression will be tied only to the\n local device. In case the user loses access to their local device, they will not be able to recover the game\n progression if it is only associated with this account type.\n\n Supported with EOS_Auth_Login, EOS_Connect_Login.\n\n Note: EOS_Auth_Login usage is restricted to Epic first party products only, attempting to use it will result in authentication failures."]
1331pub const EOS_EExternalCredentialType_EOS_ECT_NINTENDO_NSA_ID_TOKEN: EOS_EExternalCredentialType =
1332    7;
1333#[doc = " Uplay Access Token\n\n Supported with EOS_Connect_Login."]
1334pub const EOS_EExternalCredentialType_EOS_ECT_UPLAY_ACCESS_TOKEN: EOS_EExternalCredentialType = 8;
1335#[doc = " OpenID Provider Access Token\n\n Supported with EOS_Connect_Login."]
1336pub const EOS_EExternalCredentialType_EOS_ECT_OPENID_ACCESS_TOKEN: EOS_EExternalCredentialType = 9;
1337#[doc = " Device ID access token that identifies the current locally logged in user profile on the local device.\n The local user profile here refers to the operating system user login, for example the user's Windows Account\n or on a mobile device the default active user profile.\n\n This credential type is used to automatically login the local user using the EOS Connect Device ID feature.\n\n The intended use of the Device ID feature is to allow automatically logging in the user on a mobile device\n and to allow playing the game without requiring the user to necessarily login using a real user account at all.\n This makes a seamless first-time experience possible and allows linking the local device with a real external\n user account at a later time, sharing the same EOS_ProductUserId that is being used with the Device ID feature.\n\n Supported with EOS_Connect_Login.\n\n @see EOS_Connect_CreateDeviceId"]
1338pub const EOS_EExternalCredentialType_EOS_ECT_DEVICEID_ACCESS_TOKEN: EOS_EExternalCredentialType =
1339    10;
1340#[doc = " Apple ID Token\n\n Supported with EOS_Connect_Login."]
1341pub const EOS_EExternalCredentialType_EOS_ECT_APPLE_ID_TOKEN: EOS_EExternalCredentialType = 11;
1342#[doc = " Google ID Token\n\n Supported with EOS_Connect_Login."]
1343pub const EOS_EExternalCredentialType_EOS_ECT_GOOGLE_ID_TOKEN: EOS_EExternalCredentialType = 12;
1344#[doc = " Oculus User ID and Nonce\n\n Call ovr_User_GetUserProof(), or Platform.User.GetUserProof() if you are using Unity, to retrieve the nonce.\n Then pass the local User ID and the Nonce as a \"{UserID}|{Nonce}\" formatted string for the EOS_Connect_Login Token parameter.\n\n Note that in order to successfully retrieve a valid non-zero id for the local user using ovr_User_GetUser(),\n your Oculus App needs to be configured in the Oculus Developer Dashboard to have the User ID feature enabled.\n\n Supported with EOS_Connect_Login."]
1345pub const EOS_EExternalCredentialType_EOS_ECT_OCULUS_USERID_NONCE: EOS_EExternalCredentialType = 13;
1346#[doc = " itch.io JWT Access Token\n\n Use the itch.io app manifest to receive a JWT access token for the local user via the ITCHIO_API_KEY process environment variable.\n The itch.io access token is valid for 7 days after which the game needs to be restarted by the user as otherwise EOS Connect\n authentication session can no longer be refreshed.\n\n Supported with EOS_Connect_Login."]
1347pub const EOS_EExternalCredentialType_EOS_ECT_ITCHIO_JWT: EOS_EExternalCredentialType = 14;
1348#[doc = " itch.io Key Access Token\n\n This access token type is retrieved through the OAuth 2.0 authentication flow for the itch.io application.\n\n Supported with EOS_Connect_Login."]
1349pub const EOS_EExternalCredentialType_EOS_ECT_ITCHIO_KEY: EOS_EExternalCredentialType = 15;
1350#[doc = " Epic Games ID Token\n\n Acquired using EOS_Auth_CopyIdToken that returns EOS_Auth_IdToken::JsonWebToken.\n\n Supported with EOS_Connect_Login."]
1351pub const EOS_EExternalCredentialType_EOS_ECT_EPIC_ID_TOKEN: EOS_EExternalCredentialType = 16;
1352#[doc = " Amazon Access Token\n\n Supported with EOS_Connect_Login."]
1353pub const EOS_EExternalCredentialType_EOS_ECT_AMAZON_ACCESS_TOKEN: EOS_EExternalCredentialType = 17;
1354#[doc = " Steam Auth Session Ticket\n\n Generated using the ISteamUser::GetAuthTicketForWebApi API of Steamworks SDK.\n\n @attention\n The pchIdentity input parameter of GetAuthTicketForWebApi API must be set to a valid non-empty string value.\n The string value used by the game client must match identically to the backend-configured value in EOS Dev Portal.\n The recommended value to use is \"epiconlineservices\" in lowercase, matching the default value for new Steam identity provider credentials in EOS Dev Portal.\n This identifier is important for security reasons to prevent session hijacking. Applications must use a dedicated unique identity identifier for Session Tickets passed to the EOS SDK APIs.\n Session Tickets using the EOS-assigned identifier must not be used with anything else than the EOS SDK APIs. You must use a different identifier when generating Session Tickets to authenticate with other parties.\n\n @warning\n To update an already live game to use the new GetAuthTicketForWebApi API instead of the deprecated GetAuthSessionTicket API, follow these steps in this order to prevent breaking the live game for players:\n 1. Update your game client code to use the new ISteamUser::GetAuthTicketForWebApi API.\n 2. Publish the new game client update to end-users.\n 3. Update the existing Steam identity provider credentials entry in EOS Dev Portal to use the same identity string identifier as the game client.\n\n @example\n SteamUser()->GetAuthTicketForWebApi(\"epiconlineservices\");\n\n The retrieved Auth Session Ticket byte buffer needs to be converted into a hex-encoded UTF-8 string (e.g. \"FA87097A..\") before passing it to the EOS_Auth_Login or EOS_Connect_Login APIs.\n EOS_ByteArray_ToString can be used for this conversion.\n\n Supported with EOS_Auth_Login, EOS_Connect_Login.\n\n @version 1.15.1+"]
1355pub const EOS_EExternalCredentialType_EOS_ECT_STEAM_SESSION_TICKET: EOS_EExternalCredentialType =
1356    18;
1357#[doc = " VIVEPORT User Session Token\n\n Supported with EOS_Connect_Login."]
1358pub const EOS_EExternalCredentialType_EOS_ECT_VIVEPORT_USER_TOKEN: EOS_EExternalCredentialType = 19;
1359pub const EOS_EExternalCredentialType___EOS_EExternalCredentialType_PAD_INT32__:
1360    EOS_EExternalCredentialType = 2147483647;
1361#[doc = " List of the supported identity providers to authenticate a user.\n\n The type of authentication token is specific to each provider.\n Tokens in string format should be passed as-is to the function.\n Tokens retrieved as raw byte arrays should be converted into a hex-encoded UTF-8 string (e.g. \"FA87097A..\") before being passed to the function.\n EOS_ByteArray_ToString can be used for this conversion.\n\n @see EOS_Auth_Login\n @see EOS_Connect_Login"]
1362pub type EOS_EExternalCredentialType = ::std::os::raw::c_int;
1363#[doc = " This type is used to distinguish between different supported integrated platforms.\n Integrated platforms which are common across multiple host platforms will be defined here."]
1364pub type EOS_IntegratedPlatformType = *const ::std::os::raw::c_char;
1365#[doc = " This type is used to distinguish between different online platforms."]
1366pub type EOS_OnlinePlatformType = u32;
1367#[repr(C)]
1368#[derive(Debug, Copy, Clone)]
1369pub struct EOS_IntegratedPlatformOptionsContainerHandle {
1370    _unused: [u8; 0],
1371}
1372pub type EOS_HIntegratedPlatformOptionsContainer =
1373    *mut EOS_IntegratedPlatformOptionsContainerHandle;
1374#[repr(C)]
1375#[derive(Debug, Copy, Clone)]
1376pub struct EOS_IntegratedPlatformHandle {
1377    _unused: [u8; 0],
1378}
1379pub type EOS_HIntegratedPlatform = *mut EOS_IntegratedPlatformHandle;
1380#[doc = " The integrated platform library should be disabled. This is equivalent to providing no flags."]
1381pub const EOS_EIntegratedPlatformManagementFlags_EOS_IPMF_Disabled:
1382    EOS_EIntegratedPlatformManagementFlags = 1;
1383#[doc = " The integrated platform library is managed by the calling application. EOS SDK should only hook into an existing instance of the integrated platform library."]
1384pub const EOS_EIntegratedPlatformManagementFlags_EOS_IPMF_LibraryManagedByApplication:
1385    EOS_EIntegratedPlatformManagementFlags = 2;
1386#[doc = " EOS SDK should fully manage the integrated platform library. It will do this by performing the load, initialize, tick and unload operations as necessary."]
1387pub const EOS_EIntegratedPlatformManagementFlags_EOS_IPMF_LibraryManagedBySDK:
1388    EOS_EIntegratedPlatformManagementFlags = 4;
1389#[doc = " The EOS SDK should not mirror the EOS rich presence with the Integrated Platform.\n The default behavior is for EOS SDK to share local presence with the Integrated Platform."]
1390pub const EOS_EIntegratedPlatformManagementFlags_EOS_IPMF_DisablePresenceMirroring:
1391    EOS_EIntegratedPlatformManagementFlags = 8;
1392#[doc = " EOS SDK should not perform any sessions management through the Integrated Platform.\n The default behavior is for EOS SDK to perform sessions management through the Integrated Platform.\n Sessions management includes:\n    - sharing the lobby and session presence enabled games with the Integrated Platform.\n    - handling Social Overlay join button events which cannot be handled by normal processing of Epic Services.\n    - handling Social Overlay invite button events which cannot be handled by normal processing of Epic Services.\n    - handling startup requests from the Integrated Platform to immediately join a game due to in invite while offline.\n\n @see EOS_Lobby_AddNotifySendLobbyNativeInviteRequested"]
1393pub const EOS_EIntegratedPlatformManagementFlags_EOS_IPMF_DisableSDKManagedSessions:
1394    EOS_EIntegratedPlatformManagementFlags = 16;
1395#[doc = " Some features within the EOS SDK may wish to know a preference of Integrated Platform versus EOS.\n When determining an absolute platform preference those with this flag will be skipped.\n The IntegratedPlatforms list is provided via the EOS_Platform_Options during EOS_Platform_Create.\n\n The primary usage of the EOS_IPMF_PreferEOSIdentity and EOS_IPMF_PreferIntegratedIdentity flags is with game invites\n from the Social Overlay.\n\n For game invites from the Social Overlay the EOS SDK will follow these rules:\n     - If the only account ID we can determine for the target player is an EAS ID then the EOS system will be used.\n     - If the only account ID we can determine for the target player is an integrated platform ID then the integrated platform system will be used.\n     - If both are available then the EOS SDK will operate in 1 of 3 modes:\n         - no preference identified: use both the EOS and integrated platform systems.\n         - PreferEOS: Use EOS if the target is an EAS friend and is either online in EAS or not online for the integrated platform.\n         - PreferIntegrated: Use integrated platform if the target is an integrated platform friend and is either online in the integrated platform or not online for EAS.\n     - If the integrated platform fails to send then try EAS if was not already used."]
1396pub const EOS_EIntegratedPlatformManagementFlags_EOS_IPMF_PreferEOSIdentity:
1397    EOS_EIntegratedPlatformManagementFlags = 32;
1398#[doc = " Some features within the EOS SDK may wish to know a preference of Integrated Platform versus EOS.\n For further explanation see EOS_IPMF_PreferEOSIdentity.\n\n @see EOS_IPMF_PreferEOSIdentity"]
1399pub const EOS_EIntegratedPlatformManagementFlags_EOS_IPMF_PreferIntegratedIdentity:
1400    EOS_EIntegratedPlatformManagementFlags = 64;
1401#[doc = " By default the EOS SDK will attempt to detect the login/logout events of local users and update local states accordingly. Setting this flag will disable this functionality,\n relying on the application to process login/logout events and notify EOS SDK. It is not possible for the EOS SDK to do this on all platforms, making this flag not always\n optional.\n\n This flag must be set to use the manual platform user login/logout functions, even on platforms where it is not possible for the EOS SDK to detect login/logout events,\n making this a required flag for correct Integrated Platform behavior on those platforms."]
1402pub const EOS_EIntegratedPlatformManagementFlags_EOS_IPMF_ApplicationManagedIdentityLogin:
1403    EOS_EIntegratedPlatformManagementFlags = 128;
1404pub const EOS_EIntegratedPlatformManagementFlags___EOS_EIntegratedPlatformManagementFlags_PAD_INT32__ : EOS_EIntegratedPlatformManagementFlags = 2147483647 ;
1405#[doc = " These flags are used to determine how a specific Integrated Platform will be managed."]
1406pub type EOS_EIntegratedPlatformManagementFlags = ::std::os::raw::c_int;
1407#[doc = " Initialization options to use with EOS_Platform_Options for integrated platforms.\n\n @see EOS_Platform_Options"]
1408#[repr(C)]
1409#[derive(Debug, Copy, Clone)]
1410pub struct _tagEOS_IntegratedPlatform_Options {
1411    #[doc = " API Version: Set this to EOS_INTEGRATEDPLATFORM_OPTIONS_API_LATEST."]
1412    pub ApiVersion: i32,
1413    #[doc = " The type to be initialized."]
1414    pub Type: EOS_IntegratedPlatformType,
1415    #[doc = " Identifies how to initialize the IntegratedPlatform."]
1416    pub Flags: EOS_EIntegratedPlatformManagementFlags,
1417    #[doc = " Options specific to this integrated platform type.\n This parameter is either required or set to NULL based on the platform type.\n\n @see EOS_IntegratedPlatform_Steam_Options"]
1418    pub InitOptions: *const ::std::os::raw::c_void,
1419}
1420impl Default for _tagEOS_IntegratedPlatform_Options {
1421    fn default() -> Self {
1422        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1423        unsafe {
1424            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1425            s.assume_init()
1426        }
1427    }
1428}
1429#[doc = " Initialization options to use with EOS_Platform_Options for integrated platforms.\n\n @see EOS_Platform_Options"]
1430pub type EOS_IntegratedPlatform_Options = _tagEOS_IntegratedPlatform_Options;
1431#[doc = " Required initialization options to use with EOS_IntegratedPlatform_Options for Steam.\n Steamworks API needs to be at least v1.13\n Steam Sanitization requires at least v1.45\n Starting Steamworks v1.58a onwards, SteamApiInterfaceVersionsArray is required when EOS_IPMF_LibraryManagedBySDK is set.\n\n @see EOS_IntegratedPlatform_Options"]
1432#[repr(C)]
1433#[derive(Debug, Copy, Clone)]
1434pub struct _tagEOS_IntegratedPlatform_Steam_Options {
1435    #[doc = " API Version: Set this to EOS_INTEGRATEDPLATFORM_STEAM_OPTIONS_API_LATEST."]
1436    pub ApiVersion: i32,
1437    #[doc = " Usage of this parameter is dependent on the specified EOS_EIntegratedPlatformManagementFlags.\n\n Optional with EOS_IPMF_LibraryManagedByApplication.\n Set to override the loaded library basename, or use NULL to assume the default basename by platform:\n\n - Linux: libsteam_api.so,\n - macOS: libsteam_api.dylib,\n - Windows 32-bit: steam_api.dll,\n - Windows 64-bit: steam_api64.dll.\n\n Required with EOS_IPMF_LibraryManagedBySDK.\n Set to a fully qualified file path to the Steamworks SDK runtime library on disk."]
1438    pub OverrideLibraryPath: *const ::std::os::raw::c_char,
1439    #[doc = " Used to specify the major version of the Steam SDK your game is compiled against, e.g.:\n\n Options.SteamMajorVersion = 1;"]
1440    pub SteamMajorVersion: u32,
1441    #[doc = " Used to specify the minor version of the Steam SDK your game is compiled against, e.g.:\n\n Options.SteamMinorVersion = 58;"]
1442    pub SteamMinorVersion: u32,
1443    #[doc = " A pointer to a series of null terminated steam interface version names supported by the current steam dll.\n\n This field is only required when the Integrated Platform Management flags has EOS_IPMF_LibraryManagedBySDK set. Else must be set to NULL.\n\n Starting v1.58 the Steam initialization API requires this new field during initialization for version check validations.\n\n Note: The pointer must be valid until after the execution of the EOS_IntegratedPlatformOptionsContainer_Add method.\n\n This value must be constructed from the corresponding steam_api.h header of the steam dll version that is shipped with the game.\n In the steam_api.h header, look for SteamAPI_InitEx() and copy the value of pszInternalCheckInterfaceVersions as it is.\n\n For example in v1.58a its this:\n \tconst char SteamInterfaceVersionsArray[] =\n\t\tSTEAMUTILS_INTERFACE_VERSION \"\\0\"\n\t\tSTEAMNETWORKINGUTILS_INTERFACE_VERSION \"\\0\"\n\t\t...\n\t\tSTEAMUSER_INTERFACE_VERSION \"\\0\"\n\t\tSTEAMVIDEO_INTERFACE_VERSION \"\\0\"\n      \"\\0\";"]
1444    pub SteamApiInterfaceVersionsArray: *const ::std::os::raw::c_char,
1445    #[doc = " Size of the SteamApiInterfaceVersionsArray in bytes. Cannot exceed EOS_INTEGRATEDPLATFORM_STEAM_MAX_STEAMAPIINTERFACEVERSIONSARRAY_SIZE.\n\n This field is only required when the Integrated Platform Management flags has EOS_IPMF_LibraryManagedBySDK set. Else must be set to 0.\n\n Note: Since SteamInterfaceVersionsArray contains a series of null terminated strings, please ensure that strlen() is NOT used to calculate this field.\n For instance, you can use the following to get the array length:\n  const char SteamInterfaceVersionsArray[] =\n      STEAMUTILS_INTERFACE_VERSION \"\\0\"\n\t\tSTEAMNETWORKINGUTILS_INTERFACE_VERSION \"\\0\"\n      ...\n\t\tSTEAMVIDEO_INTERFACE_VERSION \"\\0\"\n      \"\\0\";\n\n  uint32_t SteamApiInterfaceVersionsArrayBytes = sizeof(SteamApiInterfaceVersionsArray) // Note: sizeof() takes into account the last \"\\0\" of the string literal;"]
1446    pub SteamApiInterfaceVersionsArrayBytes: u32,
1447}
1448impl Default for _tagEOS_IntegratedPlatform_Steam_Options {
1449    fn default() -> Self {
1450        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1451        unsafe {
1452            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1453            s.assume_init()
1454        }
1455    }
1456}
1457#[doc = " Required initialization options to use with EOS_IntegratedPlatform_Options for Steam.\n Steamworks API needs to be at least v1.13\n Steam Sanitization requires at least v1.45\n Starting Steamworks v1.58a onwards, SteamApiInterfaceVersionsArray is required when EOS_IPMF_LibraryManagedBySDK is set.\n\n @see EOS_IntegratedPlatform_Options"]
1458pub type EOS_IntegratedPlatform_Steam_Options = _tagEOS_IntegratedPlatform_Steam_Options;
1459#[doc = " Data for the EOS_IntegratedPlatform_CreateIntegratedPlatformOptionsContainer function."]
1460#[repr(C)]
1461#[derive(Debug, Default, Copy, Clone)]
1462pub struct _tagEOS_IntegratedPlatform_CreateIntegratedPlatformOptionsContainerOptions {
1463    #[doc = " API Version: Set this to EOS_INTEGRATEDPLATFORM_CREATEINTEGRATEDPLATFORMOPTIONSCONTAINER_API_LATEST."]
1464    pub ApiVersion: i32,
1465}
1466#[doc = " Data for the EOS_IntegratedPlatform_CreateIntegratedPlatformOptionsContainer function."]
1467pub type EOS_IntegratedPlatform_CreateIntegratedPlatformOptionsContainerOptions =
1468    _tagEOS_IntegratedPlatform_CreateIntegratedPlatformOptionsContainerOptions;
1469unsafe extern "C" {
1470    #[doc = " Creates an integrated platform options container handle. This handle can used to add multiple options to your container which will then be applied with EOS_Platform_Create.\n The resulting handle must be released by calling EOS_IntegratedPlatformOptionsContainer_Release once it has been passed to EOS_Platform_Create.\n\n @param Options structure containing operation input parameters.\n @param OutIntegratedPlatformOptionsContainerHandle Pointer to an integrated platform options container handle to be set if successful.\n @return Success if we successfully created the integrated platform options container handle pointed at in OutIntegratedPlatformOptionsContainerHandle, or an error result if the input data was invalid.\n\n @see EOS_IntegratedPlatformOptionsContainer_Release\n @see EOS_Platform_Create\n @see EOS_IntegratedPlatformOptionsContainer_Add"]
1471    pub fn EOS_IntegratedPlatform_CreateIntegratedPlatformOptionsContainer(
1472        Options: *const EOS_IntegratedPlatform_CreateIntegratedPlatformOptionsContainerOptions,
1473        OutIntegratedPlatformOptionsContainerHandle: *mut EOS_HIntegratedPlatformOptionsContainer,
1474    ) -> EOS_EResult;
1475}
1476unsafe extern "C" {
1477    #[doc = " Release the memory associated with an EOS_HIntegratedPlatformOptionsContainer handle. This must be called on Handles retrieved from EOS_IntegratedPlatform_CreateIntegratedPlatformOptionsContainer.\n This can be safely called on a NULL integrated platform options container handle.\n\n @param IntegratedPlatformOptionsContainerHandle The integrated platform options container handle to release.\n\n @see EOS_IntegratedPlatform_CreateIntegratedPlatformOptionsContainer"]
1478    pub fn EOS_IntegratedPlatformOptionsContainer_Release(
1479        IntegratedPlatformOptionsContainerHandle: EOS_HIntegratedPlatformOptionsContainer,
1480    );
1481}
1482#[doc = " Data for the EOS_IntegratedPlatformOptionsContainer_Add function."]
1483#[repr(C)]
1484#[derive(Debug, Copy, Clone)]
1485pub struct _tagEOS_IntegratedPlatformOptionsContainer_AddOptions {
1486    #[doc = " API Version: Set this to EOS_INTEGRATEDPLATFORMOPTIONSCONTAINER_ADD_API_LATEST."]
1487    pub ApiVersion: i32,
1488    #[doc = " The integrated platform options to add."]
1489    pub Options: *const EOS_IntegratedPlatform_Options,
1490}
1491impl Default for _tagEOS_IntegratedPlatformOptionsContainer_AddOptions {
1492    fn default() -> Self {
1493        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1494        unsafe {
1495            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1496            s.assume_init()
1497        }
1498    }
1499}
1500#[doc = " Data for the EOS_IntegratedPlatformOptionsContainer_Add function."]
1501pub type EOS_IntegratedPlatformOptionsContainer_AddOptions =
1502    _tagEOS_IntegratedPlatformOptionsContainer_AddOptions;
1503#[doc = " Input parameters for the EOS_IntegratedPlatform_SetUserLoginStatus function."]
1504#[repr(C)]
1505#[derive(Debug, Copy, Clone)]
1506pub struct _tagEOS_IntegratedPlatform_SetUserLoginStatusOptions {
1507    #[doc = " API Version: Set this to EOS_INTEGRATEDPLATFORM_SETUSERLOGINSTATUS_API_LATEST."]
1508    pub ApiVersion: i32,
1509    #[doc = " The integrated platform this user belongs to."]
1510    pub PlatformType: EOS_IntegratedPlatformType,
1511    #[doc = " String version of the integrated platform-dependent user id."]
1512    pub LocalPlatformUserId: *const ::std::os::raw::c_char,
1513    #[doc = " The login status of the provided user"]
1514    pub CurrentLoginStatus: EOS_ELoginStatus,
1515}
1516impl Default for _tagEOS_IntegratedPlatform_SetUserLoginStatusOptions {
1517    fn default() -> Self {
1518        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1519        unsafe {
1520            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1521            s.assume_init()
1522        }
1523    }
1524}
1525#[doc = " Input parameters for the EOS_IntegratedPlatform_SetUserLoginStatus function."]
1526pub type EOS_IntegratedPlatform_SetUserLoginStatusOptions =
1527    _tagEOS_IntegratedPlatform_SetUserLoginStatusOptions;
1528#[doc = " Input parameters for the EOS_IntegratedPlatform_AddNotifyUserLoginStatusChanged function."]
1529#[repr(C)]
1530#[derive(Debug, Default, Copy, Clone)]
1531pub struct _tagEOS_IntegratedPlatform_AddNotifyUserLoginStatusChangedOptions {
1532    #[doc = " API Version: Set this to EOS_INTEGRATEDPLATFORM_ADDNOTIFYUSERLOGINSTATUSCHANGED_API_LATEST."]
1533    pub ApiVersion: i32,
1534}
1535#[doc = " Input parameters for the EOS_IntegratedPlatform_AddNotifyUserLoginStatusChanged function."]
1536pub type EOS_IntegratedPlatform_AddNotifyUserLoginStatusChangedOptions =
1537    _tagEOS_IntegratedPlatform_AddNotifyUserLoginStatusChangedOptions;
1538#[doc = " Data about which integrated platform and which user that had a login status change and what the login status changed to."]
1539#[repr(C)]
1540#[derive(Debug, Copy, Clone)]
1541pub struct _tagEOS_IntegratedPlatform_UserLoginStatusChangedCallbackInfo {
1542    #[doc = " Context that was passed into EOS_IntegratedPlatform_AddNotifyUserLoginStatusChanged"]
1543    pub ClientData: *mut ::std::os::raw::c_void,
1544    #[doc = " The integrated platform of the local platform user."]
1545    pub PlatformType: EOS_IntegratedPlatformType,
1546    #[doc = " String version of platform's user id."]
1547    pub LocalPlatformUserId: *const ::std::os::raw::c_char,
1548    #[doc = " The Epic Games Account ID associated with this Integrated Platform's User (if there is one)"]
1549    pub AccountId: EOS_EpicAccountId,
1550    #[doc = " The EOS Product User ID associated with this Integrated Platform's User (if there is one)"]
1551    pub ProductUserId: EOS_ProductUserId,
1552    #[doc = " The login status prior to this change."]
1553    pub PreviousLoginStatus: EOS_ELoginStatus,
1554    #[doc = " The login status at the time of this notification."]
1555    pub CurrentLoginStatus: EOS_ELoginStatus,
1556}
1557impl Default for _tagEOS_IntegratedPlatform_UserLoginStatusChangedCallbackInfo {
1558    fn default() -> Self {
1559        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1560        unsafe {
1561            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1562            s.assume_init()
1563        }
1564    }
1565}
1566#[doc = " Data about which integrated platform and which user that had a login status change and what the login status changed to."]
1567pub type EOS_IntegratedPlatform_UserLoginStatusChangedCallbackInfo =
1568    _tagEOS_IntegratedPlatform_UserLoginStatusChangedCallbackInfo;
1569#[doc = " The callback function for when a local integrated platform user's login status has changed."]
1570pub type EOS_IntegratedPlatform_OnUserLoginStatusChangedCallback = ::std::option::Option<
1571    unsafe extern "C" fn(Data: *const EOS_IntegratedPlatform_UserLoginStatusChangedCallbackInfo),
1572>;
1573#[doc = " Input parameters for the EOS_IntegratedPlatform_SetUserPreLogoutCallback function."]
1574#[repr(C)]
1575#[derive(Debug, Default, Copy, Clone)]
1576pub struct _tagEOS_IntegratedPlatform_SetUserPreLogoutCallbackOptions {
1577    #[doc = " API Version: Set this to EOS_INTEGRATEDPLATFORM_SETUSERPRELOGOUTCALLBACK_API_LATEST."]
1578    pub ApiVersion: i32,
1579}
1580#[doc = " Input parameters for the EOS_IntegratedPlatform_SetUserPreLogoutCallback function."]
1581pub type EOS_IntegratedPlatform_SetUserPreLogoutCallbackOptions =
1582    _tagEOS_IntegratedPlatform_SetUserPreLogoutCallbackOptions;
1583#[doc = " The application accepts the user being logged-out. all cached data for the user will be cleared immediately and any pending\n actions canceled."]
1584pub const EOS_EIntegratedPlatformPreLogoutAction_EOS_IPLA_ProcessLogoutImmediately:
1585    EOS_EIntegratedPlatformPreLogoutAction = 0;
1586#[doc = " Instead of the user being logged-out, the SDK will wait for a call to EOS_IntegratedPlatform_FinalizeDeferredUserLogout with the\n expected login state of the user. If the expected state matches the current state, the user will continue to be logged-in or they\n will be logged-out, depending on the value of the expected state. This lets the application choose to ask the user if they meant\n to logout if it wishes, possibly preventing losing any unsaved changes, such as game progress, leaving a multiplayer match, or\n similar.\n\n @see EOS_IntegratedPlatform_FinalizeDeferredUserLogout"]
1587pub const EOS_EIntegratedPlatformPreLogoutAction_EOS_IPLA_DeferLogout:
1588    EOS_EIntegratedPlatformPreLogoutAction = 1;
1589pub const EOS_EIntegratedPlatformPreLogoutAction___EOS_EIntegratedPlatformPreLogoutAction_PAD_INT32__ : EOS_EIntegratedPlatformPreLogoutAction = 2147483647 ;
1590#[doc = " The return value for the EOS_IntegratedPlatform_OnUserPreLogoutCallback callback function. This signifies what the application wants to do for\n the provided user of the integrated platform."]
1591pub type EOS_EIntegratedPlatformPreLogoutAction = ::std::os::raw::c_int;
1592#[doc = " Data passed to the application in the EOS_IntegratedPlatform_OnUserPreLogoutCallback function. This contains which user and associated\n Integrated Platform that was detected as logged-out."]
1593#[repr(C)]
1594#[derive(Debug, Copy, Clone)]
1595pub struct _tagEOS_IntegratedPlatform_UserPreLogoutCallbackInfo {
1596    #[doc = " Context that was passed into EOS_IntegratedPlatform_SetUserPreLogoutCallback"]
1597    pub ClientData: *mut ::std::os::raw::c_void,
1598    #[doc = " The integrated platform the local user logged-out of."]
1599    pub PlatformType: EOS_IntegratedPlatformType,
1600    #[doc = " String version of platform-dependent user id."]
1601    pub LocalPlatformUserId: *const ::std::os::raw::c_char,
1602    #[doc = " The Epic Games Account ID associated with this Integrated Platform's User (if there is one)"]
1603    pub AccountId: EOS_EpicAccountId,
1604    #[doc = " The EOS Product User ID associated with this Integrated Platform's User (if there is one)"]
1605    pub ProductUserId: EOS_ProductUserId,
1606}
1607impl Default for _tagEOS_IntegratedPlatform_UserPreLogoutCallbackInfo {
1608    fn default() -> Self {
1609        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1610        unsafe {
1611            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1612            s.assume_init()
1613        }
1614    }
1615}
1616#[doc = " Data passed to the application in the EOS_IntegratedPlatform_OnUserPreLogoutCallback function. This contains which user and associated\n Integrated Platform that was detected as logged-out."]
1617pub type EOS_IntegratedPlatform_UserPreLogoutCallbackInfo =
1618    _tagEOS_IntegratedPlatform_UserPreLogoutCallbackInfo;
1619#[doc = " The callback function for when an integrated platform user is detected to have logged-out."]
1620pub type EOS_IntegratedPlatform_OnUserPreLogoutCallback = ::std::option::Option<
1621    unsafe extern "C" fn(
1622        Data: *const EOS_IntegratedPlatform_UserPreLogoutCallbackInfo,
1623    ) -> EOS_EIntegratedPlatformPreLogoutAction,
1624>;
1625#[doc = " Input parameters for the EOS_IntegratedPlatform_ClearUserPreLogoutCallback function."]
1626#[repr(C)]
1627#[derive(Debug, Default, Copy, Clone)]
1628pub struct _tagEOS_IntegratedPlatform_ClearUserPreLogoutCallbackOptions {
1629    #[doc = " API Version: Set this to EOS_INTEGRATEDPLATFORM_CLEARUSERPRELOGOUTCALLBACK_API_LATEST."]
1630    pub ApiVersion: i32,
1631}
1632#[doc = " Input parameters for the EOS_IntegratedPlatform_ClearUserPreLogoutCallback function."]
1633pub type EOS_IntegratedPlatform_ClearUserPreLogoutCallbackOptions =
1634    _tagEOS_IntegratedPlatform_ClearUserPreLogoutCallbackOptions;
1635#[doc = " Input parameters for the EOS_IntegratedPlatform_FinalizeDeferredUserLogout function."]
1636#[repr(C)]
1637#[derive(Debug, Copy, Clone)]
1638pub struct _tagEOS_IntegratedPlatform_FinalizeDeferredUserLogoutOptions {
1639    #[doc = " API Version: Set this to EOS_INTEGRATEDPLATFORM_FINALIZEDEFERREDUSERLOGOUT_API_LATEST."]
1640    pub ApiVersion: i32,
1641    #[doc = " The integrated platform this user belongs to."]
1642    pub PlatformType: EOS_IntegratedPlatformType,
1643    #[doc = " String version of the integrated platform-dependent user id."]
1644    pub LocalPlatformUserId: *const ::std::os::raw::c_char,
1645    #[doc = " The logged-in state the user is expected to be (EOS_LS_LoggedIn or EOS_LS_NotLoggedIn). If the provided\n state does not match internal EOS state, this function will return in failure. If the state is incorrect,\n the application should wait and attempt to call the function again next tick, after both updating its own\n state from the system and calling EOS_Platform_Tick, allowing the SDK to update its state from the system\n as well."]
1646    pub ExpectedLoginStatus: EOS_ELoginStatus,
1647}
1648impl Default for _tagEOS_IntegratedPlatform_FinalizeDeferredUserLogoutOptions {
1649    fn default() -> Self {
1650        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1651        unsafe {
1652            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1653            s.assume_init()
1654        }
1655    }
1656}
1657#[doc = " Input parameters for the EOS_IntegratedPlatform_FinalizeDeferredUserLogout function."]
1658pub type EOS_IntegratedPlatform_FinalizeDeferredUserLogoutOptions =
1659    _tagEOS_IntegratedPlatform_FinalizeDeferredUserLogoutOptions;
1660#[repr(C)]
1661#[derive(Debug, Copy, Clone)]
1662pub struct EOS_PlatformHandle {
1663    _unused: [u8; 0],
1664}
1665pub type EOS_HPlatform = *mut EOS_PlatformHandle;
1666#[doc = " Client credentials."]
1667#[repr(C)]
1668#[derive(Debug, Copy, Clone)]
1669pub struct _tagEOS_Platform_ClientCredentials {
1670    #[doc = " Client ID of the service permissions entry. Set to NULL if no service permissions are used. Max length is EOS_PLATFORM_CLIENTCREDENTIALS_CLIENTID_MAX_LENGTH."]
1671    pub ClientId: *const ::std::os::raw::c_char,
1672    #[doc = " Client secret for accessing the set of permissions. Set to NULL if no service permissions are used. Max length is EOS_PLATFORM_CLIENTCREDENTIALS_CLIENTSECRET_MAX_LENGTH."]
1673    pub ClientSecret: *const ::std::os::raw::c_char,
1674}
1675impl Default for _tagEOS_Platform_ClientCredentials {
1676    fn default() -> Self {
1677        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1678        unsafe {
1679            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1680            s.assume_init()
1681        }
1682    }
1683}
1684#[doc = " Client credentials."]
1685pub type EOS_Platform_ClientCredentials = _tagEOS_Platform_ClientCredentials;
1686#[doc = " Upon entering a background application status, all logged in users leave any RTC rooms. All subsequent attempts to join any RTC rooms will be rejected.\n Upon returning to a foreground application status, all subsequent attempts to join any RTC rooms will be allowed."]
1687pub const EOS_ERTCBackgroundMode_EOS_RTCBM_LeaveRooms: EOS_ERTCBackgroundMode = 0;
1688#[doc = " Application status has no effect on RTC rooms. Audio is captured from input devices and is played to output devices.\n Games should obtain consent from users and otherwise make users aware this is occurring."]
1689pub const EOS_ERTCBackgroundMode_EOS_RTCBM_KeepRoomsAlive: EOS_ERTCBackgroundMode = 1;
1690pub const EOS_ERTCBackgroundMode___EOS_ERTCBackgroundMode_PAD_INT32__: EOS_ERTCBackgroundMode =
1691    2147483647;
1692#[doc = " All background modes supported by the RTC components"]
1693pub type EOS_ERTCBackgroundMode = ::std::os::raw::c_int;
1694#[doc = " Platform RTC options."]
1695#[repr(C)]
1696#[derive(Debug, Copy, Clone)]
1697pub struct _tagEOS_Platform_RTCOptions {
1698    #[doc = " API Version: Set this to EOS_PLATFORM_RTCOPTIONS_API_LATEST."]
1699    pub ApiVersion: i32,
1700    #[doc = " This field is for platform specific initialization if any.\n\n If provided then the structure will be located in \"PLATFORM_NAME\"/eos_\"PLATFORM_NAME\".h.\n The structure will be named EOS_\"PLATFORM_NAME\"_RTCOptions."]
1701    pub PlatformSpecificOptions: *mut ::std::os::raw::c_void,
1702    #[doc = " Configures RTC behavior upon entering to any background application statuses"]
1703    pub BackgroundMode: EOS_ERTCBackgroundMode,
1704    #[doc = " Reserved field, should be nullptr by default"]
1705    pub Reserved: *mut ::std::os::raw::c_void,
1706}
1707impl Default for _tagEOS_Platform_RTCOptions {
1708    fn default() -> Self {
1709        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1710        unsafe {
1711            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1712            s.assume_init()
1713        }
1714    }
1715}
1716#[doc = " Platform RTC options."]
1717pub type EOS_Platform_RTCOptions = _tagEOS_Platform_RTCOptions;
1718#[doc = " Platform options for EOS_Platform_Create."]
1719#[repr(C)]
1720#[derive(Debug, Copy, Clone)]
1721pub struct _tagEOS_Platform_Options {
1722    #[doc = " API Version: Set this to EOS_PLATFORM_OPTIONS_API_LATEST."]
1723    pub ApiVersion: i32,
1724    #[doc = " A reserved field that should always be nulled."]
1725    pub Reserved: *mut ::std::os::raw::c_void,
1726    #[doc = " The product ID for the running application, found on the dev portal. Max length is EOS_PLATFORM_OPTIONS_PRODUCTID_MAX_LENGTH."]
1727    pub ProductId: *const ::std::os::raw::c_char,
1728    #[doc = " The sandbox ID for the running application, found on the dev portal. Max length is EOS_PLATFORM_OPTIONS_SANDBOXID_MAX_LENGTH."]
1729    pub SandboxId: *const ::std::os::raw::c_char,
1730    #[doc = " Set of service permissions associated with the running application"]
1731    pub ClientCredentials: EOS_Platform_ClientCredentials,
1732    #[doc = " Set this to EOS_FALSE if the application is running as a client with a local user, otherwise set to EOS_TRUE (e.g. for a dedicated game server)"]
1733    pub bIsServer: EOS_Bool,
1734    #[doc = " Used by Player Data Storage and Title Storage. Must be null initialized if unused. 256-bit Encryption Key for file encryption in hexadecimal format; EOS_PLATFORM_OPTIONS_ENCRYPTIONKEY_LENGTH hex chars."]
1735    pub EncryptionKey: *const ::std::os::raw::c_char,
1736    #[doc = " The override country code to use for the logged in user. (EOS_COUNTRYCODE_MAX_LENGTH)"]
1737    pub OverrideCountryCode: *const ::std::os::raw::c_char,
1738    #[doc = " The override locale code to use for the logged in user. This follows ISO 639. (EOS_LOCALECODE_MAX_LENGTH)"]
1739    pub OverrideLocaleCode: *const ::std::os::raw::c_char,
1740    #[doc = " The deployment ID for the running application, found on the dev portal. Max length is EOS_PLATFORM_OPTIONS_DEPLOYMENTID_MAX_LENGTH."]
1741    pub DeploymentId: *const ::std::os::raw::c_char,
1742    #[doc = " Platform creation flags, e.g. EOS_PF_LOADING_IN_EDITOR. This is a bitwise-or union of the defined flags."]
1743    pub Flags: u64,
1744    #[doc = " Used by Player Data Storage and Title Storage. Must be null initialized if unused. Cache directory path. Absolute path to the folder that is going to be used for caching temporary data. The path is created if it's missing."]
1745    pub CacheDirectory: *const ::std::os::raw::c_char,
1746    #[doc = " A budget, measured in milliseconds, for EOS_Platform_Tick to do its work. When the budget is met or exceeded (or if no work is available), EOS_Platform_Tick will return.\n This allows your game to amortize the cost of SDK work across multiple frames in the event that a lot of work is queued for processing.\n Zero is interpreted as \"perform all available work\"."]
1747    pub TickBudgetInMilliseconds: u32,
1748    #[doc = " RTC options. Setting to NULL will disable RTC features (e.g. voice)"]
1749    pub RTCOptions: *const EOS_Platform_RTCOptions,
1750    #[doc = " A handle that contains all the options for setting up integrated platforms.\n When set to NULL, the EOS Integrated Platform behavior for the host platform will be disabled."]
1751    pub IntegratedPlatformOptionsContainerHandle: EOS_HIntegratedPlatformOptionsContainer,
1752    #[doc = " Pointer to EOS_\"PLATFORM_NAME\"_SystemSpecificOptions. This structure will be located in \"PLATFORM_NAME\"/eos_\"PLATFORM_NAME\".h"]
1753    pub SystemSpecificOptions: *const ::std::os::raw::c_void,
1754    #[doc = " Number of seconds for a task to wait for the network to become available before timing out with an EOS_TimedOut error.\n This timeout period applies when the network status is not EOS_NS_Online. Tasks that need the network will queue for up to\n this timeout until EOS_Platform_SetNetworkStatus is used to set the network status to online.\n\n Pass a null pointer to use the default.\n Otherwise, pass a pointer to a double containing the number of seconds for tasks that are waiting for network to time out.\n\n @see EOS_Platform_SetNetworkStatus\n @see EOS_ENetworkStatus"]
1755    pub TaskNetworkTimeoutSeconds: *mut f64,
1756}
1757impl Default for _tagEOS_Platform_Options {
1758    fn default() -> Self {
1759        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1760        unsafe {
1761            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1762            s.assume_init()
1763        }
1764    }
1765}
1766#[doc = " Platform options for EOS_Platform_Create."]
1767pub type EOS_Platform_Options = _tagEOS_Platform_Options;
1768#[doc = " Xbox only.\n\n Notifies the SDK that the application has entered constrained mode.\n While in constrained mode, the application has reduced access to reserved system resources."]
1769pub const EOS_EApplicationStatus_EOS_AS_BackgroundConstrained: EOS_EApplicationStatus = 0;
1770#[doc = " Xbox only.\n\n Notifies the SDK that the application has returned from constrained mode,\n and is back to running in a regular state with full access to system resources.\n\n The SDK will handle this state change and automatically transition its active state to EOS_AS_Foreground.\n As result, after the application has set the EOS_AS_BackgroundUnconstrained state,\n calling EOS_Platform_GetApplicationStatus will return EOS_AS_Foreground as the persisted active state."]
1771pub const EOS_EApplicationStatus_EOS_AS_BackgroundUnconstrained: EOS_EApplicationStatus = 1;
1772#[doc = " Notifies the SDK that the application has been put into suspended state by the platform system."]
1773pub const EOS_EApplicationStatus_EOS_AS_BackgroundSuspended: EOS_EApplicationStatus = 2;
1774#[doc = " Notifies the SDK that the application has been resumed from suspended state.\n\n This is the default active state on all platforms."]
1775pub const EOS_EApplicationStatus_EOS_AS_Foreground: EOS_EApplicationStatus = 3;
1776pub const EOS_EApplicationStatus___EOS_EApplicationStatus_PAD_INT32__: EOS_EApplicationStatus =
1777    2147483647;
1778#[doc = " All possible states of the application."]
1779pub type EOS_EApplicationStatus = ::std::os::raw::c_int;
1780unsafe extern "C" {
1781    #[doc = " Gets the string representation of an EOS_EApplicationStatus value.\n\n Example: EOS_EApplicationStatus_ToString(EOS_EApplicationStatus::EOS_AS_Foreground) returns \"EOS_AS_Foreground\".\n\n @param ApplicationStatus EOS_EApplicationStatus value to get as string.\n\n @return Pointer to a static string representing the input enum value.\n         The returned string is guaranteed to be non-null, and must not be freed by the application."]
1782    pub fn EOS_EApplicationStatus_ToString(
1783        ApplicationStatus: EOS_EApplicationStatus,
1784    ) -> *const ::std::os::raw::c_char;
1785}
1786#[doc = " Networking unavailable."]
1787pub const EOS_ENetworkStatus_EOS_NS_Disabled: EOS_ENetworkStatus = 0;
1788#[doc = " Not connected to the internet. Only local area networking (LAN) may be available."]
1789pub const EOS_ENetworkStatus_EOS_NS_Offline: EOS_ENetworkStatus = 1;
1790#[doc = " Connected to the internet."]
1791pub const EOS_ENetworkStatus_EOS_NS_Online: EOS_ENetworkStatus = 2;
1792pub const EOS_ENetworkStatus___EOS_ENetworkStatus_PAD_INT32__: EOS_ENetworkStatus = 2147483647;
1793#[doc = " All possible states of the network."]
1794pub type EOS_ENetworkStatus = ::std::os::raw::c_int;
1795unsafe extern "C" {
1796    #[doc = " Gets the string representation of an EOS_ENetworkStatus value.\n\n Example: EOS_ENetworkStatus_ToString(EOS_ENetworkStatus::EOS_NS_Online) returns \"EOS_NS_Online\".\n\n @param NetworkStatus EOS_ENetworkStatus value to get as string.\n\n @return Pointer to a static string representing the input enum value.\n         The returned string is guaranteed to be non-null, and must not be freed by the application."]
1797    pub fn EOS_ENetworkStatus_ToString(
1798        NetworkStatus: EOS_ENetworkStatus,
1799    ) -> *const ::std::os::raw::c_char;
1800}
1801#[doc = " Desktop crossplay is ready to use."]
1802pub const EOS_EDesktopCrossplayStatus_EOS_DCS_OK: EOS_EDesktopCrossplayStatus = 0;
1803#[doc = " The application was not launched through the Bootstrapper."]
1804pub const EOS_EDesktopCrossplayStatus_EOS_DCS_ApplicationNotBootstrapped:
1805    EOS_EDesktopCrossplayStatus = 1;
1806#[doc = " The redistributable service is not installed."]
1807pub const EOS_EDesktopCrossplayStatus_EOS_DCS_ServiceNotInstalled: EOS_EDesktopCrossplayStatus = 2;
1808#[doc = " The service failed to start."]
1809pub const EOS_EDesktopCrossplayStatus_EOS_DCS_ServiceStartFailed: EOS_EDesktopCrossplayStatus = 3;
1810#[doc = " The service was started successfully, but is no longer running in the background, for an unknown reason."]
1811pub const EOS_EDesktopCrossplayStatus_EOS_DCS_ServiceNotRunning: EOS_EDesktopCrossplayStatus = 4;
1812#[doc = " The application has explicitly disabled the overlay through SDK initialization flags."]
1813pub const EOS_EDesktopCrossplayStatus_EOS_DCS_OverlayDisabled: EOS_EDesktopCrossplayStatus = 5;
1814#[doc = " The overlay is not installed.\n\n As the overlay is automatically installed and kept up-to-date by the redistributable service,\n this indicates that the user may have separately manually removed the installed overlay files."]
1815pub const EOS_EDesktopCrossplayStatus_EOS_DCS_OverlayNotInstalled: EOS_EDesktopCrossplayStatus = 6;
1816#[doc = " The overlay was not loaded due to failing trust check on the digital signature of the file on disk.\n\n This error typically indicates one of the following root causes:\n - The Operating System's local certificate store is out of date.\n - The local system clock has skewed and is in the wrong time.\n - The file has been tampered with.\n - The file trust check timed out, either due to an issue with the local system or network connectivity.\n\n The first troubleshooting steps should be to check for any available Operating System updates,\n for example using the Windows Update, as well as verifying that the system time is correctly set."]
1817pub const EOS_EDesktopCrossplayStatus_EOS_DCS_OverlayTrustCheckFailed: EOS_EDesktopCrossplayStatus =
1818    7;
1819#[doc = " The overlay failed to load."]
1820pub const EOS_EDesktopCrossplayStatus_EOS_DCS_OverlayLoadFailed: EOS_EDesktopCrossplayStatus = 8;
1821pub const EOS_EDesktopCrossplayStatus___EOS_EDesktopCrossplayStatus_PAD_INT32__:
1822    EOS_EDesktopCrossplayStatus = 2147483647;
1823#[doc = " Possible statuses for the availability of desktop crossplay functionality.\n\n @see EOS_Platform_GetDesktopCrossplayStatus"]
1824pub type EOS_EDesktopCrossplayStatus = ::std::os::raw::c_int;
1825#[doc = " Input parameters for the EOS_Platform_GetDesktopCrossplayStatus function."]
1826#[repr(C)]
1827#[derive(Debug, Default, Copy, Clone)]
1828pub struct _tagEOS_Platform_GetDesktopCrossplayStatusOptions {
1829    #[doc = " API Version: Set this to EOS_PLATFORM_GETDESKTOPCROSSPLAYSTATUS_API_LATEST."]
1830    pub ApiVersion: i32,
1831}
1832#[doc = " Input parameters for the EOS_Platform_GetDesktopCrossplayStatus function."]
1833pub type EOS_Platform_GetDesktopCrossplayStatusOptions =
1834    _tagEOS_Platform_GetDesktopCrossplayStatusOptions;
1835#[doc = " Output parameters for the EOS_Platform_GetDesktopCrossplayStatus function."]
1836#[repr(C)]
1837#[derive(Debug, Copy, Clone)]
1838pub struct _tagEOS_Platform_DesktopCrossplayStatusInfo {
1839    #[doc = " Status for the availability of desktop crossplay functionality.\n\n It is recommended to include this value in application logs, and as part of\n any player-facing error screens to help troubleshooting possible issues."]
1840    pub Status: EOS_EDesktopCrossplayStatus,
1841    #[doc = " This field is set when the Status is EOS_DCS_ServiceStartFailed.\n\n Possible values for this field are not documented. However, it is recommended\n to be also included in application logs, and as part of any player-facing\n error screens."]
1842    pub ServiceInitResult: i32,
1843}
1844impl Default for _tagEOS_Platform_DesktopCrossplayStatusInfo {
1845    fn default() -> Self {
1846        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1847        unsafe {
1848            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1849            s.assume_init()
1850        }
1851    }
1852}
1853#[doc = " Output parameters for the EOS_Platform_GetDesktopCrossplayStatus function."]
1854pub type EOS_Platform_DesktopCrossplayStatusInfo = _tagEOS_Platform_DesktopCrossplayStatusInfo;
1855#[doc = " Function prototype type definition for functions that allocate memory.\n\n Functions passed to EOS_Initialize to serve as memory allocators should return a pointer to the allocated memory.\n\n The returned pointer should have at least SizeInBytes available capacity and the memory address should be a multiple of Alignment.\n The SDK will always call the provided function with an Alignment that is a power of 2.\n Allocation failures should return a null pointer."]
1856pub type EOS_AllocateMemoryFunc = ::std::option::Option<
1857    unsafe extern "C" fn(SizeInBytes: usize, Alignment: usize) -> *mut ::std::os::raw::c_void,
1858>;
1859#[doc = " Function prototype type definition for functions that reallocate memory.\n\n Functions passed to EOS_Initialize to serve as memory reallocators should return a pointer to the reallocated memory.\n The returned pointer should have at least SizeInBytes available capacity and the memory address should be a multiple of alignment.\n The SDK will always call the provided function with an Alignment that is a power of 2.\n Reallocation failures should return a null pointer."]
1860pub type EOS_ReallocateMemoryFunc = ::std::option::Option<
1861    unsafe extern "C" fn(
1862        Pointer: *mut ::std::os::raw::c_void,
1863        SizeInBytes: usize,
1864        Alignment: usize,
1865    ) -> *mut ::std::os::raw::c_void,
1866>;
1867#[doc = " Function prototype type definition for functions that release memory.\n\n When the SDK is done with memory that has been allocated by a custom allocator passed to EOS_Initialize, it will call the corresponding memory release function."]
1868pub type EOS_ReleaseMemoryFunc =
1869    ::std::option::Option<unsafe extern "C" fn(Pointer: *mut ::std::os::raw::c_void)>;
1870#[doc = " Options for initializing defining thread affinity for use by Epic Online Services SDK.\n Set the affinity to 0 to allow EOS SDK to use a platform specific default value."]
1871#[repr(C)]
1872#[derive(Debug, Default, Copy, Clone)]
1873pub struct _tagEOS_Initialize_ThreadAffinity {
1874    #[doc = " API Version: Set this to EOS_INITIALIZE_THREADAFFINITY_API_LATEST."]
1875    pub ApiVersion: i32,
1876    #[doc = " Any thread related to network management that is not IO."]
1877    pub NetworkWork: u64,
1878    #[doc = " Any thread that will interact with a storage device."]
1879    pub StorageIo: u64,
1880    #[doc = " Any thread that will generate web socket IO."]
1881    pub WebSocketIo: u64,
1882    #[doc = " Any thread that will generate IO related to P2P traffic and management."]
1883    pub P2PIo: u64,
1884    #[doc = " Any thread that will generate http request IO."]
1885    pub HttpRequestIo: u64,
1886    #[doc = " Any thread that will generate IO related to RTC traffic and management."]
1887    pub RTCIo: u64,
1888    #[doc = " Main thread of the external overlay"]
1889    pub EmbeddedOverlayMainThread: u64,
1890    #[doc = " Worker threads of the external overlay"]
1891    pub EmbeddedOverlayWorkerThreads: u64,
1892    #[doc = " Any thread that process cryptography work"]
1893    pub CryptographyWork: u64,
1894}
1895#[doc = " Options for initializing defining thread affinity for use by Epic Online Services SDK.\n Set the affinity to 0 to allow EOS SDK to use a platform specific default value."]
1896pub type EOS_Initialize_ThreadAffinity = _tagEOS_Initialize_ThreadAffinity;
1897#[doc = " Options for initializing the Epic Online Services SDK."]
1898#[repr(C)]
1899#[derive(Debug, Copy, Clone)]
1900pub struct _tagEOS_InitializeOptions {
1901    #[doc = " API Version: Set this to EOS_INITIALIZE_API_LATEST."]
1902    pub ApiVersion: i32,
1903    #[doc = " A custom memory allocator, if desired."]
1904    pub AllocateMemoryFunction: EOS_AllocateMemoryFunc,
1905    #[doc = " A corresponding memory reallocator. If the AllocateMemoryFunction is nulled, then this field must also be nulled."]
1906    pub ReallocateMemoryFunction: EOS_ReallocateMemoryFunc,
1907    #[doc = " A corresponding memory releaser. If the AllocateMemoryFunction is nulled, then this field must also be nulled."]
1908    pub ReleaseMemoryFunction: EOS_ReleaseMemoryFunc,
1909    #[doc = " The name of the product using the Epic Online Services SDK.\n\n The name string is required to be non-empty and at maximum of EOS_INITIALIZEOPTIONS_PRODUCTNAME_MAX_LENGTH bytes long.\n The string buffer can consist of the following characters:\n A-Z, a-z, 0-9, dot, underscore, space, exclamation mark, question mark, and sign, hyphen, parenthesis, plus, minus, colon."]
1910    pub ProductName: *const ::std::os::raw::c_char,
1911    #[doc = " Product version of the running application.\n\n The version string is required to be non-empty and at maximum of EOS_INITIALIZEOPTIONS_PRODUCTVERSION_MAX_LENGTH bytes long.\n The string buffer can consist of the following characters:\n A-Z, a-z, 0-9, dot, underscore, space, exclamation mark, question mark, and sign, hyphen, parenthesis, plus, minus, colon."]
1912    pub ProductVersion: *const ::std::os::raw::c_char,
1913    #[doc = " A reserved field that should always be nulled."]
1914    pub Reserved: *mut ::std::os::raw::c_void,
1915    #[doc = " This field is for system specific initialization if any.\n\n If provided then the structure will be located in <System>/eos_<system>.h.\n The structure will be named EOS_<System>_InitializeOptions."]
1916    pub SystemInitializeOptions: *mut ::std::os::raw::c_void,
1917    #[doc = " The thread affinity override values for each category of thread."]
1918    pub OverrideThreadAffinity: *mut EOS_Initialize_ThreadAffinity,
1919}
1920impl Default for _tagEOS_InitializeOptions {
1921    fn default() -> Self {
1922        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1923        unsafe {
1924            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1925            s.assume_init()
1926        }
1927    }
1928}
1929#[doc = " Options for initializing the Epic Online Services SDK."]
1930pub type EOS_InitializeOptions = _tagEOS_InitializeOptions;
1931unsafe extern "C" {
1932    #[doc = " Initialize the Epic Online Services SDK.\n\n Before calling any other function in the SDK, clients must call this function.\n\n This function must only be called one time and must have a corresponding EOS_Shutdown call.\n\n @param Options - The initialization options to use for the SDK.\n @return An EOS_EResult is returned to indicate success or an error.\n\n EOS_Success is returned if the SDK successfully initializes.\n EOS_AlreadyConfigured is returned if the function has already been called.\n EOS_InvalidParameters is returned if the provided options are invalid."]
1933    pub fn EOS_Initialize(Options: *const EOS_InitializeOptions) -> EOS_EResult;
1934}
1935unsafe extern "C" {
1936    #[doc = " Tear down the Epic Online Services SDK.\n\n Once this function has been called, no more SDK calls are permitted; calling anything after EOS_Shutdown will result in undefined behavior.\n @return An EOS_EResult is returned to indicate success or an error.\n EOS_Success is returned if the SDK is successfully torn down.\n EOS_NotConfigured is returned if a successful call to EOS_Initialize has not been made.\n EOS_UnexpectedError is returned if EOS_Shutdown has already been called."]
1937    pub fn EOS_Shutdown() -> EOS_EResult;
1938}
1939unsafe extern "C" {
1940    #[doc = " Create a single Epic Online Services Platform Instance.\n\n The platform instance is used to gain access to the various Epic Online Services.\n\n This function returns an opaque handle to the platform instance, and that handle must be passed to EOS_Platform_Release to release the instance.\n\n @return An opaque handle to the platform instance."]
1941    pub fn EOS_Platform_Create(Options: *const EOS_Platform_Options) -> EOS_HPlatform;
1942}
1943unsafe extern "C" {
1944    #[doc = " Release an Epic Online Services platform instance previously returned from EOS_Platform_Create.\n\n This function should only be called once per instance returned by EOS_Platform_Create. Undefined behavior will result in calling it with a single instance more than once.\n Typically only a single platform instance needs to be created during the lifetime of a game.\n You should release each platform instance before calling the EOS_Shutdown function."]
1945    pub fn EOS_Platform_Release(Handle: EOS_HPlatform);
1946}
1947#[repr(C)]
1948#[derive(Debug, Copy, Clone)]
1949pub struct EOS_MetricsHandle {
1950    _unused: [u8; 0],
1951}
1952pub type EOS_HMetrics = *mut EOS_MetricsHandle;
1953#[doc = " The game controller type is unknown."]
1954pub const EOS_EUserControllerType_EOS_UCT_Unknown: EOS_EUserControllerType = 0;
1955#[doc = " Mouse and keyboard controller."]
1956pub const EOS_EUserControllerType_EOS_UCT_MouseKeyboard: EOS_EUserControllerType = 1;
1957#[doc = " Gamepad controller."]
1958pub const EOS_EUserControllerType_EOS_UCT_GamepadControl: EOS_EUserControllerType = 2;
1959#[doc = " Touch controller."]
1960pub const EOS_EUserControllerType_EOS_UCT_TouchControl: EOS_EUserControllerType = 3;
1961pub const EOS_EUserControllerType___EOS_EUserControllerType_PAD_INT32__: EOS_EUserControllerType =
1962    2147483647;
1963#[doc = " User game controller types."]
1964pub type EOS_EUserControllerType = ::std::os::raw::c_int;
1965#[doc = " An Epic Account ID."]
1966pub const EOS_EMetricsAccountIdType_EOS_MAIT_Epic: EOS_EMetricsAccountIdType = 0;
1967#[doc = " An external service Account ID."]
1968pub const EOS_EMetricsAccountIdType_EOS_MAIT_External: EOS_EMetricsAccountIdType = 1;
1969pub const EOS_EMetricsAccountIdType___EOS_EMetricsAccountIdType_PAD_INT32__:
1970    EOS_EMetricsAccountIdType = 2147483647;
1971#[doc = " Account ID type for EOS_Metrics_BeginPlayerSession and EOS_Metrics_EndPlayerSession."]
1972pub type EOS_EMetricsAccountIdType = ::std::os::raw::c_int;
1973#[doc = " BeginPlayerSession."]
1974#[repr(C)]
1975#[derive(Copy, Clone)]
1976pub struct _tagEOS_Metrics_BeginPlayerSessionOptions {
1977    #[doc = " API Version: Set this to EOS_METRICS_BEGINPLAYERSESSION_API_LATEST."]
1978    pub ApiVersion: i32,
1979    #[doc = " Account ID type that is set in the union."]
1980    pub AccountIdType: EOS_EMetricsAccountIdType,
1981    #[doc = " The Account ID for the player whose session is beginning."]
1982    pub AccountId: _tagEOS_Metrics_BeginPlayerSessionOptions__bindgen_ty_1,
1983    #[doc = " The in-game display name for the user as UTF-8 string."]
1984    pub DisplayName: *const ::std::os::raw::c_char,
1985    #[doc = " The user's game controller type."]
1986    pub ControllerType: EOS_EUserControllerType,
1987    #[doc = " IP address of the game server hosting the game session. For a localhost session, set to NULL.\n\n @details Must be in either one of the following IPv4 or IPv6 string formats:\n * \"127.0.0.1\".\n * \"1200:0000:AB00:1234:0000:2552:7777:1313\".\n If both IPv4 and IPv6 addresses are available, use the IPv6 address."]
1988    pub ServerIp: *const ::std::os::raw::c_char,
1989    #[doc = " Optional, application-defined custom match session identifier. If the identifier is not used, set to NULL.\n\n @details The game can tag each game session with a custom session match identifier,\n which will be shown in the Played Sessions listing at the user profile dashboard."]
1990    pub GameSessionId: *const ::std::os::raw::c_char,
1991}
1992#[doc = " The Account ID for the player whose session is beginning."]
1993#[repr(C)]
1994#[derive(Copy, Clone)]
1995pub union _tagEOS_Metrics_BeginPlayerSessionOptions__bindgen_ty_1 {
1996    #[doc = " An Epic Account ID. Set this field when AccountIdType is set to EOS_MAIT_Epic."]
1997    pub Epic: EOS_EpicAccountId,
1998    #[doc = " An Account ID for another service. Set this field when AccountIdType is set to EOS_MAIT_External."]
1999    pub External: *const ::std::os::raw::c_char,
2000}
2001impl Default for _tagEOS_Metrics_BeginPlayerSessionOptions__bindgen_ty_1 {
2002    fn default() -> Self {
2003        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2004        unsafe {
2005            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2006            s.assume_init()
2007        }
2008    }
2009}
2010impl Default for _tagEOS_Metrics_BeginPlayerSessionOptions {
2011    fn default() -> Self {
2012        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2013        unsafe {
2014            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2015            s.assume_init()
2016        }
2017    }
2018}
2019#[doc = " BeginPlayerSession."]
2020pub type EOS_Metrics_BeginPlayerSessionOptions = _tagEOS_Metrics_BeginPlayerSessionOptions;
2021#[doc = " EndPlayerSession."]
2022#[repr(C)]
2023#[derive(Copy, Clone)]
2024pub struct _tagEOS_Metrics_EndPlayerSessionOptions {
2025    #[doc = " API Version: Set this to EOS_METRICS_ENDPLAYERSESSION_API_LATEST."]
2026    pub ApiVersion: i32,
2027    #[doc = " The Account ID type that is set in the union."]
2028    pub AccountIdType: EOS_EMetricsAccountIdType,
2029    #[doc = " The Account ID for the player whose session is ending."]
2030    pub AccountId: _tagEOS_Metrics_EndPlayerSessionOptions__bindgen_ty_1,
2031}
2032#[doc = " The Account ID for the player whose session is ending."]
2033#[repr(C)]
2034#[derive(Copy, Clone)]
2035pub union _tagEOS_Metrics_EndPlayerSessionOptions__bindgen_ty_1 {
2036    #[doc = " An Epic Account ID. Set this field when AccountIdType is set to EOS_MAIT_Epic."]
2037    pub Epic: EOS_EpicAccountId,
2038    #[doc = " An Account ID for another service. Set this field when AccountIdType is set to EOS_MAIT_External."]
2039    pub External: *const ::std::os::raw::c_char,
2040}
2041impl Default for _tagEOS_Metrics_EndPlayerSessionOptions__bindgen_ty_1 {
2042    fn default() -> Self {
2043        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2044        unsafe {
2045            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2046            s.assume_init()
2047        }
2048    }
2049}
2050impl Default for _tagEOS_Metrics_EndPlayerSessionOptions {
2051    fn default() -> Self {
2052        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2053        unsafe {
2054            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2055            s.assume_init()
2056        }
2057    }
2058}
2059#[doc = " EndPlayerSession."]
2060pub type EOS_Metrics_EndPlayerSessionOptions = _tagEOS_Metrics_EndPlayerSessionOptions;
2061#[doc = " Intermediate data needed to complete account restriction verification during login flow, returned by EOS_Auth_LoginCallbackInfo when the ResultCode is EOS_Auth_AccountFeatureRestricted.\n The URI inside should be exposed to the user for entry in a web browser. The URI must be copied out of this struct before completion of the callback."]
2062#[repr(C)]
2063#[derive(Debug, Copy, Clone)]
2064pub struct _tagEOS_Auth_AccountFeatureRestrictedInfo {
2065    #[doc = " API Version: Set this to EOS_AUTH_ACCOUNTFEATURERESTRICTEDINFO_API_LATEST."]
2066    pub ApiVersion: i32,
2067    #[doc = " The end-user verification URI. Users must be asked to open the page in a browser to address the restrictions."]
2068    pub VerificationURI: *const ::std::os::raw::c_char,
2069}
2070impl Default for _tagEOS_Auth_AccountFeatureRestrictedInfo {
2071    fn default() -> Self {
2072        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2073        unsafe {
2074            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2075            s.assume_init()
2076        }
2077    }
2078}
2079#[doc = " Intermediate data needed to complete account restriction verification during login flow, returned by EOS_Auth_LoginCallbackInfo when the ResultCode is EOS_Auth_AccountFeatureRestricted.\n The URI inside should be exposed to the user for entry in a web browser. The URI must be copied out of this struct before completion of the callback."]
2080pub type EOS_Auth_AccountFeatureRestrictedInfo = _tagEOS_Auth_AccountFeatureRestrictedInfo;
2081#[repr(C)]
2082#[derive(Debug, Copy, Clone)]
2083pub struct EOS_AuthHandle {
2084    _unused: [u8; 0],
2085}
2086pub type EOS_HAuth = *mut EOS_AuthHandle;
2087#[doc = " Login using account email address and password.\n\n Note: This login method is restricted to Epic Games internal use only. Do not use."]
2088pub const EOS_ELoginCredentialType_EOS_LCT_Password: EOS_ELoginCredentialType = 0;
2089#[doc = " A short-lived one-time use exchange code to login the local user.\n\n @details Typically retrieved via command-line parameters provided by a launcher that generated the exchange code for this application.\n When started, the application is expected to consume the exchange code by using the EOS_Auth_Login API as soon as possible.\n This is needed in order to authenticate the local user before the exchange code would expire.\n Attempting to consume an already expired exchange code will return EOS_EResult::EOS_Auth_ExchangeCodeNotFound error by the EOS_Auth_Login API."]
2090pub const EOS_ELoginCredentialType_EOS_LCT_ExchangeCode: EOS_ELoginCredentialType = 1;
2091#[doc = " Used by standalone applications distributed outside the supported game platforms such as Epic Games Store or Steam, and on Nintendo Switch.\n\n Persistent Auth is used in conjunction with the EOS_LCT_AccountPortal login method for automatic login of the local user across multiple runs of the application.\n\n Standalone applications implement the login sequence as follows:\n 1. Application calls EOS_Auth_Login with EOS_LCT_PersistentAuth, using a previously stored Epic refresh token for an automatic user login.\n 2. If automatic login fails, the application discards the Epic refresh token used as defunct, and proceeds to call EOS_Auth_Login with EOS_LCT_AccountPortal to prompt the user for manual login.\n\n @note On Desktop and Mobile platforms, the persistent refresh token is automatically managed by the SDK that stores it in the keychain of the currently logged in user of the local device.\n On Nintendo Switch, after a successful login the refresh token must be retrieved using the EOS_Auth_CopyUserAuthToken API and stored by the application specifically for the active Nintendo Switch user.\n\n @see EOS_LCT_AccountPortal"]
2092pub const EOS_ELoginCredentialType_EOS_LCT_PersistentAuth: EOS_ELoginCredentialType = 2;
2093#[doc = " Not supported. Superseded by EOS_LCT_ExternalAuth login method.\n\n @see EOS_LCT_ExternalAuth"]
2094pub const EOS_ELoginCredentialType_EOS_LCT_DeviceCode: EOS_ELoginCredentialType = 3;
2095#[doc = " Login with named credentials hosted by the EOS SDK Developer Authentication Tool.\n\n @note Used for development purposes only."]
2096pub const EOS_ELoginCredentialType_EOS_LCT_Developer: EOS_ELoginCredentialType = 4;
2097#[doc = " Refresh token that was retrieved from a previous call to EOS_Auth_Login API in another local process context.\n Mainly used in conjunction with custom desktop launcher applications.\n\n @details Can be used for example when launching the game from Epic Games Launcher and having an intermediate process\n in-between that requires authenticating the user before eventually starting the actual game client application.\n In such scenario, an intermediate launcher will log in the user by consuming the exchange code it received from the\n Epic Games Launcher. To allow the game client to also authenticate the user, it can copy the refresh token using the\n EOS_Auth_CopyUserAuthToken API and pass it via launch parameters to the started game client. The game client can then\n use the refresh token to log in the user."]
2098pub const EOS_ELoginCredentialType_EOS_LCT_RefreshToken: EOS_ELoginCredentialType = 5;
2099#[doc = " Used by standalone applications distributed outside the supported game platforms such as Epic Games Store or Steam, and on Nintendo Switch.\n\n Login using the built-in user onboarding experience provided by the SDK, which will automatically store a persistent\n refresh token to enable automatic user login for consecutive application runs on the local device. Applications are\n expected to attempt automatic login using the EOS_LCT_PersistentAuth login method, and fall back to EOS_LCT_AccountPortal\n to prompt users for manual login.\n\n @note On Windows, using this login method requires applications to be started through the EOS Bootstrapper application\n and to have the local Epic Online Services redistributable installed on the local system. See EOS_Platform_GetDesktopCrossplayStatus\n for adding a readiness check prior to calling EOS_Auth_Login.\n\n @see EOS_LCT_PersistentAuth"]
2100pub const EOS_ELoginCredentialType_EOS_LCT_AccountPortal: EOS_ELoginCredentialType = 6;
2101#[doc = " Login using external account provider credentials, such as PlayStation(TM)Network, Steam, and Xbox Live.\n\n This is the intended login method on PlayStation® and Xbox console devices.\n On Desktop and Mobile, used when launched through any of the commonly supported platform clients.\n\n @details The user is seamlessly logged in to their Epic account using an external account access token.\n If the local platform account is already linked with the user's Epic account, the login will succeed and EOS_EResult::EOS_Success is returned.\n When the local platform account has not been linked with an Epic account yet,\n EOS_EResult::EOS_InvalidUser is returned and the EOS_ContinuanceToken will be set in the EOS_Auth_LoginCallbackInfo data.\n If EOS_EResult::EOS_InvalidUser is returned,\n the application should proceed to call the EOS_Auth_LinkAccount API with the EOS_ContinuanceToken to continue with the external account login\n and to link the external account at the end of the login flow.\n\n @details Login flow when the platform user account has not been linked with an Epic account yet:\n 1. Game calls EOS_Auth_Login with the EOS_LCT_ExternalAuth credential type.\n 2. EOS_Auth_Login returns EOS_EResult::EOS_InvalidUser with a non-null EOS_ContinuanceToken in the EOS_Auth_LoginCallbackInfo data.\n 3. Game calls EOS_Auth_LinkAccount with the EOS_ContinuanceToken to initiate the login flow for linking the platform account with the user's Epic account.\n 4. The user is taken automatically to the Epic accounts user onboarding flow managed by the SDK.\n 5. Once the user completes the login, cancels it or if the login flow times out, EOS_Auth_LinkAccount invokes the completion callback to the caller.\n    - If the user was logged in successfully, EOS_EResult::EOS_Success is returned in the EOS_Auth_LoginCallbackInfo. Otherwise, an error result code is returned accordingly.\n\n @note On Windows, using this login method requires applications to be started through the EOS Bootstrapper application\n and to have the local Epic Online Services redistributable installed on the local system. See EOS_Platform_GetDesktopCrossplayStatus\n for adding a readiness check prior to calling EOS_Auth_Login."]
2102pub const EOS_ELoginCredentialType_EOS_LCT_ExternalAuth: EOS_ELoginCredentialType = 7;
2103pub const EOS_ELoginCredentialType___EOS_ELoginCredentialType_PAD_INT32__:
2104    EOS_ELoginCredentialType = 2147483647;
2105#[doc = " All possible types of login methods, availability depends on permissions granted to the client.\n\n @see EOS_Auth_Login\n @see EOS_Auth_Credentials"]
2106pub type EOS_ELoginCredentialType = ::std::os::raw::c_int;
2107#[doc = " Auth token is for a validated client"]
2108pub const EOS_EAuthTokenType_EOS_ATT_Client: EOS_EAuthTokenType = 0;
2109#[doc = " Auth token is for a validated user"]
2110pub const EOS_EAuthTokenType_EOS_ATT_User: EOS_EAuthTokenType = 1;
2111pub const EOS_EAuthTokenType___EOS_EAuthTokenType_PAD_INT32__: EOS_EAuthTokenType = 2147483647;
2112#[doc = " Types of auth tokens\n\n @see EOS_Auth_CopyUserAuthToken\n @see EOS_Auth_Token"]
2113pub type EOS_EAuthTokenType = ::std::os::raw::c_int;
2114#[doc = " A structure that contains an auth token.\n These structures are created by EOS_Auth_CopyUserAuthToken and must be passed to EOS_Auth_Token_Release."]
2115#[repr(C)]
2116#[derive(Debug, Copy, Clone)]
2117pub struct _tagEOS_Auth_Token {
2118    #[doc = " API Version: Set this to EOS_AUTH_TOKEN_API_LATEST."]
2119    pub ApiVersion: i32,
2120    #[doc = " Name of the app related to the client ID involved with this token"]
2121    pub App: *const ::std::os::raw::c_char,
2122    #[doc = " Client ID that requested this token"]
2123    pub ClientId: *const ::std::os::raw::c_char,
2124    #[doc = " The Epic Account ID associated with this auth token"]
2125    pub AccountId: EOS_EpicAccountId,
2126    #[doc = " Access token for the current user login session"]
2127    pub AccessToken: *const ::std::os::raw::c_char,
2128    #[doc = " Time before the access token expires, in seconds, relative to the call to EOS_Auth_CopyUserAuthToken"]
2129    pub ExpiresIn: f64,
2130    #[doc = " Absolute time in UTC before the access token expires, in ISO 8601 format"]
2131    pub ExpiresAt: *const ::std::os::raw::c_char,
2132    #[doc = " Type of auth token"]
2133    pub AuthType: EOS_EAuthTokenType,
2134    #[doc = " Refresh token.\n\n @see EOS_ELoginCredentialType::EOS_LCT_RefreshToken"]
2135    pub RefreshToken: *const ::std::os::raw::c_char,
2136    #[doc = " Time before the access token expires, in seconds, relative to the call to EOS_Auth_CopyUserAuthToken"]
2137    pub RefreshExpiresIn: f64,
2138    #[doc = " Absolute time in UTC before the refresh token expires, in ISO 8601 format"]
2139    pub RefreshExpiresAt: *const ::std::os::raw::c_char,
2140}
2141impl Default for _tagEOS_Auth_Token {
2142    fn default() -> Self {
2143        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2144        unsafe {
2145            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2146            s.assume_init()
2147        }
2148    }
2149}
2150#[doc = " A structure that contains an auth token.\n These structures are created by EOS_Auth_CopyUserAuthToken and must be passed to EOS_Auth_Token_Release."]
2151pub type EOS_Auth_Token = _tagEOS_Auth_Token;
2152unsafe extern "C" {
2153    #[doc = " Release the memory associated with an EOS_Auth_Token structure. This must be called on data retrieved from EOS_Auth_CopyUserAuthToken.\n\n @param AuthToken The auth token structure to be released.\n\n @see EOS_Auth_Token\n @see EOS_Auth_CopyUserAuthToken"]
2154    pub fn EOS_Auth_Token_Release(AuthToken: *mut EOS_Auth_Token);
2155}
2156#[doc = " Login credentials filled as part of the EOS_Auth_LoginOptions struct for EOS_Auth_Login API.\n\n Required input parameters to be set depend on the login credential type.\n Any parameters not being used must be set to NULL. Otherwise, EOS_InvalidParameters error is returned.\n\n EOS_LCT_Password\t\t\t| ID is the email address, and Token is the password.\n EOS_LCT_ExchangeCode\t\t| Set ID to NULL. Token is the exchange code.\n EOS_LCT_PersistentAuth\t| Set ID to NULL. On console platforms, Token is the long-lived refresh token. Otherwise, set to NULL.\n EOS_LCT_Developer\t\t| Set ID as the host (e.g. localhost:6547). Token is the credential name registered in the EOS Developer Authentication Tool.\n EOS_LCT_RefreshToken\t\t| Set ID to NULL. Token is the refresh token.\n EOS_LCT_AccountPortal\t| Set ID and Token to NULL. SystemAuthCredentialsOptions may be required on mobile platforms.\n EOS_LCT_ExternalAuth\t\t| Set ID to NULL or the External Account ID that belongs to the external auth token. Token is the external auth token specified by ExternalType. External Account IDs set to the ID are expected as either base-10 numeric strings for integer-based external Account IDs, or the actual string for everything else. If ID is provided, login will automatically be cancelled if the EOS SDK is able to and does detect the external account signing-out. If ID is provided, it must match the external account ID belonging to the auth-token, or login will fail.\n\n @see EOS_ELoginCredentialType\n @see EOS_Auth_Login\n @see EOS_Auth_DeletePersistentAuthOptions"]
2157#[repr(C)]
2158#[derive(Debug, Copy, Clone)]
2159pub struct _tagEOS_Auth_Credentials {
2160    #[doc = " API Version: Set this to EOS_AUTH_CREDENTIALS_API_LATEST."]
2161    pub ApiVersion: i32,
2162    #[doc = " Authentication ID value based on the used EOS_ELoginCredentialType.\n If not used, must be set to NULL."]
2163    pub Id: *const ::std::os::raw::c_char,
2164    #[doc = " Authentication Token value based on the used EOS_ELoginCredentialType.\n If not used, must be set to NULL."]
2165    pub Token: *const ::std::os::raw::c_char,
2166    #[doc = " Login credentials type based on the authentication method used."]
2167    pub Type: EOS_ELoginCredentialType,
2168    #[doc = " This field is for system specific options, if any.\n\n If provided, the structure will be located in (System)/eos_(system).h.\n The structure will be named EOS_(System)_Auth_CredentialsOptions."]
2169    pub SystemAuthCredentialsOptions: *mut ::std::os::raw::c_void,
2170    #[doc = " Type of external login. Needed to identify the external auth method to use.\n Used when login type is set to EOS_LCT_ExternalAuth, ignored for other EOS_ELoginCredentialType methods."]
2171    pub ExternalType: EOS_EExternalCredentialType,
2172}
2173impl Default for _tagEOS_Auth_Credentials {
2174    fn default() -> Self {
2175        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2176        unsafe {
2177            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2178            s.assume_init()
2179        }
2180    }
2181}
2182#[doc = " Login credentials filled as part of the EOS_Auth_LoginOptions struct for EOS_Auth_Login API.\n\n Required input parameters to be set depend on the login credential type.\n Any parameters not being used must be set to NULL. Otherwise, EOS_InvalidParameters error is returned.\n\n EOS_LCT_Password\t\t\t| ID is the email address, and Token is the password.\n EOS_LCT_ExchangeCode\t\t| Set ID to NULL. Token is the exchange code.\n EOS_LCT_PersistentAuth\t| Set ID to NULL. On console platforms, Token is the long-lived refresh token. Otherwise, set to NULL.\n EOS_LCT_Developer\t\t| Set ID as the host (e.g. localhost:6547). Token is the credential name registered in the EOS Developer Authentication Tool.\n EOS_LCT_RefreshToken\t\t| Set ID to NULL. Token is the refresh token.\n EOS_LCT_AccountPortal\t| Set ID and Token to NULL. SystemAuthCredentialsOptions may be required on mobile platforms.\n EOS_LCT_ExternalAuth\t\t| Set ID to NULL or the External Account ID that belongs to the external auth token. Token is the external auth token specified by ExternalType. External Account IDs set to the ID are expected as either base-10 numeric strings for integer-based external Account IDs, or the actual string for everything else. If ID is provided, login will automatically be cancelled if the EOS SDK is able to and does detect the external account signing-out. If ID is provided, it must match the external account ID belonging to the auth-token, or login will fail.\n\n @see EOS_ELoginCredentialType\n @see EOS_Auth_Login\n @see EOS_Auth_DeletePersistentAuthOptions"]
2183pub type EOS_Auth_Credentials = _tagEOS_Auth_Credentials;
2184#[doc = " Intermediate data for completing Epic account login, when neither the in-game overlay or a platform browser is used.\n The EOS_Auth_PinGrantInfo struct is returned as part of the EOS_Auth_LoginCallbackInfo and EOS_Auth_LinkAccountCallbackInfo structs.\n The data inside should be exposed to the user for entry on a secondary device.\n All data must be copied out before the completion of this callback."]
2185#[repr(C)]
2186#[derive(Debug, Copy, Clone)]
2187pub struct _tagEOS_Auth_PinGrantInfo {
2188    #[doc = " API Version: Set this to EOS_AUTH_PINGRANTINFO_API_LATEST."]
2189    pub ApiVersion: i32,
2190    #[doc = " Code the user must input on an external device to activate the login."]
2191    pub UserCode: *const ::std::os::raw::c_char,
2192    #[doc = " The end-user verification URI. Users can be asked to manually type this into their browser."]
2193    pub VerificationURI: *const ::std::os::raw::c_char,
2194    #[doc = " Time the user has, in seconds, to complete the process or else timeout."]
2195    pub ExpiresIn: i32,
2196    #[doc = " A verification URI that includes the user code. Useful for non-textual transmission."]
2197    pub VerificationURIComplete: *const ::std::os::raw::c_char,
2198}
2199impl Default for _tagEOS_Auth_PinGrantInfo {
2200    fn default() -> Self {
2201        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2202        unsafe {
2203            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2204            s.assume_init()
2205        }
2206    }
2207}
2208#[doc = " Intermediate data for completing Epic account login, when neither the in-game overlay or a platform browser is used.\n The EOS_Auth_PinGrantInfo struct is returned as part of the EOS_Auth_LoginCallbackInfo and EOS_Auth_LinkAccountCallbackInfo structs.\n The data inside should be exposed to the user for entry on a secondary device.\n All data must be copied out before the completion of this callback."]
2209pub type EOS_Auth_PinGrantInfo = _tagEOS_Auth_PinGrantInfo;
2210#[doc = " Default value, no permissions required"]
2211pub const EOS_EAuthScopeFlags_EOS_AS_NoFlags: EOS_EAuthScopeFlags = 0;
2212#[doc = " Permissions to see your account ID, display name, and language"]
2213pub const EOS_EAuthScopeFlags_EOS_AS_BasicProfile: EOS_EAuthScopeFlags = 1;
2214#[doc = " Permissions to see a list of your friends who use this application"]
2215pub const EOS_EAuthScopeFlags_EOS_AS_FriendsList: EOS_EAuthScopeFlags = 2;
2216#[doc = " Permissions to set your online presence and see presence of your friends"]
2217pub const EOS_EAuthScopeFlags_EOS_AS_Presence: EOS_EAuthScopeFlags = 4;
2218#[doc = " Permissions to manage the Epic friends list. This scope is restricted to Epic first party products, and attempting to use it will result in authentication failures."]
2219pub const EOS_EAuthScopeFlags_EOS_AS_FriendsManagement: EOS_EAuthScopeFlags = 8;
2220#[doc = " Permissions to see email in the response when fetching information for a user. This scope is restricted to Epic first party products, and attempting to use it will result in authentication failures."]
2221pub const EOS_EAuthScopeFlags_EOS_AS_Email: EOS_EAuthScopeFlags = 16;
2222#[doc = " Permissions to see your country"]
2223pub const EOS_EAuthScopeFlags_EOS_AS_Country: EOS_EAuthScopeFlags = 32;
2224pub const EOS_EAuthScopeFlags___EOS_EAuthScopeFlags_PAD_INT32__: EOS_EAuthScopeFlags = 2147483647;
2225#[doc = " Flags that describe user permissions"]
2226pub type EOS_EAuthScopeFlags = ::std::os::raw::c_int;
2227#[doc = " Input parameters for the EOS_Auth_Login function."]
2228#[repr(C)]
2229#[derive(Debug, Copy, Clone)]
2230pub struct _tagEOS_Auth_LoginOptions {
2231    #[doc = " API Version: Set this to EOS_AUTH_LOGIN_API_LATEST."]
2232    pub ApiVersion: i32,
2233    #[doc = " Credentials specified for a given login method."]
2234    pub Credentials: *const EOS_Auth_Credentials,
2235    #[doc = " Auth scope flags are permissions to request from the user while they are logging in. This is a bitwise-or union of EOS_EAuthScopeFlags flags defined above."]
2236    pub ScopeFlags: EOS_EAuthScopeFlags,
2237    #[doc = " Optional flags for the desired login behavior, e.g. EOS_LF_NO_USER_INTERFACE. This is a bitwise-or union of the defined flags."]
2238    pub LoginFlags: u64,
2239}
2240impl Default for _tagEOS_Auth_LoginOptions {
2241    fn default() -> Self {
2242        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2243        unsafe {
2244            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2245            s.assume_init()
2246        }
2247    }
2248}
2249#[doc = " Input parameters for the EOS_Auth_Login function."]
2250pub type EOS_Auth_LoginOptions = _tagEOS_Auth_LoginOptions;
2251#[doc = " Output parameters for the EOS_Auth_Login Function."]
2252#[repr(C)]
2253#[derive(Debug, Copy, Clone)]
2254pub struct _tagEOS_Auth_LoginCallbackInfo {
2255    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
2256    pub ResultCode: EOS_EResult,
2257    #[doc = " Context that was passed into EOS_Auth_Login."]
2258    pub ClientData: *mut ::std::os::raw::c_void,
2259    #[doc = " The Epic Account ID of the local user who has logged in."]
2260    pub LocalUserId: EOS_EpicAccountId,
2261    #[doc = " Optional data that may be returned in the middle of the login flow, when neither the in-game overlay or a platform browser is used.\n This data is present when the ResultCode is EOS_Auth_PinGrantCode."]
2262    pub PinGrantInfo: *const EOS_Auth_PinGrantInfo,
2263    #[doc = " If the user was not found with external auth credentials passed into EOS_Auth_Login, this continuance token can be passed to EOS_Auth_LinkAccount to continue the flow."]
2264    pub ContinuanceToken: EOS_ContinuanceToken,
2265    #[doc = " Deprecated field that is no longer used."]
2266    pub AccountFeatureRestrictedInfo_DEPRECATED: *const EOS_Auth_AccountFeatureRestrictedInfo,
2267    #[doc = " The Epic Account ID that has been previously selected to be used for the current application.\n Applications should use this ID to authenticate with online backend services that store game-scoped data for users.\n\n Note: This ID may be different from LocalUserId if the user has previously merged Epic accounts into the account\n represented by LocalUserId, and one of the accounts that got merged had game data associated with it for the application."]
2268    pub SelectedAccountId: EOS_EpicAccountId,
2269}
2270impl Default for _tagEOS_Auth_LoginCallbackInfo {
2271    fn default() -> Self {
2272        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2273        unsafe {
2274            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2275            s.assume_init()
2276        }
2277    }
2278}
2279#[doc = " Output parameters for the EOS_Auth_Login Function."]
2280pub type EOS_Auth_LoginCallbackInfo = _tagEOS_Auth_LoginCallbackInfo;
2281#[doc = " Function prototype definition for callbacks passed to EOS_Auth_Login\n @param Data A EOS_Auth_LoginCallbackInfo containing the output information and result"]
2282pub type EOS_Auth_OnLoginCallback =
2283    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Auth_LoginCallbackInfo)>;
2284#[doc = " Input parameters for the EOS_Auth_Logout function."]
2285#[repr(C)]
2286#[derive(Debug, Copy, Clone)]
2287pub struct _tagEOS_Auth_LogoutOptions {
2288    #[doc = " API Version: Set this to EOS_AUTH_LOGOUT_API_LATEST."]
2289    pub ApiVersion: i32,
2290    #[doc = " The Epic Account ID of the local user who is being logged out"]
2291    pub LocalUserId: EOS_EpicAccountId,
2292}
2293impl Default for _tagEOS_Auth_LogoutOptions {
2294    fn default() -> Self {
2295        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2296        unsafe {
2297            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2298            s.assume_init()
2299        }
2300    }
2301}
2302#[doc = " Input parameters for the EOS_Auth_Logout function."]
2303pub type EOS_Auth_LogoutOptions = _tagEOS_Auth_LogoutOptions;
2304#[doc = " Output parameters for the EOS_Auth_Logout Function."]
2305#[repr(C)]
2306#[derive(Debug, Copy, Clone)]
2307pub struct _tagEOS_Auth_LogoutCallbackInfo {
2308    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
2309    pub ResultCode: EOS_EResult,
2310    #[doc = " Context that was passed into EOS_Auth_Login"]
2311    pub ClientData: *mut ::std::os::raw::c_void,
2312    #[doc = " The Epic Account ID of the local user requesting the information"]
2313    pub LocalUserId: EOS_EpicAccountId,
2314}
2315impl Default for _tagEOS_Auth_LogoutCallbackInfo {
2316    fn default() -> Self {
2317        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2318        unsafe {
2319            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2320            s.assume_init()
2321        }
2322    }
2323}
2324#[doc = " Output parameters for the EOS_Auth_Logout Function."]
2325pub type EOS_Auth_LogoutCallbackInfo = _tagEOS_Auth_LogoutCallbackInfo;
2326#[doc = " Function prototype definition for callbacks passed to EOS_Auth_Logout\n @param Data A EOS_Auth_LogoutCallbackInfo containing the output information and result"]
2327pub type EOS_Auth_OnLogoutCallback =
2328    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Auth_LogoutCallbackInfo)>;
2329#[doc = " Default flag used for a standard account linking operation.\n\n This flag is set when using a continuance token received from a previous call to the EOS_Auth_Login API,\n when the local user has not yet been successfully logged in to an Epic Account yet."]
2330pub const EOS_ELinkAccountFlags_EOS_LA_NoFlags: EOS_ELinkAccountFlags = 0;
2331#[doc = " Specified when the EOS_ContinuanceToken describes a Nintendo NSA ID account type.\n\n This flag is used only with, and must be set, when the continuance token was received from a previous call\n to the EOS_Auth_Login API using the EOS_EExternalCredentialType::EOS_ECT_NINTENDO_NSA_ID_TOKEN login type."]
2332pub const EOS_ELinkAccountFlags_EOS_LA_NintendoNsaId: EOS_ELinkAccountFlags = 1;
2333pub const EOS_ELinkAccountFlags___EOS_ELinkAccountFlags_PAD_INT32__: EOS_ELinkAccountFlags =
2334    2147483647;
2335#[doc = " Flags used to describe how the account linking operation is to be performed.\n\n @see EOS_Auth_LinkAccount"]
2336pub type EOS_ELinkAccountFlags = ::std::os::raw::c_int;
2337#[doc = " Input parameters for the EOS_Auth_LinkAccount function."]
2338#[repr(C)]
2339#[derive(Debug, Copy, Clone)]
2340pub struct _tagEOS_Auth_LinkAccountOptions {
2341    #[doc = " API Version: Set this to EOS_AUTH_LINKACCOUNT_API_LATEST."]
2342    pub ApiVersion: i32,
2343    #[doc = " Combination of the enumeration flags to specify how the account linking operation will be performed."]
2344    pub LinkAccountFlags: EOS_ELinkAccountFlags,
2345    #[doc = " Continuance token received from a previous call to the EOS_Auth_Login API.\n\n A continuance token is received in the case when the external account used for login was not found to be linked\n against any existing Epic Account. In such case, the application needs to proceed with an account linking operation in which case\n the user is first asked to create a new account or login into their existing Epic Account, and then link their external account to it.\n Alternatively, the application may suggest the user to login using another external account that they have already linked to their existing Epic Account.\n In this flow, the external account is typically the currently logged in local platform user account.\n It can also be another external user account that the user is offered to login with."]
2346    pub ContinuanceToken: EOS_ContinuanceToken,
2347    #[doc = " The Epic Account ID of the logged in local user whose Epic Account will be linked with the local Nintendo NSA ID Account. By default set to NULL.\n\n This parameter is only used and required to be set when EOS_ELinkAccountFlags::EOS_LA_NintendoNsaId is specified.\n Otherwise, set to NULL, as the standard account linking and login flow using continuance token will handle logging in the user to their Epic Account."]
2348    pub LocalUserId: EOS_EpicAccountId,
2349}
2350impl Default for _tagEOS_Auth_LinkAccountOptions {
2351    fn default() -> Self {
2352        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2353        unsafe {
2354            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2355            s.assume_init()
2356        }
2357    }
2358}
2359#[doc = " Input parameters for the EOS_Auth_LinkAccount function."]
2360pub type EOS_Auth_LinkAccountOptions = _tagEOS_Auth_LinkAccountOptions;
2361#[doc = " Output parameters for the EOS_Auth_LinkAccount Function."]
2362#[repr(C)]
2363#[derive(Debug, Copy, Clone)]
2364pub struct _tagEOS_Auth_LinkAccountCallbackInfo {
2365    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
2366    pub ResultCode: EOS_EResult,
2367    #[doc = " Context that was passed into EOS_Auth_LinkAccount."]
2368    pub ClientData: *mut ::std::os::raw::c_void,
2369    #[doc = " The Epic Account ID of the local user whose account has been linked during login."]
2370    pub LocalUserId: EOS_EpicAccountId,
2371    #[doc = " Optional data that may be returned in the middle of the login flow, when neither the in-game overlay or a platform browser is used.\n This data is present when the ResultCode is EOS_Auth_PinGrantCode."]
2372    pub PinGrantInfo: *const EOS_Auth_PinGrantInfo,
2373    #[doc = " The Epic Account ID that has been previously selected to be used for the current application.\n Applications should use this ID to authenticate with online backend services that store game-scoped data for users.\n\n Note: This ID may be different from LocalUserId if the user has previously merged Epic accounts into the account\n represented by LocalUserId, and one of the accounts that got merged had game data associated with it for the application."]
2374    pub SelectedAccountId: EOS_EpicAccountId,
2375}
2376impl Default for _tagEOS_Auth_LinkAccountCallbackInfo {
2377    fn default() -> Self {
2378        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2379        unsafe {
2380            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2381            s.assume_init()
2382        }
2383    }
2384}
2385#[doc = " Output parameters for the EOS_Auth_LinkAccount Function."]
2386pub type EOS_Auth_LinkAccountCallbackInfo = _tagEOS_Auth_LinkAccountCallbackInfo;
2387#[doc = " Function prototype definition for callbacks passed to EOS_Auth_LinkAccount\n @param Data A EOS_Auth_LinkAccountCallbackInfo containing the output information and result"]
2388pub type EOS_Auth_OnLinkAccountCallback =
2389    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Auth_LinkAccountCallbackInfo)>;
2390#[doc = " Input parameters for the EOS_Auth_VerifyUserAuth function.\n This operation is destructive, the pointer will remain the same but the data pointers inside will update"]
2391#[repr(C)]
2392#[derive(Debug, Copy, Clone)]
2393pub struct _tagEOS_Auth_VerifyUserAuthOptions {
2394    #[doc = " API Version: Set this to EOS_AUTH_VERIFYUSERAUTH_API_LATEST."]
2395    pub ApiVersion: i32,
2396    #[doc = " Auth token to verify against the backend service"]
2397    pub AuthToken: *const EOS_Auth_Token,
2398}
2399impl Default for _tagEOS_Auth_VerifyUserAuthOptions {
2400    fn default() -> Self {
2401        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2402        unsafe {
2403            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2404            s.assume_init()
2405        }
2406    }
2407}
2408#[doc = " Input parameters for the EOS_Auth_VerifyUserAuth function.\n This operation is destructive, the pointer will remain the same but the data pointers inside will update"]
2409pub type EOS_Auth_VerifyUserAuthOptions = _tagEOS_Auth_VerifyUserAuthOptions;
2410#[doc = " Output parameters for the EOS_Auth_VerifyUserAuth Function."]
2411#[repr(C)]
2412#[derive(Debug, Copy, Clone)]
2413pub struct _tagEOS_Auth_VerifyUserAuthCallbackInfo {
2414    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
2415    pub ResultCode: EOS_EResult,
2416    #[doc = " Context that was passed into EOS_Auth_Login"]
2417    pub ClientData: *mut ::std::os::raw::c_void,
2418}
2419impl Default for _tagEOS_Auth_VerifyUserAuthCallbackInfo {
2420    fn default() -> Self {
2421        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2422        unsafe {
2423            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2424            s.assume_init()
2425        }
2426    }
2427}
2428#[doc = " Output parameters for the EOS_Auth_VerifyUserAuth Function."]
2429pub type EOS_Auth_VerifyUserAuthCallbackInfo = _tagEOS_Auth_VerifyUserAuthCallbackInfo;
2430#[doc = " Function prototype definition for callbacks passed to EOS_Auth_VerifyUserAuth\n @param Data A EOS_Auth_VerifyUserAuthCallbackInfo containing the output information and result"]
2431pub type EOS_Auth_OnVerifyUserAuthCallback =
2432    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Auth_VerifyUserAuthCallbackInfo)>;
2433#[doc = " Input parameters for the EOS_Auth_CopyUserAuthToken function."]
2434#[repr(C)]
2435#[derive(Debug, Default, Copy, Clone)]
2436pub struct _tagEOS_Auth_CopyUserAuthTokenOptions {
2437    #[doc = " API Version: Set this to EOS_AUTH_COPYUSERAUTHTOKEN_API_LATEST."]
2438    pub ApiVersion: i32,
2439}
2440#[doc = " Input parameters for the EOS_Auth_CopyUserAuthToken function."]
2441pub type EOS_Auth_CopyUserAuthTokenOptions = _tagEOS_Auth_CopyUserAuthTokenOptions;
2442#[doc = " Input parameters for the EOS_Auth_CopyIdToken function."]
2443#[repr(C)]
2444#[derive(Debug, Copy, Clone)]
2445pub struct _tagEOS_Auth_CopyIdTokenOptions {
2446    #[doc = " API Version: Set this to EOS_AUTH_COPYIDTOKEN_API_LATEST."]
2447    pub ApiVersion: i32,
2448    #[doc = " The Epic Account ID of the user being queried."]
2449    pub AccountId: EOS_EpicAccountId,
2450}
2451impl Default for _tagEOS_Auth_CopyIdTokenOptions {
2452    fn default() -> Self {
2453        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2454        unsafe {
2455            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2456            s.assume_init()
2457        }
2458    }
2459}
2460#[doc = " Input parameters for the EOS_Auth_CopyIdToken function."]
2461pub type EOS_Auth_CopyIdTokenOptions = _tagEOS_Auth_CopyIdTokenOptions;
2462#[doc = " A structure that contains an ID token.\n These structures are created by EOS_Auth_CopyIdToken and must be passed to EOS_Auth_IdToken_Release when finished."]
2463#[repr(C)]
2464#[derive(Debug, Copy, Clone)]
2465pub struct _tagEOS_Auth_IdToken {
2466    #[doc = " API Version: Set this to EOS_AUTH_IDTOKEN_API_LATEST."]
2467    pub ApiVersion: i32,
2468    #[doc = " The Epic Account ID described by the ID token.\n Use EOS_EpicAccountId_FromString to populate this field when validating a received ID token."]
2469    pub AccountId: EOS_EpicAccountId,
2470    #[doc = " The ID token as a Json Web Token (JWT) string."]
2471    pub JsonWebToken: *const ::std::os::raw::c_char,
2472}
2473impl Default for _tagEOS_Auth_IdToken {
2474    fn default() -> Self {
2475        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2476        unsafe {
2477            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2478            s.assume_init()
2479        }
2480    }
2481}
2482#[doc = " A structure that contains an ID token.\n These structures are created by EOS_Auth_CopyIdToken and must be passed to EOS_Auth_IdToken_Release when finished."]
2483pub type EOS_Auth_IdToken = _tagEOS_Auth_IdToken;
2484unsafe extern "C" {
2485    #[doc = " Release the memory associated with an EOS_Auth_IdToken structure. This must be called on data retrieved from EOS_Auth_CopyIdToken.\n\n @param IdToken The ID token structure to be released.\n\n @see EOS_Auth_IdToken\n @see EOS_Auth_CopyIdToken"]
2486    pub fn EOS_Auth_IdToken_Release(IdToken: *mut EOS_Auth_IdToken);
2487}
2488#[doc = " Input parameters for the EOS_Auth_QueryIdToken function."]
2489#[repr(C)]
2490#[derive(Debug, Copy, Clone)]
2491pub struct _tagEOS_Auth_QueryIdTokenOptions {
2492    #[doc = " API Version: Set this to EOS_AUTH_QUERYIDTOKEN_API_LATEST."]
2493    pub ApiVersion: i32,
2494    #[doc = " The Epic Account ID of the local authenticated user."]
2495    pub LocalUserId: EOS_EpicAccountId,
2496    #[doc = " The target Epic Account ID for which to query an ID token.\n This account id may be the same as the input LocalUserId or another merged account id associated with the local user's Epic account.\n\n An ID token for the selected account id of a locally authenticated user will always be readily available.\n To retrieve it for the selected account ID, you can use EOS_Auth_CopyIdToken directly after a successful user login."]
2497    pub TargetAccountId: EOS_EpicAccountId,
2498}
2499impl Default for _tagEOS_Auth_QueryIdTokenOptions {
2500    fn default() -> Self {
2501        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2502        unsafe {
2503            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2504            s.assume_init()
2505        }
2506    }
2507}
2508#[doc = " Input parameters for the EOS_Auth_QueryIdToken function."]
2509pub type EOS_Auth_QueryIdTokenOptions = _tagEOS_Auth_QueryIdTokenOptions;
2510#[doc = " Output parameters for the EOS_Auth_QueryIdToken Function."]
2511#[repr(C)]
2512#[derive(Debug, Copy, Clone)]
2513pub struct _tagEOS_Auth_QueryIdTokenCallbackInfo {
2514    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
2515    pub ResultCode: EOS_EResult,
2516    #[doc = " Context that was passed into EOS_Auth_QueryIdToken"]
2517    pub ClientData: *mut ::std::os::raw::c_void,
2518    #[doc = " The Epic Account ID of the local authenticated user."]
2519    pub LocalUserId: EOS_EpicAccountId,
2520    #[doc = " The target Epic Account ID for which the ID token was retrieved."]
2521    pub TargetAccountId: EOS_EpicAccountId,
2522}
2523impl Default for _tagEOS_Auth_QueryIdTokenCallbackInfo {
2524    fn default() -> Self {
2525        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2526        unsafe {
2527            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2528            s.assume_init()
2529        }
2530    }
2531}
2532#[doc = " Output parameters for the EOS_Auth_QueryIdToken Function."]
2533pub type EOS_Auth_QueryIdTokenCallbackInfo = _tagEOS_Auth_QueryIdTokenCallbackInfo;
2534#[doc = " Function prototype definition for callbacks passed into EOS_Auth_QueryIdToken.\n\n @param Data A EOS_Auth_QueryIdTokenCallbackInfo containing the output information and result."]
2535pub type EOS_Auth_OnQueryIdTokenCallback =
2536    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Auth_QueryIdTokenCallbackInfo)>;
2537#[doc = " Input parameters for the EOS_Auth_VerifyIdToken function."]
2538#[repr(C)]
2539#[derive(Debug, Copy, Clone)]
2540pub struct _tagEOS_Auth_VerifyIdTokenOptions {
2541    #[doc = " API Version: Set this to EOS_AUTH_VERIFYIDTOKEN_API_LATEST."]
2542    pub ApiVersion: i32,
2543    #[doc = " The ID token to verify.\n Use EOS_EpicAccountId_FromString to populate the AccountId field of this struct."]
2544    pub IdToken: *const EOS_Auth_IdToken,
2545}
2546impl Default for _tagEOS_Auth_VerifyIdTokenOptions {
2547    fn default() -> Self {
2548        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2549        unsafe {
2550            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2551            s.assume_init()
2552        }
2553    }
2554}
2555#[doc = " Input parameters for the EOS_Auth_VerifyIdToken function."]
2556pub type EOS_Auth_VerifyIdTokenOptions = _tagEOS_Auth_VerifyIdTokenOptions;
2557#[doc = " Output parameters for the EOS_Auth_VerifyIdToken Function."]
2558#[repr(C)]
2559#[derive(Debug, Copy, Clone)]
2560pub struct _tagEOS_Auth_VerifyIdTokenCallbackInfo {
2561    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
2562    pub ResultCode: EOS_EResult,
2563    #[doc = " Context that was passed into EOS_Auth_VerifyIdToken"]
2564    pub ClientData: *mut ::std::os::raw::c_void,
2565    #[doc = " Epic Account Services Application ID."]
2566    pub ApplicationId: *const ::std::os::raw::c_char,
2567    #[doc = " Client ID of the authorized client."]
2568    pub ClientId: *const ::std::os::raw::c_char,
2569    #[doc = " Product ID."]
2570    pub ProductId: *const ::std::os::raw::c_char,
2571    #[doc = " Sandbox ID."]
2572    pub SandboxId: *const ::std::os::raw::c_char,
2573    #[doc = " Deployment ID."]
2574    pub DeploymentId: *const ::std::os::raw::c_char,
2575    #[doc = " Epic Account display name.\n\n This value may be set to an empty string."]
2576    pub DisplayName: *const ::std::os::raw::c_char,
2577    #[doc = " Flag set to indicate whether external account information is present.\n Applications must always first check this value to be set before attempting\n to read the ExternalAccountIdType, ExternalAccountId, ExternalAccountDisplayName and Platform fields.\n\n This flag is set when the user has logged in to their Epic Account using external account credentials, e.g. through local platform authentication."]
2578    pub bIsExternalAccountInfoPresent: EOS_Bool,
2579    #[doc = " The identity provider that the user logged in with to their Epic Account.\n\n If bIsExternalAccountInfoPresent is set, this field describes the external account type."]
2580    pub ExternalAccountIdType: EOS_EExternalAccountType,
2581    #[doc = " The external account ID of the logged in user.\n\n This value may be set to an empty string."]
2582    pub ExternalAccountId: *const ::std::os::raw::c_char,
2583    #[doc = " The external account display name.\n\n This value may be set to an empty string."]
2584    pub ExternalAccountDisplayName: *const ::std::os::raw::c_char,
2585    #[doc = " Platform that the user is connected from.\n\n This value may be set to an empty string."]
2586    pub Platform: *const ::std::os::raw::c_char,
2587}
2588impl Default for _tagEOS_Auth_VerifyIdTokenCallbackInfo {
2589    fn default() -> Self {
2590        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2591        unsafe {
2592            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2593            s.assume_init()
2594        }
2595    }
2596}
2597#[doc = " Output parameters for the EOS_Auth_VerifyIdToken Function."]
2598pub type EOS_Auth_VerifyIdTokenCallbackInfo = _tagEOS_Auth_VerifyIdTokenCallbackInfo;
2599#[doc = " Function prototype definition for callbacks passed into EOS_Auth_VerifyIdToken.\n\n @param Data A EOS_Auth_VerifyIdTokenCallbackInfo containing the output information and result."]
2600pub type EOS_Auth_OnVerifyIdTokenCallback =
2601    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Auth_VerifyIdTokenCallbackInfo)>;
2602#[doc = " Input parameters for the EOS_Auth_AddNotifyLoginStatusChanged Function."]
2603#[repr(C)]
2604#[derive(Debug, Default, Copy, Clone)]
2605pub struct _tagEOS_Auth_AddNotifyLoginStatusChangedOptions {
2606    #[doc = " API Version: Set this to EOS_AUTH_ADDNOTIFYLOGINSTATUSCHANGED_API_LATEST."]
2607    pub ApiVersion: i32,
2608}
2609#[doc = " Input parameters for the EOS_Auth_AddNotifyLoginStatusChanged Function."]
2610pub type EOS_Auth_AddNotifyLoginStatusChangedOptions =
2611    _tagEOS_Auth_AddNotifyLoginStatusChangedOptions;
2612#[doc = " Input parameters for the EOS_Auth_DeletePersistentAuth function."]
2613#[repr(C)]
2614#[derive(Debug, Copy, Clone)]
2615pub struct _tagEOS_Auth_DeletePersistentAuthOptions {
2616    #[doc = " API Version: Set this to EOS_AUTH_DELETEPERSISTENTAUTH_API_LATEST."]
2617    pub ApiVersion: i32,
2618    #[doc = " A long-lived refresh token that is used with the EOS_LCT_PersistentAuth login type and is to be revoked from the authentication server. Only used on Console platforms.\n On Desktop and Mobile platforms, set this parameter to NULL."]
2619    pub RefreshToken: *const ::std::os::raw::c_char,
2620}
2621impl Default for _tagEOS_Auth_DeletePersistentAuthOptions {
2622    fn default() -> Self {
2623        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2624        unsafe {
2625            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2626            s.assume_init()
2627        }
2628    }
2629}
2630#[doc = " Input parameters for the EOS_Auth_DeletePersistentAuth function."]
2631pub type EOS_Auth_DeletePersistentAuthOptions = _tagEOS_Auth_DeletePersistentAuthOptions;
2632#[doc = " Output parameters for the EOS_Auth_DeletePersistentAuth Function."]
2633#[repr(C)]
2634#[derive(Debug, Copy, Clone)]
2635pub struct _tagEOS_Auth_DeletePersistentAuthCallbackInfo {
2636    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
2637    pub ResultCode: EOS_EResult,
2638    #[doc = " Context that was passed into EOS_Auth_DeletePersistentAuth"]
2639    pub ClientData: *mut ::std::os::raw::c_void,
2640}
2641impl Default for _tagEOS_Auth_DeletePersistentAuthCallbackInfo {
2642    fn default() -> Self {
2643        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2644        unsafe {
2645            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2646            s.assume_init()
2647        }
2648    }
2649}
2650#[doc = " Output parameters for the EOS_Auth_DeletePersistentAuth Function."]
2651pub type EOS_Auth_DeletePersistentAuthCallbackInfo = _tagEOS_Auth_DeletePersistentAuthCallbackInfo;
2652#[doc = " Function prototype definition for callbacks passed to EOS_Auth_DeletePersistentAuth\n @param Data A EOS_Auth_DeletePersistentAuthCallbackInfo containing the output information and result"]
2653pub type EOS_Auth_OnDeletePersistentAuthCallback = ::std::option::Option<
2654    unsafe extern "C" fn(Data: *const EOS_Auth_DeletePersistentAuthCallbackInfo),
2655>;
2656#[doc = " Output parameters for the EOS_Auth_OnLoginStatusChangedCallback Function."]
2657#[repr(C)]
2658#[derive(Debug, Copy, Clone)]
2659pub struct _tagEOS_Auth_LoginStatusChangedCallbackInfo {
2660    #[doc = " Context that was passed into EOS_Auth_AddNotifyLoginStatusChanged"]
2661    pub ClientData: *mut ::std::os::raw::c_void,
2662    #[doc = " The Epic Account ID of the local user whose status has changed"]
2663    pub LocalUserId: EOS_EpicAccountId,
2664    #[doc = " The status prior to the change"]
2665    pub PrevStatus: EOS_ELoginStatus,
2666    #[doc = " The status at the time of the notification"]
2667    pub CurrentStatus: EOS_ELoginStatus,
2668}
2669impl Default for _tagEOS_Auth_LoginStatusChangedCallbackInfo {
2670    fn default() -> Self {
2671        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2672        unsafe {
2673            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2674            s.assume_init()
2675        }
2676    }
2677}
2678#[doc = " Output parameters for the EOS_Auth_OnLoginStatusChangedCallback Function."]
2679pub type EOS_Auth_LoginStatusChangedCallbackInfo = _tagEOS_Auth_LoginStatusChangedCallbackInfo;
2680#[doc = " Function prototype definition for notifications that come from EOS_Auth_AddNotifyLoginStatusChanged\n\n @param Data A EOS_Auth_LoginStatusChangedCallbackInfo containing the output information and result"]
2681pub type EOS_Auth_OnLoginStatusChangedCallback = ::std::option::Option<
2682    unsafe extern "C" fn(Data: *const EOS_Auth_LoginStatusChangedCallbackInfo),
2683>;
2684#[repr(C)]
2685#[derive(Debug, Copy, Clone)]
2686pub struct EOS_EcomHandle {
2687    _unused: [u8; 0],
2688}
2689pub type EOS_HEcom = *mut EOS_EcomHandle;
2690#[repr(C)]
2691#[derive(Debug, Copy, Clone)]
2692pub struct EOS_Ecom_TransactionHandle {
2693    _unused: [u8; 0],
2694}
2695#[doc = " This handle is copied when EOS_Ecom_CopyTransactionById or EOS_Ecom_CopyTransactionByIndex is called.\n A EOS_Ecom_CheckoutCallbackInfo provides the ID for the copy.\n After being copied, EOS_Ecom_Transaction_Release must be called.\n\n @see EOS_Ecom_CheckoutCallbackInfo\n @see EOS_Ecom_CopyTransactionById\n @see EOS_Ecom_CopyTransactionByIndex\n @see EOS_Ecom_Transaction_Release"]
2696pub type EOS_Ecom_HTransaction = *mut EOS_Ecom_TransactionHandle;
2697#[doc = " A unique identifier for a catalog item defined and stored with the backend catalog service.\n A catalog item represents a distinct object within the catalog.  When acquired by an account, an\n entitlement is granted that references a specific catalog item."]
2698pub type EOS_Ecom_CatalogItemId = *const ::std::os::raw::c_char;
2699#[doc = " A unique identifier for a catalog offer defined and stored with the backend catalog service.\n A catalog offer is a purchasable collection of 1 or more items, associated with a price (which\n could be 0).  When an offer is purchased an entitlement is granted for each of the items\n referenced by the offer."]
2700pub type EOS_Ecom_CatalogOfferId = *const ::std::os::raw::c_char;
2701#[doc = " An identifier which is defined on a catalog item and stored with the backend catalog service.\n The entitlement name may not be unique.  A catalog may be configured with multiple items with the\n same entitlement name in order to define a logical grouping of entitlements.  This is used to\n retrieve all entitlements granted to an account grouped in this way.\n\n @see EOS_Ecom_QueryEntitlements"]
2702pub type EOS_Ecom_EntitlementName = *const ::std::os::raw::c_char;
2703#[doc = " A unique identifier for an entitlement owned by an account.  An entitlement is always associated\n with a single account.  The entitlement ID is provided to allow redeeming the entitlement as\n well as identify individual entitlement grants.\n\n @see EOS_Ecom_QueryEntitlements\n @see EOS_Ecom_RedeemEntitlements"]
2704pub type EOS_Ecom_EntitlementId = *const ::std::os::raw::c_char;
2705#[doc = " A unique identifier for the Sandbox.\n\n @see EOS_Ecom_QueryOwnershipBySandboxIds"]
2706pub type EOS_Ecom_SandboxId = *const ::std::os::raw::c_char;
2707#[doc = " The catalog item is not owned by the local user"]
2708pub const EOS_EOwnershipStatus_EOS_OS_NotOwned: EOS_EOwnershipStatus = 0;
2709#[doc = " The catalog item is owned by the local user"]
2710pub const EOS_EOwnershipStatus_EOS_OS_Owned: EOS_EOwnershipStatus = 1;
2711pub const EOS_EOwnershipStatus___EOS_EOwnershipStatus_PAD_INT32__: EOS_EOwnershipStatus =
2712    2147483647;
2713#[doc = " An enumeration of the different ownership statuses."]
2714pub type EOS_EOwnershipStatus = ::std::os::raw::c_int;
2715#[doc = " This entitlement is intended to persist."]
2716pub const EOS_EEcomItemType_EOS_EIT_Durable: EOS_EEcomItemType = 0;
2717#[doc = " This entitlement is intended to be transient and redeemed.\n\n @see EOS_Ecom_RedeemEntitlements"]
2718pub const EOS_EEcomItemType_EOS_EIT_Consumable: EOS_EEcomItemType = 1;
2719#[doc = " This entitlement has a type that is not currently intended for an in-game store."]
2720pub const EOS_EEcomItemType_EOS_EIT_Other: EOS_EEcomItemType = 2;
2721pub const EOS_EEcomItemType___EOS_EEcomItemType_PAD_INT32__: EOS_EEcomItemType = 2147483647;
2722#[doc = " An enumeration defining the type of catalog item.  The primary use is to identify how the item is expended."]
2723pub type EOS_EEcomItemType = ::std::os::raw::c_int;
2724#[doc = " Current orientation will be used"]
2725pub const EOS_ECheckoutOrientation_EOS_ECO_Default: EOS_ECheckoutOrientation = 0;
2726#[doc = " Portrait orientation"]
2727pub const EOS_ECheckoutOrientation_EOS_ECO_Portrait: EOS_ECheckoutOrientation = 1;
2728#[doc = " Landscape orientation"]
2729pub const EOS_ECheckoutOrientation_EOS_ECO_Landscape: EOS_ECheckoutOrientation = 2;
2730pub const EOS_ECheckoutOrientation___EOS_ECheckoutOrientation_PAD_INT32__:
2731    EOS_ECheckoutOrientation = 2147483647;
2732#[doc = " An enumeration defining the possible orientation for the checkout page. This will be used on mobile."]
2733pub type EOS_ECheckoutOrientation = ::std::os::raw::c_int;
2734#[doc = " Contains information about a single entitlement associated with an account. Instances of this structure are\n created by EOS_Ecom_CopyEntitlementByIndex, EOS_Ecom_CopyEntitlementByNameAndIndex, or EOS_Ecom_CopyEntitlementById.\n They must be passed to EOS_Ecom_Entitlement_Release."]
2735#[repr(C)]
2736#[derive(Debug, Copy, Clone)]
2737pub struct _tagEOS_Ecom_Entitlement {
2738    #[doc = " API Version: Set this to EOS_ECOM_ENTITLEMENT_API_LATEST."]
2739    pub ApiVersion: i32,
2740    #[doc = " Name of the entitlement"]
2741    pub EntitlementName: EOS_Ecom_EntitlementName,
2742    #[doc = " ID of the entitlement owned by an account"]
2743    pub EntitlementId: EOS_Ecom_EntitlementId,
2744    #[doc = " ID of the item associated with the offer which granted this entitlement"]
2745    pub CatalogItemId: EOS_Ecom_CatalogItemId,
2746    #[doc = " If queried using pagination then ServerIndex represents the index of the entitlement as it\n exists on the server.  If not queried using pagination then ServerIndex will be -1."]
2747    pub ServerIndex: i32,
2748    #[doc = " If true then the catalog has this entitlement marked as redeemed"]
2749    pub bRedeemed: EOS_Bool,
2750    #[doc = " If not -1 then this is a POSIX timestamp that this entitlement will end"]
2751    pub EndTimestamp: i64,
2752}
2753impl Default for _tagEOS_Ecom_Entitlement {
2754    fn default() -> Self {
2755        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2756        unsafe {
2757            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2758            s.assume_init()
2759        }
2760    }
2761}
2762#[doc = " Contains information about a single entitlement associated with an account. Instances of this structure are\n created by EOS_Ecom_CopyEntitlementByIndex, EOS_Ecom_CopyEntitlementByNameAndIndex, or EOS_Ecom_CopyEntitlementById.\n They must be passed to EOS_Ecom_Entitlement_Release."]
2763pub type EOS_Ecom_Entitlement = _tagEOS_Ecom_Entitlement;
2764unsafe extern "C" {
2765    #[doc = " Release the memory associated with an EOS_Ecom_Entitlement structure. This must be called on data\n retrieved from EOS_Ecom_CopyEntitlementByIndex and EOS_Ecom_CopyEntitlementById.\n\n @param Entitlement - The entitlement structure to be released\n\n @see EOS_Ecom_Entitlement\n @see EOS_Ecom_CopyEntitlementByIndex\n @see EOS_Ecom_CopyEntitlementById"]
2766    pub fn EOS_Ecom_Entitlement_Release(Entitlement: *mut EOS_Ecom_Entitlement);
2767}
2768#[doc = " Contains information about a single item ownership associated with an account. This structure is\n returned as part of the EOS_Ecom_QueryOwnershipCallbackInfo structure."]
2769#[repr(C)]
2770#[derive(Debug, Copy, Clone)]
2771pub struct _tagEOS_Ecom_ItemOwnership {
2772    #[doc = " API Version: Set this to EOS_ECOM_ITEMOWNERSHIP_API_LATEST."]
2773    pub ApiVersion: i32,
2774    #[doc = " ID of the catalog item"]
2775    pub Id: EOS_Ecom_CatalogItemId,
2776    #[doc = " Is this catalog item owned by the local user"]
2777    pub OwnershipStatus: EOS_EOwnershipStatus,
2778}
2779impl Default for _tagEOS_Ecom_ItemOwnership {
2780    fn default() -> Self {
2781        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2782        unsafe {
2783            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2784            s.assume_init()
2785        }
2786    }
2787}
2788#[doc = " Contains information about a single item ownership associated with an account. This structure is\n returned as part of the EOS_Ecom_QueryOwnershipCallbackInfo structure."]
2789pub type EOS_Ecom_ItemOwnership = _tagEOS_Ecom_ItemOwnership;
2790#[doc = " Contains information about a single item within the catalog. Instances of this structure are created\n by EOS_Ecom_CopyOfferItemByIndex. They must be passed to EOS_Ecom_CatalogItem_Release."]
2791#[repr(C)]
2792#[derive(Debug, Copy, Clone)]
2793pub struct _tagEOS_Ecom_CatalogItem {
2794    #[doc = " API Version: Set this to EOS_ECOM_CATALOGITEM_API_LATEST."]
2795    pub ApiVersion: i32,
2796    #[doc = " Product namespace in which this item exists"]
2797    pub CatalogNamespace: *const ::std::os::raw::c_char,
2798    #[doc = " The ID of this item"]
2799    pub Id: EOS_Ecom_CatalogItemId,
2800    #[doc = " The entitlement name associated with this item"]
2801    pub EntitlementName: EOS_Ecom_EntitlementName,
2802    #[doc = " Localized UTF-8 title of this item"]
2803    pub TitleText: *const ::std::os::raw::c_char,
2804    #[doc = " Localized UTF-8 description of this item"]
2805    pub DescriptionText: *const ::std::os::raw::c_char,
2806    #[doc = " Localized UTF-8 long description of this item"]
2807    pub LongDescriptionText: *const ::std::os::raw::c_char,
2808    #[doc = " Localized UTF-8 technical details of this item"]
2809    pub TechnicalDetailsText: *const ::std::os::raw::c_char,
2810    #[doc = " Localized UTF-8 developer of this item"]
2811    pub DeveloperText: *const ::std::os::raw::c_char,
2812    #[doc = " The type of item as defined in the catalog"]
2813    pub ItemType: EOS_EEcomItemType,
2814    #[doc = " If not -1 then this is the POSIX timestamp that the entitlement will end"]
2815    pub EntitlementEndTimestamp: i64,
2816}
2817impl Default for _tagEOS_Ecom_CatalogItem {
2818    fn default() -> Self {
2819        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2820        unsafe {
2821            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2822            s.assume_init()
2823        }
2824    }
2825}
2826#[doc = " Contains information about a single item within the catalog. Instances of this structure are created\n by EOS_Ecom_CopyOfferItemByIndex. They must be passed to EOS_Ecom_CatalogItem_Release."]
2827pub type EOS_Ecom_CatalogItem = _tagEOS_Ecom_CatalogItem;
2828unsafe extern "C" {
2829    #[doc = " Release the memory associated with an EOS_Ecom_CatalogItem structure. This must be called on data\n retrieved from EOS_Ecom_CopyOfferItemByIndex.\n\n @param CatalogItem - The catalog item structure to be released\n\n @see EOS_Ecom_CatalogItem\n @see EOS_Ecom_CopyOfferItemByIndex"]
2830    pub fn EOS_Ecom_CatalogItem_Release(CatalogItem: *mut EOS_Ecom_CatalogItem);
2831}
2832#[doc = " Contains information about a single offer within the catalog. Instances of this structure are\n created by EOS_Ecom_CopyOfferByIndex. They must be passed to EOS_Ecom_CatalogOffer_Release.\n Prices are stored in the lowest denomination for the associated currency.  If CurrencyCode is\n \"USD\" then a price of 299 represents \"$2.99\"."]
2833#[repr(C)]
2834#[derive(Debug, Copy, Clone)]
2835pub struct _tagEOS_Ecom_CatalogOffer {
2836    #[doc = " API Version: Set this to EOS_ECOM_CATALOGOFFER_API_LATEST."]
2837    pub ApiVersion: i32,
2838    #[doc = " The index of this offer as it exists on the server.\n This is useful for understanding pagination data."]
2839    pub ServerIndex: i32,
2840    #[doc = " Product namespace in which this offer exists"]
2841    pub CatalogNamespace: *const ::std::os::raw::c_char,
2842    #[doc = " The ID of this offer"]
2843    pub Id: EOS_Ecom_CatalogOfferId,
2844    #[doc = " Localized UTF-8 title of this offer"]
2845    pub TitleText: *const ::std::os::raw::c_char,
2846    #[doc = " Localized UTF-8 description of this offer"]
2847    pub DescriptionText: *const ::std::os::raw::c_char,
2848    #[doc = " Localized UTF-8 long description of this offer"]
2849    pub LongDescriptionText: *const ::std::os::raw::c_char,
2850    #[doc = " Deprecated.\n EOS_Ecom_CatalogItem::TechnicalDetailsText is still valid."]
2851    pub TechnicalDetailsText_DEPRECATED: *const ::std::os::raw::c_char,
2852    #[doc = " The Currency Code for this offer"]
2853    pub CurrencyCode: *const ::std::os::raw::c_char,
2854    #[doc = " If this value is EOS_Success then OriginalPrice, CurrentPrice, and DiscountPercentage contain valid data.\n Otherwise this value represents the error that occurred on the price query."]
2855    pub PriceResult: EOS_EResult,
2856    #[doc = " The original price of this offer as a 32-bit number is deprecated."]
2857    pub OriginalPrice_DEPRECATED: u32,
2858    #[doc = " The current price including discounts of this offer as a 32-bit number is deprecated.."]
2859    pub CurrentPrice_DEPRECATED: u32,
2860    #[doc = " A value from 0 to 100 define the percentage of the OrignalPrice that the CurrentPrice represents"]
2861    pub DiscountPercentage: u8,
2862    #[doc = " Contains the POSIX timestamp that the offer expires or -1 if it does not expire"]
2863    pub ExpirationTimestamp: i64,
2864    #[doc = " The number of times that the requesting account has purchased this offer.\n This value is deprecated and the backend no longer returns this value."]
2865    pub PurchasedCount_DEPRECATED: u32,
2866    #[doc = " The maximum number of times that the offer can be purchased.\n A negative value implies there is no limit."]
2867    pub PurchaseLimit: i32,
2868    #[doc = " True if the user can purchase this offer."]
2869    pub bAvailableForPurchase: EOS_Bool,
2870    #[doc = " The original price of this offer as a 64-bit number."]
2871    pub OriginalPrice64: u64,
2872    #[doc = " The current price including discounts of this offer as a 64-bit number."]
2873    pub CurrentPrice64: u64,
2874    #[doc = " The decimal point for the provided price.  For example, DecimalPoint '2' and CurrentPrice64 '12345' would be '123.45'."]
2875    pub DecimalPoint: u32,
2876    #[doc = " Timestamp indicating when the time when the offer was released. Can be ignored if set to -1."]
2877    pub ReleaseDateTimestamp: i64,
2878    #[doc = " Timestamp indicating the effective date of the offer. Can be ignored if set to -1."]
2879    pub EffectiveDateTimestamp: i64,
2880}
2881impl Default for _tagEOS_Ecom_CatalogOffer {
2882    fn default() -> Self {
2883        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2884        unsafe {
2885            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2886            s.assume_init()
2887        }
2888    }
2889}
2890#[doc = " Contains information about a single offer within the catalog. Instances of this structure are\n created by EOS_Ecom_CopyOfferByIndex. They must be passed to EOS_Ecom_CatalogOffer_Release.\n Prices are stored in the lowest denomination for the associated currency.  If CurrencyCode is\n \"USD\" then a price of 299 represents \"$2.99\"."]
2891pub type EOS_Ecom_CatalogOffer = _tagEOS_Ecom_CatalogOffer;
2892unsafe extern "C" {
2893    #[doc = " Release the memory associated with an EOS_Ecom_CatalogOffer structure. This must be called on data\n retrieved from EOS_Ecom_CopyOfferByIndex.\n\n @param CatalogOffer - The catalog offer structure to be released\n\n @see EOS_Ecom_CatalogOffer\n @see EOS_Ecom_CopyOfferByIndex"]
2894    pub fn EOS_Ecom_CatalogOffer_Release(CatalogOffer: *mut EOS_Ecom_CatalogOffer);
2895}
2896#[doc = " Contains information about a key image used by the catalog.  Instances of this structure are\n created by EOS_Ecom_CopyItemImageInfoByIndex.  They must be passed to EOS_Ecom_KeyImageInfo_Release.\n A Key Image is defined within Dev Portal and is associated with a Catalog Item.  A Key Image is\n intended to be used to provide imagery for an in-game store.\n\n @see EOS_Ecom_CopyItemImageInfoByIndex\n @see EOS_Ecom_KeyImageInfo_Release"]
2897#[repr(C)]
2898#[derive(Debug, Copy, Clone)]
2899pub struct _tagEOS_Ecom_KeyImageInfo {
2900    #[doc = " API Version: Set this to EOS_ECOM_KEYIMAGEINFO_API_LATEST."]
2901    pub ApiVersion: i32,
2902    #[doc = " Describes the usage of the image (ex: home_thumbnail)"]
2903    pub Type: *const ::std::os::raw::c_char,
2904    #[doc = " The URL of the image"]
2905    pub Url: *const ::std::os::raw::c_char,
2906    #[doc = " The expected width in pixels of the image"]
2907    pub Width: u32,
2908    #[doc = " The expected height in pixels of the image"]
2909    pub Height: u32,
2910}
2911impl Default for _tagEOS_Ecom_KeyImageInfo {
2912    fn default() -> Self {
2913        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2914        unsafe {
2915            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2916            s.assume_init()
2917        }
2918    }
2919}
2920#[doc = " Contains information about a key image used by the catalog.  Instances of this structure are\n created by EOS_Ecom_CopyItemImageInfoByIndex.  They must be passed to EOS_Ecom_KeyImageInfo_Release.\n A Key Image is defined within Dev Portal and is associated with a Catalog Item.  A Key Image is\n intended to be used to provide imagery for an in-game store.\n\n @see EOS_Ecom_CopyItemImageInfoByIndex\n @see EOS_Ecom_KeyImageInfo_Release"]
2921pub type EOS_Ecom_KeyImageInfo = _tagEOS_Ecom_KeyImageInfo;
2922unsafe extern "C" {
2923    #[doc = " Release the memory associated with an EOS_Ecom_KeyImageInfo structure. This must be called on data\n retrieved from EOS_Ecom_CopyItemImageInfoByIndex.\n\n @param KeyImageInfo - The key image info structure to be released\n\n @see EOS_Ecom_KeyImageInfo\n @see EOS_Ecom_CopyItemImageInfoByIndex"]
2924    pub fn EOS_Ecom_KeyImageInfo_Release(KeyImageInfo: *mut EOS_Ecom_KeyImageInfo);
2925}
2926#[doc = " Contains information about a single release within the catalog. Instances of this structure are\n created by EOS_Ecom_CopyItemReleaseByIndex. They must be passed to EOS_Ecom_CatalogRelease_Release."]
2927#[repr(C)]
2928#[derive(Debug, Copy, Clone)]
2929pub struct _tagEOS_Ecom_CatalogRelease {
2930    #[doc = " API Version: Set this to EOS_ECOM_CATALOGRELEASE_API_LATEST."]
2931    pub ApiVersion: i32,
2932    #[doc = " The number of APP IDs"]
2933    pub CompatibleAppIdCount: u32,
2934    #[doc = " A list of compatible APP IDs"]
2935    pub CompatibleAppIds: *mut *const ::std::os::raw::c_char,
2936    #[doc = " The number of platforms"]
2937    pub CompatiblePlatformCount: u32,
2938    #[doc = " A list of compatible Platforms"]
2939    pub CompatiblePlatforms: *mut *const ::std::os::raw::c_char,
2940    #[doc = " Release note for compatible versions"]
2941    pub ReleaseNote: *const ::std::os::raw::c_char,
2942}
2943impl Default for _tagEOS_Ecom_CatalogRelease {
2944    fn default() -> Self {
2945        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2946        unsafe {
2947            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2948            s.assume_init()
2949        }
2950    }
2951}
2952#[doc = " Contains information about a single release within the catalog. Instances of this structure are\n created by EOS_Ecom_CopyItemReleaseByIndex. They must be passed to EOS_Ecom_CatalogRelease_Release."]
2953pub type EOS_Ecom_CatalogRelease = _tagEOS_Ecom_CatalogRelease;
2954unsafe extern "C" {
2955    #[doc = " Release the memory associated with an EOS_Ecom_CatalogRelease structure. This must be called on\n data retrieved from EOS_Ecom_CopyItemReleaseByIndex.\n\n @param CatalogRelease - The catalog release structure to be released\n\n @see EOS_Ecom_CatalogRelease\n @see EOS_Ecom_CopyItemReleaseByIndex"]
2956    pub fn EOS_Ecom_CatalogRelease_Release(CatalogRelease: *mut EOS_Ecom_CatalogRelease);
2957}
2958#[doc = " Contains information about a request to purchase a single offer.  This structure is set as part\n of the EOS_Ecom_CheckoutOptions structure."]
2959#[repr(C)]
2960#[derive(Debug, Copy, Clone)]
2961pub struct _tagEOS_Ecom_CheckoutEntry {
2962    #[doc = " API Version: Set this to EOS_ECOM_CHECKOUTENTRY_API_LATEST."]
2963    pub ApiVersion: i32,
2964    #[doc = " The ID of the offer to purchase"]
2965    pub OfferId: EOS_Ecom_CatalogOfferId,
2966}
2967impl Default for _tagEOS_Ecom_CheckoutEntry {
2968    fn default() -> Self {
2969        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2970        unsafe {
2971            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2972            s.assume_init()
2973        }
2974    }
2975}
2976#[doc = " Contains information about a request to purchase a single offer.  This structure is set as part\n of the EOS_Ecom_CheckoutOptions structure."]
2977pub type EOS_Ecom_CheckoutEntry = _tagEOS_Ecom_CheckoutEntry;
2978#[doc = " Input parameters for the EOS_Ecom_QueryOwnership function."]
2979#[repr(C)]
2980#[derive(Debug, Copy, Clone)]
2981pub struct _tagEOS_Ecom_QueryOwnershipOptions {
2982    #[doc = " API Version: Set this to EOS_ECOM_QUERYOWNERSHIP_API_LATEST."]
2983    pub ApiVersion: i32,
2984    #[doc = " The Epic Account ID of the local user whose ownership to query"]
2985    pub LocalUserId: EOS_EpicAccountId,
2986    #[doc = " The array of Catalog Item IDs to check for ownership"]
2987    pub CatalogItemIds: *mut EOS_Ecom_CatalogItemId,
2988    #[doc = " The number of Catalog Item IDs to in the array"]
2989    pub CatalogItemIdCount: u32,
2990    #[doc = " Optional product namespace, if not the one specified during initialization"]
2991    pub CatalogNamespace: *const ::std::os::raw::c_char,
2992}
2993impl Default for _tagEOS_Ecom_QueryOwnershipOptions {
2994    fn default() -> Self {
2995        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2996        unsafe {
2997            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2998            s.assume_init()
2999        }
3000    }
3001}
3002#[doc = " Input parameters for the EOS_Ecom_QueryOwnership function."]
3003pub type EOS_Ecom_QueryOwnershipOptions = _tagEOS_Ecom_QueryOwnershipOptions;
3004#[doc = " Output parameters for the EOS_Ecom_QueryOwnership Function."]
3005#[repr(C)]
3006#[derive(Debug, Copy, Clone)]
3007pub struct _tagEOS_Ecom_QueryOwnershipCallbackInfo {
3008    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
3009    pub ResultCode: EOS_EResult,
3010    #[doc = " Context that was passed into EOS_Ecom_QueryOwnership"]
3011    pub ClientData: *mut ::std::os::raw::c_void,
3012    #[doc = " The Epic Account ID of the local user whose ownership was queried"]
3013    pub LocalUserId: EOS_EpicAccountId,
3014    #[doc = " List of catalog items and their ownership status"]
3015    pub ItemOwnership: *const EOS_Ecom_ItemOwnership,
3016    #[doc = " Number of ownership results are included in this callback"]
3017    pub ItemOwnershipCount: u32,
3018}
3019impl Default for _tagEOS_Ecom_QueryOwnershipCallbackInfo {
3020    fn default() -> Self {
3021        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3022        unsafe {
3023            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3024            s.assume_init()
3025        }
3026    }
3027}
3028#[doc = " Output parameters for the EOS_Ecom_QueryOwnership Function."]
3029pub type EOS_Ecom_QueryOwnershipCallbackInfo = _tagEOS_Ecom_QueryOwnershipCallbackInfo;
3030#[doc = " Function prototype definition for callbacks passed to EOS_Ecom_QueryOwnership\n @param Data A EOS_Ecom_QueryOwnershipCallbackInfo containing the output information and result"]
3031pub type EOS_Ecom_OnQueryOwnershipCallback =
3032    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Ecom_QueryOwnershipCallbackInfo)>;
3033#[doc = " Input parameters for the EOS_Ecom_QueryOwnershipBySandboxIds function."]
3034#[repr(C)]
3035#[derive(Debug, Copy, Clone)]
3036pub struct _tagEOS_Ecom_QueryOwnershipBySandboxIdsOptions {
3037    #[doc = " API Version: Set this to EOS_ECOM_QUERYOWNERSHIPBYSANDBOXIDSOPTIONS_API_LATEST."]
3038    pub ApiVersion: i32,
3039    #[doc = " The Epic Account ID of the local user whose ownership to query."]
3040    pub LocalUserId: EOS_EpicAccountId,
3041    #[doc = " The array of Sandbox IDs to check for ownership."]
3042    pub SandboxIds: *mut EOS_Ecom_SandboxId,
3043    #[doc = " The number of Sandbox IDs in the query."]
3044    pub SandboxIdsCount: u32,
3045}
3046impl Default for _tagEOS_Ecom_QueryOwnershipBySandboxIdsOptions {
3047    fn default() -> Self {
3048        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3049        unsafe {
3050            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3051            s.assume_init()
3052        }
3053    }
3054}
3055#[doc = " Input parameters for the EOS_Ecom_QueryOwnershipBySandboxIds function."]
3056pub type EOS_Ecom_QueryOwnershipBySandboxIdsOptions =
3057    _tagEOS_Ecom_QueryOwnershipBySandboxIdsOptions;
3058#[doc = " Contains all owned catalog items for a sandbox ID. This structure is\n returned as part of the EOS_Ecom_QueryOwnershipBySandboxIdsCallbackInfo structure.\n Note: The SandboxID and CatalogItemId strings will not remain valid after EOS_Ecom_OnQueryOwnershipBySandboxIdsCallback, so a copy should be as needed."]
3059#[repr(C)]
3060#[derive(Debug, Copy, Clone)]
3061pub struct _tagEOS_Ecom_SandboxIdItemOwnership {
3062    #[doc = " SandboxId"]
3063    pub SandboxId: EOS_Ecom_SandboxId,
3064    #[doc = " List of all owned catalog items for this SandboxId"]
3065    pub OwnedCatalogItemIds: *const EOS_Ecom_CatalogItemId,
3066    #[doc = " Number of owned catalog items for this SandboxId"]
3067    pub OwnedCatalogItemIdsCount: u32,
3068}
3069impl Default for _tagEOS_Ecom_SandboxIdItemOwnership {
3070    fn default() -> Self {
3071        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3072        unsafe {
3073            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3074            s.assume_init()
3075        }
3076    }
3077}
3078#[doc = " Contains all owned catalog items for a sandbox ID. This structure is\n returned as part of the EOS_Ecom_QueryOwnershipBySandboxIdsCallbackInfo structure.\n Note: The SandboxID and CatalogItemId strings will not remain valid after EOS_Ecom_OnQueryOwnershipBySandboxIdsCallback, so a copy should be as needed."]
3079pub type EOS_Ecom_SandboxIdItemOwnership = _tagEOS_Ecom_SandboxIdItemOwnership;
3080#[doc = " Output parameters for the EOS_Ecom_QueryOwnershipBySandboxIds Function."]
3081#[repr(C)]
3082#[derive(Debug, Copy, Clone)]
3083pub struct _tagEOS_Ecom_QueryOwnershipBySandboxIdsCallbackInfo {
3084    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
3085    pub ResultCode: EOS_EResult,
3086    #[doc = " Context that was passed into EOS_Ecom_QueryOwnership"]
3087    pub ClientData: *mut ::std::os::raw::c_void,
3088    #[doc = " The Epic Account ID of the local user whose ownership was queried"]
3089    pub LocalUserId: EOS_EpicAccountId,
3090    #[doc = " List of SandboxIds and their corresponding owned catalog item Ids. If there are no ownership items, the OwnedCatalogItemIdsCount is 0 and OwnedCatalogItemIds is null."]
3091    pub SandboxIdItemOwnerships: *const EOS_Ecom_SandboxIdItemOwnership,
3092    #[doc = " Number of ownership results are included in this callback"]
3093    pub SandboxIdItemOwnershipsCount: u32,
3094}
3095impl Default for _tagEOS_Ecom_QueryOwnershipBySandboxIdsCallbackInfo {
3096    fn default() -> Self {
3097        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3098        unsafe {
3099            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3100            s.assume_init()
3101        }
3102    }
3103}
3104#[doc = " Output parameters for the EOS_Ecom_QueryOwnershipBySandboxIds Function."]
3105pub type EOS_Ecom_QueryOwnershipBySandboxIdsCallbackInfo =
3106    _tagEOS_Ecom_QueryOwnershipBySandboxIdsCallbackInfo;
3107#[doc = " Function prototype definition for callbacks passed to EOS_Ecom_QueryOwnershipBySandboxIds\n @param Data A EOS_Ecom_QueryOwnershipBySandboxIdsCallbackInfo containing the output information and result"]
3108pub type EOS_Ecom_OnQueryOwnershipBySandboxIdsCallback = ::std::option::Option<
3109    unsafe extern "C" fn(Data: *const EOS_Ecom_QueryOwnershipBySandboxIdsCallbackInfo),
3110>;
3111#[doc = " Input parameters for the EOS_Ecom_QueryOwnershipToken function."]
3112#[repr(C)]
3113#[derive(Debug, Copy, Clone)]
3114pub struct _tagEOS_Ecom_QueryOwnershipTokenOptions {
3115    #[doc = " API Version: Set this to EOS_ECOM_QUERYOWNERSHIPTOKEN_API_LATEST."]
3116    pub ApiVersion: i32,
3117    #[doc = " The Epic Account ID of the local user whose ownership token you want to query"]
3118    pub LocalUserId: EOS_EpicAccountId,
3119    #[doc = " The array of Catalog Item IDs to check for ownership, matching in number to the CatalogItemIdCount"]
3120    pub CatalogItemIds: *mut EOS_Ecom_CatalogItemId,
3121    #[doc = " The number of catalog item IDs to query"]
3122    pub CatalogItemIdCount: u32,
3123    #[doc = " Optional product namespace, if not the one specified during initialization"]
3124    pub CatalogNamespace: *const ::std::os::raw::c_char,
3125}
3126impl Default for _tagEOS_Ecom_QueryOwnershipTokenOptions {
3127    fn default() -> Self {
3128        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3129        unsafe {
3130            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3131            s.assume_init()
3132        }
3133    }
3134}
3135#[doc = " Input parameters for the EOS_Ecom_QueryOwnershipToken function."]
3136pub type EOS_Ecom_QueryOwnershipTokenOptions = _tagEOS_Ecom_QueryOwnershipTokenOptions;
3137#[doc = " Output parameters for the EOS_Ecom_QueryOwnershipToken Function."]
3138#[repr(C)]
3139#[derive(Debug, Copy, Clone)]
3140pub struct _tagEOS_Ecom_QueryOwnershipTokenCallbackInfo {
3141    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
3142    pub ResultCode: EOS_EResult,
3143    #[doc = " Context that was passed into EOS_Ecom_QueryOwnershipToken"]
3144    pub ClientData: *mut ::std::os::raw::c_void,
3145    #[doc = " The Epic Account ID of the local user whose ownership token was queried"]
3146    pub LocalUserId: EOS_EpicAccountId,
3147    #[doc = " Ownership token containing details about the catalog items queried"]
3148    pub OwnershipToken: *const ::std::os::raw::c_char,
3149}
3150impl Default for _tagEOS_Ecom_QueryOwnershipTokenCallbackInfo {
3151    fn default() -> Self {
3152        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3153        unsafe {
3154            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3155            s.assume_init()
3156        }
3157    }
3158}
3159#[doc = " Output parameters for the EOS_Ecom_QueryOwnershipToken Function."]
3160pub type EOS_Ecom_QueryOwnershipTokenCallbackInfo = _tagEOS_Ecom_QueryOwnershipTokenCallbackInfo;
3161#[doc = " Function prototype definition for callbacks passed to EOS_Ecom_QueryOwnershipToken\n @param Data A EOS_Ecom_QueryOwnershipTokenCallbackInfo containing the output information and result"]
3162pub type EOS_Ecom_OnQueryOwnershipTokenCallback = ::std::option::Option<
3163    unsafe extern "C" fn(Data: *const EOS_Ecom_QueryOwnershipTokenCallbackInfo),
3164>;
3165#[doc = " Input parameters for the EOS_Ecom_QueryEntitlements function."]
3166#[repr(C)]
3167#[derive(Debug, Copy, Clone)]
3168pub struct _tagEOS_Ecom_QueryEntitlementsOptions {
3169    #[doc = " API Version: Set this to EOS_ECOM_QUERYENTITLEMENTS_API_LATEST."]
3170    pub ApiVersion: i32,
3171    #[doc = " The Epic Account ID of the local user whose Entitlements you want to retrieve"]
3172    pub LocalUserId: EOS_EpicAccountId,
3173    #[doc = " An array of Entitlement Names that you want to check"]
3174    pub EntitlementNames: *mut EOS_Ecom_EntitlementName,
3175    #[doc = " The number of Entitlement Names included in the array, up to EOS_ECOM_QUERYENTITLEMENTS_MAX_ENTITLEMENT_IDS; use zero to request all Entitlements associated with the user's Epic Online Services account."]
3176    pub EntitlementNameCount: u32,
3177    #[doc = " If true, Entitlements that have been redeemed will be included in the results."]
3178    pub bIncludeRedeemed: EOS_Bool,
3179    #[doc = " If not provided then the SandboxId is used as the catalog namespace"]
3180    pub OverrideCatalogNamespace: *const ::std::os::raw::c_char,
3181}
3182impl Default for _tagEOS_Ecom_QueryEntitlementsOptions {
3183    fn default() -> Self {
3184        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3185        unsafe {
3186            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3187            s.assume_init()
3188        }
3189    }
3190}
3191#[doc = " Input parameters for the EOS_Ecom_QueryEntitlements function."]
3192pub type EOS_Ecom_QueryEntitlementsOptions = _tagEOS_Ecom_QueryEntitlementsOptions;
3193#[doc = " Output parameters for the EOS_Ecom_QueryEntitlements Function."]
3194#[repr(C)]
3195#[derive(Debug, Copy, Clone)]
3196pub struct _tagEOS_Ecom_QueryEntitlementsCallbackInfo {
3197    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
3198    pub ResultCode: EOS_EResult,
3199    #[doc = " Context that was passed into EOS_Ecom_QueryEntitlements"]
3200    pub ClientData: *mut ::std::os::raw::c_void,
3201    #[doc = " The Epic Account ID of the local user whose entitlement was queried"]
3202    pub LocalUserId: EOS_EpicAccountId,
3203}
3204impl Default for _tagEOS_Ecom_QueryEntitlementsCallbackInfo {
3205    fn default() -> Self {
3206        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3207        unsafe {
3208            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3209            s.assume_init()
3210        }
3211    }
3212}
3213#[doc = " Output parameters for the EOS_Ecom_QueryEntitlements Function."]
3214pub type EOS_Ecom_QueryEntitlementsCallbackInfo = _tagEOS_Ecom_QueryEntitlementsCallbackInfo;
3215#[doc = " Function prototype definition for callbacks passed to EOS_Ecom_QueryOwnershipToken\n @param Data A EOS_Ecom_QueryEntitlementsCallbackInfo containing the output information and result"]
3216pub type EOS_Ecom_OnQueryEntitlementsCallback = ::std::option::Option<
3217    unsafe extern "C" fn(Data: *const EOS_Ecom_QueryEntitlementsCallbackInfo),
3218>;
3219#[doc = " Input parameters for the EOS_Ecom_QueryEntitlementToken function."]
3220#[repr(C)]
3221#[derive(Debug, Copy, Clone)]
3222pub struct _tagEOS_Ecom_QueryEntitlementTokenOptions {
3223    #[doc = " API Version: Set this to EOS_ECOM_QUERYENTITLEMENTTOKEN_API_LATEST."]
3224    pub ApiVersion: i32,
3225    #[doc = " The Epic Account ID of the local user whose Entitlements you want to retrieve"]
3226    pub LocalUserId: EOS_EpicAccountId,
3227    #[doc = " An array of Entitlement Names that you want to check"]
3228    pub EntitlementNames: *mut EOS_Ecom_EntitlementName,
3229    #[doc = " The number of Entitlement Names included in the array, up to EOS_ECOM_QUERYENTITLEMENTTOKEN_MAX_ENTITLEMENT_IDS; use zero to request all Entitlements associated with the user's Epic Online Services account."]
3230    pub EntitlementNameCount: u32,
3231}
3232impl Default for _tagEOS_Ecom_QueryEntitlementTokenOptions {
3233    fn default() -> Self {
3234        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3235        unsafe {
3236            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3237            s.assume_init()
3238        }
3239    }
3240}
3241#[doc = " Input parameters for the EOS_Ecom_QueryEntitlementToken function."]
3242pub type EOS_Ecom_QueryEntitlementTokenOptions = _tagEOS_Ecom_QueryEntitlementTokenOptions;
3243#[doc = " Output parameters for the EOS_Ecom_QueryEntitlementToken Function."]
3244#[repr(C)]
3245#[derive(Debug, Copy, Clone)]
3246pub struct _tagEOS_Ecom_QueryEntitlementTokenCallbackInfo {
3247    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
3248    pub ResultCode: EOS_EResult,
3249    #[doc = " Context that was passed into EOS_Ecom_QueryEntitlementToken"]
3250    pub ClientData: *mut ::std::os::raw::c_void,
3251    #[doc = " The Epic Account ID of the local user whose entitlement was queried"]
3252    pub LocalUserId: EOS_EpicAccountId,
3253    #[doc = " Entitlements token containing details about the catalog items queried"]
3254    pub EntitlementToken: *const ::std::os::raw::c_char,
3255}
3256impl Default for _tagEOS_Ecom_QueryEntitlementTokenCallbackInfo {
3257    fn default() -> Self {
3258        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3259        unsafe {
3260            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3261            s.assume_init()
3262        }
3263    }
3264}
3265#[doc = " Output parameters for the EOS_Ecom_QueryEntitlementToken Function."]
3266pub type EOS_Ecom_QueryEntitlementTokenCallbackInfo =
3267    _tagEOS_Ecom_QueryEntitlementTokenCallbackInfo;
3268#[doc = " Function prototype definition for callbacks passed to EOS_Ecom_QueryEntitlementToken.\n @param Data A EOS_Ecom_QueryEntitlementTokenCallbackInfo containing the output information and result."]
3269pub type EOS_Ecom_OnQueryEntitlementTokenCallback = ::std::option::Option<
3270    unsafe extern "C" fn(Data: *const EOS_Ecom_QueryEntitlementTokenCallbackInfo),
3271>;
3272#[doc = " Input parameters for the EOS_Ecom_QueryOffers function."]
3273#[repr(C)]
3274#[derive(Debug, Copy, Clone)]
3275pub struct _tagEOS_Ecom_QueryOffersOptions {
3276    #[doc = " API Version: Set this to EOS_ECOM_QUERYOFFERS_API_LATEST."]
3277    pub ApiVersion: i32,
3278    #[doc = " The Epic Account ID of the local user whose offer to query"]
3279    pub LocalUserId: EOS_EpicAccountId,
3280    #[doc = " If not provided then the SandboxId is used as the catalog namespace"]
3281    pub OverrideCatalogNamespace: *const ::std::os::raw::c_char,
3282}
3283impl Default for _tagEOS_Ecom_QueryOffersOptions {
3284    fn default() -> Self {
3285        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3286        unsafe {
3287            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3288            s.assume_init()
3289        }
3290    }
3291}
3292#[doc = " Input parameters for the EOS_Ecom_QueryOffers function."]
3293pub type EOS_Ecom_QueryOffersOptions = _tagEOS_Ecom_QueryOffersOptions;
3294#[doc = " Output parameters for the EOS_Ecom_QueryOffers Function."]
3295#[repr(C)]
3296#[derive(Debug, Copy, Clone)]
3297pub struct _tagEOS_Ecom_QueryOffersCallbackInfo {
3298    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
3299    pub ResultCode: EOS_EResult,
3300    #[doc = " Context that was passed into EOS_Ecom_QueryOffers"]
3301    pub ClientData: *mut ::std::os::raw::c_void,
3302    #[doc = " The Epic Account ID of the local user whose offer was queried; needed for localization of Catalog Item (Item) description text and pricing information"]
3303    pub LocalUserId: EOS_EpicAccountId,
3304}
3305impl Default for _tagEOS_Ecom_QueryOffersCallbackInfo {
3306    fn default() -> Self {
3307        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3308        unsafe {
3309            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3310            s.assume_init()
3311        }
3312    }
3313}
3314#[doc = " Output parameters for the EOS_Ecom_QueryOffers Function."]
3315pub type EOS_Ecom_QueryOffersCallbackInfo = _tagEOS_Ecom_QueryOffersCallbackInfo;
3316#[doc = " Function prototype definition for callbacks passed to EOS_Ecom_QueryOffers. When one or more cached offers have an invalid price, the callback returns the result code EOS_EResult::EOS_Ecom_CatalogOfferPriceInvalid.\n @param Data A EOS_Ecom_QueryOffersCallbackInfo containing the output information and result"]
3317pub type EOS_Ecom_OnQueryOffersCallback =
3318    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Ecom_QueryOffersCallbackInfo)>;
3319#[doc = " Input parameters for the EOS_Ecom_Checkout function."]
3320#[repr(C)]
3321#[derive(Debug, Copy, Clone)]
3322pub struct _tagEOS_Ecom_CheckoutOptions {
3323    #[doc = " API Version: Set this to EOS_ECOM_CHECKOUT_API_LATEST."]
3324    pub ApiVersion: i32,
3325    #[doc = " The Epic Account ID of the local user who is making the purchase"]
3326    pub LocalUserId: EOS_EpicAccountId,
3327    #[doc = " The catalog namespace will be the current Sandbox ID (in EOS_Platform_Options) unless overridden by this field"]
3328    pub OverrideCatalogNamespace: *const ::std::os::raw::c_char,
3329    #[doc = " The number of EOS_Ecom_CheckoutEntry elements contained in Entries"]
3330    pub EntryCount: u32,
3331    #[doc = " An array of EOS_Ecom_CheckoutEntry elements, each containing the details of a single offer"]
3332    pub Entries: *const EOS_Ecom_CheckoutEntry,
3333    #[doc = " Preferred device orientation, specifies Default, Portrait or Landscape.\n This is used only on mobile platforms currently.\n SDK can use it to optimize how the Checkout page should be displayed.\n Please check the mobile SDK documentation for additional required setup."]
3334    pub PreferredOrientation: EOS_ECheckoutOrientation,
3335}
3336impl Default for _tagEOS_Ecom_CheckoutOptions {
3337    fn default() -> Self {
3338        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3339        unsafe {
3340            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3341            s.assume_init()
3342        }
3343    }
3344}
3345#[doc = " Input parameters for the EOS_Ecom_Checkout function."]
3346pub type EOS_Ecom_CheckoutOptions = _tagEOS_Ecom_CheckoutOptions;
3347#[doc = " Output parameters for the EOS_Ecom_Checkout Function."]
3348#[repr(C)]
3349#[derive(Debug, Copy, Clone)]
3350pub struct _tagEOS_Ecom_CheckoutCallbackInfo {
3351    #[doc = " Result code for the operation. EOS_Success is returned for a successful request, otherwise one of the error codes is returned. See eos_common.h"]
3352    pub ResultCode: EOS_EResult,
3353    #[doc = " Context that was passed into EOS_Ecom_Checkout"]
3354    pub ClientData: *mut ::std::os::raw::c_void,
3355    #[doc = " The Epic Account ID of the user who initiated the purchase"]
3356    pub LocalUserId: EOS_EpicAccountId,
3357    #[doc = " The transaction ID which can be used to obtain an EOS_Ecom_HTransaction using EOS_Ecom_CopyTransactionById."]
3358    pub TransactionId: *const ::std::os::raw::c_char,
3359}
3360impl Default for _tagEOS_Ecom_CheckoutCallbackInfo {
3361    fn default() -> Self {
3362        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3363        unsafe {
3364            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3365            s.assume_init()
3366        }
3367    }
3368}
3369#[doc = " Output parameters for the EOS_Ecom_Checkout Function."]
3370pub type EOS_Ecom_CheckoutCallbackInfo = _tagEOS_Ecom_CheckoutCallbackInfo;
3371#[doc = " Function prototype definition for callbacks passed to EOS_Ecom_Checkout\n @param Data A EOS_Ecom_CheckoutCallbackInfo containing the output information and result"]
3372pub type EOS_Ecom_OnCheckoutCallback =
3373    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Ecom_CheckoutCallbackInfo)>;
3374#[doc = " Input parameters for the EOS_Ecom_RedeemEntitlements function."]
3375#[repr(C)]
3376#[derive(Debug, Copy, Clone)]
3377pub struct _tagEOS_Ecom_RedeemEntitlementsOptions {
3378    #[doc = " API Version: Set this to EOS_ECOM_REDEEMENTITLEMENTS_API_LATEST."]
3379    pub ApiVersion: i32,
3380    #[doc = " The Epic Account ID of the user who is redeeming Entitlements"]
3381    pub LocalUserId: EOS_EpicAccountId,
3382    #[doc = " The number of Entitlements to redeem"]
3383    pub EntitlementIdCount: u32,
3384    #[doc = " The array of Entitlements to redeem"]
3385    pub EntitlementIds: *mut EOS_Ecom_EntitlementId,
3386}
3387impl Default for _tagEOS_Ecom_RedeemEntitlementsOptions {
3388    fn default() -> Self {
3389        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3390        unsafe {
3391            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3392            s.assume_init()
3393        }
3394    }
3395}
3396#[doc = " Input parameters for the EOS_Ecom_RedeemEntitlements function."]
3397pub type EOS_Ecom_RedeemEntitlementsOptions = _tagEOS_Ecom_RedeemEntitlementsOptions;
3398#[doc = " Output parameters for the EOS_Ecom_RedeemEntitlements Function."]
3399#[repr(C)]
3400#[derive(Debug, Copy, Clone)]
3401pub struct _tagEOS_Ecom_RedeemEntitlementsCallbackInfo {
3402    #[doc = " Result code for the operation. EOS_Success is returned for a successful request, otherwise one of the error codes is returned. See eos_common.h"]
3403    pub ResultCode: EOS_EResult,
3404    #[doc = " Context that was passed into EOS_Ecom_RedeemEntitlements"]
3405    pub ClientData: *mut ::std::os::raw::c_void,
3406    #[doc = " The Epic Account ID of the user who has redeemed entitlements"]
3407    pub LocalUserId: EOS_EpicAccountId,
3408    pub RedeemedEntitlementIdsCount: u32,
3409    pub PreviouslyRedeemedEntitlementIdsCount: u32,
3410    pub InvalidEntitlementIdsCount: u32,
3411}
3412impl Default for _tagEOS_Ecom_RedeemEntitlementsCallbackInfo {
3413    fn default() -> Self {
3414        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3415        unsafe {
3416            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3417            s.assume_init()
3418        }
3419    }
3420}
3421#[doc = " Output parameters for the EOS_Ecom_RedeemEntitlements Function."]
3422pub type EOS_Ecom_RedeemEntitlementsCallbackInfo = _tagEOS_Ecom_RedeemEntitlementsCallbackInfo;
3423#[doc = " Function prototype definition for callbacks passed to EOS_Ecom_RedeemEntitlements\n @param Data A EOS_Ecom_RedeemEntitlementsCallbackInfo containing the output information and result"]
3424pub type EOS_Ecom_OnRedeemEntitlementsCallback = ::std::option::Option<
3425    unsafe extern "C" fn(Data: *const EOS_Ecom_RedeemEntitlementsCallbackInfo),
3426>;
3427#[doc = " Input parameters for the EOS_Ecom_GetLastRedeemedEntitlementsCount function."]
3428#[repr(C)]
3429#[derive(Debug, Copy, Clone)]
3430pub struct _tagEOS_Ecom_GetLastRedeemedEntitlementsCountOptions {
3431    #[doc = " API Version: Set this to EOS_ECOM_GETLASTREDEEMEDENTITLEMENTSCOUNT_API_LATEST."]
3432    pub ApiVersion: i32,
3433    #[doc = " The Epic Account ID of the local user for who to retrieve the last redeemed entitlements count"]
3434    pub LocalUserId: EOS_EpicAccountId,
3435}
3436impl Default for _tagEOS_Ecom_GetLastRedeemedEntitlementsCountOptions {
3437    fn default() -> Self {
3438        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3439        unsafe {
3440            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3441            s.assume_init()
3442        }
3443    }
3444}
3445#[doc = " Input parameters for the EOS_Ecom_GetLastRedeemedEntitlementsCount function."]
3446pub type EOS_Ecom_GetLastRedeemedEntitlementsCountOptions =
3447    _tagEOS_Ecom_GetLastRedeemedEntitlementsCountOptions;
3448#[doc = " Input parameters for the EOS_Ecom_CopyLastRedeemedEntitlementByIndex function."]
3449#[repr(C)]
3450#[derive(Debug, Copy, Clone)]
3451pub struct _tagEOS_Ecom_CopyLastRedeemedEntitlementByIndexOptions {
3452    #[doc = " API Version: Set this to EOS_ECOM_COPYLASTREDEEMEDENTITLEMENTBYINDEX_API_LATEST."]
3453    pub ApiVersion: i32,
3454    #[doc = " The Epic Account ID of the local user whose last redeemed entitlement id is being copied"]
3455    pub LocalUserId: EOS_EpicAccountId,
3456    #[doc = " Index of the last redeemed entitlement id to retrieve from the cache"]
3457    pub RedeemedEntitlementIndex: u32,
3458}
3459impl Default for _tagEOS_Ecom_CopyLastRedeemedEntitlementByIndexOptions {
3460    fn default() -> Self {
3461        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3462        unsafe {
3463            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3464            s.assume_init()
3465        }
3466    }
3467}
3468#[doc = " Input parameters for the EOS_Ecom_CopyLastRedeemedEntitlementByIndex function."]
3469pub type EOS_Ecom_CopyLastRedeemedEntitlementByIndexOptions =
3470    _tagEOS_Ecom_CopyLastRedeemedEntitlementByIndexOptions;
3471#[doc = " List of entitlements in the Redeem Entitlements result that were redeemed."]
3472pub const EOS_ERedeemEntitlementsResultListType_EOS_ERERLT_Redeemed:
3473    EOS_ERedeemEntitlementsResultListType = 0;
3474#[doc = " List of entitlements in the Redeem Entitlements result that were previously redeemed."]
3475pub const EOS_ERedeemEntitlementsResultListType_EOS_ERERLT_PreviouslyRedeemed:
3476    EOS_ERedeemEntitlementsResultListType = 1;
3477#[doc = " List of entitlements in the Redeem Entitlements result that are invalid."]
3478pub const EOS_ERedeemEntitlementsResultListType_EOS_ERERLT_Invalid:
3479    EOS_ERedeemEntitlementsResultListType = 2;
3480pub const EOS_ERedeemEntitlementsResultListType___EOS_ERedeemEntitlementsResultListType_PAD_INT32__ : EOS_ERedeemEntitlementsResultListType = 2147483647 ;
3481#[doc = " An enumeration defining the different entitlement list types in the Redeem Entitlements result."]
3482pub type EOS_ERedeemEntitlementsResultListType = ::std::os::raw::c_int;
3483#[doc = " Input parameters for the EOS_Ecom_GetLastRedeemEntitlementsResultCount function."]
3484#[repr(C)]
3485#[derive(Debug, Copy, Clone)]
3486pub struct _tagEOS_Ecom_GetLastRedeemEntitlementsResultCountOptions {
3487    #[doc = " API Version: Set this to EOS_ECOM_GETLASTREDEEMENTITLEMENTSRESULTCOUNT_API_LATEST."]
3488    pub ApiVersion: i32,
3489    #[doc = " The Epic Account ID of the local user for who to retrieve the last redeemed entitlements count"]
3490    pub LocalUserId: EOS_EpicAccountId,
3491    #[doc = " The Redeem Entitlements Result Type."]
3492    pub ResultType: EOS_ERedeemEntitlementsResultListType,
3493}
3494impl Default for _tagEOS_Ecom_GetLastRedeemEntitlementsResultCountOptions {
3495    fn default() -> Self {
3496        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3497        unsafe {
3498            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3499            s.assume_init()
3500        }
3501    }
3502}
3503#[doc = " Input parameters for the EOS_Ecom_GetLastRedeemEntitlementsResultCount function."]
3504pub type EOS_Ecom_GetLastRedeemEntitlementsResultCountOptions =
3505    _tagEOS_Ecom_GetLastRedeemEntitlementsResultCountOptions;
3506#[doc = " Input parameters for the EOS_Ecom_CopyLastRedeemEntitlementsResultByIndex function."]
3507#[repr(C)]
3508#[derive(Debug, Copy, Clone)]
3509pub struct _tagEOS_Ecom_CopyLastRedeemEntitlementsResultByIndexOptions {
3510    #[doc = " API Version: Set this to EOS_ECOM_COPYLASTREDEEMENTITLEMENTSRESULTBYINDEX_API_LATEST."]
3511    pub ApiVersion: i32,
3512    #[doc = " The Epic Account ID of the local user whose last redeemed entitlement id is being copied"]
3513    pub LocalUserId: EOS_EpicAccountId,
3514    #[doc = " Index of the entitlement of the given result type."]
3515    pub EntitlementIndex: u32,
3516    #[doc = " The Redeem Entitlements Result Type."]
3517    pub ResultType: EOS_ERedeemEntitlementsResultListType,
3518}
3519impl Default for _tagEOS_Ecom_CopyLastRedeemEntitlementsResultByIndexOptions {
3520    fn default() -> Self {
3521        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3522        unsafe {
3523            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3524            s.assume_init()
3525        }
3526    }
3527}
3528#[doc = " Input parameters for the EOS_Ecom_CopyLastRedeemEntitlementsResultByIndex function."]
3529pub type EOS_Ecom_CopyLastRedeemEntitlementsResultByIndexOptions =
3530    _tagEOS_Ecom_CopyLastRedeemEntitlementsResultByIndexOptions;
3531#[doc = " Input parameters for the EOS_Ecom_GetEntitlementsCount function."]
3532#[repr(C)]
3533#[derive(Debug, Copy, Clone)]
3534pub struct _tagEOS_Ecom_GetEntitlementsCountOptions {
3535    #[doc = " API Version: Set this to EOS_ECOM_GETENTITLEMENTSCOUNT_API_LATEST."]
3536    pub ApiVersion: i32,
3537    #[doc = " The Epic Account ID of the local user for which to retrieve the entitlement count"]
3538    pub LocalUserId: EOS_EpicAccountId,
3539}
3540impl Default for _tagEOS_Ecom_GetEntitlementsCountOptions {
3541    fn default() -> Self {
3542        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3543        unsafe {
3544            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3545            s.assume_init()
3546        }
3547    }
3548}
3549#[doc = " Input parameters for the EOS_Ecom_GetEntitlementsCount function."]
3550pub type EOS_Ecom_GetEntitlementsCountOptions = _tagEOS_Ecom_GetEntitlementsCountOptions;
3551#[doc = " Input parameters for the EOS_Ecom_GetEntitlementsByNameCount function."]
3552#[repr(C)]
3553#[derive(Debug, Copy, Clone)]
3554pub struct _tagEOS_Ecom_GetEntitlementsByNameCountOptions {
3555    #[doc = " API Version: Set this to EOS_ECOM_GETENTITLEMENTSBYNAMECOUNT_API_LATEST."]
3556    pub ApiVersion: i32,
3557    #[doc = " The Epic Account ID of the local user for which to retrieve the entitlement count"]
3558    pub LocalUserId: EOS_EpicAccountId,
3559    #[doc = " Name of the entitlement to count in the cache"]
3560    pub EntitlementName: EOS_Ecom_EntitlementName,
3561}
3562impl Default for _tagEOS_Ecom_GetEntitlementsByNameCountOptions {
3563    fn default() -> Self {
3564        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3565        unsafe {
3566            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3567            s.assume_init()
3568        }
3569    }
3570}
3571#[doc = " Input parameters for the EOS_Ecom_GetEntitlementsByNameCount function."]
3572pub type EOS_Ecom_GetEntitlementsByNameCountOptions =
3573    _tagEOS_Ecom_GetEntitlementsByNameCountOptions;
3574#[doc = " Input parameters for the EOS_Ecom_CopyEntitlementByIndex function."]
3575#[repr(C)]
3576#[derive(Debug, Copy, Clone)]
3577pub struct _tagEOS_Ecom_CopyEntitlementByIndexOptions {
3578    #[doc = " API Version: Set this to EOS_ECOM_COPYENTITLEMENTBYINDEX_API_LATEST."]
3579    pub ApiVersion: i32,
3580    #[doc = " The Epic Account ID of the local user whose entitlement is being copied"]
3581    pub LocalUserId: EOS_EpicAccountId,
3582    #[doc = " Index of the entitlement to retrieve from the cache"]
3583    pub EntitlementIndex: u32,
3584}
3585impl Default for _tagEOS_Ecom_CopyEntitlementByIndexOptions {
3586    fn default() -> Self {
3587        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3588        unsafe {
3589            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3590            s.assume_init()
3591        }
3592    }
3593}
3594#[doc = " Input parameters for the EOS_Ecom_CopyEntitlementByIndex function."]
3595pub type EOS_Ecom_CopyEntitlementByIndexOptions = _tagEOS_Ecom_CopyEntitlementByIndexOptions;
3596#[doc = " Input parameters for the EOS_Ecom_CopyEntitlementByNameAndIndex function."]
3597#[repr(C)]
3598#[derive(Debug, Copy, Clone)]
3599pub struct _tagEOS_Ecom_CopyEntitlementByNameAndIndexOptions {
3600    #[doc = " API Version: Set this to EOS_ECOM_COPYENTITLEMENTBYNAMEANDINDEX_API_LATEST."]
3601    pub ApiVersion: i32,
3602    #[doc = " The Epic Account ID of the local user whose entitlement is being copied"]
3603    pub LocalUserId: EOS_EpicAccountId,
3604    #[doc = " Name of the entitlement to retrieve from the cache"]
3605    pub EntitlementName: EOS_Ecom_EntitlementName,
3606    #[doc = " Index of the entitlement within the named set to retrieve from the cache."]
3607    pub Index: u32,
3608}
3609impl Default for _tagEOS_Ecom_CopyEntitlementByNameAndIndexOptions {
3610    fn default() -> Self {
3611        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3612        unsafe {
3613            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3614            s.assume_init()
3615        }
3616    }
3617}
3618#[doc = " Input parameters for the EOS_Ecom_CopyEntitlementByNameAndIndex function."]
3619pub type EOS_Ecom_CopyEntitlementByNameAndIndexOptions =
3620    _tagEOS_Ecom_CopyEntitlementByNameAndIndexOptions;
3621#[doc = " Input parameters for the EOS_Ecom_CopyEntitlementById function."]
3622#[repr(C)]
3623#[derive(Debug, Copy, Clone)]
3624pub struct _tagEOS_Ecom_CopyEntitlementByIdOptions {
3625    #[doc = " API Version: Set this to EOS_ECOM_COPYENTITLEMENTBYID_API_LATEST."]
3626    pub ApiVersion: i32,
3627    #[doc = " The Epic Account ID of the local user whose entitlement is being copied"]
3628    pub LocalUserId: EOS_EpicAccountId,
3629    #[doc = " ID of the entitlement to retrieve from the cache"]
3630    pub EntitlementId: EOS_Ecom_EntitlementId,
3631}
3632impl Default for _tagEOS_Ecom_CopyEntitlementByIdOptions {
3633    fn default() -> Self {
3634        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3635        unsafe {
3636            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3637            s.assume_init()
3638        }
3639    }
3640}
3641#[doc = " Input parameters for the EOS_Ecom_CopyEntitlementById function."]
3642pub type EOS_Ecom_CopyEntitlementByIdOptions = _tagEOS_Ecom_CopyEntitlementByIdOptions;
3643#[doc = " Input parameters for the EOS_Ecom_GetOfferCount function."]
3644#[repr(C)]
3645#[derive(Debug, Copy, Clone)]
3646pub struct _tagEOS_Ecom_GetOfferCountOptions {
3647    #[doc = " API Version: Set this to EOS_ECOM_GETOFFERCOUNT_API_LATEST."]
3648    pub ApiVersion: i32,
3649    #[doc = " The Epic Account ID of the local user whose offers are being accessed"]
3650    pub LocalUserId: EOS_EpicAccountId,
3651}
3652impl Default for _tagEOS_Ecom_GetOfferCountOptions {
3653    fn default() -> Self {
3654        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3655        unsafe {
3656            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3657            s.assume_init()
3658        }
3659    }
3660}
3661#[doc = " Input parameters for the EOS_Ecom_GetOfferCount function."]
3662pub type EOS_Ecom_GetOfferCountOptions = _tagEOS_Ecom_GetOfferCountOptions;
3663#[doc = " Input parameters for the EOS_Ecom_CopyOfferByIndex function."]
3664#[repr(C)]
3665#[derive(Debug, Copy, Clone)]
3666pub struct _tagEOS_Ecom_CopyOfferByIndexOptions {
3667    #[doc = " API Version: Set this to EOS_ECOM_COPYOFFERBYINDEX_API_LATEST."]
3668    pub ApiVersion: i32,
3669    #[doc = " The Epic Account ID of the local user whose offer is being copied"]
3670    pub LocalUserId: EOS_EpicAccountId,
3671    #[doc = " The index of the offer to get."]
3672    pub OfferIndex: u32,
3673}
3674impl Default for _tagEOS_Ecom_CopyOfferByIndexOptions {
3675    fn default() -> Self {
3676        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3677        unsafe {
3678            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3679            s.assume_init()
3680        }
3681    }
3682}
3683#[doc = " Input parameters for the EOS_Ecom_CopyOfferByIndex function."]
3684pub type EOS_Ecom_CopyOfferByIndexOptions = _tagEOS_Ecom_CopyOfferByIndexOptions;
3685#[doc = " Input parameters for the EOS_Ecom_CopyOfferById function."]
3686#[repr(C)]
3687#[derive(Debug, Copy, Clone)]
3688pub struct _tagEOS_Ecom_CopyOfferByIdOptions {
3689    #[doc = " API Version: Set this to EOS_ECOM_COPYOFFERBYID_API_LATEST."]
3690    pub ApiVersion: i32,
3691    #[doc = " The Epic Account ID of the local user whose offer is being copied"]
3692    pub LocalUserId: EOS_EpicAccountId,
3693    #[doc = " The ID of the offer to get."]
3694    pub OfferId: EOS_Ecom_CatalogOfferId,
3695}
3696impl Default for _tagEOS_Ecom_CopyOfferByIdOptions {
3697    fn default() -> Self {
3698        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3699        unsafe {
3700            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3701            s.assume_init()
3702        }
3703    }
3704}
3705#[doc = " Input parameters for the EOS_Ecom_CopyOfferById function."]
3706pub type EOS_Ecom_CopyOfferByIdOptions = _tagEOS_Ecom_CopyOfferByIdOptions;
3707#[doc = " Input parameters for the EOS_Ecom_GetOfferItemCount function."]
3708#[repr(C)]
3709#[derive(Debug, Copy, Clone)]
3710pub struct _tagEOS_Ecom_GetOfferItemCountOptions {
3711    #[doc = " API Version: Set this to EOS_ECOM_GETOFFERITEMCOUNT_API_LATEST."]
3712    pub ApiVersion: i32,
3713    #[doc = " The Epic Account ID of the local user who made the initial request for the Catalog Offer through EOS_Ecom_QueryOffers"]
3714    pub LocalUserId: EOS_EpicAccountId,
3715    #[doc = " An ID that corresponds to a cached Catalog Offer (retrieved by EOS_Ecom_CopyOfferByIndex)"]
3716    pub OfferId: EOS_Ecom_CatalogOfferId,
3717}
3718impl Default for _tagEOS_Ecom_GetOfferItemCountOptions {
3719    fn default() -> Self {
3720        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3721        unsafe {
3722            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3723            s.assume_init()
3724        }
3725    }
3726}
3727#[doc = " Input parameters for the EOS_Ecom_GetOfferItemCount function."]
3728pub type EOS_Ecom_GetOfferItemCountOptions = _tagEOS_Ecom_GetOfferItemCountOptions;
3729#[doc = " Input parameters for the EOS_Ecom_CopyOfferItemByIndex function."]
3730#[repr(C)]
3731#[derive(Debug, Copy, Clone)]
3732pub struct _tagEOS_Ecom_CopyOfferItemByIndexOptions {
3733    #[doc = " API Version: Set this to EOS_ECOM_COPYOFFERITEMBYINDEX_API_LATEST."]
3734    pub ApiVersion: i32,
3735    #[doc = " The Epic Account ID of the local user whose item is being copied"]
3736    pub LocalUserId: EOS_EpicAccountId,
3737    #[doc = " The ID of the offer to get the items for."]
3738    pub OfferId: EOS_Ecom_CatalogOfferId,
3739    #[doc = " The index of the item to get."]
3740    pub ItemIndex: u32,
3741}
3742impl Default for _tagEOS_Ecom_CopyOfferItemByIndexOptions {
3743    fn default() -> Self {
3744        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3745        unsafe {
3746            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3747            s.assume_init()
3748        }
3749    }
3750}
3751#[doc = " Input parameters for the EOS_Ecom_CopyOfferItemByIndex function."]
3752pub type EOS_Ecom_CopyOfferItemByIndexOptions = _tagEOS_Ecom_CopyOfferItemByIndexOptions;
3753#[doc = " Input parameters for the EOS_Ecom_CopyItemById function."]
3754#[repr(C)]
3755#[derive(Debug, Copy, Clone)]
3756pub struct _tagEOS_Ecom_CopyItemByIdOptions {
3757    #[doc = " API Version: Set this to EOS_ECOM_COPYITEMBYID_API_LATEST."]
3758    pub ApiVersion: i32,
3759    #[doc = " The Epic Account ID of the local user whose item is being copied"]
3760    pub LocalUserId: EOS_EpicAccountId,
3761    #[doc = " The ID of the item to get."]
3762    pub ItemId: EOS_Ecom_CatalogItemId,
3763}
3764impl Default for _tagEOS_Ecom_CopyItemByIdOptions {
3765    fn default() -> Self {
3766        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3767        unsafe {
3768            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3769            s.assume_init()
3770        }
3771    }
3772}
3773#[doc = " Input parameters for the EOS_Ecom_CopyItemById function."]
3774pub type EOS_Ecom_CopyItemByIdOptions = _tagEOS_Ecom_CopyItemByIdOptions;
3775#[doc = " Input parameters for the EOS_Ecom_GetOfferImageInfoCount function."]
3776#[repr(C)]
3777#[derive(Debug, Copy, Clone)]
3778pub struct _tagEOS_Ecom_GetOfferImageInfoCountOptions {
3779    #[doc = " API Version: Set this to EOS_ECOM_GETOFFERIMAGEINFOCOUNT_API_LATEST."]
3780    pub ApiVersion: i32,
3781    #[doc = " The Epic Account ID of the local user whose offer image is being accessed."]
3782    pub LocalUserId: EOS_EpicAccountId,
3783    #[doc = " The ID of the offer to get the images for."]
3784    pub OfferId: EOS_Ecom_CatalogOfferId,
3785}
3786impl Default for _tagEOS_Ecom_GetOfferImageInfoCountOptions {
3787    fn default() -> Self {
3788        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3789        unsafe {
3790            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3791            s.assume_init()
3792        }
3793    }
3794}
3795#[doc = " Input parameters for the EOS_Ecom_GetOfferImageInfoCount function."]
3796pub type EOS_Ecom_GetOfferImageInfoCountOptions = _tagEOS_Ecom_GetOfferImageInfoCountOptions;
3797#[doc = " Input parameters for the EOS_Ecom_CopyOfferImageInfoByIndex function."]
3798#[repr(C)]
3799#[derive(Debug, Copy, Clone)]
3800pub struct _tagEOS_Ecom_CopyOfferImageInfoByIndexOptions {
3801    #[doc = " API Version: Set this to EOS_ECOM_COPYOFFERIMAGEINFOBYINDEX_API_LATEST."]
3802    pub ApiVersion: i32,
3803    #[doc = " The Epic Account ID of the local user whose offer image is being copied."]
3804    pub LocalUserId: EOS_EpicAccountId,
3805    #[doc = " The ID of the offer to get the images for."]
3806    pub OfferId: EOS_Ecom_CatalogOfferId,
3807    #[doc = " The index of the image to get."]
3808    pub ImageInfoIndex: u32,
3809}
3810impl Default for _tagEOS_Ecom_CopyOfferImageInfoByIndexOptions {
3811    fn default() -> Self {
3812        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3813        unsafe {
3814            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3815            s.assume_init()
3816        }
3817    }
3818}
3819#[doc = " Input parameters for the EOS_Ecom_CopyOfferImageInfoByIndex function."]
3820pub type EOS_Ecom_CopyOfferImageInfoByIndexOptions = _tagEOS_Ecom_CopyOfferImageInfoByIndexOptions;
3821#[doc = " Input parameters for the EOS_Ecom_GetItemImageInfoCount function."]
3822#[repr(C)]
3823#[derive(Debug, Copy, Clone)]
3824pub struct _tagEOS_Ecom_GetItemImageInfoCountOptions {
3825    #[doc = " API Version: Set this to EOS_ECOM_GETITEMIMAGEINFOCOUNT_API_LATEST."]
3826    pub ApiVersion: i32,
3827    #[doc = " The Epic Account ID of the local user whose item image is being accessed"]
3828    pub LocalUserId: EOS_EpicAccountId,
3829    #[doc = " The ID of the item to get the images for."]
3830    pub ItemId: EOS_Ecom_CatalogItemId,
3831}
3832impl Default for _tagEOS_Ecom_GetItemImageInfoCountOptions {
3833    fn default() -> Self {
3834        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3835        unsafe {
3836            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3837            s.assume_init()
3838        }
3839    }
3840}
3841#[doc = " Input parameters for the EOS_Ecom_GetItemImageInfoCount function."]
3842pub type EOS_Ecom_GetItemImageInfoCountOptions = _tagEOS_Ecom_GetItemImageInfoCountOptions;
3843#[doc = " Input parameters for the EOS_Ecom_CopyItemImageInfoByIndex function."]
3844#[repr(C)]
3845#[derive(Debug, Copy, Clone)]
3846pub struct _tagEOS_Ecom_CopyItemImageInfoByIndexOptions {
3847    #[doc = " API Version: Set this to EOS_ECOM_COPYITEMIMAGEINFOBYINDEX_API_LATEST."]
3848    pub ApiVersion: i32,
3849    #[doc = " The Epic Account ID of the local user whose item image is being copied"]
3850    pub LocalUserId: EOS_EpicAccountId,
3851    #[doc = " The ID of the item to get the images for."]
3852    pub ItemId: EOS_Ecom_CatalogItemId,
3853    #[doc = " The index of the image to get."]
3854    pub ImageInfoIndex: u32,
3855}
3856impl Default for _tagEOS_Ecom_CopyItemImageInfoByIndexOptions {
3857    fn default() -> Self {
3858        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3859        unsafe {
3860            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3861            s.assume_init()
3862        }
3863    }
3864}
3865#[doc = " Input parameters for the EOS_Ecom_CopyItemImageInfoByIndex function."]
3866pub type EOS_Ecom_CopyItemImageInfoByIndexOptions = _tagEOS_Ecom_CopyItemImageInfoByIndexOptions;
3867#[doc = " Input parameters for the EOS_Ecom_GetItemReleaseCount function."]
3868#[repr(C)]
3869#[derive(Debug, Copy, Clone)]
3870pub struct _tagEOS_Ecom_GetItemReleaseCountOptions {
3871    #[doc = " API Version: Set this to EOS_ECOM_GETITEMRELEASECOUNT_API_LATEST."]
3872    pub ApiVersion: i32,
3873    #[doc = " The Epic Account ID of the local user whose item release is being accessed"]
3874    pub LocalUserId: EOS_EpicAccountId,
3875    #[doc = " The ID of the item to get the releases for."]
3876    pub ItemId: EOS_Ecom_CatalogItemId,
3877}
3878impl Default for _tagEOS_Ecom_GetItemReleaseCountOptions {
3879    fn default() -> Self {
3880        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3881        unsafe {
3882            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3883            s.assume_init()
3884        }
3885    }
3886}
3887#[doc = " Input parameters for the EOS_Ecom_GetItemReleaseCount function."]
3888pub type EOS_Ecom_GetItemReleaseCountOptions = _tagEOS_Ecom_GetItemReleaseCountOptions;
3889#[doc = " Input parameters for the EOS_Ecom_CopyItemReleaseByIndex function."]
3890#[repr(C)]
3891#[derive(Debug, Copy, Clone)]
3892pub struct _tagEOS_Ecom_CopyItemReleaseByIndexOptions {
3893    #[doc = " API Version: Set this to EOS_ECOM_COPYITEMRELEASEBYINDEX_API_LATEST."]
3894    pub ApiVersion: i32,
3895    #[doc = " The Epic Account ID of the local user whose item release is being copied"]
3896    pub LocalUserId: EOS_EpicAccountId,
3897    #[doc = " The ID of the item to get the releases for."]
3898    pub ItemId: EOS_Ecom_CatalogItemId,
3899    #[doc = " The index of the release to get."]
3900    pub ReleaseIndex: u32,
3901}
3902impl Default for _tagEOS_Ecom_CopyItemReleaseByIndexOptions {
3903    fn default() -> Self {
3904        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3905        unsafe {
3906            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3907            s.assume_init()
3908        }
3909    }
3910}
3911#[doc = " Input parameters for the EOS_Ecom_CopyItemReleaseByIndex function."]
3912pub type EOS_Ecom_CopyItemReleaseByIndexOptions = _tagEOS_Ecom_CopyItemReleaseByIndexOptions;
3913#[doc = " Input parameters for the EOS_Ecom_GetTransactionCount function."]
3914#[repr(C)]
3915#[derive(Debug, Copy, Clone)]
3916pub struct _tagEOS_Ecom_GetTransactionCountOptions {
3917    #[doc = " API Version: Set this to EOS_ECOM_GETTRANSACTIONCOUNT_API_LATEST."]
3918    pub ApiVersion: i32,
3919    #[doc = " The Epic Account ID of the local user whose transaction count to get"]
3920    pub LocalUserId: EOS_EpicAccountId,
3921}
3922impl Default for _tagEOS_Ecom_GetTransactionCountOptions {
3923    fn default() -> Self {
3924        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3925        unsafe {
3926            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3927            s.assume_init()
3928        }
3929    }
3930}
3931#[doc = " Input parameters for the EOS_Ecom_GetTransactionCount function."]
3932pub type EOS_Ecom_GetTransactionCountOptions = _tagEOS_Ecom_GetTransactionCountOptions;
3933#[doc = " Input parameters for the EOS_Ecom_CopyTransactionByIndex function."]
3934#[repr(C)]
3935#[derive(Debug, Copy, Clone)]
3936pub struct _tagEOS_Ecom_CopyTransactionByIndexOptions {
3937    #[doc = " API Version: Set this to EOS_ECOM_COPYTRANSACTIONBYINDEX_API_LATEST."]
3938    pub ApiVersion: i32,
3939    #[doc = " The Epic Account ID of the local user who is associated with the transaction"]
3940    pub LocalUserId: EOS_EpicAccountId,
3941    #[doc = " The index of the transaction to get"]
3942    pub TransactionIndex: u32,
3943}
3944impl Default for _tagEOS_Ecom_CopyTransactionByIndexOptions {
3945    fn default() -> Self {
3946        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3947        unsafe {
3948            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3949            s.assume_init()
3950        }
3951    }
3952}
3953#[doc = " Input parameters for the EOS_Ecom_CopyTransactionByIndex function."]
3954pub type EOS_Ecom_CopyTransactionByIndexOptions = _tagEOS_Ecom_CopyTransactionByIndexOptions;
3955#[doc = " Input parameters for the EOS_Ecom_CopyTransactionById function."]
3956#[repr(C)]
3957#[derive(Debug, Copy, Clone)]
3958pub struct _tagEOS_Ecom_CopyTransactionByIdOptions {
3959    #[doc = " API Version: Set this to EOS_ECOM_COPYTRANSACTIONBYID_API_LATEST."]
3960    pub ApiVersion: i32,
3961    #[doc = " The Epic Account ID of the local user who is associated with the transaction"]
3962    pub LocalUserId: EOS_EpicAccountId,
3963    #[doc = " The ID of the transaction to get"]
3964    pub TransactionId: *const ::std::os::raw::c_char,
3965}
3966impl Default for _tagEOS_Ecom_CopyTransactionByIdOptions {
3967    fn default() -> Self {
3968        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3969        unsafe {
3970            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3971            s.assume_init()
3972        }
3973    }
3974}
3975#[doc = " Input parameters for the EOS_Ecom_CopyTransactionById function."]
3976pub type EOS_Ecom_CopyTransactionByIdOptions = _tagEOS_Ecom_CopyTransactionByIdOptions;
3977#[doc = " Input parameters for the EOS_Ecom_Transaction_GetEntitlementsCount function."]
3978#[repr(C)]
3979#[derive(Debug, Default, Copy, Clone)]
3980pub struct _tagEOS_Ecom_Transaction_GetEntitlementsCountOptions {
3981    #[doc = " API Version: Set this to EOS_ECOM_TRANSACTION_GETENTITLEMENTSCOUNT_API_LATEST."]
3982    pub ApiVersion: i32,
3983}
3984#[doc = " Input parameters for the EOS_Ecom_Transaction_GetEntitlementsCount function."]
3985pub type EOS_Ecom_Transaction_GetEntitlementsCountOptions =
3986    _tagEOS_Ecom_Transaction_GetEntitlementsCountOptions;
3987#[doc = " Input parameters for the EOS_Ecom_Transaction_CopyEntitlementByIndex function."]
3988#[repr(C)]
3989#[derive(Debug, Default, Copy, Clone)]
3990pub struct _tagEOS_Ecom_Transaction_CopyEntitlementByIndexOptions {
3991    #[doc = " API Version: Set this to EOS_ECOM_TRANSACTION_COPYENTITLEMENTBYINDEX_API_LATEST."]
3992    pub ApiVersion: i32,
3993    #[doc = " The index of the entitlement to get"]
3994    pub EntitlementIndex: u32,
3995}
3996#[doc = " Input parameters for the EOS_Ecom_Transaction_CopyEntitlementByIndex function."]
3997pub type EOS_Ecom_Transaction_CopyEntitlementByIndexOptions =
3998    _tagEOS_Ecom_Transaction_CopyEntitlementByIndexOptions;
3999unsafe extern "C" {
4000    #[doc = " Release the memory associated with an EOS_Ecom_HTransaction.  Is expected to be called after\n being received from a EOS_Ecom_CheckoutCallbackInfo.\n\n @param Transaction A handle to a transaction.\n\n @see EOS_Ecom_CheckoutCallbackInfo\n @see EOS_Ecom_GetTransactionCount\n @see EOS_Ecom_CopyTransactionByIndex"]
4001    pub fn EOS_Ecom_Transaction_Release(Transaction: EOS_Ecom_HTransaction);
4002}
4003#[repr(C)]
4004#[derive(Debug, Copy, Clone)]
4005pub struct EOS_UIHandle {
4006    _unused: [u8; 0],
4007}
4008#[doc = " Handle to the UI interface"]
4009pub type EOS_HUI = *mut EOS_UIHandle;
4010#[doc = " ID representing a specific UI event."]
4011pub type EOS_UI_EventId = u64;
4012#[doc = " Input parameters for the EOS_UI_ShowFriends function."]
4013#[repr(C)]
4014#[derive(Debug, Copy, Clone)]
4015pub struct _tagEOS_UI_ShowFriendsOptions {
4016    #[doc = " API Version: Set this to EOS_UI_SHOWFRIENDS_API_LATEST."]
4017    pub ApiVersion: i32,
4018    #[doc = " The Epic Account ID of the user whose friend list is being shown."]
4019    pub LocalUserId: EOS_EpicAccountId,
4020}
4021impl Default for _tagEOS_UI_ShowFriendsOptions {
4022    fn default() -> Self {
4023        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4024        unsafe {
4025            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4026            s.assume_init()
4027        }
4028    }
4029}
4030#[doc = " Input parameters for the EOS_UI_ShowFriends function."]
4031pub type EOS_UI_ShowFriendsOptions = _tagEOS_UI_ShowFriendsOptions;
4032#[doc = " Output parameters for the EOS_UI_ShowFriends function."]
4033#[repr(C)]
4034#[derive(Debug, Copy, Clone)]
4035pub struct _tagEOS_UI_ShowFriendsCallbackInfo {
4036    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
4037    pub ResultCode: EOS_EResult,
4038    #[doc = " Context that was passed into EOS_UI_ShowFriends"]
4039    pub ClientData: *mut ::std::os::raw::c_void,
4040    #[doc = " The Epic Account ID of the user whose friend list is being shown."]
4041    pub LocalUserId: EOS_EpicAccountId,
4042}
4043impl Default for _tagEOS_UI_ShowFriendsCallbackInfo {
4044    fn default() -> Self {
4045        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4046        unsafe {
4047            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4048            s.assume_init()
4049        }
4050    }
4051}
4052#[doc = " Output parameters for the EOS_UI_ShowFriends function."]
4053pub type EOS_UI_ShowFriendsCallbackInfo = _tagEOS_UI_ShowFriendsCallbackInfo;
4054#[doc = " Function prototype definition for callbacks passed to EOS_UI_ShowFriends\n @param Data A EOS_UI_ShowFriendsCallbackInfo containing the output information and result"]
4055pub type EOS_UI_OnShowFriendsCallback =
4056    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_UI_ShowFriendsCallbackInfo)>;
4057#[doc = " Input parameters for the EOS_UI_HideFriends function."]
4058#[repr(C)]
4059#[derive(Debug, Copy, Clone)]
4060pub struct _tagEOS_UI_HideFriendsOptions {
4061    #[doc = " API Version: Set this to EOS_UI_HIDEFRIENDS_API_LATEST."]
4062    pub ApiVersion: i32,
4063    #[doc = " The Epic Account ID of the user whose friend list is being shown."]
4064    pub LocalUserId: EOS_EpicAccountId,
4065}
4066impl Default for _tagEOS_UI_HideFriendsOptions {
4067    fn default() -> Self {
4068        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4069        unsafe {
4070            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4071            s.assume_init()
4072        }
4073    }
4074}
4075#[doc = " Input parameters for the EOS_UI_HideFriends function."]
4076pub type EOS_UI_HideFriendsOptions = _tagEOS_UI_HideFriendsOptions;
4077#[doc = " Output parameters for the EOS_UI_HideFriends function."]
4078#[repr(C)]
4079#[derive(Debug, Copy, Clone)]
4080pub struct _tagEOS_UI_HideFriendsCallbackInfo {
4081    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
4082    pub ResultCode: EOS_EResult,
4083    #[doc = " Context that was passed into EOS_UI_HideFriends"]
4084    pub ClientData: *mut ::std::os::raw::c_void,
4085    #[doc = " The Epic Account ID of the user whose friend list is being shown."]
4086    pub LocalUserId: EOS_EpicAccountId,
4087}
4088impl Default for _tagEOS_UI_HideFriendsCallbackInfo {
4089    fn default() -> Self {
4090        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4091        unsafe {
4092            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4093            s.assume_init()
4094        }
4095    }
4096}
4097#[doc = " Output parameters for the EOS_UI_HideFriends function."]
4098pub type EOS_UI_HideFriendsCallbackInfo = _tagEOS_UI_HideFriendsCallbackInfo;
4099#[doc = " Function prototype definition for callbacks passed to EOS_UI_HideFriends\n @param Data A EOS_UI_HideFriendsCallbackInfo containing the output information and result"]
4100pub type EOS_UI_OnHideFriendsCallback =
4101    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_UI_HideFriendsCallbackInfo)>;
4102#[doc = " Input parameters for the EOS_UI_GetFriendsVisible function."]
4103#[repr(C)]
4104#[derive(Debug, Copy, Clone)]
4105pub struct _tagEOS_UI_GetFriendsVisibleOptions {
4106    #[doc = " API Version: Set this to EOS_UI_GETFRIENDSVISIBLE_API_LATEST."]
4107    pub ApiVersion: i32,
4108    #[doc = " The Epic Account ID of the user whose overlay is being checked."]
4109    pub LocalUserId: EOS_EpicAccountId,
4110}
4111impl Default for _tagEOS_UI_GetFriendsVisibleOptions {
4112    fn default() -> Self {
4113        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4114        unsafe {
4115            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4116            s.assume_init()
4117        }
4118    }
4119}
4120#[doc = " Input parameters for the EOS_UI_GetFriendsVisible function."]
4121pub type EOS_UI_GetFriendsVisibleOptions = _tagEOS_UI_GetFriendsVisibleOptions;
4122#[doc = " Input parameters for the EOS_UI_GetFriendsExclusiveInput function."]
4123#[repr(C)]
4124#[derive(Debug, Copy, Clone)]
4125pub struct _tagEOS_UI_GetFriendsExclusiveInputOptions {
4126    #[doc = " API Version: Set this to EOS_UI_GETFRIENDSEXCLUSIVEINPUT_API_LATEST."]
4127    pub ApiVersion: i32,
4128    #[doc = " The Epic Account ID of the user whose overlay is being checked."]
4129    pub LocalUserId: EOS_EpicAccountId,
4130}
4131impl Default for _tagEOS_UI_GetFriendsExclusiveInputOptions {
4132    fn default() -> Self {
4133        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4134        unsafe {
4135            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4136            s.assume_init()
4137        }
4138    }
4139}
4140#[doc = " Input parameters for the EOS_UI_GetFriendsExclusiveInput function."]
4141pub type EOS_UI_GetFriendsExclusiveInputOptions = _tagEOS_UI_GetFriendsExclusiveInputOptions;
4142#[doc = " Input parameters for the EOS_UI_AddNotifyDisplaySettingsUpdated function."]
4143#[repr(C)]
4144#[derive(Debug, Default, Copy, Clone)]
4145pub struct _tagEOS_UI_AddNotifyDisplaySettingsUpdatedOptions {
4146    #[doc = " API Version: Set this to EOS_UI_ADDNOTIFYDISPLAYSETTINGSUPDATED_API_LATEST."]
4147    pub ApiVersion: i32,
4148}
4149#[doc = " Input parameters for the EOS_UI_AddNotifyDisplaySettingsUpdated function."]
4150pub type EOS_UI_AddNotifyDisplaySettingsUpdatedOptions =
4151    _tagEOS_UI_AddNotifyDisplaySettingsUpdatedOptions;
4152#[doc = " Output parameters for the EOS_UI_AddNotifyDisplaySettingsUpdated function."]
4153#[repr(C)]
4154#[derive(Debug, Copy, Clone)]
4155pub struct _tagEOS_UI_OnDisplaySettingsUpdatedCallbackInfo {
4156    #[doc = " Context that was passed into EOS_UI_AddNotifyDisplaySettingsUpdated"]
4157    pub ClientData: *mut ::std::os::raw::c_void,
4158    #[doc = " True when any portion of the overlay is visible."]
4159    pub bIsVisible: EOS_Bool,
4160    #[doc = " True when the overlay has switched to exclusive input mode.\n While in exclusive input mode, no keyboard or mouse input will be sent to the game."]
4161    pub bIsExclusiveInput: EOS_Bool,
4162}
4163impl Default for _tagEOS_UI_OnDisplaySettingsUpdatedCallbackInfo {
4164    fn default() -> Self {
4165        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4166        unsafe {
4167            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4168            s.assume_init()
4169        }
4170    }
4171}
4172#[doc = " Output parameters for the EOS_UI_AddNotifyDisplaySettingsUpdated function."]
4173pub type EOS_UI_OnDisplaySettingsUpdatedCallbackInfo =
4174    _tagEOS_UI_OnDisplaySettingsUpdatedCallbackInfo;
4175#[doc = " Function prototype definition for callbacks passed to EOS_UI_AddNotifyDisplaySettingsUpdated\n @param Data A EOS_UI_OnDisplaySettingsUpdatedCallbackInfo containing the current display state."]
4176pub type EOS_UI_OnDisplaySettingsUpdatedCallback = ::std::option::Option<
4177    unsafe extern "C" fn(Data: *const EOS_UI_OnDisplaySettingsUpdatedCallbackInfo),
4178>;
4179pub const EOS_UI_EKeyCombination_EOS_UIK_ModifierShift: EOS_UI_EKeyCombination = 16;
4180pub const EOS_UI_EKeyCombination_EOS_UIK_KeyTypeMask: EOS_UI_EKeyCombination = 65535;
4181pub const EOS_UI_EKeyCombination_EOS_UIK_ModifierMask: EOS_UI_EKeyCombination = -65536;
4182pub const EOS_UI_EKeyCombination_EOS_UIK_Shift: EOS_UI_EKeyCombination = 65536;
4183pub const EOS_UI_EKeyCombination_EOS_UIK_Control: EOS_UI_EKeyCombination = 131072;
4184pub const EOS_UI_EKeyCombination_EOS_UIK_Alt: EOS_UI_EKeyCombination = 262144;
4185pub const EOS_UI_EKeyCombination_EOS_UIK_Meta: EOS_UI_EKeyCombination = 524288;
4186pub const EOS_UI_EKeyCombination_EOS_UIK_ValidModifierMask: EOS_UI_EKeyCombination = 983040;
4187pub const EOS_UI_EKeyCombination_EOS_UIK_None: EOS_UI_EKeyCombination = 0;
4188pub const EOS_UI_EKeyCombination_EOS_UIK_Space: EOS_UI_EKeyCombination = 1;
4189pub const EOS_UI_EKeyCombination_EOS_UIK_Backspace: EOS_UI_EKeyCombination = 2;
4190pub const EOS_UI_EKeyCombination_EOS_UIK_Tab: EOS_UI_EKeyCombination = 3;
4191pub const EOS_UI_EKeyCombination_EOS_UIK_Escape: EOS_UI_EKeyCombination = 4;
4192pub const EOS_UI_EKeyCombination_EOS_UIK_PageUp: EOS_UI_EKeyCombination = 5;
4193pub const EOS_UI_EKeyCombination_EOS_UIK_PageDown: EOS_UI_EKeyCombination = 6;
4194pub const EOS_UI_EKeyCombination_EOS_UIK_End: EOS_UI_EKeyCombination = 7;
4195pub const EOS_UI_EKeyCombination_EOS_UIK_Home: EOS_UI_EKeyCombination = 8;
4196pub const EOS_UI_EKeyCombination_EOS_UIK_Insert: EOS_UI_EKeyCombination = 9;
4197pub const EOS_UI_EKeyCombination_EOS_UIK_Delete: EOS_UI_EKeyCombination = 10;
4198pub const EOS_UI_EKeyCombination_EOS_UIK_Left: EOS_UI_EKeyCombination = 11;
4199pub const EOS_UI_EKeyCombination_EOS_UIK_Up: EOS_UI_EKeyCombination = 12;
4200pub const EOS_UI_EKeyCombination_EOS_UIK_Right: EOS_UI_EKeyCombination = 13;
4201pub const EOS_UI_EKeyCombination_EOS_UIK_Down: EOS_UI_EKeyCombination = 14;
4202pub const EOS_UI_EKeyCombination_EOS_UIK_Key0: EOS_UI_EKeyCombination = 15;
4203pub const EOS_UI_EKeyCombination_EOS_UIK_Key1: EOS_UI_EKeyCombination = 16;
4204pub const EOS_UI_EKeyCombination_EOS_UIK_Key2: EOS_UI_EKeyCombination = 17;
4205pub const EOS_UI_EKeyCombination_EOS_UIK_Key3: EOS_UI_EKeyCombination = 18;
4206pub const EOS_UI_EKeyCombination_EOS_UIK_Key4: EOS_UI_EKeyCombination = 19;
4207pub const EOS_UI_EKeyCombination_EOS_UIK_Key5: EOS_UI_EKeyCombination = 20;
4208pub const EOS_UI_EKeyCombination_EOS_UIK_Key6: EOS_UI_EKeyCombination = 21;
4209pub const EOS_UI_EKeyCombination_EOS_UIK_Key7: EOS_UI_EKeyCombination = 22;
4210pub const EOS_UI_EKeyCombination_EOS_UIK_Key8: EOS_UI_EKeyCombination = 23;
4211pub const EOS_UI_EKeyCombination_EOS_UIK_Key9: EOS_UI_EKeyCombination = 24;
4212pub const EOS_UI_EKeyCombination_EOS_UIK_KeyA: EOS_UI_EKeyCombination = 25;
4213pub const EOS_UI_EKeyCombination_EOS_UIK_KeyB: EOS_UI_EKeyCombination = 26;
4214pub const EOS_UI_EKeyCombination_EOS_UIK_KeyC: EOS_UI_EKeyCombination = 27;
4215pub const EOS_UI_EKeyCombination_EOS_UIK_KeyD: EOS_UI_EKeyCombination = 28;
4216pub const EOS_UI_EKeyCombination_EOS_UIK_KeyE: EOS_UI_EKeyCombination = 29;
4217pub const EOS_UI_EKeyCombination_EOS_UIK_KeyF: EOS_UI_EKeyCombination = 30;
4218pub const EOS_UI_EKeyCombination_EOS_UIK_KeyG: EOS_UI_EKeyCombination = 31;
4219pub const EOS_UI_EKeyCombination_EOS_UIK_KeyH: EOS_UI_EKeyCombination = 32;
4220pub const EOS_UI_EKeyCombination_EOS_UIK_KeyI: EOS_UI_EKeyCombination = 33;
4221pub const EOS_UI_EKeyCombination_EOS_UIK_KeyJ: EOS_UI_EKeyCombination = 34;
4222pub const EOS_UI_EKeyCombination_EOS_UIK_KeyK: EOS_UI_EKeyCombination = 35;
4223pub const EOS_UI_EKeyCombination_EOS_UIK_KeyL: EOS_UI_EKeyCombination = 36;
4224pub const EOS_UI_EKeyCombination_EOS_UIK_KeyM: EOS_UI_EKeyCombination = 37;
4225pub const EOS_UI_EKeyCombination_EOS_UIK_KeyN: EOS_UI_EKeyCombination = 38;
4226pub const EOS_UI_EKeyCombination_EOS_UIK_KeyO: EOS_UI_EKeyCombination = 39;
4227pub const EOS_UI_EKeyCombination_EOS_UIK_KeyP: EOS_UI_EKeyCombination = 40;
4228pub const EOS_UI_EKeyCombination_EOS_UIK_KeyQ: EOS_UI_EKeyCombination = 41;
4229pub const EOS_UI_EKeyCombination_EOS_UIK_KeyR: EOS_UI_EKeyCombination = 42;
4230pub const EOS_UI_EKeyCombination_EOS_UIK_KeyS: EOS_UI_EKeyCombination = 43;
4231pub const EOS_UI_EKeyCombination_EOS_UIK_KeyT: EOS_UI_EKeyCombination = 44;
4232pub const EOS_UI_EKeyCombination_EOS_UIK_KeyU: EOS_UI_EKeyCombination = 45;
4233pub const EOS_UI_EKeyCombination_EOS_UIK_KeyV: EOS_UI_EKeyCombination = 46;
4234pub const EOS_UI_EKeyCombination_EOS_UIK_KeyW: EOS_UI_EKeyCombination = 47;
4235pub const EOS_UI_EKeyCombination_EOS_UIK_KeyX: EOS_UI_EKeyCombination = 48;
4236pub const EOS_UI_EKeyCombination_EOS_UIK_KeyY: EOS_UI_EKeyCombination = 49;
4237pub const EOS_UI_EKeyCombination_EOS_UIK_KeyZ: EOS_UI_EKeyCombination = 50;
4238pub const EOS_UI_EKeyCombination_EOS_UIK_Numpad0: EOS_UI_EKeyCombination = 51;
4239pub const EOS_UI_EKeyCombination_EOS_UIK_Numpad1: EOS_UI_EKeyCombination = 52;
4240pub const EOS_UI_EKeyCombination_EOS_UIK_Numpad2: EOS_UI_EKeyCombination = 53;
4241pub const EOS_UI_EKeyCombination_EOS_UIK_Numpad3: EOS_UI_EKeyCombination = 54;
4242pub const EOS_UI_EKeyCombination_EOS_UIK_Numpad4: EOS_UI_EKeyCombination = 55;
4243pub const EOS_UI_EKeyCombination_EOS_UIK_Numpad5: EOS_UI_EKeyCombination = 56;
4244pub const EOS_UI_EKeyCombination_EOS_UIK_Numpad6: EOS_UI_EKeyCombination = 57;
4245pub const EOS_UI_EKeyCombination_EOS_UIK_Numpad7: EOS_UI_EKeyCombination = 58;
4246pub const EOS_UI_EKeyCombination_EOS_UIK_Numpad8: EOS_UI_EKeyCombination = 59;
4247pub const EOS_UI_EKeyCombination_EOS_UIK_Numpad9: EOS_UI_EKeyCombination = 60;
4248pub const EOS_UI_EKeyCombination_EOS_UIK_NumpadAsterisk: EOS_UI_EKeyCombination = 61;
4249pub const EOS_UI_EKeyCombination_EOS_UIK_NumpadPlus: EOS_UI_EKeyCombination = 62;
4250pub const EOS_UI_EKeyCombination_EOS_UIK_NumpadMinus: EOS_UI_EKeyCombination = 63;
4251pub const EOS_UI_EKeyCombination_EOS_UIK_NumpadPeriod: EOS_UI_EKeyCombination = 64;
4252pub const EOS_UI_EKeyCombination_EOS_UIK_NumpadDivide: EOS_UI_EKeyCombination = 65;
4253pub const EOS_UI_EKeyCombination_EOS_UIK_F1: EOS_UI_EKeyCombination = 66;
4254pub const EOS_UI_EKeyCombination_EOS_UIK_F2: EOS_UI_EKeyCombination = 67;
4255pub const EOS_UI_EKeyCombination_EOS_UIK_F3: EOS_UI_EKeyCombination = 68;
4256pub const EOS_UI_EKeyCombination_EOS_UIK_F4: EOS_UI_EKeyCombination = 69;
4257pub const EOS_UI_EKeyCombination_EOS_UIK_F5: EOS_UI_EKeyCombination = 70;
4258pub const EOS_UI_EKeyCombination_EOS_UIK_F6: EOS_UI_EKeyCombination = 71;
4259pub const EOS_UI_EKeyCombination_EOS_UIK_F7: EOS_UI_EKeyCombination = 72;
4260pub const EOS_UI_EKeyCombination_EOS_UIK_F8: EOS_UI_EKeyCombination = 73;
4261pub const EOS_UI_EKeyCombination_EOS_UIK_F9: EOS_UI_EKeyCombination = 74;
4262pub const EOS_UI_EKeyCombination_EOS_UIK_F10: EOS_UI_EKeyCombination = 75;
4263pub const EOS_UI_EKeyCombination_EOS_UIK_F11: EOS_UI_EKeyCombination = 76;
4264pub const EOS_UI_EKeyCombination_EOS_UIK_F12: EOS_UI_EKeyCombination = 77;
4265pub const EOS_UI_EKeyCombination_EOS_UIK_F13: EOS_UI_EKeyCombination = 78;
4266pub const EOS_UI_EKeyCombination_EOS_UIK_F14: EOS_UI_EKeyCombination = 79;
4267pub const EOS_UI_EKeyCombination_EOS_UIK_F15: EOS_UI_EKeyCombination = 80;
4268pub const EOS_UI_EKeyCombination_EOS_UIK_F16: EOS_UI_EKeyCombination = 81;
4269pub const EOS_UI_EKeyCombination_EOS_UIK_F17: EOS_UI_EKeyCombination = 82;
4270pub const EOS_UI_EKeyCombination_EOS_UIK_F18: EOS_UI_EKeyCombination = 83;
4271pub const EOS_UI_EKeyCombination_EOS_UIK_F19: EOS_UI_EKeyCombination = 84;
4272pub const EOS_UI_EKeyCombination_EOS_UIK_F20: EOS_UI_EKeyCombination = 85;
4273pub const EOS_UI_EKeyCombination_EOS_UIK_F21: EOS_UI_EKeyCombination = 86;
4274pub const EOS_UI_EKeyCombination_EOS_UIK_F22: EOS_UI_EKeyCombination = 87;
4275pub const EOS_UI_EKeyCombination_EOS_UIK_F23: EOS_UI_EKeyCombination = 88;
4276pub const EOS_UI_EKeyCombination_EOS_UIK_F24: EOS_UI_EKeyCombination = 89;
4277pub const EOS_UI_EKeyCombination_EOS_UIK_OemPlus: EOS_UI_EKeyCombination = 90;
4278pub const EOS_UI_EKeyCombination_EOS_UIK_OemComma: EOS_UI_EKeyCombination = 91;
4279pub const EOS_UI_EKeyCombination_EOS_UIK_OemMinus: EOS_UI_EKeyCombination = 92;
4280pub const EOS_UI_EKeyCombination_EOS_UIK_OemPeriod: EOS_UI_EKeyCombination = 93;
4281pub const EOS_UI_EKeyCombination_EOS_UIK_Oem1: EOS_UI_EKeyCombination = 94;
4282pub const EOS_UI_EKeyCombination_EOS_UIK_Oem2: EOS_UI_EKeyCombination = 95;
4283pub const EOS_UI_EKeyCombination_EOS_UIK_Oem3: EOS_UI_EKeyCombination = 96;
4284pub const EOS_UI_EKeyCombination_EOS_UIK_Oem4: EOS_UI_EKeyCombination = 97;
4285pub const EOS_UI_EKeyCombination_EOS_UIK_Oem5: EOS_UI_EKeyCombination = 98;
4286pub const EOS_UI_EKeyCombination_EOS_UIK_Oem6: EOS_UI_EKeyCombination = 99;
4287pub const EOS_UI_EKeyCombination_EOS_UIK_Oem7: EOS_UI_EKeyCombination = 100;
4288pub const EOS_UI_EKeyCombination_EOS_UIK_Oem8: EOS_UI_EKeyCombination = 101;
4289pub const EOS_UI_EKeyCombination_EOS_UIK_MaxKeyType: EOS_UI_EKeyCombination = 102;
4290pub const EOS_UI_EKeyCombination___EOS_UI_EKeyCombination_PAD_INT32__: EOS_UI_EKeyCombination =
4291    2147483647;
4292pub type EOS_UI_EKeyCombination = ::std::os::raw::c_int;
4293pub const EOS_UI_EInputStateButtonFlags_EOS_UISBF_None: EOS_UI_EInputStateButtonFlags = 0;
4294pub const EOS_UI_EInputStateButtonFlags_EOS_UISBF_DPad_Left: EOS_UI_EInputStateButtonFlags = 1;
4295pub const EOS_UI_EInputStateButtonFlags_EOS_UISBF_DPad_Right: EOS_UI_EInputStateButtonFlags = 2;
4296pub const EOS_UI_EInputStateButtonFlags_EOS_UISBF_DPad_Down: EOS_UI_EInputStateButtonFlags = 4;
4297pub const EOS_UI_EInputStateButtonFlags_EOS_UISBF_DPad_Up: EOS_UI_EInputStateButtonFlags = 8;
4298pub const EOS_UI_EInputStateButtonFlags_EOS_UISBF_FaceButton_Left: EOS_UI_EInputStateButtonFlags =
4299    16;
4300pub const EOS_UI_EInputStateButtonFlags_EOS_UISBF_FaceButton_Right: EOS_UI_EInputStateButtonFlags =
4301    32;
4302pub const EOS_UI_EInputStateButtonFlags_EOS_UISBF_FaceButton_Bottom: EOS_UI_EInputStateButtonFlags =
4303    64;
4304pub const EOS_UI_EInputStateButtonFlags_EOS_UISBF_FaceButton_Top: EOS_UI_EInputStateButtonFlags =
4305    128;
4306pub const EOS_UI_EInputStateButtonFlags_EOS_UISBF_LeftShoulder: EOS_UI_EInputStateButtonFlags = 256;
4307pub const EOS_UI_EInputStateButtonFlags_EOS_UISBF_RightShoulder: EOS_UI_EInputStateButtonFlags =
4308    512;
4309pub const EOS_UI_EInputStateButtonFlags_EOS_UISBF_LeftTrigger: EOS_UI_EInputStateButtonFlags = 1024;
4310pub const EOS_UI_EInputStateButtonFlags_EOS_UISBF_RightTrigger: EOS_UI_EInputStateButtonFlags =
4311    2048;
4312pub const EOS_UI_EInputStateButtonFlags_EOS_UISBF_Special_Left: EOS_UI_EInputStateButtonFlags =
4313    4096;
4314pub const EOS_UI_EInputStateButtonFlags_EOS_UISBF_Special_Right: EOS_UI_EInputStateButtonFlags =
4315    8192;
4316pub const EOS_UI_EInputStateButtonFlags_EOS_UISBF_LeftThumbstick: EOS_UI_EInputStateButtonFlags =
4317    16384;
4318pub const EOS_UI_EInputStateButtonFlags_EOS_UISBF_RightThumbstick: EOS_UI_EInputStateButtonFlags =
4319    32768;
4320pub const EOS_UI_EInputStateButtonFlags___EOS_UI_EInputStateButtonFlags_PAD_INT32__:
4321    EOS_UI_EInputStateButtonFlags = 2147483647;
4322#[doc = " Flags used in EOS_UI_ReportInputStateOptions to identify buttons which are down."]
4323pub type EOS_UI_EInputStateButtonFlags = ::std::os::raw::c_int;
4324#[doc = " Input parameters for the EOS_UI_SetToggleFriendsKey function."]
4325#[repr(C)]
4326#[derive(Debug, Copy, Clone)]
4327pub struct _tagEOS_UI_SetToggleFriendsKeyOptions {
4328    #[doc = " API Version: Set this to EOS_UI_SETTOGGLEFRIENDSKEY_API_LATEST."]
4329    pub ApiVersion: i32,
4330    #[doc = " The new key combination which will be used to toggle the friends overlay.\n The combination can be any set of modifiers and one key.\n A value of EOS_UIK_None will cause the key to revert to the default."]
4331    pub KeyCombination: EOS_UI_EKeyCombination,
4332}
4333impl Default for _tagEOS_UI_SetToggleFriendsKeyOptions {
4334    fn default() -> Self {
4335        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4336        unsafe {
4337            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4338            s.assume_init()
4339        }
4340    }
4341}
4342#[doc = " Input parameters for the EOS_UI_SetToggleFriendsKey function."]
4343pub type EOS_UI_SetToggleFriendsKeyOptions = _tagEOS_UI_SetToggleFriendsKeyOptions;
4344#[doc = " Input parameters for the EOS_UI_GetToggleFriendsKey function."]
4345#[repr(C)]
4346#[derive(Debug, Default, Copy, Clone)]
4347pub struct _tagEOS_UI_GetToggleFriendsKeyOptions {
4348    #[doc = " API Version: Set this to EOS_UI_GETTOGGLEFRIENDSKEY_API_LATEST."]
4349    pub ApiVersion: i32,
4350}
4351#[doc = " Input parameters for the EOS_UI_GetToggleFriendsKey function."]
4352pub type EOS_UI_GetToggleFriendsKeyOptions = _tagEOS_UI_GetToggleFriendsKeyOptions;
4353#[doc = " Input parameters for the EOS_UI_SetToggleFriendsButton function."]
4354#[repr(C)]
4355#[derive(Debug, Copy, Clone)]
4356pub struct _tagEOS_UI_SetToggleFriendsButtonOptions {
4357    #[doc = " API Version: Set this to EOS_UI_SETTOGGLEFRIENDSBUTTON_API_LATEST."]
4358    pub ApiVersion: i32,
4359    #[doc = " The button combination to toggle the friends-list page.\n It can be any combination of the following buttons (which can include the left or right shoulder buttons (EOS_UISBF_LeftShoulder or EOS_UISBF_RightShoulder)):\n\n - EOS_UI_EInputStateButtonFlags::EOS_UISBF_LeftTrigger\n - EOS_UI_EInputStateButtonFlags::EOS_UISBF_RightTrigger\n - EOS_UI_EInputStateButtonFlags::EOS_UISBF_Special_Left\n - EOS_UI_EInputStateButtonFlags::EOS_UISBF_Special_Right\n - EOS_UI_EInputStateButtonFlags::EOS_UISBF_LeftThumbstick\n - EOS_UI_EInputStateButtonFlags::EOS_UISBF_RightThumbstick\n\n The default value is No Button. Set the value to EOS_UISBF_None to revert to the default."]
4360    pub ButtonCombination: EOS_UI_EInputStateButtonFlags,
4361}
4362impl Default for _tagEOS_UI_SetToggleFriendsButtonOptions {
4363    fn default() -> Self {
4364        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4365        unsafe {
4366            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4367            s.assume_init()
4368        }
4369    }
4370}
4371#[doc = " Input parameters for the EOS_UI_SetToggleFriendsButton function."]
4372pub type EOS_UI_SetToggleFriendsButtonOptions = _tagEOS_UI_SetToggleFriendsButtonOptions;
4373#[doc = " Input parameters for the EOS_UI_GetToggleFriendsButton function."]
4374#[repr(C)]
4375#[derive(Debug, Default, Copy, Clone)]
4376pub struct _tagEOS_UI_GetToggleFriendsButtonOptions {
4377    #[doc = " API Version: Set this to EOS_UI_GETTOGGLEFRIENDSBUTTON_API_LATEST."]
4378    pub ApiVersion: i32,
4379}
4380#[doc = " Input parameters for the EOS_UI_GetToggleFriendsButton function."]
4381pub type EOS_UI_GetToggleFriendsButtonOptions = _tagEOS_UI_GetToggleFriendsButtonOptions;
4382#[doc = " The top left corner"]
4383pub const EOS_UI_ENotificationLocation_EOS_UNL_TopLeft: EOS_UI_ENotificationLocation = 0;
4384#[doc = " The top right corner"]
4385pub const EOS_UI_ENotificationLocation_EOS_UNL_TopRight: EOS_UI_ENotificationLocation = 1;
4386#[doc = " The bottom left corner"]
4387pub const EOS_UI_ENotificationLocation_EOS_UNL_BottomLeft: EOS_UI_ENotificationLocation = 2;
4388#[doc = " The bottom right corner"]
4389pub const EOS_UI_ENotificationLocation_EOS_UNL_BottomRight: EOS_UI_ENotificationLocation = 3;
4390pub const EOS_UI_ENotificationLocation___EOS_UI_ENotificationLocation_PAD_INT32__:
4391    EOS_UI_ENotificationLocation = 2147483647;
4392#[doc = " Notification locations to be used to set the preference\n for pop-up.\n\n @see EOS_UI_SetDisplayPreference"]
4393pub type EOS_UI_ENotificationLocation = ::std::os::raw::c_int;
4394#[doc = " Input parameters for the EOS_UI_SetDisplayPreference function."]
4395#[repr(C)]
4396#[derive(Debug, Copy, Clone)]
4397pub struct _tagEOS_UI_SetDisplayPreferenceOptions {
4398    #[doc = " API Version: Set this to EOS_UI_SETDISPLAYPREFERENCE_API_LATEST."]
4399    pub ApiVersion: i32,
4400    #[doc = " Preference for notification pop-up locations."]
4401    pub NotificationLocation: EOS_UI_ENotificationLocation,
4402}
4403impl Default for _tagEOS_UI_SetDisplayPreferenceOptions {
4404    fn default() -> Self {
4405        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4406        unsafe {
4407            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4408            s.assume_init()
4409        }
4410    }
4411}
4412#[doc = " Input parameters for the EOS_UI_SetDisplayPreference function."]
4413pub type EOS_UI_SetDisplayPreferenceOptions = _tagEOS_UI_SetDisplayPreferenceOptions;
4414#[doc = " Input parameters for the EOS_UI_AcknowledgeEventId."]
4415#[repr(C)]
4416#[derive(Debug, Copy, Clone)]
4417pub struct _tagEOS_UI_AcknowledgeEventIdOptions {
4418    #[doc = " API Version: Set this to EOS_UI_ACKNOWLEDGEEVENTID_API_LATEST."]
4419    pub ApiVersion: i32,
4420    #[doc = " The ID being acknowledged."]
4421    pub UiEventId: EOS_UI_EventId,
4422    #[doc = " The result to use for the acknowledgment.\n When acknowledging EOS_Presence_JoinGameAcceptedCallbackInfo this should be the\n result code from the JoinSession call."]
4423    pub Result: EOS_EResult,
4424}
4425impl Default for _tagEOS_UI_AcknowledgeEventIdOptions {
4426    fn default() -> Self {
4427        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4428        unsafe {
4429            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4430            s.assume_init()
4431        }
4432    }
4433}
4434#[doc = " Input parameters for the EOS_UI_AcknowledgeEventId."]
4435pub type EOS_UI_AcknowledgeEventIdOptions = _tagEOS_UI_AcknowledgeEventIdOptions;
4436#[doc = " Input parameters for the EOS_UI_ReportInputState function."]
4437#[repr(C)]
4438#[derive(Debug, Copy, Clone)]
4439pub struct _tagEOS_UI_ReportInputStateOptions {
4440    #[doc = " API Version: Set this to EOS_UI_REPORTINPUTSTATE_API_LATEST."]
4441    pub ApiVersion: i32,
4442    #[doc = " Flags to identify the current buttons which are pressed."]
4443    pub ButtonDownFlags: EOS_UI_EInputStateButtonFlags,
4444    #[doc = " Whether the current platform and configuration uses the right face button as the default accept button.\n When this flag is true, the right face button is the accept action, and the down face button is the cancel action.\n When this flag is false, the right face button is the cancel action, and the down face button is the accept action."]
4445    pub bAcceptIsFaceButtonRight: EOS_Bool,
4446    #[doc = " The current state of the mouse button."]
4447    pub bMouseButtonDown: EOS_Bool,
4448    #[doc = " The current x-position of the mouse."]
4449    pub MousePosX: u32,
4450    #[doc = " The current y-position of the mouse."]
4451    pub MousePosY: u32,
4452    #[doc = " The gamepad or player index"]
4453    pub GamepadIndex: u32,
4454    #[doc = " Left analog stick horizontal movement in [-1, 1]. Negative for left, positive for right"]
4455    pub LeftStickX: f32,
4456    #[doc = " Left analog stick vertical movement in [-1, 1]. Negative for up, positive for down"]
4457    pub LeftStickY: f32,
4458    #[doc = " Right analog stick horizontal movement in [-1, 1]. Negative for left, positive for right"]
4459    pub RightStickX: f32,
4460    #[doc = " Right analog stick vertical movement in [-1, 1]. Negative for up, positive for down"]
4461    pub RightStickY: f32,
4462    #[doc = " Left trigger analog value in [0, 1]"]
4463    pub LeftTrigger: f32,
4464    #[doc = " Right trigger analog value in [0, 1]"]
4465    pub RightTrigger: f32,
4466}
4467impl Default for _tagEOS_UI_ReportInputStateOptions {
4468    fn default() -> Self {
4469        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4470        unsafe {
4471            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4472            s.assume_init()
4473        }
4474    }
4475}
4476#[doc = " Input parameters for the EOS_UI_ReportInputState function."]
4477pub type EOS_UI_ReportInputStateOptions = _tagEOS_UI_ReportInputStateOptions;
4478#[doc = " Parameters for the EOS_UI_PrePresent function."]
4479#[repr(C)]
4480#[derive(Debug, Copy, Clone)]
4481pub struct _tagEOS_UI_PrePresentOptions {
4482    #[doc = " API Version: Set this to EOS_UI_PREPRESENT_API_LATEST."]
4483    pub ApiVersion: i32,
4484    #[doc = " Platform specific data."]
4485    pub PlatformSpecificData: *const ::std::os::raw::c_void,
4486}
4487impl Default for _tagEOS_UI_PrePresentOptions {
4488    fn default() -> Self {
4489        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4490        unsafe {
4491            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4492            s.assume_init()
4493        }
4494    }
4495}
4496#[doc = " Parameters for the EOS_UI_PrePresent function."]
4497pub type EOS_UI_PrePresentOptions = _tagEOS_UI_PrePresentOptions;
4498#[doc = " Parameters for the EOS_UI_ShowBlockPlayer function."]
4499#[repr(C)]
4500#[derive(Debug, Copy, Clone)]
4501pub struct _tagEOS_UI_ShowBlockPlayerOptions {
4502    #[doc = " API Version: Set this to EOS_UI_SHOWBLOCKPLAYER_API_LATEST."]
4503    pub ApiVersion: i32,
4504    #[doc = " The Epic Online Services Account ID of the user who is requesting the Block."]
4505    pub LocalUserId: EOS_EpicAccountId,
4506    #[doc = " The Epic Online Services Account ID of the user whose is being Blocked."]
4507    pub TargetUserId: EOS_EpicAccountId,
4508}
4509impl Default for _tagEOS_UI_ShowBlockPlayerOptions {
4510    fn default() -> Self {
4511        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4512        unsafe {
4513            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4514            s.assume_init()
4515        }
4516    }
4517}
4518#[doc = " Parameters for the EOS_UI_ShowBlockPlayer function."]
4519pub type EOS_UI_ShowBlockPlayerOptions = _tagEOS_UI_ShowBlockPlayerOptions;
4520#[doc = " Output parameters for the EOS_UI_ShowBlockPlayer function."]
4521#[repr(C)]
4522#[derive(Debug, Copy, Clone)]
4523pub struct _tagEOS_UI_OnShowBlockPlayerCallbackInfo {
4524    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
4525    pub ResultCode: EOS_EResult,
4526    #[doc = " Context that was passed into EOS_UI_ShowBlockPlayer"]
4527    pub ClientData: *mut ::std::os::raw::c_void,
4528    #[doc = " The Epic Online Services Account ID of the user who requested the block."]
4529    pub LocalUserId: EOS_EpicAccountId,
4530    #[doc = " The Epic Online Services Account ID of the user who was to be blocked."]
4531    pub TargetUserId: EOS_EpicAccountId,
4532}
4533impl Default for _tagEOS_UI_OnShowBlockPlayerCallbackInfo {
4534    fn default() -> Self {
4535        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4536        unsafe {
4537            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4538            s.assume_init()
4539        }
4540    }
4541}
4542#[doc = " Output parameters for the EOS_UI_ShowBlockPlayer function."]
4543pub type EOS_UI_OnShowBlockPlayerCallbackInfo = _tagEOS_UI_OnShowBlockPlayerCallbackInfo;
4544#[doc = " Function prototype definition for callbacks passed to EOS_UI_ShowBlockPlayer\n @param Data A EOS_UI_OnShowBlockPlayerCallbackInfo containing the output information and result"]
4545pub type EOS_UI_OnShowBlockPlayerCallback =
4546    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_UI_OnShowBlockPlayerCallbackInfo)>;
4547#[doc = " Parameters for the EOS_UI_ShowReportPlayer function."]
4548#[repr(C)]
4549#[derive(Debug, Copy, Clone)]
4550pub struct _tagEOS_UI_ShowReportPlayerOptions {
4551    #[doc = " API Version: Set this to EOS_UI_SHOWREPORTPLAYER_API_LATEST."]
4552    pub ApiVersion: i32,
4553    #[doc = " The Epic Online Services Account ID of the user who is requesting the Report."]
4554    pub LocalUserId: EOS_EpicAccountId,
4555    #[doc = " The Epic Online Services Account ID of the user whose is being Reported."]
4556    pub TargetUserId: EOS_EpicAccountId,
4557}
4558impl Default for _tagEOS_UI_ShowReportPlayerOptions {
4559    fn default() -> Self {
4560        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4561        unsafe {
4562            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4563            s.assume_init()
4564        }
4565    }
4566}
4567#[doc = " Parameters for the EOS_UI_ShowReportPlayer function."]
4568pub type EOS_UI_ShowReportPlayerOptions = _tagEOS_UI_ShowReportPlayerOptions;
4569#[doc = " Output parameters for the EOS_UI_ShowReportPlayer function."]
4570#[repr(C)]
4571#[derive(Debug, Copy, Clone)]
4572pub struct _tagEOS_UI_OnShowReportPlayerCallbackInfo {
4573    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
4574    pub ResultCode: EOS_EResult,
4575    #[doc = " Context that was passed into EOS_UI_ShowReportPlayer"]
4576    pub ClientData: *mut ::std::os::raw::c_void,
4577    #[doc = " The Epic Online Services Account ID of the user who requested the Report."]
4578    pub LocalUserId: EOS_EpicAccountId,
4579    #[doc = " The Epic Online Services Account ID of the user who was to be Reported."]
4580    pub TargetUserId: EOS_EpicAccountId,
4581}
4582impl Default for _tagEOS_UI_OnShowReportPlayerCallbackInfo {
4583    fn default() -> Self {
4584        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4585        unsafe {
4586            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4587            s.assume_init()
4588        }
4589    }
4590}
4591#[doc = " Output parameters for the EOS_UI_ShowReportPlayer function."]
4592pub type EOS_UI_OnShowReportPlayerCallbackInfo = _tagEOS_UI_OnShowReportPlayerCallbackInfo;
4593#[doc = " Function prototype definition for callbacks passed to EOS_UI_ShowReportPlayer\n @param Data A EOS_UI_OnShowReportPlayerCallbackInfo containing the output information and result"]
4594pub type EOS_UI_OnShowReportPlayerCallback =
4595    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_UI_OnShowReportPlayerCallbackInfo)>;
4596#[doc = " Parameters for the EOS_UI_ShowNativeProfile function."]
4597#[repr(C)]
4598#[derive(Debug, Copy, Clone)]
4599pub struct _tagEOS_UI_ShowNativeProfileOptions {
4600    #[doc = " API Version: Set this to EOS_UI_SHOWNATIVEPROFILE_API_LATEST."]
4601    pub ApiVersion: i32,
4602    #[doc = " The Epic Online Services Account ID of the user who is requesting the profile."]
4603    pub LocalUserId: EOS_EpicAccountId,
4604    #[doc = " The Epic Online Services Account ID of the user whose profile is being requested."]
4605    pub TargetUserId: EOS_EpicAccountId,
4606}
4607impl Default for _tagEOS_UI_ShowNativeProfileOptions {
4608    fn default() -> Self {
4609        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4610        unsafe {
4611            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4612            s.assume_init()
4613        }
4614    }
4615}
4616#[doc = " Parameters for the EOS_UI_ShowNativeProfile function."]
4617pub type EOS_UI_ShowNativeProfileOptions = _tagEOS_UI_ShowNativeProfileOptions;
4618#[doc = " Output parameters for the EOS_UI_ShowNativeProfile function."]
4619#[repr(C)]
4620#[derive(Debug, Copy, Clone)]
4621pub struct _tagEOS_UI_ShowNativeProfileCallbackInfo {
4622    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
4623    pub ResultCode: EOS_EResult,
4624    #[doc = " Context that was passed into EOS_UI_ShowNativeProfile"]
4625    pub ClientData: *mut ::std::os::raw::c_void,
4626    #[doc = " The Epic Online Services Account ID of the user who requested the profile."]
4627    pub LocalUserId: EOS_EpicAccountId,
4628    #[doc = " The Epic Online Services Account ID of the user who was to have a profile shown."]
4629    pub TargetUserId: EOS_EpicAccountId,
4630}
4631impl Default for _tagEOS_UI_ShowNativeProfileCallbackInfo {
4632    fn default() -> Self {
4633        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4634        unsafe {
4635            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4636            s.assume_init()
4637        }
4638    }
4639}
4640#[doc = " Output parameters for the EOS_UI_ShowNativeProfile function."]
4641pub type EOS_UI_ShowNativeProfileCallbackInfo = _tagEOS_UI_ShowNativeProfileCallbackInfo;
4642#[doc = " Function prototype definition for callbacks passed to EOS_UI_ShowNativeProfile\n @param Data A EOS_UI_ShowNativeProfileCallbackInfo containing the output information and result"]
4643pub type EOS_UI_OnShowNativeProfileCallback =
4644    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_UI_ShowNativeProfileCallbackInfo)>;
4645#[doc = " Input parameters for the EOS_UI_PauseSocialOverlay function."]
4646#[repr(C)]
4647#[derive(Debug, Default, Copy, Clone)]
4648pub struct _tagEOS_UI_PauseSocialOverlayOptions {
4649    #[doc = " API Version: Set this to EOS_UI_PAUSESOCIALOVERLAY_API_LATEST."]
4650    pub ApiVersion: i32,
4651    #[doc = " The desired bIsPaused state of the overlay."]
4652    pub bIsPaused: EOS_Bool,
4653}
4654#[doc = " Input parameters for the EOS_UI_PauseSocialOverlay function."]
4655pub type EOS_UI_PauseSocialOverlayOptions = _tagEOS_UI_PauseSocialOverlayOptions;
4656#[doc = " Input parameters for the EOS_UI_IsSocialOverlayPaused function."]
4657#[repr(C)]
4658#[derive(Debug, Default, Copy, Clone)]
4659pub struct _tagEOS_UI_IsSocialOverlayPausedOptions {
4660    #[doc = " API Version: Set this to EOS_UI_ISSOCIALOVERLAYPAUSED_API_LATEST."]
4661    pub ApiVersion: i32,
4662}
4663#[doc = " Input parameters for the EOS_UI_IsSocialOverlayPaused function."]
4664pub type EOS_UI_IsSocialOverlayPausedOptions = _tagEOS_UI_IsSocialOverlayPausedOptions;
4665#[doc = " A rectangle."]
4666#[repr(C)]
4667#[derive(Debug, Default, Copy, Clone)]
4668pub struct _tagEOS_UI_Rect {
4669    #[doc = " API Version: Set this to EOS_UI_RECT_API_LATEST."]
4670    pub ApiVersion: i32,
4671    #[doc = " Left coordinate."]
4672    pub X: i32,
4673    #[doc = " Top coordinate."]
4674    pub Y: i32,
4675    #[doc = " Width."]
4676    pub Width: u32,
4677    #[doc = " Height."]
4678    pub Height: u32,
4679}
4680#[doc = " A rectangle."]
4681pub type EOS_UI_Rect = _tagEOS_UI_Rect;
4682#[doc = " A structure representing a memory monitoring message."]
4683#[repr(C)]
4684#[derive(Debug, Copy, Clone)]
4685pub struct _tagEOS_UI_MemoryMonitorCallbackInfo {
4686    #[doc = " Context that was passed into EOS_UI_AddNotifyMemoryMonitor"]
4687    pub ClientData: *mut ::std::os::raw::c_void,
4688    #[doc = " This field is for system specific memory monitor report.\n\n If provided then the structure will be located in eos_<platform>_ui.h\n The structure will be named EOS_<platform>_MemoryMonitorReport."]
4689    pub SystemMemoryMonitorReport: *const ::std::os::raw::c_void,
4690}
4691impl Default for _tagEOS_UI_MemoryMonitorCallbackInfo {
4692    fn default() -> Self {
4693        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4694        unsafe {
4695            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4696            s.assume_init()
4697        }
4698    }
4699}
4700#[doc = " A structure representing a memory monitoring message."]
4701pub type EOS_UI_MemoryMonitorCallbackInfo = _tagEOS_UI_MemoryMonitorCallbackInfo;
4702#[doc = " Input parameters for the EOS_UI_AddNotifyMemoryMonitor function."]
4703#[repr(C)]
4704#[derive(Debug, Default, Copy, Clone)]
4705pub struct _tagEOS_UI_AddNotifyMemoryMonitorOptions {
4706    #[doc = " API Version: Set this to EOS_UI_ADDNOTIFYMEMORYMONITOR_API_LATEST."]
4707    pub ApiVersion: i32,
4708}
4709#[doc = " Input parameters for the EOS_UI_AddNotifyMemoryMonitor function."]
4710pub type EOS_UI_AddNotifyMemoryMonitorOptions = _tagEOS_UI_AddNotifyMemoryMonitorOptions;
4711#[doc = " Function prototype definition for callbacks passed to EOS_UI_AddNotifyMemoryMonitor\n @param Data A EOS_UI_MemoryMonitorCallbackInfo containing the output information and result"]
4712pub type EOS_UI_OnMemoryMonitorCallback =
4713    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_UI_MemoryMonitorCallbackInfo)>;
4714#[doc = " Do nothing when an on screen keyboard is requested. This effectively disables on screen keyboards."]
4715pub const EOS_UI_EOnScreenKeyboardBehavior_EOS_UIOSKB_None: EOS_UI_EOnScreenKeyboardBehavior = 0;
4716#[doc = " Receive a notification when an on screen keyboard is requested. Use this to implement custom on screen keyboard logic."]
4717pub const EOS_UI_EOnScreenKeyboardBehavior_EOS_UIOSKB_Notification:
4718    EOS_UI_EOnScreenKeyboardBehavior = 1;
4719#[doc = " Try to launch the native on screen keyboard when one is requested."]
4720pub const EOS_UI_EOnScreenKeyboardBehavior_EOS_UIOSKB_Native: EOS_UI_EOnScreenKeyboardBehavior = 2;
4721pub const EOS_UI_EOnScreenKeyboardBehavior___EOS_UI_EOnScreenKeyboardBehavior_PAD_INT32__:
4722    EOS_UI_EOnScreenKeyboardBehavior = 2147483647;
4723#[doc = " An on screen keyboard behavior."]
4724pub type EOS_UI_EOnScreenKeyboardBehavior = ::std::os::raw::c_int;
4725#[doc = " Input parameters for the EOS_UI_ConfigureOnScreenKeyboard function."]
4726#[repr(C)]
4727#[derive(Debug, Copy, Clone)]
4728pub struct _tagEOS_UI_ConfigureOnScreenKeyboardOptions {
4729    #[doc = " API Version: Set this to EOS_UI_CONFIGUREONSCREENKEYBOARD_API_LATEST."]
4730    pub ApiVersion: i32,
4731    #[doc = " The behavior of the on screen keyboard."]
4732    pub Behavior: EOS_UI_EOnScreenKeyboardBehavior,
4733    #[doc = " Whether to enable device checks.\n When enabled, the overlay will use a number of heuristics based on the device's configuration to determine whether an on screen keyboard should be requested.\n When disabled, on screen keyboards will always be requested regardless of device configuration.\n Note, by setting environment variable \"EOS_OVERLAY_OSK\" to 0, on screen keyboard requests will always fail, and by setting it to 1, device checks will always succeed."]
4734    pub bIsDeviceChecksEnabled: EOS_Bool,
4735}
4736impl Default for _tagEOS_UI_ConfigureOnScreenKeyboardOptions {
4737    fn default() -> Self {
4738        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4739        unsafe {
4740            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4741            s.assume_init()
4742        }
4743    }
4744}
4745#[doc = " Input parameters for the EOS_UI_ConfigureOnScreenKeyboard function."]
4746pub type EOS_UI_ConfigureOnScreenKeyboardOptions = _tagEOS_UI_ConfigureOnScreenKeyboardOptions;
4747#[doc = " No on screen keyboard."]
4748pub const EOS_UI_EOnScreenKeyboardType_EOS_UIOSKT_None: EOS_UI_EOnScreenKeyboardType = 0;
4749#[doc = " The default on screen keyboard."]
4750pub const EOS_UI_EOnScreenKeyboardType_EOS_UIOSKT_Default: EOS_UI_EOnScreenKeyboardType = 1;
4751#[doc = " The text on screen keyboard."]
4752pub const EOS_UI_EOnScreenKeyboardType_EOS_UIOSKT_Text: EOS_UI_EOnScreenKeyboardType = 2;
4753#[doc = " The telephone number on screen keyboard."]
4754pub const EOS_UI_EOnScreenKeyboardType_EOS_UIOSKT_TelephoneNumber: EOS_UI_EOnScreenKeyboardType = 3;
4755#[doc = " The URL on screen keyboard."]
4756pub const EOS_UI_EOnScreenKeyboardType_EOS_UIOSKT_URL: EOS_UI_EOnScreenKeyboardType = 4;
4757#[doc = " The email on screen keyboard."]
4758pub const EOS_UI_EOnScreenKeyboardType_EOS_UIOSKT_Email: EOS_UI_EOnScreenKeyboardType = 5;
4759#[doc = " The numeric on screen keyboard."]
4760pub const EOS_UI_EOnScreenKeyboardType_EOS_UIOSKT_Numeric: EOS_UI_EOnScreenKeyboardType = 6;
4761#[doc = " The decimal on screen keyboard."]
4762pub const EOS_UI_EOnScreenKeyboardType_EOS_UIOSKT_Decimal: EOS_UI_EOnScreenKeyboardType = 7;
4763#[doc = " The search on screen keyboard."]
4764pub const EOS_UI_EOnScreenKeyboardType_EOS_UIOSKT_Search: EOS_UI_EOnScreenKeyboardType = 8;
4765pub const EOS_UI_EOnScreenKeyboardType___EOS_UI_EOnScreenKeyboardType_PAD_INT32__:
4766    EOS_UI_EOnScreenKeyboardType = 2147483647;
4767#[doc = " An on screen keyboard type."]
4768pub type EOS_UI_EOnScreenKeyboardType = ::std::os::raw::c_int;
4769#[doc = " Input parameters for the EOS_UI_AddNotifyOnScreenKeyboardRequested function."]
4770#[repr(C)]
4771#[derive(Debug, Default, Copy, Clone)]
4772pub struct _tagEOS_UI_AddNotifyOnScreenKeyboardRequestedOptions {
4773    #[doc = " API Version: Set this to EOS_UI_ADDNOTIFYONSCREENKEYBOARDREQUESTED_API_LATEST."]
4774    pub ApiVersion: i32,
4775}
4776#[doc = " Input parameters for the EOS_UI_AddNotifyOnScreenKeyboardRequested function."]
4777pub type EOS_UI_AddNotifyOnScreenKeyboardRequestedOptions =
4778    _tagEOS_UI_AddNotifyOnScreenKeyboardRequestedOptions;
4779#[doc = " Output parameters for the EOS_UI_AddNotifyOnScreenKeyboardRequested function."]
4780#[repr(C)]
4781#[derive(Debug, Copy, Clone)]
4782pub struct _tagEOS_UI_OnScreenKeyboardRequestedCallbackInfo {
4783    #[doc = " Context that was passed into EOS_UI_AddNotifyOnScreenKeyboardRequested"]
4784    pub ClientData: *mut ::std::os::raw::c_void,
4785    #[doc = " The type of on screen keyboard being requested."]
4786    pub Type: EOS_UI_EOnScreenKeyboardType,
4787}
4788impl Default for _tagEOS_UI_OnScreenKeyboardRequestedCallbackInfo {
4789    fn default() -> Self {
4790        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4791        unsafe {
4792            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4793            s.assume_init()
4794        }
4795    }
4796}
4797#[doc = " Output parameters for the EOS_UI_AddNotifyOnScreenKeyboardRequested function."]
4798pub type EOS_UI_OnScreenKeyboardRequestedCallbackInfo =
4799    _tagEOS_UI_OnScreenKeyboardRequestedCallbackInfo;
4800#[doc = " Function prototype definition for callbacks passed to EOS_UI_AddNotifyOnScreenKeyboardRequested.\n @param Data A EOS_UI_OnScreenKeyboardRequestedCallbackInfo containing notification data."]
4801pub type EOS_UI_OnScreenKeyboardRequestedCallback = ::std::option::Option<
4802    unsafe extern "C" fn(Data: *const EOS_UI_OnScreenKeyboardRequestedCallbackInfo),
4803>;
4804#[repr(C)]
4805#[derive(Debug, Copy, Clone)]
4806pub struct EOS_FriendsHandle {
4807    _unused: [u8; 0],
4808}
4809pub type EOS_HFriends = *mut EOS_FriendsHandle;
4810#[doc = " Input parameters for the EOS_Friends_QueryFriends function."]
4811#[repr(C)]
4812#[derive(Debug, Copy, Clone)]
4813pub struct _tagEOS_Friends_QueryFriendsOptions {
4814    #[doc = " API Version: Set this to EOS_FRIENDS_QUERYFRIENDS_API_LATEST."]
4815    pub ApiVersion: i32,
4816    #[doc = " The Epic Account ID of the local, logged-in user whose friends list you want to retrieve"]
4817    pub LocalUserId: EOS_EpicAccountId,
4818}
4819impl Default for _tagEOS_Friends_QueryFriendsOptions {
4820    fn default() -> Self {
4821        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4822        unsafe {
4823            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4824            s.assume_init()
4825        }
4826    }
4827}
4828#[doc = " Input parameters for the EOS_Friends_QueryFriends function."]
4829pub type EOS_Friends_QueryFriendsOptions = _tagEOS_Friends_QueryFriendsOptions;
4830#[doc = " Output parameters for the EOS_Friends_QueryFriends Function. These parameters are received through the callback provided to EOS_Friends_QueryFriends"]
4831#[repr(C)]
4832#[derive(Debug, Copy, Clone)]
4833pub struct _tagEOS_Friends_QueryFriendsCallbackInfo {
4834    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
4835    pub ResultCode: EOS_EResult,
4836    #[doc = " Context that was passed into EOS_Friends_QueryFriends"]
4837    pub ClientData: *mut ::std::os::raw::c_void,
4838    #[doc = " The Epic Account ID of the user whose friends were queried"]
4839    pub LocalUserId: EOS_EpicAccountId,
4840}
4841impl Default for _tagEOS_Friends_QueryFriendsCallbackInfo {
4842    fn default() -> Self {
4843        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4844        unsafe {
4845            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4846            s.assume_init()
4847        }
4848    }
4849}
4850#[doc = " Output parameters for the EOS_Friends_QueryFriends Function. These parameters are received through the callback provided to EOS_Friends_QueryFriends"]
4851pub type EOS_Friends_QueryFriendsCallbackInfo = _tagEOS_Friends_QueryFriendsCallbackInfo;
4852#[doc = " Function prototype definition for callbacks passed to EOS_Friends_QueryFriends\n @param Data A EOS_Friends_QueryFriendsCallbackInfo containing the output information and result"]
4853pub type EOS_Friends_OnQueryFriendsCallback =
4854    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Friends_QueryFriendsCallbackInfo)>;
4855#[doc = " Input parameters for the EOS_Friends_SendInvite function."]
4856#[repr(C)]
4857#[derive(Debug, Copy, Clone)]
4858pub struct _tagEOS_Friends_SendInviteOptions {
4859    #[doc = " API Version: Set this to EOS_FRIENDS_SENDINVITE_API_LATEST."]
4860    pub ApiVersion: i32,
4861    #[doc = " The Epic Account ID of the local, logged-in user who is sending the friends list invitation"]
4862    pub LocalUserId: EOS_EpicAccountId,
4863    #[doc = " The Epic Account ID of the user who is receiving the friends list invitation"]
4864    pub TargetUserId: EOS_EpicAccountId,
4865}
4866impl Default for _tagEOS_Friends_SendInviteOptions {
4867    fn default() -> Self {
4868        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4869        unsafe {
4870            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4871            s.assume_init()
4872        }
4873    }
4874}
4875#[doc = " Input parameters for the EOS_Friends_SendInvite function."]
4876pub type EOS_Friends_SendInviteOptions = _tagEOS_Friends_SendInviteOptions;
4877#[doc = " Output parameters for the EOS_Friends_SendInvite API."]
4878#[repr(C)]
4879#[derive(Debug, Copy, Clone)]
4880pub struct _tagEOS_Friends_SendInviteCallbackInfo {
4881    #[doc = " Result code for the operation. EOS_Success is returned if the invitation was sent, otherwise one of the error codes is returned. See eos_common.h"]
4882    pub ResultCode: EOS_EResult,
4883    #[doc = " Context that was passed into EOS_Friends_SendInvite"]
4884    pub ClientData: *mut ::std::os::raw::c_void,
4885    #[doc = " The Epic Account ID of the user who sent the friends list invitation"]
4886    pub LocalUserId: EOS_EpicAccountId,
4887    #[doc = " The Epic Account ID of the user to whom the friends list invitation was sent"]
4888    pub TargetUserId: EOS_EpicAccountId,
4889}
4890impl Default for _tagEOS_Friends_SendInviteCallbackInfo {
4891    fn default() -> Self {
4892        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4893        unsafe {
4894            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4895            s.assume_init()
4896        }
4897    }
4898}
4899#[doc = " Output parameters for the EOS_Friends_SendInvite API."]
4900pub type EOS_Friends_SendInviteCallbackInfo = _tagEOS_Friends_SendInviteCallbackInfo;
4901#[doc = " Function prototype definition for callbacks passed to EOS_Friends_SendInvite\n @param Data A EOS_Friends_SendInviteCallbackInfo containing the output information and result."]
4902pub type EOS_Friends_OnSendInviteCallback =
4903    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Friends_SendInviteCallbackInfo)>;
4904#[doc = " Input parameters for the EOS_Friends_AcceptInvite function."]
4905#[repr(C)]
4906#[derive(Debug, Copy, Clone)]
4907pub struct _tagEOS_Friends_AcceptInviteOptions {
4908    #[doc = " API Version: Set this to EOS_FRIENDS_ACCEPTINVITE_API_LATEST."]
4909    pub ApiVersion: i32,
4910    #[doc = " The Epic Account ID of the local, logged-in user who is accepting the friends list invitation"]
4911    pub LocalUserId: EOS_EpicAccountId,
4912    #[doc = " The Epic Account ID of the user who sent the friends list invitation"]
4913    pub TargetUserId: EOS_EpicAccountId,
4914}
4915impl Default for _tagEOS_Friends_AcceptInviteOptions {
4916    fn default() -> Self {
4917        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4918        unsafe {
4919            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4920            s.assume_init()
4921        }
4922    }
4923}
4924#[doc = " Input parameters for the EOS_Friends_AcceptInvite function."]
4925pub type EOS_Friends_AcceptInviteOptions = _tagEOS_Friends_AcceptInviteOptions;
4926#[doc = " Output parameters for the EOS_Friends_AcceptInvite Function."]
4927#[repr(C)]
4928#[derive(Debug, Copy, Clone)]
4929pub struct _tagEOS_Friends_AcceptInviteCallbackInfo {
4930    #[doc = " Result code for the operation. EOS_Success is returned if an invite was accepted, otherwise one of the error codes is returned. See eos_common.h"]
4931    pub ResultCode: EOS_EResult,
4932    #[doc = " Context that is passed into EOS_Friends_AcceptInvite"]
4933    pub ClientData: *mut ::std::os::raw::c_void,
4934    #[doc = " The Epic Account ID of the user who is accepting the friends list invitation"]
4935    pub LocalUserId: EOS_EpicAccountId,
4936    #[doc = " The Epic Account ID of the user who sent the local user a friends list invitation"]
4937    pub TargetUserId: EOS_EpicAccountId,
4938}
4939impl Default for _tagEOS_Friends_AcceptInviteCallbackInfo {
4940    fn default() -> Self {
4941        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4942        unsafe {
4943            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4944            s.assume_init()
4945        }
4946    }
4947}
4948#[doc = " Output parameters for the EOS_Friends_AcceptInvite Function."]
4949pub type EOS_Friends_AcceptInviteCallbackInfo = _tagEOS_Friends_AcceptInviteCallbackInfo;
4950#[doc = " Function prototype definition for callbacks passed to EOS_Friends_AcceptInvite\n @param Data A EOS_Friends_AcceptInviteCallbackInfo containing the output information and result."]
4951pub type EOS_Friends_OnAcceptInviteCallback =
4952    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Friends_AcceptInviteCallbackInfo)>;
4953#[doc = " Input parameters for the EOS_Friends_RejectInvite function."]
4954#[repr(C)]
4955#[derive(Debug, Copy, Clone)]
4956pub struct _tagEOS_Friends_RejectInviteOptions {
4957    #[doc = " API Version: Set this to EOS_FRIENDS_REJECTINVITE_API_LATEST."]
4958    pub ApiVersion: i32,
4959    #[doc = " The Epic Account ID of the local, logged-in user who is rejecting a friends list invitation"]
4960    pub LocalUserId: EOS_EpicAccountId,
4961    #[doc = " The Epic Account ID of the user who sent the friends list invitation"]
4962    pub TargetUserId: EOS_EpicAccountId,
4963}
4964impl Default for _tagEOS_Friends_RejectInviteOptions {
4965    fn default() -> Self {
4966        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4967        unsafe {
4968            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4969            s.assume_init()
4970        }
4971    }
4972}
4973#[doc = " Input parameters for the EOS_Friends_RejectInvite function."]
4974pub type EOS_Friends_RejectInviteOptions = _tagEOS_Friends_RejectInviteOptions;
4975#[doc = " Output parameters for the EOS_Friends_RejectInvite Function."]
4976#[repr(C)]
4977#[derive(Debug, Copy, Clone)]
4978pub struct _tagEOS_Friends_RejectInviteCallbackInfo {
4979    #[doc = " Result code for the operation. EOS_Success is returned if an invite was accepted, otherwise one of the error codes is returned. See eos_common.h"]
4980    pub ResultCode: EOS_EResult,
4981    #[doc = " Context that is passed into EOS_Friends_RejectInvite"]
4982    pub ClientData: *mut ::std::os::raw::c_void,
4983    #[doc = " The Epic Account ID of the user who is rejecting the friends list invitation"]
4984    pub LocalUserId: EOS_EpicAccountId,
4985    #[doc = " The Epic Account ID of the user who sent the friends list invitation"]
4986    pub TargetUserId: EOS_EpicAccountId,
4987}
4988impl Default for _tagEOS_Friends_RejectInviteCallbackInfo {
4989    fn default() -> Self {
4990        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4991        unsafe {
4992            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4993            s.assume_init()
4994        }
4995    }
4996}
4997#[doc = " Output parameters for the EOS_Friends_RejectInvite Function."]
4998pub type EOS_Friends_RejectInviteCallbackInfo = _tagEOS_Friends_RejectInviteCallbackInfo;
4999#[doc = " Function prototype definition for callbacks passed to EOS_Friends_RejectInvite\n @param Data A EOS_Friends_RejectInviteCallbackInfo containing output information and the result."]
5000pub type EOS_Friends_OnRejectInviteCallback =
5001    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Friends_RejectInviteCallbackInfo)>;
5002#[doc = " Input parameters for the EOS_Friends_GetFriendsCount function."]
5003#[repr(C)]
5004#[derive(Debug, Copy, Clone)]
5005pub struct _tagEOS_Friends_GetFriendsCountOptions {
5006    #[doc = " API Version: Set this to EOS_FRIENDS_GETFRIENDSCOUNT_API_LATEST."]
5007    pub ApiVersion: i32,
5008    #[doc = " The Epic Account ID of the user whose friends should be counted"]
5009    pub LocalUserId: EOS_EpicAccountId,
5010}
5011impl Default for _tagEOS_Friends_GetFriendsCountOptions {
5012    fn default() -> Self {
5013        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5014        unsafe {
5015            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5016            s.assume_init()
5017        }
5018    }
5019}
5020#[doc = " Input parameters for the EOS_Friends_GetFriendsCount function."]
5021pub type EOS_Friends_GetFriendsCountOptions = _tagEOS_Friends_GetFriendsCountOptions;
5022#[doc = " Input parameters for the EOS_Friends_GetFriendAtIndex function."]
5023#[repr(C)]
5024#[derive(Debug, Copy, Clone)]
5025pub struct _tagEOS_Friends_GetFriendAtIndexOptions {
5026    #[doc = " API Version: Set this to EOS_FRIENDS_GETFRIENDATINDEX_API_LATEST."]
5027    pub ApiVersion: i32,
5028    #[doc = " The Epic Account ID of the user whose friend list is being queried"]
5029    pub LocalUserId: EOS_EpicAccountId,
5030    #[doc = " Index into the friend list. This value must be between 0 and EOS_Friends_GetFriendsCount-1 inclusively."]
5031    pub Index: i32,
5032}
5033impl Default for _tagEOS_Friends_GetFriendAtIndexOptions {
5034    fn default() -> Self {
5035        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5036        unsafe {
5037            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5038            s.assume_init()
5039        }
5040    }
5041}
5042#[doc = " Input parameters for the EOS_Friends_GetFriendAtIndex function."]
5043pub type EOS_Friends_GetFriendAtIndexOptions = _tagEOS_Friends_GetFriendAtIndexOptions;
5044#[doc = " The two accounts have no friendship status."]
5045pub const EOS_EFriendsStatus_EOS_FS_NotFriends: EOS_EFriendsStatus = 0;
5046#[doc = " The local account has sent a friend invite to the other account.\n\n NOTE: EOS_FS_InviteSent is not returned by EOS_Friends_GetStatus or in EOS_Friends_AddNotifyFriendsUpdate callbacks unless\n       the local account was logged in with the EOS_AS_FriendsManagement authentication scope. Friend invites are managed\n       automatically by the Social Overlay."]
5047pub const EOS_EFriendsStatus_EOS_FS_InviteSent: EOS_EFriendsStatus = 1;
5048#[doc = " The other account has sent a friend invite to the local account.\n\n NOTE: EOS_FS_InviteReceived is not returned by EOS_Friends_GetStatus or in EOS_Friends_AddNotifyFriendsUpdate callbacks unless\n       the local account was logged in with the EOS_AS_FriendsManagement authentication scope. Friend invites are managed\n       automatically by the Social Overlay."]
5049pub const EOS_EFriendsStatus_EOS_FS_InviteReceived: EOS_EFriendsStatus = 2;
5050#[doc = " The accounts have accepted friendship."]
5051pub const EOS_EFriendsStatus_EOS_FS_Friends: EOS_EFriendsStatus = 3;
5052pub const EOS_EFriendsStatus___EOS_EFriendsStatus_PAD_INT32__: EOS_EFriendsStatus = 2147483647;
5053#[doc = " An enumeration of the different friendship statuses."]
5054pub type EOS_EFriendsStatus = ::std::os::raw::c_int;
5055#[doc = " Input parameters for the EOS_Friends_GetStatus function."]
5056#[repr(C)]
5057#[derive(Debug, Copy, Clone)]
5058pub struct _tagEOS_Friends_GetStatusOptions {
5059    #[doc = " API Version: Set this to EOS_FRIENDS_GETSTATUS_API_LATEST."]
5060    pub ApiVersion: i32,
5061    #[doc = " The Epic Account ID of the local, logged in user"]
5062    pub LocalUserId: EOS_EpicAccountId,
5063    #[doc = " The Epic Account ID of the user whose friendship status with the local user is being queried"]
5064    pub TargetUserId: EOS_EpicAccountId,
5065}
5066impl Default for _tagEOS_Friends_GetStatusOptions {
5067    fn default() -> Self {
5068        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5069        unsafe {
5070            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5071            s.assume_init()
5072        }
5073    }
5074}
5075#[doc = " Input parameters for the EOS_Friends_GetStatus function."]
5076pub type EOS_Friends_GetStatusOptions = _tagEOS_Friends_GetStatusOptions;
5077#[doc = " Input parameters for the EOS_Friends_AddNotifyFriendsUpdate function."]
5078#[repr(C)]
5079#[derive(Debug, Default, Copy, Clone)]
5080pub struct _tagEOS_Friends_AddNotifyFriendsUpdateOptions {
5081    #[doc = " API Version: Set this to EOS_FRIENDS_ADDNOTIFYFRIENDSUPDATE_API_LATEST."]
5082    pub ApiVersion: i32,
5083}
5084#[doc = " Input parameters for the EOS_Friends_AddNotifyFriendsUpdate function."]
5085pub type EOS_Friends_AddNotifyFriendsUpdateOptions = _tagEOS_Friends_AddNotifyFriendsUpdateOptions;
5086#[doc = " Structure containing information about a friend status update."]
5087#[repr(C)]
5088#[derive(Debug, Copy, Clone)]
5089pub struct _tagEOS_Friends_OnFriendsUpdateInfo {
5090    #[doc = " Client-specified data passed into EOS_Friends_AddNotifyFriendsUpdate"]
5091    pub ClientData: *mut ::std::os::raw::c_void,
5092    #[doc = " The Epic Account ID of the local user who is receiving the update"]
5093    pub LocalUserId: EOS_EpicAccountId,
5094    #[doc = " The Epic Account ID of the user whose status is being updated."]
5095    pub TargetUserId: EOS_EpicAccountId,
5096    #[doc = " The previous status of the user."]
5097    pub PreviousStatus: EOS_EFriendsStatus,
5098    #[doc = " The current status of the user."]
5099    pub CurrentStatus: EOS_EFriendsStatus,
5100}
5101impl Default for _tagEOS_Friends_OnFriendsUpdateInfo {
5102    fn default() -> Self {
5103        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5104        unsafe {
5105            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5106            s.assume_init()
5107        }
5108    }
5109}
5110#[doc = " Structure containing information about a friend status update."]
5111pub type EOS_Friends_OnFriendsUpdateInfo = _tagEOS_Friends_OnFriendsUpdateInfo;
5112#[doc = " Callback for information related to a friend status update."]
5113pub type EOS_Friends_OnFriendsUpdateCallback =
5114    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Friends_OnFriendsUpdateInfo)>;
5115#[doc = " Input parameters for the EOS_Friends_GetBlockedUsersCount function."]
5116#[repr(C)]
5117#[derive(Debug, Copy, Clone)]
5118pub struct _tagEOS_Friends_GetBlockedUsersCountOptions {
5119    #[doc = " API Version: Set this to EOS_FRIENDS_GETBLOCKEDUSERSCOUNT_API_LATEST."]
5120    pub ApiVersion: i32,
5121    #[doc = " The Epic Account ID of the user whose blocked users should be counted."]
5122    pub LocalUserId: EOS_EpicAccountId,
5123}
5124impl Default for _tagEOS_Friends_GetBlockedUsersCountOptions {
5125    fn default() -> Self {
5126        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5127        unsafe {
5128            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5129            s.assume_init()
5130        }
5131    }
5132}
5133#[doc = " Input parameters for the EOS_Friends_GetBlockedUsersCount function."]
5134pub type EOS_Friends_GetBlockedUsersCountOptions = _tagEOS_Friends_GetBlockedUsersCountOptions;
5135#[doc = " Input parameters for the EOS_Friends_GetBlockedUserAtIndex function."]
5136#[repr(C)]
5137#[derive(Debug, Copy, Clone)]
5138pub struct _tagEOS_Friends_GetBlockedUserAtIndexOptions {
5139    #[doc = " API Version: Set this to EOS_FRIENDS_GETBLOCKEDUSERATINDEX_API_LATEST."]
5140    pub ApiVersion: i32,
5141    #[doc = " The Epic Account ID of the user whose blocked users list is being queried."]
5142    pub LocalUserId: EOS_EpicAccountId,
5143    #[doc = " Index into the blocked users list. This value must be between 0 and EOS_Friends_GetBlockedUsersCount-1 inclusively."]
5144    pub Index: i32,
5145}
5146impl Default for _tagEOS_Friends_GetBlockedUserAtIndexOptions {
5147    fn default() -> Self {
5148        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5149        unsafe {
5150            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5151            s.assume_init()
5152        }
5153    }
5154}
5155#[doc = " Input parameters for the EOS_Friends_GetBlockedUserAtIndex function."]
5156pub type EOS_Friends_GetBlockedUserAtIndexOptions = _tagEOS_Friends_GetBlockedUserAtIndexOptions;
5157#[doc = " Input parameters for the EOS_Friends_AddNotifyBlockedUsersUpdate function."]
5158#[repr(C)]
5159#[derive(Debug, Default, Copy, Clone)]
5160pub struct _tagEOS_Friends_AddNotifyBlockedUsersUpdateOptions {
5161    #[doc = " API Version: Set this to EOS_FRIENDS_ADDNOTIFYBLOCKEDUSERSUPDATE_API_LATEST."]
5162    pub ApiVersion: i32,
5163}
5164#[doc = " Input parameters for the EOS_Friends_AddNotifyBlockedUsersUpdate function."]
5165pub type EOS_Friends_AddNotifyBlockedUsersUpdateOptions =
5166    _tagEOS_Friends_AddNotifyBlockedUsersUpdateOptions;
5167#[doc = " Structure containing information about a blocklist update."]
5168#[repr(C)]
5169#[derive(Debug, Copy, Clone)]
5170pub struct _tagEOS_Friends_OnBlockedUsersUpdateInfo {
5171    #[doc = " Client-specified data passed into EOS_Friends_AddNotifyBlockedUsersUpdate"]
5172    pub ClientData: *mut ::std::os::raw::c_void,
5173    #[doc = " The Epic Account ID of the local user who is receiving the update"]
5174    pub LocalUserId: EOS_EpicAccountId,
5175    #[doc = " The Epic Account ID of the user whose blocked status is being updated."]
5176    pub TargetUserId: EOS_EpicAccountId,
5177    #[doc = " TargetUserId block status (blocked or not)."]
5178    pub bBlocked: EOS_Bool,
5179}
5180impl Default for _tagEOS_Friends_OnBlockedUsersUpdateInfo {
5181    fn default() -> Self {
5182        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5183        unsafe {
5184            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5185            s.assume_init()
5186        }
5187    }
5188}
5189#[doc = " Structure containing information about a blocklist update."]
5190pub type EOS_Friends_OnBlockedUsersUpdateInfo = _tagEOS_Friends_OnBlockedUsersUpdateInfo;
5191#[doc = " Callback for information related to a blocklist update."]
5192pub type EOS_Friends_OnBlockedUsersUpdateCallback =
5193    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Friends_OnBlockedUsersUpdateInfo)>;
5194#[repr(C)]
5195#[derive(Debug, Copy, Clone)]
5196pub struct EOS_PresenceHandle {
5197    _unused: [u8; 0],
5198}
5199pub type EOS_HPresence = *mut EOS_PresenceHandle;
5200#[repr(C)]
5201#[derive(Debug, Copy, Clone)]
5202pub struct EOS_PresenceModificationHandle {
5203    _unused: [u8; 0],
5204}
5205pub type EOS_HPresenceModification = *mut EOS_PresenceModificationHandle;
5206#[doc = " The status of the account is offline or not known"]
5207pub const EOS_Presence_EStatus_EOS_PS_Offline: EOS_Presence_EStatus = 0;
5208#[doc = " The status of the account is online"]
5209pub const EOS_Presence_EStatus_EOS_PS_Online: EOS_Presence_EStatus = 1;
5210#[doc = " The status of the account is away"]
5211pub const EOS_Presence_EStatus_EOS_PS_Away: EOS_Presence_EStatus = 2;
5212#[doc = " The status of the account is away, and has been away for a while"]
5213pub const EOS_Presence_EStatus_EOS_PS_ExtendedAway: EOS_Presence_EStatus = 3;
5214#[doc = " The status of the account is do-not-disturb"]
5215pub const EOS_Presence_EStatus_EOS_PS_DoNotDisturb: EOS_Presence_EStatus = 4;
5216pub const EOS_Presence_EStatus___EOS_Presence_EStatus_PAD_INT32__: EOS_Presence_EStatus =
5217    2147483647;
5218#[doc = " Presence Status states of a user\n\n @see EOS_Presence_CopyPresence\n @see EOS_PresenceModification_SetStatus"]
5219pub type EOS_Presence_EStatus = ::std::os::raw::c_int;
5220#[doc = " An individual presence data record that belongs to a EOS_Presence_Info object. This object is released when its parent EOS_Presence_Info object is released.\n\n @see EOS_Presence_Info"]
5221#[repr(C)]
5222#[derive(Debug, Copy, Clone)]
5223pub struct _tagEOS_Presence_DataRecord {
5224    #[doc = " API Version: Set this to EOS_PRESENCE_DATARECORD_API_LATEST."]
5225    pub ApiVersion: i32,
5226    #[doc = " The name of this data"]
5227    pub Key: *const ::std::os::raw::c_char,
5228    #[doc = " The value of this data"]
5229    pub Value: *const ::std::os::raw::c_char,
5230}
5231impl Default for _tagEOS_Presence_DataRecord {
5232    fn default() -> Self {
5233        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5234        unsafe {
5235            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5236            s.assume_init()
5237        }
5238    }
5239}
5240#[doc = " An individual presence data record that belongs to a EOS_Presence_Info object. This object is released when its parent EOS_Presence_Info object is released.\n\n @see EOS_Presence_Info"]
5241pub type EOS_Presence_DataRecord = _tagEOS_Presence_DataRecord;
5242#[doc = " All the known presence information for a specific user. This object must be released by calling EOS_Presence_Info_Release.\n\n @see EOS_Presence_CopyPresence\n @see EOS_Presence_Info_Release"]
5243#[repr(C)]
5244#[derive(Debug, Copy, Clone)]
5245pub struct _tagEOS_Presence_Info {
5246    #[doc = " API Version: Set this to EOS_PRESENCE_INFO_API_LATEST."]
5247    pub ApiVersion: i32,
5248    #[doc = " The status of the user"]
5249    pub Status: EOS_Presence_EStatus,
5250    #[doc = " The Epic Account ID of the user"]
5251    pub UserId: EOS_EpicAccountId,
5252    #[doc = " The product ID that the user is logged in from"]
5253    pub ProductId: *const ::std::os::raw::c_char,
5254    #[doc = " The version of the product the user is logged in from"]
5255    pub ProductVersion: *const ::std::os::raw::c_char,
5256    #[doc = " The platform of that the user is logged in from"]
5257    pub Platform: *const ::std::os::raw::c_char,
5258    #[doc = " Rich text of the user."]
5259    pub RichText: *const ::std::os::raw::c_char,
5260    #[doc = " The count of records available"]
5261    pub RecordsCount: i32,
5262    #[doc = " The first data record, or NULL if RecordsCount is not at least 1"]
5263    pub Records: *const EOS_Presence_DataRecord,
5264    #[doc = " The user-facing name for the product the user is logged in from"]
5265    pub ProductName: *const ::std::os::raw::c_char,
5266    #[doc = " The integrated platform that the user is logged in with"]
5267    pub IntegratedPlatform: *const ::std::os::raw::c_char,
5268}
5269impl Default for _tagEOS_Presence_Info {
5270    fn default() -> Self {
5271        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5272        unsafe {
5273            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5274            s.assume_init()
5275        }
5276    }
5277}
5278#[doc = " All the known presence information for a specific user. This object must be released by calling EOS_Presence_Info_Release.\n\n @see EOS_Presence_CopyPresence\n @see EOS_Presence_Info_Release"]
5279pub type EOS_Presence_Info = _tagEOS_Presence_Info;
5280#[doc = " Data for the EOS_Presence_QueryPresence function"]
5281#[repr(C)]
5282#[derive(Debug, Copy, Clone)]
5283pub struct _tagEOS_Presence_QueryPresenceOptions {
5284    #[doc = " API Version: Set this to EOS_PRESENCE_QUERYPRESENCE_API_LATEST."]
5285    pub ApiVersion: i32,
5286    #[doc = " The Epic Account ID of the local, logged-in user making the request"]
5287    pub LocalUserId: EOS_EpicAccountId,
5288    #[doc = " The Epic Account ID of the user whose presence data you want to retrieve; this value must be either the user making the request, or a friend of that user"]
5289    pub TargetUserId: EOS_EpicAccountId,
5290}
5291impl Default for _tagEOS_Presence_QueryPresenceOptions {
5292    fn default() -> Self {
5293        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5294        unsafe {
5295            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5296            s.assume_init()
5297        }
5298    }
5299}
5300#[doc = " Data for the EOS_Presence_QueryPresence function"]
5301pub type EOS_Presence_QueryPresenceOptions = _tagEOS_Presence_QueryPresenceOptions;
5302#[doc = " The result meta-data for a presence query."]
5303#[repr(C)]
5304#[derive(Debug, Copy, Clone)]
5305pub struct _tagEOS_Presence_QueryPresenceCallbackInfo {
5306    #[doc = " Result code for the operation. EOS_Success is returned for a successful query, other codes indicate an error"]
5307    pub ResultCode: EOS_EResult,
5308    #[doc = " Client-specified data passed into EOS_Presence_QueryPresence"]
5309    pub ClientData: *mut ::std::os::raw::c_void,
5310    #[doc = " The Epic Account ID of the local user who made this request"]
5311    pub LocalUserId: EOS_EpicAccountId,
5312    #[doc = " The Epic Account ID of the user whose presence was potentially queried"]
5313    pub TargetUserId: EOS_EpicAccountId,
5314}
5315impl Default for _tagEOS_Presence_QueryPresenceCallbackInfo {
5316    fn default() -> Self {
5317        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5318        unsafe {
5319            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5320            s.assume_init()
5321        }
5322    }
5323}
5324#[doc = " The result meta-data for a presence query."]
5325pub type EOS_Presence_QueryPresenceCallbackInfo = _tagEOS_Presence_QueryPresenceCallbackInfo;
5326#[doc = " Callback for information related to EOS_Presence_QueryPresence finishing."]
5327pub type EOS_Presence_OnQueryPresenceCompleteCallback = ::std::option::Option<
5328    unsafe extern "C" fn(Data: *const EOS_Presence_QueryPresenceCallbackInfo),
5329>;
5330#[doc = " Data for the EOS_Presence_HasPresence function."]
5331#[repr(C)]
5332#[derive(Debug, Copy, Clone)]
5333pub struct _tagEOS_Presence_HasPresenceOptions {
5334    #[doc = " API Version: Set this to EOS_PRESENCE_HASPRESENCE_API_LATEST."]
5335    pub ApiVersion: i32,
5336    #[doc = " The Epic Account ID of the local, logged-in user making the request"]
5337    pub LocalUserId: EOS_EpicAccountId,
5338    #[doc = " The Epic Account ID of the user whose cached presence data you want to locate"]
5339    pub TargetUserId: EOS_EpicAccountId,
5340}
5341impl Default for _tagEOS_Presence_HasPresenceOptions {
5342    fn default() -> Self {
5343        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5344        unsafe {
5345            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5346            s.assume_init()
5347        }
5348    }
5349}
5350#[doc = " Data for the EOS_Presence_HasPresence function."]
5351pub type EOS_Presence_HasPresenceOptions = _tagEOS_Presence_HasPresenceOptions;
5352#[doc = " Data for the EOS_Presence_CopyPresence function."]
5353#[repr(C)]
5354#[derive(Debug, Copy, Clone)]
5355pub struct _tagEOS_Presence_CopyPresenceOptions {
5356    #[doc = " API Version: Set this to EOS_PRESENCE_COPYPRESENCE_API_LATEST."]
5357    pub ApiVersion: i32,
5358    #[doc = " The Epic Account ID of the local, logged-in user making the request"]
5359    pub LocalUserId: EOS_EpicAccountId,
5360    #[doc = " The Epic Account ID of the user whose cached presence data you want to copy from the cache"]
5361    pub TargetUserId: EOS_EpicAccountId,
5362}
5363impl Default for _tagEOS_Presence_CopyPresenceOptions {
5364    fn default() -> Self {
5365        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5366        unsafe {
5367            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5368            s.assume_init()
5369        }
5370    }
5371}
5372#[doc = " Data for the EOS_Presence_CopyPresence function."]
5373pub type EOS_Presence_CopyPresenceOptions = _tagEOS_Presence_CopyPresenceOptions;
5374unsafe extern "C" {
5375    #[doc = " Release the memory associated with an EOS_Presence_Info structure and its sub-objects. This must be called on data retrieved from EOS_Presence_CopyPresence.\n This can be safely called on a NULL presence info object.\n\n @param PresenceInfo The presence info structure to be release"]
5376    pub fn EOS_Presence_Info_Release(PresenceInfo: *mut EOS_Presence_Info);
5377}
5378#[doc = " Data for the EOS_Presence_CreatePresenceModification function."]
5379#[repr(C)]
5380#[derive(Debug, Copy, Clone)]
5381pub struct _tagEOS_Presence_CreatePresenceModificationOptions {
5382    #[doc = " API Version: Set this to EOS_PRESENCE_CREATEPRESENCEMODIFICATION_API_LATEST."]
5383    pub ApiVersion: i32,
5384    #[doc = " The Epic Account ID of the local, logged-in user making the request"]
5385    pub LocalUserId: EOS_EpicAccountId,
5386}
5387impl Default for _tagEOS_Presence_CreatePresenceModificationOptions {
5388    fn default() -> Self {
5389        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5390        unsafe {
5391            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5392            s.assume_init()
5393        }
5394    }
5395}
5396#[doc = " Data for the EOS_Presence_CreatePresenceModification function."]
5397pub type EOS_Presence_CreatePresenceModificationOptions =
5398    _tagEOS_Presence_CreatePresenceModificationOptions;
5399unsafe extern "C" {
5400    #[doc = " Release the memory associated with an EOS_HPresenceModification handle. This must be called on Handles retrieved from EOS_Presence_CreatePresenceModification.\n This can be safely called on a NULL presence modification handle. This also may be safely called while a call to SetPresence is still pending.\n\n @param PresenceModificationHandle The presence modification handle to release\n\n @see EOS_Presence_CreatePresenceModification"]
5401    pub fn EOS_PresenceModification_Release(PresenceModificationHandle: EOS_HPresenceModification);
5402}
5403#[doc = " Data for the EOS_Presence_SetPresence function."]
5404#[repr(C)]
5405#[derive(Debug, Copy, Clone)]
5406pub struct _tagEOS_Presence_SetPresenceOptions {
5407    #[doc = " API Version: Set this to EOS_PRESENCE_SETPRESENCE_API_LATEST."]
5408    pub ApiVersion: i32,
5409    #[doc = " The Epic Account ID of the local, logged-in user making the request"]
5410    pub LocalUserId: EOS_EpicAccountId,
5411    #[doc = " The handle to the presence update"]
5412    pub PresenceModificationHandle: EOS_HPresenceModification,
5413}
5414impl Default for _tagEOS_Presence_SetPresenceOptions {
5415    fn default() -> Self {
5416        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5417        unsafe {
5418            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5419            s.assume_init()
5420        }
5421    }
5422}
5423#[doc = " Data for the EOS_Presence_SetPresence function."]
5424pub type EOS_Presence_SetPresenceOptions = _tagEOS_Presence_SetPresenceOptions;
5425#[doc = " The result meta-data from setting a user's presence."]
5426#[repr(C)]
5427#[derive(Debug, Copy, Clone)]
5428pub struct _tagEOS_Presence_SetPresenceCallbackInfo {
5429    #[doc = " Result code for the operation. EOS_Success is returned if presence was successfully set, other codes indicate an error"]
5430    pub ResultCode: EOS_EResult,
5431    #[doc = " Client-specified data passed into EOS_Presence_SetPresence"]
5432    pub ClientData: *mut ::std::os::raw::c_void,
5433    #[doc = " The Epic Account ID of the local user that had their presence set"]
5434    pub LocalUserId: EOS_EpicAccountId,
5435    #[doc = " Result code for the Rich presence operation. EOS_Success is returned if the Rich presence was successfully set, other code indicates an error."]
5436    pub RichPresenceResultCode: EOS_EResult,
5437}
5438impl Default for _tagEOS_Presence_SetPresenceCallbackInfo {
5439    fn default() -> Self {
5440        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5441        unsafe {
5442            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5443            s.assume_init()
5444        }
5445    }
5446}
5447#[doc = " The result meta-data from setting a user's presence."]
5448pub type EOS_Presence_SetPresenceCallbackInfo = _tagEOS_Presence_SetPresenceCallbackInfo;
5449#[doc = " Callback for information related to EOS_Presence_SetPresence finishing."]
5450pub type EOS_Presence_SetPresenceCompleteCallback =
5451    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Presence_SetPresenceCallbackInfo)>;
5452#[doc = " Data for the EOS_Presence_AddNotifyOnPresenceChanged function."]
5453#[repr(C)]
5454#[derive(Debug, Default, Copy, Clone)]
5455pub struct _tagEOS_Presence_AddNotifyOnPresenceChangedOptions {
5456    #[doc = " API Version: Set this to EOS_PRESENCE_ADDNOTIFYONPRESENCECHANGED_API_LATEST."]
5457    pub ApiVersion: i32,
5458}
5459#[doc = " Data for the EOS_Presence_AddNotifyOnPresenceChanged function."]
5460pub type EOS_Presence_AddNotifyOnPresenceChangedOptions =
5461    _tagEOS_Presence_AddNotifyOnPresenceChangedOptions;
5462#[doc = " Data containing which users presence has changed"]
5463#[repr(C)]
5464#[derive(Debug, Copy, Clone)]
5465pub struct _tagEOS_Presence_PresenceChangedCallbackInfo {
5466    #[doc = " Client-specified data passed into EOS_Presence_AddNotifyOnPresenceChanged"]
5467    pub ClientData: *mut ::std::os::raw::c_void,
5468    #[doc = " The Epic Account ID of the local user who is being informed for PresenceUserId's presence change"]
5469    pub LocalUserId: EOS_EpicAccountId,
5470    #[doc = " The Epic Account ID of the user who had their presence changed"]
5471    pub PresenceUserId: EOS_EpicAccountId,
5472}
5473impl Default for _tagEOS_Presence_PresenceChangedCallbackInfo {
5474    fn default() -> Self {
5475        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5476        unsafe {
5477            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5478            s.assume_init()
5479        }
5480    }
5481}
5482#[doc = " Data containing which users presence has changed"]
5483pub type EOS_Presence_PresenceChangedCallbackInfo = _tagEOS_Presence_PresenceChangedCallbackInfo;
5484#[doc = " Input parameters for the EOS_Presence_AddNotifyJoinGameAccepted function."]
5485#[repr(C)]
5486#[derive(Debug, Default, Copy, Clone)]
5487pub struct _tagEOS_Presence_AddNotifyJoinGameAcceptedOptions {
5488    #[doc = " API Version: Set this to EOS_PRESENCE_ADDNOTIFYJOINGAMEACCEPTED_API_LATEST."]
5489    pub ApiVersion: i32,
5490}
5491#[doc = " Input parameters for the EOS_Presence_AddNotifyJoinGameAccepted function."]
5492pub type EOS_Presence_AddNotifyJoinGameAcceptedOptions =
5493    _tagEOS_Presence_AddNotifyJoinGameAcceptedOptions;
5494#[doc = " Output parameters for the EOS_Presence_OnJoinGameAcceptedCallback Function."]
5495#[repr(C)]
5496#[derive(Debug, Copy, Clone)]
5497pub struct _tagEOS_Presence_JoinGameAcceptedCallbackInfo {
5498    #[doc = " Context that was passed into EOS_Presence_AddNotifyJoinGameAccepted"]
5499    pub ClientData: *mut ::std::os::raw::c_void,
5500    #[doc = " The Join Info custom game-data string to use to join the target user.\n Set to a null pointer to delete the value."]
5501    pub JoinInfo: *const ::std::os::raw::c_char,
5502    #[doc = " The Epic Account ID of the user who accepted the invitation"]
5503    pub LocalUserId: EOS_EpicAccountId,
5504    #[doc = " The Epic Account ID of the user who sent the invitation"]
5505    pub TargetUserId: EOS_EpicAccountId,
5506    #[doc = " If the value is not EOS_UI_EVENTID_INVALID then it must be passed back to the SDK using EOS_UI_AcknowledgeEventId.\n This should be done after attempting to join the game and either succeeding or failing to connect.\n This is necessary to allow the Social Overlay UI to manage the `Join` button."]
5507    pub UiEventId: EOS_UI_EventId,
5508}
5509impl Default for _tagEOS_Presence_JoinGameAcceptedCallbackInfo {
5510    fn default() -> Self {
5511        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5512        unsafe {
5513            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5514            s.assume_init()
5515        }
5516    }
5517}
5518#[doc = " Output parameters for the EOS_Presence_OnJoinGameAcceptedCallback Function."]
5519pub type EOS_Presence_JoinGameAcceptedCallbackInfo = _tagEOS_Presence_JoinGameAcceptedCallbackInfo;
5520#[doc = " Function prototype definition for notifications that come from EOS_Presence_AddNotifyJoinGameAccepted\n\n @param Data A EOS_Presence_JoinGameAcceptedCallbackInfo containing the output information and result\n\n @note EOS_UI_AcknowledgeEventId must be called with any valid UiEventId passed via the data."]
5521pub type EOS_Presence_OnJoinGameAcceptedCallback = ::std::option::Option<
5522    unsafe extern "C" fn(Data: *const EOS_Presence_JoinGameAcceptedCallbackInfo),
5523>;
5524#[doc = " Callback for information related to notifications from EOS_Presence_AddNotifyOnPresenceChanged triggering."]
5525pub type EOS_Presence_OnPresenceChangedCallback = ::std::option::Option<
5526    unsafe extern "C" fn(Data: *const EOS_Presence_PresenceChangedCallbackInfo),
5527>;
5528#[doc = " Data for the EOS_Presence_GetJoinInfo function."]
5529#[repr(C)]
5530#[derive(Debug, Copy, Clone)]
5531pub struct _tagEOS_Presence_GetJoinInfoOptions {
5532    #[doc = " API Version: Set this to EOS_PRESENCE_GETJOININFO_API_LATEST."]
5533    pub ApiVersion: i32,
5534    #[doc = " The local user's Epic Account ID"]
5535    pub LocalUserId: EOS_EpicAccountId,
5536    #[doc = " The Epic Account ID to query for join info; this value must either be a logged-in local user, or a friend of that user"]
5537    pub TargetUserId: EOS_EpicAccountId,
5538}
5539impl Default for _tagEOS_Presence_GetJoinInfoOptions {
5540    fn default() -> Self {
5541        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5542        unsafe {
5543            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5544            s.assume_init()
5545        }
5546    }
5547}
5548#[doc = " Data for the EOS_Presence_GetJoinInfo function."]
5549pub type EOS_Presence_GetJoinInfoOptions = _tagEOS_Presence_GetJoinInfoOptions;
5550#[doc = " Data for the EOS_PresenceModification_SetJoinInfo function."]
5551#[repr(C)]
5552#[derive(Debug, Copy, Clone)]
5553pub struct _tagEOS_PresenceModification_SetJoinInfoOptions {
5554    #[doc = " API Version: Set this to EOS_PRESENCEMODIFICATION_SETJOININFO_API_LATEST."]
5555    pub ApiVersion: i32,
5556    #[doc = " The string which will be advertised as this player's join info.\n An application is expected to freely define the meaning of this string to use for connecting to an active game session.\n The string should not exceed EOS_PRESENCEMODIFICATION_JOININFO_MAX_LENGTH in length.\n This affects the ability of the Social Overlay to show game related actions to take in the player's social graph.\n\n @note The Social Overlay can handle only one of the following three options at a time:\n * using the bPresenceEnabled flags within the Sessions interface\n * using the bPresenceEnabled flags within the Lobby interface\n * using EOS_PresenceModification_SetJoinInfo\n\n @see EOS_Lobby_CreateLobbyOptions\n @see EOS_Lobby_JoinLobbyOptions\n @see EOS_Sessions_CreateSessionModificationOptions\n @see EOS_Sessions_JoinSessionOptions"]
5557    pub JoinInfo: *const ::std::os::raw::c_char,
5558}
5559impl Default for _tagEOS_PresenceModification_SetJoinInfoOptions {
5560    fn default() -> Self {
5561        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5562        unsafe {
5563            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5564            s.assume_init()
5565        }
5566    }
5567}
5568#[doc = " Data for the EOS_PresenceModification_SetJoinInfo function."]
5569pub type EOS_PresenceModification_SetJoinInfoOptions =
5570    _tagEOS_PresenceModification_SetJoinInfoOptions;
5571#[doc = " Data for the EOS_PresenceModification_SetStatus function."]
5572#[repr(C)]
5573#[derive(Debug, Copy, Clone)]
5574pub struct _tagEOS_PresenceModification_SetStatusOptions {
5575    #[doc = " API Version: Set this to EOS_PRESENCEMODIFICATION_SETSTATUS_API_LATEST."]
5576    pub ApiVersion: i32,
5577    #[doc = " The status of the user"]
5578    pub Status: EOS_Presence_EStatus,
5579}
5580impl Default for _tagEOS_PresenceModification_SetStatusOptions {
5581    fn default() -> Self {
5582        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5583        unsafe {
5584            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5585            s.assume_init()
5586        }
5587    }
5588}
5589#[doc = " Data for the EOS_PresenceModification_SetStatus function."]
5590pub type EOS_PresenceModification_SetStatusOptions = _tagEOS_PresenceModification_SetStatusOptions;
5591#[doc = " Data for the EOS_PresenceModification_SetRawRichText API."]
5592#[repr(C)]
5593#[derive(Debug, Copy, Clone)]
5594pub struct _tagEOS_PresenceModification_SetRawRichTextOptions {
5595    #[doc = " API Version: Set this to EOS_PRESENCEMODIFICATION_SETRAWRICHTEXT_API_LATEST."]
5596    pub ApiVersion: i32,
5597    #[doc = " The status of the user"]
5598    pub RichText: *const ::std::os::raw::c_char,
5599}
5600impl Default for _tagEOS_PresenceModification_SetRawRichTextOptions {
5601    fn default() -> Self {
5602        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5603        unsafe {
5604            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5605            s.assume_init()
5606        }
5607    }
5608}
5609#[doc = " Data for the EOS_PresenceModification_SetRawRichText API."]
5610pub type EOS_PresenceModification_SetRawRichTextOptions =
5611    _tagEOS_PresenceModification_SetRawRichTextOptions;
5612#[doc = " Data for the EOS_PresenceModification_SetData function."]
5613#[repr(C)]
5614#[derive(Debug, Copy, Clone)]
5615pub struct _tagEOS_PresenceModification_SetDataOptions {
5616    #[doc = " API Version: Set this to EOS_PRESENCEMODIFICATION_SETDATA_API_LATEST."]
5617    pub ApiVersion: i32,
5618    #[doc = " The count of records to set"]
5619    pub RecordsCount: i32,
5620    #[doc = " The pointer to start of a sequential array of Presence DataRecords"]
5621    pub Records: *const EOS_Presence_DataRecord,
5622}
5623impl Default for _tagEOS_PresenceModification_SetDataOptions {
5624    fn default() -> Self {
5625        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5626        unsafe {
5627            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5628            s.assume_init()
5629        }
5630    }
5631}
5632#[doc = " Data for the EOS_PresenceModification_SetData function."]
5633pub type EOS_PresenceModification_SetDataOptions = _tagEOS_PresenceModification_SetDataOptions;
5634#[doc = " Data for identifying which data records should be deleted."]
5635#[repr(C)]
5636#[derive(Debug, Copy, Clone)]
5637pub struct _tagEOS_PresenceModification_DataRecordId {
5638    #[doc = " API Version: Set this to EOS_PRESENCEMODIFICATION_DATARECORDID_API_LATEST."]
5639    pub ApiVersion: i32,
5640    #[doc = " The key to be deleted from the data record"]
5641    pub Key: *const ::std::os::raw::c_char,
5642}
5643impl Default for _tagEOS_PresenceModification_DataRecordId {
5644    fn default() -> Self {
5645        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5646        unsafe {
5647            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5648            s.assume_init()
5649        }
5650    }
5651}
5652#[doc = " Data for identifying which data records should be deleted."]
5653pub type EOS_PresenceModification_DataRecordId = _tagEOS_PresenceModification_DataRecordId;
5654#[doc = " Data for the EOS_PresenceModification_DeleteData function."]
5655#[repr(C)]
5656#[derive(Debug, Copy, Clone)]
5657pub struct _tagEOS_PresenceModification_DeleteDataOptions {
5658    #[doc = " API Version: Set this to EOS_PRESENCEMODIFICATION_DELETEDATA_API_LATEST."]
5659    pub ApiVersion: i32,
5660    #[doc = " The count of data keys to delete"]
5661    pub RecordsCount: i32,
5662    #[doc = " The pointer to start of a sequential array"]
5663    pub Records: *const EOS_PresenceModification_DataRecordId,
5664}
5665impl Default for _tagEOS_PresenceModification_DeleteDataOptions {
5666    fn default() -> Self {
5667        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5668        unsafe {
5669            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5670            s.assume_init()
5671        }
5672    }
5673}
5674#[doc = " Data for the EOS_PresenceModification_DeleteData function."]
5675pub type EOS_PresenceModification_DeleteDataOptions =
5676    _tagEOS_PresenceModification_DeleteDataOptions;
5677#[repr(C)]
5678#[derive(Debug, Copy, Clone)]
5679pub struct EOS_P2PHandle {
5680    _unused: [u8; 0],
5681}
5682pub type EOS_HP2P = *mut EOS_P2PHandle;
5683#[doc = " NAT type either unknown (remote) or we are unable to determine it (local)"]
5684pub const EOS_ENATType_EOS_NAT_Unknown: EOS_ENATType = 0;
5685#[doc = " All peers can directly-connect to you"]
5686pub const EOS_ENATType_EOS_NAT_Open: EOS_ENATType = 1;
5687#[doc = " You can directly-connect to other Moderate and Open peers"]
5688pub const EOS_ENATType_EOS_NAT_Moderate: EOS_ENATType = 2;
5689#[doc = " You can only directly-connect to Open peers"]
5690pub const EOS_ENATType_EOS_NAT_Strict: EOS_ENATType = 3;
5691pub const EOS_ENATType___EOS_ENATType_PAD_INT32__: EOS_ENATType = 2147483647;
5692#[doc = " Categories of NAT strictness."]
5693pub type EOS_ENATType = ::std::os::raw::c_int;
5694#[doc = " P2P Socket ID\n\n The Socket ID contains an application-defined name for the connection between a local person and another peer.\n\n When a remote user receives a connection request from you, they will receive this information.  It can be important\n to only accept connections with a known socket-name and/or from a known user, to prevent leaking of private\n information, such as a user's IP address. Using the socket name as a secret key can help prevent such leaks. Shared\n private data, like a private match's Session ID are good candidates for a socket name."]
5695#[repr(C)]
5696#[derive(Debug, Copy, Clone)]
5697pub struct _tagEOS_P2P_SocketId {
5698    #[doc = " API Version: Set this to EOS_P2P_SOCKETID_API_LATEST."]
5699    pub ApiVersion: i32,
5700    #[doc = " A name for the connection. Must be a NULL-terminated string of between 1-32 alpha-numeric characters (A-Z, a-z, 0-9, '-', '_', ' ', '+', '=', '.')"]
5701    pub SocketName: [::std::os::raw::c_char; 33usize],
5702}
5703impl Default for _tagEOS_P2P_SocketId {
5704    fn default() -> Self {
5705        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5706        unsafe {
5707            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5708            s.assume_init()
5709        }
5710    }
5711}
5712#[doc = " P2P Socket ID\n\n The Socket ID contains an application-defined name for the connection between a local person and another peer.\n\n When a remote user receives a connection request from you, they will receive this information.  It can be important\n to only accept connections with a known socket-name and/or from a known user, to prevent leaking of private\n information, such as a user's IP address. Using the socket name as a secret key can help prevent such leaks. Shared\n private data, like a private match's Session ID are good candidates for a socket name."]
5713pub type EOS_P2P_SocketId = _tagEOS_P2P_SocketId;
5714#[doc = " Packets will only be sent once and may be received out of order"]
5715pub const EOS_EPacketReliability_EOS_PR_UnreliableUnordered: EOS_EPacketReliability = 0;
5716#[doc = " Packets may be sent multiple times and may be received out of order"]
5717pub const EOS_EPacketReliability_EOS_PR_ReliableUnordered: EOS_EPacketReliability = 1;
5718#[doc = " Packets may be sent multiple times and will be received in order"]
5719pub const EOS_EPacketReliability_EOS_PR_ReliableOrdered: EOS_EPacketReliability = 2;
5720pub const EOS_EPacketReliability___EOS_EPacketReliability_PAD_INT32__: EOS_EPacketReliability =
5721    2147483647;
5722#[doc = " Types of packet reliability.\n\n Ordered packets will only be ordered relative to other ordered packets. Reliable/unreliable and ordered/unordered communication\n can be sent on the same Socket ID and Channel."]
5723pub type EOS_EPacketReliability = ::std::os::raw::c_int;
5724#[doc = " Structure containing information about the data being sent and to which player"]
5725#[repr(C)]
5726#[derive(Debug, Copy, Clone)]
5727pub struct _tagEOS_P2P_SendPacketOptions {
5728    #[doc = " API Version: Set this to EOS_P2P_SENDPACKET_API_LATEST."]
5729    pub ApiVersion: i32,
5730    #[doc = " The Product User ID of the local user who is sending this packet"]
5731    pub LocalUserId: EOS_ProductUserId,
5732    #[doc = " The Product User ID of the Peer you would like to send a packet to"]
5733    pub RemoteUserId: EOS_ProductUserId,
5734    #[doc = " The socket ID for data you are sending in this packet"]
5735    pub SocketId: *const EOS_P2P_SocketId,
5736    #[doc = " Channel associated with this data"]
5737    pub Channel: u8,
5738    #[doc = " The size of the data to be sent to the RemoteUser"]
5739    pub DataLengthBytes: u32,
5740    #[doc = " The data to be sent to the RemoteUser"]
5741    pub Data: *const ::std::os::raw::c_void,
5742    #[doc = " If false and we do not already have an established connection to the peer, this data will be dropped"]
5743    pub bAllowDelayedDelivery: EOS_Bool,
5744    #[doc = " Sets the reliability of the delivery of this packet. The reliability can be `EOS_PR_UnreliableUnordered`, `EOS_PR_ReliableUnordered`, or `EOS_PR_ReliableOrdered`."]
5745    pub Reliability: EOS_EPacketReliability,
5746    #[doc = " If set to EOS_TRUE, EOS_P2P_SendPacket will not automatically establish a connection with the RemoteUserId and will require explicit calls to\n EOS_P2P_AcceptConnection first whenever the connection is closed. If set to EOS_FALSE, EOS_P2P_SendPacket will automatically accept and start\n the connection any time it is called and the connection is not already open."]
5747    pub bDisableAutoAcceptConnection: EOS_Bool,
5748}
5749impl Default for _tagEOS_P2P_SendPacketOptions {
5750    fn default() -> Self {
5751        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5752        unsafe {
5753            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5754            s.assume_init()
5755        }
5756    }
5757}
5758#[doc = " Structure containing information about the data being sent and to which player"]
5759pub type EOS_P2P_SendPacketOptions = _tagEOS_P2P_SendPacketOptions;
5760#[doc = " Structure containing information about who would like to receive a packet."]
5761#[repr(C)]
5762#[derive(Debug, Copy, Clone)]
5763pub struct _tagEOS_P2P_GetNextReceivedPacketSizeOptions {
5764    #[doc = " API Version: Set this to EOS_P2P_GETNEXTRECEIVEDPACKETSIZE_API_LATEST."]
5765    pub ApiVersion: i32,
5766    #[doc = " The Product User ID of the local user who is receiving the packet"]
5767    pub LocalUserId: EOS_ProductUserId,
5768    #[doc = " An optional channel to request the data for. If NULL, we're retrieving the size of the next packet on any channel."]
5769    pub RequestedChannel: *const u8,
5770}
5771impl Default for _tagEOS_P2P_GetNextReceivedPacketSizeOptions {
5772    fn default() -> Self {
5773        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5774        unsafe {
5775            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5776            s.assume_init()
5777        }
5778    }
5779}
5780#[doc = " Structure containing information about who would like to receive a packet."]
5781pub type EOS_P2P_GetNextReceivedPacketSizeOptions = _tagEOS_P2P_GetNextReceivedPacketSizeOptions;
5782#[doc = " Structure containing information about who would like to receive a packet, and how much data can be stored safely."]
5783#[repr(C)]
5784#[derive(Debug, Copy, Clone)]
5785pub struct _tagEOS_P2P_ReceivePacketOptions {
5786    #[doc = " API Version: Set this to EOS_P2P_RECEIVEPACKET_API_LATEST."]
5787    pub ApiVersion: i32,
5788    #[doc = " The Product User ID of the user who is receiving the packet"]
5789    pub LocalUserId: EOS_ProductUserId,
5790    #[doc = " The maximum amount of data in bytes that can be safely copied to OutData in the function call"]
5791    pub MaxDataSizeBytes: u32,
5792    #[doc = " An optional channel to request the data for. If NULL, we're retrieving the next packet on any channel"]
5793    pub RequestedChannel: *const u8,
5794}
5795impl Default for _tagEOS_P2P_ReceivePacketOptions {
5796    fn default() -> Self {
5797        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5798        unsafe {
5799            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5800            s.assume_init()
5801        }
5802    }
5803}
5804#[doc = " Structure containing information about who would like to receive a packet, and how much data can be stored safely."]
5805pub type EOS_P2P_ReceivePacketOptions = _tagEOS_P2P_ReceivePacketOptions;
5806#[doc = " Structure containing information about who would like connection notifications, and about which socket."]
5807#[repr(C)]
5808#[derive(Debug, Copy, Clone)]
5809pub struct _tagEOS_P2P_AddNotifyPeerConnectionRequestOptions {
5810    #[doc = " API Version: Set this to EOS_P2P_ADDNOTIFYPEERCONNECTIONREQUEST_API_LATEST."]
5811    pub ApiVersion: i32,
5812    #[doc = " The Product User ID of the user who is listening for incoming connection requests"]
5813    pub LocalUserId: EOS_ProductUserId,
5814    #[doc = " The optional socket ID to listen for, used as a filter for incoming connection requests; If NULL, incoming connection requests will not be filtered"]
5815    pub SocketId: *const EOS_P2P_SocketId,
5816}
5817impl Default for _tagEOS_P2P_AddNotifyPeerConnectionRequestOptions {
5818    fn default() -> Self {
5819        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5820        unsafe {
5821            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5822            s.assume_init()
5823        }
5824    }
5825}
5826#[doc = " Structure containing information about who would like connection notifications, and about which socket."]
5827pub type EOS_P2P_AddNotifyPeerConnectionRequestOptions =
5828    _tagEOS_P2P_AddNotifyPeerConnectionRequestOptions;
5829#[doc = " Structure containing information about an incoming connection request."]
5830#[repr(C)]
5831#[derive(Debug, Copy, Clone)]
5832pub struct _tagEOS_P2P_OnIncomingConnectionRequestInfo {
5833    #[doc = " Client-specified data passed into EOS_Presence_AddNotifyOnPresenceChanged"]
5834    pub ClientData: *mut ::std::os::raw::c_void,
5835    #[doc = " The Product User ID of the local user who is being requested to open a P2P session with RemoteUserId"]
5836    pub LocalUserId: EOS_ProductUserId,
5837    #[doc = " The Product User ID of the remote user who requested a peer connection with the local user"]
5838    pub RemoteUserId: EOS_ProductUserId,
5839    #[doc = " The ID of the socket the Remote User wishes to communicate on"]
5840    pub SocketId: *const EOS_P2P_SocketId,
5841}
5842impl Default for _tagEOS_P2P_OnIncomingConnectionRequestInfo {
5843    fn default() -> Self {
5844        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5845        unsafe {
5846            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5847            s.assume_init()
5848        }
5849    }
5850}
5851#[doc = " Structure containing information about an incoming connection request."]
5852pub type EOS_P2P_OnIncomingConnectionRequestInfo = _tagEOS_P2P_OnIncomingConnectionRequestInfo;
5853#[doc = " Callback for information related to incoming connection requests."]
5854pub type EOS_P2P_OnIncomingConnectionRequestCallback = ::std::option::Option<
5855    unsafe extern "C" fn(Data: *const EOS_P2P_OnIncomingConnectionRequestInfo),
5856>;
5857#[doc = " Structure containing information about which connections should be notified"]
5858#[repr(C)]
5859#[derive(Debug, Copy, Clone)]
5860pub struct _tagEOS_P2P_AddNotifyPeerConnectionEstablishedOptions {
5861    #[doc = " API Version: Set this to EOS_P2P_ADDNOTIFYPEERCONNECTIONESTABLISHED_API_LATEST."]
5862    pub ApiVersion: i32,
5863    #[doc = " The Product User ID of the local user who would like to receive notifications"]
5864    pub LocalUserId: EOS_ProductUserId,
5865    #[doc = " The optional socket ID, used as a filter for established connections. If NULL, this function handler will be called for all sockets"]
5866    pub SocketId: *const EOS_P2P_SocketId,
5867}
5868impl Default for _tagEOS_P2P_AddNotifyPeerConnectionEstablishedOptions {
5869    fn default() -> Self {
5870        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5871        unsafe {
5872            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5873            s.assume_init()
5874        }
5875    }
5876}
5877#[doc = " Structure containing information about which connections should be notified"]
5878pub type EOS_P2P_AddNotifyPeerConnectionEstablishedOptions =
5879    _tagEOS_P2P_AddNotifyPeerConnectionEstablishedOptions;
5880#[doc = " The connection is brand new"]
5881pub const EOS_EConnectionEstablishedType_EOS_CET_NewConnection: EOS_EConnectionEstablishedType = 0;
5882#[doc = " The connection is reestablished (reconnection)"]
5883pub const EOS_EConnectionEstablishedType_EOS_CET_Reconnection: EOS_EConnectionEstablishedType = 1;
5884pub const EOS_EConnectionEstablishedType___EOS_EConnectionEstablishedType_PAD_INT32__:
5885    EOS_EConnectionEstablishedType = 2147483647;
5886#[doc = " Type of established connection"]
5887pub type EOS_EConnectionEstablishedType = ::std::os::raw::c_int;
5888#[doc = " There is no established connection"]
5889pub const EOS_ENetworkConnectionType_EOS_NCT_NoConnection: EOS_ENetworkConnectionType = 0;
5890#[doc = " A direct connection to the peer over the Internet or Local Network"]
5891pub const EOS_ENetworkConnectionType_EOS_NCT_DirectConnection: EOS_ENetworkConnectionType = 1;
5892#[doc = " A relayed connection using Epic-provided servers to the peer over the Internet"]
5893pub const EOS_ENetworkConnectionType_EOS_NCT_RelayedConnection: EOS_ENetworkConnectionType = 2;
5894pub const EOS_ENetworkConnectionType___EOS_ENetworkConnectionType_PAD_INT32__:
5895    EOS_ENetworkConnectionType = 2147483647;
5896#[doc = " Types of network connections."]
5897pub type EOS_ENetworkConnectionType = ::std::os::raw::c_int;
5898#[doc = " Structure containing information about a connection being established"]
5899#[repr(C)]
5900#[derive(Debug, Copy, Clone)]
5901pub struct _tagEOS_P2P_OnPeerConnectionEstablishedInfo {
5902    #[doc = " Client-specified data passed into EOS_P2P_AddNotifyPeerConnectionEstablished"]
5903    pub ClientData: *mut ::std::os::raw::c_void,
5904    #[doc = " The Product User ID of the local user who is being notified of a connection being established"]
5905    pub LocalUserId: EOS_ProductUserId,
5906    #[doc = " The Product User ID of the remote user who this connection was with"]
5907    pub RemoteUserId: EOS_ProductUserId,
5908    #[doc = " The socket ID of the connection being established"]
5909    pub SocketId: *const EOS_P2P_SocketId,
5910    #[doc = " Information if this is a new connection or reconnection"]
5911    pub ConnectionType: EOS_EConnectionEstablishedType,
5912    #[doc = " What type of network connection is being used for this connection"]
5913    pub NetworkType: EOS_ENetworkConnectionType,
5914}
5915impl Default for _tagEOS_P2P_OnPeerConnectionEstablishedInfo {
5916    fn default() -> Self {
5917        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5918        unsafe {
5919            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5920            s.assume_init()
5921        }
5922    }
5923}
5924#[doc = " Structure containing information about a connection being established"]
5925pub type EOS_P2P_OnPeerConnectionEstablishedInfo = _tagEOS_P2P_OnPeerConnectionEstablishedInfo;
5926#[doc = " Callback for information related to new connections being established"]
5927pub type EOS_P2P_OnPeerConnectionEstablishedCallback = ::std::option::Option<
5928    unsafe extern "C" fn(Data: *const EOS_P2P_OnPeerConnectionEstablishedInfo),
5929>;
5930#[doc = " Structure containing information about who would like notifications about interrupted connections, and for which socket."]
5931#[repr(C)]
5932#[derive(Debug, Copy, Clone)]
5933pub struct _tagEOS_P2P_AddNotifyPeerConnectionInterruptedOptions {
5934    #[doc = " API Version: Set this to EOS_P2P_ADDNOTIFYPEERCONNECTIONINTERRUPTED_API_LATEST."]
5935    pub ApiVersion: i32,
5936    #[doc = " The Product User ID of the local user who would like notifications"]
5937    pub LocalUserId: EOS_ProductUserId,
5938    #[doc = " An optional socket ID to filter interrupted connections on. If NULL, this function handler will be called for all interrupted connections"]
5939    pub SocketId: *const EOS_P2P_SocketId,
5940}
5941impl Default for _tagEOS_P2P_AddNotifyPeerConnectionInterruptedOptions {
5942    fn default() -> Self {
5943        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5944        unsafe {
5945            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5946            s.assume_init()
5947        }
5948    }
5949}
5950#[doc = " Structure containing information about who would like notifications about interrupted connections, and for which socket."]
5951pub type EOS_P2P_AddNotifyPeerConnectionInterruptedOptions =
5952    _tagEOS_P2P_AddNotifyPeerConnectionInterruptedOptions;
5953#[doc = " Structure containing information about an connection request that is that was interrupted."]
5954#[repr(C)]
5955#[derive(Debug, Copy, Clone)]
5956pub struct _tagEOS_P2P_OnPeerConnectionInterruptedInfo {
5957    #[doc = " Client-specified data passed into EOS_Presence_AddNotifyOnPresenceChanged"]
5958    pub ClientData: *mut ::std::os::raw::c_void,
5959    #[doc = " The local user who is being notified of a connection that was interrupted"]
5960    pub LocalUserId: EOS_ProductUserId,
5961    #[doc = " The Product User ID of the remote user who this connection was with"]
5962    pub RemoteUserId: EOS_ProductUserId,
5963    #[doc = " The socket ID of the connection that was interrupted"]
5964    pub SocketId: *const EOS_P2P_SocketId,
5965}
5966impl Default for _tagEOS_P2P_OnPeerConnectionInterruptedInfo {
5967    fn default() -> Self {
5968        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5969        unsafe {
5970            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5971            s.assume_init()
5972        }
5973    }
5974}
5975#[doc = " Structure containing information about an connection request that is that was interrupted."]
5976pub type EOS_P2P_OnPeerConnectionInterruptedInfo = _tagEOS_P2P_OnPeerConnectionInterruptedInfo;
5977#[doc = " Callback for information related to open connections that are interrupted."]
5978pub type EOS_P2P_OnPeerConnectionInterruptedCallback = ::std::option::Option<
5979    unsafe extern "C" fn(Data: *const EOS_P2P_OnPeerConnectionInterruptedInfo),
5980>;
5981#[doc = " Structure containing information about who would like notifications about closed connections, and for which socket."]
5982#[repr(C)]
5983#[derive(Debug, Copy, Clone)]
5984pub struct _tagEOS_P2P_AddNotifyPeerConnectionClosedOptions {
5985    #[doc = " API Version: Set this to EOS_P2P_ADDNOTIFYPEERCONNECTIONCLOSED_API_LATEST."]
5986    pub ApiVersion: i32,
5987    #[doc = " The Product User ID of the local user who would like notifications"]
5988    pub LocalUserId: EOS_ProductUserId,
5989    #[doc = " The optional socket ID to listen for to be closed. If NULL, this function handler will be called for all closed connections"]
5990    pub SocketId: *const EOS_P2P_SocketId,
5991}
5992impl Default for _tagEOS_P2P_AddNotifyPeerConnectionClosedOptions {
5993    fn default() -> Self {
5994        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5995        unsafe {
5996            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5997            s.assume_init()
5998        }
5999    }
6000}
6001#[doc = " Structure containing information about who would like notifications about closed connections, and for which socket."]
6002pub type EOS_P2P_AddNotifyPeerConnectionClosedOptions =
6003    _tagEOS_P2P_AddNotifyPeerConnectionClosedOptions;
6004#[doc = " The connection was closed for unknown reasons. This most notably happens during application shutdown."]
6005pub const EOS_EConnectionClosedReason_EOS_CCR_Unknown: EOS_EConnectionClosedReason = 0;
6006#[doc = " The connection was at least locally accepted, but was closed by the local user via a call to EOS_P2P_CloseConnection / EOS_P2P_CloseConnections."]
6007pub const EOS_EConnectionClosedReason_EOS_CCR_ClosedByLocalUser: EOS_EConnectionClosedReason = 1;
6008#[doc = " The connection was at least locally accepted, but was gracefully closed by the remote user via a call to EOS_P2P_CloseConnection / EOS_P2P_CloseConnections."]
6009pub const EOS_EConnectionClosedReason_EOS_CCR_ClosedByPeer: EOS_EConnectionClosedReason = 2;
6010#[doc = " The connection was at least locally accepted, but was not remotely accepted in time."]
6011pub const EOS_EConnectionClosedReason_EOS_CCR_TimedOut: EOS_EConnectionClosedReason = 3;
6012#[doc = " The connection was accepted, but the connection could not be created due to too many other existing connections"]
6013pub const EOS_EConnectionClosedReason_EOS_CCR_TooManyConnections: EOS_EConnectionClosedReason = 4;
6014#[doc = " The connection was accepted, The remote user sent an invalid message"]
6015pub const EOS_EConnectionClosedReason_EOS_CCR_InvalidMessage: EOS_EConnectionClosedReason = 5;
6016#[doc = " The connection was accepted, but the remote user sent us invalid data"]
6017pub const EOS_EConnectionClosedReason_EOS_CCR_InvalidData: EOS_EConnectionClosedReason = 6;
6018#[doc = " The connection was accepted, but we failed to ever establish a connection with the remote user due to connectivity issues."]
6019pub const EOS_EConnectionClosedReason_EOS_CCR_ConnectionFailed: EOS_EConnectionClosedReason = 7;
6020#[doc = " The connection was accepted and established, but the peer silently went away."]
6021pub const EOS_EConnectionClosedReason_EOS_CCR_ConnectionClosed: EOS_EConnectionClosedReason = 8;
6022#[doc = " The connection was locally accepted, but we failed to negotiate a connection with the remote user. This most commonly occurs if the local user goes offline or is logged-out during the connection process."]
6023pub const EOS_EConnectionClosedReason_EOS_CCR_NegotiationFailed: EOS_EConnectionClosedReason = 9;
6024#[doc = " The connection was accepted, but there was an internal error occurred and the connection cannot be created or continue."]
6025pub const EOS_EConnectionClosedReason_EOS_CCR_UnexpectedError: EOS_EConnectionClosedReason = 10;
6026#[doc = " The connection was ignored because no connection listeners were bound."]
6027pub const EOS_EConnectionClosedReason_EOS_CCR_ConnectionIgnored: EOS_EConnectionClosedReason = 11;
6028pub const EOS_EConnectionClosedReason___EOS_EConnectionClosedReason_PAD_INT32__:
6029    EOS_EConnectionClosedReason = 2147483647;
6030#[doc = " Reasons why a P2P connection was closed"]
6031pub type EOS_EConnectionClosedReason = ::std::os::raw::c_int;
6032#[doc = " Structure containing information about an connection request that is being closed."]
6033#[repr(C)]
6034#[derive(Debug, Copy, Clone)]
6035pub struct _tagEOS_P2P_OnRemoteConnectionClosedInfo {
6036    #[doc = " Client-specified data passed into EOS_Presence_AddNotifyOnPresenceChanged"]
6037    pub ClientData: *mut ::std::os::raw::c_void,
6038    #[doc = " The local user who is being notified of a connection being closed"]
6039    pub LocalUserId: EOS_ProductUserId,
6040    #[doc = " The Product User ID of the remote user who this connection was with"]
6041    pub RemoteUserId: EOS_ProductUserId,
6042    #[doc = " The socket ID of the connection being closed"]
6043    pub SocketId: *const EOS_P2P_SocketId,
6044    #[doc = " The reason the connection was closed (if known)"]
6045    pub Reason: EOS_EConnectionClosedReason,
6046}
6047impl Default for _tagEOS_P2P_OnRemoteConnectionClosedInfo {
6048    fn default() -> Self {
6049        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6050        unsafe {
6051            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6052            s.assume_init()
6053        }
6054    }
6055}
6056#[doc = " Structure containing information about an connection request that is being closed."]
6057pub type EOS_P2P_OnRemoteConnectionClosedInfo = _tagEOS_P2P_OnRemoteConnectionClosedInfo;
6058#[doc = " Callback for information related to open connections being closed."]
6059pub type EOS_P2P_OnRemoteConnectionClosedCallback =
6060    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_P2P_OnRemoteConnectionClosedInfo)>;
6061#[doc = " Structure containing information about who would like to accept a connection, and which connection."]
6062#[repr(C)]
6063#[derive(Debug, Copy, Clone)]
6064pub struct _tagEOS_P2P_AcceptConnectionOptions {
6065    #[doc = " API Version: Set this to EOS_P2P_ACCEPTCONNECTION_API_LATEST."]
6066    pub ApiVersion: i32,
6067    #[doc = " The Product User ID of the local user who is accepting any pending or future connections with RemoteUserId"]
6068    pub LocalUserId: EOS_ProductUserId,
6069    #[doc = " The Product User ID of the remote user who has either sent a connection request or is expected to in the future"]
6070    pub RemoteUserId: EOS_ProductUserId,
6071    #[doc = " The socket ID of the connection to accept on"]
6072    pub SocketId: *const EOS_P2P_SocketId,
6073}
6074impl Default for _tagEOS_P2P_AcceptConnectionOptions {
6075    fn default() -> Self {
6076        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6077        unsafe {
6078            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6079            s.assume_init()
6080        }
6081    }
6082}
6083#[doc = " Structure containing information about who would like to accept a connection, and which connection."]
6084pub type EOS_P2P_AcceptConnectionOptions = _tagEOS_P2P_AcceptConnectionOptions;
6085#[doc = " Structure containing information about who would like to close a connection, and which connection."]
6086#[repr(C)]
6087#[derive(Debug, Copy, Clone)]
6088pub struct _tagEOS_P2P_CloseConnectionOptions {
6089    #[doc = " API Version: Set this to EOS_P2P_CLOSECONNECTION_API_LATEST."]
6090    pub ApiVersion: i32,
6091    #[doc = " The Product User ID of the local user who would like to close a previously accepted connection (or decline a pending invite)"]
6092    pub LocalUserId: EOS_ProductUserId,
6093    #[doc = " The Product User ID of the remote user to disconnect from (or to reject a pending invite from)"]
6094    pub RemoteUserId: EOS_ProductUserId,
6095    #[doc = " The socket ID of the connection to close (or optionally NULL to not accept any connection requests from the Remote User)"]
6096    pub SocketId: *const EOS_P2P_SocketId,
6097}
6098impl Default for _tagEOS_P2P_CloseConnectionOptions {
6099    fn default() -> Self {
6100        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6101        unsafe {
6102            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6103            s.assume_init()
6104        }
6105    }
6106}
6107#[doc = " Structure containing information about who would like to close a connection, and which connection."]
6108pub type EOS_P2P_CloseConnectionOptions = _tagEOS_P2P_CloseConnectionOptions;
6109#[doc = " Structure containing information about who would like to close connections, and by what socket ID"]
6110#[repr(C)]
6111#[derive(Debug, Copy, Clone)]
6112pub struct _tagEOS_P2P_CloseConnectionsOptions {
6113    #[doc = " API Version: Set this to EOS_P2P_CLOSECONNECTIONS_API_LATEST."]
6114    pub ApiVersion: i32,
6115    #[doc = " The Product User ID of the local user who would like to close all connections that use a particular socket ID"]
6116    pub LocalUserId: EOS_ProductUserId,
6117    #[doc = " The socket ID of the connections to close"]
6118    pub SocketId: *const EOS_P2P_SocketId,
6119}
6120impl Default for _tagEOS_P2P_CloseConnectionsOptions {
6121    fn default() -> Self {
6122        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6123        unsafe {
6124            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6125            s.assume_init()
6126        }
6127    }
6128}
6129#[doc = " Structure containing information about who would like to close connections, and by what socket ID"]
6130pub type EOS_P2P_CloseConnectionsOptions = _tagEOS_P2P_CloseConnectionsOptions;
6131#[doc = " Structure containing information needed to query NAT-types"]
6132#[repr(C)]
6133#[derive(Debug, Default, Copy, Clone)]
6134pub struct _tagEOS_P2P_QueryNATTypeOptions {
6135    #[doc = " API Version: Set this to EOS_P2P_QUERYNATTYPE_API_LATEST."]
6136    pub ApiVersion: i32,
6137}
6138#[doc = " Structure containing information needed to query NAT-types"]
6139pub type EOS_P2P_QueryNATTypeOptions = _tagEOS_P2P_QueryNATTypeOptions;
6140#[doc = " Structure containing information about the local network NAT type"]
6141#[repr(C)]
6142#[derive(Debug, Copy, Clone)]
6143pub struct _tagEOS_P2P_OnQueryNATTypeCompleteInfo {
6144    #[doc = " Result code for the operation. EOS_Success is returned for a successful query, other codes indicate an error"]
6145    pub ResultCode: EOS_EResult,
6146    #[doc = " Client-specified data passed into EOS_P2P_QueryNATType"]
6147    pub ClientData: *mut ::std::os::raw::c_void,
6148    #[doc = " The queried NAT type"]
6149    pub NATType: EOS_ENATType,
6150}
6151impl Default for _tagEOS_P2P_OnQueryNATTypeCompleteInfo {
6152    fn default() -> Self {
6153        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6154        unsafe {
6155            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6156            s.assume_init()
6157        }
6158    }
6159}
6160#[doc = " Structure containing information about the local network NAT type"]
6161pub type EOS_P2P_OnQueryNATTypeCompleteInfo = _tagEOS_P2P_OnQueryNATTypeCompleteInfo;
6162#[doc = " Callback for information related to our NAT type query completing."]
6163pub type EOS_P2P_OnQueryNATTypeCompleteCallback =
6164    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_P2P_OnQueryNATTypeCompleteInfo)>;
6165#[doc = " Structure containing information needed to get previously queried NAT-types"]
6166#[repr(C)]
6167#[derive(Debug, Default, Copy, Clone)]
6168pub struct _tagEOS_P2P_GetNATTypeOptions {
6169    #[doc = " API Version: Set this to EOS_P2P_GETNATTYPE_API_LATEST."]
6170    pub ApiVersion: i32,
6171}
6172#[doc = " Structure containing information needed to get previously queried NAT-types"]
6173pub type EOS_P2P_GetNATTypeOptions = _tagEOS_P2P_GetNATTypeOptions;
6174#[doc = " Peer connections will never attempt to use relay servers. Clients with restrictive NATs may not be able to connect to peers."]
6175pub const EOS_ERelayControl_EOS_RC_NoRelays: EOS_ERelayControl = 0;
6176#[doc = " Peer connections will attempt to use relay servers, but only after direct connection attempts fail. This is the default value if not changed."]
6177pub const EOS_ERelayControl_EOS_RC_AllowRelays: EOS_ERelayControl = 1;
6178#[doc = " Peer connections will only ever use relay servers. This will add latency to all connections, but will hide IP Addresses from peers."]
6179pub const EOS_ERelayControl_EOS_RC_ForceRelays: EOS_ERelayControl = 2;
6180pub const EOS_ERelayControl___EOS_ERelayControl_PAD_INT32__: EOS_ERelayControl = 2147483647;
6181#[doc = " Setting for controlling whether relay servers are used.\n\n Please see the following EOS_ERelayControl value compatibility-chart to better understand how changing this value\n can affect compatibility between clients with different settings. Connections between clients using\n Incompatible settings may succeed in limited scenarios but should be treated as though they will consistently fail.\n\n +------------------------------+---------------------+-------------------------------+---------------------+\n |                              |   EOS_RC_NoRelays   |  EOS_RC_AllowRelays (Default) |  EOS_RC_ForceRelays |\n +------------------------------+---------------------+-------------------------------+---------------------+\n | EOS_RC_NoRelays              |  Compatible         |  Compatible                   |  Incompatible       |\n | EOS_RC_AllowRelays (Default) |  Compatible         |  Compatible                   |  Compatible         |\n | EOS_RC_ForceRelays           |  Incompatible       |  Compatible                   |  Compatible         |\n +------------------------------+---------------------+-------------------------------+---------------------+"]
6182pub type EOS_ERelayControl = ::std::os::raw::c_int;
6183#[doc = " Structure containing information about new relay configurations."]
6184#[repr(C)]
6185#[derive(Debug, Copy, Clone)]
6186pub struct _tagEOS_P2P_SetRelayControlOptions {
6187    #[doc = " API Version: Set this to EOS_P2P_SETRELAYCONTROL_API_LATEST."]
6188    pub ApiVersion: i32,
6189    #[doc = " The requested level of relay servers for P2P connections. This setting is only applied to new P2P connections, or when existing P2P connections\n reconnect during a temporary connectivity outage. Peers with an incompatible setting to the local setting will not be able to connect."]
6190    pub RelayControl: EOS_ERelayControl,
6191}
6192impl Default for _tagEOS_P2P_SetRelayControlOptions {
6193    fn default() -> Self {
6194        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6195        unsafe {
6196            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6197            s.assume_init()
6198        }
6199    }
6200}
6201#[doc = " Structure containing information about new relay configurations."]
6202pub type EOS_P2P_SetRelayControlOptions = _tagEOS_P2P_SetRelayControlOptions;
6203#[doc = " Structure containing information about getting the relay control setting."]
6204#[repr(C)]
6205#[derive(Debug, Default, Copy, Clone)]
6206pub struct _tagEOS_P2P_GetRelayControlOptions {
6207    #[doc = " API Version: Set this to EOS_P2P_GETRELAYCONTROL_API_LATEST."]
6208    pub ApiVersion: i32,
6209}
6210#[doc = " Structure containing information about getting the relay control setting."]
6211pub type EOS_P2P_GetRelayControlOptions = _tagEOS_P2P_GetRelayControlOptions;
6212#[doc = " Structure containing information about new port range settings."]
6213#[repr(C)]
6214#[derive(Debug, Default, Copy, Clone)]
6215pub struct _tagEOS_P2P_SetPortRangeOptions {
6216    #[doc = " API Version: Set this to EOS_P2P_SETPORTRANGE_API_LATEST."]
6217    pub ApiVersion: i32,
6218    #[doc = " The ideal port to use for P2P traffic. The default value is 7777. If set to 0, the OS will choose a port. If set to 0, MaxAdditionalPortsToTry must be set to 0."]
6219    pub Port: u16,
6220    #[doc = " The maximum amount of additional ports to try if Port is unavailable. Ports will be tried from Port to Port + MaxAdditionalPortsToTry\n inclusive, until one is available or we run out of ports. If no ports are available, P2P connections will fail. The default value is 99."]
6221    pub MaxAdditionalPortsToTry: u16,
6222}
6223#[doc = " Structure containing information about new port range settings."]
6224pub type EOS_P2P_SetPortRangeOptions = _tagEOS_P2P_SetPortRangeOptions;
6225#[doc = " Structure containing information about getting the configured port range settings."]
6226#[repr(C)]
6227#[derive(Debug, Default, Copy, Clone)]
6228pub struct _tagEOS_P2P_GetPortRangeOptions {
6229    #[doc = " API Version: Set this to EOS_P2P_GETPORTRANGE_API_LATEST."]
6230    pub ApiVersion: i32,
6231}
6232#[doc = " Structure containing information about getting the configured port range settings."]
6233pub type EOS_P2P_GetPortRangeOptions = _tagEOS_P2P_GetPortRangeOptions;
6234#[doc = " Structure containing information about new packet queue size settings."]
6235#[repr(C)]
6236#[derive(Debug, Default, Copy, Clone)]
6237pub struct _tagEOS_P2P_SetPacketQueueSizeOptions {
6238    #[doc = " API Version: Set this to EOS_P2P_SETPACKETQUEUESIZE_API_LATEST."]
6239    pub ApiVersion: i32,
6240    #[doc = " The ideal maximum amount of bytes the Incoming packet queue can consume"]
6241    pub IncomingPacketQueueMaxSizeBytes: u64,
6242    #[doc = " The ideal maximum amount of bytes the Outgoing packet queue can consume"]
6243    pub OutgoingPacketQueueMaxSizeBytes: u64,
6244}
6245#[doc = " Structure containing information about new packet queue size settings."]
6246pub type EOS_P2P_SetPacketQueueSizeOptions = _tagEOS_P2P_SetPacketQueueSizeOptions;
6247#[doc = " Structure containing information needed to get the current packet queue information."]
6248#[repr(C)]
6249#[derive(Debug, Default, Copy, Clone)]
6250pub struct _tagEOS_P2P_GetPacketQueueInfoOptions {
6251    #[doc = " API Version: Set this to EOS_P2P_GETPACKETQUEUEINFO_API_LATEST."]
6252    pub ApiVersion: i32,
6253}
6254#[doc = " Structure containing information needed to get the current packet queue information."]
6255pub type EOS_P2P_GetPacketQueueInfoOptions = _tagEOS_P2P_GetPacketQueueInfoOptions;
6256#[doc = " Information related to the current state of the packet queues. It is possible for the current size\n to be larger than the maximum size if the maximum size changes or if the maximum queue size is\n set to EOS_P2P_MAX_QUEUE_SIZE_UNLIMITED."]
6257#[repr(C)]
6258#[derive(Debug, Default, Copy, Clone)]
6259pub struct _tagEOS_P2P_PacketQueueInfo {
6260    #[doc = " The maximum size in bytes of the incoming packet queue"]
6261    pub IncomingPacketQueueMaxSizeBytes: u64,
6262    #[doc = " The current size in bytes of the incoming packet queue"]
6263    pub IncomingPacketQueueCurrentSizeBytes: u64,
6264    #[doc = " The current number of queued packets in the incoming packet queue"]
6265    pub IncomingPacketQueueCurrentPacketCount: u64,
6266    #[doc = " The maximum size in bytes of the outgoing packet queue"]
6267    pub OutgoingPacketQueueMaxSizeBytes: u64,
6268    #[doc = " The current size in bytes of the outgoing packet queue"]
6269    pub OutgoingPacketQueueCurrentSizeBytes: u64,
6270    #[doc = " The current amount of queued packets in the outgoing packet queue"]
6271    pub OutgoingPacketQueueCurrentPacketCount: u64,
6272}
6273#[doc = " Information related to the current state of the packet queues. It is possible for the current size\n to be larger than the maximum size if the maximum size changes or if the maximum queue size is\n set to EOS_P2P_MAX_QUEUE_SIZE_UNLIMITED."]
6274pub type EOS_P2P_PacketQueueInfo = _tagEOS_P2P_PacketQueueInfo;
6275#[doc = " Structure containing information about what version of the EOS_P2P_AddNotifyIncomingPacketQueueFull function is supported."]
6276#[repr(C)]
6277#[derive(Debug, Default, Copy, Clone)]
6278pub struct _tagEOS_P2P_AddNotifyIncomingPacketQueueFullOptions {
6279    #[doc = " API Version: Set this to EOS_P2P_ADDNOTIFYINCOMINGPACKETQUEUEFULL_API_LATEST."]
6280    pub ApiVersion: i32,
6281}
6282#[doc = " Structure containing information about what version of the EOS_P2P_AddNotifyIncomingPacketQueueFull function is supported."]
6283pub type EOS_P2P_AddNotifyIncomingPacketQueueFullOptions =
6284    _tagEOS_P2P_AddNotifyIncomingPacketQueueFullOptions;
6285#[doc = " Structure containing information about the packet queue's state and the incoming packet that would overflow the queue"]
6286#[repr(C)]
6287#[derive(Debug, Copy, Clone)]
6288pub struct _tagEOS_P2P_OnIncomingPacketQueueFullInfo {
6289    #[doc = " Client-specified data passed into AddNotifyIncomingPacketQueueFull"]
6290    pub ClientData: *mut ::std::os::raw::c_void,
6291    #[doc = " The maximum size in bytes the incoming packet queue is allowed to use"]
6292    pub PacketQueueMaxSizeBytes: u64,
6293    #[doc = " The current size in bytes the incoming packet queue is currently using"]
6294    pub PacketQueueCurrentSizeBytes: u64,
6295    #[doc = " The Product User ID of the local user who is receiving the packet that would overflow the queue"]
6296    pub OverflowPacketLocalUserId: EOS_ProductUserId,
6297    #[doc = " The channel the incoming packet is for"]
6298    pub OverflowPacketChannel: u8,
6299    #[doc = " The size in bytes of the incoming packet (and related metadata) that would overflow the queue"]
6300    pub OverflowPacketSizeBytes: u32,
6301}
6302impl Default for _tagEOS_P2P_OnIncomingPacketQueueFullInfo {
6303    fn default() -> Self {
6304        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6305        unsafe {
6306            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6307            s.assume_init()
6308        }
6309    }
6310}
6311#[doc = " Structure containing information about the packet queue's state and the incoming packet that would overflow the queue"]
6312pub type EOS_P2P_OnIncomingPacketQueueFullInfo = _tagEOS_P2P_OnIncomingPacketQueueFullInfo;
6313#[doc = " Callback for information related to incoming connection requests."]
6314pub type EOS_P2P_OnIncomingPacketQueueFullCallback =
6315    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_P2P_OnIncomingPacketQueueFullInfo)>;
6316#[doc = " Structure containing information about the packet queue to be cleared"]
6317#[repr(C)]
6318#[derive(Debug, Copy, Clone)]
6319pub struct _tagEOS_P2P_ClearPacketQueueOptions {
6320    #[doc = " API Version: Set this to EOS_P2P_CLEARPACKETQUEUE_API_LATEST."]
6321    pub ApiVersion: i32,
6322    #[doc = " The Product User ID of the local user for whom we want to clear the queued packets"]
6323    pub LocalUserId: EOS_ProductUserId,
6324    #[doc = " The Product User ID to who (outgoing) or from who (incoming) packets are queued"]
6325    pub RemoteUserId: EOS_ProductUserId,
6326    #[doc = " The socket used for packets to be cleared"]
6327    pub SocketId: *const EOS_P2P_SocketId,
6328}
6329impl Default for _tagEOS_P2P_ClearPacketQueueOptions {
6330    fn default() -> Self {
6331        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6332        unsafe {
6333            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6334            s.assume_init()
6335        }
6336    }
6337}
6338#[doc = " Structure containing information about the packet queue to be cleared"]
6339pub type EOS_P2P_ClearPacketQueueOptions = _tagEOS_P2P_ClearPacketQueueOptions;
6340#[repr(C)]
6341#[derive(Debug, Copy, Clone)]
6342pub struct EOS_SessionsHandle {
6343    _unused: [u8; 0],
6344}
6345#[doc = " Handle to the sessions interface"]
6346pub type EOS_HSessions = *mut EOS_SessionsHandle;
6347#[repr(C)]
6348#[derive(Debug, Copy, Clone)]
6349pub struct EOS_SessionModificationHandle {
6350    _unused: [u8; 0],
6351}
6352#[doc = " Handle to the calls responsible for creating/updating sessions"]
6353pub type EOS_HSessionModification = *mut EOS_SessionModificationHandle;
6354#[repr(C)]
6355#[derive(Debug, Copy, Clone)]
6356pub struct EOS_ActiveSessionHandle {
6357    _unused: [u8; 0],
6358}
6359#[doc = " Handle to a single named session that exists locally"]
6360pub type EOS_HActiveSession = *mut EOS_ActiveSessionHandle;
6361#[repr(C)]
6362#[derive(Debug, Copy, Clone)]
6363pub struct EOS_SessionDetailsHandle {
6364    _unused: [u8; 0],
6365}
6366#[doc = " Handle to a single session that may be part of a named session, search result, or invite"]
6367pub type EOS_HSessionDetails = *mut EOS_SessionDetailsHandle;
6368#[repr(C)]
6369#[derive(Debug, Copy, Clone)]
6370pub struct EOS_SessionSearchHandle {
6371    _unused: [u8; 0],
6372}
6373#[doc = " Handle to the calls responsible for creating a search object"]
6374pub type EOS_HSessionSearch = *mut EOS_SessionSearchHandle;
6375unsafe extern "C" {
6376    #[doc = " Release the memory associated with session modification.\n This must be called on data retrieved from EOS_Sessions_CreateSessionModification or EOS_Sessions_UpdateSessionModification\n\n @param SessionModificationHandle - The session modification handle to release\n\n @see EOS_Sessions_CreateSessionModification\n @see EOS_Sessions_UpdateSessionModification"]
6377    pub fn EOS_SessionModification_Release(SessionModificationHandle: EOS_HSessionModification);
6378}
6379unsafe extern "C" {
6380    #[doc = " Release the memory associated with an active session.\n This must be called on data retrieved from EOS_Sessions_CopyActiveSessionHandle\n\n @param ActiveSessionHandle - The active session handle to release\n\n @see EOS_Sessions_CopyActiveSessionHandle"]
6381    pub fn EOS_ActiveSession_Release(ActiveSessionHandle: EOS_HActiveSession);
6382}
6383unsafe extern "C" {
6384    #[doc = " Release the memory associated with a single session. This must be called on data retrieved from EOS_SessionSearch_CopySearchResultByIndex.\n\n @param SessionHandle - The session handle to release\n\n @see EOS_SessionSearch_CopySearchResultByIndex"]
6385    pub fn EOS_SessionDetails_Release(SessionHandle: EOS_HSessionDetails);
6386}
6387unsafe extern "C" {
6388    #[doc = " Release the memory associated with a session search. This must be called on data retrieved from EOS_Sessions_CreateSessionSearch.\n\n @param SessionSearchHandle - The session search handle to release\n\n @see EOS_Sessions_CreateSessionSearch"]
6389    pub fn EOS_SessionSearch_Release(SessionSearchHandle: EOS_HSessionSearch);
6390}
6391#[doc = " An online session has not been created yet"]
6392pub const EOS_EOnlineSessionState_EOS_OSS_NoSession: EOS_EOnlineSessionState = 0;
6393#[doc = " An online session is in the process of being created"]
6394pub const EOS_EOnlineSessionState_EOS_OSS_Creating: EOS_EOnlineSessionState = 1;
6395#[doc = " Session has been created but the session hasn't started (pre match lobby)"]
6396pub const EOS_EOnlineSessionState_EOS_OSS_Pending: EOS_EOnlineSessionState = 2;
6397#[doc = " Session has been asked to start (may take time due to communication with backend)"]
6398pub const EOS_EOnlineSessionState_EOS_OSS_Starting: EOS_EOnlineSessionState = 3;
6399#[doc = " The current session has started. Sessions with join in progress disabled are no longer joinable"]
6400pub const EOS_EOnlineSessionState_EOS_OSS_InProgress: EOS_EOnlineSessionState = 4;
6401#[doc = " The session is still valid, but the session is no longer being played (post match lobby)"]
6402pub const EOS_EOnlineSessionState_EOS_OSS_Ending: EOS_EOnlineSessionState = 5;
6403#[doc = " The session is closed and any stats committed"]
6404pub const EOS_EOnlineSessionState_EOS_OSS_Ended: EOS_EOnlineSessionState = 6;
6405#[doc = " The session is being destroyed"]
6406pub const EOS_EOnlineSessionState_EOS_OSS_Destroying: EOS_EOnlineSessionState = 7;
6407pub const EOS_EOnlineSessionState___EOS_EOnlineSessionState_PAD_INT32__: EOS_EOnlineSessionState =
6408    2147483647;
6409#[doc = " All possible states of an existing named session"]
6410pub type EOS_EOnlineSessionState = ::std::os::raw::c_int;
6411#[doc = " Don't advertise via the online service"]
6412pub const EOS_ESessionAttributeAdvertisementType_EOS_SAAT_DontAdvertise:
6413    EOS_ESessionAttributeAdvertisementType = 0;
6414#[doc = " Advertise via the online service only"]
6415pub const EOS_ESessionAttributeAdvertisementType_EOS_SAAT_Advertise:
6416    EOS_ESessionAttributeAdvertisementType = 1;
6417pub const EOS_ESessionAttributeAdvertisementType___EOS_ESessionAttributeAdvertisementType_PAD_INT32__ : EOS_ESessionAttributeAdvertisementType = 2147483647 ;
6418#[doc = " Advertisement properties for a single attribute associated with a session"]
6419pub type EOS_ESessionAttributeAdvertisementType = ::std::os::raw::c_int;
6420#[doc = " Input parameters for the EOS_Sessions_CreateSessionModification function."]
6421#[repr(C)]
6422#[derive(Debug, Copy, Clone)]
6423pub struct _tagEOS_Sessions_CreateSessionModificationOptions {
6424    #[doc = " API Version: Set this to EOS_SESSIONS_CREATESESSIONMODIFICATION_API_LATEST."]
6425    pub ApiVersion: i32,
6426    #[doc = " Name of the session to create"]
6427    pub SessionName: *const ::std::os::raw::c_char,
6428    #[doc = " Bucket ID associated with the session"]
6429    pub BucketId: *const ::std::os::raw::c_char,
6430    #[doc = " Maximum number of players allowed in the session"]
6431    pub MaxPlayers: u32,
6432    #[doc = " The Product User ID of the local user associated with the session"]
6433    pub LocalUserId: EOS_ProductUserId,
6434    #[doc = " Determines whether or not this session should be the one associated with the local user's presence information.\n If true, this session will be associated with presence. Only one session at a time can have this flag true.\n This affects the ability of the Social Overlay to show game related actions to take in the user's social graph.\n\n @note The Social Overlay can handle only one of the following three options at a time:\n * using the bPresenceEnabled flags within the Sessions interface\n * using the bPresenceEnabled flags within the Lobby interface\n * using EOS_PresenceModification_SetJoinInfo\n\n @see EOS_PresenceModification_SetJoinInfoOptions\n @see EOS_Lobby_CreateLobbyOptions\n @see EOS_Lobby_JoinLobbyOptions\n @see EOS_Sessions_JoinSessionOptions"]
6435    pub bPresenceEnabled: EOS_Bool,
6436    #[doc = " Optional session id - set to a globally unique value to override the backend assignment\n If not specified the backend service will assign one to the session.  Do not mix and match.\n This value can be of size [EOS_SESSIONMODIFICATION_MIN_SESSIONIDOVERRIDE_LENGTH, EOS_SESSIONMODIFICATION_MAX_SESSIONIDOVERRIDE_LENGTH]"]
6437    pub SessionId: *const ::std::os::raw::c_char,
6438    #[doc = " If true, sanctioned players can neither join nor register with this session and, in the case of join,\n will return EOS_EResult code EOS_Sessions_PlayerSanctioned"]
6439    pub bSanctionsEnabled: EOS_Bool,
6440    #[doc = " Array of platform IDs indicating the player platforms allowed to register with the session. Platform IDs are\n found in the EOS header file (eos_common.h), for example EOS_OPT_Epic. For some platforms the value will be\n in the EOS Platform specific header file. If null, the session will be unrestricted."]
6441    pub AllowedPlatformIds: *const u32,
6442    #[doc = " Number of platform IDs in the array"]
6443    pub AllowedPlatformIdsCount: u32,
6444}
6445impl Default for _tagEOS_Sessions_CreateSessionModificationOptions {
6446    fn default() -> Self {
6447        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6448        unsafe {
6449            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6450            s.assume_init()
6451        }
6452    }
6453}
6454#[doc = " Input parameters for the EOS_Sessions_CreateSessionModification function."]
6455pub type EOS_Sessions_CreateSessionModificationOptions =
6456    _tagEOS_Sessions_CreateSessionModificationOptions;
6457#[doc = " Input parameters for the EOS_Sessions_UpdateSessionModification function."]
6458#[repr(C)]
6459#[derive(Debug, Copy, Clone)]
6460pub struct _tagEOS_Sessions_UpdateSessionModificationOptions {
6461    #[doc = " API Version: Set this to EOS_SESSIONS_UPDATESESSIONMODIFICATION_API_LATEST."]
6462    pub ApiVersion: i32,
6463    #[doc = " Name of the session to update"]
6464    pub SessionName: *const ::std::os::raw::c_char,
6465}
6466impl Default for _tagEOS_Sessions_UpdateSessionModificationOptions {
6467    fn default() -> Self {
6468        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6469        unsafe {
6470            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6471            s.assume_init()
6472        }
6473    }
6474}
6475#[doc = " Input parameters for the EOS_Sessions_UpdateSessionModification function."]
6476pub type EOS_Sessions_UpdateSessionModificationOptions =
6477    _tagEOS_Sessions_UpdateSessionModificationOptions;
6478#[doc = " Input parameters for the EOS_Sessions_SendInvite function."]
6479#[repr(C)]
6480#[derive(Debug, Copy, Clone)]
6481pub struct _tagEOS_Sessions_SendInviteOptions {
6482    #[doc = " API Version: Set this to EOS_SESSIONS_SENDINVITE_API_LATEST."]
6483    pub ApiVersion: i32,
6484    #[doc = " Name of the session associated with the invite"]
6485    pub SessionName: *const ::std::os::raw::c_char,
6486    #[doc = " The Product User ID of the local user sending the invitation"]
6487    pub LocalUserId: EOS_ProductUserId,
6488    #[doc = " The Product User of the remote user receiving the invitation"]
6489    pub TargetUserId: EOS_ProductUserId,
6490}
6491impl Default for _tagEOS_Sessions_SendInviteOptions {
6492    fn default() -> Self {
6493        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6494        unsafe {
6495            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6496            s.assume_init()
6497        }
6498    }
6499}
6500#[doc = " Input parameters for the EOS_Sessions_SendInvite function."]
6501pub type EOS_Sessions_SendInviteOptions = _tagEOS_Sessions_SendInviteOptions;
6502#[doc = " Output parameters for the EOS_Sessions_SendInvite function."]
6503#[repr(C)]
6504#[derive(Debug, Copy, Clone)]
6505pub struct _tagEOS_Sessions_SendInviteCallbackInfo {
6506    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
6507    pub ResultCode: EOS_EResult,
6508    #[doc = " Context that was passed into EOS_Sessions_SendInvite"]
6509    pub ClientData: *mut ::std::os::raw::c_void,
6510}
6511impl Default for _tagEOS_Sessions_SendInviteCallbackInfo {
6512    fn default() -> Self {
6513        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6514        unsafe {
6515            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6516            s.assume_init()
6517        }
6518    }
6519}
6520#[doc = " Output parameters for the EOS_Sessions_SendInvite function."]
6521pub type EOS_Sessions_SendInviteCallbackInfo = _tagEOS_Sessions_SendInviteCallbackInfo;
6522#[doc = " Function prototype definition for callbacks passed to EOS_Sessions_SendInvite\n @param Data A EOS_Sessions_SendInviteCallbackInfo containing the output information and result"]
6523pub type EOS_Sessions_OnSendInviteCallback =
6524    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Sessions_SendInviteCallbackInfo)>;
6525#[doc = " Input parameters for the EOS_Sessions_RejectInvite function."]
6526#[repr(C)]
6527#[derive(Debug, Copy, Clone)]
6528pub struct _tagEOS_Sessions_RejectInviteOptions {
6529    #[doc = " API Version: Set this to EOS_SESSIONS_REJECTINVITE_API_LATEST."]
6530    pub ApiVersion: i32,
6531    #[doc = " The Product User ID of the local user rejecting the invitation"]
6532    pub LocalUserId: EOS_ProductUserId,
6533    #[doc = " The invite ID to reject"]
6534    pub InviteId: *const ::std::os::raw::c_char,
6535}
6536impl Default for _tagEOS_Sessions_RejectInviteOptions {
6537    fn default() -> Self {
6538        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6539        unsafe {
6540            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6541            s.assume_init()
6542        }
6543    }
6544}
6545#[doc = " Input parameters for the EOS_Sessions_RejectInvite function."]
6546pub type EOS_Sessions_RejectInviteOptions = _tagEOS_Sessions_RejectInviteOptions;
6547#[doc = " Output parameters for the EOS_Sessions_RejectInvite function."]
6548#[repr(C)]
6549#[derive(Debug, Copy, Clone)]
6550pub struct _tagEOS_Sessions_RejectInviteCallbackInfo {
6551    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
6552    pub ResultCode: EOS_EResult,
6553    #[doc = " Context that was passed into EOS_Sessions_RejectInvite"]
6554    pub ClientData: *mut ::std::os::raw::c_void,
6555}
6556impl Default for _tagEOS_Sessions_RejectInviteCallbackInfo {
6557    fn default() -> Self {
6558        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6559        unsafe {
6560            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6561            s.assume_init()
6562        }
6563    }
6564}
6565#[doc = " Output parameters for the EOS_Sessions_RejectInvite function."]
6566pub type EOS_Sessions_RejectInviteCallbackInfo = _tagEOS_Sessions_RejectInviteCallbackInfo;
6567#[doc = " Function prototype definition for callbacks passed to EOS_Sessions_RejectInvite\n @param Data A EOS_Sessions_RejectInviteCallbackInfo containing the output information and result"]
6568pub type EOS_Sessions_OnRejectInviteCallback =
6569    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Sessions_RejectInviteCallbackInfo)>;
6570#[doc = " Input parameters for the EOS_Sessions_QueryInvites function."]
6571#[repr(C)]
6572#[derive(Debug, Copy, Clone)]
6573pub struct _tagEOS_Sessions_QueryInvitesOptions {
6574    #[doc = " API Version: Set this to EOS_SESSIONS_QUERYINVITES_API_LATEST."]
6575    pub ApiVersion: i32,
6576    #[doc = " The Product User ID to query for invitations"]
6577    pub LocalUserId: EOS_ProductUserId,
6578}
6579impl Default for _tagEOS_Sessions_QueryInvitesOptions {
6580    fn default() -> Self {
6581        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6582        unsafe {
6583            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6584            s.assume_init()
6585        }
6586    }
6587}
6588#[doc = " Input parameters for the EOS_Sessions_QueryInvites function."]
6589pub type EOS_Sessions_QueryInvitesOptions = _tagEOS_Sessions_QueryInvitesOptions;
6590#[doc = " Output parameters for the EOS_Sessions_QueryInvites function."]
6591#[repr(C)]
6592#[derive(Debug, Copy, Clone)]
6593pub struct _tagEOS_Sessions_QueryInvitesCallbackInfo {
6594    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
6595    pub ResultCode: EOS_EResult,
6596    #[doc = " Context that was passed into EOS_Sessions_QueryInvites"]
6597    pub ClientData: *mut ::std::os::raw::c_void,
6598    #[doc = " The Product User of the local user who made the request"]
6599    pub LocalUserId: EOS_ProductUserId,
6600}
6601impl Default for _tagEOS_Sessions_QueryInvitesCallbackInfo {
6602    fn default() -> Self {
6603        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6604        unsafe {
6605            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6606            s.assume_init()
6607        }
6608    }
6609}
6610#[doc = " Output parameters for the EOS_Sessions_QueryInvites function."]
6611pub type EOS_Sessions_QueryInvitesCallbackInfo = _tagEOS_Sessions_QueryInvitesCallbackInfo;
6612#[doc = " Function prototype definition for callbacks passed to EOS_Sessions_QueryInvites\n @param Data A EOS_Sessions_QueryInvites CallbackInfo containing the output information and result"]
6613pub type EOS_Sessions_OnQueryInvitesCallback =
6614    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Sessions_QueryInvitesCallbackInfo)>;
6615#[doc = " Input parameters for the EOS_Sessions_GetInviteCount function."]
6616#[repr(C)]
6617#[derive(Debug, Copy, Clone)]
6618pub struct _tagEOS_Sessions_GetInviteCountOptions {
6619    #[doc = " API Version: Set this to EOS_SESSIONS_GETINVITECOUNT_API_LATEST."]
6620    pub ApiVersion: i32,
6621    #[doc = " The Product User ID of the local user who has one or more invitations in the cache"]
6622    pub LocalUserId: EOS_ProductUserId,
6623}
6624impl Default for _tagEOS_Sessions_GetInviteCountOptions {
6625    fn default() -> Self {
6626        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6627        unsafe {
6628            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6629            s.assume_init()
6630        }
6631    }
6632}
6633#[doc = " Input parameters for the EOS_Sessions_GetInviteCount function."]
6634pub type EOS_Sessions_GetInviteCountOptions = _tagEOS_Sessions_GetInviteCountOptions;
6635#[doc = " Input parameters for the EOS_Sessions_GetInviteIdByIndex function."]
6636#[repr(C)]
6637#[derive(Debug, Copy, Clone)]
6638pub struct _tagEOS_Sessions_GetInviteIdByIndexOptions {
6639    #[doc = " API Version: Set this to EOS_SESSIONS_GETINVITEIDBYINDEX_API_LATEST."]
6640    pub ApiVersion: i32,
6641    #[doc = " The Product User ID of the local user who has an invitation in the cache"]
6642    pub LocalUserId: EOS_ProductUserId,
6643    #[doc = " Index of the invite ID to retrieve"]
6644    pub Index: u32,
6645}
6646impl Default for _tagEOS_Sessions_GetInviteIdByIndexOptions {
6647    fn default() -> Self {
6648        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6649        unsafe {
6650            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6651            s.assume_init()
6652        }
6653    }
6654}
6655#[doc = " Input parameters for the EOS_Sessions_GetInviteIdByIndex function."]
6656pub type EOS_Sessions_GetInviteIdByIndexOptions = _tagEOS_Sessions_GetInviteIdByIndexOptions;
6657#[doc = " Input parameters for the EOS_Sessions_CreateSessionSearch function."]
6658#[repr(C)]
6659#[derive(Debug, Default, Copy, Clone)]
6660pub struct _tagEOS_Sessions_CreateSessionSearchOptions {
6661    #[doc = " API Version: Set this to EOS_SESSIONS_CREATESESSIONSEARCH_API_LATEST."]
6662    pub ApiVersion: i32,
6663    #[doc = " Max number of results to return"]
6664    pub MaxSearchResults: u32,
6665}
6666#[doc = " Input parameters for the EOS_Sessions_CreateSessionSearch function."]
6667pub type EOS_Sessions_CreateSessionSearchOptions = _tagEOS_Sessions_CreateSessionSearchOptions;
6668#[doc = " Input parameters for the EOS_Sessions_UpdateSession function."]
6669#[repr(C)]
6670#[derive(Debug, Copy, Clone)]
6671pub struct _tagEOS_Sessions_UpdateSessionOptions {
6672    #[doc = " API Version: Set this to EOS_SESSIONS_UPDATESESSION_API_LATEST."]
6673    pub ApiVersion: i32,
6674    #[doc = " Builder handle"]
6675    pub SessionModificationHandle: EOS_HSessionModification,
6676}
6677impl Default for _tagEOS_Sessions_UpdateSessionOptions {
6678    fn default() -> Self {
6679        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6680        unsafe {
6681            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6682            s.assume_init()
6683        }
6684    }
6685}
6686#[doc = " Input parameters for the EOS_Sessions_UpdateSession function."]
6687pub type EOS_Sessions_UpdateSessionOptions = _tagEOS_Sessions_UpdateSessionOptions;
6688#[doc = " Output parameters for the EOS_Sessions_UpdateSession function."]
6689#[repr(C)]
6690#[derive(Debug, Copy, Clone)]
6691pub struct _tagEOS_Sessions_UpdateSessionCallbackInfo {
6692    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
6693    pub ResultCode: EOS_EResult,
6694    #[doc = " Context that was passed into EOS_Sessions_UpdateSession"]
6695    pub ClientData: *mut ::std::os::raw::c_void,
6696    #[doc = " Name of the session that was created/modified"]
6697    pub SessionName: *const ::std::os::raw::c_char,
6698    #[doc = " ID of the session that was created/modified"]
6699    pub SessionId: *const ::std::os::raw::c_char,
6700}
6701impl Default for _tagEOS_Sessions_UpdateSessionCallbackInfo {
6702    fn default() -> Self {
6703        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6704        unsafe {
6705            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6706            s.assume_init()
6707        }
6708    }
6709}
6710#[doc = " Output parameters for the EOS_Sessions_UpdateSession function."]
6711pub type EOS_Sessions_UpdateSessionCallbackInfo = _tagEOS_Sessions_UpdateSessionCallbackInfo;
6712#[doc = " Function prototype definition for callbacks passed to EOS_Sessions_UpdateSession\n @param Data A EOS_Sessions_UpdateSessionCallbackInfo containing the output information and result"]
6713pub type EOS_Sessions_OnUpdateSessionCallback = ::std::option::Option<
6714    unsafe extern "C" fn(Data: *const EOS_Sessions_UpdateSessionCallbackInfo),
6715>;
6716#[doc = " Input parameters for the EOS_Sessions_DestroySession function."]
6717#[repr(C)]
6718#[derive(Debug, Copy, Clone)]
6719pub struct _tagEOS_Sessions_DestroySessionOptions {
6720    #[doc = " API Version: Set this to EOS_SESSIONS_DESTROYSESSION_API_LATEST."]
6721    pub ApiVersion: i32,
6722    #[doc = " Name of the session to destroy"]
6723    pub SessionName: *const ::std::os::raw::c_char,
6724}
6725impl Default for _tagEOS_Sessions_DestroySessionOptions {
6726    fn default() -> Self {
6727        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6728        unsafe {
6729            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6730            s.assume_init()
6731        }
6732    }
6733}
6734#[doc = " Input parameters for the EOS_Sessions_DestroySession function."]
6735pub type EOS_Sessions_DestroySessionOptions = _tagEOS_Sessions_DestroySessionOptions;
6736#[doc = " Output parameters for the EOS_Sessions_DestroySession function."]
6737#[repr(C)]
6738#[derive(Debug, Copy, Clone)]
6739pub struct _tagEOS_Sessions_DestroySessionCallbackInfo {
6740    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
6741    pub ResultCode: EOS_EResult,
6742    #[doc = " Context that was passed into EOS_Sessions_DestroySession"]
6743    pub ClientData: *mut ::std::os::raw::c_void,
6744}
6745impl Default for _tagEOS_Sessions_DestroySessionCallbackInfo {
6746    fn default() -> Self {
6747        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6748        unsafe {
6749            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6750            s.assume_init()
6751        }
6752    }
6753}
6754#[doc = " Output parameters for the EOS_Sessions_DestroySession function."]
6755pub type EOS_Sessions_DestroySessionCallbackInfo = _tagEOS_Sessions_DestroySessionCallbackInfo;
6756#[doc = " Function prototype definition for callbacks passed to EOS_Sessions_DestroySession\n @param Data A EOS_Sessions_DestroySessionCallbackInfo containing the output information and result"]
6757pub type EOS_Sessions_OnDestroySessionCallback = ::std::option::Option<
6758    unsafe extern "C" fn(Data: *const EOS_Sessions_DestroySessionCallbackInfo),
6759>;
6760#[doc = " Input parameters for the EOS_Sessions_JoinSession function."]
6761#[repr(C)]
6762#[derive(Debug, Copy, Clone)]
6763pub struct _tagEOS_Sessions_JoinSessionOptions {
6764    #[doc = " API Version: Set this to EOS_SESSIONS_JOINSESSION_API_LATEST."]
6765    pub ApiVersion: i32,
6766    #[doc = " Name of the session to create after joining session"]
6767    pub SessionName: *const ::std::os::raw::c_char,
6768    #[doc = " Session handle to join"]
6769    pub SessionHandle: EOS_HSessionDetails,
6770    #[doc = " The Product User ID of the local user who is joining the session"]
6771    pub LocalUserId: EOS_ProductUserId,
6772    #[doc = " Determines whether or not this session should be the one associated with the local user's presence information.\n If true, this session will be associated with presence. Only one session at a time can have this flag true.\n This affects the ability of the Social Overlay to show game related actions to take in the user's social graph.\n\n @note The Social Overlay can handle only one of the following three options at a time:\n * using the bPresenceEnabled flags within the Sessions interface\n * using the bPresenceEnabled flags within the Lobby interface\n * using EOS_PresenceModification_SetJoinInfo\n\n @see EOS_PresenceModification_SetJoinInfoOptions\n @see EOS_Lobby_CreateLobbyOptions\n @see EOS_Lobby_JoinLobbyOptions\n @see EOS_Sessions_CreateSessionModificationOptions"]
6773    pub bPresenceEnabled: EOS_Bool,
6774}
6775impl Default for _tagEOS_Sessions_JoinSessionOptions {
6776    fn default() -> Self {
6777        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6778        unsafe {
6779            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6780            s.assume_init()
6781        }
6782    }
6783}
6784#[doc = " Input parameters for the EOS_Sessions_JoinSession function."]
6785pub type EOS_Sessions_JoinSessionOptions = _tagEOS_Sessions_JoinSessionOptions;
6786#[doc = " Output parameters for the EOS_Sessions_JoinSession function."]
6787#[repr(C)]
6788#[derive(Debug, Copy, Clone)]
6789pub struct _tagEOS_Sessions_JoinSessionCallbackInfo {
6790    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
6791    pub ResultCode: EOS_EResult,
6792    #[doc = " Context that was passed into EOS_Sessions_JoinSession"]
6793    pub ClientData: *mut ::std::os::raw::c_void,
6794}
6795impl Default for _tagEOS_Sessions_JoinSessionCallbackInfo {
6796    fn default() -> Self {
6797        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6798        unsafe {
6799            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6800            s.assume_init()
6801        }
6802    }
6803}
6804#[doc = " Output parameters for the EOS_Sessions_JoinSession function."]
6805pub type EOS_Sessions_JoinSessionCallbackInfo = _tagEOS_Sessions_JoinSessionCallbackInfo;
6806#[doc = " Function prototype definition for callbacks passed to EOS_Sessions_JoinSession\n @param Data A EOS_Sessions_JoinSessionCallbackInfo containing the output information and result"]
6807pub type EOS_Sessions_OnJoinSessionCallback =
6808    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Sessions_JoinSessionCallbackInfo)>;
6809#[doc = " Input parameters for the EOS_Sessions_StartSession function."]
6810#[repr(C)]
6811#[derive(Debug, Copy, Clone)]
6812pub struct _tagEOS_Sessions_StartSessionOptions {
6813    #[doc = " API Version: Set this to EOS_SESSIONS_STARTSESSION_API_LATEST."]
6814    pub ApiVersion: i32,
6815    #[doc = " Name of the session to set in progress"]
6816    pub SessionName: *const ::std::os::raw::c_char,
6817}
6818impl Default for _tagEOS_Sessions_StartSessionOptions {
6819    fn default() -> Self {
6820        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6821        unsafe {
6822            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6823            s.assume_init()
6824        }
6825    }
6826}
6827#[doc = " Input parameters for the EOS_Sessions_StartSession function."]
6828pub type EOS_Sessions_StartSessionOptions = _tagEOS_Sessions_StartSessionOptions;
6829#[doc = " Output parameters for the EOS_Sessions_StartSession function."]
6830#[repr(C)]
6831#[derive(Debug, Copy, Clone)]
6832pub struct _tagEOS_Sessions_StartSessionCallbackInfo {
6833    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
6834    pub ResultCode: EOS_EResult,
6835    #[doc = " Context that was passed into EOS_Sessions_StartSession"]
6836    pub ClientData: *mut ::std::os::raw::c_void,
6837}
6838impl Default for _tagEOS_Sessions_StartSessionCallbackInfo {
6839    fn default() -> Self {
6840        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6841        unsafe {
6842            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6843            s.assume_init()
6844        }
6845    }
6846}
6847#[doc = " Output parameters for the EOS_Sessions_StartSession function."]
6848pub type EOS_Sessions_StartSessionCallbackInfo = _tagEOS_Sessions_StartSessionCallbackInfo;
6849#[doc = " Function prototype definition for callbacks passed to EOS_Sessions_StartSession\n @param Data A EOS_Sessions_StartSessionCallbackInfo containing the output information and result"]
6850pub type EOS_Sessions_OnStartSessionCallback =
6851    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Sessions_StartSessionCallbackInfo)>;
6852#[doc = " Input parameters for the EOS_Sessions_EndSession function."]
6853#[repr(C)]
6854#[derive(Debug, Copy, Clone)]
6855pub struct _tagEOS_Sessions_EndSessionOptions {
6856    #[doc = " API Version: Set this to EOS_SESSIONS_ENDSESSION_API_LATEST."]
6857    pub ApiVersion: i32,
6858    #[doc = " Name of the session to set as no long in progress"]
6859    pub SessionName: *const ::std::os::raw::c_char,
6860}
6861impl Default for _tagEOS_Sessions_EndSessionOptions {
6862    fn default() -> Self {
6863        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6864        unsafe {
6865            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6866            s.assume_init()
6867        }
6868    }
6869}
6870#[doc = " Input parameters for the EOS_Sessions_EndSession function."]
6871pub type EOS_Sessions_EndSessionOptions = _tagEOS_Sessions_EndSessionOptions;
6872#[doc = " Output parameters for the EOS_Sessions_EndSession function."]
6873#[repr(C)]
6874#[derive(Debug, Copy, Clone)]
6875pub struct _tagEOS_Sessions_EndSessionCallbackInfo {
6876    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
6877    pub ResultCode: EOS_EResult,
6878    #[doc = " Context that was passed into EOS_Sessions_EndSession"]
6879    pub ClientData: *mut ::std::os::raw::c_void,
6880}
6881impl Default for _tagEOS_Sessions_EndSessionCallbackInfo {
6882    fn default() -> Self {
6883        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6884        unsafe {
6885            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6886            s.assume_init()
6887        }
6888    }
6889}
6890#[doc = " Output parameters for the EOS_Sessions_EndSession function."]
6891pub type EOS_Sessions_EndSessionCallbackInfo = _tagEOS_Sessions_EndSessionCallbackInfo;
6892#[doc = " Function prototype definition for callbacks passed to EOS_Sessions_EndSession\n @param Data A EOS_Sessions_EndSessionCallbackInfo containing the output information and result"]
6893pub type EOS_Sessions_OnEndSessionCallback =
6894    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Sessions_EndSessionCallbackInfo)>;
6895#[doc = " Input parameters for the EOS_Sessions_RegisterPlayers function."]
6896#[repr(C)]
6897#[derive(Debug, Copy, Clone)]
6898pub struct _tagEOS_Sessions_RegisterPlayersOptions {
6899    #[doc = " API Version: Set this to EOS_SESSIONS_REGISTERPLAYERS_API_LATEST."]
6900    pub ApiVersion: i32,
6901    #[doc = " Name of the session for which to register players"]
6902    pub SessionName: *const ::std::os::raw::c_char,
6903    #[doc = " Array of players to register with the session"]
6904    pub PlayersToRegister: *mut EOS_ProductUserId,
6905    #[doc = " Number of players in the array"]
6906    pub PlayersToRegisterCount: u32,
6907}
6908impl Default for _tagEOS_Sessions_RegisterPlayersOptions {
6909    fn default() -> Self {
6910        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6911        unsafe {
6912            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6913            s.assume_init()
6914        }
6915    }
6916}
6917#[doc = " Input parameters for the EOS_Sessions_RegisterPlayers function."]
6918pub type EOS_Sessions_RegisterPlayersOptions = _tagEOS_Sessions_RegisterPlayersOptions;
6919#[doc = " Output parameters for the EOS_Sessions_RegisterPlayers function."]
6920#[repr(C)]
6921#[derive(Debug, Copy, Clone)]
6922pub struct _tagEOS_Sessions_RegisterPlayersCallbackInfo {
6923    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
6924    pub ResultCode: EOS_EResult,
6925    #[doc = " Context that was passed into EOS_Sessions_RegisterPlayers"]
6926    pub ClientData: *mut ::std::os::raw::c_void,
6927    #[doc = " The players that were successfully registered"]
6928    pub RegisteredPlayers: *mut EOS_ProductUserId,
6929    #[doc = " The number of players successfully registered"]
6930    pub RegisteredPlayersCount: u32,
6931    #[doc = " The players that failed to register because they are sanctioned"]
6932    pub SanctionedPlayers: *mut EOS_ProductUserId,
6933    #[doc = " The number of players that failed to register because they are sanctioned"]
6934    pub SanctionedPlayersCount: u32,
6935}
6936impl Default for _tagEOS_Sessions_RegisterPlayersCallbackInfo {
6937    fn default() -> Self {
6938        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6939        unsafe {
6940            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6941            s.assume_init()
6942        }
6943    }
6944}
6945#[doc = " Output parameters for the EOS_Sessions_RegisterPlayers function."]
6946pub type EOS_Sessions_RegisterPlayersCallbackInfo = _tagEOS_Sessions_RegisterPlayersCallbackInfo;
6947#[doc = " Function prototype definition for callbacks passed to EOS_Sessions_RegisterPlayers\n @param Data A EOS_Sessions_RegisterPlayersCallbackInfo containing the output information and result"]
6948pub type EOS_Sessions_OnRegisterPlayersCallback = ::std::option::Option<
6949    unsafe extern "C" fn(Data: *const EOS_Sessions_RegisterPlayersCallbackInfo),
6950>;
6951#[doc = " Input parameters for the EOS_Sessions_UnregisterPlayers function."]
6952#[repr(C)]
6953#[derive(Debug, Copy, Clone)]
6954pub struct _tagEOS_Sessions_UnregisterPlayersOptions {
6955    #[doc = " API Version: Set this to EOS_SESSIONS_UNREGISTERPLAYERS_API_LATEST."]
6956    pub ApiVersion: i32,
6957    #[doc = " Name of the session for which to unregister players"]
6958    pub SessionName: *const ::std::os::raw::c_char,
6959    #[doc = " Array of players to unregister from the session"]
6960    pub PlayersToUnregister: *mut EOS_ProductUserId,
6961    #[doc = " Number of players in the array"]
6962    pub PlayersToUnregisterCount: u32,
6963}
6964impl Default for _tagEOS_Sessions_UnregisterPlayersOptions {
6965    fn default() -> Self {
6966        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6967        unsafe {
6968            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6969            s.assume_init()
6970        }
6971    }
6972}
6973#[doc = " Input parameters for the EOS_Sessions_UnregisterPlayers function."]
6974pub type EOS_Sessions_UnregisterPlayersOptions = _tagEOS_Sessions_UnregisterPlayersOptions;
6975#[doc = " Output parameters for the EOS_Sessions_UnregisterPlayers function."]
6976#[repr(C)]
6977#[derive(Debug, Copy, Clone)]
6978pub struct _tagEOS_Sessions_UnregisterPlayersCallbackInfo {
6979    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
6980    pub ResultCode: EOS_EResult,
6981    #[doc = " Context that was passed into EOS_Sessions_UnregisterPlayers"]
6982    pub ClientData: *mut ::std::os::raw::c_void,
6983    #[doc = " The players that successfully unregistered"]
6984    pub UnregisteredPlayers: *mut EOS_ProductUserId,
6985    #[doc = " The number of players that successfully unregistered"]
6986    pub UnregisteredPlayersCount: u32,
6987}
6988impl Default for _tagEOS_Sessions_UnregisterPlayersCallbackInfo {
6989    fn default() -> Self {
6990        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6991        unsafe {
6992            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6993            s.assume_init()
6994        }
6995    }
6996}
6997#[doc = " Output parameters for the EOS_Sessions_UnregisterPlayers function."]
6998pub type EOS_Sessions_UnregisterPlayersCallbackInfo =
6999    _tagEOS_Sessions_UnregisterPlayersCallbackInfo;
7000#[doc = " Function prototype definition for callbacks passed to EOS_Sessions_UnregisterPlayers\n @param Data A EOS_Sessions_UnregisterPlayersCallbackInfo containing the output information and result"]
7001pub type EOS_Sessions_OnUnregisterPlayersCallback = ::std::option::Option<
7002    unsafe extern "C" fn(Data: *const EOS_Sessions_UnregisterPlayersCallbackInfo),
7003>;
7004#[doc = " Input parameters for the EOS_SessionModification_SetBucketId function."]
7005#[repr(C)]
7006#[derive(Debug, Copy, Clone)]
7007pub struct _tagEOS_SessionModification_SetBucketIdOptions {
7008    #[doc = " API Version: Set this to EOS_SESSIONMODIFICATION_SETBUCKETID_API_LATEST."]
7009    pub ApiVersion: i32,
7010    #[doc = " The new bucket id associated with the session"]
7011    pub BucketId: *const ::std::os::raw::c_char,
7012}
7013impl Default for _tagEOS_SessionModification_SetBucketIdOptions {
7014    fn default() -> Self {
7015        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7016        unsafe {
7017            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7018            s.assume_init()
7019        }
7020    }
7021}
7022#[doc = " Input parameters for the EOS_SessionModification_SetBucketId function."]
7023pub type EOS_SessionModification_SetBucketIdOptions =
7024    _tagEOS_SessionModification_SetBucketIdOptions;
7025#[doc = " Input parameters for the EOS_SessionModification_SetHostAddress function."]
7026#[repr(C)]
7027#[derive(Debug, Copy, Clone)]
7028pub struct _tagEOS_SessionModification_SetHostAddressOptions {
7029    #[doc = " API Version: Set this to EOS_SESSIONMODIFICATION_SETHOSTADDRESS_API_LATEST."]
7030    pub ApiVersion: i32,
7031    #[doc = " A string representing the host address for the session, its meaning is up to the application"]
7032    pub HostAddress: *const ::std::os::raw::c_char,
7033}
7034impl Default for _tagEOS_SessionModification_SetHostAddressOptions {
7035    fn default() -> Self {
7036        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7037        unsafe {
7038            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7039            s.assume_init()
7040        }
7041    }
7042}
7043#[doc = " Input parameters for the EOS_SessionModification_SetHostAddress function."]
7044pub type EOS_SessionModification_SetHostAddressOptions =
7045    _tagEOS_SessionModification_SetHostAddressOptions;
7046#[doc = " Anyone can find this session as long as it isn't full"]
7047pub const EOS_EOnlineSessionPermissionLevel_EOS_OSPF_PublicAdvertised:
7048    EOS_EOnlineSessionPermissionLevel = 0;
7049#[doc = " Players who have access to presence can see this session"]
7050pub const EOS_EOnlineSessionPermissionLevel_EOS_OSPF_JoinViaPresence:
7051    EOS_EOnlineSessionPermissionLevel = 1;
7052#[doc = " Only players with invites registered can see this session"]
7053pub const EOS_EOnlineSessionPermissionLevel_EOS_OSPF_InviteOnly: EOS_EOnlineSessionPermissionLevel =
7054    2;
7055pub const EOS_EOnlineSessionPermissionLevel___EOS_EOnlineSessionPermissionLevel_PAD_INT32__:
7056    EOS_EOnlineSessionPermissionLevel = 2147483647;
7057#[doc = " Permission level gets more restrictive further down"]
7058pub type EOS_EOnlineSessionPermissionLevel = ::std::os::raw::c_int;
7059#[doc = " Input parameters for the EOS_SessionModification_SetPermissionLevel function."]
7060#[repr(C)]
7061#[derive(Debug, Copy, Clone)]
7062pub struct _tagEOS_SessionModification_SetPermissionLevelOptions {
7063    #[doc = " API Version: Set this to EOS_SESSIONMODIFICATION_SETPERMISSIONLEVEL_API_LATEST."]
7064    pub ApiVersion: i32,
7065    #[doc = " Permission level to set on the session"]
7066    pub PermissionLevel: EOS_EOnlineSessionPermissionLevel,
7067}
7068impl Default for _tagEOS_SessionModification_SetPermissionLevelOptions {
7069    fn default() -> Self {
7070        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7071        unsafe {
7072            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7073            s.assume_init()
7074        }
7075    }
7076}
7077#[doc = " Input parameters for the EOS_SessionModification_SetPermissionLevel function."]
7078pub type EOS_SessionModification_SetPermissionLevelOptions =
7079    _tagEOS_SessionModification_SetPermissionLevelOptions;
7080#[doc = " Input parameters for the EOS_SessionModification_SetJoinInProgressAllowed function."]
7081#[repr(C)]
7082#[derive(Debug, Default, Copy, Clone)]
7083pub struct _tagEOS_SessionModification_SetJoinInProgressAllowedOptions {
7084    #[doc = " API Version: Set this to EOS_SESSIONMODIFICATION_SETJOININPROGRESSALLOWED_API_LATEST."]
7085    pub ApiVersion: i32,
7086    #[doc = " Does the session allow join in progress"]
7087    pub bAllowJoinInProgress: EOS_Bool,
7088}
7089#[doc = " Input parameters for the EOS_SessionModification_SetJoinInProgressAllowed function."]
7090pub type EOS_SessionModification_SetJoinInProgressAllowedOptions =
7091    _tagEOS_SessionModification_SetJoinInProgressAllowedOptions;
7092#[doc = " Input parameters for the EOS_SessionModification_SetMaxPlayers function."]
7093#[repr(C)]
7094#[derive(Debug, Default, Copy, Clone)]
7095pub struct _tagEOS_SessionModification_SetMaxPlayersOptions {
7096    #[doc = " API Version: Set this to EOS_SESSIONMODIFICATION_SETMAXPLAYERS_API_LATEST."]
7097    pub ApiVersion: i32,
7098    #[doc = " Max number of players to allow in the session"]
7099    pub MaxPlayers: u32,
7100}
7101#[doc = " Input parameters for the EOS_SessionModification_SetMaxPlayers function."]
7102pub type EOS_SessionModification_SetMaxPlayersOptions =
7103    _tagEOS_SessionModification_SetMaxPlayersOptions;
7104#[doc = " Input parameters for the EOS_SessionModification_SetInvitesAllowed function."]
7105#[repr(C)]
7106#[derive(Debug, Default, Copy, Clone)]
7107pub struct _tagEOS_SessionModification_SetInvitesAllowedOptions {
7108    #[doc = " API Version: Set this to EOS_SESSIONMODIFICATION_SETINVITESALLOWED_API_LATEST."]
7109    pub ApiVersion: i32,
7110    #[doc = " If true then invites can currently be sent for the associated session"]
7111    pub bInvitesAllowed: EOS_Bool,
7112}
7113#[doc = " Input parameters for the EOS_SessionModification_SetInvitesAllowed function."]
7114pub type EOS_SessionModification_SetInvitesAllowedOptions =
7115    _tagEOS_SessionModification_SetInvitesAllowedOptions;
7116#[doc = " Input parameters for the EOS_SessionModification_SetAllowedPlatformIds function."]
7117#[repr(C)]
7118#[derive(Debug, Copy, Clone)]
7119pub struct _tagEOS_SessionModification_SetAllowedPlatformIdsOptions {
7120    #[doc = " API Version: Set this to EOS_SESSIONMODIFICATION_SETALLOWEDPLATFORMIDS_API_LATEST."]
7121    pub ApiVersion: i32,
7122    #[doc = " Array of platform IDs indicating the player platforms allowed to register with the session. Platform IDs are\n found in the EOS header file, e.g. EOS_OPT_Epic. For some platforms, the value will be in the EOS Platform specific\n header file. If null, the session will be unrestricted."]
7123    pub AllowedPlatformIds: *const u32,
7124    #[doc = " Number of platform IDs in the array"]
7125    pub AllowedPlatformIdsCount: u32,
7126}
7127impl Default for _tagEOS_SessionModification_SetAllowedPlatformIdsOptions {
7128    fn default() -> Self {
7129        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7130        unsafe {
7131            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7132            s.assume_init()
7133        }
7134    }
7135}
7136#[doc = " Input parameters for the EOS_SessionModification_SetAllowedPlatformIds function."]
7137pub type EOS_SessionModification_SetAllowedPlatformIdsOptions =
7138    _tagEOS_SessionModification_SetAllowedPlatformIdsOptions;
7139#[doc = " Contains information about both session and search parameter attribution"]
7140#[repr(C)]
7141#[derive(Copy, Clone)]
7142pub struct _tagEOS_Sessions_AttributeData {
7143    #[doc = " API Version: Set this to EOS_SESSIONS_ATTRIBUTEDATA_API_LATEST."]
7144    pub ApiVersion: i32,
7145    #[doc = " Name of the session attribute"]
7146    pub Key: *const ::std::os::raw::c_char,
7147    #[doc = " Value of the session attribute"]
7148    pub Value: _tagEOS_Sessions_AttributeData__bindgen_ty_1,
7149    #[doc = " Type of value stored in the union"]
7150    pub ValueType: EOS_ESessionAttributeType,
7151}
7152#[doc = " Value of the session attribute"]
7153#[repr(C)]
7154#[derive(Copy, Clone)]
7155pub union _tagEOS_Sessions_AttributeData__bindgen_ty_1 {
7156    #[doc = " Stored as an 8 byte integer"]
7157    pub AsInt64: i64,
7158    #[doc = " Stored as a double precision floating point"]
7159    pub AsDouble: f64,
7160    #[doc = " Stored as a boolean"]
7161    pub AsBool: EOS_Bool,
7162    #[doc = " Stored as a null terminated UTF8 string. Should not be nullptr"]
7163    pub AsUtf8: *const ::std::os::raw::c_char,
7164}
7165impl Default for _tagEOS_Sessions_AttributeData__bindgen_ty_1 {
7166    fn default() -> Self {
7167        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7168        unsafe {
7169            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7170            s.assume_init()
7171        }
7172    }
7173}
7174impl Default for _tagEOS_Sessions_AttributeData {
7175    fn default() -> Self {
7176        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7177        unsafe {
7178            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7179            s.assume_init()
7180        }
7181    }
7182}
7183#[doc = " Contains information about both session and search parameter attribution"]
7184pub type EOS_Sessions_AttributeData = _tagEOS_Sessions_AttributeData;
7185#[doc = " Input parameters for the EOS_ActiveSession_CopyInfo function."]
7186#[repr(C)]
7187#[derive(Debug, Default, Copy, Clone)]
7188pub struct _tagEOS_ActiveSession_CopyInfoOptions {
7189    #[doc = " API Version: Set this to EOS_ACTIVESESSION_COPYINFO_API_LATEST."]
7190    pub ApiVersion: i32,
7191}
7192#[doc = " Input parameters for the EOS_ActiveSession_CopyInfo function."]
7193pub type EOS_ActiveSession_CopyInfoOptions = _tagEOS_ActiveSession_CopyInfoOptions;
7194#[doc = " Input parameters for the EOS_ActiveSession_GetRegisteredPlayerCount function."]
7195#[repr(C)]
7196#[derive(Debug, Default, Copy, Clone)]
7197pub struct _tagEOS_ActiveSession_GetRegisteredPlayerCountOptions {
7198    #[doc = " API Version: Set this to EOS_ACTIVESESSION_GETREGISTEREDPLAYERCOUNT_API_LATEST."]
7199    pub ApiVersion: i32,
7200}
7201#[doc = " Input parameters for the EOS_ActiveSession_GetRegisteredPlayerCount function."]
7202pub type EOS_ActiveSession_GetRegisteredPlayerCountOptions =
7203    _tagEOS_ActiveSession_GetRegisteredPlayerCountOptions;
7204#[doc = " Input parameters for the EOS_ActiveSession_GetRegisteredPlayerByIndex function."]
7205#[repr(C)]
7206#[derive(Debug, Default, Copy, Clone)]
7207pub struct _tagEOS_ActiveSession_GetRegisteredPlayerByIndexOptions {
7208    #[doc = " API Version: Set this to EOS_ACTIVESESSION_GETREGISTEREDPLAYERBYINDEX_API_LATEST."]
7209    pub ApiVersion: i32,
7210    #[doc = " Index of the registered player to retrieve"]
7211    pub PlayerIndex: u32,
7212}
7213#[doc = " Input parameters for the EOS_ActiveSession_GetRegisteredPlayerByIndex function."]
7214pub type EOS_ActiveSession_GetRegisteredPlayerByIndexOptions =
7215    _tagEOS_ActiveSession_GetRegisteredPlayerByIndexOptions;
7216#[doc = "  An attribution value and its advertisement setting stored with a session."]
7217#[repr(C)]
7218#[derive(Debug, Copy, Clone)]
7219pub struct _tagEOS_SessionDetails_Attribute {
7220    #[doc = " API Version: Set this to EOS_SESSIONDETAILS_ATTRIBUTE_API_LATEST."]
7221    pub ApiVersion: i32,
7222    #[doc = " Key/Value pair describing the attribute"]
7223    pub Data: *mut EOS_Sessions_AttributeData,
7224    #[doc = " Is this attribution advertised with the backend or simply stored locally"]
7225    pub AdvertisementType: EOS_ESessionAttributeAdvertisementType,
7226}
7227impl Default for _tagEOS_SessionDetails_Attribute {
7228    fn default() -> Self {
7229        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7230        unsafe {
7231            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7232            s.assume_init()
7233        }
7234    }
7235}
7236#[doc = "  An attribution value and its advertisement setting stored with a session."]
7237pub type EOS_SessionDetails_Attribute = _tagEOS_SessionDetails_Attribute;
7238unsafe extern "C" {
7239    #[doc = " Release the memory associated with a session attribute. This must be called on data retrieved from EOS_SessionDetails_CopySessionAttributeByIndex.\n\n @param SessionAttribute - The session attribute to release\n\n @see EOS_SessionDetails_CopySessionAttributeByIndex"]
7240    pub fn EOS_SessionDetails_Attribute_Release(
7241        SessionAttribute: *mut EOS_SessionDetails_Attribute,
7242    );
7243}
7244#[doc = " Input parameters for the EOS_SessionModification_AddAttribute function."]
7245#[repr(C)]
7246#[derive(Debug, Copy, Clone)]
7247pub struct _tagEOS_SessionModification_AddAttributeOptions {
7248    #[doc = " API Version: Set this to EOS_SESSIONMODIFICATION_ADDATTRIBUTE_API_LATEST."]
7249    pub ApiVersion: i32,
7250    #[doc = " Key/Value pair describing the attribute to add to the session"]
7251    pub SessionAttribute: *const EOS_Sessions_AttributeData,
7252    #[doc = " Is this attribution advertised with the backend or simply stored locally"]
7253    pub AdvertisementType: EOS_ESessionAttributeAdvertisementType,
7254}
7255impl Default for _tagEOS_SessionModification_AddAttributeOptions {
7256    fn default() -> Self {
7257        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7258        unsafe {
7259            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7260            s.assume_init()
7261        }
7262    }
7263}
7264#[doc = " Input parameters for the EOS_SessionModification_AddAttribute function."]
7265pub type EOS_SessionModification_AddAttributeOptions =
7266    _tagEOS_SessionModification_AddAttributeOptions;
7267#[doc = " Input parameters for the EOS_SessionModification_RemoveAttribute function."]
7268#[repr(C)]
7269#[derive(Debug, Copy, Clone)]
7270pub struct _tagEOS_SessionModification_RemoveAttributeOptions {
7271    #[doc = " API Version: Set this to EOS_SESSIONMODIFICATION_REMOVEATTRIBUTE_API_LATEST."]
7272    pub ApiVersion: i32,
7273    #[doc = " Session attribute to remove from the session"]
7274    pub Key: *const ::std::os::raw::c_char,
7275}
7276impl Default for _tagEOS_SessionModification_RemoveAttributeOptions {
7277    fn default() -> Self {
7278        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7279        unsafe {
7280            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7281            s.assume_init()
7282        }
7283    }
7284}
7285#[doc = " Input parameters for the EOS_SessionModification_RemoveAttribute function."]
7286pub type EOS_SessionModification_RemoveAttributeOptions =
7287    _tagEOS_SessionModification_RemoveAttributeOptions;
7288#[doc = " Input parameters for the EOS_SessionSearch_SetMaxResults function."]
7289#[repr(C)]
7290#[derive(Debug, Default, Copy, Clone)]
7291pub struct _tagEOS_SessionSearch_SetMaxResultsOptions {
7292    #[doc = " API Version: Set this to EOS_SESSIONSEARCH_SETMAXSEARCHRESULTS_API_LATEST."]
7293    pub ApiVersion: i32,
7294    #[doc = " Maximum number of search results returned with this query, may not exceed EOS_SESSIONS_MAX_SEARCH_RESULTS"]
7295    pub MaxSearchResults: u32,
7296}
7297#[doc = " Input parameters for the EOS_SessionSearch_SetMaxResults function."]
7298pub type EOS_SessionSearch_SetMaxResultsOptions = _tagEOS_SessionSearch_SetMaxResultsOptions;
7299#[doc = " Input parameters for the EOS_SessionSearch_Find function."]
7300#[repr(C)]
7301#[derive(Debug, Copy, Clone)]
7302pub struct _tagEOS_SessionSearch_FindOptions {
7303    #[doc = " API Version: Set this to EOS_SESSIONSEARCH_FIND_API_LATEST."]
7304    pub ApiVersion: i32,
7305    #[doc = " The Product User ID of the local user who is searching"]
7306    pub LocalUserId: EOS_ProductUserId,
7307}
7308impl Default for _tagEOS_SessionSearch_FindOptions {
7309    fn default() -> Self {
7310        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7311        unsafe {
7312            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7313            s.assume_init()
7314        }
7315    }
7316}
7317#[doc = " Input parameters for the EOS_SessionSearch_Find function."]
7318pub type EOS_SessionSearch_FindOptions = _tagEOS_SessionSearch_FindOptions;
7319#[doc = " Output parameters for the EOS_SessionSearch_Find function."]
7320#[repr(C)]
7321#[derive(Debug, Copy, Clone)]
7322pub struct _tagEOS_SessionSearch_FindCallbackInfo {
7323    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
7324    pub ResultCode: EOS_EResult,
7325    #[doc = " Context that was passed into EOS_SessionSearch_Find"]
7326    pub ClientData: *mut ::std::os::raw::c_void,
7327}
7328impl Default for _tagEOS_SessionSearch_FindCallbackInfo {
7329    fn default() -> Self {
7330        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7331        unsafe {
7332            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7333            s.assume_init()
7334        }
7335    }
7336}
7337#[doc = " Output parameters for the EOS_SessionSearch_Find function."]
7338pub type EOS_SessionSearch_FindCallbackInfo = _tagEOS_SessionSearch_FindCallbackInfo;
7339#[doc = " Function prototype definition for callbacks passed to EOS_SessionSearch_Find\n @param Data A EOS_SessionSearch_FindCallbackInfo containing the output information and result"]
7340pub type EOS_SessionSearch_OnFindCallback =
7341    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_SessionSearch_FindCallbackInfo)>;
7342#[doc = " Input parameters for the EOS_SessionSearch_GetSearchResultCount function."]
7343#[repr(C)]
7344#[derive(Debug, Default, Copy, Clone)]
7345pub struct _tagEOS_SessionSearch_GetSearchResultCountOptions {
7346    #[doc = " API Version: Set this to EOS_SESSIONSEARCH_GETSEARCHRESULTCOUNT_API_LATEST."]
7347    pub ApiVersion: i32,
7348}
7349#[doc = " Input parameters for the EOS_SessionSearch_GetSearchResultCount function."]
7350pub type EOS_SessionSearch_GetSearchResultCountOptions =
7351    _tagEOS_SessionSearch_GetSearchResultCountOptions;
7352#[doc = " Input parameters for the EOS_SessionSearch_CopySearchResultByIndex function."]
7353#[repr(C)]
7354#[derive(Debug, Default, Copy, Clone)]
7355pub struct _tagEOS_SessionSearch_CopySearchResultByIndexOptions {
7356    #[doc = " API Version: Set this to EOS_SESSIONSEARCH_COPYSEARCHRESULTBYINDEX_API_LATEST."]
7357    pub ApiVersion: i32,
7358    #[doc = " The index of the session to retrieve within the completed search query\n @see EOS_SessionSearch_GetSearchResultCount"]
7359    pub SessionIndex: u32,
7360}
7361#[doc = " Input parameters for the EOS_SessionSearch_CopySearchResultByIndex function."]
7362pub type EOS_SessionSearch_CopySearchResultByIndexOptions =
7363    _tagEOS_SessionSearch_CopySearchResultByIndexOptions;
7364#[doc = " Input parameters for the EOS_SessionSearch_SetSessionId function."]
7365#[repr(C)]
7366#[derive(Debug, Copy, Clone)]
7367pub struct _tagEOS_SessionSearch_SetSessionIdOptions {
7368    #[doc = " API Version: Set this to EOS_SESSIONSEARCH_SETSESSIONID_API_LATEST."]
7369    pub ApiVersion: i32,
7370    #[doc = " Search sessions for a specific session ID, returning at most one session"]
7371    pub SessionId: *const ::std::os::raw::c_char,
7372}
7373impl Default for _tagEOS_SessionSearch_SetSessionIdOptions {
7374    fn default() -> Self {
7375        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7376        unsafe {
7377            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7378            s.assume_init()
7379        }
7380    }
7381}
7382#[doc = " Input parameters for the EOS_SessionSearch_SetSessionId function."]
7383pub type EOS_SessionSearch_SetSessionIdOptions = _tagEOS_SessionSearch_SetSessionIdOptions;
7384#[doc = " Input parameters for the EOS_SessionSearch_SetTargetUserId function."]
7385#[repr(C)]
7386#[derive(Debug, Copy, Clone)]
7387pub struct _tagEOS_SessionSearch_SetTargetUserIdOptions {
7388    #[doc = " API Version: Set this to EOS_SESSIONSEARCH_SETTARGETUSERID_API_LATEST."]
7389    pub ApiVersion: i32,
7390    #[doc = " The Product User ID to find; return any sessions where the user matching this ID is currently registered"]
7391    pub TargetUserId: EOS_ProductUserId,
7392}
7393impl Default for _tagEOS_SessionSearch_SetTargetUserIdOptions {
7394    fn default() -> Self {
7395        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7396        unsafe {
7397            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7398            s.assume_init()
7399        }
7400    }
7401}
7402#[doc = " Input parameters for the EOS_SessionSearch_SetTargetUserId function."]
7403pub type EOS_SessionSearch_SetTargetUserIdOptions = _tagEOS_SessionSearch_SetTargetUserIdOptions;
7404#[doc = " Input parameters for the EOS_SessionSearch_SetParameter function.\n\n A search key may be set more than once to make multiple comparisons\n The two comparisons are AND'd together\n (ie, Key GREATER_THAN 5, Key NOT_EQUALS 10)"]
7405#[repr(C)]
7406#[derive(Debug, Copy, Clone)]
7407pub struct _tagEOS_SessionSearch_SetParameterOptions {
7408    #[doc = " API Version: Set this to EOS_SESSIONSEARCH_SETPARAMETER_API_LATEST."]
7409    pub ApiVersion: i32,
7410    #[doc = " Search parameter describing a key and a value to compare"]
7411    pub Parameter: *const EOS_Sessions_AttributeData,
7412    #[doc = " The type of comparison to make against the search parameter"]
7413    pub ComparisonOp: EOS_EOnlineComparisonOp,
7414}
7415impl Default for _tagEOS_SessionSearch_SetParameterOptions {
7416    fn default() -> Self {
7417        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7418        unsafe {
7419            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7420            s.assume_init()
7421        }
7422    }
7423}
7424#[doc = " Input parameters for the EOS_SessionSearch_SetParameter function.\n\n A search key may be set more than once to make multiple comparisons\n The two comparisons are AND'd together\n (ie, Key GREATER_THAN 5, Key NOT_EQUALS 10)"]
7425pub type EOS_SessionSearch_SetParameterOptions = _tagEOS_SessionSearch_SetParameterOptions;
7426#[doc = " Input parameters for the EOS_SessionSearch_RemoveParameter function.\n\n Removal requires both the key and its comparator in order to remove as the same key can be used in more than one operation"]
7427#[repr(C)]
7428#[derive(Debug, Copy, Clone)]
7429pub struct _tagEOS_SessionSearch_RemoveParameterOptions {
7430    #[doc = " API Version: Set this to EOS_SESSIONSEARCH_REMOVEPARAMETER_API_LATEST."]
7431    pub ApiVersion: i32,
7432    #[doc = " Search parameter key to remove from the search"]
7433    pub Key: *const ::std::os::raw::c_char,
7434    #[doc = " Search comparison operation associated with the key to remove"]
7435    pub ComparisonOp: EOS_EOnlineComparisonOp,
7436}
7437impl Default for _tagEOS_SessionSearch_RemoveParameterOptions {
7438    fn default() -> Self {
7439        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7440        unsafe {
7441            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7442            s.assume_init()
7443        }
7444    }
7445}
7446#[doc = " Input parameters for the EOS_SessionSearch_RemoveParameter function.\n\n Removal requires both the key and its comparator in order to remove as the same key can be used in more than one operation"]
7447pub type EOS_SessionSearch_RemoveParameterOptions = _tagEOS_SessionSearch_RemoveParameterOptions;
7448#[doc = " Common settings associated with a single session"]
7449#[repr(C)]
7450#[derive(Debug, Copy, Clone)]
7451pub struct _tagEOS_SessionDetails_Settings {
7452    #[doc = " API Version: Set this to EOS_SESSIONDETAILS_SETTINGS_API_LATEST."]
7453    pub ApiVersion: i32,
7454    #[doc = " The main indexed parameter for this session, can be any string (i.e. \"Region:GameMode\")"]
7455    pub BucketId: *const ::std::os::raw::c_char,
7456    #[doc = " Number of total players allowed in the session"]
7457    pub NumPublicConnections: u32,
7458    #[doc = " Are players allowed to join the session while it is in the \"in progress\" state"]
7459    pub bAllowJoinInProgress: EOS_Bool,
7460    #[doc = " Permission level describing allowed access to the session when joining or searching for the session"]
7461    pub PermissionLevel: EOS_EOnlineSessionPermissionLevel,
7462    #[doc = " Are players allowed to send invites for the session"]
7463    pub bInvitesAllowed: EOS_Bool,
7464    #[doc = " Are sanctioned players allowed to join - sanctioned players will be rejected if set to true"]
7465    pub bSanctionsEnabled: EOS_Bool,
7466    #[doc = " Array of platform IDs indicating the player platforms allowed to register with the session. Platform IDs are\n found in the EOS header file, e.g. EOS_OPT_Epic. For some platforms, the value will be in the EOS Platform specific\n header file. If null, the session will be unrestricted."]
7467    pub AllowedPlatformIds: *const u32,
7468    #[doc = " Number of platform IDs in the array"]
7469    pub AllowedPlatformIdsCount: u32,
7470}
7471impl Default for _tagEOS_SessionDetails_Settings {
7472    fn default() -> Self {
7473        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7474        unsafe {
7475            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7476            s.assume_init()
7477        }
7478    }
7479}
7480#[doc = " Common settings associated with a single session"]
7481pub type EOS_SessionDetails_Settings = _tagEOS_SessionDetails_Settings;
7482#[doc = " Internal details about a session, found on both active sessions and within search results"]
7483#[repr(C)]
7484#[derive(Debug, Copy, Clone)]
7485pub struct _tagEOS_SessionDetails_Info {
7486    #[doc = " API Version: Set this to EOS_SESSIONDETAILS_INFO_API_LATEST."]
7487    pub ApiVersion: i32,
7488    #[doc = " Session ID assigned by the backend service"]
7489    pub SessionId: *const ::std::os::raw::c_char,
7490    #[doc = " IP address of this session as visible by the backend service"]
7491    pub HostAddress: *const ::std::os::raw::c_char,
7492    #[doc = " Number of remaining open spaces on the session (NumPublicConnections - RegisteredPlayers"]
7493    pub NumOpenPublicConnections: u32,
7494    #[doc = " Reference to the additional settings associated with this session"]
7495    pub Settings: *const EOS_SessionDetails_Settings,
7496    #[doc = " The Product User ID of the session owner. Null if the session is not owned by a user."]
7497    pub OwnerUserId: EOS_ProductUserId,
7498    #[doc = " The client id of the session owner. Null if the session is not owned by a server. The session is owned by a server if EOS_Platform_Options::bIsServer is EOS_TRUE."]
7499    pub OwnerServerClientId: *const ::std::os::raw::c_char,
7500}
7501impl Default for _tagEOS_SessionDetails_Info {
7502    fn default() -> Self {
7503        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7504        unsafe {
7505            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7506            s.assume_init()
7507        }
7508    }
7509}
7510#[doc = " Internal details about a session, found on both active sessions and within search results"]
7511pub type EOS_SessionDetails_Info = _tagEOS_SessionDetails_Info;
7512unsafe extern "C" {
7513    #[doc = " Release the memory associated with an EOS_SessionDetails_Info structure. This must be called on data retrieved from EOS_SessionDetails_CopyInfo.\n\n @param SessionInfo - The session details structure to be released\n\n @see EOS_SessionDetails_Info\n @see EOS_SessionDetails_CopyInfo"]
7514    pub fn EOS_SessionDetails_Info_Release(SessionInfo: *mut EOS_SessionDetails_Info);
7515}
7516#[doc = " Input parameters for the EOS_SessionDetails_CopyInfo function."]
7517#[repr(C)]
7518#[derive(Debug, Default, Copy, Clone)]
7519pub struct _tagEOS_SessionDetails_CopyInfoOptions {
7520    #[doc = " API Version: Set this to EOS_SESSIONDETAILS_COPYINFO_API_LATEST."]
7521    pub ApiVersion: i32,
7522}
7523#[doc = " Input parameters for the EOS_SessionDetails_CopyInfo function."]
7524pub type EOS_SessionDetails_CopyInfoOptions = _tagEOS_SessionDetails_CopyInfoOptions;
7525#[doc = " Input parameters for the EOS_SessionDetails_GetSessionAttributeCount function."]
7526#[repr(C)]
7527#[derive(Debug, Default, Copy, Clone)]
7528pub struct _tagEOS_SessionDetails_GetSessionAttributeCountOptions {
7529    #[doc = " API Version: Set this to EOS_SESSIONDETAILS_GETSESSIONATTRIBUTECOUNT_API_LATEST."]
7530    pub ApiVersion: i32,
7531}
7532#[doc = " Input parameters for the EOS_SessionDetails_GetSessionAttributeCount function."]
7533pub type EOS_SessionDetails_GetSessionAttributeCountOptions =
7534    _tagEOS_SessionDetails_GetSessionAttributeCountOptions;
7535#[doc = " Input parameters for the EOS_SessionDetails_CopySessionAttributeByIndex function."]
7536#[repr(C)]
7537#[derive(Debug, Default, Copy, Clone)]
7538pub struct _tagEOS_SessionDetails_CopySessionAttributeByIndexOptions {
7539    #[doc = " API Version: Set this to EOS_SESSIONDETAILS_COPYSESSIONATTRIBUTEBYINDEX_API_LATEST."]
7540    pub ApiVersion: i32,
7541    #[doc = " The index of the attribute to retrieve\n @see EOS_SessionDetails_GetSessionAttributeCount"]
7542    pub AttrIndex: u32,
7543}
7544#[doc = " Input parameters for the EOS_SessionDetails_CopySessionAttributeByIndex function."]
7545pub type EOS_SessionDetails_CopySessionAttributeByIndexOptions =
7546    _tagEOS_SessionDetails_CopySessionAttributeByIndexOptions;
7547#[doc = " Input parameters for the EOS_SessionDetails_CopySessionAttributeByKey function."]
7548#[repr(C)]
7549#[derive(Debug, Copy, Clone)]
7550pub struct _tagEOS_SessionDetails_CopySessionAttributeByKeyOptions {
7551    #[doc = " API Version: Set this to EOS_SESSIONDETAILS_COPYSESSIONATTRIBUTEBYKEY_API_LATEST."]
7552    pub ApiVersion: i32,
7553    #[doc = " The name of the key to get the session attribution for\n @see EOS_SessionModification_AddAttribute"]
7554    pub AttrKey: *const ::std::os::raw::c_char,
7555}
7556impl Default for _tagEOS_SessionDetails_CopySessionAttributeByKeyOptions {
7557    fn default() -> Self {
7558        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7559        unsafe {
7560            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7561            s.assume_init()
7562        }
7563    }
7564}
7565#[doc = " Input parameters for the EOS_SessionDetails_CopySessionAttributeByKey function."]
7566pub type EOS_SessionDetails_CopySessionAttributeByKeyOptions =
7567    _tagEOS_SessionDetails_CopySessionAttributeByKeyOptions;
7568#[doc = " Top level details about an active session"]
7569#[repr(C)]
7570#[derive(Debug, Copy, Clone)]
7571pub struct _tagEOS_ActiveSession_Info {
7572    #[doc = " API Version: Set this to EOS_ACTIVESESSION_INFO_API_LATEST."]
7573    pub ApiVersion: i32,
7574    #[doc = " Name of the session"]
7575    pub SessionName: *const ::std::os::raw::c_char,
7576    #[doc = " The Product User ID of the local user who created or joined the session"]
7577    pub LocalUserId: EOS_ProductUserId,
7578    #[doc = " Current state of the session"]
7579    pub State: EOS_EOnlineSessionState,
7580    #[doc = " Session details"]
7581    pub SessionDetails: *const EOS_SessionDetails_Info,
7582}
7583impl Default for _tagEOS_ActiveSession_Info {
7584    fn default() -> Self {
7585        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7586        unsafe {
7587            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7588            s.assume_init()
7589        }
7590    }
7591}
7592#[doc = " Top level details about an active session"]
7593pub type EOS_ActiveSession_Info = _tagEOS_ActiveSession_Info;
7594unsafe extern "C" {
7595    #[doc = " Release the memory associated with an EOS_ActiveSession_Info structure. This must be called on data retrieved from EOS_ActiveSession_CopyInfo.\n\n @param ActiveSessionInfo - The active session structure to be released\n\n @see EOS_ActiveSession_Info\n @see EOS_ActiveSession_CopyInfo"]
7596    pub fn EOS_ActiveSession_Info_Release(ActiveSessionInfo: *mut EOS_ActiveSession_Info);
7597}
7598#[doc = " Input parameters for the EOS_Sessions_CopyActiveSessionHandle function."]
7599#[repr(C)]
7600#[derive(Debug, Copy, Clone)]
7601pub struct _tagEOS_Sessions_CopyActiveSessionHandleOptions {
7602    #[doc = " API Version: Set this to EOS_SESSIONS_COPYACTIVESESSIONHANDLE_API_LATEST."]
7603    pub ApiVersion: i32,
7604    #[doc = " Name of the session for which to retrieve a session handle"]
7605    pub SessionName: *const ::std::os::raw::c_char,
7606}
7607impl Default for _tagEOS_Sessions_CopyActiveSessionHandleOptions {
7608    fn default() -> Self {
7609        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7610        unsafe {
7611            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7612            s.assume_init()
7613        }
7614    }
7615}
7616#[doc = " Input parameters for the EOS_Sessions_CopyActiveSessionHandle function."]
7617pub type EOS_Sessions_CopyActiveSessionHandleOptions =
7618    _tagEOS_Sessions_CopyActiveSessionHandleOptions;
7619#[doc = " Input parameters for the EOS_Sessions_AddNotifySessionInviteReceived function."]
7620#[repr(C)]
7621#[derive(Debug, Default, Copy, Clone)]
7622pub struct _tagEOS_Sessions_AddNotifySessionInviteReceivedOptions {
7623    #[doc = " API Version: Set this to EOS_SESSIONS_ADDNOTIFYSESSIONINVITERECEIVED_API_LATEST."]
7624    pub ApiVersion: i32,
7625}
7626#[doc = " Input parameters for the EOS_Sessions_AddNotifySessionInviteReceived function."]
7627pub type EOS_Sessions_AddNotifySessionInviteReceivedOptions =
7628    _tagEOS_Sessions_AddNotifySessionInviteReceivedOptions;
7629#[doc = " Output parameters for the EOS_Sessions_OnSessionInviteReceivedCallback function."]
7630#[repr(C)]
7631#[derive(Debug, Copy, Clone)]
7632pub struct _tagEOS_Sessions_SessionInviteReceivedCallbackInfo {
7633    #[doc = " Context that was passed into EOS_Sessions_AddNotifySessionInviteReceived"]
7634    pub ClientData: *mut ::std::os::raw::c_void,
7635    #[doc = " The Product User ID of the user who received the invite"]
7636    pub LocalUserId: EOS_ProductUserId,
7637    #[doc = " The Product User ID of the user who sent the invitation"]
7638    pub TargetUserId: EOS_ProductUserId,
7639    #[doc = " Invite ID used to retrieve the actual session details"]
7640    pub InviteId: *const ::std::os::raw::c_char,
7641}
7642impl Default for _tagEOS_Sessions_SessionInviteReceivedCallbackInfo {
7643    fn default() -> Self {
7644        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7645        unsafe {
7646            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7647            s.assume_init()
7648        }
7649    }
7650}
7651#[doc = " Output parameters for the EOS_Sessions_OnSessionInviteReceivedCallback function."]
7652pub type EOS_Sessions_SessionInviteReceivedCallbackInfo =
7653    _tagEOS_Sessions_SessionInviteReceivedCallbackInfo;
7654#[doc = " Function prototype definition for notifications that come from EOS_Sessions_AddNotifySessionInviteReceived\n\n @param Data A EOS_Sessions_SessionInviteReceivedCallbackInfo containing the output information and result"]
7655pub type EOS_Sessions_OnSessionInviteReceivedCallback = ::std::option::Option<
7656    unsafe extern "C" fn(Data: *const EOS_Sessions_SessionInviteReceivedCallbackInfo),
7657>;
7658#[doc = " Input parameters for the EOS_Sessions_AddNotifySessionInviteAccepted function."]
7659#[repr(C)]
7660#[derive(Debug, Default, Copy, Clone)]
7661pub struct _tagEOS_Sessions_AddNotifySessionInviteAcceptedOptions {
7662    #[doc = " API Version: Set this to EOS_SESSIONS_ADDNOTIFYSESSIONINVITEACCEPTED_API_LATEST."]
7663    pub ApiVersion: i32,
7664}
7665#[doc = " Input parameters for the EOS_Sessions_AddNotifySessionInviteAccepted function."]
7666pub type EOS_Sessions_AddNotifySessionInviteAcceptedOptions =
7667    _tagEOS_Sessions_AddNotifySessionInviteAcceptedOptions;
7668#[doc = " Output parameters for the EOS_Sessions_OnSessionInviteAcceptedCallback function."]
7669#[repr(C)]
7670#[derive(Debug, Copy, Clone)]
7671pub struct _tagEOS_Sessions_SessionInviteAcceptedCallbackInfo {
7672    #[doc = " Context that was passed into EOS_Sessions_AddNotifySessionInviteAccepted"]
7673    pub ClientData: *mut ::std::os::raw::c_void,
7674    #[doc = " Session ID that should be used for joining"]
7675    pub SessionId: *const ::std::os::raw::c_char,
7676    #[doc = " The Product User ID of the user who accepted the invitation"]
7677    pub LocalUserId: EOS_ProductUserId,
7678    #[doc = " The Product User ID of the user who sent the invitation"]
7679    pub TargetUserId: EOS_ProductUserId,
7680    #[doc = " Invite ID that was accepted"]
7681    pub InviteId: *const ::std::os::raw::c_char,
7682}
7683impl Default for _tagEOS_Sessions_SessionInviteAcceptedCallbackInfo {
7684    fn default() -> Self {
7685        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7686        unsafe {
7687            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7688            s.assume_init()
7689        }
7690    }
7691}
7692#[doc = " Output parameters for the EOS_Sessions_OnSessionInviteAcceptedCallback function."]
7693pub type EOS_Sessions_SessionInviteAcceptedCallbackInfo =
7694    _tagEOS_Sessions_SessionInviteAcceptedCallbackInfo;
7695#[doc = " Function prototype definition for notifications that come from EOS_Sessions_AddNotifySessionInviteAccepted\n\n @param Data A EOS_Sessions_SessionInviteAcceptedCallbackInfo containing the output information and result\n\n @note The session for the invite must be joined.\n\n @see EOS_Sessions_CopySessionHandleByInviteId\n @see EOS_Sessions_JoinSession"]
7696pub type EOS_Sessions_OnSessionInviteAcceptedCallback = ::std::option::Option<
7697    unsafe extern "C" fn(Data: *const EOS_Sessions_SessionInviteAcceptedCallbackInfo),
7698>;
7699#[doc = " Input parameters for the EOS_Sessions_AddNotifySessionInviteRejected function."]
7700#[repr(C)]
7701#[derive(Debug, Default, Copy, Clone)]
7702pub struct _tagEOS_Sessions_AddNotifySessionInviteRejectedOptions {
7703    #[doc = " API Version: Set this to EOS_SESSIONS_ADDNOTIFYSESSIONINVITEREJECTED_API_LATEST."]
7704    pub ApiVersion: i32,
7705}
7706#[doc = " Input parameters for the EOS_Sessions_AddNotifySessionInviteRejected function."]
7707pub type EOS_Sessions_AddNotifySessionInviteRejectedOptions =
7708    _tagEOS_Sessions_AddNotifySessionInviteRejectedOptions;
7709#[doc = " Output parameters for the EOS_Sessions_OnSessionInviteRejectedCallback function."]
7710#[repr(C)]
7711#[derive(Debug, Copy, Clone)]
7712pub struct _tagEOS_Sessions_SessionInviteRejectedCallbackInfo {
7713    #[doc = " Context that was passed into EOS_Sessions_AddNotifySessionInviteRejected"]
7714    pub ClientData: *mut ::std::os::raw::c_void,
7715    #[doc = " The invite ID"]
7716    pub InviteId: *const ::std::os::raw::c_char,
7717    #[doc = " The Product User ID of the local user who rejected the invitation"]
7718    pub LocalUserId: EOS_ProductUserId,
7719    #[doc = " The Product User ID of the user who sent the invitation"]
7720    pub TargetUserId: EOS_ProductUserId,
7721    #[doc = " Optional session ID"]
7722    pub SessionId: *const ::std::os::raw::c_char,
7723}
7724impl Default for _tagEOS_Sessions_SessionInviteRejectedCallbackInfo {
7725    fn default() -> Self {
7726        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7727        unsafe {
7728            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7729            s.assume_init()
7730        }
7731    }
7732}
7733#[doc = " Output parameters for the EOS_Sessions_OnSessionInviteRejectedCallback function."]
7734pub type EOS_Sessions_SessionInviteRejectedCallbackInfo =
7735    _tagEOS_Sessions_SessionInviteRejectedCallbackInfo;
7736#[doc = " Function prototype definition for notifications that come from EOS_Sessions_AddNotifySessionInviteRejected\n\n @param Data A EOS_Sessions_SessionInviteRejectedCallbackInfo containing the output information and result\n\n @see EOS_Sessions_CopySessionHandleByInviteId\n @see EOS_Sessions_JoinSession"]
7737pub type EOS_Sessions_OnSessionInviteRejectedCallback = ::std::option::Option<
7738    unsafe extern "C" fn(Data: *const EOS_Sessions_SessionInviteRejectedCallbackInfo),
7739>;
7740#[doc = " Input parameters for the EOS_Sessions_AddNotifyJoinSessionAccepted function."]
7741#[repr(C)]
7742#[derive(Debug, Default, Copy, Clone)]
7743pub struct _tagEOS_Sessions_AddNotifyJoinSessionAcceptedOptions {
7744    #[doc = " API Version: Set this to EOS_SESSIONS_ADDNOTIFYJOINSESSIONACCEPTED_API_LATEST."]
7745    pub ApiVersion: i32,
7746}
7747#[doc = " Input parameters for the EOS_Sessions_AddNotifyJoinSessionAccepted function."]
7748pub type EOS_Sessions_AddNotifyJoinSessionAcceptedOptions =
7749    _tagEOS_Sessions_AddNotifyJoinSessionAcceptedOptions;
7750#[doc = " Output parameters for the EOS_Sessions_OnJoinSessionAcceptedCallback function."]
7751#[repr(C)]
7752#[derive(Debug, Copy, Clone)]
7753pub struct _tagEOS_Sessions_JoinSessionAcceptedCallbackInfo {
7754    #[doc = " Context that was passed into EOS_Sessions_AddNotifyJoinSessionAccepted"]
7755    pub ClientData: *mut ::std::os::raw::c_void,
7756    #[doc = " The Product User ID for the user who initialized the game"]
7757    pub LocalUserId: EOS_ProductUserId,
7758    #[doc = " The UI Event associated with this Join Game event.\n This should be used with EOS_Sessions_CopySessionHandleByUiEventId to get a handle to be used\n when calling EOS_Sessions_JoinSession."]
7759    pub UiEventId: EOS_UI_EventId,
7760}
7761impl Default for _tagEOS_Sessions_JoinSessionAcceptedCallbackInfo {
7762    fn default() -> Self {
7763        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7764        unsafe {
7765            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7766            s.assume_init()
7767        }
7768    }
7769}
7770#[doc = " Output parameters for the EOS_Sessions_OnJoinSessionAcceptedCallback function."]
7771pub type EOS_Sessions_JoinSessionAcceptedCallbackInfo =
7772    _tagEOS_Sessions_JoinSessionAcceptedCallbackInfo;
7773#[doc = " Function prototype definition for notifications that come from EOS_Sessions_AddNotifyJoinSessionAccepted\n\n @param Data A EOS_Sessions_JoinSessionAcceptedCallbackInfo containing the output information and result\n\n @note The session for the join game must be joined.\n\n @see EOS_Sessions_CopySessionHandleByUiEventId\n @see EOS_Sessions_JoinSession"]
7774pub type EOS_Sessions_OnJoinSessionAcceptedCallback = ::std::option::Option<
7775    unsafe extern "C" fn(Data: *const EOS_Sessions_JoinSessionAcceptedCallbackInfo),
7776>;
7777#[doc = " Input parameters for the EOS_Sessions_CopySessionHandleByInviteId function."]
7778#[repr(C)]
7779#[derive(Debug, Copy, Clone)]
7780pub struct _tagEOS_Sessions_CopySessionHandleByInviteIdOptions {
7781    #[doc = " API Version: Set this to EOS_SESSIONS_COPYSESSIONHANDLEBYINVITEID_API_LATEST."]
7782    pub ApiVersion: i32,
7783    #[doc = " Invite ID for which to retrieve a session handle"]
7784    pub InviteId: *const ::std::os::raw::c_char,
7785}
7786impl Default for _tagEOS_Sessions_CopySessionHandleByInviteIdOptions {
7787    fn default() -> Self {
7788        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7789        unsafe {
7790            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7791            s.assume_init()
7792        }
7793    }
7794}
7795#[doc = " Input parameters for the EOS_Sessions_CopySessionHandleByInviteId function."]
7796pub type EOS_Sessions_CopySessionHandleByInviteIdOptions =
7797    _tagEOS_Sessions_CopySessionHandleByInviteIdOptions;
7798#[doc = " Input parameters for the EOS_Sessions_CopySessionHandleByUiEventId function."]
7799#[repr(C)]
7800#[derive(Debug, Default, Copy, Clone)]
7801pub struct _tagEOS_Sessions_CopySessionHandleByUiEventIdOptions {
7802    #[doc = " API Version: Set this to EOS_SESSIONS_COPYSESSIONHANDLEBYUIEVENTID_API_LATEST."]
7803    pub ApiVersion: i32,
7804    #[doc = " UI Event associated with the session"]
7805    pub UiEventId: EOS_UI_EventId,
7806}
7807#[doc = " Input parameters for the EOS_Sessions_CopySessionHandleByUiEventId function."]
7808pub type EOS_Sessions_CopySessionHandleByUiEventIdOptions =
7809    _tagEOS_Sessions_CopySessionHandleByUiEventIdOptions;
7810#[doc = " Input parameters for the EOS_Sessions_CopySessionHandleForPresence function."]
7811#[repr(C)]
7812#[derive(Debug, Copy, Clone)]
7813pub struct _tagEOS_Sessions_CopySessionHandleForPresenceOptions {
7814    #[doc = " API Version: Set this to EOS_SESSIONS_COPYSESSIONHANDLEFORPRESENCE_API_LATEST."]
7815    pub ApiVersion: i32,
7816    #[doc = " The Product User ID of the local user associated with the session"]
7817    pub LocalUserId: EOS_ProductUserId,
7818}
7819impl Default for _tagEOS_Sessions_CopySessionHandleForPresenceOptions {
7820    fn default() -> Self {
7821        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7822        unsafe {
7823            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7824            s.assume_init()
7825        }
7826    }
7827}
7828#[doc = " Input parameters for the EOS_Sessions_CopySessionHandleForPresence function."]
7829pub type EOS_Sessions_CopySessionHandleForPresenceOptions =
7830    _tagEOS_Sessions_CopySessionHandleForPresenceOptions;
7831#[doc = " Input parameters for the EOS_Sessions_IsUserInSession function."]
7832#[repr(C)]
7833#[derive(Debug, Copy, Clone)]
7834pub struct _tagEOS_Sessions_IsUserInSessionOptions {
7835    #[doc = " API Version: Set this to EOS_SESSIONS_ISUSERINSESSION_API_LATEST."]
7836    pub ApiVersion: i32,
7837    #[doc = " Active session name to search within"]
7838    pub SessionName: *const ::std::os::raw::c_char,
7839    #[doc = " Product User ID to search for in the session"]
7840    pub TargetUserId: EOS_ProductUserId,
7841}
7842impl Default for _tagEOS_Sessions_IsUserInSessionOptions {
7843    fn default() -> Self {
7844        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7845        unsafe {
7846            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7847            s.assume_init()
7848        }
7849    }
7850}
7851#[doc = " Input parameters for the EOS_Sessions_IsUserInSession function."]
7852pub type EOS_Sessions_IsUserInSessionOptions = _tagEOS_Sessions_IsUserInSessionOptions;
7853#[doc = " Input parameters for the EOS_Sessions_DumpSessionState function."]
7854#[repr(C)]
7855#[derive(Debug, Copy, Clone)]
7856pub struct _tagEOS_Sessions_DumpSessionStateOptions {
7857    #[doc = " API Version: Set this to EOS_SESSIONS_DUMPSESSIONSTATE_API_LATEST."]
7858    pub ApiVersion: i32,
7859    #[doc = " Name of the session"]
7860    pub SessionName: *const ::std::os::raw::c_char,
7861}
7862impl Default for _tagEOS_Sessions_DumpSessionStateOptions {
7863    fn default() -> Self {
7864        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7865        unsafe {
7866            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7867            s.assume_init()
7868        }
7869    }
7870}
7871#[doc = " Input parameters for the EOS_Sessions_DumpSessionState function."]
7872pub type EOS_Sessions_DumpSessionStateOptions = _tagEOS_Sessions_DumpSessionStateOptions;
7873#[doc = " Input parameters for the EOS_Sessions_AddNotifyLeaveSessionRequested function."]
7874#[repr(C)]
7875#[derive(Debug, Default, Copy, Clone)]
7876pub struct _tagEOS_Sessions_AddNotifyLeaveSessionRequestedOptions {
7877    #[doc = " API Version: Set this to EOS_SESSIONS_ADDNOTIFYLEAVESESSIONREQUESTED_API_LATEST."]
7878    pub ApiVersion: i32,
7879}
7880#[doc = " Input parameters for the EOS_Sessions_AddNotifyLeaveSessionRequested function."]
7881pub type EOS_Sessions_AddNotifyLeaveSessionRequestedOptions =
7882    _tagEOS_Sessions_AddNotifyLeaveSessionRequestedOptions;
7883#[doc = " Output parameters for the EOS_Sessions_OnLeaveSessionRequestedCallback Function."]
7884#[repr(C)]
7885#[derive(Debug, Copy, Clone)]
7886pub struct _tagEOS_Sessions_LeaveSessionRequestedCallbackInfo {
7887    #[doc = " Context that was passed into EOS_Sessions_OnLeaveSessionRequestedCallback"]
7888    pub ClientData: *mut ::std::os::raw::c_void,
7889    #[doc = " The Product User ID of the local user who received the leave session notification."]
7890    pub LocalUserId: EOS_ProductUserId,
7891    #[doc = " Name of the session associated with the leave session request."]
7892    pub SessionName: *const ::std::os::raw::c_char,
7893}
7894impl Default for _tagEOS_Sessions_LeaveSessionRequestedCallbackInfo {
7895    fn default() -> Self {
7896        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7897        unsafe {
7898            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7899            s.assume_init()
7900        }
7901    }
7902}
7903#[doc = " Output parameters for the EOS_Sessions_OnLeaveSessionRequestedCallback Function."]
7904pub type EOS_Sessions_LeaveSessionRequestedCallbackInfo =
7905    _tagEOS_Sessions_LeaveSessionRequestedCallbackInfo;
7906#[doc = " Function prototype definition for notifications that comes from EOS_Sessions_AddNotifyLeaveSessionRequested.\n\n @param Data A pointer to EOS_Sessions_LeaveSessionRequestedCallbackInfo containing the output information."]
7907pub type EOS_Sessions_OnLeaveSessionRequestedCallback = ::std::option::Option<
7908    unsafe extern "C" fn(Data: *const EOS_Sessions_LeaveSessionRequestedCallbackInfo),
7909>;
7910#[doc = " Input parameters for the EOS_Sessions_AddNotifySendSessionNativeInviteRequested function."]
7911#[repr(C)]
7912#[derive(Debug, Default, Copy, Clone)]
7913pub struct _tagEOS_Sessions_AddNotifySendSessionNativeInviteRequestedOptions {
7914    #[doc = " API Version: Set this to EOS_SESSIONS_ADDNOTIFYSENDSESSIONNATIVEINVITEREQUESTED_API_LATEST."]
7915    pub ApiVersion: i32,
7916}
7917#[doc = " Input parameters for the EOS_Sessions_AddNotifySendSessionNativeInviteRequested function."]
7918pub type EOS_Sessions_AddNotifySendSessionNativeInviteRequestedOptions =
7919    _tagEOS_Sessions_AddNotifySendSessionNativeInviteRequestedOptions;
7920#[doc = " Output parameters for the EOS_Sessions_OnSendSessionNativeInviteRequestedCallback Function."]
7921#[repr(C)]
7922#[derive(Debug, Copy, Clone)]
7923pub struct _tagEOS_Sessions_SendSessionNativeInviteRequestedCallbackInfo {
7924    #[doc = " Context that was passed into EOS_Sessions_AddNotifySendSessionNativeInviteRequested"]
7925    pub ClientData: *mut ::std::os::raw::c_void,
7926    #[doc = " Identifies this event which will need to be acknowledged with EOS_UI_AcknowledgeEventId().\n @see EOS_UI_AcknowledgeEventId"]
7927    pub UiEventId: EOS_UI_EventId,
7928    #[doc = " The Product User ID of the local user who is inviting."]
7929    pub LocalUserId: EOS_ProductUserId,
7930    #[doc = " The Native Platform Account Type. If only a single integrated platform is configured then\n this will always reference that platform."]
7931    pub TargetNativeAccountType: EOS_IntegratedPlatformType,
7932    #[doc = " The Native Platform Account ID of the target user being invited."]
7933    pub TargetUserNativeAccountId: *const ::std::os::raw::c_char,
7934    #[doc = " Session ID that the user is being invited to"]
7935    pub SessionId: *const ::std::os::raw::c_char,
7936}
7937impl Default for _tagEOS_Sessions_SendSessionNativeInviteRequestedCallbackInfo {
7938    fn default() -> Self {
7939        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7940        unsafe {
7941            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7942            s.assume_init()
7943        }
7944    }
7945}
7946#[doc = " Output parameters for the EOS_Sessions_OnSendSessionNativeInviteRequestedCallback Function."]
7947pub type EOS_Sessions_SendSessionNativeInviteRequestedCallbackInfo =
7948    _tagEOS_Sessions_SendSessionNativeInviteRequestedCallbackInfo;
7949#[doc = " Function prototype definition for notifications that comes from EOS_Sessions_AddNotifySendSessionNativeInviteRequested\n\n @param Data A EOS_Sessions_SendSessionNativeInviteRequestedCallbackInfo containing the output information and result\n\n @note After processing the callback EOS_UI_AcknowledgeEventId must be called.\n\n @see EOS_UI_AcknowledgeEventId"]
7950pub type EOS_Sessions_OnSendSessionNativeInviteRequestedCallback = ::std::option::Option<
7951    unsafe extern "C" fn(Data: *const EOS_Sessions_SendSessionNativeInviteRequestedCallbackInfo),
7952>;
7953#[repr(C)]
7954#[derive(Debug, Copy, Clone)]
7955pub struct EOS_LobbyHandle {
7956    _unused: [u8; 0],
7957}
7958#[doc = " Handle to the lobby interface"]
7959pub type EOS_HLobby = *mut EOS_LobbyHandle;
7960#[repr(C)]
7961#[derive(Debug, Copy, Clone)]
7962pub struct EOS_LobbyModificationHandle {
7963    _unused: [u8; 0],
7964}
7965#[doc = " Handle to a lobby modification object"]
7966pub type EOS_HLobbyModification = *mut EOS_LobbyModificationHandle;
7967#[repr(C)]
7968#[derive(Debug, Copy, Clone)]
7969pub struct EOS_LobbyDetailsHandle {
7970    _unused: [u8; 0],
7971}
7972#[doc = " Handle to a single lobby"]
7973pub type EOS_HLobbyDetails = *mut EOS_LobbyDetailsHandle;
7974#[repr(C)]
7975#[derive(Debug, Copy, Clone)]
7976pub struct EOS_LobbySearchHandle {
7977    _unused: [u8; 0],
7978}
7979#[doc = " Handle to the calls responsible for creating a search object"]
7980pub type EOS_HLobbySearch = *mut EOS_LobbySearchHandle;
7981unsafe extern "C" {
7982    #[doc = " Release the memory associated with a lobby modification. This must be called on data retrieved from EOS_Lobby_UpdateLobbyModification.\n\n @param LobbyModificationHandle - The lobby modification handle to release\n\n @see EOS_Lobby_UpdateLobbyModification"]
7983    pub fn EOS_LobbyModification_Release(LobbyModificationHandle: EOS_HLobbyModification);
7984}
7985unsafe extern "C" {
7986    #[doc = " Release the memory associated with a single lobby. This must be called on data retrieved from EOS_LobbySearch_CopySearchResultByIndex.\n\n @param LobbyHandle - The lobby handle to release\n\n @see EOS_LobbySearch_CopySearchResultByIndex"]
7987    pub fn EOS_LobbyDetails_Release(LobbyHandle: EOS_HLobbyDetails);
7988}
7989unsafe extern "C" {
7990    #[doc = " Release the memory associated with a lobby search. This must be called on data retrieved from EOS_Lobby_CreateLobbySearch.\n\n @param LobbySearchHandle - The lobby search handle to release\n\n @see EOS_Lobby_CreateLobbySearch"]
7991    pub fn EOS_LobbySearch_Release(LobbySearchHandle: EOS_HLobbySearch);
7992}
7993#[doc = " All lobbies are referenced by a unique lobby ID"]
7994pub type EOS_LobbyId = *const ::std::os::raw::c_char;
7995#[doc = " Anyone can find this lobby as long as it isn't full"]
7996pub const EOS_ELobbyPermissionLevel_EOS_LPL_PUBLICADVERTISED: EOS_ELobbyPermissionLevel = 0;
7997#[doc = " Players who have access to presence can see this lobby"]
7998pub const EOS_ELobbyPermissionLevel_EOS_LPL_JOINVIAPRESENCE: EOS_ELobbyPermissionLevel = 1;
7999#[doc = " Only players with invites registered can see this lobby"]
8000pub const EOS_ELobbyPermissionLevel_EOS_LPL_INVITEONLY: EOS_ELobbyPermissionLevel = 2;
8001pub const EOS_ELobbyPermissionLevel___EOS_ELobbyPermissionLevel_PAD_INT32__:
8002    EOS_ELobbyPermissionLevel = 2147483647;
8003#[doc = " Permission level gets more restrictive further down"]
8004pub type EOS_ELobbyPermissionLevel = ::std::os::raw::c_int;
8005#[doc = " Data is visible to lobby members, searchable and visible in search results."]
8006pub const EOS_ELobbyAttributeVisibility_EOS_LAT_PUBLIC: EOS_ELobbyAttributeVisibility = 0;
8007#[doc = " Data is only visible to the user setting the data. Data is not visible to lobby members, not searchable, and not visible in search results."]
8008pub const EOS_ELobbyAttributeVisibility_EOS_LAT_PRIVATE: EOS_ELobbyAttributeVisibility = 1;
8009pub const EOS_ELobbyAttributeVisibility___EOS_ELobbyAttributeVisibility_PAD_INT32__:
8010    EOS_ELobbyAttributeVisibility = 2147483647;
8011#[doc = " Advertisement properties for a single attribute associated with a lobby"]
8012pub type EOS_ELobbyAttributeVisibility = ::std::os::raw::c_int;
8013#[doc = " The user has joined the lobby"]
8014pub const EOS_ELobbyMemberStatus_EOS_LMS_JOINED: EOS_ELobbyMemberStatus = 0;
8015#[doc = " The user has explicitly left the lobby"]
8016pub const EOS_ELobbyMemberStatus_EOS_LMS_LEFT: EOS_ELobbyMemberStatus = 1;
8017#[doc = " The user has unexpectedly left the lobby"]
8018pub const EOS_ELobbyMemberStatus_EOS_LMS_DISCONNECTED: EOS_ELobbyMemberStatus = 2;
8019#[doc = " The user has been kicked from the lobby"]
8020pub const EOS_ELobbyMemberStatus_EOS_LMS_KICKED: EOS_ELobbyMemberStatus = 3;
8021#[doc = " The user has been promoted to lobby owner"]
8022pub const EOS_ELobbyMemberStatus_EOS_LMS_PROMOTED: EOS_ELobbyMemberStatus = 4;
8023#[doc = " The lobby has been closed and user has been removed"]
8024pub const EOS_ELobbyMemberStatus_EOS_LMS_CLOSED: EOS_ELobbyMemberStatus = 5;
8025pub const EOS_ELobbyMemberStatus___EOS_ELobbyMemberStatus_PAD_INT32__: EOS_ELobbyMemberStatus =
8026    2147483647;
8027#[doc = " Various types of lobby member updates"]
8028pub type EOS_ELobbyMemberStatus = ::std::os::raw::c_int;
8029#[doc = " Join RTC Room as soon as user joins the lobby"]
8030pub const EOS_ELobbyRTCRoomJoinActionType_EOS_LRRJAT_AutomaticJoin:
8031    EOS_ELobbyRTCRoomJoinActionType = 0;
8032#[doc = " Do not join RTC Room when joining the lobby. User must manually call Join RTC Room"]
8033pub const EOS_ELobbyRTCRoomJoinActionType_EOS_LRRJAT_ManualJoin: EOS_ELobbyRTCRoomJoinActionType =
8034    1;
8035pub const EOS_ELobbyRTCRoomJoinActionType___EOS_ELobbyRTCRoomJoinActionType_PAD_INT32__:
8036    EOS_ELobbyRTCRoomJoinActionType = 2147483647;
8037#[doc = " Defines the type of action to take against RTC room when joining a lobby"]
8038pub type EOS_ELobbyRTCRoomJoinActionType = ::std::os::raw::c_int;
8039#[doc = " Contains information about a single lobby."]
8040#[repr(C)]
8041#[derive(Debug, Copy, Clone)]
8042pub struct _tagEOS_LobbyDetails_Info {
8043    #[doc = " API Version: Set this to EOS_LOBBYDETAILS_INFO_API_LATEST."]
8044    pub ApiVersion: i32,
8045    #[doc = " Lobby ID"]
8046    pub LobbyId: EOS_LobbyId,
8047    #[doc = " The Product User ID of the current owner of the lobby"]
8048    pub LobbyOwnerUserId: EOS_ProductUserId,
8049    #[doc = " Permission level of the lobby"]
8050    pub PermissionLevel: EOS_ELobbyPermissionLevel,
8051    #[doc = " Current available space"]
8052    pub AvailableSlots: u32,
8053    #[doc = " Max allowed members in the lobby"]
8054    pub MaxMembers: u32,
8055    #[doc = " If true, users can invite others to this lobby"]
8056    pub bAllowInvites: EOS_Bool,
8057    #[doc = " The main indexed parameter for this lobby, can be any string (i.e. \"Region:GameMode\")"]
8058    pub BucketId: *const ::std::os::raw::c_char,
8059    #[doc = " Is host migration allowed"]
8060    pub bAllowHostMigration: EOS_Bool,
8061    #[doc = " Was a Real-Time Communication (RTC) room enabled at lobby creation?"]
8062    pub bRTCRoomEnabled: EOS_Bool,
8063    #[doc = " Is EOS_Lobby_JoinLobbyById allowed"]
8064    pub bAllowJoinById: EOS_Bool,
8065    #[doc = " Does rejoining after being kicked require an invite"]
8066    pub bRejoinAfterKickRequiresInvite: EOS_Bool,
8067    #[doc = " If true, this lobby will be associated with the local user's presence information."]
8068    pub bPresenceEnabled: EOS_Bool,
8069    #[doc = " Array of platform IDs indicating the player platforms allowed to register with the lobby. Platform IDs are\n found in the EOS header file (eos_common.h), for example EOS_OPT_Epic. For some platforms the value will be\n in the EOS Platform specific header file. If null, the lobby will be unrestricted."]
8070    pub AllowedPlatformIds: *const u32,
8071    #[doc = " Number of platform IDs in the array"]
8072    pub AllowedPlatformIdsCount: u32,
8073}
8074impl Default for _tagEOS_LobbyDetails_Info {
8075    fn default() -> Self {
8076        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8077        unsafe {
8078            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8079            s.assume_init()
8080        }
8081    }
8082}
8083#[doc = " Contains information about a single lobby."]
8084pub type EOS_LobbyDetails_Info = _tagEOS_LobbyDetails_Info;
8085unsafe extern "C" {
8086    #[doc = " Release the memory associated with a lobby details info. This must be called on data retrieved from EOS_LobbyDetails_CopyInfo.\n\n @param LobbyDetailsInfo - The lobby details info to release\n\n @see EOS_LobbyDetails_CopyInfo"]
8087    pub fn EOS_LobbyDetails_Info_Release(LobbyDetailsInfo: *mut EOS_LobbyDetails_Info);
8088}
8089#[doc = " Input parameters to use with Lobby RTC Rooms."]
8090#[repr(C)]
8091#[derive(Debug, Copy, Clone)]
8092pub struct _tagEOS_Lobby_LocalRTCOptions {
8093    #[doc = " API Version: Set this to EOS_LOBBY_LOCALRTCOPTIONS_API_LATEST."]
8094    pub ApiVersion: i32,
8095    #[doc = " Flags for the local user in this room. The default is 0 if this struct is not specified. @see EOS_RTC_JoinRoomOptions::Flags"]
8096    pub Flags: u32,
8097    #[doc = " Set to EOS_TRUE to enable Manual Audio Input. If manual audio input is enabled, audio recording is not started and the audio buffers\n must be passed manually using EOS_RTCAudio_SendAudio. The default is EOS_FALSE if this struct is not specified."]
8098    pub bUseManualAudioInput: EOS_Bool,
8099    #[doc = " Set to EOS_TRUE to enable Manual Audio Output. If manual audio output is enabled, audio rendering is not started and the audio buffers\n must be received with EOS_RTCAudio_AddNotifyAudioBeforeRender and rendered manually. The default is EOS_FALSE if this struct is not\n specified."]
8100    pub bUseManualAudioOutput: EOS_Bool,
8101    #[doc = " Set to EOS_TRUE to start the audio input device's stream as muted when first connecting to the RTC room.\n\n It must be manually unmuted with a call to EOS_RTCAudio_UpdateSending. If manual audio output is enabled, this value is ignored.\n The default value is EOS_FALSE if this struct is not specified."]
8102    pub bLocalAudioDeviceInputStartsMuted: EOS_Bool,
8103    #[doc = " Reserved field, should be nullptr by default"]
8104    pub Reserved: *mut ::std::os::raw::c_void,
8105}
8106impl Default for _tagEOS_Lobby_LocalRTCOptions {
8107    fn default() -> Self {
8108        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8109        unsafe {
8110            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8111            s.assume_init()
8112        }
8113    }
8114}
8115#[doc = " Input parameters to use with Lobby RTC Rooms."]
8116pub type EOS_Lobby_LocalRTCOptions = _tagEOS_Lobby_LocalRTCOptions;
8117#[doc = " Input parameters for the EOS_Lobby_CreateLobby function."]
8118#[repr(C)]
8119#[derive(Debug, Copy, Clone)]
8120pub struct _tagEOS_Lobby_CreateLobbyOptions {
8121    #[doc = " API Version: Set this to EOS_LOBBY_CREATELOBBY_API_LATEST."]
8122    pub ApiVersion: i32,
8123    #[doc = " The Product User ID of the local user creating the lobby; this user will automatically join the lobby as its owner"]
8124    pub LocalUserId: EOS_ProductUserId,
8125    #[doc = " The maximum number of users who can be in the lobby at a time"]
8126    pub MaxLobbyMembers: u32,
8127    #[doc = " The initial permission level of the lobby"]
8128    pub PermissionLevel: EOS_ELobbyPermissionLevel,
8129    #[doc = " If true, this lobby will be associated with the local user's presence information. A user's presence can only be associated with one lobby at a time.\n This affects the ability of the Social Overlay to show game related actions to take in the user's social graph.\n\n @note The Social Overlay can handle only one of the following three options at a time:\n * using the bPresenceEnabled flags within the Sessions interface\n * using the bPresenceEnabled flags within the Lobby interface\n * using EOS_PresenceModification_SetJoinInfo\n\n @see EOS_PresenceModification_SetJoinInfoOptions\n @see EOS_Lobby_JoinLobbyOptions\n @see EOS_Lobby_JoinLobbyByIdOptions\n @see EOS_Sessions_CreateSessionModificationOptions\n @see EOS_Sessions_JoinSessionOptions"]
8130    pub bPresenceEnabled: EOS_Bool,
8131    #[doc = " Are members of the lobby allowed to invite others"]
8132    pub bAllowInvites: EOS_Bool,
8133    #[doc = " Bucket ID associated with the lobby"]
8134    pub BucketId: *const ::std::os::raw::c_char,
8135    #[doc = " Is host migration allowed (will the lobby stay open if the original host leaves?)\n NOTE: EOS_Lobby_PromoteMember is still allowed regardless of this setting"]
8136    pub bDisableHostMigration: EOS_Bool,
8137    #[doc = " Creates a real-time communication (RTC) room for all members of this lobby. All members of the lobby will automatically join the RTC\n room when they connect to the lobby and they will automatically leave the RTC room when they leave or are removed from the lobby.\n While the joining and leaving of the RTC room is automatic, applications will still need to use the EOS RTC interfaces to handle all\n other functionality for the room.\n\n @see EOS_Lobby_GetRTCRoomName\n @see EOS_Lobby_AddNotifyRTCRoomConnectionChanged"]
8138    pub bEnableRTCRoom: EOS_Bool,
8139    #[doc = " (Optional) Allows the local application to set local audio options for the RTC Room if it is enabled. Set this to NULL if the RTC\n RTC room is disabled or you would like to use the defaults."]
8140    pub LocalRTCOptions: *const EOS_Lobby_LocalRTCOptions,
8141    #[doc = " (Optional) Set to a globally unique value to override the backend assignment\n If not specified the backend service will assign one to the lobby.  Do not mix and match override and non override settings.\n This value can be of size [EOS_LOBBY_MIN_LOBBYIDOVERRIDE_LENGTH, EOS_LOBBY_MAX_LOBBYIDOVERRIDE_LENGTH]"]
8142    pub LobbyId: EOS_LobbyId,
8143    #[doc = " Is EOS_Lobby_JoinLobbyById allowed.\n This is provided to support cases where an integrated platform's invite system is used.\n In these cases the game should provide the lobby ID securely to the invited player.  Such as by attaching the\n lobby ID to the integrated platform's session data or sending the lobby ID within the invite data."]
8144    pub bEnableJoinById: EOS_Bool,
8145    #[doc = " Does rejoining after being kicked require an invite?\n When this is set, a kicked player cannot return to the session even if the session was set with\n EOS_LPL_PUBLICADVERTISED.  When this is set, a player with invite privileges must use EOS_Lobby_SendInvite to\n allow the kicked player to return to the session."]
8146    pub bRejoinAfterKickRequiresInvite: EOS_Bool,
8147    #[doc = " Array of platform IDs indicating the player platforms allowed to register with the session. Platform IDs are\n found in the EOS header file, e.g. EOS_OPT_Epic. For some platforms, the value will be in the EOS Platform specific\n header file. If null, the lobby will be unrestricted."]
8148    pub AllowedPlatformIds: *const u32,
8149    #[doc = " Number of platform IDs in the array"]
8150    pub AllowedPlatformIdsCount: u32,
8151    #[doc = " This value indicates whether or not the lobby owner allows crossplay interactions. If false, the lobby owner\n will be treated as allowing crossplay. If it is set to true, AllowedPlatformIds must have a single entry that matches\n the platform of the lobby owner."]
8152    pub bCrossplayOptOut: EOS_Bool,
8153    #[doc = " If bEnableRTCRoom is true, this value indicates the action to take against the RTC Room when joining the lobby. This may be used\n to indicate the RTCRoom should be joined immediately or manually at a later time."]
8154    pub RTCRoomJoinActionType: EOS_ELobbyRTCRoomJoinActionType,
8155}
8156impl Default for _tagEOS_Lobby_CreateLobbyOptions {
8157    fn default() -> Self {
8158        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8159        unsafe {
8160            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8161            s.assume_init()
8162        }
8163    }
8164}
8165#[doc = " Input parameters for the EOS_Lobby_CreateLobby function."]
8166pub type EOS_Lobby_CreateLobbyOptions = _tagEOS_Lobby_CreateLobbyOptions;
8167#[doc = " Output parameters for the EOS_Lobby_CreateLobby function."]
8168#[repr(C)]
8169#[derive(Debug, Copy, Clone)]
8170pub struct _tagEOS_Lobby_CreateLobbyCallbackInfo {
8171    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
8172    pub ResultCode: EOS_EResult,
8173    #[doc = " Context that was passed into EOS_Lobby_CreateLobby"]
8174    pub ClientData: *mut ::std::os::raw::c_void,
8175    #[doc = " The new lobby's ID"]
8176    pub LobbyId: EOS_LobbyId,
8177}
8178impl Default for _tagEOS_Lobby_CreateLobbyCallbackInfo {
8179    fn default() -> Self {
8180        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8181        unsafe {
8182            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8183            s.assume_init()
8184        }
8185    }
8186}
8187#[doc = " Output parameters for the EOS_Lobby_CreateLobby function."]
8188pub type EOS_Lobby_CreateLobbyCallbackInfo = _tagEOS_Lobby_CreateLobbyCallbackInfo;
8189#[doc = " Function prototype definition for callbacks passed to EOS_Lobby_CreateLobby\n @param Data A EOS_Lobby_CreateLobby CallbackInfo containing the output information and result"]
8190pub type EOS_Lobby_OnCreateLobbyCallback =
8191    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Lobby_CreateLobbyCallbackInfo)>;
8192#[doc = " Input parameters for the EOS_Lobby_DestroyLobby function."]
8193#[repr(C)]
8194#[derive(Debug, Copy, Clone)]
8195pub struct _tagEOS_Lobby_DestroyLobbyOptions {
8196    #[doc = " API Version: Set this to EOS_LOBBY_DESTROYLOBBY_API_LATEST."]
8197    pub ApiVersion: i32,
8198    #[doc = " The Product User ID of the local user requesting destruction of the lobby; this user must currently own the lobby"]
8199    pub LocalUserId: EOS_ProductUserId,
8200    #[doc = " The ID of the lobby to destroy"]
8201    pub LobbyId: EOS_LobbyId,
8202}
8203impl Default for _tagEOS_Lobby_DestroyLobbyOptions {
8204    fn default() -> Self {
8205        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8206        unsafe {
8207            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8208            s.assume_init()
8209        }
8210    }
8211}
8212#[doc = " Input parameters for the EOS_Lobby_DestroyLobby function."]
8213pub type EOS_Lobby_DestroyLobbyOptions = _tagEOS_Lobby_DestroyLobbyOptions;
8214#[doc = " Output parameters for the EOS_Lobby_DestroyLobby function."]
8215#[repr(C)]
8216#[derive(Debug, Copy, Clone)]
8217pub struct _tagEOS_Lobby_DestroyLobbyCallbackInfo {
8218    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
8219    pub ResultCode: EOS_EResult,
8220    #[doc = " Context that was passed into EOS_Lobby_DestroyLobby"]
8221    pub ClientData: *mut ::std::os::raw::c_void,
8222    #[doc = " The destroyed lobby's ID"]
8223    pub LobbyId: EOS_LobbyId,
8224}
8225impl Default for _tagEOS_Lobby_DestroyLobbyCallbackInfo {
8226    fn default() -> Self {
8227        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8228        unsafe {
8229            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8230            s.assume_init()
8231        }
8232    }
8233}
8234#[doc = " Output parameters for the EOS_Lobby_DestroyLobby function."]
8235pub type EOS_Lobby_DestroyLobbyCallbackInfo = _tagEOS_Lobby_DestroyLobbyCallbackInfo;
8236#[doc = " Function prototype definition for callbacks passed to EOS_Lobby_DestroyLobby\n @param Data A EOS_Lobby_DestroyLobby CallbackInfo containing the output information and result"]
8237pub type EOS_Lobby_OnDestroyLobbyCallback =
8238    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Lobby_DestroyLobbyCallbackInfo)>;
8239#[doc = " Input parameters for the EOS_Lobby_JoinLobby function."]
8240#[repr(C)]
8241#[derive(Debug, Copy, Clone)]
8242pub struct _tagEOS_Lobby_JoinLobbyOptions {
8243    #[doc = " API Version: Set this to EOS_LOBBY_JOINLOBBY_API_LATEST."]
8244    pub ApiVersion: i32,
8245    #[doc = " The handle of the lobby to join"]
8246    pub LobbyDetailsHandle: EOS_HLobbyDetails,
8247    #[doc = " The Product User ID of the local user joining the lobby"]
8248    pub LocalUserId: EOS_ProductUserId,
8249    #[doc = " If true, this lobby will be associated with the local user's presence information. A user can only associate one lobby at a time with their presence information.\n This affects the ability of the Social Overlay to show game related actions to take in the user's social graph.\n\n @note The Social Overlay can handle only one of the following three options at a time:\n * using the bPresenceEnabled flags within the Sessions interface\n * using the bPresenceEnabled flags within the Lobby interface\n * using EOS_PresenceModification_SetJoinInfo\n\n @see EOS_PresenceModification_SetJoinInfoOptions\n @see EOS_Lobby_CreateLobbyOptions\n @see EOS_Lobby_JoinLobbyOptions\n @see EOS_Sessions_CreateSessionModificationOptions\n @see EOS_Sessions_JoinSessionOptions"]
8250    pub bPresenceEnabled: EOS_Bool,
8251    #[doc = " (Optional) Set this value to override the default local options for the RTC Room, if it is enabled for this lobby. Set this to NULL if\n your application does not use the Lobby RTC Rooms feature, or if you would like to use the default settings. This option is ignored if\n the specified lobby does not have an RTC Room enabled and will not cause errors."]
8252    pub LocalRTCOptions: *const EOS_Lobby_LocalRTCOptions,
8253    #[doc = " This value indicates whether or not the local user allows crossplay interactions. If it is false, the local user\n will be treated as allowing crossplay."]
8254    pub bCrossplayOptOut: EOS_Bool,
8255    #[doc = " For lobbies with the RTC Room feature enabled, this value indicates the action to take against the RTC Room when joining the lobby. This may be used\n to indicate the RTCRoom should be joined immediately or manually at a later time."]
8256    pub RTCRoomJoinActionType: EOS_ELobbyRTCRoomJoinActionType,
8257}
8258impl Default for _tagEOS_Lobby_JoinLobbyOptions {
8259    fn default() -> Self {
8260        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8261        unsafe {
8262            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8263            s.assume_init()
8264        }
8265    }
8266}
8267#[doc = " Input parameters for the EOS_Lobby_JoinLobby function."]
8268pub type EOS_Lobby_JoinLobbyOptions = _tagEOS_Lobby_JoinLobbyOptions;
8269#[doc = " Output parameters for the EOS_Lobby_JoinLobby function."]
8270#[repr(C)]
8271#[derive(Debug, Copy, Clone)]
8272pub struct _tagEOS_Lobby_JoinLobbyCallbackInfo {
8273    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
8274    pub ResultCode: EOS_EResult,
8275    #[doc = " Context that was passed into EOS_Lobby_JoinLobby"]
8276    pub ClientData: *mut ::std::os::raw::c_void,
8277    #[doc = " The ID of the lobby"]
8278    pub LobbyId: EOS_LobbyId,
8279}
8280impl Default for _tagEOS_Lobby_JoinLobbyCallbackInfo {
8281    fn default() -> Self {
8282        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8283        unsafe {
8284            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8285            s.assume_init()
8286        }
8287    }
8288}
8289#[doc = " Output parameters for the EOS_Lobby_JoinLobby function."]
8290pub type EOS_Lobby_JoinLobbyCallbackInfo = _tagEOS_Lobby_JoinLobbyCallbackInfo;
8291#[doc = " Function prototype definition for callbacks passed to EOS_Lobby_JoinLobby\n @param Data A EOS_Lobby_JoinLobby CallbackInfo containing the output information and result"]
8292pub type EOS_Lobby_OnJoinLobbyCallback =
8293    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Lobby_JoinLobbyCallbackInfo)>;
8294#[doc = " Input parameters for the EOS_Lobby_JoinLobbyById function."]
8295#[repr(C)]
8296#[derive(Debug, Copy, Clone)]
8297pub struct _tagEOS_Lobby_JoinLobbyByIdOptions {
8298    #[doc = " API Version: Set this to EOS_LOBBY_JOINLOBBYBYID_API_LATEST."]
8299    pub ApiVersion: i32,
8300    #[doc = " The ID of the lobby"]
8301    pub LobbyId: EOS_LobbyId,
8302    #[doc = " The Product User ID of the local user joining the lobby"]
8303    pub LocalUserId: EOS_ProductUserId,
8304    #[doc = " If true, this lobby will be associated with the user's presence information. A user can only associate one lobby at a time with their presence information.\n This affects the ability of the Social Overlay to show game related actions to take in the user's social graph.\n\n @note The Social Overlay can handle only one of the following three options at a time:\n * using the bPresenceEnabled flags within the Sessions interface\n * using the bPresenceEnabled flags within the Lobby interface\n * using EOS_PresenceModification_SetJoinInfo\n\n @see EOS_PresenceModification_SetJoinInfoOptions\n @see EOS_Lobby_CreateLobbyOptions\n @see EOS_Lobby_JoinLobbyOptions\n @see EOS_Lobby_JoinLobbyByIdOptions\n @see EOS_Sessions_CreateSessionModificationOptions\n @see EOS_Sessions_JoinSessionOptions"]
8305    pub bPresenceEnabled: EOS_Bool,
8306    #[doc = " (Optional) Set this value to override the default local options for the RTC Room, if it is enabled for this lobby. Set this to NULL if\n your application does not use the Lobby RTC Rooms feature, or if you would like to use the default settings. This option is ignored if\n the specified lobby does not have an RTC Room enabled and will not cause errors."]
8307    pub LocalRTCOptions: *const EOS_Lobby_LocalRTCOptions,
8308    #[doc = " This value indicates whether or not the local user allows crossplay interactions. If it is false, the local user\n will be treated as allowing crossplay."]
8309    pub bCrossplayOptOut: EOS_Bool,
8310    #[doc = " For lobbies with the RTC Room feature enabled, this value indicates the action to take against the RTC Room when joining the lobby. This may be used\n to indicate the RTCRoom should be joined immediately or manually at a later time."]
8311    pub RTCRoomJoinActionType: EOS_ELobbyRTCRoomJoinActionType,
8312}
8313impl Default for _tagEOS_Lobby_JoinLobbyByIdOptions {
8314    fn default() -> Self {
8315        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8316        unsafe {
8317            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8318            s.assume_init()
8319        }
8320    }
8321}
8322#[doc = " Input parameters for the EOS_Lobby_JoinLobbyById function."]
8323pub type EOS_Lobby_JoinLobbyByIdOptions = _tagEOS_Lobby_JoinLobbyByIdOptions;
8324#[doc = " Output parameters for the EOS_Lobby_JoinLobbyById function."]
8325#[repr(C)]
8326#[derive(Debug, Copy, Clone)]
8327pub struct _tagEOS_Lobby_JoinLobbyByIdCallbackInfo {
8328    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
8329    pub ResultCode: EOS_EResult,
8330    #[doc = " Context that was passed into EOS_Lobby_JoinLobbyById"]
8331    pub ClientData: *mut ::std::os::raw::c_void,
8332    #[doc = " The ID of the lobby"]
8333    pub LobbyId: EOS_LobbyId,
8334}
8335impl Default for _tagEOS_Lobby_JoinLobbyByIdCallbackInfo {
8336    fn default() -> Self {
8337        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8338        unsafe {
8339            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8340            s.assume_init()
8341        }
8342    }
8343}
8344#[doc = " Output parameters for the EOS_Lobby_JoinLobbyById function."]
8345pub type EOS_Lobby_JoinLobbyByIdCallbackInfo = _tagEOS_Lobby_JoinLobbyByIdCallbackInfo;
8346#[doc = " Function prototype definition for callbacks passed to EOS_Lobby_JoinLobbyById\n @param Data A EOS_Lobby_JoinLobbyById CallbackInfo containing the output information and result"]
8347pub type EOS_Lobby_OnJoinLobbyByIdCallback =
8348    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Lobby_JoinLobbyByIdCallbackInfo)>;
8349#[doc = " Input parameters for the EOS_Lobby_LeaveLobby function."]
8350#[repr(C)]
8351#[derive(Debug, Copy, Clone)]
8352pub struct _tagEOS_Lobby_LeaveLobbyOptions {
8353    #[doc = " API Version: Set this to EOS_LOBBY_LEAVELOBBY_API_LATEST."]
8354    pub ApiVersion: i32,
8355    #[doc = " The Product User ID of the local user leaving the lobby"]
8356    pub LocalUserId: EOS_ProductUserId,
8357    #[doc = " The ID of the lobby"]
8358    pub LobbyId: EOS_LobbyId,
8359}
8360impl Default for _tagEOS_Lobby_LeaveLobbyOptions {
8361    fn default() -> Self {
8362        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8363        unsafe {
8364            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8365            s.assume_init()
8366        }
8367    }
8368}
8369#[doc = " Input parameters for the EOS_Lobby_LeaveLobby function."]
8370pub type EOS_Lobby_LeaveLobbyOptions = _tagEOS_Lobby_LeaveLobbyOptions;
8371#[doc = " Output parameters for the EOS_Lobby_LeaveLobby function."]
8372#[repr(C)]
8373#[derive(Debug, Copy, Clone)]
8374pub struct _tagEOS_Lobby_LeaveLobbyCallbackInfo {
8375    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
8376    pub ResultCode: EOS_EResult,
8377    #[doc = " Context that was passed into EOS_Lobby_LeaveLobby"]
8378    pub ClientData: *mut ::std::os::raw::c_void,
8379    #[doc = " The ID of the lobby"]
8380    pub LobbyId: EOS_LobbyId,
8381}
8382impl Default for _tagEOS_Lobby_LeaveLobbyCallbackInfo {
8383    fn default() -> Self {
8384        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8385        unsafe {
8386            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8387            s.assume_init()
8388        }
8389    }
8390}
8391#[doc = " Output parameters for the EOS_Lobby_LeaveLobby function."]
8392pub type EOS_Lobby_LeaveLobbyCallbackInfo = _tagEOS_Lobby_LeaveLobbyCallbackInfo;
8393#[doc = " Function prototype definition for callbacks passed to EOS_Lobby_LeaveLobby\n @param Data A EOS_Lobby_LeaveLobby CallbackInfo containing the output information and result"]
8394pub type EOS_Lobby_OnLeaveLobbyCallback =
8395    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Lobby_LeaveLobbyCallbackInfo)>;
8396#[doc = " Input parameters for the EOS_Lobby_UpdateLobbyModification function."]
8397#[repr(C)]
8398#[derive(Debug, Copy, Clone)]
8399pub struct _tagEOS_Lobby_UpdateLobbyModificationOptions {
8400    #[doc = " API Version: Set this to EOS_LOBBY_UPDATELOBBYMODIFICATION_API_LATEST."]
8401    pub ApiVersion: i32,
8402    #[doc = " The ID of the local user making modifications. Must be the owner to modify lobby data, but any lobby member can modify their own attributes."]
8403    pub LocalUserId: EOS_ProductUserId,
8404    #[doc = " The ID of the lobby"]
8405    pub LobbyId: EOS_LobbyId,
8406}
8407impl Default for _tagEOS_Lobby_UpdateLobbyModificationOptions {
8408    fn default() -> Self {
8409        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8410        unsafe {
8411            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8412            s.assume_init()
8413        }
8414    }
8415}
8416#[doc = " Input parameters for the EOS_Lobby_UpdateLobbyModification function."]
8417pub type EOS_Lobby_UpdateLobbyModificationOptions = _tagEOS_Lobby_UpdateLobbyModificationOptions;
8418#[doc = " Input parameters for the EOS_Lobby_UpdateLobby function."]
8419#[repr(C)]
8420#[derive(Debug, Copy, Clone)]
8421pub struct _tagEOS_Lobby_UpdateLobbyOptions {
8422    #[doc = " API Version: Set this to EOS_LOBBY_UPDATELOBBY_API_LATEST."]
8423    pub ApiVersion: i32,
8424    #[doc = " Builder handle"]
8425    pub LobbyModificationHandle: EOS_HLobbyModification,
8426}
8427impl Default for _tagEOS_Lobby_UpdateLobbyOptions {
8428    fn default() -> Self {
8429        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8430        unsafe {
8431            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8432            s.assume_init()
8433        }
8434    }
8435}
8436#[doc = " Input parameters for the EOS_Lobby_UpdateLobby function."]
8437pub type EOS_Lobby_UpdateLobbyOptions = _tagEOS_Lobby_UpdateLobbyOptions;
8438#[doc = " Output parameters for the EOS_Lobby_UpdateLobby function."]
8439#[repr(C)]
8440#[derive(Debug, Copy, Clone)]
8441pub struct _tagEOS_Lobby_UpdateLobbyCallbackInfo {
8442    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
8443    pub ResultCode: EOS_EResult,
8444    #[doc = " Context that was passed into EOS_Lobby_UpdateLobby"]
8445    pub ClientData: *mut ::std::os::raw::c_void,
8446    #[doc = " The ID of the lobby"]
8447    pub LobbyId: EOS_LobbyId,
8448}
8449impl Default for _tagEOS_Lobby_UpdateLobbyCallbackInfo {
8450    fn default() -> Self {
8451        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8452        unsafe {
8453            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8454            s.assume_init()
8455        }
8456    }
8457}
8458#[doc = " Output parameters for the EOS_Lobby_UpdateLobby function."]
8459pub type EOS_Lobby_UpdateLobbyCallbackInfo = _tagEOS_Lobby_UpdateLobbyCallbackInfo;
8460#[doc = " Function prototype definition for callbacks passed to EOS_Lobby_UpdateLobby\n @param Data A EOS_Lobby_UpdateLobby CallbackInfo containing the output information and result"]
8461pub type EOS_Lobby_OnUpdateLobbyCallback =
8462    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Lobby_UpdateLobbyCallbackInfo)>;
8463#[doc = " Input parameters for the EOS_Lobby_JoinRTCRoom function."]
8464#[repr(C)]
8465#[derive(Debug, Copy, Clone)]
8466pub struct _tagEOS_Lobby_JoinRTCRoomOptions {
8467    #[doc = " API Version: Set this to EOS_LOBBY_JOINRTCROOM_API_LATEST."]
8468    pub ApiVersion: i32,
8469    #[doc = " The ID of the lobby to join the RTC Room of"]
8470    pub LobbyId: EOS_LobbyId,
8471    #[doc = " The Product User ID of the local user in the lobby"]
8472    pub LocalUserId: EOS_ProductUserId,
8473    #[doc = " Allows the local application to set local audio options for the RTC Room if it is enabled.\n Only updates audio options when explicitly set; does not provide defaults."]
8474    pub LocalRTCOptions: *const EOS_Lobby_LocalRTCOptions,
8475}
8476impl Default for _tagEOS_Lobby_JoinRTCRoomOptions {
8477    fn default() -> Self {
8478        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8479        unsafe {
8480            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8481            s.assume_init()
8482        }
8483    }
8484}
8485#[doc = " Input parameters for the EOS_Lobby_JoinRTCRoom function."]
8486pub type EOS_Lobby_JoinRTCRoomOptions = _tagEOS_Lobby_JoinRTCRoomOptions;
8487#[doc = " Output parameters for the EOS_Lobby_JoinRTCRoom function."]
8488#[repr(C)]
8489#[derive(Debug, Copy, Clone)]
8490pub struct _tagEOS_Lobby_JoinRTCRoomCallbackInfo {
8491    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
8492    pub ResultCode: EOS_EResult,
8493    #[doc = " Context that was passed into EOS_Lobby_JoinRTCRoom"]
8494    pub ClientData: *mut ::std::os::raw::c_void,
8495    #[doc = " The ID of the lobby"]
8496    pub LobbyId: EOS_LobbyId,
8497}
8498impl Default for _tagEOS_Lobby_JoinRTCRoomCallbackInfo {
8499    fn default() -> Self {
8500        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8501        unsafe {
8502            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8503            s.assume_init()
8504        }
8505    }
8506}
8507#[doc = " Output parameters for the EOS_Lobby_JoinRTCRoom function."]
8508pub type EOS_Lobby_JoinRTCRoomCallbackInfo = _tagEOS_Lobby_JoinRTCRoomCallbackInfo;
8509#[doc = " Function prototype definition for callbacks passed to EOS_Lobby_JoinRTCRoom\n @param Data A EOS_Lobby_JoinRTCRoom CallbackInfo containing the output information and result"]
8510pub type EOS_Lobby_OnJoinRTCRoomCallback =
8511    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Lobby_JoinRTCRoomCallbackInfo)>;
8512#[doc = " Input parameters for the EOS_Lobby_LeaveRTCRoom function."]
8513#[repr(C)]
8514#[derive(Debug, Copy, Clone)]
8515pub struct _tagEOS_Lobby_LeaveRTCRoomOptions {
8516    #[doc = " API Version: Set this to EOS_LOBBY_LEAVERTCROOM_API_LATEST."]
8517    pub ApiVersion: i32,
8518    #[doc = " The ID of the lobby owning the RTC Room to leave"]
8519    pub LobbyId: EOS_LobbyId,
8520    #[doc = " The Product User ID of the local user in the lobby"]
8521    pub LocalUserId: EOS_ProductUserId,
8522}
8523impl Default for _tagEOS_Lobby_LeaveRTCRoomOptions {
8524    fn default() -> Self {
8525        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8526        unsafe {
8527            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8528            s.assume_init()
8529        }
8530    }
8531}
8532#[doc = " Input parameters for the EOS_Lobby_LeaveRTCRoom function."]
8533pub type EOS_Lobby_LeaveRTCRoomOptions = _tagEOS_Lobby_LeaveRTCRoomOptions;
8534#[doc = " Output parameters for the EOS_Lobby_LeaveRTCRoom function."]
8535#[repr(C)]
8536#[derive(Debug, Copy, Clone)]
8537pub struct _tagEOS_Lobby_LeaveRTCRoomCallbackInfo {
8538    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
8539    pub ResultCode: EOS_EResult,
8540    #[doc = " Context that was passed into EOS_Lobby_LeaveRTCRoom"]
8541    pub ClientData: *mut ::std::os::raw::c_void,
8542    #[doc = " The ID of the lobby"]
8543    pub LobbyId: EOS_LobbyId,
8544}
8545impl Default for _tagEOS_Lobby_LeaveRTCRoomCallbackInfo {
8546    fn default() -> Self {
8547        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8548        unsafe {
8549            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8550            s.assume_init()
8551        }
8552    }
8553}
8554#[doc = " Output parameters for the EOS_Lobby_LeaveRTCRoom function."]
8555pub type EOS_Lobby_LeaveRTCRoomCallbackInfo = _tagEOS_Lobby_LeaveRTCRoomCallbackInfo;
8556#[doc = " Function prototype definition for callbacks passed to EOS_Lobby_LeaveRTCRoom\n @param Data A EOS_Lobby_LeaveRTCRoom CallbackInfo containing the output information and result"]
8557pub type EOS_Lobby_OnLeaveRTCRoomCallback =
8558    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Lobby_LeaveRTCRoomCallbackInfo)>;
8559#[doc = " Input parameters for the EOS_Lobby_PromoteMember function."]
8560#[repr(C)]
8561#[derive(Debug, Copy, Clone)]
8562pub struct _tagEOS_Lobby_PromoteMemberOptions {
8563    #[doc = " API Version: Set this to EOS_LOBBY_PROMOTEMEMBER_API_LATEST."]
8564    pub ApiVersion: i32,
8565    #[doc = " The ID of the lobby"]
8566    pub LobbyId: EOS_LobbyId,
8567    #[doc = " The Product User ID of the local user making the request"]
8568    pub LocalUserId: EOS_ProductUserId,
8569    #[doc = " The Product User ID of the member to promote to owner of the lobby"]
8570    pub TargetUserId: EOS_ProductUserId,
8571}
8572impl Default for _tagEOS_Lobby_PromoteMemberOptions {
8573    fn default() -> Self {
8574        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8575        unsafe {
8576            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8577            s.assume_init()
8578        }
8579    }
8580}
8581#[doc = " Input parameters for the EOS_Lobby_PromoteMember function."]
8582pub type EOS_Lobby_PromoteMemberOptions = _tagEOS_Lobby_PromoteMemberOptions;
8583#[doc = " Output parameters for the EOS_Lobby_PromoteMember function."]
8584#[repr(C)]
8585#[derive(Debug, Copy, Clone)]
8586pub struct _tagEOS_Lobby_PromoteMemberCallbackInfo {
8587    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
8588    pub ResultCode: EOS_EResult,
8589    #[doc = " Context that was passed into EOS_Lobby_PromoteMember"]
8590    pub ClientData: *mut ::std::os::raw::c_void,
8591    #[doc = " The ID of the lobby where the user was promoted"]
8592    pub LobbyId: EOS_LobbyId,
8593}
8594impl Default for _tagEOS_Lobby_PromoteMemberCallbackInfo {
8595    fn default() -> Self {
8596        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8597        unsafe {
8598            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8599            s.assume_init()
8600        }
8601    }
8602}
8603#[doc = " Output parameters for the EOS_Lobby_PromoteMember function."]
8604pub type EOS_Lobby_PromoteMemberCallbackInfo = _tagEOS_Lobby_PromoteMemberCallbackInfo;
8605#[doc = " Function prototype definition for callbacks passed to EOS_Lobby_PromoteMember\n @param Data A EOS_Lobby_PromoteMember CallbackInfo containing the output information and result"]
8606pub type EOS_Lobby_OnPromoteMemberCallback =
8607    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Lobby_PromoteMemberCallbackInfo)>;
8608#[doc = " Input parameters for the EOS_Lobby_KickMember function."]
8609#[repr(C)]
8610#[derive(Debug, Copy, Clone)]
8611pub struct _tagEOS_Lobby_KickMemberOptions {
8612    #[doc = " API Version: Set this to EOS_LOBBY_KICKMEMBER_API_LATEST."]
8613    pub ApiVersion: i32,
8614    #[doc = " The ID of the lobby"]
8615    pub LobbyId: EOS_LobbyId,
8616    #[doc = " The Product User ID of the local user requesting the removal; this user must be the lobby owner"]
8617    pub LocalUserId: EOS_ProductUserId,
8618    #[doc = " The Product User ID of the lobby member to remove"]
8619    pub TargetUserId: EOS_ProductUserId,
8620}
8621impl Default for _tagEOS_Lobby_KickMemberOptions {
8622    fn default() -> Self {
8623        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8624        unsafe {
8625            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8626            s.assume_init()
8627        }
8628    }
8629}
8630#[doc = " Input parameters for the EOS_Lobby_KickMember function."]
8631pub type EOS_Lobby_KickMemberOptions = _tagEOS_Lobby_KickMemberOptions;
8632#[doc = " Output parameters for the EOS_Lobby_KickMember function."]
8633#[repr(C)]
8634#[derive(Debug, Copy, Clone)]
8635pub struct _tagEOS_Lobby_KickMemberCallbackInfo {
8636    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
8637    pub ResultCode: EOS_EResult,
8638    #[doc = " Context that was passed into EOS_Lobby_KickMember"]
8639    pub ClientData: *mut ::std::os::raw::c_void,
8640    #[doc = " The ID of the lobby"]
8641    pub LobbyId: EOS_LobbyId,
8642}
8643impl Default for _tagEOS_Lobby_KickMemberCallbackInfo {
8644    fn default() -> Self {
8645        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8646        unsafe {
8647            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8648            s.assume_init()
8649        }
8650    }
8651}
8652#[doc = " Output parameters for the EOS_Lobby_KickMember function."]
8653pub type EOS_Lobby_KickMemberCallbackInfo = _tagEOS_Lobby_KickMemberCallbackInfo;
8654#[doc = " Function prototype definition for callbacks passed to EOS_Lobby_KickMember\n @param Data A EOS_Lobby_KickMember CallbackInfo containing the output information and result"]
8655pub type EOS_Lobby_OnKickMemberCallback =
8656    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Lobby_KickMemberCallbackInfo)>;
8657#[doc = " Input parameters for the EOS_Lobby_HardMuteMember function."]
8658#[repr(C)]
8659#[derive(Debug, Copy, Clone)]
8660pub struct _tagEOS_Lobby_HardMuteMemberOptions {
8661    #[doc = " API Version: Set this to EOS_LOBBY_HARDMUTEMEMBER_API_LATEST."]
8662    pub ApiVersion: i32,
8663    #[doc = " The ID of the lobby"]
8664    pub LobbyId: EOS_LobbyId,
8665    #[doc = " The Product User ID of the local user requesting the hard mute; this user must be the lobby owner"]
8666    pub LocalUserId: EOS_ProductUserId,
8667    #[doc = " The Product User ID of the lobby member to hard mute"]
8668    pub TargetUserId: EOS_ProductUserId,
8669    #[doc = " TargetUserId hard mute status (mute on or off)"]
8670    pub bHardMute: EOS_Bool,
8671}
8672impl Default for _tagEOS_Lobby_HardMuteMemberOptions {
8673    fn default() -> Self {
8674        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8675        unsafe {
8676            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8677            s.assume_init()
8678        }
8679    }
8680}
8681#[doc = " Input parameters for the EOS_Lobby_HardMuteMember function."]
8682pub type EOS_Lobby_HardMuteMemberOptions = _tagEOS_Lobby_HardMuteMemberOptions;
8683#[doc = " Output parameters for the EOS_Lobby_HardMuteMember function."]
8684#[repr(C)]
8685#[derive(Debug, Copy, Clone)]
8686pub struct _tagEOS_Lobby_HardMuteMemberCallbackInfo {
8687    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
8688    pub ResultCode: EOS_EResult,
8689    #[doc = " Context that was passed into EOS_Lobby_HardMuteMember"]
8690    pub ClientData: *mut ::std::os::raw::c_void,
8691    #[doc = " The ID of the lobby"]
8692    pub LobbyId: EOS_LobbyId,
8693    #[doc = " The Product User ID of the lobby member whose mute status has been updated"]
8694    pub TargetUserId: EOS_ProductUserId,
8695}
8696impl Default for _tagEOS_Lobby_HardMuteMemberCallbackInfo {
8697    fn default() -> Self {
8698        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8699        unsafe {
8700            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8701            s.assume_init()
8702        }
8703    }
8704}
8705#[doc = " Output parameters for the EOS_Lobby_HardMuteMember function."]
8706pub type EOS_Lobby_HardMuteMemberCallbackInfo = _tagEOS_Lobby_HardMuteMemberCallbackInfo;
8707#[doc = " Function prototype definition for callbacks passed to EOS_Lobby_HardMuteMember\n @param Data A EOS_Lobby_HardMuteMember CallbackInfo containing the output information and result"]
8708pub type EOS_Lobby_OnHardMuteMemberCallback =
8709    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Lobby_HardMuteMemberCallbackInfo)>;
8710#[doc = " Input parameters for the EOS_Lobby_AddNotifyLobbyUpdateReceived function."]
8711#[repr(C)]
8712#[derive(Debug, Default, Copy, Clone)]
8713pub struct _tagEOS_Lobby_AddNotifyLobbyUpdateReceivedOptions {
8714    #[doc = " API Version: Set this to EOS_LOBBY_ADDNOTIFYLOBBYUPDATERECEIVED_API_LATEST."]
8715    pub ApiVersion: i32,
8716}
8717#[doc = " Input parameters for the EOS_Lobby_AddNotifyLobbyUpdateReceived function."]
8718pub type EOS_Lobby_AddNotifyLobbyUpdateReceivedOptions =
8719    _tagEOS_Lobby_AddNotifyLobbyUpdateReceivedOptions;
8720#[doc = " Output parameters for the EOS_Lobby_OnLobbyUpdateReceivedCallback Function."]
8721#[repr(C)]
8722#[derive(Debug, Copy, Clone)]
8723pub struct _tagEOS_Lobby_LobbyUpdateReceivedCallbackInfo {
8724    #[doc = " Context that was passed into EOS_Lobby_AddNotifyLobbyUpdateReceived"]
8725    pub ClientData: *mut ::std::os::raw::c_void,
8726    #[doc = " The ID of the lobby"]
8727    pub LobbyId: EOS_LobbyId,
8728}
8729impl Default for _tagEOS_Lobby_LobbyUpdateReceivedCallbackInfo {
8730    fn default() -> Self {
8731        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8732        unsafe {
8733            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8734            s.assume_init()
8735        }
8736    }
8737}
8738#[doc = " Output parameters for the EOS_Lobby_OnLobbyUpdateReceivedCallback Function."]
8739pub type EOS_Lobby_LobbyUpdateReceivedCallbackInfo = _tagEOS_Lobby_LobbyUpdateReceivedCallbackInfo;
8740#[doc = " Function prototype definition for notifications that comes from EOS_Lobby_AddNotifyLobbyUpdateReceived\n\n @param Data A EOS_Lobby_LobbyUpdateReceivedCallbackInfo containing the output information and result"]
8741pub type EOS_Lobby_OnLobbyUpdateReceivedCallback = ::std::option::Option<
8742    unsafe extern "C" fn(Data: *const EOS_Lobby_LobbyUpdateReceivedCallbackInfo),
8743>;
8744#[doc = " Input parameters for the EOS_Lobby_AddNotifyLobbyMemberUpdateReceived function."]
8745#[repr(C)]
8746#[derive(Debug, Default, Copy, Clone)]
8747pub struct _tagEOS_Lobby_AddNotifyLobbyMemberUpdateReceivedOptions {
8748    #[doc = " API Version: Set this to EOS_LOBBY_ADDNOTIFYLOBBYMEMBERUPDATERECEIVED_API_LATEST."]
8749    pub ApiVersion: i32,
8750}
8751#[doc = " Input parameters for the EOS_Lobby_AddNotifyLobbyMemberUpdateReceived function."]
8752pub type EOS_Lobby_AddNotifyLobbyMemberUpdateReceivedOptions =
8753    _tagEOS_Lobby_AddNotifyLobbyMemberUpdateReceivedOptions;
8754#[doc = " Output parameters for the EOS_Lobby_OnLobbyMemberUpdateReceivedCallback Function."]
8755#[repr(C)]
8756#[derive(Debug, Copy, Clone)]
8757pub struct _tagEOS_Lobby_LobbyMemberUpdateReceivedCallbackInfo {
8758    #[doc = " Context that was passed into EOS_Lobby_AddNotifyLobbyMemberUpdateReceived"]
8759    pub ClientData: *mut ::std::os::raw::c_void,
8760    #[doc = " The ID of the lobby"]
8761    pub LobbyId: EOS_LobbyId,
8762    #[doc = " The Product User ID of the lobby member"]
8763    pub TargetUserId: EOS_ProductUserId,
8764}
8765impl Default for _tagEOS_Lobby_LobbyMemberUpdateReceivedCallbackInfo {
8766    fn default() -> Self {
8767        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8768        unsafe {
8769            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8770            s.assume_init()
8771        }
8772    }
8773}
8774#[doc = " Output parameters for the EOS_Lobby_OnLobbyMemberUpdateReceivedCallback Function."]
8775pub type EOS_Lobby_LobbyMemberUpdateReceivedCallbackInfo =
8776    _tagEOS_Lobby_LobbyMemberUpdateReceivedCallbackInfo;
8777#[doc = " Function prototype definition for notifications that comes from EOS_Lobby_AddNotifyLobbyMemberUpdateReceived\n\n @param Data A EOS_Lobby_LobbyMemberUpdateReceivedCallbackInfo containing the output information and result"]
8778pub type EOS_Lobby_OnLobbyMemberUpdateReceivedCallback = ::std::option::Option<
8779    unsafe extern "C" fn(Data: *const EOS_Lobby_LobbyMemberUpdateReceivedCallbackInfo),
8780>;
8781#[doc = " Input parameters for the EOS_Lobby_AddNotifyLobbyMemberStatusReceived function."]
8782#[repr(C)]
8783#[derive(Debug, Default, Copy, Clone)]
8784pub struct _tagEOS_Lobby_AddNotifyLobbyMemberStatusReceivedOptions {
8785    #[doc = " API Version: Set this to EOS_LOBBY_ADDNOTIFYLOBBYMEMBERSTATUSRECEIVED_API_LATEST."]
8786    pub ApiVersion: i32,
8787}
8788#[doc = " Input parameters for the EOS_Lobby_AddNotifyLobbyMemberStatusReceived function."]
8789pub type EOS_Lobby_AddNotifyLobbyMemberStatusReceivedOptions =
8790    _tagEOS_Lobby_AddNotifyLobbyMemberStatusReceivedOptions;
8791#[doc = " Output parameters for the EOS_Lobby_AddNotifyLobbyMemberStatusReceived function."]
8792#[repr(C)]
8793#[derive(Debug, Copy, Clone)]
8794pub struct _tagEOS_Lobby_LobbyMemberStatusReceivedCallbackInfo {
8795    #[doc = " Context that was passed into EOS_Lobby_AddNotifyLobbyMemberStatusReceived"]
8796    pub ClientData: *mut ::std::os::raw::c_void,
8797    #[doc = " The ID of the lobby"]
8798    pub LobbyId: EOS_LobbyId,
8799    #[doc = " The Product User ID of the lobby member"]
8800    pub TargetUserId: EOS_ProductUserId,
8801    #[doc = " Latest status of the user"]
8802    pub CurrentStatus: EOS_ELobbyMemberStatus,
8803}
8804impl Default for _tagEOS_Lobby_LobbyMemberStatusReceivedCallbackInfo {
8805    fn default() -> Self {
8806        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8807        unsafe {
8808            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8809            s.assume_init()
8810        }
8811    }
8812}
8813#[doc = " Output parameters for the EOS_Lobby_AddNotifyLobbyMemberStatusReceived function."]
8814pub type EOS_Lobby_LobbyMemberStatusReceivedCallbackInfo =
8815    _tagEOS_Lobby_LobbyMemberStatusReceivedCallbackInfo;
8816#[doc = " Function prototype definition for callbacks passed to EOS_Lobby_AddNotifyLobbyMemberStatusReceived\n @param Data A EOS_Lobby_LobbyMemberStatusReceivedCallbackInfo CallbackInfo containing the output information and result"]
8817pub type EOS_Lobby_OnLobbyMemberStatusReceivedCallback = ::std::option::Option<
8818    unsafe extern "C" fn(Data: *const EOS_Lobby_LobbyMemberStatusReceivedCallbackInfo),
8819>;
8820#[doc = " Input parameters for the EOS_Lobby_AddNotifyLobbyInviteReceived function."]
8821#[repr(C)]
8822#[derive(Debug, Default, Copy, Clone)]
8823pub struct _tagEOS_Lobby_AddNotifyLobbyInviteReceivedOptions {
8824    #[doc = " API Version: Set this to EOS_LOBBY_ADDNOTIFYLOBBYINVITERECEIVED_API_LATEST."]
8825    pub ApiVersion: i32,
8826}
8827#[doc = " Input parameters for the EOS_Lobby_AddNotifyLobbyInviteReceived function."]
8828pub type EOS_Lobby_AddNotifyLobbyInviteReceivedOptions =
8829    _tagEOS_Lobby_AddNotifyLobbyInviteReceivedOptions;
8830#[doc = " Output parameters for the EOS_Lobby_OnLobbyInviteReceivedCallback Function."]
8831#[repr(C)]
8832#[derive(Debug, Copy, Clone)]
8833pub struct _tagEOS_Lobby_LobbyInviteReceivedCallbackInfo {
8834    #[doc = " Context that was passed into EOS_Lobby_AddNotifyLobbyInviteReceived"]
8835    pub ClientData: *mut ::std::os::raw::c_void,
8836    #[doc = " The ID of the invitation"]
8837    pub InviteId: *const ::std::os::raw::c_char,
8838    #[doc = " The Product User ID of the local user who received the invitation"]
8839    pub LocalUserId: EOS_ProductUserId,
8840    #[doc = " The Product User ID of the user who sent the invitation"]
8841    pub TargetUserId: EOS_ProductUserId,
8842}
8843impl Default for _tagEOS_Lobby_LobbyInviteReceivedCallbackInfo {
8844    fn default() -> Self {
8845        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8846        unsafe {
8847            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8848            s.assume_init()
8849        }
8850    }
8851}
8852#[doc = " Output parameters for the EOS_Lobby_OnLobbyInviteReceivedCallback Function."]
8853pub type EOS_Lobby_LobbyInviteReceivedCallbackInfo = _tagEOS_Lobby_LobbyInviteReceivedCallbackInfo;
8854#[doc = " Function prototype definition for notifications that comes from EOS_Lobby_AddNotifyLobbyInviteReceived\n\n @param Data A EOS_Lobby_LobbyInviteReceivedCallbackInfo containing the output information and result"]
8855pub type EOS_Lobby_OnLobbyInviteReceivedCallback = ::std::option::Option<
8856    unsafe extern "C" fn(Data: *const EOS_Lobby_LobbyInviteReceivedCallbackInfo),
8857>;
8858#[doc = " Input parameters for the EOS_Lobby_AddNotifyLobbyInviteAccepted function."]
8859#[repr(C)]
8860#[derive(Debug, Default, Copy, Clone)]
8861pub struct _tagEOS_Lobby_AddNotifyLobbyInviteAcceptedOptions {
8862    #[doc = " API Version: Set this to EOS_LOBBY_ADDNOTIFYLOBBYINVITEACCEPTED_API_LATEST."]
8863    pub ApiVersion: i32,
8864}
8865#[doc = " Input parameters for the EOS_Lobby_AddNotifyLobbyInviteAccepted function."]
8866pub type EOS_Lobby_AddNotifyLobbyInviteAcceptedOptions =
8867    _tagEOS_Lobby_AddNotifyLobbyInviteAcceptedOptions;
8868#[doc = " Output parameters for the EOS_Lobby_OnLobbyInviteAcceptedCallback Function."]
8869#[repr(C)]
8870#[derive(Debug, Copy, Clone)]
8871pub struct _tagEOS_Lobby_LobbyInviteAcceptedCallbackInfo {
8872    #[doc = " Context that was passed into EOS_Lobby_AddNotifyLobbyInviteAccepted"]
8873    pub ClientData: *mut ::std::os::raw::c_void,
8874    #[doc = " The invite ID"]
8875    pub InviteId: *const ::std::os::raw::c_char,
8876    #[doc = " The Product User ID of the local user who received the invitation"]
8877    pub LocalUserId: EOS_ProductUserId,
8878    #[doc = " The Product User ID of the user who sent the invitation"]
8879    pub TargetUserId: EOS_ProductUserId,
8880    #[doc = " Lobby ID that the user has been invited to"]
8881    pub LobbyId: EOS_LobbyId,
8882}
8883impl Default for _tagEOS_Lobby_LobbyInviteAcceptedCallbackInfo {
8884    fn default() -> Self {
8885        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8886        unsafe {
8887            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8888            s.assume_init()
8889        }
8890    }
8891}
8892#[doc = " Output parameters for the EOS_Lobby_OnLobbyInviteAcceptedCallback Function."]
8893pub type EOS_Lobby_LobbyInviteAcceptedCallbackInfo = _tagEOS_Lobby_LobbyInviteAcceptedCallbackInfo;
8894#[doc = " Function prototype definition for notifications that comes from EOS_Lobby_AddNotifyLobbyInviteAccepted\n\n @param Data A EOS_Lobby_LobbyInviteAcceptedCallbackInfo containing the output information and result"]
8895pub type EOS_Lobby_OnLobbyInviteAcceptedCallback = ::std::option::Option<
8896    unsafe extern "C" fn(Data: *const EOS_Lobby_LobbyInviteAcceptedCallbackInfo),
8897>;
8898#[doc = " Input parameters for the EOS_Lobby_AddNotifyJoinLobbyAccepted function."]
8899#[repr(C)]
8900#[derive(Debug, Default, Copy, Clone)]
8901pub struct _tagEOS_Lobby_AddNotifyJoinLobbyAcceptedOptions {
8902    #[doc = " API Version: Set this to EOS_LOBBY_ADDNOTIFYJOINLOBBYACCEPTED_API_LATEST."]
8903    pub ApiVersion: i32,
8904}
8905#[doc = " Input parameters for the EOS_Lobby_AddNotifyJoinLobbyAccepted function."]
8906pub type EOS_Lobby_AddNotifyJoinLobbyAcceptedOptions =
8907    _tagEOS_Lobby_AddNotifyJoinLobbyAcceptedOptions;
8908#[doc = " Input parameters for the EOS_Lobby_AddNotifyLobbyInviteRejected function."]
8909#[repr(C)]
8910#[derive(Debug, Default, Copy, Clone)]
8911pub struct _tagEOS_Lobby_AddNotifyLobbyInviteRejectedOptions {
8912    #[doc = " API Version: Set this to EOS_LOBBY_ADDNOTIFYLOBBYINVITEREJECTED_API_LATEST."]
8913    pub ApiVersion: i32,
8914}
8915#[doc = " Input parameters for the EOS_Lobby_AddNotifyLobbyInviteRejected function."]
8916pub type EOS_Lobby_AddNotifyLobbyInviteRejectedOptions =
8917    _tagEOS_Lobby_AddNotifyLobbyInviteRejectedOptions;
8918#[doc = " Output parameters for the EOS_Lobby_OnLobbyInviteRejectedCallback Function."]
8919#[repr(C)]
8920#[derive(Debug, Copy, Clone)]
8921pub struct _tagEOS_Lobby_LobbyInviteRejectedCallbackInfo {
8922    #[doc = " Context that was passed into EOS_Lobby_AddNotifyLobbyInviteRejected"]
8923    pub ClientData: *mut ::std::os::raw::c_void,
8924    #[doc = " The invite ID"]
8925    pub InviteId: *const ::std::os::raw::c_char,
8926    #[doc = " The Product User ID of the local user who received the invitation"]
8927    pub LocalUserId: EOS_ProductUserId,
8928    #[doc = " The Product User ID of the user who sent the invitation"]
8929    pub TargetUserId: EOS_ProductUserId,
8930    #[doc = " Lobby ID that the user has been invited to"]
8931    pub LobbyId: EOS_LobbyId,
8932}
8933impl Default for _tagEOS_Lobby_LobbyInviteRejectedCallbackInfo {
8934    fn default() -> Self {
8935        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8936        unsafe {
8937            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8938            s.assume_init()
8939        }
8940    }
8941}
8942#[doc = " Output parameters for the EOS_Lobby_OnLobbyInviteRejectedCallback Function."]
8943pub type EOS_Lobby_LobbyInviteRejectedCallbackInfo = _tagEOS_Lobby_LobbyInviteRejectedCallbackInfo;
8944#[doc = " Function prototype definition for notifications that comes from EOS_Lobby_AddNotifyLobbyInviteRejected\n\n @param Data A EOS_Lobby_LobbyInviteRejectedCallbackInfo containing the output information and result"]
8945pub type EOS_Lobby_OnLobbyInviteRejectedCallback = ::std::option::Option<
8946    unsafe extern "C" fn(Data: *const EOS_Lobby_LobbyInviteRejectedCallbackInfo),
8947>;
8948#[doc = " Output parameters for the EOS_Lobby_OnJoinLobbyAcceptedCallback Function."]
8949#[repr(C)]
8950#[derive(Debug, Copy, Clone)]
8951pub struct _tagEOS_Lobby_JoinLobbyAcceptedCallbackInfo {
8952    #[doc = " Context that was passed into EOS_Lobby_AddNotifyJoinLobbyAccepted"]
8953    pub ClientData: *mut ::std::os::raw::c_void,
8954    #[doc = " The Product User ID of the local user who is joining"]
8955    pub LocalUserId: EOS_ProductUserId,
8956    #[doc = " The UI Event associated with this Join Game event.\n This should be used with EOS_Lobby_CopyLobbyDetailsHandleByUiEventId to get a handle to be used\n when calling EOS_Lobby_JoinLobby."]
8957    pub UiEventId: EOS_UI_EventId,
8958}
8959impl Default for _tagEOS_Lobby_JoinLobbyAcceptedCallbackInfo {
8960    fn default() -> Self {
8961        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8962        unsafe {
8963            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8964            s.assume_init()
8965        }
8966    }
8967}
8968#[doc = " Output parameters for the EOS_Lobby_OnJoinLobbyAcceptedCallback Function."]
8969pub type EOS_Lobby_JoinLobbyAcceptedCallbackInfo = _tagEOS_Lobby_JoinLobbyAcceptedCallbackInfo;
8970#[doc = " Function prototype definition for notifications that comes from EOS_Lobby_AddNotifyJoinLobbyAccepted\n\n @param Data A EOS_Lobby_JoinLobbyAcceptedCallbackInfo containing the output information and result\n\n @note The lobby for the join game must be joined.\n\n @see EOS_Lobby_CopyLobbyDetailsHandleByUiEventId\n @see EOS_Lobby_JoinLobby"]
8971pub type EOS_Lobby_OnJoinLobbyAcceptedCallback = ::std::option::Option<
8972    unsafe extern "C" fn(Data: *const EOS_Lobby_JoinLobbyAcceptedCallbackInfo),
8973>;
8974#[doc = " Input parameters for the EOS_Lobby_AddNotifySendLobbyNativeInviteRequested function."]
8975#[repr(C)]
8976#[derive(Debug, Default, Copy, Clone)]
8977pub struct _tagEOS_Lobby_AddNotifySendLobbyNativeInviteRequestedOptions {
8978    #[doc = " API Version: Set this to EOS_LOBBY_ADDNOTIFYSENDLOBBYNATIVEINVITEREQUESTED_API_LATEST."]
8979    pub ApiVersion: i32,
8980}
8981#[doc = " Input parameters for the EOS_Lobby_AddNotifySendLobbyNativeInviteRequested function."]
8982pub type EOS_Lobby_AddNotifySendLobbyNativeInviteRequestedOptions =
8983    _tagEOS_Lobby_AddNotifySendLobbyNativeInviteRequestedOptions;
8984#[doc = " Output parameters for the EOS_Lobby_OnSendLobbyNativeInviteRequestedCallback Function."]
8985#[repr(C)]
8986#[derive(Debug, Copy, Clone)]
8987pub struct _tagEOS_Lobby_SendLobbyNativeInviteRequestedCallbackInfo {
8988    #[doc = " Context that was passed into EOS_Lobby_AddNotifySendLobbyNativeInviteRequested"]
8989    pub ClientData: *mut ::std::os::raw::c_void,
8990    #[doc = " Identifies this event which will need to be acknowledged with EOS_UI_AcknowledgeEventId().\n @see EOS_UI_AcknowledgeEventId"]
8991    pub UiEventId: EOS_UI_EventId,
8992    #[doc = " The Product User ID of the local user who is inviting."]
8993    pub LocalUserId: EOS_ProductUserId,
8994    #[doc = " The Native Platform Account Type. If only a single integrated platform is configured then\n this will always reference that platform."]
8995    pub TargetNativeAccountType: EOS_IntegratedPlatformType,
8996    #[doc = " The Native Platform Account ID of the target user being invited."]
8997    pub TargetUserNativeAccountId: *const ::std::os::raw::c_char,
8998    #[doc = " Lobby ID that the user is being invited to"]
8999    pub LobbyId: EOS_LobbyId,
9000}
9001impl Default for _tagEOS_Lobby_SendLobbyNativeInviteRequestedCallbackInfo {
9002    fn default() -> Self {
9003        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9004        unsafe {
9005            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9006            s.assume_init()
9007        }
9008    }
9009}
9010#[doc = " Output parameters for the EOS_Lobby_OnSendLobbyNativeInviteRequestedCallback Function."]
9011pub type EOS_Lobby_SendLobbyNativeInviteRequestedCallbackInfo =
9012    _tagEOS_Lobby_SendLobbyNativeInviteRequestedCallbackInfo;
9013#[doc = " Function prototype definition for notifications that comes from EOS_Lobby_AddNotifySendLobbyNativeInviteRequested\n\n @param Data A EOS_Lobby_SendLobbyNativeInviteRequestedCallbackInfo containing the output information and result\n\n @note After processing the callback EOS_UI_AcknowledgeEventId must be called.\n\n @see EOS_UI_AcknowledgeEventId"]
9014pub type EOS_Lobby_OnSendLobbyNativeInviteRequestedCallback = ::std::option::Option<
9015    unsafe extern "C" fn(Data: *const EOS_Lobby_SendLobbyNativeInviteRequestedCallbackInfo),
9016>;
9017#[doc = " Input parameters for the EOS_Lobby_CopyLobbyDetailsHandleByInviteId function."]
9018#[repr(C)]
9019#[derive(Debug, Copy, Clone)]
9020pub struct _tagEOS_Lobby_CopyLobbyDetailsHandleByInviteIdOptions {
9021    #[doc = " API Version: Set this to EOS_LOBBY_COPYLOBBYDETAILSHANDLEBYINVITEID_API_LATEST."]
9022    pub ApiVersion: i32,
9023    #[doc = " The ID of an invitation to join the lobby"]
9024    pub InviteId: *const ::std::os::raw::c_char,
9025}
9026impl Default for _tagEOS_Lobby_CopyLobbyDetailsHandleByInviteIdOptions {
9027    fn default() -> Self {
9028        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9029        unsafe {
9030            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9031            s.assume_init()
9032        }
9033    }
9034}
9035#[doc = " Input parameters for the EOS_Lobby_CopyLobbyDetailsHandleByInviteId function."]
9036pub type EOS_Lobby_CopyLobbyDetailsHandleByInviteIdOptions =
9037    _tagEOS_Lobby_CopyLobbyDetailsHandleByInviteIdOptions;
9038#[doc = " Input parameters for the EOS_Lobby_CopyLobbyDetailsHandleByUiEventId function."]
9039#[repr(C)]
9040#[derive(Debug, Default, Copy, Clone)]
9041pub struct _tagEOS_Lobby_CopyLobbyDetailsHandleByUiEventIdOptions {
9042    #[doc = " API Version: Set this to EOS_LOBBY_COPYLOBBYDETAILSHANDLEBYUIEVENTID_API_LATEST."]
9043    pub ApiVersion: i32,
9044    #[doc = " UI Event associated with the lobby"]
9045    pub UiEventId: EOS_UI_EventId,
9046}
9047#[doc = " Input parameters for the EOS_Lobby_CopyLobbyDetailsHandleByUiEventId function."]
9048pub type EOS_Lobby_CopyLobbyDetailsHandleByUiEventIdOptions =
9049    _tagEOS_Lobby_CopyLobbyDetailsHandleByUiEventIdOptions;
9050#[doc = " Input parameters for the EOS_Lobby_CreateLobbySearch function."]
9051#[repr(C)]
9052#[derive(Debug, Default, Copy, Clone)]
9053pub struct _tagEOS_Lobby_CreateLobbySearchOptions {
9054    #[doc = " API Version: Set this to EOS_LOBBY_CREATELOBBYSEARCH_API_LATEST."]
9055    pub ApiVersion: i32,
9056    #[doc = " Maximum number of results allowed from the search"]
9057    pub MaxResults: u32,
9058}
9059#[doc = " Input parameters for the EOS_Lobby_CreateLobbySearch function."]
9060pub type EOS_Lobby_CreateLobbySearchOptions = _tagEOS_Lobby_CreateLobbySearchOptions;
9061#[doc = " Input parameters for the EOS_Lobby_SendInvite function."]
9062#[repr(C)]
9063#[derive(Debug, Copy, Clone)]
9064pub struct _tagEOS_Lobby_SendInviteOptions {
9065    #[doc = " API Version: Set this to EOS_LOBBY_SENDINVITE_API_LATEST."]
9066    pub ApiVersion: i32,
9067    #[doc = " The ID of the lobby associated with the invitation"]
9068    pub LobbyId: EOS_LobbyId,
9069    #[doc = " The Product User ID of the local user sending the invitation"]
9070    pub LocalUserId: EOS_ProductUserId,
9071    #[doc = " The Product User ID of the user receiving the invitation"]
9072    pub TargetUserId: EOS_ProductUserId,
9073}
9074impl Default for _tagEOS_Lobby_SendInviteOptions {
9075    fn default() -> Self {
9076        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9077        unsafe {
9078            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9079            s.assume_init()
9080        }
9081    }
9082}
9083#[doc = " Input parameters for the EOS_Lobby_SendInvite function."]
9084pub type EOS_Lobby_SendInviteOptions = _tagEOS_Lobby_SendInviteOptions;
9085#[doc = " Output parameters for the EOS_Lobby_SendInvite function."]
9086#[repr(C)]
9087#[derive(Debug, Copy, Clone)]
9088pub struct _tagEOS_Lobby_SendInviteCallbackInfo {
9089    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
9090    pub ResultCode: EOS_EResult,
9091    #[doc = " Context that was passed into EOS_Lobby_SendInvite"]
9092    pub ClientData: *mut ::std::os::raw::c_void,
9093    #[doc = " The ID of the lobby"]
9094    pub LobbyId: EOS_LobbyId,
9095}
9096impl Default for _tagEOS_Lobby_SendInviteCallbackInfo {
9097    fn default() -> Self {
9098        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9099        unsafe {
9100            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9101            s.assume_init()
9102        }
9103    }
9104}
9105#[doc = " Output parameters for the EOS_Lobby_SendInvite function."]
9106pub type EOS_Lobby_SendInviteCallbackInfo = _tagEOS_Lobby_SendInviteCallbackInfo;
9107#[doc = " Function prototype definition for callbacks passed to EOS_Lobby_SendInvite\n @param Data A EOS_Lobby_SendInvite CallbackInfo containing the output information and result"]
9108pub type EOS_Lobby_OnSendInviteCallback =
9109    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Lobby_SendInviteCallbackInfo)>;
9110#[doc = " Input parameters for the EOS_Lobby_RejectInvite function."]
9111#[repr(C)]
9112#[derive(Debug, Copy, Clone)]
9113pub struct _tagEOS_Lobby_RejectInviteOptions {
9114    #[doc = " API Version: Set this to EOS_LOBBY_REJECTINVITE_API_LATEST."]
9115    pub ApiVersion: i32,
9116    #[doc = " The ID of the lobby associated with the invitation"]
9117    pub InviteId: *const ::std::os::raw::c_char,
9118    #[doc = " The Product User ID of the local user who is rejecting the invitation"]
9119    pub LocalUserId: EOS_ProductUserId,
9120}
9121impl Default for _tagEOS_Lobby_RejectInviteOptions {
9122    fn default() -> Self {
9123        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9124        unsafe {
9125            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9126            s.assume_init()
9127        }
9128    }
9129}
9130#[doc = " Input parameters for the EOS_Lobby_RejectInvite function."]
9131pub type EOS_Lobby_RejectInviteOptions = _tagEOS_Lobby_RejectInviteOptions;
9132#[doc = " Output parameters for the EOS_Lobby_RejectInvite function."]
9133#[repr(C)]
9134#[derive(Debug, Copy, Clone)]
9135pub struct _tagEOS_Lobby_RejectInviteCallbackInfo {
9136    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
9137    pub ResultCode: EOS_EResult,
9138    #[doc = " Context that was passed into EOS_Lobby_RejectInvite"]
9139    pub ClientData: *mut ::std::os::raw::c_void,
9140    #[doc = " The ID of the invitation being rejected"]
9141    pub InviteId: *const ::std::os::raw::c_char,
9142}
9143impl Default for _tagEOS_Lobby_RejectInviteCallbackInfo {
9144    fn default() -> Self {
9145        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9146        unsafe {
9147            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9148            s.assume_init()
9149        }
9150    }
9151}
9152#[doc = " Output parameters for the EOS_Lobby_RejectInvite function."]
9153pub type EOS_Lobby_RejectInviteCallbackInfo = _tagEOS_Lobby_RejectInviteCallbackInfo;
9154#[doc = " Function prototype definition for callbacks passed to EOS_Lobby_RejectInvite\n @param Data A EOS_Lobby_RejectInvite CallbackInfo containing the output information and result"]
9155pub type EOS_Lobby_OnRejectInviteCallback =
9156    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Lobby_RejectInviteCallbackInfo)>;
9157#[doc = " Input parameters for the EOS_Lobby_QueryInvites function."]
9158#[repr(C)]
9159#[derive(Debug, Copy, Clone)]
9160pub struct _tagEOS_Lobby_QueryInvitesOptions {
9161    #[doc = " API Version: Set this to EOS_LOBBY_QUERYINVITES_API_LATEST."]
9162    pub ApiVersion: i32,
9163    #[doc = " The Product User ID of the local user whose invitations you want to retrieve"]
9164    pub LocalUserId: EOS_ProductUserId,
9165}
9166impl Default for _tagEOS_Lobby_QueryInvitesOptions {
9167    fn default() -> Self {
9168        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9169        unsafe {
9170            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9171            s.assume_init()
9172        }
9173    }
9174}
9175#[doc = " Input parameters for the EOS_Lobby_QueryInvites function."]
9176pub type EOS_Lobby_QueryInvitesOptions = _tagEOS_Lobby_QueryInvitesOptions;
9177#[doc = " Output parameters for the EOS_Lobby_QueryInvites function."]
9178#[repr(C)]
9179#[derive(Debug, Copy, Clone)]
9180pub struct _tagEOS_Lobby_QueryInvitesCallbackInfo {
9181    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
9182    pub ResultCode: EOS_EResult,
9183    #[doc = " Context that was passed into EOS_Lobby_QueryInvites"]
9184    pub ClientData: *mut ::std::os::raw::c_void,
9185    #[doc = " The Product User ID of the local user that made the request"]
9186    pub LocalUserId: EOS_ProductUserId,
9187}
9188impl Default for _tagEOS_Lobby_QueryInvitesCallbackInfo {
9189    fn default() -> Self {
9190        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9191        unsafe {
9192            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9193            s.assume_init()
9194        }
9195    }
9196}
9197#[doc = " Output parameters for the EOS_Lobby_QueryInvites function."]
9198pub type EOS_Lobby_QueryInvitesCallbackInfo = _tagEOS_Lobby_QueryInvitesCallbackInfo;
9199#[doc = " Function prototype definition for callbacks passed to EOS_Lobby_QueryInvites\n @param Data A EOS_Lobby_QueryInvites CallbackInfo containing the output information and result"]
9200pub type EOS_Lobby_OnQueryInvitesCallback =
9201    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Lobby_QueryInvitesCallbackInfo)>;
9202#[doc = " Input parameters for the EOS_Lobby_GetInviteCount function."]
9203#[repr(C)]
9204#[derive(Debug, Copy, Clone)]
9205pub struct _tagEOS_Lobby_GetInviteCountOptions {
9206    #[doc = " API Version: Set this to EOS_LOBBY_GETINVITECOUNT_API_LATEST."]
9207    pub ApiVersion: i32,
9208    #[doc = " The Product User ID of the local user whose cached lobby invitations you want to count"]
9209    pub LocalUserId: EOS_ProductUserId,
9210}
9211impl Default for _tagEOS_Lobby_GetInviteCountOptions {
9212    fn default() -> Self {
9213        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9214        unsafe {
9215            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9216            s.assume_init()
9217        }
9218    }
9219}
9220#[doc = " Input parameters for the EOS_Lobby_GetInviteCount function."]
9221pub type EOS_Lobby_GetInviteCountOptions = _tagEOS_Lobby_GetInviteCountOptions;
9222#[doc = " Input parameters for the EOS_Lobby_GetInviteIdByIndex function."]
9223#[repr(C)]
9224#[derive(Debug, Copy, Clone)]
9225pub struct _tagEOS_Lobby_GetInviteIdByIndexOptions {
9226    #[doc = " API Version: Set this to EOS_LOBBY_GETINVITEIDBYINDEX_API_LATEST."]
9227    pub ApiVersion: i32,
9228    #[doc = " The Product User ID of the local user who received the cached invitation"]
9229    pub LocalUserId: EOS_ProductUserId,
9230    #[doc = " The index of the invitation ID to retrieve"]
9231    pub Index: u32,
9232}
9233impl Default for _tagEOS_Lobby_GetInviteIdByIndexOptions {
9234    fn default() -> Self {
9235        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9236        unsafe {
9237            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9238            s.assume_init()
9239        }
9240    }
9241}
9242#[doc = " Input parameters for the EOS_Lobby_GetInviteIdByIndex function."]
9243pub type EOS_Lobby_GetInviteIdByIndexOptions = _tagEOS_Lobby_GetInviteIdByIndexOptions;
9244#[doc = " Input parameters for the EOS_Lobby_CopyLobbyDetailsHandle function."]
9245#[repr(C)]
9246#[derive(Debug, Copy, Clone)]
9247pub struct _tagEOS_Lobby_CopyLobbyDetailsHandleOptions {
9248    #[doc = " API Version: Set this to EOS_LOBBY_COPYLOBBYDETAILSHANDLE_API_LATEST."]
9249    pub ApiVersion: i32,
9250    #[doc = " The ID of the lobby"]
9251    pub LobbyId: EOS_LobbyId,
9252    #[doc = " The Product User ID of the local user making the request"]
9253    pub LocalUserId: EOS_ProductUserId,
9254}
9255impl Default for _tagEOS_Lobby_CopyLobbyDetailsHandleOptions {
9256    fn default() -> Self {
9257        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9258        unsafe {
9259            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9260            s.assume_init()
9261        }
9262    }
9263}
9264#[doc = " Input parameters for the EOS_Lobby_CopyLobbyDetailsHandle function."]
9265pub type EOS_Lobby_CopyLobbyDetailsHandleOptions = _tagEOS_Lobby_CopyLobbyDetailsHandleOptions;
9266#[doc = " Input parameters for the EOS_Lobby_GetRTCRoomName function."]
9267#[repr(C)]
9268#[derive(Debug, Copy, Clone)]
9269pub struct _tagEOS_Lobby_GetRTCRoomNameOptions {
9270    #[doc = " API Version: Set this to EOS_LOBBY_GETRTCROOMNAME_API_LATEST."]
9271    pub ApiVersion: i32,
9272    #[doc = " The ID of the lobby to get the RTC Room name for"]
9273    pub LobbyId: EOS_LobbyId,
9274    #[doc = " The Product User ID of the local user in the lobby"]
9275    pub LocalUserId: EOS_ProductUserId,
9276}
9277impl Default for _tagEOS_Lobby_GetRTCRoomNameOptions {
9278    fn default() -> Self {
9279        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9280        unsafe {
9281            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9282            s.assume_init()
9283        }
9284    }
9285}
9286#[doc = " Input parameters for the EOS_Lobby_GetRTCRoomName function."]
9287pub type EOS_Lobby_GetRTCRoomNameOptions = _tagEOS_Lobby_GetRTCRoomNameOptions;
9288#[doc = " Input parameters for the EOS_Lobby_IsRTCRoomConnected function."]
9289#[repr(C)]
9290#[derive(Debug, Copy, Clone)]
9291pub struct _tagEOS_Lobby_IsRTCRoomConnectedOptions {
9292    #[doc = " API Version: Set this to EOS_LOBBY_ISRTCROOMCONNECTED_API_LATEST."]
9293    pub ApiVersion: i32,
9294    #[doc = " The ID of the lobby to get the RTC Room name for"]
9295    pub LobbyId: EOS_LobbyId,
9296    #[doc = " The Product User ID of the local user in the lobby"]
9297    pub LocalUserId: EOS_ProductUserId,
9298}
9299impl Default for _tagEOS_Lobby_IsRTCRoomConnectedOptions {
9300    fn default() -> Self {
9301        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9302        unsafe {
9303            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9304            s.assume_init()
9305        }
9306    }
9307}
9308#[doc = " Input parameters for the EOS_Lobby_IsRTCRoomConnected function."]
9309pub type EOS_Lobby_IsRTCRoomConnectedOptions = _tagEOS_Lobby_IsRTCRoomConnectedOptions;
9310#[doc = " Input parameters for the EOS_Lobby_AddNotifyRTCRoomConnectionChanged function."]
9311#[repr(C)]
9312#[derive(Debug, Copy, Clone)]
9313pub struct _tagEOS_Lobby_AddNotifyRTCRoomConnectionChangedOptions {
9314    #[doc = " API Version: Set this to EOS_LOBBY_ADDNOTIFYRTCROOMCONNECTIONCHANGED_API_LATEST."]
9315    pub ApiVersion: i32,
9316    #[doc = " The ID of the lobby to receive RTC Room connection change notifications for\n This is deprecated and no longer needed. The notification is raised for any LobbyId or LocalUserId. If any filtering is required, the callback struct (EOS_Lobby_RTCRoomConnectionChangedCallbackInfo) has both a LobbyId and LocalUserId field."]
9317    pub LobbyId_DEPRECATED: EOS_LobbyId,
9318    #[doc = " The Product User ID of the local user in the lobby\n This is deprecated and no longer needed. The notification is raised for any LobbyId or LocalUserId. If any filtering is required, the callback struct (EOS_Lobby_RTCRoomConnectionChangedCallbackInfo) has both a LobbyId and LocalUserId field."]
9319    pub LocalUserId_DEPRECATED: EOS_ProductUserId,
9320}
9321impl Default for _tagEOS_Lobby_AddNotifyRTCRoomConnectionChangedOptions {
9322    fn default() -> Self {
9323        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9324        unsafe {
9325            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9326            s.assume_init()
9327        }
9328    }
9329}
9330#[doc = " Input parameters for the EOS_Lobby_AddNotifyRTCRoomConnectionChanged function."]
9331pub type EOS_Lobby_AddNotifyRTCRoomConnectionChangedOptions =
9332    _tagEOS_Lobby_AddNotifyRTCRoomConnectionChangedOptions;
9333#[doc = " Output parameters for the EOS_Lobby_AddNotifyRTCRoomConnectionChanged function."]
9334#[repr(C)]
9335#[derive(Debug, Copy, Clone)]
9336pub struct _tagEOS_Lobby_RTCRoomConnectionChangedCallbackInfo {
9337    #[doc = " Context that was passed into EOS_Lobby_AddNotifyRTCRoomConnectionChanged"]
9338    pub ClientData: *mut ::std::os::raw::c_void,
9339    #[doc = " The ID of the lobby which had a RTC Room connection state change"]
9340    pub LobbyId: EOS_LobbyId,
9341    #[doc = " The Product User ID of the local user who is in the lobby and registered for notifications"]
9342    pub LocalUserId: EOS_ProductUserId,
9343    #[doc = " The new connection state of the room"]
9344    pub bIsConnected: EOS_Bool,
9345    #[doc = "If bIsConnected is EOS_FALSE, this result will be the reason we were disconnected.\n EOS_Success: The room was left locally. This may be because: the associated lobby was Left or Destroyed, the connection to the lobby was interrupted, or because the SDK is being shutdown. If the lobby connection returns (lobby did not permanently go away), we will reconnect.\n EOS_NoConnection: There was a network issue connecting to the server. We will attempt to reconnect soon.\n EOS_RTC_UserKicked: The user has been kicked by the server. We will not reconnect.\n EOS_RTC_UserBanned: The user has been banned by the server. We will not reconnect.\n EOS_ServiceFailure: A known error occurred during interaction with the server. We will attempt to reconnect soon.\n EOS_UnexpectedError: Unexpected error. We will attempt to reconnect soon."]
9346    pub DisconnectReason: EOS_EResult,
9347}
9348impl Default for _tagEOS_Lobby_RTCRoomConnectionChangedCallbackInfo {
9349    fn default() -> Self {
9350        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9351        unsafe {
9352            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9353            s.assume_init()
9354        }
9355    }
9356}
9357#[doc = " Output parameters for the EOS_Lobby_AddNotifyRTCRoomConnectionChanged function."]
9358pub type EOS_Lobby_RTCRoomConnectionChangedCallbackInfo =
9359    _tagEOS_Lobby_RTCRoomConnectionChangedCallbackInfo;
9360#[doc = " Function prototype definition for notifications that comes from EOS_Lobby_AddNotifyRTCRoomConnectionChanged\n\n @param Data containing the connection state of the RTC Room for a lobby\n\n @see EOS_Lobby_IsRTCRoomConnected"]
9361pub type EOS_Lobby_OnRTCRoomConnectionChangedCallback = ::std::option::Option<
9362    unsafe extern "C" fn(Data: *const EOS_Lobby_RTCRoomConnectionChangedCallbackInfo),
9363>;
9364#[doc = " Contains information about lobby and lobby member data"]
9365#[repr(C)]
9366#[derive(Copy, Clone)]
9367pub struct _tagEOS_Lobby_AttributeData {
9368    #[doc = " API Version: Set this to EOS_LOBBY_ATTRIBUTEDATA_API_LATEST."]
9369    pub ApiVersion: i32,
9370    #[doc = " Name of the lobby attribute"]
9371    pub Key: *const ::std::os::raw::c_char,
9372    #[doc = " Value of the lobby attribute"]
9373    pub Value: _tagEOS_Lobby_AttributeData__bindgen_ty_1,
9374    #[doc = " Type of value stored in the union"]
9375    pub ValueType: EOS_ELobbyAttributeType,
9376}
9377#[doc = " Value of the lobby attribute"]
9378#[repr(C)]
9379#[derive(Copy, Clone)]
9380pub union _tagEOS_Lobby_AttributeData__bindgen_ty_1 {
9381    #[doc = " Stored as an 8 byte integer"]
9382    pub AsInt64: i64,
9383    #[doc = " Stored as a double precision floating point"]
9384    pub AsDouble: f64,
9385    #[doc = " Stored as a boolean"]
9386    pub AsBool: EOS_Bool,
9387    #[doc = " Stored as a null terminated UTF8 string. Should not be nullptr"]
9388    pub AsUtf8: *const ::std::os::raw::c_char,
9389}
9390impl Default for _tagEOS_Lobby_AttributeData__bindgen_ty_1 {
9391    fn default() -> Self {
9392        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9393        unsafe {
9394            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9395            s.assume_init()
9396        }
9397    }
9398}
9399impl Default for _tagEOS_Lobby_AttributeData {
9400    fn default() -> Self {
9401        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9402        unsafe {
9403            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9404            s.assume_init()
9405        }
9406    }
9407}
9408#[doc = " Contains information about lobby and lobby member data"]
9409pub type EOS_Lobby_AttributeData = _tagEOS_Lobby_AttributeData;
9410#[doc = "  An attribute and its visibility setting stored with a lobby.\n  Used to store both lobby and lobby member data"]
9411#[repr(C)]
9412#[derive(Debug, Copy, Clone)]
9413pub struct _tagEOS_Lobby_Attribute {
9414    #[doc = " API Version: Set this to EOS_LOBBY_ATTRIBUTE_API_LATEST."]
9415    pub ApiVersion: i32,
9416    #[doc = " Key/Value pair describing the attribute"]
9417    pub Data: *mut EOS_Lobby_AttributeData,
9418    #[doc = " Is this attribute public or private to the lobby and its members"]
9419    pub Visibility: EOS_ELobbyAttributeVisibility,
9420}
9421impl Default for _tagEOS_Lobby_Attribute {
9422    fn default() -> Self {
9423        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9424        unsafe {
9425            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9426            s.assume_init()
9427        }
9428    }
9429}
9430#[doc = "  An attribute and its visibility setting stored with a lobby.\n  Used to store both lobby and lobby member data"]
9431pub type EOS_Lobby_Attribute = _tagEOS_Lobby_Attribute;
9432unsafe extern "C" {
9433    #[doc = " Release the memory associated with a lobby attribute. This must be called on data retrieved from the various Copy functions in the\n LobbyDetails interface which return an EOS_Lobby_Attribute.\n\n @param LobbyAttribute - The lobby attribute to release\n\n @see EOS_LobbyDetails_CopyAttributeByIndex\n @see EOS_LobbyDetails_CopyAttributeByKey\n @see EOS_LobbyDetails_CopyMemberAttributeByIndex\n @see EOS_LobbyDetails_CopyMemberAttributeByKey"]
9434    pub fn EOS_Lobby_Attribute_Release(LobbyAttribute: *mut EOS_Lobby_Attribute);
9435}
9436#[doc = " Input parameters for the EOS_Lobby_GetConnectString function."]
9437#[repr(C)]
9438#[derive(Debug, Copy, Clone)]
9439pub struct _tagEOS_Lobby_GetConnectStringOptions {
9440    #[doc = " API Version: Set this to EOS_LOBBY_GETCONNECTSTRING_API_LATEST."]
9441    pub ApiVersion: i32,
9442    #[doc = " The Product User ID of the local user requesting the connection string generated from the lobby; this user must currently own the lobby"]
9443    pub LocalUserId: EOS_ProductUserId,
9444    #[doc = " The ID of the lobby to generate a connection string for"]
9445    pub LobbyId: EOS_LobbyId,
9446}
9447impl Default for _tagEOS_Lobby_GetConnectStringOptions {
9448    fn default() -> Self {
9449        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9450        unsafe {
9451            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9452            s.assume_init()
9453        }
9454    }
9455}
9456#[doc = " Input parameters for the EOS_Lobby_GetConnectString function."]
9457pub type EOS_Lobby_GetConnectStringOptions = _tagEOS_Lobby_GetConnectStringOptions;
9458#[doc = " Input parameters for the EOS_Lobby_GetConnectString function."]
9459#[repr(C)]
9460#[derive(Debug, Copy, Clone)]
9461pub struct _tagEOS_Lobby_ParseConnectStringOptions {
9462    #[doc = " API Version: Set this to EOS_LOBBY_PARSECONNECTSTRING_API_LATEST."]
9463    pub ApiVersion: i32,
9464    #[doc = " The connection string to parse"]
9465    pub ConnectString: *const ::std::os::raw::c_char,
9466}
9467impl Default for _tagEOS_Lobby_ParseConnectStringOptions {
9468    fn default() -> Self {
9469        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9470        unsafe {
9471            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9472            s.assume_init()
9473        }
9474    }
9475}
9476#[doc = " Input parameters for the EOS_Lobby_GetConnectString function."]
9477pub type EOS_Lobby_ParseConnectStringOptions = _tagEOS_Lobby_ParseConnectStringOptions;
9478#[doc = " Input parameters for the EOS_LobbyModification_SetBucketId function."]
9479#[repr(C)]
9480#[derive(Debug, Copy, Clone)]
9481pub struct _tagEOS_LobbyModification_SetBucketIdOptions {
9482    #[doc = " API Version: Set this to EOS_LOBBYMODIFICATION_SETBUCKETID_API_LATEST."]
9483    pub ApiVersion: i32,
9484    #[doc = " The new bucket id associated with the lobby"]
9485    pub BucketId: *const ::std::os::raw::c_char,
9486}
9487impl Default for _tagEOS_LobbyModification_SetBucketIdOptions {
9488    fn default() -> Self {
9489        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9490        unsafe {
9491            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9492            s.assume_init()
9493        }
9494    }
9495}
9496#[doc = " Input parameters for the EOS_LobbyModification_SetBucketId function."]
9497pub type EOS_LobbyModification_SetBucketIdOptions = _tagEOS_LobbyModification_SetBucketIdOptions;
9498#[doc = " Input parameters for the EOS_LobbyModification_SetPermissionLevel function."]
9499#[repr(C)]
9500#[derive(Debug, Copy, Clone)]
9501pub struct _tagEOS_LobbyModification_SetPermissionLevelOptions {
9502    #[doc = " API Version: Set this to EOS_LOBBYMODIFICATION_SETPERMISSIONLEVEL_API_LATEST."]
9503    pub ApiVersion: i32,
9504    #[doc = " Permission level of the lobby"]
9505    pub PermissionLevel: EOS_ELobbyPermissionLevel,
9506}
9507impl Default for _tagEOS_LobbyModification_SetPermissionLevelOptions {
9508    fn default() -> Self {
9509        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9510        unsafe {
9511            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9512            s.assume_init()
9513        }
9514    }
9515}
9516#[doc = " Input parameters for the EOS_LobbyModification_SetPermissionLevel function."]
9517pub type EOS_LobbyModification_SetPermissionLevelOptions =
9518    _tagEOS_LobbyModification_SetPermissionLevelOptions;
9519#[doc = " Input parameters for the EOS_LobbyModification_SetMaxMembers function."]
9520#[repr(C)]
9521#[derive(Debug, Default, Copy, Clone)]
9522pub struct _tagEOS_LobbyModification_SetMaxMembersOptions {
9523    #[doc = " API Version: Set this to EOS_LOBBYMODIFICATION_SETMAXMEMBERS_API_LATEST."]
9524    pub ApiVersion: i32,
9525    #[doc = " New maximum number of lobby members"]
9526    pub MaxMembers: u32,
9527}
9528#[doc = " Input parameters for the EOS_LobbyModification_SetMaxMembers function."]
9529pub type EOS_LobbyModification_SetMaxMembersOptions =
9530    _tagEOS_LobbyModification_SetMaxMembersOptions;
9531#[doc = " Input parameters for the EOS_LobbyModification_SetInvitesAllowed Function."]
9532#[repr(C)]
9533#[derive(Debug, Default, Copy, Clone)]
9534pub struct _tagEOS_LobbyModification_SetInvitesAllowedOptions {
9535    #[doc = " API Version: Set this to EOS_LOBBYMODIFICATION_SETINVITESALLOWED_API_LATEST."]
9536    pub ApiVersion: i32,
9537    #[doc = " If true then invites can currently be sent for the associated lobby"]
9538    pub bInvitesAllowed: EOS_Bool,
9539}
9540#[doc = " Input parameters for the EOS_LobbyModification_SetInvitesAllowed Function."]
9541pub type EOS_LobbyModification_SetInvitesAllowedOptions =
9542    _tagEOS_LobbyModification_SetInvitesAllowedOptions;
9543#[doc = " Input parameters for the EOS_LobbyModification_AddAttribute function."]
9544#[repr(C)]
9545#[derive(Debug, Copy, Clone)]
9546pub struct _tagEOS_LobbyModification_AddAttributeOptions {
9547    #[doc = " API Version: Set this to EOS_LOBBYMODIFICATION_ADDATTRIBUTE_API_LATEST."]
9548    pub ApiVersion: i32,
9549    #[doc = " Key/Value pair describing the attribute to add to the lobby"]
9550    pub Attribute: *const EOS_Lobby_AttributeData,
9551    #[doc = " Is this attribute public or private to the lobby and its members"]
9552    pub Visibility: EOS_ELobbyAttributeVisibility,
9553}
9554impl Default for _tagEOS_LobbyModification_AddAttributeOptions {
9555    fn default() -> Self {
9556        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9557        unsafe {
9558            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9559            s.assume_init()
9560        }
9561    }
9562}
9563#[doc = " Input parameters for the EOS_LobbyModification_AddAttribute function."]
9564pub type EOS_LobbyModification_AddAttributeOptions = _tagEOS_LobbyModification_AddAttributeOptions;
9565#[doc = " Input parameters for the EOS_LobbyModification_RemoveAttribute function."]
9566#[repr(C)]
9567#[derive(Debug, Copy, Clone)]
9568pub struct _tagEOS_LobbyModification_RemoveAttributeOptions {
9569    #[doc = " API Version: Set this to EOS_LOBBYMODIFICATION_REMOVEATTRIBUTE_API_LATEST."]
9570    pub ApiVersion: i32,
9571    #[doc = " Name of the key"]
9572    pub Key: *const ::std::os::raw::c_char,
9573}
9574impl Default for _tagEOS_LobbyModification_RemoveAttributeOptions {
9575    fn default() -> Self {
9576        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9577        unsafe {
9578            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9579            s.assume_init()
9580        }
9581    }
9582}
9583#[doc = " Input parameters for the EOS_LobbyModification_RemoveAttribute function."]
9584pub type EOS_LobbyModification_RemoveAttributeOptions =
9585    _tagEOS_LobbyModification_RemoveAttributeOptions;
9586#[doc = " Input parameters for the EOS_LobbyModification_AddMemberAttribute function."]
9587#[repr(C)]
9588#[derive(Debug, Copy, Clone)]
9589pub struct _tagEOS_LobbyModification_AddMemberAttributeOptions {
9590    #[doc = " API Version: Set this to EOS_LOBBYMODIFICATION_ADDMEMBERATTRIBUTE_API_LATEST."]
9591    pub ApiVersion: i32,
9592    #[doc = " Key/Value pair describing the attribute to add to the lobby member"]
9593    pub Attribute: *const EOS_Lobby_AttributeData,
9594    #[doc = " Is this attribute public or private to the rest of the lobby members"]
9595    pub Visibility: EOS_ELobbyAttributeVisibility,
9596}
9597impl Default for _tagEOS_LobbyModification_AddMemberAttributeOptions {
9598    fn default() -> Self {
9599        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9600        unsafe {
9601            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9602            s.assume_init()
9603        }
9604    }
9605}
9606#[doc = " Input parameters for the EOS_LobbyModification_AddMemberAttribute function."]
9607pub type EOS_LobbyModification_AddMemberAttributeOptions =
9608    _tagEOS_LobbyModification_AddMemberAttributeOptions;
9609#[doc = " Input parameters for the EOS_LobbyModification_RemoveMemberAttribute function."]
9610#[repr(C)]
9611#[derive(Debug, Copy, Clone)]
9612pub struct _tagEOS_LobbyModification_RemoveMemberAttributeOptions {
9613    #[doc = " API Version: Set this to EOS_LOBBYMODIFICATION_REMOVEMEMBERATTRIBUTE_API_LATEST."]
9614    pub ApiVersion: i32,
9615    #[doc = " Name of the key"]
9616    pub Key: *const ::std::os::raw::c_char,
9617}
9618impl Default for _tagEOS_LobbyModification_RemoveMemberAttributeOptions {
9619    fn default() -> Self {
9620        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9621        unsafe {
9622            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9623            s.assume_init()
9624        }
9625    }
9626}
9627#[doc = " Input parameters for the EOS_LobbyModification_RemoveMemberAttribute function."]
9628pub type EOS_LobbyModification_RemoveMemberAttributeOptions =
9629    _tagEOS_LobbyModification_RemoveMemberAttributeOptions;
9630#[doc = " Input parameters for the EOS_LobbyModification_SetAllowedPlatformIdsOptions function."]
9631#[repr(C)]
9632#[derive(Debug, Copy, Clone)]
9633pub struct _tagEOS_LobbyModification_SetAllowedPlatformIdsOptions {
9634    #[doc = " API Version: Set this to EOS_LOBBYMODIFICATION_SETALLOWEDPLATFORMIDS_API_LATEST."]
9635    pub ApiVersion: i32,
9636    #[doc = " Array of platform IDs indicating the player platforms allowed to register with the lobby. Platform IDs are\n found in the EOS header file (eos_common.h), for example EOS_OPT_Epic. For some platforms the value will be\n in the EOS Platform specific header file. If null, the lobby will be unrestricted."]
9637    pub AllowedPlatformIds: *const u32,
9638    #[doc = " Number of platform IDs in the array"]
9639    pub AllowedPlatformIdsCount: u32,
9640}
9641impl Default for _tagEOS_LobbyModification_SetAllowedPlatformIdsOptions {
9642    fn default() -> Self {
9643        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9644        unsafe {
9645            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9646            s.assume_init()
9647        }
9648    }
9649}
9650#[doc = " Input parameters for the EOS_LobbyModification_SetAllowedPlatformIdsOptions function."]
9651pub type EOS_LobbyModification_SetAllowedPlatformIdsOptions =
9652    _tagEOS_LobbyModification_SetAllowedPlatformIdsOptions;
9653#[doc = " Input parameters for the EOS_LobbyDetails_GetLobbyOwner function."]
9654#[repr(C)]
9655#[derive(Debug, Default, Copy, Clone)]
9656pub struct _tagEOS_LobbyDetails_GetLobbyOwnerOptions {
9657    #[doc = " API Version: Set this to EOS_LOBBYDETAILS_GETLOBBYOWNER_API_LATEST."]
9658    pub ApiVersion: i32,
9659}
9660#[doc = " Input parameters for the EOS_LobbyDetails_GetLobbyOwner function."]
9661pub type EOS_LobbyDetails_GetLobbyOwnerOptions = _tagEOS_LobbyDetails_GetLobbyOwnerOptions;
9662#[doc = " Input parameters for the EOS_LobbyDetails_CopyInfo function."]
9663#[repr(C)]
9664#[derive(Debug, Default, Copy, Clone)]
9665pub struct _tagEOS_LobbyDetails_CopyInfoOptions {
9666    #[doc = " API Version: Set this to EOS_LOBBYDETAILS_COPYINFO_API_LATEST."]
9667    pub ApiVersion: i32,
9668}
9669#[doc = " Input parameters for the EOS_LobbyDetails_CopyInfo function."]
9670pub type EOS_LobbyDetails_CopyInfoOptions = _tagEOS_LobbyDetails_CopyInfoOptions;
9671#[doc = " Input parameters for the EOS_LobbyDetails_GetAttributeCount function."]
9672#[repr(C)]
9673#[derive(Debug, Default, Copy, Clone)]
9674pub struct _tagEOS_LobbyDetails_GetAttributeCountOptions {
9675    #[doc = " API Version: Set this to EOS_LOBBYDETAILS_GETATTRIBUTECOUNT_API_LATEST."]
9676    pub ApiVersion: i32,
9677}
9678#[doc = " Input parameters for the EOS_LobbyDetails_GetAttributeCount function."]
9679pub type EOS_LobbyDetails_GetAttributeCountOptions = _tagEOS_LobbyDetails_GetAttributeCountOptions;
9680#[doc = " Input parameters for the EOS_LobbyDetails_CopyAttributeByIndex function."]
9681#[repr(C)]
9682#[derive(Debug, Default, Copy, Clone)]
9683pub struct _tagEOS_LobbyDetails_CopyAttributeByIndexOptions {
9684    #[doc = " API Version: Set this to EOS_LOBBYDETAILS_COPYATTRIBUTEBYINDEX_API_LATEST."]
9685    pub ApiVersion: i32,
9686    #[doc = " The index of the attribute to retrieve\n @see EOS_LobbyDetails_GetAttributeCount"]
9687    pub AttrIndex: u32,
9688}
9689#[doc = " Input parameters for the EOS_LobbyDetails_CopyAttributeByIndex function."]
9690pub type EOS_LobbyDetails_CopyAttributeByIndexOptions =
9691    _tagEOS_LobbyDetails_CopyAttributeByIndexOptions;
9692#[doc = " Input parameters for the EOS_LobbyDetails_CopyAttributeByKey function."]
9693#[repr(C)]
9694#[derive(Debug, Copy, Clone)]
9695pub struct _tagEOS_LobbyDetails_CopyAttributeByKeyOptions {
9696    #[doc = " API Version: Set this to EOS_LOBBYDETAILS_COPYATTRIBUTEBYKEY_API_LATEST."]
9697    pub ApiVersion: i32,
9698    #[doc = " Name of the attribute"]
9699    pub AttrKey: *const ::std::os::raw::c_char,
9700}
9701impl Default for _tagEOS_LobbyDetails_CopyAttributeByKeyOptions {
9702    fn default() -> Self {
9703        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9704        unsafe {
9705            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9706            s.assume_init()
9707        }
9708    }
9709}
9710#[doc = " Input parameters for the EOS_LobbyDetails_CopyAttributeByKey function."]
9711pub type EOS_LobbyDetails_CopyAttributeByKeyOptions =
9712    _tagEOS_LobbyDetails_CopyAttributeByKeyOptions;
9713#[doc = " Input parameters for the EOS_LobbyDetails_GetMemberAttributeCount function."]
9714#[repr(C)]
9715#[derive(Debug, Copy, Clone)]
9716pub struct _tagEOS_LobbyDetails_GetMemberAttributeCountOptions {
9717    #[doc = " API Version: Set this to EOS_LOBBYDETAILS_GETMEMBERATTRIBUTECOUNT_API_LATEST."]
9718    pub ApiVersion: i32,
9719    #[doc = " The Product User ID of the lobby member"]
9720    pub TargetUserId: EOS_ProductUserId,
9721}
9722impl Default for _tagEOS_LobbyDetails_GetMemberAttributeCountOptions {
9723    fn default() -> Self {
9724        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9725        unsafe {
9726            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9727            s.assume_init()
9728        }
9729    }
9730}
9731#[doc = " Input parameters for the EOS_LobbyDetails_GetMemberAttributeCount function."]
9732pub type EOS_LobbyDetails_GetMemberAttributeCountOptions =
9733    _tagEOS_LobbyDetails_GetMemberAttributeCountOptions;
9734#[doc = " Input parameters for the EOS_LobbyDetails_CopyMemberAttributeByIndex function."]
9735#[repr(C)]
9736#[derive(Debug, Copy, Clone)]
9737pub struct _tagEOS_LobbyDetails_CopyMemberAttributeByIndexOptions {
9738    #[doc = " API Version: Set this to EOS_LOBBYDETAILS_COPYMEMBERATTRIBUTEBYINDEX_API_LATEST."]
9739    pub ApiVersion: i32,
9740    #[doc = " The Product User ID of the lobby member"]
9741    pub TargetUserId: EOS_ProductUserId,
9742    #[doc = " The index of the attribute to copy"]
9743    pub AttrIndex: u32,
9744}
9745impl Default for _tagEOS_LobbyDetails_CopyMemberAttributeByIndexOptions {
9746    fn default() -> Self {
9747        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9748        unsafe {
9749            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9750            s.assume_init()
9751        }
9752    }
9753}
9754#[doc = " Input parameters for the EOS_LobbyDetails_CopyMemberAttributeByIndex function."]
9755pub type EOS_LobbyDetails_CopyMemberAttributeByIndexOptions =
9756    _tagEOS_LobbyDetails_CopyMemberAttributeByIndexOptions;
9757#[doc = " Input parameters for the EOS_LobbyDetails_CopyMemberAttributeByKey function."]
9758#[repr(C)]
9759#[derive(Debug, Copy, Clone)]
9760pub struct _tagEOS_LobbyDetails_CopyMemberAttributeByKeyOptions {
9761    #[doc = " API Version: Set this to EOS_LOBBYDETAILS_COPYMEMBERATTRIBUTEBYKEY_API_LATEST."]
9762    pub ApiVersion: i32,
9763    #[doc = " The Product User ID of the lobby member"]
9764    pub TargetUserId: EOS_ProductUserId,
9765    #[doc = " Name of the attribute to copy"]
9766    pub AttrKey: *const ::std::os::raw::c_char,
9767}
9768impl Default for _tagEOS_LobbyDetails_CopyMemberAttributeByKeyOptions {
9769    fn default() -> Self {
9770        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9771        unsafe {
9772            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9773            s.assume_init()
9774        }
9775    }
9776}
9777#[doc = " Input parameters for the EOS_LobbyDetails_CopyMemberAttributeByKey function."]
9778pub type EOS_LobbyDetails_CopyMemberAttributeByKeyOptions =
9779    _tagEOS_LobbyDetails_CopyMemberAttributeByKeyOptions;
9780#[doc = " Input parameters for the EOS_LobbyDetails_GetMemberCount function."]
9781#[repr(C)]
9782#[derive(Debug, Default, Copy, Clone)]
9783pub struct _tagEOS_LobbyDetails_GetMemberCountOptions {
9784    #[doc = " API Version: Set this to EOS_LOBBYDETAILS_GETMEMBERCOUNT_API_LATEST."]
9785    pub ApiVersion: i32,
9786}
9787#[doc = " Input parameters for the EOS_LobbyDetails_GetMemberCount function."]
9788pub type EOS_LobbyDetails_GetMemberCountOptions = _tagEOS_LobbyDetails_GetMemberCountOptions;
9789#[doc = " Input parameters for the EOS_LobbyDetails_GetMemberByIndex function."]
9790#[repr(C)]
9791#[derive(Debug, Default, Copy, Clone)]
9792pub struct _tagEOS_LobbyDetails_GetMemberByIndexOptions {
9793    #[doc = " API Version: Set this to EOS_LOBBYDETAILS_GETMEMBERBYINDEX_API_LATEST."]
9794    pub ApiVersion: i32,
9795    #[doc = " Index of the member to retrieve"]
9796    pub MemberIndex: u32,
9797}
9798#[doc = " Input parameters for the EOS_LobbyDetails_GetMemberByIndex function."]
9799pub type EOS_LobbyDetails_GetMemberByIndexOptions = _tagEOS_LobbyDetails_GetMemberByIndexOptions;
9800#[doc = " Input parameters for the EOS_LobbySearch_Find function."]
9801#[repr(C)]
9802#[derive(Debug, Copy, Clone)]
9803pub struct _tagEOS_LobbySearch_FindOptions {
9804    #[doc = " API Version: Set this to EOS_LOBBYSEARCH_FIND_API_LATEST."]
9805    pub ApiVersion: i32,
9806    #[doc = " The Product User ID of the user making the search request"]
9807    pub LocalUserId: EOS_ProductUserId,
9808}
9809impl Default for _tagEOS_LobbySearch_FindOptions {
9810    fn default() -> Self {
9811        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9812        unsafe {
9813            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9814            s.assume_init()
9815        }
9816    }
9817}
9818#[doc = " Input parameters for the EOS_LobbySearch_Find function."]
9819pub type EOS_LobbySearch_FindOptions = _tagEOS_LobbySearch_FindOptions;
9820#[doc = " Output parameters for the EOS_LobbySearch_Find function."]
9821#[repr(C)]
9822#[derive(Debug, Copy, Clone)]
9823pub struct _tagEOS_LobbySearch_FindCallbackInfo {
9824    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
9825    pub ResultCode: EOS_EResult,
9826    #[doc = " Context that was passed into EOS_LobbySearch_Find"]
9827    pub ClientData: *mut ::std::os::raw::c_void,
9828}
9829impl Default for _tagEOS_LobbySearch_FindCallbackInfo {
9830    fn default() -> Self {
9831        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9832        unsafe {
9833            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9834            s.assume_init()
9835        }
9836    }
9837}
9838#[doc = " Output parameters for the EOS_LobbySearch_Find function."]
9839pub type EOS_LobbySearch_FindCallbackInfo = _tagEOS_LobbySearch_FindCallbackInfo;
9840#[doc = " Function prototype definition for callbacks passed to EOS_LobbySearch_Find\n @param Data A EOS_LobbySearch_Find CallbackInfo containing the output information and result"]
9841pub type EOS_LobbySearch_OnFindCallback =
9842    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_LobbySearch_FindCallbackInfo)>;
9843#[doc = " Input parameters for the EOS_LobbySearch_SetLobbyId function."]
9844#[repr(C)]
9845#[derive(Debug, Copy, Clone)]
9846pub struct _tagEOS_LobbySearch_SetLobbyIdOptions {
9847    #[doc = " API Version: Set this to EOS_LOBBYSEARCH_SETLOBBYID_API_LATEST."]
9848    pub ApiVersion: i32,
9849    #[doc = " The ID of the lobby to find"]
9850    pub LobbyId: EOS_LobbyId,
9851}
9852impl Default for _tagEOS_LobbySearch_SetLobbyIdOptions {
9853    fn default() -> Self {
9854        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9855        unsafe {
9856            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9857            s.assume_init()
9858        }
9859    }
9860}
9861#[doc = " Input parameters for the EOS_LobbySearch_SetLobbyId function."]
9862pub type EOS_LobbySearch_SetLobbyIdOptions = _tagEOS_LobbySearch_SetLobbyIdOptions;
9863#[doc = " Input parameters for the EOS_LobbySearch_SetTargetUserId function."]
9864#[repr(C)]
9865#[derive(Debug, Copy, Clone)]
9866pub struct _tagEOS_LobbySearch_SetTargetUserIdOptions {
9867    #[doc = " API Version: Set this to EOS_LOBBYSEARCH_SETTARGETUSERID_API_LATEST."]
9868    pub ApiVersion: i32,
9869    #[doc = " Search lobbies for given user by Product User ID, returning any lobbies where this user is currently registered"]
9870    pub TargetUserId: EOS_ProductUserId,
9871}
9872impl Default for _tagEOS_LobbySearch_SetTargetUserIdOptions {
9873    fn default() -> Self {
9874        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9875        unsafe {
9876            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9877            s.assume_init()
9878        }
9879    }
9880}
9881#[doc = " Input parameters for the EOS_LobbySearch_SetTargetUserId function."]
9882pub type EOS_LobbySearch_SetTargetUserIdOptions = _tagEOS_LobbySearch_SetTargetUserIdOptions;
9883#[doc = " Input parameters for the EOS_LobbySearch_SetParameter function."]
9884#[repr(C)]
9885#[derive(Debug, Copy, Clone)]
9886pub struct _tagEOS_LobbySearch_SetParameterOptions {
9887    #[doc = " API Version: Set this to EOS_LOBBYSEARCH_SETPARAMETER_API_LATEST."]
9888    pub ApiVersion: i32,
9889    #[doc = " Search parameter describing a key and a value to compare"]
9890    pub Parameter: *const EOS_Lobby_AttributeData,
9891    #[doc = " The type of comparison to make against the search parameter"]
9892    pub ComparisonOp: EOS_EComparisonOp,
9893}
9894impl Default for _tagEOS_LobbySearch_SetParameterOptions {
9895    fn default() -> Self {
9896        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9897        unsafe {
9898            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9899            s.assume_init()
9900        }
9901    }
9902}
9903#[doc = " Input parameters for the EOS_LobbySearch_SetParameter function."]
9904pub type EOS_LobbySearch_SetParameterOptions = _tagEOS_LobbySearch_SetParameterOptions;
9905#[doc = " Input parameters for the EOS_LobbySearch_RemoveParameter function."]
9906#[repr(C)]
9907#[derive(Debug, Copy, Clone)]
9908pub struct _tagEOS_LobbySearch_RemoveParameterOptions {
9909    #[doc = " API Version: Set this to EOS_LOBBYSEARCH_REMOVEPARAMETER_API_LATEST."]
9910    pub ApiVersion: i32,
9911    #[doc = " Search parameter key to remove from the search"]
9912    pub Key: *const ::std::os::raw::c_char,
9913    #[doc = " Search comparison operation associated with the key to remove"]
9914    pub ComparisonOp: EOS_EComparisonOp,
9915}
9916impl Default for _tagEOS_LobbySearch_RemoveParameterOptions {
9917    fn default() -> Self {
9918        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9919        unsafe {
9920            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9921            s.assume_init()
9922        }
9923    }
9924}
9925#[doc = " Input parameters for the EOS_LobbySearch_RemoveParameter function."]
9926pub type EOS_LobbySearch_RemoveParameterOptions = _tagEOS_LobbySearch_RemoveParameterOptions;
9927#[doc = " Input parameters for the EOS_LobbySearch_SetMaxResults function."]
9928#[repr(C)]
9929#[derive(Debug, Default, Copy, Clone)]
9930pub struct _tagEOS_LobbySearch_SetMaxResultsOptions {
9931    #[doc = " API Version: Set this to EOS_LOBBYSEARCH_SETMAXRESULTS_API_LATEST."]
9932    pub ApiVersion: i32,
9933    #[doc = " Maximum number of search results to return from the query"]
9934    pub MaxResults: u32,
9935}
9936#[doc = " Input parameters for the EOS_LobbySearch_SetMaxResults function."]
9937pub type EOS_LobbySearch_SetMaxResultsOptions = _tagEOS_LobbySearch_SetMaxResultsOptions;
9938#[doc = " Input parameters for the EOS_LobbySearch_GetSearchResultCount function."]
9939#[repr(C)]
9940#[derive(Debug, Default, Copy, Clone)]
9941pub struct _tagEOS_LobbySearch_GetSearchResultCountOptions {
9942    #[doc = " API Version: Set this to EOS_LOBBYSEARCH_GETSEARCHRESULTCOUNT_API_LATEST."]
9943    pub ApiVersion: i32,
9944}
9945#[doc = " Input parameters for the EOS_LobbySearch_GetSearchResultCount function."]
9946pub type EOS_LobbySearch_GetSearchResultCountOptions =
9947    _tagEOS_LobbySearch_GetSearchResultCountOptions;
9948#[doc = " Input parameters for the EOS_LobbySearch_CopySearchResultByIndex function."]
9949#[repr(C)]
9950#[derive(Debug, Default, Copy, Clone)]
9951pub struct _tagEOS_LobbySearch_CopySearchResultByIndexOptions {
9952    #[doc = " API Version: Set this to EOS_LOBBYSEARCH_COPYSEARCHRESULTBYINDEX_API_LATEST."]
9953    pub ApiVersion: i32,
9954    #[doc = " The index of the lobby to retrieve within the completed search query\n @see EOS_LobbySearch_GetSearchResultCount"]
9955    pub LobbyIndex: u32,
9956}
9957#[doc = " Input parameters for the EOS_LobbySearch_CopySearchResultByIndex function."]
9958pub type EOS_LobbySearch_CopySearchResultByIndexOptions =
9959    _tagEOS_LobbySearch_CopySearchResultByIndexOptions;
9960#[doc = " Input parameters for the EOS_LobbyDetails_CopyMemberInfo function."]
9961#[repr(C)]
9962#[derive(Debug, Copy, Clone)]
9963pub struct _tagEOS_LobbyDetails_CopyMemberInfoOptions {
9964    #[doc = " API Version: Set this to EOS_LOBBYDETAILS_COPYMEMBERINFO_API_LATEST."]
9965    pub ApiVersion: i32,
9966    #[doc = " The Product User ID of the lobby member to copy."]
9967    pub TargetUserId: EOS_ProductUserId,
9968}
9969impl Default for _tagEOS_LobbyDetails_CopyMemberInfoOptions {
9970    fn default() -> Self {
9971        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9972        unsafe {
9973            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9974            s.assume_init()
9975        }
9976    }
9977}
9978#[doc = " Input parameters for the EOS_LobbyDetails_CopyMemberInfo function."]
9979pub type EOS_LobbyDetails_CopyMemberInfoOptions = _tagEOS_LobbyDetails_CopyMemberInfoOptions;
9980#[doc = " Contains information about a member of a lobby."]
9981#[repr(C)]
9982#[derive(Debug, Copy, Clone)]
9983pub struct _tagEOS_LobbyDetails_MemberInfo {
9984    #[doc = " API Version: Set this to EOS_LOBBYDETAILS_MEMBERINFO_API_LATEST."]
9985    pub ApiVersion: i32,
9986    #[doc = " The Product User ID of the lobby member."]
9987    pub UserId: EOS_ProductUserId,
9988    #[doc = " The platform of the lobby member."]
9989    pub Platform: EOS_OnlinePlatformType,
9990    #[doc = " Does this member allow crossplay"]
9991    pub bAllowsCrossplay: EOS_Bool,
9992}
9993impl Default for _tagEOS_LobbyDetails_MemberInfo {
9994    fn default() -> Self {
9995        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9996        unsafe {
9997            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9998            s.assume_init()
9999        }
10000    }
10001}
10002#[doc = " Contains information about a member of a lobby."]
10003pub type EOS_LobbyDetails_MemberInfo = _tagEOS_LobbyDetails_MemberInfo;
10004unsafe extern "C" {
10005    #[doc = " Release the memory associated with a member info. This must be called on data retrieved from EOS_LobbyDetails_CopyMemberInfo.\n\n @param LobbyDetailsMemberInfo - The lobby details member info to release\n\n @see EOS_LobbyDetails_CopyMemberInfo"]
10006    pub fn EOS_LobbyDetails_MemberInfo_Release(
10007        LobbyDetailsMemberInfo: *mut EOS_LobbyDetails_MemberInfo,
10008    );
10009}
10010#[doc = " Input parameters for the EOS_Lobby_AddNotifyLeaveLobbyRequested function."]
10011#[repr(C)]
10012#[derive(Debug, Default, Copy, Clone)]
10013pub struct _tagEOS_Lobby_AddNotifyLeaveLobbyRequestedOptions {
10014    #[doc = " API Version: Set this to EOS_LOBBY_ADDNOTIFYLEAVELOBBYREQUESTED_API_LATEST."]
10015    pub ApiVersion: i32,
10016}
10017#[doc = " Input parameters for the EOS_Lobby_AddNotifyLeaveLobbyRequested function."]
10018pub type EOS_Lobby_AddNotifyLeaveLobbyRequestedOptions =
10019    _tagEOS_Lobby_AddNotifyLeaveLobbyRequestedOptions;
10020#[doc = " Output parameters for the EOS_Lobby_OnLeaveLobbyRequestedCallback Function."]
10021#[repr(C)]
10022#[derive(Debug, Copy, Clone)]
10023pub struct _tagEOS_Lobby_LeaveLobbyRequestedCallbackInfo {
10024    #[doc = " Context that was passed into EOS_Lobby_OnLeaveLobbyRequestedCallback"]
10025    pub ClientData: *mut ::std::os::raw::c_void,
10026    #[doc = " The Product User ID of the local user who received the leave lobby notification."]
10027    pub LocalUserId: EOS_ProductUserId,
10028    #[doc = " Lobby ID associated with the leave lobby request."]
10029    pub LobbyId: EOS_LobbyId,
10030}
10031impl Default for _tagEOS_Lobby_LeaveLobbyRequestedCallbackInfo {
10032    fn default() -> Self {
10033        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10034        unsafe {
10035            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10036            s.assume_init()
10037        }
10038    }
10039}
10040#[doc = " Output parameters for the EOS_Lobby_OnLeaveLobbyRequestedCallback Function."]
10041pub type EOS_Lobby_LeaveLobbyRequestedCallbackInfo = _tagEOS_Lobby_LeaveLobbyRequestedCallbackInfo;
10042#[doc = " Function prototype definition for notifications that comes from EOS_Lobby_AddNotifyLeaveLobbyRequested.\n\n @param Data A pointer to EOS_Lobby_LeaveLobbyRequestedCallbackInfo containing the output information."]
10043pub type EOS_Lobby_OnLeaveLobbyRequestedCallback = ::std::option::Option<
10044    unsafe extern "C" fn(Data: *const EOS_Lobby_LeaveLobbyRequestedCallbackInfo),
10045>;
10046#[repr(C)]
10047#[derive(Debug, Copy, Clone)]
10048pub struct EOS_UserInfoHandle {
10049    _unused: [u8; 0],
10050}
10051pub type EOS_HUserInfo = *mut EOS_UserInfoHandle;
10052#[doc = " Input parameters for the EOS_UserInfo_QueryUserInfo function."]
10053#[repr(C)]
10054#[derive(Debug, Copy, Clone)]
10055pub struct _tagEOS_UserInfo_QueryUserInfoOptions {
10056    #[doc = " API Version: Set this to EOS_USERINFO_QUERYUSERINFO_API_LATEST."]
10057    pub ApiVersion: i32,
10058    #[doc = " The Epic Account ID of the local player requesting the information"]
10059    pub LocalUserId: EOS_EpicAccountId,
10060    #[doc = " The Epic Account ID of the player whose information is being retrieved"]
10061    pub TargetUserId: EOS_EpicAccountId,
10062}
10063impl Default for _tagEOS_UserInfo_QueryUserInfoOptions {
10064    fn default() -> Self {
10065        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10066        unsafe {
10067            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10068            s.assume_init()
10069        }
10070    }
10071}
10072#[doc = " Input parameters for the EOS_UserInfo_QueryUserInfo function."]
10073pub type EOS_UserInfo_QueryUserInfoOptions = _tagEOS_UserInfo_QueryUserInfoOptions;
10074#[doc = " Output parameters for the EOS_UserInfo_QueryUserInfo Function."]
10075#[repr(C)]
10076#[derive(Debug, Copy, Clone)]
10077pub struct _tagEOS_UserInfo_QueryUserInfoCallbackInfo {
10078    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
10079    pub ResultCode: EOS_EResult,
10080    #[doc = " Context that was passed into EOS_UserInfo_QueryUserInfo"]
10081    pub ClientData: *mut ::std::os::raw::c_void,
10082    #[doc = " The Epic Account ID of the local player requesting the information"]
10083    pub LocalUserId: EOS_EpicAccountId,
10084    #[doc = " The Epic Account ID of the player whose information is being retrieved"]
10085    pub TargetUserId: EOS_EpicAccountId,
10086}
10087impl Default for _tagEOS_UserInfo_QueryUserInfoCallbackInfo {
10088    fn default() -> Self {
10089        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10090        unsafe {
10091            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10092            s.assume_init()
10093        }
10094    }
10095}
10096#[doc = " Output parameters for the EOS_UserInfo_QueryUserInfo Function."]
10097pub type EOS_UserInfo_QueryUserInfoCallbackInfo = _tagEOS_UserInfo_QueryUserInfoCallbackInfo;
10098#[doc = " Function prototype definition for callbacks passed to EOS_UserInfo_QueryUserInfo\n @param Data A EOS_UserInfo_QueryUserInfoCallbackInfo containing the output information and result"]
10099pub type EOS_UserInfo_OnQueryUserInfoCallback = ::std::option::Option<
10100    unsafe extern "C" fn(Data: *const EOS_UserInfo_QueryUserInfoCallbackInfo),
10101>;
10102#[doc = " Input parameters for the EOS_UserInfo_QueryUserInfoByDisplayName function."]
10103#[repr(C)]
10104#[derive(Debug, Copy, Clone)]
10105pub struct _tagEOS_UserInfo_QueryUserInfoByDisplayNameOptions {
10106    #[doc = " API Version: Set this to EOS_USERINFO_QUERYUSERINFOBYDISPLAYNAME_API_LATEST."]
10107    pub ApiVersion: i32,
10108    #[doc = " The Epic Account ID of the local player requesting the information"]
10109    pub LocalUserId: EOS_EpicAccountId,
10110    #[doc = " Raw display name (un-sanitized) of the player being queried"]
10111    pub DisplayName: *const ::std::os::raw::c_char,
10112}
10113impl Default for _tagEOS_UserInfo_QueryUserInfoByDisplayNameOptions {
10114    fn default() -> Self {
10115        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10116        unsafe {
10117            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10118            s.assume_init()
10119        }
10120    }
10121}
10122#[doc = " Input parameters for the EOS_UserInfo_QueryUserInfoByDisplayName function."]
10123pub type EOS_UserInfo_QueryUserInfoByDisplayNameOptions =
10124    _tagEOS_UserInfo_QueryUserInfoByDisplayNameOptions;
10125#[doc = " Output parameters for the EOS_UserInfo_QueryUserInfoByDisplayName Function."]
10126#[repr(C)]
10127#[derive(Debug, Copy, Clone)]
10128pub struct _tagEOS_UserInfo_QueryUserInfoByDisplayNameCallbackInfo {
10129    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
10130    pub ResultCode: EOS_EResult,
10131    #[doc = " Context that was passed into EOS_UserInfo_QueryUserInfoByDisplayName"]
10132    pub ClientData: *mut ::std::os::raw::c_void,
10133    #[doc = " The Epic Account ID of the local player requesting the information"]
10134    pub LocalUserId: EOS_EpicAccountId,
10135    #[doc = " The Epic Account ID of the player whose information is being retrieved"]
10136    pub TargetUserId: EOS_EpicAccountId,
10137    #[doc = " Display name (un-sanitized) of the player being queried. This memory is only valid during the scope of the callback."]
10138    pub DisplayName: *const ::std::os::raw::c_char,
10139}
10140impl Default for _tagEOS_UserInfo_QueryUserInfoByDisplayNameCallbackInfo {
10141    fn default() -> Self {
10142        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10143        unsafe {
10144            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10145            s.assume_init()
10146        }
10147    }
10148}
10149#[doc = " Output parameters for the EOS_UserInfo_QueryUserInfoByDisplayName Function."]
10150pub type EOS_UserInfo_QueryUserInfoByDisplayNameCallbackInfo =
10151    _tagEOS_UserInfo_QueryUserInfoByDisplayNameCallbackInfo;
10152#[doc = " Function prototype definition for callbacks passed to EOS_UserInfo_QueryUserInfo\n @param Data A EOS_UserInfo_QueryUserInfoByDisplayNameCallbackInfo containing the output information and result"]
10153pub type EOS_UserInfo_OnQueryUserInfoByDisplayNameCallback = ::std::option::Option<
10154    unsafe extern "C" fn(Data: *const EOS_UserInfo_QueryUserInfoByDisplayNameCallbackInfo),
10155>;
10156#[doc = " Input parameters for the EOS_UserInfo_QueryUserInfoByExternalAccount function."]
10157#[repr(C)]
10158#[derive(Debug, Copy, Clone)]
10159pub struct _tagEOS_UserInfo_QueryUserInfoByExternalAccountOptions {
10160    #[doc = " API Version: Set this to EOS_USERINFO_QUERYUSERINFOBYEXTERNALACCOUNT_API_LATEST."]
10161    pub ApiVersion: i32,
10162    #[doc = " The Epic Account ID of the local player requesting the information"]
10163    pub LocalUserId: EOS_EpicAccountId,
10164    #[doc = " External account ID of the user whose information is being retrieved"]
10165    pub ExternalAccountId: *const ::std::os::raw::c_char,
10166    #[doc = " Account type of the external user info to query"]
10167    pub AccountType: EOS_EExternalAccountType,
10168}
10169impl Default for _tagEOS_UserInfo_QueryUserInfoByExternalAccountOptions {
10170    fn default() -> Self {
10171        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10172        unsafe {
10173            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10174            s.assume_init()
10175        }
10176    }
10177}
10178#[doc = " Input parameters for the EOS_UserInfo_QueryUserInfoByExternalAccount function."]
10179pub type EOS_UserInfo_QueryUserInfoByExternalAccountOptions =
10180    _tagEOS_UserInfo_QueryUserInfoByExternalAccountOptions;
10181#[doc = " Output parameters for the EOS_UserInfo_QueryUserInfoByExternalAccount Function."]
10182#[repr(C)]
10183#[derive(Debug, Copy, Clone)]
10184pub struct _tagEOS_UserInfo_QueryUserInfoByExternalAccountCallbackInfo {
10185    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
10186    pub ResultCode: EOS_EResult,
10187    #[doc = " Context that was passed into EOS_UserInfo_QueryUserInfoByExternalAccount"]
10188    pub ClientData: *mut ::std::os::raw::c_void,
10189    #[doc = " The Epic Account ID of the local player who requested the information"]
10190    pub LocalUserId: EOS_EpicAccountId,
10191    #[doc = " External account id of the user whose information has been retrieved"]
10192    pub ExternalAccountId: *const ::std::os::raw::c_char,
10193    #[doc = " Account type of the external account id"]
10194    pub AccountType: EOS_EExternalAccountType,
10195    #[doc = " Account ID of the player whose information has been retrieved"]
10196    pub TargetUserId: EOS_EpicAccountId,
10197}
10198impl Default for _tagEOS_UserInfo_QueryUserInfoByExternalAccountCallbackInfo {
10199    fn default() -> Self {
10200        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10201        unsafe {
10202            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10203            s.assume_init()
10204        }
10205    }
10206}
10207#[doc = " Output parameters for the EOS_UserInfo_QueryUserInfoByExternalAccount Function."]
10208pub type EOS_UserInfo_QueryUserInfoByExternalAccountCallbackInfo =
10209    _tagEOS_UserInfo_QueryUserInfoByExternalAccountCallbackInfo;
10210#[doc = " Function prototype definition for callbacks passed to EOS_UserInfo_QueryUserInfoByExternalAccount\n @param Data A EOS_UserInfo_QueryUserInfoByExternalAccountCallbackInfo containing the output information and result"]
10211pub type EOS_UserInfo_OnQueryUserInfoByExternalAccountCallback = ::std::option::Option<
10212    unsafe extern "C" fn(Data: *const EOS_UserInfo_QueryUserInfoByExternalAccountCallbackInfo),
10213>;
10214#[doc = " A structure that contains the user information. These structures are created by EOS_UserInfo_CopyUserInfo and must be passed to EOS_UserInfo_Release."]
10215#[repr(C)]
10216#[derive(Debug, Copy, Clone)]
10217pub struct _tagEOS_UserInfo {
10218    #[doc = " API Version: Set this to EOS_USERINFO_COPYUSERINFO_API_LATEST."]
10219    pub ApiVersion: i32,
10220    #[doc = " The Epic Account ID of the user"]
10221    pub UserId: EOS_EpicAccountId,
10222    #[doc = " The name of the owner's country. This may be null"]
10223    pub Country: *const ::std::os::raw::c_char,
10224    #[doc = " The display name (un-sanitized). This may be null"]
10225    pub DisplayName: *const ::std::os::raw::c_char,
10226    #[doc = " The ISO 639 language code for the user's preferred language. This may be null"]
10227    pub PreferredLanguage: *const ::std::os::raw::c_char,
10228    #[doc = " A nickname/alias for the target user assigned by the local user. This may be null"]
10229    pub Nickname: *const ::std::os::raw::c_char,
10230    #[doc = " The raw display name (sanitized). This may be null"]
10231    pub DisplayNameSanitized: *const ::std::os::raw::c_char,
10232}
10233impl Default for _tagEOS_UserInfo {
10234    fn default() -> Self {
10235        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10236        unsafe {
10237            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10238            s.assume_init()
10239        }
10240    }
10241}
10242#[doc = " A structure that contains the user information. These structures are created by EOS_UserInfo_CopyUserInfo and must be passed to EOS_UserInfo_Release."]
10243pub type EOS_UserInfo = _tagEOS_UserInfo;
10244#[doc = " Input parameters for the EOS_UserInfo_CopyUserInfo function."]
10245#[repr(C)]
10246#[derive(Debug, Copy, Clone)]
10247pub struct _tagEOS_UserInfo_CopyUserInfoOptions {
10248    #[doc = " API Version: Set this to EOS_USERINFO_COPYUSERINFO_API_LATEST."]
10249    pub ApiVersion: i32,
10250    #[doc = " The Epic Account ID of the local player requesting the information"]
10251    pub LocalUserId: EOS_EpicAccountId,
10252    #[doc = " The Epic Account ID of the player whose information is being retrieved"]
10253    pub TargetUserId: EOS_EpicAccountId,
10254}
10255impl Default for _tagEOS_UserInfo_CopyUserInfoOptions {
10256    fn default() -> Self {
10257        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10258        unsafe {
10259            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10260            s.assume_init()
10261        }
10262    }
10263}
10264#[doc = " Input parameters for the EOS_UserInfo_CopyUserInfo function."]
10265pub type EOS_UserInfo_CopyUserInfoOptions = _tagEOS_UserInfo_CopyUserInfoOptions;
10266unsafe extern "C" {
10267    #[doc = " @param UserInfo - The user info structure to release\n\n @see EOS_UserInfo\n @see EOS_UserInfo_CopyUserInfo"]
10268    pub fn EOS_UserInfo_Release(UserInfo: *mut EOS_UserInfo);
10269}
10270#[doc = " Contains information about a single external user info."]
10271#[repr(C)]
10272#[derive(Debug, Copy, Clone)]
10273pub struct _tagEOS_UserInfo_ExternalUserInfo {
10274    #[doc = " API Version: Set this to EOS_USERINFO_EXTERNALUSERINFO_API_LATEST."]
10275    pub ApiVersion: i32,
10276    #[doc = " The type of the external account"]
10277    pub AccountType: EOS_EExternalAccountType,
10278    #[doc = " The ID of the external account. Can be null"]
10279    pub AccountId: *const ::std::os::raw::c_char,
10280    #[doc = " The display name of the external account (un-sanitized). Can be null"]
10281    pub DisplayName: *const ::std::os::raw::c_char,
10282    #[doc = " The display name of the external account (sanitized). Can be null"]
10283    pub DisplayNameSanitized: *const ::std::os::raw::c_char,
10284}
10285impl Default for _tagEOS_UserInfo_ExternalUserInfo {
10286    fn default() -> Self {
10287        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10288        unsafe {
10289            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10290            s.assume_init()
10291        }
10292    }
10293}
10294#[doc = " Contains information about a single external user info."]
10295pub type EOS_UserInfo_ExternalUserInfo = _tagEOS_UserInfo_ExternalUserInfo;
10296#[doc = " Input parameters for the EOS_UserInfo_GetExternalUserInfoCount function."]
10297#[repr(C)]
10298#[derive(Debug, Copy, Clone)]
10299pub struct _tagEOS_UserInfo_GetExternalUserInfoCountOptions {
10300    #[doc = " API Version: Set this to EOS_USERINFO_GETEXTERNALUSERINFOCOUNT_API_LATEST."]
10301    pub ApiVersion: i32,
10302    #[doc = " The Epic Account ID of the local player requesting the information"]
10303    pub LocalUserId: EOS_EpicAccountId,
10304    #[doc = " The Epic Account ID of the player whose information is being retrieved"]
10305    pub TargetUserId: EOS_EpicAccountId,
10306}
10307impl Default for _tagEOS_UserInfo_GetExternalUserInfoCountOptions {
10308    fn default() -> Self {
10309        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10310        unsafe {
10311            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10312            s.assume_init()
10313        }
10314    }
10315}
10316#[doc = " Input parameters for the EOS_UserInfo_GetExternalUserInfoCount function."]
10317pub type EOS_UserInfo_GetExternalUserInfoCountOptions =
10318    _tagEOS_UserInfo_GetExternalUserInfoCountOptions;
10319#[doc = " Input parameters for the EOS_UserInfo_CopyExternalUserInfoByIndex function."]
10320#[repr(C)]
10321#[derive(Debug, Copy, Clone)]
10322pub struct _tagEOS_UserInfo_CopyExternalUserInfoByIndexOptions {
10323    #[doc = " API Version: Set this to EOS_USERINFO_COPYEXTERNALUSERINFOBYINDEX_API_LATEST."]
10324    pub ApiVersion: i32,
10325    #[doc = " The Epic Account ID of the local player requesting the information"]
10326    pub LocalUserId: EOS_EpicAccountId,
10327    #[doc = " The Epic Account ID of the player whose information is being retrieved"]
10328    pub TargetUserId: EOS_EpicAccountId,
10329    #[doc = " Index of the external user info to retrieve from the cache"]
10330    pub Index: u32,
10331}
10332impl Default for _tagEOS_UserInfo_CopyExternalUserInfoByIndexOptions {
10333    fn default() -> Self {
10334        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10335        unsafe {
10336            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10337            s.assume_init()
10338        }
10339    }
10340}
10341#[doc = " Input parameters for the EOS_UserInfo_CopyExternalUserInfoByIndex function."]
10342pub type EOS_UserInfo_CopyExternalUserInfoByIndexOptions =
10343    _tagEOS_UserInfo_CopyExternalUserInfoByIndexOptions;
10344#[doc = " Input parameters for the EOS_UserInfo_CopyExternalUserInfoByAccountType function."]
10345#[repr(C)]
10346#[derive(Debug, Copy, Clone)]
10347pub struct _tagEOS_UserInfo_CopyExternalUserInfoByAccountTypeOptions {
10348    #[doc = " API Version: Set this to EOS_USERINFO_COPYEXTERNALUSERINFOBYACCOUNTTYPE_API_LATEST."]
10349    pub ApiVersion: i32,
10350    #[doc = " The Epic Account ID of the local player requesting the information"]
10351    pub LocalUserId: EOS_EpicAccountId,
10352    #[doc = " The Epic Account ID of the player whose information is being retrieved"]
10353    pub TargetUserId: EOS_EpicAccountId,
10354    #[doc = " Account type of the external user info to retrieve from the cache"]
10355    pub AccountType: EOS_EExternalAccountType,
10356}
10357impl Default for _tagEOS_UserInfo_CopyExternalUserInfoByAccountTypeOptions {
10358    fn default() -> Self {
10359        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10360        unsafe {
10361            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10362            s.assume_init()
10363        }
10364    }
10365}
10366#[doc = " Input parameters for the EOS_UserInfo_CopyExternalUserInfoByAccountType function."]
10367pub type EOS_UserInfo_CopyExternalUserInfoByAccountTypeOptions =
10368    _tagEOS_UserInfo_CopyExternalUserInfoByAccountTypeOptions;
10369#[doc = " Input parameters for the EOS_UserInfo_CopyExternalUserInfoByAccountId function."]
10370#[repr(C)]
10371#[derive(Debug, Copy, Clone)]
10372pub struct _tagEOS_UserInfo_CopyExternalUserInfoByAccountIdOptions {
10373    #[doc = " API Version: Set this to EOS_USERINFO_COPYEXTERNALUSERINFOBYACCOUNTID_API_LATEST."]
10374    pub ApiVersion: i32,
10375    #[doc = " The Epic Account ID of the local player requesting the information"]
10376    pub LocalUserId: EOS_EpicAccountId,
10377    #[doc = " The Epic Account ID of the player whose information is being retrieved"]
10378    pub TargetUserId: EOS_EpicAccountId,
10379    #[doc = " The external account ID associated with the (external) user info to retrieve from the cache; cannot be null"]
10380    pub AccountId: *const ::std::os::raw::c_char,
10381}
10382impl Default for _tagEOS_UserInfo_CopyExternalUserInfoByAccountIdOptions {
10383    fn default() -> Self {
10384        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10385        unsafe {
10386            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10387            s.assume_init()
10388        }
10389    }
10390}
10391#[doc = " Input parameters for the EOS_UserInfo_CopyExternalUserInfoByAccountId function."]
10392pub type EOS_UserInfo_CopyExternalUserInfoByAccountIdOptions =
10393    _tagEOS_UserInfo_CopyExternalUserInfoByAccountIdOptions;
10394unsafe extern "C" {
10395    #[doc = " Release the memory associated with external user info. This must be called on data retrieved from\n EOS_UserInfo_CopyExternalUserInfoByIndexOptions.\n\n @param ExternalUserInfo The external user info to release.\n\n @see EOS_UserInfo_ExternalUserInfo\n @see EOS_UserInfo_CopyExternalUserInfoByIndex"]
10396    pub fn EOS_UserInfo_ExternalUserInfo_Release(
10397        ExternalUserInfo: *mut EOS_UserInfo_ExternalUserInfo,
10398    );
10399}
10400#[doc = " A structure that contains the user information. These structures are created by EOS_UserInfo_CopyBestDisplayName or EOS_UserInfo_CopyBestDisplayNameWithPlatform and must be passed to EOS_UserInfo_BestDisplayName_Release."]
10401#[repr(C)]
10402#[derive(Debug, Copy, Clone)]
10403pub struct _tagEOS_UserInfo_BestDisplayName {
10404    #[doc = " API Version: Set this to EOS_USERINFO_BESTDISPLAYNAME_API_LATEST."]
10405    pub ApiVersion: i32,
10406    #[doc = " The Epic Account ID of the user"]
10407    pub UserId: EOS_EpicAccountId,
10408    #[doc = " The display name (un-sanitized). This may be null"]
10409    pub DisplayName: *const ::std::os::raw::c_char,
10410    #[doc = " The raw display name (sanitized). This may be null"]
10411    pub DisplayNameSanitized: *const ::std::os::raw::c_char,
10412    #[doc = " A nickname/alias for the target user assigned by the local user. This may be null"]
10413    pub Nickname: *const ::std::os::raw::c_char,
10414    #[doc = " The platform type for the user which corresponds to the display name"]
10415    pub PlatformType: EOS_OnlinePlatformType,
10416}
10417impl Default for _tagEOS_UserInfo_BestDisplayName {
10418    fn default() -> Self {
10419        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10420        unsafe {
10421            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10422            s.assume_init()
10423        }
10424    }
10425}
10426#[doc = " A structure that contains the user information. These structures are created by EOS_UserInfo_CopyBestDisplayName or EOS_UserInfo_CopyBestDisplayNameWithPlatform and must be passed to EOS_UserInfo_BestDisplayName_Release."]
10427pub type EOS_UserInfo_BestDisplayName = _tagEOS_UserInfo_BestDisplayName;
10428unsafe extern "C" {
10429    #[doc = " Release the memory associated with EOS_UserInfo_BestDisplayName. This must be called on data retrieved from\n EOS_UserInfo_CopyBestDisplayNameWithPlatform.\n\n @param BestDisplayName - The EOS_UserInfo_BestDisplayName structure to release\n\n @see EOS_UserInfo_BestDisplayName\n @see EOS_UserInfo_CopyBestDisplayName\n @see EOS_UserInfo_CopyBestDisplayNameWithPlatform"]
10430    pub fn EOS_UserInfo_BestDisplayName_Release(BestDisplayName: *mut EOS_UserInfo_BestDisplayName);
10431}
10432#[doc = " Input parameters for the EOS_UserInfo_CopyBestDisplayName function."]
10433#[repr(C)]
10434#[derive(Debug, Copy, Clone)]
10435pub struct _tagEOS_UserInfo_CopyBestDisplayNameOptions {
10436    #[doc = " API Version: Set this to EOS_USERINFO_COPYBESTDISPLAYNAME_API_LATEST."]
10437    pub ApiVersion: i32,
10438    #[doc = " The Epic Account ID of the local player requesting the information"]
10439    pub LocalUserId: EOS_EpicAccountId,
10440    #[doc = " The Epic Account ID of the player whose information is being retrieved"]
10441    pub TargetUserId: EOS_EpicAccountId,
10442}
10443impl Default for _tagEOS_UserInfo_CopyBestDisplayNameOptions {
10444    fn default() -> Self {
10445        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10446        unsafe {
10447            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10448            s.assume_init()
10449        }
10450    }
10451}
10452#[doc = " Input parameters for the EOS_UserInfo_CopyBestDisplayName function."]
10453pub type EOS_UserInfo_CopyBestDisplayNameOptions = _tagEOS_UserInfo_CopyBestDisplayNameOptions;
10454#[doc = " Input parameters for the EOS_UserInfo_CopyBestDisplayNameWithPlatform function."]
10455#[repr(C)]
10456#[derive(Debug, Copy, Clone)]
10457pub struct _tagEOS_UserInfo_CopyBestDisplayNameWithPlatformOptions {
10458    #[doc = " API Version: Set this to EOS_USERINFO_COPYBESTDISPLAYNAMEWITHPLATFORM_API_LATEST."]
10459    pub ApiVersion: i32,
10460    #[doc = " The Epic Account ID of the local player requesting the information"]
10461    pub LocalUserId: EOS_EpicAccountId,
10462    #[doc = " The Epic Account ID of the player whose information is being retrieved"]
10463    pub TargetUserId: EOS_EpicAccountId,
10464    #[doc = " The platform type of the player whose information is being retrieved"]
10465    pub TargetPlatformType: EOS_OnlinePlatformType,
10466}
10467impl Default for _tagEOS_UserInfo_CopyBestDisplayNameWithPlatformOptions {
10468    fn default() -> Self {
10469        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10470        unsafe {
10471            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10472            s.assume_init()
10473        }
10474    }
10475}
10476#[doc = " Input parameters for the EOS_UserInfo_CopyBestDisplayNameWithPlatform function."]
10477pub type EOS_UserInfo_CopyBestDisplayNameWithPlatformOptions =
10478    _tagEOS_UserInfo_CopyBestDisplayNameWithPlatformOptions;
10479#[doc = " Input parameters for the EOS_UserInfo_GetLocalPlatformType function."]
10480#[repr(C)]
10481#[derive(Debug, Default, Copy, Clone)]
10482pub struct _tagEOS_UserInfo_GetLocalPlatformTypeOptions {
10483    #[doc = " API Version: Set this to EOS_USERINFO_GETLOCALPLATFORMTYPE_API_LATEST."]
10484    pub ApiVersion: i32,
10485}
10486#[doc = " Input parameters for the EOS_UserInfo_GetLocalPlatformType function."]
10487pub type EOS_UserInfo_GetLocalPlatformTypeOptions = _tagEOS_UserInfo_GetLocalPlatformTypeOptions;
10488#[repr(C)]
10489#[derive(Debug, Copy, Clone)]
10490pub struct EOS_PlayerDataStorageHandle {
10491    _unused: [u8; 0],
10492}
10493pub type EOS_HPlayerDataStorage = *mut EOS_PlayerDataStorageHandle;
10494#[doc = " Metadata information for a specific file"]
10495#[repr(C)]
10496#[derive(Debug, Copy, Clone)]
10497pub struct _tagEOS_PlayerDataStorage_FileMetadata {
10498    #[doc = " API Version: Set this to EOS_PLAYERDATASTORAGE_FILEMETADATA_API_LATEST."]
10499    pub ApiVersion: i32,
10500    #[doc = " The total size of the file in bytes (Includes file header in addition to file contents)"]
10501    pub FileSizeBytes: u32,
10502    #[doc = " The MD5 Hash of the entire file (including additional file header), in hex digits"]
10503    pub MD5Hash: *const ::std::os::raw::c_char,
10504    #[doc = " The file's name"]
10505    pub Filename: *const ::std::os::raw::c_char,
10506    #[doc = " The POSIX timestamp when the file was saved last time or EOS_PLAYERDATASTORAGE_TIME_UNDEFINED if the time is undefined.\n It will be undefined after a file is written and uploaded at first before a query operation is completed."]
10507    pub LastModifiedTime: i64,
10508    #[doc = " The size of data (payload) in file in unencrypted (original) form."]
10509    pub UnencryptedDataSizeBytes: u32,
10510}
10511impl Default for _tagEOS_PlayerDataStorage_FileMetadata {
10512    fn default() -> Self {
10513        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10514        unsafe {
10515            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10516            s.assume_init()
10517        }
10518    }
10519}
10520#[doc = " Metadata information for a specific file"]
10521pub type EOS_PlayerDataStorage_FileMetadata = _tagEOS_PlayerDataStorage_FileMetadata;
10522unsafe extern "C" {
10523    #[doc = " Free the memory used by the file metadata"]
10524    pub fn EOS_PlayerDataStorage_FileMetadata_Release(
10525        FileMetadata: *mut EOS_PlayerDataStorage_FileMetadata,
10526    );
10527}
10528#[doc = " Input data for the EOS_PlayerDataStorage_QueryFile function"]
10529#[repr(C)]
10530#[derive(Debug, Copy, Clone)]
10531pub struct _tagEOS_PlayerDataStorage_QueryFileOptions {
10532    #[doc = " API Version: Set this to EOS_PLAYERDATASTORAGE_QUERYFILE_API_LATEST."]
10533    pub ApiVersion: i32,
10534    #[doc = " The Product User ID of the local user requesting file metadata"]
10535    pub LocalUserId: EOS_ProductUserId,
10536    #[doc = " The name of the file being queried"]
10537    pub Filename: *const ::std::os::raw::c_char,
10538}
10539impl Default for _tagEOS_PlayerDataStorage_QueryFileOptions {
10540    fn default() -> Self {
10541        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10542        unsafe {
10543            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10544            s.assume_init()
10545        }
10546    }
10547}
10548#[doc = " Input data for the EOS_PlayerDataStorage_QueryFile function"]
10549pub type EOS_PlayerDataStorage_QueryFileOptions = _tagEOS_PlayerDataStorage_QueryFileOptions;
10550#[doc = " Data containing information about a query file request"]
10551#[repr(C)]
10552#[derive(Debug, Copy, Clone)]
10553pub struct _tagEOS_PlayerDataStorage_QueryFileCallbackInfo {
10554    #[doc = " Result code for the operation. EOS_Success is returned for a successful request, other codes indicate an error"]
10555    pub ResultCode: EOS_EResult,
10556    #[doc = " Client-specified data passed into the file query request"]
10557    pub ClientData: *mut ::std::os::raw::c_void,
10558    #[doc = " The Product User ID of the local user who initiated this request"]
10559    pub LocalUserId: EOS_ProductUserId,
10560}
10561impl Default for _tagEOS_PlayerDataStorage_QueryFileCallbackInfo {
10562    fn default() -> Self {
10563        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10564        unsafe {
10565            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10566            s.assume_init()
10567        }
10568    }
10569}
10570#[doc = " Data containing information about a query file request"]
10571pub type EOS_PlayerDataStorage_QueryFileCallbackInfo =
10572    _tagEOS_PlayerDataStorage_QueryFileCallbackInfo;
10573#[doc = " Callback for when EOS_PlayerDataStorage_QueryFile completes"]
10574pub type EOS_PlayerDataStorage_OnQueryFileCompleteCallback = ::std::option::Option<
10575    unsafe extern "C" fn(Data: *const EOS_PlayerDataStorage_QueryFileCallbackInfo),
10576>;
10577#[doc = " Input data for the EOS_PlayerDataStorage_QueryFileList function"]
10578#[repr(C)]
10579#[derive(Debug, Copy, Clone)]
10580pub struct _tagEOS_PlayerDataStorage_QueryFileListOptions {
10581    #[doc = " API Version: Set this to EOS_PLAYERDATASTORAGE_QUERYFILELIST_API_LATEST."]
10582    pub ApiVersion: i32,
10583    #[doc = " The Product User ID of the local user who requested file metadata"]
10584    pub LocalUserId: EOS_ProductUserId,
10585}
10586impl Default for _tagEOS_PlayerDataStorage_QueryFileListOptions {
10587    fn default() -> Self {
10588        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10589        unsafe {
10590            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10591            s.assume_init()
10592        }
10593    }
10594}
10595#[doc = " Input data for the EOS_PlayerDataStorage_QueryFileList function"]
10596pub type EOS_PlayerDataStorage_QueryFileListOptions =
10597    _tagEOS_PlayerDataStorage_QueryFileListOptions;
10598#[doc = " Data containing information about a query file list request"]
10599#[repr(C)]
10600#[derive(Debug, Copy, Clone)]
10601pub struct _tagEOS_PlayerDataStorage_QueryFileListCallbackInfo {
10602    #[doc = " Result code for the operation. EOS_Success is returned for a successful request, other codes indicate an error"]
10603    pub ResultCode: EOS_EResult,
10604    #[doc = " Client-specified data passed into the file query request"]
10605    pub ClientData: *mut ::std::os::raw::c_void,
10606    #[doc = " The Product User ID of the local user who initiated this request"]
10607    pub LocalUserId: EOS_ProductUserId,
10608    #[doc = " A count of files that were found, if successful"]
10609    pub FileCount: u32,
10610}
10611impl Default for _tagEOS_PlayerDataStorage_QueryFileListCallbackInfo {
10612    fn default() -> Self {
10613        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10614        unsafe {
10615            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10616            s.assume_init()
10617        }
10618    }
10619}
10620#[doc = " Data containing information about a query file list request"]
10621pub type EOS_PlayerDataStorage_QueryFileListCallbackInfo =
10622    _tagEOS_PlayerDataStorage_QueryFileListCallbackInfo;
10623#[doc = " Callback for when EOS_PlayerDataStorage_QueryFileList completes"]
10624pub type EOS_PlayerDataStorage_OnQueryFileListCompleteCallback = ::std::option::Option<
10625    unsafe extern "C" fn(Data: *const EOS_PlayerDataStorage_QueryFileListCallbackInfo),
10626>;
10627#[doc = " Input data for the EOS_PlayerDataStorage_GetFileMetadataCount function"]
10628#[repr(C)]
10629#[derive(Debug, Copy, Clone)]
10630pub struct _tagEOS_PlayerDataStorage_GetFileMetadataCountOptions {
10631    #[doc = " API Version: Set this to EOS_PLAYERDATASTORAGE_GETFILEMETADATACOUNT_API_LATEST."]
10632    pub ApiVersion: i32,
10633    #[doc = " The Product User ID of the local user who is requesting file metadata"]
10634    pub LocalUserId: EOS_ProductUserId,
10635}
10636impl Default for _tagEOS_PlayerDataStorage_GetFileMetadataCountOptions {
10637    fn default() -> Self {
10638        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10639        unsafe {
10640            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10641            s.assume_init()
10642        }
10643    }
10644}
10645#[doc = " Input data for the EOS_PlayerDataStorage_GetFileMetadataCount function"]
10646pub type EOS_PlayerDataStorage_GetFileMetadataCountOptions =
10647    _tagEOS_PlayerDataStorage_GetFileMetadataCountOptions;
10648#[doc = " Input data for the CopyFileMetadataAtIndex function"]
10649#[repr(C)]
10650#[derive(Debug, Copy, Clone)]
10651pub struct _tagEOS_PlayerDataStorage_CopyFileMetadataAtIndexOptions {
10652    #[doc = " API Version: Set this to EOS_PLAYERDATASTORAGE_COPYFILEMETADATAATINDEX_API_LATEST."]
10653    pub ApiVersion: i32,
10654    #[doc = " The Product User ID of the local user who is requesting file metadata"]
10655    pub LocalUserId: EOS_ProductUserId,
10656    #[doc = " The index to get data for"]
10657    pub Index: u32,
10658}
10659impl Default for _tagEOS_PlayerDataStorage_CopyFileMetadataAtIndexOptions {
10660    fn default() -> Self {
10661        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10662        unsafe {
10663            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10664            s.assume_init()
10665        }
10666    }
10667}
10668#[doc = " Input data for the CopyFileMetadataAtIndex function"]
10669pub type EOS_PlayerDataStorage_CopyFileMetadataAtIndexOptions =
10670    _tagEOS_PlayerDataStorage_CopyFileMetadataAtIndexOptions;
10671#[doc = " Input data for the CopyFileMetadataByFilename function"]
10672#[repr(C)]
10673#[derive(Debug, Copy, Clone)]
10674pub struct _tagEOS_PlayerDataStorage_CopyFileMetadataByFilenameOptions {
10675    #[doc = " API Version: Set this to EOS_PLAYERDATASTORAGE_COPYFILEMETADATABYFILENAME_API_LATEST."]
10676    pub ApiVersion: i32,
10677    #[doc = " The Product User ID of the local user who is requesting file metadata"]
10678    pub LocalUserId: EOS_ProductUserId,
10679    #[doc = " The file's name to get data for"]
10680    pub Filename: *const ::std::os::raw::c_char,
10681}
10682impl Default for _tagEOS_PlayerDataStorage_CopyFileMetadataByFilenameOptions {
10683    fn default() -> Self {
10684        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10685        unsafe {
10686            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10687            s.assume_init()
10688        }
10689    }
10690}
10691#[doc = " Input data for the CopyFileMetadataByFilename function"]
10692pub type EOS_PlayerDataStorage_CopyFileMetadataByFilenameOptions =
10693    _tagEOS_PlayerDataStorage_CopyFileMetadataByFilenameOptions;
10694#[doc = " Input data for the EOS_PlayerDataStorage_DuplicateFile function"]
10695#[repr(C)]
10696#[derive(Debug, Copy, Clone)]
10697pub struct _tagEOS_PlayerDataStorage_DuplicateFileOptions {
10698    #[doc = " API Version: Set this to EOS_PLAYERDATASTORAGE_DUPLICATEFILE_API_LATEST."]
10699    pub ApiVersion: i32,
10700    #[doc = " The Product User ID of the local user who authorized the duplication of the requested file; must be the original file's owner"]
10701    pub LocalUserId: EOS_ProductUserId,
10702    #[doc = " The name of the existing file to duplicate"]
10703    pub SourceFilename: *const ::std::os::raw::c_char,
10704    #[doc = " The name of the new file"]
10705    pub DestinationFilename: *const ::std::os::raw::c_char,
10706}
10707impl Default for _tagEOS_PlayerDataStorage_DuplicateFileOptions {
10708    fn default() -> Self {
10709        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10710        unsafe {
10711            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10712            s.assume_init()
10713        }
10714    }
10715}
10716#[doc = " Input data for the EOS_PlayerDataStorage_DuplicateFile function"]
10717pub type EOS_PlayerDataStorage_DuplicateFileOptions =
10718    _tagEOS_PlayerDataStorage_DuplicateFileOptions;
10719#[doc = " Data containing the result information for a duplicate file request"]
10720#[repr(C)]
10721#[derive(Debug, Copy, Clone)]
10722pub struct _tagEOS_PlayerDataStorage_DuplicateFileCallbackInfo {
10723    #[doc = " Result code for the operation. EOS_Success is returned for a successful request, other codes indicate an error"]
10724    pub ResultCode: EOS_EResult,
10725    #[doc = " Client-specified data passed into the file duplicate request"]
10726    pub ClientData: *mut ::std::os::raw::c_void,
10727    #[doc = " The Product User ID of the local user who initiated this request"]
10728    pub LocalUserId: EOS_ProductUserId,
10729}
10730impl Default for _tagEOS_PlayerDataStorage_DuplicateFileCallbackInfo {
10731    fn default() -> Self {
10732        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10733        unsafe {
10734            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10735            s.assume_init()
10736        }
10737    }
10738}
10739#[doc = " Data containing the result information for a duplicate file request"]
10740pub type EOS_PlayerDataStorage_DuplicateFileCallbackInfo =
10741    _tagEOS_PlayerDataStorage_DuplicateFileCallbackInfo;
10742#[doc = " Callback for when EOS_PlayerDataStorage_DuplicateFile completes"]
10743pub type EOS_PlayerDataStorage_OnDuplicateFileCompleteCallback = ::std::option::Option<
10744    unsafe extern "C" fn(Data: *const EOS_PlayerDataStorage_DuplicateFileCallbackInfo),
10745>;
10746#[doc = " Input data for the EOS_PlayerDataStorage_DeleteFile function"]
10747#[repr(C)]
10748#[derive(Debug, Copy, Clone)]
10749pub struct _tagEOS_PlayerDataStorage_DeleteFileOptions {
10750    #[doc = " API Version: Set this to EOS_PLAYERDATASTORAGE_DELETEFILE_API_LATEST."]
10751    pub ApiVersion: i32,
10752    #[doc = " The Product User ID of the local user who authorizes deletion of the file; must be the file's owner"]
10753    pub LocalUserId: EOS_ProductUserId,
10754    #[doc = " The name of the file to delete"]
10755    pub Filename: *const ::std::os::raw::c_char,
10756}
10757impl Default for _tagEOS_PlayerDataStorage_DeleteFileOptions {
10758    fn default() -> Self {
10759        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10760        unsafe {
10761            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10762            s.assume_init()
10763        }
10764    }
10765}
10766#[doc = " Input data for the EOS_PlayerDataStorage_DeleteFile function"]
10767pub type EOS_PlayerDataStorage_DeleteFileOptions = _tagEOS_PlayerDataStorage_DeleteFileOptions;
10768#[doc = " Data containing the result information for a delete file request"]
10769#[repr(C)]
10770#[derive(Debug, Copy, Clone)]
10771pub struct _tagEOS_PlayerDataStorage_DeleteFileCallbackInfo {
10772    #[doc = " Result code for the operation. EOS_Success is returned for a successful request, other codes indicate an error"]
10773    pub ResultCode: EOS_EResult,
10774    #[doc = " Client-specified data passed into the file deletion request"]
10775    pub ClientData: *mut ::std::os::raw::c_void,
10776    #[doc = " The Product User ID of the local user who initiated this request"]
10777    pub LocalUserId: EOS_ProductUserId,
10778}
10779impl Default for _tagEOS_PlayerDataStorage_DeleteFileCallbackInfo {
10780    fn default() -> Self {
10781        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10782        unsafe {
10783            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10784            s.assume_init()
10785        }
10786    }
10787}
10788#[doc = " Data containing the result information for a delete file request"]
10789pub type EOS_PlayerDataStorage_DeleteFileCallbackInfo =
10790    _tagEOS_PlayerDataStorage_DeleteFileCallbackInfo;
10791#[doc = " Callback for when EOS_PlayerDataStorage_DeleteFile completes"]
10792pub type EOS_PlayerDataStorage_OnDeleteFileCompleteCallback = ::std::option::Option<
10793    unsafe extern "C" fn(Data: *const EOS_PlayerDataStorage_DeleteFileCallbackInfo),
10794>;
10795#[repr(C)]
10796#[derive(Debug, Copy, Clone)]
10797pub struct EOS_PlayerDataStorageFileTransferRequestHandle {
10798    _unused: [u8; 0],
10799}
10800#[doc = " Handle type to a File Request"]
10801pub type EOS_HPlayerDataStorageFileTransferRequest =
10802    *mut EOS_PlayerDataStorageFileTransferRequestHandle;
10803unsafe extern "C" {
10804    #[doc = " Free the memory used by a cloud-storage file request handle. This will not cancel a request in progress."]
10805    pub fn EOS_PlayerDataStorageFileTransferRequest_Release(
10806        PlayerDataStorageFileTransferHandle: EOS_HPlayerDataStorageFileTransferRequest,
10807    );
10808}
10809#[doc = " Data containing the information about a file transfer in progress (or one that has completed)"]
10810#[repr(C)]
10811#[derive(Debug, Copy, Clone)]
10812pub struct _tagEOS_PlayerDataStorage_FileTransferProgressCallbackInfo {
10813    #[doc = " Client-specified data passed into the file request"]
10814    pub ClientData: *mut ::std::os::raw::c_void,
10815    #[doc = " The Product User ID of the local user who initiated this request"]
10816    pub LocalUserId: EOS_ProductUserId,
10817    #[doc = " The file name of the file being transferred"]
10818    pub Filename: *const ::std::os::raw::c_char,
10819    #[doc = " Amount of bytes transferred so far in this request, out of TotalFileSizeBytes"]
10820    pub BytesTransferred: u32,
10821    #[doc = " The total size of the file being transferred (Includes file header in addition to file contents, can be slightly more than expected)"]
10822    pub TotalFileSizeBytes: u32,
10823}
10824impl Default for _tagEOS_PlayerDataStorage_FileTransferProgressCallbackInfo {
10825    fn default() -> Self {
10826        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10827        unsafe {
10828            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10829            s.assume_init()
10830        }
10831    }
10832}
10833#[doc = " Data containing the information about a file transfer in progress (or one that has completed)"]
10834pub type EOS_PlayerDataStorage_FileTransferProgressCallbackInfo =
10835    _tagEOS_PlayerDataStorage_FileTransferProgressCallbackInfo;
10836#[doc = " Callback for when there is a progress update for a file transfer in progress"]
10837pub type EOS_PlayerDataStorage_OnFileTransferProgressCallback = ::std::option::Option<
10838    unsafe extern "C" fn(Data: *const EOS_PlayerDataStorage_FileTransferProgressCallbackInfo),
10839>;
10840#[doc = " Signifies the data was read successfully, and we should continue to the next chunk if possible"]
10841pub const EOS_PlayerDataStorage_EReadResult_EOS_RR_ContinueReading:
10842    EOS_PlayerDataStorage_EReadResult = 1;
10843#[doc = " Signifies there was a failure reading the data, and the request should end"]
10844pub const EOS_PlayerDataStorage_EReadResult_EOS_RR_FailRequest: EOS_PlayerDataStorage_EReadResult =
10845    2;
10846#[doc = " Signifies the request should be canceled, but not due to an error"]
10847pub const EOS_PlayerDataStorage_EReadResult_EOS_RR_CancelRequest:
10848    EOS_PlayerDataStorage_EReadResult = 3;
10849pub const EOS_PlayerDataStorage_EReadResult___EOS_PlayerDataStorage_EReadResult_PAD_INT32__:
10850    EOS_PlayerDataStorage_EReadResult = 2147483647;
10851#[doc = " Return results for EOS_PlayerDataStorage_OnReadFileDataCallback callbacks to return"]
10852pub type EOS_PlayerDataStorage_EReadResult = ::std::os::raw::c_int;
10853#[doc = " Data containing data for a chunk of a file being read"]
10854#[repr(C)]
10855#[derive(Debug, Copy, Clone)]
10856pub struct _tagEOS_PlayerDataStorage_ReadFileDataCallbackInfo {
10857    #[doc = " Client-specified data passed into the file request"]
10858    pub ClientData: *mut ::std::os::raw::c_void,
10859    #[doc = " The Product User ID of the local user who initiated this request"]
10860    pub LocalUserId: EOS_ProductUserId,
10861    #[doc = " The file name being read"]
10862    pub Filename: *const ::std::os::raw::c_char,
10863    #[doc = " The total file size of the file being read"]
10864    pub TotalFileSizeBytes: u32,
10865    #[doc = " Is this chunk the last chunk of data?"]
10866    pub bIsLastChunk: EOS_Bool,
10867    #[doc = " The length of DataChunk in bytes that can be safely read"]
10868    pub DataChunkLengthBytes: u32,
10869    #[doc = " Pointer to the start of data to be read"]
10870    pub DataChunk: *const ::std::os::raw::c_void,
10871}
10872impl Default for _tagEOS_PlayerDataStorage_ReadFileDataCallbackInfo {
10873    fn default() -> Self {
10874        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10875        unsafe {
10876            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10877            s.assume_init()
10878        }
10879    }
10880}
10881#[doc = " Data containing data for a chunk of a file being read"]
10882pub type EOS_PlayerDataStorage_ReadFileDataCallbackInfo =
10883    _tagEOS_PlayerDataStorage_ReadFileDataCallbackInfo;
10884#[doc = " Callback for when we have data ready to be read from the requested file. It is undefined how often this will be called during a single tick.\n\n @param Data Struct containing a chunk of data to read, as well as some metadata for the file being read\n @return The result of the read operation. If this value is not EOS_RR_ContinueReading, this callback will not be called again for the same request"]
10885pub type EOS_PlayerDataStorage_OnReadFileDataCallback = ::std::option::Option<
10886    unsafe extern "C" fn(
10887        Data: *const EOS_PlayerDataStorage_ReadFileDataCallbackInfo,
10888    ) -> EOS_PlayerDataStorage_EReadResult,
10889>;
10890#[doc = " Input data for the EOS_PlayerDataStorage_ReadFile function"]
10891#[repr(C)]
10892#[derive(Debug, Copy, Clone)]
10893pub struct _tagEOS_PlayerDataStorage_ReadFileOptions {
10894    #[doc = " API Version: Set this to EOS_PLAYERDATASTORAGE_READFILE_API_LATEST."]
10895    pub ApiVersion: i32,
10896    #[doc = " The Product User ID of the local user who is reading the requested file"]
10897    pub LocalUserId: EOS_ProductUserId,
10898    #[doc = " The file name to read; this file must already exist"]
10899    pub Filename: *const ::std::os::raw::c_char,
10900    #[doc = " The maximum amount of data in bytes should be available to read in a single EOS_PlayerDataStorage_OnReadFileDataCallback call"]
10901    pub ReadChunkLengthBytes: u32,
10902    #[doc = " Callback function that handles data as it comes in, and can stop the transfer early"]
10903    pub ReadFileDataCallback: EOS_PlayerDataStorage_OnReadFileDataCallback,
10904    #[doc = " Optional callback function to be informed of download progress, if the file is not already locally cached; if provided, this will be called at least once before completion if the request is successfully started"]
10905    pub FileTransferProgressCallback: EOS_PlayerDataStorage_OnFileTransferProgressCallback,
10906}
10907impl Default for _tagEOS_PlayerDataStorage_ReadFileOptions {
10908    fn default() -> Self {
10909        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10910        unsafe {
10911            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10912            s.assume_init()
10913        }
10914    }
10915}
10916#[doc = " Input data for the EOS_PlayerDataStorage_ReadFile function"]
10917pub type EOS_PlayerDataStorage_ReadFileOptions = _tagEOS_PlayerDataStorage_ReadFileOptions;
10918#[doc = " Data containing the result of a read file request"]
10919#[repr(C)]
10920#[derive(Debug, Copy, Clone)]
10921pub struct _tagEOS_PlayerDataStorage_ReadFileCallbackInfo {
10922    #[doc = " The result code for the operation.\n EOS_Success: The request was successful.\n EOS_Canceled: The request was canceled.\n EOS_TooManyRequests: There are too many requests in progress for the local user at this time.\n EOS_AlreadyPending: There is another requests in progress for the specified file by this user.\n EOS_CacheDirectoryMissing: The cache directory was not set when calling EOS_Platform_Create.\n EOS_CacheDirectoryInvalid: The cache directory provided when calling EOS_Platform_Create was invalid.\n EOS_PlayerDataStorage_UserThrottled: There were too many requests to the Data Storage service recently by the local user. The application must wait some time before trying again.\n EOS_PlayerDataStorage_EncryptionKeyNotSet: The encryption key value was not set when calling EOS_Platform_Create.\n EOS_PlayerDataStorage_FileCorrupted: The downloaded or cached file was corrupted or invalid in some way. What exactly is wrong with the file is returned in the logs (potentially retryable).\n EOS_InvalidState: The read operation is not allowed (e.g. when application is suspended).\n EOS_UnexpectedError: An unexpected error occurred either downloading, or reading the downloaded file. This most commonly means there were file IO issues such as: permission issues, disk is full, etc. (potentially retryable)"]
10923    pub ResultCode: EOS_EResult,
10924    #[doc = " Client-specified data passed into the file read request"]
10925    pub ClientData: *mut ::std::os::raw::c_void,
10926    #[doc = " The Product User ID of the local user who initiated this request"]
10927    pub LocalUserId: EOS_ProductUserId,
10928    #[doc = " The filename of the file that has been finished reading"]
10929    pub Filename: *const ::std::os::raw::c_char,
10930}
10931impl Default for _tagEOS_PlayerDataStorage_ReadFileCallbackInfo {
10932    fn default() -> Self {
10933        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10934        unsafe {
10935            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10936            s.assume_init()
10937        }
10938    }
10939}
10940#[doc = " Data containing the result of a read file request"]
10941pub type EOS_PlayerDataStorage_ReadFileCallbackInfo =
10942    _tagEOS_PlayerDataStorage_ReadFileCallbackInfo;
10943#[doc = " Callback for when EOS_PlayerDataStorage_ReadFile completes"]
10944pub type EOS_PlayerDataStorage_OnReadFileCompleteCallback = ::std::option::Option<
10945    unsafe extern "C" fn(Data: *const EOS_PlayerDataStorage_ReadFileCallbackInfo),
10946>;
10947#[doc = " Signifies the data was written successfully, and we should write the data the file"]
10948pub const EOS_PlayerDataStorage_EWriteResult_EOS_WR_ContinueWriting:
10949    EOS_PlayerDataStorage_EWriteResult = 1;
10950#[doc = " Signifies all data has now been written successfully, and we should upload the data to the cloud"]
10951pub const EOS_PlayerDataStorage_EWriteResult_EOS_WR_CompleteRequest:
10952    EOS_PlayerDataStorage_EWriteResult = 2;
10953#[doc = " Signifies there was a failure writing the data, and the request should end"]
10954pub const EOS_PlayerDataStorage_EWriteResult_EOS_WR_FailRequest:
10955    EOS_PlayerDataStorage_EWriteResult = 3;
10956#[doc = " Signifies the request should be canceled, but not due to an error"]
10957pub const EOS_PlayerDataStorage_EWriteResult_EOS_WR_CancelRequest:
10958    EOS_PlayerDataStorage_EWriteResult = 4;
10959pub const EOS_PlayerDataStorage_EWriteResult___EOS_PlayerDataStorage_EWriteResult_PAD_INT32__:
10960    EOS_PlayerDataStorage_EWriteResult = 2147483647;
10961#[doc = " Return results for EOS_PlayerDataStorage_OnWriteFileDataCallback callbacks to return"]
10962pub type EOS_PlayerDataStorage_EWriteResult = ::std::os::raw::c_int;
10963#[doc = " Data containing data for a chunk of a file being written"]
10964#[repr(C)]
10965#[derive(Debug, Copy, Clone)]
10966pub struct _tagEOS_PlayerDataStorage_WriteFileDataCallbackInfo {
10967    #[doc = " Client-specified data passed into the file write request"]
10968    pub ClientData: *mut ::std::os::raw::c_void,
10969    #[doc = " The Product User ID of the local user who initiated this request"]
10970    pub LocalUserId: EOS_ProductUserId,
10971    #[doc = " The file name that is being written to"]
10972    pub Filename: *const ::std::os::raw::c_char,
10973    #[doc = " The maximum amount of data in bytes that can be written safely to DataBuffer"]
10974    pub DataBufferLengthBytes: u32,
10975}
10976impl Default for _tagEOS_PlayerDataStorage_WriteFileDataCallbackInfo {
10977    fn default() -> Self {
10978        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10979        unsafe {
10980            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10981            s.assume_init()
10982        }
10983    }
10984}
10985#[doc = " Data containing data for a chunk of a file being written"]
10986pub type EOS_PlayerDataStorage_WriteFileDataCallbackInfo =
10987    _tagEOS_PlayerDataStorage_WriteFileDataCallbackInfo;
10988#[doc = " Callback for when we are ready to get more data to be written into the requested file. It is undefined how often this will be called during a single tick.\n\n @param Data Struct containing metadata for the file being written to, as well as the max length in bytes that can be safely written to DataBuffer\n @param OutDataBuffer A buffer to write data into, to be appended to the end of the file that is being written to. The maximum length of this value is provided in the Info parameter. The number of bytes written to this buffer should be set in OutDataWritten.\n @param OutDataWritten The length of the data written to OutDataBuffer. This must be less than or equal than the DataBufferLengthBytes provided in the Info parameter\n @return The result of the write operation. If this value is not EOS_WR_ContinueWriting, this callback will not be called again for the same request. If this is set to EOS_WR_FailRequest or EOS_WR_CancelRequest, all data written during the request will not be saved"]
10989pub type EOS_PlayerDataStorage_OnWriteFileDataCallback = ::std::option::Option<
10990    unsafe extern "C" fn(
10991        Data: *const EOS_PlayerDataStorage_WriteFileDataCallbackInfo,
10992        OutDataBuffer: *mut ::std::os::raw::c_void,
10993        OutDataWritten: *mut u32,
10994    ) -> EOS_PlayerDataStorage_EWriteResult,
10995>;
10996#[doc = " Input data for the EOS_PlayerDataStorage_WriteFile function"]
10997#[repr(C)]
10998#[derive(Debug, Copy, Clone)]
10999pub struct _tagEOS_PlayerDataStorage_WriteFileOptions {
11000    #[doc = " API Version: Set this to EOS_PLAYERDATASTORAGE_WRITEFILE_API_LATEST."]
11001    pub ApiVersion: i32,
11002    #[doc = " The Product User ID of the local user who is writing the requested file to the cloud"]
11003    pub LocalUserId: EOS_ProductUserId,
11004    #[doc = " The name of the file to write; if this file already exists, the contents will be replaced if the write request completes successfully"]
11005    pub Filename: *const ::std::os::raw::c_char,
11006    #[doc = " Requested maximum amount of data (in bytes) that can be written to the file per tick"]
11007    pub ChunkLengthBytes: u32,
11008    #[doc = " Callback function that provides chunks of data to be written into the requested file"]
11009    pub WriteFileDataCallback: EOS_PlayerDataStorage_OnWriteFileDataCallback,
11010    #[doc = " Optional callback function to inform the application of upload progress; will be called at least once if set"]
11011    pub FileTransferProgressCallback: EOS_PlayerDataStorage_OnFileTransferProgressCallback,
11012}
11013impl Default for _tagEOS_PlayerDataStorage_WriteFileOptions {
11014    fn default() -> Self {
11015        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11016        unsafe {
11017            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11018            s.assume_init()
11019        }
11020    }
11021}
11022#[doc = " Input data for the EOS_PlayerDataStorage_WriteFile function"]
11023pub type EOS_PlayerDataStorage_WriteFileOptions = _tagEOS_PlayerDataStorage_WriteFileOptions;
11024#[doc = " The result information for a request to write data to a file"]
11025#[repr(C)]
11026#[derive(Debug, Copy, Clone)]
11027pub struct _tagEOS_PlayerDataStorage_WriteFileCallbackInfo {
11028    #[doc = " The result code for the operation.\n EOS_Success: The request was successful.\n EOS_Canceled: The request was canceled.\n EOS_TooManyRequests: There are too many requests in progress for the local user at this time.\n EOS_AlreadyPending: There is another requests in progress for the specified file by this user.\n EOS_CacheDirectoryMissing: The cache directory was not set when calling EOS_Platform_Create.\n EOS_CacheDirectoryInvalid: The cache directory provided when calling EOS_Platform_Create was invalid.\n EOS_PlayerDataStorage_UserThrottled: There were too many requests to the Data Storage service recently by the local user. The application must wait some time before trying again.\n EOS_PlayerDataStorage_EncryptionKeyNotSet: The encryption key value was not set when calling EOS_Platform_Create.\n EOS_InvalidState: The read operation is not allowed (e.g. when application is suspended).\n EOS_UnexpectedError: An unexpected error occurred either downloading, or reading the downloaded file. This most commonly means there were file IO issues such as: permission issues, disk is full, etc. (potentially retryable)"]
11029    pub ResultCode: EOS_EResult,
11030    #[doc = " Client-specified data passed into the file write request"]
11031    pub ClientData: *mut ::std::os::raw::c_void,
11032    #[doc = " The Product User ID of the local user who initiated this request"]
11033    pub LocalUserId: EOS_ProductUserId,
11034    #[doc = " The file name that is being written to"]
11035    pub Filename: *const ::std::os::raw::c_char,
11036}
11037impl Default for _tagEOS_PlayerDataStorage_WriteFileCallbackInfo {
11038    fn default() -> Self {
11039        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11040        unsafe {
11041            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11042            s.assume_init()
11043        }
11044    }
11045}
11046#[doc = " The result information for a request to write data to a file"]
11047pub type EOS_PlayerDataStorage_WriteFileCallbackInfo =
11048    _tagEOS_PlayerDataStorage_WriteFileCallbackInfo;
11049#[doc = " Callback for when EOS_PlayerDataStorage_WriteFile completes"]
11050pub type EOS_PlayerDataStorage_OnWriteFileCompleteCallback = ::std::option::Option<
11051    unsafe extern "C" fn(Data: *const EOS_PlayerDataStorage_WriteFileCallbackInfo),
11052>;
11053#[doc = " Input data for the EOS_TitleStorage_DeleteCache function"]
11054#[repr(C)]
11055#[derive(Debug, Copy, Clone)]
11056pub struct _tagEOS_PlayerDataStorage_DeleteCacheOptions {
11057    #[doc = " API Version: Set this to EOS_PLAYERDATASTORAGE_DELETECACHE_API_LATEST."]
11058    pub ApiVersion: i32,
11059    #[doc = " Product User ID of the local user who is deleting his cache"]
11060    pub LocalUserId: EOS_ProductUserId,
11061}
11062impl Default for _tagEOS_PlayerDataStorage_DeleteCacheOptions {
11063    fn default() -> Self {
11064        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11065        unsafe {
11066            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11067            s.assume_init()
11068        }
11069    }
11070}
11071#[doc = " Input data for the EOS_TitleStorage_DeleteCache function"]
11072pub type EOS_PlayerDataStorage_DeleteCacheOptions = _tagEOS_PlayerDataStorage_DeleteCacheOptions;
11073#[doc = " Structure containing the result of a delete cache operation"]
11074#[repr(C)]
11075#[derive(Debug, Copy, Clone)]
11076pub struct _tagEOS_PlayerDataStorage_DeleteCacheCallbackInfo {
11077    #[doc = " Result code for the operation. EOS_Success is returned for a successful request, other codes indicate an error"]
11078    pub ResultCode: EOS_EResult,
11079    #[doc = " Client-specified data passed into the delete cache request"]
11080    pub ClientData: *mut ::std::os::raw::c_void,
11081    #[doc = " Product User ID of the local user who initiated this request"]
11082    pub LocalUserId: EOS_ProductUserId,
11083}
11084impl Default for _tagEOS_PlayerDataStorage_DeleteCacheCallbackInfo {
11085    fn default() -> Self {
11086        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11087        unsafe {
11088            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11089            s.assume_init()
11090        }
11091    }
11092}
11093#[doc = " Structure containing the result of a delete cache operation"]
11094pub type EOS_PlayerDataStorage_DeleteCacheCallbackInfo =
11095    _tagEOS_PlayerDataStorage_DeleteCacheCallbackInfo;
11096#[doc = " Callback for when EOS_PlayerDataStorage_DeleteCache completes"]
11097pub type EOS_PlayerDataStorage_OnDeleteCacheCompleteCallback = ::std::option::Option<
11098    unsafe extern "C" fn(Data: *const EOS_PlayerDataStorage_DeleteCacheCallbackInfo),
11099>;
11100#[repr(C)]
11101#[derive(Debug, Copy, Clone)]
11102pub struct EOS_TitleStorageHandle {
11103    _unused: [u8; 0],
11104}
11105pub type EOS_HTitleStorage = *mut EOS_TitleStorageHandle;
11106#[doc = " Metadata information for a specific file"]
11107#[repr(C)]
11108#[derive(Debug, Copy, Clone)]
11109pub struct _tagEOS_TitleStorage_FileMetadata {
11110    #[doc = " API Version: Set this to EOS_TITLESTORAGE_FILEMETADATA_API_LATEST."]
11111    pub ApiVersion: i32,
11112    #[doc = " The total size of the file in bytes (Includes file header in addition to file contents)."]
11113    pub FileSizeBytes: u32,
11114    #[doc = " The MD5 Hash of the entire file (including additional file header), in hex digits"]
11115    pub MD5Hash: *const ::std::os::raw::c_char,
11116    #[doc = " The file's name"]
11117    pub Filename: *const ::std::os::raw::c_char,
11118    #[doc = " The size of data (payload) in file in unencrypted (original) form."]
11119    pub UnencryptedDataSizeBytes: u32,
11120}
11121impl Default for _tagEOS_TitleStorage_FileMetadata {
11122    fn default() -> Self {
11123        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11124        unsafe {
11125            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11126            s.assume_init()
11127        }
11128    }
11129}
11130#[doc = " Metadata information for a specific file"]
11131pub type EOS_TitleStorage_FileMetadata = _tagEOS_TitleStorage_FileMetadata;
11132unsafe extern "C" {
11133    #[doc = " Free the memory used by the file metadata"]
11134    pub fn EOS_TitleStorage_FileMetadata_Release(FileMetadata: *mut EOS_TitleStorage_FileMetadata);
11135}
11136#[doc = " Input data for the EOS_TitleStorage_QueryFile function"]
11137#[repr(C)]
11138#[derive(Debug, Copy, Clone)]
11139pub struct _tagEOS_TitleStorage_QueryFileOptions {
11140    #[doc = " API Version: Set this to EOS_TITLESTORAGE_QUERYFILE_API_LATEST."]
11141    pub ApiVersion: i32,
11142    #[doc = " Product User ID of the local user requesting file metadata (optional)"]
11143    pub LocalUserId: EOS_ProductUserId,
11144    #[doc = " The requested file's name"]
11145    pub Filename: *const ::std::os::raw::c_char,
11146}
11147impl Default for _tagEOS_TitleStorage_QueryFileOptions {
11148    fn default() -> Self {
11149        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11150        unsafe {
11151            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11152            s.assume_init()
11153        }
11154    }
11155}
11156#[doc = " Input data for the EOS_TitleStorage_QueryFile function"]
11157pub type EOS_TitleStorage_QueryFileOptions = _tagEOS_TitleStorage_QueryFileOptions;
11158#[doc = " Structure containing information about a query file request"]
11159#[repr(C)]
11160#[derive(Debug, Copy, Clone)]
11161pub struct _tagEOS_TitleStorage_QueryFileCallbackInfo {
11162    #[doc = " Result code for the operation. EOS_Success is returned for a successful request, other codes indicate an error"]
11163    pub ResultCode: EOS_EResult,
11164    #[doc = " Client-specified data passed into the file query request"]
11165    pub ClientData: *mut ::std::os::raw::c_void,
11166    #[doc = " Product User ID of the local user who initiated this request (optional, will only be present in case it was provided during operation start)"]
11167    pub LocalUserId: EOS_ProductUserId,
11168}
11169impl Default for _tagEOS_TitleStorage_QueryFileCallbackInfo {
11170    fn default() -> Self {
11171        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11172        unsafe {
11173            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11174            s.assume_init()
11175        }
11176    }
11177}
11178#[doc = " Structure containing information about a query file request"]
11179pub type EOS_TitleStorage_QueryFileCallbackInfo = _tagEOS_TitleStorage_QueryFileCallbackInfo;
11180#[doc = " Callback for when EOS_TitleStorage_QueryFile completes"]
11181pub type EOS_TitleStorage_OnQueryFileCompleteCallback = ::std::option::Option<
11182    unsafe extern "C" fn(Data: *const EOS_TitleStorage_QueryFileCallbackInfo),
11183>;
11184#[doc = " Input data for the EOS_TitleStorage_QueryFileList function"]
11185#[repr(C)]
11186#[derive(Debug, Copy, Clone)]
11187pub struct _tagEOS_TitleStorage_QueryFileListOptions {
11188    #[doc = " API Version: Set this to EOS_TITLESTORAGE_QUERYFILELIST_API_LATEST."]
11189    pub ApiVersion: i32,
11190    #[doc = " Product User ID of the local user who requested file metadata (optional)"]
11191    pub LocalUserId: EOS_ProductUserId,
11192    #[doc = " List of tags to use for lookup."]
11193    pub ListOfTags: *const *const ::std::os::raw::c_char,
11194    #[doc = " Number of tags specified in ListOfTags"]
11195    pub ListOfTagsCount: u32,
11196}
11197impl Default for _tagEOS_TitleStorage_QueryFileListOptions {
11198    fn default() -> Self {
11199        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11200        unsafe {
11201            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11202            s.assume_init()
11203        }
11204    }
11205}
11206#[doc = " Input data for the EOS_TitleStorage_QueryFileList function"]
11207pub type EOS_TitleStorage_QueryFileListOptions = _tagEOS_TitleStorage_QueryFileListOptions;
11208#[doc = " Structure containing information about a query file list request"]
11209#[repr(C)]
11210#[derive(Debug, Copy, Clone)]
11211pub struct _tagEOS_TitleStorage_QueryFileListCallbackInfo {
11212    #[doc = " Result code for the operation. EOS_Success is returned for a successful request, other codes indicate an error"]
11213    pub ResultCode: EOS_EResult,
11214    #[doc = " Client-specified data passed into the file query request"]
11215    pub ClientData: *mut ::std::os::raw::c_void,
11216    #[doc = " Product User ID of the local user who initiated this request (optional, will only be present in case it was provided during operation start)"]
11217    pub LocalUserId: EOS_ProductUserId,
11218    #[doc = " A count of files that were found, if successful"]
11219    pub FileCount: u32,
11220}
11221impl Default for _tagEOS_TitleStorage_QueryFileListCallbackInfo {
11222    fn default() -> Self {
11223        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11224        unsafe {
11225            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11226            s.assume_init()
11227        }
11228    }
11229}
11230#[doc = " Structure containing information about a query file list request"]
11231pub type EOS_TitleStorage_QueryFileListCallbackInfo =
11232    _tagEOS_TitleStorage_QueryFileListCallbackInfo;
11233#[doc = " Callback for when EOS_TitleStorage_QueryFileList completes"]
11234pub type EOS_TitleStorage_OnQueryFileListCompleteCallback = ::std::option::Option<
11235    unsafe extern "C" fn(Data: *const EOS_TitleStorage_QueryFileListCallbackInfo),
11236>;
11237#[doc = " Input data for the EOS_TitleStorage_GetFileMetadataCount function"]
11238#[repr(C)]
11239#[derive(Debug, Copy, Clone)]
11240pub struct _tagEOS_TitleStorage_GetFileMetadataCountOptions {
11241    #[doc = " API Version: Set this to EOS_TITLESTORAGE_GETFILEMETADATACOUNT_API_LATEST."]
11242    pub ApiVersion: i32,
11243    #[doc = " Product User ID of the local user who is requesting file metadata (optional)"]
11244    pub LocalUserId: EOS_ProductUserId,
11245}
11246impl Default for _tagEOS_TitleStorage_GetFileMetadataCountOptions {
11247    fn default() -> Self {
11248        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11249        unsafe {
11250            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11251            s.assume_init()
11252        }
11253    }
11254}
11255#[doc = " Input data for the EOS_TitleStorage_GetFileMetadataCount function"]
11256pub type EOS_TitleStorage_GetFileMetadataCountOptions =
11257    _tagEOS_TitleStorage_GetFileMetadataCountOptions;
11258#[doc = " Input data for the CopyFileMetadataAtIndex function"]
11259#[repr(C)]
11260#[derive(Debug, Copy, Clone)]
11261pub struct _tagEOS_TitleStorage_CopyFileMetadataAtIndexOptions {
11262    #[doc = " API Version: Set this to EOS_TITLESTORAGE_COPYFILEMETADATAATINDEX_API_LATEST."]
11263    pub ApiVersion: i32,
11264    #[doc = " Product User ID of the local user who is requesting file metadata (optional)"]
11265    pub LocalUserId: EOS_ProductUserId,
11266    #[doc = " The index to get data for"]
11267    pub Index: u32,
11268}
11269impl Default for _tagEOS_TitleStorage_CopyFileMetadataAtIndexOptions {
11270    fn default() -> Self {
11271        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11272        unsafe {
11273            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11274            s.assume_init()
11275        }
11276    }
11277}
11278#[doc = " Input data for the CopyFileMetadataAtIndex function"]
11279pub type EOS_TitleStorage_CopyFileMetadataAtIndexOptions =
11280    _tagEOS_TitleStorage_CopyFileMetadataAtIndexOptions;
11281#[doc = " Input data for the CopyFileMetadataByFilename function"]
11282#[repr(C)]
11283#[derive(Debug, Copy, Clone)]
11284pub struct _tagEOS_TitleStorage_CopyFileMetadataByFilenameOptions {
11285    #[doc = " API Version: Set this to EOS_TITLESTORAGE_COPYFILEMETADATABYFILENAME_API_LATEST."]
11286    pub ApiVersion: i32,
11287    #[doc = " Product User ID of the local user who is requesting file metadata (optional)"]
11288    pub LocalUserId: EOS_ProductUserId,
11289    #[doc = " The file's name to get data for"]
11290    pub Filename: *const ::std::os::raw::c_char,
11291}
11292impl Default for _tagEOS_TitleStorage_CopyFileMetadataByFilenameOptions {
11293    fn default() -> Self {
11294        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11295        unsafe {
11296            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11297            s.assume_init()
11298        }
11299    }
11300}
11301#[doc = " Input data for the CopyFileMetadataByFilename function"]
11302pub type EOS_TitleStorage_CopyFileMetadataByFilenameOptions =
11303    _tagEOS_TitleStorage_CopyFileMetadataByFilenameOptions;
11304#[repr(C)]
11305#[derive(Debug, Copy, Clone)]
11306pub struct EOS_TitleStorageFileTransferRequestHandle {
11307    _unused: [u8; 0],
11308}
11309#[doc = " Handle type to a File Request"]
11310pub type EOS_HTitleStorageFileTransferRequest = *mut EOS_TitleStorageFileTransferRequestHandle;
11311unsafe extern "C" {
11312    #[doc = " Free the memory used by a cloud-storage file request handle. This will not cancel a request in progress."]
11313    pub fn EOS_TitleStorageFileTransferRequest_Release(
11314        TitleStorageFileTransferHandle: EOS_HTitleStorageFileTransferRequest,
11315    );
11316}
11317#[doc = " Structure containing the information about a file transfer in progress (or one that has completed)"]
11318#[repr(C)]
11319#[derive(Debug, Copy, Clone)]
11320pub struct _tagEOS_TitleStorage_FileTransferProgressCallbackInfo {
11321    #[doc = " Client-specified data passed into the file request"]
11322    pub ClientData: *mut ::std::os::raw::c_void,
11323    #[doc = " Product User ID of the local user who initiated this request (optional, will only be present in case it was provided during operation start)"]
11324    pub LocalUserId: EOS_ProductUserId,
11325    #[doc = " The file name of the file being transferred"]
11326    pub Filename: *const ::std::os::raw::c_char,
11327    #[doc = " Amount of bytes transferred so far in this request, out of TotalFileSizeBytes"]
11328    pub BytesTransferred: u32,
11329    #[doc = " The total size of the file being transferred (Includes file header in addition to file contents, can be slightly more than expected)"]
11330    pub TotalFileSizeBytes: u32,
11331}
11332impl Default for _tagEOS_TitleStorage_FileTransferProgressCallbackInfo {
11333    fn default() -> Self {
11334        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11335        unsafe {
11336            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11337            s.assume_init()
11338        }
11339    }
11340}
11341#[doc = " Structure containing the information about a file transfer in progress (or one that has completed)"]
11342pub type EOS_TitleStorage_FileTransferProgressCallbackInfo =
11343    _tagEOS_TitleStorage_FileTransferProgressCallbackInfo;
11344#[doc = " Callback for when there is a progress update for a file transfer in progress"]
11345pub type EOS_TitleStorage_OnFileTransferProgressCallback = ::std::option::Option<
11346    unsafe extern "C" fn(Data: *const EOS_TitleStorage_FileTransferProgressCallbackInfo),
11347>;
11348#[doc = " Signifies the data was read successfully, and we should continue to the next chunk if possible"]
11349pub const EOS_TitleStorage_EReadResult_EOS_TS_RR_ContinueReading: EOS_TitleStorage_EReadResult = 1;
11350#[doc = " Signifies there was a failure reading the data, and the request should end"]
11351pub const EOS_TitleStorage_EReadResult_EOS_TS_RR_FailRequest: EOS_TitleStorage_EReadResult = 2;
11352#[doc = " Signifies the request should be canceled, but not due to an error"]
11353pub const EOS_TitleStorage_EReadResult_EOS_TS_RR_CancelRequest: EOS_TitleStorage_EReadResult = 3;
11354pub const EOS_TitleStorage_EReadResult___EOS_TitleStorage_EReadResult_PAD_INT32__:
11355    EOS_TitleStorage_EReadResult = 2147483647;
11356#[doc = " Return results for EOS_TitleStorage_OnReadFileDataCallback callbacks"]
11357pub type EOS_TitleStorage_EReadResult = ::std::os::raw::c_int;
11358#[doc = " Structure containing data for a chunk of a file being read"]
11359#[repr(C)]
11360#[derive(Debug, Copy, Clone)]
11361pub struct _tagEOS_TitleStorage_ReadFileDataCallbackInfo {
11362    #[doc = " Client-specified data passed into the file request"]
11363    pub ClientData: *mut ::std::os::raw::c_void,
11364    #[doc = " Product User ID of the local user who initiated this request (optional, will only be present in case it was provided during operation start)"]
11365    pub LocalUserId: EOS_ProductUserId,
11366    #[doc = " The file name being read"]
11367    pub Filename: *const ::std::os::raw::c_char,
11368    #[doc = " The total file size of the file being read"]
11369    pub TotalFileSizeBytes: u32,
11370    #[doc = " Is this chunk the last chunk of data?"]
11371    pub bIsLastChunk: EOS_Bool,
11372    #[doc = " The length of DataChunk in bytes that can be safely read"]
11373    pub DataChunkLengthBytes: u32,
11374    #[doc = " Pointer to the start of data to be read"]
11375    pub DataChunk: *const ::std::os::raw::c_void,
11376}
11377impl Default for _tagEOS_TitleStorage_ReadFileDataCallbackInfo {
11378    fn default() -> Self {
11379        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11380        unsafe {
11381            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11382            s.assume_init()
11383        }
11384    }
11385}
11386#[doc = " Structure containing data for a chunk of a file being read"]
11387pub type EOS_TitleStorage_ReadFileDataCallbackInfo = _tagEOS_TitleStorage_ReadFileDataCallbackInfo;
11388#[doc = " Callback for when we have data ready to be read from the requested file. It is undefined how often this will be called during a single tick.\n\n @param Data Struct containing a chunk of data to read, as well as some metadata for the file being read\n @return The result of the read operation. If this value is not EOS_TS_RR_ContinueReading, this callback will not be called again for the same request"]
11389pub type EOS_TitleStorage_OnReadFileDataCallback = ::std::option::Option<
11390    unsafe extern "C" fn(
11391        Data: *const EOS_TitleStorage_ReadFileDataCallbackInfo,
11392    ) -> EOS_TitleStorage_EReadResult,
11393>;
11394#[doc = " Input data for the EOS_TitleStorage_ReadFile function"]
11395#[repr(C)]
11396#[derive(Debug, Copy, Clone)]
11397pub struct _tagEOS_TitleStorage_ReadFileOptions {
11398    #[doc = " API Version: Set this to EOS_TITLESTORAGE_READFILE_API_LATEST."]
11399    pub ApiVersion: i32,
11400    #[doc = " Product User ID of the local user who is reading the requested file (optional)"]
11401    pub LocalUserId: EOS_ProductUserId,
11402    #[doc = " The file name to read; this file must already exist"]
11403    pub Filename: *const ::std::os::raw::c_char,
11404    #[doc = " The maximum amount of data in bytes should be available to read in a single EOS_TitleStorage_OnReadFileDataCallback call"]
11405    pub ReadChunkLengthBytes: u32,
11406    #[doc = " Callback function to handle copying read data"]
11407    pub ReadFileDataCallback: EOS_TitleStorage_OnReadFileDataCallback,
11408    #[doc = " Optional callback function to be informed of download progress, if the file is not already locally cached. If set, this will be called at least once before completion if the request is successfully started"]
11409    pub FileTransferProgressCallback: EOS_TitleStorage_OnFileTransferProgressCallback,
11410}
11411impl Default for _tagEOS_TitleStorage_ReadFileOptions {
11412    fn default() -> Self {
11413        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11414        unsafe {
11415            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11416            s.assume_init()
11417        }
11418    }
11419}
11420#[doc = " Input data for the EOS_TitleStorage_ReadFile function"]
11421pub type EOS_TitleStorage_ReadFileOptions = _tagEOS_TitleStorage_ReadFileOptions;
11422#[doc = " Structure containing the result of a read file request"]
11423#[repr(C)]
11424#[derive(Debug, Copy, Clone)]
11425pub struct _tagEOS_TitleStorage_ReadFileCallbackInfo {
11426    #[doc = " Result code for the operation. EOS_Success is returned for a successful request, other codes indicate an error"]
11427    pub ResultCode: EOS_EResult,
11428    #[doc = " Client-specified data passed into the file read request"]
11429    pub ClientData: *mut ::std::os::raw::c_void,
11430    #[doc = " Product User ID of the local user who initiated this request (optional, will only be present in case it was provided during operation start)"]
11431    pub LocalUserId: EOS_ProductUserId,
11432    #[doc = " The filename of the file that has been finished reading"]
11433    pub Filename: *const ::std::os::raw::c_char,
11434}
11435impl Default for _tagEOS_TitleStorage_ReadFileCallbackInfo {
11436    fn default() -> Self {
11437        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11438        unsafe {
11439            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11440            s.assume_init()
11441        }
11442    }
11443}
11444#[doc = " Structure containing the result of a read file request"]
11445pub type EOS_TitleStorage_ReadFileCallbackInfo = _tagEOS_TitleStorage_ReadFileCallbackInfo;
11446#[doc = " Callback for when EOS_TitleStorage_ReadFile completes"]
11447pub type EOS_TitleStorage_OnReadFileCompleteCallback =
11448    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_TitleStorage_ReadFileCallbackInfo)>;
11449#[doc = " Input data for the EOS_TitleStorage_DeleteCache function"]
11450#[repr(C)]
11451#[derive(Debug, Copy, Clone)]
11452pub struct _tagEOS_TitleStorage_DeleteCacheOptions {
11453    #[doc = " API Version: Set this to EOS_TITLESTORAGE_DELETECACHE_API_LATEST."]
11454    pub ApiVersion: i32,
11455    #[doc = " Product User ID of the local user who is deleting his cache (optional)"]
11456    pub LocalUserId: EOS_ProductUserId,
11457}
11458impl Default for _tagEOS_TitleStorage_DeleteCacheOptions {
11459    fn default() -> Self {
11460        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11461        unsafe {
11462            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11463            s.assume_init()
11464        }
11465    }
11466}
11467#[doc = " Input data for the EOS_TitleStorage_DeleteCache function"]
11468pub type EOS_TitleStorage_DeleteCacheOptions = _tagEOS_TitleStorage_DeleteCacheOptions;
11469#[doc = " Structure containing the result of a delete cache operation"]
11470#[repr(C)]
11471#[derive(Debug, Copy, Clone)]
11472pub struct _tagEOS_TitleStorage_DeleteCacheCallbackInfo {
11473    #[doc = " Result code for the operation. EOS_Success is returned for a successful request, other codes indicate an error"]
11474    pub ResultCode: EOS_EResult,
11475    #[doc = " Client-specified data passed into the delete cache request"]
11476    pub ClientData: *mut ::std::os::raw::c_void,
11477    #[doc = " Product User ID of the local user who initiated this request (optional, will only be present in case it was provided during operation start)"]
11478    pub LocalUserId: EOS_ProductUserId,
11479}
11480impl Default for _tagEOS_TitleStorage_DeleteCacheCallbackInfo {
11481    fn default() -> Self {
11482        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11483        unsafe {
11484            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11485            s.assume_init()
11486        }
11487    }
11488}
11489#[doc = " Structure containing the result of a delete cache operation"]
11490pub type EOS_TitleStorage_DeleteCacheCallbackInfo = _tagEOS_TitleStorage_DeleteCacheCallbackInfo;
11491#[doc = " Callback for when EOS_TitleStorage_DeleteCache completes"]
11492pub type EOS_TitleStorage_OnDeleteCacheCompleteCallback = ::std::option::Option<
11493    unsafe extern "C" fn(Data: *const EOS_TitleStorage_DeleteCacheCallbackInfo),
11494>;
11495#[repr(C)]
11496#[derive(Debug, Copy, Clone)]
11497pub struct EOS_ConnectHandle {
11498    _unused: [u8; 0],
11499}
11500pub type EOS_HConnect = *mut EOS_ConnectHandle;
11501#[doc = " A structure that contains external login credentials.\n\n This is part of the input structure EOS_Connect_LoginOptions.\n\n @see EOS_EExternalCredentialType\n @see EOS_Connect_Login"]
11502#[repr(C)]
11503#[derive(Debug, Copy, Clone)]
11504pub struct _tagEOS_Connect_Credentials {
11505    #[doc = " API Version: Set this to EOS_CONNECT_CREDENTIALS_API_LATEST."]
11506    pub ApiVersion: i32,
11507    #[doc = " External token associated with the user logging in."]
11508    pub Token: *const ::std::os::raw::c_char,
11509    #[doc = " Type of external login; identifies the auth method to use."]
11510    pub Type: EOS_EExternalCredentialType,
11511}
11512impl Default for _tagEOS_Connect_Credentials {
11513    fn default() -> Self {
11514        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11515        unsafe {
11516            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11517            s.assume_init()
11518        }
11519    }
11520}
11521#[doc = " A structure that contains external login credentials.\n\n This is part of the input structure EOS_Connect_LoginOptions.\n\n @see EOS_EExternalCredentialType\n @see EOS_Connect_Login"]
11522pub type EOS_Connect_Credentials = _tagEOS_Connect_Credentials;
11523#[doc = " Additional information about the local user."]
11524#[repr(C)]
11525#[derive(Debug, Copy, Clone)]
11526pub struct _tagEOS_Connect_UserLoginInfo {
11527    #[doc = " API Version: Set this to EOS_CONNECT_USERLOGININFO_API_LATEST."]
11528    pub ApiVersion: i32,
11529    #[doc = " The user's display name on the identity provider systems as UTF-8 encoded null-terminated string.\n The length of the name can be at maximum up to EOS_CONNECT_USERLOGININFO_DISPLAYNAME_MAX_LENGTH bytes.\n\n As the display name passed here is client-controlled and not part of user authentication tokens,\n it is only treated as non-authoritative informational data to be used by some of the feature services.\n For example displaying player names in Leaderboards rankings."]
11530    pub DisplayName: *const ::std::os::raw::c_char,
11531    #[doc = " Nintendo Service Account ID Token (NSA ID).\n\n This field is required to be set and only used when running on the Nintendo Switch device,\n and the user is being authenticated using any other credential type than EOS_ECT_NINTENDO_NSA_ID_TOKEN.\n\n In order to use the Lobbies and Sessions interfaces, a valid NSA ID Token is required to be provided\n for the active local Nintendo Switch user. Otherwise, attempting to use either of the Lobbies or\n Sessions interfaces will return the EOS_Permission_OnlinePlayRestricted error result."]
11532    pub NsaIdToken: *const ::std::os::raw::c_char,
11533}
11534impl Default for _tagEOS_Connect_UserLoginInfo {
11535    fn default() -> Self {
11536        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11537        unsafe {
11538            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11539            s.assume_init()
11540        }
11541    }
11542}
11543#[doc = " Additional information about the local user."]
11544pub type EOS_Connect_UserLoginInfo = _tagEOS_Connect_UserLoginInfo;
11545#[doc = " Input parameters for the EOS_Connect_Login function."]
11546#[repr(C)]
11547#[derive(Debug, Copy, Clone)]
11548pub struct _tagEOS_Connect_LoginOptions {
11549    #[doc = " API Version: Set this to EOS_CONNECT_LOGIN_API_LATEST."]
11550    pub ApiVersion: i32,
11551    #[doc = " Credentials specified for a given login method"]
11552    pub Credentials: *const EOS_Connect_Credentials,
11553    #[doc = " Additional information about the local user.\n\n This field is required to be set and used when authenticating the user using Amazon, Apple, Google, Nintendo Account, Nintendo Service Account, Oculus or the Device ID feature login.\n It is also required for using the Lobbies and Sessions interfaces when running on the Nintendo Switch device, and using any other credential type than EOS_ECT_NINTENDO_NSA_ID_TOKEN.\n In all other cases, set this field to NULL."]
11554    pub UserLoginInfo: *const EOS_Connect_UserLoginInfo,
11555}
11556impl Default for _tagEOS_Connect_LoginOptions {
11557    fn default() -> Self {
11558        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11559        unsafe {
11560            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11561            s.assume_init()
11562        }
11563    }
11564}
11565#[doc = " Input parameters for the EOS_Connect_Login function."]
11566pub type EOS_Connect_LoginOptions = _tagEOS_Connect_LoginOptions;
11567#[doc = " Output parameters for the EOS_Connect_Login function."]
11568#[repr(C)]
11569#[derive(Debug, Copy, Clone)]
11570pub struct _tagEOS_Connect_LoginCallbackInfo {
11571    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
11572    pub ResultCode: EOS_EResult,
11573    #[doc = " Context that was passed into EOS_Connect_Login."]
11574    pub ClientData: *mut ::std::os::raw::c_void,
11575    #[doc = " If login was successful, this is the Product User ID of the local player that logged in."]
11576    pub LocalUserId: EOS_ProductUserId,
11577    #[doc = " If the user was not found with credentials passed into EOS_Connect_Login,\n this continuance token can be passed to either EOS_Connect_CreateUser\n or EOS_Connect_LinkAccount to continue the flow."]
11578    pub ContinuanceToken: EOS_ContinuanceToken,
11579}
11580impl Default for _tagEOS_Connect_LoginCallbackInfo {
11581    fn default() -> Self {
11582        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11583        unsafe {
11584            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11585            s.assume_init()
11586        }
11587    }
11588}
11589#[doc = " Output parameters for the EOS_Connect_Login function."]
11590pub type EOS_Connect_LoginCallbackInfo = _tagEOS_Connect_LoginCallbackInfo;
11591#[doc = " Function prototype definition for callbacks passed to EOS_Connect_Login.\n\n @param Data A EOS_Connect_LoginCallbackInfo containing the output information and result."]
11592pub type EOS_Connect_OnLoginCallback =
11593    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Connect_LoginCallbackInfo)>;
11594#[doc = " Input parameters for the EOS_Connect_Logout API"]
11595#[repr(C)]
11596#[derive(Debug, Copy, Clone)]
11597pub struct _tagEOS_Connect_LogoutOptions {
11598    #[doc = " API Version: Set this to EOS_CONNECT_LOGOUT_API_LATEST."]
11599    pub ApiVersion: i32,
11600    #[doc = " The Product User ID of the player to logout"]
11601    pub LocalUserId: EOS_ProductUserId,
11602}
11603impl Default for _tagEOS_Connect_LogoutOptions {
11604    fn default() -> Self {
11605        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11606        unsafe {
11607            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11608            s.assume_init()
11609        }
11610    }
11611}
11612#[doc = " Input parameters for the EOS_Connect_Logout API"]
11613pub type EOS_Connect_LogoutOptions = _tagEOS_Connect_LogoutOptions;
11614#[doc = " Output parameters for the EOS_Connect_Logout function."]
11615#[repr(C)]
11616#[derive(Debug, Copy, Clone)]
11617pub struct _tagEOS_Connect_LogoutCallbackInfo {
11618    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
11619    pub ResultCode: EOS_EResult,
11620    #[doc = " Context that was passed into EOS_Connect_Logout."]
11621    pub ClientData: *mut ::std::os::raw::c_void,
11622    #[doc = " The Product User ID of the player that is being logged out."]
11623    pub LocalUserId: EOS_ProductUserId,
11624}
11625impl Default for _tagEOS_Connect_LogoutCallbackInfo {
11626    fn default() -> Self {
11627        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11628        unsafe {
11629            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11630            s.assume_init()
11631        }
11632    }
11633}
11634#[doc = " Output parameters for the EOS_Connect_Logout function."]
11635pub type EOS_Connect_LogoutCallbackInfo = _tagEOS_Connect_LogoutCallbackInfo;
11636#[doc = " Function prototype definition for callbacks passed to EOS_Connect_Logout\n\n @param Data A EOS_Connect_LogoutCallbackInfo containing the result."]
11637pub type EOS_Connect_OnLogoutCallback =
11638    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Connect_LogoutCallbackInfo)>;
11639#[doc = " Input parameters for the EOS_Connect_CreateUser function."]
11640#[repr(C)]
11641#[derive(Debug, Copy, Clone)]
11642pub struct _tagEOS_Connect_CreateUserOptions {
11643    #[doc = " API Version: Set this to EOS_CONNECT_CREATEUSER_API_LATEST."]
11644    pub ApiVersion: i32,
11645    #[doc = " Continuance token from previous call to EOS_Connect_Login"]
11646    pub ContinuanceToken: EOS_ContinuanceToken,
11647}
11648impl Default for _tagEOS_Connect_CreateUserOptions {
11649    fn default() -> Self {
11650        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11651        unsafe {
11652            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11653            s.assume_init()
11654        }
11655    }
11656}
11657#[doc = " Input parameters for the EOS_Connect_CreateUser function."]
11658pub type EOS_Connect_CreateUserOptions = _tagEOS_Connect_CreateUserOptions;
11659#[doc = " Output parameters for the EOS_Connect_CreateUser function."]
11660#[repr(C)]
11661#[derive(Debug, Copy, Clone)]
11662pub struct _tagEOS_Connect_CreateUserCallbackInfo {
11663    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
11664    pub ResultCode: EOS_EResult,
11665    #[doc = " Context that was passed into EOS_Connect_CreateUser."]
11666    pub ClientData: *mut ::std::os::raw::c_void,
11667    #[doc = " If the operation succeeded, this is the Product User ID of the local user who was created."]
11668    pub LocalUserId: EOS_ProductUserId,
11669}
11670impl Default for _tagEOS_Connect_CreateUserCallbackInfo {
11671    fn default() -> Self {
11672        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11673        unsafe {
11674            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11675            s.assume_init()
11676        }
11677    }
11678}
11679#[doc = " Output parameters for the EOS_Connect_CreateUser function."]
11680pub type EOS_Connect_CreateUserCallbackInfo = _tagEOS_Connect_CreateUserCallbackInfo;
11681#[doc = " Function prototype definition for callbacks passed to EOS_Connect_CreateUser.\n\n @param Data A EOS_Connect_CreateUserCallbackInfo containing the output information and result."]
11682pub type EOS_Connect_OnCreateUserCallback =
11683    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Connect_CreateUserCallbackInfo)>;
11684#[doc = " Input parameters for the EOS_Connect_LinkAccount function."]
11685#[repr(C)]
11686#[derive(Debug, Copy, Clone)]
11687pub struct _tagEOS_Connect_LinkAccountOptions {
11688    #[doc = " API Version: Set this to EOS_CONNECT_LINKACCOUNT_API_LATEST."]
11689    pub ApiVersion: i32,
11690    #[doc = " The existing logged in product user for which to link the external account described by the continuance token."]
11691    pub LocalUserId: EOS_ProductUserId,
11692    #[doc = " Continuance token from previous call to EOS_Connect_Login."]
11693    pub ContinuanceToken: EOS_ContinuanceToken,
11694}
11695impl Default for _tagEOS_Connect_LinkAccountOptions {
11696    fn default() -> Self {
11697        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11698        unsafe {
11699            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11700            s.assume_init()
11701        }
11702    }
11703}
11704#[doc = " Input parameters for the EOS_Connect_LinkAccount function."]
11705pub type EOS_Connect_LinkAccountOptions = _tagEOS_Connect_LinkAccountOptions;
11706#[doc = " Output parameters for the EOS_Connect_LinkAccount function."]
11707#[repr(C)]
11708#[derive(Debug, Copy, Clone)]
11709pub struct _tagEOS_Connect_LinkAccountCallbackInfo {
11710    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
11711    pub ResultCode: EOS_EResult,
11712    #[doc = " Context that was passed into EOS_Connect_LinkAccount."]
11713    pub ClientData: *mut ::std::os::raw::c_void,
11714    #[doc = " The Product User ID of the existing, logged-in user whose account was linked (on success)."]
11715    pub LocalUserId: EOS_ProductUserId,
11716}
11717impl Default for _tagEOS_Connect_LinkAccountCallbackInfo {
11718    fn default() -> Self {
11719        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11720        unsafe {
11721            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11722            s.assume_init()
11723        }
11724    }
11725}
11726#[doc = " Output parameters for the EOS_Connect_LinkAccount function."]
11727pub type EOS_Connect_LinkAccountCallbackInfo = _tagEOS_Connect_LinkAccountCallbackInfo;
11728#[doc = " Function prototype definition for callbacks passed to EOS_Connect_LinkAccount.\n\n @param Data A EOS_Connect_LinkAccountCallbackInfo containing the output information and result."]
11729pub type EOS_Connect_OnLinkAccountCallback =
11730    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Connect_LinkAccountCallbackInfo)>;
11731#[doc = " Input parameters for the EOS_Connect_UnlinkAccount Function."]
11732#[repr(C)]
11733#[derive(Debug, Copy, Clone)]
11734pub struct _tagEOS_Connect_UnlinkAccountOptions {
11735    #[doc = " API Version: Set this to EOS_CONNECT_UNLINKACCOUNT_API_LATEST."]
11736    pub ApiVersion: i32,
11737    #[doc = " Existing logged in product user that is subject for the unlinking operation.\n The external account that was used to login to the product user will be unlinked from the owning keychain.\n\n On a successful operation, the product user will be logged out as the external account used to authenticate the user was unlinked from the owning keychain."]
11738    pub LocalUserId: EOS_ProductUserId,
11739}
11740impl Default for _tagEOS_Connect_UnlinkAccountOptions {
11741    fn default() -> Self {
11742        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11743        unsafe {
11744            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11745            s.assume_init()
11746        }
11747    }
11748}
11749#[doc = " Input parameters for the EOS_Connect_UnlinkAccount Function."]
11750pub type EOS_Connect_UnlinkAccountOptions = _tagEOS_Connect_UnlinkAccountOptions;
11751#[doc = " Output parameters for the EOS_Connect_UnlinkAccount Function."]
11752#[repr(C)]
11753#[derive(Debug, Copy, Clone)]
11754pub struct _tagEOS_Connect_UnlinkAccountCallbackInfo {
11755    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
11756    pub ResultCode: EOS_EResult,
11757    #[doc = " Context that was passed into EOS_Connect_UnlinkAccount."]
11758    pub ClientData: *mut ::std::os::raw::c_void,
11759    #[doc = " The product user that was subject for the unlinking operation.\n\n On a successful operation, the local authentication session for the product user will have been invalidated.\n As such, the LocalUserId value will no longer be valid in any context unless the user is logged into it again."]
11760    pub LocalUserId: EOS_ProductUserId,
11761}
11762impl Default for _tagEOS_Connect_UnlinkAccountCallbackInfo {
11763    fn default() -> Self {
11764        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11765        unsafe {
11766            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11767            s.assume_init()
11768        }
11769    }
11770}
11771#[doc = " Output parameters for the EOS_Connect_UnlinkAccount Function."]
11772pub type EOS_Connect_UnlinkAccountCallbackInfo = _tagEOS_Connect_UnlinkAccountCallbackInfo;
11773#[doc = " Function prototype definition for callbacks passed to EOS_Connect_UnlinkAccount.\n\n @param Data A EOS_Connect_UnlinkAccountCallbackInfo containing the output information and result"]
11774pub type EOS_Connect_OnUnlinkAccountCallback =
11775    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Connect_UnlinkAccountCallbackInfo)>;
11776#[doc = " Input parameters for the EOS_Connect_CreateDeviceId function."]
11777#[repr(C)]
11778#[derive(Debug, Copy, Clone)]
11779pub struct _tagEOS_Connect_CreateDeviceIdOptions {
11780    #[doc = " API Version: Set this to EOS_CONNECT_CREATEDEVICEID_API_LATEST."]
11781    pub ApiVersion: i32,
11782    #[doc = " A freeform text description identifying the device type and model,\n which can be used in account linking management to allow the player\n and customer support to identify different devices linked to an EOS\n user keychain. For example 'iPhone 6S' or 'PC Windows'.\n\n The input string must be in UTF-8 character format, with a maximum\n length of 64 characters. Longer string will be silently truncated.\n\n This field is required to be present."]
11783    pub DeviceModel: *const ::std::os::raw::c_char,
11784}
11785impl Default for _tagEOS_Connect_CreateDeviceIdOptions {
11786    fn default() -> Self {
11787        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11788        unsafe {
11789            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11790            s.assume_init()
11791        }
11792    }
11793}
11794#[doc = " Input parameters for the EOS_Connect_CreateDeviceId function."]
11795pub type EOS_Connect_CreateDeviceIdOptions = _tagEOS_Connect_CreateDeviceIdOptions;
11796#[doc = " Output parameters for the EOS_Connect_CreateDeviceId function."]
11797#[repr(C)]
11798#[derive(Debug, Copy, Clone)]
11799pub struct _tagEOS_Connect_CreateDeviceIdCallbackInfo {
11800    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
11801    pub ResultCode: EOS_EResult,
11802    #[doc = " Context that was passed into EOS_Connect_CreateDeviceId."]
11803    pub ClientData: *mut ::std::os::raw::c_void,
11804}
11805impl Default for _tagEOS_Connect_CreateDeviceIdCallbackInfo {
11806    fn default() -> Self {
11807        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11808        unsafe {
11809            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11810            s.assume_init()
11811        }
11812    }
11813}
11814#[doc = " Output parameters for the EOS_Connect_CreateDeviceId function."]
11815pub type EOS_Connect_CreateDeviceIdCallbackInfo = _tagEOS_Connect_CreateDeviceIdCallbackInfo;
11816#[doc = " Function prototype definition for callbacks passed to EOS_Connect_CreateDeviceId.\n\n @param Data A EOS_Connect_CreateDeviceIdCallbackInfo containing the output information and result."]
11817pub type EOS_Connect_OnCreateDeviceIdCallback = ::std::option::Option<
11818    unsafe extern "C" fn(Data: *const EOS_Connect_CreateDeviceIdCallbackInfo),
11819>;
11820#[doc = " Input parameters for the EOS_Connect_DeleteDeviceId function."]
11821#[repr(C)]
11822#[derive(Debug, Default, Copy, Clone)]
11823pub struct _tagEOS_Connect_DeleteDeviceIdOptions {
11824    #[doc = " API Version: Set this to EOS_CONNECT_DELETEDEVICEID_API_LATEST."]
11825    pub ApiVersion: i32,
11826}
11827#[doc = " Input parameters for the EOS_Connect_DeleteDeviceId function."]
11828pub type EOS_Connect_DeleteDeviceIdOptions = _tagEOS_Connect_DeleteDeviceIdOptions;
11829#[doc = " Output parameters for the EOS_Connect_DeleteDeviceId function."]
11830#[repr(C)]
11831#[derive(Debug, Copy, Clone)]
11832pub struct _tagEOS_Connect_DeleteDeviceIdCallbackInfo {
11833    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
11834    pub ResultCode: EOS_EResult,
11835    #[doc = " Context that was passed into EOS_Connect_DeleteDeviceId"]
11836    pub ClientData: *mut ::std::os::raw::c_void,
11837}
11838impl Default for _tagEOS_Connect_DeleteDeviceIdCallbackInfo {
11839    fn default() -> Self {
11840        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11841        unsafe {
11842            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11843            s.assume_init()
11844        }
11845    }
11846}
11847#[doc = " Output parameters for the EOS_Connect_DeleteDeviceId function."]
11848pub type EOS_Connect_DeleteDeviceIdCallbackInfo = _tagEOS_Connect_DeleteDeviceIdCallbackInfo;
11849#[doc = " Function prototype definition for callbacks passed to EOS_Connect_DeleteDeviceId.\n\n @param Data A EOS_Connect_DeleteDeviceIdCallbackInfo containing the output information and result."]
11850pub type EOS_Connect_OnDeleteDeviceIdCallback = ::std::option::Option<
11851    unsafe extern "C" fn(Data: *const EOS_Connect_DeleteDeviceIdCallbackInfo),
11852>;
11853#[doc = " Input parameters for the EOS_Connect_TransferDeviceIdAccount Function."]
11854#[repr(C)]
11855#[derive(Debug, Copy, Clone)]
11856pub struct _tagEOS_Connect_TransferDeviceIdAccountOptions {
11857    #[doc = " API Version: Set this to EOS_CONNECT_TRANSFERDEVICEIDACCOUNT_API_LATEST."]
11858    pub ApiVersion: i32,
11859    #[doc = " The primary product user id, currently logged in, that is already associated with a real external user account (such as Epic Games, PlayStation(TM)Network, Xbox Live and other).\n\n The account linking keychain that owns this product user will be preserved and receive\n the Device ID login credentials under it."]
11860    pub PrimaryLocalUserId: EOS_ProductUserId,
11861    #[doc = " The product user id, currently logged in, that has been originally created using the anonymous local Device ID login type,\n and whose Device ID login will be transferred to the keychain of the PrimaryLocalUserId."]
11862    pub LocalDeviceUserId: EOS_ProductUserId,
11863    #[doc = " Specifies which EOS_ProductUserId (i.e. game progression) will be preserved in the operation.\n\n After a successful transfer operation, subsequent logins using the same external account or\n the same local Device ID login will return user session for the ProductUserIdToPreserve.\n\n Set to either PrimaryLocalUserId or LocalDeviceUserId."]
11864    pub ProductUserIdToPreserve: EOS_ProductUserId,
11865}
11866impl Default for _tagEOS_Connect_TransferDeviceIdAccountOptions {
11867    fn default() -> Self {
11868        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11869        unsafe {
11870            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11871            s.assume_init()
11872        }
11873    }
11874}
11875#[doc = " Input parameters for the EOS_Connect_TransferDeviceIdAccount Function."]
11876pub type EOS_Connect_TransferDeviceIdAccountOptions =
11877    _tagEOS_Connect_TransferDeviceIdAccountOptions;
11878#[doc = " Output parameters for the EOS_Connect_TransferDeviceIdAccount Function."]
11879#[repr(C)]
11880#[derive(Debug, Copy, Clone)]
11881pub struct _tagEOS_Connect_TransferDeviceIdAccountCallbackInfo {
11882    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
11883    pub ResultCode: EOS_EResult,
11884    #[doc = " Context that was passed into EOS_Connect_TransferDeviceIdAccount."]
11885    pub ClientData: *mut ::std::os::raw::c_void,
11886    #[doc = " The ProductUserIdToPreserve that was passed to the original EOS_Connect_TransferDeviceIdAccount call.\n\n On successful operation, this EOS_ProductUserId will have a valid authentication session\n and the other EOS_ProductUserId value has been discarded and lost forever.\n\n The application should remove any registered notification callbacks for the discarded EOS_ProductUserId as obsolete."]
11887    pub LocalUserId: EOS_ProductUserId,
11888}
11889impl Default for _tagEOS_Connect_TransferDeviceIdAccountCallbackInfo {
11890    fn default() -> Self {
11891        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11892        unsafe {
11893            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11894            s.assume_init()
11895        }
11896    }
11897}
11898#[doc = " Output parameters for the EOS_Connect_TransferDeviceIdAccount Function."]
11899pub type EOS_Connect_TransferDeviceIdAccountCallbackInfo =
11900    _tagEOS_Connect_TransferDeviceIdAccountCallbackInfo;
11901#[doc = " Function prototype definition for callbacks passed to EOS_Connect_TransferDeviceIdAccount.\n\n @param Data A EOS_Connect_TransferDeviceIdAccountCallbackInfo containing the output information and result."]
11902pub type EOS_Connect_OnTransferDeviceIdAccountCallback = ::std::option::Option<
11903    unsafe extern "C" fn(Data: *const EOS_Connect_TransferDeviceIdAccountCallbackInfo),
11904>;
11905#[doc = " Input parameters for the EOS_Connect_QueryExternalAccountMappings function."]
11906#[repr(C)]
11907#[derive(Debug, Copy, Clone)]
11908pub struct _tagEOS_Connect_QueryExternalAccountMappingsOptions {
11909    #[doc = " API Version: Set this to EOS_CONNECT_QUERYEXTERNALACCOUNTMAPPINGS_API_LATEST."]
11910    pub ApiVersion: i32,
11911    #[doc = " The Product User ID of the existing, logged-in user who is querying account mappings."]
11912    pub LocalUserId: EOS_ProductUserId,
11913    #[doc = " External auth service supplying the account IDs in string form."]
11914    pub AccountIdType: EOS_EExternalAccountType,
11915    #[doc = " An array of external account IDs to map to the product user ID representation."]
11916    pub ExternalAccountIds: *mut *const ::std::os::raw::c_char,
11917    #[doc = " Number of account IDs to query."]
11918    pub ExternalAccountIdCount: u32,
11919}
11920impl Default for _tagEOS_Connect_QueryExternalAccountMappingsOptions {
11921    fn default() -> Self {
11922        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11923        unsafe {
11924            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11925            s.assume_init()
11926        }
11927    }
11928}
11929#[doc = " Input parameters for the EOS_Connect_QueryExternalAccountMappings function."]
11930pub type EOS_Connect_QueryExternalAccountMappingsOptions =
11931    _tagEOS_Connect_QueryExternalAccountMappingsOptions;
11932#[doc = " Output parameters for the EOS_Connect_QueryExternalAccountMappings function."]
11933#[repr(C)]
11934#[derive(Debug, Copy, Clone)]
11935pub struct _tagEOS_Connect_QueryExternalAccountMappingsCallbackInfo {
11936    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
11937    pub ResultCode: EOS_EResult,
11938    #[doc = " Context that was passed into EOS_Connect_QueryExternalAccountMappings."]
11939    pub ClientData: *mut ::std::os::raw::c_void,
11940    #[doc = " The Product User ID of the existing, logged-in user who made the request."]
11941    pub LocalUserId: EOS_ProductUserId,
11942}
11943impl Default for _tagEOS_Connect_QueryExternalAccountMappingsCallbackInfo {
11944    fn default() -> Self {
11945        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11946        unsafe {
11947            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11948            s.assume_init()
11949        }
11950    }
11951}
11952#[doc = " Output parameters for the EOS_Connect_QueryExternalAccountMappings function."]
11953pub type EOS_Connect_QueryExternalAccountMappingsCallbackInfo =
11954    _tagEOS_Connect_QueryExternalAccountMappingsCallbackInfo;
11955#[doc = " Function prototype definition for callbacks passed to EOS_Connect_QueryExternalAccountMappings.\n\n @param Data A EOS_Connect_QueryExternalAccountMappingsCallbackInfo containing the output information and result."]
11956pub type EOS_Connect_OnQueryExternalAccountMappingsCallback = ::std::option::Option<
11957    unsafe extern "C" fn(Data: *const EOS_Connect_QueryExternalAccountMappingsCallbackInfo),
11958>;
11959#[doc = " Input parameters for the EOS_Connect_GetExternalAccountMapping function."]
11960#[repr(C)]
11961#[derive(Debug, Copy, Clone)]
11962pub struct _tagEOS_Connect_GetExternalAccountMappingsOptions {
11963    #[doc = " API Version: Set this to EOS_CONNECT_GETEXTERNALACCOUNTMAPPING_API_LATEST."]
11964    pub ApiVersion: i32,
11965    #[doc = " The Product User ID of the existing, logged-in user who is querying account mappings."]
11966    pub LocalUserId: EOS_ProductUserId,
11967    #[doc = " External auth service supplying the account IDs in string form."]
11968    pub AccountIdType: EOS_EExternalAccountType,
11969    #[doc = " Target user to retrieve the mapping for, as an external account ID."]
11970    pub TargetExternalUserId: *const ::std::os::raw::c_char,
11971}
11972impl Default for _tagEOS_Connect_GetExternalAccountMappingsOptions {
11973    fn default() -> Self {
11974        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11975        unsafe {
11976            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11977            s.assume_init()
11978        }
11979    }
11980}
11981#[doc = " Input parameters for the EOS_Connect_GetExternalAccountMapping function."]
11982pub type EOS_Connect_GetExternalAccountMappingsOptions =
11983    _tagEOS_Connect_GetExternalAccountMappingsOptions;
11984#[doc = " Input parameters for the EOS_Connect_QueryProductUserIdMappings function."]
11985#[repr(C)]
11986#[derive(Debug, Copy, Clone)]
11987pub struct _tagEOS_Connect_QueryProductUserIdMappingsOptions {
11988    #[doc = " API Version: Set this to EOS_CONNECT_QUERYPRODUCTUSERIDMAPPINGS_API_LATEST."]
11989    pub ApiVersion: i32,
11990    #[doc = " Game Clients set this field to the Product User ID of the local authenticated user querying account mappings.\n Game Servers set this field to NULL. Usage is allowed given that the configured client policy for server credentials permit it."]
11991    pub LocalUserId: EOS_ProductUserId,
11992    #[doc = " Deprecated - all external mappings are included in this call, it is no longer necessary to specify this value."]
11993    pub AccountIdType_DEPRECATED: EOS_EExternalAccountType,
11994    #[doc = " An array of Product User IDs to query for the given external account representation."]
11995    pub ProductUserIds: *mut EOS_ProductUserId,
11996    #[doc = " Number of Product User IDs to query."]
11997    pub ProductUserIdCount: u32,
11998}
11999impl Default for _tagEOS_Connect_QueryProductUserIdMappingsOptions {
12000    fn default() -> Self {
12001        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12002        unsafe {
12003            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12004            s.assume_init()
12005        }
12006    }
12007}
12008#[doc = " Input parameters for the EOS_Connect_QueryProductUserIdMappings function."]
12009pub type EOS_Connect_QueryProductUserIdMappingsOptions =
12010    _tagEOS_Connect_QueryProductUserIdMappingsOptions;
12011#[doc = " Output parameters for the EOS_Connect_QueryProductUserIdMappings function."]
12012#[repr(C)]
12013#[derive(Debug, Copy, Clone)]
12014pub struct _tagEOS_Connect_QueryProductUserIdMappingsCallbackInfo {
12015    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
12016    pub ResultCode: EOS_EResult,
12017    #[doc = " Context that was passed into EOS_Connect_QueryProductUserIdMappings."]
12018    pub ClientData: *mut ::std::os::raw::c_void,
12019    #[doc = " The local Product User ID that was passed with the input options."]
12020    pub LocalUserId: EOS_ProductUserId,
12021}
12022impl Default for _tagEOS_Connect_QueryProductUserIdMappingsCallbackInfo {
12023    fn default() -> Self {
12024        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12025        unsafe {
12026            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12027            s.assume_init()
12028        }
12029    }
12030}
12031#[doc = " Output parameters for the EOS_Connect_QueryProductUserIdMappings function."]
12032pub type EOS_Connect_QueryProductUserIdMappingsCallbackInfo =
12033    _tagEOS_Connect_QueryProductUserIdMappingsCallbackInfo;
12034#[doc = " Function prototype definition for callbacks passed to EOS_Connect_QueryProductUserIdMappings.\n\n @param Data A EOS_Connect_QueryProductUserIdMappingsCallbackInfo containing the output information and result."]
12035pub type EOS_Connect_OnQueryProductUserIdMappingsCallback = ::std::option::Option<
12036    unsafe extern "C" fn(Data: *const EOS_Connect_QueryProductUserIdMappingsCallbackInfo),
12037>;
12038#[doc = " Input parameters for the EOS_Connect_GetProductUserIdMapping function."]
12039#[repr(C)]
12040#[derive(Debug, Copy, Clone)]
12041pub struct _tagEOS_Connect_GetProductUserIdMappingOptions {
12042    #[doc = " API Version: Set this to EOS_CONNECT_GETPRODUCTUSERIDMAPPING_API_LATEST."]
12043    pub ApiVersion: i32,
12044    #[doc = " The Product User ID of the existing, logged-in user that is querying account mappings."]
12045    pub LocalUserId: EOS_ProductUserId,
12046    #[doc = " External auth service mapping to retrieve."]
12047    pub AccountIdType: EOS_EExternalAccountType,
12048    #[doc = " The Product User ID of the user whose information is being requested."]
12049    pub TargetProductUserId: EOS_ProductUserId,
12050}
12051impl Default for _tagEOS_Connect_GetProductUserIdMappingOptions {
12052    fn default() -> Self {
12053        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12054        unsafe {
12055            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12056            s.assume_init()
12057        }
12058    }
12059}
12060#[doc = " Input parameters for the EOS_Connect_GetProductUserIdMapping function."]
12061pub type EOS_Connect_GetProductUserIdMappingOptions =
12062    _tagEOS_Connect_GetProductUserIdMappingOptions;
12063#[doc = " Input parameters for the EOS_Connect_GetProductUserExternalAccountCount function."]
12064#[repr(C)]
12065#[derive(Debug, Copy, Clone)]
12066pub struct _tagEOS_Connect_GetProductUserExternalAccountCountOptions {
12067    #[doc = " API Version: Set this to EOS_CONNECT_GETPRODUCTUSEREXTERNALACCOUNTCOUNT_API_LATEST."]
12068    pub ApiVersion: i32,
12069    #[doc = " The Product User ID to look for when getting external account info count from the cache."]
12070    pub TargetUserId: EOS_ProductUserId,
12071}
12072impl Default for _tagEOS_Connect_GetProductUserExternalAccountCountOptions {
12073    fn default() -> Self {
12074        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12075        unsafe {
12076            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12077            s.assume_init()
12078        }
12079    }
12080}
12081#[doc = " Input parameters for the EOS_Connect_GetProductUserExternalAccountCount function."]
12082pub type EOS_Connect_GetProductUserExternalAccountCountOptions =
12083    _tagEOS_Connect_GetProductUserExternalAccountCountOptions;
12084#[doc = " Input parameters for the EOS_Connect_CopyProductUserExternalAccountByIndex function."]
12085#[repr(C)]
12086#[derive(Debug, Copy, Clone)]
12087pub struct _tagEOS_Connect_CopyProductUserExternalAccountByIndexOptions {
12088    #[doc = " API Version: Set this to EOS_CONNECT_COPYPRODUCTUSEREXTERNALACCOUNTBYINDEX_API_LATEST."]
12089    pub ApiVersion: i32,
12090    #[doc = " The Product User ID to look for when copying external account info from the cache."]
12091    pub TargetUserId: EOS_ProductUserId,
12092    #[doc = " Index of the external account info to retrieve from the cache."]
12093    pub ExternalAccountInfoIndex: u32,
12094}
12095impl Default for _tagEOS_Connect_CopyProductUserExternalAccountByIndexOptions {
12096    fn default() -> Self {
12097        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12098        unsafe {
12099            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12100            s.assume_init()
12101        }
12102    }
12103}
12104#[doc = " Input parameters for the EOS_Connect_CopyProductUserExternalAccountByIndex function."]
12105pub type EOS_Connect_CopyProductUserExternalAccountByIndexOptions =
12106    _tagEOS_Connect_CopyProductUserExternalAccountByIndexOptions;
12107#[doc = " Input parameters for the EOS_Connect_CopyProductUserExternalAccountByAccountType function."]
12108#[repr(C)]
12109#[derive(Debug, Copy, Clone)]
12110pub struct _tagEOS_Connect_CopyProductUserExternalAccountByAccountTypeOptions {
12111    #[doc = " API Version: Set this to EOS_CONNECT_COPYPRODUCTUSEREXTERNALACCOUNTBYACCOUNTTYPE_API_LATEST."]
12112    pub ApiVersion: i32,
12113    #[doc = " The Product User ID to look for when copying external account info from the cache."]
12114    pub TargetUserId: EOS_ProductUserId,
12115    #[doc = " External auth service account type to look for when copying external account info from the cache."]
12116    pub AccountIdType: EOS_EExternalAccountType,
12117}
12118impl Default for _tagEOS_Connect_CopyProductUserExternalAccountByAccountTypeOptions {
12119    fn default() -> Self {
12120        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12121        unsafe {
12122            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12123            s.assume_init()
12124        }
12125    }
12126}
12127#[doc = " Input parameters for the EOS_Connect_CopyProductUserExternalAccountByAccountType function."]
12128pub type EOS_Connect_CopyProductUserExternalAccountByAccountTypeOptions =
12129    _tagEOS_Connect_CopyProductUserExternalAccountByAccountTypeOptions;
12130#[doc = " Input parameters for the EOS_Connect_CopyProductUserExternalAccountByAccountId function."]
12131#[repr(C)]
12132#[derive(Debug, Copy, Clone)]
12133pub struct _tagEOS_Connect_CopyProductUserExternalAccountByAccountIdOptions {
12134    #[doc = " API Version: Set this to EOS_CONNECT_COPYPRODUCTUSEREXTERNALACCOUNTBYACCOUNTID_API_LATEST."]
12135    pub ApiVersion: i32,
12136    #[doc = " The Product User ID to look for when copying external account info from the cache."]
12137    pub TargetUserId: EOS_ProductUserId,
12138    #[doc = " External auth service account ID to look for when copying external account info from the cache."]
12139    pub AccountId: *const ::std::os::raw::c_char,
12140}
12141impl Default for _tagEOS_Connect_CopyProductUserExternalAccountByAccountIdOptions {
12142    fn default() -> Self {
12143        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12144        unsafe {
12145            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12146            s.assume_init()
12147        }
12148    }
12149}
12150#[doc = " Input parameters for the EOS_Connect_CopyProductUserExternalAccountByAccountId function."]
12151pub type EOS_Connect_CopyProductUserExternalAccountByAccountIdOptions =
12152    _tagEOS_Connect_CopyProductUserExternalAccountByAccountIdOptions;
12153#[doc = " Input parameters for the EOS_Connect_CopyProductUserInfo function."]
12154#[repr(C)]
12155#[derive(Debug, Copy, Clone)]
12156pub struct _tagEOS_Connect_CopyProductUserInfoOptions {
12157    #[doc = " API Version: Set this to EOS_CONNECT_COPYPRODUCTUSERINFO_API_LATEST."]
12158    pub ApiVersion: i32,
12159    #[doc = " Product user ID to look for when copying external account info from the cache."]
12160    pub TargetUserId: EOS_ProductUserId,
12161}
12162impl Default for _tagEOS_Connect_CopyProductUserInfoOptions {
12163    fn default() -> Self {
12164        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12165        unsafe {
12166            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12167            s.assume_init()
12168        }
12169    }
12170}
12171#[doc = " Input parameters for the EOS_Connect_CopyProductUserInfo function."]
12172pub type EOS_Connect_CopyProductUserInfoOptions = _tagEOS_Connect_CopyProductUserInfoOptions;
12173#[doc = " Contains information about an external account linked with a Product User ID."]
12174#[repr(C)]
12175#[derive(Debug, Copy, Clone)]
12176pub struct _tagEOS_Connect_ExternalAccountInfo {
12177    #[doc = " API Version: Set this to EOS_CONNECT_EXTERNALACCOUNTINFO_API_LATEST."]
12178    pub ApiVersion: i32,
12179    #[doc = " The Product User ID of the target user."]
12180    pub ProductUserId: EOS_ProductUserId,
12181    #[doc = " Display name, can be null if not set."]
12182    pub DisplayName: *const ::std::os::raw::c_char,
12183    #[doc = " External account ID.\n\n May be set to an empty string if the AccountIdType of another user belongs\n to different account system than the local user's authenticated account.\n The availability of this field is dependent on account system specifics."]
12184    pub AccountId: *const ::std::os::raw::c_char,
12185    #[doc = " The identity provider that owns the external account."]
12186    pub AccountIdType: EOS_EExternalAccountType,
12187    #[doc = " The POSIX timestamp for the time the user last logged in, or EOS_CONNECT_TIME_UNDEFINED."]
12188    pub LastLoginTime: i64,
12189}
12190impl Default for _tagEOS_Connect_ExternalAccountInfo {
12191    fn default() -> Self {
12192        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12193        unsafe {
12194            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12195            s.assume_init()
12196        }
12197    }
12198}
12199#[doc = " Contains information about an external account linked with a Product User ID."]
12200pub type EOS_Connect_ExternalAccountInfo = _tagEOS_Connect_ExternalAccountInfo;
12201unsafe extern "C" {
12202    #[doc = " Release the memory associated with an external account info. This must be called on data retrieved from\n EOS_Connect_CopyProductUserExternalAccountByIndex, EOS_Connect_CopyProductUserExternalAccountByAccountType,\n EOS_Connect_CopyProductUserExternalAccountByAccountId or EOS_Connect_CopyProductUserInfo.\n\n @param ExternalAccountInfo The external account info data to release.\n\n @see EOS_Connect_CopyProductUserExternalAccountByIndex\n @see EOS_Connect_CopyProductUserExternalAccountByAccountType\n @see EOS_Connect_CopyProductUserExternalAccountByAccountId\n @see EOS_Connect_CopyProductUserInfo"]
12203    pub fn EOS_Connect_ExternalAccountInfo_Release(
12204        ExternalAccountInfo: *mut EOS_Connect_ExternalAccountInfo,
12205    );
12206}
12207#[doc = " Structure containing information for the auth expiration notification callback."]
12208#[repr(C)]
12209#[derive(Debug, Default, Copy, Clone)]
12210pub struct _tagEOS_Connect_AddNotifyAuthExpirationOptions {
12211    #[doc = " API Version: Set this to EOS_CONNECT_ADDNOTIFYAUTHEXPIRATION_API_LATEST."]
12212    pub ApiVersion: i32,
12213}
12214#[doc = " Structure containing information for the auth expiration notification callback."]
12215pub type EOS_Connect_AddNotifyAuthExpirationOptions =
12216    _tagEOS_Connect_AddNotifyAuthExpirationOptions;
12217#[doc = " Output parameters for the EOS_Connect_OnAuthExpirationCallback function."]
12218#[repr(C)]
12219#[derive(Debug, Copy, Clone)]
12220pub struct _tagEOS_Connect_AuthExpirationCallbackInfo {
12221    #[doc = " Context that was passed into EOS_Connect_AddNotifyAuthExpiration."]
12222    pub ClientData: *mut ::std::os::raw::c_void,
12223    #[doc = " The Product User ID of the local player whose status has changed."]
12224    pub LocalUserId: EOS_ProductUserId,
12225}
12226impl Default for _tagEOS_Connect_AuthExpirationCallbackInfo {
12227    fn default() -> Self {
12228        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12229        unsafe {
12230            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12231            s.assume_init()
12232        }
12233    }
12234}
12235#[doc = " Output parameters for the EOS_Connect_OnAuthExpirationCallback function."]
12236pub type EOS_Connect_AuthExpirationCallbackInfo = _tagEOS_Connect_AuthExpirationCallbackInfo;
12237#[doc = " Function prototype definition for notifications that come from EOS_Connect_AddNotifyAuthExpiration.\n\n @param Data A EOS_Connect_AuthExpirationCallbackInfo containing the output information and result."]
12238pub type EOS_Connect_OnAuthExpirationCallback = ::std::option::Option<
12239    unsafe extern "C" fn(Data: *const EOS_Connect_AuthExpirationCallbackInfo),
12240>;
12241#[doc = " Structure containing information or the connect user login status change callback."]
12242#[repr(C)]
12243#[derive(Debug, Default, Copy, Clone)]
12244pub struct _tagEOS_Connect_AddNotifyLoginStatusChangedOptions {
12245    #[doc = " API Version: Set this to EOS_CONNECT_ADDNOTIFYLOGINSTATUSCHANGED_API_LATEST."]
12246    pub ApiVersion: i32,
12247}
12248#[doc = " Structure containing information or the connect user login status change callback."]
12249pub type EOS_Connect_AddNotifyLoginStatusChangedOptions =
12250    _tagEOS_Connect_AddNotifyLoginStatusChangedOptions;
12251#[doc = " Output parameters for the EOS_Connect_OnLoginStatusChangedCallback function."]
12252#[repr(C)]
12253#[derive(Debug, Copy, Clone)]
12254pub struct _tagEOS_Connect_LoginStatusChangedCallbackInfo {
12255    #[doc = " Context that was passed into EOS_Connect_AddNotifyLoginStatusChanged."]
12256    pub ClientData: *mut ::std::os::raw::c_void,
12257    #[doc = " The Product User ID of the local player whose status has changed."]
12258    pub LocalUserId: EOS_ProductUserId,
12259    #[doc = " The status prior to the change."]
12260    pub PreviousStatus: EOS_ELoginStatus,
12261    #[doc = " The status at the time of the notification."]
12262    pub CurrentStatus: EOS_ELoginStatus,
12263}
12264impl Default for _tagEOS_Connect_LoginStatusChangedCallbackInfo {
12265    fn default() -> Self {
12266        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12267        unsafe {
12268            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12269            s.assume_init()
12270        }
12271    }
12272}
12273#[doc = " Output parameters for the EOS_Connect_OnLoginStatusChangedCallback function."]
12274pub type EOS_Connect_LoginStatusChangedCallbackInfo =
12275    _tagEOS_Connect_LoginStatusChangedCallbackInfo;
12276#[doc = " Function prototype definition for notifications that come from EOS_Connect_AddNotifyLoginStatusChanged.\n\n @param Data A EOS_Connect_LoginStatusChangedCallbackInfo containing the output information and result."]
12277pub type EOS_Connect_OnLoginStatusChangedCallback = ::std::option::Option<
12278    unsafe extern "C" fn(Data: *const EOS_Connect_LoginStatusChangedCallbackInfo),
12279>;
12280#[doc = " A structure that contains an ID token.\n These structures are created by EOS_Connect_CopyIdToken and must be passed to EOS_Connect_IdToken_Release."]
12281#[repr(C)]
12282#[derive(Debug, Copy, Clone)]
12283pub struct _tagEOS_Connect_IdToken {
12284    #[doc = " API Version: Set this to EOS_CONNECT_IDTOKEN_API_LATEST."]
12285    pub ApiVersion: i32,
12286    #[doc = " The Product User ID described by the ID token.\n Use EOS_ProductUserId_FromString to populate this field when validating a received ID token."]
12287    pub ProductUserId: EOS_ProductUserId,
12288    #[doc = " The ID token as a Json Web Token (JWT) string."]
12289    pub JsonWebToken: *const ::std::os::raw::c_char,
12290}
12291impl Default for _tagEOS_Connect_IdToken {
12292    fn default() -> Self {
12293        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12294        unsafe {
12295            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12296            s.assume_init()
12297        }
12298    }
12299}
12300#[doc = " A structure that contains an ID token.\n These structures are created by EOS_Connect_CopyIdToken and must be passed to EOS_Connect_IdToken_Release."]
12301pub type EOS_Connect_IdToken = _tagEOS_Connect_IdToken;
12302unsafe extern "C" {
12303    #[doc = " Release the memory associated with an EOS_Connect_IdToken structure. This must be called on data retrieved from EOS_Connect_CopyIdToken.\n\n @param IdToken The ID token structure to be released.\n\n @see EOS_Connect_IdToken\n @see EOS_Connect_CopyIdToken"]
12304    pub fn EOS_Connect_IdToken_Release(IdToken: *mut EOS_Connect_IdToken);
12305}
12306#[doc = " Input parameters for the EOS_Connect_CopyIdToken function."]
12307#[repr(C)]
12308#[derive(Debug, Copy, Clone)]
12309pub struct _tagEOS_Connect_CopyIdTokenOptions {
12310    #[doc = " API Version: Set this to EOS_CONNECT_COPYIDTOKEN_API_LATEST."]
12311    pub ApiVersion: i32,
12312    #[doc = " The local Product User ID whose ID token should be copied."]
12313    pub LocalUserId: EOS_ProductUserId,
12314}
12315impl Default for _tagEOS_Connect_CopyIdTokenOptions {
12316    fn default() -> Self {
12317        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12318        unsafe {
12319            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12320            s.assume_init()
12321        }
12322    }
12323}
12324#[doc = " Input parameters for the EOS_Connect_CopyIdToken function."]
12325pub type EOS_Connect_CopyIdTokenOptions = _tagEOS_Connect_CopyIdTokenOptions;
12326#[doc = " Input parameters for the EOS_Connect_VerifyIdToken function."]
12327#[repr(C)]
12328#[derive(Debug, Copy, Clone)]
12329pub struct _tagEOS_Connect_VerifyIdTokenOptions {
12330    #[doc = " API Version: Set this to EOS_CONNECT_VERIFYIDTOKEN_API_LATEST."]
12331    pub ApiVersion: i32,
12332    #[doc = " The ID token to verify.\n Use EOS_ProductUserId_FromString to populate the ProductUserId field of this struct."]
12333    pub IdToken: *const EOS_Connect_IdToken,
12334}
12335impl Default for _tagEOS_Connect_VerifyIdTokenOptions {
12336    fn default() -> Self {
12337        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12338        unsafe {
12339            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12340            s.assume_init()
12341        }
12342    }
12343}
12344#[doc = " Input parameters for the EOS_Connect_VerifyIdToken function."]
12345pub type EOS_Connect_VerifyIdTokenOptions = _tagEOS_Connect_VerifyIdTokenOptions;
12346#[doc = " Output parameters for the EOS_Connect_VerifyIdToken Function."]
12347#[repr(C)]
12348#[derive(Debug, Copy, Clone)]
12349pub struct _tagEOS_Connect_VerifyIdTokenCallbackInfo {
12350    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
12351    pub ResultCode: EOS_EResult,
12352    #[doc = " Context that was passed into EOS_Connect_VerifyIdToken"]
12353    pub ClientData: *mut ::std::os::raw::c_void,
12354    #[doc = " The Product User ID associated with the ID token."]
12355    pub ProductUserId: EOS_ProductUserId,
12356    #[doc = " Flag set to indicate whether account information is available.\n Applications must always first check this value to be set before attempting\n to read the AccountType, AccountId, Platform and DeviceType fields.\n\n This flag is always false for users that authenticated using EOS Connect Device ID."]
12357    pub bIsAccountInfoPresent: EOS_Bool,
12358    #[doc = " The identity provider that the user authenticated with to EOS Connect.\n\n If bIsAccountInfoPresent is set, this field describes the external account type."]
12359    pub AccountIdType: EOS_EExternalAccountType,
12360    #[doc = " The external account ID of the authenticated user.\n\n This value may be set to an empty string."]
12361    pub AccountId: *const ::std::os::raw::c_char,
12362    #[doc = " Platform that the user is connected from.\n\n This value may be set to an empty string."]
12363    pub Platform: *const ::std::os::raw::c_char,
12364    #[doc = " Identifies the device type that the user is connected from.\n Can be used to securely verify that the user is connected through a real Console device.\n\n This value may be set to an empty string."]
12365    pub DeviceType: *const ::std::os::raw::c_char,
12366    #[doc = " Client ID of the authorized client."]
12367    pub ClientId: *const ::std::os::raw::c_char,
12368    #[doc = " Product ID."]
12369    pub ProductId: *const ::std::os::raw::c_char,
12370    #[doc = " Sandbox ID."]
12371    pub SandboxId: *const ::std::os::raw::c_char,
12372    #[doc = " Deployment ID."]
12373    pub DeploymentId: *const ::std::os::raw::c_char,
12374}
12375impl Default for _tagEOS_Connect_VerifyIdTokenCallbackInfo {
12376    fn default() -> Self {
12377        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12378        unsafe {
12379            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12380            s.assume_init()
12381        }
12382    }
12383}
12384#[doc = " Output parameters for the EOS_Connect_VerifyIdToken Function."]
12385pub type EOS_Connect_VerifyIdTokenCallbackInfo = _tagEOS_Connect_VerifyIdTokenCallbackInfo;
12386#[doc = " Function prototype definition for callbacks passed into EOS_Connect_VerifyIdToken.\n\n @param Data A EOS_Connect_VerifyIdTokenCallbackInfo containing the output information and result."]
12387pub type EOS_Connect_OnVerifyIdTokenCallback =
12388    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Connect_VerifyIdTokenCallbackInfo)>;
12389unsafe extern "C" {
12390    #[doc = " Login/Authenticate given a valid set of external auth credentials.\n\n @param Options structure containing the external account credentials and type to use during the login operation.\n @param ClientData arbitrary data that is passed back to you in the CompletionDelegate.\n @param CompletionDelegate a callback that is fired when the login operation completes, either successfully or in error.\n\n @see EOS_Connect_LoginOptions\n @see EOS_Connect_OnLoginCallback"]
12391    pub fn EOS_Connect_Login(
12392        Handle: EOS_HConnect,
12393        Options: *const EOS_Connect_LoginOptions,
12394        ClientData: *mut ::std::os::raw::c_void,
12395        CompletionDelegate: EOS_Connect_OnLoginCallback,
12396    );
12397}
12398unsafe extern "C" {
12399    #[doc = " Logout a currently logged in user.\n NOTE: Access tokens for Product User IDs cannot be revoked. This operation really just cleans up state for the Product User ID and locally discards any associated access token.\n\n @param Options Structure containing the input parameters for the operation\n @param ClientData Arbitrary data that is passed back to the caller in the CompletionDelegate.\n @param CompletionDelegate A callback that is fired when the operation completes, either successfully or in error.\n\n @see EOS_Connect_LogoutOptions\n @see EOS_Connect_OnLogoutCallback"]
12400    pub fn EOS_Connect_Logout(
12401        Handle: EOS_HConnect,
12402        Options: *const EOS_Connect_LogoutOptions,
12403        ClientData: *mut ::std::os::raw::c_void,
12404        CompletionDelegate: EOS_Connect_OnLogoutCallback,
12405    );
12406}
12407unsafe extern "C" {
12408    #[doc = " Create an account association with the Epic Online Service as a product user given their external auth credentials.\n\n @param Options structure containing a continuance token from a \"user not found\" response during Login (always try login first).\n @param ClientData arbitrary data that is passed back to you in the CompletionDelegate.\n @param CompletionDelegate a callback that is fired when the create operation completes, either successfully or in error.\n\n @see EOS_Connect_CreateUserOptions\n @see EOS_Connect_OnCreateUserCallback"]
12409    pub fn EOS_Connect_CreateUser(
12410        Handle: EOS_HConnect,
12411        Options: *const EOS_Connect_CreateUserOptions,
12412        ClientData: *mut ::std::os::raw::c_void,
12413        CompletionDelegate: EOS_Connect_OnCreateUserCallback,
12414    );
12415}
12416unsafe extern "C" {
12417    #[doc = " Link a set of external auth credentials with an existing product user on the Epic Online Service.\n\n @param Options structure containing a continuance token from a \"user not found\" response during Login (always try login first) and a currently logged in user not already associated with this external auth provider.\n @param ClientData arbitrary data that is passed back to you in the CompletionDelegate.\n @param CompletionDelegate a callback that is fired when the link operation completes, either successfully or in error.\n\n @see EOS_Connect_LinkAccountOptions\n @see EOS_Connect_OnLinkAccountCallback"]
12418    pub fn EOS_Connect_LinkAccount(
12419        Handle: EOS_HConnect,
12420        Options: *const EOS_Connect_LinkAccountOptions,
12421        ClientData: *mut ::std::os::raw::c_void,
12422        CompletionDelegate: EOS_Connect_OnLinkAccountCallback,
12423    );
12424}
12425unsafe extern "C" {
12426    #[doc = " Unlink external auth credentials from the owning keychain of a logged in product user.\n\n This function allows recovering the user from scenarios where they have accidentally proceeded to creating\n a new product user for the local native user account, instead of linking it with an existing keychain that\n they have previously created by playing the game (or another game owned by the organization) on another platform.\n\n In such scenario, after the initial platform login and a new product user creation, the user wishes to re-login\n using other set of external auth credentials to connect with their existing game progression data. In order to\n allow automatic login also on the current platform, they will need to unlink the accidentally created new keychain\n and product user and then use the EOS_Connect_Login and EOS_Connect_LinkAccount APIs to link the local native platform\n account with that previously created existing product user and its owning keychain.\n\n In another scenario, the user may simply want to disassociate the account that they have logged in with from the current\n keychain that it is linked with, perhaps to link it against another keychain or to separate the game progressions again.\n\n In order to protect against account theft, it is only possible to unlink user accounts that have been authenticated\n and logged in to the product user in the current session. This prevents a malicious actor from gaining access to one\n of the linked accounts and using it to remove all other accounts linked with the keychain. This also prevents a malicious\n actor from replacing the unlinked account with their own corresponding account on the same platform, as the unlinking\n operation will ensure that any existing authentication session cannot be used to re-link and overwrite the entry without\n authenticating with one of the other linked accounts in the keychain. These restrictions limit the potential attack surface\n related to account theft scenarios.\n\n @param Options structure containing operation input parameters.\n @param ClientData arbitrary data that is passed back to you in the CompletionDelegate.\n @param CompletionDelegate a callback that is fired when the unlink operation completes, either successfully or in error.\n\n @see EOS_Connect_UnlinkAccountOptions\n @see EOS_Connect_OnUnlinkAccountCallback"]
12427    pub fn EOS_Connect_UnlinkAccount(
12428        Handle: EOS_HConnect,
12429        Options: *const EOS_Connect_UnlinkAccountOptions,
12430        ClientData: *mut ::std::os::raw::c_void,
12431        CompletionDelegate: EOS_Connect_OnUnlinkAccountCallback,
12432    );
12433}
12434unsafe extern "C" {
12435    #[doc = " Create a new unique pseudo-account that can be used to identify the current user profile on the local device.\n\n This function is intended to be used by mobile games and PC games that wish to allow\n a new user to start playing without requiring to login to the game using any user identity.\n In addition to this, the Device ID feature is used to automatically login the local user\n also when they have linked at least one external user account(s) with the local Device ID.\n\n It is possible to link many devices with the same user's account keyring using the Device ID feature.\n\n Linking a device later or immediately with a real user account will ensure that the player\n will not lose their progress if they switch devices or lose the device at some point,\n as they will be always able to login with one of their linked real accounts and also link\n another new device with the user account associations keychain. Otherwise, without having\n at least one permanent user account linked to the Device ID, the player would lose all of their\n game data and progression permanently should something happen to their device or the local\n user profile on the device.\n\n After a successful one-time CreateDeviceId operation, the game can login the local user\n automatically on subsequent game starts with EOS_Connect_Login using the EOS_ECT_DEVICEID_ACCESS_TOKEN\n credentials type. If a Device ID already exists for the local user on the device then EOS_DuplicateNotAllowed\n error result is returned and the caller should proceed to calling EOS_Connect_Login directly.\n\n @param Options structure containing operation input parameters.\n @param ClientData arbitrary data that is passed back to you in the CompletionDelegate.\n @param CompletionDelegate a callback that is fired when the create operation completes, either successfully or in error.\n\n @see EOS_Connect_CreateDeviceIdOptions\n @see EOS_Connect_OnCreateDeviceIdCallback"]
12436    pub fn EOS_Connect_CreateDeviceId(
12437        Handle: EOS_HConnect,
12438        Options: *const EOS_Connect_CreateDeviceIdOptions,
12439        ClientData: *mut ::std::os::raw::c_void,
12440        CompletionDelegate: EOS_Connect_OnCreateDeviceIdCallback,
12441    );
12442}
12443unsafe extern "C" {
12444    #[doc = " Delete any existing Device ID access credentials for the current user profile on the local device.\n\n The deletion is permanent and it is not possible to recover lost game data and progression\n if the Device ID had not been linked with at least one real external user account.\n\n On Android and iOS devices, uninstalling the application will automatically delete any local\n Device ID credentials created by the application.\n\n On Desktop platforms (Linux, macOS, Windows), Device ID credentials are not automatically deleted.\n Applications may re-use existing Device ID credentials for the local OS user when the application is\n re-installed, or call the DeleteDeviceId API on the first run to ensure a fresh start for the user.\n\n @param Options structure containing operation input parameters\n @param ClientData arbitrary data that is passed back to you in the CompletionDelegate\n @param CompletionDelegate a callback that is fired when the delete operation completes, either successfully or in error\n\n @see EOS_Connect_DeleteDeviceIdOptions\n @see EOS_Connect_OnDeleteDeviceIdCallback"]
12445    pub fn EOS_Connect_DeleteDeviceId(
12446        Handle: EOS_HConnect,
12447        Options: *const EOS_Connect_DeleteDeviceIdOptions,
12448        ClientData: *mut ::std::os::raw::c_void,
12449        CompletionDelegate: EOS_Connect_OnDeleteDeviceIdCallback,
12450    );
12451}
12452unsafe extern "C" {
12453    #[doc = " Transfer a Device ID pseudo-account and the product user associated with it into another\n keychain linked with real user accounts (such as Epic Games, PlayStation(TM)Network, Xbox Live, and other).\n\n This function allows transferring a product user, i.e. the local user's game progression\n backend data from a Device ID owned keychain into a keychain with real user accounts\n linked to it. The transfer of Device ID owned product user into a keychain of real user\n accounts allows persisting the user's game data on the backend in the event that they\n would lose access to the local device or otherwise switch to another device or platform.\n\n This function is only applicable in the situation of where the local user first plays\n the game using the anonymous Device ID login, then later logs in using a real user\n account that they have also already used to play the same game or another game under the\n same organization within Epic Online Services. In such situation, while normally the login\n attempt with a real user account would return EOS_InvalidUser and an EOS_ContinuanceToken\n and allow calling the EOS_Connect_LinkAccount API to link it with the Device ID's keychain,\n instead the login operation succeeds and finds an existing user because the association\n already exists. Because the user cannot have two product users simultaneously to play with,\n the game should prompt the user to choose which profile to keep and which one to discard\n permanently. Based on the user choice, the game may then proceed to transfer the Device ID\n login into the keychain that is persistent and backed by real user accounts, and if the user\n chooses so, move the product user as well into the destination keychain and overwrite the\n existing previous product user with it. To clarify, moving the product user with the Device ID\n login in this way into a persisted keychain allows to preserve the so far only locally persisted\n game progression and thus protect the user against a case where they lose access to the device.\n\n On success, the completion callback will return the preserved EOS_ProductUserId that remains\n logged in while the discarded EOS_ProductUserId has been invalidated and deleted permanently.\n Consecutive logins using the existing Device ID login type or the external account will\n connect the user to the same backend data belonging to the preserved EOS_ProductUserId.\n\n Example walkthrough: Cross-platform mobile game using the anonymous Device ID login.\n\n For onboarding new users, the game will attempt to always automatically login the local user\n by calling EOS_Connect_Login using the EOS_ECT_DEVICEID_ACCESS_TOKEN login type. If the local\n Device ID credentials are not found, and the game wants a frictionless entry for the first time\n user experience, the game will automatically call EOS_Connect_CreateDeviceId to create new\n Device ID pseudo-account and then login the local user into it. Consecutive game starts will\n thus automatically login the user to their locally persisted Device ID account.\n\n The user starts playing anonymously using the Device ID login type and makes significant game progress.\n Later, they login using an external account that they have already used previously for the\n same game perhaps on another platform, or another game owned by the same organization.\n In such case, EOS_Connect_Login will automatically login the user to their existing account\n linking keychain and create automatically a new empty product user for this product.\n\n In order for the user to use their existing previously created keychain and have the locally\n created Device ID login reference to that keychain instead, the user's current product user\n needs to be moved to be under that keychain so that their existing game progression will be\n preserved. To do so, the game can call EOS_Connect_TransferDeviceIdAccount to transfer the\n Device ID login and the product user associated with it into the other keychain that has real\n external user account(s) linked to it. Note that it is important that the game either automatically\n checks that the other product user does not have any meaningful progression data, or otherwise\n will prompt the user to make the choice on which game progression to preserve and which can\n be discarded permanently. The other product user will be discarded permanently and cannot be\n recovered, so it is very important that the user is guided to make the right choice to avoid\n accidental loss of all game progression.\n\n @see EOS_Connect_TransferDeviceIdAccountOptions\n @see EOS_Connect_OnTransferDeviceIdAccountCallback\n @see EOS_Connect_Login\n @see EOS_Connect_CreateDeviceId\n\n @param Options structure containing the logged in product users and specifying which one will be preserved.\n @param ClientData arbitrary data that is passed back to you in the CompletionDelegate.\n @param CompletionDelegate a callback that is fired when the transfer operation completes, either successfully or in error."]
12454    pub fn EOS_Connect_TransferDeviceIdAccount(
12455        Handle: EOS_HConnect,
12456        Options: *const EOS_Connect_TransferDeviceIdAccountOptions,
12457        ClientData: *mut ::std::os::raw::c_void,
12458        CompletionDelegate: EOS_Connect_OnTransferDeviceIdAccountCallback,
12459    );
12460}
12461unsafe extern "C" {
12462    #[doc = " Retrieve the equivalent Product User IDs from a list of external account IDs from supported account providers.\n The values will be cached and retrievable through EOS_Connect_GetExternalAccountMapping.\n\n @note A common use case is to query other users who are connected through the same account system as the local user.\n Queries using external account IDs of another account system may not be available, depending on the account system specifics.\n\n @param Options structure containing a list of external account IDs, in string form, to query for the Product User ID representation.\n @param ClientData arbitrary data that is passed back to you in the CompletionDelegate.\n @param CompletionDelegate a callback that is fired when the query operation completes, either successfully or in error.\n\n @see EOS_Connect_QueryExternalAccountMappingsOptions\n @see EOS_Connect_OnQueryExternalAccountMappingsCallback"]
12463    pub fn EOS_Connect_QueryExternalAccountMappings(
12464        Handle: EOS_HConnect,
12465        Options: *const EOS_Connect_QueryExternalAccountMappingsOptions,
12466        ClientData: *mut ::std::os::raw::c_void,
12467        CompletionDelegate: EOS_Connect_OnQueryExternalAccountMappingsCallback,
12468    );
12469}
12470unsafe extern "C" {
12471    #[doc = " Retrieve the equivalent external account mappings from a list of Product User IDs.\n\n The values will be cached and retrievable via EOS_Connect_GetProductUserIdMapping, EOS_Connect_CopyProductUserExternalAccountByIndex,\n EOS_Connect_CopyProductUserExternalAccountByAccountType or EOS_Connect_CopyProductUserExternalAccountByAccountId.\n\n @see EOS_Connect_QueryProductUserIdMappingsOptions\n @see EOS_Connect_OnQueryProductUserIdMappingsCallback\n @see EOS_Connect_ExternalAccountInfo\n @see EOS_Connect_GetProductUserExternalAccountCount\n @see EOS_Connect_GetProductUserIdMapping\n @see EOS_Connect_CopyProductUserExternalAccountByIndex\n @see EOS_Connect_CopyProductUserExternalAccountByAccountType\n @see EOS_Connect_CopyProductUserExternalAccountByAccountId\n @see EOS_Connect_CopyProductUserInfo\n\n @param Options structure containing a list of Product User IDs to query for the external account representation.\n @param ClientData arbitrary data that is passed back to you in the CompletionDelegate.\n @param CompletionDelegate a callback that is fired when the query operation completes, either successfully or in error."]
12472    pub fn EOS_Connect_QueryProductUserIdMappings(
12473        Handle: EOS_HConnect,
12474        Options: *const EOS_Connect_QueryProductUserIdMappingsOptions,
12475        ClientData: *mut ::std::os::raw::c_void,
12476        CompletionDelegate: EOS_Connect_OnQueryProductUserIdMappingsCallback,
12477    );
12478}
12479unsafe extern "C" {
12480    #[doc = " Fetch a Product User ID that maps to an external account ID cached from a previous query.\n\n @param Options structure containing the local user and target external account ID.\n\n @see EOS_Connect_GetExternalAccountMappingsOptions\n\n @return The Product User ID, previously retrieved from the backend service, for the given target external account."]
12481    pub fn EOS_Connect_GetExternalAccountMapping(
12482        Handle: EOS_HConnect,
12483        Options: *const EOS_Connect_GetExternalAccountMappingsOptions,
12484    ) -> EOS_ProductUserId;
12485}
12486unsafe extern "C" {
12487    #[doc = " Fetch an external account ID, in string form, that maps to a given Product User ID.\n\n @param Options structure containing the local user and target Product User ID.\n @param OutBuffer The buffer into which the external account ID data should be written. The buffer must be long enough to hold a string of EOS_CONNECT_EXTERNAL_ACCOUNT_ID_MAX_LENGTH.\n @param InOutBufferLength The size of the OutBuffer in characters.\n                          The input buffer should include enough space to be null-terminated.\n                          When the function returns, this parameter will be filled with the length of the string copied into OutBuffer.\n\n @see EOS_Connect_GetProductUserIdMappingOptions\n\n @return An EOS_EResult that indicates the external account ID was copied into the OutBuffer.\n - EOS_Success if the information is available and passed out in OutUserInfo.\n - EOS_InvalidParameters if you pass a null pointer for the out parameter.\n - EOS_NotFound if the mapping doesn't exist or hasn't been queried yet.\n - EOS_LimitExceeded if the OutBuffer is not large enough to receive the external account ID. InOutBufferLength contains the required minimum length to perform the operation successfully."]
12488    pub fn EOS_Connect_GetProductUserIdMapping(
12489        Handle: EOS_HConnect,
12490        Options: *const EOS_Connect_GetProductUserIdMappingOptions,
12491        OutBuffer: *mut ::std::os::raw::c_char,
12492        InOutBufferLength: *mut i32,
12493    ) -> EOS_EResult;
12494}
12495unsafe extern "C" {
12496    #[doc = " Fetch the number of linked external accounts for a Product User ID.\n\n @param Options The Options associated with retrieving the external account info count.\n\n @see EOS_Connect_GetProductUserExternalAccountCountOptions\n @see EOS_Connect_CopyProductUserExternalAccountByIndex\n\n @return Number of external accounts or 0 otherwise."]
12497    pub fn EOS_Connect_GetProductUserExternalAccountCount(
12498        Handle: EOS_HConnect,
12499        Options: *const EOS_Connect_GetProductUserExternalAccountCountOptions,
12500    ) -> u32;
12501}
12502unsafe extern "C" {
12503    #[doc = " Fetch information about an external account linked to a Product User ID.\n On a successful call, the caller must release the returned structure using the EOS_Connect_ExternalAccountInfo_Release API.\n\n @param Options Structure containing the target index.\n @param OutExternalAccountInfo The external account info data for the user with given index.\n\n @see EOS_Connect_CopyProductUserExternalAccountByIndexOptions\n @see EOS_Connect_ExternalAccountInfo\n @see EOS_Connect_ExternalAccountInfo_Release\n\n @return An EOS_EResult that indicates the external account data was copied into the OutExternalAccountInfo.\n - EOS_Success if the information is available and passed out in OutExternalAccountInfo.\n - EOS_InvalidParameters if you pass a null pointer for the out parameter.\n - EOS_NotFound if the account data doesn't exist or hasn't been queried yet."]
12504    pub fn EOS_Connect_CopyProductUserExternalAccountByIndex(
12505        Handle: EOS_HConnect,
12506        Options: *const EOS_Connect_CopyProductUserExternalAccountByIndexOptions,
12507        OutExternalAccountInfo: *mut *mut EOS_Connect_ExternalAccountInfo,
12508    ) -> EOS_EResult;
12509}
12510unsafe extern "C" {
12511    #[doc = " Fetch information about an external account of a specific type linked to a Product User ID.\n On a successful call, the caller must release the returned structure using the EOS_Connect_ExternalAccountInfo_Release API.\n\n @param Options Structure containing the target external account type.\n @param OutExternalAccountInfo The external account info data for the user with given external account type.\n\n @see EOS_Connect_CopyProductUserExternalAccountByAccountTypeOptions\n @see EOS_Connect_ExternalAccountInfo\n @see EOS_Connect_ExternalAccountInfo_Release\n\n @return An EOS_EResult that indicates the external account data was copied into the OutExternalAccountInfo.\n - EOS_Success if the information is available and passed out in OutExternalAccountInfo.\n - EOS_InvalidParameters if you pass a null pointer for the out parameter.\n - EOS_NotFound if the account data doesn't exist or hasn't been queried yet."]
12512    pub fn EOS_Connect_CopyProductUserExternalAccountByAccountType(
12513        Handle: EOS_HConnect,
12514        Options: *const EOS_Connect_CopyProductUserExternalAccountByAccountTypeOptions,
12515        OutExternalAccountInfo: *mut *mut EOS_Connect_ExternalAccountInfo,
12516    ) -> EOS_EResult;
12517}
12518unsafe extern "C" {
12519    #[doc = " Fetch information about an external account linked to a Product User ID.\n On a successful call, the caller must release the returned structure using the EOS_Connect_ExternalAccountInfo_Release API.\n\n @param Options Structure containing the target external account ID.\n @param OutExternalAccountInfo The external account info data for the user with given external account ID.\n\n @see EOS_Connect_CopyProductUserExternalAccountByAccountIdOptions\n @see EOS_Connect_ExternalAccountInfo\n @see EOS_Connect_ExternalAccountInfo_Release\n\n @return An EOS_EResult that indicates the external account data was copied into the OutExternalAccountInfo.\n - EOS_Success if the information is available and passed out in OutExternalAccountInfo.\n - EOS_InvalidParameters if you pass a null pointer for the out parameter.\n - EOS_NotFound if the account data doesn't exist or hasn't been queried yet."]
12520    pub fn EOS_Connect_CopyProductUserExternalAccountByAccountId(
12521        Handle: EOS_HConnect,
12522        Options: *const EOS_Connect_CopyProductUserExternalAccountByAccountIdOptions,
12523        OutExternalAccountInfo: *mut *mut EOS_Connect_ExternalAccountInfo,
12524    ) -> EOS_EResult;
12525}
12526unsafe extern "C" {
12527    #[doc = " Fetch information about a Product User, using the external account that they most recently logged in with as the reference.\n On a successful call, the caller must release the returned structure using the EOS_Connect_ExternalAccountInfo_Release API.\n\n @param Options Structure containing the target external account ID.\n @param OutExternalAccountInfo The external account info data last logged in for the user.\n\n @see EOS_Connect_CopyProductUserInfoOptions\n @see EOS_Connect_ExternalAccountInfo\n @see EOS_Connect_ExternalAccountInfo_Release\n\n @return An EOS_EResult that indicates the external account data was copied into the OutExternalAccountInfo.\n - EOS_Success if the information is available and passed out in OutExternalAccountInfo.\n - EOS_InvalidParameters if you pass a null pointer for the out parameter.\n - EOS_NotFound if the account data doesn't exist or hasn't been queried yet."]
12528    pub fn EOS_Connect_CopyProductUserInfo(
12529        Handle: EOS_HConnect,
12530        Options: *const EOS_Connect_CopyProductUserInfoOptions,
12531        OutExternalAccountInfo: *mut *mut EOS_Connect_ExternalAccountInfo,
12532    ) -> EOS_EResult;
12533}
12534unsafe extern "C" {
12535    #[doc = " Fetch the number of product users that are logged in.\n\n @return the number of product users logged in."]
12536    pub fn EOS_Connect_GetLoggedInUsersCount(Handle: EOS_HConnect) -> i32;
12537}
12538unsafe extern "C" {
12539    #[doc = " Fetch a Product User ID that is logged in. This Product User ID is in the Epic Online Services namespace.\n\n @param Index an index into the list of logged in users. If the index is out of bounds, the returned Product User ID will be invalid.\n\n @return the Product User ID associated with the index passed."]
12540    pub fn EOS_Connect_GetLoggedInUserByIndex(
12541        Handle: EOS_HConnect,
12542        Index: i32,
12543    ) -> EOS_ProductUserId;
12544}
12545unsafe extern "C" {
12546    #[doc = " Fetches the login status for an Product User ID.  This Product User ID is considered logged in as long as the underlying access token has not expired.\n\n @param LocalUserId the Product User ID of the user being queried.\n\n @return the enum value of a user's login status."]
12547    pub fn EOS_Connect_GetLoginStatus(
12548        Handle: EOS_HConnect,
12549        LocalUserId: EOS_ProductUserId,
12550    ) -> EOS_ELoginStatus;
12551}
12552unsafe extern "C" {
12553    #[doc = " Register to receive upcoming authentication expiration notifications.\n Notification is approximately 1 minute prior to expiration.\n Call EOS_Connect_Login again with valid third party credentials to refresh access.\n\n @note If the returned NotificationId is valid, you must call EOS_Connect_RemoveNotifyAuthExpiration when you no longer wish to have your NotificationHandler called.\n\n @param Options structure containing the API version of the callback to use.\n @param ClientData arbitrary data that is passed back to you in the callback.\n @param Notification a callback that is fired when the authentication is about to expire.\n\n @see EOS_Connect_AddNotifyAuthExpirationOptions\n @see EOS_Connect_OnAuthExpirationCallback\n\n @return handle representing the registered callback."]
12554    pub fn EOS_Connect_AddNotifyAuthExpiration(
12555        Handle: EOS_HConnect,
12556        Options: *const EOS_Connect_AddNotifyAuthExpirationOptions,
12557        ClientData: *mut ::std::os::raw::c_void,
12558        Notification: EOS_Connect_OnAuthExpirationCallback,
12559    ) -> EOS_NotificationId;
12560}
12561unsafe extern "C" {
12562    #[doc = " Unregister from receiving expiration notifications.\n\n @param InId handle representing the registered callback."]
12563    pub fn EOS_Connect_RemoveNotifyAuthExpiration(Handle: EOS_HConnect, InId: EOS_NotificationId);
12564}
12565unsafe extern "C" {
12566    #[doc = " Register to receive user login status updates.\n @note If the returned NotificationId is valid, you must call EOS_Connect_RemoveNotifyLoginStatusChanged when you no longer wish to have your NotificationHandler called.\n\n @param Options structure containing the API version of the callback to use.\n @param ClientData arbitrary data that is passed back to you in the callback.\n @param Notification a callback that is fired when the login status for a user changes.\n\n @see EOS_Connect_AddNotifyLoginStatusChangedOptions\n @see EOS_Connect_OnLoginStatusChangedCallback\n\n @return handle representing the registered callback."]
12567    pub fn EOS_Connect_AddNotifyLoginStatusChanged(
12568        Handle: EOS_HConnect,
12569        Options: *const EOS_Connect_AddNotifyLoginStatusChangedOptions,
12570        ClientData: *mut ::std::os::raw::c_void,
12571        Notification: EOS_Connect_OnLoginStatusChangedCallback,
12572    ) -> EOS_NotificationId;
12573}
12574unsafe extern "C" {
12575    #[doc = " Unregister from receiving user login status updates.\n\n @param InId handle representing the registered callback."]
12576    pub fn EOS_Connect_RemoveNotifyLoginStatusChanged(
12577        Handle: EOS_HConnect,
12578        InId: EOS_NotificationId,
12579    );
12580}
12581unsafe extern "C" {
12582    #[doc = " Fetches an ID token for a Product User ID.\n\n @param Options Structure containing information about the ID token to copy.\n @param OutIdToken The ID token for the given user, if it exists and is valid; use EOS_Connect_IdToken_Release when finished.\n\n @see EOS_Connect_CopyIdTokenOptions\n @see EOS_Connect_IdToken\n @see EOS_Connect_IdToken_Release\n\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success if the information is available and passed out in OutIdToken.\n - EOS_InvalidParameters if you pass a null pointer for the out parameter.\n - EOS_NotFound if the ID token is not found or expired."]
12583    pub fn EOS_Connect_CopyIdToken(
12584        Handle: EOS_HConnect,
12585        Options: *const EOS_Connect_CopyIdTokenOptions,
12586        OutIdToken: *mut *mut EOS_Connect_IdToken,
12587    ) -> EOS_EResult;
12588}
12589unsafe extern "C" {
12590    #[doc = " Verify a given ID token for authenticity and validity.\n\n @param Options structure containing information about the ID token to verify.\n @param ClientData arbitrary data that is passed back to you in the callback.\n @param CompletionDelegate a callback that is fired when the operation completes, either successfully or in error.\n\n @see EOS_Connect_VerifyIdTokenOptions\n @see EOS_Connect_OnVerifyIdTokenCallback"]
12591    pub fn EOS_Connect_VerifyIdToken(
12592        Handle: EOS_HConnect,
12593        Options: *const EOS_Connect_VerifyIdTokenOptions,
12594        ClientData: *mut ::std::os::raw::c_void,
12595        CompletionDelegate: EOS_Connect_OnVerifyIdTokenCallback,
12596    );
12597}
12598#[repr(C)]
12599#[derive(Debug, Copy, Clone)]
12600pub struct EOS_AchievementsHandle {
12601    _unused: [u8; 0],
12602}
12603pub type EOS_HAchievements = *mut EOS_AchievementsHandle;
12604#[doc = " Input parameters for the EOS_Achievements_QueryDefinitions function."]
12605#[repr(C)]
12606#[derive(Debug, Copy, Clone)]
12607pub struct _tagEOS_Achievements_QueryDefinitionsOptions {
12608    #[doc = " API Version: Set this to EOS_ACHIEVEMENTS_QUERYDEFINITIONS_API_LATEST."]
12609    pub ApiVersion: i32,
12610    #[doc = " Product User ID for user who is querying definitions.\n The localized text returned will be based on the locale code of the given user if they have a linked Epic Account ID.\n The localized text returned can also be overridden using EOS_Platform_SetOverrideLocaleCode to override the locale.\n If the locale code is not overridden and LocalUserId is not valid, default text will be returned."]
12611    pub LocalUserId: EOS_ProductUserId,
12612    #[doc = " Deprecated"]
12613    pub EpicUserId_DEPRECATED: EOS_EpicAccountId,
12614    #[doc = " Deprecated"]
12615    pub HiddenAchievementIds_DEPRECATED: *mut *const ::std::os::raw::c_char,
12616    #[doc = " Deprecated"]
12617    pub HiddenAchievementsCount_DEPRECATED: u32,
12618}
12619impl Default for _tagEOS_Achievements_QueryDefinitionsOptions {
12620    fn default() -> Self {
12621        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12622        unsafe {
12623            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12624            s.assume_init()
12625        }
12626    }
12627}
12628#[doc = " Input parameters for the EOS_Achievements_QueryDefinitions function."]
12629pub type EOS_Achievements_QueryDefinitionsOptions = _tagEOS_Achievements_QueryDefinitionsOptions;
12630#[doc = " Contains information about a collection of stat threshold data.\n\n The threshold will depend on the stat aggregate type:\n   LATEST (Tracks the latest value)\n   MAX (Tracks the maximum value)\n   MIN (Tracks the minimum value)\n   SUM (Generates a rolling sum of the value)\n\n @see EOS_Achievements_Definition"]
12631#[repr(C)]
12632#[derive(Debug, Copy, Clone)]
12633pub struct _tagEOS_Achievements_StatThresholds {
12634    #[doc = " API Version: Set this to EOS_ACHIEVEMENTS_STATTHRESHOLDS_API_LATEST."]
12635    pub ApiVersion: i32,
12636    #[doc = " The name of the stat."]
12637    pub Name: *const ::std::os::raw::c_char,
12638    #[doc = " The value that the stat must surpass to satisfy the requirement for unlocking an achievement."]
12639    pub Threshold: i32,
12640}
12641impl Default for _tagEOS_Achievements_StatThresholds {
12642    fn default() -> Self {
12643        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12644        unsafe {
12645            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12646            s.assume_init()
12647        }
12648    }
12649}
12650#[doc = " Contains information about a collection of stat threshold data.\n\n The threshold will depend on the stat aggregate type:\n   LATEST (Tracks the latest value)\n   MAX (Tracks the maximum value)\n   MIN (Tracks the minimum value)\n   SUM (Generates a rolling sum of the value)\n\n @see EOS_Achievements_Definition"]
12651pub type EOS_Achievements_StatThresholds = _tagEOS_Achievements_StatThresholds;
12652#[doc = " Contains information about a collection of stat info data.\n\n @see EOS_Achievements_PlayerAchievement"]
12653#[repr(C)]
12654#[derive(Debug, Copy, Clone)]
12655pub struct _tagEOS_Achievements_PlayerStatInfo {
12656    #[doc = " API Version: Set this to EOS_ACHIEVEMENTS_PLAYERSTATINFO_API_LATEST."]
12657    pub ApiVersion: i32,
12658    #[doc = " The name of the stat."]
12659    pub Name: *const ::std::os::raw::c_char,
12660    #[doc = " The current value of the stat."]
12661    pub CurrentValue: i32,
12662    #[doc = " The threshold value of the stat, used in determining when to unlock an achievement."]
12663    pub ThresholdValue: i32,
12664}
12665impl Default for _tagEOS_Achievements_PlayerStatInfo {
12666    fn default() -> Self {
12667        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12668        unsafe {
12669            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12670            s.assume_init()
12671        }
12672    }
12673}
12674#[doc = " Contains information about a collection of stat info data.\n\n @see EOS_Achievements_PlayerAchievement"]
12675pub type EOS_Achievements_PlayerStatInfo = _tagEOS_Achievements_PlayerStatInfo;
12676#[doc = " Contains information about a single achievement definition with localized text."]
12677#[repr(C)]
12678#[derive(Debug, Copy, Clone)]
12679pub struct _tagEOS_Achievements_DefinitionV2 {
12680    #[doc = " API Version: Set this to EOS_ACHIEVEMENTS_DEFINITIONV2_API_LATEST."]
12681    pub ApiVersion: i32,
12682    #[doc = " Achievement ID that can be used to uniquely identify the achievement."]
12683    pub AchievementId: *const ::std::os::raw::c_char,
12684    #[doc = " Localized display name for the achievement when it has been unlocked."]
12685    pub UnlockedDisplayName: *const ::std::os::raw::c_char,
12686    #[doc = " Localized description for the achievement when it has been unlocked."]
12687    pub UnlockedDescription: *const ::std::os::raw::c_char,
12688    #[doc = " Localized display name for the achievement when it is locked or hidden."]
12689    pub LockedDisplayName: *const ::std::os::raw::c_char,
12690    #[doc = " Localized description for the achievement when it is locked or hidden."]
12691    pub LockedDescription: *const ::std::os::raw::c_char,
12692    #[doc = " Localized flavor text that can be used by the game in an arbitrary manner. This may be null if there is no data configured in the dev portal."]
12693    pub FlavorText: *const ::std::os::raw::c_char,
12694    #[doc = " URL of an icon to display for the achievement when it is unlocked. This may be null if there is no data configured in the dev portal."]
12695    pub UnlockedIconURL: *const ::std::os::raw::c_char,
12696    #[doc = " URL of an icon to display for the achievement when it is locked or hidden. This may be null if there is no data configured in the dev portal."]
12697    pub LockedIconURL: *const ::std::os::raw::c_char,
12698    #[doc = " EOS_TRUE if the achievement is hidden; EOS_FALSE otherwise."]
12699    pub bIsHidden: EOS_Bool,
12700    #[doc = " The number of stat thresholds used to monitor progress towards this achievement."]
12701    pub StatThresholdsCount: u32,
12702    #[doc = " Array of `EOS_Achievements_StatThresholds` that need to be satisfied to unlock this achievement. Consists of Name and Threshold Value."]
12703    pub StatThresholds: *const EOS_Achievements_StatThresholds,
12704}
12705impl Default for _tagEOS_Achievements_DefinitionV2 {
12706    fn default() -> Self {
12707        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12708        unsafe {
12709            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12710            s.assume_init()
12711        }
12712    }
12713}
12714#[doc = " Contains information about a single achievement definition with localized text."]
12715pub type EOS_Achievements_DefinitionV2 = _tagEOS_Achievements_DefinitionV2;
12716unsafe extern "C" {
12717    #[doc = " Release the memory associated with EOS_Achievements_DefinitionV2. This must be called on data retrieved from\n EOS_Achievements_CopyAchievementDefinitionV2ByIndex or EOS_Achievements_CopyAchievementDefinitionV2ByAchievementId.\n\n @param AchievementDefinition - The achievement definition to release.\n\n @see EOS_Achievements_DefinitionV2\n @see EOS_Achievements_CopyAchievementDefinitionV2ByIndex\n @see EOS_Achievements_CopyAchievementDefinitionV2ByAchievementId"]
12718    pub fn EOS_Achievements_DefinitionV2_Release(
12719        AchievementDefinition: *mut EOS_Achievements_DefinitionV2,
12720    );
12721}
12722#[doc = " Input parameters for the EOS_Achievements_GetAchievementDefinitionCount function."]
12723#[repr(C)]
12724#[derive(Debug, Default, Copy, Clone)]
12725pub struct _tagEOS_Achievements_GetAchievementDefinitionCountOptions {
12726    #[doc = " API Version: Set this to EOS_ACHIEVEMENTS_GETACHIEVEMENTDEFINITIONCOUNT_API_LATEST."]
12727    pub ApiVersion: i32,
12728}
12729#[doc = " Input parameters for the EOS_Achievements_GetAchievementDefinitionCount function."]
12730pub type EOS_Achievements_GetAchievementDefinitionCountOptions =
12731    _tagEOS_Achievements_GetAchievementDefinitionCountOptions;
12732#[doc = " Input parameters for the EOS_Achievements_CopyAchievementDefinitionByIndex function."]
12733#[repr(C)]
12734#[derive(Debug, Default, Copy, Clone)]
12735pub struct _tagEOS_Achievements_CopyAchievementDefinitionV2ByIndexOptions {
12736    #[doc = " API Version: Set this to EOS_ACHIEVEMENTS_COPYACHIEVEMENTDEFINITIONV2BYINDEX_API_LATEST."]
12737    pub ApiVersion: i32,
12738    #[doc = " Index of the achievement definition to retrieve from the cache."]
12739    pub AchievementIndex: u32,
12740}
12741#[doc = " Input parameters for the EOS_Achievements_CopyAchievementDefinitionByIndex function."]
12742pub type EOS_Achievements_CopyAchievementDefinitionV2ByIndexOptions =
12743    _tagEOS_Achievements_CopyAchievementDefinitionV2ByIndexOptions;
12744#[doc = " Input parameters for the EOS_Achievements_CopyAchievementDefinitionV2ByAchievementId function."]
12745#[repr(C)]
12746#[derive(Debug, Copy, Clone)]
12747pub struct _tagEOS_Achievements_CopyAchievementDefinitionV2ByAchievementIdOptions {
12748    #[doc = " API Version: Set this to EOS_ACHIEVEMENTS_COPYACHIEVEMENTDEFINITIONV2BYACHIEVEMENTID_API_LATEST."]
12749    pub ApiVersion: i32,
12750    #[doc = " Achievement ID to look for when copying the definition from the cache."]
12751    pub AchievementId: *const ::std::os::raw::c_char,
12752}
12753impl Default for _tagEOS_Achievements_CopyAchievementDefinitionV2ByAchievementIdOptions {
12754    fn default() -> Self {
12755        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12756        unsafe {
12757            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12758            s.assume_init()
12759        }
12760    }
12761}
12762#[doc = " Input parameters for the EOS_Achievements_CopyAchievementDefinitionV2ByAchievementId function."]
12763pub type EOS_Achievements_CopyAchievementDefinitionV2ByAchievementIdOptions =
12764    _tagEOS_Achievements_CopyAchievementDefinitionV2ByAchievementIdOptions;
12765#[doc = " Data containing the result information for a query definitions request."]
12766#[repr(C)]
12767#[derive(Debug, Copy, Clone)]
12768pub struct _tagEOS_Achievements_OnQueryDefinitionsCompleteCallbackInfo {
12769    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
12770    pub ResultCode: EOS_EResult,
12771    #[doc = " User-defined context that was passed into EOS_Achievements_QueryDefinitions."]
12772    pub ClientData: *mut ::std::os::raw::c_void,
12773}
12774impl Default for _tagEOS_Achievements_OnQueryDefinitionsCompleteCallbackInfo {
12775    fn default() -> Self {
12776        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12777        unsafe {
12778            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12779            s.assume_init()
12780        }
12781    }
12782}
12783#[doc = " Data containing the result information for a query definitions request."]
12784pub type EOS_Achievements_OnQueryDefinitionsCompleteCallbackInfo =
12785    _tagEOS_Achievements_OnQueryDefinitionsCompleteCallbackInfo;
12786#[doc = " Function prototype definition for callbacks passed to EOS_Achievements_QueryDefinitions\n @param Data An EOS_Achievements_OnQueryDefinitionsCompleteCallbackInfo containing the output information and result"]
12787pub type EOS_Achievements_OnQueryDefinitionsCompleteCallback = ::std::option::Option<
12788    unsafe extern "C" fn(Data: *const EOS_Achievements_OnQueryDefinitionsCompleteCallbackInfo),
12789>;
12790#[doc = " Input parameters for the EOS_Achievements_QueryPlayerAchievements function."]
12791#[repr(C)]
12792#[derive(Debug, Copy, Clone)]
12793pub struct _tagEOS_Achievements_QueryPlayerAchievementsOptions {
12794    #[doc = " API Version: Set this to EOS_ACHIEVEMENTS_QUERYPLAYERACHIEVEMENTS_API_LATEST."]
12795    pub ApiVersion: i32,
12796    #[doc = " The Product User ID for the user whose achievements are to be retrieved."]
12797    pub TargetUserId: EOS_ProductUserId,
12798    #[doc = " The Product User ID for the user who is querying for player achievements. For a Dedicated Server this should be null."]
12799    pub LocalUserId: EOS_ProductUserId,
12800}
12801impl Default for _tagEOS_Achievements_QueryPlayerAchievementsOptions {
12802    fn default() -> Self {
12803        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12804        unsafe {
12805            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12806            s.assume_init()
12807        }
12808    }
12809}
12810#[doc = " Input parameters for the EOS_Achievements_QueryPlayerAchievements function."]
12811pub type EOS_Achievements_QueryPlayerAchievementsOptions =
12812    _tagEOS_Achievements_QueryPlayerAchievementsOptions;
12813#[doc = " Contains information about a single player achievement."]
12814#[repr(C)]
12815#[derive(Debug, Copy, Clone)]
12816pub struct _tagEOS_Achievements_PlayerAchievement {
12817    #[doc = " API Version: Set this to EOS_ACHIEVEMENTS_PLAYERACHIEVEMENT_API_LATEST."]
12818    pub ApiVersion: i32,
12819    #[doc = " This achievement's unique identifier."]
12820    pub AchievementId: *const ::std::os::raw::c_char,
12821    #[doc = " Progress towards completing this achievement (as a percentage)."]
12822    pub Progress: f64,
12823    #[doc = " The POSIX timestamp when the achievement was unlocked. If the achievement has not been unlocked, this value will be EOS_ACHIEVEMENTS_ACHIEVEMENT_UNLOCKTIME_UNDEFINED."]
12824    pub UnlockTime: i64,
12825    #[doc = " The number of player stat info entries associated with this achievement."]
12826    pub StatInfoCount: i32,
12827    #[doc = " Array of EOS_Achievements_PlayerStatInfo structures containing information about stat thresholds used to unlock the achievement and the player's current values for those stats."]
12828    pub StatInfo: *const EOS_Achievements_PlayerStatInfo,
12829    #[doc = " Localized display name for the achievement based on this specific player's current progress on the achievement.\n @note The current progress is updated when EOS_Achievements_QueryPlayerAchievements succeeds and when an achievement is unlocked."]
12830    pub DisplayName: *const ::std::os::raw::c_char,
12831    #[doc = " Localized description for the achievement based on this specific player's current progress on the achievement.\n @note The current progress is updated when EOS_Achievements_QueryPlayerAchievements succeeds and when an achievement is unlocked."]
12832    pub Description: *const ::std::os::raw::c_char,
12833    #[doc = " URL of an icon to display for the achievement based on this specific player's current progress on the achievement. This may be null if there is no data configured in the dev portal.\n @note The current progress is updated when EOS_Achievements_QueryPlayerAchievements succeeds and when an achievement is unlocked."]
12834    pub IconURL: *const ::std::os::raw::c_char,
12835    #[doc = " Localized flavor text that can be used by the game in an arbitrary manner. This may be null if there is no data configured in the dev portal."]
12836    pub FlavorText: *const ::std::os::raw::c_char,
12837}
12838impl Default for _tagEOS_Achievements_PlayerAchievement {
12839    fn default() -> Self {
12840        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12841        unsafe {
12842            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12843            s.assume_init()
12844        }
12845    }
12846}
12847#[doc = " Contains information about a single player achievement."]
12848pub type EOS_Achievements_PlayerAchievement = _tagEOS_Achievements_PlayerAchievement;
12849#[doc = " Input parameters for the EOS_Achievements_GetPlayerAchievementCount function."]
12850#[repr(C)]
12851#[derive(Debug, Copy, Clone)]
12852pub struct _tagEOS_Achievements_GetPlayerAchievementCountOptions {
12853    #[doc = " API Version: Set this to EOS_ACHIEVEMENTS_GETPLAYERACHIEVEMENTCOUNT_API_LATEST."]
12854    pub ApiVersion: i32,
12855    #[doc = " The Product User ID for the user whose achievement count is being retrieved."]
12856    pub UserId: EOS_ProductUserId,
12857}
12858impl Default for _tagEOS_Achievements_GetPlayerAchievementCountOptions {
12859    fn default() -> Self {
12860        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12861        unsafe {
12862            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12863            s.assume_init()
12864        }
12865    }
12866}
12867#[doc = " Input parameters for the EOS_Achievements_GetPlayerAchievementCount function."]
12868pub type EOS_Achievements_GetPlayerAchievementCountOptions =
12869    _tagEOS_Achievements_GetPlayerAchievementCountOptions;
12870#[doc = " Input parameters for the EOS_Achievements_CopyPlayerAchievementByIndex function."]
12871#[repr(C)]
12872#[derive(Debug, Copy, Clone)]
12873pub struct _tagEOS_Achievements_CopyPlayerAchievementByIndexOptions {
12874    #[doc = " API Version: Set this to EOS_ACHIEVEMENTS_COPYPLAYERACHIEVEMENTBYINDEX_API_LATEST."]
12875    pub ApiVersion: i32,
12876    #[doc = " The Product User ID for the user whose achievement is to be retrieved."]
12877    pub TargetUserId: EOS_ProductUserId,
12878    #[doc = " The index of the player achievement data to retrieve from the cache."]
12879    pub AchievementIndex: u32,
12880    #[doc = " The Product User ID for the user who is querying for a player achievement. For a Dedicated Server this should be null."]
12881    pub LocalUserId: EOS_ProductUserId,
12882}
12883impl Default for _tagEOS_Achievements_CopyPlayerAchievementByIndexOptions {
12884    fn default() -> Self {
12885        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12886        unsafe {
12887            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12888            s.assume_init()
12889        }
12890    }
12891}
12892#[doc = " Input parameters for the EOS_Achievements_CopyPlayerAchievementByIndex function."]
12893pub type EOS_Achievements_CopyPlayerAchievementByIndexOptions =
12894    _tagEOS_Achievements_CopyPlayerAchievementByIndexOptions;
12895#[doc = " Input parameters for the EOS_Achievements_CopyPlayerAchievementByAchievementId function."]
12896#[repr(C)]
12897#[derive(Debug, Copy, Clone)]
12898pub struct _tagEOS_Achievements_CopyPlayerAchievementByAchievementIdOptions {
12899    #[doc = " API Version: Set this to EOS_ACHIEVEMENTS_COPYPLAYERACHIEVEMENTBYACHIEVEMENTID_API_LATEST."]
12900    pub ApiVersion: i32,
12901    #[doc = " The Product User ID for the user whose achievement is to be retrieved."]
12902    pub TargetUserId: EOS_ProductUserId,
12903    #[doc = " Achievement ID to search for when retrieving player achievement data from the cache."]
12904    pub AchievementId: *const ::std::os::raw::c_char,
12905    #[doc = " The Product User ID for the user who is querying for a player achievement. For a Dedicated Server this should be null."]
12906    pub LocalUserId: EOS_ProductUserId,
12907}
12908impl Default for _tagEOS_Achievements_CopyPlayerAchievementByAchievementIdOptions {
12909    fn default() -> Self {
12910        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12911        unsafe {
12912            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12913            s.assume_init()
12914        }
12915    }
12916}
12917#[doc = " Input parameters for the EOS_Achievements_CopyPlayerAchievementByAchievementId function."]
12918pub type EOS_Achievements_CopyPlayerAchievementByAchievementIdOptions =
12919    _tagEOS_Achievements_CopyPlayerAchievementByAchievementIdOptions;
12920unsafe extern "C" {
12921    #[doc = " Release the memory associated with a player achievement. This must be called on data retrieved from\n EOS_Achievements_CopyPlayerAchievementByIndex or EOS_Achievements_CopyPlayerAchievementByAchievementId.\n\n @param Achievement - The achievement data to release.\n\n @see EOS_Achievements_PlayerAchievement\n @see EOS_Achievements_CopyPlayerAchievementByIndex\n @see EOS_Achievements_CopyPlayerAchievementByAchievementId"]
12922    pub fn EOS_Achievements_PlayerAchievement_Release(
12923        Achievement: *mut EOS_Achievements_PlayerAchievement,
12924    );
12925}
12926#[doc = " Data containing the result information for querying a player's achievements request."]
12927#[repr(C)]
12928#[derive(Debug, Copy, Clone)]
12929pub struct _tagEOS_Achievements_OnQueryPlayerAchievementsCompleteCallbackInfo {
12930    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
12931    pub ResultCode: EOS_EResult,
12932    #[doc = " Context that was passed into EOS_Achievements_QueryPlayerAchievements."]
12933    pub ClientData: *mut ::std::os::raw::c_void,
12934    #[doc = " The Product User ID whose achievements were retrieved."]
12935    pub TargetUserId: EOS_ProductUserId,
12936    #[doc = " The Product User ID of the user who initiated this request. For a Dedicated Server this should be null."]
12937    pub LocalUserId: EOS_ProductUserId,
12938}
12939impl Default for _tagEOS_Achievements_OnQueryPlayerAchievementsCompleteCallbackInfo {
12940    fn default() -> Self {
12941        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12942        unsafe {
12943            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12944            s.assume_init()
12945        }
12946    }
12947}
12948#[doc = " Data containing the result information for querying a player's achievements request."]
12949pub type EOS_Achievements_OnQueryPlayerAchievementsCompleteCallbackInfo =
12950    _tagEOS_Achievements_OnQueryPlayerAchievementsCompleteCallbackInfo;
12951#[doc = " Function prototype definition for callbacks passed to EOS_Achievements_QueryPlayerAchievements\n\n @param Data An EOS_Achievements_OnQueryPlayerAchievementsCompleteCallbackInfo containing the output information and result\n\n @see EOS_Achievements_PlayerAchievement_Release"]
12952pub type EOS_Achievements_OnQueryPlayerAchievementsCompleteCallback = ::std::option::Option<
12953    unsafe extern "C" fn(
12954        Data: *const EOS_Achievements_OnQueryPlayerAchievementsCompleteCallbackInfo,
12955    ),
12956>;
12957#[doc = " Input parameters for the EOS_Achievements_UnlockAchievements function."]
12958#[repr(C)]
12959#[derive(Debug, Copy, Clone)]
12960pub struct _tagEOS_Achievements_UnlockAchievementsOptions {
12961    #[doc = " API Version: Set this to EOS_ACHIEVEMENTS_UNLOCKACHIEVEMENTS_API_LATEST."]
12962    pub ApiVersion: i32,
12963    #[doc = " The Product User ID for the user whose achievements we want to unlock."]
12964    pub UserId: EOS_ProductUserId,
12965    #[doc = " An array of Achievement IDs to unlock."]
12966    pub AchievementIds: *mut *const ::std::os::raw::c_char,
12967    #[doc = " The number of achievements to unlock."]
12968    pub AchievementsCount: u32,
12969}
12970impl Default for _tagEOS_Achievements_UnlockAchievementsOptions {
12971    fn default() -> Self {
12972        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12973        unsafe {
12974            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12975            s.assume_init()
12976        }
12977    }
12978}
12979#[doc = " Input parameters for the EOS_Achievements_UnlockAchievements function."]
12980pub type EOS_Achievements_UnlockAchievementsOptions =
12981    _tagEOS_Achievements_UnlockAchievementsOptions;
12982#[doc = " Data containing the result information for unlocking achievements request."]
12983#[repr(C)]
12984#[derive(Debug, Copy, Clone)]
12985pub struct _tagEOS_Achievements_OnUnlockAchievementsCompleteCallbackInfo {
12986    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
12987    pub ResultCode: EOS_EResult,
12988    #[doc = " Context that was passed into EOS_Achievements_UnlockAchievements."]
12989    pub ClientData: *mut ::std::os::raw::c_void,
12990    #[doc = " The Product User ID of the user who initiated this request."]
12991    pub UserId: EOS_ProductUserId,
12992    #[doc = " The number of achievements that the operation unlocked."]
12993    pub AchievementsCount: u32,
12994}
12995impl Default for _tagEOS_Achievements_OnUnlockAchievementsCompleteCallbackInfo {
12996    fn default() -> Self {
12997        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12998        unsafe {
12999            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13000            s.assume_init()
13001        }
13002    }
13003}
13004#[doc = " Data containing the result information for unlocking achievements request."]
13005pub type EOS_Achievements_OnUnlockAchievementsCompleteCallbackInfo =
13006    _tagEOS_Achievements_OnUnlockAchievementsCompleteCallbackInfo;
13007#[doc = " Function prototype definition for callbacks passed to EOS_Achievements_UnlockAchievements\n @param Data An EOS_Achievements_OnUnlockAchievementsCompleteCallbackInfo containing the output information and result"]
13008pub type EOS_Achievements_OnUnlockAchievementsCompleteCallback = ::std::option::Option<
13009    unsafe extern "C" fn(Data: *const EOS_Achievements_OnUnlockAchievementsCompleteCallbackInfo),
13010>;
13011#[doc = " Input parameters for the EOS_Achievements_AddNotifyAchievementsUnlocked function."]
13012#[repr(C)]
13013#[derive(Debug, Default, Copy, Clone)]
13014pub struct _tagEOS_Achievements_AddNotifyAchievementsUnlockedV2Options {
13015    #[doc = " API Version: Set this to EOS_ACHIEVEMENTS_ADDNOTIFYACHIEVEMENTSUNLOCKEDV2_API_LATEST."]
13016    pub ApiVersion: i32,
13017}
13018#[doc = " Input parameters for the EOS_Achievements_AddNotifyAchievementsUnlocked function."]
13019pub type EOS_Achievements_AddNotifyAchievementsUnlockedV2Options =
13020    _tagEOS_Achievements_AddNotifyAchievementsUnlockedV2Options;
13021#[doc = " Output parameters for the EOS_Achievements_OnAchievementsUnlockedCallbackV2 Function."]
13022#[repr(C)]
13023#[derive(Debug, Copy, Clone)]
13024pub struct _tagEOS_Achievements_OnAchievementsUnlockedCallbackV2Info {
13025    #[doc = " Context that was passed into EOS_Achievements_AddNotifyAchievementsUnlocked"]
13026    pub ClientData: *mut ::std::os::raw::c_void,
13027    #[doc = " The Product User ID for the user who received the unlocked achievements notification"]
13028    pub UserId: EOS_ProductUserId,
13029    #[doc = " The Achievement ID for the achievement that was unlocked. Pass this to EOS_Achievements_CopyPlayerAchievementByAchievementId to get the full achievement information."]
13030    pub AchievementId: *const ::std::os::raw::c_char,
13031    #[doc = " POSIX timestamp when the achievement was unlocked."]
13032    pub UnlockTime: i64,
13033}
13034impl Default for _tagEOS_Achievements_OnAchievementsUnlockedCallbackV2Info {
13035    fn default() -> Self {
13036        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13037        unsafe {
13038            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13039            s.assume_init()
13040        }
13041    }
13042}
13043#[doc = " Output parameters for the EOS_Achievements_OnAchievementsUnlockedCallbackV2 Function."]
13044pub type EOS_Achievements_OnAchievementsUnlockedCallbackV2Info =
13045    _tagEOS_Achievements_OnAchievementsUnlockedCallbackV2Info;
13046#[doc = " Function prototype definition for notifications that come from EOS_Achievements_AddNotifyAchievementsUnlockedV2\n\n @param Data An EOS_Achievements_OnAchievementsUnlockedCallbackV2Info containing the output information and result"]
13047pub type EOS_Achievements_OnAchievementsUnlockedCallbackV2 = ::std::option::Option<
13048    unsafe extern "C" fn(Data: *const EOS_Achievements_OnAchievementsUnlockedCallbackV2Info),
13049>;
13050#[doc = " Contains information about a single achievement definition with localized text."]
13051#[repr(C)]
13052#[derive(Debug, Copy, Clone)]
13053pub struct _tagEOS_Achievements_Definition {
13054    #[doc = " API Version: Set this to EOS_ACHIEVEMENTS_DEFINITION_API_LATEST."]
13055    pub ApiVersion: i32,
13056    #[doc = " Achievement ID that can be used to uniquely identify the achievement."]
13057    pub AchievementId: *const ::std::os::raw::c_char,
13058    #[doc = " Text representing the Name to display in-game when achievement has been unlocked."]
13059    pub DisplayName: *const ::std::os::raw::c_char,
13060    #[doc = " Text representing the description to display in-game when achievement has been unlocked."]
13061    pub Description: *const ::std::os::raw::c_char,
13062    #[doc = " Text representing the name to display in-game when achievement is locked."]
13063    pub LockedDisplayName: *const ::std::os::raw::c_char,
13064    #[doc = " Text representing the description of what needs to be done to trigger the unlock of this achievement."]
13065    pub LockedDescription: *const ::std::os::raw::c_char,
13066    #[doc = " Text representing the description to display in-game when achievement is hidden."]
13067    pub HiddenDescription: *const ::std::os::raw::c_char,
13068    #[doc = " Text representing the description of what happens when the achievement is unlocked."]
13069    pub CompletionDescription: *const ::std::os::raw::c_char,
13070    #[doc = " Text representing the icon to display in-game when achievement is unlocked."]
13071    pub UnlockedIconId: *const ::std::os::raw::c_char,
13072    #[doc = " Text representing the icon to display in-game when achievement is locked."]
13073    pub LockedIconId: *const ::std::os::raw::c_char,
13074    #[doc = " True if achievement is hidden, false otherwise."]
13075    pub bIsHidden: EOS_Bool,
13076    #[doc = " The number of stat thresholds."]
13077    pub StatThresholdsCount: i32,
13078    #[doc = " Array of stat thresholds that need to be satisfied to unlock the achievement."]
13079    pub StatThresholds: *const EOS_Achievements_StatThresholds,
13080}
13081impl Default for _tagEOS_Achievements_Definition {
13082    fn default() -> Self {
13083        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13084        unsafe {
13085            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13086            s.assume_init()
13087        }
13088    }
13089}
13090#[doc = " Contains information about a single achievement definition with localized text."]
13091pub type EOS_Achievements_Definition = _tagEOS_Achievements_Definition;
13092unsafe extern "C" {
13093    #[doc = " Release the memory associated with achievement definitions. This must be called on data retrieved from\n EOS_Achievements_CopyAchievementDefinitionByIndex or EOS_Achievements_CopyAchievementDefinitionByAchievementId.\n\n @param AchievementDefinition - The achievement definition to release.\n\n @see EOS_Achievements_Definition\n @see EOS_Achievements_CopyAchievementDefinitionByIndex\n @see EOS_Achievements_CopyAchievementDefinitionByAchievementId"]
13094    pub fn EOS_Achievements_Definition_Release(
13095        AchievementDefinition: *mut EOS_Achievements_Definition,
13096    );
13097}
13098#[doc = " Input parameters for the EOS_Achievements_CopyAchievementDefinitionByIndex function."]
13099#[repr(C)]
13100#[derive(Debug, Default, Copy, Clone)]
13101pub struct _tagEOS_Achievements_CopyAchievementDefinitionByIndexOptions {
13102    #[doc = " API Version: Set this to EOS_ACHIEVEMENTS_COPYDEFINITIONBYINDEX_API_LATEST."]
13103    pub ApiVersion: i32,
13104    #[doc = " Index of the achievement definition to retrieve from the cache"]
13105    pub AchievementIndex: u32,
13106}
13107#[doc = " Input parameters for the EOS_Achievements_CopyAchievementDefinitionByIndex function."]
13108pub type EOS_Achievements_CopyAchievementDefinitionByIndexOptions =
13109    _tagEOS_Achievements_CopyAchievementDefinitionByIndexOptions;
13110#[doc = " Input parameters for the EOS_Achievements_CopyAchievementDefinitionByAchievementId function."]
13111#[repr(C)]
13112#[derive(Debug, Copy, Clone)]
13113pub struct _tagEOS_Achievements_CopyAchievementDefinitionByAchievementIdOptions {
13114    #[doc = " API Version: Set this to EOS_ACHIEVEMENTS_COPYDEFINITIONBYACHIEVEMENTID_API_LATEST."]
13115    pub ApiVersion: i32,
13116    #[doc = " Achievement ID to look for when copying definition from the cache"]
13117    pub AchievementId: *const ::std::os::raw::c_char,
13118}
13119impl Default for _tagEOS_Achievements_CopyAchievementDefinitionByAchievementIdOptions {
13120    fn default() -> Self {
13121        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13122        unsafe {
13123            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13124            s.assume_init()
13125        }
13126    }
13127}
13128#[doc = " Input parameters for the EOS_Achievements_CopyAchievementDefinitionByAchievementId function."]
13129pub type EOS_Achievements_CopyAchievementDefinitionByAchievementIdOptions =
13130    _tagEOS_Achievements_CopyAchievementDefinitionByAchievementIdOptions;
13131#[doc = " Contains information about a single unlocked achievement."]
13132#[repr(C)]
13133#[derive(Debug, Copy, Clone)]
13134pub struct _tagEOS_Achievements_UnlockedAchievement {
13135    #[doc = " API Version: Set this to EOS_ACHIEVEMENTS_UNLOCKEDACHIEVEMENT_API_LATEST."]
13136    pub ApiVersion: i32,
13137    #[doc = " Achievement ID that can be used to uniquely identify the unlocked achievement."]
13138    pub AchievementId: *const ::std::os::raw::c_char,
13139    #[doc = " If not EOS_ACHIEVEMENTS_ACHIEVEMENT_UNLOCKTIME_UNDEFINED then this is the POSIX timestamp that the achievement was unlocked."]
13140    pub UnlockTime: i64,
13141}
13142impl Default for _tagEOS_Achievements_UnlockedAchievement {
13143    fn default() -> Self {
13144        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13145        unsafe {
13146            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13147            s.assume_init()
13148        }
13149    }
13150}
13151#[doc = " Contains information about a single unlocked achievement."]
13152pub type EOS_Achievements_UnlockedAchievement = _tagEOS_Achievements_UnlockedAchievement;
13153#[doc = " Input parameters for the EOS_Achievements_GetUnlockedAchievementCount function."]
13154#[repr(C)]
13155#[derive(Debug, Copy, Clone)]
13156pub struct _tagEOS_Achievements_GetUnlockedAchievementCountOptions {
13157    #[doc = " API Version: Set this to EOS_ACHIEVEMENTS_GETUNLOCKEDACHIEVEMENTCOUNT_API_LATEST."]
13158    pub ApiVersion: i32,
13159    #[doc = " Product User ID for which to retrieve the unlocked achievement count"]
13160    pub UserId: EOS_ProductUserId,
13161}
13162impl Default for _tagEOS_Achievements_GetUnlockedAchievementCountOptions {
13163    fn default() -> Self {
13164        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13165        unsafe {
13166            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13167            s.assume_init()
13168        }
13169    }
13170}
13171#[doc = " Input parameters for the EOS_Achievements_GetUnlockedAchievementCount function."]
13172pub type EOS_Achievements_GetUnlockedAchievementCountOptions =
13173    _tagEOS_Achievements_GetUnlockedAchievementCountOptions;
13174#[doc = " Input parameters for the EOS_Achievements_CopyUnlockedAchievementByIndex function."]
13175#[repr(C)]
13176#[derive(Debug, Copy, Clone)]
13177pub struct _tagEOS_Achievements_CopyUnlockedAchievementByIndexOptions {
13178    #[doc = " API Version: Set this to EOS_ACHIEVEMENTS_COPYUNLOCKEDACHIEVEMENTBYINDEX_API_LATEST."]
13179    pub ApiVersion: i32,
13180    #[doc = " The Product User ID for the user who is copying the unlocked achievement"]
13181    pub UserId: EOS_ProductUserId,
13182    #[doc = " Index of the unlocked achievement to retrieve from the cache"]
13183    pub AchievementIndex: u32,
13184}
13185impl Default for _tagEOS_Achievements_CopyUnlockedAchievementByIndexOptions {
13186    fn default() -> Self {
13187        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13188        unsafe {
13189            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13190            s.assume_init()
13191        }
13192    }
13193}
13194#[doc = " Input parameters for the EOS_Achievements_CopyUnlockedAchievementByIndex function."]
13195pub type EOS_Achievements_CopyUnlockedAchievementByIndexOptions =
13196    _tagEOS_Achievements_CopyUnlockedAchievementByIndexOptions;
13197#[doc = " Input parameters for the EOS_Achievements_CopyUnlockedAchievementByAchievementId function."]
13198#[repr(C)]
13199#[derive(Debug, Copy, Clone)]
13200pub struct _tagEOS_Achievements_CopyUnlockedAchievementByAchievementIdOptions {
13201    #[doc = " API Version: Set this to EOS_ACHIEVEMENTS_COPYUNLOCKEDACHIEVEMENTBYACHIEVEMENTID_API_LATEST."]
13202    pub ApiVersion: i32,
13203    #[doc = " The Product User ID for the user who is copying the unlocked achievement"]
13204    pub UserId: EOS_ProductUserId,
13205    #[doc = " AchievementId of the unlocked achievement to retrieve from the cache"]
13206    pub AchievementId: *const ::std::os::raw::c_char,
13207}
13208impl Default for _tagEOS_Achievements_CopyUnlockedAchievementByAchievementIdOptions {
13209    fn default() -> Self {
13210        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13211        unsafe {
13212            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13213            s.assume_init()
13214        }
13215    }
13216}
13217#[doc = " Input parameters for the EOS_Achievements_CopyUnlockedAchievementByAchievementId function."]
13218pub type EOS_Achievements_CopyUnlockedAchievementByAchievementIdOptions =
13219    _tagEOS_Achievements_CopyUnlockedAchievementByAchievementIdOptions;
13220#[doc = " Input parameters for the EOS_Achievements_AddNotifyAchievementsUnlocked function."]
13221#[repr(C)]
13222#[derive(Debug, Default, Copy, Clone)]
13223pub struct _tagEOS_Achievements_AddNotifyAchievementsUnlockedOptions {
13224    #[doc = " API Version: Set this to EOS_ACHIEVEMENTS_ADDNOTIFYACHIEVEMENTSUNLOCKED_API_LATEST."]
13225    pub ApiVersion: i32,
13226}
13227#[doc = " Input parameters for the EOS_Achievements_AddNotifyAchievementsUnlocked function."]
13228pub type EOS_Achievements_AddNotifyAchievementsUnlockedOptions =
13229    _tagEOS_Achievements_AddNotifyAchievementsUnlockedOptions;
13230#[doc = " Output parameters for the EOS_Achievements_OnAchievementsUnlockedCallback Function."]
13231#[repr(C)]
13232#[derive(Debug, Copy, Clone)]
13233pub struct _tagEOS_Achievements_OnAchievementsUnlockedCallbackInfo {
13234    #[doc = " Context that was passed into EOS_Achievements_AddNotifyAchievementsUnlocked"]
13235    pub ClientData: *mut ::std::os::raw::c_void,
13236    #[doc = " The Product User ID for the user who received the unlocked achievements notification"]
13237    pub UserId: EOS_ProductUserId,
13238    #[doc = " The number of achievements."]
13239    pub AchievementsCount: u32,
13240    #[doc = " This member is not used and will always be set to NULL."]
13241    pub AchievementIds: *mut *const ::std::os::raw::c_char,
13242}
13243impl Default for _tagEOS_Achievements_OnAchievementsUnlockedCallbackInfo {
13244    fn default() -> Self {
13245        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13246        unsafe {
13247            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13248            s.assume_init()
13249        }
13250    }
13251}
13252#[doc = " Output parameters for the EOS_Achievements_OnAchievementsUnlockedCallback Function."]
13253pub type EOS_Achievements_OnAchievementsUnlockedCallbackInfo =
13254    _tagEOS_Achievements_OnAchievementsUnlockedCallbackInfo;
13255#[doc = " Function prototype definition for notifications that come from EOS_Achievements_AddNotifyAchievementsUnlocked\n\n @param Data A EOS_Achievements_OnAchievementsUnlockedCallbackInfo containing the output information and result"]
13256pub type EOS_Achievements_OnAchievementsUnlockedCallback = ::std::option::Option<
13257    unsafe extern "C" fn(Data: *const EOS_Achievements_OnAchievementsUnlockedCallbackInfo),
13258>;
13259unsafe extern "C" {
13260    #[doc = " Release the memory associated with an unlocked achievement. This must be called on data retrieved from\n EOS_Achievements_CopyUnlockedAchievementByIndex or EOS_Achievements_CopyUnlockedAchievementByAchievementId.\n\n @param Achievement - The unlocked achievement data to release.\n\n @see EOS_Achievements_UnlockedAchievement\n @see EOS_Achievements_CopyUnlockedAchievementByIndex\n @see EOS_Achievements_CopyUnlockedAchievementByAchievementId"]
13261    pub fn EOS_Achievements_UnlockedAchievement_Release(
13262        Achievement: *mut EOS_Achievements_UnlockedAchievement,
13263    );
13264}
13265#[repr(C)]
13266#[derive(Debug, Copy, Clone)]
13267pub struct EOS_StatsHandle {
13268    _unused: [u8; 0],
13269}
13270pub type EOS_HStats = *mut EOS_StatsHandle;
13271#[doc = " Contains information about a single stat to ingest."]
13272#[repr(C)]
13273#[derive(Debug, Copy, Clone)]
13274pub struct _tagEOS_Stats_IngestData {
13275    #[doc = " API Version: Set this to EOS_STATS_INGESTDATA_API_LATEST."]
13276    pub ApiVersion: i32,
13277    #[doc = " The name of the stat to ingest."]
13278    pub StatName: *const ::std::os::raw::c_char,
13279    #[doc = " The amount to ingest the stat."]
13280    pub IngestAmount: i32,
13281}
13282impl Default for _tagEOS_Stats_IngestData {
13283    fn default() -> Self {
13284        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13285        unsafe {
13286            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13287            s.assume_init()
13288        }
13289    }
13290}
13291#[doc = " Contains information about a single stat to ingest."]
13292pub type EOS_Stats_IngestData = _tagEOS_Stats_IngestData;
13293#[doc = " Input parameters for the EOS_Stats_IngestStat function."]
13294#[repr(C)]
13295#[derive(Debug, Copy, Clone)]
13296pub struct _tagEOS_Stats_IngestStatOptions {
13297    #[doc = " API Version: Set this to EOS_STATS_INGESTSTAT_API_LATEST."]
13298    pub ApiVersion: i32,
13299    #[doc = " The Product User ID of the local user requesting the ingest.  Set to null for dedicated server."]
13300    pub LocalUserId: EOS_ProductUserId,
13301    #[doc = " Stats to ingest."]
13302    pub Stats: *const EOS_Stats_IngestData,
13303    #[doc = " The number of stats to ingest, may not exceed EOS_STATS_MAX_INGEST_STATS."]
13304    pub StatsCount: u32,
13305    #[doc = " The Product User ID for the user whose stat is being ingested."]
13306    pub TargetUserId: EOS_ProductUserId,
13307}
13308impl Default for _tagEOS_Stats_IngestStatOptions {
13309    fn default() -> Self {
13310        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13311        unsafe {
13312            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13313            s.assume_init()
13314        }
13315    }
13316}
13317#[doc = " Input parameters for the EOS_Stats_IngestStat function."]
13318pub type EOS_Stats_IngestStatOptions = _tagEOS_Stats_IngestStatOptions;
13319#[doc = " Data containing the result information for an ingest stat request.\n\n NOTE: A result code of EOS_Success indicates the ingest request\n reached the server successfully, but does not guarantee successful processing.\n For example, if an incorrect StatName value is provided in the ingest call,\n processing may still fail.\n"]
13320#[repr(C)]
13321#[derive(Debug, Copy, Clone)]
13322pub struct _tagEOS_Stats_IngestStatCompleteCallbackInfo {
13323    #[doc = " Result code for the operation. EOS_Success is returned for a successful request, other codes indicate an error."]
13324    pub ResultCode: EOS_EResult,
13325    #[doc = " Context that was passed into EOS_Stats_IngestStat."]
13326    pub ClientData: *mut ::std::os::raw::c_void,
13327    #[doc = " The Product User ID for the user requesting the ingest"]
13328    pub LocalUserId: EOS_ProductUserId,
13329    #[doc = " The Product User ID for the user whose stat is being ingested"]
13330    pub TargetUserId: EOS_ProductUserId,
13331}
13332impl Default for _tagEOS_Stats_IngestStatCompleteCallbackInfo {
13333    fn default() -> Self {
13334        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13335        unsafe {
13336            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13337            s.assume_init()
13338        }
13339    }
13340}
13341#[doc = " Data containing the result information for an ingest stat request.\n\n NOTE: A result code of EOS_Success indicates the ingest request\n reached the server successfully, but does not guarantee successful processing.\n For example, if an incorrect StatName value is provided in the ingest call,\n processing may still fail.\n"]
13342pub type EOS_Stats_IngestStatCompleteCallbackInfo = _tagEOS_Stats_IngestStatCompleteCallbackInfo;
13343#[doc = " Function prototype definition for callbacks passed to EOS_Stats_IngestStat\n @param Data A EOS_Stats_IngestStatCompleteCallbackInfo containing the output information and result"]
13344pub type EOS_Stats_OnIngestStatCompleteCallback = ::std::option::Option<
13345    unsafe extern "C" fn(Data: *const EOS_Stats_IngestStatCompleteCallbackInfo),
13346>;
13347#[doc = " Input parameters for the EOS_Stats_QueryStats function."]
13348#[repr(C)]
13349#[derive(Debug, Copy, Clone)]
13350pub struct _tagEOS_Stats_QueryStatsOptions {
13351    #[doc = " API Version: Set this to EOS_STATS_QUERYSTATS_API_LATEST."]
13352    pub ApiVersion: i32,
13353    #[doc = " The Product User ID of the local user requesting the stats. Set to null for dedicated server."]
13354    pub LocalUserId: EOS_ProductUserId,
13355    #[doc = " If not EOS_STATS_TIME_UNDEFINED then this is the POSIX timestamp for start time (Optional - set to EOS_STATS_TIME_UNDEFINED to ignore this parameter)."]
13356    pub StartTime: i64,
13357    #[doc = " If not EOS_STATS_TIME_UNDEFINED then this is the POSIX timestamp for end time (Optional - set to EOS_STATS_TIME_UNDEFINED to ignore this parameter)."]
13358    pub EndTime: i64,
13359    #[doc = " An array of stat names to query for (Optional - set to nullptr to query for all stats)."]
13360    pub StatNames: *mut *const ::std::os::raw::c_char,
13361    #[doc = " The number of stat names included in query (Optional - set to 0 when querying for all stats), may not exceed EOS_STATS_MAX_QUERY_STATS."]
13362    pub StatNamesCount: u32,
13363    #[doc = " The Product User ID for the user whose stats are being retrieved"]
13364    pub TargetUserId: EOS_ProductUserId,
13365}
13366impl Default for _tagEOS_Stats_QueryStatsOptions {
13367    fn default() -> Self {
13368        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13369        unsafe {
13370            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13371            s.assume_init()
13372        }
13373    }
13374}
13375#[doc = " Input parameters for the EOS_Stats_QueryStats function."]
13376pub type EOS_Stats_QueryStatsOptions = _tagEOS_Stats_QueryStatsOptions;
13377#[doc = " Contains information about a single player stat."]
13378#[repr(C)]
13379#[derive(Debug, Copy, Clone)]
13380pub struct _tagEOS_Stats_Stat {
13381    #[doc = " API Version: Set this to EOS_STATS_STAT_API_LATEST."]
13382    pub ApiVersion: i32,
13383    #[doc = " Name of the stat."]
13384    pub Name: *const ::std::os::raw::c_char,
13385    #[doc = " If not EOS_STATS_TIME_UNDEFINED then this is the POSIX timestamp for start time."]
13386    pub StartTime: i64,
13387    #[doc = " If not EOS_STATS_TIME_UNDEFINED then this is the POSIX timestamp for end time."]
13388    pub EndTime: i64,
13389    #[doc = " Current value for the stat."]
13390    pub Value: i32,
13391}
13392impl Default for _tagEOS_Stats_Stat {
13393    fn default() -> Self {
13394        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13395        unsafe {
13396            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13397            s.assume_init()
13398        }
13399    }
13400}
13401#[doc = " Contains information about a single player stat."]
13402pub type EOS_Stats_Stat = _tagEOS_Stats_Stat;
13403#[doc = " Input parameters for the EOS_Stats_GetStatsCount function."]
13404#[repr(C)]
13405#[derive(Debug, Copy, Clone)]
13406pub struct _tagEOS_Stats_GetStatCountOptions {
13407    #[doc = " API Version: Set this to EOS_STATS_GETSTATSCOUNT_API_LATEST."]
13408    pub ApiVersion: i32,
13409    #[doc = " The Product User ID for the user whose stats are being counted"]
13410    pub TargetUserId: EOS_ProductUserId,
13411}
13412impl Default for _tagEOS_Stats_GetStatCountOptions {
13413    fn default() -> Self {
13414        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13415        unsafe {
13416            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13417            s.assume_init()
13418        }
13419    }
13420}
13421#[doc = " Input parameters for the EOS_Stats_GetStatsCount function."]
13422pub type EOS_Stats_GetStatCountOptions = _tagEOS_Stats_GetStatCountOptions;
13423#[doc = " Input parameters for the EOS_Stats_CopyStatByIndex function."]
13424#[repr(C)]
13425#[derive(Debug, Copy, Clone)]
13426pub struct _tagEOS_Stats_CopyStatByIndexOptions {
13427    #[doc = " API Version: Set this to EOS_STATS_COPYSTATBYINDEX_API_LATEST."]
13428    pub ApiVersion: i32,
13429    #[doc = " The Product User ID of the user who owns the stat"]
13430    pub TargetUserId: EOS_ProductUserId,
13431    #[doc = " Index of the stat to retrieve from the cache"]
13432    pub StatIndex: u32,
13433}
13434impl Default for _tagEOS_Stats_CopyStatByIndexOptions {
13435    fn default() -> Self {
13436        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13437        unsafe {
13438            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13439            s.assume_init()
13440        }
13441    }
13442}
13443#[doc = " Input parameters for the EOS_Stats_CopyStatByIndex function."]
13444pub type EOS_Stats_CopyStatByIndexOptions = _tagEOS_Stats_CopyStatByIndexOptions;
13445#[doc = " Input parameters for the EOS_Stats_CopyStatByName function."]
13446#[repr(C)]
13447#[derive(Debug, Copy, Clone)]
13448pub struct _tagEOS_Stats_CopyStatByNameOptions {
13449    #[doc = " API Version: Set this to EOS_STATS_COPYSTATBYNAME_API_LATEST."]
13450    pub ApiVersion: i32,
13451    #[doc = " The Product User ID of the user who owns the stat"]
13452    pub TargetUserId: EOS_ProductUserId,
13453    #[doc = " Name of the stat to retrieve from the cache"]
13454    pub Name: *const ::std::os::raw::c_char,
13455}
13456impl Default for _tagEOS_Stats_CopyStatByNameOptions {
13457    fn default() -> Self {
13458        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13459        unsafe {
13460            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13461            s.assume_init()
13462        }
13463    }
13464}
13465#[doc = " Input parameters for the EOS_Stats_CopyStatByName function."]
13466pub type EOS_Stats_CopyStatByNameOptions = _tagEOS_Stats_CopyStatByNameOptions;
13467unsafe extern "C" {
13468    #[doc = " Release the memory associated with a stat. This must be called on data retrieved from EOS_Stats_CopyStatByIndex or EOS_Stats_CopyStatByName.\n\n @param Stat - The stat data to release.\n\n @see EOS_Stats_Stat\n @see EOS_Stats_CopyStatByIndex\n @see EOS_Stats_CopyStatByName"]
13469    pub fn EOS_Stats_Stat_Release(Stat: *mut EOS_Stats_Stat);
13470}
13471#[doc = " Data containing the result information for querying a player's stats request."]
13472#[repr(C)]
13473#[derive(Debug, Copy, Clone)]
13474pub struct _tagEOS_Stats_OnQueryStatsCompleteCallbackInfo {
13475    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
13476    pub ResultCode: EOS_EResult,
13477    #[doc = " Context that was passed into EOS_Stats_QueryStats"]
13478    pub ClientData: *mut ::std::os::raw::c_void,
13479    #[doc = " The Product User ID of the user who initiated this request"]
13480    pub LocalUserId: EOS_ProductUserId,
13481    #[doc = " The Product User ID whose stats which were retrieved"]
13482    pub TargetUserId: EOS_ProductUserId,
13483}
13484impl Default for _tagEOS_Stats_OnQueryStatsCompleteCallbackInfo {
13485    fn default() -> Self {
13486        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13487        unsafe {
13488            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13489            s.assume_init()
13490        }
13491    }
13492}
13493#[doc = " Data containing the result information for querying a player's stats request."]
13494pub type EOS_Stats_OnQueryStatsCompleteCallbackInfo =
13495    _tagEOS_Stats_OnQueryStatsCompleteCallbackInfo;
13496#[doc = " Function prototype definition for callbacks passed to EOS_Stats_QueryStats\n\n @param Data A EOS_Stats_OnQueryStatsCompleteCallbackInfo containing the output information and result\n\n @see EOS_Stats_Stat_Release"]
13497pub type EOS_Stats_OnQueryStatsCompleteCallback = ::std::option::Option<
13498    unsafe extern "C" fn(Data: *const EOS_Stats_OnQueryStatsCompleteCallbackInfo),
13499>;
13500#[repr(C)]
13501#[derive(Debug, Copy, Clone)]
13502pub struct EOS_LeaderboardsHandle {
13503    _unused: [u8; 0],
13504}
13505pub type EOS_HLeaderboards = *mut EOS_LeaderboardsHandle;
13506#[doc = " Input parameters for the EOS_Leaderboards_QueryLeaderboardDefinitions function.\n StartTime and EndTime are optional parameters, they can be used to limit the list of definitions\n to overlap the time window specified."]
13507#[repr(C)]
13508#[derive(Debug, Copy, Clone)]
13509pub struct _tagEOS_Leaderboards_QueryLeaderboardDefinitionsOptions {
13510    #[doc = " API Version: Set this to EOS_LEADERBOARDS_QUERYLEADERBOARDDEFINITIONS_API_LATEST."]
13511    pub ApiVersion: i32,
13512    #[doc = " An optional POSIX timestamp for the leaderboard's start time, or EOS_LEADERBOARDS_TIME_UNDEFINED"]
13513    pub StartTime: i64,
13514    #[doc = " An optional POSIX timestamp for the leaderboard's end time, or EOS_LEADERBOARDS_TIME_UNDEFINED"]
13515    pub EndTime: i64,
13516    #[doc = " Product User ID for user who is querying definitions.\n Must be set when using a client policy that requires a valid logged in user.\n Not used for Dedicated Server where no user is available."]
13517    pub LocalUserId: EOS_ProductUserId,
13518}
13519impl Default for _tagEOS_Leaderboards_QueryLeaderboardDefinitionsOptions {
13520    fn default() -> Self {
13521        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13522        unsafe {
13523            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13524            s.assume_init()
13525        }
13526    }
13527}
13528#[doc = " Input parameters for the EOS_Leaderboards_QueryLeaderboardDefinitions function.\n StartTime and EndTime are optional parameters, they can be used to limit the list of definitions\n to overlap the time window specified."]
13529pub type EOS_Leaderboards_QueryLeaderboardDefinitionsOptions =
13530    _tagEOS_Leaderboards_QueryLeaderboardDefinitionsOptions;
13531#[doc = " Minimum"]
13532pub const EOS_ELeaderboardAggregation_EOS_LA_Min: EOS_ELeaderboardAggregation = 0;
13533#[doc = " Maximum"]
13534pub const EOS_ELeaderboardAggregation_EOS_LA_Max: EOS_ELeaderboardAggregation = 1;
13535#[doc = " Sum"]
13536pub const EOS_ELeaderboardAggregation_EOS_LA_Sum: EOS_ELeaderboardAggregation = 2;
13537#[doc = " Latest"]
13538pub const EOS_ELeaderboardAggregation_EOS_LA_Latest: EOS_ELeaderboardAggregation = 3;
13539pub const EOS_ELeaderboardAggregation___EOS_ELeaderboardAggregation_PAD_INT32__:
13540    EOS_ELeaderboardAggregation = 2147483647;
13541#[doc = " An enumeration of the different leaderboard aggregation types."]
13542pub type EOS_ELeaderboardAggregation = ::std::os::raw::c_int;
13543#[doc = " Contains information about a single leaderboard definition"]
13544#[repr(C)]
13545#[derive(Debug, Copy, Clone)]
13546pub struct _tagEOS_Leaderboards_Definition {
13547    #[doc = " API Version: Set this to EOS_LEADERBOARDS_DEFINITION_API_LATEST."]
13548    pub ApiVersion: i32,
13549    #[doc = " Unique ID to identify leaderboard."]
13550    pub LeaderboardId: *const ::std::os::raw::c_char,
13551    #[doc = " Name of stat used to rank leaderboard."]
13552    pub StatName: *const ::std::os::raw::c_char,
13553    #[doc = " Aggregation used to sort leaderboard."]
13554    pub Aggregation: EOS_ELeaderboardAggregation,
13555    #[doc = " The POSIX timestamp for the start time, or EOS_LEADERBOARDS_TIME_UNDEFINED."]
13556    pub StartTime: i64,
13557    #[doc = " The POSIX timestamp for the end time, or EOS_LEADERBOARDS_TIME_UNDEFINED."]
13558    pub EndTime: i64,
13559}
13560impl Default for _tagEOS_Leaderboards_Definition {
13561    fn default() -> Self {
13562        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13563        unsafe {
13564            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13565            s.assume_init()
13566        }
13567    }
13568}
13569#[doc = " Contains information about a single leaderboard definition"]
13570pub type EOS_Leaderboards_Definition = _tagEOS_Leaderboards_Definition;
13571#[doc = " Input parameters for the EOS_Leaderboards_GetLeaderboardDefinitionCount function."]
13572#[repr(C)]
13573#[derive(Debug, Default, Copy, Clone)]
13574pub struct _tagEOS_Leaderboards_GetLeaderboardDefinitionCountOptions {
13575    #[doc = " API Version: Set this to EOS_LEADERBOARDS_GETLEADERBOARDDEFINITIONCOUNT_API_LATEST."]
13576    pub ApiVersion: i32,
13577}
13578#[doc = " Input parameters for the EOS_Leaderboards_GetLeaderboardDefinitionCount function."]
13579pub type EOS_Leaderboards_GetLeaderboardDefinitionCountOptions =
13580    _tagEOS_Leaderboards_GetLeaderboardDefinitionCountOptions;
13581#[doc = " Input parameters for the EOS_Leaderboards_CopyLeaderboardDefinitionByIndex function."]
13582#[repr(C)]
13583#[derive(Debug, Default, Copy, Clone)]
13584pub struct _tagEOS_Leaderboards_CopyLeaderboardDefinitionByIndexOptions {
13585    #[doc = " API Version: Set this to EOS_LEADERBOARDS_COPYLEADERBOARDDEFINITIONBYINDEX_API_LATEST."]
13586    pub ApiVersion: i32,
13587    #[doc = " Index of the leaderboard definition to retrieve from the cache"]
13588    pub LeaderboardIndex: u32,
13589}
13590#[doc = " Input parameters for the EOS_Leaderboards_CopyLeaderboardDefinitionByIndex function."]
13591pub type EOS_Leaderboards_CopyLeaderboardDefinitionByIndexOptions =
13592    _tagEOS_Leaderboards_CopyLeaderboardDefinitionByIndexOptions;
13593#[doc = " Input parameters for the EOS_Leaderboards_CopyLeaderboardDefinitionByLeaderboardId function."]
13594#[repr(C)]
13595#[derive(Debug, Copy, Clone)]
13596pub struct _tagEOS_Leaderboards_CopyLeaderboardDefinitionByLeaderboardIdOptions {
13597    #[doc = " API Version: Set this to EOS_LEADERBOARDS_COPYLEADERBOARDDEFINITIONBYLEADERBOARDID_API_LATEST."]
13598    pub ApiVersion: i32,
13599    #[doc = " The ID of the leaderboard whose definition you want to copy from the cache"]
13600    pub LeaderboardId: *const ::std::os::raw::c_char,
13601}
13602impl Default for _tagEOS_Leaderboards_CopyLeaderboardDefinitionByLeaderboardIdOptions {
13603    fn default() -> Self {
13604        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13605        unsafe {
13606            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13607            s.assume_init()
13608        }
13609    }
13610}
13611#[doc = " Input parameters for the EOS_Leaderboards_CopyLeaderboardDefinitionByLeaderboardId function."]
13612pub type EOS_Leaderboards_CopyLeaderboardDefinitionByLeaderboardIdOptions =
13613    _tagEOS_Leaderboards_CopyLeaderboardDefinitionByLeaderboardIdOptions;
13614unsafe extern "C" {
13615    #[doc = " Release the memory associated with a leaderboard definition. This must be called on data retrieved from\n EOS_Leaderboards_CopyLeaderboardDefinitionByIndex or EOS_Leaderboards_CopyLeaderboardDefinitionByLeaderboardId.\n\n @param LeaderboardDefinition - The Leaderboard definition to release.\n\n @see EOS_Leaderboards_Definition\n @see EOS_Leaderboards_CopyLeaderboardDefinitionByIndex\n @see EOS_Leaderboards_CopyLeaderboardDefinitionByLeaderboardId"]
13616    pub fn EOS_Leaderboards_Definition_Release(
13617        LeaderboardDefinition: *mut EOS_Leaderboards_Definition,
13618    );
13619}
13620#[doc = " Data containing the result information for a query leaderboard definitions request."]
13621#[repr(C)]
13622#[derive(Debug, Copy, Clone)]
13623pub struct _tagEOS_Leaderboards_OnQueryLeaderboardDefinitionsCompleteCallbackInfo {
13624    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
13625    pub ResultCode: EOS_EResult,
13626    #[doc = " Context that was passed into EOS_Leaderboards_QueryLeaderboardDefinitions."]
13627    pub ClientData: *mut ::std::os::raw::c_void,
13628}
13629impl Default for _tagEOS_Leaderboards_OnQueryLeaderboardDefinitionsCompleteCallbackInfo {
13630    fn default() -> Self {
13631        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13632        unsafe {
13633            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13634            s.assume_init()
13635        }
13636    }
13637}
13638#[doc = " Data containing the result information for a query leaderboard definitions request."]
13639pub type EOS_Leaderboards_OnQueryLeaderboardDefinitionsCompleteCallbackInfo =
13640    _tagEOS_Leaderboards_OnQueryLeaderboardDefinitionsCompleteCallbackInfo;
13641#[doc = " Function prototype definition for callbacks passed to EOS_Leaderboards_QueryLeaderboardDefinitions\n @param Data A EOS_Leaderboards_OnQueryLeaderboardDefinitionsCompleteCallbackInfo containing the output information and result"]
13642pub type EOS_Leaderboards_OnQueryLeaderboardDefinitionsCompleteCallback = ::std::option::Option<
13643    unsafe extern "C" fn(
13644        Data: *const EOS_Leaderboards_OnQueryLeaderboardDefinitionsCompleteCallbackInfo,
13645    ),
13646>;
13647#[doc = " Contains information about a single stat to query with user scores."]
13648#[repr(C)]
13649#[derive(Debug, Copy, Clone)]
13650pub struct _tagEOS_Leaderboards_UserScoresQueryStatInfo {
13651    #[doc = " API Version: Set this to EOS_LEADERBOARDS_USERSCORESQUERYSTATINFO_API_LATEST."]
13652    pub ApiVersion: i32,
13653    #[doc = " The name of the stat to query."]
13654    pub StatName: *const ::std::os::raw::c_char,
13655    #[doc = " Aggregation used to sort the cached user scores."]
13656    pub Aggregation: EOS_ELeaderboardAggregation,
13657}
13658impl Default for _tagEOS_Leaderboards_UserScoresQueryStatInfo {
13659    fn default() -> Self {
13660        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13661        unsafe {
13662            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13663            s.assume_init()
13664        }
13665    }
13666}
13667#[doc = " Contains information about a single stat to query with user scores."]
13668pub type EOS_Leaderboards_UserScoresQueryStatInfo = _tagEOS_Leaderboards_UserScoresQueryStatInfo;
13669#[doc = " Input parameters for the EOS_Leaderboards_QueryLeaderboardUserScores function."]
13670#[repr(C)]
13671#[derive(Debug, Copy, Clone)]
13672pub struct _tagEOS_Leaderboards_QueryLeaderboardUserScoresOptions {
13673    #[doc = " API Version: Set this to EOS_LEADERBOARDS_QUERYLEADERBOARDUSERSCORES_API_LATEST."]
13674    pub ApiVersion: i32,
13675    #[doc = " An array of Product User IDs indicating the users whose scores you want to retrieve"]
13676    pub UserIds: *const EOS_ProductUserId,
13677    #[doc = " The number of users included in query"]
13678    pub UserIdsCount: u32,
13679    #[doc = " The stats to be collected, along with the sorting method to use when determining rank order for each stat"]
13680    pub StatInfo: *const EOS_Leaderboards_UserScoresQueryStatInfo,
13681    #[doc = " The number of stats to query"]
13682    pub StatInfoCount: u32,
13683    #[doc = " An optional POSIX timestamp, or EOS_LEADERBOARDS_TIME_UNDEFINED; results will only include scores made after this time"]
13684    pub StartTime: i64,
13685    #[doc = " An optional POSIX timestamp, or EOS_LEADERBOARDS_TIME_UNDEFINED; results will only include scores made before this time"]
13686    pub EndTime: i64,
13687    #[doc = " Product User ID for user who is querying user scores.\n Must be set when using a client policy that requires a valid logged in user.\n Not used for Dedicated Server where no user is available."]
13688    pub LocalUserId: EOS_ProductUserId,
13689}
13690impl Default for _tagEOS_Leaderboards_QueryLeaderboardUserScoresOptions {
13691    fn default() -> Self {
13692        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13693        unsafe {
13694            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13695            s.assume_init()
13696        }
13697    }
13698}
13699#[doc = " Input parameters for the EOS_Leaderboards_QueryLeaderboardUserScores function."]
13700pub type EOS_Leaderboards_QueryLeaderboardUserScoresOptions =
13701    _tagEOS_Leaderboards_QueryLeaderboardUserScoresOptions;
13702#[doc = " Contains information about a single leaderboard user score"]
13703#[repr(C)]
13704#[derive(Debug, Copy, Clone)]
13705pub struct _tagEOS_Leaderboards_LeaderboardUserScore {
13706    #[doc = " API Version: Set this to EOS_LEADERBOARDS_LEADERBOARDUSERSCORE_API_LATEST."]
13707    pub ApiVersion: i32,
13708    #[doc = " The Product User ID of the user who got this score"]
13709    pub UserId: EOS_ProductUserId,
13710    #[doc = " Leaderboard score"]
13711    pub Score: i32,
13712}
13713impl Default for _tagEOS_Leaderboards_LeaderboardUserScore {
13714    fn default() -> Self {
13715        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13716        unsafe {
13717            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13718            s.assume_init()
13719        }
13720    }
13721}
13722#[doc = " Contains information about a single leaderboard user score"]
13723pub type EOS_Leaderboards_LeaderboardUserScore = _tagEOS_Leaderboards_LeaderboardUserScore;
13724#[doc = " Input parameters for the EOS_Leaderboards_GetLeaderboardUserScoreCount function."]
13725#[repr(C)]
13726#[derive(Debug, Copy, Clone)]
13727pub struct _tagEOS_Leaderboards_GetLeaderboardUserScoreCountOptions {
13728    #[doc = " API Version: Set this to EOS_LEADERBOARDS_GETLEADERBOARDUSERSCORECOUNT_API_LATEST."]
13729    pub ApiVersion: i32,
13730    #[doc = " Name of stat used to rank leaderboard."]
13731    pub StatName: *const ::std::os::raw::c_char,
13732}
13733impl Default for _tagEOS_Leaderboards_GetLeaderboardUserScoreCountOptions {
13734    fn default() -> Self {
13735        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13736        unsafe {
13737            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13738            s.assume_init()
13739        }
13740    }
13741}
13742#[doc = " Input parameters for the EOS_Leaderboards_GetLeaderboardUserScoreCount function."]
13743pub type EOS_Leaderboards_GetLeaderboardUserScoreCountOptions =
13744    _tagEOS_Leaderboards_GetLeaderboardUserScoreCountOptions;
13745#[doc = " Input parameters for the EOS_Leaderboards_CopyLeaderboardUserScoreByIndex function."]
13746#[repr(C)]
13747#[derive(Debug, Copy, Clone)]
13748pub struct _tagEOS_Leaderboards_CopyLeaderboardUserScoreByIndexOptions {
13749    #[doc = " API Version: Set this to EOS_LEADERBOARDS_COPYLEADERBOARDUSERSCOREBYINDEX_API_LATEST."]
13750    pub ApiVersion: i32,
13751    #[doc = " Index of the sorted leaderboard user score to retrieve from the cache."]
13752    pub LeaderboardUserScoreIndex: u32,
13753    #[doc = " Name of the stat used to rank the leaderboard."]
13754    pub StatName: *const ::std::os::raw::c_char,
13755}
13756impl Default for _tagEOS_Leaderboards_CopyLeaderboardUserScoreByIndexOptions {
13757    fn default() -> Self {
13758        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13759        unsafe {
13760            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13761            s.assume_init()
13762        }
13763    }
13764}
13765#[doc = " Input parameters for the EOS_Leaderboards_CopyLeaderboardUserScoreByIndex function."]
13766pub type EOS_Leaderboards_CopyLeaderboardUserScoreByIndexOptions =
13767    _tagEOS_Leaderboards_CopyLeaderboardUserScoreByIndexOptions;
13768#[doc = " Input parameters for the EOS_Leaderboards_CopyLeaderboardUserScoreByUserId function."]
13769#[repr(C)]
13770#[derive(Debug, Copy, Clone)]
13771pub struct _tagEOS_Leaderboards_CopyLeaderboardUserScoreByUserIdOptions {
13772    #[doc = " API Version: Set this to EOS_LEADERBOARDS_COPYLEADERBOARDUSERSCOREBYUSERID_API_LATEST."]
13773    pub ApiVersion: i32,
13774    #[doc = " The Product User ID to look for when copying leaderboard score data from the cache"]
13775    pub UserId: EOS_ProductUserId,
13776    #[doc = " The name of the stat that is used to rank this leaderboard"]
13777    pub StatName: *const ::std::os::raw::c_char,
13778}
13779impl Default for _tagEOS_Leaderboards_CopyLeaderboardUserScoreByUserIdOptions {
13780    fn default() -> Self {
13781        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13782        unsafe {
13783            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13784            s.assume_init()
13785        }
13786    }
13787}
13788#[doc = " Input parameters for the EOS_Leaderboards_CopyLeaderboardUserScoreByUserId function."]
13789pub type EOS_Leaderboards_CopyLeaderboardUserScoreByUserIdOptions =
13790    _tagEOS_Leaderboards_CopyLeaderboardUserScoreByUserIdOptions;
13791unsafe extern "C" {
13792    #[doc = " Release the memory associated with leaderboard user score. This must be called on data retrieved from\n EOS_Leaderboards_CopyLeaderboardUserScoreByIndex or EOS_Leaderboards_CopyLeaderboardUserScoreByUserId.\n\n @param LeaderboardUserScore - The Leaderboard user score to release.\n\n @see EOS_Leaderboards_LeaderboardUserScore\n @see EOS_Leaderboards_CopyLeaderboardUserScoreByIndex\n @see EOS_Leaderboards_CopyLeaderboardUserScoreByUserId"]
13793    pub fn EOS_Leaderboards_LeaderboardUserScore_Release(
13794        LeaderboardUserScore: *mut EOS_Leaderboards_LeaderboardUserScore,
13795    );
13796}
13797#[doc = " Data containing the result information for a query leaderboard user scores request."]
13798#[repr(C)]
13799#[derive(Debug, Copy, Clone)]
13800pub struct _tagEOS_Leaderboards_OnQueryLeaderboardUserScoresCompleteCallbackInfo {
13801    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
13802    pub ResultCode: EOS_EResult,
13803    #[doc = " Context that was passed into EOS_Leaderboards_QueryLeaderboardUserScores."]
13804    pub ClientData: *mut ::std::os::raw::c_void,
13805}
13806impl Default for _tagEOS_Leaderboards_OnQueryLeaderboardUserScoresCompleteCallbackInfo {
13807    fn default() -> Self {
13808        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13809        unsafe {
13810            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13811            s.assume_init()
13812        }
13813    }
13814}
13815#[doc = " Data containing the result information for a query leaderboard user scores request."]
13816pub type EOS_Leaderboards_OnQueryLeaderboardUserScoresCompleteCallbackInfo =
13817    _tagEOS_Leaderboards_OnQueryLeaderboardUserScoresCompleteCallbackInfo;
13818#[doc = " Function prototype definition for callbacks passed to EOS_Leaderboards_QueryLeaderboardUserScores\n @param Data A EOS_Leaderboards_OnQueryLeaderboardUserScoresCompleteCallbackInfo containing the output information and result"]
13819pub type EOS_Leaderboards_OnQueryLeaderboardUserScoresCompleteCallback = ::std::option::Option<
13820    unsafe extern "C" fn(
13821        Data: *const EOS_Leaderboards_OnQueryLeaderboardUserScoresCompleteCallbackInfo,
13822    ),
13823>;
13824#[doc = " Input parameters for the EOS_Leaderboards_QueryLeaderboardRanks function.\n\n @see EOS_Leaderboards_Definition"]
13825#[repr(C)]
13826#[derive(Debug, Copy, Clone)]
13827pub struct _tagEOS_Leaderboards_QueryLeaderboardRanksOptions {
13828    #[doc = " API Version: Set this to EOS_LEADERBOARDS_QUERYLEADERBOARDRANKS_API_LATEST."]
13829    pub ApiVersion: i32,
13830    #[doc = " The ID of the leaderboard whose information you want to retrieve."]
13831    pub LeaderboardId: *const ::std::os::raw::c_char,
13832    #[doc = " Product User ID for user who is querying ranks.\n Must be set when using a client policy that requires a valid logged in user.\n Not used for Dedicated Server where no user is available."]
13833    pub LocalUserId: EOS_ProductUserId,
13834}
13835impl Default for _tagEOS_Leaderboards_QueryLeaderboardRanksOptions {
13836    fn default() -> Self {
13837        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13838        unsafe {
13839            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13840            s.assume_init()
13841        }
13842    }
13843}
13844#[doc = " Input parameters for the EOS_Leaderboards_QueryLeaderboardRanks function.\n\n @see EOS_Leaderboards_Definition"]
13845pub type EOS_Leaderboards_QueryLeaderboardRanksOptions =
13846    _tagEOS_Leaderboards_QueryLeaderboardRanksOptions;
13847#[doc = " Contains information about a single leaderboard record"]
13848#[repr(C)]
13849#[derive(Debug, Copy, Clone)]
13850pub struct _tagEOS_Leaderboards_LeaderboardRecord {
13851    #[doc = " API Version: Set this to EOS_LEADERBOARDS_LEADERBOARDRECORD_API_LATEST."]
13852    pub ApiVersion: i32,
13853    #[doc = " The Product User ID associated with this record"]
13854    pub UserId: EOS_ProductUserId,
13855    #[doc = " Sorted position on leaderboard"]
13856    pub Rank: u32,
13857    #[doc = " Leaderboard score"]
13858    pub Score: i32,
13859    #[doc = " The latest display name seen for the user since they last time logged in. This is empty if the user does not have a display name set."]
13860    pub UserDisplayName: *const ::std::os::raw::c_char,
13861}
13862impl Default for _tagEOS_Leaderboards_LeaderboardRecord {
13863    fn default() -> Self {
13864        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13865        unsafe {
13866            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13867            s.assume_init()
13868        }
13869    }
13870}
13871#[doc = " Contains information about a single leaderboard record"]
13872pub type EOS_Leaderboards_LeaderboardRecord = _tagEOS_Leaderboards_LeaderboardRecord;
13873#[doc = " Input parameters for the EOS_Leaderboards_GetLeaderboardRecordCount function."]
13874#[repr(C)]
13875#[derive(Debug, Default, Copy, Clone)]
13876pub struct _tagEOS_Leaderboards_GetLeaderboardRecordCountOptions {
13877    #[doc = " API Version: Set this to EOS_LEADERBOARDS_GETLEADERBOARDRECORDCOUNT_API_LATEST."]
13878    pub ApiVersion: i32,
13879}
13880#[doc = " Input parameters for the EOS_Leaderboards_GetLeaderboardRecordCount function."]
13881pub type EOS_Leaderboards_GetLeaderboardRecordCountOptions =
13882    _tagEOS_Leaderboards_GetLeaderboardRecordCountOptions;
13883#[doc = " Input parameters for the EOS_Leaderboards_CopyLeaderboardRecordByIndex function."]
13884#[repr(C)]
13885#[derive(Debug, Default, Copy, Clone)]
13886pub struct _tagEOS_Leaderboards_CopyLeaderboardRecordByIndexOptions {
13887    #[doc = " API Version: Set this to EOS_LEADERBOARDS_COPYLEADERBOARDRECORDBYINDEX_API_LATEST."]
13888    pub ApiVersion: i32,
13889    #[doc = " Index of the leaderboard record to retrieve from the cache"]
13890    pub LeaderboardRecordIndex: u32,
13891}
13892#[doc = " Input parameters for the EOS_Leaderboards_CopyLeaderboardRecordByIndex function."]
13893pub type EOS_Leaderboards_CopyLeaderboardRecordByIndexOptions =
13894    _tagEOS_Leaderboards_CopyLeaderboardRecordByIndexOptions;
13895#[doc = " Input parameters for the EOS_Leaderboards_CopyLeaderboardRecordByUserId function."]
13896#[repr(C)]
13897#[derive(Debug, Copy, Clone)]
13898pub struct _tagEOS_Leaderboards_CopyLeaderboardRecordByUserIdOptions {
13899    #[doc = " API Version: Set this to EOS_LEADERBOARDS_COPYLEADERBOARDRECORDBYUSERID_API_LATEST."]
13900    pub ApiVersion: i32,
13901    #[doc = " Leaderboard data will be copied from the cache if it relates to the user matching this Product User ID"]
13902    pub UserId: EOS_ProductUserId,
13903}
13904impl Default for _tagEOS_Leaderboards_CopyLeaderboardRecordByUserIdOptions {
13905    fn default() -> Self {
13906        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13907        unsafe {
13908            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13909            s.assume_init()
13910        }
13911    }
13912}
13913#[doc = " Input parameters for the EOS_Leaderboards_CopyLeaderboardRecordByUserId function."]
13914pub type EOS_Leaderboards_CopyLeaderboardRecordByUserIdOptions =
13915    _tagEOS_Leaderboards_CopyLeaderboardRecordByUserIdOptions;
13916unsafe extern "C" {
13917    #[doc = " Release the memory associated with leaderboard record. This must be called on data retrieved from\n EOS_Leaderboards_CopyLeaderboardRecordByIndex or EOS_Leaderboards_CopyLeaderboardRecordByUserId.\n\n @param LeaderboardRecord - The Leaderboard record to release.\n\n @see EOS_Leaderboards_LeaderboardRecord\n @see EOS_Leaderboards_CopyLeaderboardRecordByIndex\n @see EOS_Leaderboards_CopyLeaderboardRecordByUserId"]
13918    pub fn EOS_Leaderboards_LeaderboardRecord_Release(
13919        LeaderboardRecord: *mut EOS_Leaderboards_LeaderboardRecord,
13920    );
13921}
13922#[doc = " Data containing the result information for a query leaderboard ranks request."]
13923#[repr(C)]
13924#[derive(Debug, Copy, Clone)]
13925pub struct _tagEOS_Leaderboards_OnQueryLeaderboardRanksCompleteCallbackInfo {
13926    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
13927    pub ResultCode: EOS_EResult,
13928    #[doc = " Context that was passed into EOS_Leaderboards_QueryLeaderboardRanks."]
13929    pub ClientData: *mut ::std::os::raw::c_void,
13930    #[doc = " The Leaderboard ID for the leaderboard that was queried."]
13931    pub LeaderboardId: *const ::std::os::raw::c_char,
13932}
13933impl Default for _tagEOS_Leaderboards_OnQueryLeaderboardRanksCompleteCallbackInfo {
13934    fn default() -> Self {
13935        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13936        unsafe {
13937            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13938            s.assume_init()
13939        }
13940    }
13941}
13942#[doc = " Data containing the result information for a query leaderboard ranks request."]
13943pub type EOS_Leaderboards_OnQueryLeaderboardRanksCompleteCallbackInfo =
13944    _tagEOS_Leaderboards_OnQueryLeaderboardRanksCompleteCallbackInfo;
13945#[doc = " Function prototype definition for callbacks passed to EOS_Leaderboards_QueryLeaderboardRanks\n @param Data A EOS_Leaderboards_OnQueryLeaderboardRanksCompleteCallbackInfo containing the output information and result"]
13946pub type EOS_Leaderboards_OnQueryLeaderboardRanksCompleteCallback = ::std::option::Option<
13947    unsafe extern "C" fn(Data: *const EOS_Leaderboards_OnQueryLeaderboardRanksCompleteCallbackInfo),
13948>;
13949unsafe extern "C" {
13950    #[doc = " Do not use. Alias to the previous API name for backwards compatibility in compilation."]
13951    pub fn EOS_Leaderboards_LeaderboardDefinition_Release(
13952        LeaderboardDefinition: *mut EOS_Leaderboards_Definition,
13953    );
13954}
13955#[repr(C)]
13956#[derive(Debug, Copy, Clone)]
13957pub struct EOS_ModsHandle {
13958    _unused: [u8; 0],
13959}
13960pub type EOS_HMods = *mut EOS_ModsHandle;
13961#[doc = " EOS_Mod_Identifier is used to identify a mod."]
13962#[repr(C)]
13963#[derive(Debug, Copy, Clone)]
13964pub struct _tagEOS_Mod_Identifier {
13965    #[doc = " API Version: Set this to EOS_MOD_IDENTIFIER_API_LATEST."]
13966    pub ApiVersion: i32,
13967    #[doc = " Product namespace id in which this mod item exists"]
13968    pub NamespaceId: *const ::std::os::raw::c_char,
13969    #[doc = " Item id of the Mod"]
13970    pub ItemId: *const ::std::os::raw::c_char,
13971    #[doc = " Artifact id of the Mod"]
13972    pub ArtifactId: *const ::std::os::raw::c_char,
13973    #[doc = " Represent mod item title."]
13974    pub Title: *const ::std::os::raw::c_char,
13975    #[doc = " Represent mod item version."]
13976    pub Version: *const ::std::os::raw::c_char,
13977}
13978impl Default for _tagEOS_Mod_Identifier {
13979    fn default() -> Self {
13980        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13981        unsafe {
13982            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13983            s.assume_init()
13984        }
13985    }
13986}
13987#[doc = " EOS_Mod_Identifier is used to identify a mod."]
13988pub type EOS_Mod_Identifier = _tagEOS_Mod_Identifier;
13989#[doc = " Input parameters for the EOS_Mods_InstallMod Function."]
13990#[repr(C)]
13991#[derive(Debug, Copy, Clone)]
13992pub struct _tagEOS_Mods_InstallModOptions {
13993    #[doc = " API Version: Set this to EOS_MODS_INSTALLMOD_API_LATEST."]
13994    pub ApiVersion: i32,
13995    #[doc = " The Epic Account ID of the user for which the mod should be installed"]
13996    pub LocalUserId: EOS_EpicAccountId,
13997    #[doc = " The mod to install"]
13998    pub Mod: *const EOS_Mod_Identifier,
13999    #[doc = " Indicates whether the mod should be uninstalled after exiting the game or not."]
14000    pub bRemoveAfterExit: EOS_Bool,
14001}
14002impl Default for _tagEOS_Mods_InstallModOptions {
14003    fn default() -> Self {
14004        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14005        unsafe {
14006            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14007            s.assume_init()
14008        }
14009    }
14010}
14011#[doc = " Input parameters for the EOS_Mods_InstallMod Function."]
14012pub type EOS_Mods_InstallModOptions = _tagEOS_Mods_InstallModOptions;
14013#[doc = " Output parameters for the EOS_Mods_InstallMod Function. These parameters are received through the callback provided to EOS_Mods_InstallMod"]
14014#[repr(C)]
14015#[derive(Debug, Copy, Clone)]
14016pub struct _tagEOS_Mods_InstallModCallbackInfo {
14017    #[doc = " Result code for the operation. EOS_Success is returned if the installation was successful, otherwise one of the error codes is returned."]
14018    pub ResultCode: EOS_EResult,
14019    #[doc = " The Epic Account ID of the user for which mod installation was requested"]
14020    pub LocalUserId: EOS_EpicAccountId,
14021    #[doc = " Context that is passed into EOS_Mods_InstallMod"]
14022    pub ClientData: *mut ::std::os::raw::c_void,
14023    #[doc = " Mod for which installation was requested"]
14024    pub Mod: *const EOS_Mod_Identifier,
14025}
14026impl Default for _tagEOS_Mods_InstallModCallbackInfo {
14027    fn default() -> Self {
14028        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14029        unsafe {
14030            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14031            s.assume_init()
14032        }
14033    }
14034}
14035#[doc = " Output parameters for the EOS_Mods_InstallMod Function. These parameters are received through the callback provided to EOS_Mods_InstallMod"]
14036pub type EOS_Mods_InstallModCallbackInfo = _tagEOS_Mods_InstallModCallbackInfo;
14037#[doc = " Function prototype definition for callbacks passed to EOS_Mods_InstallMod\n @param Data A EOS_Mods_InstallModCallbackInfo containing the output information and result"]
14038pub type EOS_Mods_OnInstallModCallback =
14039    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Mods_InstallModCallbackInfo)>;
14040#[doc = " Input parameters for the EOS_Mods_UninstallMod Function."]
14041#[repr(C)]
14042#[derive(Debug, Copy, Clone)]
14043pub struct _tagEOS_Mods_UninstallModOptions {
14044    #[doc = " API Version: Set this to EOS_MODS_UNINSTALLMOD_API_LATEST."]
14045    pub ApiVersion: i32,
14046    #[doc = " The Epic Account ID of the user for which the mod should be uninstalled"]
14047    pub LocalUserId: EOS_EpicAccountId,
14048    #[doc = " The mod to uninstall"]
14049    pub Mod: *const EOS_Mod_Identifier,
14050}
14051impl Default for _tagEOS_Mods_UninstallModOptions {
14052    fn default() -> Self {
14053        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14054        unsafe {
14055            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14056            s.assume_init()
14057        }
14058    }
14059}
14060#[doc = " Input parameters for the EOS_Mods_UninstallMod Function."]
14061pub type EOS_Mods_UninstallModOptions = _tagEOS_Mods_UninstallModOptions;
14062#[doc = " Output parameters for the EOS_Mods_UninstallMod Function. These parameters are received through the callback provided to EOS_Mods_UninstallMod"]
14063#[repr(C)]
14064#[derive(Debug, Copy, Clone)]
14065pub struct _tagEOS_Mods_UninstallModCallbackInfo {
14066    #[doc = " Result code for the operation. EOS_Success is returned if the uninstallation was successful, otherwise one of the error codes is returned."]
14067    pub ResultCode: EOS_EResult,
14068    #[doc = " The Epic Account ID of the user for which mod uninstallation was requested"]
14069    pub LocalUserId: EOS_EpicAccountId,
14070    #[doc = " Context that is passed into EOS_Mods_UninstallMod"]
14071    pub ClientData: *mut ::std::os::raw::c_void,
14072    #[doc = " Mod for which uninstallation was requested"]
14073    pub Mod: *const EOS_Mod_Identifier,
14074}
14075impl Default for _tagEOS_Mods_UninstallModCallbackInfo {
14076    fn default() -> Self {
14077        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14078        unsafe {
14079            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14080            s.assume_init()
14081        }
14082    }
14083}
14084#[doc = " Output parameters for the EOS_Mods_UninstallMod Function. These parameters are received through the callback provided to EOS_Mods_UninstallMod"]
14085pub type EOS_Mods_UninstallModCallbackInfo = _tagEOS_Mods_UninstallModCallbackInfo;
14086#[doc = " Function prototype definition for callbacks passed to EOS_Mods_UninstallMod\n @param Data A EOS_Mods_UninstallModCallbackInfo containing the output information and result"]
14087pub type EOS_Mods_OnUninstallModCallback =
14088    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Mods_UninstallModCallbackInfo)>;
14089#[doc = " Installed mods"]
14090pub const EOS_EModEnumerationType_EOS_MET_INSTALLED: EOS_EModEnumerationType = 0;
14091#[doc = " All available mods"]
14092pub const EOS_EModEnumerationType_EOS_MET_ALL_AVAILABLE: EOS_EModEnumerationType = 1;
14093pub const EOS_EModEnumerationType___EOS_EModEnumerationType_PAD_INT32__: EOS_EModEnumerationType =
14094    2147483647;
14095#[doc = " The type of mod enumeration."]
14096pub type EOS_EModEnumerationType = ::std::os::raw::c_int;
14097#[doc = " Input parameters for the EOS_Mods_EnumerateMods Function."]
14098#[repr(C)]
14099#[derive(Debug, Copy, Clone)]
14100pub struct _tagEOS_Mods_EnumerateModsOptions {
14101    #[doc = " API Version: Set this to EOS_MODS_ENUMERATEMODS_API_LATEST."]
14102    pub ApiVersion: i32,
14103    #[doc = " The Epic Account ID of the user for which the mod should be enumerated"]
14104    pub LocalUserId: EOS_EpicAccountId,
14105    #[doc = " Type of the mods to enumerate"]
14106    pub Type: EOS_EModEnumerationType,
14107}
14108impl Default for _tagEOS_Mods_EnumerateModsOptions {
14109    fn default() -> Self {
14110        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14111        unsafe {
14112            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14113            s.assume_init()
14114        }
14115    }
14116}
14117#[doc = " Input parameters for the EOS_Mods_EnumerateMods Function."]
14118pub type EOS_Mods_EnumerateModsOptions = _tagEOS_Mods_EnumerateModsOptions;
14119#[doc = " Output parameters for the EOS_Mods_EnumerateMods Function. These parameters are received through the callback provided to EOS_Mods_EnumerateMods"]
14120#[repr(C)]
14121#[derive(Debug, Copy, Clone)]
14122pub struct _tagEOS_Mods_EnumerateModsCallbackInfo {
14123    #[doc = " Result code for the operation. EOS_Success is returned if the enumeration was successful, otherwise one of the error codes is returned."]
14124    pub ResultCode: EOS_EResult,
14125    #[doc = " The Epic Account ID of the user for which mod enumeration was requested"]
14126    pub LocalUserId: EOS_EpicAccountId,
14127    #[doc = " Context that is passed into EOS_Mods_EnumerateMods"]
14128    pub ClientData: *mut ::std::os::raw::c_void,
14129    #[doc = " Type of the enumerated mods"]
14130    pub Type: EOS_EModEnumerationType,
14131}
14132impl Default for _tagEOS_Mods_EnumerateModsCallbackInfo {
14133    fn default() -> Self {
14134        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14135        unsafe {
14136            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14137            s.assume_init()
14138        }
14139    }
14140}
14141#[doc = " Output parameters for the EOS_Mods_EnumerateMods Function. These parameters are received through the callback provided to EOS_Mods_EnumerateMods"]
14142pub type EOS_Mods_EnumerateModsCallbackInfo = _tagEOS_Mods_EnumerateModsCallbackInfo;
14143#[doc = " Function prototype definition for callbacks passed to EOS_Mods_EnumerateMods\n @param Data A EOS_Mods_EnumerateModsCallbackInfo containing the output information and result"]
14144pub type EOS_Mods_OnEnumerateModsCallback =
14145    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Mods_EnumerateModsCallbackInfo)>;
14146#[doc = " Data for the EOS_Mods_CopyModInfo function."]
14147#[repr(C)]
14148#[derive(Debug, Copy, Clone)]
14149pub struct _tagEOS_Mods_CopyModInfoOptions {
14150    #[doc = " API Version: Set this to EOS_MODS_COPYMODINFO_API_LATEST."]
14151    pub ApiVersion: i32,
14152    #[doc = " The Epic Account ID of the user for which mods should be copied"]
14153    pub LocalUserId: EOS_EpicAccountId,
14154    #[doc = " Type of the enumerated mod to copy"]
14155    pub Type: EOS_EModEnumerationType,
14156}
14157impl Default for _tagEOS_Mods_CopyModInfoOptions {
14158    fn default() -> Self {
14159        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14160        unsafe {
14161            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14162            s.assume_init()
14163        }
14164    }
14165}
14166#[doc = " Data for the EOS_Mods_CopyModInfo function."]
14167pub type EOS_Mods_CopyModInfoOptions = _tagEOS_Mods_CopyModInfoOptions;
14168#[doc = " Data for the EOS_Mods_CopyModInfo function.\n\n @see EOS_Mods_CopyModInfo\n @see EOS_Mods_ModInfo_Release"]
14169#[repr(C)]
14170#[derive(Debug, Copy, Clone)]
14171pub struct _tagEOS_Mods_ModInfo {
14172    #[doc = " API Version: Set this to EOS_MODS_MODINFO_API_LATEST."]
14173    pub ApiVersion: i32,
14174    #[doc = " The count of enumerated mods"]
14175    pub ModsCount: i32,
14176    #[doc = " The array of enumerated mods or NULL if no such type of mods were enumerated"]
14177    pub Mods: *mut EOS_Mod_Identifier,
14178    #[doc = " Type of the mods"]
14179    pub Type: EOS_EModEnumerationType,
14180}
14181impl Default for _tagEOS_Mods_ModInfo {
14182    fn default() -> Self {
14183        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14184        unsafe {
14185            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14186            s.assume_init()
14187        }
14188    }
14189}
14190#[doc = " Data for the EOS_Mods_CopyModInfo function.\n\n @see EOS_Mods_CopyModInfo\n @see EOS_Mods_ModInfo_Release"]
14191pub type EOS_Mods_ModInfo = _tagEOS_Mods_ModInfo;
14192unsafe extern "C" {
14193    #[doc = " Release the memory associated with an EOS_Mods_ModInfo structure and its sub-objects. This must be called on data retrieved from EOS_Mods_CopyModInfo.\n\n @param ModInfo the info structure to be release\n\n @see EOS_Mods_ModInfo\n @see EOS_Mods_CopyModInfo"]
14194    pub fn EOS_Mods_ModInfo_Release(ModInfo: *mut EOS_Mods_ModInfo);
14195}
14196#[doc = " Input parameters for the EOS_Mods_UpdateMod Function."]
14197#[repr(C)]
14198#[derive(Debug, Copy, Clone)]
14199pub struct _tagEOS_Mods_UpdateModOptions {
14200    #[doc = " API Version: Set this to EOS_MODS_UPDATEMOD_API_LATEST."]
14201    pub ApiVersion: i32,
14202    #[doc = " The Epic Account ID of the user for which the mod should be updated"]
14203    pub LocalUserId: EOS_EpicAccountId,
14204    #[doc = " The mod to update"]
14205    pub Mod: *const EOS_Mod_Identifier,
14206}
14207impl Default for _tagEOS_Mods_UpdateModOptions {
14208    fn default() -> Self {
14209        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14210        unsafe {
14211            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14212            s.assume_init()
14213        }
14214    }
14215}
14216#[doc = " Input parameters for the EOS_Mods_UpdateMod Function."]
14217pub type EOS_Mods_UpdateModOptions = _tagEOS_Mods_UpdateModOptions;
14218#[doc = " Output parameters for the EOS_Mods_UpdateMod Function. These parameters are received through the callback provided to EOS_Mods_UpdateMod"]
14219#[repr(C)]
14220#[derive(Debug, Copy, Clone)]
14221pub struct _tagEOS_Mods_UpdateModCallbackInfo {
14222    #[doc = " Result code for the operation. EOS_Success is returned if the request to update was successful, otherwise one of the error codes is returned."]
14223    pub ResultCode: EOS_EResult,
14224    #[doc = " The Epic Account ID of the user for which mod update was requested"]
14225    pub LocalUserId: EOS_EpicAccountId,
14226    #[doc = " Context that is passed into EOS_Mods_UpdateMod"]
14227    pub ClientData: *mut ::std::os::raw::c_void,
14228    #[doc = " Mod for which update was requested"]
14229    pub Mod: *const EOS_Mod_Identifier,
14230}
14231impl Default for _tagEOS_Mods_UpdateModCallbackInfo {
14232    fn default() -> Self {
14233        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14234        unsafe {
14235            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14236            s.assume_init()
14237        }
14238    }
14239}
14240#[doc = " Output parameters for the EOS_Mods_UpdateMod Function. These parameters are received through the callback provided to EOS_Mods_UpdateMod"]
14241pub type EOS_Mods_UpdateModCallbackInfo = _tagEOS_Mods_UpdateModCallbackInfo;
14242#[doc = " Function prototype definition for callbacks passed to EOS_Mods_UpdateMod\n @param Data A EOS_Mods_UpdateModCallbackInfo containing the output information and result"]
14243pub type EOS_Mods_OnUpdateModCallback =
14244    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_Mods_UpdateModCallbackInfo)>;
14245#[doc = " Arbitrary data that is a unique local identifier for\n a single remote client or peer.\n\n Typically this is a pointer to an object describing the\n player, but it can be anything that is locally unique."]
14246pub type EOS_AntiCheatCommon_ClientHandle = *mut ::std::os::raw::c_void;
14247#[doc = " An ordinary player that requires anti-cheat client protection to play"]
14248pub const EOS_EAntiCheatCommonClientType_EOS_ACCCT_ProtectedClient: EOS_EAntiCheatCommonClientType =
14249    0;
14250#[doc = " The player does not need the anti-cheat client to play because of their platform or other factors"]
14251pub const EOS_EAntiCheatCommonClientType_EOS_ACCCT_UnprotectedClient:
14252    EOS_EAntiCheatCommonClientType = 1;
14253#[doc = " The client is an AI bot, not an actual human"]
14254pub const EOS_EAntiCheatCommonClientType_EOS_ACCCT_AIBot: EOS_EAntiCheatCommonClientType = 2;
14255pub const EOS_EAntiCheatCommonClientType___EOS_EAntiCheatCommonClientType_PAD_INT32__:
14256    EOS_EAntiCheatCommonClientType = 2147483647;
14257#[doc = " Flags describing the type of a remote client"]
14258pub type EOS_EAntiCheatCommonClientType = ::std::os::raw::c_int;
14259#[doc = " Unknown platform"]
14260pub const EOS_EAntiCheatCommonClientPlatform_EOS_ACCCP_Unknown: EOS_EAntiCheatCommonClientPlatform =
14261    0;
14262#[doc = " The client is playing on Windows"]
14263pub const EOS_EAntiCheatCommonClientPlatform_EOS_ACCCP_Windows: EOS_EAntiCheatCommonClientPlatform =
14264    1;
14265#[doc = " The client is playing on Mac"]
14266pub const EOS_EAntiCheatCommonClientPlatform_EOS_ACCCP_Mac: EOS_EAntiCheatCommonClientPlatform = 2;
14267#[doc = " The client is playing on Linux"]
14268pub const EOS_EAntiCheatCommonClientPlatform_EOS_ACCCP_Linux: EOS_EAntiCheatCommonClientPlatform =
14269    3;
14270#[doc = " The client is playing on an Xbox device"]
14271pub const EOS_EAntiCheatCommonClientPlatform_EOS_ACCCP_Xbox: EOS_EAntiCheatCommonClientPlatform = 4;
14272#[doc = " The client is playing on a PlayStation device"]
14273pub const EOS_EAntiCheatCommonClientPlatform_EOS_ACCCP_PlayStation:
14274    EOS_EAntiCheatCommonClientPlatform = 5;
14275#[doc = " The client is playing on a Nintendo device"]
14276pub const EOS_EAntiCheatCommonClientPlatform_EOS_ACCCP_Nintendo:
14277    EOS_EAntiCheatCommonClientPlatform = 6;
14278#[doc = " The client is playing on iOS"]
14279pub const EOS_EAntiCheatCommonClientPlatform_EOS_ACCCP_iOS: EOS_EAntiCheatCommonClientPlatform = 7;
14280#[doc = " The client is playing on Android"]
14281pub const EOS_EAntiCheatCommonClientPlatform_EOS_ACCCP_Android: EOS_EAntiCheatCommonClientPlatform =
14282    8;
14283pub const EOS_EAntiCheatCommonClientPlatform___EOS_EAntiCheatCommonClientPlatform_PAD_INT32__:
14284    EOS_EAntiCheatCommonClientPlatform = 2147483647;
14285#[doc = " Flags describing the platform of a remote client, if known"]
14286pub type EOS_EAntiCheatCommonClientPlatform = ::std::os::raw::c_int;
14287#[doc = " Not used"]
14288pub const EOS_EAntiCheatCommonClientAction_EOS_ACCCA_Invalid: EOS_EAntiCheatCommonClientAction = 0;
14289#[doc = " The client/peer must be removed from the current game session"]
14290pub const EOS_EAntiCheatCommonClientAction_EOS_ACCCA_RemovePlayer:
14291    EOS_EAntiCheatCommonClientAction = 1;
14292pub const EOS_EAntiCheatCommonClientAction___EOS_EAntiCheatCommonClientAction_PAD_INT32__:
14293    EOS_EAntiCheatCommonClientAction = 2147483647;
14294#[doc = " Anti-cheat action values. Applicable to both clients and remote peers."]
14295pub type EOS_EAntiCheatCommonClientAction = ::std::os::raw::c_int;
14296#[doc = " Not used"]
14297pub const EOS_EAntiCheatCommonClientActionReason_EOS_ACCCAR_Invalid:
14298    EOS_EAntiCheatCommonClientActionReason = 0;
14299#[doc = " An internal error occurred"]
14300pub const EOS_EAntiCheatCommonClientActionReason_EOS_ACCCAR_InternalError:
14301    EOS_EAntiCheatCommonClientActionReason = 1;
14302#[doc = " An anti-cheat message received from the client/peer was corrupt or invalid"]
14303pub const EOS_EAntiCheatCommonClientActionReason_EOS_ACCCAR_InvalidMessage:
14304    EOS_EAntiCheatCommonClientActionReason = 2;
14305#[doc = " The client/peer's anti-cheat authentication failed"]
14306pub const EOS_EAntiCheatCommonClientActionReason_EOS_ACCCAR_AuthenticationFailed:
14307    EOS_EAntiCheatCommonClientActionReason = 3;
14308#[doc = " The client/peer failed to load the anti-cheat module at startup"]
14309pub const EOS_EAntiCheatCommonClientActionReason_EOS_ACCCAR_NullClient:
14310    EOS_EAntiCheatCommonClientActionReason = 4;
14311#[doc = " The client/peer's anti-cheat heartbeat was not received"]
14312pub const EOS_EAntiCheatCommonClientActionReason_EOS_ACCCAR_HeartbeatTimeout:
14313    EOS_EAntiCheatCommonClientActionReason = 5;
14314#[doc = " The client/peer failed an anti-cheat client runtime check"]
14315pub const EOS_EAntiCheatCommonClientActionReason_EOS_ACCCAR_ClientViolation:
14316    EOS_EAntiCheatCommonClientActionReason = 6;
14317#[doc = " The client/peer failed an anti-cheat backend runtime check"]
14318pub const EOS_EAntiCheatCommonClientActionReason_EOS_ACCCAR_BackendViolation:
14319    EOS_EAntiCheatCommonClientActionReason = 7;
14320#[doc = " The client/peer is temporarily blocked from playing on this game server"]
14321pub const EOS_EAntiCheatCommonClientActionReason_EOS_ACCCAR_TemporaryCooldown:
14322    EOS_EAntiCheatCommonClientActionReason = 8;
14323#[doc = " The client/peer is temporarily banned"]
14324pub const EOS_EAntiCheatCommonClientActionReason_EOS_ACCCAR_TemporaryBanned:
14325    EOS_EAntiCheatCommonClientActionReason = 9;
14326#[doc = " The client/peer is permanently banned"]
14327pub const EOS_EAntiCheatCommonClientActionReason_EOS_ACCCAR_PermanentBanned:
14328    EOS_EAntiCheatCommonClientActionReason = 10;
14329pub const EOS_EAntiCheatCommonClientActionReason___EOS_EAntiCheatCommonClientActionReason_PAD_INT32__ : EOS_EAntiCheatCommonClientActionReason = 2147483647 ;
14330#[doc = " Anti-cheat action reasons. Applicable to both clients and remote peers."]
14331pub type EOS_EAntiCheatCommonClientActionReason = ::std::os::raw::c_int;
14332#[doc = " Not used"]
14333pub const EOS_EAntiCheatCommonClientAuthStatus_EOS_ACCCAS_Invalid:
14334    EOS_EAntiCheatCommonClientAuthStatus = 0;
14335#[doc = " The client/peer's anti-cheat functionality has been validated by this game server"]
14336pub const EOS_EAntiCheatCommonClientAuthStatus_EOS_ACCCAS_LocalAuthComplete:
14337    EOS_EAntiCheatCommonClientAuthStatus = 1;
14338#[doc = " The client/peer's anti-cheat functionality has been validated by the anti-cheat backend service"]
14339pub const EOS_EAntiCheatCommonClientAuthStatus_EOS_ACCCAS_RemoteAuthComplete:
14340    EOS_EAntiCheatCommonClientAuthStatus = 2;
14341pub const EOS_EAntiCheatCommonClientAuthStatus___EOS_EAntiCheatCommonClientAuthStatus_PAD_INT32__ : EOS_EAntiCheatCommonClientAuthStatus = 2147483647 ;
14342#[doc = " The client/peer's anti-cheat authentication status"]
14343pub type EOS_EAntiCheatCommonClientAuthStatus = ::std::os::raw::c_int;
14344#[doc = " No particular flags relevant for this client"]
14345pub const EOS_EAntiCheatCommonClientFlags_EOS_ACCCF_None: EOS_EAntiCheatCommonClientFlags = 0;
14346#[doc = " The client has admin privileges on the game server"]
14347pub const EOS_EAntiCheatCommonClientFlags_EOS_ACCCF_Admin: EOS_EAntiCheatCommonClientFlags = 1;
14348pub const EOS_EAntiCheatCommonClientFlags___EOS_EAntiCheatCommonClientFlags_PAD_INT32__:
14349    EOS_EAntiCheatCommonClientFlags = 2147483647;
14350#[doc = " Flags describing a remote client. These can be updated during a play session"]
14351pub type EOS_EAntiCheatCommonClientFlags = ::std::os::raw::c_int;
14352#[doc = " Unknown input device"]
14353pub const EOS_EAntiCheatCommonClientInput_EOS_ACCCI_Unknown: EOS_EAntiCheatCommonClientInput = 0;
14354#[doc = " The client is using mouse and keyboard"]
14355pub const EOS_EAntiCheatCommonClientInput_EOS_ACCCI_MouseKeyboard: EOS_EAntiCheatCommonClientInput =
14356    1;
14357#[doc = " The client is using a gamepad or game controller"]
14358pub const EOS_EAntiCheatCommonClientInput_EOS_ACCCI_Gamepad: EOS_EAntiCheatCommonClientInput = 2;
14359#[doc = " The client is using a touch input device (e.g. phone/tablet screen)"]
14360pub const EOS_EAntiCheatCommonClientInput_EOS_ACCCI_TouchInput: EOS_EAntiCheatCommonClientInput = 3;
14361pub const EOS_EAntiCheatCommonClientInput___EOS_EAntiCheatCommonClientInput_PAD_INT32__:
14362    EOS_EAntiCheatCommonClientInput = 2147483647;
14363#[doc = " Flags describing the input device used by a remote client, if known. These can be updated during a play session."]
14364pub type EOS_EAntiCheatCommonClientInput = ::std::os::raw::c_int;
14365#[doc = " Not used"]
14366pub const EOS_EAntiCheatCommonEventType_EOS_ACCET_Invalid: EOS_EAntiCheatCommonEventType = 0;
14367#[doc = " A general game event that is not specific to any individual player.\n Low memory use which is constant with respect to the number of players."]
14368pub const EOS_EAntiCheatCommonEventType_EOS_ACCET_GameEvent: EOS_EAntiCheatCommonEventType = 1;
14369#[doc = " An event that is logically associated with a specific player. Events logged in\n this category require a specific ClientHandle to which they will be attached.\n Higher memory use which scales according to the number of players."]
14370pub const EOS_EAntiCheatCommonEventType_EOS_ACCET_PlayerEvent: EOS_EAntiCheatCommonEventType = 2;
14371pub const EOS_EAntiCheatCommonEventType___EOS_EAntiCheatCommonEventType_PAD_INT32__:
14372    EOS_EAntiCheatCommonEventType = 2147483647;
14373#[doc = " Types supported for custom gameplay behavior events.\n These have a considerable impact on performance"]
14374pub type EOS_EAntiCheatCommonEventType = ::std::os::raw::c_int;
14375#[doc = " Not used"]
14376pub const EOS_EAntiCheatCommonEventParamType_EOS_ACCEPT_Invalid:
14377    EOS_EAntiCheatCommonEventParamType = 0;
14378#[doc = " EOS_AntiCheatCommon_ClientHandle"]
14379pub const EOS_EAntiCheatCommonEventParamType_EOS_ACCEPT_ClientHandle:
14380    EOS_EAntiCheatCommonEventParamType = 1;
14381#[doc = " const char*"]
14382pub const EOS_EAntiCheatCommonEventParamType_EOS_ACCEPT_String: EOS_EAntiCheatCommonEventParamType =
14383    2;
14384#[doc = " uint32_t"]
14385pub const EOS_EAntiCheatCommonEventParamType_EOS_ACCEPT_UInt32: EOS_EAntiCheatCommonEventParamType =
14386    3;
14387#[doc = " int32_t"]
14388pub const EOS_EAntiCheatCommonEventParamType_EOS_ACCEPT_Int32: EOS_EAntiCheatCommonEventParamType =
14389    4;
14390#[doc = " uint64_t"]
14391pub const EOS_EAntiCheatCommonEventParamType_EOS_ACCEPT_UInt64: EOS_EAntiCheatCommonEventParamType =
14392    5;
14393#[doc = " int64_t"]
14394pub const EOS_EAntiCheatCommonEventParamType_EOS_ACCEPT_Int64: EOS_EAntiCheatCommonEventParamType =
14395    6;
14396#[doc = " EOS_AntiCheatCommon_Vec3f"]
14397pub const EOS_EAntiCheatCommonEventParamType_EOS_ACCEPT_Vector3f:
14398    EOS_EAntiCheatCommonEventParamType = 7;
14399#[doc = " EOS_AntiCheatCommon_Quat"]
14400pub const EOS_EAntiCheatCommonEventParamType_EOS_ACCEPT_Quat: EOS_EAntiCheatCommonEventParamType =
14401    8;
14402#[doc = " float"]
14403pub const EOS_EAntiCheatCommonEventParamType_EOS_ACCEPT_Float: EOS_EAntiCheatCommonEventParamType =
14404    9;
14405pub const EOS_EAntiCheatCommonEventParamType___EOS_EAntiCheatCommonEventParamType_PAD_INT32__:
14406    EOS_EAntiCheatCommonEventParamType = 2147483647;
14407#[doc = " Types supported for custom gameplay behavior event parameters"]
14408pub type EOS_EAntiCheatCommonEventParamType = ::std::os::raw::c_int;
14409#[doc = " No particular competition type applies"]
14410pub const EOS_EAntiCheatCommonGameRoundCompetitionType_EOS_ACCGRCT_None:
14411    EOS_EAntiCheatCommonGameRoundCompetitionType = 0;
14412#[doc = " Casual unranked play"]
14413pub const EOS_EAntiCheatCommonGameRoundCompetitionType_EOS_ACCGRCT_Casual:
14414    EOS_EAntiCheatCommonGameRoundCompetitionType = 1;
14415#[doc = " Ranked play, usually with skill based matchmaking"]
14416pub const EOS_EAntiCheatCommonGameRoundCompetitionType_EOS_ACCGRCT_Ranked:
14417    EOS_EAntiCheatCommonGameRoundCompetitionType = 2;
14418#[doc = " Organized competitive play like a tournament"]
14419pub const EOS_EAntiCheatCommonGameRoundCompetitionType_EOS_ACCGRCT_Competitive:
14420    EOS_EAntiCheatCommonGameRoundCompetitionType = 3;
14421pub const EOS_EAntiCheatCommonGameRoundCompetitionType___EOS_EAntiCheatCommonGameRoundCompetitionType_PAD_INT32__ : EOS_EAntiCheatCommonGameRoundCompetitionType = 2147483647 ;
14422#[doc = " Flags describing the type of competition taking place"]
14423pub type EOS_EAntiCheatCommonGameRoundCompetitionType = ::std::os::raw::c_int;
14424#[doc = " No particular state applies"]
14425pub const EOS_EAntiCheatCommonPlayerMovementState_EOS_ACCPMS_None:
14426    EOS_EAntiCheatCommonPlayerMovementState = 0;
14427#[doc = " Player is crouching"]
14428pub const EOS_EAntiCheatCommonPlayerMovementState_EOS_ACCPMS_Crouching:
14429    EOS_EAntiCheatCommonPlayerMovementState = 1;
14430#[doc = " Player is prone"]
14431pub const EOS_EAntiCheatCommonPlayerMovementState_EOS_ACCPMS_Prone:
14432    EOS_EAntiCheatCommonPlayerMovementState = 2;
14433#[doc = " Player is mounted in a vehicle or similar"]
14434pub const EOS_EAntiCheatCommonPlayerMovementState_EOS_ACCPMS_Mounted:
14435    EOS_EAntiCheatCommonPlayerMovementState = 3;
14436#[doc = " Player is swimming in a fluid volume"]
14437pub const EOS_EAntiCheatCommonPlayerMovementState_EOS_ACCPMS_Swimming:
14438    EOS_EAntiCheatCommonPlayerMovementState = 4;
14439#[doc = " Player is falling under the effects of gravity, such as when jumping or walking off the edge of a surface"]
14440pub const EOS_EAntiCheatCommonPlayerMovementState_EOS_ACCPMS_Falling:
14441    EOS_EAntiCheatCommonPlayerMovementState = 5;
14442#[doc = " Player is flying, ignoring the effects of gravity"]
14443pub const EOS_EAntiCheatCommonPlayerMovementState_EOS_ACCPMS_Flying:
14444    EOS_EAntiCheatCommonPlayerMovementState = 6;
14445#[doc = " Player is on a ladder"]
14446pub const EOS_EAntiCheatCommonPlayerMovementState_EOS_ACCPMS_OnLadder:
14447    EOS_EAntiCheatCommonPlayerMovementState = 7;
14448pub const EOS_EAntiCheatCommonPlayerMovementState___EOS_EAntiCheatCommonPlayerMovementState_PAD_INT32__ : EOS_EAntiCheatCommonPlayerMovementState = 2147483647 ;
14449#[doc = " Details of a player's movement state"]
14450pub type EOS_EAntiCheatCommonPlayerMovementState = ::std::os::raw::c_int;
14451#[doc = " No particular source relevant"]
14452pub const EOS_EAntiCheatCommonPlayerTakeDamageSource_EOS_ACCPTDS_None:
14453    EOS_EAntiCheatCommonPlayerTakeDamageSource = 0;
14454#[doc = " Damage caused by a player controlled character"]
14455pub const EOS_EAntiCheatCommonPlayerTakeDamageSource_EOS_ACCPTDS_Player:
14456    EOS_EAntiCheatCommonPlayerTakeDamageSource = 1;
14457#[doc = " Damage caused by a non-player character such as an AI enemy"]
14458pub const EOS_EAntiCheatCommonPlayerTakeDamageSource_EOS_ACCPTDS_NonPlayerCharacter:
14459    EOS_EAntiCheatCommonPlayerTakeDamageSource = 2;
14460#[doc = " Damage caused by the world (falling off level, into lava, etc)"]
14461pub const EOS_EAntiCheatCommonPlayerTakeDamageSource_EOS_ACCPTDS_World:
14462    EOS_EAntiCheatCommonPlayerTakeDamageSource = 3;
14463pub const EOS_EAntiCheatCommonPlayerTakeDamageSource___EOS_EAntiCheatCommonPlayerTakeDamageSource_PAD_INT32__ : EOS_EAntiCheatCommonPlayerTakeDamageSource = 2147483647 ;
14464#[doc = " The source of a damage event"]
14465pub type EOS_EAntiCheatCommonPlayerTakeDamageSource = ::std::os::raw::c_int;
14466#[doc = " No particular type relevant"]
14467pub const EOS_EAntiCheatCommonPlayerTakeDamageType_EOS_ACCPTDT_None:
14468    EOS_EAntiCheatCommonPlayerTakeDamageType = 0;
14469#[doc = " Damage caused by a point source such as a bullet or melee attack"]
14470pub const EOS_EAntiCheatCommonPlayerTakeDamageType_EOS_ACCPTDT_PointDamage:
14471    EOS_EAntiCheatCommonPlayerTakeDamageType = 1;
14472#[doc = " Damage caused by a radial source such as an explosion"]
14473pub const EOS_EAntiCheatCommonPlayerTakeDamageType_EOS_ACCPTDT_RadialDamage:
14474    EOS_EAntiCheatCommonPlayerTakeDamageType = 2;
14475#[doc = " Damage over time such as bleeding, poison, etc"]
14476pub const EOS_EAntiCheatCommonPlayerTakeDamageType_EOS_ACCPTDT_DamageOverTime:
14477    EOS_EAntiCheatCommonPlayerTakeDamageType = 3;
14478pub const EOS_EAntiCheatCommonPlayerTakeDamageType___EOS_EAntiCheatCommonPlayerTakeDamageType_PAD_INT32__ : EOS_EAntiCheatCommonPlayerTakeDamageType = 2147483647 ;
14479#[doc = " Type of damage applied in a damage event"]
14480pub type EOS_EAntiCheatCommonPlayerTakeDamageType = ::std::os::raw::c_int;
14481#[doc = " No direct state change consequence for the victim"]
14482pub const EOS_EAntiCheatCommonPlayerTakeDamageResult_EOS_ACCPTDR_None:
14483    EOS_EAntiCheatCommonPlayerTakeDamageResult = 0;
14484#[doc = " Deprecated - use more specific values below instead"]
14485pub const EOS_EAntiCheatCommonPlayerTakeDamageResult_EOS_ACCPTDR_Downed_DEPRECATED:
14486    EOS_EAntiCheatCommonPlayerTakeDamageResult = 1;
14487#[doc = " Deprecated - use more specific values below instead"]
14488pub const EOS_EAntiCheatCommonPlayerTakeDamageResult_EOS_ACCPTDR_Eliminated_DEPRECATED:
14489    EOS_EAntiCheatCommonPlayerTakeDamageResult = 2;
14490#[doc = " Player character transitioned from a normal state to temporarily incapacitated and requires assistance to recover."]
14491pub const EOS_EAntiCheatCommonPlayerTakeDamageResult_EOS_ACCPTDR_NormalToDowned:
14492    EOS_EAntiCheatCommonPlayerTakeDamageResult = 3;
14493#[doc = " Player character transitioned from a normal state to permanently incapacitated and cannot recover (e.g. dead)."]
14494pub const EOS_EAntiCheatCommonPlayerTakeDamageResult_EOS_ACCPTDR_NormalToEliminated:
14495    EOS_EAntiCheatCommonPlayerTakeDamageResult = 4;
14496#[doc = " Player character transitioned from a temporarily incapacitated state to permanently incapacitated and cannot recover (e.g. dead)."]
14497pub const EOS_EAntiCheatCommonPlayerTakeDamageResult_EOS_ACCPTDR_DownedToEliminated:
14498    EOS_EAntiCheatCommonPlayerTakeDamageResult = 5;
14499pub const EOS_EAntiCheatCommonPlayerTakeDamageResult___EOS_EAntiCheatCommonPlayerTakeDamageResult_PAD_INT32__ : EOS_EAntiCheatCommonPlayerTakeDamageResult = 2147483647 ;
14500#[doc = " The result of a damage event, if any"]
14501pub type EOS_EAntiCheatCommonPlayerTakeDamageResult = ::std::os::raw::c_int;
14502#[doc = " Vector using left-handed coordinate system (as in Unreal Engine)"]
14503#[repr(C)]
14504#[derive(Debug, Default, Copy, Clone)]
14505pub struct _tagEOS_AntiCheatCommon_Vec3f {
14506    #[doc = " X axis coordinate - forward direction"]
14507    pub x: f32,
14508    #[doc = " Y axis coordinate - right direction"]
14509    pub y: f32,
14510    #[doc = " Z axis coordinate - up direction"]
14511    pub z: f32,
14512}
14513#[doc = " Vector using left-handed coordinate system (as in Unreal Engine)"]
14514pub type EOS_AntiCheatCommon_Vec3f = _tagEOS_AntiCheatCommon_Vec3f;
14515#[doc = " Quaternion using left-handed coordinate system (as in Unreal Engine)"]
14516#[repr(C)]
14517#[derive(Debug, Default, Copy, Clone)]
14518pub struct _tagEOS_AntiCheatCommon_Quat {
14519    #[doc = " W component - scalar part"]
14520    pub w: f32,
14521    #[doc = " X component - forward direction"]
14522    pub x: f32,
14523    #[doc = " Y component - right direction"]
14524    pub y: f32,
14525    #[doc = " Z component - up direction"]
14526    pub z: f32,
14527}
14528#[doc = " Quaternion using left-handed coordinate system (as in Unreal Engine)"]
14529pub type EOS_AntiCheatCommon_Quat = _tagEOS_AntiCheatCommon_Quat;
14530#[doc = " Structure containing details about a new message that must be dispatched to a connected client/peer."]
14531#[repr(C)]
14532#[derive(Debug, Copy, Clone)]
14533pub struct _tagEOS_AntiCheatCommon_OnMessageToClientCallbackInfo {
14534    #[doc = " Caller-specified context data"]
14535    pub ClientData: *mut ::std::os::raw::c_void,
14536    #[doc = " The identifier of the client/peer that this message must be delivered to. See the RegisterClient and RegisterPeer functions."]
14537    pub ClientHandle: EOS_AntiCheatCommon_ClientHandle,
14538    #[doc = " The message data that must be sent to the client"]
14539    pub MessageData: *const ::std::os::raw::c_void,
14540    #[doc = " The size in bytes of MessageData"]
14541    pub MessageDataSizeBytes: u32,
14542}
14543impl Default for _tagEOS_AntiCheatCommon_OnMessageToClientCallbackInfo {
14544    fn default() -> Self {
14545        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14546        unsafe {
14547            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14548            s.assume_init()
14549        }
14550    }
14551}
14552#[doc = " Structure containing details about a new message that must be dispatched to a connected client/peer."]
14553pub type EOS_AntiCheatCommon_OnMessageToClientCallbackInfo =
14554    _tagEOS_AntiCheatCommon_OnMessageToClientCallbackInfo;
14555#[doc = " Structure containing details about a required client/peer action"]
14556#[repr(C)]
14557#[derive(Debug, Copy, Clone)]
14558pub struct _tagEOS_AntiCheatCommon_OnClientActionRequiredCallbackInfo {
14559    #[doc = " Caller-specified context data"]
14560    pub ClientData: *mut ::std::os::raw::c_void,
14561    #[doc = " The identifier of the client/peer that this action applies to. See the RegisterClient and RegisterPeer functions."]
14562    pub ClientHandle: EOS_AntiCheatCommon_ClientHandle,
14563    #[doc = " The action that must be applied to the specified client/peer"]
14564    pub ClientAction: EOS_EAntiCheatCommonClientAction,
14565    #[doc = " Code indicating the reason for the action. This can be displayed to the affected player."]
14566    pub ActionReasonCode: EOS_EAntiCheatCommonClientActionReason,
14567    #[doc = " String containing details about the action reason. This can be displayed to the affected player."]
14568    pub ActionReasonDetailsString: *const ::std::os::raw::c_char,
14569}
14570impl Default for _tagEOS_AntiCheatCommon_OnClientActionRequiredCallbackInfo {
14571    fn default() -> Self {
14572        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14573        unsafe {
14574            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14575            s.assume_init()
14576        }
14577    }
14578}
14579#[doc = " Structure containing details about a required client/peer action"]
14580pub type EOS_AntiCheatCommon_OnClientActionRequiredCallbackInfo =
14581    _tagEOS_AntiCheatCommon_OnClientActionRequiredCallbackInfo;
14582#[doc = " Structure containing details about a client/peer authentication status change"]
14583#[repr(C)]
14584#[derive(Debug, Copy, Clone)]
14585pub struct _tagEOS_AntiCheatCommon_OnClientAuthStatusChangedCallbackInfo {
14586    #[doc = " Caller-specified context data"]
14587    pub ClientData: *mut ::std::os::raw::c_void,
14588    #[doc = " The identifier of the client/peer that this status change applies to. See the RegisterClient and RegisterPeer functions."]
14589    pub ClientHandle: EOS_AntiCheatCommon_ClientHandle,
14590    #[doc = " The client/peer's new authentication status"]
14591    pub ClientAuthStatus: EOS_EAntiCheatCommonClientAuthStatus,
14592}
14593impl Default for _tagEOS_AntiCheatCommon_OnClientAuthStatusChangedCallbackInfo {
14594    fn default() -> Self {
14595        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14596        unsafe {
14597            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14598            s.assume_init()
14599        }
14600    }
14601}
14602#[doc = " Structure containing details about a client/peer authentication status change"]
14603pub type EOS_AntiCheatCommon_OnClientAuthStatusChangedCallbackInfo =
14604    _tagEOS_AntiCheatCommon_OnClientAuthStatusChangedCallbackInfo;
14605#[doc = " Input parameters for the EOS_AntiCheatServer_SetClientDetails function."]
14606#[repr(C)]
14607#[derive(Debug, Copy, Clone)]
14608pub struct _tagEOS_AntiCheatCommon_SetClientDetailsOptions {
14609    #[doc = " API Version: Set this to EOS_ANTICHEATCOMMON_SETCLIENTDETAILS_API_LATEST."]
14610    pub ApiVersion: i32,
14611    #[doc = " Locally unique value used in RegisterClient/RegisterPeer"]
14612    pub ClientHandle: EOS_AntiCheatCommon_ClientHandle,
14613    #[doc = " General flags associated with this client, if any"]
14614    pub ClientFlags: EOS_EAntiCheatCommonClientFlags,
14615    #[doc = " Input device being used by this client, if known"]
14616    pub ClientInputMethod: EOS_EAntiCheatCommonClientInput,
14617}
14618impl Default for _tagEOS_AntiCheatCommon_SetClientDetailsOptions {
14619    fn default() -> Self {
14620        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14621        unsafe {
14622            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14623            s.assume_init()
14624        }
14625    }
14626}
14627#[doc = " Input parameters for the EOS_AntiCheatServer_SetClientDetails function."]
14628pub type EOS_AntiCheatCommon_SetClientDetailsOptions =
14629    _tagEOS_AntiCheatCommon_SetClientDetailsOptions;
14630#[doc = " Input parameters for the EOS_AntiCheatServer_SetGameSessionId function."]
14631#[repr(C)]
14632#[derive(Debug, Copy, Clone)]
14633pub struct _tagEOS_AntiCheatCommon_SetGameSessionIdOptions {
14634    #[doc = " API Version: Set this to EOS_ANTICHEATCOMMON_SETGAMESESSIONID_API_LATEST."]
14635    pub ApiVersion: i32,
14636    #[doc = " Game session identifier"]
14637    pub GameSessionId: *const ::std::os::raw::c_char,
14638}
14639impl Default for _tagEOS_AntiCheatCommon_SetGameSessionIdOptions {
14640    fn default() -> Self {
14641        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14642        unsafe {
14643            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14644            s.assume_init()
14645        }
14646    }
14647}
14648#[doc = " Input parameters for the EOS_AntiCheatServer_SetGameSessionId function."]
14649pub type EOS_AntiCheatCommon_SetGameSessionIdOptions =
14650    _tagEOS_AntiCheatCommon_SetGameSessionIdOptions;
14651#[doc = " Register Event Parameter Definition."]
14652#[repr(C)]
14653#[derive(Debug, Copy, Clone)]
14654pub struct _tagEOS_AntiCheatCommon_RegisterEventParamDef {
14655    #[doc = " Parameter name. Allowed characters are 0-9, A-Z, a-z, '_', '-'"]
14656    pub ParamName: *const ::std::os::raw::c_char,
14657    #[doc = " Parameter type"]
14658    pub ParamType: EOS_EAntiCheatCommonEventParamType,
14659}
14660impl Default for _tagEOS_AntiCheatCommon_RegisterEventParamDef {
14661    fn default() -> Self {
14662        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14663        unsafe {
14664            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14665            s.assume_init()
14666        }
14667    }
14668}
14669#[doc = " Register Event Parameter Definition."]
14670pub type EOS_AntiCheatCommon_RegisterEventParamDef = _tagEOS_AntiCheatCommon_RegisterEventParamDef;
14671#[doc = " Input parameters for the EOS_AntiCheatServer_RegisterEvent function."]
14672#[repr(C)]
14673#[derive(Debug, Copy, Clone)]
14674pub struct _tagEOS_AntiCheatCommon_RegisterEventOptions {
14675    #[doc = " API Version: Set this to EOS_ANTICHEATCOMMON_REGISTEREVENT_API_LATEST."]
14676    pub ApiVersion: i32,
14677    #[doc = " Unique event identifier. Must be >= EOS_ANTICHEATCOMMON_REGISTEREVENT_CUSTOMEVENTBASE."]
14678    pub EventId: u32,
14679    #[doc = " Name of the custom event. Allowed characters are 0-9, A-Z, a-z, '_', '-'"]
14680    pub EventName: *const ::std::os::raw::c_char,
14681    #[doc = " Type of the custom event"]
14682    pub EventType: EOS_EAntiCheatCommonEventType,
14683    #[doc = " Number of parameters described in ParamDefs. Must be equal to or less than EOS_ANTICHEATCOMMON_REGISTEREVENT_MAX_PARAMDEFSCOUNT."]
14684    pub ParamDefsCount: u32,
14685    #[doc = " Pointer to an array of EOS_AntiCheatCommon_RegisterEventParamDef with ParamDefsCount elements"]
14686    pub ParamDefs: *const EOS_AntiCheatCommon_RegisterEventParamDef,
14687}
14688impl Default for _tagEOS_AntiCheatCommon_RegisterEventOptions {
14689    fn default() -> Self {
14690        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14691        unsafe {
14692            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14693            s.assume_init()
14694        }
14695    }
14696}
14697#[doc = " Input parameters for the EOS_AntiCheatServer_RegisterEvent function."]
14698pub type EOS_AntiCheatCommon_RegisterEventOptions = _tagEOS_AntiCheatCommon_RegisterEventOptions;
14699#[doc = " Log Event Parameter."]
14700#[repr(C)]
14701#[derive(Copy, Clone)]
14702pub struct _tagEOS_AntiCheatCommon_LogEventParamPair {
14703    #[doc = " Parameter type"]
14704    pub ParamValueType: EOS_EAntiCheatCommonEventParamType,
14705    #[doc = " Parameter value"]
14706    pub ParamValue: _tagEOS_AntiCheatCommon_LogEventParamPair__bindgen_ty_1,
14707}
14708#[doc = " Parameter value"]
14709#[repr(C)]
14710#[derive(Copy, Clone)]
14711pub union _tagEOS_AntiCheatCommon_LogEventParamPair__bindgen_ty_1 {
14712    #[doc = " Client handle."]
14713    pub ClientHandle: EOS_AntiCheatCommon_ClientHandle,
14714    #[doc = " The value as a string.\n Will be truncated if longer than EOS_ANTICHEATCOMMON_LOGEVENT_STRING_MAX_LENGTH bytes."]
14715    pub String: *const ::std::os::raw::c_char,
14716    #[doc = " The value as a uint32_t."]
14717    pub UInt32: u32,
14718    #[doc = " The value as an int32_t."]
14719    pub Int32: i32,
14720    #[doc = " The value as a uint64_t."]
14721    pub UInt64: u64,
14722    #[doc = " The value as an int64_t."]
14723    pub Int64: i64,
14724    #[doc = " The value as an EOS_AntiCheatCommon_Vec3f."]
14725    pub Vec3f: EOS_AntiCheatCommon_Vec3f,
14726    #[doc = " The value as an EOS_AntiCheatCommon_Quat."]
14727    pub Quat: EOS_AntiCheatCommon_Quat,
14728    #[doc = " The value as a float."]
14729    pub Float: f32,
14730}
14731impl Default for _tagEOS_AntiCheatCommon_LogEventParamPair__bindgen_ty_1 {
14732    fn default() -> Self {
14733        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14734        unsafe {
14735            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14736            s.assume_init()
14737        }
14738    }
14739}
14740impl Default for _tagEOS_AntiCheatCommon_LogEventParamPair {
14741    fn default() -> Self {
14742        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14743        unsafe {
14744            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14745            s.assume_init()
14746        }
14747    }
14748}
14749#[doc = " Log Event Parameter."]
14750pub type EOS_AntiCheatCommon_LogEventParamPair = _tagEOS_AntiCheatCommon_LogEventParamPair;
14751#[doc = " Input parameters for the EOS_AntiCheatServer_LogEvent function."]
14752#[repr(C)]
14753#[derive(Debug, Copy, Clone)]
14754pub struct _tagEOS_AntiCheatCommon_LogEventOptions {
14755    #[doc = " API Version: Set this to EOS_ANTICHEATCOMMON_LOGEVENT_API_LATEST."]
14756    pub ApiVersion: i32,
14757    #[doc = " Optional client who this event is primarily associated with. If not applicable, use 0."]
14758    pub ClientHandle: EOS_AntiCheatCommon_ClientHandle,
14759    #[doc = " Unique event identifier previously configured in RegisterEvent"]
14760    pub EventId: u32,
14761    #[doc = " Number of parameters described in Params"]
14762    pub ParamsCount: u32,
14763    #[doc = " Set of parameter types previously configured in RegisterEvent, and their values"]
14764    pub Params: *const EOS_AntiCheatCommon_LogEventParamPair,
14765}
14766impl Default for _tagEOS_AntiCheatCommon_LogEventOptions {
14767    fn default() -> Self {
14768        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14769        unsafe {
14770            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14771            s.assume_init()
14772        }
14773    }
14774}
14775#[doc = " Input parameters for the EOS_AntiCheatServer_LogEvent function."]
14776pub type EOS_AntiCheatCommon_LogEventOptions = _tagEOS_AntiCheatCommon_LogEventOptions;
14777#[doc = " Input parameters for the EOS_AntiCheatServer_LogGameRoundStart function."]
14778#[repr(C)]
14779#[derive(Debug, Copy, Clone)]
14780pub struct _tagEOS_AntiCheatCommon_LogGameRoundStartOptions {
14781    #[doc = " API Version: Set this to EOS_ANTICHEATCOMMON_LOGGAMEROUNDSTART_API_LATEST."]
14782    pub ApiVersion: i32,
14783    #[doc = " Optional game session or match identifier useful for some backend API integrations"]
14784    pub SessionIdentifier: *const ::std::os::raw::c_char,
14785    #[doc = " Optional name of the map being played"]
14786    pub LevelName: *const ::std::os::raw::c_char,
14787    #[doc = " Optional name of the game mode being played"]
14788    pub ModeName: *const ::std::os::raw::c_char,
14789    #[doc = " Optional length of the game round to be played, in seconds. If none, use 0."]
14790    pub RoundTimeSeconds: u32,
14791    #[doc = " Type of competition for this game round"]
14792    pub CompetitionType: EOS_EAntiCheatCommonGameRoundCompetitionType,
14793}
14794impl Default for _tagEOS_AntiCheatCommon_LogGameRoundStartOptions {
14795    fn default() -> Self {
14796        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14797        unsafe {
14798            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14799            s.assume_init()
14800        }
14801    }
14802}
14803#[doc = " Input parameters for the EOS_AntiCheatServer_LogGameRoundStart function."]
14804pub type EOS_AntiCheatCommon_LogGameRoundStartOptions =
14805    _tagEOS_AntiCheatCommon_LogGameRoundStartOptions;
14806#[doc = " Input parameters for the EOS_AntiCheatServer_LogGameRoundEnd function."]
14807#[repr(C)]
14808#[derive(Debug, Default, Copy, Clone)]
14809pub struct _tagEOS_AntiCheatCommon_LogGameRoundEndOptions {
14810    #[doc = " API Version: Set this to EOS_ANTICHEATCOMMON_LOGGAMEROUNDEND_API_LATEST."]
14811    pub ApiVersion: i32,
14812    #[doc = " Optional identifier for the winning team"]
14813    pub WinningTeamId: u32,
14814}
14815#[doc = " Input parameters for the EOS_AntiCheatServer_LogGameRoundEnd function."]
14816pub type EOS_AntiCheatCommon_LogGameRoundEndOptions =
14817    _tagEOS_AntiCheatCommon_LogGameRoundEndOptions;
14818#[doc = " Input parameters for the EOS_AntiCheatServer_LogPlayerSpawn function."]
14819#[repr(C)]
14820#[derive(Debug, Copy, Clone)]
14821pub struct _tagEOS_AntiCheatCommon_LogPlayerSpawnOptions {
14822    #[doc = " API Version: Set this to EOS_ANTICHEATCOMMON_LOGPLAYERSPAWN_API_LATEST."]
14823    pub ApiVersion: i32,
14824    #[doc = " Locally unique value used in RegisterClient/RegisterPeer"]
14825    pub SpawnedPlayerHandle: EOS_AntiCheatCommon_ClientHandle,
14826    #[doc = " Optional identifier for the player's team. If none, use 0."]
14827    pub TeamId: u32,
14828    #[doc = " Optional identifier for the player's character. If none, use 0."]
14829    pub CharacterId: u32,
14830}
14831impl Default for _tagEOS_AntiCheatCommon_LogPlayerSpawnOptions {
14832    fn default() -> Self {
14833        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14834        unsafe {
14835            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14836            s.assume_init()
14837        }
14838    }
14839}
14840#[doc = " Input parameters for the EOS_AntiCheatServer_LogPlayerSpawn function."]
14841pub type EOS_AntiCheatCommon_LogPlayerSpawnOptions = _tagEOS_AntiCheatCommon_LogPlayerSpawnOptions;
14842#[doc = " Input parameters for the EOS_AntiCheatServer_LogPlayerDespawn function."]
14843#[repr(C)]
14844#[derive(Debug, Copy, Clone)]
14845pub struct _tagEOS_AntiCheatCommon_LogPlayerDespawnOptions {
14846    #[doc = " API Version: Set this to EOS_ANTICHEATCOMMON_LOGPLAYERDESPAWN_API_LATEST."]
14847    pub ApiVersion: i32,
14848    #[doc = " Locally unique value used in RegisterClient/RegisterPeer"]
14849    pub DespawnedPlayerHandle: EOS_AntiCheatCommon_ClientHandle,
14850}
14851impl Default for _tagEOS_AntiCheatCommon_LogPlayerDespawnOptions {
14852    fn default() -> Self {
14853        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14854        unsafe {
14855            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14856            s.assume_init()
14857        }
14858    }
14859}
14860#[doc = " Input parameters for the EOS_AntiCheatServer_LogPlayerDespawn function."]
14861pub type EOS_AntiCheatCommon_LogPlayerDespawnOptions =
14862    _tagEOS_AntiCheatCommon_LogPlayerDespawnOptions;
14863#[doc = " Input parameters for the EOS_AntiCheatServer_LogPlayerRevive function."]
14864#[repr(C)]
14865#[derive(Debug, Copy, Clone)]
14866pub struct _tagEOS_AntiCheatCommon_LogPlayerReviveOptions {
14867    #[doc = " API Version: Set this to EOS_ANTICHEATCOMMON_LOGPLAYERREVIVE_API_LATEST."]
14868    pub ApiVersion: i32,
14869    #[doc = " Locally unique value used in RegisterClient/RegisterPeer"]
14870    pub RevivedPlayerHandle: EOS_AntiCheatCommon_ClientHandle,
14871    #[doc = " Locally unique value used in RegisterClient/RegisterPeer"]
14872    pub ReviverPlayerHandle: EOS_AntiCheatCommon_ClientHandle,
14873}
14874impl Default for _tagEOS_AntiCheatCommon_LogPlayerReviveOptions {
14875    fn default() -> Self {
14876        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14877        unsafe {
14878            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14879            s.assume_init()
14880        }
14881    }
14882}
14883#[doc = " Input parameters for the EOS_AntiCheatServer_LogPlayerRevive function."]
14884pub type EOS_AntiCheatCommon_LogPlayerReviveOptions =
14885    _tagEOS_AntiCheatCommon_LogPlayerReviveOptions;
14886#[doc = " Input parameters for the EOS_AntiCheatServer_LogPlayerTick function."]
14887#[repr(C)]
14888#[derive(Debug, Copy, Clone)]
14889pub struct _tagEOS_AntiCheatCommon_LogPlayerTickOptions {
14890    #[doc = " API Version: Set this to EOS_ANTICHEATCOMMON_LOGPLAYERTICK_API_LATEST."]
14891    pub ApiVersion: i32,
14892    #[doc = " Locally unique value used in RegisterClient/RegisterPeer"]
14893    pub PlayerHandle: EOS_AntiCheatCommon_ClientHandle,
14894    #[doc = " Player character's current world position as a 3D vector. This should be the center of the character."]
14895    pub PlayerPosition: *mut EOS_AntiCheatCommon_Vec3f,
14896    #[doc = " Player camera's current world rotation as a quaternion."]
14897    pub PlayerViewRotation: *mut EOS_AntiCheatCommon_Quat,
14898    #[doc = " True if the player's view is zoomed (e.g. using a sniper rifle), otherwise false"]
14899    pub bIsPlayerViewZoomed: EOS_Bool,
14900    #[doc = " Player's current health value"]
14901    pub PlayerHealth: f32,
14902    #[doc = " Any movement state applicable"]
14903    pub PlayerMovementState: EOS_EAntiCheatCommonPlayerMovementState,
14904    #[doc = " Player camera's current world position as a 3D vector."]
14905    pub PlayerViewPosition: *mut EOS_AntiCheatCommon_Vec3f,
14906}
14907impl Default for _tagEOS_AntiCheatCommon_LogPlayerTickOptions {
14908    fn default() -> Self {
14909        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14910        unsafe {
14911            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14912            s.assume_init()
14913        }
14914    }
14915}
14916#[doc = " Input parameters for the EOS_AntiCheatServer_LogPlayerTick function."]
14917pub type EOS_AntiCheatCommon_LogPlayerTickOptions = _tagEOS_AntiCheatCommon_LogPlayerTickOptions;
14918#[doc = " Log Player Use Weapon Data."]
14919#[repr(C)]
14920#[derive(Debug, Copy, Clone)]
14921pub struct _tagEOS_AntiCheatCommon_LogPlayerUseWeaponData {
14922    #[doc = " Locally unique value used in RegisterClient/RegisterPeer"]
14923    pub PlayerHandle: EOS_AntiCheatCommon_ClientHandle,
14924    #[doc = " Attack origin world position as a 3D vector"]
14925    pub PlayerPosition: *mut EOS_AntiCheatCommon_Vec3f,
14926    #[doc = " Attack direction as a quaternion"]
14927    pub PlayerViewRotation: *mut EOS_AntiCheatCommon_Quat,
14928    #[doc = " True if the player's view is zoomed (e.g. using a sniper rifle), otherwise false"]
14929    pub bIsPlayerViewZoomed: EOS_Bool,
14930    #[doc = " Set to true if the player is using a melee attack, otherwise false"]
14931    pub bIsMeleeAttack: EOS_Bool,
14932    #[doc = " Name of the weapon used. Will be truncated to EOS_ANTICHEATCOMMON_LOGPLAYERUSEWEAPON_WEAPONNAME_MAX_LENGTH bytes if longer."]
14933    pub WeaponName: *const ::std::os::raw::c_char,
14934}
14935impl Default for _tagEOS_AntiCheatCommon_LogPlayerUseWeaponData {
14936    fn default() -> Self {
14937        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14938        unsafe {
14939            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14940            s.assume_init()
14941        }
14942    }
14943}
14944#[doc = " Log Player Use Weapon Data."]
14945pub type EOS_AntiCheatCommon_LogPlayerUseWeaponData =
14946    _tagEOS_AntiCheatCommon_LogPlayerUseWeaponData;
14947#[doc = " Input parameters for the EOS_AntiCheatServer_LogPlayerUseWeapon function."]
14948#[repr(C)]
14949#[derive(Debug, Copy, Clone)]
14950pub struct _tagEOS_AntiCheatCommon_LogPlayerUseWeaponOptions {
14951    #[doc = " API Version: Set this to EOS_ANTICHEATCOMMON_LOGPLAYERUSEWEAPON_API_LATEST."]
14952    pub ApiVersion: i32,
14953    #[doc = " Struct containing detailed information about a weapon use event"]
14954    pub UseWeaponData: *mut EOS_AntiCheatCommon_LogPlayerUseWeaponData,
14955}
14956impl Default for _tagEOS_AntiCheatCommon_LogPlayerUseWeaponOptions {
14957    fn default() -> Self {
14958        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14959        unsafe {
14960            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14961            s.assume_init()
14962        }
14963    }
14964}
14965#[doc = " Input parameters for the EOS_AntiCheatServer_LogPlayerUseWeapon function."]
14966pub type EOS_AntiCheatCommon_LogPlayerUseWeaponOptions =
14967    _tagEOS_AntiCheatCommon_LogPlayerUseWeaponOptions;
14968#[doc = " Input parameters for the EOS_AntiCheatServer_LogPlayerUseAbility function."]
14969#[repr(C)]
14970#[derive(Debug, Copy, Clone)]
14971pub struct _tagEOS_AntiCheatCommon_LogPlayerUseAbilityOptions {
14972    #[doc = " API Version: Set this to EOS_ANTICHEATCOMMON_LOGPLAYERUSEABILITY_API_LATEST."]
14973    pub ApiVersion: i32,
14974    #[doc = " Locally unique value used in RegisterClient/RegisterPeer"]
14975    pub PlayerHandle: EOS_AntiCheatCommon_ClientHandle,
14976    #[doc = " Game defined unique identifier for the ability being used"]
14977    pub AbilityId: u32,
14978    #[doc = " Duration of the ability effect in milliseconds. If not applicable, use 0."]
14979    pub AbilityDurationMs: u32,
14980    #[doc = " Cooldown until the ability can be used again in milliseconds. If not applicable, use 0."]
14981    pub AbilityCooldownMs: u32,
14982}
14983impl Default for _tagEOS_AntiCheatCommon_LogPlayerUseAbilityOptions {
14984    fn default() -> Self {
14985        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14986        unsafe {
14987            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14988            s.assume_init()
14989        }
14990    }
14991}
14992#[doc = " Input parameters for the EOS_AntiCheatServer_LogPlayerUseAbility function."]
14993pub type EOS_AntiCheatCommon_LogPlayerUseAbilityOptions =
14994    _tagEOS_AntiCheatCommon_LogPlayerUseAbilityOptions;
14995#[doc = " Input parameters for the EOS_AntiCheatServer_LogPlayerTakeDamage function."]
14996#[repr(C)]
14997#[derive(Debug, Copy, Clone)]
14998pub struct _tagEOS_AntiCheatCommon_LogPlayerTakeDamageOptions {
14999    #[doc = " API Version: Set this to EOS_ANTICHEATCOMMON_LOGPLAYERTAKEDAMAGE_API_LATEST."]
15000    pub ApiVersion: i32,
15001    #[doc = " Locally unique value used in RegisterClient/RegisterPeer"]
15002    pub VictimPlayerHandle: EOS_AntiCheatCommon_ClientHandle,
15003    #[doc = " Victim player character's world position as a 3D vector. This should be the center of the character."]
15004    pub VictimPlayerPosition: *mut EOS_AntiCheatCommon_Vec3f,
15005    #[doc = " Victim player camera's world rotation as a quaternion."]
15006    pub VictimPlayerViewRotation: *mut EOS_AntiCheatCommon_Quat,
15007    #[doc = " Locally unique value used in RegisterClient/RegisterPeer if applicable, otherwise 0."]
15008    pub AttackerPlayerHandle: EOS_AntiCheatCommon_ClientHandle,
15009    #[doc = " Attacker player character's world position as a 3D vector if applicable, otherwise NULL."]
15010    pub AttackerPlayerPosition: *mut EOS_AntiCheatCommon_Vec3f,
15011    #[doc = " Attacker player camera's world rotation as a quaternion if applicable, otherwise NULL."]
15012    pub AttackerPlayerViewRotation: *mut EOS_AntiCheatCommon_Quat,
15013    #[doc = " True if the damage was applied instantly at the time of attack from the game\n simulation's perspective, otherwise false (simulated ballistics, arrow, etc)."]
15014    pub bIsHitscanAttack: EOS_Bool,
15015    #[doc = " True if there is a visible line of sight between the attacker and the victim at the time\n that damage is being applied, false if there is an obstacle like a wall or terrain in\n the way. For some situations like melee or hitscan weapons this is trivially\n true, for others like projectiles with simulated physics it may not be e.g. a player\n could fire a slow moving projectile and then move behind cover before it strikes.\n\n This can be an estimate, or can simply be always set to true if it is not feasible\n to compute in your game."]
15016    pub bHasLineOfSight: EOS_Bool,
15017    #[doc = " True if this was a critical hit that causes extra damage (e.g. headshot)"]
15018    pub bIsCriticalHit: EOS_Bool,
15019    #[doc = " Deprecated - use DamagePosition instead"]
15020    pub HitBoneId_DEPRECATED: u32,
15021    #[doc = " Number of health points that the victim lost due to this damage event"]
15022    pub DamageTaken: f32,
15023    #[doc = " Number of health points that the victim has remaining after this damage event"]
15024    pub HealthRemaining: f32,
15025    #[doc = " Source of the damage event"]
15026    pub DamageSource: EOS_EAntiCheatCommonPlayerTakeDamageSource,
15027    #[doc = " Type of the damage being applied"]
15028    pub DamageType: EOS_EAntiCheatCommonPlayerTakeDamageType,
15029    #[doc = " Result of the damage for the victim, if any"]
15030    pub DamageResult: EOS_EAntiCheatCommonPlayerTakeDamageResult,
15031    #[doc = " PlayerUseWeaponData associated with this damage event if available, otherwise NULL"]
15032    pub PlayerUseWeaponData: *mut EOS_AntiCheatCommon_LogPlayerUseWeaponData,
15033    #[doc = " Time in milliseconds since the associated PlayerUseWeaponData event occurred if available, otherwise 0"]
15034    pub TimeSincePlayerUseWeaponMs: u32,
15035    #[doc = " World position where damage hit the victim as a 3D vector if available, otherwise NULL"]
15036    pub DamagePosition: *mut EOS_AntiCheatCommon_Vec3f,
15037    #[doc = " Attacker player camera's world position as a 3D vector if applicable, otherwise NULL"]
15038    pub AttackerPlayerViewPosition: *mut EOS_AntiCheatCommon_Vec3f,
15039}
15040impl Default for _tagEOS_AntiCheatCommon_LogPlayerTakeDamageOptions {
15041    fn default() -> Self {
15042        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15043        unsafe {
15044            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15045            s.assume_init()
15046        }
15047    }
15048}
15049#[doc = " Input parameters for the EOS_AntiCheatServer_LogPlayerTakeDamage function."]
15050pub type EOS_AntiCheatCommon_LogPlayerTakeDamageOptions =
15051    _tagEOS_AntiCheatCommon_LogPlayerTakeDamageOptions;
15052#[repr(C)]
15053#[derive(Debug, Copy, Clone)]
15054pub struct EOS_AntiCheatClientHandle {
15055    _unused: [u8; 0],
15056}
15057pub type EOS_HAntiCheatClient = *mut EOS_AntiCheatClientHandle;
15058#[doc = " Not used"]
15059pub const EOS_EAntiCheatClientMode_EOS_ACCM_Invalid: EOS_EAntiCheatClientMode = 0;
15060#[doc = " Dedicated or listen server mode"]
15061pub const EOS_EAntiCheatClientMode_EOS_ACCM_ClientServer: EOS_EAntiCheatClientMode = 1;
15062#[doc = " Full mesh peer-to-peer mode"]
15063pub const EOS_EAntiCheatClientMode_EOS_ACCM_PeerToPeer: EOS_EAntiCheatClientMode = 2;
15064pub const EOS_EAntiCheatClientMode___EOS_EAntiCheatClientMode_PAD_INT32__:
15065    EOS_EAntiCheatClientMode = 2147483647;
15066#[doc = " Operating modes"]
15067pub type EOS_EAntiCheatClientMode = ::std::os::raw::c_int;
15068#[doc = " Not used"]
15069pub const EOS_EAntiCheatClientViolationType_EOS_ACCVT_Invalid: EOS_EAntiCheatClientViolationType =
15070    0;
15071#[doc = " An anti-cheat asset integrity catalog file could not be found"]
15072pub const EOS_EAntiCheatClientViolationType_EOS_ACCVT_IntegrityCatalogNotFound:
15073    EOS_EAntiCheatClientViolationType = 1;
15074#[doc = " An anti-cheat asset integrity catalog file is corrupt or invalid"]
15075pub const EOS_EAntiCheatClientViolationType_EOS_ACCVT_IntegrityCatalogError:
15076    EOS_EAntiCheatClientViolationType = 2;
15077#[doc = " An anti-cheat asset integrity catalog file's certificate has been revoked."]
15078pub const EOS_EAntiCheatClientViolationType_EOS_ACCVT_IntegrityCatalogCertificateRevoked:
15079    EOS_EAntiCheatClientViolationType = 3;
15080#[doc = " The primary anti-cheat asset integrity catalog does not include an entry for the game's\n main executable, which is required."]
15081pub const EOS_EAntiCheatClientViolationType_EOS_ACCVT_IntegrityCatalogMissingMainExecutable:
15082    EOS_EAntiCheatClientViolationType = 4;
15083#[doc = " A disallowed game file modification was detected"]
15084pub const EOS_EAntiCheatClientViolationType_EOS_ACCVT_GameFileMismatch:
15085    EOS_EAntiCheatClientViolationType = 5;
15086#[doc = " A disallowed game file removal was detected"]
15087pub const EOS_EAntiCheatClientViolationType_EOS_ACCVT_RequiredGameFileNotFound:
15088    EOS_EAntiCheatClientViolationType = 6;
15089#[doc = " A disallowed game file addition was detected"]
15090pub const EOS_EAntiCheatClientViolationType_EOS_ACCVT_UnknownGameFileForbidden:
15091    EOS_EAntiCheatClientViolationType = 7;
15092#[doc = " A system file failed an integrity check"]
15093pub const EOS_EAntiCheatClientViolationType_EOS_ACCVT_SystemFileUntrusted:
15094    EOS_EAntiCheatClientViolationType = 8;
15095#[doc = " A disallowed code module was loaded into the game process"]
15096pub const EOS_EAntiCheatClientViolationType_EOS_ACCVT_ForbiddenModuleLoaded:
15097    EOS_EAntiCheatClientViolationType = 9;
15098#[doc = " A disallowed game process memory modification was detected"]
15099pub const EOS_EAntiCheatClientViolationType_EOS_ACCVT_CorruptedMemory:
15100    EOS_EAntiCheatClientViolationType = 10;
15101#[doc = " A disallowed tool was detected running in the system"]
15102pub const EOS_EAntiCheatClientViolationType_EOS_ACCVT_ForbiddenToolDetected:
15103    EOS_EAntiCheatClientViolationType = 11;
15104#[doc = " An internal anti-cheat integrity check failed"]
15105pub const EOS_EAntiCheatClientViolationType_EOS_ACCVT_InternalAntiCheatViolation:
15106    EOS_EAntiCheatClientViolationType = 12;
15107#[doc = " Integrity checks on messages between the game client and game server, or between peers, failed"]
15108pub const EOS_EAntiCheatClientViolationType_EOS_ACCVT_CorruptedNetworkMessageFlow:
15109    EOS_EAntiCheatClientViolationType = 13;
15110#[doc = " The game is running inside a disallowed virtual machine"]
15111pub const EOS_EAntiCheatClientViolationType_EOS_ACCVT_VirtualMachineNotAllowed:
15112    EOS_EAntiCheatClientViolationType = 14;
15113#[doc = " A forbidden operating system configuration was detected"]
15114pub const EOS_EAntiCheatClientViolationType_EOS_ACCVT_ForbiddenSystemConfiguration:
15115    EOS_EAntiCheatClientViolationType = 15;
15116pub const EOS_EAntiCheatClientViolationType___EOS_EAntiCheatClientViolationType_PAD_INT32__:
15117    EOS_EAntiCheatClientViolationType = 2147483647;
15118#[doc = " Anti-cheat integrity violation types"]
15119pub type EOS_EAntiCheatClientViolationType = ::std::os::raw::c_int;
15120#[doc = " Structure containing details about a new message that must be dispatched to the game server."]
15121#[repr(C)]
15122#[derive(Debug, Copy, Clone)]
15123pub struct _tagEOS_AntiCheatClient_OnMessageToServerCallbackInfo {
15124    #[doc = " Caller-specified context data"]
15125    pub ClientData: *mut ::std::os::raw::c_void,
15126    #[doc = " The message data that must be sent to the server"]
15127    pub MessageData: *const ::std::os::raw::c_void,
15128    #[doc = " The size in bytes of MessageData"]
15129    pub MessageDataSizeBytes: u32,
15130}
15131impl Default for _tagEOS_AntiCheatClient_OnMessageToServerCallbackInfo {
15132    fn default() -> Self {
15133        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15134        unsafe {
15135            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15136            s.assume_init()
15137        }
15138    }
15139}
15140#[doc = " Structure containing details about a new message that must be dispatched to the game server."]
15141pub type EOS_AntiCheatClient_OnMessageToServerCallbackInfo =
15142    _tagEOS_AntiCheatClient_OnMessageToServerCallbackInfo;
15143#[doc = " Structure containing details about integrity violation related to the local client"]
15144#[repr(C)]
15145#[derive(Debug, Copy, Clone)]
15146pub struct _tagEOS_AntiCheatClient_OnClientIntegrityViolatedCallbackInfo {
15147    #[doc = " Caller-specified context data"]
15148    pub ClientData: *mut ::std::os::raw::c_void,
15149    #[doc = " Code describing the violation that occurred"]
15150    pub ViolationType: EOS_EAntiCheatClientViolationType,
15151    #[doc = " String describing the violation which should be displayed to the user"]
15152    pub ViolationMessage: *const ::std::os::raw::c_char,
15153}
15154impl Default for _tagEOS_AntiCheatClient_OnClientIntegrityViolatedCallbackInfo {
15155    fn default() -> Self {
15156        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15157        unsafe {
15158            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15159            s.assume_init()
15160        }
15161    }
15162}
15163#[doc = " Structure containing details about integrity violation related to the local client"]
15164pub type EOS_AntiCheatClient_OnClientIntegrityViolatedCallbackInfo =
15165    _tagEOS_AntiCheatClient_OnClientIntegrityViolatedCallbackInfo;
15166#[doc = " Callback issued when a new message must be dispatched to the game server.\n\n Messages contain opaque binary data and must be transmitted\n to the game server using the game's own networking layer, then delivered\n to the server anti-cheat instance using the EOS_AntiCheatServer_ReceiveMessageFromClient function.\n The upper limit of the message size is EOS_ANTICHEATCLIENT_ONMESSAGETOSERVERCALLBACK_MAX_MESSAGE_SIZE.\n\n This callback is always issued from within EOS_Platform_Tick on its calling thread."]
15167pub type EOS_AntiCheatClient_OnMessageToServerCallback = ::std::option::Option<
15168    unsafe extern "C" fn(Data: *const EOS_AntiCheatClient_OnMessageToServerCallbackInfo),
15169>;
15170#[doc = " Callback issued when the local client triggers an integrity violation.\n\n The message contains descriptive string of up to 256 characters and must be displayed to the player.\n\n This callback is always issued from within EOS_Platform_Tick on its calling thread."]
15171pub type EOS_AntiCheatClient_OnClientIntegrityViolatedCallback = ::std::option::Option<
15172    unsafe extern "C" fn(Data: *const EOS_AntiCheatClient_OnClientIntegrityViolatedCallbackInfo),
15173>;
15174#[doc = " Callback issued when a new message must be dispatched to a connected peer.\n\n Messages contain opaque binary data and must be transmitted\n to the correct peer using the game's own networking layer, then delivered\n to the client anti-cheat instance using the EOS_AntiCheatClient_ReceiveMessageFromPeer function.\n The upper limit of the message size is EOS_ANTICHEATCLIENT_ONMESSAGETOPEERCALLBACK_MAX_MESSAGE_SIZE.\n\n This callback is always issued from within EOS_Platform_Tick on its calling thread."]
15175pub type EOS_AntiCheatClient_OnMessageToPeerCallback = ::std::option::Option<
15176    unsafe extern "C" fn(Data: *const EOS_AntiCheatCommon_OnMessageToClientCallbackInfo),
15177>;
15178#[doc = " Callback issued when an action must be applied to a connected peer.\n This callback is always issued from within EOS_Platform_Tick on its calling thread."]
15179pub type EOS_AntiCheatClient_OnPeerActionRequiredCallback = ::std::option::Option<
15180    unsafe extern "C" fn(Data: *const EOS_AntiCheatCommon_OnClientActionRequiredCallbackInfo),
15181>;
15182#[doc = " Optional callback issued when a connected peer's authentication status has changed.\n This callback is always issued from within EOS_Platform_Tick on its calling thread."]
15183pub type EOS_AntiCheatClient_OnPeerAuthStatusChangedCallback = ::std::option::Option<
15184    unsafe extern "C" fn(Data: *const EOS_AntiCheatCommon_OnClientAuthStatusChangedCallbackInfo),
15185>;
15186#[doc = " Input parameters for the EOS_AntiCheatClient_AddNotifyMessageToServer function."]
15187#[repr(C)]
15188#[derive(Debug, Default, Copy, Clone)]
15189pub struct _tagEOS_AntiCheatClient_AddNotifyMessageToServerOptions {
15190    #[doc = " API Version: Set this to EOS_ANTICHEATCLIENT_ADDNOTIFYMESSAGETOSERVER_API_LATEST."]
15191    pub ApiVersion: i32,
15192}
15193#[doc = " Input parameters for the EOS_AntiCheatClient_AddNotifyMessageToServer function."]
15194pub type EOS_AntiCheatClient_AddNotifyMessageToServerOptions =
15195    _tagEOS_AntiCheatClient_AddNotifyMessageToServerOptions;
15196#[doc = " Input parameters for the EOS_AntiCheatClient_AddNotifyMessageToPeer function."]
15197#[repr(C)]
15198#[derive(Debug, Default, Copy, Clone)]
15199pub struct _tagEOS_AntiCheatClient_AddNotifyMessageToPeerOptions {
15200    #[doc = " API Version: Set this to EOS_ANTICHEATCLIENT_ADDNOTIFYMESSAGETOPEER_API_LATEST."]
15201    pub ApiVersion: i32,
15202}
15203#[doc = " Input parameters for the EOS_AntiCheatClient_AddNotifyMessageToPeer function."]
15204pub type EOS_AntiCheatClient_AddNotifyMessageToPeerOptions =
15205    _tagEOS_AntiCheatClient_AddNotifyMessageToPeerOptions;
15206#[doc = " Input parameters for the EOS_AntiCheatClient_AddNotifyPeerActionRequired function."]
15207#[repr(C)]
15208#[derive(Debug, Default, Copy, Clone)]
15209pub struct _tagEOS_AntiCheatClient_AddNotifyPeerActionRequiredOptions {
15210    #[doc = " API Version: Set this to EOS_ANTICHEATCLIENT_ADDNOTIFYPEERACTIONREQUIRED_API_LATEST."]
15211    pub ApiVersion: i32,
15212}
15213#[doc = " Input parameters for the EOS_AntiCheatClient_AddNotifyPeerActionRequired function."]
15214pub type EOS_AntiCheatClient_AddNotifyPeerActionRequiredOptions =
15215    _tagEOS_AntiCheatClient_AddNotifyPeerActionRequiredOptions;
15216#[doc = " Input parameters for the EOS_AntiCheatClient_AddNotifyPeerAuthStatusChanged function."]
15217#[repr(C)]
15218#[derive(Debug, Default, Copy, Clone)]
15219pub struct _tagEOS_AntiCheatClient_AddNotifyPeerAuthStatusChangedOptions {
15220    #[doc = " API Version: Set this to EOS_ANTICHEATCLIENT_ADDNOTIFYPEERAUTHSTATUSCHANGED_API_LATEST."]
15221    pub ApiVersion: i32,
15222}
15223#[doc = " Input parameters for the EOS_AntiCheatClient_AddNotifyPeerAuthStatusChanged function."]
15224pub type EOS_AntiCheatClient_AddNotifyPeerAuthStatusChangedOptions =
15225    _tagEOS_AntiCheatClient_AddNotifyPeerAuthStatusChangedOptions;
15226#[doc = " Input parameters for the EOS_AntiCheatClient_AddNotifyClientIntegrityViolated function."]
15227#[repr(C)]
15228#[derive(Debug, Default, Copy, Clone)]
15229pub struct _tagEOS_AntiCheatClient_AddNotifyClientIntegrityViolatedOptions {
15230    #[doc = " API Version: Set this to EOS_ANTICHEATCLIENT_ADDNOTIFYPEERAUTHSTATUSCHANGED_API_LATEST."]
15231    pub ApiVersion: i32,
15232}
15233#[doc = " Input parameters for the EOS_AntiCheatClient_AddNotifyClientIntegrityViolated function."]
15234pub type EOS_AntiCheatClient_AddNotifyClientIntegrityViolatedOptions =
15235    _tagEOS_AntiCheatClient_AddNotifyClientIntegrityViolatedOptions;
15236#[doc = " Input parameters for the EOS_AntiCheatClient_BeginSession function."]
15237#[repr(C)]
15238#[derive(Debug, Copy, Clone)]
15239pub struct _tagEOS_AntiCheatClient_BeginSessionOptions {
15240    #[doc = " API Version: Set this to EOS_ANTICHEATCLIENT_BEGINSESSION_API_LATEST."]
15241    pub ApiVersion: i32,
15242    #[doc = " Logged in user identifier from earlier call to EOS_Connect_Login family of functions"]
15243    pub LocalUserId: EOS_ProductUserId,
15244    #[doc = " Operating mode"]
15245    pub Mode: EOS_EAntiCheatClientMode,
15246}
15247impl Default for _tagEOS_AntiCheatClient_BeginSessionOptions {
15248    fn default() -> Self {
15249        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15250        unsafe {
15251            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15252            s.assume_init()
15253        }
15254    }
15255}
15256#[doc = " Input parameters for the EOS_AntiCheatClient_BeginSession function."]
15257pub type EOS_AntiCheatClient_BeginSessionOptions = _tagEOS_AntiCheatClient_BeginSessionOptions;
15258#[doc = " Input parameters for the EOS_AntiCheatClient_EndSession function."]
15259#[repr(C)]
15260#[derive(Debug, Default, Copy, Clone)]
15261pub struct _tagEOS_AntiCheatClient_EndSessionOptions {
15262    #[doc = " API Version: Set this to EOS_ANTICHEATCLIENT_ENDSESSION_API_LATEST."]
15263    pub ApiVersion: i32,
15264}
15265#[doc = " Input parameters for the EOS_AntiCheatClient_EndSession function."]
15266pub type EOS_AntiCheatClient_EndSessionOptions = _tagEOS_AntiCheatClient_EndSessionOptions;
15267#[doc = " Input parameters for the EOS_AntiCheatClient_Reserved01 function."]
15268#[repr(C)]
15269#[derive(Debug, Default, Copy, Clone)]
15270pub struct _tagEOS_AntiCheatClient_Reserved01Options {
15271    #[doc = " API Version: Set this to EOS_ANTICHEATCLIENT_RESERVED01_API_LATEST."]
15272    pub ApiVersion: i32,
15273}
15274#[doc = " Input parameters for the EOS_AntiCheatClient_Reserved01 function."]
15275pub type EOS_AntiCheatClient_Reserved01Options = _tagEOS_AntiCheatClient_Reserved01Options;
15276#[doc = " Input parameters for the EOS_AntiCheatClient_Reserved02 function."]
15277#[repr(C)]
15278#[derive(Debug, Copy, Clone)]
15279pub struct _tagEOS_AntiCheatClient_Reserved02Options {
15280    #[doc = " API Version: Set this to EOS_ANTICHEATCLIENT_RESERVED02_API_LATEST."]
15281    pub ApiVersion: i32,
15282    #[doc = " Field reserved for future use"]
15283    pub Reserved1: i64,
15284    #[doc = " Field reserved for future use"]
15285    pub Reserved2: u32,
15286    #[doc = " Field reserved for future use"]
15287    pub Reserved3: u32,
15288    #[doc = " Field reserved for future use"]
15289    pub Reserved4: *const ::std::os::raw::c_void,
15290}
15291impl Default for _tagEOS_AntiCheatClient_Reserved02Options {
15292    fn default() -> Self {
15293        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15294        unsafe {
15295            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15296            s.assume_init()
15297        }
15298    }
15299}
15300#[doc = " Input parameters for the EOS_AntiCheatClient_Reserved02 function."]
15301pub type EOS_AntiCheatClient_Reserved02Options = _tagEOS_AntiCheatClient_Reserved02Options;
15302#[doc = " Input parameters for the EOS_AntiCheatClient_GetModuleBuildId function."]
15303#[repr(C)]
15304#[derive(Debug, Default, Copy, Clone)]
15305pub struct _tagEOS_AntiCheatClient_GetModuleBuildIdOptions {
15306    #[doc = " API Version: Set this to EOS_ANTICHEATCLIENT_GETMODULEBUILDID_API_LATEST."]
15307    pub ApiVersion: i32,
15308}
15309#[doc = " Input parameters for the EOS_AntiCheatClient_GetModuleBuildId function."]
15310pub type EOS_AntiCheatClient_GetModuleBuildIdOptions =
15311    _tagEOS_AntiCheatClient_GetModuleBuildIdOptions;
15312#[doc = " Input parameters for the EOS_AntiCheatClient_AddExternalIntegrityCatalog function."]
15313#[repr(C)]
15314#[derive(Debug, Copy, Clone)]
15315pub struct _tagEOS_AntiCheatClient_AddExternalIntegrityCatalogOptions {
15316    #[doc = " API Version: Set this to EOS_ANTICHEATCLIENT_ADDEXTERNALINTEGRITYCATALOG_API_LATEST."]
15317    pub ApiVersion: i32,
15318    #[doc = " UTF-8 path to the .bin catalog file to add"]
15319    pub PathToBinFile: *const ::std::os::raw::c_char,
15320}
15321impl Default for _tagEOS_AntiCheatClient_AddExternalIntegrityCatalogOptions {
15322    fn default() -> Self {
15323        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15324        unsafe {
15325            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15326            s.assume_init()
15327        }
15328    }
15329}
15330#[doc = " Input parameters for the EOS_AntiCheatClient_AddExternalIntegrityCatalog function."]
15331pub type EOS_AntiCheatClient_AddExternalIntegrityCatalogOptions =
15332    _tagEOS_AntiCheatClient_AddExternalIntegrityCatalogOptions;
15333#[doc = " Input parameters for the EOS_AntiCheatClient_ReceiveMessageFromServer function."]
15334#[repr(C)]
15335#[derive(Debug, Copy, Clone)]
15336pub struct _tagEOS_AntiCheatClient_ReceiveMessageFromServerOptions {
15337    #[doc = " API Version: Set this to EOS_ANTICHEATCLIENT_RECEIVEMESSAGEFROMSERVER_API_LATEST."]
15338    pub ApiVersion: i32,
15339    #[doc = " The size of the data received"]
15340    pub DataLengthBytes: u32,
15341    #[doc = " The data received"]
15342    pub Data: *const ::std::os::raw::c_void,
15343}
15344impl Default for _tagEOS_AntiCheatClient_ReceiveMessageFromServerOptions {
15345    fn default() -> Self {
15346        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15347        unsafe {
15348            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15349            s.assume_init()
15350        }
15351    }
15352}
15353#[doc = " Input parameters for the EOS_AntiCheatClient_ReceiveMessageFromServer function."]
15354pub type EOS_AntiCheatClient_ReceiveMessageFromServerOptions =
15355    _tagEOS_AntiCheatClient_ReceiveMessageFromServerOptions;
15356#[doc = " Input parameters for the EOS_AntiCheatClient_GetProtectMessageOutputLength function."]
15357#[repr(C)]
15358#[derive(Debug, Default, Copy, Clone)]
15359pub struct _tagEOS_AntiCheatClient_GetProtectMessageOutputLengthOptions {
15360    #[doc = " API Version: Set this to EOS_ANTICHEATCLIENT_GETPROTECTMESSAGEOUTPUTLENGTH_API_LATEST."]
15361    pub ApiVersion: i32,
15362    #[doc = " Length in bytes of input"]
15363    pub DataLengthBytes: u32,
15364}
15365#[doc = " Input parameters for the EOS_AntiCheatClient_GetProtectMessageOutputLength function."]
15366pub type EOS_AntiCheatClient_GetProtectMessageOutputLengthOptions =
15367    _tagEOS_AntiCheatClient_GetProtectMessageOutputLengthOptions;
15368#[doc = " Input parameters for the EOS_AntiCheatClient_ProtectMessage function."]
15369#[repr(C)]
15370#[derive(Debug, Copy, Clone)]
15371pub struct _tagEOS_AntiCheatClient_ProtectMessageOptions {
15372    #[doc = " API Version: Set this to EOS_ANTICHEATCLIENT_PROTECTMESSAGE_API_LATEST."]
15373    pub ApiVersion: i32,
15374    #[doc = " Length in bytes of input"]
15375    pub DataLengthBytes: u32,
15376    #[doc = " The data to encrypt"]
15377    pub Data: *const ::std::os::raw::c_void,
15378    #[doc = " The size in bytes of OutBuffer"]
15379    pub OutBufferSizeBytes: u32,
15380}
15381impl Default for _tagEOS_AntiCheatClient_ProtectMessageOptions {
15382    fn default() -> Self {
15383        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15384        unsafe {
15385            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15386            s.assume_init()
15387        }
15388    }
15389}
15390#[doc = " Input parameters for the EOS_AntiCheatClient_ProtectMessage function."]
15391pub type EOS_AntiCheatClient_ProtectMessageOptions = _tagEOS_AntiCheatClient_ProtectMessageOptions;
15392#[doc = " Input parameters for the EOS_AntiCheatClient_UnprotectMessage function."]
15393#[repr(C)]
15394#[derive(Debug, Copy, Clone)]
15395pub struct _tagEOS_AntiCheatClient_UnprotectMessageOptions {
15396    #[doc = " API Version: Set this to EOS_ANTICHEATCLIENT_UNPROTECTMESSAGE_API_LATEST."]
15397    pub ApiVersion: i32,
15398    #[doc = " Length in bytes of input"]
15399    pub DataLengthBytes: u32,
15400    #[doc = " The data to decrypt"]
15401    pub Data: *const ::std::os::raw::c_void,
15402    #[doc = " The size in bytes of OutBuffer"]
15403    pub OutBufferSizeBytes: u32,
15404}
15405impl Default for _tagEOS_AntiCheatClient_UnprotectMessageOptions {
15406    fn default() -> Self {
15407        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15408        unsafe {
15409            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15410            s.assume_init()
15411        }
15412    }
15413}
15414#[doc = " Input parameters for the EOS_AntiCheatClient_UnprotectMessage function."]
15415pub type EOS_AntiCheatClient_UnprotectMessageOptions =
15416    _tagEOS_AntiCheatClient_UnprotectMessageOptions;
15417#[doc = " Input parameters for the EOS_AntiCheatClient_RegisterPeerOptions function."]
15418#[repr(C)]
15419#[derive(Debug, Copy, Clone)]
15420pub struct _tagEOS_AntiCheatClient_RegisterPeerOptions {
15421    #[doc = " API Version: Set this to EOS_ANTICHEATCLIENT_REGISTERPEER_API_LATEST."]
15422    pub ApiVersion: i32,
15423    #[doc = " Locally unique value describing the remote user (e.g. a player object pointer)"]
15424    pub PeerHandle: EOS_AntiCheatCommon_ClientHandle,
15425    #[doc = " Type of remote user being registered"]
15426    pub ClientType: EOS_EAntiCheatCommonClientType,
15427    #[doc = " Remote user's platform, if known"]
15428    pub ClientPlatform: EOS_EAntiCheatCommonClientPlatform,
15429    #[doc = " Time in seconds to allow newly registered peers to send the initial message containing their token.\n Minimum value: EOS_ANTICHEATCLIENT_REGISTERPEER_MIN_AUTHENTICATIONTIMEOUT\n Maximum value: EOS_ANTICHEATCLIENT_REGISTERPEER_MAX_AUTHENTICATIONTIMEOUT"]
15430    pub AuthenticationTimeout: u32,
15431    #[doc = " Deprecated - use PeerProductUserId instead"]
15432    pub AccountId_DEPRECATED: *const ::std::os::raw::c_char,
15433    #[doc = " Optional IP address for the remote user. May be null if not available.\n IPv4 format: \"0.0.0.0\"\n IPv6 format: \"0:0:0:0:0:0:0:0\""]
15434    pub IpAddress: *const ::std::os::raw::c_char,
15435    #[doc = " EOS_ProductUserId Identifier for the remote user"]
15436    pub PeerProductUserId: EOS_ProductUserId,
15437}
15438impl Default for _tagEOS_AntiCheatClient_RegisterPeerOptions {
15439    fn default() -> Self {
15440        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15441        unsafe {
15442            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15443            s.assume_init()
15444        }
15445    }
15446}
15447#[doc = " Input parameters for the EOS_AntiCheatClient_RegisterPeerOptions function."]
15448pub type EOS_AntiCheatClient_RegisterPeerOptions = _tagEOS_AntiCheatClient_RegisterPeerOptions;
15449#[doc = " Input parameters for the EOS_AntiCheatClient_UnregisterPeer function."]
15450#[repr(C)]
15451#[derive(Debug, Copy, Clone)]
15452pub struct _tagEOS_AntiCheatClient_UnregisterPeerOptions {
15453    #[doc = " API Version: Set this to EOS_ANTICHEATCLIENT_UNREGISTERPEER_API_LATEST."]
15454    pub ApiVersion: i32,
15455    #[doc = " Locally unique value describing the remote user, as previously passed to EOS_AntiCheatClient_RegisterPeer"]
15456    pub PeerHandle: EOS_AntiCheatCommon_ClientHandle,
15457}
15458impl Default for _tagEOS_AntiCheatClient_UnregisterPeerOptions {
15459    fn default() -> Self {
15460        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15461        unsafe {
15462            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15463            s.assume_init()
15464        }
15465    }
15466}
15467#[doc = " Input parameters for the EOS_AntiCheatClient_UnregisterPeer function."]
15468pub type EOS_AntiCheatClient_UnregisterPeerOptions = _tagEOS_AntiCheatClient_UnregisterPeerOptions;
15469#[doc = " Input parameters for the EOS_AntiCheatClient_ReceiveMessageFromPeer function."]
15470#[repr(C)]
15471#[derive(Debug, Copy, Clone)]
15472pub struct _tagEOS_AntiCheatClient_ReceiveMessageFromPeerOptions {
15473    #[doc = " API Version: Set this to EOS_ANTICHEATCLIENT_RECEIVEMESSAGEFROMPEER_API_LATEST."]
15474    pub ApiVersion: i32,
15475    #[doc = " The handle describing the sender of this message"]
15476    pub PeerHandle: EOS_AntiCheatCommon_ClientHandle,
15477    #[doc = " The size of the data received"]
15478    pub DataLengthBytes: u32,
15479    #[doc = " The data received"]
15480    pub Data: *const ::std::os::raw::c_void,
15481}
15482impl Default for _tagEOS_AntiCheatClient_ReceiveMessageFromPeerOptions {
15483    fn default() -> Self {
15484        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15485        unsafe {
15486            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15487            s.assume_init()
15488        }
15489    }
15490}
15491#[doc = " Input parameters for the EOS_AntiCheatClient_ReceiveMessageFromPeer function."]
15492pub type EOS_AntiCheatClient_ReceiveMessageFromPeerOptions =
15493    _tagEOS_AntiCheatClient_ReceiveMessageFromPeerOptions;
15494#[doc = " Input parameters for the EOS_AntiCheatClient_PollStatus function."]
15495#[repr(C)]
15496#[derive(Debug, Default, Copy, Clone)]
15497pub struct _tagEOS_AntiCheatClient_PollStatusOptions {
15498    #[doc = " API Version: Set this to EOS_ANTICHEATCLIENT_POLLSTATUS_API_LATEST."]
15499    pub ApiVersion: i32,
15500    #[doc = " The size of OutMessage in bytes. Recommended size is 256 bytes."]
15501    pub OutMessageLength: u32,
15502}
15503#[doc = " Input parameters for the EOS_AntiCheatClient_PollStatus function."]
15504pub type EOS_AntiCheatClient_PollStatusOptions = _tagEOS_AntiCheatClient_PollStatusOptions;
15505#[repr(C)]
15506#[derive(Debug, Copy, Clone)]
15507pub struct EOS_AntiCheatServerHandle {
15508    _unused: [u8; 0],
15509}
15510pub type EOS_HAntiCheatServer = *mut EOS_AntiCheatServerHandle;
15511#[doc = " Callback issued when a new message must be dispatched to a connected client.\n\n Messages contain opaque binary data and must be transmitted to the correct client\n using the game's own networking layer, then delivered to the client anti-cheat instance\n using the EOS_AntiCheatClient_ReceiveMessageFromServer function.\n The upper limit of the message size is EOS_ANTICHEATSERVER_ONMESSAGETOCLIENTCALLBACK_MAX_MESSAGE_SIZE.\n\n This callback is always issued from within EOS_Platform_Tick on its calling thread."]
15512pub type EOS_AntiCheatServer_OnMessageToClientCallback = ::std::option::Option<
15513    unsafe extern "C" fn(Data: *const EOS_AntiCheatCommon_OnMessageToClientCallbackInfo),
15514>;
15515#[doc = " Callback issued when an action must be applied to a connected client.\n This callback is always issued from within EOS_Platform_Tick on its calling thread."]
15516pub type EOS_AntiCheatServer_OnClientActionRequiredCallback = ::std::option::Option<
15517    unsafe extern "C" fn(Data: *const EOS_AntiCheatCommon_OnClientActionRequiredCallbackInfo),
15518>;
15519#[doc = " Optional callback issued when a connected client's authentication status has changed.\n This callback is always issued from within EOS_Platform_Tick on its calling thread."]
15520pub type EOS_AntiCheatServer_OnClientAuthStatusChangedCallback = ::std::option::Option<
15521    unsafe extern "C" fn(Data: *const EOS_AntiCheatCommon_OnClientAuthStatusChangedCallbackInfo),
15522>;
15523#[doc = " Input parameters for the EOS_AntiCheatServer_AddNotifyMessageToClient function."]
15524#[repr(C)]
15525#[derive(Debug, Default, Copy, Clone)]
15526pub struct _tagEOS_AntiCheatServer_AddNotifyMessageToClientOptions {
15527    #[doc = " API Version: Set this to EOS_ANTICHEATSERVER_ADDNOTIFYMESSAGETOCLIENT_API_LATEST."]
15528    pub ApiVersion: i32,
15529}
15530#[doc = " Input parameters for the EOS_AntiCheatServer_AddNotifyMessageToClient function."]
15531pub type EOS_AntiCheatServer_AddNotifyMessageToClientOptions =
15532    _tagEOS_AntiCheatServer_AddNotifyMessageToClientOptions;
15533#[doc = " Input parameters for the EOS_AntiCheatServer_AddNotifyClientActionRequired function."]
15534#[repr(C)]
15535#[derive(Debug, Default, Copy, Clone)]
15536pub struct _tagEOS_AntiCheatServer_AddNotifyClientActionRequiredOptions {
15537    #[doc = " API Version: Set this to EOS_ANTICHEATSERVER_ADDNOTIFYCLIENTACTIONREQUIRED_API_LATEST."]
15538    pub ApiVersion: i32,
15539}
15540#[doc = " Input parameters for the EOS_AntiCheatServer_AddNotifyClientActionRequired function."]
15541pub type EOS_AntiCheatServer_AddNotifyClientActionRequiredOptions =
15542    _tagEOS_AntiCheatServer_AddNotifyClientActionRequiredOptions;
15543#[doc = " Input parameters for the EOS_AntiCheatServer_AddNotifyClientAuthStatusChanged function."]
15544#[repr(C)]
15545#[derive(Debug, Default, Copy, Clone)]
15546pub struct _tagEOS_AntiCheatServer_AddNotifyClientAuthStatusChangedOptions {
15547    #[doc = " API Version: Set this to EOS_ANTICHEATSERVER_ADDNOTIFYCLIENTAUTHSTATUSCHANGED_API_LATEST."]
15548    pub ApiVersion: i32,
15549}
15550#[doc = " Input parameters for the EOS_AntiCheatServer_AddNotifyClientAuthStatusChanged function."]
15551pub type EOS_AntiCheatServer_AddNotifyClientAuthStatusChangedOptions =
15552    _tagEOS_AntiCheatServer_AddNotifyClientAuthStatusChangedOptions;
15553#[doc = " Input parameters for the EOS_AntiCheatServer_BeginSession function."]
15554#[repr(C)]
15555#[derive(Debug, Copy, Clone)]
15556pub struct _tagEOS_AntiCheatServer_BeginSessionOptions {
15557    #[doc = " API Version: Set this to EOS_ANTICHEATSERVER_BEGINSESSION_API_LATEST."]
15558    pub ApiVersion: i32,
15559    #[doc = " Time in seconds to allow newly registered clients to complete anti-cheat authentication.\n Recommended value: 60\n Minimum value: EOS_ANTICHEATSERVER_BEGINSESSION_MIN_REGISTERTIMEOUT\n Maximum value: EOS_ANTICHEATSERVER_BEGINSESSION_MAX_REGISTERTIMEOUT"]
15560    pub RegisterTimeoutSeconds: u32,
15561    #[doc = " Optional name of this game server"]
15562    pub ServerName: *const ::std::os::raw::c_char,
15563    #[doc = " Gameplay data collection APIs such as LogPlayerTick will be enabled if set to true.\n If you do not use these APIs you should set this value to false to reduce memory use."]
15564    pub bEnableGameplayData: EOS_Bool,
15565    #[doc = " The Product User ID of the local user who is associated with this session. Dedicated servers should set this to null."]
15566    pub LocalUserId: EOS_ProductUserId,
15567}
15568impl Default for _tagEOS_AntiCheatServer_BeginSessionOptions {
15569    fn default() -> Self {
15570        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15571        unsafe {
15572            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15573            s.assume_init()
15574        }
15575    }
15576}
15577#[doc = " Input parameters for the EOS_AntiCheatServer_BeginSession function."]
15578pub type EOS_AntiCheatServer_BeginSessionOptions = _tagEOS_AntiCheatServer_BeginSessionOptions;
15579#[doc = " Input parameters for the EOS_AntiCheatServer_EndSession function."]
15580#[repr(C)]
15581#[derive(Debug, Default, Copy, Clone)]
15582pub struct _tagEOS_AntiCheatServer_EndSessionOptions {
15583    #[doc = " API Version: Set this to EOS_ANTICHEATSERVER_ENDSESSION_API_LATEST."]
15584    pub ApiVersion: i32,
15585}
15586#[doc = " Input parameters for the EOS_AntiCheatServer_EndSession function."]
15587pub type EOS_AntiCheatServer_EndSessionOptions = _tagEOS_AntiCheatServer_EndSessionOptions;
15588#[doc = " Input parameters for the EOS_AntiCheatServer_RegisterClient function."]
15589#[repr(C)]
15590#[derive(Debug, Copy, Clone)]
15591pub struct _tagEOS_AntiCheatServer_RegisterClientOptions {
15592    #[doc = " API Version: Set this to EOS_ANTICHEATSERVER_REGISTERCLIENT_API_LATEST."]
15593    pub ApiVersion: i32,
15594    #[doc = " Locally unique value describing the remote user (e.g. a player object pointer)"]
15595    pub ClientHandle: EOS_AntiCheatCommon_ClientHandle,
15596    #[doc = " Type of remote user being registered"]
15597    pub ClientType: EOS_EAntiCheatCommonClientType,
15598    #[doc = " Remote user's platform, if known"]
15599    pub ClientPlatform: EOS_EAntiCheatCommonClientPlatform,
15600    #[doc = " DEPRECATED - New code should set this to null and specify UserId instead.\n\n Identifier for the remote user. This is typically a string representation of an\n account ID, but it can be any string which is both unique (two different users will never\n have the same string) and consistent (if the same user connects to this game session\n twice, the same string will be used) in the scope of a single protected game session."]
15601    pub AccountId_DEPRECATED: *const ::std::os::raw::c_char,
15602    #[doc = " Optional IP address for the remote user. May be null if not available.\n IPv4 format: \"0.0.0.0\"\n IPv6 format: \"0:0:0:0:0:0:0:0\""]
15603    pub IpAddress: *const ::std::os::raw::c_char,
15604    #[doc = " The Product User ID for the remote user who is being registered."]
15605    pub UserId: EOS_ProductUserId,
15606    #[doc = " Reserved for future use. Must be set to 0."]
15607    pub Reserved01: i32,
15608}
15609impl Default for _tagEOS_AntiCheatServer_RegisterClientOptions {
15610    fn default() -> Self {
15611        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15612        unsafe {
15613            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15614            s.assume_init()
15615        }
15616    }
15617}
15618#[doc = " Input parameters for the EOS_AntiCheatServer_RegisterClient function."]
15619pub type EOS_AntiCheatServer_RegisterClientOptions = _tagEOS_AntiCheatServer_RegisterClientOptions;
15620#[doc = " Input parameters for the EOS_AntiCheatServer_UnregisterClient function."]
15621#[repr(C)]
15622#[derive(Debug, Copy, Clone)]
15623pub struct _tagEOS_AntiCheatServer_UnregisterClientOptions {
15624    #[doc = " API Version: Set this to EOS_ANTICHEATSERVER_UNREGISTERCLIENT_API_LATEST."]
15625    pub ApiVersion: i32,
15626    #[doc = " Locally unique value describing the remote user, as previously passed to RegisterClient"]
15627    pub ClientHandle: EOS_AntiCheatCommon_ClientHandle,
15628}
15629impl Default for _tagEOS_AntiCheatServer_UnregisterClientOptions {
15630    fn default() -> Self {
15631        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15632        unsafe {
15633            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15634            s.assume_init()
15635        }
15636    }
15637}
15638#[doc = " Input parameters for the EOS_AntiCheatServer_UnregisterClient function."]
15639pub type EOS_AntiCheatServer_UnregisterClientOptions =
15640    _tagEOS_AntiCheatServer_UnregisterClientOptions;
15641#[doc = " Input parameters for the EOS_AntiCheatServer_ReceiveMessageFromClient function."]
15642#[repr(C)]
15643#[derive(Debug, Copy, Clone)]
15644pub struct _tagEOS_AntiCheatServer_ReceiveMessageFromClientOptions {
15645    #[doc = " API Version: Set this to EOS_ANTICHEATSERVER_RECEIVEMESSAGEFROMCLIENT_API_LATEST."]
15646    pub ApiVersion: i32,
15647    #[doc = " Locally unique value describing the corresponding remote user, as previously passed to RegisterClient"]
15648    pub ClientHandle: EOS_AntiCheatCommon_ClientHandle,
15649    #[doc = " The size of the data received"]
15650    pub DataLengthBytes: u32,
15651    #[doc = " The data received"]
15652    pub Data: *const ::std::os::raw::c_void,
15653}
15654impl Default for _tagEOS_AntiCheatServer_ReceiveMessageFromClientOptions {
15655    fn default() -> Self {
15656        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15657        unsafe {
15658            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15659            s.assume_init()
15660        }
15661    }
15662}
15663#[doc = " Input parameters for the EOS_AntiCheatServer_ReceiveMessageFromClient function."]
15664pub type EOS_AntiCheatServer_ReceiveMessageFromClientOptions =
15665    _tagEOS_AntiCheatServer_ReceiveMessageFromClientOptions;
15666#[doc = " Input parameters for the EOS_AntiCheatServer_SetClientNetworkState function."]
15667#[repr(C)]
15668#[derive(Debug, Copy, Clone)]
15669pub struct _tagEOS_AntiCheatServer_SetClientNetworkStateOptions {
15670    #[doc = " API Version: Set this to EOS_ANTICHEATSERVER_SETCLIENTNETWORKSTATE_API_LATEST."]
15671    pub ApiVersion: i32,
15672    #[doc = " Locally unique value describing the remote user (e.g. a player object pointer)"]
15673    pub ClientHandle: EOS_AntiCheatCommon_ClientHandle,
15674    #[doc = " True if the network is functioning normally, false if temporarily interrupted"]
15675    pub bIsNetworkActive: EOS_Bool,
15676}
15677impl Default for _tagEOS_AntiCheatServer_SetClientNetworkStateOptions {
15678    fn default() -> Self {
15679        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15680        unsafe {
15681            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15682            s.assume_init()
15683        }
15684    }
15685}
15686#[doc = " Input parameters for the EOS_AntiCheatServer_SetClientNetworkState function."]
15687pub type EOS_AntiCheatServer_SetClientNetworkStateOptions =
15688    _tagEOS_AntiCheatServer_SetClientNetworkStateOptions;
15689#[doc = " Input parameters for the EOS_AntiCheatServer_GetProtectMessageOutputLength function."]
15690#[repr(C)]
15691#[derive(Debug, Default, Copy, Clone)]
15692pub struct _tagEOS_AntiCheatServer_GetProtectMessageOutputLengthOptions {
15693    #[doc = " API Version: Set this to EOS_ANTICHEATSERVER_GETPROTECTMESSAGEOUTPUTLENGTH_API_LATEST."]
15694    pub ApiVersion: i32,
15695    #[doc = " Length in bytes of input"]
15696    pub DataLengthBytes: u32,
15697}
15698#[doc = " Input parameters for the EOS_AntiCheatServer_GetProtectMessageOutputLength function."]
15699pub type EOS_AntiCheatServer_GetProtectMessageOutputLengthOptions =
15700    _tagEOS_AntiCheatServer_GetProtectMessageOutputLengthOptions;
15701#[doc = " Input parameters for the EOS_AntiCheatServer_ProtectMessage function."]
15702#[repr(C)]
15703#[derive(Debug, Copy, Clone)]
15704pub struct _tagEOS_AntiCheatServer_ProtectMessageOptions {
15705    #[doc = " API Version: Set this to EOS_ANTICHEATSERVER_PROTECTMESSAGE_API_LATEST."]
15706    pub ApiVersion: i32,
15707    #[doc = " Locally unique value describing the remote user to whom the message will be sent"]
15708    pub ClientHandle: EOS_AntiCheatCommon_ClientHandle,
15709    #[doc = " Length in bytes of input"]
15710    pub DataLengthBytes: u32,
15711    #[doc = " The data to encrypt"]
15712    pub Data: *const ::std::os::raw::c_void,
15713    #[doc = " The size in bytes of OutBuffer"]
15714    pub OutBufferSizeBytes: u32,
15715}
15716impl Default for _tagEOS_AntiCheatServer_ProtectMessageOptions {
15717    fn default() -> Self {
15718        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15719        unsafe {
15720            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15721            s.assume_init()
15722        }
15723    }
15724}
15725#[doc = " Input parameters for the EOS_AntiCheatServer_ProtectMessage function."]
15726pub type EOS_AntiCheatServer_ProtectMessageOptions = _tagEOS_AntiCheatServer_ProtectMessageOptions;
15727#[doc = " Input parameters for the EOS_AntiCheatServer_UnprotectMessage function."]
15728#[repr(C)]
15729#[derive(Debug, Copy, Clone)]
15730pub struct _tagEOS_AntiCheatServer_UnprotectMessageOptions {
15731    #[doc = " API Version: Set this to EOS_ANTICHEATSERVER_UNPROTECTMESSAGE_API_LATEST."]
15732    pub ApiVersion: i32,
15733    #[doc = " Locally unique value describing the remote user from whom the message was received"]
15734    pub ClientHandle: EOS_AntiCheatCommon_ClientHandle,
15735    #[doc = " Length in bytes of input"]
15736    pub DataLengthBytes: u32,
15737    #[doc = " The data to decrypt"]
15738    pub Data: *const ::std::os::raw::c_void,
15739    #[doc = " The size in bytes of OutBuffer"]
15740    pub OutBufferSizeBytes: u32,
15741}
15742impl Default for _tagEOS_AntiCheatServer_UnprotectMessageOptions {
15743    fn default() -> Self {
15744        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15745        unsafe {
15746            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15747            s.assume_init()
15748        }
15749    }
15750}
15751#[doc = " Input parameters for the EOS_AntiCheatServer_UnprotectMessage function."]
15752pub type EOS_AntiCheatServer_UnprotectMessageOptions =
15753    _tagEOS_AntiCheatServer_UnprotectMessageOptions;
15754#[repr(C)]
15755#[derive(Debug, Copy, Clone)]
15756pub struct EOS_ReportsHandle {
15757    _unused: [u8; 0],
15758}
15759pub type EOS_HReports = *mut EOS_ReportsHandle;
15760#[doc = " Not used"]
15761pub const EOS_EPlayerReportsCategory_EOS_PRC_Invalid: EOS_EPlayerReportsCategory = 0;
15762#[doc = " The reported player is cheating"]
15763pub const EOS_EPlayerReportsCategory_EOS_PRC_Cheating: EOS_EPlayerReportsCategory = 1;
15764#[doc = " The reported player is exploiting the game"]
15765pub const EOS_EPlayerReportsCategory_EOS_PRC_Exploiting: EOS_EPlayerReportsCategory = 2;
15766#[doc = " The reported player has an offensive profile, name, etc"]
15767pub const EOS_EPlayerReportsCategory_EOS_PRC_OffensiveProfile: EOS_EPlayerReportsCategory = 3;
15768#[doc = " The reported player is being abusive in chat"]
15769pub const EOS_EPlayerReportsCategory_EOS_PRC_VerbalAbuse: EOS_EPlayerReportsCategory = 4;
15770#[doc = " The reported player is scamming other players"]
15771pub const EOS_EPlayerReportsCategory_EOS_PRC_Scamming: EOS_EPlayerReportsCategory = 5;
15772#[doc = " The reported player is spamming chat"]
15773pub const EOS_EPlayerReportsCategory_EOS_PRC_Spamming: EOS_EPlayerReportsCategory = 6;
15774#[doc = " The player is being reported for something else"]
15775pub const EOS_EPlayerReportsCategory_EOS_PRC_Other: EOS_EPlayerReportsCategory = 7;
15776pub const EOS_EPlayerReportsCategory___EOS_EPlayerReportsCategory_PAD_INT32__:
15777    EOS_EPlayerReportsCategory = 2147483647;
15778#[doc = " An enumeration of the different player behavior categories that can be reported."]
15779pub type EOS_EPlayerReportsCategory = ::std::os::raw::c_int;
15780#[doc = " Input parameters for the EOS_Reports_SendPlayerBehaviorReport function."]
15781#[repr(C)]
15782#[derive(Debug, Copy, Clone)]
15783pub struct _tagEOS_Reports_SendPlayerBehaviorReportOptions {
15784    #[doc = " API Version: Set this to EOS_REPORTS_SENDPLAYERBEHAVIORREPORT_API_LATEST."]
15785    pub ApiVersion: i32,
15786    #[doc = " Product User ID of the reporting player"]
15787    pub ReporterUserId: EOS_ProductUserId,
15788    #[doc = " Product User ID of the reported player."]
15789    pub ReportedUserId: EOS_ProductUserId,
15790    #[doc = " Category for the player report."]
15791    pub Category: EOS_EPlayerReportsCategory,
15792    #[doc = " Optional plain text string associated with the report as UTF-8 encoded null-terminated string.\n\n The length of the message can be at maximum up to EOS_REPORTS_REPORTMESSAGE_MAX_LENGTH bytes\n and any excess characters will be truncated upon sending the report."]
15793    pub Message: *const ::std::os::raw::c_char,
15794    #[doc = " Optional JSON string associated with the report as UTF-8 encoded null-terminated string.\n This is intended as a way to associate arbitrary structured context information with a report.\n\n This string needs to be valid JSON, report will fail otherwise.\n The length of the context can be at maximum up to EOS_REPORTS_REPORTCONTEXT_MAX_LENGTH bytes, not including the null terminator, report will fail otherwise."]
15795    pub Context: *const ::std::os::raw::c_char,
15796}
15797impl Default for _tagEOS_Reports_SendPlayerBehaviorReportOptions {
15798    fn default() -> Self {
15799        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15800        unsafe {
15801            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15802            s.assume_init()
15803        }
15804    }
15805}
15806#[doc = " Input parameters for the EOS_Reports_SendPlayerBehaviorReport function."]
15807pub type EOS_Reports_SendPlayerBehaviorReportOptions =
15808    _tagEOS_Reports_SendPlayerBehaviorReportOptions;
15809#[doc = " Output parameters for the EOS_Reports_SendPlayerBehaviorReport function."]
15810#[repr(C)]
15811#[derive(Debug, Copy, Clone)]
15812pub struct _tagEOS_Reports_SendPlayerBehaviorReportCompleteCallbackInfo {
15813    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
15814    pub ResultCode: EOS_EResult,
15815    #[doc = " Context that was passed into EOS_Reports_SendPlayerBehaviorReport."]
15816    pub ClientData: *mut ::std::os::raw::c_void,
15817}
15818impl Default for _tagEOS_Reports_SendPlayerBehaviorReportCompleteCallbackInfo {
15819    fn default() -> Self {
15820        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15821        unsafe {
15822            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15823            s.assume_init()
15824        }
15825    }
15826}
15827#[doc = " Output parameters for the EOS_Reports_SendPlayerBehaviorReport function."]
15828pub type EOS_Reports_SendPlayerBehaviorReportCompleteCallbackInfo =
15829    _tagEOS_Reports_SendPlayerBehaviorReportCompleteCallbackInfo;
15830#[doc = " Function prototype definition for callbacks passed to EOS_Reports_SendPlayerBehaviorReport.\n @param Data A EOS_Reports_SendPlayerBehaviorReportCompleteCallbackInfo containing the output information and result."]
15831pub type EOS_Reports_OnSendPlayerBehaviorReportCompleteCallback = ::std::option::Option<
15832    unsafe extern "C" fn(Data: *const EOS_Reports_SendPlayerBehaviorReportCompleteCallbackInfo),
15833>;
15834#[repr(C)]
15835#[derive(Debug, Copy, Clone)]
15836pub struct EOS_SanctionsHandle {
15837    _unused: [u8; 0],
15838}
15839pub type EOS_HSanctions = *mut EOS_SanctionsHandle;
15840#[doc = " Contains information about a single player sanction."]
15841#[repr(C)]
15842#[derive(Debug, Copy, Clone)]
15843pub struct _tagEOS_Sanctions_PlayerSanction {
15844    #[doc = " API Version: Set this to EOS_SANCTIONS_PLAYERSANCTION_API_LATEST."]
15845    pub ApiVersion: i32,
15846    #[doc = " The POSIX timestamp when the sanction was placed"]
15847    pub TimePlaced: i64,
15848    #[doc = " The action associated with this sanction"]
15849    pub Action: *const ::std::os::raw::c_char,
15850    #[doc = " The POSIX timestamp when the sanction will expire. If the sanction is permanent, this will be 0."]
15851    pub TimeExpires: i64,
15852    #[doc = " A unique identifier for this specific sanction"]
15853    pub ReferenceId: *const ::std::os::raw::c_char,
15854}
15855impl Default for _tagEOS_Sanctions_PlayerSanction {
15856    fn default() -> Self {
15857        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15858        unsafe {
15859            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15860            s.assume_init()
15861        }
15862    }
15863}
15864#[doc = " Contains information about a single player sanction."]
15865pub type EOS_Sanctions_PlayerSanction = _tagEOS_Sanctions_PlayerSanction;
15866#[doc = " Input parameters for the EOS_Sanctions_QueryActivePlayerSanctions API."]
15867#[repr(C)]
15868#[derive(Debug, Copy, Clone)]
15869pub struct _tagEOS_Sanctions_QueryActivePlayerSanctionsOptions {
15870    #[doc = " API Version: Set this to EOS_SANCTIONS_QUERYACTIVEPLAYERSANCTIONS_API_LATEST."]
15871    pub ApiVersion: i32,
15872    #[doc = " Product User ID of the user whose active sanctions are to be retrieved."]
15873    pub TargetUserId: EOS_ProductUserId,
15874    #[doc = " The Product User ID of the local user who initiated this request. Dedicated servers should set this to null."]
15875    pub LocalUserId: EOS_ProductUserId,
15876}
15877impl Default for _tagEOS_Sanctions_QueryActivePlayerSanctionsOptions {
15878    fn default() -> Self {
15879        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15880        unsafe {
15881            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15882            s.assume_init()
15883        }
15884    }
15885}
15886#[doc = " Input parameters for the EOS_Sanctions_QueryActivePlayerSanctions API."]
15887pub type EOS_Sanctions_QueryActivePlayerSanctionsOptions =
15888    _tagEOS_Sanctions_QueryActivePlayerSanctionsOptions;
15889#[doc = " Output parameters for the EOS_Sanctions_QueryActivePlayerSanctions function."]
15890#[repr(C)]
15891#[derive(Debug, Copy, Clone)]
15892pub struct _tagEOS_Sanctions_QueryActivePlayerSanctionsCallbackInfo {
15893    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
15894    pub ResultCode: EOS_EResult,
15895    #[doc = " Context that was passed into EOS_Sanctions_QueryActivePlayerSanctions."]
15896    pub ClientData: *mut ::std::os::raw::c_void,
15897    #[doc = " Target Product User ID that was passed to EOS_Sanctions_QueryActivePlayerSanctions."]
15898    pub TargetUserId: EOS_ProductUserId,
15899    #[doc = " The Product User ID of the local user who initiated this request, if applicable."]
15900    pub LocalUserId: EOS_ProductUserId,
15901}
15902impl Default for _tagEOS_Sanctions_QueryActivePlayerSanctionsCallbackInfo {
15903    fn default() -> Self {
15904        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15905        unsafe {
15906            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15907            s.assume_init()
15908        }
15909    }
15910}
15911#[doc = " Output parameters for the EOS_Sanctions_QueryActivePlayerSanctions function."]
15912pub type EOS_Sanctions_QueryActivePlayerSanctionsCallbackInfo =
15913    _tagEOS_Sanctions_QueryActivePlayerSanctionsCallbackInfo;
15914#[doc = " Function prototype definition for callbacks passed to EOS_Sanctions_QueryActivePlayerSanctions\n @param Data A EOS_Sanctions_QueryActivePlayerSanctionsCallbackInfo containing the output information and result"]
15915pub type EOS_Sanctions_OnQueryActivePlayerSanctionsCallback = ::std::option::Option<
15916    unsafe extern "C" fn(Data: *const EOS_Sanctions_QueryActivePlayerSanctionsCallbackInfo),
15917>;
15918#[doc = " Input parameters for the EOS_Sanctions_GetPlayerSanctionCount function."]
15919#[repr(C)]
15920#[derive(Debug, Copy, Clone)]
15921pub struct _tagEOS_Sanctions_GetPlayerSanctionCountOptions {
15922    #[doc = " API Version: Set this to EOS_SANCTIONS_GETPLAYERSANCTIONCOUNT_API_LATEST."]
15923    pub ApiVersion: i32,
15924    #[doc = " Product User ID of the user whose sanction count should be returned"]
15925    pub TargetUserId: EOS_ProductUserId,
15926}
15927impl Default for _tagEOS_Sanctions_GetPlayerSanctionCountOptions {
15928    fn default() -> Self {
15929        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15930        unsafe {
15931            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15932            s.assume_init()
15933        }
15934    }
15935}
15936#[doc = " Input parameters for the EOS_Sanctions_GetPlayerSanctionCount function."]
15937pub type EOS_Sanctions_GetPlayerSanctionCountOptions =
15938    _tagEOS_Sanctions_GetPlayerSanctionCountOptions;
15939#[doc = " Input parameters for the EOS_Sanctions_CopyPlayerSanctionByIndex function"]
15940#[repr(C)]
15941#[derive(Debug, Copy, Clone)]
15942pub struct _tagEOS_Sanctions_CopyPlayerSanctionByIndexOptions {
15943    #[doc = " API Version: Set this to EOS_SANCTIONS_COPYPLAYERSANCTIONBYINDEX_API_LATEST."]
15944    pub ApiVersion: i32,
15945    #[doc = " Product User ID of the user whose active sanctions are to be copied"]
15946    pub TargetUserId: EOS_ProductUserId,
15947    #[doc = " Index of the sanction to retrieve from the cache"]
15948    pub SanctionIndex: u32,
15949}
15950impl Default for _tagEOS_Sanctions_CopyPlayerSanctionByIndexOptions {
15951    fn default() -> Self {
15952        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15953        unsafe {
15954            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15955            s.assume_init()
15956        }
15957    }
15958}
15959#[doc = " Input parameters for the EOS_Sanctions_CopyPlayerSanctionByIndex function"]
15960pub type EOS_Sanctions_CopyPlayerSanctionByIndexOptions =
15961    _tagEOS_Sanctions_CopyPlayerSanctionByIndexOptions;
15962unsafe extern "C" {
15963    #[doc = " Release the memory associated with a player sanction.\n This must be called on data retrieved from EOS_Sanctions_CopyPlayerSanctionByIndex.\n\n @param Sanction - The sanction data to release.\n\n @see EOS_Sanctions_PlayerSanction\n @see EOS_Sanctions_CopyPlayerSanctionByIndex"]
15964    pub fn EOS_Sanctions_PlayerSanction_Release(Sanction: *mut EOS_Sanctions_PlayerSanction);
15965}
15966#[doc = " Not used"]
15967pub const EOS_ESanctionAppealReason_EOS_SAR_Invalid: EOS_ESanctionAppealReason = 0;
15968#[doc = " Incorrectly placed sanction"]
15969pub const EOS_ESanctionAppealReason_EOS_SAR_IncorrectSanction: EOS_ESanctionAppealReason = 1;
15970#[doc = " The account was compromised, typically this means stolen"]
15971pub const EOS_ESanctionAppealReason_EOS_SAR_CompromisedAccount: EOS_ESanctionAppealReason = 2;
15972#[doc = " The punishment is considered too severe by the user"]
15973pub const EOS_ESanctionAppealReason_EOS_SAR_UnfairPunishment: EOS_ESanctionAppealReason = 3;
15974#[doc = " The user admits to rulebreaking, but still appeals for forgiveness"]
15975pub const EOS_ESanctionAppealReason_EOS_SAR_AppealForForgiveness: EOS_ESanctionAppealReason = 4;
15976pub const EOS_ESanctionAppealReason___EOS_ESanctionAppealReason_PAD_INT32__:
15977    EOS_ESanctionAppealReason = 2147483647;
15978#[doc = " Sanction appeal reason codes"]
15979pub type EOS_ESanctionAppealReason = ::std::os::raw::c_int;
15980#[doc = " Input parameters for the EOS_Sanctions_CreatePlayerSanctionAppeal function."]
15981#[repr(C)]
15982#[derive(Debug, Copy, Clone)]
15983pub struct _tagEOS_Sanctions_CreatePlayerSanctionAppealOptions {
15984    #[doc = " API Version: Set this to EOS_SANCTIONS_CREATEPLAYERSANCTIONAPPEAL_API_LATEST."]
15985    pub ApiVersion: i32,
15986    #[doc = " The Product User ID of the local user sending their own sanction appeal."]
15987    pub LocalUserId: EOS_ProductUserId,
15988    #[doc = " Reason code for the appeal."]
15989    pub Reason: EOS_ESanctionAppealReason,
15990    #[doc = " A unique identifier for the specific sanction"]
15991    pub ReferenceId: *const ::std::os::raw::c_char,
15992}
15993impl Default for _tagEOS_Sanctions_CreatePlayerSanctionAppealOptions {
15994    fn default() -> Self {
15995        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15996        unsafe {
15997            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15998            s.assume_init()
15999        }
16000    }
16001}
16002#[doc = " Input parameters for the EOS_Sanctions_CreatePlayerSanctionAppeal function."]
16003pub type EOS_Sanctions_CreatePlayerSanctionAppealOptions =
16004    _tagEOS_Sanctions_CreatePlayerSanctionAppealOptions;
16005#[doc = " Output parameters for the EOS_Sanctions_CreatePlayerSanctionAppealCallbackInfo function."]
16006#[repr(C)]
16007#[derive(Debug, Copy, Clone)]
16008pub struct _tagEOS_Sanctions_CreatePlayerSanctionAppealCallbackInfo {
16009    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
16010    pub ResultCode: EOS_EResult,
16011    #[doc = " Context that was passed into EOS_Sanctions_CreatePlayerSanctionAppeal."]
16012    pub ClientData: *mut ::std::os::raw::c_void,
16013    #[doc = " A unique identifier for the specific sanction that was appealed"]
16014    pub ReferenceId: *const ::std::os::raw::c_char,
16015}
16016impl Default for _tagEOS_Sanctions_CreatePlayerSanctionAppealCallbackInfo {
16017    fn default() -> Self {
16018        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16019        unsafe {
16020            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16021            s.assume_init()
16022        }
16023    }
16024}
16025#[doc = " Output parameters for the EOS_Sanctions_CreatePlayerSanctionAppealCallbackInfo function."]
16026pub type EOS_Sanctions_CreatePlayerSanctionAppealCallbackInfo =
16027    _tagEOS_Sanctions_CreatePlayerSanctionAppealCallbackInfo;
16028#[doc = " Function definition for callbacks passed to EOS_Sanctions_CreatePlayerSanctionAppeal.\n @param Data - EOS_Sanctions_CreatePlayerSanctionAppealCallbackInfo containing the output information and result."]
16029pub type EOS_Sanctions_CreatePlayerSanctionAppealCallback = ::std::option::Option<
16030    unsafe extern "C" fn(Data: *const EOS_Sanctions_CreatePlayerSanctionAppealCallbackInfo),
16031>;
16032#[repr(C)]
16033#[derive(Debug, Copy, Clone)]
16034pub struct EOS_KWSHandle {
16035    _unused: [u8; 0],
16036}
16037pub type EOS_HKWS = *mut EOS_KWSHandle;
16038#[doc = " Permission has been granted"]
16039pub const EOS_EKWSPermissionStatus_EOS_KPS_GRANTED: EOS_EKWSPermissionStatus = 0;
16040#[doc = " Permission has been rejected"]
16041pub const EOS_EKWSPermissionStatus_EOS_KPS_REJECTED: EOS_EKWSPermissionStatus = 1;
16042#[doc = " Permission is still pending approval"]
16043pub const EOS_EKWSPermissionStatus_EOS_KPS_PENDING: EOS_EKWSPermissionStatus = 2;
16044pub const EOS_EKWSPermissionStatus___EOS_EKWSPermissionStatus_PAD_INT32__:
16045    EOS_EKWSPermissionStatus = 2147483647;
16046#[doc = " An enumeration of the different permission statuses."]
16047pub type EOS_EKWSPermissionStatus = ::std::os::raw::c_int;
16048#[doc = " Contains information about a KWS permission status."]
16049#[repr(C)]
16050#[derive(Debug, Copy, Clone)]
16051pub struct _tagEOS_KWS_PermissionStatus {
16052    #[doc = " API Version: Set this to EOS_KWS_PERMISSIONSTATUS_API_LATEST."]
16053    pub ApiVersion: i32,
16054    #[doc = " Name of the permission"]
16055    pub Name: *const ::std::os::raw::c_char,
16056    #[doc = " Status of the permission"]
16057    pub Status: EOS_EKWSPermissionStatus,
16058}
16059impl Default for _tagEOS_KWS_PermissionStatus {
16060    fn default() -> Self {
16061        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16062        unsafe {
16063            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16064            s.assume_init()
16065        }
16066    }
16067}
16068#[doc = " Contains information about a KWS permission status."]
16069pub type EOS_KWS_PermissionStatus = _tagEOS_KWS_PermissionStatus;
16070unsafe extern "C" {
16071    #[doc = " Release the memory associated with a KWS permission status. This must be called on data retrieved from EOS_KWS_CopyPermissionByIndex.\n\n @param PermissionStatus - A pointer to the KWS permission status to release\n\n @see EOS_KWS_CopyPermissionByIndex"]
16072    pub fn EOS_KWS_PermissionStatus_Release(PermissionStatus: *mut EOS_KWS_PermissionStatus);
16073}
16074#[doc = " Input parameters for the EOS_KWS_QueryAgeGate function."]
16075#[repr(C)]
16076#[derive(Debug, Default, Copy, Clone)]
16077pub struct _tagEOS_KWS_QueryAgeGateOptions {
16078    #[doc = " API Version: Set this to EOS_KWS_QUERYAGEGATE_API_LATEST."]
16079    pub ApiVersion: i32,
16080}
16081#[doc = " Input parameters for the EOS_KWS_QueryAgeGate function."]
16082pub type EOS_KWS_QueryAgeGateOptions = _tagEOS_KWS_QueryAgeGateOptions;
16083#[doc = " Output parameters for the EOS_KWS_QueryAgeGate Function. These parameters are received through the callback provided to EOS_KWS_QueryAgeGate"]
16084#[repr(C)]
16085#[derive(Debug, Copy, Clone)]
16086pub struct _tagEOS_KWS_QueryAgeGateCallbackInfo {
16087    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
16088    pub ResultCode: EOS_EResult,
16089    #[doc = " Context that was passed into EOS_KWS_QueryAgeGate"]
16090    pub ClientData: *mut ::std::os::raw::c_void,
16091    #[doc = " Country code determined for this request based on the local client's ip address that the backend resolves"]
16092    pub CountryCode: *const ::std::os::raw::c_char,
16093    #[doc = " Age of consent in the given country"]
16094    pub AgeOfConsent: u32,
16095}
16096impl Default for _tagEOS_KWS_QueryAgeGateCallbackInfo {
16097    fn default() -> Self {
16098        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16099        unsafe {
16100            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16101            s.assume_init()
16102        }
16103    }
16104}
16105#[doc = " Output parameters for the EOS_KWS_QueryAgeGate Function. These parameters are received through the callback provided to EOS_KWS_QueryAgeGate"]
16106pub type EOS_KWS_QueryAgeGateCallbackInfo = _tagEOS_KWS_QueryAgeGateCallbackInfo;
16107#[doc = " Function prototype definition for callbacks passed to EOS_KWS_QueryAgeGate\n @param Data A EOS_KWS_QueryAgeGateCallbackInfo containing the output information and result"]
16108pub type EOS_KWS_OnQueryAgeGateCallback =
16109    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_KWS_QueryAgeGateCallbackInfo)>;
16110#[doc = " Input parameters for the EOS_KWS_CreateUser function."]
16111#[repr(C)]
16112#[derive(Debug, Copy, Clone)]
16113pub struct _tagEOS_KWS_CreateUserOptions {
16114    #[doc = " API Version: Set this to EOS_KWS_CREATEUSER_API_LATEST."]
16115    pub ApiVersion: i32,
16116    #[doc = " Local user creating a KWS entry"]
16117    pub LocalUserId: EOS_ProductUserId,
16118    #[doc = " Date of birth in ISO8601 form (YYYY-MM-DD)"]
16119    pub DateOfBirth: *const ::std::os::raw::c_char,
16120    #[doc = " Parent email"]
16121    pub ParentEmail: *const ::std::os::raw::c_char,
16122}
16123impl Default for _tagEOS_KWS_CreateUserOptions {
16124    fn default() -> Self {
16125        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16126        unsafe {
16127            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16128            s.assume_init()
16129        }
16130    }
16131}
16132#[doc = " Input parameters for the EOS_KWS_CreateUser function."]
16133pub type EOS_KWS_CreateUserOptions = _tagEOS_KWS_CreateUserOptions;
16134#[doc = " Output parameters for the EOS_KWS_CreateUserOptions Function. These parameters are received through the callback provided to EOS_KWS_CreateUser"]
16135#[repr(C)]
16136#[derive(Debug, Copy, Clone)]
16137pub struct _tagEOS_KWS_CreateUserCallbackInfo {
16138    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
16139    pub ResultCode: EOS_EResult,
16140    #[doc = " Context that was passed into EOS_KWS_CreateUser"]
16141    pub ClientData: *mut ::std::os::raw::c_void,
16142    #[doc = " Local user that created a KWS entry"]
16143    pub LocalUserId: EOS_ProductUserId,
16144    #[doc = " KWS UserId created"]
16145    pub KWSUserId: *const ::std::os::raw::c_char,
16146    #[doc = " Is this user a minor"]
16147    pub bIsMinor: EOS_Bool,
16148}
16149impl Default for _tagEOS_KWS_CreateUserCallbackInfo {
16150    fn default() -> Self {
16151        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16152        unsafe {
16153            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16154            s.assume_init()
16155        }
16156    }
16157}
16158#[doc = " Output parameters for the EOS_KWS_CreateUserOptions Function. These parameters are received through the callback provided to EOS_KWS_CreateUser"]
16159pub type EOS_KWS_CreateUserCallbackInfo = _tagEOS_KWS_CreateUserCallbackInfo;
16160#[doc = " Function prototype definition for callbacks passed to EOS_KWS_CreateUser\n @param Data A EOS_KWS_CreateUserCallbackInfo containing the output information and result"]
16161pub type EOS_KWS_OnCreateUserCallback =
16162    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_KWS_CreateUserCallbackInfo)>;
16163#[doc = " Input parameters for the EOS_KWS_QueryPermissions function."]
16164#[repr(C)]
16165#[derive(Debug, Copy, Clone)]
16166pub struct _tagEOS_KWS_QueryPermissionsOptions {
16167    #[doc = " API Version: Set this to EOS_KWS_QUERYPERMISSIONS_API_LATEST."]
16168    pub ApiVersion: i32,
16169    #[doc = " Local user querying their permissions"]
16170    pub LocalUserId: EOS_ProductUserId,
16171}
16172impl Default for _tagEOS_KWS_QueryPermissionsOptions {
16173    fn default() -> Self {
16174        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16175        unsafe {
16176            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16177            s.assume_init()
16178        }
16179    }
16180}
16181#[doc = " Input parameters for the EOS_KWS_QueryPermissions function."]
16182pub type EOS_KWS_QueryPermissionsOptions = _tagEOS_KWS_QueryPermissionsOptions;
16183#[doc = " Output parameters for the EOS_KWS_QueryPermissionsOptions Function. These parameters are received through the callback provided to EOS_KWS_QueryPermissions"]
16184#[repr(C)]
16185#[derive(Debug, Copy, Clone)]
16186pub struct _tagEOS_KWS_QueryPermissionsCallbackInfo {
16187    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
16188    pub ResultCode: EOS_EResult,
16189    #[doc = " Context that was passed into EOS_KWS_QueryPermissions"]
16190    pub ClientData: *mut ::std::os::raw::c_void,
16191    #[doc = " Local user querying their permissions"]
16192    pub LocalUserId: EOS_ProductUserId,
16193    #[doc = " KWS UserId created"]
16194    pub KWSUserId: *const ::std::os::raw::c_char,
16195    #[doc = " Date of birth in ISO8601 form (YYYY-MM-DD)"]
16196    pub DateOfBirth: *const ::std::os::raw::c_char,
16197    #[doc = " Is this user a minor"]
16198    pub bIsMinor: EOS_Bool,
16199    #[doc = " Parent email. This value may be set to an empty string if the originally registered email recipient declined to be the right person to give consent."]
16200    pub ParentEmail: *const ::std::os::raw::c_char,
16201}
16202impl Default for _tagEOS_KWS_QueryPermissionsCallbackInfo {
16203    fn default() -> Self {
16204        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16205        unsafe {
16206            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16207            s.assume_init()
16208        }
16209    }
16210}
16211#[doc = " Output parameters for the EOS_KWS_QueryPermissionsOptions Function. These parameters are received through the callback provided to EOS_KWS_QueryPermissions"]
16212pub type EOS_KWS_QueryPermissionsCallbackInfo = _tagEOS_KWS_QueryPermissionsCallbackInfo;
16213#[doc = " Function prototype definition for callbacks passed to EOS_KWS_QueryPermissions\n @param Data A EOS_KWS_QueryPermissionsCallbackInfo containing the output information and result"]
16214pub type EOS_KWS_OnQueryPermissionsCallback =
16215    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_KWS_QueryPermissionsCallbackInfo)>;
16216#[doc = " Input parameters for the EOS_KWS_UpdateParentEmail function."]
16217#[repr(C)]
16218#[derive(Debug, Copy, Clone)]
16219pub struct _tagEOS_KWS_UpdateParentEmailOptions {
16220    #[doc = " API Version: Set this to EOS_KWS_UPDATEPARENTEMAIL_API_LATEST."]
16221    pub ApiVersion: i32,
16222    #[doc = " Local user updating parental information"]
16223    pub LocalUserId: EOS_ProductUserId,
16224    #[doc = " New parent email"]
16225    pub ParentEmail: *const ::std::os::raw::c_char,
16226}
16227impl Default for _tagEOS_KWS_UpdateParentEmailOptions {
16228    fn default() -> Self {
16229        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16230        unsafe {
16231            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16232            s.assume_init()
16233        }
16234    }
16235}
16236#[doc = " Input parameters for the EOS_KWS_UpdateParentEmail function."]
16237pub type EOS_KWS_UpdateParentEmailOptions = _tagEOS_KWS_UpdateParentEmailOptions;
16238#[doc = " Output parameters for the EOS_KWS_UpdateParentEmailOptions Function. These parameters are received through the callback provided to EOS_KWS_UpdateParentEmail"]
16239#[repr(C)]
16240#[derive(Debug, Copy, Clone)]
16241pub struct _tagEOS_KWS_UpdateParentEmailCallbackInfo {
16242    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
16243    pub ResultCode: EOS_EResult,
16244    #[doc = " Context that was passed into EOS_KWS_UpdateParentEmail"]
16245    pub ClientData: *mut ::std::os::raw::c_void,
16246    #[doc = " Local user updating their parental email"]
16247    pub LocalUserId: EOS_ProductUserId,
16248}
16249impl Default for _tagEOS_KWS_UpdateParentEmailCallbackInfo {
16250    fn default() -> Self {
16251        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16252        unsafe {
16253            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16254            s.assume_init()
16255        }
16256    }
16257}
16258#[doc = " Output parameters for the EOS_KWS_UpdateParentEmailOptions Function. These parameters are received through the callback provided to EOS_KWS_UpdateParentEmail"]
16259pub type EOS_KWS_UpdateParentEmailCallbackInfo = _tagEOS_KWS_UpdateParentEmailCallbackInfo;
16260#[doc = " Function prototype definition for callbacks passed to EOS_KWS_UpdateParentEmail\n @param Data A EOS_KWS_UpdateParentEmailCallbackInfo containing the output information and result"]
16261pub type EOS_KWS_OnUpdateParentEmailCallback =
16262    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_KWS_UpdateParentEmailCallbackInfo)>;
16263#[doc = " Input parameters for the EOS_KWS_RequestPermissions function."]
16264#[repr(C)]
16265#[derive(Debug, Copy, Clone)]
16266pub struct _tagEOS_KWS_RequestPermissionsOptions {
16267    #[doc = " API Version: Set this to EOS_KWS_REQUESTPERMISSIONS_API_LATEST."]
16268    pub ApiVersion: i32,
16269    #[doc = " Local user requesting new permissions"]
16270    pub LocalUserId: EOS_ProductUserId,
16271    #[doc = " The number of permissions to request, may not exceed EOS_KWS_MAX_PERMISSIONS. Only new permissions need be included."]
16272    pub PermissionKeyCount: u32,
16273    #[doc = " Names of the permissions to request (Setup with KWS)"]
16274    pub PermissionKeys: *mut *const ::std::os::raw::c_char,
16275}
16276impl Default for _tagEOS_KWS_RequestPermissionsOptions {
16277    fn default() -> Self {
16278        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16279        unsafe {
16280            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16281            s.assume_init()
16282        }
16283    }
16284}
16285#[doc = " Input parameters for the EOS_KWS_RequestPermissions function."]
16286pub type EOS_KWS_RequestPermissionsOptions = _tagEOS_KWS_RequestPermissionsOptions;
16287#[doc = " Output parameters for the EOS_KWS_RequestPermissionsOptions Function. These parameters are received through the callback provided to EOS_KWS_RequestPermissions"]
16288#[repr(C)]
16289#[derive(Debug, Copy, Clone)]
16290pub struct _tagEOS_KWS_RequestPermissionsCallbackInfo {
16291    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
16292    pub ResultCode: EOS_EResult,
16293    #[doc = " Context that was passed into EOS_KWS_RequestPermissions"]
16294    pub ClientData: *mut ::std::os::raw::c_void,
16295    #[doc = " Local user requesting new permissions"]
16296    pub LocalUserId: EOS_ProductUserId,
16297}
16298impl Default for _tagEOS_KWS_RequestPermissionsCallbackInfo {
16299    fn default() -> Self {
16300        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16301        unsafe {
16302            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16303            s.assume_init()
16304        }
16305    }
16306}
16307#[doc = " Output parameters for the EOS_KWS_RequestPermissionsOptions Function. These parameters are received through the callback provided to EOS_KWS_RequestPermissions"]
16308pub type EOS_KWS_RequestPermissionsCallbackInfo = _tagEOS_KWS_RequestPermissionsCallbackInfo;
16309#[doc = " Function prototype definition for callbacks passed to EOS_KWS_RequestPermissions\n @param Data A EOS_KWS_RequestPermissionsCallbackInfo containing the output information and result"]
16310pub type EOS_KWS_OnRequestPermissionsCallback = ::std::option::Option<
16311    unsafe extern "C" fn(Data: *const EOS_KWS_RequestPermissionsCallbackInfo),
16312>;
16313#[doc = " Input parameters for the EOS_KWS_GetPermissionsCount function."]
16314#[repr(C)]
16315#[derive(Debug, Copy, Clone)]
16316pub struct _tagEOS_KWS_GetPermissionsCountOptions {
16317    #[doc = " API Version: Set this to EOS_KWS_GETPERMISSIONSCOUNT_API_LATEST."]
16318    pub ApiVersion: i32,
16319    #[doc = " The Product User ID of the local user whose permissions are being accessed"]
16320    pub LocalUserId: EOS_ProductUserId,
16321}
16322impl Default for _tagEOS_KWS_GetPermissionsCountOptions {
16323    fn default() -> Self {
16324        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16325        unsafe {
16326            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16327            s.assume_init()
16328        }
16329    }
16330}
16331#[doc = " Input parameters for the EOS_KWS_GetPermissionsCount function."]
16332pub type EOS_KWS_GetPermissionsCountOptions = _tagEOS_KWS_GetPermissionsCountOptions;
16333#[doc = " Input parameters for the EOS_KWS_CopyPermissionByIndex function."]
16334#[repr(C)]
16335#[derive(Debug, Copy, Clone)]
16336pub struct _tagEOS_KWS_CopyPermissionByIndexOptions {
16337    #[doc = " API Version: Set this to EOS_KWS_COPYPERMISSIONBYINDEX_API_LATEST."]
16338    pub ApiVersion: i32,
16339    #[doc = " The Product User ID of the local user whose permissions are being accessed"]
16340    pub LocalUserId: EOS_ProductUserId,
16341    #[doc = " The index of the permission to get."]
16342    pub Index: u32,
16343}
16344impl Default for _tagEOS_KWS_CopyPermissionByIndexOptions {
16345    fn default() -> Self {
16346        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16347        unsafe {
16348            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16349            s.assume_init()
16350        }
16351    }
16352}
16353#[doc = " Input parameters for the EOS_KWS_CopyPermissionByIndex function."]
16354pub type EOS_KWS_CopyPermissionByIndexOptions = _tagEOS_KWS_CopyPermissionByIndexOptions;
16355#[doc = " Input parameters for the EOS_KWS_GetPermissionByKey function."]
16356#[repr(C)]
16357#[derive(Debug, Copy, Clone)]
16358pub struct _tagEOS_KWS_GetPermissionByKeyOptions {
16359    #[doc = " API Version: Set this to EOS_KWS_GETPERMISSIONBYKEY_API_LATEST."]
16360    pub ApiVersion: i32,
16361    #[doc = " The Product User ID of the local user getting permissions"]
16362    pub LocalUserId: EOS_ProductUserId,
16363    #[doc = " Permission name to query"]
16364    pub Key: *const ::std::os::raw::c_char,
16365}
16366impl Default for _tagEOS_KWS_GetPermissionByKeyOptions {
16367    fn default() -> Self {
16368        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16369        unsafe {
16370            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16371            s.assume_init()
16372        }
16373    }
16374}
16375#[doc = " Input parameters for the EOS_KWS_GetPermissionByKey function."]
16376pub type EOS_KWS_GetPermissionByKeyOptions = _tagEOS_KWS_GetPermissionByKeyOptions;
16377#[doc = " Input parameters for the EOS_KWS_AddNotifyPermissionsUpdateReceived function."]
16378#[repr(C)]
16379#[derive(Debug, Default, Copy, Clone)]
16380pub struct _tagEOS_KWS_AddNotifyPermissionsUpdateReceivedOptions {
16381    #[doc = " API Version: Set this to EOS_KWS_ADDNOTIFYPERMISSIONSUPDATERECEIVED_API_LATEST."]
16382    pub ApiVersion: i32,
16383}
16384#[doc = " Input parameters for the EOS_KWS_AddNotifyPermissionsUpdateReceived function."]
16385pub type EOS_KWS_AddNotifyPermissionsUpdateReceivedOptions =
16386    _tagEOS_KWS_AddNotifyPermissionsUpdateReceivedOptions;
16387#[doc = " Output parameters for the EOS_KWS_OnPermissionsUpdateReceivedCallback Function."]
16388#[repr(C)]
16389#[derive(Debug, Copy, Clone)]
16390pub struct _tagEOS_KWS_PermissionsUpdateReceivedCallbackInfo {
16391    #[doc = " Context that was passed into EOS_KWS_AddNotifyPermissionsUpdateReceived"]
16392    pub ClientData: *mut ::std::os::raw::c_void,
16393    #[doc = " Recipient Local user id"]
16394    pub LocalUserId: EOS_ProductUserId,
16395    #[doc = " Recipient's associated KWS UserId"]
16396    pub KWSUserId: *const ::std::os::raw::c_char,
16397    #[doc = " Date of birth in ISO8601 form (YYYY-MM-DD)"]
16398    pub DateOfBirth: *const ::std::os::raw::c_char,
16399    #[doc = " Is this user a minor"]
16400    pub bIsMinor: EOS_Bool,
16401    #[doc = " Parent email. This value may be set to an empty string if the originally registered email recipient declined to be the right person to give consent."]
16402    pub ParentEmail: *const ::std::os::raw::c_char,
16403}
16404impl Default for _tagEOS_KWS_PermissionsUpdateReceivedCallbackInfo {
16405    fn default() -> Self {
16406        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16407        unsafe {
16408            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16409            s.assume_init()
16410        }
16411    }
16412}
16413#[doc = " Output parameters for the EOS_KWS_OnPermissionsUpdateReceivedCallback Function."]
16414pub type EOS_KWS_PermissionsUpdateReceivedCallbackInfo =
16415    _tagEOS_KWS_PermissionsUpdateReceivedCallbackInfo;
16416#[doc = " Function prototype definition for notifications that comes from EOS_KWS_AddNotifyPermissionsUpdateReceived\n\n @param Data A EOS_KWS_PermissionsUpdateReceivedCallbackInfo containing the output information and result"]
16417pub type EOS_KWS_OnPermissionsUpdateReceivedCallback = ::std::option::Option<
16418    unsafe extern "C" fn(Data: *const EOS_KWS_PermissionsUpdateReceivedCallbackInfo),
16419>;
16420#[repr(C)]
16421#[derive(Debug, Copy, Clone)]
16422pub struct EOS_RTCHandle {
16423    _unused: [u8; 0],
16424}
16425pub type EOS_HRTC = *mut EOS_RTCHandle;
16426#[doc = " Participant joined the room"]
16427pub const EOS_ERTCParticipantStatus_EOS_RTCPS_Joined: EOS_ERTCParticipantStatus = 0;
16428#[doc = " Participant left the room"]
16429pub const EOS_ERTCParticipantStatus_EOS_RTCPS_Left: EOS_ERTCParticipantStatus = 1;
16430pub const EOS_ERTCParticipantStatus___EOS_ERTCParticipantStatus_PAD_INT32__:
16431    EOS_ERTCParticipantStatus = 2147483647;
16432#[doc = " Participant RTC's status change"]
16433pub type EOS_ERTCParticipantStatus = ::std::os::raw::c_int;
16434#[doc = " This struct is used to call EOS_RTC_JoinRoom."]
16435#[repr(C)]
16436#[derive(Debug, Copy, Clone)]
16437pub struct _tagEOS_RTC_JoinRoomOptions {
16438    #[doc = " API Version: Set this to EOS_RTC_JOINROOM_API_LATEST."]
16439    pub ApiVersion: i32,
16440    #[doc = " The product user id of the user trying to request this operation."]
16441    pub LocalUserId: EOS_ProductUserId,
16442    #[doc = " The room the user would like to join."]
16443    pub RoomName: *const ::std::os::raw::c_char,
16444    #[doc = " The room the user would like to join."]
16445    pub ClientBaseUrl: *const ::std::os::raw::c_char,
16446    #[doc = " Authorization credential token to join the room."]
16447    pub ParticipantToken: *const ::std::os::raw::c_char,
16448    #[doc = " The participant id used to join the room. If set to NULL the LocalUserId will be used instead."]
16449    pub ParticipantId: EOS_ProductUserId,
16450    #[doc = " Join room flags, e.g. EOS_RTC_JOINROOMFLAGS_ENABLE_ECHO. This is a bitwise-or union of the defined flags."]
16451    pub Flags: u32,
16452    #[doc = " Enable or disable Manual Audio Input. If manual audio input is enabled audio recording is not started and the audio\n buffers must be passed manually using EOS_RTCAudio_SendAudio."]
16453    pub bManualAudioInputEnabled: EOS_Bool,
16454    #[doc = " Enable or disable Manual Audio Output. If manual audio output is enabled audio rendering is not started and the audio\n buffers must be received with EOS_RTCAudio_AddNotifyAudioBeforeRender and rendered manually."]
16455    pub bManualAudioOutputEnabled: EOS_Bool,
16456}
16457impl Default for _tagEOS_RTC_JoinRoomOptions {
16458    fn default() -> Self {
16459        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16460        unsafe {
16461            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16462            s.assume_init()
16463        }
16464    }
16465}
16466#[doc = " This struct is used to call EOS_RTC_JoinRoom."]
16467pub type EOS_RTC_JoinRoomOptions = _tagEOS_RTC_JoinRoomOptions;
16468#[doc = " This struct is used to get information about a specific option."]
16469#[repr(C)]
16470#[derive(Debug, Copy, Clone)]
16471pub struct _tagEOS_RTC_Option {
16472    #[doc = " API Version: Set this to EOS_RTC_OPTION_API_LATEST."]
16473    pub ApiVersion: i32,
16474    #[doc = " The unique key of the option. The max size of the string is EOS_RTC_OPTION_KEY_MAXCHARCOUNT."]
16475    pub Key: *const ::std::os::raw::c_char,
16476    #[doc = " The value of the option. The max size of the string is EOS_RTC_OPTION_VALUE_MAXCHARCOUNT."]
16477    pub Value: *const ::std::os::raw::c_char,
16478}
16479impl Default for _tagEOS_RTC_Option {
16480    fn default() -> Self {
16481        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16482        unsafe {
16483            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16484            s.assume_init()
16485        }
16486    }
16487}
16488#[doc = " This struct is used to get information about a specific option."]
16489pub type EOS_RTC_Option = _tagEOS_RTC_Option;
16490#[doc = " This struct is passed in with a call to EOS_RTC_OnJoinRoomCallback."]
16491#[repr(C)]
16492#[derive(Debug, Copy, Clone)]
16493pub struct _tagEOS_RTC_JoinRoomCallbackInfo {
16494    #[doc = " This returns:\n EOS_Success if the channel was successfully joined.\n EOS_NoConnection: unable to connect to RTC servers (retryable).\n EOS_InvalidAuth: if the token is invalid (not retryable).\n EOS_RTC_TooManyParticipants: if the room cannot accept more participants (not retryable).\n EOS_AccessDenied: if the room name belongs to the Lobby voice system (not retryable).\n EOS_UnexpectedError otherwise (retryable)."]
16495    pub ResultCode: EOS_EResult,
16496    #[doc = " Client-specified data passed into EOS_RTC_JoinRoom."]
16497    pub ClientData: *mut ::std::os::raw::c_void,
16498    #[doc = " The Product User ID of the user who initiated this request."]
16499    pub LocalUserId: EOS_ProductUserId,
16500    #[doc = " The room the user was trying to join."]
16501    pub RoomName: *const ::std::os::raw::c_char,
16502    #[doc = " The room option items count."]
16503    pub RoomOptionsCount: u32,
16504    #[doc = " The room option items."]
16505    pub RoomOptions: *const EOS_RTC_Option,
16506}
16507impl Default for _tagEOS_RTC_JoinRoomCallbackInfo {
16508    fn default() -> Self {
16509        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16510        unsafe {
16511            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16512            s.assume_init()
16513        }
16514    }
16515}
16516#[doc = " This struct is passed in with a call to EOS_RTC_OnJoinRoomCallback."]
16517pub type EOS_RTC_JoinRoomCallbackInfo = _tagEOS_RTC_JoinRoomCallbackInfo;
16518#[doc = " Callback for completion of room join request."]
16519pub type EOS_RTC_OnJoinRoomCallback =
16520    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_RTC_JoinRoomCallbackInfo)>;
16521#[doc = " This struct is used to call EOS_RTC_LeaveRoom."]
16522#[repr(C)]
16523#[derive(Debug, Copy, Clone)]
16524pub struct _tagEOS_RTC_LeaveRoomOptions {
16525    #[doc = " API Version: Set this to EOS_RTC_LEAVEROOM_API_LATEST."]
16526    pub ApiVersion: i32,
16527    #[doc = " Product User ID of the user requesting to leave the room"]
16528    pub LocalUserId: EOS_ProductUserId,
16529    #[doc = " The room to leave."]
16530    pub RoomName: *const ::std::os::raw::c_char,
16531}
16532impl Default for _tagEOS_RTC_LeaveRoomOptions {
16533    fn default() -> Self {
16534        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16535        unsafe {
16536            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16537            s.assume_init()
16538        }
16539    }
16540}
16541#[doc = " This struct is used to call EOS_RTC_LeaveRoom."]
16542pub type EOS_RTC_LeaveRoomOptions = _tagEOS_RTC_LeaveRoomOptions;
16543#[doc = " This struct is passed in with a call to EOS_RTC_OnLeaveRoomCallback."]
16544#[repr(C)]
16545#[derive(Debug, Copy, Clone)]
16546pub struct _tagEOS_RTC_LeaveRoomCallbackInfo {
16547    #[doc = " This returns:\n EOS_Success if the channel was successfully left.\n EOS_AccessDenied if the room name belongs to the Lobby voice system.\n EOS_UnexpectedError otherwise."]
16548    pub ResultCode: EOS_EResult,
16549    #[doc = " Client-specified data passed into EOS_RTC_LeaveRoomOptions."]
16550    pub ClientData: *mut ::std::os::raw::c_void,
16551    #[doc = " The Product User ID of the user who initiated this request."]
16552    pub LocalUserId: EOS_ProductUserId,
16553    #[doc = " The room the user was trying to leave."]
16554    pub RoomName: *const ::std::os::raw::c_char,
16555}
16556impl Default for _tagEOS_RTC_LeaveRoomCallbackInfo {
16557    fn default() -> Self {
16558        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16559        unsafe {
16560            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16561            s.assume_init()
16562        }
16563    }
16564}
16565#[doc = " This struct is passed in with a call to EOS_RTC_OnLeaveRoomCallback."]
16566pub type EOS_RTC_LeaveRoomCallbackInfo = _tagEOS_RTC_LeaveRoomCallbackInfo;
16567#[doc = " Callback for completion of room leave request."]
16568pub type EOS_RTC_OnLeaveRoomCallback =
16569    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_RTC_LeaveRoomCallbackInfo)>;
16570#[doc = " This struct is passed in with a call to EOS_RTC_BlockParticipant."]
16571#[repr(C)]
16572#[derive(Debug, Copy, Clone)]
16573pub struct _tagEOS_RTC_BlockParticipantOptions {
16574    #[doc = " API Version: Set this to EOS_RTC_BLOCKPARTICIPANT_API_LATEST."]
16575    pub ApiVersion: i32,
16576    #[doc = " Product User ID of the user trying to request this operation."]
16577    pub LocalUserId: EOS_ProductUserId,
16578    #[doc = " The room the users should be blocked on."]
16579    pub RoomName: *const ::std::os::raw::c_char,
16580    #[doc = " Product User ID of the participant to block"]
16581    pub ParticipantId: EOS_ProductUserId,
16582    #[doc = " Block or unblock the participant"]
16583    pub bBlocked: EOS_Bool,
16584}
16585impl Default for _tagEOS_RTC_BlockParticipantOptions {
16586    fn default() -> Self {
16587        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16588        unsafe {
16589            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16590            s.assume_init()
16591        }
16592    }
16593}
16594#[doc = " This struct is passed in with a call to EOS_RTC_BlockParticipant."]
16595pub type EOS_RTC_BlockParticipantOptions = _tagEOS_RTC_BlockParticipantOptions;
16596#[doc = " This struct is passed in with a call to EOS_RTC_OnBlockParticipantCallback."]
16597#[repr(C)]
16598#[derive(Debug, Copy, Clone)]
16599pub struct _tagEOS_RTC_BlockParticipantCallbackInfo {
16600    #[doc = " This returns:\n EOS_Success if the channel was successfully blocked.\n EOS_UnexpectedError otherwise."]
16601    pub ResultCode: EOS_EResult,
16602    #[doc = " Client-specified data passed into EOS_RTC_BlockParticipant."]
16603    pub ClientData: *mut ::std::os::raw::c_void,
16604    #[doc = " The Product User ID of the user who initiated this request."]
16605    pub LocalUserId: EOS_ProductUserId,
16606    #[doc = " The room the users should be blocked on."]
16607    pub RoomName: *const ::std::os::raw::c_char,
16608    #[doc = " The Product User ID of the participant being blocked"]
16609    pub ParticipantId: EOS_ProductUserId,
16610    #[doc = " The block state that should have been set"]
16611    pub bBlocked: EOS_Bool,
16612}
16613impl Default for _tagEOS_RTC_BlockParticipantCallbackInfo {
16614    fn default() -> Self {
16615        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16616        unsafe {
16617            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16618            s.assume_init()
16619        }
16620    }
16621}
16622#[doc = " This struct is passed in with a call to EOS_RTC_OnBlockParticipantCallback."]
16623pub type EOS_RTC_BlockParticipantCallbackInfo = _tagEOS_RTC_BlockParticipantCallbackInfo;
16624#[doc = " Callback for completion of block participants request."]
16625pub type EOS_RTC_OnBlockParticipantCallback =
16626    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_RTC_BlockParticipantCallbackInfo)>;
16627#[doc = " This struct is used to call EOS_RTC_AddNotifyDisconnected."]
16628#[repr(C)]
16629#[derive(Debug, Copy, Clone)]
16630pub struct _tagEOS_RTC_AddNotifyDisconnectedOptions {
16631    #[doc = " API Version: Set this to EOS_RTC_ADDNOTIFYDISCONNECTED_API_LATEST."]
16632    pub ApiVersion: i32,
16633    #[doc = " The Product User ID of the user trying to request this operation."]
16634    pub LocalUserId: EOS_ProductUserId,
16635    #[doc = " The room this event is registered on."]
16636    pub RoomName: *const ::std::os::raw::c_char,
16637}
16638impl Default for _tagEOS_RTC_AddNotifyDisconnectedOptions {
16639    fn default() -> Self {
16640        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16641        unsafe {
16642            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16643            s.assume_init()
16644        }
16645    }
16646}
16647#[doc = " This struct is used to call EOS_RTC_AddNotifyDisconnected."]
16648pub type EOS_RTC_AddNotifyDisconnectedOptions = _tagEOS_RTC_AddNotifyDisconnectedOptions;
16649#[doc = " This struct is passed in with a call to EOS_RTC_AddNotifyDisconnected registered event."]
16650#[repr(C)]
16651#[derive(Debug, Copy, Clone)]
16652pub struct _tagEOS_RTC_DisconnectedCallbackInfo {
16653    #[doc = " This returns:\n EOS_Success The room was left cleanly.\n EOS_NoConnection: There was a network issue connecting to the server (retryable).\n EOS_RTC_UserKicked: The user has been kicked by the server (retryable).\n EOS_ServiceFailure: A known error occurred during interaction with the server (retryable).\n EOS_UnexpectedError Unexpected error (retryable)."]
16654    pub ResultCode: EOS_EResult,
16655    #[doc = " Client-specified data passed into EOS_RTC_AddNotifyDisconnected."]
16656    pub ClientData: *mut ::std::os::raw::c_void,
16657    #[doc = " The Product User ID of the user who initiated this request."]
16658    pub LocalUserId: EOS_ProductUserId,
16659    #[doc = " The room associated with this event."]
16660    pub RoomName: *const ::std::os::raw::c_char,
16661}
16662impl Default for _tagEOS_RTC_DisconnectedCallbackInfo {
16663    fn default() -> Self {
16664        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16665        unsafe {
16666            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16667            s.assume_init()
16668        }
16669    }
16670}
16671#[doc = " This struct is passed in with a call to EOS_RTC_AddNotifyDisconnected registered event."]
16672pub type EOS_RTC_DisconnectedCallbackInfo = _tagEOS_RTC_DisconnectedCallbackInfo;
16673#[doc = " Function prototype definition for notifications that come from EOS_RTC_AddNotifyDisconnected\n\n @param Data A EOS_RTC_DisconnectedCallbackInfo containing the output information and result"]
16674pub type EOS_RTC_OnDisconnectedCallback =
16675    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_RTC_DisconnectedCallbackInfo)>;
16676#[doc = " This struct is used to get information about a specific participant metadata item."]
16677#[repr(C)]
16678#[derive(Debug, Copy, Clone)]
16679pub struct _tagEOS_RTC_ParticipantMetadata {
16680    #[doc = " API Version: Set this to EOS_RTC_PARTICIPANTMETADATA_API_LATEST."]
16681    pub ApiVersion: i32,
16682    #[doc = " The unique key of this metadata item. The max size of the string is EOS_RTC_PARTICIPANTMETADATA_KEY_MAXCHARCOUNT."]
16683    pub Key: *const ::std::os::raw::c_char,
16684    #[doc = " The value of this metadata item. The max size of the string is EOS_RTC_PARTICIPANTMETADATA_VALUE_MAXCHARCOUNT."]
16685    pub Value: *const ::std::os::raw::c_char,
16686}
16687impl Default for _tagEOS_RTC_ParticipantMetadata {
16688    fn default() -> Self {
16689        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16690        unsafe {
16691            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16692            s.assume_init()
16693        }
16694    }
16695}
16696#[doc = " This struct is used to get information about a specific participant metadata item."]
16697pub type EOS_RTC_ParticipantMetadata = _tagEOS_RTC_ParticipantMetadata;
16698#[doc = " This struct is used to call EOS_RTC_AddNotifyParticipantStatusChanged."]
16699#[repr(C)]
16700#[derive(Debug, Copy, Clone)]
16701pub struct _tagEOS_RTC_AddNotifyParticipantStatusChangedOptions {
16702    #[doc = " API Version: Set this to EOS_RTC_ADDNOTIFYPARTICIPANTSTATUSCHANGED_API_LATEST."]
16703    pub ApiVersion: i32,
16704    #[doc = " The Product User ID of the user trying to request this operation."]
16705    pub LocalUserId: EOS_ProductUserId,
16706    #[doc = " The room this event is registered on."]
16707    pub RoomName: *const ::std::os::raw::c_char,
16708}
16709impl Default for _tagEOS_RTC_AddNotifyParticipantStatusChangedOptions {
16710    fn default() -> Self {
16711        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16712        unsafe {
16713            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16714            s.assume_init()
16715        }
16716    }
16717}
16718#[doc = " This struct is used to call EOS_RTC_AddNotifyParticipantStatusChanged."]
16719pub type EOS_RTC_AddNotifyParticipantStatusChangedOptions =
16720    _tagEOS_RTC_AddNotifyParticipantStatusChangedOptions;
16721#[doc = " This struct is passed in with a call to EOS_RTC_AddNotifyParticipantStatusChanged registered event."]
16722#[repr(C)]
16723#[derive(Debug, Copy, Clone)]
16724pub struct _tagEOS_RTC_ParticipantStatusChangedCallbackInfo {
16725    #[doc = " Client-specified data passed into EOS_RTC_AddNotifyParticipantStatusChanged."]
16726    pub ClientData: *mut ::std::os::raw::c_void,
16727    #[doc = " The Product User ID of the user who initiated this request."]
16728    pub LocalUserId: EOS_ProductUserId,
16729    #[doc = " The room associated with this event."]
16730    pub RoomName: *const ::std::os::raw::c_char,
16731    #[doc = " The participant whose status changed."]
16732    pub ParticipantId: EOS_ProductUserId,
16733    #[doc = " What status change occurred"]
16734    pub ParticipantStatus: EOS_ERTCParticipantStatus,
16735    #[doc = " The participant metadata items count.\n This is only set for the first notification where ParticipantStatus is EOS_RTCPS_Joined. Subsequent notifications\n such as when bParticipantInBlocklist changes will not contain any metadata."]
16736    pub ParticipantMetadataCount: u32,
16737    #[doc = " The participant metadata items.\n This is only set for the first notification where ParticipantStatus is EOS_RTCPS_Joined. Subsequent notifications\n such as when bParticipantInBlocklist changes will not contain any metadata."]
16738    pub ParticipantMetadata: *const EOS_RTC_ParticipantMetadata,
16739    #[doc = " The participant's block list status, if ParticipantStatus is EOS_RTCPS_Joined.\n This is set to true if the participant is in any of the local user's applicable block lists,\n such Epic block list or any of the current platform's block lists.\n It can be used to detect when an internal automatic RTC block is applied because of trust and safety restrictions."]
16740    pub bParticipantInBlocklist: EOS_Bool,
16741}
16742impl Default for _tagEOS_RTC_ParticipantStatusChangedCallbackInfo {
16743    fn default() -> Self {
16744        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16745        unsafe {
16746            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16747            s.assume_init()
16748        }
16749    }
16750}
16751#[doc = " This struct is passed in with a call to EOS_RTC_AddNotifyParticipantStatusChanged registered event."]
16752pub type EOS_RTC_ParticipantStatusChangedCallbackInfo =
16753    _tagEOS_RTC_ParticipantStatusChangedCallbackInfo;
16754#[doc = " Function prototype definition for notifications that come from EOS_RTC_AddNotifyParticipantStatusChanged\n\n @param Data A EOS_RTC_ParticipantStatusChangedCallbackInfo containing the output information and result"]
16755pub type EOS_RTC_OnParticipantStatusChangedCallback = ::std::option::Option<
16756    unsafe extern "C" fn(Data: *const EOS_RTC_ParticipantStatusChangedCallbackInfo),
16757>;
16758#[doc = " Input parameters for the EOS_RTC_AddNotifyRoomBeforeJoin function."]
16759#[repr(C)]
16760#[derive(Debug, Copy, Clone)]
16761pub struct _tagEOS_RTC_AddNotifyRoomBeforeJoinOptions {
16762    #[doc = " API Version: Set this to EOS_RTC_ADDNOTIFYROOMBEFOREJOIN_API_LATEST."]
16763    pub ApiVersion: i32,
16764    #[doc = " The Product User ID of the user trying to request this operation."]
16765    pub LocalUserId: EOS_ProductUserId,
16766}
16767impl Default for _tagEOS_RTC_AddNotifyRoomBeforeJoinOptions {
16768    fn default() -> Self {
16769        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16770        unsafe {
16771            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16772            s.assume_init()
16773        }
16774    }
16775}
16776#[doc = " Input parameters for the EOS_RTC_AddNotifyRoomBeforeJoin function."]
16777pub type EOS_RTC_AddNotifyRoomBeforeJoinOptions = _tagEOS_RTC_AddNotifyRoomBeforeJoinOptions;
16778#[doc = " This struct is passed in with a call to EOS_RTC_AddNotifyRoomBeforeJoin registered event."]
16779#[repr(C)]
16780#[derive(Debug, Copy, Clone)]
16781pub struct _tagEOS_RTC_RoomBeforeJoinCallbackInfo {
16782    #[doc = " Context that was passed into EOS_RTC_AddNotifyRoomBeforeJoin"]
16783    pub ClientData: *mut ::std::os::raw::c_void,
16784    #[doc = " The Product User ID of the user who initiated this request."]
16785    pub LocalUserId: EOS_ProductUserId,
16786    #[doc = " The room associated with this event."]
16787    pub RoomName: *const ::std::os::raw::c_char,
16788}
16789impl Default for _tagEOS_RTC_RoomBeforeJoinCallbackInfo {
16790    fn default() -> Self {
16791        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16792        unsafe {
16793            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16794            s.assume_init()
16795        }
16796    }
16797}
16798#[doc = " This struct is passed in with a call to EOS_RTC_AddNotifyRoomBeforeJoin registered event."]
16799pub type EOS_RTC_RoomBeforeJoinCallbackInfo = _tagEOS_RTC_RoomBeforeJoinCallbackInfo;
16800#[doc = " Function prototype definition for notifications that comes from EOS_RTC_AddNotifyRoomBeforeJoin\n\n @param Data containing the RTC room name which is about to be created and joined."]
16801pub type EOS_RTC_OnRoomBeforeJoinCallback =
16802    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_RTC_RoomBeforeJoinCallbackInfo)>;
16803#[doc = " This struct is used to call EOS_RTC_SetSetting\n\n Available values of SettingName:\n - DisableEchoCancelation: Disables the use of echo cancellation for the audio channel. Default \"False\".\n - DisableNoiseSupression: Disables the use of noise suppression for the audio channel. Default \"False\".\n - DisableAutoGainControl: Disables the use of auto gain control for the audio channel. Default \"False\".\n - DisableDtx: Allows to disable the use of DTX.  Default \"False\"."]
16804#[repr(C)]
16805#[derive(Debug, Copy, Clone)]
16806pub struct _tagEOS_RTC_SetSettingOptions {
16807    #[doc = " API Version: Set this to EOS_RTC_SETSETTING_API_LATEST."]
16808    pub ApiVersion: i32,
16809    #[doc = " Setting that should be set."]
16810    pub SettingName: *const ::std::os::raw::c_char,
16811    #[doc = " Value to set the setting to."]
16812    pub SettingValue: *const ::std::os::raw::c_char,
16813}
16814impl Default for _tagEOS_RTC_SetSettingOptions {
16815    fn default() -> Self {
16816        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16817        unsafe {
16818            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16819            s.assume_init()
16820        }
16821    }
16822}
16823#[doc = " This struct is used to call EOS_RTC_SetSetting\n\n Available values of SettingName:\n - DisableEchoCancelation: Disables the use of echo cancellation for the audio channel. Default \"False\".\n - DisableNoiseSupression: Disables the use of noise suppression for the audio channel. Default \"False\".\n - DisableAutoGainControl: Disables the use of auto gain control for the audio channel. Default \"False\".\n - DisableDtx: Allows to disable the use of DTX.  Default \"False\"."]
16824pub type EOS_RTC_SetSettingOptions = _tagEOS_RTC_SetSettingOptions;
16825#[doc = " This struct is used to call EOS_RTC_SetRoomSetting\n\n Available values of SettingName:\n - DisableEchoCancelation: Disables the use of echo cancellation for the audio channel. Default \"False\".\n - DisableNoiseSupression: Disables the use of noise suppression for the audio channel. Default \"False\".\n - DisableAutoGainControl: Disables the use of auto gain control for the audio channel. Default \"False\".\n - DisableDtx: Allows to disable the use of DTX.  Default \"False\"."]
16826#[repr(C)]
16827#[derive(Debug, Copy, Clone)]
16828pub struct _tagEOS_RTC_SetRoomSettingOptions {
16829    #[doc = " API Version: Set this to EOS_RTC_SETROOMSETTING_API_LATEST."]
16830    pub ApiVersion: i32,
16831    #[doc = " The Product User ID of the user trying to request this operation."]
16832    pub LocalUserId: EOS_ProductUserId,
16833    #[doc = " The room the setting will be applied to."]
16834    pub RoomName: *const ::std::os::raw::c_char,
16835    #[doc = " Setting that should be set."]
16836    pub SettingName: *const ::std::os::raw::c_char,
16837    #[doc = " Value to set the setting to."]
16838    pub SettingValue: *const ::std::os::raw::c_char,
16839}
16840impl Default for _tagEOS_RTC_SetRoomSettingOptions {
16841    fn default() -> Self {
16842        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16843        unsafe {
16844            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16845            s.assume_init()
16846        }
16847    }
16848}
16849#[doc = " This struct is used to call EOS_RTC_SetRoomSetting\n\n Available values of SettingName:\n - DisableEchoCancelation: Disables the use of echo cancellation for the audio channel. Default \"False\".\n - DisableNoiseSupression: Disables the use of noise suppression for the audio channel. Default \"False\".\n - DisableAutoGainControl: Disables the use of auto gain control for the audio channel. Default \"False\".\n - DisableDtx: Allows to disable the use of DTX.  Default \"False\"."]
16850pub type EOS_RTC_SetRoomSettingOptions = _tagEOS_RTC_SetRoomSettingOptions;
16851#[doc = " This struct is used to call EOS_RTC_AddNotifyRoomStatisticsUpdated."]
16852#[repr(C)]
16853#[derive(Debug, Copy, Clone)]
16854pub struct _tagEOS_RTC_AddNotifyRoomStatisticsUpdatedOptions {
16855    #[doc = " API Version: Set this to EOS_RTC_ADDNOTIFYROOMSTATISTICSUPDATED_API_LATEST."]
16856    pub ApiVersion: i32,
16857    #[doc = " The Product User ID of the user trying to request this operation."]
16858    pub LocalUserId: EOS_ProductUserId,
16859    #[doc = " The room this event is registered on."]
16860    pub RoomName: *const ::std::os::raw::c_char,
16861}
16862impl Default for _tagEOS_RTC_AddNotifyRoomStatisticsUpdatedOptions {
16863    fn default() -> Self {
16864        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16865        unsafe {
16866            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16867            s.assume_init()
16868        }
16869    }
16870}
16871#[doc = " This struct is used to call EOS_RTC_AddNotifyRoomStatisticsUpdated."]
16872pub type EOS_RTC_AddNotifyRoomStatisticsUpdatedOptions =
16873    _tagEOS_RTC_AddNotifyRoomStatisticsUpdatedOptions;
16874#[doc = " This struct is passed in with a call to EOS_RTC_AddNotifyRoomStatisticsUpdated registered event."]
16875#[repr(C)]
16876#[derive(Debug, Copy, Clone)]
16877pub struct _tagEOS_RTC_RoomStatisticsUpdatedInfo {
16878    #[doc = " Client-specified data passed into EOS_RTC_AddNotifyRoomStatisticsUpdated."]
16879    pub ClientData: *mut ::std::os::raw::c_void,
16880    #[doc = " The Product User ID of the user who initiated this request."]
16881    pub LocalUserId: EOS_ProductUserId,
16882    #[doc = " The room associated with this event."]
16883    pub RoomName: *const ::std::os::raw::c_char,
16884    #[doc = " Statistics in JSON format"]
16885    pub Statistic: *const ::std::os::raw::c_char,
16886}
16887impl Default for _tagEOS_RTC_RoomStatisticsUpdatedInfo {
16888    fn default() -> Self {
16889        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16890        unsafe {
16891            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16892            s.assume_init()
16893        }
16894    }
16895}
16896#[doc = " This struct is passed in with a call to EOS_RTC_AddNotifyRoomStatisticsUpdated registered event."]
16897pub type EOS_RTC_RoomStatisticsUpdatedInfo = _tagEOS_RTC_RoomStatisticsUpdatedInfo;
16898#[doc = " Function prototype definition for notifications that come from EOS_RTC_AddNotifyRoomStatisticsUpdated\n\n @param Data A EOS_RTC_RoomStatisticsUpdatedInfo containing the output information and result"]
16899pub type EOS_RTC_OnRoomStatisticsUpdatedCallback =
16900    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_RTC_RoomStatisticsUpdatedInfo)>;
16901#[repr(C)]
16902#[derive(Debug, Copy, Clone)]
16903pub struct EOS_RTCAdminHandle {
16904    _unused: [u8; 0],
16905}
16906pub type EOS_HRTCAdmin = *mut EOS_RTCAdminHandle;
16907#[doc = " Input parameters for the EOS_RTCAdmin_QueryJoinRoomToken function."]
16908#[repr(C)]
16909#[derive(Debug, Copy, Clone)]
16910pub struct _tagEOS_RTCAdmin_QueryJoinRoomTokenOptions {
16911    #[doc = " API Version: Set this to EOS_RTCADMIN_QUERYJOINROOMTOKEN_API_LATEST."]
16912    pub ApiVersion: i32,
16913    #[doc = " Product User ID for local user who is querying join room tokens."]
16914    pub LocalUserId: EOS_ProductUserId,
16915    #[doc = " Room name to request a token for."]
16916    pub RoomName: *const ::std::os::raw::c_char,
16917    #[doc = " An array of Product User IDs indicating the users to retrieve a token for."]
16918    pub TargetUserIds: *mut EOS_ProductUserId,
16919    #[doc = " The number of users included in the query."]
16920    pub TargetUserIdsCount: u32,
16921    #[doc = " Array of IP Addresses, one for each of the users we're querying tokens for.\n There should be TargetUserIdsCount Ip Addresses, you can set an entry to NULL if not known.\n If TargetUserIpAddresses is set to NULL IP Addresses will be ignored.\n IPv4 format: \"0.0.0.0\"\n IPv6 format: \"0:0:0:0:0:0:0:0\""]
16922    pub TargetUserIpAddresses: *mut *const ::std::os::raw::c_char,
16923}
16924impl Default for _tagEOS_RTCAdmin_QueryJoinRoomTokenOptions {
16925    fn default() -> Self {
16926        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16927        unsafe {
16928            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16929            s.assume_init()
16930        }
16931    }
16932}
16933#[doc = " Input parameters for the EOS_RTCAdmin_QueryJoinRoomToken function."]
16934pub type EOS_RTCAdmin_QueryJoinRoomTokenOptions = _tagEOS_RTCAdmin_QueryJoinRoomTokenOptions;
16935#[doc = " Data containing the result information for a query join room token request."]
16936#[repr(C)]
16937#[derive(Debug, Copy, Clone)]
16938pub struct _tagEOS_RTCAdmin_QueryJoinRoomTokenCompleteCallbackInfo {
16939    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
16940    pub ResultCode: EOS_EResult,
16941    #[doc = " Context that was passed into EOS_RTCAdmin_QueryJoinRoomToken."]
16942    pub ClientData: *mut ::std::os::raw::c_void,
16943    #[doc = " Room the request was made for."]
16944    pub RoomName: *const ::std::os::raw::c_char,
16945    #[doc = " URL passed to backend to join room."]
16946    pub ClientBaseUrl: *const ::std::os::raw::c_char,
16947    #[doc = " If the query completed successfully, this contains an identifier that should be used to retrieve the tokens.\n This identifier is only valid for the duration of the callback.\n\n @see EOS_RTCAdmin_CopyUserTokenByIndex\n @see EOS_RTCAdmin_CopyUserTokenByUserId"]
16948    pub QueryId: u32,
16949    #[doc = " How many token received as result of the query"]
16950    pub TokenCount: u32,
16951}
16952impl Default for _tagEOS_RTCAdmin_QueryJoinRoomTokenCompleteCallbackInfo {
16953    fn default() -> Self {
16954        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16955        unsafe {
16956            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16957            s.assume_init()
16958        }
16959    }
16960}
16961#[doc = " Data containing the result information for a query join room token request."]
16962pub type EOS_RTCAdmin_QueryJoinRoomTokenCompleteCallbackInfo =
16963    _tagEOS_RTCAdmin_QueryJoinRoomTokenCompleteCallbackInfo;
16964#[doc = " Function prototype definition for callbacks passed to EOS_RTCAdmin_QueryJoinRoomToken\n @param Data An EOS_RTCAdmin_QueryJoinRoomTokenCompleteCallbackInfo containing the output information and result"]
16965pub type EOS_RTCAdmin_OnQueryJoinRoomTokenCompleteCallback = ::std::option::Option<
16966    unsafe extern "C" fn(Data: *const EOS_RTCAdmin_QueryJoinRoomTokenCompleteCallbackInfo),
16967>;
16968#[doc = " Contains information about a collection of user tokens for joining a room."]
16969#[repr(C)]
16970#[derive(Debug, Copy, Clone)]
16971pub struct _tagEOS_RTCAdmin_UserToken {
16972    #[doc = " API Version: Set this to EOS_RTCADMIN_USERTOKEN_API_LATEST."]
16973    pub ApiVersion: i32,
16974    #[doc = " The Product User ID for the user who owns this user token."]
16975    pub ProductUserId: EOS_ProductUserId,
16976    #[doc = " Access token to enable a user to join a room"]
16977    pub Token: *const ::std::os::raw::c_char,
16978}
16979impl Default for _tagEOS_RTCAdmin_UserToken {
16980    fn default() -> Self {
16981        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16982        unsafe {
16983            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16984            s.assume_init()
16985        }
16986    }
16987}
16988#[doc = " Contains information about a collection of user tokens for joining a room."]
16989pub type EOS_RTCAdmin_UserToken = _tagEOS_RTCAdmin_UserToken;
16990#[doc = " Input parameters for the EOS_RTCAdmin_CopyUserTokenByIndex function."]
16991#[repr(C)]
16992#[derive(Debug, Default, Copy, Clone)]
16993pub struct _tagEOS_RTCAdmin_CopyUserTokenByIndexOptions {
16994    #[doc = " API Version: Set this to EOS_RTCADMIN_COPYUSERTOKENBYINDEX_API_LATEST."]
16995    pub ApiVersion: i32,
16996    #[doc = " Index of the user token to retrieve from the cache."]
16997    pub UserTokenIndex: u32,
16998    #[doc = " Query identifier received as part of a previous query.\n @see EOS_RTCAdmin_QueryJoinRoomTokenCompleteCallbackInfo"]
16999    pub QueryId: u32,
17000}
17001#[doc = " Input parameters for the EOS_RTCAdmin_CopyUserTokenByIndex function."]
17002pub type EOS_RTCAdmin_CopyUserTokenByIndexOptions = _tagEOS_RTCAdmin_CopyUserTokenByIndexOptions;
17003#[doc = " Input parameters for the EOS_RTCAdmin_CopyUserTokenByUserId function."]
17004#[repr(C)]
17005#[derive(Debug, Copy, Clone)]
17006pub struct _tagEOS_RTCAdmin_CopyUserTokenByUserIdOptions {
17007    #[doc = " API Version: Set this to EOS_RTCADMIN_COPYUSERTOKENBYUSERID_API_LATEST."]
17008    pub ApiVersion: i32,
17009    #[doc = " The Product User ID for the user whose user token we're copying."]
17010    pub TargetUserId: EOS_ProductUserId,
17011    #[doc = " Query identifier received as part of a previous query.\n @see EOS_RTCAdmin_QueryJoinRoomTokenCompleteCallbackInfo"]
17012    pub QueryId: u32,
17013}
17014impl Default for _tagEOS_RTCAdmin_CopyUserTokenByUserIdOptions {
17015    fn default() -> Self {
17016        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17017        unsafe {
17018            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17019            s.assume_init()
17020        }
17021    }
17022}
17023#[doc = " Input parameters for the EOS_RTCAdmin_CopyUserTokenByUserId function."]
17024pub type EOS_RTCAdmin_CopyUserTokenByUserIdOptions = _tagEOS_RTCAdmin_CopyUserTokenByUserIdOptions;
17025unsafe extern "C" {
17026    #[doc = " Release the memory associated with EOS_RTCAdmin_UserToken. This must be called on data retrieved from\n EOS_RTCAdmin_CopyUserTokenByIndex or EOS_RTCAdmin_CopyUserTokenByUserId.\n\n @param UserToken - The user token to release.\n\n @see EOS_RTCAdmin_UserToken\n @see EOS_RTCAdmin_CopyUserTokenByIndex\n @see EOS_RTCAdmin_CopyUserTokenByUserId"]
17027    pub fn EOS_RTCAdmin_UserToken_Release(UserToken: *mut EOS_RTCAdmin_UserToken);
17028}
17029#[doc = " Input parameters for the EOS_RTCAdmin_Kick function."]
17030#[repr(C)]
17031#[derive(Debug, Copy, Clone)]
17032pub struct _tagEOS_RTCAdmin_KickOptions {
17033    #[doc = " API Version: Set this to EOS_RTCADMIN_KICK_API_LATEST."]
17034    pub ApiVersion: i32,
17035    #[doc = " Room name to kick the participant from"]
17036    pub RoomName: *const ::std::os::raw::c_char,
17037    #[doc = " Product User ID of the participant to kick from the room"]
17038    pub TargetUserId: EOS_ProductUserId,
17039}
17040impl Default for _tagEOS_RTCAdmin_KickOptions {
17041    fn default() -> Self {
17042        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17043        unsafe {
17044            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17045            s.assume_init()
17046        }
17047    }
17048}
17049#[doc = " Input parameters for the EOS_RTCAdmin_Kick function."]
17050pub type EOS_RTCAdmin_KickOptions = _tagEOS_RTCAdmin_KickOptions;
17051#[doc = " Data containing the result information for a kick participant request."]
17052#[repr(C)]
17053#[derive(Debug, Copy, Clone)]
17054pub struct _tagEOS_RTCAdmin_KickCompleteCallbackInfo {
17055    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
17056    pub ResultCode: EOS_EResult,
17057    #[doc = " Client-specified data passed into the kick request"]
17058    pub ClientData: *mut ::std::os::raw::c_void,
17059}
17060impl Default for _tagEOS_RTCAdmin_KickCompleteCallbackInfo {
17061    fn default() -> Self {
17062        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17063        unsafe {
17064            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17065            s.assume_init()
17066        }
17067    }
17068}
17069#[doc = " Data containing the result information for a kick participant request."]
17070pub type EOS_RTCAdmin_KickCompleteCallbackInfo = _tagEOS_RTCAdmin_KickCompleteCallbackInfo;
17071#[doc = " Function prototype definition for callbacks passed to EOS_RTCAdmin_Kick\n @param Data An EOS_RTCAdmin_KickCompleteCallbackInfo containing the output information and result"]
17072pub type EOS_RTCAdmin_OnKickCompleteCallback =
17073    ::std::option::Option<unsafe extern "C" fn(Data: *const EOS_RTCAdmin_KickCompleteCallbackInfo)>;
17074#[doc = " Input parameters for the EOS_RTCAdmin_SetParticipantHardMute function."]
17075#[repr(C)]
17076#[derive(Debug, Copy, Clone)]
17077pub struct _tagEOS_RTCAdmin_SetParticipantHardMuteOptions {
17078    #[doc = " API Version: Set this to EOS_RTCADMIN_SETPARTICIPANTHARDMUTE_API_LATEST."]
17079    pub ApiVersion: i32,
17080    #[doc = " Room to kick the participant from"]
17081    pub RoomName: *const ::std::os::raw::c_char,
17082    #[doc = " Product User ID of the participant to hard mute for every participant in the room."]
17083    pub TargetUserId: EOS_ProductUserId,
17084    #[doc = " Hard mute status (Mute on or off)"]
17085    pub bMute: EOS_Bool,
17086}
17087impl Default for _tagEOS_RTCAdmin_SetParticipantHardMuteOptions {
17088    fn default() -> Self {
17089        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17090        unsafe {
17091            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17092            s.assume_init()
17093        }
17094    }
17095}
17096#[doc = " Input parameters for the EOS_RTCAdmin_SetParticipantHardMute function."]
17097pub type EOS_RTCAdmin_SetParticipantHardMuteOptions =
17098    _tagEOS_RTCAdmin_SetParticipantHardMuteOptions;
17099#[doc = " Data containing the result information for a hard mute request."]
17100#[repr(C)]
17101#[derive(Debug, Copy, Clone)]
17102pub struct _tagEOS_RTCAdmin_SetParticipantHardMuteCompleteCallbackInfo {
17103    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
17104    pub ResultCode: EOS_EResult,
17105    #[doc = " Client-specified data passed into the hard mute request"]
17106    pub ClientData: *mut ::std::os::raw::c_void,
17107}
17108impl Default for _tagEOS_RTCAdmin_SetParticipantHardMuteCompleteCallbackInfo {
17109    fn default() -> Self {
17110        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17111        unsafe {
17112            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17113            s.assume_init()
17114        }
17115    }
17116}
17117#[doc = " Data containing the result information for a hard mute request."]
17118pub type EOS_RTCAdmin_SetParticipantHardMuteCompleteCallbackInfo =
17119    _tagEOS_RTCAdmin_SetParticipantHardMuteCompleteCallbackInfo;
17120#[doc = " Function prototype definition for callbacks passed to EOS_RTCAdmin_SetParticipantHardMute\n @param Data An EOS_RTCAdmin_SetParticipantHardMuteCompleteCallbackInfo containing the output information and result"]
17121pub type EOS_RTCAdmin_OnSetParticipantHardMuteCompleteCallback = ::std::option::Option<
17122    unsafe extern "C" fn(Data: *const EOS_RTCAdmin_SetParticipantHardMuteCompleteCallbackInfo),
17123>;
17124#[repr(C)]
17125#[derive(Debug, Copy, Clone)]
17126pub struct EOS_ProgressionSnapshotHandle {
17127    _unused: [u8; 0],
17128}
17129#[doc = " Handle to the ProgressionSnapshot interface"]
17130pub type EOS_HProgressionSnapshot = *mut EOS_ProgressionSnapshotHandle;
17131#[doc = " Input parameters for the EOS_ProgressionSnapshot_BeginSnapshot function."]
17132#[repr(C)]
17133#[derive(Debug, Copy, Clone)]
17134pub struct _tagEOS_ProgressionSnapshot_BeginSnapshotOptions {
17135    #[doc = " API Version: Set this to EOS_PROGRESSIONSNAPSHOT_BEGINSNAPSHOT_API_LATEST."]
17136    pub ApiVersion: i32,
17137    #[doc = " The Product User ID of the local user to whom the key/value pair belong"]
17138    pub LocalUserId: EOS_ProductUserId,
17139}
17140impl Default for _tagEOS_ProgressionSnapshot_BeginSnapshotOptions {
17141    fn default() -> Self {
17142        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17143        unsafe {
17144            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17145            s.assume_init()
17146        }
17147    }
17148}
17149#[doc = " Input parameters for the EOS_ProgressionSnapshot_BeginSnapshot function."]
17150pub type EOS_ProgressionSnapshot_BeginSnapshotOptions =
17151    _tagEOS_ProgressionSnapshot_BeginSnapshotOptions;
17152#[doc = " Input parameters for the EOS_ProgressionSnapshot_AddProgression function."]
17153#[repr(C)]
17154#[derive(Debug, Copy, Clone)]
17155pub struct _tagEOS_ProgressionSnapshot_AddProgressionOptions {
17156    #[doc = " API Version: Set this to EOS_PROGRESSIONSNAPSHOT_ADDPROGRESSION_API_LATEST."]
17157    pub ApiVersion: i32,
17158    #[doc = " The Snapshot Id received via a EOS_ProgressionSnapshot_BeginSnapshot function."]
17159    pub SnapshotId: u32,
17160    #[doc = " The key in a key/value pair of progression entry"]
17161    pub Key: *const ::std::os::raw::c_char,
17162    #[doc = " The value in a key/value pair of progression entry"]
17163    pub Value: *const ::std::os::raw::c_char,
17164}
17165impl Default for _tagEOS_ProgressionSnapshot_AddProgressionOptions {
17166    fn default() -> Self {
17167        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17168        unsafe {
17169            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17170            s.assume_init()
17171        }
17172    }
17173}
17174#[doc = " Input parameters for the EOS_ProgressionSnapshot_AddProgression function."]
17175pub type EOS_ProgressionSnapshot_AddProgressionOptions =
17176    _tagEOS_ProgressionSnapshot_AddProgressionOptions;
17177#[doc = " Input parameters for the EOS_ProgressionSnapshot_SubmitSnapshot function."]
17178#[repr(C)]
17179#[derive(Debug, Default, Copy, Clone)]
17180pub struct _tagEOS_ProgressionSnapshot_SubmitSnapshotOptions {
17181    #[doc = " API Version: Set this to EOS_PROGRESSIONSNAPSHOT_SUBMITSNAPSHOT_API_LATEST."]
17182    pub ApiVersion: i32,
17183    #[doc = " The Snapshot Id received via a EOS_ProgressionSnapshot_BeginSnapshot function."]
17184    pub SnapshotId: u32,
17185}
17186#[doc = " Input parameters for the EOS_ProgressionSnapshot_SubmitSnapshot function."]
17187pub type EOS_ProgressionSnapshot_SubmitSnapshotOptions =
17188    _tagEOS_ProgressionSnapshot_SubmitSnapshotOptions;
17189#[doc = " Input parameters for the EOS_ProgressionSnapshot_EndSnapshot function."]
17190#[repr(C)]
17191#[derive(Debug, Default, Copy, Clone)]
17192pub struct _tagEOS_ProgressionSnapshot_EndSnapshotOptions {
17193    #[doc = " API Version: Set this to EOS_PROGRESSIONSNAPSHOT_ENDSNAPSHOT_API_LATEST."]
17194    pub ApiVersion: i32,
17195    #[doc = " The Snapshot Id received via a EOS_ProgressionSnapshot_BeginSnapshot function."]
17196    pub SnapshotId: u32,
17197}
17198#[doc = " Input parameters for the EOS_ProgressionSnapshot_EndSnapshot function."]
17199pub type EOS_ProgressionSnapshot_EndSnapshotOptions =
17200    _tagEOS_ProgressionSnapshot_EndSnapshotOptions;
17201#[doc = " Output parameters for the EOS_ProgressionSnapshot_SubmitSnapshot Function."]
17202#[repr(C)]
17203#[derive(Debug, Copy, Clone)]
17204pub struct _tagEOS_ProgressionSnapshot_SubmitSnapshotCallbackInfo {
17205    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
17206    pub ResultCode: EOS_EResult,
17207    #[doc = " The Snapshot Id used in the Submit function."]
17208    pub SnapshotId: u32,
17209    #[doc = " Context that was passed into EOS_ProgressionSnapshot_SubmitSnapshot."]
17210    pub ClientData: *mut ::std::os::raw::c_void,
17211}
17212impl Default for _tagEOS_ProgressionSnapshot_SubmitSnapshotCallbackInfo {
17213    fn default() -> Self {
17214        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17215        unsafe {
17216            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17217            s.assume_init()
17218        }
17219    }
17220}
17221#[doc = " Output parameters for the EOS_ProgressionSnapshot_SubmitSnapshot Function."]
17222pub type EOS_ProgressionSnapshot_SubmitSnapshotCallbackInfo =
17223    _tagEOS_ProgressionSnapshot_SubmitSnapshotCallbackInfo;
17224#[doc = " Function prototype definition for callbacks passed to EOS_ProgressionSnapshot_SubmitSnapshot\n @param Data A EOS_ProgressionSnapshot_SubmitSnapshotCallbackInfo containing the output information and result"]
17225pub type EOS_ProgressionSnapshot_OnSubmitSnapshotCallback = ::std::option::Option<
17226    unsafe extern "C" fn(Data: *const EOS_ProgressionSnapshot_SubmitSnapshotCallbackInfo),
17227>;
17228#[doc = " Input parameters for the EOS_ProgressionSnapshot_DeleteSnapshot function."]
17229#[repr(C)]
17230#[derive(Debug, Copy, Clone)]
17231pub struct _tagEOS_ProgressionSnapshot_DeleteSnapshotOptions {
17232    #[doc = " API Version: Set this to EOS_PROGRESSIONSNAPSHOT_DELETESNAPSHOT_API_LATEST."]
17233    pub ApiVersion: i32,
17234    #[doc = " The Product User ID of the local user to whom the key/value pair belong"]
17235    pub LocalUserId: EOS_ProductUserId,
17236}
17237impl Default for _tagEOS_ProgressionSnapshot_DeleteSnapshotOptions {
17238    fn default() -> Self {
17239        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17240        unsafe {
17241            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17242            s.assume_init()
17243        }
17244    }
17245}
17246#[doc = " Input parameters for the EOS_ProgressionSnapshot_DeleteSnapshot function."]
17247pub type EOS_ProgressionSnapshot_DeleteSnapshotOptions =
17248    _tagEOS_ProgressionSnapshot_DeleteSnapshotOptions;
17249#[doc = " Output parameters for the EOS_ProgressionSnapshot_DeleteSnapshot Function."]
17250#[repr(C)]
17251#[derive(Debug, Copy, Clone)]
17252pub struct _tagEOS_ProgressionSnapshot_DeleteSnapshotCallbackInfo {
17253    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
17254    pub ResultCode: EOS_EResult,
17255    #[doc = " The Product User ID of the local user to whom the key/value pair belong"]
17256    pub LocalUserId: EOS_ProductUserId,
17257    #[doc = " Context that was passed into EOS_ProgressionSnapshot_SubmitSnapshot."]
17258    pub ClientData: *mut ::std::os::raw::c_void,
17259}
17260impl Default for _tagEOS_ProgressionSnapshot_DeleteSnapshotCallbackInfo {
17261    fn default() -> Self {
17262        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17263        unsafe {
17264            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17265            s.assume_init()
17266        }
17267    }
17268}
17269#[doc = " Output parameters for the EOS_ProgressionSnapshot_DeleteSnapshot Function."]
17270pub type EOS_ProgressionSnapshot_DeleteSnapshotCallbackInfo =
17271    _tagEOS_ProgressionSnapshot_DeleteSnapshotCallbackInfo;
17272#[doc = " Function prototype definition for callbacks passed to EOS_ProgressionSnapshot_DeleteSnapshot\n @param Data A EOS_ProgressionSnapshot_DeleteSnapshotCallbackInfo containing the output information and result"]
17273pub type EOS_ProgressionSnapshot_OnDeleteSnapshotCallback = ::std::option::Option<
17274    unsafe extern "C" fn(Data: *const EOS_ProgressionSnapshot_DeleteSnapshotCallbackInfo),
17275>;
17276#[repr(C)]
17277#[derive(Debug, Copy, Clone)]
17278pub struct EOS_CustomInvitesHandle {
17279    _unused: [u8; 0],
17280}
17281#[doc = " Handle to the custom invites interface"]
17282pub type EOS_HCustomInvites = *mut EOS_CustomInvitesHandle;
17283#[doc = " Input parameters for the EOS_CustomInvites_SetCustomInvite function."]
17284#[repr(C)]
17285#[derive(Debug, Copy, Clone)]
17286pub struct _tagEOS_CustomInvites_SetCustomInviteOptions {
17287    #[doc = " API Version: Set this to EOS_CUSTOMINVITES_SETCUSTOMINVITE_API_LATEST."]
17288    pub ApiVersion: i32,
17289    #[doc = " Local user creating / sending a Custom Invite"]
17290    pub LocalUserId: EOS_ProductUserId,
17291    #[doc = " String payload for the Custom Invite (must be less than EOS_CUSTOMINVITES_MAX_PAYLOAD_LENGTH)"]
17292    pub Payload: *const ::std::os::raw::c_char,
17293}
17294impl Default for _tagEOS_CustomInvites_SetCustomInviteOptions {
17295    fn default() -> Self {
17296        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17297        unsafe {
17298            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17299            s.assume_init()
17300        }
17301    }
17302}
17303#[doc = " Input parameters for the EOS_CustomInvites_SetCustomInvite function."]
17304pub type EOS_CustomInvites_SetCustomInviteOptions = _tagEOS_CustomInvites_SetCustomInviteOptions;
17305#[doc = " Input parameters for the EOS_CustomInvites_SendCustomInvite function."]
17306#[repr(C)]
17307#[derive(Debug, Copy, Clone)]
17308pub struct _tagEOS_CustomInvites_SendCustomInviteOptions {
17309    #[doc = " API Version: Set this to EOS_CUSTOMINVITES_SENDCUSTOMINVITE_API_LATEST."]
17310    pub ApiVersion: i32,
17311    #[doc = " Local user sending a CustomInvite"]
17312    pub LocalUserId: EOS_ProductUserId,
17313    #[doc = " Users to whom the invites should be sent"]
17314    pub TargetUserIds: *mut EOS_ProductUserId,
17315    #[doc = " The number of users we are sending to"]
17316    pub TargetUserIdsCount: u32,
17317}
17318impl Default for _tagEOS_CustomInvites_SendCustomInviteOptions {
17319    fn default() -> Self {
17320        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17321        unsafe {
17322            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17323            s.assume_init()
17324        }
17325    }
17326}
17327#[doc = " Input parameters for the EOS_CustomInvites_SendCustomInvite function."]
17328pub type EOS_CustomInvites_SendCustomInviteOptions = _tagEOS_CustomInvites_SendCustomInviteOptions;
17329#[doc = " Output parameters for the EOS_CustomInvites_SendCustomInvite Function. These parameters are received through the callback provided to EOS_CustomInvites_SendCustomInvite"]
17330#[repr(C)]
17331#[derive(Debug, Copy, Clone)]
17332pub struct _tagEOS_CustomInvites_SendCustomInviteCallbackInfo {
17333    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
17334    pub ResultCode: EOS_EResult,
17335    #[doc = " Context that was passed into EOS_CustomInvites_SendCustomInvite"]
17336    pub ClientData: *mut ::std::os::raw::c_void,
17337    #[doc = " Local user sending a CustomInvite"]
17338    pub LocalUserId: EOS_ProductUserId,
17339    #[doc = " Users to whom the invites were successfully sent (can be different than original call if an invite for same Payload was previously sent)"]
17340    pub TargetUserIds: *mut EOS_ProductUserId,
17341    #[doc = " The number of users we are sending to"]
17342    pub TargetUserIdsCount: u32,
17343}
17344impl Default for _tagEOS_CustomInvites_SendCustomInviteCallbackInfo {
17345    fn default() -> Self {
17346        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17347        unsafe {
17348            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17349            s.assume_init()
17350        }
17351    }
17352}
17353#[doc = " Output parameters for the EOS_CustomInvites_SendCustomInvite Function. These parameters are received through the callback provided to EOS_CustomInvites_SendCustomInvite"]
17354pub type EOS_CustomInvites_SendCustomInviteCallbackInfo =
17355    _tagEOS_CustomInvites_SendCustomInviteCallbackInfo;
17356#[doc = " Function prototype definition for callbacks passed to EOS_CustomInvites_SendCustomInvite\n @param Data A EOS_CustomInvites_SendCustomInviteCallbackInfo containing the output information and result"]
17357pub type EOS_CustomInvites_OnSendCustomInviteCallback = ::std::option::Option<
17358    unsafe extern "C" fn(Data: *const EOS_CustomInvites_SendCustomInviteCallbackInfo),
17359>;
17360#[doc = " Input parameters for the EOS_CustomInvites_AddNotifyCustomInviteReceived function."]
17361#[repr(C)]
17362#[derive(Debug, Default, Copy, Clone)]
17363pub struct _tagEOS_CustomInvites_AddNotifyCustomInviteReceivedOptions {
17364    #[doc = " API Version: Set this to EOS_CUSTOMINVITES_ADDNOTIFYCUSTOMINVITERECEIVED_API_LATEST."]
17365    pub ApiVersion: i32,
17366}
17367#[doc = " Input parameters for the EOS_CustomInvites_AddNotifyCustomInviteReceived function."]
17368pub type EOS_CustomInvites_AddNotifyCustomInviteReceivedOptions =
17369    _tagEOS_CustomInvites_AddNotifyCustomInviteReceivedOptions;
17370#[doc = " Output parameters for the EOS_CustomInvites_OnCustomInviteReceivedCallback Function."]
17371#[repr(C)]
17372#[derive(Debug, Copy, Clone)]
17373pub struct _tagEOS_CustomInvites_OnCustomInviteReceivedCallbackInfo {
17374    #[doc = " Context that was passed into EOS_CustomInvites_AddNotifyCustomInviteReceived"]
17375    pub ClientData: *mut ::std::os::raw::c_void,
17376    #[doc = " User that sent this custom invite"]
17377    pub TargetUserId: EOS_ProductUserId,
17378    #[doc = " Recipient Local user id"]
17379    pub LocalUserId: EOS_ProductUserId,
17380    #[doc = " Id of the received Custom Invite"]
17381    pub CustomInviteId: *const ::std::os::raw::c_char,
17382    #[doc = " Payload of the received Custom Invite"]
17383    pub Payload: *const ::std::os::raw::c_char,
17384}
17385impl Default for _tagEOS_CustomInvites_OnCustomInviteReceivedCallbackInfo {
17386    fn default() -> Self {
17387        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17388        unsafe {
17389            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17390            s.assume_init()
17391        }
17392    }
17393}
17394#[doc = " Output parameters for the EOS_CustomInvites_OnCustomInviteReceivedCallback Function."]
17395pub type EOS_CustomInvites_OnCustomInviteReceivedCallbackInfo =
17396    _tagEOS_CustomInvites_OnCustomInviteReceivedCallbackInfo;
17397#[doc = " Function prototype definition for notifications that comes from EOS_CustomInvites_AddNotifyCustomInviteReceived\n\n @param Data A EOS_CustomInvites_OnCustomInviteReceivedCallbackInfo containing the output information and result"]
17398pub type EOS_CustomInvites_OnCustomInviteReceivedCallback = ::std::option::Option<
17399    unsafe extern "C" fn(Data: *const EOS_CustomInvites_OnCustomInviteReceivedCallbackInfo),
17400>;
17401#[doc = " Input parameters for the EOS_CustomInvites_AddNotifyCustomInviteAccepted function."]
17402#[repr(C)]
17403#[derive(Debug, Default, Copy, Clone)]
17404pub struct _tagEOS_CustomInvites_AddNotifyCustomInviteAcceptedOptions {
17405    #[doc = " API Version: Set this to EOS_CUSTOMINVITES_ADDNOTIFYCUSTOMINVITEACCEPTED_API_LATEST."]
17406    pub ApiVersion: i32,
17407}
17408#[doc = " Input parameters for the EOS_CustomInvites_AddNotifyCustomInviteAccepted function."]
17409pub type EOS_CustomInvites_AddNotifyCustomInviteAcceptedOptions =
17410    _tagEOS_CustomInvites_AddNotifyCustomInviteAcceptedOptions;
17411#[doc = " Output parameters for the EOS_CustomInvites_OnCustomInviteAcceptedCallback Function."]
17412#[repr(C)]
17413#[derive(Debug, Copy, Clone)]
17414pub struct _tagEOS_CustomInvites_OnCustomInviteAcceptedCallbackInfo {
17415    #[doc = " Context that was passed into EOS_CustomInvites_AddNotifyCustomInviteAccepted"]
17416    pub ClientData: *mut ::std::os::raw::c_void,
17417    #[doc = " User that sent the custom invite"]
17418    pub TargetUserId: EOS_ProductUserId,
17419    #[doc = " Recipient Local user id"]
17420    pub LocalUserId: EOS_ProductUserId,
17421    #[doc = " Id of the accepted Custom Invite"]
17422    pub CustomInviteId: *const ::std::os::raw::c_char,
17423    #[doc = " Payload of the accepted Custom Invite"]
17424    pub Payload: *const ::std::os::raw::c_char,
17425}
17426impl Default for _tagEOS_CustomInvites_OnCustomInviteAcceptedCallbackInfo {
17427    fn default() -> Self {
17428        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17429        unsafe {
17430            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17431            s.assume_init()
17432        }
17433    }
17434}
17435#[doc = " Output parameters for the EOS_CustomInvites_OnCustomInviteAcceptedCallback Function."]
17436pub type EOS_CustomInvites_OnCustomInviteAcceptedCallbackInfo =
17437    _tagEOS_CustomInvites_OnCustomInviteAcceptedCallbackInfo;
17438#[doc = " Function prototype definition for notifications that comes from EOS_CustomInvites_AddNotifyCustomInviteAccepted\n\n @param Data A EOS_CustomInvites_OnCustomInviteAcceptedCallbackInfo containing the output information and result"]
17439pub type EOS_CustomInvites_OnCustomInviteAcceptedCallback = ::std::option::Option<
17440    unsafe extern "C" fn(Data: *const EOS_CustomInvites_OnCustomInviteAcceptedCallbackInfo),
17441>;
17442#[doc = " Input parameters for the EOS_CustomInvites_AddNotifyCustomInviteRejected function."]
17443#[repr(C)]
17444#[derive(Debug, Default, Copy, Clone)]
17445pub struct _tagEOS_CustomInvites_AddNotifyCustomInviteRejectedOptions {
17446    #[doc = " API Version: Set this to EOS_CUSTOMINVITES_ADDNOTIFYCUSTOMINVITEREJECTED_API_LATEST."]
17447    pub ApiVersion: i32,
17448}
17449#[doc = " Input parameters for the EOS_CustomInvites_AddNotifyCustomInviteRejected function."]
17450pub type EOS_CustomInvites_AddNotifyCustomInviteRejectedOptions =
17451    _tagEOS_CustomInvites_AddNotifyCustomInviteRejectedOptions;
17452#[doc = " Output parameters for the EOS_CustomInvites_OnCustomInviteRejectedCallback Function."]
17453#[repr(C)]
17454#[derive(Debug, Copy, Clone)]
17455pub struct _tagEOS_CustomInvites_CustomInviteRejectedCallbackInfo {
17456    #[doc = " Context that was passed into EOS_CustomInvites_AddNotifyCustomInviteRejected"]
17457    pub ClientData: *mut ::std::os::raw::c_void,
17458    #[doc = " User that sent the custom invite"]
17459    pub TargetUserId: EOS_ProductUserId,
17460    #[doc = " Recipient Local user id"]
17461    pub LocalUserId: EOS_ProductUserId,
17462    #[doc = " Id of the rejected Custom Invite"]
17463    pub CustomInviteId: *const ::std::os::raw::c_char,
17464    #[doc = " Payload of the rejected Custom Invite"]
17465    pub Payload: *const ::std::os::raw::c_char,
17466}
17467impl Default for _tagEOS_CustomInvites_CustomInviteRejectedCallbackInfo {
17468    fn default() -> Self {
17469        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17470        unsafe {
17471            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17472            s.assume_init()
17473        }
17474    }
17475}
17476#[doc = " Output parameters for the EOS_CustomInvites_OnCustomInviteRejectedCallback Function."]
17477pub type EOS_CustomInvites_CustomInviteRejectedCallbackInfo =
17478    _tagEOS_CustomInvites_CustomInviteRejectedCallbackInfo;
17479#[doc = " Function prototype definition for notifications that comes from EOS_CustomInvites_AddNotifyCustomInviteRejected\n\n @param Data A EOS_CustomInvites_CustomInviteRejectedCallbackInfo containing the output information and result"]
17480pub type EOS_CustomInvites_OnCustomInviteRejectedCallback = ::std::option::Option<
17481    unsafe extern "C" fn(Data: *const EOS_CustomInvites_CustomInviteRejectedCallbackInfo),
17482>;
17483#[doc = " Input parameters for the EOS_CustomInvites_FinalizeInvite function."]
17484#[repr(C)]
17485#[derive(Debug, Copy, Clone)]
17486pub struct _tagEOS_CustomInvites_FinalizeInviteOptions {
17487    #[doc = " API Version: Set this to EOS_CUSTOMINVITES_FINALIZEINVITE_API_LATEST."]
17488    pub ApiVersion: i32,
17489    #[doc = " User that sent the custom invite"]
17490    pub TargetUserId: EOS_ProductUserId,
17491    #[doc = " Recipient Local user id"]
17492    pub LocalUserId: EOS_ProductUserId,
17493    #[doc = " Id of the Custom Invite accepted"]
17494    pub CustomInviteId: *const ::std::os::raw::c_char,
17495    #[doc = " Result of the Processing operation, transmitted to Social Overlay if applicable"]
17496    pub ProcessingResult: EOS_EResult,
17497}
17498impl Default for _tagEOS_CustomInvites_FinalizeInviteOptions {
17499    fn default() -> Self {
17500        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17501        unsafe {
17502            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17503            s.assume_init()
17504        }
17505    }
17506}
17507#[doc = " Input parameters for the EOS_CustomInvites_FinalizeInvite function."]
17508pub type EOS_CustomInvites_FinalizeInviteOptions = _tagEOS_CustomInvites_FinalizeInviteOptions;
17509#[doc = " Input parameters for the EOS_CustomInvites_SendRequestToJoin function."]
17510#[repr(C)]
17511#[derive(Debug, Copy, Clone)]
17512pub struct _tagEOS_CustomInvites_SendRequestToJoinOptions {
17513    #[doc = " API Version: Set this to EOS_CUSTOMINVITES_SENDREQUESTTOJOIN_API_LATEST."]
17514    pub ApiVersion: i32,
17515    #[doc = " Local user Requesting an Invite"]
17516    pub LocalUserId: EOS_ProductUserId,
17517    #[doc = " Recipient of Request Invite"]
17518    pub TargetUserId: EOS_ProductUserId,
17519}
17520impl Default for _tagEOS_CustomInvites_SendRequestToJoinOptions {
17521    fn default() -> Self {
17522        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17523        unsafe {
17524            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17525            s.assume_init()
17526        }
17527    }
17528}
17529#[doc = " Input parameters for the EOS_CustomInvites_SendRequestToJoin function."]
17530pub type EOS_CustomInvites_SendRequestToJoinOptions =
17531    _tagEOS_CustomInvites_SendRequestToJoinOptions;
17532#[doc = " Output parameters for the EOS_CustomInvites_SendRequestToJoin Function. These parameters are received through the callback provided to EOS_CustomInvites_SendRequestToJoin"]
17533#[repr(C)]
17534#[derive(Debug, Copy, Clone)]
17535pub struct _tagEOS_CustomInvites_SendRequestToJoinCallbackInfo {
17536    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
17537    pub ResultCode: EOS_EResult,
17538    #[doc = " Context that was passed into EOS_CustomInvites_SendRequestToJoin"]
17539    pub ClientData: *mut ::std::os::raw::c_void,
17540    #[doc = " Local user requesting an invite"]
17541    pub LocalUserId: EOS_ProductUserId,
17542    #[doc = " Recipient of Request Invite"]
17543    pub TargetUserId: EOS_ProductUserId,
17544}
17545impl Default for _tagEOS_CustomInvites_SendRequestToJoinCallbackInfo {
17546    fn default() -> Self {
17547        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17548        unsafe {
17549            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17550            s.assume_init()
17551        }
17552    }
17553}
17554#[doc = " Output parameters for the EOS_CustomInvites_SendRequestToJoin Function. These parameters are received through the callback provided to EOS_CustomInvites_SendRequestToJoin"]
17555pub type EOS_CustomInvites_SendRequestToJoinCallbackInfo =
17556    _tagEOS_CustomInvites_SendRequestToJoinCallbackInfo;
17557#[doc = " Function prototype definition for callbacks passed to EOS_CustomInvites_SendRequestToJoin\n @param Data A EOS_CustomInvites_SendCustomInviteCallbackInfo containing the output information and result"]
17558pub type EOS_CustomInvites_OnSendRequestToJoinCallback = ::std::option::Option<
17559    unsafe extern "C" fn(Data: *const EOS_CustomInvites_SendRequestToJoinCallbackInfo),
17560>;
17561#[doc = " Input parameters for the EOS_CustomInvites_AddNotifyRequestToJoinResponseReceived function."]
17562#[repr(C)]
17563#[derive(Debug, Default, Copy, Clone)]
17564pub struct _tagEOS_CustomInvites_AddNotifyRequestToJoinResponseReceivedOptions {
17565    #[doc = " API Version: Set this to EOS_CUSTOMINVITES_ADDNOTIFYREQUESTTOJOINRESPONSERECEIVED_API_LATEST."]
17566    pub ApiVersion: i32,
17567}
17568#[doc = " Input parameters for the EOS_CustomInvites_AddNotifyRequestToJoinResponseReceived function."]
17569pub type EOS_CustomInvites_AddNotifyRequestToJoinResponseReceivedOptions =
17570    _tagEOS_CustomInvites_AddNotifyRequestToJoinResponseReceivedOptions;
17571#[doc = " The target of the invite request has accepted."]
17572pub const EOS_ERequestToJoinResponse_EOS_RTJR_ACCEPTED: EOS_ERequestToJoinResponse = 0;
17573#[doc = " The target of the invite request has rejected."]
17574pub const EOS_ERequestToJoinResponse_EOS_RTJR_REJECTED: EOS_ERequestToJoinResponse = 1;
17575pub const EOS_ERequestToJoinResponse___EOS_ERequestToJoinResponse_PAD_INT32__:
17576    EOS_ERequestToJoinResponse = 2147483647;
17577#[doc = " Response to an invite request."]
17578pub type EOS_ERequestToJoinResponse = ::std::os::raw::c_int;
17579#[doc = " Output parameters for the EOS_CustomInvites_OnRequestToJoinResponseReceivedCallback function."]
17580#[repr(C)]
17581#[derive(Debug, Copy, Clone)]
17582pub struct _tagEOS_CustomInvites_RequestToJoinResponseReceivedCallbackInfo {
17583    #[doc = " Context that was passed into EOS_CustomInvites_AddNotifyRequestToJoinResponseReceived"]
17584    pub ClientData: *mut ::std::os::raw::c_void,
17585    #[doc = " User that sent this response"]
17586    pub FromUserId: EOS_ProductUserId,
17587    #[doc = " Recipient Local user id"]
17588    pub ToUserId: EOS_ProductUserId,
17589    #[doc = " The Intent associated with this response"]
17590    pub Response: EOS_ERequestToJoinResponse,
17591}
17592impl Default for _tagEOS_CustomInvites_RequestToJoinResponseReceivedCallbackInfo {
17593    fn default() -> Self {
17594        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17595        unsafe {
17596            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17597            s.assume_init()
17598        }
17599    }
17600}
17601#[doc = " Output parameters for the EOS_CustomInvites_OnRequestToJoinResponseReceivedCallback function."]
17602pub type EOS_CustomInvites_RequestToJoinResponseReceivedCallbackInfo =
17603    _tagEOS_CustomInvites_RequestToJoinResponseReceivedCallbackInfo;
17604#[doc = " Function prototype definition for notifications that come from EOS_CustomInvites_AddNotifyRequestToJoinResponseReceived\n\n @param Data A EOS_CustomInvites_RequestToJoinResponseReceivedCallbackInfo containing the output information and result"]
17605pub type EOS_CustomInvites_OnRequestToJoinResponseReceivedCallback = ::std::option::Option<
17606    unsafe extern "C" fn(Data: *const EOS_CustomInvites_RequestToJoinResponseReceivedCallbackInfo),
17607>;
17608#[doc = " Input parameters for the AddNotifyRequestToJoinReceived function."]
17609#[repr(C)]
17610#[derive(Debug, Default, Copy, Clone)]
17611pub struct _tagEOS_CustomInvites_AddNotifyRequestToJoinReceivedOptions {
17612    #[doc = " API Version: Set this to EOS_CUSTOMINVITES_ADDNOTIFYREQUESTTOJOINRECEIVED_API_LATEST."]
17613    pub ApiVersion: i32,
17614}
17615#[doc = " Input parameters for the AddNotifyRequestToJoinReceived function."]
17616pub type EOS_CustomInvites_AddNotifyRequestToJoinReceivedOptions =
17617    _tagEOS_CustomInvites_AddNotifyRequestToJoinReceivedOptions;
17618#[doc = " Output parameters for the EOS_CustomInvites_AddNotifyRequestToJoinReceived function."]
17619#[repr(C)]
17620#[derive(Debug, Copy, Clone)]
17621pub struct _tagEOS_CustomInvites_RequestToJoinReceivedCallbackInfo {
17622    #[doc = " Context that was passed into EOS_CustomInvites_AddNotifyRequestToJoinReceived"]
17623    pub ClientData: *mut ::std::os::raw::c_void,
17624    #[doc = " User that sent this response"]
17625    pub FromUserId: EOS_ProductUserId,
17626    #[doc = " Recipient Local user id"]
17627    pub ToUserId: EOS_ProductUserId,
17628}
17629impl Default for _tagEOS_CustomInvites_RequestToJoinReceivedCallbackInfo {
17630    fn default() -> Self {
17631        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17632        unsafe {
17633            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17634            s.assume_init()
17635        }
17636    }
17637}
17638#[doc = " Output parameters for the EOS_CustomInvites_AddNotifyRequestToJoinReceived function."]
17639pub type EOS_CustomInvites_RequestToJoinReceivedCallbackInfo =
17640    _tagEOS_CustomInvites_RequestToJoinReceivedCallbackInfo;
17641#[doc = " Function prototype definition for notifications that comes from EOS_CustomInvites_AddNotifyRequestToJoinReceived\n\n @param Data A EOS_CustomInvites_RequestToJoinReceivedCallbackInfo containing the output information and result"]
17642pub type EOS_CustomInvites_OnRequestToJoinReceivedCallback = ::std::option::Option<
17643    unsafe extern "C" fn(Data: *const EOS_CustomInvites_RequestToJoinReceivedCallbackInfo),
17644>;
17645#[doc = " Input parameters for the EOS_CustomInvites_AcceptRequestToJoin function."]
17646#[repr(C)]
17647#[derive(Debug, Copy, Clone)]
17648pub struct _tagEOS_CustomInvites_AcceptRequestToJoinOptions {
17649    #[doc = " API Version: Set this to EOS_CUSTOMINVITES_ACCEPTREQUESTTOJOIN_API_LATEST."]
17650    pub ApiVersion: i32,
17651    #[doc = " Local user accepting a request to join"]
17652    pub LocalUserId: EOS_ProductUserId,
17653    #[doc = " Target user that sent original request to join"]
17654    pub TargetUserId: EOS_ProductUserId,
17655}
17656impl Default for _tagEOS_CustomInvites_AcceptRequestToJoinOptions {
17657    fn default() -> Self {
17658        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17659        unsafe {
17660            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17661            s.assume_init()
17662        }
17663    }
17664}
17665#[doc = " Input parameters for the EOS_CustomInvites_AcceptRequestToJoin function."]
17666pub type EOS_CustomInvites_AcceptRequestToJoinOptions =
17667    _tagEOS_CustomInvites_AcceptRequestToJoinOptions;
17668#[doc = " Output parameters for the EOS_CustomInvites_AcceptRequestToJoin Function. These parameters are received through the callback provided to EOS_CustomInvites_AcceptRequestToJoin"]
17669#[repr(C)]
17670#[derive(Debug, Copy, Clone)]
17671pub struct _tagEOS_CustomInvites_AcceptRequestToJoinCallbackInfo {
17672    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
17673    pub ResultCode: EOS_EResult,
17674    #[doc = " Context that was passed into EOS_CustomInvites_AcceptRequestToJoin"]
17675    pub ClientData: *mut ::std::os::raw::c_void,
17676    #[doc = " Local user accepting an invite request"]
17677    pub LocalUserId: EOS_ProductUserId,
17678    #[doc = " Target user that sent original invite request"]
17679    pub TargetUserId: EOS_ProductUserId,
17680}
17681impl Default for _tagEOS_CustomInvites_AcceptRequestToJoinCallbackInfo {
17682    fn default() -> Self {
17683        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17684        unsafe {
17685            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17686            s.assume_init()
17687        }
17688    }
17689}
17690#[doc = " Output parameters for the EOS_CustomInvites_AcceptRequestToJoin Function. These parameters are received through the callback provided to EOS_CustomInvites_AcceptRequestToJoin"]
17691pub type EOS_CustomInvites_AcceptRequestToJoinCallbackInfo =
17692    _tagEOS_CustomInvites_AcceptRequestToJoinCallbackInfo;
17693#[doc = " Function prototype definition for callbacks passed to EOS_CustomInvites_AcceptRequestToJoin\n @param Data A EOS_CustomInvites_AcceptRequestToJoinCallbackInfo containing the output information and result"]
17694pub type EOS_CustomInvites_OnAcceptRequestToJoinCallback = ::std::option::Option<
17695    unsafe extern "C" fn(Data: *const EOS_CustomInvites_AcceptRequestToJoinCallbackInfo),
17696>;
17697#[doc = " Input parameters for the EOS_CustomInvites_RejectRequestToJoin function."]
17698#[repr(C)]
17699#[derive(Debug, Copy, Clone)]
17700pub struct _tagEOS_CustomInvites_RejectRequestToJoinOptions {
17701    #[doc = " API Version: Set this to EOS_CUSTOMINVITES_REJECTREQUESTTOJOIN_API_LATEST."]
17702    pub ApiVersion: i32,
17703    #[doc = " Local user declining an invite request"]
17704    pub LocalUserId: EOS_ProductUserId,
17705    #[doc = " Target user that sent original invite request"]
17706    pub TargetUserId: EOS_ProductUserId,
17707}
17708impl Default for _tagEOS_CustomInvites_RejectRequestToJoinOptions {
17709    fn default() -> Self {
17710        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17711        unsafe {
17712            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17713            s.assume_init()
17714        }
17715    }
17716}
17717#[doc = " Input parameters for the EOS_CustomInvites_RejectRequestToJoin function."]
17718pub type EOS_CustomInvites_RejectRequestToJoinOptions =
17719    _tagEOS_CustomInvites_RejectRequestToJoinOptions;
17720#[doc = " Output parameters for the EOS_CustomInvites_RejectRequestToJoin Function. These parameters are received through the callback provided to EOS_CustomInvites_RejectRequestToJoin"]
17721#[repr(C)]
17722#[derive(Debug, Copy, Clone)]
17723pub struct _tagEOS_CustomInvites_RejectRequestToJoinCallbackInfo {
17724    #[doc = " The EOS_EResult code for the operation. EOS_Success indicates that the operation succeeded; other codes indicate errors."]
17725    pub ResultCode: EOS_EResult,
17726    #[doc = " Context that was passed into EOS_CustomInvites_RejectRequestToJoin"]
17727    pub ClientData: *mut ::std::os::raw::c_void,
17728    #[doc = " Local user declining a request to join"]
17729    pub LocalUserId: EOS_ProductUserId,
17730    #[doc = " Target user that sent original request to join"]
17731    pub TargetUserId: EOS_ProductUserId,
17732}
17733impl Default for _tagEOS_CustomInvites_RejectRequestToJoinCallbackInfo {
17734    fn default() -> Self {
17735        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17736        unsafe {
17737            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17738            s.assume_init()
17739        }
17740    }
17741}
17742#[doc = " Output parameters for the EOS_CustomInvites_RejectRequestToJoin Function. These parameters are received through the callback provided to EOS_CustomInvites_RejectRequestToJoin"]
17743pub type EOS_CustomInvites_RejectRequestToJoinCallbackInfo =
17744    _tagEOS_CustomInvites_RejectRequestToJoinCallbackInfo;
17745#[doc = " Function prototype definition for callbacks passed to EOS_CustomInvites_RejectRequestToJoin\n @param Data A EOS_CustomInvites_OnRejectRequestToJoinCallback containing the output information and result"]
17746pub type EOS_CustomInvites_OnRejectRequestToJoinCallback = ::std::option::Option<
17747    unsafe extern "C" fn(Data: *const EOS_CustomInvites_RejectRequestToJoinCallbackInfo),
17748>;
17749#[doc = " Input parameters for the EOS_CustomInvites_AddNotifySendCustomNativeInviteRequested function."]
17750#[repr(C)]
17751#[derive(Debug, Default, Copy, Clone)]
17752pub struct _tagEOS_CustomInvites_AddNotifySendCustomNativeInviteRequestedOptions {
17753    #[doc = " API Version: Set this to EOS_CUSTOMINVITES_ADDNOTIFYSENDCUSTOMNATIVEINVITEREQUESTED_API_LATEST."]
17754    pub ApiVersion: i32,
17755}
17756#[doc = " Input parameters for the EOS_CustomInvites_AddNotifySendCustomNativeInviteRequested function."]
17757pub type EOS_CustomInvites_AddNotifySendCustomNativeInviteRequestedOptions =
17758    _tagEOS_CustomInvites_AddNotifySendCustomNativeInviteRequestedOptions;
17759#[doc = " Output parameters for the EOS_CustomInvites_OnSendCustomNativeInviteRequestedCallback Function."]
17760#[repr(C)]
17761#[derive(Debug, Copy, Clone)]
17762pub struct _tagEOS_CustomInvites_SendCustomNativeInviteRequestedCallbackInfo {
17763    #[doc = " Context that was passed into EOS_CustomInvites_AddNotifySendCustomNativeInviteRequested"]
17764    pub ClientData: *mut ::std::os::raw::c_void,
17765    #[doc = " Identifies this event which will need to be acknowledged with EOS_UI_AcknowledgeEventId().\n @see EOS_UI_AcknowledgeEventId"]
17766    pub UiEventId: EOS_UI_EventId,
17767    #[doc = " The Product User ID of the local user who is inviting."]
17768    pub LocalUserId: EOS_ProductUserId,
17769    #[doc = " The Native Platform Account Type. If only a single integrated platform is configured then\n this will always reference that platform."]
17770    pub TargetNativeAccountType: EOS_IntegratedPlatformType,
17771    #[doc = " The Native Platform Account ID of the target user being invited."]
17772    pub TargetUserNativeAccountId: *const ::std::os::raw::c_char,
17773    #[doc = " Invite ID that the user is being invited to"]
17774    pub InviteId: *const ::std::os::raw::c_char,
17775}
17776impl Default for _tagEOS_CustomInvites_SendCustomNativeInviteRequestedCallbackInfo {
17777    fn default() -> Self {
17778        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17779        unsafe {
17780            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17781            s.assume_init()
17782        }
17783    }
17784}
17785#[doc = " Output parameters for the EOS_CustomInvites_OnSendCustomNativeInviteRequestedCallback Function."]
17786pub type EOS_CustomInvites_SendCustomNativeInviteRequestedCallbackInfo =
17787    _tagEOS_CustomInvites_SendCustomNativeInviteRequestedCallbackInfo;
17788#[doc = " Function prototype definition for notifications that comes from EOS_CustomInvites_AddNotifySendCustomNativeInviteRequested\n\n @param Data A EOS_CustomInvites_SendCustomNativeInviteRequestedCallbackInfo containing the output information and result\n\n @note After processing the callback EOS_UI_AcknowledgeEventId must be called.\n\n @see EOS_UI_AcknowledgeEventId"]
17789pub type EOS_CustomInvites_OnSendCustomNativeInviteRequestedCallback = ::std::option::Option<
17790    unsafe extern "C" fn(
17791        Data: *const EOS_CustomInvites_SendCustomNativeInviteRequestedCallbackInfo,
17792    ),
17793>;
17794#[doc = " Input parameters for the EOS_CustomInvites_AddNotifyRequestToJoinAccepted function."]
17795#[repr(C)]
17796#[derive(Debug, Default, Copy, Clone)]
17797pub struct _tagEOS_CustomInvites_AddNotifyRequestToJoinAcceptedOptions {
17798    #[doc = " API Version: Set this to EOS_CUSTOMINVITES_ADDNOTIFYREQUESTTOJOINACCEPTED_API_LATEST."]
17799    pub ApiVersion: i32,
17800}
17801#[doc = " Input parameters for the EOS_CustomInvites_AddNotifyRequestToJoinAccepted function."]
17802pub type EOS_CustomInvites_AddNotifyRequestToJoinAcceptedOptions =
17803    _tagEOS_CustomInvites_AddNotifyRequestToJoinAcceptedOptions;
17804#[doc = " Output parameters for the EOS_CustomInvites_OnRequestToJoinAcceptedCallback Function."]
17805#[repr(C)]
17806#[derive(Debug, Copy, Clone)]
17807pub struct _tagEOS_CustomInvites_OnRequestToJoinAcceptedCallbackInfo {
17808    #[doc = " Context that was passed into EOS_CustomInvites_AddNotifyRequestToJoinAccepted"]
17809    pub ClientData: *mut ::std::os::raw::c_void,
17810    #[doc = " User that sent the request to join"]
17811    pub TargetUserId: EOS_ProductUserId,
17812    #[doc = " Local user ID of the Request to Join recipient"]
17813    pub LocalUserId: EOS_ProductUserId,
17814}
17815impl Default for _tagEOS_CustomInvites_OnRequestToJoinAcceptedCallbackInfo {
17816    fn default() -> Self {
17817        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17818        unsafe {
17819            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17820            s.assume_init()
17821        }
17822    }
17823}
17824#[doc = " Output parameters for the EOS_CustomInvites_OnRequestToJoinAcceptedCallback Function."]
17825pub type EOS_CustomInvites_OnRequestToJoinAcceptedCallbackInfo =
17826    _tagEOS_CustomInvites_OnRequestToJoinAcceptedCallbackInfo;
17827#[doc = " Function prototype definition for notifications that comes from EOS_CustomInvites_AddNotifyRequestToJoinAccepted\n\n @param Data A EOS_CustomInvites_OnRequestToJoinAcceptedCallbackInfo containing the output information and result"]
17828pub type EOS_CustomInvites_OnRequestToJoinAcceptedCallback = ::std::option::Option<
17829    unsafe extern "C" fn(Data: *const EOS_CustomInvites_OnRequestToJoinAcceptedCallbackInfo),
17830>;
17831#[doc = " Input parameters for the EOS_CustomInvites_AddNotifyRequestToJoinRejected function."]
17832#[repr(C)]
17833#[derive(Debug, Default, Copy, Clone)]
17834pub struct _tagEOS_CustomInvites_AddNotifyRequestToJoinRejectedOptions {
17835    #[doc = " API Version: Set this to EOS_CUSTOMINVITES_ADDNOTIFYREQUESTTOJOINREJECTED_API_LATEST."]
17836    pub ApiVersion: i32,
17837}
17838#[doc = " Input parameters for the EOS_CustomInvites_AddNotifyRequestToJoinRejected function."]
17839pub type EOS_CustomInvites_AddNotifyRequestToJoinRejectedOptions =
17840    _tagEOS_CustomInvites_AddNotifyRequestToJoinRejectedOptions;
17841#[doc = " Output parameters for the EOS_CustomInvites_OnRequestToJoinRejectedCallback Function."]
17842#[repr(C)]
17843#[derive(Debug, Copy, Clone)]
17844pub struct _tagEOS_CustomInvites_OnRequestToJoinRejectedCallbackInfo {
17845    #[doc = " Context that was passed into EOS_CustomInvites_AddNotifyCustomInviteRejected"]
17846    pub ClientData: *mut ::std::os::raw::c_void,
17847    #[doc = " User that sent the custom invite"]
17848    pub TargetUserId: EOS_ProductUserId,
17849    #[doc = " Recipient Local user id"]
17850    pub LocalUserId: EOS_ProductUserId,
17851}
17852impl Default for _tagEOS_CustomInvites_OnRequestToJoinRejectedCallbackInfo {
17853    fn default() -> Self {
17854        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17855        unsafe {
17856            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17857            s.assume_init()
17858        }
17859    }
17860}
17861#[doc = " Output parameters for the EOS_CustomInvites_OnRequestToJoinRejectedCallback Function."]
17862pub type EOS_CustomInvites_OnRequestToJoinRejectedCallbackInfo =
17863    _tagEOS_CustomInvites_OnRequestToJoinRejectedCallbackInfo;
17864#[doc = " Function prototype definition for notifications that comes from EOS_CustomInvites_AddNotifyRequestToJoinRejected\n\n @param Data A EOS_CustomInvites_OnRequestToJoinRejectedCallbackInfo containing the output information and result"]
17865pub type EOS_CustomInvites_OnRequestToJoinRejectedCallback = ::std::option::Option<
17866    unsafe extern "C" fn(Data: *const EOS_CustomInvites_OnRequestToJoinRejectedCallbackInfo),
17867>;
17868unsafe extern "C" {
17869    #[doc = " Notify the platform instance to do work. This function must be called frequently in order for the services provided by the SDK to properly\n function. For tick-based applications, it is usually desirable to call this once per-tick."]
17870    pub fn EOS_Platform_Tick(Handle: EOS_HPlatform);
17871}
17872unsafe extern "C" {
17873    #[doc = " Get a handle to the Metrics Interface.\n @return EOS_HMetrics handle\n\n @see eos_metrics.h\n @see eos_metrics_types.h"]
17874    pub fn EOS_Platform_GetMetricsInterface(Handle: EOS_HPlatform) -> EOS_HMetrics;
17875}
17876unsafe extern "C" {
17877    #[doc = " Get a handle to the Auth Interface.\n @return EOS_HAuth handle\n\n @see eos_auth.h\n @see eos_auth_types.h"]
17878    pub fn EOS_Platform_GetAuthInterface(Handle: EOS_HPlatform) -> EOS_HAuth;
17879}
17880unsafe extern "C" {
17881    #[doc = " Get a handle to the Connect Interface.\n @return EOS_HConnect handle\n\n @see eos_connect.h\n @see eos_connect_types.h"]
17882    pub fn EOS_Platform_GetConnectInterface(Handle: EOS_HPlatform) -> EOS_HConnect;
17883}
17884unsafe extern "C" {
17885    #[doc = " Get a handle to the Ecom Interface.\n @return EOS_HEcom handle\n\n @see eos_ecom.h\n @see eos_ecom_types.h"]
17886    pub fn EOS_Platform_GetEcomInterface(Handle: EOS_HPlatform) -> EOS_HEcom;
17887}
17888unsafe extern "C" {
17889    #[doc = " Get a handle to the UI Interface.\n @return EOS_HUI handle\n\n @see eos_ui.h\n @see eos_ui_types.h"]
17890    pub fn EOS_Platform_GetUIInterface(Handle: EOS_HPlatform) -> EOS_HUI;
17891}
17892unsafe extern "C" {
17893    #[doc = " Get a handle to the Friends Interface.\n @return EOS_HFriends handle\n\n @see eos_friends.h\n @see eos_friends_types.h"]
17894    pub fn EOS_Platform_GetFriendsInterface(Handle: EOS_HPlatform) -> EOS_HFriends;
17895}
17896unsafe extern "C" {
17897    #[doc = " Get a handle to the Presence Interface.\n @return EOS_HPresence handle\n\n @see eos_presence.h\n @see eos_presence_types.h"]
17898    pub fn EOS_Platform_GetPresenceInterface(Handle: EOS_HPlatform) -> EOS_HPresence;
17899}
17900unsafe extern "C" {
17901    #[doc = " Get a handle to the Sessions Interface.\n @return EOS_HSessions handle\n\n @see eos_sessions.h\n @see eos_sessions_types.h"]
17902    pub fn EOS_Platform_GetSessionsInterface(Handle: EOS_HPlatform) -> EOS_HSessions;
17903}
17904unsafe extern "C" {
17905    #[doc = " Get a handle to the Lobby Interface.\n @return EOS_HLobby handle\n\n @see eos_lobby.h\n @see eos_lobby_types.h"]
17906    pub fn EOS_Platform_GetLobbyInterface(Handle: EOS_HPlatform) -> EOS_HLobby;
17907}
17908unsafe extern "C" {
17909    #[doc = " Get a handle to the UserInfo Interface.\n @return EOS_HUserInfo handle\n\n @see eos_userinfo.h\n @see eos_userinfo_types.h"]
17910    pub fn EOS_Platform_GetUserInfoInterface(Handle: EOS_HPlatform) -> EOS_HUserInfo;
17911}
17912unsafe extern "C" {
17913    #[doc = " Get a handle to the Peer-to-Peer Networking Interface.\n @return EOS_HP2P handle\n\n @see eos_p2p.h\n @see eos_p2p_types.h"]
17914    pub fn EOS_Platform_GetP2PInterface(Handle: EOS_HPlatform) -> EOS_HP2P;
17915}
17916unsafe extern "C" {
17917    #[doc = " Get a handle to the Real Time Communications Interface (RTC).\n From the RTC interface you can retrieve the handle to the audio interface (RTCAudio), which is a component of RTC.\n @return EOS_HRTC handle\n\n @see EOS_RTC_GetAudioInterface\n @see eos_rtc.h\n @see eos_rtc_types.h"]
17918    pub fn EOS_Platform_GetRTCInterface(Handle: EOS_HPlatform) -> EOS_HRTC;
17919}
17920unsafe extern "C" {
17921    #[doc = " Get a handle to the RTC Admin interface\n @return EOS_HRTCAdmin handle\n\n @see eos_rtc_admin.h\n @see eos_rtc_admin_types.h"]
17922    pub fn EOS_Platform_GetRTCAdminInterface(Handle: EOS_HPlatform) -> EOS_HRTCAdmin;
17923}
17924unsafe extern "C" {
17925    #[doc = " Get a handle to the PlayerDataStorage Interface.\n @return EOS_HPlayerDataStorage handle\n\n @see eos_playerdatastorage.h\n @see eos_playerdatastorage_types.h"]
17926    pub fn EOS_Platform_GetPlayerDataStorageInterface(
17927        Handle: EOS_HPlatform,
17928    ) -> EOS_HPlayerDataStorage;
17929}
17930unsafe extern "C" {
17931    #[doc = " Get a handle to the TitleStorage Interface.\n @return EOS_HTitleStorage handle\n\n @see eos_titlestorage.h\n @see eos_titlestorage_types.h"]
17932    pub fn EOS_Platform_GetTitleStorageInterface(Handle: EOS_HPlatform) -> EOS_HTitleStorage;
17933}
17934unsafe extern "C" {
17935    #[doc = " Get a handle to the Achievements Interface.\n @return EOS_HAchievements handle\n\n @see eos_achievements.h\n @see eos_achievements_types.h"]
17936    pub fn EOS_Platform_GetAchievementsInterface(Handle: EOS_HPlatform) -> EOS_HAchievements;
17937}
17938unsafe extern "C" {
17939    #[doc = " Get a handle to the Stats Interface.\n @return EOS_HStats handle\n\n @see eos_stats.h\n @see eos_stats_types.h"]
17940    pub fn EOS_Platform_GetStatsInterface(Handle: EOS_HPlatform) -> EOS_HStats;
17941}
17942unsafe extern "C" {
17943    #[doc = " Get a handle to the Leaderboards Interface.\n @return EOS_HLeaderboards handle\n\n @see eos_leaderboards.h\n @see eos_leaderboards_types.h"]
17944    pub fn EOS_Platform_GetLeaderboardsInterface(Handle: EOS_HPlatform) -> EOS_HLeaderboards;
17945}
17946unsafe extern "C" {
17947    #[doc = " Get a handle to the Mods Interface.\n @return EOS_HMods handle\n\n @see eos_mods.h\n @see eos_mods_types.h"]
17948    pub fn EOS_Platform_GetModsInterface(Handle: EOS_HPlatform) -> EOS_HMods;
17949}
17950unsafe extern "C" {
17951    #[doc = " Get a handle to the Anti-Cheat Client Interface.\n @return EOS_HAntiCheatClient handle\n\n @see eos_anticheatclient.h\n @see eos_anticheatclient_types.h"]
17952    pub fn EOS_Platform_GetAntiCheatClientInterface(Handle: EOS_HPlatform) -> EOS_HAntiCheatClient;
17953}
17954unsafe extern "C" {
17955    #[doc = " Get a handle to the Anti-Cheat Server Interface.\n @return EOS_HAntiCheatServer handle\n\n @see eos_anticheatserver.h\n @see eos_anticheatserver_types.h"]
17956    pub fn EOS_Platform_GetAntiCheatServerInterface(Handle: EOS_HPlatform) -> EOS_HAntiCheatServer;
17957}
17958unsafe extern "C" {
17959    #[doc = " Get a handle to the ProgressionSnapshot Interface.\n @return EOS_HProgressionSnapshot handle\n\n @see eos_progressionsnapshot.h\n @see eos_progressionsnapshot_types.h"]
17960    pub fn EOS_Platform_GetProgressionSnapshotInterface(
17961        Handle: EOS_HPlatform,
17962    ) -> EOS_HProgressionSnapshot;
17963}
17964unsafe extern "C" {
17965    #[doc = " Get a handle to the Reports Interface.\n @return EOS_HReports handle\n\n @see eos_reports.h\n @see eos_reports_types.h"]
17966    pub fn EOS_Platform_GetReportsInterface(Handle: EOS_HPlatform) -> EOS_HReports;
17967}
17968unsafe extern "C" {
17969    #[doc = " Get a handle to the Sanctions Interface.\n @return EOS_HSanctions handle\n\n @see eos_sanctions.h\n @see eos_sanctions_types.h"]
17970    pub fn EOS_Platform_GetSanctionsInterface(Handle: EOS_HPlatform) -> EOS_HSanctions;
17971}
17972unsafe extern "C" {
17973    #[doc = " Get a handle to the Kids Web Service Interface.\n @return EOS_HKWS handle\n\n @see eos_kws.h\n @see eos_kws_types.h"]
17974    pub fn EOS_Platform_GetKWSInterface(Handle: EOS_HPlatform) -> EOS_HKWS;
17975}
17976unsafe extern "C" {
17977    #[doc = " Get a handle to the Custom Invites Interface.\n @return EOS_HCustomInvites handle\n\n @see eos_custominvites.h\n @see eos_custominvites_types.h"]
17978    pub fn EOS_Platform_GetCustomInvitesInterface(Handle: EOS_HPlatform) -> EOS_HCustomInvites;
17979}
17980unsafe extern "C" {
17981    #[doc = " Get a handle to the Integrated Platform Interface.\n @return EOS_HIntegratedPlatform handle\n\n @see eos_integratedplatform.h\n @see eos_integratedplatform_types.h"]
17982    pub fn EOS_Platform_GetIntegratedPlatformInterface(
17983        Handle: EOS_HPlatform,
17984    ) -> EOS_HIntegratedPlatform;
17985}
17986unsafe extern "C" {
17987    #[doc = " This only will return the value set as the override otherwise EOS_NotFound is returned.\n This is not currently used for anything internally.\n\n @param LocalUserId The account to use for lookup if no override exists.\n @param OutBuffer The buffer into which the character data should be written.  The buffer must be long enough to hold a string of EOS_COUNTRYCODE_MAX_LENGTH.\n @param InOutBufferLength The size of the OutBuffer in characters.\n                          The input buffer should include enough space to be null-terminated.\n                          When the function returns, this parameter will be filled with the length of the string copied into OutBuffer.\n\n @return An EOS_EResult that indicates whether the active country code string was copied into the OutBuffer.\n - EOS_Success if the information is available and passed out in OutBuffer\n - EOS_InvalidParameters if you pass a null pointer for the out parameter\n - EOS_NotFound if there is not an override country code for the user.\n - EOS_LimitExceeded - The OutBuffer is not large enough to receive the country code string. InOutBufferLength contains the required minimum length to perform the operation successfully.\n\n @see eos_ecom.h\n @see EOS_COUNTRYCODE_MAX_LENGTH"]
17988    pub fn EOS_Platform_GetActiveCountryCode(
17989        Handle: EOS_HPlatform,
17990        LocalUserId: EOS_EpicAccountId,
17991        OutBuffer: *mut ::std::os::raw::c_char,
17992        InOutBufferLength: *mut i32,
17993    ) -> EOS_EResult;
17994}
17995unsafe extern "C" {
17996    #[doc = " Get the active locale code that the SDK will send to services which require it.\n This returns the override value otherwise it will use the locale code of the given user.\n This is used for localization. This follows ISO 639.\n\n @param LocalUserId The account to use for lookup if no override exists.\n @param OutBuffer The buffer into which the character data should be written.  The buffer must be long enough to hold a string of EOS_LOCALECODE_MAX_LENGTH.\n @param InOutBufferLength The size of the OutBuffer in characters.\n                          The input buffer should include enough space to be null-terminated.\n                          When the function returns, this parameter will be filled with the length of the string copied into OutBuffer.\n\n @return An EOS_EResult that indicates whether the active locale code string was copied into the OutBuffer.\n - EOS_Success if the information is available and passed out in OutBuffer\n - EOS_InvalidParameters if you pass a null pointer for the out parameter\n - EOS_NotFound if there is neither an override nor an available locale code for the user.\n - EOS_LimitExceeded - The OutBuffer is not large enough to receive the locale code string. InOutBufferLength contains the required minimum length to perform the operation successfully.\n\n @see eos_ecom.h\n @see EOS_LOCALECODE_MAX_LENGTH"]
17997    pub fn EOS_Platform_GetActiveLocaleCode(
17998        Handle: EOS_HPlatform,
17999        LocalUserId: EOS_EpicAccountId,
18000        OutBuffer: *mut ::std::os::raw::c_char,
18001        InOutBufferLength: *mut i32,
18002    ) -> EOS_EResult;
18003}
18004unsafe extern "C" {
18005    #[doc = " Get the override country code that the SDK will send to services which require it.\n This is not currently used for anything internally.\n\n @param OutBuffer The buffer into which the character data should be written.  The buffer must be long enough to hold a string of EOS_COUNTRYCODE_MAX_LENGTH.\n @param InOutBufferLength The size of the OutBuffer in characters.\n                          The input buffer should include enough space to be null-terminated.\n                          When the function returns, this parameter will be filled with the length of the string copied into OutBuffer.\n\n @return An EOS_EResult that indicates whether the override country code string was copied into the OutBuffer.\n - EOS_Success if the information is available and passed out in OutBuffer\n - EOS_InvalidParameters if you pass a null pointer for the out parameter\n - EOS_LimitExceeded - The OutBuffer is not large enough to receive the country code string. InOutBufferLength contains the required minimum length to perform the operation successfully.\n\n @see eos_ecom.h\n @see EOS_COUNTRYCODE_MAX_LENGTH"]
18006    pub fn EOS_Platform_GetOverrideCountryCode(
18007        Handle: EOS_HPlatform,
18008        OutBuffer: *mut ::std::os::raw::c_char,
18009        InOutBufferLength: *mut i32,
18010    ) -> EOS_EResult;
18011}
18012unsafe extern "C" {
18013    #[doc = " Get the override locale code that the SDK will send to services which require it.\n This is used for localization. This follows ISO 639.\n\n @param OutBuffer The buffer into which the character data should be written.  The buffer must be long enough to hold a string of EOS_LOCALECODE_MAX_LENGTH.\n @param InOutBufferLength The size of the OutBuffer in characters.\n                          The input buffer should include enough space to be null-terminated.\n                          When the function returns, this parameter will be filled with the length of the string copied into OutBuffer.\n\n @return An EOS_EResult that indicates whether the override locale code string was copied into the OutBuffer.\n - EOS_Success if the information is available and passed out in OutBuffer\n - EOS_InvalidParameters if you pass a null pointer for the out parameter\n - EOS_LimitExceeded - The OutBuffer is not large enough to receive the locale code string. InOutBufferLength contains the required minimum length to perform the operation successfully.\n\n @see eos_ecom.h\n @see EOS_LOCALECODE_MAX_LENGTH"]
18014    pub fn EOS_Platform_GetOverrideLocaleCode(
18015        Handle: EOS_HPlatform,
18016        OutBuffer: *mut ::std::os::raw::c_char,
18017        InOutBufferLength: *mut i32,
18018    ) -> EOS_EResult;
18019}
18020unsafe extern "C" {
18021    #[doc = " Set the override country code that the SDK will send to services which require it.\n This is not currently used for anything internally.\n\n @return An EOS_EResult that indicates whether the override country code string was saved.\n - EOS_Success if the country code was overridden\n - EOS_InvalidParameters if you pass an invalid country code\n\n @see eos_ecom.h\n @see EOS_COUNTRYCODE_MAX_LENGTH"]
18022    pub fn EOS_Platform_SetOverrideCountryCode(
18023        Handle: EOS_HPlatform,
18024        NewCountryCode: *const ::std::os::raw::c_char,
18025    ) -> EOS_EResult;
18026}
18027unsafe extern "C" {
18028    #[doc = " Set the override locale code that the SDK will send to services which require it.\n This is used for localization. This follows ISO 639.\n\n @return An EOS_EResult that indicates whether the override locale code string was saved.\n - EOS_Success if the locale code was overridden\n - EOS_InvalidParameters if you pass an invalid locale code\n\n @see eos_ecom.h\n @see EOS_LOCALECODE_MAX_LENGTH"]
18029    pub fn EOS_Platform_SetOverrideLocaleCode(
18030        Handle: EOS_HPlatform,
18031        NewLocaleCode: *const ::std::os::raw::c_char,
18032    ) -> EOS_EResult;
18033}
18034unsafe extern "C" {
18035    #[doc = " Checks if the app was launched through the Epic Games Launcher, and relaunches it through the Epic Games Launcher if it wasn't.\n\n NOTE: During the call to EOS_Platform_Create, the command line that was used to launch the app is inspected, and if it is\n recognized as coming from the Epic Games Launcher, an environment variable is set to 1. The name of the environment variable\n is defined by EOS_PLATFORM_CHECKFORLAUNCHERANDRESTART_ENV_VAR.\n\n You can force the EOS_Platform_CheckForLauncherAndRestart API to relaunch the title by\n explicitly unsetting this environment variable before calling EOS_Platform_CheckForLauncherAndRestart.\n\n @return An EOS_EResult is returned to indicate success or an error.\n\n EOS_Success is returned if the app is being restarted. You should quit your process as soon as possible.\n EOS_NoChange is returned if the app was already launched through the Epic Launcher, and no action needs to be taken.\n EOS_UnexpectedError is returned if the LauncherCheck module failed to initialize, or the module tried and failed to restart the app."]
18036    pub fn EOS_Platform_CheckForLauncherAndRestart(Handle: EOS_HPlatform) -> EOS_EResult;
18037}
18038unsafe extern "C" {
18039    #[doc = " Windows only.\n Checks that the application is ready to use desktop crossplay functionality, with the necessary prerequisites having been met.\n\n This function verifies that the application was launched through the Bootstrapper application,\n the redistributable service has been installed and is running in the background,\n and that the overlay has been loaded successfully.\n\n On Windows, the desktop crossplay functionality is required to use Epic accounts login\n with applications that are distributed outside the Epic Games Store.\n\n @param Options input structure that specifies the API version.\n @param OutDesktopCrossplayStatusInfo output structure to receive the desktop crossplay status information.\n\n @return An EOS_EResult is returned to indicate success or an error.\n - EOS_NotImplemented is returned on non-Windows platforms.\n\n @see EOS_Platform_GetDesktopCrossplayStatusOptions\n @see EOS_Platform_DesktopCrossplayStatusInfo"]
18040    pub fn EOS_Platform_GetDesktopCrossplayStatus(
18041        Handle: EOS_HPlatform,
18042        Options: *const EOS_Platform_GetDesktopCrossplayStatusOptions,
18043        OutDesktopCrossplayStatusInfo: *mut EOS_Platform_DesktopCrossplayStatusInfo,
18044    ) -> EOS_EResult;
18045}
18046unsafe extern "C" {
18047    #[doc = " Notify a change in application state.\n\n @note Calling SetApplicationStatus must happen before Tick when foregrounding for the cases where we won't get the background notification.\n\n @param NewStatus The new status for the application.\n\n @return An EOS_EResult that indicates whether we changed the application status successfully.\n - EOS_Success if the application was changed successfully.\n - EOS_InvalidParameters if the value of NewStatus is invalid.\n - EOS_NotImplemented if EOS_AS_BackgroundConstrained or EOS_AS_BackgroundUnconstrained are attempted to be set on platforms that do not have such application states."]
18048    pub fn EOS_Platform_SetApplicationStatus(
18049        Handle: EOS_HPlatform,
18050        NewStatus: EOS_EApplicationStatus,
18051    ) -> EOS_EResult;
18052}
18053unsafe extern "C" {
18054    #[doc = " Retrieves the current application state as told to the SDK by the application.\n\n @return The current application status."]
18055    pub fn EOS_Platform_GetApplicationStatus(Handle: EOS_HPlatform) -> EOS_EApplicationStatus;
18056}
18057unsafe extern "C" {
18058    #[doc = " Notify a change in network state.\n\n @param NewStatus The new network status.\n\n @return An EOS_EResult that indicates whether we changed the network status successfully.\n - EOS_Success if the network was changed successfully.\n - EOS_InvalidParameters if the value of NewStatus is invalid."]
18059    pub fn EOS_Platform_SetNetworkStatus(
18060        Handle: EOS_HPlatform,
18061        NewStatus: EOS_ENetworkStatus,
18062    ) -> EOS_EResult;
18063}
18064unsafe extern "C" {
18065    #[doc = " Retrieves the current network state as told to the SDK by the application.\n\n @return The current network status."]
18066    pub fn EOS_Platform_GetNetworkStatus(Handle: EOS_HPlatform) -> EOS_ENetworkStatus;
18067}
18068unsafe extern "C" {
18069    #[doc = " Login/Authenticate with user credentials.\n\n @param Options structure containing the account credentials to use during the login operation\n @param ClientData arbitrary data that is passed back to you in the CompletionDelegate\n @param CompletionDelegate a callback that is fired when the login operation completes, either successfully or in error\n\n @see EOS_Auth_LoginOptions\n @see EOS_Auth_OnLoginCallback"]
18070    pub fn EOS_Auth_Login(
18071        Handle: EOS_HAuth,
18072        Options: *const EOS_Auth_LoginOptions,
18073        ClientData: *mut ::std::os::raw::c_void,
18074        CompletionDelegate: EOS_Auth_OnLoginCallback,
18075    );
18076}
18077unsafe extern "C" {
18078    #[doc = " Signs the player out of the online service.\n\n @param Options structure containing information about which account to log out.\n @param ClientData arbitrary data that is passed back to you in the CompletionDelegate\n @param CompletionDelegate a callback that is fired when the logout operation completes, either successfully or in error\n\n @see EOS_Auth_LogoutOptions\n @see EOS_Auth_OnLogoutCallback"]
18079    pub fn EOS_Auth_Logout(
18080        Handle: EOS_HAuth,
18081        Options: *const EOS_Auth_LogoutOptions,
18082        ClientData: *mut ::std::os::raw::c_void,
18083        CompletionDelegate: EOS_Auth_OnLogoutCallback,
18084    );
18085}
18086unsafe extern "C" {
18087    #[doc = " Link external account by continuing previous login attempt with a continuance token.\n\n The user will be presented with Epic Accounts onboarding flow managed by the SDK.\n\n On success, the user will be logged in at the completion of this action.\n This will commit this external account to the Epic Account and cannot be undone in the SDK.\n\n @param Options structure containing the account credentials to use during the link account operation\n @param ClientData arbitrary data that is passed back to you in the CompletionDelegate\n @param CompletionDelegate a callback that is fired when the link account operation completes, either successfully or in error\n\n @see EOS_Auth_LinkAccountOptions\n @see EOS_Auth_OnLinkAccountCallback"]
18088    pub fn EOS_Auth_LinkAccount(
18089        Handle: EOS_HAuth,
18090        Options: *const EOS_Auth_LinkAccountOptions,
18091        ClientData: *mut ::std::os::raw::c_void,
18092        CompletionDelegate: EOS_Auth_OnLinkAccountCallback,
18093    );
18094}
18095unsafe extern "C" {
18096    #[doc = " Deletes a previously received and locally stored persistent auth access token for the currently logged in user of the local device.\n\n On Desktop and Mobile platforms, the access token is deleted from the keychain of the local user and a backend request is made to revoke the token on the authentication server.\n On Console platforms, even though the caller is responsible for storing and deleting the access token on the local device,\n this function should still be called with the access token before its deletion to make the best effort in attempting to also revoke it on the authentication server.\n If the function would fail on Console, the caller should still proceed as normal to delete the access token locally as intended.\n\n @param Options structure containing operation input parameters\n @param ClientData arbitrary data that is passed back to you in the CompletionDelegate\n @param CompletionDelegate a callback that is fired when the deletion operation completes, either successfully or in error\n\n @see EOS_Auth_DeletePersistentAuthOptions\n @see EOS_Auth_OnDeletePersistentAuthCallback"]
18097    pub fn EOS_Auth_DeletePersistentAuth(
18098        Handle: EOS_HAuth,
18099        Options: *const EOS_Auth_DeletePersistentAuthOptions,
18100        ClientData: *mut ::std::os::raw::c_void,
18101        CompletionDelegate: EOS_Auth_OnDeletePersistentAuthCallback,
18102    );
18103}
18104unsafe extern "C" {
18105    #[doc = " Contact the backend service to verify validity of an existing user auth token.\n This function is intended for server-side use only.\n\n @param Options structure containing information about the auth token being verified\n @param ClientData arbitrary data that is passed back to you in the CompletionDelegate\n @param CompletionDelegate a callback that is fired when the logout operation completes, either successfully or in error\n\n @see EOS_Auth_VerifyUserAuthOptions\n @see EOS_Auth_OnVerifyUserAuthCallback\n @see EOS_Auth_CopyUserAuthToken"]
18106    pub fn EOS_Auth_VerifyUserAuth(
18107        Handle: EOS_HAuth,
18108        Options: *const EOS_Auth_VerifyUserAuthOptions,
18109        ClientData: *mut ::std::os::raw::c_void,
18110        CompletionDelegate: EOS_Auth_OnVerifyUserAuthCallback,
18111    );
18112}
18113unsafe extern "C" {
18114    #[doc = " Fetch the number of accounts that are logged in.\n\n @return the number of accounts logged in."]
18115    pub fn EOS_Auth_GetLoggedInAccountsCount(Handle: EOS_HAuth) -> i32;
18116}
18117unsafe extern "C" {
18118    #[doc = " Fetch an Epic Account ID that is logged in.\n\n @param Index An index into the list of logged in accounts. If the index is out of bounds, the returned Epic Account ID will be invalid.\n\n @return The Epic Account ID associated with the index passed"]
18119    pub fn EOS_Auth_GetLoggedInAccountByIndex(Handle: EOS_HAuth, Index: i32) -> EOS_EpicAccountId;
18120}
18121unsafe extern "C" {
18122    #[doc = " Fetches the login status for an Epic Account ID.\n\n @param LocalUserId The Epic Account ID of the user being queried\n\n @return The enum value of a user's login status"]
18123    pub fn EOS_Auth_GetLoginStatus(
18124        Handle: EOS_HAuth,
18125        LocalUserId: EOS_EpicAccountId,
18126    ) -> EOS_ELoginStatus;
18127}
18128unsafe extern "C" {
18129    #[doc = " Fetch a user auth token for an Epic Account ID.\n\n A user authentication token allows any code with possession (backend/client) to perform certain actions on behalf of the user.\n Because of this, for the purposes of user identity verification, the EOS_Auth_CopyIdToken API should be used instead.\n\n @param Options Structure containing the api version of CopyUserAuthToken to use\n @param LocalUserId The Epic Account ID of the user being queried\n @param OutUserAuthToken The auth token for the given user, if it exists and is valid; use EOS_Auth_Token_Release when finished\n\n @see EOS_Auth_CopyUserAuthTokenOptions\n @see EOS_Auth_Token\n @see EOS_Auth_Token_Release\n\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success if the information is available and passed out in OutUserAuthToken\n - EOS_InvalidParameters if you pass a null pointer for the out parameter\n - EOS_NotFound if the auth token is not found or expired.\n"]
18130    pub fn EOS_Auth_CopyUserAuthToken(
18131        Handle: EOS_HAuth,
18132        Options: *const EOS_Auth_CopyUserAuthTokenOptions,
18133        LocalUserId: EOS_EpicAccountId,
18134        OutUserAuthToken: *mut *mut EOS_Auth_Token,
18135    ) -> EOS_EResult;
18136}
18137unsafe extern "C" {
18138    #[doc = " Fetch an ID token for an Epic Account ID.\n\n ID tokens are used to securely verify user identities with online services.\n The most common use case is using an ID token to authenticate the local user by their selected account ID,\n which is the account ID that should be used to access any game-scoped data for the current application.\n\n An ID token for the selected account ID of a locally authenticated user will always be readily available.\n To retrieve it for the selected account ID, you can use EOS_Auth_CopyIdToken directly after a successful user login.\n\n @param Options Structure containing the account ID for which to copy an ID token.\n @param OutIdToken An ID token for the given user, if it exists and is valid; use EOS_Auth_IdToken_Release when finished.\n\n @see EOS_Auth_CopyIdTokenOptions\n @see EOS_Auth_IdToken\n @see EOS_Auth_IdToken_Release\n\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success if the information is available and passed out in OutUserIdToken\n - EOS_InvalidParameters if you pass a null pointer for the out parameter\n - EOS_NotFound if the Id token is not found or expired.\n"]
18139    pub fn EOS_Auth_CopyIdToken(
18140        Handle: EOS_HAuth,
18141        Options: *const EOS_Auth_CopyIdTokenOptions,
18142        OutIdToken: *mut *mut EOS_Auth_IdToken,
18143    ) -> EOS_EResult;
18144}
18145unsafe extern "C" {
18146    #[doc = " Query the backend for an ID token that describes one of the merged account IDs of a local authenticated user.\n\n The ID token can be used to impersonate a merged account ID when communicating with online services.\n\n An ID token for the selected account ID of a locally authenticated user will always be readily available and does not need to be queried explicitly.\n\n @param Options Structure containing the merged account ID for which to query an ID token.\n @param ClientData Arbitrary data that is passed back to you in the CompletionDelegate.\n @param CompletionDelegate A callback that is fired when the operation completes, either successfully or in error.\n\n @see EOS_Auth_QueryIdTokenOptions\n @see EOS_Auth_OnQueryIdTokenCallback"]
18147    pub fn EOS_Auth_QueryIdToken(
18148        Handle: EOS_HAuth,
18149        Options: *const EOS_Auth_QueryIdTokenOptions,
18150        ClientData: *mut ::std::os::raw::c_void,
18151        CompletionDelegate: EOS_Auth_OnQueryIdTokenCallback,
18152    );
18153}
18154unsafe extern "C" {
18155    #[doc = " Verify a given ID token for authenticity and validity.\n\n @param Options Structure containing information about the ID token to verify.\n @param ClientData Arbitrary data that is passed back to you in the CompletionDelegate\n @param CompletionDelegate A callback that is fired when the operation completes, either successfully or in error.\n\n @see EOS_Auth_VerifyIdTokenOptions\n @see EOS_Auth_OnVerifyIdTokenCallback"]
18156    pub fn EOS_Auth_VerifyIdToken(
18157        Handle: EOS_HAuth,
18158        Options: *const EOS_Auth_VerifyIdTokenOptions,
18159        ClientData: *mut ::std::os::raw::c_void,
18160        CompletionDelegate: EOS_Auth_OnVerifyIdTokenCallback,
18161    );
18162}
18163unsafe extern "C" {
18164    #[doc = " Fetch the selected account ID to the current application for a local authenticated user.\n\n @param LocalUserId The account ID of a currently logged in account.\n @param OutSelectedAccountId The selected account ID corresponding to the given account ID.\n\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success if the user is logged in and the information is available.\n - EOS_InvalidParameters if the output parameter is NULL.\n - EOS_InvalidUser if the input account ID is not locally known.\n - EOS_InvalidAuth if the input account ID is not locally logged in.\n - EOS_NotFound otherwise."]
18165    pub fn EOS_Auth_GetSelectedAccountId(
18166        Handle: EOS_HAuth,
18167        LocalUserId: EOS_EpicAccountId,
18168        OutSelectedAccountId: *mut EOS_EpicAccountId,
18169    ) -> EOS_EResult;
18170}
18171unsafe extern "C" {
18172    #[doc = " Fetch the number of merged accounts for a given logged in account.\n\n @param LocalUserId The account ID of a currently logged in account.\n\n @return the number of merged accounts for the logged in account."]
18173    pub fn EOS_Auth_GetMergedAccountsCount(
18174        Handle: EOS_HAuth,
18175        LocalUserId: EOS_EpicAccountId,
18176    ) -> u32;
18177}
18178unsafe extern "C" {
18179    #[doc = " Fetch one of the merged account IDs for a given logged in account.\n\n @param LocalUserId The account ID of a currently logged in account.\n @param Index An index into the list of merged accounts. If the index is out of bounds, the returned Epic Account ID will be invalid.\n\n @return The Epic Account ID associated with the index passed."]
18180    pub fn EOS_Auth_GetMergedAccountByIndex(
18181        Handle: EOS_HAuth,
18182        LocalUserId: EOS_EpicAccountId,
18183        Index: u32,
18184    ) -> EOS_EpicAccountId;
18185}
18186unsafe extern "C" {
18187    #[doc = " Register to receive login status updates.\n @note If the returned NotificationId is valid, you must call EOS_Auth_RemoveNotifyLoginStatusChanged when you no longer wish to have your NotificationHandler called.\n\n @param Options structure containing the api version of AddNotifyLoginStatusChanged to use\n @param ClientData arbitrary data that is passed back to you in the callback\n @param Notification a callback that is fired when the login status for a user changes\n\n @see EOS_Auth_AddNotifyLoginStatusChangedOptions\n @see EOS_Auth_OnLoginStatusChangedCallback\n\n @return handle representing the registered callback"]
18188    pub fn EOS_Auth_AddNotifyLoginStatusChanged(
18189        Handle: EOS_HAuth,
18190        Options: *const EOS_Auth_AddNotifyLoginStatusChangedOptions,
18191        ClientData: *mut ::std::os::raw::c_void,
18192        Notification: EOS_Auth_OnLoginStatusChangedCallback,
18193    ) -> EOS_NotificationId;
18194}
18195unsafe extern "C" {
18196    #[doc = " Unregister from receiving login status updates.\n\n @param InId handle representing the registered callback"]
18197    pub fn EOS_Auth_RemoveNotifyLoginStatusChanged(Handle: EOS_HAuth, InId: EOS_NotificationId);
18198}
18199unsafe extern "C" {
18200    #[doc = " Creates a lobby and adds the user to the lobby membership.  There is no data associated with the lobby at the start and can be added vis EOS_Lobby_UpdateLobbyModification\n\n If the lobby is successfully created with an RTC Room enabled, the lobby system will automatically join and maintain the connection to the RTC room as long as the\n local user remains in the lobby. Applications can use the EOS_Lobby_GetRTCRoomName to get the name of the RTC Room associated with a lobby, which may be used with\n many of the functions in the RTC interface. This can be useful to: register for notifications for talking status; to mute or unmute the local user's audio output;\n to block or unblock room participants; to set local audio device settings; and more.\n\n @param Options Required fields for the creation of a lobby such as a user count and its starting advertised state\n @param ClientData Arbitrary data that is passed back to you in the CompletionDelegate\n @param CompletionDelegate A callback that is fired when the create operation completes, either successfully or in error\n\n @see EOS_Lobby_CreateLobbyOptions\n @see EOS_Lobby_OnCreateLobbyCallback"]
18201    pub fn EOS_Lobby_CreateLobby(
18202        Handle: EOS_HLobby,
18203        Options: *const EOS_Lobby_CreateLobbyOptions,
18204        ClientData: *mut ::std::os::raw::c_void,
18205        CompletionDelegate: EOS_Lobby_OnCreateLobbyCallback,
18206    );
18207}
18208unsafe extern "C" {
18209    #[doc = " Destroy a lobby given a lobby ID\n\n @param Options Structure containing information about the lobby to be destroyed\n @param ClientData Arbitrary data that is passed back to you in the CompletionDelegate\n @param CompletionDelegate A callback that is fired when the destroy operation completes, either successfully or in error\n\n @see EOS_Lobby_DestroyLobbyOptions\n @see EOS_Lobby_OnDestroyLobbyCallback"]
18210    pub fn EOS_Lobby_DestroyLobby(
18211        Handle: EOS_HLobby,
18212        Options: *const EOS_Lobby_DestroyLobbyOptions,
18213        ClientData: *mut ::std::os::raw::c_void,
18214        CompletionDelegate: EOS_Lobby_OnDestroyLobbyCallback,
18215    );
18216}
18217unsafe extern "C" {
18218    #[doc = " Join a lobby, creating a local instance under a given lobby ID.  Backend will validate various conditions to make sure it is possible to join the lobby.\n\n If the lobby is successfully join has an RTC Room enabled, the lobby system will automatically join and maintain the connection to the RTC room as long as the\n local user remains in the lobby. Applications can use the EOS_Lobby_GetRTCRoomName to get the name of the RTC Room associated with a lobby, which may be used with\n many of the functions in the RTC interface. This can be useful to: register for notifications for talking status; to mute or unmute the local user's audio output;\n to block or unblock room participants; to set local audio device settings; and more.\n\n @param Options Structure containing information about the lobby to be joined\n @param ClientData Arbitrary data that is passed back to you in the CompletionDelegate\n @param CompletionDelegate A callback that is fired when the join operation completes, either successfully or in error\n\n @see EOS_Lobby_JoinLobbyOptions\n @see EOS_Lobby_OnJoinLobbyCallback"]
18219    pub fn EOS_Lobby_JoinLobby(
18220        Handle: EOS_HLobby,
18221        Options: *const EOS_Lobby_JoinLobbyOptions,
18222        ClientData: *mut ::std::os::raw::c_void,
18223        CompletionDelegate: EOS_Lobby_OnJoinLobbyCallback,
18224    );
18225}
18226unsafe extern "C" {
18227    #[doc = " This is a special case of EOS_Lobby_JoinLobby.  It should only be used if the lobby has had Join-by-ID enabled.\n Additionally, Join-by-ID should only be enabled to support native invites on an integrated platform.\n\n @param Options Structure containing information about the lobby to be joined\n @param ClientData Arbitrary data that is passed back to you in the CompletionDelegate\n @param CompletionDelegate A callback that is fired when the join operation completes, either successfully or in error\n\n @see EOS_Lobby_JoinLobbyByIdOptions\n @see EOS_Lobby_OnJoinLobbyByIdCallback\n @see EOS_Lobby_JoinLobby"]
18228    pub fn EOS_Lobby_JoinLobbyById(
18229        Handle: EOS_HLobby,
18230        Options: *const EOS_Lobby_JoinLobbyByIdOptions,
18231        ClientData: *mut ::std::os::raw::c_void,
18232        CompletionDelegate: EOS_Lobby_OnJoinLobbyByIdCallback,
18233    );
18234}
18235unsafe extern "C" {
18236    #[doc = " Leave a lobby given a lobby ID\n\n If the lobby you are leaving had an RTC Room enabled, leaving the lobby will also automatically leave the RTC room.\n\n @param Options Structure containing information about the lobby to be left\n @param ClientData Arbitrary data that is passed back to you in the CompletionDelegate\n @param CompletionDelegate A callback that is fired when the leave operation completes, either successfully or in error\n\n @see EOS_Lobby_LeaveLobbyOptions\n @see EOS_Lobby_OnLeaveLobbyCallback"]
18237    pub fn EOS_Lobby_LeaveLobby(
18238        Handle: EOS_HLobby,
18239        Options: *const EOS_Lobby_LeaveLobbyOptions,
18240        ClientData: *mut ::std::os::raw::c_void,
18241        CompletionDelegate: EOS_Lobby_OnLeaveLobbyCallback,
18242    );
18243}
18244unsafe extern "C" {
18245    #[doc = " Creates a lobby modification handle (EOS_HLobbyModification). The lobby modification handle is used to modify an existing lobby and can be applied with EOS_Lobby_UpdateLobby.\n The EOS_HLobbyModification must be released by calling EOS_LobbyModification_Release once it is no longer needed.\n\n @param Options Required fields such as lobby ID\n @param OutLobbyModificationHandle Pointer to a Lobby Modification Handle only set if successful\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success if we successfully created the Lobby Modification Handle pointed at in OutLobbyModificationHandle, or an error result if the input data was invalid\n - EOS_InvalidParameters if any of the options are incorrect\n\n @see EOS_LobbyModification_Release\n @see EOS_Lobby_UpdateLobby\n @see EOS_Lobby_UpdateLobbyModificationOptions\n @see EOS_HLobbyModification"]
18246    pub fn EOS_Lobby_UpdateLobbyModification(
18247        Handle: EOS_HLobby,
18248        Options: *const EOS_Lobby_UpdateLobbyModificationOptions,
18249        OutLobbyModificationHandle: *mut EOS_HLobbyModification,
18250    ) -> EOS_EResult;
18251}
18252unsafe extern "C" {
18253    #[doc = " Update a lobby given a lobby modification handle created by EOS_Lobby_UpdateLobbyModification\n\n @param Options Structure containing information about the lobby to be updated\n @param ClientData Arbitrary data that is passed back to you in the CompletionDelegate\n @param CompletionDelegate A callback that is fired when the update operation completes, either successfully or in error\n\n @see EOS_Lobby_UpdateLobbyOptions\n @see EOS_Lobby_OnUpdateLobbyCallback"]
18254    pub fn EOS_Lobby_UpdateLobby(
18255        Handle: EOS_HLobby,
18256        Options: *const EOS_Lobby_UpdateLobbyOptions,
18257        ClientData: *mut ::std::os::raw::c_void,
18258        CompletionDelegate: EOS_Lobby_OnUpdateLobbyCallback,
18259    );
18260}
18261unsafe extern "C" {
18262    #[doc = " Promote an existing member of the lobby to owner, allowing them to make lobby data modifications\n\n @param Options Structure containing information about the lobby and member to be promoted\n @param ClientData Arbitrary data that is passed back to you in the CompletionDelegate\n @param CompletionDelegate A callback that is fired when the promotion operation completes, either successfully or in error\n\n @see EOS_Lobby_PromoteMemberOptions\n @see EOS_Lobby_OnPromoteMemberCallback"]
18263    pub fn EOS_Lobby_PromoteMember(
18264        Handle: EOS_HLobby,
18265        Options: *const EOS_Lobby_PromoteMemberOptions,
18266        ClientData: *mut ::std::os::raw::c_void,
18267        CompletionDelegate: EOS_Lobby_OnPromoteMemberCallback,
18268    );
18269}
18270unsafe extern "C" {
18271    #[doc = " Kick an existing member from the lobby\n\n @param Options Structure containing information about the lobby and member to be kicked\n @param ClientData Arbitrary data that is passed back to you in the CompletionDelegate\n @param CompletionDelegate A callback that is fired when the kick operation completes, either successfully or in error\n\n @see EOS_Lobby_KickMemberOptions\n @see EOS_Lobby_OnKickMemberCallback"]
18272    pub fn EOS_Lobby_KickMember(
18273        Handle: EOS_HLobby,
18274        Options: *const EOS_Lobby_KickMemberOptions,
18275        ClientData: *mut ::std::os::raw::c_void,
18276        CompletionDelegate: EOS_Lobby_OnKickMemberCallback,
18277    );
18278}
18279unsafe extern "C" {
18280    #[doc = " Hard mute an existing member in the lobby, can't speak but can hear other members of the lobby\n\n @param Options Structure containing information about the lobby and member to be hard muted\n @param ClientData Arbitrary data that is passed back to you in the CompletionDelegate\n @param CompletionDelegate A callback that is fired when the hard mute operation completes, either successfully or in error\n\n @see EOS_Lobby_HardMuteMemberOptions\n @see EOS_Lobby_OnHardMuteMemberCallback"]
18281    pub fn EOS_Lobby_HardMuteMember(
18282        Handle: EOS_HLobby,
18283        Options: *const EOS_Lobby_HardMuteMemberOptions,
18284        ClientData: *mut ::std::os::raw::c_void,
18285        CompletionDelegate: EOS_Lobby_OnHardMuteMemberCallback,
18286    );
18287}
18288unsafe extern "C" {
18289    #[doc = " Register to receive notifications when a lobby owner updates the attributes associated with the lobby.\n @note If the returned NotificationId is valid, you must call EOS_Lobby_RemoveNotifyLobbyUpdateReceived when you no longer wish to have your NotificationHandler called.\n\n @param Options Structure containing information about the request.\n @param ClientData Arbitrary data that is passed back to you in the CompletionDelegate.\n @param NotificationFn A callback that is fired when a a notification is received.\n\n @return handle representing the registered callback\n\n @see EOS_Lobby_AddNotifyLobbyUpdateReceivedOptions\n @see EOS_Lobby_OnLobbyUpdateReceivedCallback"]
18290    pub fn EOS_Lobby_AddNotifyLobbyUpdateReceived(
18291        Handle: EOS_HLobby,
18292        Options: *const EOS_Lobby_AddNotifyLobbyUpdateReceivedOptions,
18293        ClientData: *mut ::std::os::raw::c_void,
18294        NotificationFn: EOS_Lobby_OnLobbyUpdateReceivedCallback,
18295    ) -> EOS_NotificationId;
18296}
18297unsafe extern "C" {
18298    #[doc = " Unregister from receiving notifications when a lobby changes its data.\n\n @param InId Handle representing the registered callback"]
18299    pub fn EOS_Lobby_RemoveNotifyLobbyUpdateReceived(Handle: EOS_HLobby, InId: EOS_NotificationId);
18300}
18301unsafe extern "C" {
18302    #[doc = " Register to receive notifications when a lobby member updates the attributes associated with themselves inside the lobby.\n @note If the returned NotificationId is valid, you must call EOS_Lobby_RemoveNotifyLobbyMemberUpdateReceived when you no longer wish to have your NotificationHandler called.\n\n @param Options Structure containing information about the request.\n @param ClientData Arbitrary data that is passed back to you in the CompletionDelegate.\n @param NotificationFn A callback that is fired when a a notification is received.\n\n @return handle representing the registered callback\n\n @see EOS_Lobby_AddNotifyLobbyMemberUpdateReceivedOptions\n @see EOS_Lobby_OnLobbyMemberUpdateReceivedCallback"]
18303    pub fn EOS_Lobby_AddNotifyLobbyMemberUpdateReceived(
18304        Handle: EOS_HLobby,
18305        Options: *const EOS_Lobby_AddNotifyLobbyMemberUpdateReceivedOptions,
18306        ClientData: *mut ::std::os::raw::c_void,
18307        NotificationFn: EOS_Lobby_OnLobbyMemberUpdateReceivedCallback,
18308    ) -> EOS_NotificationId;
18309}
18310unsafe extern "C" {
18311    #[doc = " Unregister from receiving notifications when lobby members change their data.\n\n @param InId Handle representing the registered callback"]
18312    pub fn EOS_Lobby_RemoveNotifyLobbyMemberUpdateReceived(
18313        Handle: EOS_HLobby,
18314        InId: EOS_NotificationId,
18315    );
18316}
18317unsafe extern "C" {
18318    #[doc = " Register to receive notifications about the changing status of lobby members.\n @note If the returned NotificationId is valid, you must call EOS_Lobby_RemoveNotifyLobbyMemberStatusReceived when you no longer wish to have your NotificationHandler called.\n\n @param Options Structure containing information about the request.\n @param ClientData Arbitrary data that is passed back to you in the CompletionDelegate.\n @param NotificationFn A callback that is fired when a a notification is received.\n\n @return handle representing the registered callback\n\n @see EOS_Lobby_AddNotifyLobbyMemberStatusReceivedOptions\n @see EOS_Lobby_OnLobbyMemberStatusReceivedCallback"]
18319    pub fn EOS_Lobby_AddNotifyLobbyMemberStatusReceived(
18320        Handle: EOS_HLobby,
18321        Options: *const EOS_Lobby_AddNotifyLobbyMemberStatusReceivedOptions,
18322        ClientData: *mut ::std::os::raw::c_void,
18323        NotificationFn: EOS_Lobby_OnLobbyMemberStatusReceivedCallback,
18324    ) -> EOS_NotificationId;
18325}
18326unsafe extern "C" {
18327    #[doc = " Unregister from receiving notifications when lobby members status change.\n\n @param InId Handle representing the registered callback"]
18328    pub fn EOS_Lobby_RemoveNotifyLobbyMemberStatusReceived(
18329        Handle: EOS_HLobby,
18330        InId: EOS_NotificationId,
18331    );
18332}
18333unsafe extern "C" {
18334    #[doc = " Send an invite to another user.  User must be a member of the lobby or else the call will fail\n\n @param Options Structure containing information about the lobby and user to invite\n @param ClientData Arbitrary data that is passed back to you in the CompletionDelegate\n @param CompletionDelegate A callback that is fired when the send invite operation completes, either successfully or in error\n\n @see EOS_Lobby_SendInviteOptions\n @see EOS_Lobby_OnSendInviteCallback"]
18335    pub fn EOS_Lobby_SendInvite(
18336        Handle: EOS_HLobby,
18337        Options: *const EOS_Lobby_SendInviteOptions,
18338        ClientData: *mut ::std::os::raw::c_void,
18339        CompletionDelegate: EOS_Lobby_OnSendInviteCallback,
18340    );
18341}
18342unsafe extern "C" {
18343    #[doc = " Reject an invite from another user.\n\n @param Options Structure containing information about the invite to reject\n @param ClientData Arbitrary data that is passed back to you in the CompletionDelegate\n @param CompletionDelegate A callback that is fired when the reject invite operation completes, either successfully or in error\n\n @see EOS_Lobby_RejectInviteOptions\n @see EOS_Lobby_OnRejectInviteCallback"]
18344    pub fn EOS_Lobby_RejectInvite(
18345        Handle: EOS_HLobby,
18346        Options: *const EOS_Lobby_RejectInviteOptions,
18347        ClientData: *mut ::std::os::raw::c_void,
18348        CompletionDelegate: EOS_Lobby_OnRejectInviteCallback,
18349    );
18350}
18351unsafe extern "C" {
18352    #[doc = " Retrieve all existing invites for a single user\n\n @param Options Structure containing information about the invites to query\n @param ClientData Arbitrary data that is passed back to you in the CompletionDelegate\n @param CompletionDelegate A callback that is fired when the query invites operation completes, either successfully or in error\n\n @see EOS_Lobby_QueryInvitesOptions\n @see EOS_Lobby_OnQueryInvitesCallback"]
18353    pub fn EOS_Lobby_QueryInvites(
18354        Handle: EOS_HLobby,
18355        Options: *const EOS_Lobby_QueryInvitesOptions,
18356        ClientData: *mut ::std::os::raw::c_void,
18357        CompletionDelegate: EOS_Lobby_OnQueryInvitesCallback,
18358    );
18359}
18360unsafe extern "C" {
18361    #[doc = " Get the number of known invites for a given user\n\n @param Options the Options associated with retrieving the current invite count\n\n @return number of known invites for a given user or 0 if there is an error\n\n @see EOS_Lobby_GetInviteCountOptions"]
18362    pub fn EOS_Lobby_GetInviteCount(
18363        Handle: EOS_HLobby,
18364        Options: *const EOS_Lobby_GetInviteCountOptions,
18365    ) -> u32;
18366}
18367unsafe extern "C" {
18368    #[doc = " Retrieve an invite ID from a list of active invites for a given user\n\n @param Options Structure containing the input parameters\n\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success if the input is valid and an invite ID was returned\n - EOS_InvalidParameters if any of the options are incorrect\n - EOS_NotFound if the invite doesn't exist\n\n @see EOS_Lobby_GetInviteCount\n @see EOS_Lobby_CopyLobbyDetailsHandleByInviteId\n\n @see EOS_Lobby_GetInviteIdByIndexOptions"]
18369    pub fn EOS_Lobby_GetInviteIdByIndex(
18370        Handle: EOS_HLobby,
18371        Options: *const EOS_Lobby_GetInviteIdByIndexOptions,
18372        OutBuffer: *mut ::std::os::raw::c_char,
18373        InOutBufferLength: *mut i32,
18374    ) -> EOS_EResult;
18375}
18376unsafe extern "C" {
18377    #[doc = " Create a lobby search handle.  This handle may be modified to include various search parameters.\n Searching is possible in three methods, all mutually exclusive\n - set the lobby ID to find a specific lobby\n - set the target user ID to find a specific user\n - set lobby parameters to find an array of lobbies that match the search criteria\n\n @param Options Structure containing required parameters such as the maximum number of search results\n @param OutLobbySearchHandle The new search handle or null if there was an error creating the search handle\n\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success if the search creation completes successfully\n - EOS_InvalidParameters if any of the options are incorrect\n\n @see EOS_Lobby_CreateLobbySearchOptions\n @see EOS_HLobbySearch"]
18378    pub fn EOS_Lobby_CreateLobbySearch(
18379        Handle: EOS_HLobby,
18380        Options: *const EOS_Lobby_CreateLobbySearchOptions,
18381        OutLobbySearchHandle: *mut EOS_HLobbySearch,
18382    ) -> EOS_EResult;
18383}
18384unsafe extern "C" {
18385    #[doc = " Register to receive notifications about lobby invites sent to local users.\n @note If the returned NotificationId is valid, you must call EOS_Lobby_RemoveNotifyLobbyInviteReceived when you no longer wish to have your NotificationHandler called.\n\n @param Options Structure containing information about the request.\n @param ClientData Arbitrary data that is passed back to you in the CompletionDelegate.\n @param NotificationFn A callback that is fired when a a notification is received.\n\n @return handle representing the registered callback\n\n @see EOS_Lobby_AddNotifyLobbyInviteReceivedOptions\n @see EOS_Lobby_OnLobbyInviteReceivedCallback"]
18386    pub fn EOS_Lobby_AddNotifyLobbyInviteReceived(
18387        Handle: EOS_HLobby,
18388        Options: *const EOS_Lobby_AddNotifyLobbyInviteReceivedOptions,
18389        ClientData: *mut ::std::os::raw::c_void,
18390        NotificationFn: EOS_Lobby_OnLobbyInviteReceivedCallback,
18391    ) -> EOS_NotificationId;
18392}
18393unsafe extern "C" {
18394    #[doc = " Unregister from receiving notifications when a user receives a lobby invitation.\n\n @param InId Handle representing the registered callback"]
18395    pub fn EOS_Lobby_RemoveNotifyLobbyInviteReceived(Handle: EOS_HLobby, InId: EOS_NotificationId);
18396}
18397unsafe extern "C" {
18398    #[doc = " Register to receive notifications about lobby invites accepted by local user via the overlay.\n @note If the returned NotificationId is valid, you must call EOS_Lobby_RemoveNotifyLobbyInviteAccepted when you no longer wish to have your NotificationHandler called.\n\n @param Options Structure containing information about the request.\n @param ClientData Arbitrary data that is passed back to you in the CompletionDelegate.\n @param NotificationFn A callback that is fired when a a notification is received.\n\n @return handle representing the registered callback\n\n @see EOS_Lobby_AddNotifyLobbyInviteAcceptedOptions\n @see EOS_Lobby_OnLobbyInviteAcceptedCallback"]
18399    pub fn EOS_Lobby_AddNotifyLobbyInviteAccepted(
18400        Handle: EOS_HLobby,
18401        Options: *const EOS_Lobby_AddNotifyLobbyInviteAcceptedOptions,
18402        ClientData: *mut ::std::os::raw::c_void,
18403        NotificationFn: EOS_Lobby_OnLobbyInviteAcceptedCallback,
18404    ) -> EOS_NotificationId;
18405}
18406unsafe extern "C" {
18407    #[doc = " Unregister from receiving notifications when a user accepts a lobby invitation via the overlay.\n\n @param InId Handle representing the registered callback"]
18408    pub fn EOS_Lobby_RemoveNotifyLobbyInviteAccepted(Handle: EOS_HLobby, InId: EOS_NotificationId);
18409}
18410unsafe extern "C" {
18411    #[doc = " Register to receive notifications about lobby invites rejected by local user.\n @note If the returned NotificationId is valid, you must call EOS_Lobby_RemoveNotifyLobbyInviteRejected when you no longer wish to have your NotificationHandler called.\n\n @param Options Structure containing information about the request.\n @param ClientData Arbitrary data that is passed back to you in the CompletionDelegate.\n @param NotificationFn A callback that is fired when a a notification is received.\n\n @return handle representing the registered callback\n\n @see EOS_Lobby_AddNotifyLobbyInviteRejectedOptions\n @see EOS_Lobby_OnLobbyInviteRejectedCallback"]
18412    pub fn EOS_Lobby_AddNotifyLobbyInviteRejected(
18413        Handle: EOS_HLobby,
18414        Options: *const EOS_Lobby_AddNotifyLobbyInviteRejectedOptions,
18415        ClientData: *mut ::std::os::raw::c_void,
18416        NotificationFn: EOS_Lobby_OnLobbyInviteRejectedCallback,
18417    ) -> EOS_NotificationId;
18418}
18419unsafe extern "C" {
18420    #[doc = " Unregister from receiving notifications when a user rejects a lobby invitation via the overlay.\n\n @param InId Handle representing the registered callback"]
18421    pub fn EOS_Lobby_RemoveNotifyLobbyInviteRejected(Handle: EOS_HLobby, InId: EOS_NotificationId);
18422}
18423unsafe extern "C" {
18424    #[doc = " Register to receive notifications about lobby \"JOIN\" performed by local user (when no invite) via the overlay.\n @note If the returned NotificationId is valid, you must call EOS_Lobby_RemoveNotifyJoinLobbyAccepted when you no longer wish to have your NotificationHandler called.\n\n @param Options Structure containing information about the request.\n @param ClientData Arbitrary data that is passed back to you in the CompletionDelegate.\n @param NotificationFn A callback that is fired when a notification is received.\n\n @return handle representing the registered callback\n\n @see EOS_Lobby_AddNotifyJoinLobbyAcceptedOptions\n @see EOS_Lobby_OnJoinLobbyAcceptedCallback"]
18425    pub fn EOS_Lobby_AddNotifyJoinLobbyAccepted(
18426        Handle: EOS_HLobby,
18427        Options: *const EOS_Lobby_AddNotifyJoinLobbyAcceptedOptions,
18428        ClientData: *mut ::std::os::raw::c_void,
18429        NotificationFn: EOS_Lobby_OnJoinLobbyAcceptedCallback,
18430    ) -> EOS_NotificationId;
18431}
18432unsafe extern "C" {
18433    #[doc = " Unregister from receiving notifications when a user accepts a lobby invitation via the overlay.\n\n @param InId Handle representing the registered callback"]
18434    pub fn EOS_Lobby_RemoveNotifyJoinLobbyAccepted(Handle: EOS_HLobby, InId: EOS_NotificationId);
18435}
18436unsafe extern "C" {
18437    #[doc = " Register to receive notifications about a lobby \"INVITE\" performed by a local user via the overlay.\n This is only needed when a configured integrated platform has EOS_IPMF_DisableSDKManagedSessions set.  The EOS SDK will\n then use the state of EOS_IPMF_PreferEOSIdentity and EOS_IPMF_PreferIntegratedIdentity to determine when the NotificationFn is\n called.\n\n @note If the returned NotificationId is valid, you must call EOS_Lobby_RemoveNotifySendLobbyNativeInviteRequested when you no longer wish to have your NotificationHandler called.\n\n @param Options Structure containing information about the request.\n @param ClientData Arbitrary data that is passed back to you in the CompletionDelegate.\n @param NotificationFn A callback that is fired when a notification is received.\n\n @return handle representing the registered callback\n\n @see EOS_IPMF_DisableSDKManagedSessions\n @see EOS_IPMF_PreferEOSIdentity\n @see EOS_IPMF_PreferIntegratedIdentity\n\n @see EOS_Lobby_AddNotifySendLobbyNativeInviteRequestedOptions\n @see EOS_Lobby_OnSendLobbyNativeInviteRequestedCallback"]
18438    pub fn EOS_Lobby_AddNotifySendLobbyNativeInviteRequested(
18439        Handle: EOS_HLobby,
18440        Options: *const EOS_Lobby_AddNotifySendLobbyNativeInviteRequestedOptions,
18441        ClientData: *mut ::std::os::raw::c_void,
18442        NotificationFn: EOS_Lobby_OnSendLobbyNativeInviteRequestedCallback,
18443    ) -> EOS_NotificationId;
18444}
18445unsafe extern "C" {
18446    #[doc = " Unregister from receiving notifications when a user requests a send invite via the overlay.\n\n @param InId Handle representing the registered callback"]
18447    pub fn EOS_Lobby_RemoveNotifySendLobbyNativeInviteRequested(
18448        Handle: EOS_HLobby,
18449        InId: EOS_NotificationId,
18450    );
18451}
18452unsafe extern "C" {
18453    #[doc = " EOS_Lobby_CopyLobbyDetailsHandleByInviteId is used to immediately retrieve a handle to the lobby information from after notification of an invite\n If the call returns an EOS_Success result, the out parameter, OutLobbyDetailsHandle, must be passed to EOS_LobbyDetails_Release to release the memory associated with it.\n\n @param Options Structure containing the input parameters\n @param OutLobbyDetailsHandle out parameter used to receive the lobby handle\n\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success if the information is available and passed out in OutLobbyDetailsHandle\n - EOS_InvalidParameters if you pass an invalid invite ID or a null pointer for the out parameter\n - EOS_IncompatibleVersion if the API version passed in is incorrect\n - EOS_NotFound If the invite ID cannot be found\n\n @see EOS_Lobby_CopyLobbyDetailsHandleByInviteIdOptions\n @see EOS_HLobbyDetails\n @see EOS_LobbyDetails_Release"]
18454    pub fn EOS_Lobby_CopyLobbyDetailsHandleByInviteId(
18455        Handle: EOS_HLobby,
18456        Options: *const EOS_Lobby_CopyLobbyDetailsHandleByInviteIdOptions,
18457        OutLobbyDetailsHandle: *mut EOS_HLobbyDetails,
18458    ) -> EOS_EResult;
18459}
18460unsafe extern "C" {
18461    #[doc = " EOS_Lobby_CopyLobbyDetailsHandleByUiEventId is used to immediately retrieve a handle to the lobby information from after notification of a join game\n If the call returns an EOS_Success result, the out parameter, OutLobbyDetailsHandle, must be passed to EOS_LobbyDetails_Release to release the memory associated with it.\n\n @param Options Structure containing the input parameters\n @param OutLobbyDetailsHandle out parameter used to receive the lobby handle\n\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success if the information is available and passed out in OutLobbyDetailsHandle\n - EOS_InvalidParameters if you pass an invalid ui event ID\n - EOS_IncompatibleVersion if the API version passed in is incorrect\n - EOS_NotFound If the invite ID cannot be found\n\n @see EOS_Lobby_CopyLobbyDetailsHandleByUiEventIdOptions\n @see EOS_HLobbyDetails\n @see EOS_LobbyDetails_Release"]
18462    pub fn EOS_Lobby_CopyLobbyDetailsHandleByUiEventId(
18463        Handle: EOS_HLobby,
18464        Options: *const EOS_Lobby_CopyLobbyDetailsHandleByUiEventIdOptions,
18465        OutLobbyDetailsHandle: *mut EOS_HLobbyDetails,
18466    ) -> EOS_EResult;
18467}
18468unsafe extern "C" {
18469    #[doc = " Create a handle to an existing lobby.\n If the call returns an EOS_Success result, the out parameter, OutLobbyDetailsHandle, must be passed to EOS_LobbyDetails_Release to release the memory associated with it.\n\n @param Options Structure containing information about the lobby to retrieve\n @param OutLobbyDetailsHandle The new active lobby handle or null if there was an error\n\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success if the lobby handle was created successfully\n - EOS_InvalidParameters if any of the options are incorrect\n - EOS_IncompatibleVersion if the API version passed in is incorrect\n - EOS_NotFound if the lobby doesn't exist\n\n @see EOS_Lobby_CopyLobbyDetailsHandleOptions\n @see EOS_HLobbyDetails"]
18470    pub fn EOS_Lobby_CopyLobbyDetailsHandle(
18471        Handle: EOS_HLobby,
18472        Options: *const EOS_Lobby_CopyLobbyDetailsHandleOptions,
18473        OutLobbyDetailsHandle: *mut EOS_HLobbyDetails,
18474    ) -> EOS_EResult;
18475}
18476unsafe extern "C" {
18477    #[doc = " Get the name of the RTC room associated with a specific lobby a local user belongs to.\n\n This value can be used whenever you need a RoomName value in the RTC_* suite of functions. RTC Room Names must not be used with\n EOS_RTC_JoinRoom, EOS_RTC_LeaveRoom, or EOS_RTC_AddNotifyDisconnected. Doing so will return EOS_AccessDenied or\n EOS_INVALID_NOTIFICATIONID if used with those functions.\n\n This function will only succeed when called on a lobby the local user is currently a member of.\n\n @param Options Structure containing information about the RTC room name to retrieve\n @param OutBuffer The buffer to store the null-terminated room name string within\n @param InOutBufferLength In: The maximum amount of writable chars in OutBuffer, Out: The minimum amount of chars needed in OutBuffer to store the RTC room name (including the null-terminator)\n\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success if a room exists for the specified lobby, there was enough space in OutBuffer, and the name was written successfully\n - EOS_NotFound if the lobby does not exist\n - EOS_Disabled if the lobby exists, but did not have the RTC Room feature enabled when created\n - EOS_InvalidParameters if you pass a null pointer on invalid length for any of the parameters\n - EOS_LimitExceeded The OutBuffer is not large enough to receive the room name. InOutBufferLength contains the required minimum length to perform the operation successfully.\n\n @see EOS_Lobby_GetRTCRoomNameOptions"]
18478    pub fn EOS_Lobby_GetRTCRoomName(
18479        Handle: EOS_HLobby,
18480        Options: *const EOS_Lobby_GetRTCRoomNameOptions,
18481        OutBuffer: *mut ::std::os::raw::c_char,
18482        InOutBufferLength: *mut u32,
18483    ) -> EOS_EResult;
18484}
18485unsafe extern "C" {
18486    #[doc = " Joins the RTC room associated with a specific lobby a local user belongs to.\n\n This function will only succeed when called on a lobby that has the RTC Room feature enabled.\n Clients may check if the RTC Room feature is enabled by inspecting the value of EOS_LobbyDetails_Info::bRTCRoomEnabled.\n\n @param Options Structure containing information about which lobby a local user should join the RTC Room for\n @param ClientData Arbitrary data that is passed back to you in the CompletionDelegate\n @param CompletionDelegate A callback that is fired when the join RTC Room operation completes, either successfully or in error\n\n @see EOS_Lobby_JoinRTCRoomOptions\n @see EOS_Lobby_OnJoinRTCRoomCallback"]
18487    pub fn EOS_Lobby_JoinRTCRoom(
18488        Handle: EOS_HLobby,
18489        Options: *const EOS_Lobby_JoinRTCRoomOptions,
18490        ClientData: *mut ::std::os::raw::c_void,
18491        CompletionDelegate: EOS_Lobby_OnJoinRTCRoomCallback,
18492    );
18493}
18494unsafe extern "C" {
18495    #[doc = " Leaves the RTC room associated with a specific lobby a local user belongs to.\n\n This function will only succeed when called on a lobby that has the RTC Room feature enabled.\n Clients may check if the RTC Room feature is enabled by inspecting the value of EOS_LobbyDetails_Info::bRTCRoomEnabled.\n\n @param Options Structure containing information about which lobby a local user should leave the RTC Room for\n @param ClientData Arbitrary data that is passed back to you in the CompletionDelegate\n @param CompletionDelegate A callback that is fired when the leave RTC Room operation completes, either successfully or in error\n\n @see EOS_Lobby_LeaveRTCRoomOptions\n @see EOS_Lobby_OnLeaveRTCRoomCallback"]
18496    pub fn EOS_Lobby_LeaveRTCRoom(
18497        Handle: EOS_HLobby,
18498        Options: *const EOS_Lobby_LeaveRTCRoomOptions,
18499        ClientData: *mut ::std::os::raw::c_void,
18500        CompletionDelegate: EOS_Lobby_OnLeaveRTCRoomCallback,
18501    );
18502}
18503unsafe extern "C" {
18504    #[doc = " Get the current connection status of the RTC Room for a lobby.\n\n The RTC Room connection status is independent of the lobby connection status, however the lobby system will attempt to keep\n them consistent, automatically connecting to the RTC room after joining a lobby which has an associated RTC room and disconnecting\n from the RTC room when a lobby is left or disconnected.\n\n This function will only succeed when called on a lobby the local user is currently a member of.\n\n @param Options Structure containing information about the lobby to query the RTC Room connection status for\n @param bOutIsConnected If the result is EOS_Success, this will be set to EOS_TRUE if we are connected, or EOS_FALSE if we are not yet connected.\n\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success if we are connected to the specified lobby, the input options and parameters were valid and we were able to write to bOutIsConnected successfully.\n - EOS_NotFound if the lobby doesn't exist\n - EOS_Disabled if the lobby exists, but did not have the RTC Room feature enabled when created\n - EOS_InvalidParameters if bOutIsConnected is NULL, or any other parameters are NULL or invalid\n\n @see EOS_Lobby_AddNotifyRTCRoomConnectionChanged\n @see EOS_Lobby_IsRTCRoomConnectedOptions"]
18505    pub fn EOS_Lobby_IsRTCRoomConnected(
18506        Handle: EOS_HLobby,
18507        Options: *const EOS_Lobby_IsRTCRoomConnectedOptions,
18508        bOutIsConnected: *mut EOS_Bool,
18509    ) -> EOS_EResult;
18510}
18511unsafe extern "C" {
18512    #[doc = " Register to receive notifications of when the RTC Room for a particular lobby has a connection status change.\n\n The RTC Room connection status is independent of the lobby connection status, however the lobby system will attempt to keep\n them consistent, automatically connecting to the RTC room after joining a lobby which has an associated RTC room and disconnecting\n from the RTC room when a lobby is left or disconnected.\n\n This notification is entirely informational and requires no action in response by the application. If the connected status is offline\n (bIsConnected is EOS_FALSE), the connection will automatically attempt to reconnect. The purpose of this notification is to allow\n applications to show the current connection status of the RTC room when the connection is not established.\n\n Unlike EOS_RTC_AddNotifyDisconnected, EOS_RTC_LeaveRoom should not be called when the RTC room is disconnected.\n\n This function will only succeed when called on a lobby the local user is currently a member of.\n\n @param Options Structure containing information about the lobby to receive updates about\n @param ClientData Arbitrary data that is passed back to you in the CompletionDelegate.\n @param NotificationFn The function to call if the RTC Room's connection status changes\n\n @return A valid notification ID if the NotificationFn was successfully registered, or EOS_INVALID_NOTIFICATIONID if the input was invalid, the lobby did not exist, or the lobby did not have an RTC room.\n\n @see EOS_Lobby_RemoveNotifyRTCRoomConnectionChanged\n @see EOS_Lobby_AddNotifyRTCRoomConnectionChangedOptions\n @see EOS_Lobby_OnRTCRoomConnectionChangedCallback"]
18513    pub fn EOS_Lobby_AddNotifyRTCRoomConnectionChanged(
18514        Handle: EOS_HLobby,
18515        Options: *const EOS_Lobby_AddNotifyRTCRoomConnectionChangedOptions,
18516        ClientData: *mut ::std::os::raw::c_void,
18517        NotificationFn: EOS_Lobby_OnRTCRoomConnectionChangedCallback,
18518    ) -> EOS_NotificationId;
18519}
18520unsafe extern "C" {
18521    #[doc = " Unregister from receiving notifications when an RTC Room's connection status changes.\n\n This should be called when the local user is leaving a lobby.\n\n @param InId Handle representing the registered callback\n\n @see EOS_Lobby_AddNotifyRTCRoomConnectionChanged"]
18522    pub fn EOS_Lobby_RemoveNotifyRTCRoomConnectionChanged(
18523        Handle: EOS_HLobby,
18524        InId: EOS_NotificationId,
18525    );
18526}
18527unsafe extern "C" {
18528    #[doc = " Get the Connection string for an EOS lobby. The connection string describes the presence of a player in terms of game state.\n Xbox platforms expect titles to embed this into their MultiplayerActivity at creation.\n When present, the SDK will use this value to populate session presence in the social overlay and facilitate platform invitations.\n\n @param Options Structure containing the input parameters. API version, the LobbyID of the lobby to generate the string from and the PUID of the requesting user.\n @param OutBuffer The buffer to store the null-terminated ConnectString within\n @param InOutBufferLength In: The maximum amount of writable chars in OutBuffer see EOS_LOBBY_GETCONNECTSTRING_BUFFER_SIZE, Out: The minimum amount of chars needed in OutBuffer to store the ConnectString (including the null-terminator). May be set to zero depending on the error result.\n\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success if retrieving the string was successful.\n - EOS_InvalidParameters if the OutBuffer or InOutBufferLength are null.\n - EOS_IncompatibleVersion if the API version passed in is incorrect.\n - EOS_NotFound if no lobby is found matching the LobbyID and PUID provided.\n - EOS_LimitExceeded if the provided InOutBufferLength is too small to contain the resulting string.\n\n @see EOS_Lobby_GetConnectStringOptions"]
18529    pub fn EOS_Lobby_GetConnectString(
18530        Handle: EOS_HLobby,
18531        Options: *const EOS_Lobby_GetConnectStringOptions,
18532        OutBuffer: *mut ::std::os::raw::c_char,
18533        InOutBufferLength: *mut u32,
18534    ) -> EOS_EResult;
18535}
18536unsafe extern "C" {
18537    #[doc = " Parse the ConnectString for an EOS lobby invitation to extract just the lobby ID.\n Used for joining a lobby from a connection string (as generated by GetConnectString) found in a platform invitation or presence.\n\n @param Options Structure containing the input parameters. API version and ConnectString.\n @param OutBuffer The buffer to store the null-terminated lobby ID within\n @param InOutBufferLength In: The maximum amount of writable chars in OutBuffer see EOS_LOBBY_PARSECONNECTSTRING_BUFFER_SIZE, Out: The minimum amount of chars needed in OutBuffer to store the LobbyID (including the null-terminator). May be set to zero depending on the error result.\n\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success if retrieving the string was successful.\n - EOS_InvalidParameters if the OutBuffer or InOutBufferLength are null.\n - EOS_IncompatibleVersion if the API version passed in is incorrect.\n - EOS_LimitExceeded if the provided InOutBufferLength is too small to contain the resulting string.\n\n @see EOS_Lobby_ParseConnectStringOptions"]
18538    pub fn EOS_Lobby_ParseConnectString(
18539        Handle: EOS_HLobby,
18540        Options: *const EOS_Lobby_ParseConnectStringOptions,
18541        OutBuffer: *mut ::std::os::raw::c_char,
18542        InOutBufferLength: *mut u32,
18543    ) -> EOS_EResult;
18544}
18545unsafe extern "C" {
18546    #[doc = " Register to receive notifications about leave lobby requests performed by the local user via the overlay.\n When user requests to leave the lobby in the social overlay, the SDK does not automatically leave the lobby, it is up to the game to perform any necessary cleanup and call the EOS_Lobby_LeaveLobby method using the lobbyId sent in the notification function.\n @note If the returned NotificationId is valid, you must call EOS_Lobby_RemoveNotifyLeaveLobbyRequested when you no longer wish to have your NotificationHandler called.\n\n @param Options Structure containing information about the request.\n @param ClientData Arbitrary data that is passed back to you in the CompletionDelegate.\n @param NotificationFn A callback that is fired when a notification is received.\n\n @return handle representing the registered callback\n\n @see EOS_Lobby_AddNotifyLeaveLobbyRequestedOptions\n @see EOS_Lobby_OnLeaveLobbyRequestedCallback"]
18547    pub fn EOS_Lobby_AddNotifyLeaveLobbyRequested(
18548        Handle: EOS_HLobby,
18549        Options: *const EOS_Lobby_AddNotifyLeaveLobbyRequestedOptions,
18550        ClientData: *mut ::std::os::raw::c_void,
18551        NotificationFn: EOS_Lobby_OnLeaveLobbyRequestedCallback,
18552    ) -> EOS_NotificationId;
18553}
18554unsafe extern "C" {
18555    #[doc = " Unregister from receiving notifications when a user performs a leave lobby action via the overlay.\n\n @param InId Handle representing the registered callback"]
18556    pub fn EOS_Lobby_RemoveNotifyLeaveLobbyRequested(Handle: EOS_HLobby, InId: EOS_NotificationId);
18557}
18558unsafe extern "C" {
18559    #[doc = " Set the bucket ID associated with this lobby.\n Values such as region, game mode, etc can be combined here depending on game need.\n Setting this is strongly recommended to improve search performance.\n\n @param Options Options associated with the bucket ID of the lobby\n\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success if setting this parameter was successful\n - EOS_InvalidParameters if the bucket ID is invalid or null\n - EOS_IncompatibleVersion if the API version passed in is incorrect\n\n @see EOS_LobbyModification_SetBucketIdOptions"]
18560    pub fn EOS_LobbyModification_SetBucketId(
18561        Handle: EOS_HLobbyModification,
18562        Options: *const EOS_LobbyModification_SetBucketIdOptions,
18563    ) -> EOS_EResult;
18564}
18565unsafe extern "C" {
18566    #[doc = " Set the permissions associated with this lobby.\n The permissions range from \"public\" to \"invite only\" and are described by EOS_ELobbyPermissionLevel\n\n @param Options Options associated with the permission level of the lobby\n\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success if setting this parameter was successful\n - EOS_IncompatibleVersion if the API version passed in is incorrect\n\n @see EOS_LobbyModification_SetPermissionLevelOptions"]
18567    pub fn EOS_LobbyModification_SetPermissionLevel(
18568        Handle: EOS_HLobbyModification,
18569        Options: *const EOS_LobbyModification_SetPermissionLevelOptions,
18570    ) -> EOS_EResult;
18571}
18572unsafe extern "C" {
18573    #[doc = " Set the maximum number of members allowed in this lobby.\n When updating the lobby, it is not possible to reduce this number below the current number of existing members\n\n @param Options Options associated with max number of members in this lobby\n\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success if setting this parameter was successful\n - EOS_IncompatibleVersion if the API version passed in is incorrect\n\n @see EOS_LobbyModification_SetMaxMembersOptions"]
18574    pub fn EOS_LobbyModification_SetMaxMembers(
18575        Handle: EOS_HLobbyModification,
18576        Options: *const EOS_LobbyModification_SetMaxMembersOptions,
18577    ) -> EOS_EResult;
18578}
18579unsafe extern "C" {
18580    #[doc = " Allows enabling or disabling invites for this lobby.\n The lobby will also need to have `bPresenceEnabled` true.\n\n @param Options Options associated with invites allowed flag for this lobby.\n\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success if setting this parameter was successful\n - EOS_IncompatibleVersion if the API version passed in is incorrect\n\n @see EOS_LobbyModification_SetInvitesAllowedOptions"]
18581    pub fn EOS_LobbyModification_SetInvitesAllowed(
18582        Handle: EOS_HLobbyModification,
18583        Options: *const EOS_LobbyModification_SetInvitesAllowedOptions,
18584    ) -> EOS_EResult;
18585}
18586unsafe extern "C" {
18587    #[doc = " Associate an attribute with this lobby\n An attribute is something may be public or private with the lobby.\n If public, it can be queried for in a search, otherwise the data remains known only to lobby members\n\n @param Options Options to set the attribute and its visibility state\n\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success if setting this parameter was successful\n - EOS_InvalidParameters if the attribute is missing information or otherwise invalid\n - EOS_IncompatibleVersion if the API version passed in is incorrect\n\n @see EOS_LobbyModification_AddAttributeOptions"]
18588    pub fn EOS_LobbyModification_AddAttribute(
18589        Handle: EOS_HLobbyModification,
18590        Options: *const EOS_LobbyModification_AddAttributeOptions,
18591    ) -> EOS_EResult;
18592}
18593unsafe extern "C" {
18594    #[doc = " Remove an attribute associated with the lobby\n\n @param Options Specify the key of the attribute to remove\n\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success if removing this parameter was successful\n - EOS_InvalidParameters if the key is null or empty\n - EOS_IncompatibleVersion if the API version passed in is incorrect\n\n @see EOS_LobbyModification_RemoveAttributeOptions"]
18595    pub fn EOS_LobbyModification_RemoveAttribute(
18596        Handle: EOS_HLobbyModification,
18597        Options: *const EOS_LobbyModification_RemoveAttributeOptions,
18598    ) -> EOS_EResult;
18599}
18600unsafe extern "C" {
18601    #[doc = " Associate an attribute with a member of the lobby\n Lobby member data is always private to the lobby\n\n @param Options Options to set the attribute and its visibility state\n\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success if setting this parameter was successful\n - EOS_InvalidParameters if the attribute is missing information or otherwise invalid\n - EOS_IncompatibleVersion if the API version passed in is incorrect\n\n @see EOS_LobbyModification_AddMemberAttributeOptions"]
18602    pub fn EOS_LobbyModification_AddMemberAttribute(
18603        Handle: EOS_HLobbyModification,
18604        Options: *const EOS_LobbyModification_AddMemberAttributeOptions,
18605    ) -> EOS_EResult;
18606}
18607unsafe extern "C" {
18608    #[doc = " Remove an attribute associated with of member of the lobby\n\n @param Options Specify the key of the member attribute to remove\n\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success if removing this parameter was successful\n - EOS_InvalidParameters if the key is null or empty\n - EOS_IncompatibleVersion if the API version passed in is incorrect\n\n @see EOS_LobbyModification_RemoveMemberAttributeOptions"]
18609    pub fn EOS_LobbyModification_RemoveMemberAttribute(
18610        Handle: EOS_HLobbyModification,
18611        Options: *const EOS_LobbyModification_RemoveMemberAttributeOptions,
18612    ) -> EOS_EResult;
18613}
18614unsafe extern "C" {
18615    #[doc = " Set the Allowed Platform IDs for the lobby\n\n @param Options Options associated with allowed Platform IDs for this lobby\n\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success if setting this parameter was successful\n - EOS_IncompatibleVersion if the API version passed in is incorrect\n - EOS_InvalidParameters if the AllowedPlatformIds array is null but the count is 0 or if the count is greater than 0 and the array is null.\n\n @see EOS_LobbyModification_SetAllowedPlatformIdsOptions"]
18616    pub fn EOS_LobbyModification_SetAllowedPlatformIds(
18617        Handle: EOS_HLobbyModification,
18618        Options: *const EOS_LobbyModification_SetAllowedPlatformIdsOptions,
18619    ) -> EOS_EResult;
18620}
18621unsafe extern "C" {
18622    #[doc = " Get the product user ID of the current owner for a given lobby\n\n @param Options Structure containing the input parameters\n\n @return the product user ID for the lobby owner or null if the input parameters are invalid\n\n @see EOS_LobbyDetails_GetLobbyOwnerOptions"]
18623    pub fn EOS_LobbyDetails_GetLobbyOwner(
18624        Handle: EOS_HLobbyDetails,
18625        Options: *const EOS_LobbyDetails_GetLobbyOwnerOptions,
18626    ) -> EOS_ProductUserId;
18627}
18628unsafe extern "C" {
18629    #[doc = " EOS_LobbyDetails_CopyInfo is used to immediately retrieve a copy of lobby information from a given source such as a existing lobby or a search result.\n If the call returns an EOS_Success result, the out parameter, OutLobbyDetailsInfo, must be passed to EOS_LobbyDetails_Info_Release to release the memory associated with it.\n\n @param Options Structure containing the input parameters\n @param OutLobbyDetailsInfo Out parameter used to receive the EOS_LobbyDetails_Info structure.\n\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success if the information is available and passed out in OutLobbyDetailsInfo\n - EOS_InvalidParameters if you pass a null pointer for the out parameter\n - EOS_IncompatibleVersion if the API version passed in is incorrect\n\n @see EOS_LobbyDetails_Info\n @see EOS_LobbyDetails_CopyInfoOptions\n @see EOS_LobbyDetails_Info_Release"]
18630    pub fn EOS_LobbyDetails_CopyInfo(
18631        Handle: EOS_HLobbyDetails,
18632        Options: *const EOS_LobbyDetails_CopyInfoOptions,
18633        OutLobbyDetailsInfo: *mut *mut EOS_LobbyDetails_Info,
18634    ) -> EOS_EResult;
18635}
18636unsafe extern "C" {
18637    #[doc = " EOS_LobbyDetails_CopyMemberInfo is used to immediately retrieve a copy of lobby member information from an existing lobby.\n If the call returns an EOS_Success result, the out parameter, OutLobbyDetailsMemberInfo, must be passed to EOS_LobbyDetails_MemberInfo_Release to release the memory associated with it.\n Note: this information is only available if you are actively in the lobby.  It is not available for search results.\n\n @param Options Structure containing the input parameters\n @param OutLobbyDetailsMemberInfo Out parameter used to receive the EOS_LobbyDetails_Info structure.\n\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success if the information is available and passed out in OutLobbyMemberDetailsInfo\n - EOS_InvalidParameters if you pass a null pointer for the out parameter\n - EOS_IncompatibleVersion if the API version passed in is incorrect\n - EOS_NotFound if searching for a target user ID returns no results\n\n @see EOS_LobbyDetails_MemberInfo\n @see EOS_LobbyDetails_CopyMemberInfoOptions\n @see EOS_LobbyDetails_MemberInfo_Release"]
18638    pub fn EOS_LobbyDetails_CopyMemberInfo(
18639        Handle: EOS_HLobbyDetails,
18640        Options: *const EOS_LobbyDetails_CopyMemberInfoOptions,
18641        OutLobbyDetailsMemberInfo: *mut *mut EOS_LobbyDetails_MemberInfo,
18642    ) -> EOS_EResult;
18643}
18644unsafe extern "C" {
18645    #[doc = " Get the number of attributes associated with this lobby\n\n @param Options the Options associated with retrieving the attribute count\n\n @return number of attributes on the lobby or 0 if there is an error\n\n @see EOS_LobbyDetails_GetAttributeCountOptions"]
18646    pub fn EOS_LobbyDetails_GetAttributeCount(
18647        Handle: EOS_HLobbyDetails,
18648        Options: *const EOS_LobbyDetails_GetAttributeCountOptions,
18649    ) -> u32;
18650}
18651unsafe extern "C" {
18652    #[doc = " EOS_LobbyDetails_CopyAttributeByIndex is used to immediately retrieve a copy of a lobby attribute from a given source such as a existing lobby or a search result.\n If the call returns an EOS_Success result, the out parameter, OutAttribute, must be passed to EOS_Lobby_Attribute_Release to release the memory associated with it.\n\n @param Options Structure containing the input parameters\n @param OutAttribute Out parameter used to receive the EOS_Lobby_Attribute structure.\n\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success if the information is available and passed out in OutAttribute\n - EOS_InvalidParameters if you pass a null pointer for the out parameter\n - EOS_IncompatibleVersion if the API version passed in is incorrect\n\n @see EOS_Lobby_Attribute\n @see EOS_LobbyDetails_CopyAttributeByIndexOptions\n @see EOS_Lobby_Attribute_Release"]
18653    pub fn EOS_LobbyDetails_CopyAttributeByIndex(
18654        Handle: EOS_HLobbyDetails,
18655        Options: *const EOS_LobbyDetails_CopyAttributeByIndexOptions,
18656        OutAttribute: *mut *mut EOS_Lobby_Attribute,
18657    ) -> EOS_EResult;
18658}
18659unsafe extern "C" {
18660    #[doc = " EOS_LobbyDetails_CopyAttributeByKey is used to immediately retrieve a copy of a lobby attribute from a given source such as a existing lobby or a search result.\n If the call returns an EOS_Success result, the out parameter, OutAttribute, must be passed to EOS_Lobby_Attribute_Release to release the memory associated with it.\n\n @param Options Structure containing the input parameters\n @param OutAttribute Out parameter used to receive the EOS_Lobby_Attribute structure.\n\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success if the information is available and passed out in OutAttribute\n - EOS_InvalidParameters if you pass a null pointer for the out parameter\n - EOS_IncompatibleVersion if the API version passed in is incorrect\n\n @see EOS_Lobby_Attribute\n @see EOS_LobbyDetails_CopyAttributeByKeyOptions\n @see EOS_Lobby_Attribute_Release"]
18661    pub fn EOS_LobbyDetails_CopyAttributeByKey(
18662        Handle: EOS_HLobbyDetails,
18663        Options: *const EOS_LobbyDetails_CopyAttributeByKeyOptions,
18664        OutAttribute: *mut *mut EOS_Lobby_Attribute,
18665    ) -> EOS_EResult;
18666}
18667unsafe extern "C" {
18668    #[doc = " Get the number of members associated with this lobby\n\n @param Options the Options associated with retrieving the member count\n\n @return number of members in the existing lobby or 0 if there is an error\n\n @see EOS_LobbyDetails_GetMemberCountOptions"]
18669    pub fn EOS_LobbyDetails_GetMemberCount(
18670        Handle: EOS_HLobbyDetails,
18671        Options: *const EOS_LobbyDetails_GetMemberCountOptions,
18672    ) -> u32;
18673}
18674unsafe extern "C" {
18675    #[doc = " EOS_LobbyDetails_GetMemberByIndex is used to immediately retrieve individual members registered with a lobby.\n Note: this information is only available if you are actively in the lobby.  It is not available for search results.\n\n @param Options Structure containing the input parameters\n\n @return the product user ID for the registered member at a given index or null if that index is invalid\n\n @see EOS_LobbyDetails_GetMemberCount\n @see EOS_LobbyDetails_GetMemberByIndexOptions"]
18676    pub fn EOS_LobbyDetails_GetMemberByIndex(
18677        Handle: EOS_HLobbyDetails,
18678        Options: *const EOS_LobbyDetails_GetMemberByIndexOptions,
18679    ) -> EOS_ProductUserId;
18680}
18681unsafe extern "C" {
18682    #[doc = " EOS_LobbyDetails_GetMemberAttributeCount is used to immediately retrieve the attribute count for members in a lobby.\n Note: this information is only available if you are actively in the lobby.  It is not available for search results.\n\n @param Options Structure containing the input parameters\n\n @return the number of attributes associated with a given lobby member or 0 if that member is invalid\n\n @see EOS_LobbyDetails_GetMemberCount\n @see EOS_LobbyDetails_GetMemberAttributeCountOptions"]
18683    pub fn EOS_LobbyDetails_GetMemberAttributeCount(
18684        Handle: EOS_HLobbyDetails,
18685        Options: *const EOS_LobbyDetails_GetMemberAttributeCountOptions,
18686    ) -> u32;
18687}
18688unsafe extern "C" {
18689    #[doc = " EOS_LobbyDetails_CopyMemberAttributeByIndex is used to immediately retrieve a copy of a lobby member attribute from an existing lobby.\n If the call returns an EOS_Success result, the out parameter, OutAttribute, must be passed to EOS_Lobby_Attribute_Release to release the memory associated with it.\n Note: this information is only available if you are actively in the lobby.  It is not available for search results.\n\n @param Options Structure containing the input parameters\n @param OutAttribute Out parameter used to receive the EOS_Lobby_Attribute structure.\n\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success if the information is available and passed out in OutAttribute\n - EOS_InvalidParameters if you pass a null pointer for the out parameter\n - EOS_IncompatibleVersion if the API version passed in is incorrect\n\n @see EOS_Lobby_Attribute\n @see EOS_LobbyDetails_CopyMemberAttributeByIndexOptions\n @see EOS_Lobby_Attribute_Release"]
18690    pub fn EOS_LobbyDetails_CopyMemberAttributeByIndex(
18691        Handle: EOS_HLobbyDetails,
18692        Options: *const EOS_LobbyDetails_CopyMemberAttributeByIndexOptions,
18693        OutAttribute: *mut *mut EOS_Lobby_Attribute,
18694    ) -> EOS_EResult;
18695}
18696unsafe extern "C" {
18697    #[doc = " EOS_LobbyDetails_CopyMemberAttributeByKey is used to immediately retrieve a copy of a lobby member attribute from an existing lobby.\n If the call returns an EOS_Success result, the out parameter, OutAttribute, must be passed to EOS_Lobby_Attribute_Release to release the memory associated with it.\n Note: this information is only available if you are actively in the lobby.  It is not available for search results.\n\n @param Options Structure containing the input parameters\n @param OutAttribute Out parameter used to receive the EOS_Lobby_Attribute structure.\n\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success if the information is available and passed out in OutAttribute\n - EOS_InvalidParameters if you pass a null pointer for the out parameter\n - EOS_IncompatibleVersion if the API version passed in is incorrect\n\n @see EOS_Lobby_Attribute\n @see EOS_LobbyDetails_CopyMemberAttributeByKeyOptions\n @see EOS_Lobby_Attribute_Release"]
18698    pub fn EOS_LobbyDetails_CopyMemberAttributeByKey(
18699        Handle: EOS_HLobbyDetails,
18700        Options: *const EOS_LobbyDetails_CopyMemberAttributeByKeyOptions,
18701        OutAttribute: *mut *mut EOS_Lobby_Attribute,
18702    ) -> EOS_EResult;
18703}
18704unsafe extern "C" {
18705    #[doc = " Find lobbies matching the search criteria setup via this lobby search handle.\n When the operation completes, this handle will have the search results that can be parsed\n\n @param Options Structure containing information about the search criteria to use\n @param ClientData Arbitrary data that is passed back to you in the CompletionDelegate\n @param CompletionDelegate A callback that is fired when the search operation completes, either successfully or in error\n\n @see EOS_LobbySearch_FindOptions\n @see EOS_LobbySearch_OnFindCallback"]
18706    pub fn EOS_LobbySearch_Find(
18707        Handle: EOS_HLobbySearch,
18708        Options: *const EOS_LobbySearch_FindOptions,
18709        ClientData: *mut ::std::os::raw::c_void,
18710        CompletionDelegate: EOS_LobbySearch_OnFindCallback,
18711    );
18712}
18713unsafe extern "C" {
18714    #[doc = " Set a lobby ID to find and will return at most one search result.  Setting TargetUserId or SearchParameters will result in EOS_LobbySearch_Find failing\n\n @param Options A specific lobby ID for which to search\n\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success if setting this lobby ID was successful\n - EOS_InvalidParameters if the lobby ID is invalid or null\n - EOS_IncompatibleVersion if the API version passed in is incorrect\n\n @see EOS_LobbySearch_SetLobbyIdOptions"]
18715    pub fn EOS_LobbySearch_SetLobbyId(
18716        Handle: EOS_HLobbySearch,
18717        Options: *const EOS_LobbySearch_SetLobbyIdOptions,
18718    ) -> EOS_EResult;
18719}
18720unsafe extern "C" {
18721    #[doc = " Set a target user ID to find.  Setting LobbyId or SearchParameters will result in EOS_LobbySearch_Find failing\n @note a search result will only be found if this user is in a public lobby\n\n @param Options a specific target user ID to find\n\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success if setting this target user ID was successful\n - EOS_InvalidParameters if the target user ID is invalid or null\n - EOS_IncompatibleVersion if the API version passed in is incorrect\n\n @see EOS_LobbySearch_SetTargetUserIdOptions"]
18722    pub fn EOS_LobbySearch_SetTargetUserId(
18723        Handle: EOS_HLobbySearch,
18724        Options: *const EOS_LobbySearch_SetTargetUserIdOptions,
18725    ) -> EOS_EResult;
18726}
18727unsafe extern "C" {
18728    #[doc = " Add a parameter to an array of search criteria combined via an implicit AND operator.  Setting LobbyId or TargetUserId will result in EOS_LobbySearch_Find failing\n\n @param Options a search parameter and its comparison op\n\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success if setting this search parameter was successful\n - EOS_InvalidParameters if the search criteria is invalid or null\n - EOS_IncompatibleVersion if the API version passed in is incorrect\n\n @see EOS_LobbySearch_SetParameterOptions\n @see EOS_Lobby_AttributeData\n @see EOS_EComparisonOp"]
18729    pub fn EOS_LobbySearch_SetParameter(
18730        Handle: EOS_HLobbySearch,
18731        Options: *const EOS_LobbySearch_SetParameterOptions,
18732    ) -> EOS_EResult;
18733}
18734unsafe extern "C" {
18735    #[doc = " Remove a parameter from the array of search criteria.\n\n @params Options a search parameter key name to remove\n\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success if removing this search parameter was successful\n - EOS_InvalidParameters if the search key is invalid or null\n - EOS_NotFound if the parameter was not a part of the search criteria\n - EOS_IncompatibleVersion if the API version passed in is incorrect\n\n @see EOS_LobbySearch_RemoveParameterOptions"]
18736    pub fn EOS_LobbySearch_RemoveParameter(
18737        Handle: EOS_HLobbySearch,
18738        Options: *const EOS_LobbySearch_RemoveParameterOptions,
18739    ) -> EOS_EResult;
18740}
18741unsafe extern "C" {
18742    #[doc = " Set the maximum number of search results to return in the query, can't be more than EOS_LOBBY_MAX_SEARCH_RESULTS\n\n @param Options maximum number of search results to return in the query\n\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success if setting the max results was successful\n - EOS_InvalidParameters if the number of results requested is invalid\n - EOS_IncompatibleVersion if the API version passed in is incorrect\n\n @see EOS_LobbySearch_SetMaxResultsOptions"]
18743    pub fn EOS_LobbySearch_SetMaxResults(
18744        Handle: EOS_HLobbySearch,
18745        Options: *const EOS_LobbySearch_SetMaxResultsOptions,
18746    ) -> EOS_EResult;
18747}
18748unsafe extern "C" {
18749    #[doc = " Get the number of search results found by the search parameters in this search\n\n @param Options Options associated with the search count\n\n @return return the number of search results found by the query or 0 if search is not complete\n\n @see EOS_LobbySearch_GetSearchResultCountOptions"]
18750    pub fn EOS_LobbySearch_GetSearchResultCount(
18751        Handle: EOS_HLobbySearch,
18752        Options: *const EOS_LobbySearch_GetSearchResultCountOptions,
18753    ) -> u32;
18754}
18755unsafe extern "C" {
18756    #[doc = " EOS_LobbySearch_CopySearchResultByIndex is used to immediately retrieve a handle to the lobby information from a given search result.\n If the call returns an EOS_Success result, the out parameter, OutLobbyDetailsHandle, must be passed to EOS_LobbyDetails_Release to release the memory associated with it.\n\n @param Options Structure containing the input parameters\n @param OutLobbyDetailsHandle out parameter used to receive the lobby details handle\n\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success if the information is available and passed out in OutLobbyDetailsHandle\n - EOS_InvalidParameters if you pass an invalid index or a null pointer for the out parameter\n - EOS_IncompatibleVersion if the API version passed in is incorrect\n\n @see EOS_LobbySearch_CopySearchResultByIndexOptions\n @see EOS_HLobbyDetails\n @see EOS_LobbyDetails_Release"]
18757    pub fn EOS_LobbySearch_CopySearchResultByIndex(
18758        Handle: EOS_HLobbySearch,
18759        Options: *const EOS_LobbySearch_CopySearchResultByIndexOptions,
18760        OutLobbyDetailsHandle: *mut EOS_HLobbyDetails,
18761    ) -> EOS_EResult;
18762}
18763unsafe extern "C" {
18764    #[doc = " Send a packet to a peer at the specified address. If there is already an open connection to this peer, it will be\n sent immediately. If there is no open connection, an attempt to connect to the peer will be made. An EOS_Success\n result only means the data was accepted to be sent, not that it has been successfully delivered to the peer.\n\n @param Options Information about the data being sent, by who, to who\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success           - If packet was queued to be sent successfully\n - EOS_InvalidParameters - If input was invalid\n - EOS_LimitExceeded     - If amount of data being sent is too large, or the outgoing packet queue was full\n - EOS_NoConnection      - If bDisableAutoAcceptConnection was set to EOS_TRUE and the connection was not currently accepted (call EOS_P2P_AcceptConnection first, or set bDisableAutoAcceptConnection to EOS_FALSE)\n\n @see EOS_P2P_SendPacketOptions"]
18765    pub fn EOS_P2P_SendPacket(
18766        Handle: EOS_HP2P,
18767        Options: *const EOS_P2P_SendPacketOptions,
18768    ) -> EOS_EResult;
18769}
18770unsafe extern "C" {
18771    #[doc = " Gets the size of the packet that will be returned by ReceivePacket for a particular user, if there is any available\n packets to be retrieved.\n\n @param Options Information about who is requesting the size of their next packet\n @param OutPacketSizeBytes The amount of bytes required to store the data of the next packet for the requested user\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success - If OutPacketSizeBytes was successfully set and there is data to be received\n - EOS_InvalidParameters - If input was invalid\n - EOS_NotFound  - If there are no packets available for the requesting user\n\n @see EOS_P2P_GetNextReceivedPacketSizeOptions"]
18772    pub fn EOS_P2P_GetNextReceivedPacketSize(
18773        Handle: EOS_HP2P,
18774        Options: *const EOS_P2P_GetNextReceivedPacketSizeOptions,
18775        OutPacketSizeBytes: *mut u32,
18776    ) -> EOS_EResult;
18777}
18778unsafe extern "C" {
18779    #[doc = " Receive the next packet for the local user, and information associated with this packet, if it exists.\n\n @param Options Information about who is requesting the size of their next packet, and how much data can be stored safely\n @param OutPeerId The Remote User who sent data. Only set if there was a packet to receive.\n @param OutSocketId The Socket ID of the data that was sent. Only set if there was a packet to receive.\n @param OutChannel The channel the data was sent on. Only set if there was a packet to receive.\n @param OutData Buffer to store the data being received. Must be at least EOS_P2P_GetNextReceivedPacketSize in length or data will be truncated\n @param OutBytesWritten The amount of bytes written to OutData. Only set if there was a packet to receive.\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success - If the packet was received successfully\n - EOS_InvalidParameters - If input was invalid\n - EOS_NotFound - If there are no packets available for the requesting user\n\n @see EOS_P2P_GetNextReceivedPacketSize\n @see EOS_P2P_ReceivePacketOptions"]
18780    pub fn EOS_P2P_ReceivePacket(
18781        Handle: EOS_HP2P,
18782        Options: *const EOS_P2P_ReceivePacketOptions,
18783        OutPeerId: *mut EOS_ProductUserId,
18784        OutSocketId: *mut EOS_P2P_SocketId,
18785        OutChannel: *mut u8,
18786        OutData: *mut ::std::os::raw::c_void,
18787        OutBytesWritten: *mut u32,
18788    ) -> EOS_EResult;
18789}
18790unsafe extern "C" {
18791    #[doc = " Listen for incoming connection requests on a particular Socket ID, or optionally all Socket IDs. The bound function\n will only be called if the connection has not already been accepted.\n If the network status changes from offline or disabled to online, you must call this function again.\n @param Options Information about who would like notifications, and (optionally) only for a specific socket\n @param ClientData This value is returned to the caller when ConnectionRequestHandler is invoked\n @param ConnectionRequestHandler The callback to be fired when we receive a connection request\n @return A valid notification ID if successfully bound, or EOS_INVALID_NOTIFICATIONID otherwise\n\n @see EOS_P2P_RemoveNotifyPeerConnectionRequest\n @see EOS_P2P_AddNotifyPeerConnectionRequestOptions\n @see EOS_P2P_OnIncomingConnectionRequestCallback"]
18792    pub fn EOS_P2P_AddNotifyPeerConnectionRequest(
18793        Handle: EOS_HP2P,
18794        Options: *const EOS_P2P_AddNotifyPeerConnectionRequestOptions,
18795        ClientData: *mut ::std::os::raw::c_void,
18796        ConnectionRequestHandler: EOS_P2P_OnIncomingConnectionRequestCallback,
18797    ) -> EOS_NotificationId;
18798}
18799unsafe extern "C" {
18800    #[doc = " Stop listening for connection requests on a previously bound handler.\n\n @param NotificationId The previously bound notification ID\n\n @see EOS_P2P_AddNotifyPeerConnectionRequest"]
18801    pub fn EOS_P2P_RemoveNotifyPeerConnectionRequest(
18802        Handle: EOS_HP2P,
18803        NotificationId: EOS_NotificationId,
18804    );
18805}
18806unsafe extern "C" {
18807    #[doc = " Listen for when a connection is established. This is fired when we first connect to a peer, when we reconnect to a peer after a connection interruption,\n and when our underlying network connection type changes (for example, from a direct connection to relay, or vice versa). Network Connection Type changes\n will always be broadcast with a EOS_CET_Reconnection connection type, even if the connection was not interrupted.\n If the network status changes from offline or disabled to online, you must call this function again.\n\n @param Options Information about who would like notifications about established connections, and for which socket\n @param ClientData This value is returned to the caller when ConnectionEstablishedHandler is invoked\n @param ConnectionEstablishedHandler The callback to be fired when a connection has been established\n @return A valid notification ID if successfully bound, or EOS_INVALID_NOTIFICATIONID otherwise\n\n @see EOS_P2P_AddNotifyPeerConnectionEstablishedOptions\n @see EOS_P2P_OnPeerConnectionEstablishedCallback\n @see EOS_P2P_AddNotifyPeerConnectionInterrupted\n @see EOS_P2P_AddNotifyPeerConnectionClosed\n @see EOS_P2P_RemoveNotifyPeerConnectionEstablished"]
18808    pub fn EOS_P2P_AddNotifyPeerConnectionEstablished(
18809        Handle: EOS_HP2P,
18810        Options: *const EOS_P2P_AddNotifyPeerConnectionEstablishedOptions,
18811        ClientData: *mut ::std::os::raw::c_void,
18812        ConnectionEstablishedHandler: EOS_P2P_OnPeerConnectionEstablishedCallback,
18813    ) -> EOS_NotificationId;
18814}
18815unsafe extern "C" {
18816    #[doc = " Stop notifications for connections being established on a previously bound handler.\n\n @param NotificationId The previously bound notification ID\n\n @see EOS_P2P_AddNotifyPeerConnectionEstablished"]
18817    pub fn EOS_P2P_RemoveNotifyPeerConnectionEstablished(
18818        Handle: EOS_HP2P,
18819        NotificationId: EOS_NotificationId,
18820    );
18821}
18822unsafe extern "C" {
18823    #[doc = " Listen for when a previously opened connection is interrupted. The connection will automatically attempt to reestablish, but it may not be successful.\n\n If a connection reconnects, it will trigger the P2P PeerConnectionEstablished notification with the EOS_CET_Reconnection connection type.\n If a connection fails to reconnect, it will trigger the P2P PeerConnectionClosed notification.\n Packets remain queued during connection interruptions. When a connection closes, packets are flushed. This includes reliable packets.\n\n @param Options Information about who would like notifications about interrupted connections, and for which socket\n @param ClientData This value is returned to the caller when ConnectionInterruptedHandler is invoked\n @param ConnectionInterruptedHandler The callback to be fired when an open connection has been interrupted\n @return A valid notification ID if successfully bound, or EOS_INVALID_NOTIFICATIONID otherwise\n\n @see EOS_P2P_AddNotifyPeerConnectionInterruptedOptions\n @see EOS_P2P_OnPeerConnectionInterruptedCallback\n @see EOS_P2P_AddNotifyPeerConnectionEstablished\n @see EOS_P2P_AddNotifyPeerConnectionClosed\n @see EOS_P2P_RemoveNotifyPeerConnectionInterrupted"]
18824    pub fn EOS_P2P_AddNotifyPeerConnectionInterrupted(
18825        Handle: EOS_HP2P,
18826        Options: *const EOS_P2P_AddNotifyPeerConnectionInterruptedOptions,
18827        ClientData: *mut ::std::os::raw::c_void,
18828        ConnectionInterruptedHandler: EOS_P2P_OnPeerConnectionInterruptedCallback,
18829    ) -> EOS_NotificationId;
18830}
18831unsafe extern "C" {
18832    #[doc = " Stop notifications for connections being interrupted on a previously bound handler.\n\n @param NotificationId The previously bound notification ID\n\n @see EOS_P2P_AddNotifyPeerConnectionInterrupted"]
18833    pub fn EOS_P2P_RemoveNotifyPeerConnectionInterrupted(
18834        Handle: EOS_HP2P,
18835        NotificationId: EOS_NotificationId,
18836    );
18837}
18838unsafe extern "C" {
18839    #[doc = " Listen for when a previously accepted connection that was either open or pending is closed.\n When a connection closes, packets are flushed. This includes reliable packets.\n\n @param Options Information about who would like notifications about closed connections, and for which socket\n @param ClientData This value is returned to the caller when ConnectionClosedHandler is invoked\n @param ConnectionClosedHandler The callback to be fired when an open connection has been closed\n @return A valid notification ID if successfully bound, or EOS_INVALID_NOTIFICATIONID otherwise\n\n @see EOS_P2P_AddNotifyPeerConnectionClosedOptions\n @see EOS_P2P_OnRemoteConnectionClosedCallback\n @see EOS_P2P_AddNotifyPeerConnectionEstablished\n @see EOS_P2P_AddNotifyPeerConnectionInterrupted\n @see EOS_P2P_RemoveNotifyPeerConnectionClosed"]
18840    pub fn EOS_P2P_AddNotifyPeerConnectionClosed(
18841        Handle: EOS_HP2P,
18842        Options: *const EOS_P2P_AddNotifyPeerConnectionClosedOptions,
18843        ClientData: *mut ::std::os::raw::c_void,
18844        ConnectionClosedHandler: EOS_P2P_OnRemoteConnectionClosedCallback,
18845    ) -> EOS_NotificationId;
18846}
18847unsafe extern "C" {
18848    #[doc = " Stop notifications for connections being closed on a previously bound handler.\n\n @param NotificationId The previously bound notification ID\n\n @see EOS_P2P_AddNotifyPeerConnectionClosed"]
18849    pub fn EOS_P2P_RemoveNotifyPeerConnectionClosed(
18850        Handle: EOS_HP2P,
18851        NotificationId: EOS_NotificationId,
18852    );
18853}
18854unsafe extern "C" {
18855    #[doc = " Accept or Request a connection with a specific peer on a specific Socket ID.\n\n If this connection was not already locally accepted, we will securely message the peer, and trigger a PeerConnectionRequest notification notifying\n them of the connection request. If the PeerConnectionRequest notification is not bound for all Socket IDs or for the requested Socket ID in particular,\n the request will be silently ignored.\n\n If the remote peer accepts the connection, a notification will be broadcast to the EOS_P2P_AddNotifyPeerConnectionEstablished when the connection is\n ready to send packets.\n\n If multiple Socket IDs are accepted with one peer, they will share one physical socket.\n\n Even if a connection is already locally accepted, EOS_Success will still be returned if the input was valid.\n\n @param Options Information about who would like to accept a connection, and which connection\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success - if the provided data is valid\n - EOS_InvalidParameters - if the provided data is invalid\n\n @see EOS_P2P_AcceptConnectionOptions"]
18856    pub fn EOS_P2P_AcceptConnection(
18857        Handle: EOS_HP2P,
18858        Options: *const EOS_P2P_AcceptConnectionOptions,
18859    ) -> EOS_EResult;
18860}
18861unsafe extern "C" {
18862    #[doc = " For all (or optionally one specific) Socket ID(s) with a specific peer: stop receiving packets, drop any locally queued packets, and if no other\n Socket ID is using the connection with the peer, close the underlying connection.\n\n If your application wants to migrate an existing connection with a peer it already connected to, it is recommended to call EOS_P2P_AcceptConnection\n with the new Socket ID first before calling EOS_P2P_CloseConnection, to prevent the shared physical socket from being torn down prematurely.\n\n @param Options Information about who would like to close a connection, and which connection.\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success - if the provided data is valid\n - EOS_InvalidParameters - if the provided data is invalid\n\n @see EOS_P2P_CloseConnectionOptions"]
18863    pub fn EOS_P2P_CloseConnection(
18864        Handle: EOS_HP2P,
18865        Options: *const EOS_P2P_CloseConnectionOptions,
18866    ) -> EOS_EResult;
18867}
18868unsafe extern "C" {
18869    #[doc = " Close any open Connections for a specific Peer Connection ID.\n\n @param Options Information about who would like to close connections, and by what socket ID\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success - if the provided data is valid\n - EOS_InvalidParameters - if the provided data is invalid\n\n @see EOS_P2P_CloseConnectionsOptions"]
18870    pub fn EOS_P2P_CloseConnections(
18871        Handle: EOS_HP2P,
18872        Options: *const EOS_P2P_CloseConnectionsOptions,
18873    ) -> EOS_EResult;
18874}
18875unsafe extern "C" {
18876    #[doc = " Query the current NAT-type of our connection.\n\n @param Options Information about what version of the EOS_P2P_QueryNATType API is supported\n @param ClientData arbitrary data that is passed back to you in the CompletionDelegate\n @param CompletionDelegate The callback to be fired when we finish querying our NAT type\n\n @see EOS_P2P_QueryNATTypeOptions\n @see EOS_P2P_OnQueryNATTypeCompleteCallback"]
18877    pub fn EOS_P2P_QueryNATType(
18878        Handle: EOS_HP2P,
18879        Options: *const EOS_P2P_QueryNATTypeOptions,
18880        ClientData: *mut ::std::os::raw::c_void,
18881        CompletionDelegate: EOS_P2P_OnQueryNATTypeCompleteCallback,
18882    );
18883}
18884unsafe extern "C" {
18885    #[doc = " Get our last-queried NAT-type, if it has been successfully queried.\n\n @param Options Information about what version of the EOS_P2P_GetNATType API is supported\n @param OutNATType The queried NAT Type, or unknown if unknown\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success - if we have cached data\n - EOS_NotFound - If we do not have queried data cached\n\n @see EOS_P2P_GetNATTypeOptions"]
18886    pub fn EOS_P2P_GetNATType(
18887        Handle: EOS_HP2P,
18888        Options: *const EOS_P2P_GetNATTypeOptions,
18889        OutNATType: *mut EOS_ENATType,
18890    ) -> EOS_EResult;
18891}
18892unsafe extern "C" {
18893    #[doc = " Set how relay servers are to be used. This setting does not immediately apply to existing connections, but may apply to existing\n connections if the connection requires renegotiation.\n\n @param Options Information about relay server config options\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success - if the options were set successfully\n - EOS_InvalidParameters - if the options are invalid in some way\n\n @see EOS_P2P_SetRelayControlOptions\n @see EOS_ERelayControl"]
18894    pub fn EOS_P2P_SetRelayControl(
18895        Handle: EOS_HP2P,
18896        Options: *const EOS_P2P_SetRelayControlOptions,
18897    ) -> EOS_EResult;
18898}
18899unsafe extern "C" {
18900    #[doc = " Get the current relay control setting.\n\n @param Options Information about what version of the EOS_P2P_GetRelayControl API is supported\n @param OutRelayControl The relay control setting currently configured\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success - if the input was valid\n - EOS_InvalidParameters - if the input was invalid in some way\n\n @see EOS_P2P_GetRelayControlOptions\n @see EOS_ERelayControl"]
18901    pub fn EOS_P2P_GetRelayControl(
18902        Handle: EOS_HP2P,
18903        Options: *const EOS_P2P_GetRelayControlOptions,
18904        OutRelayControl: *mut EOS_ERelayControl,
18905    ) -> EOS_EResult;
18906}
18907unsafe extern "C" {
18908    #[doc = " Set configuration options related to network ports.\n\n @param Options Information about network ports config options\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success - if the options were set successfully\n - EOS_InvalidParameters - if the options are invalid in some way\n\n @see EOS_P2P_SetPortRangeOptions"]
18909    pub fn EOS_P2P_SetPortRange(
18910        Handle: EOS_HP2P,
18911        Options: *const EOS_P2P_SetPortRangeOptions,
18912    ) -> EOS_EResult;
18913}
18914unsafe extern "C" {
18915    #[doc = " Get the current chosen port and the amount of other ports to try above the chosen port if the chosen port is unavailable.\n\n @param Options Information about what version of the EOS_P2P_GetPortRange API is supported\n @param OutPort The port that will be tried first\n @param OutNumAdditionalPortsToTry The amount of ports to try above the value in OutPort, if OutPort is unavailable\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success - if the input options were valid\n - EOS_InvalidParameters - if the input was invalid in some way\n\n @see EOS_P2P_GetPortRangeOptions"]
18916    pub fn EOS_P2P_GetPortRange(
18917        Handle: EOS_HP2P,
18918        Options: *const EOS_P2P_GetPortRangeOptions,
18919        OutPort: *mut u16,
18920        OutNumAdditionalPortsToTry: *mut u16,
18921    ) -> EOS_EResult;
18922}
18923unsafe extern "C" {
18924    #[doc = " Sets the maximum packet queue sizes that packets waiting to be sent or received can use. If the packet queue\n size is made smaller than the current queue size while there are packets in the queue that would push this\n packet size over, existing packets are kept but new packets may not be added to the full queue until enough\n packets are sent or received.\n\n @param Options Information about packet queue size\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success - if the input options were valid\n - EOS_InvalidParameters - if the input was invalid in some way\n\n @see EOS_P2P_SetPacketQueueSizeOptions"]
18925    pub fn EOS_P2P_SetPacketQueueSize(
18926        Handle: EOS_HP2P,
18927        Options: *const EOS_P2P_SetPacketQueueSizeOptions,
18928    ) -> EOS_EResult;
18929}
18930unsafe extern "C" {
18931    #[doc = " Gets the current cached information related to the incoming and outgoing packet queues.\n\n @param Options Information about what version of the EOS_P2P_GetPacketQueueInfo API is supported\n @param OutPacketQueueInfo The current information of the incoming and outgoing packet queues\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success - if the input options were valid\n - EOS_InvalidParameters - if the input was invalid in some way\n\n @see EOS_P2P_GetPacketQueueInfoOptions\n @see EOS_P2P_PacketQueueInfo"]
18932    pub fn EOS_P2P_GetPacketQueueInfo(
18933        Handle: EOS_HP2P,
18934        Options: *const EOS_P2P_GetPacketQueueInfoOptions,
18935        OutPacketQueueInfo: *mut EOS_P2P_PacketQueueInfo,
18936    ) -> EOS_EResult;
18937}
18938unsafe extern "C" {
18939    #[doc = " Listen for when our packet queue has become full. This event gives an opportunity to read packets to make\n room for new incoming packets. If this event fires and no packets are read by calling EOS_P2P_ReceivePacket\n or the packet queue size is not increased by EOS_P2P_SetPacketQueueSize, any packets that are received after\n this event are discarded until there is room again in the queue.\n\n @param Options Information about what version of the EOS_P2P_AddNotifyIncomingPacketQueueFull API is supported\n @param ClientData Arbitrary data that is passed back to you in the CompletionDelegate\n @param IncomingPacketQueueFullHandler The callback to be fired when the incoming packet queue is full\n @return A valid notification ID if successfully bound, or EOS_INVALID_NOTIFICATIONID otherwise\n\n @see EOS_P2P_AddNotifyIncomingPacketQueueFullOptions\n @see EOS_P2P_OnIncomingPacketQueueFullCallback"]
18940    pub fn EOS_P2P_AddNotifyIncomingPacketQueueFull(
18941        Handle: EOS_HP2P,
18942        Options: *const EOS_P2P_AddNotifyIncomingPacketQueueFullOptions,
18943        ClientData: *mut ::std::os::raw::c_void,
18944        IncomingPacketQueueFullHandler: EOS_P2P_OnIncomingPacketQueueFullCallback,
18945    ) -> EOS_NotificationId;
18946}
18947unsafe extern "C" {
18948    #[doc = " Stop listening for full incoming packet queue events on a previously bound handler.\n\n @param NotificationId The previously bound notification ID"]
18949    pub fn EOS_P2P_RemoveNotifyIncomingPacketQueueFull(
18950        Handle: EOS_HP2P,
18951        NotificationId: EOS_NotificationId,
18952    );
18953}
18954unsafe extern "C" {
18955    #[doc = " Clear queued incoming and outgoing packets.\n\n @param Options Information about which queues should be cleared\n @return EOS_EResult containing the result of the operation.\n Possible result codes:\n - EOS_Success - if the input options were valid (even if queues were empty and no packets where cleared)\n - EOS_IncompatibleVersion - if wrong API version\n - EOS_InvalidUser - if an invalid/remote user was used\n - EOS_InvalidParameters - if input was invalid in other way\n\n @see EOS_P2P_ClearPacketQueueOptions"]
18956    pub fn EOS_P2P_ClearPacketQueue(
18957        Handle: EOS_HP2P,
18958        Options: *const EOS_P2P_ClearPacketQueueOptions,
18959    ) -> EOS_EResult;
18960}