Skip to main content

anvil_sys/
bindings.rs

1/* automatically generated by rust-bindgen 0.73.2 */
2
3// @generated by sdk/rust/regen-bindings.ps1 from include/anvil/anvil_plugin.h, anvil_game.h, anvil_panel.h, anvil_input.h, anvil_benchmark.h, anvil_map.h and anvil_script.h. Do not edit.
4
5pub const ANVIL_API_VERSION: u32 = 2;
6pub const ANVIL_EVENT_PLUGINS_LOADED: &[u8; 21] = b"anvil.plugins_loaded\0";
7pub const ANVIL_EVENT_SUSPENDED: &[u8; 16] = b"anvil.suspended\0";
8pub const ANVIL_EVENT_RESUMED: &[u8; 14] = b"anvil.resumed\0";
9pub const ANVIL_GAME_ID: &[u8; 11] = b"anvil-game\0";
10pub const ANVIL_GAME_EVENT_READY: &[u8; 17] = b"anvil-game.ready\0";
11pub const ANVIL_GAME_EVENT_FRAME: &[u8; 17] = b"anvil-game.frame\0";
12pub const ANVIL_GAME_EVENT_SESSION: &[u8; 19] = b"anvil-game.session\0";
13pub const ANVIL_GAME_EVENT_MAIN_MENU: &[u8; 21] = b"anvil-game.main_menu\0";
14pub const ANVIL_GAME_SERVICE: &[u8; 16] = b"anvil-game.game\0";
15pub const ANVIL_GAME_SERVICE_VERSION: u32 = 1;
16pub const ANVIL_GAME_KEYBOARD_TEXT: u32 = 1;
17pub const ANVIL_GAME_KEYBOARD_SHORTCUT: u32 = 2;
18pub const ANVIL_GAME_OOS_DETECTED: u32 = 1;
19pub const ANVIL_GAME_OOS_PAUSED: u32 = 2;
20pub const ANVIL_GAME_EVENT_OOS: &[u8; 15] = b"anvil-game.oos\0";
21pub const ANVIL_GAME_EVENT_DAY: &[u8; 15] = b"anvil-game.day\0";
22pub const ANVIL_GAME_EVENT_MONTH: &[u8; 17] = b"anvil-game.month\0";
23pub const ANVIL_GAME_EVENT_YEAR: &[u8; 16] = b"anvil-game.year\0";
24pub const ANVIL_GAME_EVENT_PLAYER: &[u8; 18] = b"anvil-game.player\0";
25pub const ANVIL_GAME_EVENT_WAR: &[u8; 15] = b"anvil-game.war\0";
26pub const ANVIL_GAME_PROVINCE_LAND: u32 = 1;
27pub const ANVIL_GAME_PROVINCE_WASTELAND: u32 = 2;
28pub const ANVIL_GAME_COUNTRY_OBSERVER: u32 = 1;
29pub const ANVIL_GAME_VALUE_TREASURY: u32 = 1;
30pub const ANVIL_GAME_VALUE_STABILITY: u32 = 2;
31pub const ANVIL_GAME_VALUE_PRESTIGE: u32 = 4;
32pub const ANVIL_GAME_VALUE_MANPOWER: u32 = 8;
33pub const ANVIL_GAME_VALUE_MONTHLY_INCOME: u32 = 16;
34pub const ANVIL_GAME_WAR_ATTACKERS: u32 = 0;
35pub const ANVIL_GAME_WAR_DEFENDERS: u32 = 1;
36pub const ANVIL_GAME_UNIT_ARMY: u32 = 0;
37pub const ANVIL_GAME_UNIT_NAVY: u32 = 1;
38pub const ANVIL_GAME_MISSION_UNKNOWN: i32 = -1;
39pub const ANVIL_GAME_MISSION_NONE: u32 = 0;
40pub const ANVIL_GAME_MISSION_PROTECT_TRADE: u32 = 1;
41pub const ANVIL_GAME_MISSION_PRIVATEER: u32 = 2;
42pub const ANVIL_GAME_MISSION_HUNT_PIRATES: u32 = 3;
43pub const ANVIL_GAME_MISSION_PATROL: u32 = 4;
44pub const ANVIL_GAME_MISSION_EXPLORE: u32 = 5;
45pub const ANVIL_GAME_MISSION_EVADE: u32 = 6;
46pub const ANVIL_GAME_MISSION_HUNT_FLEETS: u32 = 7;
47pub const ANVIL_GAME_MISSION_BLOCKADE: u32 = 8;
48pub const ANVIL_GAME_MISSION_INTERCEPT: u32 = 9;
49pub const ANVIL_GAME_MISSION_REPAIR: u32 = 10;
50pub const ANVIL_GAME_MISSION_CIRCUMNAVIGATE: u32 = 11;
51pub const ANVIL_GAME_MISSION_EXPLORE_LAND: u32 = 12;
52pub const ANVIL_GAME_MISSION_HUNT_REBELS: u32 = 13;
53pub const ANVIL_GAME_MISSION_SIEGE: u32 = 14;
54pub const ANVIL_GAME_MISSION_DRILL: u32 = 15;
55pub const ANVIL_GAME_WORLD_SERVICE: &[u8; 17] = b"anvil-game.world\0";
56pub const ANVIL_GAME_WORLD_SERVICE_VERSION: u32 = 1;
57pub const ANVIL_GAME_COMMAND_DRILL: u32 = 1;
58pub const ANVIL_GAME_COMMAND_MERGE: u32 = 2;
59pub const ANVIL_GAME_COMMAND_SPLIT: u32 = 3;
60pub const ANVIL_GAME_COMMAND_EVENT_OPTION: u32 = 4;
61pub const ANVIL_GAME_COMMAND_START: u32 = 1;
62pub const ANVIL_GAME_COMMAND_MAX_UNITS: u32 = 64;
63pub const ANVIL_GAME_COMMAND_MAX_PER_FRAME: u32 = 256;
64pub const ANVIL_GAME_COMMANDS_SERVICE: &[u8; 20] = b"anvil-game.commands\0";
65pub const ANVIL_GAME_COMMANDS_SERVICE_VERSION: u32 = 2;
66pub const ANVIL_OVERLAY_ID: &[u8; 14] = b"anvil-overlay\0";
67pub const ANVIL_PANEL_SERVICE: &[u8; 20] = b"anvil-overlay.panel\0";
68pub const ANVIL_PANEL_SERVICE_VERSION: u32 = 1;
69pub const ANVIL_INPUT_SERVICE: &[u8; 20] = b"anvil-overlay.input\0";
70pub const ANVIL_INPUT_SERVICE_VERSION: u32 = 1;
71pub const ANVIL_INPUT_SHIFT: u32 = 256;
72pub const ANVIL_INPUT_CTRL: u32 = 512;
73pub const ANVIL_INPUT_ALT: u32 = 1024;
74pub const ANVIL_INPUT_OVERLAY_PANEL: u32 = 1;
75pub const ANVIL_INPUT_OVERLAY_KEYBOARD: u32 = 2;
76pub const ANVIL_INPUT_OVERLAY_MOUSE: u32 = 4;
77pub const ANVIL_INPUT_GAME_TEXT: u32 = 8;
78pub const ANVIL_INPUT_GAME_SHORTCUT: u32 = 16;
79pub const ANVIL_INPUT_GAME_UNKNOWN: u32 = 32;
80pub const ANVIL_INPUT_HOLD_KEYS: u32 = 27;
81pub const ANVIL_INPUT_HOLD_MOUSE: u32 = 4;
82pub const ANVIL_INPUT_CONSUME: u32 = 1;
83pub const ANVIL_INPUT_REPEAT: u32 = 2;
84pub const ANVIL_INPUT_EVENT_REPEAT: u32 = 1;
85pub const ANVIL_BENCHMARK_SERVICE: &[u8; 16] = b"anvil.benchmark\0";
86pub const ANVIL_BENCHMARK_SERVICE_VERSION: u32 = 1;
87pub const ANVIL_BENCHMARK_EVENT_QUIT: &[u8; 21] = b"anvil.benchmark_quit\0";
88pub const ANVIL_BENCHMARK_QUIT_LIMIT_MS: u32 = 30000;
89pub const ANVIL_BENCHMARK_MAX_FIELDS: u32 = 128;
90pub const ANVIL_BENCHMARK_MAX_OPTIONS: u32 = 32;
91pub const ANVIL_BENCHMARK_MAX_NAME: u32 = 64;
92pub const ANVIL_BENCHMARK_MAX_LABEL: u32 = 80;
93pub const ANVIL_MAP_ID: &[u8; 10] = b"anvil-map\0";
94pub const ANVIL_MAP_MODES_SERVICE: &[u8; 16] = b"anvil-map.modes\0";
95pub const ANVIL_MAP_MODES_SERVICE_VERSION: u32 = 1;
96pub const ANVIL_MAP_EVENT_SHOWN: &[u8; 16] = b"anvil-map.shown\0";
97pub const ANVIL_MAP_EVENT_HIDDEN: &[u8; 17] = b"anvil-map.hidden\0";
98pub const ANVIL_MAP_NO_COLOR: u32 = 4278190080;
99pub const ANVIL_SCRIPT_EFFECTS_SERVICE: &[u8; 21] = b"anvil-script.effects\0";
100pub const ANVIL_SCRIPT_EFFECTS_SERVICE_VERSION: u32 = 1;
101pub const ANVIL_SCRIPT_DAY_END_SERVICE: &[u8; 21] = b"anvil-script.day_end\0";
102pub const ANVIL_SCRIPT_DAY_END_SERVICE_VERSION: u32 = 1;
103pub const ANVIL_SCRIPT_DAY_NEW_MONTH: u32 = 1;
104pub const ANVIL_SCRIPT_DAY_NEW_YEAR: u32 = 2;
105pub type wchar_t = core::ffi::c_ushort;
106#[repr(C)]
107#[derive(Debug)]
108pub struct AnvilPlugin {
109    _unused: [u8; 0],
110}
111#[repr(C)]
112#[derive(Debug)]
113pub struct AnvilChange {
114    _unused: [u8; 0],
115}
116pub type AnvilSymbol = u32;
117pub type AnvilSetting = u32;
118pub const ANVIL_OK: AnvilResult = 0;
119pub const ANVIL_ERROR_INVALID_ARGUMENT: AnvilResult = 1;
120pub const ANVIL_ERROR_NOT_DECLARED: AnvilResult = 2;
121pub const ANVIL_ERROR_WRONG_KIND: AnvilResult = 3;
122pub const ANVIL_ERROR_CONFLICT: AnvilResult = 4;
123pub const ANVIL_ERROR_UNSAFE_SITE: AnvilResult = 5;
124pub const ANVIL_ERROR_BYTES_MISMATCH: AnvilResult = 6;
125pub const ANVIL_ERROR_OUT_OF_MEMORY: AnvilResult = 7;
126pub const ANVIL_ERROR_WRONG_PHASE: AnvilResult = 8;
127pub const ANVIL_ERROR_UNSUPPORTED: AnvilResult = 9;
128pub const ANVIL_ERROR_INTERNAL: AnvilResult = 10;
129pub const ANVIL_ERROR_NOT_FOUND: AnvilResult = 11;
130pub const ANVIL_ERROR_ALREADY_EXISTS: AnvilResult = 12;
131pub const ANVIL_ERROR_SUSPENDED: AnvilResult = 13;
132pub const ANVIL_ERROR_LIMIT: AnvilResult = 14;
133pub type AnvilResult = core::ffi::c_int;
134pub const ANVIL_LOG_DEBUG: AnvilLogLevel = 0;
135pub const ANVIL_LOG_INFO: AnvilLogLevel = 1;
136pub const ANVIL_LOG_WARNING: AnvilLogLevel = 2;
137pub const ANVIL_LOG_ERROR: AnvilLogLevel = 3;
138pub type AnvilLogLevel = core::ffi::c_int;
139#[repr(C)]
140#[derive(Debug, Copy, Clone)]
141pub struct AnvilGameInfo {
142    pub size: u32,
143    pub build_id: *const core::ffi::c_char,
144    pub image_base: usize,
145    pub image_size: u32,
146    pub sha256: *const core::ffi::c_char,
147}
148#[allow(clippy::unnecessary_operation, clippy::identity_op)]
149const _: () = {
150    ["Size of AnvilGameInfo"][::core::mem::size_of::<AnvilGameInfo>() - 40usize];
151    ["Alignment of AnvilGameInfo"][::core::mem::align_of::<AnvilGameInfo>() - 8usize];
152    [
153        "Offset of field: AnvilGameInfo::size",
154    ][::core::mem::offset_of!(AnvilGameInfo, size) - 0usize];
155    [
156        "Offset of field: AnvilGameInfo::build_id",
157    ][::core::mem::offset_of!(AnvilGameInfo, build_id) - 8usize];
158    [
159        "Offset of field: AnvilGameInfo::image_base",
160    ][::core::mem::offset_of!(AnvilGameInfo, image_base) - 16usize];
161    [
162        "Offset of field: AnvilGameInfo::image_size",
163    ][::core::mem::offset_of!(AnvilGameInfo, image_size) - 24usize];
164    [
165        "Offset of field: AnvilGameInfo::sha256",
166    ][::core::mem::offset_of!(AnvilGameInfo, sha256) - 32usize];
167};
168#[repr(C)]
169#[derive(Copy, Clone)]
170pub union AnvilXmm {
171    pub u8_: [u8; 16usize],
172    pub u16_: [u16; 8usize],
173    pub u32_: [u32; 4usize],
174    pub u64_: [u64; 2usize],
175    pub f32_: [f32; 4usize],
176    pub f64_: [f64; 2usize],
177}
178#[allow(clippy::unnecessary_operation, clippy::identity_op)]
179const _: () = {
180    ["Size of AnvilXmm"][::core::mem::size_of::<AnvilXmm>() - 16usize];
181    ["Alignment of AnvilXmm"][::core::mem::align_of::<AnvilXmm>() - 8usize];
182    ["Offset of field: AnvilXmm::u8_"][::core::mem::offset_of!(AnvilXmm, u8_) - 0usize];
183    [
184        "Offset of field: AnvilXmm::u16_",
185    ][::core::mem::offset_of!(AnvilXmm, u16_) - 0usize];
186    [
187        "Offset of field: AnvilXmm::u32_",
188    ][::core::mem::offset_of!(AnvilXmm, u32_) - 0usize];
189    [
190        "Offset of field: AnvilXmm::u64_",
191    ][::core::mem::offset_of!(AnvilXmm, u64_) - 0usize];
192    [
193        "Offset of field: AnvilXmm::f32_",
194    ][::core::mem::offset_of!(AnvilXmm, f32_) - 0usize];
195    [
196        "Offset of field: AnvilXmm::f64_",
197    ][::core::mem::offset_of!(AnvilXmm, f64_) - 0usize];
198};
199#[repr(C)]
200#[derive(Copy, Clone)]
201pub struct AnvilCpuContext {
202    pub xmm: [AnvilXmm; 16usize],
203    pub rflags: usize,
204    pub r15: usize,
205    pub r14: usize,
206    pub r13: usize,
207    pub r12: usize,
208    pub r11: usize,
209    pub r10: usize,
210    pub r9: usize,
211    pub r8: usize,
212    pub rdi: usize,
213    pub rsi: usize,
214    pub rdx: usize,
215    pub rcx: usize,
216    pub rbx: usize,
217    pub rax: usize,
218    pub rbp: usize,
219    pub rsp: usize,
220    pub reserved: usize,
221    pub rip: usize,
222}
223#[allow(clippy::unnecessary_operation, clippy::identity_op)]
224const _: () = {
225    ["Size of AnvilCpuContext"][::core::mem::size_of::<AnvilCpuContext>() - 408usize];
226    [
227        "Alignment of AnvilCpuContext",
228    ][::core::mem::align_of::<AnvilCpuContext>() - 8usize];
229    [
230        "Offset of field: AnvilCpuContext::xmm",
231    ][::core::mem::offset_of!(AnvilCpuContext, xmm) - 0usize];
232    [
233        "Offset of field: AnvilCpuContext::rflags",
234    ][::core::mem::offset_of!(AnvilCpuContext, rflags) - 256usize];
235    [
236        "Offset of field: AnvilCpuContext::r15",
237    ][::core::mem::offset_of!(AnvilCpuContext, r15) - 264usize];
238    [
239        "Offset of field: AnvilCpuContext::r14",
240    ][::core::mem::offset_of!(AnvilCpuContext, r14) - 272usize];
241    [
242        "Offset of field: AnvilCpuContext::r13",
243    ][::core::mem::offset_of!(AnvilCpuContext, r13) - 280usize];
244    [
245        "Offset of field: AnvilCpuContext::r12",
246    ][::core::mem::offset_of!(AnvilCpuContext, r12) - 288usize];
247    [
248        "Offset of field: AnvilCpuContext::r11",
249    ][::core::mem::offset_of!(AnvilCpuContext, r11) - 296usize];
250    [
251        "Offset of field: AnvilCpuContext::r10",
252    ][::core::mem::offset_of!(AnvilCpuContext, r10) - 304usize];
253    [
254        "Offset of field: AnvilCpuContext::r9",
255    ][::core::mem::offset_of!(AnvilCpuContext, r9) - 312usize];
256    [
257        "Offset of field: AnvilCpuContext::r8",
258    ][::core::mem::offset_of!(AnvilCpuContext, r8) - 320usize];
259    [
260        "Offset of field: AnvilCpuContext::rdi",
261    ][::core::mem::offset_of!(AnvilCpuContext, rdi) - 328usize];
262    [
263        "Offset of field: AnvilCpuContext::rsi",
264    ][::core::mem::offset_of!(AnvilCpuContext, rsi) - 336usize];
265    [
266        "Offset of field: AnvilCpuContext::rdx",
267    ][::core::mem::offset_of!(AnvilCpuContext, rdx) - 344usize];
268    [
269        "Offset of field: AnvilCpuContext::rcx",
270    ][::core::mem::offset_of!(AnvilCpuContext, rcx) - 352usize];
271    [
272        "Offset of field: AnvilCpuContext::rbx",
273    ][::core::mem::offset_of!(AnvilCpuContext, rbx) - 360usize];
274    [
275        "Offset of field: AnvilCpuContext::rax",
276    ][::core::mem::offset_of!(AnvilCpuContext, rax) - 368usize];
277    [
278        "Offset of field: AnvilCpuContext::rbp",
279    ][::core::mem::offset_of!(AnvilCpuContext, rbp) - 376usize];
280    [
281        "Offset of field: AnvilCpuContext::rsp",
282    ][::core::mem::offset_of!(AnvilCpuContext, rsp) - 384usize];
283    [
284        "Offset of field: AnvilCpuContext::reserved",
285    ][::core::mem::offset_of!(AnvilCpuContext, reserved) - 392usize];
286    [
287        "Offset of field: AnvilCpuContext::rip",
288    ][::core::mem::offset_of!(AnvilCpuContext, rip) - 400usize];
289};
290pub type AnvilCpuCallback = ::core::option::Option<
291    unsafe extern "C" fn(cpu: *mut AnvilCpuContext, user: *mut core::ffi::c_void),
292>;
293pub type AnvilEventCallback = ::core::option::Option<
294    unsafe extern "C" fn(
295        event: *const core::ffi::c_char,
296        payload: *const core::ffi::c_void,
297        context: *mut core::ffi::c_void,
298    ),
299>;
300pub type AnvilSettingCallback = ::core::option::Option<
301    unsafe extern "C" fn(setting: AnvilSetting, context: *mut core::ffi::c_void),
302>;
303#[repr(C)]
304#[derive(Debug, Copy, Clone)]
305pub struct AnvilHost {
306    pub size: u32,
307    pub api_version: u32,
308    pub anvil_version: *const core::ffi::c_char,
309    pub game: *const AnvilGameInfo,
310    pub log: ::core::option::Option<
311        unsafe extern "C" fn(
312            self_: *mut AnvilPlugin,
313            level: AnvilLogLevel,
314            message: *const core::ffi::c_char,
315        ),
316    >,
317    pub plugin_dir: ::core::option::Option<
318        unsafe extern "C" fn(self_: *mut AnvilPlugin) -> *const wchar_t,
319    >,
320    pub data_dir: ::core::option::Option<
321        unsafe extern "C" fn(self_: *mut AnvilPlugin) -> *const wchar_t,
322    >,
323    pub hook_function: ::core::option::Option<
324        unsafe extern "C" fn(
325            self_: *mut AnvilPlugin,
326            fn_: AnvilSymbol,
327            detour: *mut core::ffi::c_void,
328            next: *mut *mut core::ffi::c_void,
329            out: *mut *mut AnvilChange,
330        ) -> AnvilResult,
331    >,
332    pub mid_hook: ::core::option::Option<
333        unsafe extern "C" fn(
334            self_: *mut AnvilPlugin,
335            site: AnvilSymbol,
336            callback: AnvilCpuCallback,
337            user: *mut core::ffi::c_void,
338            out: *mut *mut AnvilChange,
339        ) -> AnvilResult,
340    >,
341    pub replace_block: ::core::option::Option<
342        unsafe extern "C" fn(
343            self_: *mut AnvilPlugin,
344            block: AnvilSymbol,
345            callback: AnvilCpuCallback,
346            user: *mut core::ffi::c_void,
347            out: *mut *mut AnvilChange,
348        ) -> AnvilResult,
349    >,
350    pub redirect_call: ::core::option::Option<
351        unsafe extern "C" fn(
352            self_: *mut AnvilPlugin,
353            call_site: AnvilSymbol,
354            target: *mut core::ffi::c_void,
355            next: *mut *mut core::ffi::c_void,
356            out: *mut *mut AnvilChange,
357        ) -> AnvilResult,
358    >,
359    pub patch_bytes: ::core::option::Option<
360        unsafe extern "C" fn(
361            self_: *mut AnvilPlugin,
362            site: AnvilSymbol,
363            bytes: *const core::ffi::c_void,
364            size: usize,
365            out: *mut *mut AnvilChange,
366        ) -> AnvilResult,
367    >,
368    pub swap_pointer: ::core::option::Option<
369        unsafe extern "C" fn(
370            self_: *mut AnvilPlugin,
371            slot: AnvilSymbol,
372            value: *mut core::ffi::c_void,
373            previous: *mut *mut core::ffi::c_void,
374            out: *mut *mut AnvilChange,
375        ) -> AnvilResult,
376    >,
377    pub replace_import: ::core::option::Option<
378        unsafe extern "C" fn(
379            self_: *mut AnvilPlugin,
380            module: *const core::ffi::c_char,
381            function: *const core::ffi::c_char,
382            replacement: *mut core::ffi::c_void,
383            next: *mut *mut core::ffi::c_void,
384            out: *mut *mut AnvilChange,
385        ) -> AnvilResult,
386    >,
387    pub hook_function_at: ::core::option::Option<
388        unsafe extern "C" fn(
389            self_: *mut AnvilPlugin,
390            address: *mut core::ffi::c_void,
391            expected_prologue: *const core::ffi::c_void,
392            prologue_size: usize,
393            detour: *mut core::ffi::c_void,
394            next: *mut *mut core::ffi::c_void,
395            out: *mut *mut AnvilChange,
396        ) -> AnvilResult,
397    >,
398    pub mid_hook_at: ::core::option::Option<
399        unsafe extern "C" fn(
400            self_: *mut AnvilPlugin,
401            address: *mut core::ffi::c_void,
402            expected: *const core::ffi::c_void,
403            expected_size: usize,
404            callback: AnvilCpuCallback,
405            user: *mut core::ffi::c_void,
406            out: *mut *mut AnvilChange,
407        ) -> AnvilResult,
408    >,
409    pub remove: ::core::option::Option<
410        unsafe extern "C" fn(
411            self_: *mut AnvilPlugin,
412            change: *mut AnvilChange,
413        ) -> AnvilResult,
414    >,
415    pub begin_group: ::core::option::Option<
416        unsafe extern "C" fn(self_: *mut AnvilPlugin) -> AnvilResult,
417    >,
418    pub commit_group: ::core::option::Option<
419        unsafe extern "C" fn(self_: *mut AnvilPlugin) -> AnvilResult,
420    >,
421    pub abort_group: ::core::option::Option<
422        unsafe extern "C" fn(self_: *mut AnvilPlugin),
423    >,
424    pub address_of: ::core::option::Option<
425        unsafe extern "C" fn(
426            self_: *mut AnvilPlugin,
427            symbol: AnvilSymbol,
428        ) -> *mut core::ffi::c_void,
429    >,
430    pub symbol_value: ::core::option::Option<
431        unsafe extern "C" fn(
432            self_: *mut AnvilPlugin,
433            symbol: AnvilSymbol,
434            name: *const core::ffi::c_char,
435            out: *mut u64,
436        ) -> AnvilResult,
437    >,
438    pub setting_bool: ::core::option::Option<
439        unsafe extern "C" fn(
440            self_: *mut AnvilPlugin,
441            setting: AnvilSetting,
442        ) -> core::ffi::c_int,
443    >,
444    pub setting_int: ::core::option::Option<
445        unsafe extern "C" fn(self_: *mut AnvilPlugin, setting: AnvilSetting) -> i64,
446    >,
447    pub setting_float: ::core::option::Option<
448        unsafe extern "C" fn(self_: *mut AnvilPlugin, setting: AnvilSetting) -> f64,
449    >,
450    pub setting_string: ::core::option::Option<
451        unsafe extern "C" fn(
452            self_: *mut AnvilPlugin,
453            setting: AnvilSetting,
454        ) -> *const core::ffi::c_char,
455    >,
456    pub subscribe_setting: ::core::option::Option<
457        unsafe extern "C" fn(
458            self_: *mut AnvilPlugin,
459            setting: AnvilSetting,
460            callback: AnvilSettingCallback,
461            context: *mut core::ffi::c_void,
462        ) -> AnvilResult,
463    >,
464    pub register_service: ::core::option::Option<
465        unsafe extern "C" fn(
466            self_: *mut AnvilPlugin,
467            name: *const core::ffi::c_char,
468            version: u32,
469            service: *const core::ffi::c_void,
470        ) -> AnvilResult,
471    >,
472    pub get_service: ::core::option::Option<
473        unsafe extern "C" fn(
474            self_: *mut AnvilPlugin,
475            name: *const core::ffi::c_char,
476            version: u32,
477        ) -> *const core::ffi::c_void,
478    >,
479    pub subscribe: ::core::option::Option<
480        unsafe extern "C" fn(
481            self_: *mut AnvilPlugin,
482            event: *const core::ffi::c_char,
483            callback: AnvilEventCallback,
484            context: *mut core::ffi::c_void,
485        ) -> AnvilResult,
486    >,
487    pub publish: ::core::option::Option<
488        unsafe extern "C" fn(
489            self_: *mut AnvilPlugin,
490            event: *const core::ffi::c_char,
491            payload: *const core::ffi::c_void,
492        ) -> AnvilResult,
493    >,
494}
495#[allow(clippy::unnecessary_operation, clippy::identity_op)]
496const _: () = {
497    ["Size of AnvilHost"][::core::mem::size_of::<AnvilHost>() - 240usize];
498    ["Alignment of AnvilHost"][::core::mem::align_of::<AnvilHost>() - 8usize];
499    [
500        "Offset of field: AnvilHost::size",
501    ][::core::mem::offset_of!(AnvilHost, size) - 0usize];
502    [
503        "Offset of field: AnvilHost::api_version",
504    ][::core::mem::offset_of!(AnvilHost, api_version) - 4usize];
505    [
506        "Offset of field: AnvilHost::anvil_version",
507    ][::core::mem::offset_of!(AnvilHost, anvil_version) - 8usize];
508    [
509        "Offset of field: AnvilHost::game",
510    ][::core::mem::offset_of!(AnvilHost, game) - 16usize];
511    [
512        "Offset of field: AnvilHost::log",
513    ][::core::mem::offset_of!(AnvilHost, log) - 24usize];
514    [
515        "Offset of field: AnvilHost::plugin_dir",
516    ][::core::mem::offset_of!(AnvilHost, plugin_dir) - 32usize];
517    [
518        "Offset of field: AnvilHost::data_dir",
519    ][::core::mem::offset_of!(AnvilHost, data_dir) - 40usize];
520    [
521        "Offset of field: AnvilHost::hook_function",
522    ][::core::mem::offset_of!(AnvilHost, hook_function) - 48usize];
523    [
524        "Offset of field: AnvilHost::mid_hook",
525    ][::core::mem::offset_of!(AnvilHost, mid_hook) - 56usize];
526    [
527        "Offset of field: AnvilHost::replace_block",
528    ][::core::mem::offset_of!(AnvilHost, replace_block) - 64usize];
529    [
530        "Offset of field: AnvilHost::redirect_call",
531    ][::core::mem::offset_of!(AnvilHost, redirect_call) - 72usize];
532    [
533        "Offset of field: AnvilHost::patch_bytes",
534    ][::core::mem::offset_of!(AnvilHost, patch_bytes) - 80usize];
535    [
536        "Offset of field: AnvilHost::swap_pointer",
537    ][::core::mem::offset_of!(AnvilHost, swap_pointer) - 88usize];
538    [
539        "Offset of field: AnvilHost::replace_import",
540    ][::core::mem::offset_of!(AnvilHost, replace_import) - 96usize];
541    [
542        "Offset of field: AnvilHost::hook_function_at",
543    ][::core::mem::offset_of!(AnvilHost, hook_function_at) - 104usize];
544    [
545        "Offset of field: AnvilHost::mid_hook_at",
546    ][::core::mem::offset_of!(AnvilHost, mid_hook_at) - 112usize];
547    [
548        "Offset of field: AnvilHost::remove",
549    ][::core::mem::offset_of!(AnvilHost, remove) - 120usize];
550    [
551        "Offset of field: AnvilHost::begin_group",
552    ][::core::mem::offset_of!(AnvilHost, begin_group) - 128usize];
553    [
554        "Offset of field: AnvilHost::commit_group",
555    ][::core::mem::offset_of!(AnvilHost, commit_group) - 136usize];
556    [
557        "Offset of field: AnvilHost::abort_group",
558    ][::core::mem::offset_of!(AnvilHost, abort_group) - 144usize];
559    [
560        "Offset of field: AnvilHost::address_of",
561    ][::core::mem::offset_of!(AnvilHost, address_of) - 152usize];
562    [
563        "Offset of field: AnvilHost::symbol_value",
564    ][::core::mem::offset_of!(AnvilHost, symbol_value) - 160usize];
565    [
566        "Offset of field: AnvilHost::setting_bool",
567    ][::core::mem::offset_of!(AnvilHost, setting_bool) - 168usize];
568    [
569        "Offset of field: AnvilHost::setting_int",
570    ][::core::mem::offset_of!(AnvilHost, setting_int) - 176usize];
571    [
572        "Offset of field: AnvilHost::setting_float",
573    ][::core::mem::offset_of!(AnvilHost, setting_float) - 184usize];
574    [
575        "Offset of field: AnvilHost::setting_string",
576    ][::core::mem::offset_of!(AnvilHost, setting_string) - 192usize];
577    [
578        "Offset of field: AnvilHost::subscribe_setting",
579    ][::core::mem::offset_of!(AnvilHost, subscribe_setting) - 200usize];
580    [
581        "Offset of field: AnvilHost::register_service",
582    ][::core::mem::offset_of!(AnvilHost, register_service) - 208usize];
583    [
584        "Offset of field: AnvilHost::get_service",
585    ][::core::mem::offset_of!(AnvilHost, get_service) - 216usize];
586    [
587        "Offset of field: AnvilHost::subscribe",
588    ][::core::mem::offset_of!(AnvilHost, subscribe) - 224usize];
589    [
590        "Offset of field: AnvilHost::publish",
591    ][::core::mem::offset_of!(AnvilHost, publish) - 232usize];
592};
593#[repr(C)]
594#[derive(Debug, Copy, Clone)]
595pub struct AnvilGameFrame {
596    pub size: u32,
597    pub reserved: u32,
598    pub number: u64,
599}
600#[allow(clippy::unnecessary_operation, clippy::identity_op)]
601const _: () = {
602    ["Size of AnvilGameFrame"][::core::mem::size_of::<AnvilGameFrame>() - 16usize];
603    ["Alignment of AnvilGameFrame"][::core::mem::align_of::<AnvilGameFrame>() - 8usize];
604    [
605        "Offset of field: AnvilGameFrame::size",
606    ][::core::mem::offset_of!(AnvilGameFrame, size) - 0usize];
607    [
608        "Offset of field: AnvilGameFrame::reserved",
609    ][::core::mem::offset_of!(AnvilGameFrame, reserved) - 4usize];
610    [
611        "Offset of field: AnvilGameFrame::number",
612    ][::core::mem::offset_of!(AnvilGameFrame, number) - 8usize];
613};
614pub const ANVIL_GAME_SESSION_STARTED: AnvilGameSessionChange = 1;
615pub const ANVIL_GAME_SESSION_ENDED: AnvilGameSessionChange = 2;
616pub type AnvilGameSessionChange = core::ffi::c_int;
617#[repr(C)]
618#[derive(Debug, Copy, Clone)]
619pub struct AnvilGameSession {
620    pub size: u32,
621    pub change: u32,
622    pub ironman: u32,
623    pub multiplayer: u32,
624    pub number: u64,
625}
626#[allow(clippy::unnecessary_operation, clippy::identity_op)]
627const _: () = {
628    ["Size of AnvilGameSession"][::core::mem::size_of::<AnvilGameSession>() - 24usize];
629    [
630        "Alignment of AnvilGameSession",
631    ][::core::mem::align_of::<AnvilGameSession>() - 8usize];
632    [
633        "Offset of field: AnvilGameSession::size",
634    ][::core::mem::offset_of!(AnvilGameSession, size) - 0usize];
635    [
636        "Offset of field: AnvilGameSession::change",
637    ][::core::mem::offset_of!(AnvilGameSession, change) - 4usize];
638    [
639        "Offset of field: AnvilGameSession::ironman",
640    ][::core::mem::offset_of!(AnvilGameSession, ironman) - 8usize];
641    [
642        "Offset of field: AnvilGameSession::multiplayer",
643    ][::core::mem::offset_of!(AnvilGameSession, multiplayer) - 12usize];
644    [
645        "Offset of field: AnvilGameSession::number",
646    ][::core::mem::offset_of!(AnvilGameSession, number) - 16usize];
647};
648#[repr(C)]
649#[derive(Debug, Copy, Clone)]
650pub struct AnvilGameDate {
651    pub size: u32,
652    pub year: i32,
653    pub month: u32,
654    pub day: u32,
655    pub session: u64,
656}
657#[allow(clippy::unnecessary_operation, clippy::identity_op)]
658const _: () = {
659    ["Size of AnvilGameDate"][::core::mem::size_of::<AnvilGameDate>() - 24usize];
660    ["Alignment of AnvilGameDate"][::core::mem::align_of::<AnvilGameDate>() - 8usize];
661    [
662        "Offset of field: AnvilGameDate::size",
663    ][::core::mem::offset_of!(AnvilGameDate, size) - 0usize];
664    [
665        "Offset of field: AnvilGameDate::year",
666    ][::core::mem::offset_of!(AnvilGameDate, year) - 4usize];
667    [
668        "Offset of field: AnvilGameDate::month",
669    ][::core::mem::offset_of!(AnvilGameDate, month) - 8usize];
670    [
671        "Offset of field: AnvilGameDate::day",
672    ][::core::mem::offset_of!(AnvilGameDate, day) - 12usize];
673    [
674        "Offset of field: AnvilGameDate::session",
675    ][::core::mem::offset_of!(AnvilGameDate, session) - 16usize];
676};
677pub type AnvilGameWork = ::core::option::Option<
678    unsafe extern "C" fn(context: *mut core::ffi::c_void),
679>;
680#[repr(C)]
681#[derive(Debug, Copy, Clone)]
682pub struct AnvilGameService {
683    pub size: u32,
684    pub ready: ::core::option::Option<unsafe extern "C" fn() -> core::ffi::c_int>,
685    pub main_thread_id: ::core::option::Option<unsafe extern "C" fn() -> u32>,
686    pub frame_number: ::core::option::Option<unsafe extern "C" fn() -> u64>,
687    pub run_on_main_thread: ::core::option::Option<
688        unsafe extern "C" fn(
689            work: AnvilGameWork,
690            context: *mut core::ffi::c_void,
691        ) -> AnvilResult,
692    >,
693    pub session: ::core::option::Option<
694        unsafe extern "C" fn(out: *mut AnvilGameSession) -> core::ffi::c_int,
695    >,
696    pub date: ::core::option::Option<
697        unsafe extern "C" fn(out: *mut AnvilGameDate) -> core::ffi::c_int,
698    >,
699    pub main_menu: ::core::option::Option<unsafe extern "C" fn() -> core::ffi::c_int>,
700    pub out_of_sync: ::core::option::Option<unsafe extern "C" fn() -> u32>,
701    pub keyboard: ::core::option::Option<
702        unsafe extern "C" fn(flags: *mut u32) -> core::ffi::c_int,
703    >,
704}
705#[allow(clippy::unnecessary_operation, clippy::identity_op)]
706const _: () = {
707    ["Size of AnvilGameService"][::core::mem::size_of::<AnvilGameService>() - 80usize];
708    [
709        "Alignment of AnvilGameService",
710    ][::core::mem::align_of::<AnvilGameService>() - 8usize];
711    [
712        "Offset of field: AnvilGameService::size",
713    ][::core::mem::offset_of!(AnvilGameService, size) - 0usize];
714    [
715        "Offset of field: AnvilGameService::ready",
716    ][::core::mem::offset_of!(AnvilGameService, ready) - 8usize];
717    [
718        "Offset of field: AnvilGameService::main_thread_id",
719    ][::core::mem::offset_of!(AnvilGameService, main_thread_id) - 16usize];
720    [
721        "Offset of field: AnvilGameService::frame_number",
722    ][::core::mem::offset_of!(AnvilGameService, frame_number) - 24usize];
723    [
724        "Offset of field: AnvilGameService::run_on_main_thread",
725    ][::core::mem::offset_of!(AnvilGameService, run_on_main_thread) - 32usize];
726    [
727        "Offset of field: AnvilGameService::session",
728    ][::core::mem::offset_of!(AnvilGameService, session) - 40usize];
729    [
730        "Offset of field: AnvilGameService::date",
731    ][::core::mem::offset_of!(AnvilGameService, date) - 48usize];
732    [
733        "Offset of field: AnvilGameService::main_menu",
734    ][::core::mem::offset_of!(AnvilGameService, main_menu) - 56usize];
735    [
736        "Offset of field: AnvilGameService::out_of_sync",
737    ][::core::mem::offset_of!(AnvilGameService, out_of_sync) - 64usize];
738    [
739        "Offset of field: AnvilGameService::keyboard",
740    ][::core::mem::offset_of!(AnvilGameService, keyboard) - 72usize];
741};
742#[repr(C)]
743#[derive(Debug, Copy, Clone)]
744pub struct AnvilGameOosChange {
745    pub size: u32,
746    pub flags: u32,
747    pub previous: u32,
748    pub reserved: u32,
749    pub session: u64,
750}
751#[allow(clippy::unnecessary_operation, clippy::identity_op)]
752const _: () = {
753    [
754        "Size of AnvilGameOosChange",
755    ][::core::mem::size_of::<AnvilGameOosChange>() - 24usize];
756    [
757        "Alignment of AnvilGameOosChange",
758    ][::core::mem::align_of::<AnvilGameOosChange>() - 8usize];
759    [
760        "Offset of field: AnvilGameOosChange::size",
761    ][::core::mem::offset_of!(AnvilGameOosChange, size) - 0usize];
762    [
763        "Offset of field: AnvilGameOosChange::flags",
764    ][::core::mem::offset_of!(AnvilGameOosChange, flags) - 4usize];
765    [
766        "Offset of field: AnvilGameOosChange::previous",
767    ][::core::mem::offset_of!(AnvilGameOosChange, previous) - 8usize];
768    [
769        "Offset of field: AnvilGameOosChange::reserved",
770    ][::core::mem::offset_of!(AnvilGameOosChange, reserved) - 12usize];
771    [
772        "Offset of field: AnvilGameOosChange::session",
773    ][::core::mem::offset_of!(AnvilGameOosChange, session) - 16usize];
774};
775#[repr(C)]
776#[derive(Debug, Copy, Clone)]
777pub struct AnvilGameTag {
778    pub text: [core::ffi::c_char; 4usize],
779}
780#[allow(clippy::unnecessary_operation, clippy::identity_op)]
781const _: () = {
782    ["Size of AnvilGameTag"][::core::mem::size_of::<AnvilGameTag>() - 4usize];
783    ["Alignment of AnvilGameTag"][::core::mem::align_of::<AnvilGameTag>() - 1usize];
784    [
785        "Offset of field: AnvilGameTag::text",
786    ][::core::mem::offset_of!(AnvilGameTag, text) - 0usize];
787};
788#[repr(C)]
789#[derive(Debug, Copy, Clone)]
790pub struct AnvilGameDateChange {
791    pub size: u32,
792    pub days: u32,
793    pub date: AnvilGameDate,
794    pub previous: AnvilGameDate,
795}
796#[allow(clippy::unnecessary_operation, clippy::identity_op)]
797const _: () = {
798    [
799        "Size of AnvilGameDateChange",
800    ][::core::mem::size_of::<AnvilGameDateChange>() - 56usize];
801    [
802        "Alignment of AnvilGameDateChange",
803    ][::core::mem::align_of::<AnvilGameDateChange>() - 8usize];
804    [
805        "Offset of field: AnvilGameDateChange::size",
806    ][::core::mem::offset_of!(AnvilGameDateChange, size) - 0usize];
807    [
808        "Offset of field: AnvilGameDateChange::days",
809    ][::core::mem::offset_of!(AnvilGameDateChange, days) - 4usize];
810    [
811        "Offset of field: AnvilGameDateChange::date",
812    ][::core::mem::offset_of!(AnvilGameDateChange, date) - 8usize];
813    [
814        "Offset of field: AnvilGameDateChange::previous",
815    ][::core::mem::offset_of!(AnvilGameDateChange, previous) - 32usize];
816};
817#[repr(C)]
818#[derive(Debug, Copy, Clone)]
819pub struct AnvilGamePlayerChange {
820    pub size: u32,
821    pub tag: AnvilGameTag,
822    pub previous: AnvilGameTag,
823    pub session: u64,
824}
825#[allow(clippy::unnecessary_operation, clippy::identity_op)]
826const _: () = {
827    [
828        "Size of AnvilGamePlayerChange",
829    ][::core::mem::size_of::<AnvilGamePlayerChange>() - 24usize];
830    [
831        "Alignment of AnvilGamePlayerChange",
832    ][::core::mem::align_of::<AnvilGamePlayerChange>() - 8usize];
833    [
834        "Offset of field: AnvilGamePlayerChange::size",
835    ][::core::mem::offset_of!(AnvilGamePlayerChange, size) - 0usize];
836    [
837        "Offset of field: AnvilGamePlayerChange::tag",
838    ][::core::mem::offset_of!(AnvilGamePlayerChange, tag) - 4usize];
839    [
840        "Offset of field: AnvilGamePlayerChange::previous",
841    ][::core::mem::offset_of!(AnvilGamePlayerChange, previous) - 8usize];
842    [
843        "Offset of field: AnvilGamePlayerChange::session",
844    ][::core::mem::offset_of!(AnvilGamePlayerChange, session) - 16usize];
845};
846pub const ANVIL_GAME_WAR_STARTED: AnvilGameWarChangeKind = 1;
847pub const ANVIL_GAME_WAR_ENDED: AnvilGameWarChangeKind = 2;
848pub type AnvilGameWarChangeKind = core::ffi::c_int;
849#[repr(C)]
850#[derive(Debug, Copy, Clone)]
851pub struct AnvilGameWarChange {
852    pub size: u32,
853    pub change: u32,
854    pub war: u64,
855    pub attacker: AnvilGameTag,
856    pub defender: AnvilGameTag,
857    pub name: *const core::ffi::c_char,
858    pub session: u64,
859}
860#[allow(clippy::unnecessary_operation, clippy::identity_op)]
861const _: () = {
862    [
863        "Size of AnvilGameWarChange",
864    ][::core::mem::size_of::<AnvilGameWarChange>() - 40usize];
865    [
866        "Alignment of AnvilGameWarChange",
867    ][::core::mem::align_of::<AnvilGameWarChange>() - 8usize];
868    [
869        "Offset of field: AnvilGameWarChange::size",
870    ][::core::mem::offset_of!(AnvilGameWarChange, size) - 0usize];
871    [
872        "Offset of field: AnvilGameWarChange::change",
873    ][::core::mem::offset_of!(AnvilGameWarChange, change) - 4usize];
874    [
875        "Offset of field: AnvilGameWarChange::war",
876    ][::core::mem::offset_of!(AnvilGameWarChange, war) - 8usize];
877    [
878        "Offset of field: AnvilGameWarChange::attacker",
879    ][::core::mem::offset_of!(AnvilGameWarChange, attacker) - 16usize];
880    [
881        "Offset of field: AnvilGameWarChange::defender",
882    ][::core::mem::offset_of!(AnvilGameWarChange, defender) - 20usize];
883    [
884        "Offset of field: AnvilGameWarChange::name",
885    ][::core::mem::offset_of!(AnvilGameWarChange, name) - 24usize];
886    [
887        "Offset of field: AnvilGameWarChange::session",
888    ][::core::mem::offset_of!(AnvilGameWarChange, session) - 32usize];
889};
890#[repr(C)]
891#[derive(Debug, Copy, Clone)]
892pub struct AnvilGameProvince {
893    pub size: u32,
894    pub id: i32,
895    pub owner: AnvilGameTag,
896    pub controller: AnvilGameTag,
897    pub base_tax: i32,
898    pub base_production: i32,
899    pub base_manpower: i32,
900    pub flags: u32,
901}
902#[allow(clippy::unnecessary_operation, clippy::identity_op)]
903const _: () = {
904    ["Size of AnvilGameProvince"][::core::mem::size_of::<AnvilGameProvince>() - 32usize];
905    [
906        "Alignment of AnvilGameProvince",
907    ][::core::mem::align_of::<AnvilGameProvince>() - 4usize];
908    [
909        "Offset of field: AnvilGameProvince::size",
910    ][::core::mem::offset_of!(AnvilGameProvince, size) - 0usize];
911    [
912        "Offset of field: AnvilGameProvince::id",
913    ][::core::mem::offset_of!(AnvilGameProvince, id) - 4usize];
914    [
915        "Offset of field: AnvilGameProvince::owner",
916    ][::core::mem::offset_of!(AnvilGameProvince, owner) - 8usize];
917    [
918        "Offset of field: AnvilGameProvince::controller",
919    ][::core::mem::offset_of!(AnvilGameProvince, controller) - 12usize];
920    [
921        "Offset of field: AnvilGameProvince::base_tax",
922    ][::core::mem::offset_of!(AnvilGameProvince, base_tax) - 16usize];
923    [
924        "Offset of field: AnvilGameProvince::base_production",
925    ][::core::mem::offset_of!(AnvilGameProvince, base_production) - 20usize];
926    [
927        "Offset of field: AnvilGameProvince::base_manpower",
928    ][::core::mem::offset_of!(AnvilGameProvince, base_manpower) - 24usize];
929    [
930        "Offset of field: AnvilGameProvince::flags",
931    ][::core::mem::offset_of!(AnvilGameProvince, flags) - 28usize];
932};
933#[repr(C)]
934#[derive(Debug, Copy, Clone)]
935pub struct AnvilGameCountry {
936    pub size: u32,
937    pub tag: AnvilGameTag,
938    pub capital: i32,
939    pub province_count: i32,
940    pub flags: u32,
941    pub values: u32,
942    pub treasury: i32,
943    pub stability: i32,
944    pub prestige: i32,
945    pub manpower: i32,
946    pub monthly_income: i32,
947}
948#[allow(clippy::unnecessary_operation, clippy::identity_op)]
949const _: () = {
950    ["Size of AnvilGameCountry"][::core::mem::size_of::<AnvilGameCountry>() - 44usize];
951    [
952        "Alignment of AnvilGameCountry",
953    ][::core::mem::align_of::<AnvilGameCountry>() - 4usize];
954    [
955        "Offset of field: AnvilGameCountry::size",
956    ][::core::mem::offset_of!(AnvilGameCountry, size) - 0usize];
957    [
958        "Offset of field: AnvilGameCountry::tag",
959    ][::core::mem::offset_of!(AnvilGameCountry, tag) - 4usize];
960    [
961        "Offset of field: AnvilGameCountry::capital",
962    ][::core::mem::offset_of!(AnvilGameCountry, capital) - 8usize];
963    [
964        "Offset of field: AnvilGameCountry::province_count",
965    ][::core::mem::offset_of!(AnvilGameCountry, province_count) - 12usize];
966    [
967        "Offset of field: AnvilGameCountry::flags",
968    ][::core::mem::offset_of!(AnvilGameCountry, flags) - 16usize];
969    [
970        "Offset of field: AnvilGameCountry::values",
971    ][::core::mem::offset_of!(AnvilGameCountry, values) - 20usize];
972    [
973        "Offset of field: AnvilGameCountry::treasury",
974    ][::core::mem::offset_of!(AnvilGameCountry, treasury) - 24usize];
975    [
976        "Offset of field: AnvilGameCountry::stability",
977    ][::core::mem::offset_of!(AnvilGameCountry, stability) - 28usize];
978    [
979        "Offset of field: AnvilGameCountry::prestige",
980    ][::core::mem::offset_of!(AnvilGameCountry, prestige) - 32usize];
981    [
982        "Offset of field: AnvilGameCountry::manpower",
983    ][::core::mem::offset_of!(AnvilGameCountry, manpower) - 36usize];
984    [
985        "Offset of field: AnvilGameCountry::monthly_income",
986    ][::core::mem::offset_of!(AnvilGameCountry, monthly_income) - 40usize];
987};
988#[repr(C)]
989#[derive(Debug, Copy, Clone)]
990pub struct AnvilGameWar {
991    pub size: u32,
992    pub reserved: u32,
993    pub id: u64,
994    pub attacker: AnvilGameTag,
995    pub defender: AnvilGameTag,
996}
997#[allow(clippy::unnecessary_operation, clippy::identity_op)]
998const _: () = {
999    ["Size of AnvilGameWar"][::core::mem::size_of::<AnvilGameWar>() - 24usize];
1000    ["Alignment of AnvilGameWar"][::core::mem::align_of::<AnvilGameWar>() - 8usize];
1001    [
1002        "Offset of field: AnvilGameWar::size",
1003    ][::core::mem::offset_of!(AnvilGameWar, size) - 0usize];
1004    [
1005        "Offset of field: AnvilGameWar::reserved",
1006    ][::core::mem::offset_of!(AnvilGameWar, reserved) - 4usize];
1007    [
1008        "Offset of field: AnvilGameWar::id",
1009    ][::core::mem::offset_of!(AnvilGameWar, id) - 8usize];
1010    [
1011        "Offset of field: AnvilGameWar::attacker",
1012    ][::core::mem::offset_of!(AnvilGameWar, attacker) - 16usize];
1013    [
1014        "Offset of field: AnvilGameWar::defender",
1015    ][::core::mem::offset_of!(AnvilGameWar, defender) - 20usize];
1016};
1017#[repr(C)]
1018#[derive(Debug, Copy, Clone)]
1019pub struct AnvilGameUnit {
1020    pub size: u32,
1021    pub kind: u32,
1022    pub id: u64,
1023    pub country: AnvilGameTag,
1024    pub location: i32,
1025    pub mission: i32,
1026    pub subunits: u32,
1027    pub strength: i32,
1028    pub reserved: u32,
1029    pub leader: u64,
1030}
1031#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1032const _: () = {
1033    ["Size of AnvilGameUnit"][::core::mem::size_of::<AnvilGameUnit>() - 48usize];
1034    ["Alignment of AnvilGameUnit"][::core::mem::align_of::<AnvilGameUnit>() - 8usize];
1035    [
1036        "Offset of field: AnvilGameUnit::size",
1037    ][::core::mem::offset_of!(AnvilGameUnit, size) - 0usize];
1038    [
1039        "Offset of field: AnvilGameUnit::kind",
1040    ][::core::mem::offset_of!(AnvilGameUnit, kind) - 4usize];
1041    [
1042        "Offset of field: AnvilGameUnit::id",
1043    ][::core::mem::offset_of!(AnvilGameUnit, id) - 8usize];
1044    [
1045        "Offset of field: AnvilGameUnit::country",
1046    ][::core::mem::offset_of!(AnvilGameUnit, country) - 16usize];
1047    [
1048        "Offset of field: AnvilGameUnit::location",
1049    ][::core::mem::offset_of!(AnvilGameUnit, location) - 20usize];
1050    [
1051        "Offset of field: AnvilGameUnit::mission",
1052    ][::core::mem::offset_of!(AnvilGameUnit, mission) - 24usize];
1053    [
1054        "Offset of field: AnvilGameUnit::subunits",
1055    ][::core::mem::offset_of!(AnvilGameUnit, subunits) - 28usize];
1056    [
1057        "Offset of field: AnvilGameUnit::strength",
1058    ][::core::mem::offset_of!(AnvilGameUnit, strength) - 32usize];
1059    [
1060        "Offset of field: AnvilGameUnit::reserved",
1061    ][::core::mem::offset_of!(AnvilGameUnit, reserved) - 36usize];
1062    [
1063        "Offset of field: AnvilGameUnit::leader",
1064    ][::core::mem::offset_of!(AnvilGameUnit, leader) - 40usize];
1065};
1066#[repr(C)]
1067#[derive(Debug, Copy, Clone)]
1068pub struct AnvilGameUnitRef {
1069    pub id: u64,
1070    pub country: AnvilGameTag,
1071    pub kind: u32,
1072}
1073#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1074const _: () = {
1075    ["Size of AnvilGameUnitRef"][::core::mem::size_of::<AnvilGameUnitRef>() - 16usize];
1076    [
1077        "Alignment of AnvilGameUnitRef",
1078    ][::core::mem::align_of::<AnvilGameUnitRef>() - 8usize];
1079    [
1080        "Offset of field: AnvilGameUnitRef::id",
1081    ][::core::mem::offset_of!(AnvilGameUnitRef, id) - 0usize];
1082    [
1083        "Offset of field: AnvilGameUnitRef::country",
1084    ][::core::mem::offset_of!(AnvilGameUnitRef, country) - 8usize];
1085    [
1086        "Offset of field: AnvilGameUnitRef::kind",
1087    ][::core::mem::offset_of!(AnvilGameUnitRef, kind) - 12usize];
1088};
1089#[repr(C)]
1090#[derive(Debug, Copy, Clone)]
1091pub struct AnvilGameWorldService {
1092    pub size: u32,
1093    pub player: ::core::option::Option<
1094        unsafe extern "C" fn(out: *mut AnvilGameTag) -> AnvilResult,
1095    >,
1096    pub province_limit: ::core::option::Option<unsafe extern "C" fn() -> i32>,
1097    pub province: ::core::option::Option<
1098        unsafe extern "C" fn(id: i32, out: *mut AnvilGameProvince) -> AnvilResult,
1099    >,
1100    pub province_name: ::core::option::Option<
1101        unsafe extern "C" fn(
1102            id: i32,
1103            utf8: *mut core::ffi::c_char,
1104            capacity: u32,
1105            length: *mut u32,
1106        ) -> AnvilResult,
1107    >,
1108    pub province_cores: ::core::option::Option<
1109        unsafe extern "C" fn(
1110            id: i32,
1111            out: *mut AnvilGameTag,
1112            capacity: u32,
1113            count: *mut u32,
1114        ) -> AnvilResult,
1115    >,
1116    pub country: ::core::option::Option<
1117        unsafe extern "C" fn(
1118            tag: *const core::ffi::c_char,
1119            out: *mut AnvilGameCountry,
1120        ) -> AnvilResult,
1121    >,
1122    pub country_provinces: ::core::option::Option<
1123        unsafe extern "C" fn(
1124            tag: *const core::ffi::c_char,
1125            ids: *mut i32,
1126            capacity: u32,
1127            count: *mut u32,
1128        ) -> AnvilResult,
1129    >,
1130    pub war_ids: ::core::option::Option<
1131        unsafe extern "C" fn(
1132            ids: *mut u64,
1133            capacity: u32,
1134            count: *mut u32,
1135        ) -> AnvilResult,
1136    >,
1137    pub war: ::core::option::Option<
1138        unsafe extern "C" fn(id: u64, out: *mut AnvilGameWar) -> AnvilResult,
1139    >,
1140    pub war_name: ::core::option::Option<
1141        unsafe extern "C" fn(
1142            id: u64,
1143            utf8: *mut core::ffi::c_char,
1144            capacity: u32,
1145            length: *mut u32,
1146        ) -> AnvilResult,
1147    >,
1148    pub war_side: ::core::option::Option<
1149        unsafe extern "C" fn(
1150            id: u64,
1151            side: u32,
1152            out: *mut AnvilGameTag,
1153            capacity: u32,
1154            count: *mut u32,
1155        ) -> AnvilResult,
1156    >,
1157    pub modifier_id: ::core::option::Option<
1158        unsafe extern "C" fn(key: *const core::ffi::c_char, id: *mut i32) -> AnvilResult,
1159    >,
1160    pub country_modifier: ::core::option::Option<
1161        unsafe extern "C" fn(
1162            tag: *const core::ffi::c_char,
1163            id: i32,
1164            value: *mut i32,
1165        ) -> AnvilResult,
1166    >,
1167    pub province_modifier: ::core::option::Option<
1168        unsafe extern "C" fn(province: i32, id: i32, value: *mut i32) -> AnvilResult,
1169    >,
1170    pub country_units: ::core::option::Option<
1171        unsafe extern "C" fn(
1172            tag: *const core::ffi::c_char,
1173            ids: *mut u64,
1174            capacity: u32,
1175            count: *mut u32,
1176        ) -> AnvilResult,
1177    >,
1178    pub unit: ::core::option::Option<
1179        unsafe extern "C" fn(
1180            tag: *const core::ffi::c_char,
1181            id: u64,
1182            out: *mut AnvilGameUnit,
1183        ) -> AnvilResult,
1184    >,
1185    pub unit_name: ::core::option::Option<
1186        unsafe extern "C" fn(
1187            tag: *const core::ffi::c_char,
1188            id: u64,
1189            utf8: *mut core::ffi::c_char,
1190            capacity: u32,
1191            length: *mut u32,
1192        ) -> AnvilResult,
1193    >,
1194    pub unit_leader_name: ::core::option::Option<
1195        unsafe extern "C" fn(
1196            tag: *const core::ffi::c_char,
1197            id: u64,
1198            utf8: *mut core::ffi::c_char,
1199            capacity: u32,
1200            length: *mut u32,
1201        ) -> AnvilResult,
1202    >,
1203    pub selected_units: ::core::option::Option<
1204        unsafe extern "C" fn(
1205            out: *mut AnvilGameUnitRef,
1206            capacity: u32,
1207            count: *mut u32,
1208        ) -> AnvilResult,
1209    >,
1210}
1211#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1212const _: () = {
1213    [
1214        "Size of AnvilGameWorldService",
1215    ][::core::mem::size_of::<AnvilGameWorldService>() - 160usize];
1216    [
1217        "Alignment of AnvilGameWorldService",
1218    ][::core::mem::align_of::<AnvilGameWorldService>() - 8usize];
1219    [
1220        "Offset of field: AnvilGameWorldService::size",
1221    ][::core::mem::offset_of!(AnvilGameWorldService, size) - 0usize];
1222    [
1223        "Offset of field: AnvilGameWorldService::player",
1224    ][::core::mem::offset_of!(AnvilGameWorldService, player) - 8usize];
1225    [
1226        "Offset of field: AnvilGameWorldService::province_limit",
1227    ][::core::mem::offset_of!(AnvilGameWorldService, province_limit) - 16usize];
1228    [
1229        "Offset of field: AnvilGameWorldService::province",
1230    ][::core::mem::offset_of!(AnvilGameWorldService, province) - 24usize];
1231    [
1232        "Offset of field: AnvilGameWorldService::province_name",
1233    ][::core::mem::offset_of!(AnvilGameWorldService, province_name) - 32usize];
1234    [
1235        "Offset of field: AnvilGameWorldService::province_cores",
1236    ][::core::mem::offset_of!(AnvilGameWorldService, province_cores) - 40usize];
1237    [
1238        "Offset of field: AnvilGameWorldService::country",
1239    ][::core::mem::offset_of!(AnvilGameWorldService, country) - 48usize];
1240    [
1241        "Offset of field: AnvilGameWorldService::country_provinces",
1242    ][::core::mem::offset_of!(AnvilGameWorldService, country_provinces) - 56usize];
1243    [
1244        "Offset of field: AnvilGameWorldService::war_ids",
1245    ][::core::mem::offset_of!(AnvilGameWorldService, war_ids) - 64usize];
1246    [
1247        "Offset of field: AnvilGameWorldService::war",
1248    ][::core::mem::offset_of!(AnvilGameWorldService, war) - 72usize];
1249    [
1250        "Offset of field: AnvilGameWorldService::war_name",
1251    ][::core::mem::offset_of!(AnvilGameWorldService, war_name) - 80usize];
1252    [
1253        "Offset of field: AnvilGameWorldService::war_side",
1254    ][::core::mem::offset_of!(AnvilGameWorldService, war_side) - 88usize];
1255    [
1256        "Offset of field: AnvilGameWorldService::modifier_id",
1257    ][::core::mem::offset_of!(AnvilGameWorldService, modifier_id) - 96usize];
1258    [
1259        "Offset of field: AnvilGameWorldService::country_modifier",
1260    ][::core::mem::offset_of!(AnvilGameWorldService, country_modifier) - 104usize];
1261    [
1262        "Offset of field: AnvilGameWorldService::province_modifier",
1263    ][::core::mem::offset_of!(AnvilGameWorldService, province_modifier) - 112usize];
1264    [
1265        "Offset of field: AnvilGameWorldService::country_units",
1266    ][::core::mem::offset_of!(AnvilGameWorldService, country_units) - 120usize];
1267    [
1268        "Offset of field: AnvilGameWorldService::unit",
1269    ][::core::mem::offset_of!(AnvilGameWorldService, unit) - 128usize];
1270    [
1271        "Offset of field: AnvilGameWorldService::unit_name",
1272    ][::core::mem::offset_of!(AnvilGameWorldService, unit_name) - 136usize];
1273    [
1274        "Offset of field: AnvilGameWorldService::unit_leader_name",
1275    ][::core::mem::offset_of!(AnvilGameWorldService, unit_leader_name) - 144usize];
1276    [
1277        "Offset of field: AnvilGameWorldService::selected_units",
1278    ][::core::mem::offset_of!(AnvilGameWorldService, selected_units) - 152usize];
1279};
1280#[repr(C)]
1281#[derive(Debug, Copy, Clone)]
1282pub struct AnvilGameCommand {
1283    pub size: u32,
1284    pub type_: u32,
1285    pub flags: u32,
1286    pub count: u32,
1287    pub units: *const AnvilGameUnitRef,
1288    pub pending_event_id: i32,
1289    pub option_index: i32,
1290}
1291#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1292const _: () = {
1293    ["Size of AnvilGameCommand"][::core::mem::size_of::<AnvilGameCommand>() - 32usize];
1294    [
1295        "Alignment of AnvilGameCommand",
1296    ][::core::mem::align_of::<AnvilGameCommand>() - 8usize];
1297    [
1298        "Offset of field: AnvilGameCommand::size",
1299    ][::core::mem::offset_of!(AnvilGameCommand, size) - 0usize];
1300    [
1301        "Offset of field: AnvilGameCommand::type_",
1302    ][::core::mem::offset_of!(AnvilGameCommand, type_) - 4usize];
1303    [
1304        "Offset of field: AnvilGameCommand::flags",
1305    ][::core::mem::offset_of!(AnvilGameCommand, flags) - 8usize];
1306    [
1307        "Offset of field: AnvilGameCommand::count",
1308    ][::core::mem::offset_of!(AnvilGameCommand, count) - 12usize];
1309    [
1310        "Offset of field: AnvilGameCommand::units",
1311    ][::core::mem::offset_of!(AnvilGameCommand, units) - 16usize];
1312    [
1313        "Offset of field: AnvilGameCommand::pending_event_id",
1314    ][::core::mem::offset_of!(AnvilGameCommand, pending_event_id) - 24usize];
1315    [
1316        "Offset of field: AnvilGameCommand::option_index",
1317    ][::core::mem::offset_of!(AnvilGameCommand, option_index) - 28usize];
1318};
1319#[repr(C)]
1320#[derive(Debug, Copy, Clone)]
1321pub struct AnvilGameCommandResult {
1322    pub size: u32,
1323    pub posted: u32,
1324    pub skipped: u32,
1325    pub refused: u32,
1326}
1327#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1328const _: () = {
1329    [
1330        "Size of AnvilGameCommandResult",
1331    ][::core::mem::size_of::<AnvilGameCommandResult>() - 16usize];
1332    [
1333        "Alignment of AnvilGameCommandResult",
1334    ][::core::mem::align_of::<AnvilGameCommandResult>() - 4usize];
1335    [
1336        "Offset of field: AnvilGameCommandResult::size",
1337    ][::core::mem::offset_of!(AnvilGameCommandResult, size) - 0usize];
1338    [
1339        "Offset of field: AnvilGameCommandResult::posted",
1340    ][::core::mem::offset_of!(AnvilGameCommandResult, posted) - 4usize];
1341    [
1342        "Offset of field: AnvilGameCommandResult::skipped",
1343    ][::core::mem::offset_of!(AnvilGameCommandResult, skipped) - 8usize];
1344    [
1345        "Offset of field: AnvilGameCommandResult::refused",
1346    ][::core::mem::offset_of!(AnvilGameCommandResult, refused) - 12usize];
1347};
1348#[repr(C)]
1349#[derive(Debug, Copy, Clone)]
1350pub struct AnvilGameCommandsService {
1351    pub size: u32,
1352    pub post: ::core::option::Option<
1353        unsafe extern "C" fn(
1354            self_: *mut AnvilPlugin,
1355            command: *const AnvilGameCommand,
1356            out: *mut AnvilGameCommandResult,
1357        ) -> AnvilResult,
1358    >,
1359}
1360#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1361const _: () = {
1362    [
1363        "Size of AnvilGameCommandsService",
1364    ][::core::mem::size_of::<AnvilGameCommandsService>() - 16usize];
1365    [
1366        "Alignment of AnvilGameCommandsService",
1367    ][::core::mem::align_of::<AnvilGameCommandsService>() - 8usize];
1368    [
1369        "Offset of field: AnvilGameCommandsService::size",
1370    ][::core::mem::offset_of!(AnvilGameCommandsService, size) - 0usize];
1371    [
1372        "Offset of field: AnvilGameCommandsService::post",
1373    ][::core::mem::offset_of!(AnvilGameCommandsService, post) - 8usize];
1374};
1375#[repr(C)]
1376#[derive(Debug)]
1377pub struct AnvilPanel {
1378    _unused: [u8; 0],
1379}
1380pub const ANVIL_PANEL_TEXT: AnvilPanelRowKind = 1;
1381pub const ANVIL_PANEL_BUTTON: AnvilPanelRowKind = 2;
1382pub const ANVIL_PANEL_SEPARATOR: AnvilPanelRowKind = 3;
1383pub type AnvilPanelRowKind = core::ffi::c_int;
1384#[repr(C)]
1385#[derive(Debug, Copy, Clone)]
1386pub struct AnvilPanelRow {
1387    pub kind: u32,
1388    pub reserved: u32,
1389    pub label: *const core::ffi::c_char,
1390    pub value: *const core::ffi::c_char,
1391    pub id: u64,
1392}
1393#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1394const _: () = {
1395    ["Size of AnvilPanelRow"][::core::mem::size_of::<AnvilPanelRow>() - 32usize];
1396    ["Alignment of AnvilPanelRow"][::core::mem::align_of::<AnvilPanelRow>() - 8usize];
1397    [
1398        "Offset of field: AnvilPanelRow::kind",
1399    ][::core::mem::offset_of!(AnvilPanelRow, kind) - 0usize];
1400    [
1401        "Offset of field: AnvilPanelRow::reserved",
1402    ][::core::mem::offset_of!(AnvilPanelRow, reserved) - 4usize];
1403    [
1404        "Offset of field: AnvilPanelRow::label",
1405    ][::core::mem::offset_of!(AnvilPanelRow, label) - 8usize];
1406    [
1407        "Offset of field: AnvilPanelRow::value",
1408    ][::core::mem::offset_of!(AnvilPanelRow, value) - 16usize];
1409    [
1410        "Offset of field: AnvilPanelRow::id",
1411    ][::core::mem::offset_of!(AnvilPanelRow, id) - 24usize];
1412};
1413pub type AnvilPanelClick = ::core::option::Option<
1414    unsafe extern "C" fn(context: *mut core::ffi::c_void, id: u64),
1415>;
1416#[repr(C)]
1417#[derive(Debug, Copy, Clone)]
1418pub struct AnvilPanelService {
1419    pub size: u32,
1420    pub create: ::core::option::Option<
1421        unsafe extern "C" fn(
1422            title: *const core::ffi::c_char,
1423            out: *mut *mut AnvilPanel,
1424        ) -> AnvilResult,
1425    >,
1426    pub set_rows: ::core::option::Option<
1427        unsafe extern "C" fn(
1428            panel: *mut AnvilPanel,
1429            rows: *const AnvilPanelRow,
1430            count: u32,
1431            row_size: u32,
1432        ) -> AnvilResult,
1433    >,
1434    pub on_click: ::core::option::Option<
1435        unsafe extern "C" fn(
1436            panel: *mut AnvilPanel,
1437            click: AnvilPanelClick,
1438            context: *mut core::ffi::c_void,
1439        ) -> AnvilResult,
1440    >,
1441    pub show: ::core::option::Option<
1442        unsafe extern "C" fn(
1443            panel: *mut AnvilPanel,
1444            shown: core::ffi::c_int,
1445        ) -> AnvilResult,
1446    >,
1447    pub shown: ::core::option::Option<
1448        unsafe extern "C" fn(panel: *const AnvilPanel) -> core::ffi::c_int,
1449    >,
1450    pub language: ::core::option::Option<
1451        unsafe extern "C" fn() -> *const core::ffi::c_char,
1452    >,
1453}
1454#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1455const _: () = {
1456    ["Size of AnvilPanelService"][::core::mem::size_of::<AnvilPanelService>() - 56usize];
1457    [
1458        "Alignment of AnvilPanelService",
1459    ][::core::mem::align_of::<AnvilPanelService>() - 8usize];
1460    [
1461        "Offset of field: AnvilPanelService::size",
1462    ][::core::mem::offset_of!(AnvilPanelService, size) - 0usize];
1463    [
1464        "Offset of field: AnvilPanelService::create",
1465    ][::core::mem::offset_of!(AnvilPanelService, create) - 8usize];
1466    [
1467        "Offset of field: AnvilPanelService::set_rows",
1468    ][::core::mem::offset_of!(AnvilPanelService, set_rows) - 16usize];
1469    [
1470        "Offset of field: AnvilPanelService::on_click",
1471    ][::core::mem::offset_of!(AnvilPanelService, on_click) - 24usize];
1472    [
1473        "Offset of field: AnvilPanelService::show",
1474    ][::core::mem::offset_of!(AnvilPanelService, show) - 32usize];
1475    [
1476        "Offset of field: AnvilPanelService::shown",
1477    ][::core::mem::offset_of!(AnvilPanelService, shown) - 40usize];
1478    [
1479        "Offset of field: AnvilPanelService::language",
1480    ][::core::mem::offset_of!(AnvilPanelService, language) - 48usize];
1481};
1482#[repr(C)]
1483#[derive(Debug, Copy, Clone)]
1484pub struct AnvilInputEvent {
1485    pub size: u32,
1486    pub flags: u32,
1487    pub code: i64,
1488    pub x: i32,
1489    pub y: i32,
1490    pub frame: u64,
1491}
1492#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1493const _: () = {
1494    ["Size of AnvilInputEvent"][::core::mem::size_of::<AnvilInputEvent>() - 32usize];
1495    [
1496        "Alignment of AnvilInputEvent",
1497    ][::core::mem::align_of::<AnvilInputEvent>() - 8usize];
1498    [
1499        "Offset of field: AnvilInputEvent::size",
1500    ][::core::mem::offset_of!(AnvilInputEvent, size) - 0usize];
1501    [
1502        "Offset of field: AnvilInputEvent::flags",
1503    ][::core::mem::offset_of!(AnvilInputEvent, flags) - 4usize];
1504    [
1505        "Offset of field: AnvilInputEvent::code",
1506    ][::core::mem::offset_of!(AnvilInputEvent, code) - 8usize];
1507    [
1508        "Offset of field: AnvilInputEvent::x",
1509    ][::core::mem::offset_of!(AnvilInputEvent, x) - 16usize];
1510    [
1511        "Offset of field: AnvilInputEvent::y",
1512    ][::core::mem::offset_of!(AnvilInputEvent, y) - 20usize];
1513    [
1514        "Offset of field: AnvilInputEvent::frame",
1515    ][::core::mem::offset_of!(AnvilInputEvent, frame) - 24usize];
1516};
1517#[repr(C)]
1518#[derive(Debug)]
1519pub struct AnvilInputBinding {
1520    _unused: [u8; 0],
1521}
1522pub type AnvilInputHandler = ::core::option::Option<
1523    unsafe extern "C" fn(context: *mut core::ffi::c_void, event: *const AnvilInputEvent),
1524>;
1525#[repr(C)]
1526#[derive(Debug, Copy, Clone)]
1527pub struct AnvilInputService {
1528    pub size: u32,
1529    pub state: ::core::option::Option<unsafe extern "C" fn() -> u32>,
1530    pub bind: ::core::option::Option<
1531        unsafe extern "C" fn(
1532            code: i64,
1533            flags: u32,
1534            handler: AnvilInputHandler,
1535            context: *mut core::ffi::c_void,
1536            out: *mut *mut AnvilInputBinding,
1537        ) -> AnvilResult,
1538    >,
1539    pub set_code: ::core::option::Option<
1540        unsafe extern "C" fn(binding: *mut AnvilInputBinding, code: i64) -> AnvilResult,
1541    >,
1542    pub unbind: ::core::option::Option<
1543        unsafe extern "C" fn(binding: *mut AnvilInputBinding) -> AnvilResult,
1544    >,
1545    pub held: ::core::option::Option<
1546        unsafe extern "C" fn(code: i64) -> core::ffi::c_int,
1547    >,
1548}
1549#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1550const _: () = {
1551    ["Size of AnvilInputService"][::core::mem::size_of::<AnvilInputService>() - 48usize];
1552    [
1553        "Alignment of AnvilInputService",
1554    ][::core::mem::align_of::<AnvilInputService>() - 8usize];
1555    [
1556        "Offset of field: AnvilInputService::size",
1557    ][::core::mem::offset_of!(AnvilInputService, size) - 0usize];
1558    [
1559        "Offset of field: AnvilInputService::state",
1560    ][::core::mem::offset_of!(AnvilInputService, state) - 8usize];
1561    [
1562        "Offset of field: AnvilInputService::bind",
1563    ][::core::mem::offset_of!(AnvilInputService, bind) - 16usize];
1564    [
1565        "Offset of field: AnvilInputService::set_code",
1566    ][::core::mem::offset_of!(AnvilInputService, set_code) - 24usize];
1567    [
1568        "Offset of field: AnvilInputService::unbind",
1569    ][::core::mem::offset_of!(AnvilInputService, unbind) - 32usize];
1570    [
1571        "Offset of field: AnvilInputService::held",
1572    ][::core::mem::offset_of!(AnvilInputService, held) - 40usize];
1573};
1574pub const ANVIL_BENCHMARK_INT: AnvilBenchmarkKind = 1;
1575pub const ANVIL_BENCHMARK_NUMBER: AnvilBenchmarkKind = 2;
1576pub const ANVIL_BENCHMARK_ENUM: AnvilBenchmarkKind = 3;
1577pub const ANVIL_BENCHMARK_FLAG: AnvilBenchmarkKind = 4;
1578pub type AnvilBenchmarkKind = core::ffi::c_int;
1579pub const ANVIL_BENCHMARK_UNIT_NONE: AnvilBenchmarkUnit = 0;
1580pub const ANVIL_BENCHMARK_UNIT_MS: AnvilBenchmarkUnit = 1;
1581pub const ANVIL_BENCHMARK_UNIT_COUNT: AnvilBenchmarkUnit = 2;
1582pub const ANVIL_BENCHMARK_UNIT_BYTES: AnvilBenchmarkUnit = 3;
1583pub const ANVIL_BENCHMARK_UNIT_MB: AnvilBenchmarkUnit = 4;
1584pub const ANVIL_BENCHMARK_UNIT_PERCENT: AnvilBenchmarkUnit = 5;
1585pub type AnvilBenchmarkUnit = core::ffi::c_int;
1586#[repr(C)]
1587#[derive(Debug, Copy, Clone)]
1588pub struct AnvilBenchmarkField {
1589    pub name: *const core::ffi::c_char,
1590    pub kind: u32,
1591    pub unit: u32,
1592    pub label: *const core::ffi::c_char,
1593    pub options: *const *const core::ffi::c_char,
1594    pub option_count: u32,
1595}
1596#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1597const _: () = {
1598    [
1599        "Size of AnvilBenchmarkField",
1600    ][::core::mem::size_of::<AnvilBenchmarkField>() - 40usize];
1601    [
1602        "Alignment of AnvilBenchmarkField",
1603    ][::core::mem::align_of::<AnvilBenchmarkField>() - 8usize];
1604    [
1605        "Offset of field: AnvilBenchmarkField::name",
1606    ][::core::mem::offset_of!(AnvilBenchmarkField, name) - 0usize];
1607    [
1608        "Offset of field: AnvilBenchmarkField::kind",
1609    ][::core::mem::offset_of!(AnvilBenchmarkField, kind) - 8usize];
1610    [
1611        "Offset of field: AnvilBenchmarkField::unit",
1612    ][::core::mem::offset_of!(AnvilBenchmarkField, unit) - 12usize];
1613    [
1614        "Offset of field: AnvilBenchmarkField::label",
1615    ][::core::mem::offset_of!(AnvilBenchmarkField, label) - 16usize];
1616    [
1617        "Offset of field: AnvilBenchmarkField::options",
1618    ][::core::mem::offset_of!(AnvilBenchmarkField, options) - 24usize];
1619    [
1620        "Offset of field: AnvilBenchmarkField::option_count",
1621    ][::core::mem::offset_of!(AnvilBenchmarkField, option_count) - 32usize];
1622};
1623#[repr(C)]
1624#[derive(Debug, Copy, Clone)]
1625pub struct AnvilBenchmarkService {
1626    pub size: u32,
1627    pub active: ::core::option::Option<unsafe extern "C" fn() -> core::ffi::c_int>,
1628    pub declare: ::core::option::Option<
1629        unsafe extern "C" fn(
1630            self_: *mut AnvilPlugin,
1631            fields: *const AnvilBenchmarkField,
1632            count: u32,
1633        ) -> AnvilResult,
1634    >,
1635    pub set_int: ::core::option::Option<
1636        unsafe extern "C" fn(
1637            self_: *mut AnvilPlugin,
1638            field: *const core::ffi::c_char,
1639            value: i64,
1640        ) -> AnvilResult,
1641    >,
1642    pub set_number: ::core::option::Option<
1643        unsafe extern "C" fn(
1644            self_: *mut AnvilPlugin,
1645            field: *const core::ffi::c_char,
1646            value: f64,
1647        ) -> AnvilResult,
1648    >,
1649    pub set_enum: ::core::option::Option<
1650        unsafe extern "C" fn(
1651            self_: *mut AnvilPlugin,
1652            field: *const core::ffi::c_char,
1653            option: *const core::ffi::c_char,
1654        ) -> AnvilResult,
1655    >,
1656    pub set_flag: ::core::option::Option<
1657        unsafe extern "C" fn(
1658            self_: *mut AnvilPlugin,
1659            field: *const core::ffi::c_char,
1660            value: core::ffi::c_int,
1661        ) -> AnvilResult,
1662    >,
1663    pub done: ::core::option::Option<
1664        unsafe extern "C" fn(self_: *mut AnvilPlugin) -> AnvilResult,
1665    >,
1666    pub learning: ::core::option::Option<
1667        unsafe extern "C" fn(
1668            self_: *mut AnvilPlugin,
1669            reason: *const core::ffi::c_char,
1670        ) -> AnvilResult,
1671    >,
1672    pub open_cost: ::core::option::Option<
1673        unsafe extern "C" fn(self_: *mut AnvilPlugin, files: u64, ms: f64) -> AnvilResult,
1674    >,
1675}
1676#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1677const _: () = {
1678    [
1679        "Size of AnvilBenchmarkService",
1680    ][::core::mem::size_of::<AnvilBenchmarkService>() - 80usize];
1681    [
1682        "Alignment of AnvilBenchmarkService",
1683    ][::core::mem::align_of::<AnvilBenchmarkService>() - 8usize];
1684    [
1685        "Offset of field: AnvilBenchmarkService::size",
1686    ][::core::mem::offset_of!(AnvilBenchmarkService, size) - 0usize];
1687    [
1688        "Offset of field: AnvilBenchmarkService::active",
1689    ][::core::mem::offset_of!(AnvilBenchmarkService, active) - 8usize];
1690    [
1691        "Offset of field: AnvilBenchmarkService::declare",
1692    ][::core::mem::offset_of!(AnvilBenchmarkService, declare) - 16usize];
1693    [
1694        "Offset of field: AnvilBenchmarkService::set_int",
1695    ][::core::mem::offset_of!(AnvilBenchmarkService, set_int) - 24usize];
1696    [
1697        "Offset of field: AnvilBenchmarkService::set_number",
1698    ][::core::mem::offset_of!(AnvilBenchmarkService, set_number) - 32usize];
1699    [
1700        "Offset of field: AnvilBenchmarkService::set_enum",
1701    ][::core::mem::offset_of!(AnvilBenchmarkService, set_enum) - 40usize];
1702    [
1703        "Offset of field: AnvilBenchmarkService::set_flag",
1704    ][::core::mem::offset_of!(AnvilBenchmarkService, set_flag) - 48usize];
1705    [
1706        "Offset of field: AnvilBenchmarkService::done",
1707    ][::core::mem::offset_of!(AnvilBenchmarkService, done) - 56usize];
1708    [
1709        "Offset of field: AnvilBenchmarkService::learning",
1710    ][::core::mem::offset_of!(AnvilBenchmarkService, learning) - 64usize];
1711    [
1712        "Offset of field: AnvilBenchmarkService::open_cost",
1713    ][::core::mem::offset_of!(AnvilBenchmarkService, open_cost) - 72usize];
1714};
1715pub const ANVIL_MAP_TAB_DEFAULT: AnvilMapTab = 0;
1716pub const ANVIL_MAP_TAB_1: AnvilMapTab = 1;
1717pub const ANVIL_MAP_TAB_2: AnvilMapTab = 2;
1718pub const ANVIL_MAP_TAB_3: AnvilMapTab = 3;
1719pub const ANVIL_MAP_TAB_4: AnvilMapTab = 4;
1720pub type AnvilMapTab = core::ffi::c_int;
1721#[repr(C)]
1722#[derive(Debug)]
1723pub struct AnvilMapMode {
1724    _unused: [u8; 0],
1725}
1726pub type AnvilMapDescribe = ::core::option::Option<
1727    unsafe extern "C" fn(
1728        context: *mut core::ffi::c_void,
1729        mode: *const AnvilMapMode,
1730        province: i32,
1731        text: *mut core::ffi::c_char,
1732        capacity: usize,
1733    ) -> usize,
1734>;
1735#[repr(C)]
1736#[derive(Debug, Copy, Clone)]
1737pub struct AnvilMapModeInfo {
1738    pub size: u32,
1739    pub tab: u32,
1740    pub id: *const core::ffi::c_char,
1741    pub label: *const core::ffi::c_char,
1742    pub description: *const core::ffi::c_char,
1743    pub sprite: *const core::ffi::c_char,
1744    pub describe: AnvilMapDescribe,
1745    pub context: *mut core::ffi::c_void,
1746}
1747#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1748const _: () = {
1749    ["Size of AnvilMapModeInfo"][::core::mem::size_of::<AnvilMapModeInfo>() - 56usize];
1750    [
1751        "Alignment of AnvilMapModeInfo",
1752    ][::core::mem::align_of::<AnvilMapModeInfo>() - 8usize];
1753    [
1754        "Offset of field: AnvilMapModeInfo::size",
1755    ][::core::mem::offset_of!(AnvilMapModeInfo, size) - 0usize];
1756    [
1757        "Offset of field: AnvilMapModeInfo::tab",
1758    ][::core::mem::offset_of!(AnvilMapModeInfo, tab) - 4usize];
1759    [
1760        "Offset of field: AnvilMapModeInfo::id",
1761    ][::core::mem::offset_of!(AnvilMapModeInfo, id) - 8usize];
1762    [
1763        "Offset of field: AnvilMapModeInfo::label",
1764    ][::core::mem::offset_of!(AnvilMapModeInfo, label) - 16usize];
1765    [
1766        "Offset of field: AnvilMapModeInfo::description",
1767    ][::core::mem::offset_of!(AnvilMapModeInfo, description) - 24usize];
1768    [
1769        "Offset of field: AnvilMapModeInfo::sprite",
1770    ][::core::mem::offset_of!(AnvilMapModeInfo, sprite) - 32usize];
1771    [
1772        "Offset of field: AnvilMapModeInfo::describe",
1773    ][::core::mem::offset_of!(AnvilMapModeInfo, describe) - 40usize];
1774    [
1775        "Offset of field: AnvilMapModeInfo::context",
1776    ][::core::mem::offset_of!(AnvilMapModeInfo, context) - 48usize];
1777};
1778#[repr(C)]
1779#[derive(Debug, Copy, Clone)]
1780pub struct AnvilMapModeChange {
1781    pub size: u32,
1782    pub reserved: u32,
1783    pub mode: *const AnvilMapMode,
1784    pub id: *const core::ffi::c_char,
1785}
1786#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1787const _: () = {
1788    [
1789        "Size of AnvilMapModeChange",
1790    ][::core::mem::size_of::<AnvilMapModeChange>() - 24usize];
1791    [
1792        "Alignment of AnvilMapModeChange",
1793    ][::core::mem::align_of::<AnvilMapModeChange>() - 8usize];
1794    [
1795        "Offset of field: AnvilMapModeChange::size",
1796    ][::core::mem::offset_of!(AnvilMapModeChange, size) - 0usize];
1797    [
1798        "Offset of field: AnvilMapModeChange::reserved",
1799    ][::core::mem::offset_of!(AnvilMapModeChange, reserved) - 4usize];
1800    [
1801        "Offset of field: AnvilMapModeChange::mode",
1802    ][::core::mem::offset_of!(AnvilMapModeChange, mode) - 8usize];
1803    [
1804        "Offset of field: AnvilMapModeChange::id",
1805    ][::core::mem::offset_of!(AnvilMapModeChange, id) - 16usize];
1806};
1807#[repr(C)]
1808#[derive(Debug, Copy, Clone)]
1809pub struct AnvilMapModesService {
1810    pub size: u32,
1811    pub register_mode: ::core::option::Option<
1812        unsafe extern "C" fn(
1813            info: *const AnvilMapModeInfo,
1814            out: *mut *const AnvilMapMode,
1815        ) -> AnvilResult,
1816    >,
1817    pub set_colors: ::core::option::Option<
1818        unsafe extern "C" fn(
1819            mode: *const AnvilMapMode,
1820            colors: *const u32,
1821            count: u32,
1822        ) -> AnvilResult,
1823    >,
1824    pub mode_id: ::core::option::Option<
1825        unsafe extern "C" fn(number: i32) -> *const core::ffi::c_char,
1826    >,
1827    pub shown: ::core::option::Option<unsafe extern "C" fn() -> *const AnvilMapMode>,
1828    pub id: ::core::option::Option<
1829        unsafe extern "C" fn(mode: *const AnvilMapMode) -> *const core::ffi::c_char,
1830    >,
1831}
1832#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1833const _: () = {
1834    [
1835        "Size of AnvilMapModesService",
1836    ][::core::mem::size_of::<AnvilMapModesService>() - 48usize];
1837    [
1838        "Alignment of AnvilMapModesService",
1839    ][::core::mem::align_of::<AnvilMapModesService>() - 8usize];
1840    [
1841        "Offset of field: AnvilMapModesService::size",
1842    ][::core::mem::offset_of!(AnvilMapModesService, size) - 0usize];
1843    [
1844        "Offset of field: AnvilMapModesService::register_mode",
1845    ][::core::mem::offset_of!(AnvilMapModesService, register_mode) - 8usize];
1846    [
1847        "Offset of field: AnvilMapModesService::set_colors",
1848    ][::core::mem::offset_of!(AnvilMapModesService, set_colors) - 16usize];
1849    [
1850        "Offset of field: AnvilMapModesService::mode_id",
1851    ][::core::mem::offset_of!(AnvilMapModesService, mode_id) - 24usize];
1852    [
1853        "Offset of field: AnvilMapModesService::shown",
1854    ][::core::mem::offset_of!(AnvilMapModesService, shown) - 32usize];
1855    [
1856        "Offset of field: AnvilMapModesService::id",
1857    ][::core::mem::offset_of!(AnvilMapModesService, id) - 40usize];
1858};
1859#[repr(C)]
1860#[derive(Debug, Copy, Clone)]
1861pub struct AnvilScriptScope {
1862    pub size: u32,
1863    pub province: i32,
1864    pub country: [core::ffi::c_char; 4usize],
1865}
1866#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1867const _: () = {
1868    ["Size of AnvilScriptScope"][::core::mem::size_of::<AnvilScriptScope>() - 12usize];
1869    [
1870        "Alignment of AnvilScriptScope",
1871    ][::core::mem::align_of::<AnvilScriptScope>() - 4usize];
1872    [
1873        "Offset of field: AnvilScriptScope::size",
1874    ][::core::mem::offset_of!(AnvilScriptScope, size) - 0usize];
1875    [
1876        "Offset of field: AnvilScriptScope::province",
1877    ][::core::mem::offset_of!(AnvilScriptScope, province) - 4usize];
1878    [
1879        "Offset of field: AnvilScriptScope::country",
1880    ][::core::mem::offset_of!(AnvilScriptScope, country) - 8usize];
1881};
1882#[repr(C)]
1883#[derive(Debug, Copy, Clone)]
1884pub struct AnvilScriptCall {
1885    pub size: u32,
1886    pub reserved: u32,
1887    pub key: *const core::ffi::c_char,
1888    pub value: *const core::ffi::c_char,
1889    pub scope: AnvilScriptScope,
1890}
1891#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1892const _: () = {
1893    ["Size of AnvilScriptCall"][::core::mem::size_of::<AnvilScriptCall>() - 40usize];
1894    [
1895        "Alignment of AnvilScriptCall",
1896    ][::core::mem::align_of::<AnvilScriptCall>() - 8usize];
1897    [
1898        "Offset of field: AnvilScriptCall::size",
1899    ][::core::mem::offset_of!(AnvilScriptCall, size) - 0usize];
1900    [
1901        "Offset of field: AnvilScriptCall::reserved",
1902    ][::core::mem::offset_of!(AnvilScriptCall, reserved) - 4usize];
1903    [
1904        "Offset of field: AnvilScriptCall::key",
1905    ][::core::mem::offset_of!(AnvilScriptCall, key) - 8usize];
1906    [
1907        "Offset of field: AnvilScriptCall::value",
1908    ][::core::mem::offset_of!(AnvilScriptCall, value) - 16usize];
1909    [
1910        "Offset of field: AnvilScriptCall::scope",
1911    ][::core::mem::offset_of!(AnvilScriptCall, scope) - 24usize];
1912};
1913pub type AnvilScriptExecute = ::core::option::Option<
1914    unsafe extern "C" fn(context: *mut core::ffi::c_void, call: *const AnvilScriptCall),
1915>;
1916pub type AnvilScriptDescribe = ::core::option::Option<
1917    unsafe extern "C" fn(
1918        context: *mut core::ffi::c_void,
1919        call: *const AnvilScriptCall,
1920        utf8: *mut core::ffi::c_char,
1921        capacity: u32,
1922    ) -> u32,
1923>;
1924#[repr(C)]
1925#[derive(Debug, Copy, Clone)]
1926pub struct AnvilScriptEffect {
1927    pub size: u32,
1928    pub flags: u32,
1929    pub key: *const core::ffi::c_char,
1930    pub execute: AnvilScriptExecute,
1931    pub describe: AnvilScriptDescribe,
1932    pub context: *mut core::ffi::c_void,
1933}
1934#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1935const _: () = {
1936    ["Size of AnvilScriptEffect"][::core::mem::size_of::<AnvilScriptEffect>() - 40usize];
1937    [
1938        "Alignment of AnvilScriptEffect",
1939    ][::core::mem::align_of::<AnvilScriptEffect>() - 8usize];
1940    [
1941        "Offset of field: AnvilScriptEffect::size",
1942    ][::core::mem::offset_of!(AnvilScriptEffect, size) - 0usize];
1943    [
1944        "Offset of field: AnvilScriptEffect::flags",
1945    ][::core::mem::offset_of!(AnvilScriptEffect, flags) - 4usize];
1946    [
1947        "Offset of field: AnvilScriptEffect::key",
1948    ][::core::mem::offset_of!(AnvilScriptEffect, key) - 8usize];
1949    [
1950        "Offset of field: AnvilScriptEffect::execute",
1951    ][::core::mem::offset_of!(AnvilScriptEffect, execute) - 16usize];
1952    [
1953        "Offset of field: AnvilScriptEffect::describe",
1954    ][::core::mem::offset_of!(AnvilScriptEffect, describe) - 24usize];
1955    [
1956        "Offset of field: AnvilScriptEffect::context",
1957    ][::core::mem::offset_of!(AnvilScriptEffect, context) - 32usize];
1958};
1959#[repr(C)]
1960#[derive(Debug, Copy, Clone)]
1961pub struct AnvilScriptEffectsService {
1962    pub size: u32,
1963    pub register_effect: ::core::option::Option<
1964        unsafe extern "C" fn(
1965            self_: *mut AnvilPlugin,
1966            effect: *const AnvilScriptEffect,
1967        ) -> AnvilResult,
1968    >,
1969}
1970#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1971const _: () = {
1972    [
1973        "Size of AnvilScriptEffectsService",
1974    ][::core::mem::size_of::<AnvilScriptEffectsService>() - 16usize];
1975    [
1976        "Alignment of AnvilScriptEffectsService",
1977    ][::core::mem::align_of::<AnvilScriptEffectsService>() - 8usize];
1978    [
1979        "Offset of field: AnvilScriptEffectsService::size",
1980    ][::core::mem::offset_of!(AnvilScriptEffectsService, size) - 0usize];
1981    [
1982        "Offset of field: AnvilScriptEffectsService::register_effect",
1983    ][::core::mem::offset_of!(AnvilScriptEffectsService, register_effect) - 8usize];
1984};
1985#[repr(C)]
1986#[derive(Debug, Copy, Clone)]
1987pub struct AnvilScriptDay {
1988    pub size: u32,
1989    pub flags: u32,
1990    pub year: i32,
1991    pub month: i32,
1992    pub day: i32,
1993}
1994#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1995const _: () = {
1996    ["Size of AnvilScriptDay"][::core::mem::size_of::<AnvilScriptDay>() - 20usize];
1997    ["Alignment of AnvilScriptDay"][::core::mem::align_of::<AnvilScriptDay>() - 4usize];
1998    [
1999        "Offset of field: AnvilScriptDay::size",
2000    ][::core::mem::offset_of!(AnvilScriptDay, size) - 0usize];
2001    [
2002        "Offset of field: AnvilScriptDay::flags",
2003    ][::core::mem::offset_of!(AnvilScriptDay, flags) - 4usize];
2004    [
2005        "Offset of field: AnvilScriptDay::year",
2006    ][::core::mem::offset_of!(AnvilScriptDay, year) - 8usize];
2007    [
2008        "Offset of field: AnvilScriptDay::month",
2009    ][::core::mem::offset_of!(AnvilScriptDay, month) - 12usize];
2010    [
2011        "Offset of field: AnvilScriptDay::day",
2012    ][::core::mem::offset_of!(AnvilScriptDay, day) - 16usize];
2013};
2014pub type AnvilScriptDayEnd = ::core::option::Option<
2015    unsafe extern "C" fn(context: *mut core::ffi::c_void, day: *const AnvilScriptDay),
2016>;
2017#[repr(C)]
2018#[derive(Debug, Copy, Clone)]
2019pub struct AnvilScriptDayEndService {
2020    pub size: u32,
2021    pub subscribe: ::core::option::Option<
2022        unsafe extern "C" fn(
2023            self_: *mut AnvilPlugin,
2024            callback: AnvilScriptDayEnd,
2025            context: *mut core::ffi::c_void,
2026        ) -> AnvilResult,
2027    >,
2028}
2029#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2030const _: () = {
2031    [
2032        "Size of AnvilScriptDayEndService",
2033    ][::core::mem::size_of::<AnvilScriptDayEndService>() - 16usize];
2034    [
2035        "Alignment of AnvilScriptDayEndService",
2036    ][::core::mem::align_of::<AnvilScriptDayEndService>() - 8usize];
2037    [
2038        "Offset of field: AnvilScriptDayEndService::size",
2039    ][::core::mem::offset_of!(AnvilScriptDayEndService, size) - 0usize];
2040    [
2041        "Offset of field: AnvilScriptDayEndService::subscribe",
2042    ][::core::mem::offset_of!(AnvilScriptDayEndService, subscribe) - 8usize];
2043};