wasip3 0.6.0+wasi-0.3.0-rc-2026-03-15

WASIp3 API bindings for Rust
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
// Generated by `wit-bindgen` 0.57.1. DO NOT EDIT!
// Options used:
//   * std_feature
//   * with "wasi:cli/environment@0.3.0-rc-2026-03-15" = "crate::cli::environment"
//   * with "wasi:cli/exit@0.3.0-rc-2026-03-15" = "crate::cli::exit"
//   * with "wasi:cli/stdin@0.3.0-rc-2026-03-15" = "crate::cli::stdin"
//   * with "wasi:cli/stdout@0.3.0-rc-2026-03-15" = "crate::cli::stdout"
//   * with "wasi:cli/stderr@0.3.0-rc-2026-03-15" = "crate::cli::stderr"
//   * with "wasi:cli/types@0.3.0-rc-2026-03-15" = "crate::cli::types"
//   * with "wasi:cli/terminal-input@0.3.0-rc-2026-03-15" = "crate::cli::terminal_input"
//   * with "wasi:cli/terminal-output@0.3.0-rc-2026-03-15" = "crate::cli::terminal_output"
//   * with "wasi:cli/terminal-stdin@0.3.0-rc-2026-03-15" = "crate::cli::terminal_stdin"
//   * with "wasi:cli/terminal-stdout@0.3.0-rc-2026-03-15" = "crate::cli::terminal_stdout"
//   * with "wasi:cli/terminal-stderr@0.3.0-rc-2026-03-15" = "crate::cli::terminal_stderr"
//   * with "wasi:clocks/monotonic-clock@0.3.0-rc-2026-03-15" = "crate::clocks::monotonic_clock"
//   * with "wasi:clocks/system-clock@0.3.0-rc-2026-03-15" = "crate::clocks::system_clock"
//   * with "wasi:clocks/types@0.3.0-rc-2026-03-15" = "crate::clocks::types"
//   * with "wasi:filesystem/types@0.3.0-rc-2026-03-15" = "crate::filesystem::types"
//   * with "wasi:filesystem/preopens@0.3.0-rc-2026-03-15" = "crate::filesystem::preopens"
//   * with "wasi:random/random@0.3.0-rc-2026-03-15" = "crate::random::random"
//   * with "wasi:random/insecure@0.3.0-rc-2026-03-15" = "crate::random::insecure"
//   * with "wasi:random/insecure-seed@0.3.0-rc-2026-03-15" = "crate::random::insecure_seed"
//   * with "wasi:sockets/types@0.3.0-rc-2026-03-15" = "crate::sockets::types"
//   * with "wasi:sockets/ip-name-lookup@0.3.0-rc-2026-03-15" = "crate::sockets::ip_name_lookup"
//   * type_section_suffix: "rust-wasip3-0.6.0+wasi-0.3.0-rc-2026-03-15-from-crates-io-command-world"
//   * default-bindings-module: "$crate"
//   * export-macro-name: _export_command
//   * pub-export-macro
#[allow(unfulfilled_lint_expectations, unused_imports)]
use crate::cli::environment as __with_name0;
#[allow(unfulfilled_lint_expectations, unused_imports)]
use crate::cli::exit as __with_name1;
#[allow(unfulfilled_lint_expectations, unused_imports)]
use crate::cli::types as __with_name2;
#[allow(unfulfilled_lint_expectations, unused_imports)]
use crate::cli::stdin as __with_name3;
#[allow(unfulfilled_lint_expectations, unused_imports)]
use crate::cli::stdout as __with_name4;
#[allow(unfulfilled_lint_expectations, unused_imports)]
use crate::cli::stderr as __with_name5;
#[allow(unfulfilled_lint_expectations, unused_imports)]
use crate::cli::terminal_input as __with_name6;
#[allow(unfulfilled_lint_expectations, unused_imports)]
use crate::cli::terminal_output as __with_name7;
#[allow(unfulfilled_lint_expectations, unused_imports)]
use crate::cli::terminal_stdin as __with_name8;
#[allow(unfulfilled_lint_expectations, unused_imports)]
use crate::cli::terminal_stdout as __with_name9;
#[allow(unfulfilled_lint_expectations, unused_imports)]
use crate::cli::terminal_stderr as __with_name10;
#[allow(unfulfilled_lint_expectations, unused_imports)]
use crate::clocks::types as __with_name11;
#[allow(unfulfilled_lint_expectations, unused_imports)]
use crate::clocks::monotonic_clock as __with_name12;
#[allow(unfulfilled_lint_expectations, unused_imports)]
use crate::clocks::system_clock as __with_name13;
#[allow(unfulfilled_lint_expectations, unused_imports)]
use crate::filesystem::types as __with_name14;
#[allow(unfulfilled_lint_expectations, unused_imports)]
use crate::filesystem::preopens as __with_name15;
#[allow(unfulfilled_lint_expectations, unused_imports)]
use crate::sockets::types as __with_name16;
#[allow(unfulfilled_lint_expectations, unused_imports)]
use crate::sockets::ip_name_lookup as __with_name17;
#[allow(unfulfilled_lint_expectations, unused_imports)]
use crate::random::random as __with_name18;
#[allow(unfulfilled_lint_expectations, unused_imports)]
use crate::random::insecure as __with_name19;
#[allow(unfulfilled_lint_expectations, unused_imports)]
use crate::random::insecure_seed as __with_name20;
#[rustfmt::skip]
#[allow(dead_code, clippy::all)]
pub mod exports {
    pub mod wasi {
        pub mod cli {
            #[allow(dead_code, async_fn_in_trait, unused_imports, clippy::all)]
            pub mod run {
                #[used]
                #[doc(hidden)]
                static __FORCE_SECTION_REF: fn() = super::super::super::super::__link_custom_section_describing_imports;
                use super::super::super::super::_rt;
                #[doc(hidden)]
                #[allow(non_snake_case, unused_unsafe)]
                pub unsafe fn _export_run_cabi<T_: Guest>() -> i32 {
                    unsafe {
                        #[cfg(target_arch = "wasm32")] _rt::run_ctors_once();
                        wit_bindgen::rt::async_support::start_task(async move {
                            let _task_cancel = wit_bindgen::rt::async_support::TaskCancelOnDrop::new();
                            let result0 = &{ T_::run().await };
                            let result1 = match result0 {
                                Ok(_) => 0i32,
                                Err(_) => 1i32,
                            };
                            #[cfg(target_arch = "wasm32")]
                            #[link(
                                wasm_import_module = "[export]wasi:cli/run@0.3.0-rc-2026-03-15"
                            )]
                            unsafe extern "C" {
                                #[link_name = "[task-return]run"]
                                fn wit_import2(_: i32);
                            }
                            #[cfg(not(target_arch = "wasm32"))]
                            unsafe extern "C" fn wit_import2(_: i32) {
                                unreachable!()
                            }
                            _task_cancel.forget();
                            wit_import2(result1);
                        })
                    }
                }
                #[doc(hidden)]
                #[allow(non_snake_case)]
                pub unsafe fn __callback_run(
                    event0: u32,
                    event1: u32,
                    event2: u32,
                ) -> u32 {
                    unsafe {
                        wit_bindgen::rt::async_support::callback(event0, event1, event2)
                    }
                }
                pub trait Guest {
                    /// Run the program.
                    #[allow(async_fn_in_trait)]
                    async fn run() -> Result<(), ()>;
                }
                #[doc(hidden)]
                #[macro_export]
                macro_rules! __export_wasi_cli_run_0_3_0_rc_2026_03_15_cabi {
                    ($ty:ident with_types_in $($path_to_types:tt)*) => {
                        const _ : () = { #[unsafe (export_name =
                        "[async-lift]wasi:cli/run@0.3.0-rc-2026-03-15#run")] unsafe
                        extern "C" fn export_run() -> i32 { unsafe { $($path_to_types)*::
                        _export_run_cabi::<$ty > () } } #[unsafe (export_name =
                        "[callback][async-lift]wasi:cli/run@0.3.0-rc-2026-03-15#run")]
                        unsafe extern "C" fn _callback_run(event0 : u32, event1 : u32,
                        event2 : u32) -> u32 { unsafe { $($path_to_types)*::
                        __callback_run(event0, event1, event2) } } };
                    };
                }
                #[doc(hidden)]
                pub use __export_wasi_cli_run_0_3_0_rc_2026_03_15_cabi;
            }
        }
    }
}
#[rustfmt::skip]
mod _rt {
    #![allow(dead_code, unused_imports, clippy::all)]
    #[cfg(target_arch = "wasm32")]
    pub fn run_ctors_once() {
        wit_bindgen::rt::run_ctors_once();
    }
}
/// Generates `#[unsafe(no_mangle)]` functions to export the specified type as
/// the root implementation of all generated traits.
///
/// For more information see the documentation of `wit_bindgen::generate!`.
///
/// ```rust
/// # macro_rules! _export_command{ ($($t:tt)*) => (); }
/// # trait Guest {}
/// struct MyType;
///
/// impl Guest for MyType {
///     // ...
/// }
///
/// _export_command!(MyType);
/// ```
#[allow(unused_macros)]
#[doc(hidden)]
#[macro_export]
macro_rules! __export_command_impl {
    ($ty:ident) => {
        $crate::_export_command!($ty with_types_in $crate);
    };
    ($ty:ident with_types_in $($path_to_types_root:tt)*) => {
        $($path_to_types_root)*::
        exports::wasi::cli::run::__export_wasi_cli_run_0_3_0_rc_2026_03_15_cabi!($ty
        with_types_in $($path_to_types_root)*:: exports::wasi::cli::run); const _ : () =
        { #[rustfmt::skip] #[cfg(target_arch = "wasm32")] #[unsafe (link_section =
        "component-type:wit-bindgen:0.57.1:wasi:cli@0.3.0-rc-2026-03-15:command:imports and exportsrust-wasip3-0.6.0+wasi-0.3.0-rc-2026-03-15-from-crates-io-command-world")]
        #[doc(hidden)] #[allow(clippy::octal_escapes)] pub static
        __WIT_BINDGEN_COMPONENT_TYPE : [u8; 8219] = *
        b"\
\0asm\x0d\0\x01\0\0\x19\x16wit-component-encoding\x04\0\x07\x9d?\x01A\x02\x01A3\x01\
B\x0a\x01o\x02ss\x01p\0\x01@\0\0\x01\x04\0\x0fget-environment\x01\x02\x01ps\x01@\
\0\0\x03\x04\0\x0dget-arguments\x01\x04\x01ks\x01@\0\0\x05\x04\0\x0fget-initial-\
cwd\x01\x06\x03\0(wasi:cli/environment@0.3.0-rc-2026-03-15\x05\0\x01B\x03\x01j\0\
\0\x01@\x01\x06status\0\x01\0\x04\0\x04exit\x01\x01\x03\0!wasi:cli/exit@0.3.0-rc\
-2026-03-15\x05\x01\x01B\x02\x01m\x03\x02io\x15illegal-byte-sequence\x04pipe\x04\
\0\x0aerror-code\x03\0\0\x03\0\"wasi:cli/types@0.3.0-rc-2026-03-15\x05\x02\x02\x03\
\0\x02\x0aerror-code\x01B\x08\x02\x03\x02\x01\x03\x04\0\x0aerror-code\x03\0\0\x01\
f\x01}\x01j\0\x01\x01\x01e\x01\x03\x01o\x02\x02\x04\x01@\0\0\x05\x04\0\x0fread-v\
ia-stream\x01\x06\x03\0\"wasi:cli/stdin@0.3.0-rc-2026-03-15\x05\x04\x01B\x07\x02\
\x03\x02\x01\x03\x04\0\x0aerror-code\x03\0\0\x01f\x01}\x01j\0\x01\x01\x01e\x01\x03\
\x01@\x01\x04data\x02\0\x04\x04\0\x10write-via-stream\x01\x05\x03\0#wasi:cli/std\
out@0.3.0-rc-2026-03-15\x05\x05\x01B\x07\x02\x03\x02\x01\x03\x04\0\x0aerror-code\
\x03\0\0\x01f\x01}\x01j\0\x01\x01\x01e\x01\x03\x01@\x01\x04data\x02\0\x04\x04\0\x10\
write-via-stream\x01\x05\x03\0#wasi:cli/stderr@0.3.0-rc-2026-03-15\x05\x06\x01B\x01\
\x04\0\x0eterminal-input\x03\x01\x03\0+wasi:cli/terminal-input@0.3.0-rc-2026-03-\
15\x05\x07\x01B\x01\x04\0\x0fterminal-output\x03\x01\x03\0,wasi:cli/terminal-out\
put@0.3.0-rc-2026-03-15\x05\x08\x02\x03\0\x06\x0eterminal-input\x01B\x06\x02\x03\
\x02\x01\x09\x04\0\x0eterminal-input\x03\0\0\x01i\x01\x01k\x02\x01@\0\0\x03\x04\0\
\x12get-terminal-stdin\x01\x04\x03\0+wasi:cli/terminal-stdin@0.3.0-rc-2026-03-15\
\x05\x0a\x02\x03\0\x07\x0fterminal-output\x01B\x06\x02\x03\x02\x01\x0b\x04\0\x0f\
terminal-output\x03\0\0\x01i\x01\x01k\x02\x01@\0\0\x03\x04\0\x13get-terminal-std\
out\x01\x04\x03\0,wasi:cli/terminal-stdout@0.3.0-rc-2026-03-15\x05\x0c\x01B\x06\x02\
\x03\x02\x01\x0b\x04\0\x0fterminal-output\x03\0\0\x01i\x01\x01k\x02\x01@\0\0\x03\
\x04\0\x13get-terminal-stderr\x01\x04\x03\0,wasi:cli/terminal-stderr@0.3.0-rc-20\
26-03-15\x05\x0d\x01B\x02\x01w\x04\0\x08duration\x03\0\0\x03\0%wasi:clocks/types\
@0.3.0-rc-2026-03-15\x05\x0e\x02\x03\0\x0b\x08duration\x01B\x0c\x02\x03\x02\x01\x0f\
\x04\0\x08duration\x03\0\0\x01w\x04\0\x04mark\x03\0\x02\x01@\0\0\x03\x04\0\x03no\
w\x01\x04\x01@\0\0\x01\x04\0\x0eget-resolution\x01\x05\x01C\x01\x04when\x03\x01\0\
\x04\0\x0await-until\x01\x06\x01C\x01\x08how-long\x01\x01\0\x04\0\x08wait-for\x01\
\x07\x03\0/wasi:clocks/monotonic-clock@0.3.0-rc-2026-03-15\x05\x10\x01B\x08\x02\x03\
\x02\x01\x0f\x04\0\x08duration\x03\0\0\x01r\x02\x07secondsx\x0bnanosecondsy\x04\0\
\x07instant\x03\0\x02\x01@\0\0\x03\x04\0\x03now\x01\x04\x01@\0\0\x01\x04\0\x0ege\
t-resolution\x01\x05\x03\0,wasi:clocks/system-clock@0.3.0-rc-2026-03-15\x05\x11\x02\
\x03\0\x0d\x07instant\x01BZ\x02\x03\x02\x01\x12\x04\0\x07instant\x03\0\0\x01w\x04\
\0\x08filesize\x03\0\x02\x01ks\x01q\x08\x0cblock-device\0\0\x10character-device\0\
\0\x09directory\0\0\x04fifo\0\0\x0dsymbolic-link\0\0\x0cregular-file\0\0\x06sock\
et\0\0\x05other\x01\x04\0\x04\0\x0fdescriptor-type\x03\0\x05\x01n\x06\x04read\x05\
write\x13file-integrity-sync\x13data-integrity-sync\x14requested-write-sync\x10m\
utate-directory\x04\0\x10descriptor-flags\x03\0\x07\x01n\x01\x0esymlink-follow\x04\
\0\x0apath-flags\x03\0\x09\x01n\x04\x06create\x09directory\x09exclusive\x08trunc\
ate\x04\0\x0aopen-flags\x03\0\x0b\x01w\x04\0\x0alink-count\x03\0\x0d\x01k\x01\x01\
r\x06\x04type\x06\x0alink-count\x0e\x04size\x03\x15data-access-timestamp\x0f\x1b\
data-modification-timestamp\x0f\x17status-change-timestamp\x0f\x04\0\x0fdescript\
or-stat\x03\0\x10\x01q\x03\x09no-change\0\0\x03now\0\0\x09timestamp\x01\x01\0\x04\
\0\x0dnew-timestamp\x03\0\x12\x01r\x02\x04type\x06\x04names\x04\0\x0fdirectory-e\
ntry\x03\0\x14\x01q%\x06access\0\0\x07already\0\0\x0ebad-descriptor\0\0\x04busy\0\
\0\x08deadlock\0\0\x05quota\0\0\x05exist\0\0\x0efile-too-large\0\0\x15illegal-by\
te-sequence\0\0\x0bin-progress\0\0\x0binterrupted\0\0\x07invalid\0\0\x02io\0\0\x0c\
is-directory\0\0\x04loop\0\0\x0etoo-many-links\0\0\x0cmessage-size\0\0\x0dname-t\
oo-long\0\0\x09no-device\0\0\x08no-entry\0\0\x07no-lock\0\0\x13insufficient-memo\
ry\0\0\x12insufficient-space\0\0\x0dnot-directory\0\0\x09not-empty\0\0\x0fnot-re\
coverable\0\0\x0bunsupported\0\0\x06no-tty\0\0\x0eno-such-device\0\0\x08overflow\
\0\0\x0dnot-permitted\0\0\x04pipe\0\0\x09read-only\0\0\x0cinvalid-seek\0\0\x0ete\
xt-file-busy\0\0\x0ccross-device\0\0\x05other\x01\x04\0\x04\0\x0aerror-code\x03\0\
\x16\x01m\x06\x06normal\x0asequential\x06random\x09will-need\x09dont-need\x08no-\
reuse\x04\0\x06advice\x03\0\x18\x01r\x02\x05lowerw\x05upperw\x04\0\x13metadata-h\
ash-value\x03\0\x1a\x04\0\x0adescriptor\x03\x01\x01h\x1c\x01f\x01}\x01j\0\x01\x17\
\x01e\x01\x1f\x01o\x02\x1e\x20\x01@\x02\x04self\x1d\x06offset\x03\0!\x04\0\"[met\
hod]descriptor.read-via-stream\x01\"\x01@\x03\x04self\x1d\x04data\x1e\x06offset\x03\
\0\x20\x04\0#[method]descriptor.write-via-stream\x01#\x01@\x02\x04self\x1d\x04da\
ta\x1e\0\x20\x04\0$[method]descriptor.append-via-stream\x01$\x01C\x04\x04self\x1d\
\x06offset\x03\x06length\x03\x06advice\x19\0\x1f\x04\0\x19[method]descriptor.adv\
ise\x01%\x01C\x01\x04self\x1d\0\x1f\x04\0\x1c[method]descriptor.sync-data\x01&\x01\
j\x01\x08\x01\x17\x01C\x01\x04self\x1d\0'\x04\0\x1c[method]descriptor.get-flags\x01\
(\x01j\x01\x06\x01\x17\x01C\x01\x04self\x1d\0)\x04\0\x1b[method]descriptor.get-t\
ype\x01*\x01C\x02\x04self\x1d\x04size\x03\0\x1f\x04\0\x1b[method]descriptor.set-\
size\x01+\x01C\x03\x04self\x1d\x15data-access-timestamp\x13\x1bdata-modification\
-timestamp\x13\0\x1f\x04\0\x1c[method]descriptor.set-times\x01,\x01f\x01\x15\x01\
o\x02-\x20\x01@\x01\x04self\x1d\0.\x04\0![method]descriptor.read-directory\x01/\x04\
\0\x17[method]descriptor.sync\x01&\x01C\x02\x04self\x1d\x04paths\0\x1f\x04\0&[me\
thod]descriptor.create-directory-at\x010\x01j\x01\x11\x01\x17\x01C\x01\x04self\x1d\
\01\x04\0\x17[method]descriptor.stat\x012\x01C\x03\x04self\x1d\x0apath-flags\x0a\
\x04paths\01\x04\0\x1a[method]descriptor.stat-at\x013\x01C\x05\x04self\x1d\x0apa\
th-flags\x0a\x04paths\x15data-access-timestamp\x13\x1bdata-modification-timestam\
p\x13\0\x1f\x04\0\x1f[method]descriptor.set-times-at\x014\x01C\x05\x04self\x1d\x0e\
old-path-flags\x0a\x08old-paths\x0enew-descriptor\x1d\x08new-paths\0\x1f\x04\0\x1a\
[method]descriptor.link-at\x015\x01i\x1c\x01j\x016\x01\x17\x01C\x05\x04self\x1d\x0a\
path-flags\x0a\x04paths\x0aopen-flags\x0c\x05flags\x08\07\x04\0\x1a[method]descr\
iptor.open-at\x018\x01j\x01s\x01\x17\x01C\x02\x04self\x1d\x04paths\09\x04\0\x1e[\
method]descriptor.readlink-at\x01:\x04\0&[method]descriptor.remove-directory-at\x01\
0\x01C\x04\x04self\x1d\x08old-paths\x0enew-descriptor\x1d\x08new-paths\0\x1f\x04\
\0\x1c[method]descriptor.rename-at\x01;\x01C\x03\x04self\x1d\x08old-paths\x08new\
-paths\0\x1f\x04\0\x1d[method]descriptor.symlink-at\x01<\x04\0![method]descripto\
r.unlink-file-at\x010\x01C\x02\x04self\x1d\x05other\x1d\0\x7f\x04\0![method]desc\
riptor.is-same-object\x01=\x01j\x01\x1b\x01\x17\x01C\x01\x04self\x1d\0>\x04\0\x20\
[method]descriptor.metadata-hash\x01?\x01C\x03\x04self\x1d\x0apath-flags\x0a\x04\
paths\0>\x04\0#[method]descriptor.metadata-hash-at\x01@\x03\0)wasi:filesystem/ty\
pes@0.3.0-rc-2026-03-15\x05\x13\x02\x03\0\x0e\x0adescriptor\x01B\x07\x02\x03\x02\
\x01\x14\x04\0\x0adescriptor\x03\0\0\x01i\x01\x01o\x02\x02s\x01p\x03\x01@\0\0\x04\
\x04\0\x0fget-directories\x01\x05\x03\0,wasi:filesystem/preopens@0.3.0-rc-2026-0\
3-15\x05\x15\x01Br\x02\x03\x02\x01\x0f\x04\0\x08duration\x03\0\0\x01ks\x01q\x0f\x0d\
access-denied\0\0\x0dnot-supported\0\0\x10invalid-argument\0\0\x0dout-of-memory\0\
\0\x07timeout\0\0\x0dinvalid-state\0\0\x14address-not-bindable\0\0\x0eaddress-in\
-use\0\0\x12remote-unreachable\0\0\x12connection-refused\0\0\x11connection-broke\
n\0\0\x10connection-reset\0\0\x12connection-aborted\0\0\x12datagram-too-large\0\0\
\x05other\x01\x02\0\x04\0\x0aerror-code\x03\0\x03\x01m\x02\x04ipv4\x04ipv6\x04\0\
\x11ip-address-family\x03\0\x05\x01o\x04}}}}\x04\0\x0cipv4-address\x03\0\x07\x01\
o\x08{{{{{{{{\x04\0\x0cipv6-address\x03\0\x09\x01q\x02\x04ipv4\x01\x08\0\x04ipv6\
\x01\x0a\0\x04\0\x0aip-address\x03\0\x0b\x01r\x02\x04port{\x07address\x08\x04\0\x13\
ipv4-socket-address\x03\0\x0d\x01r\x04\x04port{\x09flow-infoy\x07address\x0a\x08\
scope-idy\x04\0\x13ipv6-socket-address\x03\0\x0f\x01q\x02\x04ipv4\x01\x0e\0\x04i\
pv6\x01\x10\0\x04\0\x11ip-socket-address\x03\0\x11\x04\0\x0atcp-socket\x03\x01\x04\
\0\x0audp-socket\x03\x01\x01i\x13\x01j\x01\x15\x01\x04\x01@\x01\x0eaddress-famil\
y\x06\0\x16\x04\0\x19[static]tcp-socket.create\x01\x17\x01h\x13\x01j\0\x01\x04\x01\
@\x02\x04self\x18\x0dlocal-address\x12\0\x19\x04\0\x17[method]tcp-socket.bind\x01\
\x1a\x01C\x02\x04self\x18\x0eremote-address\x12\0\x19\x04\0\x1a[method]tcp-socke\
t.connect\x01\x1b\x01f\x01\x15\x01j\x01\x1c\x01\x04\x01@\x01\x04self\x18\0\x1d\x04\
\0\x19[method]tcp-socket.listen\x01\x1e\x01f\x01}\x01e\x01\x19\x01@\x02\x04self\x18\
\x04data\x1f\0\x20\x04\0\x17[method]tcp-socket.send\x01!\x01o\x02\x1f\x20\x01@\x01\
\x04self\x18\0\"\x04\0\x1a[method]tcp-socket.receive\x01#\x01j\x01\x12\x01\x04\x01\
@\x01\x04self\x18\0$\x04\0$[method]tcp-socket.get-local-address\x01%\x04\0%[meth\
od]tcp-socket.get-remote-address\x01%\x01@\x01\x04self\x18\0\x7f\x04\0#[method]t\
cp-socket.get-is-listening\x01&\x01@\x01\x04self\x18\0\x06\x04\0%[method]tcp-soc\
ket.get-address-family\x01'\x01@\x02\x04self\x18\x05valuew\0\x19\x04\0*[method]t\
cp-socket.set-listen-backlog-size\x01(\x01j\x01\x7f\x01\x04\x01@\x01\x04self\x18\
\0)\x04\0)[method]tcp-socket.get-keep-alive-enabled\x01*\x01@\x02\x04self\x18\x05\
value\x7f\0\x19\x04\0)[method]tcp-socket.set-keep-alive-enabled\x01+\x01j\x01\x01\
\x01\x04\x01@\x01\x04self\x18\0,\x04\0+[method]tcp-socket.get-keep-alive-idle-ti\
me\x01-\x01@\x02\x04self\x18\x05value\x01\0\x19\x04\0+[method]tcp-socket.set-kee\
p-alive-idle-time\x01.\x04\0*[method]tcp-socket.get-keep-alive-interval\x01-\x04\
\0*[method]tcp-socket.set-keep-alive-interval\x01.\x01j\x01y\x01\x04\x01@\x01\x04\
self\x18\0/\x04\0'[method]tcp-socket.get-keep-alive-count\x010\x01@\x02\x04self\x18\
\x05valuey\0\x19\x04\0'[method]tcp-socket.set-keep-alive-count\x011\x01j\x01}\x01\
\x04\x01@\x01\x04self\x18\02\x04\0\x20[method]tcp-socket.get-hop-limit\x013\x01@\
\x02\x04self\x18\x05value}\0\x19\x04\0\x20[method]tcp-socket.set-hop-limit\x014\x01\
j\x01w\x01\x04\x01@\x01\x04self\x18\05\x04\0*[method]tcp-socket.get-receive-buff\
er-size\x016\x04\0*[method]tcp-socket.set-receive-buffer-size\x01(\x04\0'[method\
]tcp-socket.get-send-buffer-size\x016\x04\0'[method]tcp-socket.set-send-buffer-s\
ize\x01(\x01i\x14\x01j\x017\x01\x04\x01@\x01\x0eaddress-family\x06\08\x04\0\x19[\
static]udp-socket.create\x019\x01h\x14\x01@\x02\x04self:\x0dlocal-address\x12\0\x19\
\x04\0\x17[method]udp-socket.bind\x01;\x01@\x02\x04self:\x0eremote-address\x12\0\
\x19\x04\0\x1a[method]udp-socket.connect\x01<\x01@\x01\x04self:\0\x19\x04\0\x1d[\
method]udp-socket.disconnect\x01=\x01p}\x01k\x12\x01C\x03\x04self:\x04data>\x0er\
emote-address?\0\x19\x04\0\x17[method]udp-socket.send\x01@\x01o\x02>\x12\x01j\x01\
\xc1\0\x01\x04\x01C\x01\x04self:\0\xc2\0\x04\0\x1a[method]udp-socket.receive\x01\
C\x01@\x01\x04self:\0$\x04\0$[method]udp-socket.get-local-address\x01D\x04\0%[me\
thod]udp-socket.get-remote-address\x01D\x01@\x01\x04self:\0\x06\x04\0%[method]ud\
p-socket.get-address-family\x01E\x01@\x01\x04self:\02\x04\0([method]udp-socket.g\
et-unicast-hop-limit\x01F\x01@\x02\x04self:\x05value}\0\x19\x04\0([method]udp-so\
cket.set-unicast-hop-limit\x01G\x01@\x01\x04self:\05\x04\0*[method]udp-socket.ge\
t-receive-buffer-size\x01H\x01@\x02\x04self:\x05valuew\0\x19\x04\0*[method]udp-s\
ocket.set-receive-buffer-size\x01I\x04\0'[method]udp-socket.get-send-buffer-size\
\x01H\x04\0'[method]udp-socket.set-send-buffer-size\x01I\x03\0&wasi:sockets/type\
s@0.3.0-rc-2026-03-15\x05\x16\x02\x03\0\x10\x0aip-address\x01B\x09\x02\x03\x02\x01\
\x17\x04\0\x0aip-address\x03\0\0\x01ks\x01q\x06\x0daccess-denied\0\0\x10invalid-\
argument\0\0\x11name-unresolvable\0\0\x1atemporary-resolver-failure\0\0\x1aperma\
nent-resolver-failure\0\0\x05other\x01\x02\0\x04\0\x0aerror-code\x03\0\x03\x01p\x01\
\x01j\x01\x05\x01\x04\x01C\x01\x04names\0\x06\x04\0\x11resolve-addresses\x01\x07\
\x03\0/wasi:sockets/ip-name-lookup@0.3.0-rc-2026-03-15\x05\x18\x01B\x05\x01p}\x01\
@\x01\x07max-lenw\0\0\x04\0\x10get-random-bytes\x01\x01\x01@\0\0w\x04\0\x0eget-r\
andom-u64\x01\x02\x03\0&wasi:random/random@0.3.0-rc-2026-03-15\x05\x19\x01B\x05\x01\
p}\x01@\x01\x07max-lenw\0\0\x04\0\x19get-insecure-random-bytes\x01\x01\x01@\0\0w\
\x04\0\x17get-insecure-random-u64\x01\x02\x03\0(wasi:random/insecure@0.3.0-rc-20\
26-03-15\x05\x1a\x01B\x03\x01o\x02ww\x01@\0\0\0\x04\0\x11get-insecure-seed\x01\x01\
\x03\0-wasi:random/insecure-seed@0.3.0-rc-2026-03-15\x05\x1b\x01B\x03\x01j\0\0\x01\
C\0\0\0\x04\0\x03run\x01\x01\x04\0\x20wasi:cli/run@0.3.0-rc-2026-03-15\x05\x1c\x04\
\0$wasi:cli/command@0.3.0-rc-2026-03-15\x04\0\x0b\x0d\x01\0\x07command\x03\0\0\0\
G\x09producers\x01\x0cprocessed-by\x02\x0dwit-component\x070.247.0\x10wit-bindge\
n-rust\x060.57.1";
        };
    };
}
#[doc(inline)]
pub use __export_command_impl as _export_command;
#[rustfmt::skip]
#[cfg(target_arch = "wasm32")]

#[cfg_attr(feature = "rustc-dep-of-std", unsafe(link_section = "component-type:wit-bindgen:0.57.1:wasi:cli@0.3.0-rc-2026-03-15:command-with-all-of-its-exports-removed:encoded worldrust-wasip3-0.6.0+wasi-0.3.0-rc-2026-03-15-from-crates-io-command-world-in-libstd"))]
#[cfg_attr(not(feature = "rustc-dep-of-std"), unsafe(link_section = "component-type:wit-bindgen:0.57.1:wasi:cli@0.3.0-rc-2026-03-15:command-with-all-of-its-exports-removed:encoded worldrust-wasip3-0.6.0+wasi-0.3.0-rc-2026-03-15-from-crates-io-command-world"))]

#[doc(hidden)]
#[allow(clippy::octal_escapes)]
pub static __WIT_BINDGEN_COMPONENT_TYPE: [u8; 8226] = *b"\
\0asm\x0d\0\x01\0\0\x19\x16wit-component-encoding\x04\0\x07\x84?\x01A\x02\x01A1\x01\
B\x0a\x01o\x02ss\x01p\0\x01@\0\0\x01\x04\0\x0fget-environment\x01\x02\x01ps\x01@\
\0\0\x03\x04\0\x0dget-arguments\x01\x04\x01ks\x01@\0\0\x05\x04\0\x0fget-initial-\
cwd\x01\x06\x03\0(wasi:cli/environment@0.3.0-rc-2026-03-15\x05\0\x01B\x03\x01j\0\
\0\x01@\x01\x06status\0\x01\0\x04\0\x04exit\x01\x01\x03\0!wasi:cli/exit@0.3.0-rc\
-2026-03-15\x05\x01\x01B\x02\x01m\x03\x02io\x15illegal-byte-sequence\x04pipe\x04\
\0\x0aerror-code\x03\0\0\x03\0\"wasi:cli/types@0.3.0-rc-2026-03-15\x05\x02\x02\x03\
\0\x02\x0aerror-code\x01B\x08\x02\x03\x02\x01\x03\x04\0\x0aerror-code\x03\0\0\x01\
f\x01}\x01j\0\x01\x01\x01e\x01\x03\x01o\x02\x02\x04\x01@\0\0\x05\x04\0\x0fread-v\
ia-stream\x01\x06\x03\0\"wasi:cli/stdin@0.3.0-rc-2026-03-15\x05\x04\x01B\x07\x02\
\x03\x02\x01\x03\x04\0\x0aerror-code\x03\0\0\x01f\x01}\x01j\0\x01\x01\x01e\x01\x03\
\x01@\x01\x04data\x02\0\x04\x04\0\x10write-via-stream\x01\x05\x03\0#wasi:cli/std\
out@0.3.0-rc-2026-03-15\x05\x05\x01B\x07\x02\x03\x02\x01\x03\x04\0\x0aerror-code\
\x03\0\0\x01f\x01}\x01j\0\x01\x01\x01e\x01\x03\x01@\x01\x04data\x02\0\x04\x04\0\x10\
write-via-stream\x01\x05\x03\0#wasi:cli/stderr@0.3.0-rc-2026-03-15\x05\x06\x01B\x01\
\x04\0\x0eterminal-input\x03\x01\x03\0+wasi:cli/terminal-input@0.3.0-rc-2026-03-\
15\x05\x07\x01B\x01\x04\0\x0fterminal-output\x03\x01\x03\0,wasi:cli/terminal-out\
put@0.3.0-rc-2026-03-15\x05\x08\x02\x03\0\x06\x0eterminal-input\x01B\x06\x02\x03\
\x02\x01\x09\x04\0\x0eterminal-input\x03\0\0\x01i\x01\x01k\x02\x01@\0\0\x03\x04\0\
\x12get-terminal-stdin\x01\x04\x03\0+wasi:cli/terminal-stdin@0.3.0-rc-2026-03-15\
\x05\x0a\x02\x03\0\x07\x0fterminal-output\x01B\x06\x02\x03\x02\x01\x0b\x04\0\x0f\
terminal-output\x03\0\0\x01i\x01\x01k\x02\x01@\0\0\x03\x04\0\x13get-terminal-std\
out\x01\x04\x03\0,wasi:cli/terminal-stdout@0.3.0-rc-2026-03-15\x05\x0c\x01B\x06\x02\
\x03\x02\x01\x0b\x04\0\x0fterminal-output\x03\0\0\x01i\x01\x01k\x02\x01@\0\0\x03\
\x04\0\x13get-terminal-stderr\x01\x04\x03\0,wasi:cli/terminal-stderr@0.3.0-rc-20\
26-03-15\x05\x0d\x01B\x02\x01w\x04\0\x08duration\x03\0\0\x03\0%wasi:clocks/types\
@0.3.0-rc-2026-03-15\x05\x0e\x02\x03\0\x0b\x08duration\x01B\x0c\x02\x03\x02\x01\x0f\
\x04\0\x08duration\x03\0\0\x01w\x04\0\x04mark\x03\0\x02\x01@\0\0\x03\x04\0\x03no\
w\x01\x04\x01@\0\0\x01\x04\0\x0eget-resolution\x01\x05\x01C\x01\x04when\x03\x01\0\
\x04\0\x0await-until\x01\x06\x01C\x01\x08how-long\x01\x01\0\x04\0\x08wait-for\x01\
\x07\x03\0/wasi:clocks/monotonic-clock@0.3.0-rc-2026-03-15\x05\x10\x01B\x08\x02\x03\
\x02\x01\x0f\x04\0\x08duration\x03\0\0\x01r\x02\x07secondsx\x0bnanosecondsy\x04\0\
\x07instant\x03\0\x02\x01@\0\0\x03\x04\0\x03now\x01\x04\x01@\0\0\x01\x04\0\x0ege\
t-resolution\x01\x05\x03\0,wasi:clocks/system-clock@0.3.0-rc-2026-03-15\x05\x11\x02\
\x03\0\x0d\x07instant\x01BZ\x02\x03\x02\x01\x12\x04\0\x07instant\x03\0\0\x01w\x04\
\0\x08filesize\x03\0\x02\x01ks\x01q\x08\x0cblock-device\0\0\x10character-device\0\
\0\x09directory\0\0\x04fifo\0\0\x0dsymbolic-link\0\0\x0cregular-file\0\0\x06sock\
et\0\0\x05other\x01\x04\0\x04\0\x0fdescriptor-type\x03\0\x05\x01n\x06\x04read\x05\
write\x13file-integrity-sync\x13data-integrity-sync\x14requested-write-sync\x10m\
utate-directory\x04\0\x10descriptor-flags\x03\0\x07\x01n\x01\x0esymlink-follow\x04\
\0\x0apath-flags\x03\0\x09\x01n\x04\x06create\x09directory\x09exclusive\x08trunc\
ate\x04\0\x0aopen-flags\x03\0\x0b\x01w\x04\0\x0alink-count\x03\0\x0d\x01k\x01\x01\
r\x06\x04type\x06\x0alink-count\x0e\x04size\x03\x15data-access-timestamp\x0f\x1b\
data-modification-timestamp\x0f\x17status-change-timestamp\x0f\x04\0\x0fdescript\
or-stat\x03\0\x10\x01q\x03\x09no-change\0\0\x03now\0\0\x09timestamp\x01\x01\0\x04\
\0\x0dnew-timestamp\x03\0\x12\x01r\x02\x04type\x06\x04names\x04\0\x0fdirectory-e\
ntry\x03\0\x14\x01q%\x06access\0\0\x07already\0\0\x0ebad-descriptor\0\0\x04busy\0\
\0\x08deadlock\0\0\x05quota\0\0\x05exist\0\0\x0efile-too-large\0\0\x15illegal-by\
te-sequence\0\0\x0bin-progress\0\0\x0binterrupted\0\0\x07invalid\0\0\x02io\0\0\x0c\
is-directory\0\0\x04loop\0\0\x0etoo-many-links\0\0\x0cmessage-size\0\0\x0dname-t\
oo-long\0\0\x09no-device\0\0\x08no-entry\0\0\x07no-lock\0\0\x13insufficient-memo\
ry\0\0\x12insufficient-space\0\0\x0dnot-directory\0\0\x09not-empty\0\0\x0fnot-re\
coverable\0\0\x0bunsupported\0\0\x06no-tty\0\0\x0eno-such-device\0\0\x08overflow\
\0\0\x0dnot-permitted\0\0\x04pipe\0\0\x09read-only\0\0\x0cinvalid-seek\0\0\x0ete\
xt-file-busy\0\0\x0ccross-device\0\0\x05other\x01\x04\0\x04\0\x0aerror-code\x03\0\
\x16\x01m\x06\x06normal\x0asequential\x06random\x09will-need\x09dont-need\x08no-\
reuse\x04\0\x06advice\x03\0\x18\x01r\x02\x05lowerw\x05upperw\x04\0\x13metadata-h\
ash-value\x03\0\x1a\x04\0\x0adescriptor\x03\x01\x01h\x1c\x01f\x01}\x01j\0\x01\x17\
\x01e\x01\x1f\x01o\x02\x1e\x20\x01@\x02\x04self\x1d\x06offset\x03\0!\x04\0\"[met\
hod]descriptor.read-via-stream\x01\"\x01@\x03\x04self\x1d\x04data\x1e\x06offset\x03\
\0\x20\x04\0#[method]descriptor.write-via-stream\x01#\x01@\x02\x04self\x1d\x04da\
ta\x1e\0\x20\x04\0$[method]descriptor.append-via-stream\x01$\x01C\x04\x04self\x1d\
\x06offset\x03\x06length\x03\x06advice\x19\0\x1f\x04\0\x19[method]descriptor.adv\
ise\x01%\x01C\x01\x04self\x1d\0\x1f\x04\0\x1c[method]descriptor.sync-data\x01&\x01\
j\x01\x08\x01\x17\x01C\x01\x04self\x1d\0'\x04\0\x1c[method]descriptor.get-flags\x01\
(\x01j\x01\x06\x01\x17\x01C\x01\x04self\x1d\0)\x04\0\x1b[method]descriptor.get-t\
ype\x01*\x01C\x02\x04self\x1d\x04size\x03\0\x1f\x04\0\x1b[method]descriptor.set-\
size\x01+\x01C\x03\x04self\x1d\x15data-access-timestamp\x13\x1bdata-modification\
-timestamp\x13\0\x1f\x04\0\x1c[method]descriptor.set-times\x01,\x01f\x01\x15\x01\
o\x02-\x20\x01@\x01\x04self\x1d\0.\x04\0![method]descriptor.read-directory\x01/\x04\
\0\x17[method]descriptor.sync\x01&\x01C\x02\x04self\x1d\x04paths\0\x1f\x04\0&[me\
thod]descriptor.create-directory-at\x010\x01j\x01\x11\x01\x17\x01C\x01\x04self\x1d\
\01\x04\0\x17[method]descriptor.stat\x012\x01C\x03\x04self\x1d\x0apath-flags\x0a\
\x04paths\01\x04\0\x1a[method]descriptor.stat-at\x013\x01C\x05\x04self\x1d\x0apa\
th-flags\x0a\x04paths\x15data-access-timestamp\x13\x1bdata-modification-timestam\
p\x13\0\x1f\x04\0\x1f[method]descriptor.set-times-at\x014\x01C\x05\x04self\x1d\x0e\
old-path-flags\x0a\x08old-paths\x0enew-descriptor\x1d\x08new-paths\0\x1f\x04\0\x1a\
[method]descriptor.link-at\x015\x01i\x1c\x01j\x016\x01\x17\x01C\x05\x04self\x1d\x0a\
path-flags\x0a\x04paths\x0aopen-flags\x0c\x05flags\x08\07\x04\0\x1a[method]descr\
iptor.open-at\x018\x01j\x01s\x01\x17\x01C\x02\x04self\x1d\x04paths\09\x04\0\x1e[\
method]descriptor.readlink-at\x01:\x04\0&[method]descriptor.remove-directory-at\x01\
0\x01C\x04\x04self\x1d\x08old-paths\x0enew-descriptor\x1d\x08new-paths\0\x1f\x04\
\0\x1c[method]descriptor.rename-at\x01;\x01C\x03\x04self\x1d\x08old-paths\x08new\
-paths\0\x1f\x04\0\x1d[method]descriptor.symlink-at\x01<\x04\0![method]descripto\
r.unlink-file-at\x010\x01C\x02\x04self\x1d\x05other\x1d\0\x7f\x04\0![method]desc\
riptor.is-same-object\x01=\x01j\x01\x1b\x01\x17\x01C\x01\x04self\x1d\0>\x04\0\x20\
[method]descriptor.metadata-hash\x01?\x01C\x03\x04self\x1d\x0apath-flags\x0a\x04\
paths\0>\x04\0#[method]descriptor.metadata-hash-at\x01@\x03\0)wasi:filesystem/ty\
pes@0.3.0-rc-2026-03-15\x05\x13\x02\x03\0\x0e\x0adescriptor\x01B\x07\x02\x03\x02\
\x01\x14\x04\0\x0adescriptor\x03\0\0\x01i\x01\x01o\x02\x02s\x01p\x03\x01@\0\0\x04\
\x04\0\x0fget-directories\x01\x05\x03\0,wasi:filesystem/preopens@0.3.0-rc-2026-0\
3-15\x05\x15\x01Br\x02\x03\x02\x01\x0f\x04\0\x08duration\x03\0\0\x01ks\x01q\x0f\x0d\
access-denied\0\0\x0dnot-supported\0\0\x10invalid-argument\0\0\x0dout-of-memory\0\
\0\x07timeout\0\0\x0dinvalid-state\0\0\x14address-not-bindable\0\0\x0eaddress-in\
-use\0\0\x12remote-unreachable\0\0\x12connection-refused\0\0\x11connection-broke\
n\0\0\x10connection-reset\0\0\x12connection-aborted\0\0\x12datagram-too-large\0\0\
\x05other\x01\x02\0\x04\0\x0aerror-code\x03\0\x03\x01m\x02\x04ipv4\x04ipv6\x04\0\
\x11ip-address-family\x03\0\x05\x01o\x04}}}}\x04\0\x0cipv4-address\x03\0\x07\x01\
o\x08{{{{{{{{\x04\0\x0cipv6-address\x03\0\x09\x01q\x02\x04ipv4\x01\x08\0\x04ipv6\
\x01\x0a\0\x04\0\x0aip-address\x03\0\x0b\x01r\x02\x04port{\x07address\x08\x04\0\x13\
ipv4-socket-address\x03\0\x0d\x01r\x04\x04port{\x09flow-infoy\x07address\x0a\x08\
scope-idy\x04\0\x13ipv6-socket-address\x03\0\x0f\x01q\x02\x04ipv4\x01\x0e\0\x04i\
pv6\x01\x10\0\x04\0\x11ip-socket-address\x03\0\x11\x04\0\x0atcp-socket\x03\x01\x04\
\0\x0audp-socket\x03\x01\x01i\x13\x01j\x01\x15\x01\x04\x01@\x01\x0eaddress-famil\
y\x06\0\x16\x04\0\x19[static]tcp-socket.create\x01\x17\x01h\x13\x01j\0\x01\x04\x01\
@\x02\x04self\x18\x0dlocal-address\x12\0\x19\x04\0\x17[method]tcp-socket.bind\x01\
\x1a\x01C\x02\x04self\x18\x0eremote-address\x12\0\x19\x04\0\x1a[method]tcp-socke\
t.connect\x01\x1b\x01f\x01\x15\x01j\x01\x1c\x01\x04\x01@\x01\x04self\x18\0\x1d\x04\
\0\x19[method]tcp-socket.listen\x01\x1e\x01f\x01}\x01e\x01\x19\x01@\x02\x04self\x18\
\x04data\x1f\0\x20\x04\0\x17[method]tcp-socket.send\x01!\x01o\x02\x1f\x20\x01@\x01\
\x04self\x18\0\"\x04\0\x1a[method]tcp-socket.receive\x01#\x01j\x01\x12\x01\x04\x01\
@\x01\x04self\x18\0$\x04\0$[method]tcp-socket.get-local-address\x01%\x04\0%[meth\
od]tcp-socket.get-remote-address\x01%\x01@\x01\x04self\x18\0\x7f\x04\0#[method]t\
cp-socket.get-is-listening\x01&\x01@\x01\x04self\x18\0\x06\x04\0%[method]tcp-soc\
ket.get-address-family\x01'\x01@\x02\x04self\x18\x05valuew\0\x19\x04\0*[method]t\
cp-socket.set-listen-backlog-size\x01(\x01j\x01\x7f\x01\x04\x01@\x01\x04self\x18\
\0)\x04\0)[method]tcp-socket.get-keep-alive-enabled\x01*\x01@\x02\x04self\x18\x05\
value\x7f\0\x19\x04\0)[method]tcp-socket.set-keep-alive-enabled\x01+\x01j\x01\x01\
\x01\x04\x01@\x01\x04self\x18\0,\x04\0+[method]tcp-socket.get-keep-alive-idle-ti\
me\x01-\x01@\x02\x04self\x18\x05value\x01\0\x19\x04\0+[method]tcp-socket.set-kee\
p-alive-idle-time\x01.\x04\0*[method]tcp-socket.get-keep-alive-interval\x01-\x04\
\0*[method]tcp-socket.set-keep-alive-interval\x01.\x01j\x01y\x01\x04\x01@\x01\x04\
self\x18\0/\x04\0'[method]tcp-socket.get-keep-alive-count\x010\x01@\x02\x04self\x18\
\x05valuey\0\x19\x04\0'[method]tcp-socket.set-keep-alive-count\x011\x01j\x01}\x01\
\x04\x01@\x01\x04self\x18\02\x04\0\x20[method]tcp-socket.get-hop-limit\x013\x01@\
\x02\x04self\x18\x05value}\0\x19\x04\0\x20[method]tcp-socket.set-hop-limit\x014\x01\
j\x01w\x01\x04\x01@\x01\x04self\x18\05\x04\0*[method]tcp-socket.get-receive-buff\
er-size\x016\x04\0*[method]tcp-socket.set-receive-buffer-size\x01(\x04\0'[method\
]tcp-socket.get-send-buffer-size\x016\x04\0'[method]tcp-socket.set-send-buffer-s\
ize\x01(\x01i\x14\x01j\x017\x01\x04\x01@\x01\x0eaddress-family\x06\08\x04\0\x19[\
static]udp-socket.create\x019\x01h\x14\x01@\x02\x04self:\x0dlocal-address\x12\0\x19\
\x04\0\x17[method]udp-socket.bind\x01;\x01@\x02\x04self:\x0eremote-address\x12\0\
\x19\x04\0\x1a[method]udp-socket.connect\x01<\x01@\x01\x04self:\0\x19\x04\0\x1d[\
method]udp-socket.disconnect\x01=\x01p}\x01k\x12\x01C\x03\x04self:\x04data>\x0er\
emote-address?\0\x19\x04\0\x17[method]udp-socket.send\x01@\x01o\x02>\x12\x01j\x01\
\xc1\0\x01\x04\x01C\x01\x04self:\0\xc2\0\x04\0\x1a[method]udp-socket.receive\x01\
C\x01@\x01\x04self:\0$\x04\0$[method]udp-socket.get-local-address\x01D\x04\0%[me\
thod]udp-socket.get-remote-address\x01D\x01@\x01\x04self:\0\x06\x04\0%[method]ud\
p-socket.get-address-family\x01E\x01@\x01\x04self:\02\x04\0([method]udp-socket.g\
et-unicast-hop-limit\x01F\x01@\x02\x04self:\x05value}\0\x19\x04\0([method]udp-so\
cket.set-unicast-hop-limit\x01G\x01@\x01\x04self:\05\x04\0*[method]udp-socket.ge\
t-receive-buffer-size\x01H\x01@\x02\x04self:\x05valuew\0\x19\x04\0*[method]udp-s\
ocket.set-receive-buffer-size\x01I\x04\0'[method]udp-socket.get-send-buffer-size\
\x01H\x04\0'[method]udp-socket.set-send-buffer-size\x01I\x03\0&wasi:sockets/type\
s@0.3.0-rc-2026-03-15\x05\x16\x02\x03\0\x10\x0aip-address\x01B\x09\x02\x03\x02\x01\
\x17\x04\0\x0aip-address\x03\0\0\x01ks\x01q\x06\x0daccess-denied\0\0\x10invalid-\
argument\0\0\x11name-unresolvable\0\0\x1atemporary-resolver-failure\0\0\x1aperma\
nent-resolver-failure\0\0\x05other\x01\x02\0\x04\0\x0aerror-code\x03\0\x03\x01p\x01\
\x01j\x01\x05\x01\x04\x01C\x01\x04names\0\x06\x04\0\x11resolve-addresses\x01\x07\
\x03\0/wasi:sockets/ip-name-lookup@0.3.0-rc-2026-03-15\x05\x18\x01B\x05\x01p}\x01\
@\x01\x07max-lenw\0\0\x04\0\x10get-random-bytes\x01\x01\x01@\0\0w\x04\0\x0eget-r\
andom-u64\x01\x02\x03\0&wasi:random/random@0.3.0-rc-2026-03-15\x05\x19\x01B\x05\x01\
p}\x01@\x01\x07max-lenw\0\0\x04\0\x19get-insecure-random-bytes\x01\x01\x01@\0\0w\
\x04\0\x17get-insecure-random-u64\x01\x02\x03\0(wasi:random/insecure@0.3.0-rc-20\
26-03-15\x05\x1a\x01B\x03\x01o\x02ww\x01@\0\0\0\x04\0\x11get-insecure-seed\x01\x01\
\x03\0-wasi:random/insecure-seed@0.3.0-rc-2026-03-15\x05\x1b\x04\0Dwasi:cli/comm\
and-with-all-of-its-exports-removed@0.3.0-rc-2026-03-15\x04\0\x0b-\x01\0'command\
-with-all-of-its-exports-removed\x03\0\0\0G\x09producers\x01\x0cprocessed-by\x02\
\x0dwit-component\x070.247.0\x10wit-bindgen-rust\x060.57.1";
#[inline(never)]
#[doc(hidden)]
pub fn __link_custom_section_describing_imports() {
    wit_bindgen::rt::maybe_link_cabi_realloc();
}