From a08799767819292d06c2b425d17fd7495059a953 Mon Sep 17 00:00:00 2001 From: Till Schneidereit Date: Fri, 21 Jun 2024 19:43:33 +0200 Subject: [PATCH] Remove host API implementations targeting WASIp2 prereleases. Closes #65. --- README.md | 6 +- .../bindings/bindings.c | 5726 ----------- .../bindings/bindings.h | 2909 ------ .../bindings/bindings_component_type.o | Bin 41353 -> 0 bytes .../wasi-0.2.0-rc-2023-10-18/host_api.cpp | 963 -- .../wasi-0.2.0-rc-2023-10-18/host_call.cpp | 11 - .../include/exports.h | 13 - .../wasi_snapshot_preview1.wasm | Bin 2357703 -> 0 bytes .../wasi_snapshot_preview1.wasm | Bin 109319 -> 0 bytes .../wit/command-extended.wit | 37 - .../wit/deps/cli/command.wit | 7 - .../wit/deps/cli/environment.wit | 18 - .../wit/deps/cli/exit.wit | 4 - .../wit/deps/cli/reactor.wit | 32 - .../wit/deps/cli/run.wit | 4 - .../wit/deps/cli/stdio.wit | 17 - .../wit/deps/cli/terminal.wit | 47 - .../wit/deps/clocks/monotonic-clock.wit | 32 - .../wit/deps/clocks/timezone.wit | 48 - .../wit/deps/clocks/wall-clock.wit | 41 - .../wit/deps/clocks/world.wit | 7 - .../wit/deps/filesystem/preopens.wit | 6 - .../wit/deps/filesystem/types.wit | 810 -- .../wit/deps/filesystem/world.wit | 6 - .../wit/deps/http/incoming-handler.wit | 24 - .../wit/deps/http/outgoing-handler.wit | 20 - .../wit/deps/http/proxy.wit | 34 - .../wit/deps/http/types.wit | 214 - .../wit/deps/io/poll.wit | 34 - .../wit/deps/io/streams.wit | 289 - .../wit/deps/io/world.wit | 6 - .../wit/deps/logging/logging.wit | 37 - .../wit/deps/logging/world.wit | 5 - .../wit/deps/random/insecure-seed.wit | 24 - .../wit/deps/random/insecure.wit | 21 - .../wit/deps/random/random.wit | 25 - .../wit/deps/random/world.wit | 7 - .../wit/deps/sockets/instance-network.wit | 9 - .../wit/deps/sockets/ip-name-lookup.wit | 61 - .../wit/deps/sockets/network.wit | 146 - .../wit/deps/sockets/tcp-create-socket.wit | 26 - .../wit/deps/sockets/tcp.wit | 268 - .../wit/deps/sockets/udp-create-socket.wit | 26 - .../wit/deps/sockets/udp.wit | 213 - .../wit/deps/sockets/world.wit | 11 - .../wasi-0.2.0-rc-2023-10-18/wit/main.wit | 6 - .../wasi-0.2.0-rc-2023-10-18/wit/test.wit | 46 - .../bindings/bindings.c | 9144 ----------------- .../bindings/bindings.h | 3351 ------ .../bindings/bindings_component_type.o | Bin 32716 -> 0 bytes .../wasi-0.2.0-rc-2023-12-05/host_api.cpp | 1017 -- .../wasi-0.2.0-rc-2023-12-05/host_call.cpp | 11 - .../include/exports.h | 13 - .../wasi_snapshot_preview1.wasm | Bin 2468019 -> 0 bytes .../wasi_snapshot_preview1.wasm | Bin 98729 -> 0 bytes .../wit/command-extended.wit | 6 - .../wit/deps/cli/command.wit | 7 - .../wit/deps/cli/environment.wit | 18 - .../wit/deps/cli/exit.wit | 4 - .../wit/deps/cli/imports.wit | 20 - .../wit/deps/cli/run.wit | 4 - .../wit/deps/cli/stdio.wit | 17 - .../wit/deps/cli/terminal.wit | 47 - .../wit/deps/clocks/monotonic-clock.wit | 45 - .../wit/deps/clocks/wall-clock.wit | 42 - .../wit/deps/clocks/world.wit | 6 - .../wit/deps/filesystem/preopens.wit | 8 - .../wit/deps/filesystem/types.wit | 634 -- .../wit/deps/filesystem/world.wit | 6 - .../wit/deps/http/handler.wit | 43 - .../wit/deps/http/proxy.wit | 32 - .../wit/deps/http/types.wit | 570 - .../wit/deps/io/error.wit | 34 - .../wit/deps/io/poll.wit | 41 - .../wit/deps/io/streams.wit | 251 - .../wit/deps/io/world.wit | 6 - .../wit/deps/random/insecure-seed.wit | 25 - .../wit/deps/random/insecure.wit | 22 - .../wit/deps/random/random.wit | 26 - .../wit/deps/random/world.wit | 7 - .../wit/deps/sockets/instance-network.wit | 9 - .../wit/deps/sockets/ip-name-lookup.wit | 51 - .../wit/deps/sockets/network.wit | 147 - .../wit/deps/sockets/tcp-create-socket.wit | 26 - .../wit/deps/sockets/tcp.wit | 326 - .../wit/deps/sockets/udp-create-socket.wit | 26 - .../wit/deps/sockets/udp.wit | 277 - .../wit/deps/sockets/world.wit | 11 - .../wasi-0.2.0-rc-2023-12-05/wit/main.wit | 6 - 89 files changed, 5 insertions(+), 28627 deletions(-) delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/bindings/bindings.c delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/bindings/bindings.h delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/bindings/bindings_component_type.o delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/host_api.cpp delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/host_call.cpp delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/include/exports.h delete mode 100755 host-apis/wasi-0.2.0-rc-2023-10-18/preview1-adapter-debug/wasi_snapshot_preview1.wasm delete mode 100755 host-apis/wasi-0.2.0-rc-2023-10-18/preview1-adapter-release/wasi_snapshot_preview1.wasm delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/wit/command-extended.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/cli/command.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/cli/environment.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/cli/exit.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/cli/reactor.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/cli/run.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/cli/stdio.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/cli/terminal.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/clocks/monotonic-clock.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/clocks/timezone.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/clocks/wall-clock.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/clocks/world.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/filesystem/preopens.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/filesystem/types.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/filesystem/world.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/http/incoming-handler.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/http/outgoing-handler.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/http/proxy.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/http/types.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/io/poll.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/io/streams.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/io/world.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/logging/logging.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/logging/world.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/random/insecure-seed.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/random/insecure.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/random/random.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/random/world.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/sockets/instance-network.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/sockets/ip-name-lookup.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/sockets/network.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/sockets/tcp-create-socket.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/sockets/tcp.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/sockets/udp-create-socket.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/sockets/udp.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/sockets/world.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/wit/main.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-10-18/wit/test.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-12-05/bindings/bindings.c delete mode 100644 host-apis/wasi-0.2.0-rc-2023-12-05/bindings/bindings.h delete mode 100644 host-apis/wasi-0.2.0-rc-2023-12-05/bindings/bindings_component_type.o delete mode 100644 host-apis/wasi-0.2.0-rc-2023-12-05/host_api.cpp delete mode 100644 host-apis/wasi-0.2.0-rc-2023-12-05/host_call.cpp delete mode 100644 host-apis/wasi-0.2.0-rc-2023-12-05/include/exports.h delete mode 100755 host-apis/wasi-0.2.0-rc-2023-12-05/preview1-adapter-debug/wasi_snapshot_preview1.wasm delete mode 100755 host-apis/wasi-0.2.0-rc-2023-12-05/preview1-adapter-release/wasi_snapshot_preview1.wasm delete mode 100644 host-apis/wasi-0.2.0-rc-2023-12-05/wit/command-extended.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/cli/command.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/cli/environment.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/cli/exit.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/cli/imports.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/cli/run.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/cli/stdio.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/cli/terminal.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/clocks/monotonic-clock.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/clocks/wall-clock.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/clocks/world.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/filesystem/preopens.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/filesystem/types.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/filesystem/world.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/http/handler.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/http/proxy.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/http/types.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/io/error.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/io/poll.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/io/streams.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/io/world.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/random/insecure-seed.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/random/insecure.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/random/random.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/random/world.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/sockets/instance-network.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/sockets/ip-name-lookup.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/sockets/network.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/sockets/tcp-create-socket.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/sockets/tcp.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/sockets/udp-create-socket.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/sockets/udp.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/sockets/world.wit delete mode 100644 host-apis/wasi-0.2.0-rc-2023-12-05/wit/main.wit diff --git a/README.md b/README.md index c0bde81..4decfb3 100644 --- a/README.md +++ b/README.md @@ -145,6 +145,10 @@ If your builtin requires multiple `.cpp` files, you can pass all of them to `add ### Providing a custom host API implementation -The [host-apis](host-apis) directory contains implementations of the host API for different versions of WASI. Those can be selected by setting the `HOST_API` environment variable to the name of one of the directories. By default, the [wasi-0.2.0](host-apis/wasi-0.2.0) host API is used. +The [host-apis](host-apis) directory can contain implementations of the host API for different +versions of WASI—or in theory any other host interface. Those can be selected by setting the +`HOST_API` environment variable to the +name of one of the directories. Currently, only an implementation in terms of [wasi-0.2.0] +(host-apis/wasi-0.2.0) is provided, and used by default. To provide a custom host API implementation, you can set `HOST_API` to the (absolute) path of a directory containing that implementation. diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/bindings/bindings.c b/host-apis/wasi-0.2.0-rc-2023-10-18/bindings/bindings.c deleted file mode 100644 index d6d85cb..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-10-18/bindings/bindings.c +++ /dev/null @@ -1,5726 +0,0 @@ -// Generated by `wit-bindgen` 0.16.0. DO NOT EDIT! -#include "bindings.h" - - -__attribute__((__import_module__("wasi:clocks/wall-clock@0.2.0-rc-2023-10-18"), __import_name__("now"))) -extern void __wasm_import_wasi_clocks_0_2_0_rc_2023_10_18_wall_clock_now(int32_t); - -__attribute__((__import_module__("wasi:clocks/wall-clock@0.2.0-rc-2023-10-18"), __import_name__("resolution"))) -extern void __wasm_import_wasi_clocks_0_2_0_rc_2023_10_18_wall_clock_resolution(int32_t); - -__attribute__((__import_module__("wasi:io/poll@0.2.0-rc-2023-10-18"), __import_name__("poll-list"))) -extern void __wasm_import_wasi_io_0_2_0_rc_2023_10_18_poll_poll_list(int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:io/poll@0.2.0-rc-2023-10-18"), __import_name__("poll-one"))) -extern void __wasm_import_wasi_io_0_2_0_rc_2023_10_18_poll_poll_one(int32_t); - -__attribute__((__import_module__("wasi:clocks/monotonic-clock@0.2.0-rc-2023-10-18"), __import_name__("now"))) -extern int64_t __wasm_import_wasi_clocks_0_2_0_rc_2023_10_18_monotonic_clock_now(void); - -__attribute__((__import_module__("wasi:clocks/monotonic-clock@0.2.0-rc-2023-10-18"), __import_name__("resolution"))) -extern int64_t __wasm_import_wasi_clocks_0_2_0_rc_2023_10_18_monotonic_clock_resolution(void); - -__attribute__((__import_module__("wasi:clocks/monotonic-clock@0.2.0-rc-2023-10-18"), __import_name__("subscribe"))) -extern int32_t __wasm_import_wasi_clocks_0_2_0_rc_2023_10_18_monotonic_clock_subscribe(int64_t, int32_t); - -__attribute__((__import_module__("wasi:clocks/timezone@0.2.0-rc-2023-10-18"), __import_name__("display"))) -extern void __wasm_import_wasi_clocks_0_2_0_rc_2023_10_18_timezone_display(int64_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:clocks/timezone@0.2.0-rc-2023-10-18"), __import_name__("utc-offset"))) -extern int32_t __wasm_import_wasi_clocks_0_2_0_rc_2023_10_18_timezone_utc_offset(int64_t, int32_t); - -__attribute__((__import_module__("wasi:io/streams@0.2.0-rc-2023-10-18"), __import_name__("[method]error.to-debug-string"))) -extern void __wasm_import_wasi_io_0_2_0_rc_2023_10_18_streams_method_error_to_debug_string(int32_t, int32_t); - -__attribute__((__import_module__("wasi:io/streams@0.2.0-rc-2023-10-18"), __import_name__("[method]input-stream.read"))) -extern void __wasm_import_wasi_io_0_2_0_rc_2023_10_18_streams_method_input_stream_read(int32_t, int64_t, int32_t); - -__attribute__((__import_module__("wasi:io/streams@0.2.0-rc-2023-10-18"), __import_name__("[method]input-stream.blocking-read"))) -extern void __wasm_import_wasi_io_0_2_0_rc_2023_10_18_streams_method_input_stream_blocking_read(int32_t, int64_t, int32_t); - -__attribute__((__import_module__("wasi:io/streams@0.2.0-rc-2023-10-18"), __import_name__("[method]input-stream.skip"))) -extern void __wasm_import_wasi_io_0_2_0_rc_2023_10_18_streams_method_input_stream_skip(int32_t, int64_t, int32_t); - -__attribute__((__import_module__("wasi:io/streams@0.2.0-rc-2023-10-18"), __import_name__("[method]input-stream.blocking-skip"))) -extern void __wasm_import_wasi_io_0_2_0_rc_2023_10_18_streams_method_input_stream_blocking_skip(int32_t, int64_t, int32_t); - -__attribute__((__import_module__("wasi:io/streams@0.2.0-rc-2023-10-18"), __import_name__("[method]input-stream.subscribe"))) -extern int32_t __wasm_import_wasi_io_0_2_0_rc_2023_10_18_streams_method_input_stream_subscribe(int32_t); - -__attribute__((__import_module__("wasi:io/streams@0.2.0-rc-2023-10-18"), __import_name__("[method]output-stream.check-write"))) -extern void __wasm_import_wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_check_write(int32_t, int32_t); - -__attribute__((__import_module__("wasi:io/streams@0.2.0-rc-2023-10-18"), __import_name__("[method]output-stream.write"))) -extern void __wasm_import_wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_write(int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:io/streams@0.2.0-rc-2023-10-18"), __import_name__("[method]output-stream.blocking-write-and-flush"))) -extern void __wasm_import_wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_blocking_write_and_flush(int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:io/streams@0.2.0-rc-2023-10-18"), __import_name__("[method]output-stream.flush"))) -extern void __wasm_import_wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_flush(int32_t, int32_t); - -__attribute__((__import_module__("wasi:io/streams@0.2.0-rc-2023-10-18"), __import_name__("[method]output-stream.blocking-flush"))) -extern void __wasm_import_wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_blocking_flush(int32_t, int32_t); - -__attribute__((__import_module__("wasi:io/streams@0.2.0-rc-2023-10-18"), __import_name__("[method]output-stream.subscribe"))) -extern int32_t __wasm_import_wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_subscribe(int32_t); - -__attribute__((__import_module__("wasi:io/streams@0.2.0-rc-2023-10-18"), __import_name__("[method]output-stream.write-zeroes"))) -extern void __wasm_import_wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_write_zeroes(int32_t, int64_t, int32_t); - -__attribute__((__import_module__("wasi:io/streams@0.2.0-rc-2023-10-18"), __import_name__("[method]output-stream.blocking-write-zeroes-and-flush"))) -extern void __wasm_import_wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_blocking_write_zeroes_and_flush(int32_t, int64_t, int32_t); - -__attribute__((__import_module__("wasi:io/streams@0.2.0-rc-2023-10-18"), __import_name__("[method]output-stream.splice"))) -extern void __wasm_import_wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_splice(int32_t, int32_t, int64_t, int32_t); - -__attribute__((__import_module__("wasi:io/streams@0.2.0-rc-2023-10-18"), __import_name__("[method]output-stream.blocking-splice"))) -extern void __wasm_import_wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_blocking_splice(int32_t, int32_t, int64_t, int32_t); - -__attribute__((__import_module__("wasi:io/streams@0.2.0-rc-2023-10-18"), __import_name__("[method]output-stream.forward"))) -extern void __wasm_import_wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_forward(int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-10-18"), __import_name__("[method]descriptor.read-via-stream"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_read_via_stream(int32_t, int64_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-10-18"), __import_name__("[method]descriptor.write-via-stream"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_write_via_stream(int32_t, int64_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-10-18"), __import_name__("[method]descriptor.append-via-stream"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_append_via_stream(int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-10-18"), __import_name__("[method]descriptor.advise"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_advise(int32_t, int64_t, int64_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-10-18"), __import_name__("[method]descriptor.sync-data"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_sync_data(int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-10-18"), __import_name__("[method]descriptor.get-flags"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_get_flags(int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-10-18"), __import_name__("[method]descriptor.get-type"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_get_type(int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-10-18"), __import_name__("[method]descriptor.set-size"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_set_size(int32_t, int64_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-10-18"), __import_name__("[method]descriptor.set-times"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_set_times(int32_t, int32_t, int64_t, int32_t, int32_t, int64_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-10-18"), __import_name__("[method]descriptor.read"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_read(int32_t, int64_t, int64_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-10-18"), __import_name__("[method]descriptor.write"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_write(int32_t, int32_t, int32_t, int64_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-10-18"), __import_name__("[method]descriptor.read-directory"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_read_directory(int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-10-18"), __import_name__("[method]descriptor.sync"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_sync(int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-10-18"), __import_name__("[method]descriptor.create-directory-at"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_create_directory_at(int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-10-18"), __import_name__("[method]descriptor.stat"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_stat(int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-10-18"), __import_name__("[method]descriptor.stat-at"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_stat_at(int32_t, int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-10-18"), __import_name__("[method]descriptor.set-times-at"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_set_times_at(int32_t, int32_t, int32_t, int32_t, int32_t, int64_t, int32_t, int32_t, int64_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-10-18"), __import_name__("[method]descriptor.link-at"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_link_at(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-10-18"), __import_name__("[method]descriptor.open-at"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_open_at(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-10-18"), __import_name__("[method]descriptor.readlink-at"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_readlink_at(int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-10-18"), __import_name__("[method]descriptor.remove-directory-at"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_remove_directory_at(int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-10-18"), __import_name__("[method]descriptor.rename-at"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_rename_at(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-10-18"), __import_name__("[method]descriptor.symlink-at"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_symlink_at(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-10-18"), __import_name__("[method]descriptor.access-at"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_access_at(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-10-18"), __import_name__("[method]descriptor.unlink-file-at"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_unlink_file_at(int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-10-18"), __import_name__("[method]descriptor.change-file-permissions-at"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_change_file_permissions_at(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-10-18"), __import_name__("[method]descriptor.change-directory-permissions-at"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_change_directory_permissions_at(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-10-18"), __import_name__("[method]descriptor.lock-shared"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_lock_shared(int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-10-18"), __import_name__("[method]descriptor.lock-exclusive"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_lock_exclusive(int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-10-18"), __import_name__("[method]descriptor.try-lock-shared"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_try_lock_shared(int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-10-18"), __import_name__("[method]descriptor.try-lock-exclusive"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_try_lock_exclusive(int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-10-18"), __import_name__("[method]descriptor.unlock"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_unlock(int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-10-18"), __import_name__("[method]descriptor.is-same-object"))) -extern int32_t __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_is_same_object(int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-10-18"), __import_name__("[method]descriptor.metadata-hash"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_metadata_hash(int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-10-18"), __import_name__("[method]descriptor.metadata-hash-at"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_metadata_hash_at(int32_t, int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-10-18"), __import_name__("[method]directory-entry-stream.read-directory-entry"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_directory_entry_stream_read_directory_entry(int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-10-18"), __import_name__("filesystem-error-code"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_filesystem_error_code(int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/preopens@0.2.0-rc-2023-10-18"), __import_name__("get-directories"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_preopens_get_directories(int32_t); - -__attribute__((__import_module__("wasi:sockets/instance-network@0.2.0-rc-2023-10-18"), __import_name__("instance-network"))) -extern int32_t __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_instance_network_instance_network(void); - -__attribute__((__import_module__("wasi:sockets/ip-name-lookup@0.2.0-rc-2023-10-18"), __import_name__("resolve-addresses"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_resolve_addresses(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/ip-name-lookup@0.2.0-rc-2023-10-18"), __import_name__("[method]resolve-address-stream.resolve-next-address"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_method_resolve_address_stream_resolve_next_address(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/ip-name-lookup@0.2.0-rc-2023-10-18"), __import_name__("[method]resolve-address-stream.subscribe"))) -extern int32_t __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_method_resolve_address_stream_subscribe(int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-10-18"), __import_name__("[method]tcp-socket.start-bind"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_start_bind(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-10-18"), __import_name__("[method]tcp-socket.finish-bind"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_finish_bind(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-10-18"), __import_name__("[method]tcp-socket.start-connect"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_start_connect(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-10-18"), __import_name__("[method]tcp-socket.finish-connect"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_finish_connect(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-10-18"), __import_name__("[method]tcp-socket.start-listen"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_start_listen(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-10-18"), __import_name__("[method]tcp-socket.finish-listen"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_finish_listen(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-10-18"), __import_name__("[method]tcp-socket.accept"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_accept(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-10-18"), __import_name__("[method]tcp-socket.local-address"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_local_address(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-10-18"), __import_name__("[method]tcp-socket.remote-address"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_remote_address(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-10-18"), __import_name__("[method]tcp-socket.address-family"))) -extern int32_t __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_address_family(int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-10-18"), __import_name__("[method]tcp-socket.ipv6-only"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_ipv6_only(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-10-18"), __import_name__("[method]tcp-socket.set-ipv6-only"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_set_ipv6_only(int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-10-18"), __import_name__("[method]tcp-socket.set-listen-backlog-size"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_set_listen_backlog_size(int32_t, int64_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-10-18"), __import_name__("[method]tcp-socket.keep-alive"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_keep_alive(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-10-18"), __import_name__("[method]tcp-socket.set-keep-alive"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_set_keep_alive(int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-10-18"), __import_name__("[method]tcp-socket.no-delay"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_no_delay(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-10-18"), __import_name__("[method]tcp-socket.set-no-delay"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_set_no_delay(int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-10-18"), __import_name__("[method]tcp-socket.unicast-hop-limit"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_unicast_hop_limit(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-10-18"), __import_name__("[method]tcp-socket.set-unicast-hop-limit"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_set_unicast_hop_limit(int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-10-18"), __import_name__("[method]tcp-socket.receive-buffer-size"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_receive_buffer_size(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-10-18"), __import_name__("[method]tcp-socket.set-receive-buffer-size"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_set_receive_buffer_size(int32_t, int64_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-10-18"), __import_name__("[method]tcp-socket.send-buffer-size"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_send_buffer_size(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-10-18"), __import_name__("[method]tcp-socket.set-send-buffer-size"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_set_send_buffer_size(int32_t, int64_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-10-18"), __import_name__("[method]tcp-socket.subscribe"))) -extern int32_t __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_subscribe(int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-10-18"), __import_name__("[method]tcp-socket.shutdown"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_shutdown(int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp-create-socket@0.2.0-rc-2023-10-18"), __import_name__("create-tcp-socket"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_create_socket_create_tcp_socket(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/udp@0.2.0-rc-2023-10-18"), __import_name__("[method]udp-socket.start-bind"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_start_bind(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/udp@0.2.0-rc-2023-10-18"), __import_name__("[method]udp-socket.finish-bind"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_finish_bind(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/udp@0.2.0-rc-2023-10-18"), __import_name__("[method]udp-socket.start-connect"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_start_connect(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/udp@0.2.0-rc-2023-10-18"), __import_name__("[method]udp-socket.finish-connect"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_finish_connect(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/udp@0.2.0-rc-2023-10-18"), __import_name__("[method]udp-socket.receive"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_receive(int32_t, int64_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/udp@0.2.0-rc-2023-10-18"), __import_name__("[method]udp-socket.send"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_send(int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/udp@0.2.0-rc-2023-10-18"), __import_name__("[method]udp-socket.local-address"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_local_address(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/udp@0.2.0-rc-2023-10-18"), __import_name__("[method]udp-socket.remote-address"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_remote_address(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/udp@0.2.0-rc-2023-10-18"), __import_name__("[method]udp-socket.address-family"))) -extern int32_t __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_address_family(int32_t); - -__attribute__((__import_module__("wasi:sockets/udp@0.2.0-rc-2023-10-18"), __import_name__("[method]udp-socket.ipv6-only"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_ipv6_only(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/udp@0.2.0-rc-2023-10-18"), __import_name__("[method]udp-socket.set-ipv6-only"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_set_ipv6_only(int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/udp@0.2.0-rc-2023-10-18"), __import_name__("[method]udp-socket.unicast-hop-limit"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_unicast_hop_limit(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/udp@0.2.0-rc-2023-10-18"), __import_name__("[method]udp-socket.set-unicast-hop-limit"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_set_unicast_hop_limit(int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/udp@0.2.0-rc-2023-10-18"), __import_name__("[method]udp-socket.receive-buffer-size"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_receive_buffer_size(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/udp@0.2.0-rc-2023-10-18"), __import_name__("[method]udp-socket.set-receive-buffer-size"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_set_receive_buffer_size(int32_t, int64_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/udp@0.2.0-rc-2023-10-18"), __import_name__("[method]udp-socket.send-buffer-size"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_send_buffer_size(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/udp@0.2.0-rc-2023-10-18"), __import_name__("[method]udp-socket.set-send-buffer-size"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_set_send_buffer_size(int32_t, int64_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/udp@0.2.0-rc-2023-10-18"), __import_name__("[method]udp-socket.subscribe"))) -extern int32_t __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_subscribe(int32_t); - -__attribute__((__import_module__("wasi:sockets/udp-create-socket@0.2.0-rc-2023-10-18"), __import_name__("create-udp-socket"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_udp_create_socket_create_udp_socket(int32_t, int32_t); - -__attribute__((__import_module__("wasi:random/random@0.2.0-rc-2023-10-18"), __import_name__("get-random-bytes"))) -extern void __wasm_import_wasi_random_0_2_0_rc_2023_10_18_random_get_random_bytes(int64_t, int32_t); - -__attribute__((__import_module__("wasi:random/random@0.2.0-rc-2023-10-18"), __import_name__("get-random-u64"))) -extern int64_t __wasm_import_wasi_random_0_2_0_rc_2023_10_18_random_get_random_u64(void); - -__attribute__((__import_module__("wasi:random/insecure@0.2.0-rc-2023-10-18"), __import_name__("get-insecure-random-bytes"))) -extern void __wasm_import_wasi_random_0_2_0_rc_2023_10_18_insecure_get_insecure_random_bytes(int64_t, int32_t); - -__attribute__((__import_module__("wasi:random/insecure@0.2.0-rc-2023-10-18"), __import_name__("get-insecure-random-u64"))) -extern int64_t __wasm_import_wasi_random_0_2_0_rc_2023_10_18_insecure_get_insecure_random_u64(void); - -__attribute__((__import_module__("wasi:random/insecure-seed@0.2.0-rc-2023-10-18"), __import_name__("insecure-seed"))) -extern void __wasm_import_wasi_random_0_2_0_rc_2023_10_18_insecure_seed_insecure_seed(int32_t); - -__attribute__((__import_module__("wasi:cli/environment@0.2.0-rc-2023-10-18"), __import_name__("get-environment"))) -extern void __wasm_import_wasi_cli_0_2_0_rc_2023_10_18_environment_get_environment(int32_t); - -__attribute__((__import_module__("wasi:cli/environment@0.2.0-rc-2023-10-18"), __import_name__("get-arguments"))) -extern void __wasm_import_wasi_cli_0_2_0_rc_2023_10_18_environment_get_arguments(int32_t); - -__attribute__((__import_module__("wasi:cli/environment@0.2.0-rc-2023-10-18"), __import_name__("initial-cwd"))) -extern void __wasm_import_wasi_cli_0_2_0_rc_2023_10_18_environment_initial_cwd(int32_t); - -__attribute__((__import_module__("wasi:cli/exit@0.2.0-rc-2023-10-18"), __import_name__("exit"))) -extern void __wasm_import_wasi_cli_0_2_0_rc_2023_10_18_exit_exit(int32_t); - -__attribute__((__import_module__("wasi:cli/stdin@0.2.0-rc-2023-10-18"), __import_name__("get-stdin"))) -extern int32_t __wasm_import_wasi_cli_0_2_0_rc_2023_10_18_stdin_get_stdin(void); - -__attribute__((__import_module__("wasi:cli/stdout@0.2.0-rc-2023-10-18"), __import_name__("get-stdout"))) -extern int32_t __wasm_import_wasi_cli_0_2_0_rc_2023_10_18_stdout_get_stdout(void); - -__attribute__((__import_module__("wasi:cli/stderr@0.2.0-rc-2023-10-18"), __import_name__("get-stderr"))) -extern int32_t __wasm_import_wasi_cli_0_2_0_rc_2023_10_18_stderr_get_stderr(void); - -__attribute__((__import_module__("wasi:cli/terminal-stdin@0.2.0-rc-2023-10-18"), __import_name__("get-terminal-stdin"))) -extern void __wasm_import_wasi_cli_0_2_0_rc_2023_10_18_terminal_stdin_get_terminal_stdin(int32_t); - -__attribute__((__import_module__("wasi:cli/terminal-stdout@0.2.0-rc-2023-10-18"), __import_name__("get-terminal-stdout"))) -extern void __wasm_import_wasi_cli_0_2_0_rc_2023_10_18_terminal_stdout_get_terminal_stdout(int32_t); - -__attribute__((__import_module__("wasi:cli/terminal-stderr@0.2.0-rc-2023-10-18"), __import_name__("get-terminal-stderr"))) -extern void __wasm_import_wasi_cli_0_2_0_rc_2023_10_18_terminal_stderr_get_terminal_stderr(int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-10-18"), __import_name__("[constructor]fields"))) -extern int32_t __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_constructor_fields(int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-10-18"), __import_name__("[method]fields.get"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_fields_get(int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-10-18"), __import_name__("[method]fields.set"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_fields_set(int32_t, int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-10-18"), __import_name__("[method]fields.delete"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_fields_delete(int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-10-18"), __import_name__("[method]fields.append"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_fields_append(int32_t, int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-10-18"), __import_name__("[method]fields.entries"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_fields_entries(int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-10-18"), __import_name__("[method]fields.clone"))) -extern int32_t __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_fields_clone(int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-10-18"), __import_name__("[method]incoming-request.method"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_request_method(int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-10-18"), __import_name__("[method]incoming-request.path-with-query"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_request_path_with_query(int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-10-18"), __import_name__("[method]incoming-request.scheme"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_request_scheme(int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-10-18"), __import_name__("[method]incoming-request.authority"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_request_authority(int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-10-18"), __import_name__("[method]incoming-request.headers"))) -extern int32_t __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_request_headers(int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-10-18"), __import_name__("[method]incoming-request.consume"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_request_consume(int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-10-18"), __import_name__("[constructor]outgoing-request"))) -extern int32_t __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_constructor_outgoing_request(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-10-18"), __import_name__("[method]outgoing-request.write"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_outgoing_request_write(int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-10-18"), __import_name__("[static]response-outparam.set"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_static_response_outparam_set(int32_t, int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-10-18"), __import_name__("[method]incoming-response.status"))) -extern int32_t __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_response_status(int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-10-18"), __import_name__("[method]incoming-response.headers"))) -extern int32_t __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_response_headers(int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-10-18"), __import_name__("[method]incoming-response.consume"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_response_consume(int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-10-18"), __import_name__("[method]incoming-body.stream"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_body_stream(int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-10-18"), __import_name__("[static]incoming-body.finish"))) -extern int32_t __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_static_incoming_body_finish(int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-10-18"), __import_name__("[method]future-trailers.subscribe"))) -extern int32_t __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_future_trailers_subscribe(int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-10-18"), __import_name__("[method]future-trailers.get"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_future_trailers_get(int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-10-18"), __import_name__("[constructor]outgoing-response"))) -extern int32_t __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_constructor_outgoing_response(int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-10-18"), __import_name__("[method]outgoing-response.write"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_outgoing_response_write(int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-10-18"), __import_name__("[method]outgoing-body.write"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_outgoing_body_write(int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-10-18"), __import_name__("[static]outgoing-body.finish"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_static_outgoing_body_finish(int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-10-18"), __import_name__("[method]future-incoming-response.get"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_future_incoming_response_get(int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-10-18"), __import_name__("[method]future-incoming-response.subscribe"))) -extern int32_t __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_future_incoming_response_subscribe(int32_t); - -__attribute__((__import_module__("wasi:http/outgoing-handler@0.2.0-rc-2023-10-18"), __import_name__("handle"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_handle(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t); - -__attribute__((__weak__, __export_name__("cabi_realloc"))) -void *cabi_realloc(void *ptr, size_t old_size, size_t align, size_t new_size) { - (void) old_size; - if (new_size == 0) return (void*) align; - void *ret = realloc(ptr, new_size); - if (!ret) abort(); - return ret; -} - -// Helper Functions - -__attribute__((__import_module__("wasi:io/poll@0.2.0-rc-2023-10-18"), __import_name__("[resource-drop]pollable"))) -extern void __wasm_import_wasi_io_0_2_0_rc_2023_10_18_poll_pollable_drop(int32_t handle); - -void wasi_io_0_2_0_rc_2023_10_18_poll_pollable_drop_own(wasi_io_0_2_0_rc_2023_10_18_poll_own_pollable_t handle) { - __wasm_import_wasi_io_0_2_0_rc_2023_10_18_poll_pollable_drop(handle.__handle); -} - -void wasi_io_0_2_0_rc_2023_10_18_poll_pollable_drop_borrow(wasi_io_0_2_0_rc_2023_10_18_poll_own_pollable_t handle) { - __wasm_import_wasi_io_0_2_0_rc_2023_10_18_poll_pollable_drop(handle.__handle); -} - -wasi_io_0_2_0_rc_2023_10_18_poll_borrow_pollable_t wasi_io_0_2_0_rc_2023_10_18_poll_borrow_pollable(wasi_io_0_2_0_rc_2023_10_18_poll_own_pollable_t arg) { - return (wasi_io_0_2_0_rc_2023_10_18_poll_borrow_pollable_t) { arg.__handle }; -} - -void wasi_io_0_2_0_rc_2023_10_18_poll_list_borrow_pollable_free(wasi_io_0_2_0_rc_2023_10_18_poll_list_borrow_pollable_t *ptr) { - for (size_t i = 0; i < ptr->len; i++) { - } - if (ptr->len > 0) { - free(ptr->ptr); - } -} - -void bindings_list_u32_free(bindings_list_u32_t *ptr) { - for (size_t i = 0; i < ptr->len; i++) { - } - if (ptr->len > 0) { - free(ptr->ptr); - } -} - -void wasi_clocks_0_2_0_rc_2023_10_18_timezone_timezone_display_free(wasi_clocks_0_2_0_rc_2023_10_18_timezone_timezone_display_t *ptr) { - bindings_string_free(&ptr->name); -} - -__attribute__((__import_module__("wasi:io/streams@0.2.0-rc-2023-10-18"), __import_name__("[resource-drop]error"))) -extern void __wasm_import_wasi_io_0_2_0_rc_2023_10_18_streams_error_drop(int32_t handle); - -void wasi_io_0_2_0_rc_2023_10_18_streams_error_drop_own(wasi_io_0_2_0_rc_2023_10_18_streams_own_error_t handle) { - __wasm_import_wasi_io_0_2_0_rc_2023_10_18_streams_error_drop(handle.__handle); -} - -void wasi_io_0_2_0_rc_2023_10_18_streams_error_drop_borrow(wasi_io_0_2_0_rc_2023_10_18_streams_own_error_t handle) { - __wasm_import_wasi_io_0_2_0_rc_2023_10_18_streams_error_drop(handle.__handle); -} - -wasi_io_0_2_0_rc_2023_10_18_streams_borrow_error_t wasi_io_0_2_0_rc_2023_10_18_streams_borrow_error(wasi_io_0_2_0_rc_2023_10_18_streams_own_error_t arg) { - return (wasi_io_0_2_0_rc_2023_10_18_streams_borrow_error_t) { arg.__handle }; -} - -void wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_free(wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t *ptr) { - switch ((int32_t) ptr->tag) { - case 0: { - break; - } - } -} - -__attribute__((__import_module__("wasi:io/streams@0.2.0-rc-2023-10-18"), __import_name__("[resource-drop]input-stream"))) -extern void __wasm_import_wasi_io_0_2_0_rc_2023_10_18_streams_input_stream_drop(int32_t handle); - -void wasi_io_0_2_0_rc_2023_10_18_streams_input_stream_drop_own(wasi_io_0_2_0_rc_2023_10_18_streams_own_input_stream_t handle) { - __wasm_import_wasi_io_0_2_0_rc_2023_10_18_streams_input_stream_drop(handle.__handle); -} - -void wasi_io_0_2_0_rc_2023_10_18_streams_input_stream_drop_borrow(wasi_io_0_2_0_rc_2023_10_18_streams_own_input_stream_t handle) { - __wasm_import_wasi_io_0_2_0_rc_2023_10_18_streams_input_stream_drop(handle.__handle); -} - -wasi_io_0_2_0_rc_2023_10_18_streams_borrow_input_stream_t wasi_io_0_2_0_rc_2023_10_18_streams_borrow_input_stream(wasi_io_0_2_0_rc_2023_10_18_streams_own_input_stream_t arg) { - return (wasi_io_0_2_0_rc_2023_10_18_streams_borrow_input_stream_t) { arg.__handle }; -} - -__attribute__((__import_module__("wasi:io/streams@0.2.0-rc-2023-10-18"), __import_name__("[resource-drop]output-stream"))) -extern void __wasm_import_wasi_io_0_2_0_rc_2023_10_18_streams_output_stream_drop(int32_t handle); - -void wasi_io_0_2_0_rc_2023_10_18_streams_output_stream_drop_own(wasi_io_0_2_0_rc_2023_10_18_streams_own_output_stream_t handle) { - __wasm_import_wasi_io_0_2_0_rc_2023_10_18_streams_output_stream_drop(handle.__handle); -} - -void wasi_io_0_2_0_rc_2023_10_18_streams_output_stream_drop_borrow(wasi_io_0_2_0_rc_2023_10_18_streams_own_output_stream_t handle) { - __wasm_import_wasi_io_0_2_0_rc_2023_10_18_streams_output_stream_drop(handle.__handle); -} - -wasi_io_0_2_0_rc_2023_10_18_streams_borrow_output_stream_t wasi_io_0_2_0_rc_2023_10_18_streams_borrow_output_stream(wasi_io_0_2_0_rc_2023_10_18_streams_own_output_stream_t arg) { - return (wasi_io_0_2_0_rc_2023_10_18_streams_borrow_output_stream_t) { arg.__handle }; -} - -void bindings_list_u8_free(bindings_list_u8_t *ptr) { - for (size_t i = 0; i < ptr->len; i++) { - } - if (ptr->len > 0) { - free(ptr->ptr); - } -} - -void wasi_io_0_2_0_rc_2023_10_18_streams_result_list_u8_stream_error_free(wasi_io_0_2_0_rc_2023_10_18_streams_result_list_u8_stream_error_t *ptr) { - if (!ptr->is_err) { - bindings_list_u8_free(&ptr->val.ok); - } else { - wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_free(&ptr->val.err); - } -} - -void wasi_io_0_2_0_rc_2023_10_18_streams_result_u64_stream_error_free(wasi_io_0_2_0_rc_2023_10_18_streams_result_u64_stream_error_t *ptr) { - if (!ptr->is_err) { - } else { - wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_free(&ptr->val.err); - } -} - -void wasi_io_0_2_0_rc_2023_10_18_streams_result_void_stream_error_free(wasi_io_0_2_0_rc_2023_10_18_streams_result_void_stream_error_t *ptr) { - if (!ptr->is_err) { - } else { - wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_free(&ptr->val.err); - } -} - -void wasi_filesystem_0_2_0_rc_2023_10_18_types_access_type_free(wasi_filesystem_0_2_0_rc_2023_10_18_types_access_type_t *ptr) { - switch ((int32_t) ptr->tag) { - case 0: { - break; - } - } -} - -void wasi_filesystem_0_2_0_rc_2023_10_18_types_option_datetime_free(wasi_filesystem_0_2_0_rc_2023_10_18_types_option_datetime_t *ptr) { - if (ptr->is_some) { - } -} - -void wasi_filesystem_0_2_0_rc_2023_10_18_types_descriptor_stat_free(wasi_filesystem_0_2_0_rc_2023_10_18_types_descriptor_stat_t *ptr) { - wasi_filesystem_0_2_0_rc_2023_10_18_types_option_datetime_free(&ptr->data_access_timestamp); - wasi_filesystem_0_2_0_rc_2023_10_18_types_option_datetime_free(&ptr->data_modification_timestamp); - wasi_filesystem_0_2_0_rc_2023_10_18_types_option_datetime_free(&ptr->status_change_timestamp); -} - -void wasi_filesystem_0_2_0_rc_2023_10_18_types_new_timestamp_free(wasi_filesystem_0_2_0_rc_2023_10_18_types_new_timestamp_t *ptr) { - switch ((int32_t) ptr->tag) { - case 2: { - break; - } - } -} - -void wasi_filesystem_0_2_0_rc_2023_10_18_types_directory_entry_free(wasi_filesystem_0_2_0_rc_2023_10_18_types_directory_entry_t *ptr) { - bindings_string_free(&ptr->name); -} - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-10-18"), __import_name__("[resource-drop]descriptor"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_descriptor_drop(int32_t handle); - -void wasi_filesystem_0_2_0_rc_2023_10_18_types_descriptor_drop_own(wasi_filesystem_0_2_0_rc_2023_10_18_types_own_descriptor_t handle) { - __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_descriptor_drop(handle.__handle); -} - -void wasi_filesystem_0_2_0_rc_2023_10_18_types_descriptor_drop_borrow(wasi_filesystem_0_2_0_rc_2023_10_18_types_own_descriptor_t handle) { - __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_descriptor_drop(handle.__handle); -} - -wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor(wasi_filesystem_0_2_0_rc_2023_10_18_types_own_descriptor_t arg) { - return (wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t) { arg.__handle }; -} - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-10-18"), __import_name__("[resource-drop]directory-entry-stream"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_directory_entry_stream_drop(int32_t handle); - -void wasi_filesystem_0_2_0_rc_2023_10_18_types_directory_entry_stream_drop_own(wasi_filesystem_0_2_0_rc_2023_10_18_types_own_directory_entry_stream_t handle) { - __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_directory_entry_stream_drop(handle.__handle); -} - -void wasi_filesystem_0_2_0_rc_2023_10_18_types_directory_entry_stream_drop_borrow(wasi_filesystem_0_2_0_rc_2023_10_18_types_own_directory_entry_stream_t handle) { - __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_directory_entry_stream_drop(handle.__handle); -} - -wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_directory_entry_stream_t wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_directory_entry_stream(wasi_filesystem_0_2_0_rc_2023_10_18_types_own_directory_entry_stream_t arg) { - return (wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_directory_entry_stream_t) { arg.__handle }; -} - -void wasi_filesystem_0_2_0_rc_2023_10_18_types_result_own_input_stream_error_code_free(wasi_filesystem_0_2_0_rc_2023_10_18_types_result_own_input_stream_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_filesystem_0_2_0_rc_2023_10_18_types_result_own_output_stream_error_code_free(wasi_filesystem_0_2_0_rc_2023_10_18_types_result_own_output_stream_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_filesystem_0_2_0_rc_2023_10_18_types_result_void_error_code_free(wasi_filesystem_0_2_0_rc_2023_10_18_types_result_void_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_filesystem_0_2_0_rc_2023_10_18_types_result_descriptor_flags_error_code_free(wasi_filesystem_0_2_0_rc_2023_10_18_types_result_descriptor_flags_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_filesystem_0_2_0_rc_2023_10_18_types_result_descriptor_type_error_code_free(wasi_filesystem_0_2_0_rc_2023_10_18_types_result_descriptor_type_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_filesystem_0_2_0_rc_2023_10_18_types_result_tuple2_list_u8_bool_error_code_free(wasi_filesystem_0_2_0_rc_2023_10_18_types_result_tuple2_list_u8_bool_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_filesystem_0_2_0_rc_2023_10_18_types_result_filesize_error_code_free(wasi_filesystem_0_2_0_rc_2023_10_18_types_result_filesize_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_filesystem_0_2_0_rc_2023_10_18_types_result_own_directory_entry_stream_error_code_free(wasi_filesystem_0_2_0_rc_2023_10_18_types_result_own_directory_entry_stream_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_filesystem_0_2_0_rc_2023_10_18_types_result_descriptor_stat_error_code_free(wasi_filesystem_0_2_0_rc_2023_10_18_types_result_descriptor_stat_error_code_t *ptr) { - if (!ptr->is_err) { - wasi_filesystem_0_2_0_rc_2023_10_18_types_descriptor_stat_free(&ptr->val.ok); - } else { - } -} - -void wasi_filesystem_0_2_0_rc_2023_10_18_types_result_own_descriptor_error_code_free(wasi_filesystem_0_2_0_rc_2023_10_18_types_result_own_descriptor_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_filesystem_0_2_0_rc_2023_10_18_types_result_string_error_code_free(wasi_filesystem_0_2_0_rc_2023_10_18_types_result_string_error_code_t *ptr) { - if (!ptr->is_err) { - bindings_string_free(&ptr->val.ok); - } else { - } -} - -void wasi_filesystem_0_2_0_rc_2023_10_18_types_result_metadata_hash_value_error_code_free(wasi_filesystem_0_2_0_rc_2023_10_18_types_result_metadata_hash_value_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_filesystem_0_2_0_rc_2023_10_18_types_option_directory_entry_free(wasi_filesystem_0_2_0_rc_2023_10_18_types_option_directory_entry_t *ptr) { - if (ptr->is_some) { - wasi_filesystem_0_2_0_rc_2023_10_18_types_directory_entry_free(&ptr->val); - } -} - -void wasi_filesystem_0_2_0_rc_2023_10_18_types_result_option_directory_entry_error_code_free(wasi_filesystem_0_2_0_rc_2023_10_18_types_result_option_directory_entry_error_code_t *ptr) { - if (!ptr->is_err) { - wasi_filesystem_0_2_0_rc_2023_10_18_types_option_directory_entry_free(&ptr->val.ok); - } else { - } -} - -void wasi_filesystem_0_2_0_rc_2023_10_18_types_option_error_code_free(wasi_filesystem_0_2_0_rc_2023_10_18_types_option_error_code_t *ptr) { - if (ptr->is_some) { - } -} - -void wasi_filesystem_0_2_0_rc_2023_10_18_preopens_tuple2_own_descriptor_string_free(wasi_filesystem_0_2_0_rc_2023_10_18_preopens_tuple2_own_descriptor_string_t *ptr) { - bindings_string_free(&ptr->f1); -} - -void wasi_filesystem_0_2_0_rc_2023_10_18_preopens_list_tuple2_own_descriptor_string_free(wasi_filesystem_0_2_0_rc_2023_10_18_preopens_list_tuple2_own_descriptor_string_t *ptr) { - for (size_t i = 0; i < ptr->len; i++) { - wasi_filesystem_0_2_0_rc_2023_10_18_preopens_tuple2_own_descriptor_string_free(&ptr->ptr[i]); - } - if (ptr->len > 0) { - free(ptr->ptr); - } -} - -__attribute__((__import_module__("wasi:sockets/network@0.2.0-rc-2023-10-18"), __import_name__("[resource-drop]network"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_network_network_drop(int32_t handle); - -void wasi_sockets_0_2_0_rc_2023_10_18_network_network_drop_own(wasi_sockets_0_2_0_rc_2023_10_18_network_own_network_t handle) { - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_network_network_drop(handle.__handle); -} - -void wasi_sockets_0_2_0_rc_2023_10_18_network_network_drop_borrow(wasi_sockets_0_2_0_rc_2023_10_18_network_own_network_t handle) { - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_network_network_drop(handle.__handle); -} - -wasi_sockets_0_2_0_rc_2023_10_18_network_borrow_network_t wasi_sockets_0_2_0_rc_2023_10_18_network_borrow_network(wasi_sockets_0_2_0_rc_2023_10_18_network_own_network_t arg) { - return (wasi_sockets_0_2_0_rc_2023_10_18_network_borrow_network_t) { arg.__handle }; -} - -void wasi_sockets_0_2_0_rc_2023_10_18_network_ip_address_free(wasi_sockets_0_2_0_rc_2023_10_18_network_ip_address_t *ptr) { - switch ((int32_t) ptr->tag) { - case 0: { - break; - } - case 1: { - break; - } - } -} - -void wasi_sockets_0_2_0_rc_2023_10_18_network_ip_socket_address_free(wasi_sockets_0_2_0_rc_2023_10_18_network_ip_socket_address_t *ptr) { - switch ((int32_t) ptr->tag) { - case 0: { - break; - } - case 1: { - break; - } - } -} - -void wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_ip_address_free(wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_ip_address_t *ptr) { - wasi_sockets_0_2_0_rc_2023_10_18_network_ip_address_free(ptr); -} - -__attribute__((__import_module__("wasi:sockets/ip-name-lookup@0.2.0-rc-2023-10-18"), __import_name__("[resource-drop]resolve-address-stream"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_resolve_address_stream_drop(int32_t handle); - -void wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_resolve_address_stream_drop_own(wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_own_resolve_address_stream_t handle) { - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_resolve_address_stream_drop(handle.__handle); -} - -void wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_resolve_address_stream_drop_borrow(wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_own_resolve_address_stream_t handle) { - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_resolve_address_stream_drop(handle.__handle); -} - -wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_borrow_resolve_address_stream_t wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_borrow_resolve_address_stream(wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_own_resolve_address_stream_t arg) { - return (wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_borrow_resolve_address_stream_t) { arg.__handle }; -} - -void wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_option_ip_address_family_free(wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_option_ip_address_family_t *ptr) { - if (ptr->is_some) { - } -} - -void wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_result_own_resolve_address_stream_error_code_free(wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_result_own_resolve_address_stream_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_option_ip_address_free(wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_option_ip_address_t *ptr) { - if (ptr->is_some) { - wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_ip_address_free(&ptr->val); - } -} - -void wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_result_option_ip_address_error_code_free(wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_result_option_ip_address_error_code_t *ptr) { - if (!ptr->is_err) { - wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_option_ip_address_free(&ptr->val.ok); - } else { - } -} - -void wasi_sockets_0_2_0_rc_2023_10_18_tcp_ip_socket_address_free(wasi_sockets_0_2_0_rc_2023_10_18_tcp_ip_socket_address_t *ptr) { - wasi_sockets_0_2_0_rc_2023_10_18_network_ip_socket_address_free(ptr); -} - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-10-18"), __import_name__("[resource-drop]tcp-socket"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_tcp_socket_drop(int32_t handle); - -void wasi_sockets_0_2_0_rc_2023_10_18_tcp_tcp_socket_drop_own(wasi_sockets_0_2_0_rc_2023_10_18_tcp_own_tcp_socket_t handle) { - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_tcp_socket_drop(handle.__handle); -} - -void wasi_sockets_0_2_0_rc_2023_10_18_tcp_tcp_socket_drop_borrow(wasi_sockets_0_2_0_rc_2023_10_18_tcp_own_tcp_socket_t handle) { - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_tcp_socket_drop(handle.__handle); -} - -wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket(wasi_sockets_0_2_0_rc_2023_10_18_tcp_own_tcp_socket_t arg) { - return (wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t) { arg.__handle }; -} - -void wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_void_error_code_free(wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_void_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_tuple2_own_input_stream_own_output_stream_error_code_free(wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_tuple2_own_input_stream_own_output_stream_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_tuple3_own_tcp_socket_own_input_stream_own_output_stream_error_code_free(wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_tuple3_own_tcp_socket_own_input_stream_own_output_stream_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_ip_socket_address_error_code_free(wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_ip_socket_address_error_code_t *ptr) { - if (!ptr->is_err) { - wasi_sockets_0_2_0_rc_2023_10_18_tcp_ip_socket_address_free(&ptr->val.ok); - } else { - } -} - -void wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_bool_error_code_free(wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_bool_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_u8_error_code_free(wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_u8_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_u64_error_code_free(wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_u64_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_sockets_0_2_0_rc_2023_10_18_tcp_create_socket_result_own_tcp_socket_error_code_free(wasi_sockets_0_2_0_rc_2023_10_18_tcp_create_socket_result_own_tcp_socket_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_sockets_0_2_0_rc_2023_10_18_udp_ip_socket_address_free(wasi_sockets_0_2_0_rc_2023_10_18_udp_ip_socket_address_t *ptr) { - wasi_sockets_0_2_0_rc_2023_10_18_network_ip_socket_address_free(ptr); -} - -void wasi_sockets_0_2_0_rc_2023_10_18_udp_datagram_free(wasi_sockets_0_2_0_rc_2023_10_18_udp_datagram_t *ptr) { - wasi_sockets_0_2_0_rc_2023_10_18_udp_ip_socket_address_free(&ptr->remote_address); -} - -__attribute__((__import_module__("wasi:sockets/udp@0.2.0-rc-2023-10-18"), __import_name__("[resource-drop]udp-socket"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_udp_udp_socket_drop(int32_t handle); - -void wasi_sockets_0_2_0_rc_2023_10_18_udp_udp_socket_drop_own(wasi_sockets_0_2_0_rc_2023_10_18_udp_own_udp_socket_t handle) { - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_udp_udp_socket_drop(handle.__handle); -} - -void wasi_sockets_0_2_0_rc_2023_10_18_udp_udp_socket_drop_borrow(wasi_sockets_0_2_0_rc_2023_10_18_udp_own_udp_socket_t handle) { - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_udp_udp_socket_drop(handle.__handle); -} - -wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_udp_socket_t wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_udp_socket(wasi_sockets_0_2_0_rc_2023_10_18_udp_own_udp_socket_t arg) { - return (wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_udp_socket_t) { arg.__handle }; -} - -void wasi_sockets_0_2_0_rc_2023_10_18_udp_result_void_error_code_free(wasi_sockets_0_2_0_rc_2023_10_18_udp_result_void_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_sockets_0_2_0_rc_2023_10_18_udp_list_datagram_free(wasi_sockets_0_2_0_rc_2023_10_18_udp_list_datagram_t *ptr) { - for (size_t i = 0; i < ptr->len; i++) { - wasi_sockets_0_2_0_rc_2023_10_18_udp_datagram_free(&ptr->ptr[i]); - } - if (ptr->len > 0) { - free(ptr->ptr); - } -} - -void wasi_sockets_0_2_0_rc_2023_10_18_udp_result_list_datagram_error_code_free(wasi_sockets_0_2_0_rc_2023_10_18_udp_result_list_datagram_error_code_t *ptr) { - if (!ptr->is_err) { - wasi_sockets_0_2_0_rc_2023_10_18_udp_list_datagram_free(&ptr->val.ok); - } else { - } -} - -void wasi_sockets_0_2_0_rc_2023_10_18_udp_result_u64_error_code_free(wasi_sockets_0_2_0_rc_2023_10_18_udp_result_u64_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_sockets_0_2_0_rc_2023_10_18_udp_result_ip_socket_address_error_code_free(wasi_sockets_0_2_0_rc_2023_10_18_udp_result_ip_socket_address_error_code_t *ptr) { - if (!ptr->is_err) { - wasi_sockets_0_2_0_rc_2023_10_18_udp_ip_socket_address_free(&ptr->val.ok); - } else { - } -} - -void wasi_sockets_0_2_0_rc_2023_10_18_udp_result_bool_error_code_free(wasi_sockets_0_2_0_rc_2023_10_18_udp_result_bool_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_sockets_0_2_0_rc_2023_10_18_udp_result_u8_error_code_free(wasi_sockets_0_2_0_rc_2023_10_18_udp_result_u8_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_sockets_0_2_0_rc_2023_10_18_udp_create_socket_result_own_udp_socket_error_code_free(wasi_sockets_0_2_0_rc_2023_10_18_udp_create_socket_result_own_udp_socket_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void bindings_tuple2_string_string_free(bindings_tuple2_string_string_t *ptr) { - bindings_string_free(&ptr->f0); - bindings_string_free(&ptr->f1); -} - -void bindings_list_tuple2_string_string_free(bindings_list_tuple2_string_string_t *ptr) { - for (size_t i = 0; i < ptr->len; i++) { - bindings_tuple2_string_string_free(&ptr->ptr[i]); - } - if (ptr->len > 0) { - free(ptr->ptr); - } -} - -void bindings_list_string_free(bindings_list_string_t *ptr) { - for (size_t i = 0; i < ptr->len; i++) { - bindings_string_free(&ptr->ptr[i]); - } - if (ptr->len > 0) { - free(ptr->ptr); - } -} - -void bindings_option_string_free(bindings_option_string_t *ptr) { - if (ptr->is_some) { - bindings_string_free(&ptr->val); - } -} - -void wasi_cli_0_2_0_rc_2023_10_18_exit_result_void_void_free(wasi_cli_0_2_0_rc_2023_10_18_exit_result_void_void_t *ptr) { - if (!ptr->is_err) { - } -} - -__attribute__((__import_module__("wasi:cli/terminal-input@0.2.0-rc-2023-10-18"), __import_name__("[resource-drop]terminal-input"))) -extern void __wasm_import_wasi_cli_0_2_0_rc_2023_10_18_terminal_input_terminal_input_drop(int32_t handle); - -void wasi_cli_0_2_0_rc_2023_10_18_terminal_input_terminal_input_drop_own(wasi_cli_0_2_0_rc_2023_10_18_terminal_input_own_terminal_input_t handle) { - __wasm_import_wasi_cli_0_2_0_rc_2023_10_18_terminal_input_terminal_input_drop(handle.__handle); -} - -void wasi_cli_0_2_0_rc_2023_10_18_terminal_input_terminal_input_drop_borrow(wasi_cli_0_2_0_rc_2023_10_18_terminal_input_own_terminal_input_t handle) { - __wasm_import_wasi_cli_0_2_0_rc_2023_10_18_terminal_input_terminal_input_drop(handle.__handle); -} - -wasi_cli_0_2_0_rc_2023_10_18_terminal_input_borrow_terminal_input_t wasi_cli_0_2_0_rc_2023_10_18_terminal_input_borrow_terminal_input(wasi_cli_0_2_0_rc_2023_10_18_terminal_input_own_terminal_input_t arg) { - return (wasi_cli_0_2_0_rc_2023_10_18_terminal_input_borrow_terminal_input_t) { arg.__handle }; -} - -__attribute__((__import_module__("wasi:cli/terminal-output@0.2.0-rc-2023-10-18"), __import_name__("[resource-drop]terminal-output"))) -extern void __wasm_import_wasi_cli_0_2_0_rc_2023_10_18_terminal_output_terminal_output_drop(int32_t handle); - -void wasi_cli_0_2_0_rc_2023_10_18_terminal_output_terminal_output_drop_own(wasi_cli_0_2_0_rc_2023_10_18_terminal_output_own_terminal_output_t handle) { - __wasm_import_wasi_cli_0_2_0_rc_2023_10_18_terminal_output_terminal_output_drop(handle.__handle); -} - -void wasi_cli_0_2_0_rc_2023_10_18_terminal_output_terminal_output_drop_borrow(wasi_cli_0_2_0_rc_2023_10_18_terminal_output_own_terminal_output_t handle) { - __wasm_import_wasi_cli_0_2_0_rc_2023_10_18_terminal_output_terminal_output_drop(handle.__handle); -} - -wasi_cli_0_2_0_rc_2023_10_18_terminal_output_borrow_terminal_output_t wasi_cli_0_2_0_rc_2023_10_18_terminal_output_borrow_terminal_output(wasi_cli_0_2_0_rc_2023_10_18_terminal_output_own_terminal_output_t arg) { - return (wasi_cli_0_2_0_rc_2023_10_18_terminal_output_borrow_terminal_output_t) { arg.__handle }; -} - -void wasi_cli_0_2_0_rc_2023_10_18_terminal_stdin_option_own_terminal_input_free(wasi_cli_0_2_0_rc_2023_10_18_terminal_stdin_option_own_terminal_input_t *ptr) { - if (ptr->is_some) { - } -} - -void wasi_cli_0_2_0_rc_2023_10_18_terminal_stdout_option_own_terminal_output_free(wasi_cli_0_2_0_rc_2023_10_18_terminal_stdout_option_own_terminal_output_t *ptr) { - if (ptr->is_some) { - } -} - -void wasi_cli_0_2_0_rc_2023_10_18_terminal_stderr_option_own_terminal_output_free(wasi_cli_0_2_0_rc_2023_10_18_terminal_stderr_option_own_terminal_output_t *ptr) { - if (ptr->is_some) { - } -} - -void wasi_http_0_2_0_rc_2023_10_18_types_method_free(wasi_http_0_2_0_rc_2023_10_18_types_method_t *ptr) { - switch ((int32_t) ptr->tag) { - case 9: { - bindings_string_free(&ptr->val.other); - break; - } - } -} - -void wasi_http_0_2_0_rc_2023_10_18_types_scheme_free(wasi_http_0_2_0_rc_2023_10_18_types_scheme_t *ptr) { - switch ((int32_t) ptr->tag) { - case 2: { - bindings_string_free(&ptr->val.other); - break; - } - } -} - -void wasi_http_0_2_0_rc_2023_10_18_types_error_free(wasi_http_0_2_0_rc_2023_10_18_types_error_t *ptr) { - switch ((int32_t) ptr->tag) { - case 0: { - bindings_string_free(&ptr->val.invalid_url); - break; - } - case 1: { - bindings_string_free(&ptr->val.timeout_error); - break; - } - case 2: { - bindings_string_free(&ptr->val.protocol_error); - break; - } - case 3: { - bindings_string_free(&ptr->val.unexpected_error); - break; - } - } -} - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-10-18"), __import_name__("[resource-drop]fields"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_fields_drop(int32_t handle); - -void wasi_http_0_2_0_rc_2023_10_18_types_fields_drop_own(wasi_http_0_2_0_rc_2023_10_18_types_own_fields_t handle) { - __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_fields_drop(handle.__handle); -} - -void wasi_http_0_2_0_rc_2023_10_18_types_fields_drop_borrow(wasi_http_0_2_0_rc_2023_10_18_types_own_fields_t handle) { - __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_fields_drop(handle.__handle); -} - -wasi_http_0_2_0_rc_2023_10_18_types_borrow_fields_t wasi_http_0_2_0_rc_2023_10_18_types_borrow_fields(wasi_http_0_2_0_rc_2023_10_18_types_own_fields_t arg) { - return (wasi_http_0_2_0_rc_2023_10_18_types_borrow_fields_t) { arg.__handle }; -} - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-10-18"), __import_name__("[resource-drop]incoming-request"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_incoming_request_drop(int32_t handle); - -void wasi_http_0_2_0_rc_2023_10_18_types_incoming_request_drop_own(wasi_http_0_2_0_rc_2023_10_18_types_own_incoming_request_t handle) { - __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_incoming_request_drop(handle.__handle); -} - -void wasi_http_0_2_0_rc_2023_10_18_types_incoming_request_drop_borrow(wasi_http_0_2_0_rc_2023_10_18_types_own_incoming_request_t handle) { - __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_incoming_request_drop(handle.__handle); -} - -wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_request_t wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_request(wasi_http_0_2_0_rc_2023_10_18_types_own_incoming_request_t arg) { - return (wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_request_t) { arg.__handle }; -} - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-10-18"), __import_name__("[resource-drop]outgoing-request"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_outgoing_request_drop(int32_t handle); - -void wasi_http_0_2_0_rc_2023_10_18_types_outgoing_request_drop_own(wasi_http_0_2_0_rc_2023_10_18_types_own_outgoing_request_t handle) { - __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_outgoing_request_drop(handle.__handle); -} - -void wasi_http_0_2_0_rc_2023_10_18_types_outgoing_request_drop_borrow(wasi_http_0_2_0_rc_2023_10_18_types_own_outgoing_request_t handle) { - __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_outgoing_request_drop(handle.__handle); -} - -wasi_http_0_2_0_rc_2023_10_18_types_borrow_outgoing_request_t wasi_http_0_2_0_rc_2023_10_18_types_borrow_outgoing_request(wasi_http_0_2_0_rc_2023_10_18_types_own_outgoing_request_t arg) { - return (wasi_http_0_2_0_rc_2023_10_18_types_borrow_outgoing_request_t) { arg.__handle }; -} - -void bindings_option_u32_free(bindings_option_u32_t *ptr) { - if (ptr->is_some) { - } -} - -void wasi_http_0_2_0_rc_2023_10_18_types_request_options_free(wasi_http_0_2_0_rc_2023_10_18_types_request_options_t *ptr) { - bindings_option_u32_free(&ptr->connect_timeout_ms); - bindings_option_u32_free(&ptr->first_byte_timeout_ms); - bindings_option_u32_free(&ptr->between_bytes_timeout_ms); -} - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-10-18"), __import_name__("[resource-drop]response-outparam"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_response_outparam_drop(int32_t handle); - -void wasi_http_0_2_0_rc_2023_10_18_types_response_outparam_drop_own(wasi_http_0_2_0_rc_2023_10_18_types_own_response_outparam_t handle) { - __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_response_outparam_drop(handle.__handle); -} - -void wasi_http_0_2_0_rc_2023_10_18_types_response_outparam_drop_borrow(wasi_http_0_2_0_rc_2023_10_18_types_own_response_outparam_t handle) { - __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_response_outparam_drop(handle.__handle); -} - -wasi_http_0_2_0_rc_2023_10_18_types_borrow_response_outparam_t wasi_http_0_2_0_rc_2023_10_18_types_borrow_response_outparam(wasi_http_0_2_0_rc_2023_10_18_types_own_response_outparam_t arg) { - return (wasi_http_0_2_0_rc_2023_10_18_types_borrow_response_outparam_t) { arg.__handle }; -} - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-10-18"), __import_name__("[resource-drop]incoming-response"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_incoming_response_drop(int32_t handle); - -void wasi_http_0_2_0_rc_2023_10_18_types_incoming_response_drop_own(wasi_http_0_2_0_rc_2023_10_18_types_own_incoming_response_t handle) { - __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_incoming_response_drop(handle.__handle); -} - -void wasi_http_0_2_0_rc_2023_10_18_types_incoming_response_drop_borrow(wasi_http_0_2_0_rc_2023_10_18_types_own_incoming_response_t handle) { - __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_incoming_response_drop(handle.__handle); -} - -wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_response_t wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_response(wasi_http_0_2_0_rc_2023_10_18_types_own_incoming_response_t arg) { - return (wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_response_t) { arg.__handle }; -} - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-10-18"), __import_name__("[resource-drop]incoming-body"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_incoming_body_drop(int32_t handle); - -void wasi_http_0_2_0_rc_2023_10_18_types_incoming_body_drop_own(wasi_http_0_2_0_rc_2023_10_18_types_own_incoming_body_t handle) { - __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_incoming_body_drop(handle.__handle); -} - -void wasi_http_0_2_0_rc_2023_10_18_types_incoming_body_drop_borrow(wasi_http_0_2_0_rc_2023_10_18_types_own_incoming_body_t handle) { - __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_incoming_body_drop(handle.__handle); -} - -wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_body_t wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_body(wasi_http_0_2_0_rc_2023_10_18_types_own_incoming_body_t arg) { - return (wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_body_t) { arg.__handle }; -} - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-10-18"), __import_name__("[resource-drop]future-trailers"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_future_trailers_drop(int32_t handle); - -void wasi_http_0_2_0_rc_2023_10_18_types_future_trailers_drop_own(wasi_http_0_2_0_rc_2023_10_18_types_own_future_trailers_t handle) { - __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_future_trailers_drop(handle.__handle); -} - -void wasi_http_0_2_0_rc_2023_10_18_types_future_trailers_drop_borrow(wasi_http_0_2_0_rc_2023_10_18_types_own_future_trailers_t handle) { - __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_future_trailers_drop(handle.__handle); -} - -wasi_http_0_2_0_rc_2023_10_18_types_borrow_future_trailers_t wasi_http_0_2_0_rc_2023_10_18_types_borrow_future_trailers(wasi_http_0_2_0_rc_2023_10_18_types_own_future_trailers_t arg) { - return (wasi_http_0_2_0_rc_2023_10_18_types_borrow_future_trailers_t) { arg.__handle }; -} - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-10-18"), __import_name__("[resource-drop]outgoing-response"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_outgoing_response_drop(int32_t handle); - -void wasi_http_0_2_0_rc_2023_10_18_types_outgoing_response_drop_own(wasi_http_0_2_0_rc_2023_10_18_types_own_outgoing_response_t handle) { - __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_outgoing_response_drop(handle.__handle); -} - -void wasi_http_0_2_0_rc_2023_10_18_types_outgoing_response_drop_borrow(wasi_http_0_2_0_rc_2023_10_18_types_own_outgoing_response_t handle) { - __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_outgoing_response_drop(handle.__handle); -} - -wasi_http_0_2_0_rc_2023_10_18_types_borrow_outgoing_response_t wasi_http_0_2_0_rc_2023_10_18_types_borrow_outgoing_response(wasi_http_0_2_0_rc_2023_10_18_types_own_outgoing_response_t arg) { - return (wasi_http_0_2_0_rc_2023_10_18_types_borrow_outgoing_response_t) { arg.__handle }; -} - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-10-18"), __import_name__("[resource-drop]outgoing-body"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_outgoing_body_drop(int32_t handle); - -void wasi_http_0_2_0_rc_2023_10_18_types_outgoing_body_drop_own(wasi_http_0_2_0_rc_2023_10_18_types_own_outgoing_body_t handle) { - __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_outgoing_body_drop(handle.__handle); -} - -void wasi_http_0_2_0_rc_2023_10_18_types_outgoing_body_drop_borrow(wasi_http_0_2_0_rc_2023_10_18_types_own_outgoing_body_t handle) { - __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_outgoing_body_drop(handle.__handle); -} - -wasi_http_0_2_0_rc_2023_10_18_types_borrow_outgoing_body_t wasi_http_0_2_0_rc_2023_10_18_types_borrow_outgoing_body(wasi_http_0_2_0_rc_2023_10_18_types_own_outgoing_body_t arg) { - return (wasi_http_0_2_0_rc_2023_10_18_types_borrow_outgoing_body_t) { arg.__handle }; -} - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-10-18"), __import_name__("[resource-drop]future-incoming-response"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_future_incoming_response_drop(int32_t handle); - -void wasi_http_0_2_0_rc_2023_10_18_types_future_incoming_response_drop_own(wasi_http_0_2_0_rc_2023_10_18_types_own_future_incoming_response_t handle) { - __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_future_incoming_response_drop(handle.__handle); -} - -void wasi_http_0_2_0_rc_2023_10_18_types_future_incoming_response_drop_borrow(wasi_http_0_2_0_rc_2023_10_18_types_own_future_incoming_response_t handle) { - __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_future_incoming_response_drop(handle.__handle); -} - -wasi_http_0_2_0_rc_2023_10_18_types_borrow_future_incoming_response_t wasi_http_0_2_0_rc_2023_10_18_types_borrow_future_incoming_response(wasi_http_0_2_0_rc_2023_10_18_types_own_future_incoming_response_t arg) { - return (wasi_http_0_2_0_rc_2023_10_18_types_borrow_future_incoming_response_t) { arg.__handle }; -} - -void bindings_tuple2_string_list_u8_free(bindings_tuple2_string_list_u8_t *ptr) { - bindings_string_free(&ptr->f0); -} - -void bindings_list_tuple2_string_list_u8_free(bindings_list_tuple2_string_list_u8_t *ptr) { - for (size_t i = 0; i < ptr->len; i++) { - bindings_tuple2_string_list_u8_free(&ptr->ptr[i]); - } - if (ptr->len > 0) { - free(ptr->ptr); - } -} - -void bindings_list_list_u8_free(bindings_list_list_u8_t *ptr) { - for (size_t i = 0; i < ptr->len; i++) { - } - if (ptr->len > 0) { - free(ptr->ptr); - } -} - -void wasi_http_0_2_0_rc_2023_10_18_types_option_scheme_free(wasi_http_0_2_0_rc_2023_10_18_types_option_scheme_t *ptr) { - if (ptr->is_some) { - wasi_http_0_2_0_rc_2023_10_18_types_scheme_free(&ptr->val); - } -} - -void wasi_http_0_2_0_rc_2023_10_18_types_result_own_incoming_body_void_free(wasi_http_0_2_0_rc_2023_10_18_types_result_own_incoming_body_void_t *ptr) { - if (!ptr->is_err) { - } -} - -void wasi_http_0_2_0_rc_2023_10_18_types_result_own_outgoing_body_void_free(wasi_http_0_2_0_rc_2023_10_18_types_result_own_outgoing_body_void_t *ptr) { - if (!ptr->is_err) { - } -} - -void wasi_http_0_2_0_rc_2023_10_18_types_result_own_outgoing_response_error_free(wasi_http_0_2_0_rc_2023_10_18_types_result_own_outgoing_response_error_t *ptr) { - if (!ptr->is_err) { - } else { - wasi_http_0_2_0_rc_2023_10_18_types_error_free(&ptr->val.err); - } -} - -void wasi_http_0_2_0_rc_2023_10_18_types_result_own_input_stream_void_free(wasi_http_0_2_0_rc_2023_10_18_types_result_own_input_stream_void_t *ptr) { - if (!ptr->is_err) { - } -} - -void wasi_http_0_2_0_rc_2023_10_18_types_result_own_trailers_error_free(wasi_http_0_2_0_rc_2023_10_18_types_result_own_trailers_error_t *ptr) { - if (!ptr->is_err) { - } else { - wasi_http_0_2_0_rc_2023_10_18_types_error_free(&ptr->val.err); - } -} - -void wasi_http_0_2_0_rc_2023_10_18_types_option_result_own_trailers_error_free(wasi_http_0_2_0_rc_2023_10_18_types_option_result_own_trailers_error_t *ptr) { - if (ptr->is_some) { - wasi_http_0_2_0_rc_2023_10_18_types_result_own_trailers_error_free(&ptr->val); - } -} - -void wasi_http_0_2_0_rc_2023_10_18_types_result_own_output_stream_void_free(wasi_http_0_2_0_rc_2023_10_18_types_result_own_output_stream_void_t *ptr) { - if (!ptr->is_err) { - } -} - -void wasi_http_0_2_0_rc_2023_10_18_types_option_own_trailers_free(wasi_http_0_2_0_rc_2023_10_18_types_option_own_trailers_t *ptr) { - if (ptr->is_some) { - } -} - -void wasi_http_0_2_0_rc_2023_10_18_types_result_own_incoming_response_error_free(wasi_http_0_2_0_rc_2023_10_18_types_result_own_incoming_response_error_t *ptr) { - if (!ptr->is_err) { - } else { - wasi_http_0_2_0_rc_2023_10_18_types_error_free(&ptr->val.err); - } -} - -void wasi_http_0_2_0_rc_2023_10_18_types_result_result_own_incoming_response_error_void_free(wasi_http_0_2_0_rc_2023_10_18_types_result_result_own_incoming_response_error_void_t *ptr) { - if (!ptr->is_err) { - wasi_http_0_2_0_rc_2023_10_18_types_result_own_incoming_response_error_free(&ptr->val.ok); - } -} - -void wasi_http_0_2_0_rc_2023_10_18_types_option_result_result_own_incoming_response_error_void_free(wasi_http_0_2_0_rc_2023_10_18_types_option_result_result_own_incoming_response_error_void_t *ptr) { - if (ptr->is_some) { - wasi_http_0_2_0_rc_2023_10_18_types_result_result_own_incoming_response_error_void_free(&ptr->val); - } -} - -void wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_request_options_free(wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_request_options_t *ptr) { - wasi_http_0_2_0_rc_2023_10_18_types_request_options_free(ptr); -} - -void wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_error_free(wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_error_t *ptr) { - wasi_http_0_2_0_rc_2023_10_18_types_error_free(ptr); -} - -void wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_option_request_options_free(wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_option_request_options_t *ptr) { - if (ptr->is_some) { - wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_request_options_free(&ptr->val); - } -} - -void wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_result_own_future_incoming_response_error_free(wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_result_own_future_incoming_response_error_t *ptr) { - if (!ptr->is_err) { - } else { - wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_error_free(&ptr->val.err); - } -} - -void exports_wasi_cli_0_2_0_rc_2023_10_18_run_result_void_void_free(exports_wasi_cli_0_2_0_rc_2023_10_18_run_result_void_void_t *ptr) { - if (!ptr->is_err) { - } -} - -void bindings_string_set(bindings_string_t *ret, char*s) { - ret->ptr = (uint8_t*) s; - ret->len = strlen(s); -} - -void bindings_string_dup(bindings_string_t *ret, const char*s) { - ret->len = strlen(s); - ret->ptr = cabi_realloc(NULL, 0, 1, ret->len * 1); - memcpy(ret->ptr, s, ret->len * 1); -} - -void bindings_string_free(bindings_string_t *ret) { - if (ret->len > 0) { - free(ret->ptr); - } - ret->ptr = NULL; - ret->len = 0; -} - -// Component Adapters - -void wasi_clocks_0_2_0_rc_2023_10_18_wall_clock_now(wasi_clocks_0_2_0_rc_2023_10_18_wall_clock_datetime_t *ret) { - __attribute__((__aligned__(8))) - uint8_t ret_area[16]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_clocks_0_2_0_rc_2023_10_18_wall_clock_now(ptr); - *ret = (wasi_clocks_0_2_0_rc_2023_10_18_wall_clock_datetime_t) { - (uint64_t) (*((int64_t*) (ptr + 0))), - (uint32_t) (*((int32_t*) (ptr + 8))), - }; -} - -void wasi_clocks_0_2_0_rc_2023_10_18_wall_clock_resolution(wasi_clocks_0_2_0_rc_2023_10_18_wall_clock_datetime_t *ret) { - __attribute__((__aligned__(8))) - uint8_t ret_area[16]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_clocks_0_2_0_rc_2023_10_18_wall_clock_resolution(ptr); - *ret = (wasi_clocks_0_2_0_rc_2023_10_18_wall_clock_datetime_t) { - (uint64_t) (*((int64_t*) (ptr + 0))), - (uint32_t) (*((int32_t*) (ptr + 8))), - }; -} - -void wasi_io_0_2_0_rc_2023_10_18_poll_poll_list(wasi_io_0_2_0_rc_2023_10_18_poll_list_borrow_pollable_t *in, bindings_list_u32_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_io_0_2_0_rc_2023_10_18_poll_poll_list((int32_t) (*in).ptr, (int32_t) (*in).len, ptr); - *ret = (bindings_list_u32_t) { (uint32_t*)(*((int32_t*) (ptr + 0))), (size_t)(*((int32_t*) (ptr + 4))) }; -} - -void wasi_io_0_2_0_rc_2023_10_18_poll_poll_one(wasi_io_0_2_0_rc_2023_10_18_poll_borrow_pollable_t in) { - __wasm_import_wasi_io_0_2_0_rc_2023_10_18_poll_poll_one((in).__handle); -} - -wasi_clocks_0_2_0_rc_2023_10_18_monotonic_clock_instant_t wasi_clocks_0_2_0_rc_2023_10_18_monotonic_clock_now(void) { - int64_t ret = __wasm_import_wasi_clocks_0_2_0_rc_2023_10_18_monotonic_clock_now(); - return (uint64_t) (ret); -} - -wasi_clocks_0_2_0_rc_2023_10_18_monotonic_clock_instant_t wasi_clocks_0_2_0_rc_2023_10_18_monotonic_clock_resolution(void) { - int64_t ret = __wasm_import_wasi_clocks_0_2_0_rc_2023_10_18_monotonic_clock_resolution(); - return (uint64_t) (ret); -} - -wasi_clocks_0_2_0_rc_2023_10_18_monotonic_clock_own_pollable_t wasi_clocks_0_2_0_rc_2023_10_18_monotonic_clock_subscribe(wasi_clocks_0_2_0_rc_2023_10_18_monotonic_clock_instant_t when, bool absolute) { - int32_t ret = __wasm_import_wasi_clocks_0_2_0_rc_2023_10_18_monotonic_clock_subscribe((int64_t) (when), absolute); - return (wasi_clocks_0_2_0_rc_2023_10_18_monotonic_clock_own_pollable_t) { ret }; -} - -void wasi_clocks_0_2_0_rc_2023_10_18_timezone_display(wasi_clocks_0_2_0_rc_2023_10_18_timezone_datetime_t *when, wasi_clocks_0_2_0_rc_2023_10_18_timezone_timezone_display_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[16]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_clocks_0_2_0_rc_2023_10_18_timezone_display((int64_t) ((*when).seconds), (int32_t) ((*when).nanoseconds), ptr); - *ret = (wasi_clocks_0_2_0_rc_2023_10_18_timezone_timezone_display_t) { - *((int32_t*) (ptr + 0)), - (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 4))), (size_t)(*((int32_t*) (ptr + 8))) }, - (int32_t) (*((uint8_t*) (ptr + 12))), - }; -} - -int32_t wasi_clocks_0_2_0_rc_2023_10_18_timezone_utc_offset(wasi_clocks_0_2_0_rc_2023_10_18_timezone_datetime_t *when) { - int32_t ret = __wasm_import_wasi_clocks_0_2_0_rc_2023_10_18_timezone_utc_offset((int64_t) ((*when).seconds), (int32_t) ((*when).nanoseconds)); - return ret; -} - -void wasi_io_0_2_0_rc_2023_10_18_streams_method_error_to_debug_string(wasi_io_0_2_0_rc_2023_10_18_streams_borrow_error_t self, bindings_string_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_io_0_2_0_rc_2023_10_18_streams_method_error_to_debug_string((self).__handle, ptr); - *ret = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 0))), (size_t)(*((int32_t*) (ptr + 4))) }; -} - -bool wasi_io_0_2_0_rc_2023_10_18_streams_method_input_stream_read(wasi_io_0_2_0_rc_2023_10_18_streams_borrow_input_stream_t self, uint64_t len, bindings_list_u8_t *ret, wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[12]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_io_0_2_0_rc_2023_10_18_streams_method_input_stream_read((self).__handle, (int64_t) (len), ptr); - wasi_io_0_2_0_rc_2023_10_18_streams_result_list_u8_stream_error_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (bindings_list_u8_t) { (uint8_t*)(*((int32_t*) (ptr + 4))), (size_t)(*((int32_t*) (ptr + 8))) }; - break; - } - case 1: { - result.is_err = true; - wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 4))); - switch ((int32_t) variant.tag) { - case 0: { - variant.val.last_operation_failed = (wasi_io_0_2_0_rc_2023_10_18_streams_own_error_t) { *((int32_t*) (ptr + 8)) }; - break; - } - case 1: { - break; - } - } - - result.val.err = variant; - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_io_0_2_0_rc_2023_10_18_streams_method_input_stream_blocking_read(wasi_io_0_2_0_rc_2023_10_18_streams_borrow_input_stream_t self, uint64_t len, bindings_list_u8_t *ret, wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[12]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_io_0_2_0_rc_2023_10_18_streams_method_input_stream_blocking_read((self).__handle, (int64_t) (len), ptr); - wasi_io_0_2_0_rc_2023_10_18_streams_result_list_u8_stream_error_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (bindings_list_u8_t) { (uint8_t*)(*((int32_t*) (ptr + 4))), (size_t)(*((int32_t*) (ptr + 8))) }; - break; - } - case 1: { - result.is_err = true; - wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 4))); - switch ((int32_t) variant.tag) { - case 0: { - variant.val.last_operation_failed = (wasi_io_0_2_0_rc_2023_10_18_streams_own_error_t) { *((int32_t*) (ptr + 8)) }; - break; - } - case 1: { - break; - } - } - - result.val.err = variant; - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_io_0_2_0_rc_2023_10_18_streams_method_input_stream_skip(wasi_io_0_2_0_rc_2023_10_18_streams_borrow_input_stream_t self, uint64_t len, uint64_t *ret, wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t *err) { - __attribute__((__aligned__(8))) - uint8_t ret_area[16]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_io_0_2_0_rc_2023_10_18_streams_method_input_stream_skip((self).__handle, (int64_t) (len), ptr); - wasi_io_0_2_0_rc_2023_10_18_streams_result_u64_stream_error_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (uint64_t) (*((int64_t*) (ptr + 8))); - break; - } - case 1: { - result.is_err = true; - wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 8))); - switch ((int32_t) variant.tag) { - case 0: { - variant.val.last_operation_failed = (wasi_io_0_2_0_rc_2023_10_18_streams_own_error_t) { *((int32_t*) (ptr + 12)) }; - break; - } - case 1: { - break; - } - } - - result.val.err = variant; - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_io_0_2_0_rc_2023_10_18_streams_method_input_stream_blocking_skip(wasi_io_0_2_0_rc_2023_10_18_streams_borrow_input_stream_t self, uint64_t len, uint64_t *ret, wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t *err) { - __attribute__((__aligned__(8))) - uint8_t ret_area[16]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_io_0_2_0_rc_2023_10_18_streams_method_input_stream_blocking_skip((self).__handle, (int64_t) (len), ptr); - wasi_io_0_2_0_rc_2023_10_18_streams_result_u64_stream_error_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (uint64_t) (*((int64_t*) (ptr + 8))); - break; - } - case 1: { - result.is_err = true; - wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 8))); - switch ((int32_t) variant.tag) { - case 0: { - variant.val.last_operation_failed = (wasi_io_0_2_0_rc_2023_10_18_streams_own_error_t) { *((int32_t*) (ptr + 12)) }; - break; - } - case 1: { - break; - } - } - - result.val.err = variant; - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -wasi_io_0_2_0_rc_2023_10_18_streams_own_pollable_t wasi_io_0_2_0_rc_2023_10_18_streams_method_input_stream_subscribe(wasi_io_0_2_0_rc_2023_10_18_streams_borrow_input_stream_t self) { - int32_t ret = __wasm_import_wasi_io_0_2_0_rc_2023_10_18_streams_method_input_stream_subscribe((self).__handle); - return (wasi_io_0_2_0_rc_2023_10_18_streams_own_pollable_t) { ret }; -} - -bool wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_check_write(wasi_io_0_2_0_rc_2023_10_18_streams_borrow_output_stream_t self, uint64_t *ret, wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t *err) { - __attribute__((__aligned__(8))) - uint8_t ret_area[16]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_check_write((self).__handle, ptr); - wasi_io_0_2_0_rc_2023_10_18_streams_result_u64_stream_error_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (uint64_t) (*((int64_t*) (ptr + 8))); - break; - } - case 1: { - result.is_err = true; - wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 8))); - switch ((int32_t) variant.tag) { - case 0: { - variant.val.last_operation_failed = (wasi_io_0_2_0_rc_2023_10_18_streams_own_error_t) { *((int32_t*) (ptr + 12)) }; - break; - } - case 1: { - break; - } - } - - result.val.err = variant; - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_write(wasi_io_0_2_0_rc_2023_10_18_streams_borrow_output_stream_t self, bindings_list_u8_t *contents, wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[12]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_write((self).__handle, (int32_t) (*contents).ptr, (int32_t) (*contents).len, ptr); - wasi_io_0_2_0_rc_2023_10_18_streams_result_void_stream_error_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 4))); - switch ((int32_t) variant.tag) { - case 0: { - variant.val.last_operation_failed = (wasi_io_0_2_0_rc_2023_10_18_streams_own_error_t) { *((int32_t*) (ptr + 8)) }; - break; - } - case 1: { - break; - } - } - - result.val.err = variant; - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_blocking_write_and_flush(wasi_io_0_2_0_rc_2023_10_18_streams_borrow_output_stream_t self, bindings_list_u8_t *contents, wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[12]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_blocking_write_and_flush((self).__handle, (int32_t) (*contents).ptr, (int32_t) (*contents).len, ptr); - wasi_io_0_2_0_rc_2023_10_18_streams_result_void_stream_error_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 4))); - switch ((int32_t) variant.tag) { - case 0: { - variant.val.last_operation_failed = (wasi_io_0_2_0_rc_2023_10_18_streams_own_error_t) { *((int32_t*) (ptr + 8)) }; - break; - } - case 1: { - break; - } - } - - result.val.err = variant; - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_flush(wasi_io_0_2_0_rc_2023_10_18_streams_borrow_output_stream_t self, wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[12]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_flush((self).__handle, ptr); - wasi_io_0_2_0_rc_2023_10_18_streams_result_void_stream_error_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 4))); - switch ((int32_t) variant.tag) { - case 0: { - variant.val.last_operation_failed = (wasi_io_0_2_0_rc_2023_10_18_streams_own_error_t) { *((int32_t*) (ptr + 8)) }; - break; - } - case 1: { - break; - } - } - - result.val.err = variant; - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_blocking_flush(wasi_io_0_2_0_rc_2023_10_18_streams_borrow_output_stream_t self, wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[12]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_blocking_flush((self).__handle, ptr); - wasi_io_0_2_0_rc_2023_10_18_streams_result_void_stream_error_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 4))); - switch ((int32_t) variant.tag) { - case 0: { - variant.val.last_operation_failed = (wasi_io_0_2_0_rc_2023_10_18_streams_own_error_t) { *((int32_t*) (ptr + 8)) }; - break; - } - case 1: { - break; - } - } - - result.val.err = variant; - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -wasi_io_0_2_0_rc_2023_10_18_streams_own_pollable_t wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_subscribe(wasi_io_0_2_0_rc_2023_10_18_streams_borrow_output_stream_t self) { - int32_t ret = __wasm_import_wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_subscribe((self).__handle); - return (wasi_io_0_2_0_rc_2023_10_18_streams_own_pollable_t) { ret }; -} - -bool wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_write_zeroes(wasi_io_0_2_0_rc_2023_10_18_streams_borrow_output_stream_t self, uint64_t len, wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[12]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_write_zeroes((self).__handle, (int64_t) (len), ptr); - wasi_io_0_2_0_rc_2023_10_18_streams_result_void_stream_error_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 4))); - switch ((int32_t) variant.tag) { - case 0: { - variant.val.last_operation_failed = (wasi_io_0_2_0_rc_2023_10_18_streams_own_error_t) { *((int32_t*) (ptr + 8)) }; - break; - } - case 1: { - break; - } - } - - result.val.err = variant; - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_blocking_write_zeroes_and_flush(wasi_io_0_2_0_rc_2023_10_18_streams_borrow_output_stream_t self, uint64_t len, wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[12]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_blocking_write_zeroes_and_flush((self).__handle, (int64_t) (len), ptr); - wasi_io_0_2_0_rc_2023_10_18_streams_result_void_stream_error_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 4))); - switch ((int32_t) variant.tag) { - case 0: { - variant.val.last_operation_failed = (wasi_io_0_2_0_rc_2023_10_18_streams_own_error_t) { *((int32_t*) (ptr + 8)) }; - break; - } - case 1: { - break; - } - } - - result.val.err = variant; - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_splice(wasi_io_0_2_0_rc_2023_10_18_streams_borrow_output_stream_t self, wasi_io_0_2_0_rc_2023_10_18_streams_own_input_stream_t src, uint64_t len, uint64_t *ret, wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t *err) { - __attribute__((__aligned__(8))) - uint8_t ret_area[16]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_splice((self).__handle, (src).__handle, (int64_t) (len), ptr); - wasi_io_0_2_0_rc_2023_10_18_streams_result_u64_stream_error_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (uint64_t) (*((int64_t*) (ptr + 8))); - break; - } - case 1: { - result.is_err = true; - wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 8))); - switch ((int32_t) variant.tag) { - case 0: { - variant.val.last_operation_failed = (wasi_io_0_2_0_rc_2023_10_18_streams_own_error_t) { *((int32_t*) (ptr + 12)) }; - break; - } - case 1: { - break; - } - } - - result.val.err = variant; - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_blocking_splice(wasi_io_0_2_0_rc_2023_10_18_streams_borrow_output_stream_t self, wasi_io_0_2_0_rc_2023_10_18_streams_own_input_stream_t src, uint64_t len, uint64_t *ret, wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t *err) { - __attribute__((__aligned__(8))) - uint8_t ret_area[16]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_blocking_splice((self).__handle, (src).__handle, (int64_t) (len), ptr); - wasi_io_0_2_0_rc_2023_10_18_streams_result_u64_stream_error_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (uint64_t) (*((int64_t*) (ptr + 8))); - break; - } - case 1: { - result.is_err = true; - wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 8))); - switch ((int32_t) variant.tag) { - case 0: { - variant.val.last_operation_failed = (wasi_io_0_2_0_rc_2023_10_18_streams_own_error_t) { *((int32_t*) (ptr + 12)) }; - break; - } - case 1: { - break; - } - } - - result.val.err = variant; - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_forward(wasi_io_0_2_0_rc_2023_10_18_streams_borrow_output_stream_t self, wasi_io_0_2_0_rc_2023_10_18_streams_own_input_stream_t src, uint64_t *ret, wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t *err) { - __attribute__((__aligned__(8))) - uint8_t ret_area[16]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_forward((self).__handle, (src).__handle, ptr); - wasi_io_0_2_0_rc_2023_10_18_streams_result_u64_stream_error_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (uint64_t) (*((int64_t*) (ptr + 8))); - break; - } - case 1: { - result.is_err = true; - wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 8))); - switch ((int32_t) variant.tag) { - case 0: { - variant.val.last_operation_failed = (wasi_io_0_2_0_rc_2023_10_18_streams_own_error_t) { *((int32_t*) (ptr + 12)) }; - break; - } - case 1: { - break; - } - } - - result.val.err = variant; - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_read_via_stream(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_filesize_t offset, wasi_filesystem_0_2_0_rc_2023_10_18_types_own_input_stream_t *ret, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_read_via_stream((self).__handle, (int64_t) (offset), ptr); - wasi_filesystem_0_2_0_rc_2023_10_18_types_result_own_input_stream_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_filesystem_0_2_0_rc_2023_10_18_types_own_input_stream_t) { *((int32_t*) (ptr + 4)) }; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 4))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_write_via_stream(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_filesize_t offset, wasi_filesystem_0_2_0_rc_2023_10_18_types_own_output_stream_t *ret, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_write_via_stream((self).__handle, (int64_t) (offset), ptr); - wasi_filesystem_0_2_0_rc_2023_10_18_types_result_own_output_stream_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_filesystem_0_2_0_rc_2023_10_18_types_own_output_stream_t) { *((int32_t*) (ptr + 4)) }; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 4))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_append_via_stream(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_own_output_stream_t *ret, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_append_via_stream((self).__handle, ptr); - wasi_filesystem_0_2_0_rc_2023_10_18_types_result_own_output_stream_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_filesystem_0_2_0_rc_2023_10_18_types_own_output_stream_t) { *((int32_t*) (ptr + 4)) }; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 4))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_advise(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_filesize_t offset, wasi_filesystem_0_2_0_rc_2023_10_18_types_filesize_t length, wasi_filesystem_0_2_0_rc_2023_10_18_types_advice_t advice, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_advise((self).__handle, (int64_t) (offset), (int64_t) (length), (int32_t) advice, ptr); - wasi_filesystem_0_2_0_rc_2023_10_18_types_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_sync_data(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_sync_data((self).__handle, ptr); - wasi_filesystem_0_2_0_rc_2023_10_18_types_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_get_flags(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_descriptor_flags_t *ret, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_get_flags((self).__handle, ptr); - wasi_filesystem_0_2_0_rc_2023_10_18_types_result_descriptor_flags_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_get_type(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_descriptor_type_t *ret, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_get_type((self).__handle, ptr); - wasi_filesystem_0_2_0_rc_2023_10_18_types_result_descriptor_type_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_set_size(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_filesize_t size, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_set_size((self).__handle, (int64_t) (size), ptr); - wasi_filesystem_0_2_0_rc_2023_10_18_types_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_set_times(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_new_timestamp_t *data_access_timestamp, wasi_filesystem_0_2_0_rc_2023_10_18_types_new_timestamp_t *data_modification_timestamp, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t variant; - int64_t variant2; - int32_t variant3; - switch ((int32_t) (*data_access_timestamp).tag) { - case 0: { - variant = 0; - variant2 = 0; - variant3 = 0; - break; - } - case 1: { - variant = 1; - variant2 = 0; - variant3 = 0; - break; - } - case 2: { - const wasi_filesystem_0_2_0_rc_2023_10_18_types_datetime_t *payload1 = &(*data_access_timestamp).val.timestamp; - variant = 2; - variant2 = (int64_t) ((*payload1).seconds); - variant3 = (int32_t) ((*payload1).nanoseconds); - break; - } - } - int32_t variant7; - int64_t variant8; - int32_t variant9; - switch ((int32_t) (*data_modification_timestamp).tag) { - case 0: { - variant7 = 0; - variant8 = 0; - variant9 = 0; - break; - } - case 1: { - variant7 = 1; - variant8 = 0; - variant9 = 0; - break; - } - case 2: { - const wasi_filesystem_0_2_0_rc_2023_10_18_types_datetime_t *payload6 = &(*data_modification_timestamp).val.timestamp; - variant7 = 2; - variant8 = (int64_t) ((*payload6).seconds); - variant9 = (int32_t) ((*payload6).nanoseconds); - break; - } - } - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_set_times((self).__handle, variant, variant2, variant3, variant7, variant8, variant9, ptr); - wasi_filesystem_0_2_0_rc_2023_10_18_types_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_read(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_filesize_t length, wasi_filesystem_0_2_0_rc_2023_10_18_types_filesize_t offset, bindings_tuple2_list_u8_bool_t *ret, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[16]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_read((self).__handle, (int64_t) (length), (int64_t) (offset), ptr); - wasi_filesystem_0_2_0_rc_2023_10_18_types_result_tuple2_list_u8_bool_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (bindings_tuple2_list_u8_bool_t) { - (bindings_list_u8_t) { (uint8_t*)(*((int32_t*) (ptr + 4))), (size_t)(*((int32_t*) (ptr + 8))) }, - (int32_t) (*((uint8_t*) (ptr + 12))), - }; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 4))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_write(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, bindings_list_u8_t *buffer, wasi_filesystem_0_2_0_rc_2023_10_18_types_filesize_t offset, wasi_filesystem_0_2_0_rc_2023_10_18_types_filesize_t *ret, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err) { - __attribute__((__aligned__(8))) - uint8_t ret_area[16]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_write((self).__handle, (int32_t) (*buffer).ptr, (int32_t) (*buffer).len, (int64_t) (offset), ptr); - wasi_filesystem_0_2_0_rc_2023_10_18_types_result_filesize_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (uint64_t) (*((int64_t*) (ptr + 8))); - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 8))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_read_directory(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_own_directory_entry_stream_t *ret, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_read_directory((self).__handle, ptr); - wasi_filesystem_0_2_0_rc_2023_10_18_types_result_own_directory_entry_stream_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_filesystem_0_2_0_rc_2023_10_18_types_own_directory_entry_stream_t) { *((int32_t*) (ptr + 4)) }; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 4))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_sync(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_sync((self).__handle, ptr); - wasi_filesystem_0_2_0_rc_2023_10_18_types_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_create_directory_at(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, bindings_string_t *path, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_create_directory_at((self).__handle, (int32_t) (*path).ptr, (int32_t) (*path).len, ptr); - wasi_filesystem_0_2_0_rc_2023_10_18_types_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_stat(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_descriptor_stat_t *ret, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err) { - __attribute__((__aligned__(8))) - uint8_t ret_area[104]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_stat((self).__handle, ptr); - wasi_filesystem_0_2_0_rc_2023_10_18_types_result_descriptor_stat_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - wasi_filesystem_0_2_0_rc_2023_10_18_types_option_datetime_t option; - switch ((int32_t) (*((uint8_t*) (ptr + 32)))) { - case 0: { - option.is_some = false; - break; - } - case 1: { - option.is_some = true; - option.val = (wasi_clocks_0_2_0_rc_2023_10_18_wall_clock_datetime_t) { - (uint64_t) (*((int64_t*) (ptr + 40))), - (uint32_t) (*((int32_t*) (ptr + 48))), - }; - break; - } - } - wasi_filesystem_0_2_0_rc_2023_10_18_types_option_datetime_t option0; - switch ((int32_t) (*((uint8_t*) (ptr + 56)))) { - case 0: { - option0.is_some = false; - break; - } - case 1: { - option0.is_some = true; - option0.val = (wasi_clocks_0_2_0_rc_2023_10_18_wall_clock_datetime_t) { - (uint64_t) (*((int64_t*) (ptr + 64))), - (uint32_t) (*((int32_t*) (ptr + 72))), - }; - break; - } - } - wasi_filesystem_0_2_0_rc_2023_10_18_types_option_datetime_t option1; - switch ((int32_t) (*((uint8_t*) (ptr + 80)))) { - case 0: { - option1.is_some = false; - break; - } - case 1: { - option1.is_some = true; - option1.val = (wasi_clocks_0_2_0_rc_2023_10_18_wall_clock_datetime_t) { - (uint64_t) (*((int64_t*) (ptr + 88))), - (uint32_t) (*((int32_t*) (ptr + 96))), - }; - break; - } - } - - result.val.ok = (wasi_filesystem_0_2_0_rc_2023_10_18_types_descriptor_stat_t) { - (int32_t) (*((uint8_t*) (ptr + 8))), - (uint64_t) (*((int64_t*) (ptr + 16))), - (uint64_t) (*((int64_t*) (ptr + 24))), - option, - option0, - option1, - }; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 8))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_stat_at(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_path_flags_t path_flags, bindings_string_t *path, wasi_filesystem_0_2_0_rc_2023_10_18_types_descriptor_stat_t *ret, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err) { - __attribute__((__aligned__(8))) - uint8_t ret_area[104]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_stat_at((self).__handle, path_flags, (int32_t) (*path).ptr, (int32_t) (*path).len, ptr); - wasi_filesystem_0_2_0_rc_2023_10_18_types_result_descriptor_stat_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - wasi_filesystem_0_2_0_rc_2023_10_18_types_option_datetime_t option; - switch ((int32_t) (*((uint8_t*) (ptr + 32)))) { - case 0: { - option.is_some = false; - break; - } - case 1: { - option.is_some = true; - option.val = (wasi_clocks_0_2_0_rc_2023_10_18_wall_clock_datetime_t) { - (uint64_t) (*((int64_t*) (ptr + 40))), - (uint32_t) (*((int32_t*) (ptr + 48))), - }; - break; - } - } - wasi_filesystem_0_2_0_rc_2023_10_18_types_option_datetime_t option0; - switch ((int32_t) (*((uint8_t*) (ptr + 56)))) { - case 0: { - option0.is_some = false; - break; - } - case 1: { - option0.is_some = true; - option0.val = (wasi_clocks_0_2_0_rc_2023_10_18_wall_clock_datetime_t) { - (uint64_t) (*((int64_t*) (ptr + 64))), - (uint32_t) (*((int32_t*) (ptr + 72))), - }; - break; - } - } - wasi_filesystem_0_2_0_rc_2023_10_18_types_option_datetime_t option1; - switch ((int32_t) (*((uint8_t*) (ptr + 80)))) { - case 0: { - option1.is_some = false; - break; - } - case 1: { - option1.is_some = true; - option1.val = (wasi_clocks_0_2_0_rc_2023_10_18_wall_clock_datetime_t) { - (uint64_t) (*((int64_t*) (ptr + 88))), - (uint32_t) (*((int32_t*) (ptr + 96))), - }; - break; - } - } - - result.val.ok = (wasi_filesystem_0_2_0_rc_2023_10_18_types_descriptor_stat_t) { - (int32_t) (*((uint8_t*) (ptr + 8))), - (uint64_t) (*((int64_t*) (ptr + 16))), - (uint64_t) (*((int64_t*) (ptr + 24))), - option, - option0, - option1, - }; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 8))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_set_times_at(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_path_flags_t path_flags, bindings_string_t *path, wasi_filesystem_0_2_0_rc_2023_10_18_types_new_timestamp_t *data_access_timestamp, wasi_filesystem_0_2_0_rc_2023_10_18_types_new_timestamp_t *data_modification_timestamp, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t variant; - int64_t variant2; - int32_t variant3; - switch ((int32_t) (*data_access_timestamp).tag) { - case 0: { - variant = 0; - variant2 = 0; - variant3 = 0; - break; - } - case 1: { - variant = 1; - variant2 = 0; - variant3 = 0; - break; - } - case 2: { - const wasi_filesystem_0_2_0_rc_2023_10_18_types_datetime_t *payload1 = &(*data_access_timestamp).val.timestamp; - variant = 2; - variant2 = (int64_t) ((*payload1).seconds); - variant3 = (int32_t) ((*payload1).nanoseconds); - break; - } - } - int32_t variant7; - int64_t variant8; - int32_t variant9; - switch ((int32_t) (*data_modification_timestamp).tag) { - case 0: { - variant7 = 0; - variant8 = 0; - variant9 = 0; - break; - } - case 1: { - variant7 = 1; - variant8 = 0; - variant9 = 0; - break; - } - case 2: { - const wasi_filesystem_0_2_0_rc_2023_10_18_types_datetime_t *payload6 = &(*data_modification_timestamp).val.timestamp; - variant7 = 2; - variant8 = (int64_t) ((*payload6).seconds); - variant9 = (int32_t) ((*payload6).nanoseconds); - break; - } - } - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_set_times_at((self).__handle, path_flags, (int32_t) (*path).ptr, (int32_t) (*path).len, variant, variant2, variant3, variant7, variant8, variant9, ptr); - wasi_filesystem_0_2_0_rc_2023_10_18_types_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_link_at(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_path_flags_t old_path_flags, bindings_string_t *old_path, wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t new_descriptor, bindings_string_t *new_path, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_link_at((self).__handle, old_path_flags, (int32_t) (*old_path).ptr, (int32_t) (*old_path).len, (new_descriptor).__handle, (int32_t) (*new_path).ptr, (int32_t) (*new_path).len, ptr); - wasi_filesystem_0_2_0_rc_2023_10_18_types_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_open_at(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_path_flags_t path_flags, bindings_string_t *path, wasi_filesystem_0_2_0_rc_2023_10_18_types_open_flags_t open_flags, wasi_filesystem_0_2_0_rc_2023_10_18_types_descriptor_flags_t flags, wasi_filesystem_0_2_0_rc_2023_10_18_types_modes_t modes, wasi_filesystem_0_2_0_rc_2023_10_18_types_own_descriptor_t *ret, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_open_at((self).__handle, path_flags, (int32_t) (*path).ptr, (int32_t) (*path).len, open_flags, flags, modes, ptr); - wasi_filesystem_0_2_0_rc_2023_10_18_types_result_own_descriptor_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_filesystem_0_2_0_rc_2023_10_18_types_own_descriptor_t) { *((int32_t*) (ptr + 4)) }; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 4))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_readlink_at(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, bindings_string_t *path, bindings_string_t *ret, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[12]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_readlink_at((self).__handle, (int32_t) (*path).ptr, (int32_t) (*path).len, ptr); - wasi_filesystem_0_2_0_rc_2023_10_18_types_result_string_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 4))), (size_t)(*((int32_t*) (ptr + 8))) }; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 4))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_remove_directory_at(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, bindings_string_t *path, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_remove_directory_at((self).__handle, (int32_t) (*path).ptr, (int32_t) (*path).len, ptr); - wasi_filesystem_0_2_0_rc_2023_10_18_types_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_rename_at(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, bindings_string_t *old_path, wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t new_descriptor, bindings_string_t *new_path, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_rename_at((self).__handle, (int32_t) (*old_path).ptr, (int32_t) (*old_path).len, (new_descriptor).__handle, (int32_t) (*new_path).ptr, (int32_t) (*new_path).len, ptr); - wasi_filesystem_0_2_0_rc_2023_10_18_types_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_symlink_at(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, bindings_string_t *old_path, bindings_string_t *new_path, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_symlink_at((self).__handle, (int32_t) (*old_path).ptr, (int32_t) (*old_path).len, (int32_t) (*new_path).ptr, (int32_t) (*new_path).len, ptr); - wasi_filesystem_0_2_0_rc_2023_10_18_types_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_access_at(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_path_flags_t path_flags, bindings_string_t *path, wasi_filesystem_0_2_0_rc_2023_10_18_types_access_type_t *type, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t variant; - int32_t variant1; - switch ((int32_t) (*type).tag) { - case 0: { - const wasi_filesystem_0_2_0_rc_2023_10_18_types_modes_t *payload = &(*type).val.access; - variant = 0; - variant1 = *payload; - break; - } - case 1: { - variant = 1; - variant1 = 0; - break; - } - } - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_access_at((self).__handle, path_flags, (int32_t) (*path).ptr, (int32_t) (*path).len, variant, variant1, ptr); - wasi_filesystem_0_2_0_rc_2023_10_18_types_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_unlink_file_at(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, bindings_string_t *path, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_unlink_file_at((self).__handle, (int32_t) (*path).ptr, (int32_t) (*path).len, ptr); - wasi_filesystem_0_2_0_rc_2023_10_18_types_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_change_file_permissions_at(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_path_flags_t path_flags, bindings_string_t *path, wasi_filesystem_0_2_0_rc_2023_10_18_types_modes_t modes, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_change_file_permissions_at((self).__handle, path_flags, (int32_t) (*path).ptr, (int32_t) (*path).len, modes, ptr); - wasi_filesystem_0_2_0_rc_2023_10_18_types_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_change_directory_permissions_at(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_path_flags_t path_flags, bindings_string_t *path, wasi_filesystem_0_2_0_rc_2023_10_18_types_modes_t modes, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_change_directory_permissions_at((self).__handle, path_flags, (int32_t) (*path).ptr, (int32_t) (*path).len, modes, ptr); - wasi_filesystem_0_2_0_rc_2023_10_18_types_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_lock_shared(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_lock_shared((self).__handle, ptr); - wasi_filesystem_0_2_0_rc_2023_10_18_types_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_lock_exclusive(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_lock_exclusive((self).__handle, ptr); - wasi_filesystem_0_2_0_rc_2023_10_18_types_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_try_lock_shared(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_try_lock_shared((self).__handle, ptr); - wasi_filesystem_0_2_0_rc_2023_10_18_types_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_try_lock_exclusive(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_try_lock_exclusive((self).__handle, ptr); - wasi_filesystem_0_2_0_rc_2023_10_18_types_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_unlock(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_unlock((self).__handle, ptr); - wasi_filesystem_0_2_0_rc_2023_10_18_types_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_is_same_object(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t other) { - int32_t ret = __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_is_same_object((self).__handle, (other).__handle); - return ret; -} - -bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_metadata_hash(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_metadata_hash_value_t *ret, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err) { - __attribute__((__aligned__(8))) - uint8_t ret_area[24]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_metadata_hash((self).__handle, ptr); - wasi_filesystem_0_2_0_rc_2023_10_18_types_result_metadata_hash_value_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_filesystem_0_2_0_rc_2023_10_18_types_metadata_hash_value_t) { - (uint64_t) (*((int64_t*) (ptr + 8))), - (uint64_t) (*((int64_t*) (ptr + 16))), - }; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 8))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_metadata_hash_at(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_path_flags_t path_flags, bindings_string_t *path, wasi_filesystem_0_2_0_rc_2023_10_18_types_metadata_hash_value_t *ret, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err) { - __attribute__((__aligned__(8))) - uint8_t ret_area[24]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_metadata_hash_at((self).__handle, path_flags, (int32_t) (*path).ptr, (int32_t) (*path).len, ptr); - wasi_filesystem_0_2_0_rc_2023_10_18_types_result_metadata_hash_value_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_filesystem_0_2_0_rc_2023_10_18_types_metadata_hash_value_t) { - (uint64_t) (*((int64_t*) (ptr + 8))), - (uint64_t) (*((int64_t*) (ptr + 16))), - }; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 8))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_directory_entry_stream_read_directory_entry(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_directory_entry_stream_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_option_directory_entry_t *ret, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[20]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_method_directory_entry_stream_read_directory_entry((self).__handle, ptr); - wasi_filesystem_0_2_0_rc_2023_10_18_types_result_option_directory_entry_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - wasi_filesystem_0_2_0_rc_2023_10_18_types_option_directory_entry_t option; - switch ((int32_t) (*((uint8_t*) (ptr + 4)))) { - case 0: { - option.is_some = false; - break; - } - case 1: { - option.is_some = true; - option.val = (wasi_filesystem_0_2_0_rc_2023_10_18_types_directory_entry_t) { - (int32_t) (*((uint8_t*) (ptr + 8))), - (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 12))), (size_t)(*((int32_t*) (ptr + 16))) }, - }; - break; - } - } - - result.val.ok = option; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 4))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_10_18_types_filesystem_error_code(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_error_t err_, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *ret) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_types_filesystem_error_code((err_).__handle, ptr); - wasi_filesystem_0_2_0_rc_2023_10_18_types_option_error_code_t option; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - option.is_some = false; - break; - } - case 1: { - option.is_some = true; - option.val = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - *ret = option.val; - return option.is_some; -} - -void wasi_filesystem_0_2_0_rc_2023_10_18_preopens_get_directories(wasi_filesystem_0_2_0_rc_2023_10_18_preopens_list_tuple2_own_descriptor_string_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_10_18_preopens_get_directories(ptr); - *ret = (wasi_filesystem_0_2_0_rc_2023_10_18_preopens_list_tuple2_own_descriptor_string_t) { (wasi_filesystem_0_2_0_rc_2023_10_18_preopens_tuple2_own_descriptor_string_t*)(*((int32_t*) (ptr + 0))), (size_t)(*((int32_t*) (ptr + 4))) }; -} - -wasi_sockets_0_2_0_rc_2023_10_18_instance_network_own_network_t wasi_sockets_0_2_0_rc_2023_10_18_instance_network_instance_network(void) { - int32_t ret = __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_instance_network_instance_network(); - return (wasi_sockets_0_2_0_rc_2023_10_18_instance_network_own_network_t) { ret }; -} - -bool wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_resolve_addresses(wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_borrow_network_t network, bindings_string_t *name, wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_ip_address_family_t *maybe_address_family, bool include_unavailable, wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_own_resolve_address_stream_t *ret, wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_error_code_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_option_ip_address_family_t address_family; - address_family.is_some = maybe_address_family != NULL;if (maybe_address_family) { - address_family.val = *maybe_address_family; - } - int32_t option; - int32_t option1; - if ((address_family).is_some) { - const wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_ip_address_family_t *payload0 = &(address_family).val; - option = 1; - option1 = (int32_t) *payload0; - } else { - option = 0; - option1 = 0; - } - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_resolve_addresses((network).__handle, (int32_t) (*name).ptr, (int32_t) (*name).len, option, option1, include_unavailable, ptr); - wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_result_own_resolve_address_stream_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_own_resolve_address_stream_t) { *((int32_t*) (ptr + 4)) }; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 4))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_method_resolve_address_stream_resolve_next_address(wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_borrow_resolve_address_stream_t self, wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_option_ip_address_t *ret, wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_error_code_t *err) { - __attribute__((__aligned__(2))) - uint8_t ret_area[22]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_method_resolve_address_stream_resolve_next_address((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_result_option_ip_address_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_option_ip_address_t option; - switch ((int32_t) (*((uint8_t*) (ptr + 2)))) { - case 0: { - option.is_some = false; - break; - } - case 1: { - option.is_some = true; - wasi_sockets_0_2_0_rc_2023_10_18_network_ip_address_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 4))); - switch ((int32_t) variant.tag) { - case 0: { - variant.val.ipv4 = (wasi_sockets_0_2_0_rc_2023_10_18_network_ipv4_address_t) { - (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 6)))), - (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 7)))), - (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 8)))), - (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 9)))), - }; - break; - } - case 1: { - variant.val.ipv6 = (wasi_sockets_0_2_0_rc_2023_10_18_network_ipv6_address_t) { - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 6)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 8)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 10)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 12)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 14)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 16)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 18)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 20)))), - }; - break; - } - } - - option.val = variant; - break; - } - } - - result.val.ok = option; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 2))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_own_pollable_t wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_method_resolve_address_stream_subscribe(wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_borrow_resolve_address_stream_t self) { - int32_t ret = __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_method_resolve_address_stream_subscribe((self).__handle); - return (wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_own_pollable_t) { ret }; -} - -bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_start_bind(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_network_t network, wasi_sockets_0_2_0_rc_2023_10_18_tcp_ip_socket_address_t *local_address, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t variant; - int32_t variant1; - int32_t variant2; - int32_t variant3; - int32_t variant4; - int32_t variant5; - int32_t variant6; - int32_t variant7; - int32_t variant8; - int32_t variant9; - int32_t variant10; - int32_t variant11; - switch ((int32_t) (*local_address).tag) { - case 0: { - const wasi_sockets_0_2_0_rc_2023_10_18_network_ipv4_socket_address_t *payload = &(*local_address).val.ipv4; - variant = 0; - variant1 = (int32_t) ((*payload).port); - variant2 = (int32_t) (((*payload).address).f0); - variant3 = (int32_t) (((*payload).address).f1); - variant4 = (int32_t) (((*payload).address).f2); - variant5 = (int32_t) (((*payload).address).f3); - variant6 = 0; - variant7 = 0; - variant8 = 0; - variant9 = 0; - variant10 = 0; - variant11 = 0; - break; - } - case 1: { - const wasi_sockets_0_2_0_rc_2023_10_18_network_ipv6_socket_address_t *payload0 = &(*local_address).val.ipv6; - variant = 1; - variant1 = (int32_t) ((*payload0).port); - variant2 = (int32_t) ((*payload0).flow_info); - variant3 = (int32_t) (((*payload0).address).f0); - variant4 = (int32_t) (((*payload0).address).f1); - variant5 = (int32_t) (((*payload0).address).f2); - variant6 = (int32_t) (((*payload0).address).f3); - variant7 = (int32_t) (((*payload0).address).f4); - variant8 = (int32_t) (((*payload0).address).f5); - variant9 = (int32_t) (((*payload0).address).f6); - variant10 = (int32_t) (((*payload0).address).f7); - variant11 = (int32_t) ((*payload0).scope_id); - break; - } - } - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_start_bind((self).__handle, (network).__handle, variant, variant1, variant2, variant3, variant4, variant5, variant6, variant7, variant8, variant9, variant10, variant11, ptr); - wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_finish_bind(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_finish_bind((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_start_connect(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_network_t network, wasi_sockets_0_2_0_rc_2023_10_18_tcp_ip_socket_address_t *remote_address, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t variant; - int32_t variant1; - int32_t variant2; - int32_t variant3; - int32_t variant4; - int32_t variant5; - int32_t variant6; - int32_t variant7; - int32_t variant8; - int32_t variant9; - int32_t variant10; - int32_t variant11; - switch ((int32_t) (*remote_address).tag) { - case 0: { - const wasi_sockets_0_2_0_rc_2023_10_18_network_ipv4_socket_address_t *payload = &(*remote_address).val.ipv4; - variant = 0; - variant1 = (int32_t) ((*payload).port); - variant2 = (int32_t) (((*payload).address).f0); - variant3 = (int32_t) (((*payload).address).f1); - variant4 = (int32_t) (((*payload).address).f2); - variant5 = (int32_t) (((*payload).address).f3); - variant6 = 0; - variant7 = 0; - variant8 = 0; - variant9 = 0; - variant10 = 0; - variant11 = 0; - break; - } - case 1: { - const wasi_sockets_0_2_0_rc_2023_10_18_network_ipv6_socket_address_t *payload0 = &(*remote_address).val.ipv6; - variant = 1; - variant1 = (int32_t) ((*payload0).port); - variant2 = (int32_t) ((*payload0).flow_info); - variant3 = (int32_t) (((*payload0).address).f0); - variant4 = (int32_t) (((*payload0).address).f1); - variant5 = (int32_t) (((*payload0).address).f2); - variant6 = (int32_t) (((*payload0).address).f3); - variant7 = (int32_t) (((*payload0).address).f4); - variant8 = (int32_t) (((*payload0).address).f5); - variant9 = (int32_t) (((*payload0).address).f6); - variant10 = (int32_t) (((*payload0).address).f7); - variant11 = (int32_t) ((*payload0).scope_id); - break; - } - } - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_start_connect((self).__handle, (network).__handle, variant, variant1, variant2, variant3, variant4, variant5, variant6, variant7, variant8, variant9, variant10, variant11, ptr); - wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_finish_connect(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_10_18_tcp_tuple2_own_input_stream_own_output_stream_t *ret, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[12]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_finish_connect((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_tuple2_own_input_stream_own_output_stream_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_sockets_0_2_0_rc_2023_10_18_tcp_tuple2_own_input_stream_own_output_stream_t) { - (wasi_sockets_0_2_0_rc_2023_10_18_tcp_own_input_stream_t) { *((int32_t*) (ptr + 4)) }, - (wasi_sockets_0_2_0_rc_2023_10_18_tcp_own_output_stream_t) { *((int32_t*) (ptr + 8)) }, - }; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 4))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_start_listen(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_start_listen((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_finish_listen(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_finish_listen((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_accept(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_10_18_tcp_tuple3_own_tcp_socket_own_input_stream_own_output_stream_t *ret, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[16]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_accept((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_tuple3_own_tcp_socket_own_input_stream_own_output_stream_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_sockets_0_2_0_rc_2023_10_18_tcp_tuple3_own_tcp_socket_own_input_stream_own_output_stream_t) { - (wasi_sockets_0_2_0_rc_2023_10_18_tcp_own_tcp_socket_t) { *((int32_t*) (ptr + 4)) }, - (wasi_sockets_0_2_0_rc_2023_10_18_tcp_own_input_stream_t) { *((int32_t*) (ptr + 8)) }, - (wasi_sockets_0_2_0_rc_2023_10_18_tcp_own_output_stream_t) { *((int32_t*) (ptr + 12)) }, - }; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 4))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_local_address(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_10_18_tcp_ip_socket_address_t *ret, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[36]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_local_address((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_ip_socket_address_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - wasi_sockets_0_2_0_rc_2023_10_18_network_ip_socket_address_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 4))); - switch ((int32_t) variant.tag) { - case 0: { - variant.val.ipv4 = (wasi_sockets_0_2_0_rc_2023_10_18_network_ipv4_socket_address_t) { - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 8)))), - (wasi_sockets_0_2_0_rc_2023_10_18_network_ipv4_address_t) { - (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 10)))), - (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 11)))), - (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 12)))), - (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 13)))), - }, - }; - break; - } - case 1: { - variant.val.ipv6 = (wasi_sockets_0_2_0_rc_2023_10_18_network_ipv6_socket_address_t) { - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 8)))), - (uint32_t) (*((int32_t*) (ptr + 12))), - (wasi_sockets_0_2_0_rc_2023_10_18_network_ipv6_address_t) { - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 16)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 18)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 20)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 22)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 24)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 26)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 28)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 30)))), - }, - (uint32_t) (*((int32_t*) (ptr + 32))), - }; - break; - } - } - - result.val.ok = variant; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 4))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_remote_address(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_10_18_tcp_ip_socket_address_t *ret, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[36]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_remote_address((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_ip_socket_address_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - wasi_sockets_0_2_0_rc_2023_10_18_network_ip_socket_address_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 4))); - switch ((int32_t) variant.tag) { - case 0: { - variant.val.ipv4 = (wasi_sockets_0_2_0_rc_2023_10_18_network_ipv4_socket_address_t) { - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 8)))), - (wasi_sockets_0_2_0_rc_2023_10_18_network_ipv4_address_t) { - (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 10)))), - (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 11)))), - (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 12)))), - (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 13)))), - }, - }; - break; - } - case 1: { - variant.val.ipv6 = (wasi_sockets_0_2_0_rc_2023_10_18_network_ipv6_socket_address_t) { - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 8)))), - (uint32_t) (*((int32_t*) (ptr + 12))), - (wasi_sockets_0_2_0_rc_2023_10_18_network_ipv6_address_t) { - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 16)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 18)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 20)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 22)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 24)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 26)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 28)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 30)))), - }, - (uint32_t) (*((int32_t*) (ptr + 32))), - }; - break; - } - } - - result.val.ok = variant; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 4))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -wasi_sockets_0_2_0_rc_2023_10_18_tcp_ip_address_family_t wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_address_family(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self) { - int32_t ret = __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_address_family((self).__handle); - return ret; -} - -bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_ipv6_only(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, bool *ret, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_ipv6_only((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_bool_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_set_ipv6_only(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, bool value, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_set_ipv6_only((self).__handle, value, ptr); - wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_set_listen_backlog_size(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, uint64_t value, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_set_listen_backlog_size((self).__handle, (int64_t) (value), ptr); - wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_keep_alive(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, bool *ret, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_keep_alive((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_bool_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_set_keep_alive(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, bool value, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_set_keep_alive((self).__handle, value, ptr); - wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_no_delay(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, bool *ret, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_no_delay((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_bool_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_set_no_delay(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, bool value, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_set_no_delay((self).__handle, value, ptr); - wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_unicast_hop_limit(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, uint8_t *ret, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_unicast_hop_limit((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_u8_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 1)))); - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_set_unicast_hop_limit(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, uint8_t value, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_set_unicast_hop_limit((self).__handle, (int32_t) (value), ptr); - wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_receive_buffer_size(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, uint64_t *ret, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err) { - __attribute__((__aligned__(8))) - uint8_t ret_area[16]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_receive_buffer_size((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_u64_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (uint64_t) (*((int64_t*) (ptr + 8))); - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 8))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_set_receive_buffer_size(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, uint64_t value, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_set_receive_buffer_size((self).__handle, (int64_t) (value), ptr); - wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_send_buffer_size(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, uint64_t *ret, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err) { - __attribute__((__aligned__(8))) - uint8_t ret_area[16]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_send_buffer_size((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_u64_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (uint64_t) (*((int64_t*) (ptr + 8))); - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 8))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_set_send_buffer_size(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, uint64_t value, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_set_send_buffer_size((self).__handle, (int64_t) (value), ptr); - wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -wasi_sockets_0_2_0_rc_2023_10_18_tcp_own_pollable_t wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_subscribe(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self) { - int32_t ret = __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_subscribe((self).__handle); - return (wasi_sockets_0_2_0_rc_2023_10_18_tcp_own_pollable_t) { ret }; -} - -bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_shutdown(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_10_18_tcp_shutdown_type_t shutdown_type, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_shutdown((self).__handle, (int32_t) shutdown_type, ptr); - wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_create_socket_create_tcp_socket(wasi_sockets_0_2_0_rc_2023_10_18_tcp_create_socket_ip_address_family_t address_family, wasi_sockets_0_2_0_rc_2023_10_18_tcp_create_socket_own_tcp_socket_t *ret, wasi_sockets_0_2_0_rc_2023_10_18_tcp_create_socket_error_code_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_tcp_create_socket_create_tcp_socket((int32_t) address_family, ptr); - wasi_sockets_0_2_0_rc_2023_10_18_tcp_create_socket_result_own_tcp_socket_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_sockets_0_2_0_rc_2023_10_18_tcp_create_socket_own_tcp_socket_t) { *((int32_t*) (ptr + 4)) }; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 4))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_start_bind(wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_udp_socket_t self, wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_network_t network, wasi_sockets_0_2_0_rc_2023_10_18_udp_ip_socket_address_t *local_address, wasi_sockets_0_2_0_rc_2023_10_18_udp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t variant; - int32_t variant1; - int32_t variant2; - int32_t variant3; - int32_t variant4; - int32_t variant5; - int32_t variant6; - int32_t variant7; - int32_t variant8; - int32_t variant9; - int32_t variant10; - int32_t variant11; - switch ((int32_t) (*local_address).tag) { - case 0: { - const wasi_sockets_0_2_0_rc_2023_10_18_network_ipv4_socket_address_t *payload = &(*local_address).val.ipv4; - variant = 0; - variant1 = (int32_t) ((*payload).port); - variant2 = (int32_t) (((*payload).address).f0); - variant3 = (int32_t) (((*payload).address).f1); - variant4 = (int32_t) (((*payload).address).f2); - variant5 = (int32_t) (((*payload).address).f3); - variant6 = 0; - variant7 = 0; - variant8 = 0; - variant9 = 0; - variant10 = 0; - variant11 = 0; - break; - } - case 1: { - const wasi_sockets_0_2_0_rc_2023_10_18_network_ipv6_socket_address_t *payload0 = &(*local_address).val.ipv6; - variant = 1; - variant1 = (int32_t) ((*payload0).port); - variant2 = (int32_t) ((*payload0).flow_info); - variant3 = (int32_t) (((*payload0).address).f0); - variant4 = (int32_t) (((*payload0).address).f1); - variant5 = (int32_t) (((*payload0).address).f2); - variant6 = (int32_t) (((*payload0).address).f3); - variant7 = (int32_t) (((*payload0).address).f4); - variant8 = (int32_t) (((*payload0).address).f5); - variant9 = (int32_t) (((*payload0).address).f6); - variant10 = (int32_t) (((*payload0).address).f7); - variant11 = (int32_t) ((*payload0).scope_id); - break; - } - } - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_start_bind((self).__handle, (network).__handle, variant, variant1, variant2, variant3, variant4, variant5, variant6, variant7, variant8, variant9, variant10, variant11, ptr); - wasi_sockets_0_2_0_rc_2023_10_18_udp_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_finish_bind(wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_udp_socket_t self, wasi_sockets_0_2_0_rc_2023_10_18_udp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_finish_bind((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_10_18_udp_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_start_connect(wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_udp_socket_t self, wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_network_t network, wasi_sockets_0_2_0_rc_2023_10_18_udp_ip_socket_address_t *remote_address, wasi_sockets_0_2_0_rc_2023_10_18_udp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t variant; - int32_t variant1; - int32_t variant2; - int32_t variant3; - int32_t variant4; - int32_t variant5; - int32_t variant6; - int32_t variant7; - int32_t variant8; - int32_t variant9; - int32_t variant10; - int32_t variant11; - switch ((int32_t) (*remote_address).tag) { - case 0: { - const wasi_sockets_0_2_0_rc_2023_10_18_network_ipv4_socket_address_t *payload = &(*remote_address).val.ipv4; - variant = 0; - variant1 = (int32_t) ((*payload).port); - variant2 = (int32_t) (((*payload).address).f0); - variant3 = (int32_t) (((*payload).address).f1); - variant4 = (int32_t) (((*payload).address).f2); - variant5 = (int32_t) (((*payload).address).f3); - variant6 = 0; - variant7 = 0; - variant8 = 0; - variant9 = 0; - variant10 = 0; - variant11 = 0; - break; - } - case 1: { - const wasi_sockets_0_2_0_rc_2023_10_18_network_ipv6_socket_address_t *payload0 = &(*remote_address).val.ipv6; - variant = 1; - variant1 = (int32_t) ((*payload0).port); - variant2 = (int32_t) ((*payload0).flow_info); - variant3 = (int32_t) (((*payload0).address).f0); - variant4 = (int32_t) (((*payload0).address).f1); - variant5 = (int32_t) (((*payload0).address).f2); - variant6 = (int32_t) (((*payload0).address).f3); - variant7 = (int32_t) (((*payload0).address).f4); - variant8 = (int32_t) (((*payload0).address).f5); - variant9 = (int32_t) (((*payload0).address).f6); - variant10 = (int32_t) (((*payload0).address).f7); - variant11 = (int32_t) ((*payload0).scope_id); - break; - } - } - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_start_connect((self).__handle, (network).__handle, variant, variant1, variant2, variant3, variant4, variant5, variant6, variant7, variant8, variant9, variant10, variant11, ptr); - wasi_sockets_0_2_0_rc_2023_10_18_udp_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_finish_connect(wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_udp_socket_t self, wasi_sockets_0_2_0_rc_2023_10_18_udp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_finish_connect((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_10_18_udp_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_receive(wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_udp_socket_t self, uint64_t max_results, wasi_sockets_0_2_0_rc_2023_10_18_udp_list_datagram_t *ret, wasi_sockets_0_2_0_rc_2023_10_18_udp_error_code_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[12]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_receive((self).__handle, (int64_t) (max_results), ptr); - wasi_sockets_0_2_0_rc_2023_10_18_udp_result_list_datagram_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_sockets_0_2_0_rc_2023_10_18_udp_list_datagram_t) { (wasi_sockets_0_2_0_rc_2023_10_18_udp_datagram_t*)(*((int32_t*) (ptr + 4))), (size_t)(*((int32_t*) (ptr + 8))) }; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 4))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_send(wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_udp_socket_t self, wasi_sockets_0_2_0_rc_2023_10_18_udp_list_datagram_t *datagrams, uint64_t *ret, wasi_sockets_0_2_0_rc_2023_10_18_udp_error_code_t *err) { - __attribute__((__aligned__(8))) - uint8_t ret_area[16]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_send((self).__handle, (int32_t) (*datagrams).ptr, (int32_t) (*datagrams).len, ptr); - wasi_sockets_0_2_0_rc_2023_10_18_udp_result_u64_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (uint64_t) (*((int64_t*) (ptr + 8))); - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 8))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_local_address(wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_udp_socket_t self, wasi_sockets_0_2_0_rc_2023_10_18_udp_ip_socket_address_t *ret, wasi_sockets_0_2_0_rc_2023_10_18_udp_error_code_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[36]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_local_address((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_10_18_udp_result_ip_socket_address_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - wasi_sockets_0_2_0_rc_2023_10_18_network_ip_socket_address_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 4))); - switch ((int32_t) variant.tag) { - case 0: { - variant.val.ipv4 = (wasi_sockets_0_2_0_rc_2023_10_18_network_ipv4_socket_address_t) { - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 8)))), - (wasi_sockets_0_2_0_rc_2023_10_18_network_ipv4_address_t) { - (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 10)))), - (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 11)))), - (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 12)))), - (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 13)))), - }, - }; - break; - } - case 1: { - variant.val.ipv6 = (wasi_sockets_0_2_0_rc_2023_10_18_network_ipv6_socket_address_t) { - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 8)))), - (uint32_t) (*((int32_t*) (ptr + 12))), - (wasi_sockets_0_2_0_rc_2023_10_18_network_ipv6_address_t) { - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 16)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 18)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 20)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 22)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 24)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 26)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 28)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 30)))), - }, - (uint32_t) (*((int32_t*) (ptr + 32))), - }; - break; - } - } - - result.val.ok = variant; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 4))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_remote_address(wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_udp_socket_t self, wasi_sockets_0_2_0_rc_2023_10_18_udp_ip_socket_address_t *ret, wasi_sockets_0_2_0_rc_2023_10_18_udp_error_code_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[36]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_remote_address((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_10_18_udp_result_ip_socket_address_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - wasi_sockets_0_2_0_rc_2023_10_18_network_ip_socket_address_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 4))); - switch ((int32_t) variant.tag) { - case 0: { - variant.val.ipv4 = (wasi_sockets_0_2_0_rc_2023_10_18_network_ipv4_socket_address_t) { - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 8)))), - (wasi_sockets_0_2_0_rc_2023_10_18_network_ipv4_address_t) { - (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 10)))), - (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 11)))), - (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 12)))), - (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 13)))), - }, - }; - break; - } - case 1: { - variant.val.ipv6 = (wasi_sockets_0_2_0_rc_2023_10_18_network_ipv6_socket_address_t) { - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 8)))), - (uint32_t) (*((int32_t*) (ptr + 12))), - (wasi_sockets_0_2_0_rc_2023_10_18_network_ipv6_address_t) { - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 16)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 18)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 20)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 22)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 24)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 26)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 28)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 30)))), - }, - (uint32_t) (*((int32_t*) (ptr + 32))), - }; - break; - } - } - - result.val.ok = variant; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 4))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -wasi_sockets_0_2_0_rc_2023_10_18_udp_ip_address_family_t wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_address_family(wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_udp_socket_t self) { - int32_t ret = __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_address_family((self).__handle); - return ret; -} - -bool wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_ipv6_only(wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_udp_socket_t self, bool *ret, wasi_sockets_0_2_0_rc_2023_10_18_udp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_ipv6_only((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_10_18_udp_result_bool_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_set_ipv6_only(wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_udp_socket_t self, bool value, wasi_sockets_0_2_0_rc_2023_10_18_udp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_set_ipv6_only((self).__handle, value, ptr); - wasi_sockets_0_2_0_rc_2023_10_18_udp_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_unicast_hop_limit(wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_udp_socket_t self, uint8_t *ret, wasi_sockets_0_2_0_rc_2023_10_18_udp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_unicast_hop_limit((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_10_18_udp_result_u8_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 1)))); - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_set_unicast_hop_limit(wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_udp_socket_t self, uint8_t value, wasi_sockets_0_2_0_rc_2023_10_18_udp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_set_unicast_hop_limit((self).__handle, (int32_t) (value), ptr); - wasi_sockets_0_2_0_rc_2023_10_18_udp_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_receive_buffer_size(wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_udp_socket_t self, uint64_t *ret, wasi_sockets_0_2_0_rc_2023_10_18_udp_error_code_t *err) { - __attribute__((__aligned__(8))) - uint8_t ret_area[16]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_receive_buffer_size((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_10_18_udp_result_u64_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (uint64_t) (*((int64_t*) (ptr + 8))); - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 8))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_set_receive_buffer_size(wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_udp_socket_t self, uint64_t value, wasi_sockets_0_2_0_rc_2023_10_18_udp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_set_receive_buffer_size((self).__handle, (int64_t) (value), ptr); - wasi_sockets_0_2_0_rc_2023_10_18_udp_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_send_buffer_size(wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_udp_socket_t self, uint64_t *ret, wasi_sockets_0_2_0_rc_2023_10_18_udp_error_code_t *err) { - __attribute__((__aligned__(8))) - uint8_t ret_area[16]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_send_buffer_size((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_10_18_udp_result_u64_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (uint64_t) (*((int64_t*) (ptr + 8))); - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 8))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_set_send_buffer_size(wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_udp_socket_t self, uint64_t value, wasi_sockets_0_2_0_rc_2023_10_18_udp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_set_send_buffer_size((self).__handle, (int64_t) (value), ptr); - wasi_sockets_0_2_0_rc_2023_10_18_udp_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -wasi_sockets_0_2_0_rc_2023_10_18_udp_own_pollable_t wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_subscribe(wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_udp_socket_t self) { - int32_t ret = __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_subscribe((self).__handle); - return (wasi_sockets_0_2_0_rc_2023_10_18_udp_own_pollable_t) { ret }; -} - -bool wasi_sockets_0_2_0_rc_2023_10_18_udp_create_socket_create_udp_socket(wasi_sockets_0_2_0_rc_2023_10_18_udp_create_socket_ip_address_family_t address_family, wasi_sockets_0_2_0_rc_2023_10_18_udp_create_socket_own_udp_socket_t *ret, wasi_sockets_0_2_0_rc_2023_10_18_udp_create_socket_error_code_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_10_18_udp_create_socket_create_udp_socket((int32_t) address_family, ptr); - wasi_sockets_0_2_0_rc_2023_10_18_udp_create_socket_result_own_udp_socket_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_sockets_0_2_0_rc_2023_10_18_udp_create_socket_own_udp_socket_t) { *((int32_t*) (ptr + 4)) }; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 4))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -void wasi_random_0_2_0_rc_2023_10_18_random_get_random_bytes(uint64_t len, bindings_list_u8_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_random_0_2_0_rc_2023_10_18_random_get_random_bytes((int64_t) (len), ptr); - *ret = (bindings_list_u8_t) { (uint8_t*)(*((int32_t*) (ptr + 0))), (size_t)(*((int32_t*) (ptr + 4))) }; -} - -uint64_t wasi_random_0_2_0_rc_2023_10_18_random_get_random_u64(void) { - int64_t ret = __wasm_import_wasi_random_0_2_0_rc_2023_10_18_random_get_random_u64(); - return (uint64_t) (ret); -} - -void wasi_random_0_2_0_rc_2023_10_18_insecure_get_insecure_random_bytes(uint64_t len, bindings_list_u8_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_random_0_2_0_rc_2023_10_18_insecure_get_insecure_random_bytes((int64_t) (len), ptr); - *ret = (bindings_list_u8_t) { (uint8_t*)(*((int32_t*) (ptr + 0))), (size_t)(*((int32_t*) (ptr + 4))) }; -} - -uint64_t wasi_random_0_2_0_rc_2023_10_18_insecure_get_insecure_random_u64(void) { - int64_t ret = __wasm_import_wasi_random_0_2_0_rc_2023_10_18_insecure_get_insecure_random_u64(); - return (uint64_t) (ret); -} - -void wasi_random_0_2_0_rc_2023_10_18_insecure_seed_insecure_seed(bindings_tuple2_u64_u64_t *ret) { - __attribute__((__aligned__(8))) - uint8_t ret_area[16]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_random_0_2_0_rc_2023_10_18_insecure_seed_insecure_seed(ptr); - *ret = (bindings_tuple2_u64_u64_t) { - (uint64_t) (*((int64_t*) (ptr + 0))), - (uint64_t) (*((int64_t*) (ptr + 8))), - }; -} - -void wasi_cli_0_2_0_rc_2023_10_18_environment_get_environment(bindings_list_tuple2_string_string_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_cli_0_2_0_rc_2023_10_18_environment_get_environment(ptr); - *ret = (bindings_list_tuple2_string_string_t) { (bindings_tuple2_string_string_t*)(*((int32_t*) (ptr + 0))), (size_t)(*((int32_t*) (ptr + 4))) }; -} - -void wasi_cli_0_2_0_rc_2023_10_18_environment_get_arguments(bindings_list_string_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_cli_0_2_0_rc_2023_10_18_environment_get_arguments(ptr); - *ret = (bindings_list_string_t) { (bindings_string_t*)(*((int32_t*) (ptr + 0))), (size_t)(*((int32_t*) (ptr + 4))) }; -} - -bool wasi_cli_0_2_0_rc_2023_10_18_environment_initial_cwd(bindings_string_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[12]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_cli_0_2_0_rc_2023_10_18_environment_initial_cwd(ptr); - bindings_option_string_t option; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - option.is_some = false; - break; - } - case 1: { - option.is_some = true; - option.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 4))), (size_t)(*((int32_t*) (ptr + 8))) }; - break; - } - } - *ret = option.val; - return option.is_some; -} - -void wasi_cli_0_2_0_rc_2023_10_18_exit_exit(wasi_cli_0_2_0_rc_2023_10_18_exit_result_void_void_t *status) { - int32_t result; - if ((*status).is_err) { - result = 1; - } else { - result = 0; - } - __wasm_import_wasi_cli_0_2_0_rc_2023_10_18_exit_exit(result); -} - -wasi_cli_0_2_0_rc_2023_10_18_stdin_own_input_stream_t wasi_cli_0_2_0_rc_2023_10_18_stdin_get_stdin(void) { - int32_t ret = __wasm_import_wasi_cli_0_2_0_rc_2023_10_18_stdin_get_stdin(); - return (wasi_cli_0_2_0_rc_2023_10_18_stdin_own_input_stream_t) { ret }; -} - -wasi_cli_0_2_0_rc_2023_10_18_stdout_own_output_stream_t wasi_cli_0_2_0_rc_2023_10_18_stdout_get_stdout(void) { - int32_t ret = __wasm_import_wasi_cli_0_2_0_rc_2023_10_18_stdout_get_stdout(); - return (wasi_cli_0_2_0_rc_2023_10_18_stdout_own_output_stream_t) { ret }; -} - -wasi_cli_0_2_0_rc_2023_10_18_stderr_own_output_stream_t wasi_cli_0_2_0_rc_2023_10_18_stderr_get_stderr(void) { - int32_t ret = __wasm_import_wasi_cli_0_2_0_rc_2023_10_18_stderr_get_stderr(); - return (wasi_cli_0_2_0_rc_2023_10_18_stderr_own_output_stream_t) { ret }; -} - -bool wasi_cli_0_2_0_rc_2023_10_18_terminal_stdin_get_terminal_stdin(wasi_cli_0_2_0_rc_2023_10_18_terminal_stdin_own_terminal_input_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_cli_0_2_0_rc_2023_10_18_terminal_stdin_get_terminal_stdin(ptr); - wasi_cli_0_2_0_rc_2023_10_18_terminal_stdin_option_own_terminal_input_t option; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - option.is_some = false; - break; - } - case 1: { - option.is_some = true; - option.val = (wasi_cli_0_2_0_rc_2023_10_18_terminal_stdin_own_terminal_input_t) { *((int32_t*) (ptr + 4)) }; - break; - } - } - *ret = option.val; - return option.is_some; -} - -bool wasi_cli_0_2_0_rc_2023_10_18_terminal_stdout_get_terminal_stdout(wasi_cli_0_2_0_rc_2023_10_18_terminal_stdout_own_terminal_output_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_cli_0_2_0_rc_2023_10_18_terminal_stdout_get_terminal_stdout(ptr); - wasi_cli_0_2_0_rc_2023_10_18_terminal_stdout_option_own_terminal_output_t option; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - option.is_some = false; - break; - } - case 1: { - option.is_some = true; - option.val = (wasi_cli_0_2_0_rc_2023_10_18_terminal_stdout_own_terminal_output_t) { *((int32_t*) (ptr + 4)) }; - break; - } - } - *ret = option.val; - return option.is_some; -} - -bool wasi_cli_0_2_0_rc_2023_10_18_terminal_stderr_get_terminal_stderr(wasi_cli_0_2_0_rc_2023_10_18_terminal_stderr_own_terminal_output_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_cli_0_2_0_rc_2023_10_18_terminal_stderr_get_terminal_stderr(ptr); - wasi_cli_0_2_0_rc_2023_10_18_terminal_stderr_option_own_terminal_output_t option; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - option.is_some = false; - break; - } - case 1: { - option.is_some = true; - option.val = (wasi_cli_0_2_0_rc_2023_10_18_terminal_stderr_own_terminal_output_t) { *((int32_t*) (ptr + 4)) }; - break; - } - } - *ret = option.val; - return option.is_some; -} - -wasi_http_0_2_0_rc_2023_10_18_types_own_fields_t wasi_http_0_2_0_rc_2023_10_18_types_constructor_fields(bindings_list_tuple2_string_list_u8_t *entries) { - int32_t ret = __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_constructor_fields((int32_t) (*entries).ptr, (int32_t) (*entries).len); - return (wasi_http_0_2_0_rc_2023_10_18_types_own_fields_t) { ret }; -} - -void wasi_http_0_2_0_rc_2023_10_18_types_method_fields_get(wasi_http_0_2_0_rc_2023_10_18_types_borrow_fields_t self, bindings_string_t *name, bindings_list_list_u8_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_fields_get((self).__handle, (int32_t) (*name).ptr, (int32_t) (*name).len, ptr); - *ret = (bindings_list_list_u8_t) { (bindings_list_u8_t*)(*((int32_t*) (ptr + 0))), (size_t)(*((int32_t*) (ptr + 4))) }; -} - -void wasi_http_0_2_0_rc_2023_10_18_types_method_fields_set(wasi_http_0_2_0_rc_2023_10_18_types_borrow_fields_t self, bindings_string_t *name, bindings_list_list_u8_t *value) { - __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_fields_set((self).__handle, (int32_t) (*name).ptr, (int32_t) (*name).len, (int32_t) (*value).ptr, (int32_t) (*value).len); -} - -void wasi_http_0_2_0_rc_2023_10_18_types_method_fields_delete(wasi_http_0_2_0_rc_2023_10_18_types_borrow_fields_t self, bindings_string_t *name) { - __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_fields_delete((self).__handle, (int32_t) (*name).ptr, (int32_t) (*name).len); -} - -void wasi_http_0_2_0_rc_2023_10_18_types_method_fields_append(wasi_http_0_2_0_rc_2023_10_18_types_borrow_fields_t self, bindings_string_t *name, bindings_list_u8_t *value) { - __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_fields_append((self).__handle, (int32_t) (*name).ptr, (int32_t) (*name).len, (int32_t) (*value).ptr, (int32_t) (*value).len); -} - -void wasi_http_0_2_0_rc_2023_10_18_types_method_fields_entries(wasi_http_0_2_0_rc_2023_10_18_types_borrow_fields_t self, bindings_list_tuple2_string_list_u8_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_fields_entries((self).__handle, ptr); - *ret = (bindings_list_tuple2_string_list_u8_t) { (bindings_tuple2_string_list_u8_t*)(*((int32_t*) (ptr + 0))), (size_t)(*((int32_t*) (ptr + 4))) }; -} - -wasi_http_0_2_0_rc_2023_10_18_types_own_fields_t wasi_http_0_2_0_rc_2023_10_18_types_method_fields_clone(wasi_http_0_2_0_rc_2023_10_18_types_borrow_fields_t self) { - int32_t ret = __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_fields_clone((self).__handle); - return (wasi_http_0_2_0_rc_2023_10_18_types_own_fields_t) { ret }; -} - -void wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_request_method(wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_request_t self, wasi_http_0_2_0_rc_2023_10_18_types_method_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[12]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_request_method((self).__handle, ptr); - wasi_http_0_2_0_rc_2023_10_18_types_method_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 0))); - switch ((int32_t) variant.tag) { - case 0: { - break; - } - case 1: { - break; - } - case 2: { - break; - } - case 3: { - break; - } - case 4: { - break; - } - case 5: { - break; - } - case 6: { - break; - } - case 7: { - break; - } - case 8: { - break; - } - case 9: { - variant.val.other = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 4))), (size_t)(*((int32_t*) (ptr + 8))) }; - break; - } - } - *ret = variant; -} - -bool wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_request_path_with_query(wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_request_t self, bindings_string_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[12]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_request_path_with_query((self).__handle, ptr); - bindings_option_string_t option; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - option.is_some = false; - break; - } - case 1: { - option.is_some = true; - option.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 4))), (size_t)(*((int32_t*) (ptr + 8))) }; - break; - } - } - *ret = option.val; - return option.is_some; -} - -bool wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_request_scheme(wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_request_t self, wasi_http_0_2_0_rc_2023_10_18_types_scheme_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[16]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_request_scheme((self).__handle, ptr); - wasi_http_0_2_0_rc_2023_10_18_types_option_scheme_t option; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - option.is_some = false; - break; - } - case 1: { - option.is_some = true; - wasi_http_0_2_0_rc_2023_10_18_types_scheme_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 4))); - switch ((int32_t) variant.tag) { - case 0: { - break; - } - case 1: { - break; - } - case 2: { - variant.val.other = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 8))), (size_t)(*((int32_t*) (ptr + 12))) }; - break; - } - } - - option.val = variant; - break; - } - } - *ret = option.val; - return option.is_some; -} - -bool wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_request_authority(wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_request_t self, bindings_string_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[12]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_request_authority((self).__handle, ptr); - bindings_option_string_t option; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - option.is_some = false; - break; - } - case 1: { - option.is_some = true; - option.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 4))), (size_t)(*((int32_t*) (ptr + 8))) }; - break; - } - } - *ret = option.val; - return option.is_some; -} - -wasi_http_0_2_0_rc_2023_10_18_types_own_headers_t wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_request_headers(wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_request_t self) { - int32_t ret = __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_request_headers((self).__handle); - return (wasi_http_0_2_0_rc_2023_10_18_types_own_headers_t) { ret }; -} - -bool wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_request_consume(wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_request_t self, wasi_http_0_2_0_rc_2023_10_18_types_own_incoming_body_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_request_consume((self).__handle, ptr); - wasi_http_0_2_0_rc_2023_10_18_types_result_own_incoming_body_void_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_http_0_2_0_rc_2023_10_18_types_own_incoming_body_t) { *((int32_t*) (ptr + 4)) }; - break; - } - case 1: { - result.is_err = true; - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - return 0; - } -} - -wasi_http_0_2_0_rc_2023_10_18_types_own_outgoing_request_t wasi_http_0_2_0_rc_2023_10_18_types_constructor_outgoing_request(wasi_http_0_2_0_rc_2023_10_18_types_method_t *method, bindings_string_t *maybe_path_with_query, wasi_http_0_2_0_rc_2023_10_18_types_scheme_t *maybe_scheme, bindings_string_t *maybe_authority, wasi_http_0_2_0_rc_2023_10_18_types_borrow_headers_t headers) { - bindings_option_string_t path_with_query; - path_with_query.is_some = maybe_path_with_query != NULL;if (maybe_path_with_query) { - path_with_query.val = *maybe_path_with_query; - } - wasi_http_0_2_0_rc_2023_10_18_types_option_scheme_t scheme; - scheme.is_some = maybe_scheme != NULL;if (maybe_scheme) { - scheme.val = *maybe_scheme; - } - bindings_option_string_t authority; - authority.is_some = maybe_authority != NULL;if (maybe_authority) { - authority.val = *maybe_authority; - } - int32_t variant; - int32_t variant9; - int32_t variant10; - switch ((int32_t) (*method).tag) { - case 0: { - variant = 0; - variant9 = 0; - variant10 = 0; - break; - } - case 1: { - variant = 1; - variant9 = 0; - variant10 = 0; - break; - } - case 2: { - variant = 2; - variant9 = 0; - variant10 = 0; - break; - } - case 3: { - variant = 3; - variant9 = 0; - variant10 = 0; - break; - } - case 4: { - variant = 4; - variant9 = 0; - variant10 = 0; - break; - } - case 5: { - variant = 5; - variant9 = 0; - variant10 = 0; - break; - } - case 6: { - variant = 6; - variant9 = 0; - variant10 = 0; - break; - } - case 7: { - variant = 7; - variant9 = 0; - variant10 = 0; - break; - } - case 8: { - variant = 8; - variant9 = 0; - variant10 = 0; - break; - } - case 9: { - const bindings_string_t *payload8 = &(*method).val.other; - variant = 9; - variant9 = (int32_t) (*payload8).ptr; - variant10 = (int32_t) (*payload8).len; - break; - } - } - int32_t option; - int32_t option13; - int32_t option14; - if ((path_with_query).is_some) { - const bindings_string_t *payload12 = &(path_with_query).val; - option = 1; - option13 = (int32_t) (*payload12).ptr; - option14 = (int32_t) (*payload12).len; - } else { - option = 0; - option13 = 0; - option14 = 0; - } - int32_t option23; - int32_t option24; - int32_t option25; - int32_t option26; - if ((scheme).is_some) { - const wasi_http_0_2_0_rc_2023_10_18_types_scheme_t *payload16 = &(scheme).val; - int32_t variant20; - int32_t variant21; - int32_t variant22; - switch ((int32_t) (*payload16).tag) { - case 0: { - variant20 = 0; - variant21 = 0; - variant22 = 0; - break; - } - case 1: { - variant20 = 1; - variant21 = 0; - variant22 = 0; - break; - } - case 2: { - const bindings_string_t *payload19 = &(*payload16).val.other; - variant20 = 2; - variant21 = (int32_t) (*payload19).ptr; - variant22 = (int32_t) (*payload19).len; - break; - } - } - option23 = 1; - option24 = variant20; - option25 = variant21; - option26 = variant22; - } else { - option23 = 0; - option24 = 0; - option25 = 0; - option26 = 0; - } - int32_t option29; - int32_t option30; - int32_t option31; - if ((authority).is_some) { - const bindings_string_t *payload28 = &(authority).val; - option29 = 1; - option30 = (int32_t) (*payload28).ptr; - option31 = (int32_t) (*payload28).len; - } else { - option29 = 0; - option30 = 0; - option31 = 0; - } - int32_t ret = __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_constructor_outgoing_request(variant, variant9, variant10, option, option13, option14, option23, option24, option25, option26, option29, option30, option31, (headers).__handle); - return (wasi_http_0_2_0_rc_2023_10_18_types_own_outgoing_request_t) { ret }; -} - -bool wasi_http_0_2_0_rc_2023_10_18_types_method_outgoing_request_write(wasi_http_0_2_0_rc_2023_10_18_types_borrow_outgoing_request_t self, wasi_http_0_2_0_rc_2023_10_18_types_own_outgoing_body_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_outgoing_request_write((self).__handle, ptr); - wasi_http_0_2_0_rc_2023_10_18_types_result_own_outgoing_body_void_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_http_0_2_0_rc_2023_10_18_types_own_outgoing_body_t) { *((int32_t*) (ptr + 4)) }; - break; - } - case 1: { - result.is_err = true; - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - return 0; - } -} - -void wasi_http_0_2_0_rc_2023_10_18_types_static_response_outparam_set(wasi_http_0_2_0_rc_2023_10_18_types_own_response_outparam_t param, wasi_http_0_2_0_rc_2023_10_18_types_result_own_outgoing_response_error_t *response) { - int32_t result; - int32_t result7; - int32_t result8; - int32_t result9; - if ((*response).is_err) { - const wasi_http_0_2_0_rc_2023_10_18_types_error_t *payload0 = &(*response).val.err;int32_t variant; - int32_t variant5; - int32_t variant6; - switch ((int32_t) (*payload0).tag) { - case 0: { - const bindings_string_t *payload1 = &(*payload0).val.invalid_url; - variant = 0; - variant5 = (int32_t) (*payload1).ptr; - variant6 = (int32_t) (*payload1).len; - break; - } - case 1: { - const bindings_string_t *payload2 = &(*payload0).val.timeout_error; - variant = 1; - variant5 = (int32_t) (*payload2).ptr; - variant6 = (int32_t) (*payload2).len; - break; - } - case 2: { - const bindings_string_t *payload3 = &(*payload0).val.protocol_error; - variant = 2; - variant5 = (int32_t) (*payload3).ptr; - variant6 = (int32_t) (*payload3).len; - break; - } - case 3: { - const bindings_string_t *payload4 = &(*payload0).val.unexpected_error; - variant = 3; - variant5 = (int32_t) (*payload4).ptr; - variant6 = (int32_t) (*payload4).len; - break; - } - } - result = 1; - result7 = variant; - result8 = variant5; - result9 = variant6; - } else { - const wasi_http_0_2_0_rc_2023_10_18_types_own_outgoing_response_t *payload = &(*response).val.ok;result = 0; - result7 = (*payload).__handle; - result8 = 0; - result9 = 0; - } - __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_static_response_outparam_set((param).__handle, result, result7, result8, result9); -} - -wasi_http_0_2_0_rc_2023_10_18_types_status_code_t wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_response_status(wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_response_t self) { - int32_t ret = __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_response_status((self).__handle); - return (uint16_t) (ret); -} - -wasi_http_0_2_0_rc_2023_10_18_types_own_headers_t wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_response_headers(wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_response_t self) { - int32_t ret = __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_response_headers((self).__handle); - return (wasi_http_0_2_0_rc_2023_10_18_types_own_headers_t) { ret }; -} - -bool wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_response_consume(wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_response_t self, wasi_http_0_2_0_rc_2023_10_18_types_own_incoming_body_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_response_consume((self).__handle, ptr); - wasi_http_0_2_0_rc_2023_10_18_types_result_own_incoming_body_void_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_http_0_2_0_rc_2023_10_18_types_own_incoming_body_t) { *((int32_t*) (ptr + 4)) }; - break; - } - case 1: { - result.is_err = true; - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - return 0; - } -} - -bool wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_body_stream(wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_body_t self, wasi_http_0_2_0_rc_2023_10_18_types_own_input_stream_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_body_stream((self).__handle, ptr); - wasi_http_0_2_0_rc_2023_10_18_types_result_own_input_stream_void_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_http_0_2_0_rc_2023_10_18_types_own_input_stream_t) { *((int32_t*) (ptr + 4)) }; - break; - } - case 1: { - result.is_err = true; - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - return 0; - } -} - -wasi_http_0_2_0_rc_2023_10_18_types_own_future_trailers_t wasi_http_0_2_0_rc_2023_10_18_types_static_incoming_body_finish(wasi_http_0_2_0_rc_2023_10_18_types_own_incoming_body_t this_) { - int32_t ret = __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_static_incoming_body_finish((this_).__handle); - return (wasi_http_0_2_0_rc_2023_10_18_types_own_future_trailers_t) { ret }; -} - -wasi_http_0_2_0_rc_2023_10_18_types_own_pollable_t wasi_http_0_2_0_rc_2023_10_18_types_method_future_trailers_subscribe(wasi_http_0_2_0_rc_2023_10_18_types_borrow_future_trailers_t self) { - int32_t ret = __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_future_trailers_subscribe((self).__handle); - return (wasi_http_0_2_0_rc_2023_10_18_types_own_pollable_t) { ret }; -} - -bool wasi_http_0_2_0_rc_2023_10_18_types_method_future_trailers_get(wasi_http_0_2_0_rc_2023_10_18_types_borrow_future_trailers_t self, wasi_http_0_2_0_rc_2023_10_18_types_result_own_trailers_error_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[20]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_future_trailers_get((self).__handle, ptr); - wasi_http_0_2_0_rc_2023_10_18_types_option_result_own_trailers_error_t option; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - option.is_some = false; - break; - } - case 1: { - option.is_some = true; - wasi_http_0_2_0_rc_2023_10_18_types_result_own_trailers_error_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 4)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_http_0_2_0_rc_2023_10_18_types_own_trailers_t) { *((int32_t*) (ptr + 8)) }; - break; - } - case 1: { - result.is_err = true; - wasi_http_0_2_0_rc_2023_10_18_types_error_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 8))); - switch ((int32_t) variant.tag) { - case 0: { - variant.val.invalid_url = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 12))), (size_t)(*((int32_t*) (ptr + 16))) }; - break; - } - case 1: { - variant.val.timeout_error = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 12))), (size_t)(*((int32_t*) (ptr + 16))) }; - break; - } - case 2: { - variant.val.protocol_error = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 12))), (size_t)(*((int32_t*) (ptr + 16))) }; - break; - } - case 3: { - variant.val.unexpected_error = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 12))), (size_t)(*((int32_t*) (ptr + 16))) }; - break; - } - } - - result.val.err = variant; - break; - } - } - - option.val = result; - break; - } - } - *ret = option.val; - return option.is_some; -} - -wasi_http_0_2_0_rc_2023_10_18_types_own_outgoing_response_t wasi_http_0_2_0_rc_2023_10_18_types_constructor_outgoing_response(wasi_http_0_2_0_rc_2023_10_18_types_status_code_t status_code, wasi_http_0_2_0_rc_2023_10_18_types_borrow_headers_t headers) { - int32_t ret = __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_constructor_outgoing_response((int32_t) (status_code), (headers).__handle); - return (wasi_http_0_2_0_rc_2023_10_18_types_own_outgoing_response_t) { ret }; -} - -bool wasi_http_0_2_0_rc_2023_10_18_types_method_outgoing_response_write(wasi_http_0_2_0_rc_2023_10_18_types_borrow_outgoing_response_t self, wasi_http_0_2_0_rc_2023_10_18_types_own_outgoing_body_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_outgoing_response_write((self).__handle, ptr); - wasi_http_0_2_0_rc_2023_10_18_types_result_own_outgoing_body_void_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_http_0_2_0_rc_2023_10_18_types_own_outgoing_body_t) { *((int32_t*) (ptr + 4)) }; - break; - } - case 1: { - result.is_err = true; - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - return 0; - } -} - -bool wasi_http_0_2_0_rc_2023_10_18_types_method_outgoing_body_write(wasi_http_0_2_0_rc_2023_10_18_types_borrow_outgoing_body_t self, wasi_http_0_2_0_rc_2023_10_18_types_own_output_stream_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_outgoing_body_write((self).__handle, ptr); - wasi_http_0_2_0_rc_2023_10_18_types_result_own_output_stream_void_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_http_0_2_0_rc_2023_10_18_types_own_output_stream_t) { *((int32_t*) (ptr + 4)) }; - break; - } - case 1: { - result.is_err = true; - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - return 0; - } -} - -void wasi_http_0_2_0_rc_2023_10_18_types_static_outgoing_body_finish(wasi_http_0_2_0_rc_2023_10_18_types_own_outgoing_body_t this_, wasi_http_0_2_0_rc_2023_10_18_types_own_trailers_t *maybe_trailers) { - wasi_http_0_2_0_rc_2023_10_18_types_option_own_trailers_t trailers; - trailers.is_some = maybe_trailers != NULL;if (maybe_trailers) { - trailers.val = *maybe_trailers; - } - int32_t option; - int32_t option1; - if ((trailers).is_some) { - const wasi_http_0_2_0_rc_2023_10_18_types_own_trailers_t *payload0 = &(trailers).val; - option = 1; - option1 = (*payload0).__handle; - } else { - option = 0; - option1 = 0; - } - __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_static_outgoing_body_finish((this_).__handle, option, option1); -} - -bool wasi_http_0_2_0_rc_2023_10_18_types_method_future_incoming_response_get(wasi_http_0_2_0_rc_2023_10_18_types_borrow_future_incoming_response_t self, wasi_http_0_2_0_rc_2023_10_18_types_result_result_own_incoming_response_error_void_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[24]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_future_incoming_response_get((self).__handle, ptr); - wasi_http_0_2_0_rc_2023_10_18_types_option_result_result_own_incoming_response_error_void_t option; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - option.is_some = false; - break; - } - case 1: { - option.is_some = true; - wasi_http_0_2_0_rc_2023_10_18_types_result_result_own_incoming_response_error_void_t result0; - switch ((int32_t) (*((uint8_t*) (ptr + 4)))) { - case 0: { - result0.is_err = false; - wasi_http_0_2_0_rc_2023_10_18_types_result_own_incoming_response_error_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 8)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_http_0_2_0_rc_2023_10_18_types_own_incoming_response_t) { *((int32_t*) (ptr + 12)) }; - break; - } - case 1: { - result.is_err = true; - wasi_http_0_2_0_rc_2023_10_18_types_error_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 12))); - switch ((int32_t) variant.tag) { - case 0: { - variant.val.invalid_url = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 16))), (size_t)(*((int32_t*) (ptr + 20))) }; - break; - } - case 1: { - variant.val.timeout_error = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 16))), (size_t)(*((int32_t*) (ptr + 20))) }; - break; - } - case 2: { - variant.val.protocol_error = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 16))), (size_t)(*((int32_t*) (ptr + 20))) }; - break; - } - case 3: { - variant.val.unexpected_error = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 16))), (size_t)(*((int32_t*) (ptr + 20))) }; - break; - } - } - - result.val.err = variant; - break; - } - } - - result0.val.ok = result; - break; - } - case 1: { - result0.is_err = true; - break; - } - } - - option.val = result0; - break; - } - } - *ret = option.val; - return option.is_some; -} - -wasi_http_0_2_0_rc_2023_10_18_types_own_pollable_t wasi_http_0_2_0_rc_2023_10_18_types_method_future_incoming_response_subscribe(wasi_http_0_2_0_rc_2023_10_18_types_borrow_future_incoming_response_t self) { - int32_t ret = __wasm_import_wasi_http_0_2_0_rc_2023_10_18_types_method_future_incoming_response_subscribe((self).__handle); - return (wasi_http_0_2_0_rc_2023_10_18_types_own_pollable_t) { ret }; -} - -bool wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_handle(wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_own_outgoing_request_t request, wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_request_options_t *maybe_options, wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_own_future_incoming_response_t *ret, wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_error_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[16]; - wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_option_request_options_t options; - options.is_some = maybe_options != NULL;if (maybe_options) { - options.val = *maybe_options; - } - int32_t option12; - int32_t option13; - int32_t option14; - int32_t option15; - int32_t option16; - int32_t option17; - int32_t option18; - if ((options).is_some) { - const wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_request_options_t *payload0 = &(options).val; - int32_t option; - int32_t option3; - if (((*payload0).connect_timeout_ms).is_some) { - const uint32_t *payload2 = &((*payload0).connect_timeout_ms).val; - option = 1; - option3 = (int32_t) (*payload2); - } else { - option = 0; - option3 = 0; - } - int32_t option6; - int32_t option7; - if (((*payload0).first_byte_timeout_ms).is_some) { - const uint32_t *payload5 = &((*payload0).first_byte_timeout_ms).val; - option6 = 1; - option7 = (int32_t) (*payload5); - } else { - option6 = 0; - option7 = 0; - } - int32_t option10; - int32_t option11; - if (((*payload0).between_bytes_timeout_ms).is_some) { - const uint32_t *payload9 = &((*payload0).between_bytes_timeout_ms).val; - option10 = 1; - option11 = (int32_t) (*payload9); - } else { - option10 = 0; - option11 = 0; - } - option12 = 1; - option13 = option; - option14 = option3; - option15 = option6; - option16 = option7; - option17 = option10; - option18 = option11; - } else { - option12 = 0; - option13 = 0; - option14 = 0; - option15 = 0; - option16 = 0; - option17 = 0; - option18 = 0; - } - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_handle((request).__handle, option12, option13, option14, option15, option16, option17, option18, ptr); - wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_result_own_future_incoming_response_error_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_own_future_incoming_response_t) { *((int32_t*) (ptr + 4)) }; - break; - } - case 1: { - result.is_err = true; - wasi_http_0_2_0_rc_2023_10_18_types_error_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 4))); - switch ((int32_t) variant.tag) { - case 0: { - variant.val.invalid_url = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 8))), (size_t)(*((int32_t*) (ptr + 12))) }; - break; - } - case 1: { - variant.val.timeout_error = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 8))), (size_t)(*((int32_t*) (ptr + 12))) }; - break; - } - case 2: { - variant.val.protocol_error = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 8))), (size_t)(*((int32_t*) (ptr + 12))) }; - break; - } - case 3: { - variant.val.unexpected_error = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 8))), (size_t)(*((int32_t*) (ptr + 12))) }; - break; - } - } - - result.val.err = variant; - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -__attribute__((__export_name__("wasi:cli/run@0.2.0-rc-2023-10-18#run"))) -int32_t __wasm_export_exports_wasi_cli_0_2_0_rc_2023_10_18_run_run(void) { - exports_wasi_cli_0_2_0_rc_2023_10_18_run_result_void_void_t ret; - ret.is_err = !exports_wasi_cli_0_2_0_rc_2023_10_18_run_run(); - int32_t result; - if ((ret).is_err) { - result = 1; - } else { - result = 0; - } - return result; -} - -__attribute__((__export_name__("wasi:http/incoming-handler@0.2.0-rc-2023-10-18#handle"))) -void __wasm_export_exports_wasi_http_0_2_0_rc_2023_10_18_incoming_handler_handle(int32_t arg, int32_t arg0) { - exports_wasi_http_0_2_0_rc_2023_10_18_incoming_handler_handle((exports_wasi_http_0_2_0_rc_2023_10_18_incoming_handler_own_incoming_request_t) { arg }, (exports_wasi_http_0_2_0_rc_2023_10_18_incoming_handler_own_response_outparam_t) { arg0 }); -} - -extern void __component_type_object_force_link_bindings(void); -void __component_type_object_force_link_bindings_public_use_in_this_compilation_unit(void) { - __component_type_object_force_link_bindings(); -} diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/bindings/bindings.h b/host-apis/wasi-0.2.0-rc-2023-10-18/bindings/bindings.h deleted file mode 100644 index d6a4e95..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-10-18/bindings/bindings.h +++ /dev/null @@ -1,2909 +0,0 @@ -// Generated by `wit-bindgen` 0.16.0. DO NOT EDIT! -#ifndef __BINDINGS_BINDINGS_H -#define __BINDINGS_BINDINGS_H -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include - -typedef struct { - uint8_t*ptr; - size_t len; -} bindings_string_t; - -// A time and date in seconds plus nanoseconds. -typedef struct { - uint64_t seconds; - uint32_t nanoseconds; -} wasi_clocks_0_2_0_rc_2023_10_18_wall_clock_datetime_t; - -typedef struct wasi_io_0_2_0_rc_2023_10_18_poll_own_pollable_t { - int32_t __handle; -} wasi_io_0_2_0_rc_2023_10_18_poll_own_pollable_t; - -typedef struct wasi_io_0_2_0_rc_2023_10_18_poll_borrow_pollable_t { - int32_t __handle; -} wasi_io_0_2_0_rc_2023_10_18_poll_borrow_pollable_t; - -typedef struct { - wasi_io_0_2_0_rc_2023_10_18_poll_borrow_pollable_t *ptr; - size_t len; -} wasi_io_0_2_0_rc_2023_10_18_poll_list_borrow_pollable_t; - -typedef struct { - uint32_t *ptr; - size_t len; -} bindings_list_u32_t; - -// A timestamp in nanoseconds. -typedef uint64_t wasi_clocks_0_2_0_rc_2023_10_18_monotonic_clock_instant_t; - -typedef wasi_io_0_2_0_rc_2023_10_18_poll_own_pollable_t wasi_clocks_0_2_0_rc_2023_10_18_monotonic_clock_own_pollable_t; - -typedef wasi_clocks_0_2_0_rc_2023_10_18_wall_clock_datetime_t wasi_clocks_0_2_0_rc_2023_10_18_timezone_datetime_t; - -// Information useful for displaying the timezone of a specific `datetime`. -// -// This information may vary within a single `timezone` to reflect daylight -// saving time adjustments. -typedef struct { - // The number of seconds difference between UTC time and the local - // time of the timezone. - // - // The returned value will always be less than 86400 which is the - // number of seconds in a day (24*60*60). - // - // In implementations that do not expose an actual time zone, this - // should return 0. - int32_t utc_offset; - // The abbreviated name of the timezone to display to a user. The name - // `UTC` indicates Coordinated Universal Time. Otherwise, this should - // reference local standards for the name of the time zone. - // - // In implementations that do not expose an actual time zone, this - // should be the string `UTC`. - // - // In time zones that do not have an applicable name, a formatted - // representation of the UTC offset may be returned, such as `-04:00`. - bindings_string_t name; - // Whether daylight saving time is active. - // - // In implementations that do not expose an actual time zone, this - // should return false. - bool in_daylight_saving_time; -} wasi_clocks_0_2_0_rc_2023_10_18_timezone_timezone_display_t; - -typedef struct wasi_io_0_2_0_rc_2023_10_18_streams_own_error_t { - int32_t __handle; -} wasi_io_0_2_0_rc_2023_10_18_streams_own_error_t; - -typedef struct wasi_io_0_2_0_rc_2023_10_18_streams_borrow_error_t { - int32_t __handle; -} wasi_io_0_2_0_rc_2023_10_18_streams_borrow_error_t; - -// An error for input-stream and output-stream operations. -typedef struct { - uint8_t tag; - union { - wasi_io_0_2_0_rc_2023_10_18_streams_own_error_t last_operation_failed; - } val; -} wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t; - -// The last operation (a write or flush) failed before completion. -// -// More information is available in the `error` payload. -#define WASI_IO_0_2_0_RC_2023_10_18_STREAMS_STREAM_ERROR_LAST_OPERATION_FAILED 0 -// The stream is closed: no more input will be accepted by the -// stream. A closed output-stream will return this error on all -// future operations. -#define WASI_IO_0_2_0_RC_2023_10_18_STREAMS_STREAM_ERROR_CLOSED 1 - -typedef struct wasi_io_0_2_0_rc_2023_10_18_streams_own_input_stream_t { - int32_t __handle; -} wasi_io_0_2_0_rc_2023_10_18_streams_own_input_stream_t; - -typedef struct wasi_io_0_2_0_rc_2023_10_18_streams_borrow_input_stream_t { - int32_t __handle; -} wasi_io_0_2_0_rc_2023_10_18_streams_borrow_input_stream_t; - -typedef struct wasi_io_0_2_0_rc_2023_10_18_streams_own_output_stream_t { - int32_t __handle; -} wasi_io_0_2_0_rc_2023_10_18_streams_own_output_stream_t; - -typedef struct wasi_io_0_2_0_rc_2023_10_18_streams_borrow_output_stream_t { - int32_t __handle; -} wasi_io_0_2_0_rc_2023_10_18_streams_borrow_output_stream_t; - -typedef struct { - uint8_t *ptr; - size_t len; -} bindings_list_u8_t; - -typedef struct { - bool is_err; - union { - bindings_list_u8_t ok; - wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t err; - } val; -} wasi_io_0_2_0_rc_2023_10_18_streams_result_list_u8_stream_error_t; - -typedef struct { - bool is_err; - union { - uint64_t ok; - wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t err; - } val; -} wasi_io_0_2_0_rc_2023_10_18_streams_result_u64_stream_error_t; - -typedef wasi_io_0_2_0_rc_2023_10_18_poll_own_pollable_t wasi_io_0_2_0_rc_2023_10_18_streams_own_pollable_t; - -typedef struct { - bool is_err; - union { - wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t err; - } val; -} wasi_io_0_2_0_rc_2023_10_18_streams_result_void_stream_error_t; - -typedef wasi_clocks_0_2_0_rc_2023_10_18_wall_clock_datetime_t wasi_filesystem_0_2_0_rc_2023_10_18_types_datetime_t; - -// File size or length of a region within a file. -typedef uint64_t wasi_filesystem_0_2_0_rc_2023_10_18_types_filesize_t; - -// The type of a filesystem object referenced by a descriptor. -// -// Note: This was called `filetype` in earlier versions of WASI. -typedef uint8_t wasi_filesystem_0_2_0_rc_2023_10_18_types_descriptor_type_t; - -// The type of the descriptor or file is unknown or is different from -// any of the other types specified. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_DESCRIPTOR_TYPE_UNKNOWN 0 -// The descriptor refers to a block device inode. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_DESCRIPTOR_TYPE_BLOCK_DEVICE 1 -// The descriptor refers to a character device inode. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_DESCRIPTOR_TYPE_CHARACTER_DEVICE 2 -// The descriptor refers to a directory inode. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_DESCRIPTOR_TYPE_DIRECTORY 3 -// The descriptor refers to a named pipe. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_DESCRIPTOR_TYPE_FIFO 4 -// The file refers to a symbolic link inode. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_DESCRIPTOR_TYPE_SYMBOLIC_LINK 5 -// The descriptor refers to a regular file inode. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_DESCRIPTOR_TYPE_REGULAR_FILE 6 -// The descriptor refers to a socket. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_DESCRIPTOR_TYPE_SOCKET 7 - -// Descriptor flags. -// -// Note: This was called `fdflags` in earlier versions of WASI. -typedef uint8_t wasi_filesystem_0_2_0_rc_2023_10_18_types_descriptor_flags_t; - -// Read mode: Data can be read. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_DESCRIPTOR_FLAGS_READ (1 << 0) -// Write mode: Data can be written to. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_DESCRIPTOR_FLAGS_WRITE (1 << 1) -// Request that writes be performed according to synchronized I/O file -// integrity completion. The data stored in the file and the file's -// metadata are synchronized. This is similar to `O_SYNC` in POSIX. -// -// The precise semantics of this operation have not yet been defined for -// WASI. At this time, it should be interpreted as a request, and not a -// requirement. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_DESCRIPTOR_FLAGS_FILE_INTEGRITY_SYNC (1 << 2) -// Request that writes be performed according to synchronized I/O data -// integrity completion. Only the data stored in the file is -// synchronized. This is similar to `O_DSYNC` in POSIX. -// -// The precise semantics of this operation have not yet been defined for -// WASI. At this time, it should be interpreted as a request, and not a -// requirement. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_DESCRIPTOR_FLAGS_DATA_INTEGRITY_SYNC (1 << 3) -// Requests that reads be performed at the same level of integrety -// requested for writes. This is similar to `O_RSYNC` in POSIX. -// -// The precise semantics of this operation have not yet been defined for -// WASI. At this time, it should be interpreted as a request, and not a -// requirement. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_DESCRIPTOR_FLAGS_REQUESTED_WRITE_SYNC (1 << 4) -// Mutating directories mode: Directory contents may be mutated. -// -// When this flag is unset on a descriptor, operations using the -// descriptor which would create, rename, delete, modify the data or -// metadata of filesystem objects, or obtain another handle which -// would permit any of those, shall fail with `error-code::read-only` if -// they would otherwise succeed. -// -// This may only be set on directories. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_DESCRIPTOR_FLAGS_MUTATE_DIRECTORY (1 << 5) - -// Flags determining the method of how paths are resolved. -typedef uint8_t wasi_filesystem_0_2_0_rc_2023_10_18_types_path_flags_t; - -// As long as the resolved path corresponds to a symbolic link, it is -// expanded. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_PATH_FLAGS_SYMLINK_FOLLOW (1 << 0) - -// Open flags used by `open-at`. -typedef uint8_t wasi_filesystem_0_2_0_rc_2023_10_18_types_open_flags_t; - -// Create file if it does not exist, similar to `O_CREAT` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_OPEN_FLAGS_CREATE (1 << 0) -// Fail if not a directory, similar to `O_DIRECTORY` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_OPEN_FLAGS_DIRECTORY (1 << 1) -// Fail if file already exists, similar to `O_EXCL` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_OPEN_FLAGS_EXCLUSIVE (1 << 2) -// Truncate file to size 0, similar to `O_TRUNC` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_OPEN_FLAGS_TRUNCATE (1 << 3) - -// Permissions mode used by `open-at`, `change-file-permissions-at`, and -// similar. -typedef uint8_t wasi_filesystem_0_2_0_rc_2023_10_18_types_modes_t; - -// True if the resource is considered readable by the containing -// filesystem. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_MODES_READABLE (1 << 0) -// True if the resource is considered writable by the containing -// filesystem. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_MODES_WRITABLE (1 << 1) -// True if the resource is considered executable by the containing -// filesystem. This does not apply to directories. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_MODES_EXECUTABLE (1 << 2) - -// Access type used by `access-at`. -typedef struct { - uint8_t tag; - union { - wasi_filesystem_0_2_0_rc_2023_10_18_types_modes_t access; - } val; -} wasi_filesystem_0_2_0_rc_2023_10_18_types_access_type_t; - -// Test for readability, writeability, or executability. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ACCESS_TYPE_ACCESS 0 -// Test whether the path exists. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ACCESS_TYPE_EXISTS 1 - -// Number of hard links to an inode. -typedef uint64_t wasi_filesystem_0_2_0_rc_2023_10_18_types_link_count_t; - -typedef struct { - bool is_some; - wasi_filesystem_0_2_0_rc_2023_10_18_types_datetime_t val; -} wasi_filesystem_0_2_0_rc_2023_10_18_types_option_datetime_t; - -// File attributes. -// -// Note: This was called `filestat` in earlier versions of WASI. -typedef struct { - // File type. - wasi_filesystem_0_2_0_rc_2023_10_18_types_descriptor_type_t type; - // Number of hard links to the file. - wasi_filesystem_0_2_0_rc_2023_10_18_types_link_count_t link_count; - // For regular files, the file size in bytes. For symbolic links, the - // length in bytes of the pathname contained in the symbolic link. - wasi_filesystem_0_2_0_rc_2023_10_18_types_filesize_t size; - // Last data access timestamp. - // - // If the `option` is none, the platform doesn't maintain an access - // timestamp for this file. - wasi_filesystem_0_2_0_rc_2023_10_18_types_option_datetime_t data_access_timestamp; - // Last data modification timestamp. - // - // If the `option` is none, the platform doesn't maintain a - // modification timestamp for this file. - wasi_filesystem_0_2_0_rc_2023_10_18_types_option_datetime_t data_modification_timestamp; - // Last file status-change timestamp. - // - // If the `option` is none, the platform doesn't maintain a - // status-change timestamp for this file. - wasi_filesystem_0_2_0_rc_2023_10_18_types_option_datetime_t status_change_timestamp; -} wasi_filesystem_0_2_0_rc_2023_10_18_types_descriptor_stat_t; - -// When setting a timestamp, this gives the value to set it to. -typedef struct { - uint8_t tag; - union { - wasi_filesystem_0_2_0_rc_2023_10_18_types_datetime_t timestamp; - } val; -} wasi_filesystem_0_2_0_rc_2023_10_18_types_new_timestamp_t; - -// Leave the timestamp set to its previous value. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_NEW_TIMESTAMP_NO_CHANGE 0 -// Set the timestamp to the current time of the system clock associated -// with the filesystem. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_NEW_TIMESTAMP_NOW 1 -// Set the timestamp to the given value. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_NEW_TIMESTAMP_TIMESTAMP 2 - -// A directory entry. -typedef struct { - // The type of the file referred to by this directory entry. - wasi_filesystem_0_2_0_rc_2023_10_18_types_descriptor_type_t type; - // The name of the object. - bindings_string_t name; -} wasi_filesystem_0_2_0_rc_2023_10_18_types_directory_entry_t; - -// Error codes returned by functions, similar to `errno` in POSIX. -// Not all of these error codes are returned by the functions provided by this -// API; some are used in higher-level library layers, and others are provided -// merely for alignment with POSIX. -typedef uint8_t wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t; - -// Permission denied, similar to `EACCES` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ERROR_CODE_ACCESS 0 -// Resource unavailable, or operation would block, similar to `EAGAIN` and `EWOULDBLOCK` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ERROR_CODE_WOULD_BLOCK 1 -// Connection already in progress, similar to `EALREADY` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ERROR_CODE_ALREADY 2 -// Bad descriptor, similar to `EBADF` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ERROR_CODE_BAD_DESCRIPTOR 3 -// Device or resource busy, similar to `EBUSY` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ERROR_CODE_BUSY 4 -// Resource deadlock would occur, similar to `EDEADLK` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ERROR_CODE_DEADLOCK 5 -// Storage quota exceeded, similar to `EDQUOT` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ERROR_CODE_QUOTA 6 -// File exists, similar to `EEXIST` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ERROR_CODE_EXIST 7 -// File too large, similar to `EFBIG` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ERROR_CODE_FILE_TOO_LARGE 8 -// Illegal byte sequence, similar to `EILSEQ` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ERROR_CODE_ILLEGAL_BYTE_SEQUENCE 9 -// Operation in progress, similar to `EINPROGRESS` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ERROR_CODE_IN_PROGRESS 10 -// Interrupted function, similar to `EINTR` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ERROR_CODE_INTERRUPTED 11 -// Invalid argument, similar to `EINVAL` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ERROR_CODE_INVALID 12 -// I/O error, similar to `EIO` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ERROR_CODE_IO 13 -// Is a directory, similar to `EISDIR` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ERROR_CODE_IS_DIRECTORY 14 -// Too many levels of symbolic links, similar to `ELOOP` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ERROR_CODE_LOOP 15 -// Too many links, similar to `EMLINK` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ERROR_CODE_TOO_MANY_LINKS 16 -// Message too large, similar to `EMSGSIZE` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ERROR_CODE_MESSAGE_SIZE 17 -// Filename too long, similar to `ENAMETOOLONG` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ERROR_CODE_NAME_TOO_LONG 18 -// No such device, similar to `ENODEV` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ERROR_CODE_NO_DEVICE 19 -// No such file or directory, similar to `ENOENT` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ERROR_CODE_NO_ENTRY 20 -// No locks available, similar to `ENOLCK` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ERROR_CODE_NO_LOCK 21 -// Not enough space, similar to `ENOMEM` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ERROR_CODE_INSUFFICIENT_MEMORY 22 -// No space left on device, similar to `ENOSPC` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ERROR_CODE_INSUFFICIENT_SPACE 23 -// Not a directory or a symbolic link to a directory, similar to `ENOTDIR` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ERROR_CODE_NOT_DIRECTORY 24 -// Directory not empty, similar to `ENOTEMPTY` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ERROR_CODE_NOT_EMPTY 25 -// State not recoverable, similar to `ENOTRECOVERABLE` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ERROR_CODE_NOT_RECOVERABLE 26 -// Not supported, similar to `ENOTSUP` and `ENOSYS` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ERROR_CODE_UNSUPPORTED 27 -// Inappropriate I/O control operation, similar to `ENOTTY` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ERROR_CODE_NO_TTY 28 -// No such device or address, similar to `ENXIO` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ERROR_CODE_NO_SUCH_DEVICE 29 -// Value too large to be stored in data type, similar to `EOVERFLOW` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ERROR_CODE_OVERFLOW 30 -// Operation not permitted, similar to `EPERM` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ERROR_CODE_NOT_PERMITTED 31 -// Broken pipe, similar to `EPIPE` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ERROR_CODE_PIPE 32 -// Read-only file system, similar to `EROFS` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ERROR_CODE_READ_ONLY 33 -// Invalid seek, similar to `ESPIPE` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ERROR_CODE_INVALID_SEEK 34 -// Text file busy, similar to `ETXTBSY` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ERROR_CODE_TEXT_FILE_BUSY 35 -// Cross-device link, similar to `EXDEV` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ERROR_CODE_CROSS_DEVICE 36 - -// File or memory access pattern advisory information. -typedef uint8_t wasi_filesystem_0_2_0_rc_2023_10_18_types_advice_t; - -// The application has no advice to give on its behavior with respect -// to the specified data. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ADVICE_NORMAL 0 -// The application expects to access the specified data sequentially -// from lower offsets to higher offsets. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ADVICE_SEQUENTIAL 1 -// The application expects to access the specified data in a random -// order. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ADVICE_RANDOM 2 -// The application expects to access the specified data in the near -// future. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ADVICE_WILL_NEED 3 -// The application expects that it will not access the specified data -// in the near future. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ADVICE_DONT_NEED 4 -// The application expects to access the specified data once and then -// not reuse it thereafter. -#define WASI_FILESYSTEM_0_2_0_RC_2023_10_18_TYPES_ADVICE_NO_REUSE 5 - -// A 128-bit hash value, split into parts because wasm doesn't have a -// 128-bit integer type. -typedef struct { - // 64 bits of a 128-bit hash value. - uint64_t lower; - // Another 64 bits of a 128-bit hash value. - uint64_t upper; -} wasi_filesystem_0_2_0_rc_2023_10_18_types_metadata_hash_value_t; - -typedef struct wasi_filesystem_0_2_0_rc_2023_10_18_types_own_descriptor_t { - int32_t __handle; -} wasi_filesystem_0_2_0_rc_2023_10_18_types_own_descriptor_t; - -typedef struct wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t { - int32_t __handle; -} wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t; - -typedef struct wasi_filesystem_0_2_0_rc_2023_10_18_types_own_directory_entry_stream_t { - int32_t __handle; -} wasi_filesystem_0_2_0_rc_2023_10_18_types_own_directory_entry_stream_t; - -typedef struct wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_directory_entry_stream_t { - int32_t __handle; -} wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_directory_entry_stream_t; - -typedef wasi_io_0_2_0_rc_2023_10_18_streams_own_input_stream_t wasi_filesystem_0_2_0_rc_2023_10_18_types_own_input_stream_t; - -typedef struct { - bool is_err; - union { - wasi_filesystem_0_2_0_rc_2023_10_18_types_own_input_stream_t ok; - wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t err; - } val; -} wasi_filesystem_0_2_0_rc_2023_10_18_types_result_own_input_stream_error_code_t; - -typedef wasi_io_0_2_0_rc_2023_10_18_streams_own_output_stream_t wasi_filesystem_0_2_0_rc_2023_10_18_types_own_output_stream_t; - -typedef struct { - bool is_err; - union { - wasi_filesystem_0_2_0_rc_2023_10_18_types_own_output_stream_t ok; - wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t err; - } val; -} wasi_filesystem_0_2_0_rc_2023_10_18_types_result_own_output_stream_error_code_t; - -typedef struct { - bool is_err; - union { - wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t err; - } val; -} wasi_filesystem_0_2_0_rc_2023_10_18_types_result_void_error_code_t; - -typedef struct { - bool is_err; - union { - wasi_filesystem_0_2_0_rc_2023_10_18_types_descriptor_flags_t ok; - wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t err; - } val; -} wasi_filesystem_0_2_0_rc_2023_10_18_types_result_descriptor_flags_error_code_t; - -typedef struct { - bool is_err; - union { - wasi_filesystem_0_2_0_rc_2023_10_18_types_descriptor_type_t ok; - wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t err; - } val; -} wasi_filesystem_0_2_0_rc_2023_10_18_types_result_descriptor_type_error_code_t; - -typedef struct { - bindings_list_u8_t f0; - bool f1; -} bindings_tuple2_list_u8_bool_t; - -typedef struct { - bool is_err; - union { - bindings_tuple2_list_u8_bool_t ok; - wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t err; - } val; -} wasi_filesystem_0_2_0_rc_2023_10_18_types_result_tuple2_list_u8_bool_error_code_t; - -typedef struct { - bool is_err; - union { - wasi_filesystem_0_2_0_rc_2023_10_18_types_filesize_t ok; - wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t err; - } val; -} wasi_filesystem_0_2_0_rc_2023_10_18_types_result_filesize_error_code_t; - -typedef struct { - bool is_err; - union { - wasi_filesystem_0_2_0_rc_2023_10_18_types_own_directory_entry_stream_t ok; - wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t err; - } val; -} wasi_filesystem_0_2_0_rc_2023_10_18_types_result_own_directory_entry_stream_error_code_t; - -typedef struct { - bool is_err; - union { - wasi_filesystem_0_2_0_rc_2023_10_18_types_descriptor_stat_t ok; - wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t err; - } val; -} wasi_filesystem_0_2_0_rc_2023_10_18_types_result_descriptor_stat_error_code_t; - -typedef struct { - bool is_err; - union { - wasi_filesystem_0_2_0_rc_2023_10_18_types_own_descriptor_t ok; - wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t err; - } val; -} wasi_filesystem_0_2_0_rc_2023_10_18_types_result_own_descriptor_error_code_t; - -typedef struct { - bool is_err; - union { - bindings_string_t ok; - wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t err; - } val; -} wasi_filesystem_0_2_0_rc_2023_10_18_types_result_string_error_code_t; - -typedef struct { - bool is_err; - union { - wasi_filesystem_0_2_0_rc_2023_10_18_types_metadata_hash_value_t ok; - wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t err; - } val; -} wasi_filesystem_0_2_0_rc_2023_10_18_types_result_metadata_hash_value_error_code_t; - -typedef struct { - bool is_some; - wasi_filesystem_0_2_0_rc_2023_10_18_types_directory_entry_t val; -} wasi_filesystem_0_2_0_rc_2023_10_18_types_option_directory_entry_t; - -typedef struct { - bool is_err; - union { - wasi_filesystem_0_2_0_rc_2023_10_18_types_option_directory_entry_t ok; - wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t err; - } val; -} wasi_filesystem_0_2_0_rc_2023_10_18_types_result_option_directory_entry_error_code_t; - -typedef wasi_io_0_2_0_rc_2023_10_18_streams_borrow_error_t wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_error_t; - -typedef struct { - bool is_some; - wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t val; -} wasi_filesystem_0_2_0_rc_2023_10_18_types_option_error_code_t; - -typedef wasi_filesystem_0_2_0_rc_2023_10_18_types_own_descriptor_t wasi_filesystem_0_2_0_rc_2023_10_18_preopens_own_descriptor_t; - -typedef struct { - wasi_filesystem_0_2_0_rc_2023_10_18_preopens_own_descriptor_t f0; - bindings_string_t f1; -} wasi_filesystem_0_2_0_rc_2023_10_18_preopens_tuple2_own_descriptor_string_t; - -typedef struct { - wasi_filesystem_0_2_0_rc_2023_10_18_preopens_tuple2_own_descriptor_string_t *ptr; - size_t len; -} wasi_filesystem_0_2_0_rc_2023_10_18_preopens_list_tuple2_own_descriptor_string_t; - -typedef struct wasi_sockets_0_2_0_rc_2023_10_18_network_own_network_t { - int32_t __handle; -} wasi_sockets_0_2_0_rc_2023_10_18_network_own_network_t; - -typedef struct wasi_sockets_0_2_0_rc_2023_10_18_network_borrow_network_t { - int32_t __handle; -} wasi_sockets_0_2_0_rc_2023_10_18_network_borrow_network_t; - -// Error codes. -// -// In theory, every API can return any error code. -// In practice, API's typically only return the errors documented per API -// combined with a couple of errors that are always possible: -// - `unknown` -// - `access-denied` -// - `not-supported` -// - `out-of-memory` -// - `concurrency-conflict` -// -// See each individual API for what the POSIX equivalents are. They sometimes differ per API. -typedef uint8_t wasi_sockets_0_2_0_rc_2023_10_18_network_error_code_t; - -// Unknown error -#define WASI_SOCKETS_0_2_0_RC_2023_10_18_NETWORK_ERROR_CODE_UNKNOWN 0 -// Access denied. -// -// POSIX equivalent: EACCES, EPERM -#define WASI_SOCKETS_0_2_0_RC_2023_10_18_NETWORK_ERROR_CODE_ACCESS_DENIED 1 -// The operation is not supported. -// -// POSIX equivalent: EOPNOTSUPP -#define WASI_SOCKETS_0_2_0_RC_2023_10_18_NETWORK_ERROR_CODE_NOT_SUPPORTED 2 -// One of the arguments is invalid. -// -// POSIX equivalent: EINVAL -#define WASI_SOCKETS_0_2_0_RC_2023_10_18_NETWORK_ERROR_CODE_INVALID_ARGUMENT 3 -// Not enough memory to complete the operation. -// -// POSIX equivalent: ENOMEM, ENOBUFS, EAI_MEMORY -#define WASI_SOCKETS_0_2_0_RC_2023_10_18_NETWORK_ERROR_CODE_OUT_OF_MEMORY 4 -// The operation timed out before it could finish completely. -#define WASI_SOCKETS_0_2_0_RC_2023_10_18_NETWORK_ERROR_CODE_TIMEOUT 5 -// This operation is incompatible with another asynchronous operation that is already in progress. -// -// POSIX equivalent: EALREADY -#define WASI_SOCKETS_0_2_0_RC_2023_10_18_NETWORK_ERROR_CODE_CONCURRENCY_CONFLICT 6 -// Trying to finish an asynchronous operation that: -// - has not been started yet, or: -// - was already finished by a previous `finish-*` call. -// -// Note: this is scheduled to be removed when `future`s are natively supported. -#define WASI_SOCKETS_0_2_0_RC_2023_10_18_NETWORK_ERROR_CODE_NOT_IN_PROGRESS 7 -// The operation has been aborted because it could not be completed immediately. -// -// Note: this is scheduled to be removed when `future`s are natively supported. -#define WASI_SOCKETS_0_2_0_RC_2023_10_18_NETWORK_ERROR_CODE_WOULD_BLOCK 8 -// The operation is not valid in the socket's current state. -#define WASI_SOCKETS_0_2_0_RC_2023_10_18_NETWORK_ERROR_CODE_INVALID_STATE 9 -// A new socket resource could not be created because of a system limit. -#define WASI_SOCKETS_0_2_0_RC_2023_10_18_NETWORK_ERROR_CODE_NEW_SOCKET_LIMIT 10 -// A bind operation failed because the provided address is not an address that the `network` can bind to. -#define WASI_SOCKETS_0_2_0_RC_2023_10_18_NETWORK_ERROR_CODE_ADDRESS_NOT_BINDABLE 11 -// A bind operation failed because the provided address is already in use or because there are no ephemeral ports available. -#define WASI_SOCKETS_0_2_0_RC_2023_10_18_NETWORK_ERROR_CODE_ADDRESS_IN_USE 12 -// The remote address is not reachable -#define WASI_SOCKETS_0_2_0_RC_2023_10_18_NETWORK_ERROR_CODE_REMOTE_UNREACHABLE 13 -// The connection was forcefully rejected -#define WASI_SOCKETS_0_2_0_RC_2023_10_18_NETWORK_ERROR_CODE_CONNECTION_REFUSED 14 -// The connection was reset. -#define WASI_SOCKETS_0_2_0_RC_2023_10_18_NETWORK_ERROR_CODE_CONNECTION_RESET 15 -// A connection was aborted. -#define WASI_SOCKETS_0_2_0_RC_2023_10_18_NETWORK_ERROR_CODE_CONNECTION_ABORTED 16 -#define WASI_SOCKETS_0_2_0_RC_2023_10_18_NETWORK_ERROR_CODE_DATAGRAM_TOO_LARGE 17 -// Name does not exist or has no suitable associated IP addresses. -#define WASI_SOCKETS_0_2_0_RC_2023_10_18_NETWORK_ERROR_CODE_NAME_UNRESOLVABLE 18 -// A temporary failure in name resolution occurred. -#define WASI_SOCKETS_0_2_0_RC_2023_10_18_NETWORK_ERROR_CODE_TEMPORARY_RESOLVER_FAILURE 19 -// A permanent failure in name resolution occurred. -#define WASI_SOCKETS_0_2_0_RC_2023_10_18_NETWORK_ERROR_CODE_PERMANENT_RESOLVER_FAILURE 20 - -typedef uint8_t wasi_sockets_0_2_0_rc_2023_10_18_network_ip_address_family_t; - -// Similar to `AF_INET` in POSIX. -#define WASI_SOCKETS_0_2_0_RC_2023_10_18_NETWORK_IP_ADDRESS_FAMILY_IPV4 0 -// Similar to `AF_INET6` in POSIX. -#define WASI_SOCKETS_0_2_0_RC_2023_10_18_NETWORK_IP_ADDRESS_FAMILY_IPV6 1 - -typedef struct { - uint8_t f0; - uint8_t f1; - uint8_t f2; - uint8_t f3; -} wasi_sockets_0_2_0_rc_2023_10_18_network_ipv4_address_t; - -typedef struct { - uint16_t f0; - uint16_t f1; - uint16_t f2; - uint16_t f3; - uint16_t f4; - uint16_t f5; - uint16_t f6; - uint16_t f7; -} wasi_sockets_0_2_0_rc_2023_10_18_network_ipv6_address_t; - -typedef struct { - uint8_t tag; - union { - wasi_sockets_0_2_0_rc_2023_10_18_network_ipv4_address_t ipv4; - wasi_sockets_0_2_0_rc_2023_10_18_network_ipv6_address_t ipv6; - } val; -} wasi_sockets_0_2_0_rc_2023_10_18_network_ip_address_t; - -#define WASI_SOCKETS_0_2_0_RC_2023_10_18_NETWORK_IP_ADDRESS_IPV4 0 -#define WASI_SOCKETS_0_2_0_RC_2023_10_18_NETWORK_IP_ADDRESS_IPV6 1 - -typedef struct { - uint16_t port; - wasi_sockets_0_2_0_rc_2023_10_18_network_ipv4_address_t address; -} wasi_sockets_0_2_0_rc_2023_10_18_network_ipv4_socket_address_t; - -typedef struct { - uint16_t port; - uint32_t flow_info; - wasi_sockets_0_2_0_rc_2023_10_18_network_ipv6_address_t address; - uint32_t scope_id; -} wasi_sockets_0_2_0_rc_2023_10_18_network_ipv6_socket_address_t; - -typedef struct { - uint8_t tag; - union { - wasi_sockets_0_2_0_rc_2023_10_18_network_ipv4_socket_address_t ipv4; - wasi_sockets_0_2_0_rc_2023_10_18_network_ipv6_socket_address_t ipv6; - } val; -} wasi_sockets_0_2_0_rc_2023_10_18_network_ip_socket_address_t; - -#define WASI_SOCKETS_0_2_0_RC_2023_10_18_NETWORK_IP_SOCKET_ADDRESS_IPV4 0 -#define WASI_SOCKETS_0_2_0_RC_2023_10_18_NETWORK_IP_SOCKET_ADDRESS_IPV6 1 - -typedef wasi_sockets_0_2_0_rc_2023_10_18_network_own_network_t wasi_sockets_0_2_0_rc_2023_10_18_instance_network_own_network_t; - -typedef wasi_sockets_0_2_0_rc_2023_10_18_network_error_code_t wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_error_code_t; - -typedef wasi_sockets_0_2_0_rc_2023_10_18_network_ip_address_t wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_ip_address_t; - -typedef wasi_sockets_0_2_0_rc_2023_10_18_network_ip_address_family_t wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_ip_address_family_t; - -typedef struct wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_own_resolve_address_stream_t { - int32_t __handle; -} wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_own_resolve_address_stream_t; - -typedef struct wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_borrow_resolve_address_stream_t { - int32_t __handle; -} wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_borrow_resolve_address_stream_t; - -typedef wasi_sockets_0_2_0_rc_2023_10_18_network_borrow_network_t wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_borrow_network_t; - -typedef struct { - bool is_some; - wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_ip_address_family_t val; -} wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_option_ip_address_family_t; - -typedef struct { - bool is_err; - union { - wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_own_resolve_address_stream_t ok; - wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_error_code_t err; - } val; -} wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_result_own_resolve_address_stream_error_code_t; - -typedef struct { - bool is_some; - wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_ip_address_t val; -} wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_option_ip_address_t; - -typedef struct { - bool is_err; - union { - wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_option_ip_address_t ok; - wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_error_code_t err; - } val; -} wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_result_option_ip_address_error_code_t; - -typedef wasi_io_0_2_0_rc_2023_10_18_poll_own_pollable_t wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_own_pollable_t; - -typedef wasi_sockets_0_2_0_rc_2023_10_18_network_error_code_t wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t; - -typedef wasi_sockets_0_2_0_rc_2023_10_18_network_ip_socket_address_t wasi_sockets_0_2_0_rc_2023_10_18_tcp_ip_socket_address_t; - -typedef wasi_sockets_0_2_0_rc_2023_10_18_network_ip_address_family_t wasi_sockets_0_2_0_rc_2023_10_18_tcp_ip_address_family_t; - -typedef uint8_t wasi_sockets_0_2_0_rc_2023_10_18_tcp_shutdown_type_t; - -// Similar to `SHUT_RD` in POSIX. -#define WASI_SOCKETS_0_2_0_RC_2023_10_18_TCP_SHUTDOWN_TYPE_RECEIVE 0 -// Similar to `SHUT_WR` in POSIX. -#define WASI_SOCKETS_0_2_0_RC_2023_10_18_TCP_SHUTDOWN_TYPE_SEND 1 -// Similar to `SHUT_RDWR` in POSIX. -#define WASI_SOCKETS_0_2_0_RC_2023_10_18_TCP_SHUTDOWN_TYPE_BOTH 2 - -typedef struct wasi_sockets_0_2_0_rc_2023_10_18_tcp_own_tcp_socket_t { - int32_t __handle; -} wasi_sockets_0_2_0_rc_2023_10_18_tcp_own_tcp_socket_t; - -typedef struct wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t { - int32_t __handle; -} wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t; - -typedef wasi_sockets_0_2_0_rc_2023_10_18_network_borrow_network_t wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_network_t; - -typedef struct { - bool is_err; - union { - wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t err; - } val; -} wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_void_error_code_t; - -typedef wasi_io_0_2_0_rc_2023_10_18_streams_own_input_stream_t wasi_sockets_0_2_0_rc_2023_10_18_tcp_own_input_stream_t; - -typedef wasi_io_0_2_0_rc_2023_10_18_streams_own_output_stream_t wasi_sockets_0_2_0_rc_2023_10_18_tcp_own_output_stream_t; - -typedef struct { - wasi_sockets_0_2_0_rc_2023_10_18_tcp_own_input_stream_t f0; - wasi_sockets_0_2_0_rc_2023_10_18_tcp_own_output_stream_t f1; -} wasi_sockets_0_2_0_rc_2023_10_18_tcp_tuple2_own_input_stream_own_output_stream_t; - -typedef struct { - bool is_err; - union { - wasi_sockets_0_2_0_rc_2023_10_18_tcp_tuple2_own_input_stream_own_output_stream_t ok; - wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t err; - } val; -} wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_tuple2_own_input_stream_own_output_stream_error_code_t; - -typedef struct { - wasi_sockets_0_2_0_rc_2023_10_18_tcp_own_tcp_socket_t f0; - wasi_sockets_0_2_0_rc_2023_10_18_tcp_own_input_stream_t f1; - wasi_sockets_0_2_0_rc_2023_10_18_tcp_own_output_stream_t f2; -} wasi_sockets_0_2_0_rc_2023_10_18_tcp_tuple3_own_tcp_socket_own_input_stream_own_output_stream_t; - -typedef struct { - bool is_err; - union { - wasi_sockets_0_2_0_rc_2023_10_18_tcp_tuple3_own_tcp_socket_own_input_stream_own_output_stream_t ok; - wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t err; - } val; -} wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_tuple3_own_tcp_socket_own_input_stream_own_output_stream_error_code_t; - -typedef struct { - bool is_err; - union { - wasi_sockets_0_2_0_rc_2023_10_18_tcp_ip_socket_address_t ok; - wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t err; - } val; -} wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_ip_socket_address_error_code_t; - -typedef struct { - bool is_err; - union { - bool ok; - wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t err; - } val; -} wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_bool_error_code_t; - -typedef struct { - bool is_err; - union { - uint8_t ok; - wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t err; - } val; -} wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_u8_error_code_t; - -typedef struct { - bool is_err; - union { - uint64_t ok; - wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t err; - } val; -} wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_u64_error_code_t; - -typedef wasi_io_0_2_0_rc_2023_10_18_poll_own_pollable_t wasi_sockets_0_2_0_rc_2023_10_18_tcp_own_pollable_t; - -typedef wasi_sockets_0_2_0_rc_2023_10_18_network_error_code_t wasi_sockets_0_2_0_rc_2023_10_18_tcp_create_socket_error_code_t; - -typedef wasi_sockets_0_2_0_rc_2023_10_18_network_ip_address_family_t wasi_sockets_0_2_0_rc_2023_10_18_tcp_create_socket_ip_address_family_t; - -typedef wasi_sockets_0_2_0_rc_2023_10_18_tcp_own_tcp_socket_t wasi_sockets_0_2_0_rc_2023_10_18_tcp_create_socket_own_tcp_socket_t; - -typedef struct { - bool is_err; - union { - wasi_sockets_0_2_0_rc_2023_10_18_tcp_create_socket_own_tcp_socket_t ok; - wasi_sockets_0_2_0_rc_2023_10_18_tcp_create_socket_error_code_t err; - } val; -} wasi_sockets_0_2_0_rc_2023_10_18_tcp_create_socket_result_own_tcp_socket_error_code_t; - -typedef wasi_sockets_0_2_0_rc_2023_10_18_network_error_code_t wasi_sockets_0_2_0_rc_2023_10_18_udp_error_code_t; - -typedef wasi_sockets_0_2_0_rc_2023_10_18_network_ip_socket_address_t wasi_sockets_0_2_0_rc_2023_10_18_udp_ip_socket_address_t; - -typedef wasi_sockets_0_2_0_rc_2023_10_18_network_ip_address_family_t wasi_sockets_0_2_0_rc_2023_10_18_udp_ip_address_family_t; - -typedef struct { - bindings_list_u8_t data; - wasi_sockets_0_2_0_rc_2023_10_18_udp_ip_socket_address_t remote_address; -} wasi_sockets_0_2_0_rc_2023_10_18_udp_datagram_t; - -typedef struct wasi_sockets_0_2_0_rc_2023_10_18_udp_own_udp_socket_t { - int32_t __handle; -} wasi_sockets_0_2_0_rc_2023_10_18_udp_own_udp_socket_t; - -typedef struct wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_udp_socket_t { - int32_t __handle; -} wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_udp_socket_t; - -typedef wasi_sockets_0_2_0_rc_2023_10_18_network_borrow_network_t wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_network_t; - -typedef struct { - bool is_err; - union { - wasi_sockets_0_2_0_rc_2023_10_18_udp_error_code_t err; - } val; -} wasi_sockets_0_2_0_rc_2023_10_18_udp_result_void_error_code_t; - -typedef struct { - wasi_sockets_0_2_0_rc_2023_10_18_udp_datagram_t *ptr; - size_t len; -} wasi_sockets_0_2_0_rc_2023_10_18_udp_list_datagram_t; - -typedef struct { - bool is_err; - union { - wasi_sockets_0_2_0_rc_2023_10_18_udp_list_datagram_t ok; - wasi_sockets_0_2_0_rc_2023_10_18_udp_error_code_t err; - } val; -} wasi_sockets_0_2_0_rc_2023_10_18_udp_result_list_datagram_error_code_t; - -typedef struct { - bool is_err; - union { - uint64_t ok; - wasi_sockets_0_2_0_rc_2023_10_18_udp_error_code_t err; - } val; -} wasi_sockets_0_2_0_rc_2023_10_18_udp_result_u64_error_code_t; - -typedef struct { - bool is_err; - union { - wasi_sockets_0_2_0_rc_2023_10_18_udp_ip_socket_address_t ok; - wasi_sockets_0_2_0_rc_2023_10_18_udp_error_code_t err; - } val; -} wasi_sockets_0_2_0_rc_2023_10_18_udp_result_ip_socket_address_error_code_t; - -typedef struct { - bool is_err; - union { - bool ok; - wasi_sockets_0_2_0_rc_2023_10_18_udp_error_code_t err; - } val; -} wasi_sockets_0_2_0_rc_2023_10_18_udp_result_bool_error_code_t; - -typedef struct { - bool is_err; - union { - uint8_t ok; - wasi_sockets_0_2_0_rc_2023_10_18_udp_error_code_t err; - } val; -} wasi_sockets_0_2_0_rc_2023_10_18_udp_result_u8_error_code_t; - -typedef wasi_io_0_2_0_rc_2023_10_18_poll_own_pollable_t wasi_sockets_0_2_0_rc_2023_10_18_udp_own_pollable_t; - -typedef wasi_sockets_0_2_0_rc_2023_10_18_network_error_code_t wasi_sockets_0_2_0_rc_2023_10_18_udp_create_socket_error_code_t; - -typedef wasi_sockets_0_2_0_rc_2023_10_18_network_ip_address_family_t wasi_sockets_0_2_0_rc_2023_10_18_udp_create_socket_ip_address_family_t; - -typedef wasi_sockets_0_2_0_rc_2023_10_18_udp_own_udp_socket_t wasi_sockets_0_2_0_rc_2023_10_18_udp_create_socket_own_udp_socket_t; - -typedef struct { - bool is_err; - union { - wasi_sockets_0_2_0_rc_2023_10_18_udp_create_socket_own_udp_socket_t ok; - wasi_sockets_0_2_0_rc_2023_10_18_udp_create_socket_error_code_t err; - } val; -} wasi_sockets_0_2_0_rc_2023_10_18_udp_create_socket_result_own_udp_socket_error_code_t; - -typedef struct { - uint64_t f0; - uint64_t f1; -} bindings_tuple2_u64_u64_t; - -typedef struct { - bindings_string_t f0; - bindings_string_t f1; -} bindings_tuple2_string_string_t; - -typedef struct { - bindings_tuple2_string_string_t *ptr; - size_t len; -} bindings_list_tuple2_string_string_t; - -typedef struct { - bindings_string_t *ptr; - size_t len; -} bindings_list_string_t; - -typedef struct { - bool is_some; - bindings_string_t val; -} bindings_option_string_t; - -typedef struct { - bool is_err; -} wasi_cli_0_2_0_rc_2023_10_18_exit_result_void_void_t; - -typedef wasi_io_0_2_0_rc_2023_10_18_streams_own_input_stream_t wasi_cli_0_2_0_rc_2023_10_18_stdin_own_input_stream_t; - -typedef wasi_io_0_2_0_rc_2023_10_18_streams_own_output_stream_t wasi_cli_0_2_0_rc_2023_10_18_stdout_own_output_stream_t; - -typedef wasi_io_0_2_0_rc_2023_10_18_streams_own_output_stream_t wasi_cli_0_2_0_rc_2023_10_18_stderr_own_output_stream_t; - -typedef struct wasi_cli_0_2_0_rc_2023_10_18_terminal_input_own_terminal_input_t { - int32_t __handle; -} wasi_cli_0_2_0_rc_2023_10_18_terminal_input_own_terminal_input_t; - -typedef struct wasi_cli_0_2_0_rc_2023_10_18_terminal_input_borrow_terminal_input_t { - int32_t __handle; -} wasi_cli_0_2_0_rc_2023_10_18_terminal_input_borrow_terminal_input_t; - -typedef struct wasi_cli_0_2_0_rc_2023_10_18_terminal_output_own_terminal_output_t { - int32_t __handle; -} wasi_cli_0_2_0_rc_2023_10_18_terminal_output_own_terminal_output_t; - -typedef struct wasi_cli_0_2_0_rc_2023_10_18_terminal_output_borrow_terminal_output_t { - int32_t __handle; -} wasi_cli_0_2_0_rc_2023_10_18_terminal_output_borrow_terminal_output_t; - -typedef wasi_cli_0_2_0_rc_2023_10_18_terminal_input_own_terminal_input_t wasi_cli_0_2_0_rc_2023_10_18_terminal_stdin_own_terminal_input_t; - -typedef struct { - bool is_some; - wasi_cli_0_2_0_rc_2023_10_18_terminal_stdin_own_terminal_input_t val; -} wasi_cli_0_2_0_rc_2023_10_18_terminal_stdin_option_own_terminal_input_t; - -typedef wasi_cli_0_2_0_rc_2023_10_18_terminal_output_own_terminal_output_t wasi_cli_0_2_0_rc_2023_10_18_terminal_stdout_own_terminal_output_t; - -typedef struct { - bool is_some; - wasi_cli_0_2_0_rc_2023_10_18_terminal_stdout_own_terminal_output_t val; -} wasi_cli_0_2_0_rc_2023_10_18_terminal_stdout_option_own_terminal_output_t; - -typedef wasi_cli_0_2_0_rc_2023_10_18_terminal_output_own_terminal_output_t wasi_cli_0_2_0_rc_2023_10_18_terminal_stderr_own_terminal_output_t; - -typedef struct { - bool is_some; - wasi_cli_0_2_0_rc_2023_10_18_terminal_stderr_own_terminal_output_t val; -} wasi_cli_0_2_0_rc_2023_10_18_terminal_stderr_option_own_terminal_output_t; - -typedef struct { - uint8_t tag; - union { - bindings_string_t other; - } val; -} wasi_http_0_2_0_rc_2023_10_18_types_method_t; - -#define WASI_HTTP_0_2_0_RC_2023_10_18_TYPES_METHOD_GET 0 -#define WASI_HTTP_0_2_0_RC_2023_10_18_TYPES_METHOD_HEAD 1 -#define WASI_HTTP_0_2_0_RC_2023_10_18_TYPES_METHOD_POST 2 -#define WASI_HTTP_0_2_0_RC_2023_10_18_TYPES_METHOD_PUT 3 -#define WASI_HTTP_0_2_0_RC_2023_10_18_TYPES_METHOD_DELETE 4 -#define WASI_HTTP_0_2_0_RC_2023_10_18_TYPES_METHOD_CONNECT 5 -#define WASI_HTTP_0_2_0_RC_2023_10_18_TYPES_METHOD_OPTIONS 6 -#define WASI_HTTP_0_2_0_RC_2023_10_18_TYPES_METHOD_TRACE 7 -#define WASI_HTTP_0_2_0_RC_2023_10_18_TYPES_METHOD_PATCH 8 -#define WASI_HTTP_0_2_0_RC_2023_10_18_TYPES_METHOD_OTHER 9 - -typedef struct { - uint8_t tag; - union { - bindings_string_t other; - } val; -} wasi_http_0_2_0_rc_2023_10_18_types_scheme_t; - -#define WASI_HTTP_0_2_0_RC_2023_10_18_TYPES_SCHEME_HTTP 0 -#define WASI_HTTP_0_2_0_RC_2023_10_18_TYPES_SCHEME_HTTPS 1 -#define WASI_HTTP_0_2_0_RC_2023_10_18_TYPES_SCHEME_OTHER 2 - -typedef struct { - uint8_t tag; - union { - bindings_string_t invalid_url; - bindings_string_t timeout_error; - bindings_string_t protocol_error; - bindings_string_t unexpected_error; - } val; -} wasi_http_0_2_0_rc_2023_10_18_types_error_t; - -#define WASI_HTTP_0_2_0_RC_2023_10_18_TYPES_ERROR_INVALID_URL 0 -#define WASI_HTTP_0_2_0_RC_2023_10_18_TYPES_ERROR_TIMEOUT_ERROR 1 -#define WASI_HTTP_0_2_0_RC_2023_10_18_TYPES_ERROR_PROTOCOL_ERROR 2 -#define WASI_HTTP_0_2_0_RC_2023_10_18_TYPES_ERROR_UNEXPECTED_ERROR 3 - -typedef struct wasi_http_0_2_0_rc_2023_10_18_types_own_fields_t { - int32_t __handle; -} wasi_http_0_2_0_rc_2023_10_18_types_own_fields_t; - -typedef struct wasi_http_0_2_0_rc_2023_10_18_types_borrow_fields_t { - int32_t __handle; -} wasi_http_0_2_0_rc_2023_10_18_types_borrow_fields_t; - -typedef struct wasi_http_0_2_0_rc_2023_10_18_types_own_incoming_request_t { - int32_t __handle; -} wasi_http_0_2_0_rc_2023_10_18_types_own_incoming_request_t; - -typedef struct wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_request_t { - int32_t __handle; -} wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_request_t; - -typedef struct wasi_http_0_2_0_rc_2023_10_18_types_own_outgoing_request_t { - int32_t __handle; -} wasi_http_0_2_0_rc_2023_10_18_types_own_outgoing_request_t; - -typedef struct wasi_http_0_2_0_rc_2023_10_18_types_borrow_outgoing_request_t { - int32_t __handle; -} wasi_http_0_2_0_rc_2023_10_18_types_borrow_outgoing_request_t; - -typedef struct { - bool is_some; - uint32_t val; -} bindings_option_u32_t; - -typedef struct { - bindings_option_u32_t connect_timeout_ms; - bindings_option_u32_t first_byte_timeout_ms; - bindings_option_u32_t between_bytes_timeout_ms; -} wasi_http_0_2_0_rc_2023_10_18_types_request_options_t; - -typedef struct wasi_http_0_2_0_rc_2023_10_18_types_own_response_outparam_t { - int32_t __handle; -} wasi_http_0_2_0_rc_2023_10_18_types_own_response_outparam_t; - -typedef struct wasi_http_0_2_0_rc_2023_10_18_types_borrow_response_outparam_t { - int32_t __handle; -} wasi_http_0_2_0_rc_2023_10_18_types_borrow_response_outparam_t; - -typedef uint16_t wasi_http_0_2_0_rc_2023_10_18_types_status_code_t; - -typedef struct wasi_http_0_2_0_rc_2023_10_18_types_own_incoming_response_t { - int32_t __handle; -} wasi_http_0_2_0_rc_2023_10_18_types_own_incoming_response_t; - -typedef struct wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_response_t { - int32_t __handle; -} wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_response_t; - -typedef struct wasi_http_0_2_0_rc_2023_10_18_types_own_incoming_body_t { - int32_t __handle; -} wasi_http_0_2_0_rc_2023_10_18_types_own_incoming_body_t; - -typedef struct wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_body_t { - int32_t __handle; -} wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_body_t; - -typedef struct wasi_http_0_2_0_rc_2023_10_18_types_own_future_trailers_t { - int32_t __handle; -} wasi_http_0_2_0_rc_2023_10_18_types_own_future_trailers_t; - -typedef struct wasi_http_0_2_0_rc_2023_10_18_types_borrow_future_trailers_t { - int32_t __handle; -} wasi_http_0_2_0_rc_2023_10_18_types_borrow_future_trailers_t; - -typedef struct wasi_http_0_2_0_rc_2023_10_18_types_own_outgoing_response_t { - int32_t __handle; -} wasi_http_0_2_0_rc_2023_10_18_types_own_outgoing_response_t; - -typedef struct wasi_http_0_2_0_rc_2023_10_18_types_borrow_outgoing_response_t { - int32_t __handle; -} wasi_http_0_2_0_rc_2023_10_18_types_borrow_outgoing_response_t; - -typedef struct wasi_http_0_2_0_rc_2023_10_18_types_own_outgoing_body_t { - int32_t __handle; -} wasi_http_0_2_0_rc_2023_10_18_types_own_outgoing_body_t; - -typedef struct wasi_http_0_2_0_rc_2023_10_18_types_borrow_outgoing_body_t { - int32_t __handle; -} wasi_http_0_2_0_rc_2023_10_18_types_borrow_outgoing_body_t; - -typedef struct wasi_http_0_2_0_rc_2023_10_18_types_own_future_incoming_response_t { - int32_t __handle; -} wasi_http_0_2_0_rc_2023_10_18_types_own_future_incoming_response_t; - -typedef struct wasi_http_0_2_0_rc_2023_10_18_types_borrow_future_incoming_response_t { - int32_t __handle; -} wasi_http_0_2_0_rc_2023_10_18_types_borrow_future_incoming_response_t; - -typedef struct { - bindings_string_t f0; - bindings_list_u8_t f1; -} bindings_tuple2_string_list_u8_t; - -typedef struct { - bindings_tuple2_string_list_u8_t *ptr; - size_t len; -} bindings_list_tuple2_string_list_u8_t; - -typedef struct { - bindings_list_u8_t *ptr; - size_t len; -} bindings_list_list_u8_t; - -typedef struct { - bool is_some; - wasi_http_0_2_0_rc_2023_10_18_types_scheme_t val; -} wasi_http_0_2_0_rc_2023_10_18_types_option_scheme_t; - -typedef wasi_http_0_2_0_rc_2023_10_18_types_own_fields_t wasi_http_0_2_0_rc_2023_10_18_types_own_headers_t; - -typedef struct { - bool is_err; - union { - wasi_http_0_2_0_rc_2023_10_18_types_own_incoming_body_t ok; - } val; -} wasi_http_0_2_0_rc_2023_10_18_types_result_own_incoming_body_void_t; - -typedef wasi_http_0_2_0_rc_2023_10_18_types_borrow_fields_t wasi_http_0_2_0_rc_2023_10_18_types_borrow_headers_t; - -typedef struct { - bool is_err; - union { - wasi_http_0_2_0_rc_2023_10_18_types_own_outgoing_body_t ok; - } val; -} wasi_http_0_2_0_rc_2023_10_18_types_result_own_outgoing_body_void_t; - -typedef struct { - bool is_err; - union { - wasi_http_0_2_0_rc_2023_10_18_types_own_outgoing_response_t ok; - wasi_http_0_2_0_rc_2023_10_18_types_error_t err; - } val; -} wasi_http_0_2_0_rc_2023_10_18_types_result_own_outgoing_response_error_t; - -typedef wasi_io_0_2_0_rc_2023_10_18_streams_own_input_stream_t wasi_http_0_2_0_rc_2023_10_18_types_own_input_stream_t; - -typedef struct { - bool is_err; - union { - wasi_http_0_2_0_rc_2023_10_18_types_own_input_stream_t ok; - } val; -} wasi_http_0_2_0_rc_2023_10_18_types_result_own_input_stream_void_t; - -typedef wasi_io_0_2_0_rc_2023_10_18_poll_own_pollable_t wasi_http_0_2_0_rc_2023_10_18_types_own_pollable_t; - -typedef wasi_http_0_2_0_rc_2023_10_18_types_own_fields_t wasi_http_0_2_0_rc_2023_10_18_types_own_trailers_t; - -typedef struct { - bool is_err; - union { - wasi_http_0_2_0_rc_2023_10_18_types_own_trailers_t ok; - wasi_http_0_2_0_rc_2023_10_18_types_error_t err; - } val; -} wasi_http_0_2_0_rc_2023_10_18_types_result_own_trailers_error_t; - -typedef struct { - bool is_some; - wasi_http_0_2_0_rc_2023_10_18_types_result_own_trailers_error_t val; -} wasi_http_0_2_0_rc_2023_10_18_types_option_result_own_trailers_error_t; - -typedef wasi_io_0_2_0_rc_2023_10_18_streams_own_output_stream_t wasi_http_0_2_0_rc_2023_10_18_types_own_output_stream_t; - -typedef struct { - bool is_err; - union { - wasi_http_0_2_0_rc_2023_10_18_types_own_output_stream_t ok; - } val; -} wasi_http_0_2_0_rc_2023_10_18_types_result_own_output_stream_void_t; - -typedef struct { - bool is_some; - wasi_http_0_2_0_rc_2023_10_18_types_own_trailers_t val; -} wasi_http_0_2_0_rc_2023_10_18_types_option_own_trailers_t; - -typedef struct { - bool is_err; - union { - wasi_http_0_2_0_rc_2023_10_18_types_own_incoming_response_t ok; - wasi_http_0_2_0_rc_2023_10_18_types_error_t err; - } val; -} wasi_http_0_2_0_rc_2023_10_18_types_result_own_incoming_response_error_t; - -typedef struct { - bool is_err; - union { - wasi_http_0_2_0_rc_2023_10_18_types_result_own_incoming_response_error_t ok; - } val; -} wasi_http_0_2_0_rc_2023_10_18_types_result_result_own_incoming_response_error_void_t; - -typedef struct { - bool is_some; - wasi_http_0_2_0_rc_2023_10_18_types_result_result_own_incoming_response_error_void_t val; -} wasi_http_0_2_0_rc_2023_10_18_types_option_result_result_own_incoming_response_error_void_t; - -typedef wasi_http_0_2_0_rc_2023_10_18_types_request_options_t wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_request_options_t; - -typedef wasi_http_0_2_0_rc_2023_10_18_types_error_t wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_error_t; - -typedef wasi_http_0_2_0_rc_2023_10_18_types_own_outgoing_request_t wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_own_outgoing_request_t; - -typedef struct { - bool is_some; - wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_request_options_t val; -} wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_option_request_options_t; - -typedef wasi_http_0_2_0_rc_2023_10_18_types_own_future_incoming_response_t wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_own_future_incoming_response_t; - -typedef struct { - bool is_err; - union { - wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_own_future_incoming_response_t ok; - wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_error_t err; - } val; -} wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_result_own_future_incoming_response_error_t; - -typedef struct { - bool is_err; -} exports_wasi_cli_0_2_0_rc_2023_10_18_run_result_void_void_t; - -typedef wasi_http_0_2_0_rc_2023_10_18_types_own_incoming_request_t exports_wasi_http_0_2_0_rc_2023_10_18_incoming_handler_own_incoming_request_t; - -typedef wasi_http_0_2_0_rc_2023_10_18_types_own_response_outparam_t exports_wasi_http_0_2_0_rc_2023_10_18_incoming_handler_own_response_outparam_t; - -// Imported Functions from `wasi:clocks/wall-clock@0.2.0-rc-2023-10-18` -// Read the current value of the clock. -// -// This clock is not monotonic, therefore calling this function repeatedly -// will not necessarily produce a sequence of non-decreasing values. -// -// The returned timestamps represent the number of seconds since -// 1970-01-01T00:00:00Z, also known as [POSIX's Seconds Since the Epoch], -// also known as [Unix Time]. -// -// The nanoseconds field of the output is always less than 1000000000. -// -// [POSIX's Seconds Since the Epoch]: https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_xbd_chap04.html#tag_21_04_16 -// [Unix Time]: https://en.wikipedia.org/wiki/Unix_time -extern void wasi_clocks_0_2_0_rc_2023_10_18_wall_clock_now(wasi_clocks_0_2_0_rc_2023_10_18_wall_clock_datetime_t *ret); -// Query the resolution of the clock. -// -// The nanoseconds field of the output is always less than 1000000000. -extern void wasi_clocks_0_2_0_rc_2023_10_18_wall_clock_resolution(wasi_clocks_0_2_0_rc_2023_10_18_wall_clock_datetime_t *ret); - -// Imported Functions from `wasi:io/poll@0.2.0-rc-2023-10-18` -// Poll for completion on a set of pollables. -// -// This function takes a list of pollables, which identify I/O sources of -// interest, and waits until one or more of the events is ready for I/O. -// -// The result `list` contains one or more indices of handles in the -// argument list that is ready for I/O. -// -// If the list contains more elements than can be indexed with a `u32` -// value, this function traps. -// -// A timeout can be implemented by adding a pollable from the -// wasi-clocks API to the list. -// -// This function does not return a `result`; polling in itself does not -// do any I/O so it doesn't fail. If any of the I/O sources identified by -// the pollables has an error, it is indicated by marking the source as -// being reaedy for I/O. -extern void wasi_io_0_2_0_rc_2023_10_18_poll_poll_list(wasi_io_0_2_0_rc_2023_10_18_poll_list_borrow_pollable_t *in, bindings_list_u32_t *ret); -// Poll for completion on a single pollable. -// -// This function is similar to `poll-list`, but operates on only a single -// pollable. When it returns, the handle is ready for I/O. -extern void wasi_io_0_2_0_rc_2023_10_18_poll_poll_one(wasi_io_0_2_0_rc_2023_10_18_poll_borrow_pollable_t in); - -// Imported Functions from `wasi:clocks/monotonic-clock@0.2.0-rc-2023-10-18` -// Read the current value of the clock. -// -// The clock is monotonic, therefore calling this function repeatedly will -// produce a sequence of non-decreasing values. -extern wasi_clocks_0_2_0_rc_2023_10_18_monotonic_clock_instant_t wasi_clocks_0_2_0_rc_2023_10_18_monotonic_clock_now(void); -// Query the resolution of the clock. -extern wasi_clocks_0_2_0_rc_2023_10_18_monotonic_clock_instant_t wasi_clocks_0_2_0_rc_2023_10_18_monotonic_clock_resolution(void); -// Create a `pollable` which will resolve once the specified time has been -// reached. -extern wasi_clocks_0_2_0_rc_2023_10_18_monotonic_clock_own_pollable_t wasi_clocks_0_2_0_rc_2023_10_18_monotonic_clock_subscribe(wasi_clocks_0_2_0_rc_2023_10_18_monotonic_clock_instant_t when, bool absolute); - -// Imported Functions from `wasi:clocks/timezone@0.2.0-rc-2023-10-18` -// Return information needed to display the given `datetime`. This includes -// the UTC offset, the time zone name, and a flag indicating whether -// daylight saving time is active. -// -// If the timezone cannot be determined for the given `datetime`, return a -// `timezone-display` for `UTC` with a `utc-offset` of 0 and no daylight -// saving time. -extern void wasi_clocks_0_2_0_rc_2023_10_18_timezone_display(wasi_clocks_0_2_0_rc_2023_10_18_timezone_datetime_t *when, wasi_clocks_0_2_0_rc_2023_10_18_timezone_timezone_display_t *ret); -// The same as `display`, but only return the UTC offset. -extern int32_t wasi_clocks_0_2_0_rc_2023_10_18_timezone_utc_offset(wasi_clocks_0_2_0_rc_2023_10_18_timezone_datetime_t *when); - -// Imported Functions from `wasi:io/streams@0.2.0-rc-2023-10-18` -// Returns a string that's suitable to assist humans in debugging this -// error. -// -// The returned string will change across platforms and hosts which -// means that parsing it, for example, would be a -// platform-compatibility hazard. -extern void wasi_io_0_2_0_rc_2023_10_18_streams_method_error_to_debug_string(wasi_io_0_2_0_rc_2023_10_18_streams_borrow_error_t self, bindings_string_t *ret); -// Perform a non-blocking read from the stream. -// -// This function returns a list of bytes containing the data that was -// read, along with a `stream-status` which, indicates whether further -// reads are expected to produce data. The returned list will contain up to -// `len` bytes; it may return fewer than requested, but not more. An -// empty list and `stream-status:open` indicates no more data is -// available at this time, and that the pollable given by `subscribe` -// will be ready when more data is available. -// -// Once a stream has reached the end, subsequent calls to `read` or -// `skip` will always report `stream-status:ended` rather than producing more -// data. -// -// When the caller gives a `len` of 0, it represents a request to read 0 -// bytes. This read should always succeed and return an empty list and -// the current `stream-status`. -// -// The `len` parameter is a `u64`, which could represent a list of u8 which -// is not possible to allocate in wasm32, or not desirable to allocate as -// as a return value by the callee. The callee may return a list of bytes -// less than `len` in size while more bytes are available for reading. -extern bool wasi_io_0_2_0_rc_2023_10_18_streams_method_input_stream_read(wasi_io_0_2_0_rc_2023_10_18_streams_borrow_input_stream_t self, uint64_t len, bindings_list_u8_t *ret, wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t *err); -// Read bytes from a stream, after blocking until at least one byte can -// be read. Except for blocking, identical to `read`. -extern bool wasi_io_0_2_0_rc_2023_10_18_streams_method_input_stream_blocking_read(wasi_io_0_2_0_rc_2023_10_18_streams_borrow_input_stream_t self, uint64_t len, bindings_list_u8_t *ret, wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t *err); -// Skip bytes from a stream. -// -// This is similar to the `read` function, but avoids copying the -// bytes into the instance. -// -// Once a stream has reached the end, subsequent calls to read or -// `skip` will always report end-of-stream rather than producing more -// data. -// -// This function returns the number of bytes skipped, along with a -// `stream-status` indicating whether the end of the stream was -// reached. The returned value will be at most `len`; it may be less. -extern bool wasi_io_0_2_0_rc_2023_10_18_streams_method_input_stream_skip(wasi_io_0_2_0_rc_2023_10_18_streams_borrow_input_stream_t self, uint64_t len, uint64_t *ret, wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t *err); -// Skip bytes from a stream, after blocking until at least one byte -// can be skipped. Except for blocking behavior, identical to `skip`. -extern bool wasi_io_0_2_0_rc_2023_10_18_streams_method_input_stream_blocking_skip(wasi_io_0_2_0_rc_2023_10_18_streams_borrow_input_stream_t self, uint64_t len, uint64_t *ret, wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t *err); -// Create a `pollable` which will resolve once either the specified stream -// has bytes available to read or the other end of the stream has been -// closed. -// The created `pollable` is a child resource of the `input-stream`. -// Implementations may trap if the `input-stream` is dropped before -// all derived `pollable`s created with this function are dropped. -extern wasi_io_0_2_0_rc_2023_10_18_streams_own_pollable_t wasi_io_0_2_0_rc_2023_10_18_streams_method_input_stream_subscribe(wasi_io_0_2_0_rc_2023_10_18_streams_borrow_input_stream_t self); -// Check readiness for writing. This function never blocks. -// -// Returns the number of bytes permitted for the next call to `write`, -// or an error. Calling `write` with more bytes than this function has -// permitted will trap. -// -// When this function returns 0 bytes, the `subscribe` pollable will -// become ready when this function will report at least 1 byte, or an -// error. -extern bool wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_check_write(wasi_io_0_2_0_rc_2023_10_18_streams_borrow_output_stream_t self, uint64_t *ret, wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t *err); -// Perform a write. This function never blocks. -// -// Precondition: check-write gave permit of Ok(n) and contents has a -// length of less than or equal to n. Otherwise, this function will trap. -// -// returns Err(closed) without writing if the stream has closed since -// the last call to check-write provided a permit. -extern bool wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_write(wasi_io_0_2_0_rc_2023_10_18_streams_borrow_output_stream_t self, bindings_list_u8_t *contents, wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t *err); -// Perform a write of up to 4096 bytes, and then flush the stream. Block -// until all of these operations are complete, or an error occurs. -// -// This is a convenience wrapper around the use of `check-write`, -// `subscribe`, `write`, and `flush`, and is implemented with the -// following pseudo-code: -// -// ```text -// let pollable = this.subscribe(); -// while !contents.is_empty() { - // // Wait for the stream to become writable - // poll-one(pollable); - // let Ok(n) = this.check-write(); // eliding error handling - // let len = min(n, contents.len()); - // let (chunk, rest) = contents.split_at(len); - // this.write(chunk ); // eliding error handling - // contents = rest; - // } - // this.flush(); - // // Wait for completion of `flush` - // poll-one(pollable); - // // Check for any errors that arose during `flush` - // let _ = this.check-write(); // eliding error handling - // ``` - extern bool wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_blocking_write_and_flush(wasi_io_0_2_0_rc_2023_10_18_streams_borrow_output_stream_t self, bindings_list_u8_t *contents, wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t *err); - // Request to flush buffered output. This function never blocks. - // - // This tells the output-stream that the caller intends any buffered - // output to be flushed. the output which is expected to be flushed - // is all that has been passed to `write` prior to this call. - // - // Upon calling this function, the `output-stream` will not accept any - // writes (`check-write` will return `ok(0)`) until the flush has - // completed. The `subscribe` pollable will become ready when the - // flush has completed and the stream can accept more writes. - extern bool wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_flush(wasi_io_0_2_0_rc_2023_10_18_streams_borrow_output_stream_t self, wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t *err); - // Request to flush buffered output, and block until flush completes - // and stream is ready for writing again. - extern bool wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_blocking_flush(wasi_io_0_2_0_rc_2023_10_18_streams_borrow_output_stream_t self, wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t *err); - // Create a `pollable` which will resolve once the output-stream - // is ready for more writing, or an error has occured. When this - // pollable is ready, `check-write` will return `ok(n)` with n>0, or an - // error. - // - // If the stream is closed, this pollable is always ready immediately. - // - // The created `pollable` is a child resource of the `output-stream`. - // Implementations may trap if the `output-stream` is dropped before - // all derived `pollable`s created with this function are dropped. - extern wasi_io_0_2_0_rc_2023_10_18_streams_own_pollable_t wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_subscribe(wasi_io_0_2_0_rc_2023_10_18_streams_borrow_output_stream_t self); - // Write zeroes to a stream. - // - // this should be used precisely like `write` with the exact same - // preconditions (must use check-write first), but instead of - // passing a list of bytes, you simply pass the number of zero-bytes - // that should be written. - extern bool wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_write_zeroes(wasi_io_0_2_0_rc_2023_10_18_streams_borrow_output_stream_t self, uint64_t len, wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t *err); - // Perform a write of up to 4096 zeroes, and then flush the stream. - // Block until all of these operations are complete, or an error - // occurs. - // - // This is a convenience wrapper around the use of `check-write`, - // `subscribe`, `write-zeroes`, and `flush`, and is implemented with - // the following pseudo-code: - // - // ```text - // let pollable = this.subscribe(); - // while num_zeroes != 0 { - // // Wait for the stream to become writable - // poll-one(pollable); - // let Ok(n) = this.check-write(); // eliding error handling - // let len = min(n, num_zeroes); - // this.write-zeroes(len); // eliding error handling - // num_zeroes -= len; - // } - // this.flush(); - // // Wait for completion of `flush` - // poll-one(pollable); - // // Check for any errors that arose during `flush` - // let _ = this.check-write(); // eliding error handling - // ``` - extern bool wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_blocking_write_zeroes_and_flush(wasi_io_0_2_0_rc_2023_10_18_streams_borrow_output_stream_t self, uint64_t len, wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t *err); - // Read from one stream and write to another. - // - // This function returns the number of bytes transferred; it may be less - // than `len`. - // - // Unlike other I/O functions, this function blocks until all the data - // read from the input stream has been written to the output stream. - extern bool wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_splice(wasi_io_0_2_0_rc_2023_10_18_streams_borrow_output_stream_t self, wasi_io_0_2_0_rc_2023_10_18_streams_own_input_stream_t src, uint64_t len, uint64_t *ret, wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t *err); - // Read from one stream and write to another, with blocking. - // - // This is similar to `splice`, except that it blocks until at least - // one byte can be read. - extern bool wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_blocking_splice(wasi_io_0_2_0_rc_2023_10_18_streams_borrow_output_stream_t self, wasi_io_0_2_0_rc_2023_10_18_streams_own_input_stream_t src, uint64_t len, uint64_t *ret, wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t *err); - // Forward the entire contents of an input stream to an output stream. - // - // This function repeatedly reads from the input stream and writes - // the data to the output stream, until the end of the input stream - // is reached, or an error is encountered. - // - // Unlike other I/O functions, this function blocks until the end - // of the input stream is seen and all the data has been written to - // the output stream. - // - // This function returns the number of bytes transferred, and the status of - // the output stream. - extern bool wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_forward(wasi_io_0_2_0_rc_2023_10_18_streams_borrow_output_stream_t self, wasi_io_0_2_0_rc_2023_10_18_streams_own_input_stream_t src, uint64_t *ret, wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t *err); - - // Imported Functions from `wasi:filesystem/types@0.2.0-rc-2023-10-18` - // Return a stream for reading from a file, if available. - // - // May fail with an error-code describing why the file cannot be read. - // - // Multiple read, write, and append streams may be active on the same open - // file and they do not interfere with each other. - // - // Note: This allows using `read-stream`, which is similar to `read` in POSIX. - extern bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_read_via_stream(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_filesize_t offset, wasi_filesystem_0_2_0_rc_2023_10_18_types_own_input_stream_t *ret, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err); - // Return a stream for writing to a file, if available. - // - // May fail with an error-code describing why the file cannot be written. - // - // Note: This allows using `write-stream`, which is similar to `write` in - // POSIX. - extern bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_write_via_stream(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_filesize_t offset, wasi_filesystem_0_2_0_rc_2023_10_18_types_own_output_stream_t *ret, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err); - // Return a stream for appending to a file, if available. - // - // May fail with an error-code describing why the file cannot be appended. - // - // Note: This allows using `write-stream`, which is similar to `write` with - // `O_APPEND` in in POSIX. - extern bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_append_via_stream(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_own_output_stream_t *ret, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err); - // Provide file advisory information on a descriptor. - // - // This is similar to `posix_fadvise` in POSIX. - extern bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_advise(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_filesize_t offset, wasi_filesystem_0_2_0_rc_2023_10_18_types_filesize_t length, wasi_filesystem_0_2_0_rc_2023_10_18_types_advice_t advice, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err); - // Synchronize the data of a file to disk. - // - // This function succeeds with no effect if the file descriptor is not - // opened for writing. - // - // Note: This is similar to `fdatasync` in POSIX. - extern bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_sync_data(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err); - // Get flags associated with a descriptor. - // - // Note: This returns similar flags to `fcntl(fd, F_GETFL)` in POSIX. - // - // Note: This returns the value that was the `fs_flags` value returned - // from `fdstat_get` in earlier versions of WASI. - extern bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_get_flags(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_descriptor_flags_t *ret, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err); - // Get the dynamic type of a descriptor. - // - // Note: This returns the same value as the `type` field of the `fd-stat` - // returned by `stat`, `stat-at` and similar. - // - // Note: This returns similar flags to the `st_mode & S_IFMT` value provided - // by `fstat` in POSIX. - // - // Note: This returns the value that was the `fs_filetype` value returned - // from `fdstat_get` in earlier versions of WASI. - extern bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_get_type(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_descriptor_type_t *ret, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err); - // Adjust the size of an open file. If this increases the file's size, the - // extra bytes are filled with zeros. - // - // Note: This was called `fd_filestat_set_size` in earlier versions of WASI. - extern bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_set_size(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_filesize_t size, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err); - // Adjust the timestamps of an open file or directory. - // - // Note: This is similar to `futimens` in POSIX. - // - // Note: This was called `fd_filestat_set_times` in earlier versions of WASI. - extern bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_set_times(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_new_timestamp_t *data_access_timestamp, wasi_filesystem_0_2_0_rc_2023_10_18_types_new_timestamp_t *data_modification_timestamp, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err); - // Read from a descriptor, without using and updating the descriptor's offset. - // - // This function returns a list of bytes containing the data that was - // read, along with a bool which, when true, indicates that the end of the - // file was reached. The returned list will contain up to `length` bytes; it - // may return fewer than requested, if the end of the file is reached or - // if the I/O operation is interrupted. - // - // In the future, this may change to return a `stream`. - // - // Note: This is similar to `pread` in POSIX. - extern bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_read(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_filesize_t length, wasi_filesystem_0_2_0_rc_2023_10_18_types_filesize_t offset, bindings_tuple2_list_u8_bool_t *ret, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err); - // Write to a descriptor, without using and updating the descriptor's offset. - // - // It is valid to write past the end of a file; the file is extended to the - // extent of the write, with bytes between the previous end and the start of - // the write set to zero. - // - // In the future, this may change to take a `stream`. - // - // Note: This is similar to `pwrite` in POSIX. - extern bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_write(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, bindings_list_u8_t *buffer, wasi_filesystem_0_2_0_rc_2023_10_18_types_filesize_t offset, wasi_filesystem_0_2_0_rc_2023_10_18_types_filesize_t *ret, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err); - // Read directory entries from a directory. - // - // On filesystems where directories contain entries referring to themselves - // and their parents, often named `.` and `..` respectively, these entries - // are omitted. - // - // This always returns a new stream which starts at the beginning of the - // directory. Multiple streams may be active on the same directory, and they - // do not interfere with each other. - extern bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_read_directory(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_own_directory_entry_stream_t *ret, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err); - // Synchronize the data and metadata of a file to disk. - // - // This function succeeds with no effect if the file descriptor is not - // opened for writing. - // - // Note: This is similar to `fsync` in POSIX. - extern bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_sync(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err); - // Create a directory. - // - // Note: This is similar to `mkdirat` in POSIX. - extern bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_create_directory_at(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, bindings_string_t *path, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err); - // Return the attributes of an open file or directory. - // - // Note: This is similar to `fstat` in POSIX, except that it does not return - // device and inode information. For testing whether two descriptors refer to - // the same underlying filesystem object, use `is-same-object`. To obtain - // additional data that can be used do determine whether a file has been - // modified, use `metadata-hash`. - // - // Note: This was called `fd_filestat_get` in earlier versions of WASI. - extern bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_stat(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_descriptor_stat_t *ret, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err); - // Return the attributes of a file or directory. - // - // Note: This is similar to `fstatat` in POSIX, except that it does not - // return device and inode information. See the `stat` description for a - // discussion of alternatives. - // - // Note: This was called `path_filestat_get` in earlier versions of WASI. - extern bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_stat_at(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_path_flags_t path_flags, bindings_string_t *path, wasi_filesystem_0_2_0_rc_2023_10_18_types_descriptor_stat_t *ret, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err); - // Adjust the timestamps of a file or directory. - // - // Note: This is similar to `utimensat` in POSIX. - // - // Note: This was called `path_filestat_set_times` in earlier versions of - // WASI. - extern bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_set_times_at(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_path_flags_t path_flags, bindings_string_t *path, wasi_filesystem_0_2_0_rc_2023_10_18_types_new_timestamp_t *data_access_timestamp, wasi_filesystem_0_2_0_rc_2023_10_18_types_new_timestamp_t *data_modification_timestamp, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err); - // Create a hard link. - // - // Note: This is similar to `linkat` in POSIX. - extern bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_link_at(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_path_flags_t old_path_flags, bindings_string_t *old_path, wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t new_descriptor, bindings_string_t *new_path, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err); - // Open a file or directory. - // - // The returned descriptor is not guaranteed to be the lowest-numbered - // descriptor not currently open/ it is randomized to prevent applications - // from depending on making assumptions about indexes, since this is - // error-prone in multi-threaded contexts. The returned descriptor is - // guaranteed to be less than 2**31. - // - // If `flags` contains `descriptor-flags::mutate-directory`, and the base - // descriptor doesn't have `descriptor-flags::mutate-directory` set, - // `open-at` fails with `error-code::read-only`. - // - // If `flags` contains `write` or `mutate-directory`, or `open-flags` - // contains `truncate` or `create`, and the base descriptor doesn't have - // `descriptor-flags::mutate-directory` set, `open-at` fails with - // `error-code::read-only`. - // - // Note: This is similar to `openat` in POSIX. - extern bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_open_at(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_path_flags_t path_flags, bindings_string_t *path, wasi_filesystem_0_2_0_rc_2023_10_18_types_open_flags_t open_flags, wasi_filesystem_0_2_0_rc_2023_10_18_types_descriptor_flags_t flags, wasi_filesystem_0_2_0_rc_2023_10_18_types_modes_t modes, wasi_filesystem_0_2_0_rc_2023_10_18_types_own_descriptor_t *ret, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err); - // Read the contents of a symbolic link. - // - // If the contents contain an absolute or rooted path in the underlying - // filesystem, this function fails with `error-code::not-permitted`. - // - // Note: This is similar to `readlinkat` in POSIX. - extern bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_readlink_at(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, bindings_string_t *path, bindings_string_t *ret, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err); - // Remove a directory. - // - // Return `error-code::not-empty` if the directory is not empty. - // - // Note: This is similar to `unlinkat(fd, path, AT_REMOVEDIR)` in POSIX. - extern bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_remove_directory_at(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, bindings_string_t *path, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err); - // Rename a filesystem object. - // - // Note: This is similar to `renameat` in POSIX. - extern bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_rename_at(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, bindings_string_t *old_path, wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t new_descriptor, bindings_string_t *new_path, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err); - // Create a symbolic link (also known as a "symlink"). - // - // If `old-path` starts with `/`, the function fails with - // `error-code::not-permitted`. - // - // Note: This is similar to `symlinkat` in POSIX. - extern bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_symlink_at(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, bindings_string_t *old_path, bindings_string_t *new_path, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err); - // Check accessibility of a filesystem path. - // - // Check whether the given filesystem path names an object which is - // readable, writable, or executable, or whether it exists. - // - // This does not a guarantee that subsequent accesses will succeed, as - // filesystem permissions may be modified asynchronously by external - // entities. - // - // Note: This is similar to `faccessat` with the `AT_EACCESS` flag in POSIX. - extern bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_access_at(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_path_flags_t path_flags, bindings_string_t *path, wasi_filesystem_0_2_0_rc_2023_10_18_types_access_type_t *type, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err); - // Unlink a filesystem object that is not a directory. - // - // Return `error-code::is-directory` if the path refers to a directory. - // Note: This is similar to `unlinkat(fd, path, 0)` in POSIX. - extern bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_unlink_file_at(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, bindings_string_t *path, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err); - // Change the permissions of a filesystem object that is not a directory. - // - // Note that the ultimate meanings of these permissions is - // filesystem-specific. - // - // Note: This is similar to `fchmodat` in POSIX. - extern bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_change_file_permissions_at(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_path_flags_t path_flags, bindings_string_t *path, wasi_filesystem_0_2_0_rc_2023_10_18_types_modes_t modes, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err); - // Change the permissions of a directory. - // - // Note that the ultimate meanings of these permissions is - // filesystem-specific. - // - // Unlike in POSIX, the `executable` flag is not reinterpreted as a "search" - // flag. `read` on a directory implies readability and searchability, and - // `execute` is not valid for directories. - // - // Note: This is similar to `fchmodat` in POSIX. - extern bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_change_directory_permissions_at(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_path_flags_t path_flags, bindings_string_t *path, wasi_filesystem_0_2_0_rc_2023_10_18_types_modes_t modes, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err); - // Request a shared advisory lock for an open file. - // - // This requests a *shared* lock; more than one shared lock can be held for - // a file at the same time. - // - // If the open file has an exclusive lock, this function downgrades the lock - // to a shared lock. If it has a shared lock, this function has no effect. - // - // This requests an *advisory* lock, meaning that the file could be accessed - // by other programs that don't hold the lock. - // - // It is unspecified how shared locks interact with locks acquired by - // non-WASI programs. - // - // This function blocks until the lock can be acquired. - // - // Not all filesystems support locking; on filesystems which don't support - // locking, this function returns `error-code::unsupported`. - // - // Note: This is similar to `flock(fd, LOCK_SH)` in Unix. - extern bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_lock_shared(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err); - // Request an exclusive advisory lock for an open file. - // - // This requests an *exclusive* lock; no other locks may be held for the - // file while an exclusive lock is held. - // - // If the open file has a shared lock and there are no exclusive locks held - // for the file, this function upgrades the lock to an exclusive lock. If the - // open file already has an exclusive lock, this function has no effect. - // - // This requests an *advisory* lock, meaning that the file could be accessed - // by other programs that don't hold the lock. - // - // It is unspecified whether this function succeeds if the file descriptor - // is not opened for writing. It is unspecified how exclusive locks interact - // with locks acquired by non-WASI programs. - // - // This function blocks until the lock can be acquired. - // - // Not all filesystems support locking; on filesystems which don't support - // locking, this function returns `error-code::unsupported`. - // - // Note: This is similar to `flock(fd, LOCK_EX)` in Unix. - extern bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_lock_exclusive(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err); - // Request a shared advisory lock for an open file. - // - // This requests a *shared* lock; more than one shared lock can be held for - // a file at the same time. - // - // If the open file has an exclusive lock, this function downgrades the lock - // to a shared lock. If it has a shared lock, this function has no effect. - // - // This requests an *advisory* lock, meaning that the file could be accessed - // by other programs that don't hold the lock. - // - // It is unspecified how shared locks interact with locks acquired by - // non-WASI programs. - // - // This function returns `error-code::would-block` if the lock cannot be - // acquired. - // - // Not all filesystems support locking; on filesystems which don't support - // locking, this function returns `error-code::unsupported`. - // - // Note: This is similar to `flock(fd, LOCK_SH | LOCK_NB)` in Unix. - extern bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_try_lock_shared(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err); - // Request an exclusive advisory lock for an open file. - // - // This requests an *exclusive* lock; no other locks may be held for the - // file while an exclusive lock is held. - // - // If the open file has a shared lock and there are no exclusive locks held - // for the file, this function upgrades the lock to an exclusive lock. If the - // open file already has an exclusive lock, this function has no effect. - // - // This requests an *advisory* lock, meaning that the file could be accessed - // by other programs that don't hold the lock. - // - // It is unspecified whether this function succeeds if the file descriptor - // is not opened for writing. It is unspecified how exclusive locks interact - // with locks acquired by non-WASI programs. - // - // This function returns `error-code::would-block` if the lock cannot be - // acquired. - // - // Not all filesystems support locking; on filesystems which don't support - // locking, this function returns `error-code::unsupported`. - // - // Note: This is similar to `flock(fd, LOCK_EX | LOCK_NB)` in Unix. - extern bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_try_lock_exclusive(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err); - // Release a shared or exclusive lock on an open file. - // - // Note: This is similar to `flock(fd, LOCK_UN)` in Unix. - extern bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_unlock(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err); - // Test whether two descriptors refer to the same filesystem object. - // - // In POSIX, this corresponds to testing whether the two descriptors have the - // same device (`st_dev`) and inode (`st_ino` or `d_ino`) numbers. - // wasi-filesystem does not expose device and inode numbers, so this function - // may be used instead. - extern bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_is_same_object(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t other); - // Return a hash of the metadata associated with a filesystem object referred - // to by a descriptor. - // - // This returns a hash of the last-modification timestamp and file size, and - // may also include the inode number, device number, birth timestamp, and - // other metadata fields that may change when the file is modified or - // replaced. It may also include a secret value chosen by the - // implementation and not otherwise exposed. - // - // Implementations are encourated to provide the following properties: - // - // - If the file is not modified or replaced, the computed hash value should - // usually not change. - // - If the object is modified or replaced, the computed hash value should - // usually change. - // - The inputs to the hash should not be easily computable from the - // computed hash. - // - // However, none of these is required. - extern bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_metadata_hash(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_metadata_hash_value_t *ret, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err); - // Return a hash of the metadata associated with a filesystem object referred - // to by a directory descriptor and a relative path. - // - // This performs the same hash computation as `metadata-hash`. - extern bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_descriptor_metadata_hash_at(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_path_flags_t path_flags, bindings_string_t *path, wasi_filesystem_0_2_0_rc_2023_10_18_types_metadata_hash_value_t *ret, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err); - // Read a single directory entry from a `directory-entry-stream`. - extern bool wasi_filesystem_0_2_0_rc_2023_10_18_types_method_directory_entry_stream_read_directory_entry(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_directory_entry_stream_t self, wasi_filesystem_0_2_0_rc_2023_10_18_types_option_directory_entry_t *ret, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *err); - // Attempts to extract a filesystem-related `error-code` from the stream - // `error` provided. - // - // Stream operations which return `stream-error::last-operation-failed` - // have a payload with more information about the operation that failed. - // This payload can be passed through to this function to see if there's - // filesystem-related information about the error to return. - // - // Note that this function is fallible because not all stream-related - // errors are filesystem-related errors. - extern bool wasi_filesystem_0_2_0_rc_2023_10_18_types_filesystem_error_code(wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_error_t err_, wasi_filesystem_0_2_0_rc_2023_10_18_types_error_code_t *ret); - - // Imported Functions from `wasi:filesystem/preopens@0.2.0-rc-2023-10-18` - // Return the set of preopened directories, and their path. - extern void wasi_filesystem_0_2_0_rc_2023_10_18_preopens_get_directories(wasi_filesystem_0_2_0_rc_2023_10_18_preopens_list_tuple2_own_descriptor_string_t *ret); - - // Imported Functions from `wasi:sockets/instance-network@0.2.0-rc-2023-10-18` - // Get a handle to the default network. - extern wasi_sockets_0_2_0_rc_2023_10_18_instance_network_own_network_t wasi_sockets_0_2_0_rc_2023_10_18_instance_network_instance_network(void); - - // Imported Functions from `wasi:sockets/ip-name-lookup@0.2.0-rc-2023-10-18` - // Resolve an internet host name to a list of IP addresses. - // - // See the wasi-socket proposal README.md for a comparison with getaddrinfo. - // - // # Parameters - // - `name`: The name to look up. IP addresses are not allowed. Unicode domain names are automatically converted - // to ASCII using IDNA encoding. - // - `address-family`: If provided, limit the results to addresses of this specific address family. - // - `include-unavailable`: When set to true, this function will also return addresses of which the runtime - // thinks (or knows) can't be connected to at the moment. For example, this will return IPv6 addresses on - // systems without an active IPv6 interface. Notes: - // - Even when no public IPv6 interfaces are present or active, names like "localhost" can still resolve to an IPv6 address. - // - Whatever is "available" or "unavailable" is volatile and can change everytime a network cable is unplugged. - // - // This function never blocks. It either immediately fails or immediately returns successfully with a `resolve-address-stream` - // that can be used to (asynchronously) fetch the results. - // - // At the moment, the stream never completes successfully with 0 items. Ie. the first call - // to `resolve-next-address` never returns `ok(none)`. This may change in the future. - // - // # Typical errors - // - `invalid-argument`: `name` is a syntactically invalid domain name. - // - `invalid-argument`: `name` is an IP address. - // - `not-supported`: The specified `address-family` is not supported. (EAI_FAMILY) - // - // # References: - // - - // - - // - - // - - extern bool wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_resolve_addresses(wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_borrow_network_t network, bindings_string_t *name, wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_ip_address_family_t *maybe_address_family, bool include_unavailable, wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_own_resolve_address_stream_t *ret, wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_error_code_t *err); - // Returns the next address from the resolver. - // - // This function should be called multiple times. On each call, it will - // return the next address in connection order preference. If all - // addresses have been exhausted, this function returns `none`. - // - // This function never returns IPv4-mapped IPv6 addresses. - // - // # Typical errors - // - `name-unresolvable`: Name does not exist or has no suitable associated IP addresses. (EAI_NONAME, EAI_NODATA, EAI_ADDRFAMILY) - // - `temporary-resolver-failure`: A temporary failure in name resolution occurred. (EAI_AGAIN) - // - `permanent-resolver-failure`: A permanent failure in name resolution occurred. (EAI_FAIL) - // - `would-block`: A result is not available yet. (EWOULDBLOCK, EAGAIN) - extern bool wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_method_resolve_address_stream_resolve_next_address(wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_borrow_resolve_address_stream_t self, wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_option_ip_address_t *ret, wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_error_code_t *err); - // Create a `pollable` which will resolve once the stream is ready for I/O. - // - // Note: this function is here for WASI Preview2 only. - // It's planned to be removed when `future` is natively supported in Preview3. - extern wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_own_pollable_t wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_method_resolve_address_stream_subscribe(wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_borrow_resolve_address_stream_t self); - - // Imported Functions from `wasi:sockets/tcp@0.2.0-rc-2023-10-18` - // Bind the socket to a specific network on the provided IP address and port. - // - // If the IP address is zero (`0.0.0.0` in IPv4, `::` in IPv6), it is left to the implementation to decide which - // network interface(s) to bind to. - // If the TCP/UDP port is zero, the socket will be bound to a random free port. - // - // When a socket is not explicitly bound, the first invocation to a listen or connect operation will - // implicitly bind the socket. - // - // Unlike in POSIX, this function is async. This enables interactive WASI hosts to inject permission prompts. - // - // # Typical `start` errors - // - `invalid-argument`: The `local-address` has the wrong address family. (EAFNOSUPPORT, EFAULT on Windows) - // - `invalid-argument`: `local-address` is not a unicast address. (EINVAL) - // - `invalid-argument`: `local-address` is an IPv4-mapped IPv6 address, but the socket has `ipv6-only` enabled. (EINVAL) - // - `invalid-state`: The socket is already bound. (EINVAL) - // - // # Typical `finish` errors - // - `address-in-use`: No ephemeral ports available. (EADDRINUSE, ENOBUFS on Windows) - // - `address-in-use`: Address is already in use. (EADDRINUSE) - // - `address-not-bindable`: `local-address` is not an address that the `network` can bind to. (EADDRNOTAVAIL) - // - `not-in-progress`: A `bind` operation is not in progress. - // - `would-block`: Can't finish the operation, it is still in progress. (EWOULDBLOCK, EAGAIN) - // - // # References - // - - // - - // - - // - - extern bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_start_bind(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_network_t network, wasi_sockets_0_2_0_rc_2023_10_18_tcp_ip_socket_address_t *local_address, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err); - extern bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_finish_bind(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err); - // Connect to a remote endpoint. - // - // On success: - // - the socket is transitioned into the Connection state - // - a pair of streams is returned that can be used to read & write to the connection - // - // POSIX mentions: - // > If connect() fails, the state of the socket is unspecified. Conforming applications should - // > close the file descriptor and create a new socket before attempting to reconnect. - // - // WASI prescribes the following behavior: - // - If `connect` fails because an input/state validation error, the socket should remain usable. - // - If a connection was actually attempted but failed, the socket should become unusable for further network communication. - // Besides `drop`, any method after such a failure may return an error. - // - // # Typical `start` errors - // - `invalid-argument`: The `remote-address` has the wrong address family. (EAFNOSUPPORT) - // - `invalid-argument`: `remote-address` is not a unicast address. (EINVAL, ENETUNREACH on Linux, EAFNOSUPPORT on MacOS) - // - `invalid-argument`: `remote-address` is an IPv4-mapped IPv6 address, but the socket has `ipv6-only` enabled. (EINVAL, EADDRNOTAVAIL on Illumos) - // - `invalid-argument`: `remote-address` is a non-IPv4-mapped IPv6 address, but the socket was bound to a specific IPv4-mapped IPv6 address. (or vice versa) - // - `invalid-argument`: The IP address in `remote-address` is set to INADDR_ANY (`0.0.0.0` / `::`). (EADDRNOTAVAIL on Windows) - // - `invalid-argument`: The port in `remote-address` is set to 0. (EADDRNOTAVAIL on Windows) - // - `invalid-argument`: The socket is already attached to a different network. The `network` passed to `connect` must be identical to the one passed to `bind`. - // - `invalid-state`: The socket is already in the Connection state. (EISCONN) - // - `invalid-state`: The socket is already in the Listener state. (EOPNOTSUPP, EINVAL on Windows) - // - // # Typical `finish` errors - // - `timeout`: Connection timed out. (ETIMEDOUT) - // - `connection-refused`: The connection was forcefully rejected. (ECONNREFUSED) - // - `connection-reset`: The connection was reset. (ECONNRESET) - // - `connection-aborted`: The connection was aborted. (ECONNABORTED) - // - `remote-unreachable`: The remote address is not reachable. (EHOSTUNREACH, EHOSTDOWN, ENETUNREACH, ENETDOWN) - // - `address-in-use`: Tried to perform an implicit bind, but there were no ephemeral ports available. (EADDRINUSE, EADDRNOTAVAIL on Linux, EAGAIN on BSD) - // - `not-in-progress`: A `connect` operation is not in progress. - // - `would-block`: Can't finish the operation, it is still in progress. (EWOULDBLOCK, EAGAIN) - // - // # References - // - - // - - // - - // - - extern bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_start_connect(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_network_t network, wasi_sockets_0_2_0_rc_2023_10_18_tcp_ip_socket_address_t *remote_address, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err); - extern bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_finish_connect(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_10_18_tcp_tuple2_own_input_stream_own_output_stream_t *ret, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err); - // Start listening for new connections. - // - // Transitions the socket into the Listener state. - // - // Unlike POSIX: - // - this function is async. This enables interactive WASI hosts to inject permission prompts. - // - the socket must already be explicitly bound. - // - // # Typical `start` errors - // - `invalid-state`: The socket is not bound to any local address. (EDESTADDRREQ) - // - `invalid-state`: The socket is already in the Connection state. (EISCONN, EINVAL on BSD) - // - `invalid-state`: The socket is already in the Listener state. - // - // # Typical `finish` errors - // - `address-in-use`: Tried to perform an implicit bind, but there were no ephemeral ports available. (EADDRINUSE) - // - `not-in-progress`: A `listen` operation is not in progress. - // - `would-block`: Can't finish the operation, it is still in progress. (EWOULDBLOCK, EAGAIN) - // - // # References - // - - // - - // - - // - - extern bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_start_listen(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err); - extern bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_finish_listen(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err); - // Accept a new client socket. - // - // The returned socket is bound and in the Connection state. The following properties are inherited from the listener socket: - // - `address-family` - // - `ipv6-only` - // - `keep-alive` - // - `no-delay` - // - `unicast-hop-limit` - // - `receive-buffer-size` - // - `send-buffer-size` - // - // On success, this function returns the newly accepted client socket along with - // a pair of streams that can be used to read & write to the connection. - // - // # Typical errors - // - `invalid-state`: Socket is not in the Listener state. (EINVAL) - // - `would-block`: No pending connections at the moment. (EWOULDBLOCK, EAGAIN) - // - `connection-aborted`: An incoming connection was pending, but was terminated by the client before this listener could accept it. (ECONNABORTED) - // - `new-socket-limit`: The new socket resource could not be created because of a system limit. (EMFILE, ENFILE) - // - // # References - // - - // - - // - - // - - extern bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_accept(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_10_18_tcp_tuple3_own_tcp_socket_own_input_stream_own_output_stream_t *ret, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err); - // Get the bound local address. - // - // POSIX mentions: - // > If the socket has not been bound to a local name, the value - // > stored in the object pointed to by `address` is unspecified. - // - // WASI is stricter and requires `local-address` to return `invalid-state` when the socket hasn't been bound yet. - // - // # Typical errors - // - `invalid-state`: The socket is not bound to any local address. - // - // # References - // - - // - - // - - // - - extern bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_local_address(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_10_18_tcp_ip_socket_address_t *ret, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err); - // Get the remote address. - // - // # Typical errors - // - `invalid-state`: The socket is not connected to a remote address. (ENOTCONN) - // - // # References - // - - // - - // - - // - - extern bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_remote_address(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_10_18_tcp_ip_socket_address_t *ret, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err); - // Whether this is a IPv4 or IPv6 socket. - // - // Equivalent to the SO_DOMAIN socket option. - extern wasi_sockets_0_2_0_rc_2023_10_18_tcp_ip_address_family_t wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_address_family(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self); - // Whether IPv4 compatibility (dual-stack) mode is disabled or not. - // - // Equivalent to the IPV6_V6ONLY socket option. - // - // # Typical errors - // - `invalid-state`: (set) The socket is already bound. - // - `not-supported`: (get/set) `this` socket is an IPv4 socket. - // - `not-supported`: (set) Host does not support dual-stack sockets. (Implementations are not required to.) - extern bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_ipv6_only(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, bool *ret, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err); - extern bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_set_ipv6_only(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, bool value, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err); - // Hints the desired listen queue size. Implementations are free to ignore this. - // - // # Typical errors - // - `not-supported`: (set) The platform does not support changing the backlog size after the initial listen. - // - `invalid-state`: (set) The socket is already in the Connection state. - extern bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_set_listen_backlog_size(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, uint64_t value, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err); - // Equivalent to the SO_KEEPALIVE socket option. - extern bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_keep_alive(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, bool *ret, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err); - extern bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_set_keep_alive(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, bool value, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err); - // Equivalent to the TCP_NODELAY socket option. - // - // The default value is `false`. - extern bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_no_delay(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, bool *ret, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err); - extern bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_set_no_delay(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, bool value, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err); - // Equivalent to the IP_TTL & IPV6_UNICAST_HOPS socket options. - // - // # Typical errors - // - `invalid-argument`: (set) The TTL value must be 1 or higher. - // - `invalid-state`: (set) The socket is already in the Connection state. - // - `invalid-state`: (set) The socket is already in the Listener state. - extern bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_unicast_hop_limit(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, uint8_t *ret, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err); - extern bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_set_unicast_hop_limit(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, uint8_t value, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err); - // The kernel buffer space reserved for sends/receives on this socket. - // - // Note #1: an implementation may choose to cap or round the buffer size when setting the value. - // In other words, after setting a value, reading the same setting back may return a different value. - // - // Note #2: there is not necessarily a direct relationship between the kernel buffer size and the bytes of - // actual data to be sent/received by the application, because the kernel might also use the buffer space - // for internal metadata structures. - // - // Equivalent to the SO_RCVBUF and SO_SNDBUF socket options. - // - // # Typical errors - // - `invalid-state`: (set) The socket is already in the Connection state. - // - `invalid-state`: (set) The socket is already in the Listener state. - extern bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_receive_buffer_size(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, uint64_t *ret, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err); - extern bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_set_receive_buffer_size(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, uint64_t value, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err); - extern bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_send_buffer_size(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, uint64_t *ret, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err); - extern bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_set_send_buffer_size(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, uint64_t value, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err); - // Create a `pollable` which will resolve once the socket is ready for I/O. - // - // Note: this function is here for WASI Preview2 only. - // It's planned to be removed when `future` is natively supported in Preview3. - extern wasi_sockets_0_2_0_rc_2023_10_18_tcp_own_pollable_t wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_subscribe(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self); - // Initiate a graceful shutdown. - // - // - receive: the socket is not expecting to receive any more data from the peer. All subsequent read - // operations on the `input-stream` associated with this socket will return an End Of Stream indication. - // Any data still in the receive queue at time of calling `shutdown` will be discarded. - // - send: the socket is not expecting to send any more data to the peer. All subsequent write - // operations on the `output-stream` associated with this socket will return an error. - // - both: same effect as receive & send combined. - // - // The shutdown function does not close (drop) the socket. - // - // # Typical errors - // - `invalid-state`: The socket is not in the Connection state. (ENOTCONN) - // - // # References - // - - // - - // - - // - - extern bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_method_tcp_socket_shutdown(wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_10_18_tcp_shutdown_type_t shutdown_type, wasi_sockets_0_2_0_rc_2023_10_18_tcp_error_code_t *err); - - // Imported Functions from `wasi:sockets/tcp-create-socket@0.2.0-rc-2023-10-18` - // Create a new TCP socket. - // - // Similar to `socket(AF_INET or AF_INET6, SOCK_STREAM, IPPROTO_TCP)` in POSIX. - // - // This function does not require a network capability handle. This is considered to be safe because - // at time of creation, the socket is not bound to any `network` yet. Up to the moment `bind`/`listen`/`connect` - // is called, the socket is effectively an in-memory configuration object, unable to communicate with the outside world. - // - // All sockets are non-blocking. Use the wasi-poll interface to block on asynchronous operations. - // - // # Typical errors - // - `not-supported`: The specified `address-family` is not supported. (EAFNOSUPPORT) - // - `new-socket-limit`: The new socket resource could not be created because of a system limit. (EMFILE, ENFILE) - // - // # References - // - - // - - // - - // - - extern bool wasi_sockets_0_2_0_rc_2023_10_18_tcp_create_socket_create_tcp_socket(wasi_sockets_0_2_0_rc_2023_10_18_tcp_create_socket_ip_address_family_t address_family, wasi_sockets_0_2_0_rc_2023_10_18_tcp_create_socket_own_tcp_socket_t *ret, wasi_sockets_0_2_0_rc_2023_10_18_tcp_create_socket_error_code_t *err); - - // Imported Functions from `wasi:sockets/udp@0.2.0-rc-2023-10-18` - // Bind the socket to a specific network on the provided IP address and port. - // - // If the IP address is zero (`0.0.0.0` in IPv4, `::` in IPv6), it is left to the implementation to decide which - // network interface(s) to bind to. - // If the TCP/UDP port is zero, the socket will be bound to a random free port. - // - // When a socket is not explicitly bound, the first invocation to connect will implicitly bind the socket. - // - // Unlike in POSIX, this function is async. This enables interactive WASI hosts to inject permission prompts. - // - // # Typical `start` errors - // - `invalid-argument`: The `local-address` has the wrong address family. (EAFNOSUPPORT, EFAULT on Windows) - // - `invalid-state`: The socket is already bound. (EINVAL) - // - // # Typical `finish` errors - // - `address-in-use`: No ephemeral ports available. (EADDRINUSE, ENOBUFS on Windows) - // - `address-in-use`: Address is already in use. (EADDRINUSE) - // - `address-not-bindable`: `local-address` is not an address that the `network` can bind to. (EADDRNOTAVAIL) - // - `not-in-progress`: A `bind` operation is not in progress. - // - `would-block`: Can't finish the operation, it is still in progress. (EWOULDBLOCK, EAGAIN) - // - // # References - // - - // - - // - - // - - extern bool wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_start_bind(wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_udp_socket_t self, wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_network_t network, wasi_sockets_0_2_0_rc_2023_10_18_udp_ip_socket_address_t *local_address, wasi_sockets_0_2_0_rc_2023_10_18_udp_error_code_t *err); - extern bool wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_finish_bind(wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_udp_socket_t self, wasi_sockets_0_2_0_rc_2023_10_18_udp_error_code_t *err); - // Set the destination address. - // - // The local-address is updated based on the best network path to `remote-address`. - // - // When a destination address is set: - // - all receive operations will only return datagrams sent from the provided `remote-address`. - // - the `send` function can only be used to send to this destination. - // - // Note that this function does not generate any network traffic and the peer is not aware of this "connection". - // - // Unlike in POSIX, this function is async. This enables interactive WASI hosts to inject permission prompts. - // - // # Typical `start` errors - // - `invalid-argument`: The `remote-address` has the wrong address family. (EAFNOSUPPORT) - // - `invalid-argument`: `remote-address` is a non-IPv4-mapped IPv6 address, but the socket was bound to a specific IPv4-mapped IPv6 address. (or vice versa) - // - `invalid-argument`: The IP address in `remote-address` is set to INADDR_ANY (`0.0.0.0` / `::`). (EDESTADDRREQ, EADDRNOTAVAIL) - // - `invalid-argument`: The port in `remote-address` is set to 0. (EDESTADDRREQ, EADDRNOTAVAIL) - // - `invalid-argument`: The socket is already bound to a different network. The `network` passed to `connect` must be identical to the one passed to `bind`. - // - // # Typical `finish` errors - // - `address-in-use`: Tried to perform an implicit bind, but there were no ephemeral ports available. (EADDRINUSE, EADDRNOTAVAIL on Linux, EAGAIN on BSD) - // - `not-in-progress`: A `connect` operation is not in progress. - // - `would-block`: Can't finish the operation, it is still in progress. (EWOULDBLOCK, EAGAIN) - // - // # References - // - - // - - // - - // - - extern bool wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_start_connect(wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_udp_socket_t self, wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_network_t network, wasi_sockets_0_2_0_rc_2023_10_18_udp_ip_socket_address_t *remote_address, wasi_sockets_0_2_0_rc_2023_10_18_udp_error_code_t *err); - extern bool wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_finish_connect(wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_udp_socket_t self, wasi_sockets_0_2_0_rc_2023_10_18_udp_error_code_t *err); - // Receive messages on the socket. - // - // This function attempts to receive up to `max-results` datagrams on the socket without blocking. - // The returned list may contain fewer elements than requested, but never more. - // If `max-results` is 0, this function returns successfully with an empty list. - // - // # Typical errors - // - `invalid-state`: The socket is not bound to any local address. (EINVAL) - // - `remote-unreachable`: The remote address is not reachable. (ECONNREFUSED, ECONNRESET, ENETRESET on Windows, EHOSTUNREACH, EHOSTDOWN, ENETUNREACH, ENETDOWN) - // - `would-block`: There is no pending data available to be read at the moment. (EWOULDBLOCK, EAGAIN) - // - // # References - // - - // - - // - - // - - // - - // - - // - - // - - extern bool wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_receive(wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_udp_socket_t self, uint64_t max_results, wasi_sockets_0_2_0_rc_2023_10_18_udp_list_datagram_t *ret, wasi_sockets_0_2_0_rc_2023_10_18_udp_error_code_t *err); - // Send messages on the socket. - // - // This function attempts to send all provided `datagrams` on the socket without blocking and - // returns how many messages were actually sent (or queued for sending). - // - // This function semantically behaves the same as iterating the `datagrams` list and sequentially - // sending each individual datagram until either the end of the list has been reached or the first error occurred. - // If at least one datagram has been sent successfully, this function never returns an error. - // - // If the input list is empty, the function returns `ok(0)`. - // - // The remote address option is required. To send a message to the "connected" peer, - // call `remote-address` to get their address. - // - // # Typical errors - // - `invalid-argument`: The `remote-address` has the wrong address family. (EAFNOSUPPORT) - // - `invalid-argument`: `remote-address` is a non-IPv4-mapped IPv6 address, but the socket was bound to a specific IPv4-mapped IPv6 address. (or vice versa) - // - `invalid-argument`: The IP address in `remote-address` is set to INADDR_ANY (`0.0.0.0` / `::`). (EDESTADDRREQ, EADDRNOTAVAIL) - // - `invalid-argument`: The port in `remote-address` is set to 0. (EDESTADDRREQ, EADDRNOTAVAIL) - // - `invalid-argument`: The socket is in "connected" mode and the `datagram.remote-address` does not match the address passed to `connect`. (EISCONN) - // - `invalid-state`: The socket is not bound to any local address. Unlike POSIX, this function does not perform an implicit bind. - // - `remote-unreachable`: The remote address is not reachable. (ECONNREFUSED, ECONNRESET, ENETRESET on Windows, EHOSTUNREACH, EHOSTDOWN, ENETUNREACH, ENETDOWN) - // - `datagram-too-large`: The datagram is too large. (EMSGSIZE) - // - `would-block`: The send buffer is currently full. (EWOULDBLOCK, EAGAIN) - // - // # References - // - - // - - // - - // - - // - - // - - // - - // - - extern bool wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_send(wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_udp_socket_t self, wasi_sockets_0_2_0_rc_2023_10_18_udp_list_datagram_t *datagrams, uint64_t *ret, wasi_sockets_0_2_0_rc_2023_10_18_udp_error_code_t *err); - // Get the current bound address. - // - // POSIX mentions: - // > If the socket has not been bound to a local name, the value - // > stored in the object pointed to by `address` is unspecified. - // - // WASI is stricter and requires `local-address` to return `invalid-state` when the socket hasn't been bound yet. - // - // # Typical errors - // - `invalid-state`: The socket is not bound to any local address. - // - // # References - // - - // - - // - - // - - extern bool wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_local_address(wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_udp_socket_t self, wasi_sockets_0_2_0_rc_2023_10_18_udp_ip_socket_address_t *ret, wasi_sockets_0_2_0_rc_2023_10_18_udp_error_code_t *err); - // Get the address set with `connect`. - // - // # Typical errors - // - `invalid-state`: The socket is not connected to a remote address. (ENOTCONN) - // - // # References - // - - // - - // - - // - - extern bool wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_remote_address(wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_udp_socket_t self, wasi_sockets_0_2_0_rc_2023_10_18_udp_ip_socket_address_t *ret, wasi_sockets_0_2_0_rc_2023_10_18_udp_error_code_t *err); - // Whether this is a IPv4 or IPv6 socket. - // - // Equivalent to the SO_DOMAIN socket option. - extern wasi_sockets_0_2_0_rc_2023_10_18_udp_ip_address_family_t wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_address_family(wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_udp_socket_t self); - // Whether IPv4 compatibility (dual-stack) mode is disabled or not. - // - // Equivalent to the IPV6_V6ONLY socket option. - // - // # Typical errors - // - `not-supported`: (get/set) `this` socket is an IPv4 socket. - // - `invalid-state`: (set) The socket is already bound. - // - `not-supported`: (set) Host does not support dual-stack sockets. (Implementations are not required to.) - extern bool wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_ipv6_only(wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_udp_socket_t self, bool *ret, wasi_sockets_0_2_0_rc_2023_10_18_udp_error_code_t *err); - extern bool wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_set_ipv6_only(wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_udp_socket_t self, bool value, wasi_sockets_0_2_0_rc_2023_10_18_udp_error_code_t *err); - // Equivalent to the IP_TTL & IPV6_UNICAST_HOPS socket options. - extern bool wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_unicast_hop_limit(wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_udp_socket_t self, uint8_t *ret, wasi_sockets_0_2_0_rc_2023_10_18_udp_error_code_t *err); - extern bool wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_set_unicast_hop_limit(wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_udp_socket_t self, uint8_t value, wasi_sockets_0_2_0_rc_2023_10_18_udp_error_code_t *err); - // The kernel buffer space reserved for sends/receives on this socket. - // - // Note #1: an implementation may choose to cap or round the buffer size when setting the value. - // In other words, after setting a value, reading the same setting back may return a different value. - // - // Note #2: there is not necessarily a direct relationship between the kernel buffer size and the bytes of - // actual data to be sent/received by the application, because the kernel might also use the buffer space - // for internal metadata structures. - // - // Equivalent to the SO_RCVBUF and SO_SNDBUF socket options. - extern bool wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_receive_buffer_size(wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_udp_socket_t self, uint64_t *ret, wasi_sockets_0_2_0_rc_2023_10_18_udp_error_code_t *err); - extern bool wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_set_receive_buffer_size(wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_udp_socket_t self, uint64_t value, wasi_sockets_0_2_0_rc_2023_10_18_udp_error_code_t *err); - extern bool wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_send_buffer_size(wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_udp_socket_t self, uint64_t *ret, wasi_sockets_0_2_0_rc_2023_10_18_udp_error_code_t *err); - extern bool wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_set_send_buffer_size(wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_udp_socket_t self, uint64_t value, wasi_sockets_0_2_0_rc_2023_10_18_udp_error_code_t *err); - // Create a `pollable` which will resolve once the socket is ready for I/O. - // - // Note: this function is here for WASI Preview2 only. - // It's planned to be removed when `future` is natively supported in Preview3. - extern wasi_sockets_0_2_0_rc_2023_10_18_udp_own_pollable_t wasi_sockets_0_2_0_rc_2023_10_18_udp_method_udp_socket_subscribe(wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_udp_socket_t self); - - // Imported Functions from `wasi:sockets/udp-create-socket@0.2.0-rc-2023-10-18` - // Create a new UDP socket. - // - // Similar to `socket(AF_INET or AF_INET6, SOCK_DGRAM, IPPROTO_UDP)` in POSIX. - // - // This function does not require a network capability handle. This is considered to be safe because - // at time of creation, the socket is not bound to any `network` yet. Up to the moment `bind`/`connect` is called, - // the socket is effectively an in-memory configuration object, unable to communicate with the outside world. - // - // All sockets are non-blocking. Use the wasi-poll interface to block on asynchronous operations. - // - // # Typical errors - // - `not-supported`: The specified `address-family` is not supported. (EAFNOSUPPORT) - // - `new-socket-limit`: The new socket resource could not be created because of a system limit. (EMFILE, ENFILE) - // - // # References: - // - - // - - // - - // - - extern bool wasi_sockets_0_2_0_rc_2023_10_18_udp_create_socket_create_udp_socket(wasi_sockets_0_2_0_rc_2023_10_18_udp_create_socket_ip_address_family_t address_family, wasi_sockets_0_2_0_rc_2023_10_18_udp_create_socket_own_udp_socket_t *ret, wasi_sockets_0_2_0_rc_2023_10_18_udp_create_socket_error_code_t *err); - - // Imported Functions from `wasi:random/random@0.2.0-rc-2023-10-18` - // Return `len` cryptographically-secure random or pseudo-random bytes. - // - // This function must produce data at least as cryptographically secure and - // fast as an adequately seeded cryptographically-secure pseudo-random - // number generator (CSPRNG). It must not block, from the perspective of - // the calling program, under any circumstances, including on the first - // request and on requests for numbers of bytes. The returned data must - // always be unpredictable. - // - // This function must always return fresh data. Deterministic environments - // must omit this function, rather than implementing it with deterministic - // data. - extern void wasi_random_0_2_0_rc_2023_10_18_random_get_random_bytes(uint64_t len, bindings_list_u8_t *ret); - // Return a cryptographically-secure random or pseudo-random `u64` value. - // - // This function returns the same type of data as `get-random-bytes`, - // represented as a `u64`. - extern uint64_t wasi_random_0_2_0_rc_2023_10_18_random_get_random_u64(void); - - // Imported Functions from `wasi:random/insecure@0.2.0-rc-2023-10-18` - // Return `len` insecure pseudo-random bytes. - // - // This function is not cryptographically secure. Do not use it for - // anything related to security. - // - // There are no requirements on the values of the returned bytes, however - // implementations are encouraged to return evenly distributed values with - // a long period. - extern void wasi_random_0_2_0_rc_2023_10_18_insecure_get_insecure_random_bytes(uint64_t len, bindings_list_u8_t *ret); - // Return an insecure pseudo-random `u64` value. - // - // This function returns the same type of pseudo-random data as - // `get-insecure-random-bytes`, represented as a `u64`. - extern uint64_t wasi_random_0_2_0_rc_2023_10_18_insecure_get_insecure_random_u64(void); - - // Imported Functions from `wasi:random/insecure-seed@0.2.0-rc-2023-10-18` - // Return a 128-bit value that may contain a pseudo-random value. - // - // The returned value is not required to be computed from a CSPRNG, and may - // even be entirely deterministic. Host implementations are encouraged to - // provide pseudo-random values to any program exposed to - // attacker-controlled content, to enable DoS protection built into many - // languages' hash-map implementations. - // - // This function is intended to only be called once, by a source language - // to initialize Denial Of Service (DoS) protection in its hash-map - // implementation. - // - // # Expected future evolution - // - // This will likely be changed to a value import, to prevent it from being - // called multiple times and potentially used for purposes other than DoS - // protection. - extern void wasi_random_0_2_0_rc_2023_10_18_insecure_seed_insecure_seed(bindings_tuple2_u64_u64_t *ret); - - // Imported Functions from `wasi:cli/environment@0.2.0-rc-2023-10-18` - // Get the POSIX-style environment variables. - // - // Each environment variable is provided as a pair of string variable names - // and string value. - // - // Morally, these are a value import, but until value imports are available - // in the component model, this import function should return the same - // values each time it is called. - extern void wasi_cli_0_2_0_rc_2023_10_18_environment_get_environment(bindings_list_tuple2_string_string_t *ret); - // Get the POSIX-style arguments to the program. - extern void wasi_cli_0_2_0_rc_2023_10_18_environment_get_arguments(bindings_list_string_t *ret); - // Return a path that programs should use as their initial current working - // directory, interpreting `.` as shorthand for this. - extern bool wasi_cli_0_2_0_rc_2023_10_18_environment_initial_cwd(bindings_string_t *ret); - - // Imported Functions from `wasi:cli/exit@0.2.0-rc-2023-10-18` - // Exit the current instance and any linked instances. - extern void wasi_cli_0_2_0_rc_2023_10_18_exit_exit(wasi_cli_0_2_0_rc_2023_10_18_exit_result_void_void_t *status); - - // Imported Functions from `wasi:cli/stdin@0.2.0-rc-2023-10-18` - extern wasi_cli_0_2_0_rc_2023_10_18_stdin_own_input_stream_t wasi_cli_0_2_0_rc_2023_10_18_stdin_get_stdin(void); - - // Imported Functions from `wasi:cli/stdout@0.2.0-rc-2023-10-18` - extern wasi_cli_0_2_0_rc_2023_10_18_stdout_own_output_stream_t wasi_cli_0_2_0_rc_2023_10_18_stdout_get_stdout(void); - - // Imported Functions from `wasi:cli/stderr@0.2.0-rc-2023-10-18` - extern wasi_cli_0_2_0_rc_2023_10_18_stderr_own_output_stream_t wasi_cli_0_2_0_rc_2023_10_18_stderr_get_stderr(void); - - // Imported Functions from `wasi:cli/terminal-stdin@0.2.0-rc-2023-10-18` - // If stdin is connected to a terminal, return a `terminal-input` handle - // allowing further interaction with it. - extern bool wasi_cli_0_2_0_rc_2023_10_18_terminal_stdin_get_terminal_stdin(wasi_cli_0_2_0_rc_2023_10_18_terminal_stdin_own_terminal_input_t *ret); - - // Imported Functions from `wasi:cli/terminal-stdout@0.2.0-rc-2023-10-18` - // If stdout is connected to a terminal, return a `terminal-output` handle - // allowing further interaction with it. - extern bool wasi_cli_0_2_0_rc_2023_10_18_terminal_stdout_get_terminal_stdout(wasi_cli_0_2_0_rc_2023_10_18_terminal_stdout_own_terminal_output_t *ret); - - // Imported Functions from `wasi:cli/terminal-stderr@0.2.0-rc-2023-10-18` - // If stderr is connected to a terminal, return a `terminal-output` handle - // allowing further interaction with it. - extern bool wasi_cli_0_2_0_rc_2023_10_18_terminal_stderr_get_terminal_stderr(wasi_cli_0_2_0_rc_2023_10_18_terminal_stderr_own_terminal_output_t *ret); - - // Imported Functions from `wasi:http/types@0.2.0-rc-2023-10-18` - extern wasi_http_0_2_0_rc_2023_10_18_types_own_fields_t wasi_http_0_2_0_rc_2023_10_18_types_constructor_fields(bindings_list_tuple2_string_list_u8_t *entries); - extern void wasi_http_0_2_0_rc_2023_10_18_types_method_fields_get(wasi_http_0_2_0_rc_2023_10_18_types_borrow_fields_t self, bindings_string_t *name, bindings_list_list_u8_t *ret); - extern void wasi_http_0_2_0_rc_2023_10_18_types_method_fields_set(wasi_http_0_2_0_rc_2023_10_18_types_borrow_fields_t self, bindings_string_t *name, bindings_list_list_u8_t *value); - extern void wasi_http_0_2_0_rc_2023_10_18_types_method_fields_delete(wasi_http_0_2_0_rc_2023_10_18_types_borrow_fields_t self, bindings_string_t *name); - extern void wasi_http_0_2_0_rc_2023_10_18_types_method_fields_append(wasi_http_0_2_0_rc_2023_10_18_types_borrow_fields_t self, bindings_string_t *name, bindings_list_u8_t *value); - extern void wasi_http_0_2_0_rc_2023_10_18_types_method_fields_entries(wasi_http_0_2_0_rc_2023_10_18_types_borrow_fields_t self, bindings_list_tuple2_string_list_u8_t *ret); - extern wasi_http_0_2_0_rc_2023_10_18_types_own_fields_t wasi_http_0_2_0_rc_2023_10_18_types_method_fields_clone(wasi_http_0_2_0_rc_2023_10_18_types_borrow_fields_t self); - extern void wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_request_method(wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_request_t self, wasi_http_0_2_0_rc_2023_10_18_types_method_t *ret); - extern bool wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_request_path_with_query(wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_request_t self, bindings_string_t *ret); - extern bool wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_request_scheme(wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_request_t self, wasi_http_0_2_0_rc_2023_10_18_types_scheme_t *ret); - extern bool wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_request_authority(wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_request_t self, bindings_string_t *ret); - extern wasi_http_0_2_0_rc_2023_10_18_types_own_headers_t wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_request_headers(wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_request_t self); - extern bool wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_request_consume(wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_request_t self, wasi_http_0_2_0_rc_2023_10_18_types_own_incoming_body_t *ret); - extern wasi_http_0_2_0_rc_2023_10_18_types_own_outgoing_request_t wasi_http_0_2_0_rc_2023_10_18_types_constructor_outgoing_request(wasi_http_0_2_0_rc_2023_10_18_types_method_t *method, bindings_string_t *maybe_path_with_query, wasi_http_0_2_0_rc_2023_10_18_types_scheme_t *maybe_scheme, bindings_string_t *maybe_authority, wasi_http_0_2_0_rc_2023_10_18_types_borrow_headers_t headers); - extern bool wasi_http_0_2_0_rc_2023_10_18_types_method_outgoing_request_write(wasi_http_0_2_0_rc_2023_10_18_types_borrow_outgoing_request_t self, wasi_http_0_2_0_rc_2023_10_18_types_own_outgoing_body_t *ret); - extern void wasi_http_0_2_0_rc_2023_10_18_types_static_response_outparam_set(wasi_http_0_2_0_rc_2023_10_18_types_own_response_outparam_t param, wasi_http_0_2_0_rc_2023_10_18_types_result_own_outgoing_response_error_t *response); - extern wasi_http_0_2_0_rc_2023_10_18_types_status_code_t wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_response_status(wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_response_t self); - extern wasi_http_0_2_0_rc_2023_10_18_types_own_headers_t wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_response_headers(wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_response_t self); - extern bool wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_response_consume(wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_response_t self, wasi_http_0_2_0_rc_2023_10_18_types_own_incoming_body_t *ret); - extern bool wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_body_stream(wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_body_t self, wasi_http_0_2_0_rc_2023_10_18_types_own_input_stream_t *ret); - extern wasi_http_0_2_0_rc_2023_10_18_types_own_future_trailers_t wasi_http_0_2_0_rc_2023_10_18_types_static_incoming_body_finish(wasi_http_0_2_0_rc_2023_10_18_types_own_incoming_body_t this_); - // Pollable that resolves when the body has been fully read, and the trailers - // are ready to be consumed. - extern wasi_http_0_2_0_rc_2023_10_18_types_own_pollable_t wasi_http_0_2_0_rc_2023_10_18_types_method_future_trailers_subscribe(wasi_http_0_2_0_rc_2023_10_18_types_borrow_future_trailers_t self); - // Retrieve reference to trailers, if they are ready. - extern bool wasi_http_0_2_0_rc_2023_10_18_types_method_future_trailers_get(wasi_http_0_2_0_rc_2023_10_18_types_borrow_future_trailers_t self, wasi_http_0_2_0_rc_2023_10_18_types_result_own_trailers_error_t *ret); - extern wasi_http_0_2_0_rc_2023_10_18_types_own_outgoing_response_t wasi_http_0_2_0_rc_2023_10_18_types_constructor_outgoing_response(wasi_http_0_2_0_rc_2023_10_18_types_status_code_t status_code, wasi_http_0_2_0_rc_2023_10_18_types_borrow_headers_t headers); - // Will give the child outgoing-response at most once. subsequent calls will - // return an error. - extern bool wasi_http_0_2_0_rc_2023_10_18_types_method_outgoing_response_write(wasi_http_0_2_0_rc_2023_10_18_types_borrow_outgoing_response_t self, wasi_http_0_2_0_rc_2023_10_18_types_own_outgoing_body_t *ret); - // Will give the child output-stream at most once. subsequent calls will - // return an error. - extern bool wasi_http_0_2_0_rc_2023_10_18_types_method_outgoing_body_write(wasi_http_0_2_0_rc_2023_10_18_types_borrow_outgoing_body_t self, wasi_http_0_2_0_rc_2023_10_18_types_own_output_stream_t *ret); - // Finalize an outgoing body, optionally providing trailers. This must be - // called to signal that the response is complete. If the `outgoing-body` is - // dropped without calling `outgoing-body-finalize`, the implementation - // should treat the body as corrupted. - extern void wasi_http_0_2_0_rc_2023_10_18_types_static_outgoing_body_finish(wasi_http_0_2_0_rc_2023_10_18_types_own_outgoing_body_t this_, wasi_http_0_2_0_rc_2023_10_18_types_own_trailers_t *maybe_trailers); - // option indicates readiness. - // outer result indicates you are allowed to get the - // incoming-response-or-error at most once. subsequent calls after ready - // will return an error here. - // inner result indicates whether the incoming-response was available, or an - // error occured. - extern bool wasi_http_0_2_0_rc_2023_10_18_types_method_future_incoming_response_get(wasi_http_0_2_0_rc_2023_10_18_types_borrow_future_incoming_response_t self, wasi_http_0_2_0_rc_2023_10_18_types_result_result_own_incoming_response_error_void_t *ret); - extern wasi_http_0_2_0_rc_2023_10_18_types_own_pollable_t wasi_http_0_2_0_rc_2023_10_18_types_method_future_incoming_response_subscribe(wasi_http_0_2_0_rc_2023_10_18_types_borrow_future_incoming_response_t self); - - // Imported Functions from `wasi:http/outgoing-handler@0.2.0-rc-2023-10-18` - extern bool wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_handle(wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_own_outgoing_request_t request, wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_request_options_t *maybe_options, wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_own_future_incoming_response_t *ret, wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_error_t *err); - - // Exported Functions from `wasi:cli/run@0.2.0-rc-2023-10-18` - bool exports_wasi_cli_0_2_0_rc_2023_10_18_run_run(void); - - // Exported Functions from `wasi:http/incoming-handler@0.2.0-rc-2023-10-18` - void exports_wasi_http_0_2_0_rc_2023_10_18_incoming_handler_handle(exports_wasi_http_0_2_0_rc_2023_10_18_incoming_handler_own_incoming_request_t request, exports_wasi_http_0_2_0_rc_2023_10_18_incoming_handler_own_response_outparam_t response_out); - - // Helper Functions - - extern void wasi_io_0_2_0_rc_2023_10_18_poll_pollable_drop_own(wasi_io_0_2_0_rc_2023_10_18_poll_own_pollable_t handle); - extern void wasi_io_0_2_0_rc_2023_10_18_poll_pollable_drop_borrow(wasi_io_0_2_0_rc_2023_10_18_poll_own_pollable_t handle); - - extern wasi_io_0_2_0_rc_2023_10_18_poll_borrow_pollable_t wasi_io_0_2_0_rc_2023_10_18_poll_borrow_pollable(wasi_io_0_2_0_rc_2023_10_18_poll_own_pollable_t handle); - - void wasi_io_0_2_0_rc_2023_10_18_poll_list_borrow_pollable_free(wasi_io_0_2_0_rc_2023_10_18_poll_list_borrow_pollable_t *ptr); - - void bindings_list_u32_free(bindings_list_u32_t *ptr); - - void wasi_clocks_0_2_0_rc_2023_10_18_timezone_timezone_display_free(wasi_clocks_0_2_0_rc_2023_10_18_timezone_timezone_display_t *ptr); - - extern void wasi_io_0_2_0_rc_2023_10_18_streams_error_drop_own(wasi_io_0_2_0_rc_2023_10_18_streams_own_error_t handle); - extern void wasi_io_0_2_0_rc_2023_10_18_streams_error_drop_borrow(wasi_io_0_2_0_rc_2023_10_18_streams_own_error_t handle); - - extern wasi_io_0_2_0_rc_2023_10_18_streams_borrow_error_t wasi_io_0_2_0_rc_2023_10_18_streams_borrow_error(wasi_io_0_2_0_rc_2023_10_18_streams_own_error_t handle); - - void wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_free(wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t *ptr); - - extern void wasi_io_0_2_0_rc_2023_10_18_streams_input_stream_drop_own(wasi_io_0_2_0_rc_2023_10_18_streams_own_input_stream_t handle); - extern void wasi_io_0_2_0_rc_2023_10_18_streams_input_stream_drop_borrow(wasi_io_0_2_0_rc_2023_10_18_streams_own_input_stream_t handle); - - extern wasi_io_0_2_0_rc_2023_10_18_streams_borrow_input_stream_t wasi_io_0_2_0_rc_2023_10_18_streams_borrow_input_stream(wasi_io_0_2_0_rc_2023_10_18_streams_own_input_stream_t handle); - - extern void wasi_io_0_2_0_rc_2023_10_18_streams_output_stream_drop_own(wasi_io_0_2_0_rc_2023_10_18_streams_own_output_stream_t handle); - extern void wasi_io_0_2_0_rc_2023_10_18_streams_output_stream_drop_borrow(wasi_io_0_2_0_rc_2023_10_18_streams_own_output_stream_t handle); - - extern wasi_io_0_2_0_rc_2023_10_18_streams_borrow_output_stream_t wasi_io_0_2_0_rc_2023_10_18_streams_borrow_output_stream(wasi_io_0_2_0_rc_2023_10_18_streams_own_output_stream_t handle); - - void bindings_list_u8_free(bindings_list_u8_t *ptr); - - void wasi_io_0_2_0_rc_2023_10_18_streams_result_list_u8_stream_error_free(wasi_io_0_2_0_rc_2023_10_18_streams_result_list_u8_stream_error_t *ptr); - - void wasi_io_0_2_0_rc_2023_10_18_streams_result_u64_stream_error_free(wasi_io_0_2_0_rc_2023_10_18_streams_result_u64_stream_error_t *ptr); - - void wasi_io_0_2_0_rc_2023_10_18_streams_result_void_stream_error_free(wasi_io_0_2_0_rc_2023_10_18_streams_result_void_stream_error_t *ptr); - - void wasi_filesystem_0_2_0_rc_2023_10_18_types_access_type_free(wasi_filesystem_0_2_0_rc_2023_10_18_types_access_type_t *ptr); - - void wasi_filesystem_0_2_0_rc_2023_10_18_types_option_datetime_free(wasi_filesystem_0_2_0_rc_2023_10_18_types_option_datetime_t *ptr); - - void wasi_filesystem_0_2_0_rc_2023_10_18_types_descriptor_stat_free(wasi_filesystem_0_2_0_rc_2023_10_18_types_descriptor_stat_t *ptr); - - void wasi_filesystem_0_2_0_rc_2023_10_18_types_new_timestamp_free(wasi_filesystem_0_2_0_rc_2023_10_18_types_new_timestamp_t *ptr); - - void wasi_filesystem_0_2_0_rc_2023_10_18_types_directory_entry_free(wasi_filesystem_0_2_0_rc_2023_10_18_types_directory_entry_t *ptr); - - extern void wasi_filesystem_0_2_0_rc_2023_10_18_types_descriptor_drop_own(wasi_filesystem_0_2_0_rc_2023_10_18_types_own_descriptor_t handle); - extern void wasi_filesystem_0_2_0_rc_2023_10_18_types_descriptor_drop_borrow(wasi_filesystem_0_2_0_rc_2023_10_18_types_own_descriptor_t handle); - - extern wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor_t wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_descriptor(wasi_filesystem_0_2_0_rc_2023_10_18_types_own_descriptor_t handle); - - extern void wasi_filesystem_0_2_0_rc_2023_10_18_types_directory_entry_stream_drop_own(wasi_filesystem_0_2_0_rc_2023_10_18_types_own_directory_entry_stream_t handle); - extern void wasi_filesystem_0_2_0_rc_2023_10_18_types_directory_entry_stream_drop_borrow(wasi_filesystem_0_2_0_rc_2023_10_18_types_own_directory_entry_stream_t handle); - - extern wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_directory_entry_stream_t wasi_filesystem_0_2_0_rc_2023_10_18_types_borrow_directory_entry_stream(wasi_filesystem_0_2_0_rc_2023_10_18_types_own_directory_entry_stream_t handle); - - void wasi_filesystem_0_2_0_rc_2023_10_18_types_result_own_input_stream_error_code_free(wasi_filesystem_0_2_0_rc_2023_10_18_types_result_own_input_stream_error_code_t *ptr); - - void wasi_filesystem_0_2_0_rc_2023_10_18_types_result_own_output_stream_error_code_free(wasi_filesystem_0_2_0_rc_2023_10_18_types_result_own_output_stream_error_code_t *ptr); - - void wasi_filesystem_0_2_0_rc_2023_10_18_types_result_void_error_code_free(wasi_filesystem_0_2_0_rc_2023_10_18_types_result_void_error_code_t *ptr); - - void wasi_filesystem_0_2_0_rc_2023_10_18_types_result_descriptor_flags_error_code_free(wasi_filesystem_0_2_0_rc_2023_10_18_types_result_descriptor_flags_error_code_t *ptr); - - void wasi_filesystem_0_2_0_rc_2023_10_18_types_result_descriptor_type_error_code_free(wasi_filesystem_0_2_0_rc_2023_10_18_types_result_descriptor_type_error_code_t *ptr); - - void wasi_filesystem_0_2_0_rc_2023_10_18_types_result_tuple2_list_u8_bool_error_code_free(wasi_filesystem_0_2_0_rc_2023_10_18_types_result_tuple2_list_u8_bool_error_code_t *ptr); - - void wasi_filesystem_0_2_0_rc_2023_10_18_types_result_filesize_error_code_free(wasi_filesystem_0_2_0_rc_2023_10_18_types_result_filesize_error_code_t *ptr); - - void wasi_filesystem_0_2_0_rc_2023_10_18_types_result_own_directory_entry_stream_error_code_free(wasi_filesystem_0_2_0_rc_2023_10_18_types_result_own_directory_entry_stream_error_code_t *ptr); - - void wasi_filesystem_0_2_0_rc_2023_10_18_types_result_descriptor_stat_error_code_free(wasi_filesystem_0_2_0_rc_2023_10_18_types_result_descriptor_stat_error_code_t *ptr); - - void wasi_filesystem_0_2_0_rc_2023_10_18_types_result_own_descriptor_error_code_free(wasi_filesystem_0_2_0_rc_2023_10_18_types_result_own_descriptor_error_code_t *ptr); - - void wasi_filesystem_0_2_0_rc_2023_10_18_types_result_string_error_code_free(wasi_filesystem_0_2_0_rc_2023_10_18_types_result_string_error_code_t *ptr); - - void wasi_filesystem_0_2_0_rc_2023_10_18_types_result_metadata_hash_value_error_code_free(wasi_filesystem_0_2_0_rc_2023_10_18_types_result_metadata_hash_value_error_code_t *ptr); - - void wasi_filesystem_0_2_0_rc_2023_10_18_types_option_directory_entry_free(wasi_filesystem_0_2_0_rc_2023_10_18_types_option_directory_entry_t *ptr); - - void wasi_filesystem_0_2_0_rc_2023_10_18_types_result_option_directory_entry_error_code_free(wasi_filesystem_0_2_0_rc_2023_10_18_types_result_option_directory_entry_error_code_t *ptr); - - void wasi_filesystem_0_2_0_rc_2023_10_18_types_option_error_code_free(wasi_filesystem_0_2_0_rc_2023_10_18_types_option_error_code_t *ptr); - - void wasi_filesystem_0_2_0_rc_2023_10_18_preopens_tuple2_own_descriptor_string_free(wasi_filesystem_0_2_0_rc_2023_10_18_preopens_tuple2_own_descriptor_string_t *ptr); - - void wasi_filesystem_0_2_0_rc_2023_10_18_preopens_list_tuple2_own_descriptor_string_free(wasi_filesystem_0_2_0_rc_2023_10_18_preopens_list_tuple2_own_descriptor_string_t *ptr); - - extern void wasi_sockets_0_2_0_rc_2023_10_18_network_network_drop_own(wasi_sockets_0_2_0_rc_2023_10_18_network_own_network_t handle); - extern void wasi_sockets_0_2_0_rc_2023_10_18_network_network_drop_borrow(wasi_sockets_0_2_0_rc_2023_10_18_network_own_network_t handle); - - extern wasi_sockets_0_2_0_rc_2023_10_18_network_borrow_network_t wasi_sockets_0_2_0_rc_2023_10_18_network_borrow_network(wasi_sockets_0_2_0_rc_2023_10_18_network_own_network_t handle); - - void wasi_sockets_0_2_0_rc_2023_10_18_network_ip_address_free(wasi_sockets_0_2_0_rc_2023_10_18_network_ip_address_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_10_18_network_ip_socket_address_free(wasi_sockets_0_2_0_rc_2023_10_18_network_ip_socket_address_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_ip_address_free(wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_ip_address_t *ptr); - - extern void wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_resolve_address_stream_drop_own(wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_own_resolve_address_stream_t handle); - extern void wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_resolve_address_stream_drop_borrow(wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_own_resolve_address_stream_t handle); - - extern wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_borrow_resolve_address_stream_t wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_borrow_resolve_address_stream(wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_own_resolve_address_stream_t handle); - - void wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_option_ip_address_family_free(wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_option_ip_address_family_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_result_own_resolve_address_stream_error_code_free(wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_result_own_resolve_address_stream_error_code_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_option_ip_address_free(wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_option_ip_address_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_result_option_ip_address_error_code_free(wasi_sockets_0_2_0_rc_2023_10_18_ip_name_lookup_result_option_ip_address_error_code_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_10_18_tcp_ip_socket_address_free(wasi_sockets_0_2_0_rc_2023_10_18_tcp_ip_socket_address_t *ptr); - - extern void wasi_sockets_0_2_0_rc_2023_10_18_tcp_tcp_socket_drop_own(wasi_sockets_0_2_0_rc_2023_10_18_tcp_own_tcp_socket_t handle); - extern void wasi_sockets_0_2_0_rc_2023_10_18_tcp_tcp_socket_drop_borrow(wasi_sockets_0_2_0_rc_2023_10_18_tcp_own_tcp_socket_t handle); - - extern wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket_t wasi_sockets_0_2_0_rc_2023_10_18_tcp_borrow_tcp_socket(wasi_sockets_0_2_0_rc_2023_10_18_tcp_own_tcp_socket_t handle); - - void wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_void_error_code_free(wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_void_error_code_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_tuple2_own_input_stream_own_output_stream_error_code_free(wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_tuple2_own_input_stream_own_output_stream_error_code_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_tuple3_own_tcp_socket_own_input_stream_own_output_stream_error_code_free(wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_tuple3_own_tcp_socket_own_input_stream_own_output_stream_error_code_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_ip_socket_address_error_code_free(wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_ip_socket_address_error_code_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_bool_error_code_free(wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_bool_error_code_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_u8_error_code_free(wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_u8_error_code_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_u64_error_code_free(wasi_sockets_0_2_0_rc_2023_10_18_tcp_result_u64_error_code_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_10_18_tcp_create_socket_result_own_tcp_socket_error_code_free(wasi_sockets_0_2_0_rc_2023_10_18_tcp_create_socket_result_own_tcp_socket_error_code_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_10_18_udp_ip_socket_address_free(wasi_sockets_0_2_0_rc_2023_10_18_udp_ip_socket_address_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_10_18_udp_datagram_free(wasi_sockets_0_2_0_rc_2023_10_18_udp_datagram_t *ptr); - - extern void wasi_sockets_0_2_0_rc_2023_10_18_udp_udp_socket_drop_own(wasi_sockets_0_2_0_rc_2023_10_18_udp_own_udp_socket_t handle); - extern void wasi_sockets_0_2_0_rc_2023_10_18_udp_udp_socket_drop_borrow(wasi_sockets_0_2_0_rc_2023_10_18_udp_own_udp_socket_t handle); - - extern wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_udp_socket_t wasi_sockets_0_2_0_rc_2023_10_18_udp_borrow_udp_socket(wasi_sockets_0_2_0_rc_2023_10_18_udp_own_udp_socket_t handle); - - void wasi_sockets_0_2_0_rc_2023_10_18_udp_result_void_error_code_free(wasi_sockets_0_2_0_rc_2023_10_18_udp_result_void_error_code_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_10_18_udp_list_datagram_free(wasi_sockets_0_2_0_rc_2023_10_18_udp_list_datagram_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_10_18_udp_result_list_datagram_error_code_free(wasi_sockets_0_2_0_rc_2023_10_18_udp_result_list_datagram_error_code_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_10_18_udp_result_u64_error_code_free(wasi_sockets_0_2_0_rc_2023_10_18_udp_result_u64_error_code_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_10_18_udp_result_ip_socket_address_error_code_free(wasi_sockets_0_2_0_rc_2023_10_18_udp_result_ip_socket_address_error_code_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_10_18_udp_result_bool_error_code_free(wasi_sockets_0_2_0_rc_2023_10_18_udp_result_bool_error_code_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_10_18_udp_result_u8_error_code_free(wasi_sockets_0_2_0_rc_2023_10_18_udp_result_u8_error_code_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_10_18_udp_create_socket_result_own_udp_socket_error_code_free(wasi_sockets_0_2_0_rc_2023_10_18_udp_create_socket_result_own_udp_socket_error_code_t *ptr); - - void bindings_tuple2_string_string_free(bindings_tuple2_string_string_t *ptr); - - void bindings_list_tuple2_string_string_free(bindings_list_tuple2_string_string_t *ptr); - - void bindings_list_string_free(bindings_list_string_t *ptr); - - void bindings_option_string_free(bindings_option_string_t *ptr); - - void wasi_cli_0_2_0_rc_2023_10_18_exit_result_void_void_free(wasi_cli_0_2_0_rc_2023_10_18_exit_result_void_void_t *ptr); - - extern void wasi_cli_0_2_0_rc_2023_10_18_terminal_input_terminal_input_drop_own(wasi_cli_0_2_0_rc_2023_10_18_terminal_input_own_terminal_input_t handle); - extern void wasi_cli_0_2_0_rc_2023_10_18_terminal_input_terminal_input_drop_borrow(wasi_cli_0_2_0_rc_2023_10_18_terminal_input_own_terminal_input_t handle); - - extern wasi_cli_0_2_0_rc_2023_10_18_terminal_input_borrow_terminal_input_t wasi_cli_0_2_0_rc_2023_10_18_terminal_input_borrow_terminal_input(wasi_cli_0_2_0_rc_2023_10_18_terminal_input_own_terminal_input_t handle); - - extern void wasi_cli_0_2_0_rc_2023_10_18_terminal_output_terminal_output_drop_own(wasi_cli_0_2_0_rc_2023_10_18_terminal_output_own_terminal_output_t handle); - extern void wasi_cli_0_2_0_rc_2023_10_18_terminal_output_terminal_output_drop_borrow(wasi_cli_0_2_0_rc_2023_10_18_terminal_output_own_terminal_output_t handle); - - extern wasi_cli_0_2_0_rc_2023_10_18_terminal_output_borrow_terminal_output_t wasi_cli_0_2_0_rc_2023_10_18_terminal_output_borrow_terminal_output(wasi_cli_0_2_0_rc_2023_10_18_terminal_output_own_terminal_output_t handle); - - void wasi_cli_0_2_0_rc_2023_10_18_terminal_stdin_option_own_terminal_input_free(wasi_cli_0_2_0_rc_2023_10_18_terminal_stdin_option_own_terminal_input_t *ptr); - - void wasi_cli_0_2_0_rc_2023_10_18_terminal_stdout_option_own_terminal_output_free(wasi_cli_0_2_0_rc_2023_10_18_terminal_stdout_option_own_terminal_output_t *ptr); - - void wasi_cli_0_2_0_rc_2023_10_18_terminal_stderr_option_own_terminal_output_free(wasi_cli_0_2_0_rc_2023_10_18_terminal_stderr_option_own_terminal_output_t *ptr); - - void wasi_http_0_2_0_rc_2023_10_18_types_method_free(wasi_http_0_2_0_rc_2023_10_18_types_method_t *ptr); - - void wasi_http_0_2_0_rc_2023_10_18_types_scheme_free(wasi_http_0_2_0_rc_2023_10_18_types_scheme_t *ptr); - - void wasi_http_0_2_0_rc_2023_10_18_types_error_free(wasi_http_0_2_0_rc_2023_10_18_types_error_t *ptr); - - extern void wasi_http_0_2_0_rc_2023_10_18_types_fields_drop_own(wasi_http_0_2_0_rc_2023_10_18_types_own_fields_t handle); - extern void wasi_http_0_2_0_rc_2023_10_18_types_fields_drop_borrow(wasi_http_0_2_0_rc_2023_10_18_types_own_fields_t handle); - - extern wasi_http_0_2_0_rc_2023_10_18_types_borrow_fields_t wasi_http_0_2_0_rc_2023_10_18_types_borrow_fields(wasi_http_0_2_0_rc_2023_10_18_types_own_fields_t handle); - - extern void wasi_http_0_2_0_rc_2023_10_18_types_incoming_request_drop_own(wasi_http_0_2_0_rc_2023_10_18_types_own_incoming_request_t handle); - extern void wasi_http_0_2_0_rc_2023_10_18_types_incoming_request_drop_borrow(wasi_http_0_2_0_rc_2023_10_18_types_own_incoming_request_t handle); - - extern wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_request_t wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_request(wasi_http_0_2_0_rc_2023_10_18_types_own_incoming_request_t handle); - - extern void wasi_http_0_2_0_rc_2023_10_18_types_outgoing_request_drop_own(wasi_http_0_2_0_rc_2023_10_18_types_own_outgoing_request_t handle); - extern void wasi_http_0_2_0_rc_2023_10_18_types_outgoing_request_drop_borrow(wasi_http_0_2_0_rc_2023_10_18_types_own_outgoing_request_t handle); - - extern wasi_http_0_2_0_rc_2023_10_18_types_borrow_outgoing_request_t wasi_http_0_2_0_rc_2023_10_18_types_borrow_outgoing_request(wasi_http_0_2_0_rc_2023_10_18_types_own_outgoing_request_t handle); - - void bindings_option_u32_free(bindings_option_u32_t *ptr); - - void wasi_http_0_2_0_rc_2023_10_18_types_request_options_free(wasi_http_0_2_0_rc_2023_10_18_types_request_options_t *ptr); - - extern void wasi_http_0_2_0_rc_2023_10_18_types_response_outparam_drop_own(wasi_http_0_2_0_rc_2023_10_18_types_own_response_outparam_t handle); - extern void wasi_http_0_2_0_rc_2023_10_18_types_response_outparam_drop_borrow(wasi_http_0_2_0_rc_2023_10_18_types_own_response_outparam_t handle); - - extern wasi_http_0_2_0_rc_2023_10_18_types_borrow_response_outparam_t wasi_http_0_2_0_rc_2023_10_18_types_borrow_response_outparam(wasi_http_0_2_0_rc_2023_10_18_types_own_response_outparam_t handle); - - extern void wasi_http_0_2_0_rc_2023_10_18_types_incoming_response_drop_own(wasi_http_0_2_0_rc_2023_10_18_types_own_incoming_response_t handle); - extern void wasi_http_0_2_0_rc_2023_10_18_types_incoming_response_drop_borrow(wasi_http_0_2_0_rc_2023_10_18_types_own_incoming_response_t handle); - - extern wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_response_t wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_response(wasi_http_0_2_0_rc_2023_10_18_types_own_incoming_response_t handle); - - extern void wasi_http_0_2_0_rc_2023_10_18_types_incoming_body_drop_own(wasi_http_0_2_0_rc_2023_10_18_types_own_incoming_body_t handle); - extern void wasi_http_0_2_0_rc_2023_10_18_types_incoming_body_drop_borrow(wasi_http_0_2_0_rc_2023_10_18_types_own_incoming_body_t handle); - - extern wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_body_t wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_body(wasi_http_0_2_0_rc_2023_10_18_types_own_incoming_body_t handle); - - extern void wasi_http_0_2_0_rc_2023_10_18_types_future_trailers_drop_own(wasi_http_0_2_0_rc_2023_10_18_types_own_future_trailers_t handle); - extern void wasi_http_0_2_0_rc_2023_10_18_types_future_trailers_drop_borrow(wasi_http_0_2_0_rc_2023_10_18_types_own_future_trailers_t handle); - - extern wasi_http_0_2_0_rc_2023_10_18_types_borrow_future_trailers_t wasi_http_0_2_0_rc_2023_10_18_types_borrow_future_trailers(wasi_http_0_2_0_rc_2023_10_18_types_own_future_trailers_t handle); - - extern void wasi_http_0_2_0_rc_2023_10_18_types_outgoing_response_drop_own(wasi_http_0_2_0_rc_2023_10_18_types_own_outgoing_response_t handle); - extern void wasi_http_0_2_0_rc_2023_10_18_types_outgoing_response_drop_borrow(wasi_http_0_2_0_rc_2023_10_18_types_own_outgoing_response_t handle); - - extern wasi_http_0_2_0_rc_2023_10_18_types_borrow_outgoing_response_t wasi_http_0_2_0_rc_2023_10_18_types_borrow_outgoing_response(wasi_http_0_2_0_rc_2023_10_18_types_own_outgoing_response_t handle); - - extern void wasi_http_0_2_0_rc_2023_10_18_types_outgoing_body_drop_own(wasi_http_0_2_0_rc_2023_10_18_types_own_outgoing_body_t handle); - extern void wasi_http_0_2_0_rc_2023_10_18_types_outgoing_body_drop_borrow(wasi_http_0_2_0_rc_2023_10_18_types_own_outgoing_body_t handle); - - extern wasi_http_0_2_0_rc_2023_10_18_types_borrow_outgoing_body_t wasi_http_0_2_0_rc_2023_10_18_types_borrow_outgoing_body(wasi_http_0_2_0_rc_2023_10_18_types_own_outgoing_body_t handle); - - extern void wasi_http_0_2_0_rc_2023_10_18_types_future_incoming_response_drop_own(wasi_http_0_2_0_rc_2023_10_18_types_own_future_incoming_response_t handle); - extern void wasi_http_0_2_0_rc_2023_10_18_types_future_incoming_response_drop_borrow(wasi_http_0_2_0_rc_2023_10_18_types_own_future_incoming_response_t handle); - - extern wasi_http_0_2_0_rc_2023_10_18_types_borrow_future_incoming_response_t wasi_http_0_2_0_rc_2023_10_18_types_borrow_future_incoming_response(wasi_http_0_2_0_rc_2023_10_18_types_own_future_incoming_response_t handle); - - void bindings_tuple2_string_list_u8_free(bindings_tuple2_string_list_u8_t *ptr); - - void bindings_list_tuple2_string_list_u8_free(bindings_list_tuple2_string_list_u8_t *ptr); - - void bindings_list_list_u8_free(bindings_list_list_u8_t *ptr); - - void wasi_http_0_2_0_rc_2023_10_18_types_option_scheme_free(wasi_http_0_2_0_rc_2023_10_18_types_option_scheme_t *ptr); - - void wasi_http_0_2_0_rc_2023_10_18_types_result_own_incoming_body_void_free(wasi_http_0_2_0_rc_2023_10_18_types_result_own_incoming_body_void_t *ptr); - - void wasi_http_0_2_0_rc_2023_10_18_types_result_own_outgoing_body_void_free(wasi_http_0_2_0_rc_2023_10_18_types_result_own_outgoing_body_void_t *ptr); - - void wasi_http_0_2_0_rc_2023_10_18_types_result_own_outgoing_response_error_free(wasi_http_0_2_0_rc_2023_10_18_types_result_own_outgoing_response_error_t *ptr); - - void wasi_http_0_2_0_rc_2023_10_18_types_result_own_input_stream_void_free(wasi_http_0_2_0_rc_2023_10_18_types_result_own_input_stream_void_t *ptr); - - void wasi_http_0_2_0_rc_2023_10_18_types_result_own_trailers_error_free(wasi_http_0_2_0_rc_2023_10_18_types_result_own_trailers_error_t *ptr); - - void wasi_http_0_2_0_rc_2023_10_18_types_option_result_own_trailers_error_free(wasi_http_0_2_0_rc_2023_10_18_types_option_result_own_trailers_error_t *ptr); - - void wasi_http_0_2_0_rc_2023_10_18_types_result_own_output_stream_void_free(wasi_http_0_2_0_rc_2023_10_18_types_result_own_output_stream_void_t *ptr); - - void wasi_http_0_2_0_rc_2023_10_18_types_option_own_trailers_free(wasi_http_0_2_0_rc_2023_10_18_types_option_own_trailers_t *ptr); - - void wasi_http_0_2_0_rc_2023_10_18_types_result_own_incoming_response_error_free(wasi_http_0_2_0_rc_2023_10_18_types_result_own_incoming_response_error_t *ptr); - - void wasi_http_0_2_0_rc_2023_10_18_types_result_result_own_incoming_response_error_void_free(wasi_http_0_2_0_rc_2023_10_18_types_result_result_own_incoming_response_error_void_t *ptr); - - void wasi_http_0_2_0_rc_2023_10_18_types_option_result_result_own_incoming_response_error_void_free(wasi_http_0_2_0_rc_2023_10_18_types_option_result_result_own_incoming_response_error_void_t *ptr); - - void wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_request_options_free(wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_request_options_t *ptr); - - void wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_error_free(wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_error_t *ptr); - - void wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_option_request_options_free(wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_option_request_options_t *ptr); - - void wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_result_own_future_incoming_response_error_free(wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_result_own_future_incoming_response_error_t *ptr); - - void exports_wasi_cli_0_2_0_rc_2023_10_18_run_result_void_void_free(exports_wasi_cli_0_2_0_rc_2023_10_18_run_result_void_void_t *ptr); - - // Transfers ownership of `s` into the string `ret` - void bindings_string_set(bindings_string_t *ret, char*s); - - // Creates a copy of the input nul-terminate string `s` and - // stores it into the component model string `ret`. - void bindings_string_dup(bindings_string_t *ret, const char*s); - - // Deallocates the string pointed to by `ret`, deallocating - // the memory behind the string. - void bindings_string_free(bindings_string_t *ret); - - #ifdef __cplusplus - } - #endif - #endif - \ No newline at end of file diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/bindings/bindings_component_type.o b/host-apis/wasi-0.2.0-rc-2023-10-18/bindings/bindings_component_type.o deleted file mode 100644 index 53006246907f91e48f30284e6eb38827d5965d41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41353 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 diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/host_api.cpp b/host-apis/wasi-0.2.0-rc-2023-10-18/host_api.cpp deleted file mode 100644 index 4c35cb1..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-10-18/host_api.cpp +++ /dev/null @@ -1,963 +0,0 @@ -#include "host_api.h" -#include "bindings/bindings.h" - -#include "bindings/bindings.h" -#include - -using std::optional; -using std::string_view; -using std::tuple; -using std::unique_ptr; -using std::vector; - -// The host interface makes the assumption regularly that uint32_t is sufficient space to store a -// pointer. -static_assert(sizeof(uint32_t) == sizeof(void *)); - -typedef wasi_http_0_2_0_rc_2023_10_18_types_own_incoming_request_t incoming_request_t; -typedef wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_request_t borrow_incoming_request_t; -typedef wasi_http_0_2_0_rc_2023_10_18_types_own_incoming_response_t incoming_response_t; -typedef wasi_http_0_2_0_rc_2023_10_18_types_borrow_outgoing_request_t borrow_outgoing_request_t; - -typedef wasi_http_0_2_0_rc_2023_10_18_types_own_future_incoming_response_t - future_incoming_response_t; -typedef wasi_http_0_2_0_rc_2023_10_18_types_borrow_future_incoming_response_t - borrow_future_incoming_response_t; - -typedef wasi_http_0_2_0_rc_2023_10_18_types_own_incoming_body_t incoming_body_t; -typedef wasi_http_0_2_0_rc_2023_10_18_types_own_outgoing_body_t outgoing_body_t; - -typedef wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_body_t borrow_incoming_body_t; -typedef wasi_http_0_2_0_rc_2023_10_18_types_borrow_outgoing_body_t borrow_outgoing_body_t; - -typedef wasi_io_0_2_0_rc_2023_10_18_poll_own_pollable_t own_pollable_t; -typedef wasi_io_0_2_0_rc_2023_10_18_poll_borrow_pollable_t borrow_pollable_t; -typedef wasi_io_0_2_0_rc_2023_10_18_poll_list_borrow_pollable_t list_borrow_pollable_t; - -typedef wasi_io_0_2_0_rc_2023_10_18_streams_own_input_stream_t own_input_stream_t; -typedef wasi_io_0_2_0_rc_2023_10_18_streams_borrow_input_stream_t borrow_input_stream_t; - -namespace { - -/// This is the type contract for using the Own and Borrow templates. -template struct HandleOps {}; - -/// A convenience wrapper for constructing a borrow. As we only create borrows of things we already -/// own, this wrapper will never explicitly drop borrows. -template class Borrow final { - static constexpr const typename HandleOps::borrow invalid{std::numeric_limits::max()}; - HandleOps::borrow handle{Borrow::invalid}; - -public: - Borrow() = default; - - // Construct a borrow from an owned handle. - Borrow(HandleOps::own handle) : handle{HandleOps::borrow_owned(handle)} {} - - // Construct a borrow from a raw `Handle` value. - Borrow(host_api::Handle handle) : Borrow{typename HandleOps::own{handle}} {} - - // Convenience wrapper for constructing a borrow of a HandleState. - Borrow(host_api::HandleState *state) : Borrow{typename HandleOps::own{state->handle}} {} - - bool valid() const { return this->handle.__handle != Borrow::invalid.__handle; } - - operator bool() const { return this->valid(); } - - operator typename HandleOps::borrow() const { return this->handle; } -}; - -template <> struct HandleOps { - using own = wasi_http_0_2_0_rc_2023_10_18_types_own_fields_t; - using borrow = wasi_http_0_2_0_rc_2023_10_18_types_borrow_fields_t; - - static constexpr const auto borrow_owned = wasi_http_0_2_0_rc_2023_10_18_types_borrow_fields; -}; - -struct OutputStream {}; - -template <> struct HandleOps { - using own = wasi_io_0_2_0_rc_2023_10_18_streams_own_output_stream_t; - using borrow = wasi_io_0_2_0_rc_2023_10_18_streams_borrow_output_stream_t; - - static constexpr const auto borrow_owned = - wasi_io_0_2_0_rc_2023_10_18_streams_borrow_output_stream; -}; - -struct Pollable {}; - -template <> struct HandleOps { - using own = wasi_io_0_2_0_rc_2023_10_18_poll_own_pollable_t; - using borrow = wasi_io_0_2_0_rc_2023_10_18_poll_borrow_pollable_t; - - static constexpr const auto borrow_owned = wasi_io_0_2_0_rc_2023_10_18_poll_borrow_pollable; -}; - -} // namespace - -size_t api::AsyncTask::select(std::vector &tasks) { - auto count = tasks.size(); - vector> handles; - for (const auto task : tasks) { - handles.emplace_back(task->id()); - } - auto list = list_borrow_pollable_t{ - reinterpret_cast::borrow *>(handles.data()), count}; - bindings_list_u32_t result{nullptr, 0}; - wasi_io_0_2_0_rc_2023_10_18_poll_poll_list(&list, &result); - MOZ_ASSERT(result.len > 0); - const auto ready_index = result.ptr[0]; - free(result.ptr); - - return ready_index; -} - -namespace host_api { - -HostString::HostString(const char *c_str) { - len = strlen(c_str); - ptr = JS::UniqueChars(static_cast(malloc(len + 1))); - std::memcpy(ptr.get(), c_str, len); - ptr[len] = '\0'; -} - -HostString bindings_string_to_host_string(bindings_string_t str) { - return {JS::UniqueChars(reinterpret_cast(str.ptr)), str.len}; -} - -HostString bindings_bytes_to_host_string(bindings_list_u8_t str) { - return {JS::UniqueChars(reinterpret_cast(str.ptr)), str.len}; -} - -namespace { - -bindings_string_t string_view_to_world_string(std::string_view str) { - return { - .ptr = (uint8_t *)str.data(), - .len = str.size(), - }; -} - -bindings_list_u8_t string_view_to_world_bytes(std::string_view str) { - return { - .ptr = (uint8_t *)str.data(), - .len = str.size(), - }; -} - -std::string scheme_to_string(const wasi_http_0_2_0_rc_2023_10_18_types_scheme_t &scheme) { - if (scheme.tag == WASI_HTTP_0_2_0_RC_2023_10_18_TYPES_SCHEME_HTTP) { - return "http:"; - } - if (scheme.tag == WASI_HTTP_0_2_0_RC_2023_10_18_TYPES_SCHEME_HTTPS) { - return "https:"; - } - - auto str = bindings_string_to_host_string(scheme.val.other); - return std::string(str); -} - -} // namespace - -Result Random::get_bytes(size_t num_bytes) { - Result res; - - bindings_list_u8_t list{}; - wasi_random_0_2_0_rc_2023_10_18_random_get_random_bytes(num_bytes, &list); - auto ret = HostBytes{ - std::unique_ptr{list.ptr}, - list.len, - }; - res.emplace(std::move(ret)); - - return res; -} - -Result Random::get_u32() { - return Result::ok(wasi_random_0_2_0_rc_2023_10_18_random_get_random_u64()); -} - -uint64_t MonotonicClock::now() { return wasi_clocks_0_2_0_rc_2023_10_18_monotonic_clock_now(); } - -uint64_t MonotonicClock::resolution() { - return wasi_clocks_0_2_0_rc_2023_10_18_monotonic_clock_resolution(); -} - -int32_t MonotonicClock::subscribe(const uint64_t when, const bool absolute) { - return wasi_clocks_0_2_0_rc_2023_10_18_monotonic_clock_subscribe(when, absolute).__handle; -} - -void MonotonicClock::unsubscribe(const int32_t handle_id) { - wasi_io_0_2_0_rc_2023_10_18_poll_pollable_drop_own(own_pollable_t{handle_id}); -} - -HttpHeaders::HttpHeaders() { - bindings_list_tuple2_string_list_u8_t entries{nullptr, 0}; - this->handle_state_ = - new HandleState(wasi_http_0_2_0_rc_2023_10_18_types_constructor_fields(&entries).__handle); -} -HttpHeaders::HttpHeaders(Handle handle) { handle_state_ = new HandleState(handle); } - -HttpHeaders::HttpHeaders(const vector>> &entries) { - for (const auto &[name, values] : entries) { - for (const auto &value : values) { - auto res = set(name, value); - MOZ_RELEASE_ASSERT(!res.is_err()); - } - } -} - -HttpHeaders::HttpHeaders(const HttpHeaders &headers) { - Borrow borrow(headers.handle_state_); - auto handle = wasi_http_0_2_0_rc_2023_10_18_types_method_fields_clone(borrow); - this->handle_state_ = new HandleState(handle.__handle); -} - -Result>> HttpHeaders::entries() const { - Result>> res; - MOZ_ASSERT(valid()); - - bindings_list_tuple2_string_list_u8_t entries; - Borrow borrow{this->handle_state_}; - wasi_http_0_2_0_rc_2023_10_18_types_method_fields_entries(borrow, &entries); - - vector> entries_vec; - for (int i = 0; i < entries.len; i++) { - auto key = entries.ptr[i].f0; - auto value = entries.ptr[i].f1; - entries_vec.emplace_back(bindings_string_to_host_string(key), - bindings_bytes_to_host_string(value)); - } - // Free the outer list, but not the entries themselves. - free(entries.ptr); - res.emplace(std::move(entries_vec)); - - return res; -} - -Result> HttpHeaders::names() const { - Result> res; - MOZ_ASSERT(valid()); - - bindings_list_tuple2_string_list_u8_t entries; - Borrow borrow{this->handle_state_}; - wasi_http_0_2_0_rc_2023_10_18_types_method_fields_entries(borrow, &entries); - - vector names; - for (int i = 0; i < entries.len; i++) { - names.emplace_back(bindings_string_to_host_string(entries.ptr[i].f0)); - } - // Free the outer list, but not the entries themselves. - free(entries.ptr); - res.emplace(std::move(names)); - - return res; -} - -Result>> HttpHeaders::get(string_view name) const { - Result>> res; - MOZ_ASSERT(valid()); - - bindings_list_list_u8_t values; - auto hdr = string_view_to_world_string(name); - Borrow borrow{this->handle_state_}; - wasi_http_0_2_0_rc_2023_10_18_types_method_fields_get(borrow, &hdr, &values); - - if (values.len > 0) { - std::vector names; - for (int i = 0; i < values.len; i++) { - names.emplace_back(bindings_bytes_to_host_string(values.ptr[i])); - } - // Free the outer list, but not the values themselves. - free(values.ptr); - res.emplace(std::move(names)); - } else { - res.emplace(std::nullopt); - } - - return res; -} - -Result HttpHeaders::set(string_view name, string_view value) { - MOZ_ASSERT(valid()); - auto hdr = string_view_to_world_string(name); - auto [ptr, len] = string_view_to_world_bytes(value); - bindings_list_u8_t fieldval{ptr, len}; - - bindings_list_list_u8_t host_values{&fieldval, 1}; - - Borrow borrow{this->handle_state_}; - wasi_http_0_2_0_rc_2023_10_18_types_method_fields_set(borrow, &hdr, &host_values); - free(host_values.ptr); - - return {}; -} - -Result HttpHeaders::append(string_view name, string_view value) { - MOZ_ASSERT(valid()); - auto hdr = string_view_to_world_string(name); - auto [ptr, len] = string_view_to_world_bytes(value); - - Borrow borrow{this->handle_state_}; - bindings_list_u8_t fieldval{ptr, len}; - wasi_http_0_2_0_rc_2023_10_18_types_method_fields_append(borrow, &hdr, &fieldval); - - return {}; -} - -Result HttpHeaders::remove(string_view name) { - MOZ_ASSERT(valid()); - auto hdr = string_view_to_world_string(name); - - Borrow borrow{this->handle_state_}; - wasi_http_0_2_0_rc_2023_10_18_types_method_fields_delete(borrow, &hdr); - - return {}; -} - -// TODO: convert to `Result` -string_view HttpRequestResponseBase::url() { - if (_url) { - return string_view(*_url); - } - - auto borrow = borrow_incoming_request_t{handle_state_->handle}; - - wasi_http_0_2_0_rc_2023_10_18_types_scheme_t scheme{ - .tag = WASI_HTTP_0_2_0_RC_2023_10_18_TYPES_SCHEME_HTTP, - }; - wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_request_scheme(borrow, &scheme); - _url = new std::string(scheme_to_string(scheme)); - - bindings_string_t authority; - if (!wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_request_authority(borrow, &authority)) { - _url->append("localhost"); - } else { - _url->append(string_view(bindings_string_to_host_string(authority))); - } - - bindings_string_t path; - if (wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_request_path_with_query(borrow, &path)) { - _url->append(string_view(bindings_string_to_host_string(path))); - } - - return string_view(*_url); -} - -bool write_to_outgoing_body(Borrow borrow, const uint8_t *ptr, const size_t len) { - // The write call doesn't mutate the buffer; the cast is just for the - // generated bindings. - bindings_list_u8_t list{const_cast(ptr), len}; - wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t err; - // TODO: proper error handling. - return wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_write(borrow, &list, &err); -} - -class OutgoingBodyHandleState final : HandleState { - Handle stream_handle_; - PollableHandle pollable_handle_; - - friend HttpOutgoingBody; - -public: - explicit OutgoingBodyHandleState(const Handle handle) - : HandleState(handle), pollable_handle_(INVALID_POLLABLE_HANDLE) { - const borrow_outgoing_body_t borrow = {handle}; - HandleOps::own stream{}; - if (!wasi_http_0_2_0_rc_2023_10_18_types_method_outgoing_body_write(borrow, &stream)) { - MOZ_ASSERT_UNREACHABLE("Getting a body's stream should never fail"); - } - stream_handle_ = stream.__handle; - } -}; - -HttpOutgoingBody::HttpOutgoingBody(Handle handle) : Pollable() { - handle_state_ = new OutgoingBodyHandleState(handle); -} -Result HttpOutgoingBody::capacity() { - if (!valid()) { - // TODO: proper error handling for all 154 error codes. - return Result::err(154); - } - - auto *state = static_cast(this->handle_state_); - Borrow borrow(state->stream_handle_); - - uint64_t capacity = 0; - wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t err; - if (!wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_check_write(borrow, &capacity, - &err)) { - return Result::err(154); - } - return Result::ok(capacity); -} - -Result HttpOutgoingBody::write(const uint8_t *bytes, size_t len) { - auto res = capacity(); - if (res.is_err()) { - // TODO: proper error handling for all 154 error codes. - return Result::err(154); - } - auto capacity = res.unwrap(); - auto bytes_to_write = std::min(len, static_cast(capacity)); - - auto *state = static_cast(this->handle_state_); - Borrow borrow(state->stream_handle_); - if (!write_to_outgoing_body(borrow, bytes, bytes_to_write)) { - return Result::err(154); - } - - return Result::ok(bytes_to_write); -} - -Result HttpOutgoingBody::write_all(const uint8_t *bytes, size_t len) { - if (!valid()) { - // TODO: proper error handling for all 154 error codes. - return Result::err({}); - } - - auto *state = static_cast(this->handle_state_); - Borrow borrow(state->stream_handle_); - - while (len > 0) { - auto capacity_res = capacity(); - if (capacity_res.is_err()) { - // TODO: proper error handling for all 154 error codes. - return Result::err(154); - } - auto capacity = capacity_res.unwrap(); - auto bytes_to_write = std::min(len, static_cast(capacity)); - if (!write_to_outgoing_body(borrow, bytes, len)) { - return Result::err(154); - } - - bytes += bytes_to_write; - len -= bytes_to_write; - } - - return {}; -} - -class BodyAppendTask final : public api::AsyncTask { - enum class State { - BlockedOnBoth, - BlockedOnIncoming, - BlockedOnOutgoing, - Ready, - Done, - }; - - HttpIncomingBody *incoming_body_; - HttpOutgoingBody *outgoing_body_; - PollableHandle incoming_pollable_; - PollableHandle outgoing_pollable_; - State state_; - - void set_state(const State state) { - MOZ_ASSERT(state_ != State::Done); - state_ = state; - } - -public: - explicit BodyAppendTask(HttpIncomingBody *incoming_body, HttpOutgoingBody *outgoing_body) - : incoming_body_(incoming_body), outgoing_body_(outgoing_body) { - auto res = incoming_body_->subscribe(); - MOZ_ASSERT(!res.is_err()); - incoming_pollable_ = res.unwrap(); - - res = outgoing_body_->subscribe(); - MOZ_ASSERT(!res.is_err()); - outgoing_pollable_ = res.unwrap(); - - state_ = State::BlockedOnBoth; - } - - [[nodiscard]] bool run(api::Engine *engine) override { - // If run is called while we're blocked on the incoming stream, that means that stream's - // pollable has resolved, so the stream must be ready. - if (state_ == State::BlockedOnBoth || state_ == State::BlockedOnIncoming) { - auto res = incoming_body_->read(0); - MOZ_ASSERT(!res.is_err()); - auto [bytes, done] = std::move(res.unwrap()); - if (done) { - set_state(State::Done); - return true; - } - set_state(State::BlockedOnOutgoing); - } - - uint64_t capacity = 0; - if (state_ == State::BlockedOnOutgoing) { - auto res = outgoing_body_->capacity(); - if (res.is_err()) { - return false; - } - capacity = res.unwrap(); - if (capacity > 0) { - set_state(State::Ready); - } else { - engine->queue_async_task(this); - return true; - } - } - - MOZ_ASSERT(state_ == State::Ready); - - // TODO: reuse a buffer for this loop - do { - auto res = incoming_body_->read(capacity); - if (res.is_err()) { - // TODO: proper error handling. - return false; - } - auto [done, bytes] = std::move(res.unwrap()); - if (bytes.len == 0 && !done) { - set_state(State::BlockedOnIncoming); - engine->queue_async_task(this); - return true; - } - - auto offset = 0; - while (bytes.len - offset > 0) { - // TODO: remove double checking of write-readiness - // TODO: make this async by storing the remaining chunk in the task and marking it as being - // blocked on write - auto write_res = outgoing_body_->write(bytes.ptr.get() + offset, bytes.len - offset); - if (write_res.is_err()) { - // TODO: proper error handling. - return false; - } - offset += write_res.unwrap(); - } - - if (done) { - set_state(State::Done); - return true; - } - - auto capacity_res = outgoing_body_->capacity(); - if (capacity_res.is_err()) { - // TODO: proper error handling. - return false; - } - capacity = capacity_res.unwrap(); - } while (capacity > 0); - - set_state(State::BlockedOnOutgoing); - engine->queue_async_task(this); - return true; - } - - [[nodiscard]] bool cancel(api::Engine *engine) override { - MOZ_ASSERT_UNREACHABLE("BodyAppendTask's semantics don't allow for cancellation"); - return true; - } - - [[nodiscard]] int32_t id() override { - if (state_ == State::BlockedOnBoth || state_ == State::BlockedOnIncoming) { - return incoming_pollable_; - } - - MOZ_ASSERT(state_ == State::BlockedOnOutgoing, - "BodyAppendTask should only be queued if it's not known to be ready"); - return outgoing_pollable_; - } - - void trace(JSTracer *trc) override { - // Nothing to trace. - } -}; - -Result HttpOutgoingBody::append(api::Engine *engine, HttpIncomingBody *other) { - MOZ_ASSERT(valid()); - engine->queue_async_task(new BodyAppendTask(other, this)); - return {}; -} - -Result HttpOutgoingBody::close() { - MOZ_ASSERT(valid()); - - auto state = static_cast(handle_state_); - // A blocking flush is required here to ensure that all buffered contents are - // actually written before finishing the body. - Borrow borrow{state->stream_handle_}; - wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t err; - bool success = - wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_blocking_flush(borrow, &err); - MOZ_RELEASE_ASSERT(success); - if (state->pollable_handle_ != INVALID_POLLABLE_HANDLE) { - wasi_io_0_2_0_rc_2023_10_18_poll_pollable_drop_own(own_pollable_t{state->pollable_handle_}); - } - wasi_io_0_2_0_rc_2023_10_18_streams_output_stream_drop_own({state->stream_handle_}); - wasi_http_0_2_0_rc_2023_10_18_types_static_outgoing_body_finish({state->handle}, nullptr); - delete handle_state_; - handle_state_ = nullptr; - - return {}; -} -Result HttpOutgoingBody::subscribe() { - auto state = static_cast(handle_state_); - if (state->pollable_handle_ == INVALID_POLLABLE_HANDLE) { - Borrow borrow{state->stream_handle_}; - state->pollable_handle_ = - wasi_io_0_2_0_rc_2023_10_18_streams_method_output_stream_subscribe(borrow).__handle; - } - return Result::ok(state->pollable_handle_); -} - -void HttpOutgoingBody::unsubscribe() { - auto state = static_cast(handle_state_); - if (state->pollable_handle_ == INVALID_POLLABLE_HANDLE) { - return; - } - wasi_io_0_2_0_rc_2023_10_18_poll_pollable_drop_own(own_pollable_t{state->pollable_handle_}); - state->pollable_handle_ = INVALID_POLLABLE_HANDLE; -} - -static const char *http_method_names[9] = {"GET", "HEAD", "POST", "PUT", "DELETE", - "CONNECT", "OPTIONS", "TRACE", "PATCH"}; - -wasi_http_0_2_0_rc_2023_10_18_types_method_t http_method_to_host(string_view method_str) { - - if (method_str.empty()) { - return wasi_http_0_2_0_rc_2023_10_18_types_method_t{ - WASI_HTTP_0_2_0_RC_2023_10_18_TYPES_METHOD_GET}; - } - - auto method = method_str.begin(); - for (uint8_t i = 0; i < WASI_HTTP_0_2_0_RC_2023_10_18_TYPES_METHOD_OTHER; i++) { - auto name = http_method_names[i]; - if (strcasecmp(method, name) == 0) { - return wasi_http_0_2_0_rc_2023_10_18_types_method_t{i}; - } - } - - auto val = bindings_string_t{reinterpret_cast(const_cast(method)), - method_str.length()}; - return wasi_http_0_2_0_rc_2023_10_18_types_method_t{ - WASI_HTTP_0_2_0_RC_2023_10_18_TYPES_METHOD_OTHER, {val}}; -} - -HttpOutgoingRequest::HttpOutgoingRequest(HandleState *state) { this->handle_state_ = state; } - -HttpOutgoingRequest *HttpOutgoingRequest::make(string_view method_str, optional url_str, - HttpHeaders *headers) { - bindings_string_t path_with_query; - wasi_http_0_2_0_rc_2023_10_18_types_scheme_t scheme; - bindings_string_t authority; - - bindings_string_t *maybe_path_with_query = nullptr; - wasi_http_0_2_0_rc_2023_10_18_types_scheme_t *maybe_scheme = nullptr; - bindings_string_t *maybe_authority = nullptr; - - if (url_str) { - jsurl::SpecString val = url_str.value(); - jsurl::JSUrl *url = new_jsurl(&val); - jsurl::SpecSlice protocol = jsurl::protocol(url); - if (std::memcmp(protocol.data, "http:", protocol.len) == 0) { - scheme.tag = WASI_HTTP_0_2_0_RC_2023_10_18_TYPES_SCHEME_HTTP; - } else if (std::memcmp(protocol.data, "https:", protocol.len) == 0) { - scheme.tag = WASI_HTTP_0_2_0_RC_2023_10_18_TYPES_SCHEME_HTTPS; - } else { - scheme.tag = WASI_HTTP_0_2_0_RC_2023_10_18_TYPES_SCHEME_OTHER; - scheme.val = {const_cast(protocol.data), protocol.len - 1}; - } - maybe_scheme = &scheme; - - jsurl::SpecSlice authority_slice = jsurl::authority(url); - authority = {const_cast(authority_slice.data), authority_slice.len}; - maybe_authority = &authority; - - jsurl::SpecSlice path_with_query_slice = jsurl::path_with_query(url); - path_with_query = {const_cast(path_with_query_slice.data), - path_with_query_slice.len}; - maybe_path_with_query = &path_with_query; - } - - wasi_http_0_2_0_rc_2023_10_18_types_method_t method = http_method_to_host(method_str); - auto handle = wasi_http_0_2_0_rc_2023_10_18_types_constructor_outgoing_request( - &method, maybe_path_with_query, maybe_scheme, maybe_authority, - {headers->handle_state_->handle}) - .__handle; - - auto *state = new HandleState(handle); - auto *req = new HttpOutgoingRequest(state); - - req->headers_ = headers; - - return req; -} - -Result HttpOutgoingRequest::method() { - MOZ_ASSERT(valid()); - MOZ_ASSERT(headers_); - return Result::ok(method_); -} - -Result HttpOutgoingRequest::headers() { - MOZ_ASSERT(valid()); - MOZ_ASSERT(headers_); - return Result::ok(headers_); -} - -Result HttpOutgoingRequest::body() { - typedef Result Res; - MOZ_ASSERT(valid()); - if (!this->body_) { - outgoing_body_t body; - if (!wasi_http_0_2_0_rc_2023_10_18_types_method_outgoing_request_write( - wasi_http_0_2_0_rc_2023_10_18_types_borrow_outgoing_request({handle_state_->handle}), - &body)) { - return Res::err(154); - } - this->body_ = new HttpOutgoingBody(body.__handle); - } - return Res::ok(body_); -} - -Result HttpOutgoingRequest::send() { - MOZ_ASSERT(valid()); - future_incoming_response_t ret; - wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_error_t err; - wasi_http_0_2_0_rc_2023_10_18_outgoing_handler_handle({handle_state_->handle}, nullptr, &ret, - &err); - auto res = new FutureHttpIncomingResponse(ret.__handle); - return Result::ok(res); -} - -class IncomingBodyHandleState final : HandleState { - Handle stream_handle_; - PollableHandle pollable_handle_; - - friend HttpIncomingBody; - -public: - explicit IncomingBodyHandleState(const Handle handle) - : HandleState(handle), pollable_handle_(INVALID_POLLABLE_HANDLE) { - const borrow_incoming_body_t borrow = {handle}; - own_input_stream_t stream{}; - if (!wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_body_stream(borrow, &stream)) { - MOZ_ASSERT_UNREACHABLE("Getting a body's stream should never fail"); - } - stream_handle_ = stream.__handle; - } -}; - -HttpIncomingBody::HttpIncomingBody(const Handle handle) : Pollable() { - handle_state_ = new IncomingBodyHandleState(handle); -} - -Result HttpIncomingBody::read(uint32_t chunk_size) { - typedef Result Res; - - bindings_list_u8_t ret{}; - wasi_io_0_2_0_rc_2023_10_18_streams_stream_error_t err{}; - auto borrow = borrow_input_stream_t( - {static_cast(handle_state_)->stream_handle_}); - bool success = - wasi_io_0_2_0_rc_2023_10_18_streams_method_input_stream_read(borrow, chunk_size, &ret, &err); - if (!success) { - if (err.tag == WASI_IO_0_2_0_RC_2023_10_18_STREAMS_STREAM_ERROR_CLOSED) { - return Res::ok(ReadResult(true, nullptr, 0)); - } - return Res::err(154); - } - return Res::ok(ReadResult(false, unique_ptr(ret.ptr), ret.len)); -} - -// TODO: implement -Result HttpIncomingBody::close() { return {}; } - -Result HttpIncomingBody::subscribe() { - auto borrow = borrow_input_stream_t( - {static_cast(handle_state_)->stream_handle_}); - auto pollable = wasi_io_0_2_0_rc_2023_10_18_streams_method_input_stream_subscribe(borrow); - return Result::ok(pollable.__handle); -} -void HttpIncomingBody::unsubscribe() { - auto state = static_cast(handle_state_); - if (state->pollable_handle_ == INVALID_POLLABLE_HANDLE) { - return; - } - wasi_io_0_2_0_rc_2023_10_18_poll_pollable_drop_own(own_pollable_t{state->pollable_handle_}); - state->pollable_handle_ = INVALID_POLLABLE_HANDLE; -} - -FutureHttpIncomingResponse::FutureHttpIncomingResponse(Handle handle) { - handle_state_ = new HandleState(handle); -} - -Result> FutureHttpIncomingResponse::maybe_response() { - typedef Result> Res; - wasi_http_0_2_0_rc_2023_10_18_types_result_result_own_incoming_response_error_void_t res; - auto borrow = - wasi_http_0_2_0_rc_2023_10_18_types_borrow_future_incoming_response({handle_state_->handle}); - if (!wasi_http_0_2_0_rc_2023_10_18_types_method_future_incoming_response_get(borrow, &res)) { - return Res::ok(std::nullopt); - } - - MOZ_ASSERT(!res.is_err, - "FutureHttpIncomingResponse::poll must not be called again after succeeding once"); - - auto [is_err, val] = res.val.ok; - if (is_err) { - return Res::err(154); - } - - return Res::ok(new HttpIncomingResponse(val.ok.__handle)); -} - -Result FutureHttpIncomingResponse::subscribe() { - auto borrow = - wasi_http_0_2_0_rc_2023_10_18_types_borrow_future_incoming_response({handle_state_->handle}); - auto pollable = - wasi_http_0_2_0_rc_2023_10_18_types_method_future_incoming_response_subscribe(borrow); - return Result::ok(pollable.__handle); -} -void FutureHttpIncomingResponse::unsubscribe() { - // TODO: implement -} - -Result HttpIncomingResponse::status() { - if (status_ == UNSET_STATUS) { - if (!valid()) { - return Result::err(154); - } - auto borrow = - wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_response_t({handle_state_->handle}); - status_ = wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_response_status(borrow); - } - return Result::ok(status_); -} - -HttpIncomingResponse::HttpIncomingResponse(Handle handle) { - handle_state_ = new HandleState(handle); -} - -Result HttpIncomingResponse::headers() { - if (!headers_) { - if (!valid()) { - return Result::err(154); - } - auto res = wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_response_headers( - wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_response({handle_state_->handle})); - headers_ = new HttpHeaders(res.__handle); - } - - return Result::ok(headers_); -} - -Result HttpIncomingResponse::body() { - if (!body_) { - if (!valid()) { - return Result::err(154); - } - incoming_body_t body; - if (!wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_response_consume( - wasi_http_0_2_0_rc_2023_10_18_types_borrow_incoming_response({handle_state_->handle}), - &body)) { - return Result::err(154); - } - body_ = new HttpIncomingBody(body.__handle); - } - return Result::ok(body_); -} - -HttpOutgoingResponse::HttpOutgoingResponse(HandleState *state) { this->handle_state_ = state; } - -HttpOutgoingResponse *HttpOutgoingResponse::make(const uint16_t status, HttpHeaders *headers) { - auto borrow = - wasi_http_0_2_0_rc_2023_10_18_types_borrow_headers_t({headers->handle_state_->handle}); - auto handle = wasi_http_0_2_0_rc_2023_10_18_types_constructor_outgoing_response(status, borrow); - - auto *state = new HandleState(handle.__handle); - auto *resp = new HttpOutgoingResponse(state); - - resp->status_ = status; - resp->headers_ = headers; - - return resp; -} - -Result HttpOutgoingResponse::headers() { - if (!valid()) { - return Result::err(154); - } - return Result::ok(headers_); -} - -Result HttpOutgoingResponse::body() { - typedef Result Res; - MOZ_ASSERT(valid()); - if (!this->body_) { - outgoing_body_t body; - if (!wasi_http_0_2_0_rc_2023_10_18_types_method_outgoing_response_write( - wasi_http_0_2_0_rc_2023_10_18_types_borrow_outgoing_response({handle_state_->handle}), - &body)) { - return Res::err(154); - } - this->body_ = new HttpOutgoingBody(body.__handle); - } - return Res::ok(this->body_); -} -Result HttpOutgoingResponse::status() { return Result::ok(status_); } - -Result HttpOutgoingResponse::send(ResponseOutparam out_param) { - wasi_http_0_2_0_rc_2023_10_18_types_result_own_outgoing_response_error_t result; - - result.is_err = false; - result.val.ok = {this->handle_state_->handle}; - - wasi_http_0_2_0_rc_2023_10_18_types_static_response_outparam_set({out_param}, &result); - return {}; -} - -HttpIncomingRequest::HttpIncomingRequest(Handle handle) { handle_state_ = new HandleState(handle); } - -Result HttpIncomingRequest::method() { - if (method_.empty()) { - if (!valid()) { - return Result::err(154); - } - } - wasi_http_0_2_0_rc_2023_10_18_types_method_t method; - wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_request_method( - borrow_incoming_request_t(handle_state_->handle), &method); - if (method.tag != WASI_HTTP_0_2_0_RC_2023_10_18_TYPES_METHOD_OTHER) { - method_ = std::string(http_method_names[method.tag], strlen(http_method_names[method.tag])); - } else { - method_ = std::string(reinterpret_cast(method.val.other.ptr), method.val.other.len); - bindings_string_free(&method.val.other); - } - return Result::ok(method_); -} - -Result HttpIncomingRequest::headers() { - if (!headers_) { - if (!valid()) { - return Result::err(154); - } - borrow_incoming_request_t borrow(handle_state_->handle); - auto res = wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_request_headers(borrow); - headers_ = new HttpHeaders(res.__handle); - } - - return Result::ok(headers_); -} - -Result HttpIncomingRequest::body() { - if (!body_) { - if (!valid()) { - return Result::err(154); - } - incoming_body_t body; - if (!wasi_http_0_2_0_rc_2023_10_18_types_method_incoming_request_consume( - borrow_incoming_request_t(handle_state_->handle), &body)) { - return Result::err(154); - } - body_ = new HttpIncomingBody(body.__handle); - } - return Result::ok(body_); -} - -} // namespace host_api diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/host_call.cpp b/host-apis/wasi-0.2.0-rc-2023-10-18/host_call.cpp deleted file mode 100644 index b453614..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-10-18/host_call.cpp +++ /dev/null @@ -1,11 +0,0 @@ -#include "host_api.h" - -namespace host_api { - -/* Returns false if an exception is set on `cx` and the caller should - immediately return to propagate the exception. */ -void handle_api_error(JSContext *cx, uint8_t err, int line, const char *func) { - JS_ReportErrorUTF8(cx, "%s: An error occurred while using the host API.\n", func); -} - -} // namespace host_api diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/include/exports.h b/host-apis/wasi-0.2.0-rc-2023-10-18/include/exports.h deleted file mode 100644 index fc3077b..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-10-18/include/exports.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef WASI_PREVIEW2_EXPORTS -#define WASI_PREVIEW2_EXPORTS - -#define exports_wasi_http_incoming_handler \ - exports_wasi_http_0_2_0_rc_2023_10_18_incoming_handler_handle -#define exports_wasi_http_incoming_request \ - exports_wasi_http_0_2_0_rc_2023_10_18_incoming_handler_own_incoming_request_t -#define exports_wasi_http_response_outparam \ - exports_wasi_http_0_2_0_rc_2023_10_18_incoming_handler_own_response_outparam_t - -#define exports_wasi_cli_run_run exports_wasi_cli_0_2_0_rc_2023_10_18_run_run - -#endif diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/preview1-adapter-debug/wasi_snapshot_preview1.wasm b/host-apis/wasi-0.2.0-rc-2023-10-18/preview1-adapter-debug/wasi_snapshot_preview1.wasm deleted file mode 100755 index 7f10fc2a04f7512ff7086f59c312cb5cd4d4f84b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2357703 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 z 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 z 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

B;m8ng?qx`U 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 L-8=mzeCz)obzhXh diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/preview1-adapter-release/wasi_snapshot_preview1.wasm b/host-apis/wasi-0.2.0-rc-2023-10-18/preview1-adapter-release/wasi_snapshot_preview1.wasm deleted file mode 100755 index 2ff061d37d95be0013b787b89ac56f6724b5cdc0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 109319 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�eeIL{RNB? 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 diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/command-extended.wit b/host-apis/wasi-0.2.0-rc-2023-10-18/wit/command-extended.wit deleted file mode 100644 index 0661779..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/command-extended.wit +++ /dev/null @@ -1,37 +0,0 @@ -// All of the same imports and exports available in the wasi:cli/command world -// with addition of HTTP proxy related imports: -world command-extended { - import wasi:clocks/wall-clock@0.2.0-rc-2023-10-18; - import wasi:clocks/monotonic-clock@0.2.0-rc-2023-10-18; - import wasi:clocks/timezone@0.2.0-rc-2023-10-18; - import wasi:filesystem/types@0.2.0-rc-2023-10-18; - import wasi:filesystem/preopens@0.2.0-rc-2023-10-18; - import wasi:sockets/instance-network@0.2.0-rc-2023-10-18; - import wasi:sockets/ip-name-lookup@0.2.0-rc-2023-10-18; - import wasi:sockets/network@0.2.0-rc-2023-10-18; - import wasi:sockets/tcp-create-socket@0.2.0-rc-2023-10-18; - import wasi:sockets/tcp@0.2.0-rc-2023-10-18; - import wasi:sockets/udp-create-socket@0.2.0-rc-2023-10-18; - import wasi:sockets/udp@0.2.0-rc-2023-10-18; - import wasi:random/random@0.2.0-rc-2023-10-18; - import wasi:random/insecure@0.2.0-rc-2023-10-18; - import wasi:random/insecure-seed@0.2.0-rc-2023-10-18; - import wasi:io/poll@0.2.0-rc-2023-10-18; - import wasi:io/streams@0.2.0-rc-2023-10-18; - import wasi:cli/environment@0.2.0-rc-2023-10-18; - import wasi:cli/exit@0.2.0-rc-2023-10-18; - import wasi:cli/stdin@0.2.0-rc-2023-10-18; - import wasi:cli/stdout@0.2.0-rc-2023-10-18; - import wasi:cli/stderr@0.2.0-rc-2023-10-18; - import wasi:cli/terminal-input@0.2.0-rc-2023-10-18; - import wasi:cli/terminal-output@0.2.0-rc-2023-10-18; - import wasi:cli/terminal-stdin@0.2.0-rc-2023-10-18; - import wasi:cli/terminal-stdout@0.2.0-rc-2023-10-18; - import wasi:cli/terminal-stderr@0.2.0-rc-2023-10-18; - - // We should replace all others with `include self.command` - // as soon as the unioning of worlds is available: - // https://github.com/WebAssembly/component-model/issues/169 - import wasi:logging/logging@0.2.0-rc-2023-10-18; - import wasi:http/outgoing-handler@0.2.0-rc-2023-10-18; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/cli/command.wit b/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/cli/command.wit deleted file mode 100644 index d7ea2d9..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/cli/command.wit +++ /dev/null @@ -1,7 +0,0 @@ -package wasi:cli@0.2.0-rc-2023-10-18; - -world command { - include reactor; - - export run; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/cli/environment.wit b/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/cli/environment.wit deleted file mode 100644 index 7006523..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/cli/environment.wit +++ /dev/null @@ -1,18 +0,0 @@ -interface environment { - /// Get the POSIX-style environment variables. - /// - /// Each environment variable is provided as a pair of string variable names - /// and string value. - /// - /// Morally, these are a value import, but until value imports are available - /// in the component model, this import function should return the same - /// values each time it is called. - get-environment: func() -> list>; - - /// Get the POSIX-style arguments to the program. - get-arguments: func() -> list; - - /// Return a path that programs should use as their initial current working - /// directory, interpreting `.` as shorthand for this. - initial-cwd: func() -> option; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/cli/exit.wit b/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/cli/exit.wit deleted file mode 100644 index d0c2b82..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/cli/exit.wit +++ /dev/null @@ -1,4 +0,0 @@ -interface exit { - /// Exit the current instance and any linked instances. - exit: func(status: result); -} diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/cli/reactor.wit b/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/cli/reactor.wit deleted file mode 100644 index 904b994..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/cli/reactor.wit +++ /dev/null @@ -1,32 +0,0 @@ -package wasi:cli@0.2.0-rc-2023-10-18; - -world reactor { - import wasi:clocks/wall-clock@0.2.0-rc-2023-10-18; - import wasi:clocks/monotonic-clock@0.2.0-rc-2023-10-18; - import wasi:clocks/timezone@0.2.0-rc-2023-10-18; - import wasi:filesystem/types@0.2.0-rc-2023-10-18; - import wasi:filesystem/preopens@0.2.0-rc-2023-10-18; - import wasi:sockets/instance-network@0.2.0-rc-2023-10-18; - import wasi:sockets/ip-name-lookup@0.2.0-rc-2023-10-18; - import wasi:sockets/network@0.2.0-rc-2023-10-18; - import wasi:sockets/tcp-create-socket@0.2.0-rc-2023-10-18; - import wasi:sockets/tcp@0.2.0-rc-2023-10-18; - import wasi:sockets/udp-create-socket@0.2.0-rc-2023-10-18; - import wasi:sockets/udp@0.2.0-rc-2023-10-18; - import wasi:random/random@0.2.0-rc-2023-10-18; - import wasi:random/insecure@0.2.0-rc-2023-10-18; - import wasi:random/insecure-seed@0.2.0-rc-2023-10-18; - import wasi:io/poll@0.2.0-rc-2023-10-18; - import wasi:io/streams@0.2.0-rc-2023-10-18; - - import environment; - import exit; - import stdin; - import stdout; - import stderr; - import terminal-input; - import terminal-output; - import terminal-stdin; - import terminal-stdout; - import terminal-stderr; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/cli/run.wit b/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/cli/run.wit deleted file mode 100644 index a70ee8c..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/cli/run.wit +++ /dev/null @@ -1,4 +0,0 @@ -interface run { - /// Run the program. - run: func() -> result; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/cli/stdio.wit b/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/cli/stdio.wit deleted file mode 100644 index 513ca92..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/cli/stdio.wit +++ /dev/null @@ -1,17 +0,0 @@ -interface stdin { - use wasi:io/streams@0.2.0-rc-2023-10-18.{input-stream}; - - get-stdin: func() -> input-stream; -} - -interface stdout { - use wasi:io/streams@0.2.0-rc-2023-10-18.{output-stream}; - - get-stdout: func() -> output-stream; -} - -interface stderr { - use wasi:io/streams@0.2.0-rc-2023-10-18.{output-stream}; - - get-stderr: func() -> output-stream; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/cli/terminal.wit b/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/cli/terminal.wit deleted file mode 100644 index 4749576..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/cli/terminal.wit +++ /dev/null @@ -1,47 +0,0 @@ -interface terminal-input { - /// The input side of a terminal. - resource terminal-input; - - // In the future, this may include functions for disabling echoing, - // disabling input buffering so that keyboard events are sent through - // immediately, querying supported features, and so on. -} - -interface terminal-output { - /// The output side of a terminal. - resource terminal-output; - - // In the future, this may include functions for querying the terminal - // size, being notified of terminal size changes, querying supported - // features, and so on. -} - -/// An interface providing an optional `terminal-input` for stdin as a -/// link-time authority. -interface terminal-stdin { - use terminal-input.{terminal-input}; - - /// If stdin is connected to a terminal, return a `terminal-input` handle - /// allowing further interaction with it. - get-terminal-stdin: func() -> option; -} - -/// An interface providing an optional `terminal-output` for stdout as a -/// link-time authority. -interface terminal-stdout { - use terminal-output.{terminal-output}; - - /// If stdout is connected to a terminal, return a `terminal-output` handle - /// allowing further interaction with it. - get-terminal-stdout: func() -> option; -} - -/// An interface providing an optional `terminal-output` for stderr as a -/// link-time authority. -interface terminal-stderr { - use terminal-output.{terminal-output}; - - /// If stderr is connected to a terminal, return a `terminal-output` handle - /// allowing further interaction with it. - get-terminal-stderr: func() -> option; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/clocks/monotonic-clock.wit b/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/clocks/monotonic-clock.wit deleted file mode 100644 index c0ecb52..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/clocks/monotonic-clock.wit +++ /dev/null @@ -1,32 +0,0 @@ -/// WASI Monotonic Clock is a clock API intended to let users measure elapsed -/// time. -/// -/// It is intended to be portable at least between Unix-family platforms and -/// Windows. -/// -/// A monotonic clock is a clock which has an unspecified initial value, and -/// successive reads of the clock will produce non-decreasing values. -/// -/// It is intended for measuring elapsed time. -interface monotonic-clock { - use wasi:io/poll@0.2.0-rc-2023-10-18.{pollable}; - - /// A timestamp in nanoseconds. - type instant = u64; - - /// Read the current value of the clock. - /// - /// The clock is monotonic, therefore calling this function repeatedly will - /// produce a sequence of non-decreasing values. - now: func() -> instant; - - /// Query the resolution of the clock. - resolution: func() -> instant; - - /// Create a `pollable` which will resolve once the specified time has been - /// reached. - subscribe: func( - when: instant, - absolute: bool - ) -> pollable; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/clocks/timezone.wit b/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/clocks/timezone.wit deleted file mode 100644 index e717e7b..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/clocks/timezone.wit +++ /dev/null @@ -1,48 +0,0 @@ -interface timezone { - use wall-clock.{datetime}; - - /// Return information needed to display the given `datetime`. This includes - /// the UTC offset, the time zone name, and a flag indicating whether - /// daylight saving time is active. - /// - /// If the timezone cannot be determined for the given `datetime`, return a - /// `timezone-display` for `UTC` with a `utc-offset` of 0 and no daylight - /// saving time. - display: func(when: datetime) -> timezone-display; - - /// The same as `display`, but only return the UTC offset. - utc-offset: func(when: datetime) -> s32; - - /// Information useful for displaying the timezone of a specific `datetime`. - /// - /// This information may vary within a single `timezone` to reflect daylight - /// saving time adjustments. - record timezone-display { - /// The number of seconds difference between UTC time and the local - /// time of the timezone. - /// - /// The returned value will always be less than 86400 which is the - /// number of seconds in a day (24*60*60). - /// - /// In implementations that do not expose an actual time zone, this - /// should return 0. - utc-offset: s32, - - /// The abbreviated name of the timezone to display to a user. The name - /// `UTC` indicates Coordinated Universal Time. Otherwise, this should - /// reference local standards for the name of the time zone. - /// - /// In implementations that do not expose an actual time zone, this - /// should be the string `UTC`. - /// - /// In time zones that do not have an applicable name, a formatted - /// representation of the UTC offset may be returned, such as `-04:00`. - name: string, - - /// Whether daylight saving time is active. - /// - /// In implementations that do not expose an actual time zone, this - /// should return false. - in-daylight-saving-time: bool, - } -} diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/clocks/wall-clock.wit b/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/clocks/wall-clock.wit deleted file mode 100644 index c395649..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/clocks/wall-clock.wit +++ /dev/null @@ -1,41 +0,0 @@ -/// WASI Wall Clock is a clock API intended to let users query the current -/// time. The name "wall" makes an analogy to a "clock on the wall", which -/// is not necessarily monotonic as it may be reset. -/// -/// It is intended to be portable at least between Unix-family platforms and -/// Windows. -/// -/// A wall clock is a clock which measures the date and time according to -/// some external reference. -/// -/// External references may be reset, so this clock is not necessarily -/// monotonic, making it unsuitable for measuring elapsed time. -/// -/// It is intended for reporting the current date and time for humans. -interface wall-clock { - /// A time and date in seconds plus nanoseconds. - record datetime { - seconds: u64, - nanoseconds: u32, - } - - /// Read the current value of the clock. - /// - /// This clock is not monotonic, therefore calling this function repeatedly - /// will not necessarily produce a sequence of non-decreasing values. - /// - /// The returned timestamps represent the number of seconds since - /// 1970-01-01T00:00:00Z, also known as [POSIX's Seconds Since the Epoch], - /// also known as [Unix Time]. - /// - /// The nanoseconds field of the output is always less than 1000000000. - /// - /// [POSIX's Seconds Since the Epoch]: https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_xbd_chap04.html#tag_21_04_16 - /// [Unix Time]: https://en.wikipedia.org/wiki/Unix_time - now: func() -> datetime; - - /// Query the resolution of the clock. - /// - /// The nanoseconds field of the output is always less than 1000000000. - resolution: func() -> datetime; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/clocks/world.wit b/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/clocks/world.wit deleted file mode 100644 index cdfb51d..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/clocks/world.wit +++ /dev/null @@ -1,7 +0,0 @@ -package wasi:clocks@0.2.0-rc-2023-10-18; - -world imports { - import monotonic-clock; - import wall-clock; - import timezone; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/filesystem/preopens.wit b/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/filesystem/preopens.wit deleted file mode 100644 index 3f787ac..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/filesystem/preopens.wit +++ /dev/null @@ -1,6 +0,0 @@ -interface preopens { - use types.{descriptor}; - - /// Return the set of preopened directories, and their path. - get-directories: func() -> list>; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/filesystem/types.wit b/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/filesystem/types.wit deleted file mode 100644 index af36135..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/filesystem/types.wit +++ /dev/null @@ -1,810 +0,0 @@ -/// WASI filesystem is a filesystem API primarily intended to let users run WASI -/// programs that access their files on their existing filesystems, without -/// significant overhead. -/// -/// It is intended to be roughly portable between Unix-family platforms and -/// Windows, though it does not hide many of the major differences. -/// -/// Paths are passed as interface-type `string`s, meaning they must consist of -/// a sequence of Unicode Scalar Values (USVs). Some filesystems may contain -/// paths which are not accessible by this API. -/// -/// The directory separator in WASI is always the forward-slash (`/`). -/// -/// All paths in WASI are relative paths, and are interpreted relative to a -/// `descriptor` referring to a base directory. If a `path` argument to any WASI -/// function starts with `/`, or if any step of resolving a `path`, including -/// `..` and symbolic link steps, reaches a directory outside of the base -/// directory, or reaches a symlink to an absolute or rooted path in the -/// underlying filesystem, the function fails with `error-code::not-permitted`. -/// -/// For more information about WASI path resolution and sandboxing, see -/// [WASI filesystem path resolution]. -/// -/// [WASI filesystem path resolution]: https://github.com/WebAssembly/wasi-filesystem/blob/main/path-resolution.md -interface types { - use wasi:io/streams@0.2.0-rc-2023-10-18.{input-stream, output-stream, error}; - use wasi:clocks/wall-clock@0.2.0-rc-2023-10-18.{datetime}; - - /// File size or length of a region within a file. - type filesize = u64; - - /// The type of a filesystem object referenced by a descriptor. - /// - /// Note: This was called `filetype` in earlier versions of WASI. - enum descriptor-type { - /// The type of the descriptor or file is unknown or is different from - /// any of the other types specified. - unknown, - /// The descriptor refers to a block device inode. - block-device, - /// The descriptor refers to a character device inode. - character-device, - /// The descriptor refers to a directory inode. - directory, - /// The descriptor refers to a named pipe. - fifo, - /// The file refers to a symbolic link inode. - symbolic-link, - /// The descriptor refers to a regular file inode. - regular-file, - /// The descriptor refers to a socket. - socket, - } - - /// Descriptor flags. - /// - /// Note: This was called `fdflags` in earlier versions of WASI. - flags descriptor-flags { - /// Read mode: Data can be read. - read, - /// Write mode: Data can be written to. - write, - /// Request that writes be performed according to synchronized I/O file - /// integrity completion. The data stored in the file and the file's - /// metadata are synchronized. This is similar to `O_SYNC` in POSIX. - /// - /// The precise semantics of this operation have not yet been defined for - /// WASI. At this time, it should be interpreted as a request, and not a - /// requirement. - file-integrity-sync, - /// Request that writes be performed according to synchronized I/O data - /// integrity completion. Only the data stored in the file is - /// synchronized. This is similar to `O_DSYNC` in POSIX. - /// - /// The precise semantics of this operation have not yet been defined for - /// WASI. At this time, it should be interpreted as a request, and not a - /// requirement. - data-integrity-sync, - /// Requests that reads be performed at the same level of integrety - /// requested for writes. This is similar to `O_RSYNC` in POSIX. - /// - /// The precise semantics of this operation have not yet been defined for - /// WASI. At this time, it should be interpreted as a request, and not a - /// requirement. - requested-write-sync, - /// Mutating directories mode: Directory contents may be mutated. - /// - /// When this flag is unset on a descriptor, operations using the - /// descriptor which would create, rename, delete, modify the data or - /// metadata of filesystem objects, or obtain another handle which - /// would permit any of those, shall fail with `error-code::read-only` if - /// they would otherwise succeed. - /// - /// This may only be set on directories. - mutate-directory, - } - - /// File attributes. - /// - /// Note: This was called `filestat` in earlier versions of WASI. - record descriptor-stat { - /// File type. - %type: descriptor-type, - /// Number of hard links to the file. - link-count: link-count, - /// For regular files, the file size in bytes. For symbolic links, the - /// length in bytes of the pathname contained in the symbolic link. - size: filesize, - /// Last data access timestamp. - /// - /// If the `option` is none, the platform doesn't maintain an access - /// timestamp for this file. - data-access-timestamp: option, - /// Last data modification timestamp. - /// - /// If the `option` is none, the platform doesn't maintain a - /// modification timestamp for this file. - data-modification-timestamp: option, - /// Last file status-change timestamp. - /// - /// If the `option` is none, the platform doesn't maintain a - /// status-change timestamp for this file. - status-change-timestamp: option, - } - - /// Flags determining the method of how paths are resolved. - flags path-flags { - /// As long as the resolved path corresponds to a symbolic link, it is - /// expanded. - symlink-follow, - } - - /// Open flags used by `open-at`. - flags open-flags { - /// Create file if it does not exist, similar to `O_CREAT` in POSIX. - create, - /// Fail if not a directory, similar to `O_DIRECTORY` in POSIX. - directory, - /// Fail if file already exists, similar to `O_EXCL` in POSIX. - exclusive, - /// Truncate file to size 0, similar to `O_TRUNC` in POSIX. - truncate, - } - - /// Permissions mode used by `open-at`, `change-file-permissions-at`, and - /// similar. - flags modes { - /// True if the resource is considered readable by the containing - /// filesystem. - readable, - /// True if the resource is considered writable by the containing - /// filesystem. - writable, - /// True if the resource is considered executable by the containing - /// filesystem. This does not apply to directories. - executable, - } - - /// Access type used by `access-at`. - variant access-type { - /// Test for readability, writeability, or executability. - access(modes), - - /// Test whether the path exists. - exists, - } - - /// Number of hard links to an inode. - type link-count = u64; - - /// When setting a timestamp, this gives the value to set it to. - variant new-timestamp { - /// Leave the timestamp set to its previous value. - no-change, - /// Set the timestamp to the current time of the system clock associated - /// with the filesystem. - now, - /// Set the timestamp to the given value. - timestamp(datetime), - } - - /// A directory entry. - record directory-entry { - /// The type of the file referred to by this directory entry. - %type: descriptor-type, - - /// The name of the object. - name: string, - } - - /// Error codes returned by functions, similar to `errno` in POSIX. - /// Not all of these error codes are returned by the functions provided by this - /// API; some are used in higher-level library layers, and others are provided - /// merely for alignment with POSIX. - enum error-code { - /// Permission denied, similar to `EACCES` in POSIX. - access, - /// Resource unavailable, or operation would block, similar to `EAGAIN` and `EWOULDBLOCK` in POSIX. - would-block, - /// Connection already in progress, similar to `EALREADY` in POSIX. - already, - /// Bad descriptor, similar to `EBADF` in POSIX. - bad-descriptor, - /// Device or resource busy, similar to `EBUSY` in POSIX. - busy, - /// Resource deadlock would occur, similar to `EDEADLK` in POSIX. - deadlock, - /// Storage quota exceeded, similar to `EDQUOT` in POSIX. - quota, - /// File exists, similar to `EEXIST` in POSIX. - exist, - /// File too large, similar to `EFBIG` in POSIX. - file-too-large, - /// Illegal byte sequence, similar to `EILSEQ` in POSIX. - illegal-byte-sequence, - /// Operation in progress, similar to `EINPROGRESS` in POSIX. - in-progress, - /// Interrupted function, similar to `EINTR` in POSIX. - interrupted, - /// Invalid argument, similar to `EINVAL` in POSIX. - invalid, - /// I/O error, similar to `EIO` in POSIX. - io, - /// Is a directory, similar to `EISDIR` in POSIX. - is-directory, - /// Too many levels of symbolic links, similar to `ELOOP` in POSIX. - loop, - /// Too many links, similar to `EMLINK` in POSIX. - too-many-links, - /// Message too large, similar to `EMSGSIZE` in POSIX. - message-size, - /// Filename too long, similar to `ENAMETOOLONG` in POSIX. - name-too-long, - /// No such device, similar to `ENODEV` in POSIX. - no-device, - /// No such file or directory, similar to `ENOENT` in POSIX. - no-entry, - /// No locks available, similar to `ENOLCK` in POSIX. - no-lock, - /// Not enough space, similar to `ENOMEM` in POSIX. - insufficient-memory, - /// No space left on device, similar to `ENOSPC` in POSIX. - insufficient-space, - /// Not a directory or a symbolic link to a directory, similar to `ENOTDIR` in POSIX. - not-directory, - /// Directory not empty, similar to `ENOTEMPTY` in POSIX. - not-empty, - /// State not recoverable, similar to `ENOTRECOVERABLE` in POSIX. - not-recoverable, - /// Not supported, similar to `ENOTSUP` and `ENOSYS` in POSIX. - unsupported, - /// Inappropriate I/O control operation, similar to `ENOTTY` in POSIX. - no-tty, - /// No such device or address, similar to `ENXIO` in POSIX. - no-such-device, - /// Value too large to be stored in data type, similar to `EOVERFLOW` in POSIX. - overflow, - /// Operation not permitted, similar to `EPERM` in POSIX. - not-permitted, - /// Broken pipe, similar to `EPIPE` in POSIX. - pipe, - /// Read-only file system, similar to `EROFS` in POSIX. - read-only, - /// Invalid seek, similar to `ESPIPE` in POSIX. - invalid-seek, - /// Text file busy, similar to `ETXTBSY` in POSIX. - text-file-busy, - /// Cross-device link, similar to `EXDEV` in POSIX. - cross-device, - } - - /// File or memory access pattern advisory information. - enum advice { - /// The application has no advice to give on its behavior with respect - /// to the specified data. - normal, - /// The application expects to access the specified data sequentially - /// from lower offsets to higher offsets. - sequential, - /// The application expects to access the specified data in a random - /// order. - random, - /// The application expects to access the specified data in the near - /// future. - will-need, - /// The application expects that it will not access the specified data - /// in the near future. - dont-need, - /// The application expects to access the specified data once and then - /// not reuse it thereafter. - no-reuse, - } - - /// A 128-bit hash value, split into parts because wasm doesn't have a - /// 128-bit integer type. - record metadata-hash-value { - /// 64 bits of a 128-bit hash value. - lower: u64, - /// Another 64 bits of a 128-bit hash value. - upper: u64, - } - - /// A descriptor is a reference to a filesystem object, which may be a file, - /// directory, named pipe, special file, or other object on which filesystem - /// calls may be made. - resource descriptor { - /// Return a stream for reading from a file, if available. - /// - /// May fail with an error-code describing why the file cannot be read. - /// - /// Multiple read, write, and append streams may be active on the same open - /// file and they do not interfere with each other. - /// - /// Note: This allows using `read-stream`, which is similar to `read` in POSIX. - read-via-stream: func( - /// The offset within the file at which to start reading. - offset: filesize, - ) -> result; - - /// Return a stream for writing to a file, if available. - /// - /// May fail with an error-code describing why the file cannot be written. - /// - /// Note: This allows using `write-stream`, which is similar to `write` in - /// POSIX. - write-via-stream: func( - /// The offset within the file at which to start writing. - offset: filesize, - ) -> result; - - /// Return a stream for appending to a file, if available. - /// - /// May fail with an error-code describing why the file cannot be appended. - /// - /// Note: This allows using `write-stream`, which is similar to `write` with - /// `O_APPEND` in in POSIX. - append-via-stream: func() -> result; - - /// Provide file advisory information on a descriptor. - /// - /// This is similar to `posix_fadvise` in POSIX. - advise: func( - /// The offset within the file to which the advisory applies. - offset: filesize, - /// The length of the region to which the advisory applies. - length: filesize, - /// The advice. - advice: advice - ) -> result<_, error-code>; - - /// Synchronize the data of a file to disk. - /// - /// This function succeeds with no effect if the file descriptor is not - /// opened for writing. - /// - /// Note: This is similar to `fdatasync` in POSIX. - sync-data: func() -> result<_, error-code>; - - /// Get flags associated with a descriptor. - /// - /// Note: This returns similar flags to `fcntl(fd, F_GETFL)` in POSIX. - /// - /// Note: This returns the value that was the `fs_flags` value returned - /// from `fdstat_get` in earlier versions of WASI. - get-flags: func() -> result; - - /// Get the dynamic type of a descriptor. - /// - /// Note: This returns the same value as the `type` field of the `fd-stat` - /// returned by `stat`, `stat-at` and similar. - /// - /// Note: This returns similar flags to the `st_mode & S_IFMT` value provided - /// by `fstat` in POSIX. - /// - /// Note: This returns the value that was the `fs_filetype` value returned - /// from `fdstat_get` in earlier versions of WASI. - get-type: func() -> result; - - /// Adjust the size of an open file. If this increases the file's size, the - /// extra bytes are filled with zeros. - /// - /// Note: This was called `fd_filestat_set_size` in earlier versions of WASI. - set-size: func(size: filesize) -> result<_, error-code>; - - /// Adjust the timestamps of an open file or directory. - /// - /// Note: This is similar to `futimens` in POSIX. - /// - /// Note: This was called `fd_filestat_set_times` in earlier versions of WASI. - set-times: func( - /// The desired values of the data access timestamp. - data-access-timestamp: new-timestamp, - /// The desired values of the data modification timestamp. - data-modification-timestamp: new-timestamp, - ) -> result<_, error-code>; - - /// Read from a descriptor, without using and updating the descriptor's offset. - /// - /// This function returns a list of bytes containing the data that was - /// read, along with a bool which, when true, indicates that the end of the - /// file was reached. The returned list will contain up to `length` bytes; it - /// may return fewer than requested, if the end of the file is reached or - /// if the I/O operation is interrupted. - /// - /// In the future, this may change to return a `stream`. - /// - /// Note: This is similar to `pread` in POSIX. - read: func( - /// The maximum number of bytes to read. - length: filesize, - /// The offset within the file at which to read. - offset: filesize, - ) -> result, bool>, error-code>; - - /// Write to a descriptor, without using and updating the descriptor's offset. - /// - /// It is valid to write past the end of a file; the file is extended to the - /// extent of the write, with bytes between the previous end and the start of - /// the write set to zero. - /// - /// In the future, this may change to take a `stream`. - /// - /// Note: This is similar to `pwrite` in POSIX. - write: func( - /// Data to write - buffer: list, - /// The offset within the file at which to write. - offset: filesize, - ) -> result; - - /// Read directory entries from a directory. - /// - /// On filesystems where directories contain entries referring to themselves - /// and their parents, often named `.` and `..` respectively, these entries - /// are omitted. - /// - /// This always returns a new stream which starts at the beginning of the - /// directory. Multiple streams may be active on the same directory, and they - /// do not interfere with each other. - read-directory: func() -> result; - - /// Synchronize the data and metadata of a file to disk. - /// - /// This function succeeds with no effect if the file descriptor is not - /// opened for writing. - /// - /// Note: This is similar to `fsync` in POSIX. - sync: func() -> result<_, error-code>; - - /// Create a directory. - /// - /// Note: This is similar to `mkdirat` in POSIX. - create-directory-at: func( - /// The relative path at which to create the directory. - path: string, - ) -> result<_, error-code>; - - /// Return the attributes of an open file or directory. - /// - /// Note: This is similar to `fstat` in POSIX, except that it does not return - /// device and inode information. For testing whether two descriptors refer to - /// the same underlying filesystem object, use `is-same-object`. To obtain - /// additional data that can be used do determine whether a file has been - /// modified, use `metadata-hash`. - /// - /// Note: This was called `fd_filestat_get` in earlier versions of WASI. - stat: func() -> result; - - /// Return the attributes of a file or directory. - /// - /// Note: This is similar to `fstatat` in POSIX, except that it does not - /// return device and inode information. See the `stat` description for a - /// discussion of alternatives. - /// - /// Note: This was called `path_filestat_get` in earlier versions of WASI. - stat-at: func( - /// Flags determining the method of how the path is resolved. - path-flags: path-flags, - /// The relative path of the file or directory to inspect. - path: string, - ) -> result; - - /// Adjust the timestamps of a file or directory. - /// - /// Note: This is similar to `utimensat` in POSIX. - /// - /// Note: This was called `path_filestat_set_times` in earlier versions of - /// WASI. - set-times-at: func( - /// Flags determining the method of how the path is resolved. - path-flags: path-flags, - /// The relative path of the file or directory to operate on. - path: string, - /// The desired values of the data access timestamp. - data-access-timestamp: new-timestamp, - /// The desired values of the data modification timestamp. - data-modification-timestamp: new-timestamp, - ) -> result<_, error-code>; - - /// Create a hard link. - /// - /// Note: This is similar to `linkat` in POSIX. - link-at: func( - /// Flags determining the method of how the path is resolved. - old-path-flags: path-flags, - /// The relative source path from which to link. - old-path: string, - /// The base directory for `new-path`. - new-descriptor: borrow, - /// The relative destination path at which to create the hard link. - new-path: string, - ) -> result<_, error-code>; - - /// Open a file or directory. - /// - /// The returned descriptor is not guaranteed to be the lowest-numbered - /// descriptor not currently open/ it is randomized to prevent applications - /// from depending on making assumptions about indexes, since this is - /// error-prone in multi-threaded contexts. The returned descriptor is - /// guaranteed to be less than 2**31. - /// - /// If `flags` contains `descriptor-flags::mutate-directory`, and the base - /// descriptor doesn't have `descriptor-flags::mutate-directory` set, - /// `open-at` fails with `error-code::read-only`. - /// - /// If `flags` contains `write` or `mutate-directory`, or `open-flags` - /// contains `truncate` or `create`, and the base descriptor doesn't have - /// `descriptor-flags::mutate-directory` set, `open-at` fails with - /// `error-code::read-only`. - /// - /// Note: This is similar to `openat` in POSIX. - open-at: func( - /// Flags determining the method of how the path is resolved. - path-flags: path-flags, - /// The relative path of the object to open. - path: string, - /// The method by which to open the file. - open-flags: open-flags, - /// Flags to use for the resulting descriptor. - %flags: descriptor-flags, - /// Permissions to use when creating a new file. - modes: modes - ) -> result; - - /// Read the contents of a symbolic link. - /// - /// If the contents contain an absolute or rooted path in the underlying - /// filesystem, this function fails with `error-code::not-permitted`. - /// - /// Note: This is similar to `readlinkat` in POSIX. - readlink-at: func( - /// The relative path of the symbolic link from which to read. - path: string, - ) -> result; - - /// Remove a directory. - /// - /// Return `error-code::not-empty` if the directory is not empty. - /// - /// Note: This is similar to `unlinkat(fd, path, AT_REMOVEDIR)` in POSIX. - remove-directory-at: func( - /// The relative path to a directory to remove. - path: string, - ) -> result<_, error-code>; - - /// Rename a filesystem object. - /// - /// Note: This is similar to `renameat` in POSIX. - rename-at: func( - /// The relative source path of the file or directory to rename. - old-path: string, - /// The base directory for `new-path`. - new-descriptor: borrow, - /// The relative destination path to which to rename the file or directory. - new-path: string, - ) -> result<_, error-code>; - - /// Create a symbolic link (also known as a "symlink"). - /// - /// If `old-path` starts with `/`, the function fails with - /// `error-code::not-permitted`. - /// - /// Note: This is similar to `symlinkat` in POSIX. - symlink-at: func( - /// The contents of the symbolic link. - old-path: string, - /// The relative destination path at which to create the symbolic link. - new-path: string, - ) -> result<_, error-code>; - - /// Check accessibility of a filesystem path. - /// - /// Check whether the given filesystem path names an object which is - /// readable, writable, or executable, or whether it exists. - /// - /// This does not a guarantee that subsequent accesses will succeed, as - /// filesystem permissions may be modified asynchronously by external - /// entities. - /// - /// Note: This is similar to `faccessat` with the `AT_EACCESS` flag in POSIX. - access-at: func( - /// Flags determining the method of how the path is resolved. - path-flags: path-flags, - /// The relative path to check. - path: string, - /// The type of check to perform. - %type: access-type - ) -> result<_, error-code>; - - /// Unlink a filesystem object that is not a directory. - /// - /// Return `error-code::is-directory` if the path refers to a directory. - /// Note: This is similar to `unlinkat(fd, path, 0)` in POSIX. - unlink-file-at: func( - /// The relative path to a file to unlink. - path: string, - ) -> result<_, error-code>; - - /// Change the permissions of a filesystem object that is not a directory. - /// - /// Note that the ultimate meanings of these permissions is - /// filesystem-specific. - /// - /// Note: This is similar to `fchmodat` in POSIX. - change-file-permissions-at: func( - /// Flags determining the method of how the path is resolved. - path-flags: path-flags, - /// The relative path to operate on. - path: string, - /// The new permissions for the filesystem object. - modes: modes, - ) -> result<_, error-code>; - - /// Change the permissions of a directory. - /// - /// Note that the ultimate meanings of these permissions is - /// filesystem-specific. - /// - /// Unlike in POSIX, the `executable` flag is not reinterpreted as a "search" - /// flag. `read` on a directory implies readability and searchability, and - /// `execute` is not valid for directories. - /// - /// Note: This is similar to `fchmodat` in POSIX. - change-directory-permissions-at: func( - /// Flags determining the method of how the path is resolved. - path-flags: path-flags, - /// The relative path to operate on. - path: string, - /// The new permissions for the directory. - modes: modes, - ) -> result<_, error-code>; - - /// Request a shared advisory lock for an open file. - /// - /// This requests a *shared* lock; more than one shared lock can be held for - /// a file at the same time. - /// - /// If the open file has an exclusive lock, this function downgrades the lock - /// to a shared lock. If it has a shared lock, this function has no effect. - /// - /// This requests an *advisory* lock, meaning that the file could be accessed - /// by other programs that don't hold the lock. - /// - /// It is unspecified how shared locks interact with locks acquired by - /// non-WASI programs. - /// - /// This function blocks until the lock can be acquired. - /// - /// Not all filesystems support locking; on filesystems which don't support - /// locking, this function returns `error-code::unsupported`. - /// - /// Note: This is similar to `flock(fd, LOCK_SH)` in Unix. - lock-shared: func() -> result<_, error-code>; - - /// Request an exclusive advisory lock for an open file. - /// - /// This requests an *exclusive* lock; no other locks may be held for the - /// file while an exclusive lock is held. - /// - /// If the open file has a shared lock and there are no exclusive locks held - /// for the file, this function upgrades the lock to an exclusive lock. If the - /// open file already has an exclusive lock, this function has no effect. - /// - /// This requests an *advisory* lock, meaning that the file could be accessed - /// by other programs that don't hold the lock. - /// - /// It is unspecified whether this function succeeds if the file descriptor - /// is not opened for writing. It is unspecified how exclusive locks interact - /// with locks acquired by non-WASI programs. - /// - /// This function blocks until the lock can be acquired. - /// - /// Not all filesystems support locking; on filesystems which don't support - /// locking, this function returns `error-code::unsupported`. - /// - /// Note: This is similar to `flock(fd, LOCK_EX)` in Unix. - lock-exclusive: func() -> result<_, error-code>; - - /// Request a shared advisory lock for an open file. - /// - /// This requests a *shared* lock; more than one shared lock can be held for - /// a file at the same time. - /// - /// If the open file has an exclusive lock, this function downgrades the lock - /// to a shared lock. If it has a shared lock, this function has no effect. - /// - /// This requests an *advisory* lock, meaning that the file could be accessed - /// by other programs that don't hold the lock. - /// - /// It is unspecified how shared locks interact with locks acquired by - /// non-WASI programs. - /// - /// This function returns `error-code::would-block` if the lock cannot be - /// acquired. - /// - /// Not all filesystems support locking; on filesystems which don't support - /// locking, this function returns `error-code::unsupported`. - /// - /// Note: This is similar to `flock(fd, LOCK_SH | LOCK_NB)` in Unix. - try-lock-shared: func() -> result<_, error-code>; - - /// Request an exclusive advisory lock for an open file. - /// - /// This requests an *exclusive* lock; no other locks may be held for the - /// file while an exclusive lock is held. - /// - /// If the open file has a shared lock and there are no exclusive locks held - /// for the file, this function upgrades the lock to an exclusive lock. If the - /// open file already has an exclusive lock, this function has no effect. - /// - /// This requests an *advisory* lock, meaning that the file could be accessed - /// by other programs that don't hold the lock. - /// - /// It is unspecified whether this function succeeds if the file descriptor - /// is not opened for writing. It is unspecified how exclusive locks interact - /// with locks acquired by non-WASI programs. - /// - /// This function returns `error-code::would-block` if the lock cannot be - /// acquired. - /// - /// Not all filesystems support locking; on filesystems which don't support - /// locking, this function returns `error-code::unsupported`. - /// - /// Note: This is similar to `flock(fd, LOCK_EX | LOCK_NB)` in Unix. - try-lock-exclusive: func() -> result<_, error-code>; - - /// Release a shared or exclusive lock on an open file. - /// - /// Note: This is similar to `flock(fd, LOCK_UN)` in Unix. - unlock: func() -> result<_, error-code>; - - /// Test whether two descriptors refer to the same filesystem object. - /// - /// In POSIX, this corresponds to testing whether the two descriptors have the - /// same device (`st_dev`) and inode (`st_ino` or `d_ino`) numbers. - /// wasi-filesystem does not expose device and inode numbers, so this function - /// may be used instead. - is-same-object: func(other: borrow) -> bool; - - /// Return a hash of the metadata associated with a filesystem object referred - /// to by a descriptor. - /// - /// This returns a hash of the last-modification timestamp and file size, and - /// may also include the inode number, device number, birth timestamp, and - /// other metadata fields that may change when the file is modified or - /// replaced. It may also include a secret value chosen by the - /// implementation and not otherwise exposed. - /// - /// Implementations are encourated to provide the following properties: - /// - /// - If the file is not modified or replaced, the computed hash value should - /// usually not change. - /// - If the object is modified or replaced, the computed hash value should - /// usually change. - /// - The inputs to the hash should not be easily computable from the - /// computed hash. - /// - /// However, none of these is required. - metadata-hash: func() -> result; - - /// Return a hash of the metadata associated with a filesystem object referred - /// to by a directory descriptor and a relative path. - /// - /// This performs the same hash computation as `metadata-hash`. - metadata-hash-at: func( - /// Flags determining the method of how the path is resolved. - path-flags: path-flags, - /// The relative path of the file or directory to inspect. - path: string, - ) -> result; - } - - /// A stream of directory entries. - resource directory-entry-stream { - /// Read a single directory entry from a `directory-entry-stream`. - read-directory-entry: func() -> result, error-code>; - } - - /// Attempts to extract a filesystem-related `error-code` from the stream - /// `error` provided. - /// - /// Stream operations which return `stream-error::last-operation-failed` - /// have a payload with more information about the operation that failed. - /// This payload can be passed through to this function to see if there's - /// filesystem-related information about the error to return. - /// - /// Note that this function is fallible because not all stream-related - /// errors are filesystem-related errors. - filesystem-error-code: func(err: borrow) -> option; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/filesystem/world.wit b/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/filesystem/world.wit deleted file mode 100644 index 3f953f8..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/filesystem/world.wit +++ /dev/null @@ -1,6 +0,0 @@ -package wasi:filesystem@0.2.0-rc-2023-10-18; - -world imports { - import types; - import preopens; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/http/incoming-handler.wit b/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/http/incoming-handler.wit deleted file mode 100644 index 6968d63..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/http/incoming-handler.wit +++ /dev/null @@ -1,24 +0,0 @@ -// The `wasi:http/incoming-handler` interface is meant to be exported by -// components and called by the host in response to a new incoming HTTP -// response. -// -// NOTE: in Preview3, this interface will be merged with -// `wasi:http/outgoing-handler` into a single `wasi:http/handler` interface -// that takes a `request` parameter and returns a `response` result. -// -interface incoming-handler { - use types.{incoming-request, response-outparam}; - - // The `handle` function takes an outparam instead of returning its response - // so that the component may stream its response while streaming any other - // request or response bodies. The callee MUST write a response to the - // `response-outparam` and then finish the response before returning. The `handle` - // function is allowed to continue execution after finishing the response's - // output stream. While this post-response execution is taken off the - // critical path, since there is no return value, there is no way to report - // its success or failure. - handle: func( - request: incoming-request, - response-out: response-outparam - ); -} diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/http/outgoing-handler.wit b/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/http/outgoing-handler.wit deleted file mode 100644 index 286e283..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/http/outgoing-handler.wit +++ /dev/null @@ -1,20 +0,0 @@ -// The `wasi:http/outgoing-handler` interface is meant to be imported by -// components and implemented by the host. -// -// NOTE: in Preview3, this interface will be merged with -// `wasi:http/outgoing-handler` into a single `wasi:http/handler` interface -// that takes a `request` parameter and returns a `response` result. -// -interface outgoing-handler { - use types.{outgoing-request, request-options, future-incoming-response, error}; - - // The parameter and result types of the `handle` function allow the caller - // to concurrently stream the bodies of the outgoing request and the incoming - // response. - // Consumes the outgoing-request. Gives an error if the outgoing-request - // is invalid or cannot be satisfied by this handler. - handle: func( - request: outgoing-request, - options: option - ) -> result; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/http/proxy.wit b/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/http/proxy.wit deleted file mode 100644 index dde0659..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/http/proxy.wit +++ /dev/null @@ -1,34 +0,0 @@ -package wasi:http@0.2.0-rc-2023-10-18; - -// The `wasi:http/proxy` world captures a widely-implementable intersection of -// hosts that includes HTTP forward and reverse proxies. Components targeting -// this world may concurrently stream in and out any number of incoming and -// outgoing HTTP requests. -world proxy { - // HTTP proxies have access to time and randomness. - import wasi:clocks/wall-clock@0.2.0-rc-2023-10-18; - import wasi:clocks/monotonic-clock@0.2.0-rc-2023-10-18; - import wasi:clocks/timezone@0.2.0-rc-2023-10-18; - import wasi:random/random@0.2.0-rc-2023-10-18; - - // Proxies have standard output and error streams which are expected to - // terminate in a developer-facing console provided by the host. - import wasi:cli/stdout@0.2.0-rc-2023-10-18; - import wasi:cli/stderr@0.2.0-rc-2023-10-18; - - // TODO: this is a temporary workaround until component tooling is able to - // gracefully handle the absence of stdin. Hosts must return an eof stream - // for this import, which is what wasi-libc + tooling will do automatically - // when this import is properly removed. - import wasi:cli/stdin@0.2.0-rc-2023-10-18; - - // This is the default handler to use when user code simply wants to make an - // HTTP request (e.g., via `fetch()`). - import outgoing-handler; - - // The host delivers incoming HTTP requests to a component by calling the - // `handle` function of this exported interface. A host may arbitrarily reuse - // or not reuse component instance when delivering incoming HTTP requests and - // thus a component must be able to handle 0..N calls to `handle`. - export incoming-handler; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/http/types.wit b/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/http/types.wit deleted file mode 100644 index 2cd2fe2..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/http/types.wit +++ /dev/null @@ -1,214 +0,0 @@ -// The `wasi:http/types` interface is meant to be imported by components to -// define the HTTP resource types and operations used by the component's -// imported and exported interfaces. -interface types { - use wasi:io/streams@0.2.0-rc-2023-10-18.{input-stream, output-stream}; - use wasi:io/poll@0.2.0-rc-2023-10-18.{pollable}; - - // This type corresponds to HTTP standard Methods. - variant method { - get, - head, - post, - put, - delete, - connect, - options, - trace, - patch, - other(string) - } - - // This type corresponds to HTTP standard Related Schemes. - variant scheme { - HTTP, - HTTPS, - other(string) - } - - // TODO: perhaps better align with HTTP semantics? - // This type enumerates the different kinds of errors that may occur when - // initially returning a response. - variant error { - invalid-url(string), - timeout-error(string), - protocol-error(string), - unexpected-error(string) - } - - // This following block defines the `fields` resource which corresponds to - // HTTP standard Fields. Soon, when resource types are added, the `type - // fields = u32` type alias can be replaced by a proper `resource fields` - // definition containing all the functions using the method syntactic sugar. - resource fields { - // Multiple values for a header are multiple entries in the list with the - // same key. - constructor(entries: list>>); - - // Values off wire are not necessarily well formed, so they are given by - // list instead of string. - get: func(name: string) -> list>; - - // Values off wire are not necessarily well formed, so they are given by - // list instead of string. - set: func(name: string, value: list>); - delete: func(name: string); - append: func(name: string, value: list); - - // Values off wire are not necessarily well formed, so they are given by - // list instead of string. - entries: func() -> list>>; - - // Deep copy of all contents in a fields. - clone: func() -> fields; - } - - type headers = fields; - type trailers = fields; - - // The following block defines the `incoming-request` and `outgoing-request` - // resource types that correspond to HTTP standard Requests. Soon, when - // resource types are added, the `u32` type aliases can be replaced by - // proper `resource` type definitions containing all the functions as - // methods. Later, Preview2 will allow both types to be merged together into - // a single `request` type (that uses the single `stream` type mentioned - // above). The `consume` and `write` methods may only be called once (and - // return failure thereafter). - resource incoming-request { - method: func() -> method; - - path-with-query: func() -> option; - - scheme: func() -> option; - - authority: func() -> option; - - headers: func() -> /* child */ headers; - // Will return the input-stream child at most once. If called more than - // once, subsequent calls will return error. - - consume: func() -> result; - } - - resource outgoing-request { - constructor( - method: method, - path-with-query: option, - scheme: option, - authority: option, - headers: borrow - ); - - // Will return the outgoing-body child at most once. If called more than - // once, subsequent calls will return error. - write: func() -> result< /* child */ outgoing-body>; - } - - // Additional optional parameters that can be set when making a request. - record request-options { - // The following timeouts are specific to the HTTP protocol and work - // independently of the overall timeouts passed to `io.poll.poll-list`. - - // The timeout for the initial connect. - connect-timeout-ms: option, - - // The timeout for receiving the first byte of the response body. - first-byte-timeout-ms: option, - - // The timeout for receiving the next chunk of bytes in the response body - // stream. - between-bytes-timeout-ms: option - } - - // The following block defines a special resource type used by the - // `wasi:http/incoming-handler` interface. When resource types are added, this - // block can be replaced by a proper `resource response-outparam { ... }` - // definition. Later, with Preview3, the need for an outparam goes away entirely - // (the `wasi:http/handler` interface used for both incoming and outgoing can - // simply return a `stream`). - resource response-outparam { - set: static func(param: response-outparam, response: result); - } - - // This type corresponds to the HTTP standard Status Code. - type status-code = u16; - - // The following block defines the `incoming-response` and `outgoing-response` - // resource types that correspond to HTTP standard Responses. Soon, when - // resource types are added, the `u32` type aliases can be replaced by proper - // `resource` type definitions containing all the functions as methods. Later, - // Preview2 will allow both types to be merged together into a single `response` - // type (that uses the single `stream` type mentioned above). The `consume` and - // `write` methods may only be called once (and return failure thereafter). - resource incoming-response { - status: func() -> status-code; - - headers: func() -> /* child */ headers; - - // May be called at most once. returns error if called additional times. - // TODO: make incoming-request-consume work the same way, giving a child - // incoming-body. - consume: func() -> result; - } - - resource incoming-body { - // returned input-stream is a child - the implementation may trap if - // incoming-body is dropped (or consumed by call to - // incoming-body-finish) before the input-stream is dropped. - // May be called at most once. returns error if called additional times. - %stream: func() -> result; - - // takes ownership of incoming-body. this will trap if the - // incoming-body-stream child is still alive! - finish: static func(this: incoming-body) -> - /* transitive child of the incoming-response of incoming-body */ future-trailers; - } - - resource future-trailers { - /// Pollable that resolves when the body has been fully read, and the trailers - /// are ready to be consumed. - subscribe: func() -> /* child */ pollable; - - /// Retrieve reference to trailers, if they are ready. - get: func() -> option>; - } - - resource outgoing-response { - constructor(status-code: status-code, headers: borrow); - - /// Will give the child outgoing-response at most once. subsequent calls will - /// return an error. - write: func() -> result; - } - - resource outgoing-body { - /// Will give the child output-stream at most once. subsequent calls will - /// return an error. - write: func() -> result; - - /// Finalize an outgoing body, optionally providing trailers. This must be - /// called to signal that the response is complete. If the `outgoing-body` is - /// dropped without calling `outgoing-body-finalize`, the implementation - /// should treat the body as corrupted. - finish: static func(this: outgoing-body, trailers: option); - } - - /// The following block defines a special resource type used by the - /// `wasi:http/outgoing-handler` interface to emulate - /// `future>` in advance of Preview3. Given a - /// `future-incoming-response`, the client can call the non-blocking `get` - /// method to get the result if it is available. If the result is not available, - /// the client can call `listen` to get a `pollable` that can be passed to - /// `wasi:io/poll.poll-list`. - resource future-incoming-response { - /// option indicates readiness. - /// outer result indicates you are allowed to get the - /// incoming-response-or-error at most once. subsequent calls after ready - /// will return an error here. - /// inner result indicates whether the incoming-response was available, or an - /// error occured. - get: func() -> option>>; - - subscribe: func() -> /* child */ pollable; - } -} diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/io/poll.wit b/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/io/poll.wit deleted file mode 100644 index 047389d..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/io/poll.wit +++ /dev/null @@ -1,34 +0,0 @@ -package wasi:io@0.2.0-rc-2023-10-18; - -/// A poll API intended to let users wait for I/O events on multiple handles -/// at once. -interface poll { - /// A "pollable" handle. - resource pollable; - - /// Poll for completion on a set of pollables. - /// - /// This function takes a list of pollables, which identify I/O sources of - /// interest, and waits until one or more of the events is ready for I/O. - /// - /// The result `list` contains one or more indices of handles in the - /// argument list that is ready for I/O. - /// - /// If the list contains more elements than can be indexed with a `u32` - /// value, this function traps. - /// - /// A timeout can be implemented by adding a pollable from the - /// wasi-clocks API to the list. - /// - /// This function does not return a `result`; polling in itself does not - /// do any I/O so it doesn't fail. If any of the I/O sources identified by - /// the pollables has an error, it is indicated by marking the source as - /// being reaedy for I/O. - poll-list: func(in: list>) -> list; - - /// Poll for completion on a single pollable. - /// - /// This function is similar to `poll-list`, but operates on only a single - /// pollable. When it returns, the handle is ready for I/O. - poll-one: func(in: borrow); -} diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/io/streams.wit b/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/io/streams.wit deleted file mode 100644 index d0e8f5c..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/io/streams.wit +++ /dev/null @@ -1,289 +0,0 @@ -package wasi:io@0.2.0-rc-2023-10-18; - -/// WASI I/O is an I/O abstraction API which is currently focused on providing -/// stream types. -/// -/// In the future, the component model is expected to add built-in stream types; -/// when it does, they are expected to subsume this API. -interface streams { - use poll.{pollable}; - - /// An error for input-stream and output-stream operations. - variant stream-error { - /// The last operation (a write or flush) failed before completion. - /// - /// More information is available in the `error` payload. - last-operation-failed(error), - /// The stream is closed: no more input will be accepted by the - /// stream. A closed output-stream will return this error on all - /// future operations. - closed - } - - /// Contextual error information about the last failure that happened on - /// a read, write, or flush from an `input-stream` or `output-stream`. - /// - /// This type is returned through the `stream-error` type whenever an - /// operation on a stream directly fails or an error is discovered - /// after-the-fact, for example when a write's failure shows up through a - /// later `flush` or `check-write`. - /// - /// Interfaces such as `wasi:filesystem/types` provide functionality to - /// further "downcast" this error into interface-specific error information. - resource error { - /// Returns a string that's suitable to assist humans in debugging this - /// error. - /// - /// The returned string will change across platforms and hosts which - /// means that parsing it, for example, would be a - /// platform-compatibility hazard. - to-debug-string: func() -> string; - } - - /// An input bytestream. - /// - /// `input-stream`s are *non-blocking* to the extent practical on underlying - /// platforms. I/O operations always return promptly; if fewer bytes are - /// promptly available than requested, they return the number of bytes promptly - /// available, which could even be zero. To wait for data to be available, - /// use the `subscribe` function to obtain a `pollable` which can be polled - /// for using `wasi:io/poll`. - resource input-stream { - /// Perform a non-blocking read from the stream. - /// - /// This function returns a list of bytes containing the data that was - /// read, along with a `stream-status` which, indicates whether further - /// reads are expected to produce data. The returned list will contain up to - /// `len` bytes; it may return fewer than requested, but not more. An - /// empty list and `stream-status:open` indicates no more data is - /// available at this time, and that the pollable given by `subscribe` - /// will be ready when more data is available. - /// - /// Once a stream has reached the end, subsequent calls to `read` or - /// `skip` will always report `stream-status:ended` rather than producing more - /// data. - /// - /// When the caller gives a `len` of 0, it represents a request to read 0 - /// bytes. This read should always succeed and return an empty list and - /// the current `stream-status`. - /// - /// The `len` parameter is a `u64`, which could represent a list of u8 which - /// is not possible to allocate in wasm32, or not desirable to allocate as - /// as a return value by the callee. The callee may return a list of bytes - /// less than `len` in size while more bytes are available for reading. - read: func( - /// The maximum number of bytes to read - len: u64 - ) -> result, stream-error>; - - /// Read bytes from a stream, after blocking until at least one byte can - /// be read. Except for blocking, identical to `read`. - blocking-read: func( - /// The maximum number of bytes to read - len: u64 - ) -> result, stream-error>; - - /// Skip bytes from a stream. - /// - /// This is similar to the `read` function, but avoids copying the - /// bytes into the instance. - /// - /// Once a stream has reached the end, subsequent calls to read or - /// `skip` will always report end-of-stream rather than producing more - /// data. - /// - /// This function returns the number of bytes skipped, along with a - /// `stream-status` indicating whether the end of the stream was - /// reached. The returned value will be at most `len`; it may be less. - skip: func( - /// The maximum number of bytes to skip. - len: u64, - ) -> result; - - /// Skip bytes from a stream, after blocking until at least one byte - /// can be skipped. Except for blocking behavior, identical to `skip`. - blocking-skip: func( - /// The maximum number of bytes to skip. - len: u64, - ) -> result; - - /// Create a `pollable` which will resolve once either the specified stream - /// has bytes available to read or the other end of the stream has been - /// closed. - /// The created `pollable` is a child resource of the `input-stream`. - /// Implementations may trap if the `input-stream` is dropped before - /// all derived `pollable`s created with this function are dropped. - subscribe: func() -> pollable; - } - - - /// An output bytestream. - /// - /// `output-stream`s are *non-blocking* to the extent practical on - /// underlying platforms. Except where specified otherwise, I/O operations also - /// always return promptly, after the number of bytes that can be written - /// promptly, which could even be zero. To wait for the stream to be ready to - /// accept data, the `subscribe` function to obtain a `pollable` which can be - /// polled for using `wasi:io/poll`. - resource output-stream { - /// Check readiness for writing. This function never blocks. - /// - /// Returns the number of bytes permitted for the next call to `write`, - /// or an error. Calling `write` with more bytes than this function has - /// permitted will trap. - /// - /// When this function returns 0 bytes, the `subscribe` pollable will - /// become ready when this function will report at least 1 byte, or an - /// error. - check-write: func() -> result; - - /// Perform a write. This function never blocks. - /// - /// Precondition: check-write gave permit of Ok(n) and contents has a - /// length of less than or equal to n. Otherwise, this function will trap. - /// - /// returns Err(closed) without writing if the stream has closed since - /// the last call to check-write provided a permit. - write: func( - contents: list - ) -> result<_, stream-error>; - - /// Perform a write of up to 4096 bytes, and then flush the stream. Block - /// until all of these operations are complete, or an error occurs. - /// - /// This is a convenience wrapper around the use of `check-write`, - /// `subscribe`, `write`, and `flush`, and is implemented with the - /// following pseudo-code: - /// - /// ```text - /// let pollable = this.subscribe(); - /// while !contents.is_empty() { - /// // Wait for the stream to become writable - /// poll-one(pollable); - /// let Ok(n) = this.check-write(); // eliding error handling - /// let len = min(n, contents.len()); - /// let (chunk, rest) = contents.split_at(len); - /// this.write(chunk ); // eliding error handling - /// contents = rest; - /// } - /// this.flush(); - /// // Wait for completion of `flush` - /// poll-one(pollable); - /// // Check for any errors that arose during `flush` - /// let _ = this.check-write(); // eliding error handling - /// ``` - blocking-write-and-flush: func( - contents: list - ) -> result<_, stream-error>; - - /// Request to flush buffered output. This function never blocks. - /// - /// This tells the output-stream that the caller intends any buffered - /// output to be flushed. the output which is expected to be flushed - /// is all that has been passed to `write` prior to this call. - /// - /// Upon calling this function, the `output-stream` will not accept any - /// writes (`check-write` will return `ok(0)`) until the flush has - /// completed. The `subscribe` pollable will become ready when the - /// flush has completed and the stream can accept more writes. - flush: func() -> result<_, stream-error>; - - /// Request to flush buffered output, and block until flush completes - /// and stream is ready for writing again. - blocking-flush: func() -> result<_, stream-error>; - - /// Create a `pollable` which will resolve once the output-stream - /// is ready for more writing, or an error has occured. When this - /// pollable is ready, `check-write` will return `ok(n)` with n>0, or an - /// error. - /// - /// If the stream is closed, this pollable is always ready immediately. - /// - /// The created `pollable` is a child resource of the `output-stream`. - /// Implementations may trap if the `output-stream` is dropped before - /// all derived `pollable`s created with this function are dropped. - subscribe: func() -> pollable; - - /// Write zeroes to a stream. - /// - /// this should be used precisely like `write` with the exact same - /// preconditions (must use check-write first), but instead of - /// passing a list of bytes, you simply pass the number of zero-bytes - /// that should be written. - write-zeroes: func( - /// The number of zero-bytes to write - len: u64 - ) -> result<_, stream-error>; - - /// Perform a write of up to 4096 zeroes, and then flush the stream. - /// Block until all of these operations are complete, or an error - /// occurs. - /// - /// This is a convenience wrapper around the use of `check-write`, - /// `subscribe`, `write-zeroes`, and `flush`, and is implemented with - /// the following pseudo-code: - /// - /// ```text - /// let pollable = this.subscribe(); - /// while num_zeroes != 0 { - /// // Wait for the stream to become writable - /// poll-one(pollable); - /// let Ok(n) = this.check-write(); // eliding error handling - /// let len = min(n, num_zeroes); - /// this.write-zeroes(len); // eliding error handling - /// num_zeroes -= len; - /// } - /// this.flush(); - /// // Wait for completion of `flush` - /// poll-one(pollable); - /// // Check for any errors that arose during `flush` - /// let _ = this.check-write(); // eliding error handling - /// ``` - blocking-write-zeroes-and-flush: func( - /// The number of zero-bytes to write - len: u64 - ) -> result<_, stream-error>; - - /// Read from one stream and write to another. - /// - /// This function returns the number of bytes transferred; it may be less - /// than `len`. - /// - /// Unlike other I/O functions, this function blocks until all the data - /// read from the input stream has been written to the output stream. - splice: func( - /// The stream to read from - src: input-stream, - /// The number of bytes to splice - len: u64, - ) -> result; - - /// Read from one stream and write to another, with blocking. - /// - /// This is similar to `splice`, except that it blocks until at least - /// one byte can be read. - blocking-splice: func( - /// The stream to read from - src: input-stream, - /// The number of bytes to splice - len: u64, - ) -> result; - - /// Forward the entire contents of an input stream to an output stream. - /// - /// This function repeatedly reads from the input stream and writes - /// the data to the output stream, until the end of the input stream - /// is reached, or an error is encountered. - /// - /// Unlike other I/O functions, this function blocks until the end - /// of the input stream is seen and all the data has been written to - /// the output stream. - /// - /// This function returns the number of bytes transferred, and the status of - /// the output stream. - forward: func( - /// The stream to read from - src: input-stream - ) -> result; - } -} diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/io/world.wit b/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/io/world.wit deleted file mode 100644 index 3627c9d..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/io/world.wit +++ /dev/null @@ -1,6 +0,0 @@ -package wasi:io@0.2.0-rc-2023-10-18; - -world imports { - import streams; - import poll; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/logging/logging.wit b/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/logging/logging.wit deleted file mode 100644 index b897a5a..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/logging/logging.wit +++ /dev/null @@ -1,37 +0,0 @@ -package wasi:logging@0.2.0-rc-2023-10-18; - -/// WASI Logging is a logging API intended to let users emit log messages with -/// simple priority levels and context values. -interface logging { - /// A log level, describing a kind of message. - enum level { - /// Describes messages about the values of variables and the flow of - /// control within a program. - trace, - - /// Describes messages likely to be of interest to someone debugging a - /// program. - debug, - - /// Describes messages likely to be of interest to someone monitoring a - /// program. - info, - - /// Describes messages indicating hazardous situations. - warn, - - /// Describes messages indicating serious errors. - error, - - /// Describes messages indicating fatal errors. - critical, - } - - /// Emit a log message. - /// - /// A log message has a `level` describing what kind of message is being - /// sent, a context, which is an uninterpreted string meant to help - /// consumers group similar messages, and a string containing the message - /// text. - log: func(level: level, context: string, message: string); -} diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/logging/world.wit b/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/logging/world.wit deleted file mode 100644 index a0fb255..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/logging/world.wit +++ /dev/null @@ -1,5 +0,0 @@ -package wasi:logging@0.2.0-rc-2023-10-18; - -world imports { - import logging; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/random/insecure-seed.wit b/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/random/insecure-seed.wit deleted file mode 100644 index 139aed1..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/random/insecure-seed.wit +++ /dev/null @@ -1,24 +0,0 @@ -/// The insecure-seed interface for seeding hash-map DoS resistance. -/// -/// It is intended to be portable at least between Unix-family platforms and -/// Windows. -interface insecure-seed { - /// Return a 128-bit value that may contain a pseudo-random value. - /// - /// The returned value is not required to be computed from a CSPRNG, and may - /// even be entirely deterministic. Host implementations are encouraged to - /// provide pseudo-random values to any program exposed to - /// attacker-controlled content, to enable DoS protection built into many - /// languages' hash-map implementations. - /// - /// This function is intended to only be called once, by a source language - /// to initialize Denial Of Service (DoS) protection in its hash-map - /// implementation. - /// - /// # Expected future evolution - /// - /// This will likely be changed to a value import, to prevent it from being - /// called multiple times and potentially used for purposes other than DoS - /// protection. - insecure-seed: func() -> tuple; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/random/insecure.wit b/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/random/insecure.wit deleted file mode 100644 index 2ffd223..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/random/insecure.wit +++ /dev/null @@ -1,21 +0,0 @@ -/// The insecure interface for insecure pseudo-random numbers. -/// -/// It is intended to be portable at least between Unix-family platforms and -/// Windows. -interface insecure { - /// Return `len` insecure pseudo-random bytes. - /// - /// This function is not cryptographically secure. Do not use it for - /// anything related to security. - /// - /// There are no requirements on the values of the returned bytes, however - /// implementations are encouraged to return evenly distributed values with - /// a long period. - get-insecure-random-bytes: func(len: u64) -> list; - - /// Return an insecure pseudo-random `u64` value. - /// - /// This function returns the same type of pseudo-random data as - /// `get-insecure-random-bytes`, represented as a `u64`. - get-insecure-random-u64: func() -> u64; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/random/random.wit b/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/random/random.wit deleted file mode 100644 index 2c3c6a8..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/random/random.wit +++ /dev/null @@ -1,25 +0,0 @@ -/// WASI Random is a random data API. -/// -/// It is intended to be portable at least between Unix-family platforms and -/// Windows. -interface random { - /// Return `len` cryptographically-secure random or pseudo-random bytes. - /// - /// This function must produce data at least as cryptographically secure and - /// fast as an adequately seeded cryptographically-secure pseudo-random - /// number generator (CSPRNG). It must not block, from the perspective of - /// the calling program, under any circumstances, including on the first - /// request and on requests for numbers of bytes. The returned data must - /// always be unpredictable. - /// - /// This function must always return fresh data. Deterministic environments - /// must omit this function, rather than implementing it with deterministic - /// data. - get-random-bytes: func(len: u64) -> list; - - /// Return a cryptographically-secure random or pseudo-random `u64` value. - /// - /// This function returns the same type of data as `get-random-bytes`, - /// represented as a `u64`. - get-random-u64: func() -> u64; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/random/world.wit b/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/random/world.wit deleted file mode 100644 index dcbff93..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/random/world.wit +++ /dev/null @@ -1,7 +0,0 @@ -package wasi:random@0.2.0-rc-2023-10-18; - -world imports { - import random; - import insecure; - import insecure-seed; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/sockets/instance-network.wit b/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/sockets/instance-network.wit deleted file mode 100644 index 14e4479..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/sockets/instance-network.wit +++ /dev/null @@ -1,9 +0,0 @@ - -/// This interface provides a value-export of the default network handle.. -interface instance-network { - use network.{network}; - - /// Get a handle to the default network. - instance-network: func() -> network; - -} diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/sockets/ip-name-lookup.wit b/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/sockets/ip-name-lookup.wit deleted file mode 100644 index f2dab32..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/sockets/ip-name-lookup.wit +++ /dev/null @@ -1,61 +0,0 @@ - -interface ip-name-lookup { - use wasi:io/poll@0.2.0-rc-2023-10-18.{pollable}; - use network.{network, error-code, ip-address, ip-address-family}; - - - /// Resolve an internet host name to a list of IP addresses. - /// - /// See the wasi-socket proposal README.md for a comparison with getaddrinfo. - /// - /// # Parameters - /// - `name`: The name to look up. IP addresses are not allowed. Unicode domain names are automatically converted - /// to ASCII using IDNA encoding. - /// - `address-family`: If provided, limit the results to addresses of this specific address family. - /// - `include-unavailable`: When set to true, this function will also return addresses of which the runtime - /// thinks (or knows) can't be connected to at the moment. For example, this will return IPv6 addresses on - /// systems without an active IPv6 interface. Notes: - /// - Even when no public IPv6 interfaces are present or active, names like "localhost" can still resolve to an IPv6 address. - /// - Whatever is "available" or "unavailable" is volatile and can change everytime a network cable is unplugged. - /// - /// This function never blocks. It either immediately fails or immediately returns successfully with a `resolve-address-stream` - /// that can be used to (asynchronously) fetch the results. - /// - /// At the moment, the stream never completes successfully with 0 items. Ie. the first call - /// to `resolve-next-address` never returns `ok(none)`. This may change in the future. - /// - /// # Typical errors - /// - `invalid-argument`: `name` is a syntactically invalid domain name. - /// - `invalid-argument`: `name` is an IP address. - /// - `not-supported`: The specified `address-family` is not supported. (EAI_FAMILY) - /// - /// # References: - /// - - /// - - /// - - /// - - resolve-addresses: func(network: borrow, name: string, address-family: option, include-unavailable: bool) -> result; - - resource resolve-address-stream { - /// Returns the next address from the resolver. - /// - /// This function should be called multiple times. On each call, it will - /// return the next address in connection order preference. If all - /// addresses have been exhausted, this function returns `none`. - /// - /// This function never returns IPv4-mapped IPv6 addresses. - /// - /// # Typical errors - /// - `name-unresolvable`: Name does not exist or has no suitable associated IP addresses. (EAI_NONAME, EAI_NODATA, EAI_ADDRFAMILY) - /// - `temporary-resolver-failure`: A temporary failure in name resolution occurred. (EAI_AGAIN) - /// - `permanent-resolver-failure`: A permanent failure in name resolution occurred. (EAI_FAIL) - /// - `would-block`: A result is not available yet. (EWOULDBLOCK, EAGAIN) - resolve-next-address: func() -> result, error-code>; - - /// Create a `pollable` which will resolve once the stream is ready for I/O. - /// - /// Note: this function is here for WASI Preview2 only. - /// It's planned to be removed when `future` is natively supported in Preview3. - subscribe: func() -> pollable; - } -} diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/sockets/network.wit b/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/sockets/network.wit deleted file mode 100644 index fc51604..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/sockets/network.wit +++ /dev/null @@ -1,146 +0,0 @@ - -interface network { - /// An opaque resource that represents access to (a subset of) the network. - /// This enables context-based security for networking. - /// There is no need for this to map 1:1 to a physical network interface. - resource network; - - /// Error codes. - /// - /// In theory, every API can return any error code. - /// In practice, API's typically only return the errors documented per API - /// combined with a couple of errors that are always possible: - /// - `unknown` - /// - `access-denied` - /// - `not-supported` - /// - `out-of-memory` - /// - `concurrency-conflict` - /// - /// See each individual API for what the POSIX equivalents are. They sometimes differ per API. - enum error-code { - // ### GENERAL ERRORS ### - - /// Unknown error - unknown, - - /// Access denied. - /// - /// POSIX equivalent: EACCES, EPERM - access-denied, - - /// The operation is not supported. - /// - /// POSIX equivalent: EOPNOTSUPP - not-supported, - - /// One of the arguments is invalid. - /// - /// POSIX equivalent: EINVAL - invalid-argument, - - /// Not enough memory to complete the operation. - /// - /// POSIX equivalent: ENOMEM, ENOBUFS, EAI_MEMORY - out-of-memory, - - /// The operation timed out before it could finish completely. - timeout, - - /// This operation is incompatible with another asynchronous operation that is already in progress. - /// - /// POSIX equivalent: EALREADY - concurrency-conflict, - - /// Trying to finish an asynchronous operation that: - /// - has not been started yet, or: - /// - was already finished by a previous `finish-*` call. - /// - /// Note: this is scheduled to be removed when `future`s are natively supported. - not-in-progress, - - /// The operation has been aborted because it could not be completed immediately. - /// - /// Note: this is scheduled to be removed when `future`s are natively supported. - would-block, - - - - // ### TCP & UDP SOCKET ERRORS ### - - /// The operation is not valid in the socket's current state. - invalid-state, - - /// A new socket resource could not be created because of a system limit. - new-socket-limit, - - /// A bind operation failed because the provided address is not an address that the `network` can bind to. - address-not-bindable, - - /// A bind operation failed because the provided address is already in use or because there are no ephemeral ports available. - address-in-use, - - /// The remote address is not reachable - remote-unreachable, - - - // ### TCP SOCKET ERRORS ### - - /// The connection was forcefully rejected - connection-refused, - - /// The connection was reset. - connection-reset, - - /// A connection was aborted. - connection-aborted, - - // ### UDP SOCKET ERRORS ### - datagram-too-large, - - - // ### NAME LOOKUP ERRORS ### - - /// Name does not exist or has no suitable associated IP addresses. - name-unresolvable, - - /// A temporary failure in name resolution occurred. - temporary-resolver-failure, - - /// A permanent failure in name resolution occurred. - permanent-resolver-failure, - } - - enum ip-address-family { - /// Similar to `AF_INET` in POSIX. - ipv4, - - /// Similar to `AF_INET6` in POSIX. - ipv6, - } - - type ipv4-address = tuple; - type ipv6-address = tuple; - - variant ip-address { - ipv4(ipv4-address), - ipv6(ipv6-address), - } - - record ipv4-socket-address { - port: u16, // sin_port - address: ipv4-address, // sin_addr - } - - record ipv6-socket-address { - port: u16, // sin6_port - flow-info: u32, // sin6_flowinfo - address: ipv6-address, // sin6_addr - scope-id: u32, // sin6_scope_id - } - - variant ip-socket-address { - ipv4(ipv4-socket-address), - ipv6(ipv6-socket-address), - } - -} diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/sockets/tcp-create-socket.wit b/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/sockets/tcp-create-socket.wit deleted file mode 100644 index a9a3373..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/sockets/tcp-create-socket.wit +++ /dev/null @@ -1,26 +0,0 @@ - -interface tcp-create-socket { - use network.{network, error-code, ip-address-family}; - use tcp.{tcp-socket}; - - /// Create a new TCP socket. - /// - /// Similar to `socket(AF_INET or AF_INET6, SOCK_STREAM, IPPROTO_TCP)` in POSIX. - /// - /// This function does not require a network capability handle. This is considered to be safe because - /// at time of creation, the socket is not bound to any `network` yet. Up to the moment `bind`/`listen`/`connect` - /// is called, the socket is effectively an in-memory configuration object, unable to communicate with the outside world. - /// - /// All sockets are non-blocking. Use the wasi-poll interface to block on asynchronous operations. - /// - /// # Typical errors - /// - `not-supported`: The specified `address-family` is not supported. (EAFNOSUPPORT) - /// - `new-socket-limit`: The new socket resource could not be created because of a system limit. (EMFILE, ENFILE) - /// - /// # References - /// - - /// - - /// - - /// - - create-tcp-socket: func(address-family: ip-address-family) -> result; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/sockets/tcp.wit b/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/sockets/tcp.wit deleted file mode 100644 index 448f629..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/sockets/tcp.wit +++ /dev/null @@ -1,268 +0,0 @@ - -interface tcp { - use wasi:io/streams@0.2.0-rc-2023-10-18.{input-stream, output-stream}; - use wasi:io/poll@0.2.0-rc-2023-10-18.{pollable}; - use network.{network, error-code, ip-socket-address, ip-address-family}; - - enum shutdown-type { - /// Similar to `SHUT_RD` in POSIX. - receive, - - /// Similar to `SHUT_WR` in POSIX. - send, - - /// Similar to `SHUT_RDWR` in POSIX. - both, - } - - - /// A TCP socket handle. - resource tcp-socket { - /// Bind the socket to a specific network on the provided IP address and port. - /// - /// If the IP address is zero (`0.0.0.0` in IPv4, `::` in IPv6), it is left to the implementation to decide which - /// network interface(s) to bind to. - /// If the TCP/UDP port is zero, the socket will be bound to a random free port. - /// - /// When a socket is not explicitly bound, the first invocation to a listen or connect operation will - /// implicitly bind the socket. - /// - /// Unlike in POSIX, this function is async. This enables interactive WASI hosts to inject permission prompts. - /// - /// # Typical `start` errors - /// - `invalid-argument`: The `local-address` has the wrong address family. (EAFNOSUPPORT, EFAULT on Windows) - /// - `invalid-argument`: `local-address` is not a unicast address. (EINVAL) - /// - `invalid-argument`: `local-address` is an IPv4-mapped IPv6 address, but the socket has `ipv6-only` enabled. (EINVAL) - /// - `invalid-state`: The socket is already bound. (EINVAL) - /// - /// # Typical `finish` errors - /// - `address-in-use`: No ephemeral ports available. (EADDRINUSE, ENOBUFS on Windows) - /// - `address-in-use`: Address is already in use. (EADDRINUSE) - /// - `address-not-bindable`: `local-address` is not an address that the `network` can bind to. (EADDRNOTAVAIL) - /// - `not-in-progress`: A `bind` operation is not in progress. - /// - `would-block`: Can't finish the operation, it is still in progress. (EWOULDBLOCK, EAGAIN) - /// - /// # References - /// - - /// - - /// - - /// - - start-bind: func(network: borrow, local-address: ip-socket-address) -> result<_, error-code>; - finish-bind: func() -> result<_, error-code>; - - /// Connect to a remote endpoint. - /// - /// On success: - /// - the socket is transitioned into the Connection state - /// - a pair of streams is returned that can be used to read & write to the connection - /// - /// POSIX mentions: - /// > If connect() fails, the state of the socket is unspecified. Conforming applications should - /// > close the file descriptor and create a new socket before attempting to reconnect. - /// - /// WASI prescribes the following behavior: - /// - If `connect` fails because an input/state validation error, the socket should remain usable. - /// - If a connection was actually attempted but failed, the socket should become unusable for further network communication. - /// Besides `drop`, any method after such a failure may return an error. - /// - /// # Typical `start` errors - /// - `invalid-argument`: The `remote-address` has the wrong address family. (EAFNOSUPPORT) - /// - `invalid-argument`: `remote-address` is not a unicast address. (EINVAL, ENETUNREACH on Linux, EAFNOSUPPORT on MacOS) - /// - `invalid-argument`: `remote-address` is an IPv4-mapped IPv6 address, but the socket has `ipv6-only` enabled. (EINVAL, EADDRNOTAVAIL on Illumos) - /// - `invalid-argument`: `remote-address` is a non-IPv4-mapped IPv6 address, but the socket was bound to a specific IPv4-mapped IPv6 address. (or vice versa) - /// - `invalid-argument`: The IP address in `remote-address` is set to INADDR_ANY (`0.0.0.0` / `::`). (EADDRNOTAVAIL on Windows) - /// - `invalid-argument`: The port in `remote-address` is set to 0. (EADDRNOTAVAIL on Windows) - /// - `invalid-argument`: The socket is already attached to a different network. The `network` passed to `connect` must be identical to the one passed to `bind`. - /// - `invalid-state`: The socket is already in the Connection state. (EISCONN) - /// - `invalid-state`: The socket is already in the Listener state. (EOPNOTSUPP, EINVAL on Windows) - /// - /// # Typical `finish` errors - /// - `timeout`: Connection timed out. (ETIMEDOUT) - /// - `connection-refused`: The connection was forcefully rejected. (ECONNREFUSED) - /// - `connection-reset`: The connection was reset. (ECONNRESET) - /// - `connection-aborted`: The connection was aborted. (ECONNABORTED) - /// - `remote-unreachable`: The remote address is not reachable. (EHOSTUNREACH, EHOSTDOWN, ENETUNREACH, ENETDOWN) - /// - `address-in-use`: Tried to perform an implicit bind, but there were no ephemeral ports available. (EADDRINUSE, EADDRNOTAVAIL on Linux, EAGAIN on BSD) - /// - `not-in-progress`: A `connect` operation is not in progress. - /// - `would-block`: Can't finish the operation, it is still in progress. (EWOULDBLOCK, EAGAIN) - /// - /// # References - /// - - /// - - /// - - /// - - start-connect: func(network: borrow, remote-address: ip-socket-address) -> result<_, error-code>; - finish-connect: func() -> result, error-code>; - - /// Start listening for new connections. - /// - /// Transitions the socket into the Listener state. - /// - /// Unlike POSIX: - /// - this function is async. This enables interactive WASI hosts to inject permission prompts. - /// - the socket must already be explicitly bound. - /// - /// # Typical `start` errors - /// - `invalid-state`: The socket is not bound to any local address. (EDESTADDRREQ) - /// - `invalid-state`: The socket is already in the Connection state. (EISCONN, EINVAL on BSD) - /// - `invalid-state`: The socket is already in the Listener state. - /// - /// # Typical `finish` errors - /// - `address-in-use`: Tried to perform an implicit bind, but there were no ephemeral ports available. (EADDRINUSE) - /// - `not-in-progress`: A `listen` operation is not in progress. - /// - `would-block`: Can't finish the operation, it is still in progress. (EWOULDBLOCK, EAGAIN) - /// - /// # References - /// - - /// - - /// - - /// - - start-listen: func() -> result<_, error-code>; - finish-listen: func() -> result<_, error-code>; - - /// Accept a new client socket. - /// - /// The returned socket is bound and in the Connection state. The following properties are inherited from the listener socket: - /// - `address-family` - /// - `ipv6-only` - /// - `keep-alive` - /// - `no-delay` - /// - `unicast-hop-limit` - /// - `receive-buffer-size` - /// - `send-buffer-size` - /// - /// On success, this function returns the newly accepted client socket along with - /// a pair of streams that can be used to read & write to the connection. - /// - /// # Typical errors - /// - `invalid-state`: Socket is not in the Listener state. (EINVAL) - /// - `would-block`: No pending connections at the moment. (EWOULDBLOCK, EAGAIN) - /// - `connection-aborted`: An incoming connection was pending, but was terminated by the client before this listener could accept it. (ECONNABORTED) - /// - `new-socket-limit`: The new socket resource could not be created because of a system limit. (EMFILE, ENFILE) - /// - /// # References - /// - - /// - - /// - - /// - - accept: func() -> result, error-code>; - - /// Get the bound local address. - /// - /// POSIX mentions: - /// > If the socket has not been bound to a local name, the value - /// > stored in the object pointed to by `address` is unspecified. - /// - /// WASI is stricter and requires `local-address` to return `invalid-state` when the socket hasn't been bound yet. - /// - /// # Typical errors - /// - `invalid-state`: The socket is not bound to any local address. - /// - /// # References - /// - - /// - - /// - - /// - - local-address: func() -> result; - - /// Get the remote address. - /// - /// # Typical errors - /// - `invalid-state`: The socket is not connected to a remote address. (ENOTCONN) - /// - /// # References - /// - - /// - - /// - - /// - - remote-address: func() -> result; - - /// Whether this is a IPv4 or IPv6 socket. - /// - /// Equivalent to the SO_DOMAIN socket option. - address-family: func() -> ip-address-family; - - /// Whether IPv4 compatibility (dual-stack) mode is disabled or not. - /// - /// Equivalent to the IPV6_V6ONLY socket option. - /// - /// # Typical errors - /// - `invalid-state`: (set) The socket is already bound. - /// - `not-supported`: (get/set) `this` socket is an IPv4 socket. - /// - `not-supported`: (set) Host does not support dual-stack sockets. (Implementations are not required to.) - ipv6-only: func() -> result; - set-ipv6-only: func(value: bool) -> result<_, error-code>; - - /// Hints the desired listen queue size. Implementations are free to ignore this. - /// - /// # Typical errors - /// - `not-supported`: (set) The platform does not support changing the backlog size after the initial listen. - /// - `invalid-state`: (set) The socket is already in the Connection state. - set-listen-backlog-size: func(value: u64) -> result<_, error-code>; - - /// Equivalent to the SO_KEEPALIVE socket option. - keep-alive: func() -> result; - set-keep-alive: func(value: bool) -> result<_, error-code>; - - /// Equivalent to the TCP_NODELAY socket option. - /// - /// The default value is `false`. - no-delay: func() -> result; - set-no-delay: func(value: bool) -> result<_, error-code>; - - /// Equivalent to the IP_TTL & IPV6_UNICAST_HOPS socket options. - /// - /// # Typical errors - /// - `invalid-argument`: (set) The TTL value must be 1 or higher. - /// - `invalid-state`: (set) The socket is already in the Connection state. - /// - `invalid-state`: (set) The socket is already in the Listener state. - unicast-hop-limit: func() -> result; - set-unicast-hop-limit: func(value: u8) -> result<_, error-code>; - - /// The kernel buffer space reserved for sends/receives on this socket. - /// - /// Note #1: an implementation may choose to cap or round the buffer size when setting the value. - /// In other words, after setting a value, reading the same setting back may return a different value. - /// - /// Note #2: there is not necessarily a direct relationship between the kernel buffer size and the bytes of - /// actual data to be sent/received by the application, because the kernel might also use the buffer space - /// for internal metadata structures. - /// - /// Equivalent to the SO_RCVBUF and SO_SNDBUF socket options. - /// - /// # Typical errors - /// - `invalid-state`: (set) The socket is already in the Connection state. - /// - `invalid-state`: (set) The socket is already in the Listener state. - receive-buffer-size: func() -> result; - set-receive-buffer-size: func(value: u64) -> result<_, error-code>; - send-buffer-size: func() -> result; - set-send-buffer-size: func(value: u64) -> result<_, error-code>; - - /// Create a `pollable` which will resolve once the socket is ready for I/O. - /// - /// Note: this function is here for WASI Preview2 only. - /// It's planned to be removed when `future` is natively supported in Preview3. - subscribe: func() -> pollable; - - /// Initiate a graceful shutdown. - /// - /// - receive: the socket is not expecting to receive any more data from the peer. All subsequent read - /// operations on the `input-stream` associated with this socket will return an End Of Stream indication. - /// Any data still in the receive queue at time of calling `shutdown` will be discarded. - /// - send: the socket is not expecting to send any more data to the peer. All subsequent write - /// operations on the `output-stream` associated with this socket will return an error. - /// - both: same effect as receive & send combined. - /// - /// The shutdown function does not close (drop) the socket. - /// - /// # Typical errors - /// - `invalid-state`: The socket is not in the Connection state. (ENOTCONN) - /// - /// # References - /// - - /// - - /// - - /// - - shutdown: func(shutdown-type: shutdown-type) -> result<_, error-code>; - } -} diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/sockets/udp-create-socket.wit b/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/sockets/udp-create-socket.wit deleted file mode 100644 index e026359..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/sockets/udp-create-socket.wit +++ /dev/null @@ -1,26 +0,0 @@ - -interface udp-create-socket { - use network.{network, error-code, ip-address-family}; - use udp.{udp-socket}; - - /// Create a new UDP socket. - /// - /// Similar to `socket(AF_INET or AF_INET6, SOCK_DGRAM, IPPROTO_UDP)` in POSIX. - /// - /// This function does not require a network capability handle. This is considered to be safe because - /// at time of creation, the socket is not bound to any `network` yet. Up to the moment `bind`/`connect` is called, - /// the socket is effectively an in-memory configuration object, unable to communicate with the outside world. - /// - /// All sockets are non-blocking. Use the wasi-poll interface to block on asynchronous operations. - /// - /// # Typical errors - /// - `not-supported`: The specified `address-family` is not supported. (EAFNOSUPPORT) - /// - `new-socket-limit`: The new socket resource could not be created because of a system limit. (EMFILE, ENFILE) - /// - /// # References: - /// - - /// - - /// - - /// - - create-udp-socket: func(address-family: ip-address-family) -> result; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/sockets/udp.wit b/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/sockets/udp.wit deleted file mode 100644 index 91a8c6c..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/sockets/udp.wit +++ /dev/null @@ -1,213 +0,0 @@ - -interface udp { - use wasi:io/poll@0.2.0-rc-2023-10-18.{pollable}; - use network.{network, error-code, ip-socket-address, ip-address-family}; - - - record datagram { - data: list, // Theoretical max size: ~64 KiB. In practice, typically less than 1500 bytes. - remote-address: ip-socket-address, - - /// Possible future additions: - /// local-address: ip-socket-address, // IP_PKTINFO / IP_RECVDSTADDR / IPV6_PKTINFO - /// local-interface: u32, // IP_PKTINFO / IP_RECVIF - /// ttl: u8, // IP_RECVTTL - /// dscp: u6, // IP_RECVTOS - /// ecn: u2, // IP_RECVTOS - } - - - - /// A UDP socket handle. - resource udp-socket { - /// Bind the socket to a specific network on the provided IP address and port. - /// - /// If the IP address is zero (`0.0.0.0` in IPv4, `::` in IPv6), it is left to the implementation to decide which - /// network interface(s) to bind to. - /// If the TCP/UDP port is zero, the socket will be bound to a random free port. - /// - /// When a socket is not explicitly bound, the first invocation to connect will implicitly bind the socket. - /// - /// Unlike in POSIX, this function is async. This enables interactive WASI hosts to inject permission prompts. - /// - /// # Typical `start` errors - /// - `invalid-argument`: The `local-address` has the wrong address family. (EAFNOSUPPORT, EFAULT on Windows) - /// - `invalid-state`: The socket is already bound. (EINVAL) - /// - /// # Typical `finish` errors - /// - `address-in-use`: No ephemeral ports available. (EADDRINUSE, ENOBUFS on Windows) - /// - `address-in-use`: Address is already in use. (EADDRINUSE) - /// - `address-not-bindable`: `local-address` is not an address that the `network` can bind to. (EADDRNOTAVAIL) - /// - `not-in-progress`: A `bind` operation is not in progress. - /// - `would-block`: Can't finish the operation, it is still in progress. (EWOULDBLOCK, EAGAIN) - /// - /// # References - /// - - /// - - /// - - /// - - start-bind: func(network: borrow, local-address: ip-socket-address) -> result<_, error-code>; - finish-bind: func() -> result<_, error-code>; - - /// Set the destination address. - /// - /// The local-address is updated based on the best network path to `remote-address`. - /// - /// When a destination address is set: - /// - all receive operations will only return datagrams sent from the provided `remote-address`. - /// - the `send` function can only be used to send to this destination. - /// - /// Note that this function does not generate any network traffic and the peer is not aware of this "connection". - /// - /// Unlike in POSIX, this function is async. This enables interactive WASI hosts to inject permission prompts. - /// - /// # Typical `start` errors - /// - `invalid-argument`: The `remote-address` has the wrong address family. (EAFNOSUPPORT) - /// - `invalid-argument`: `remote-address` is a non-IPv4-mapped IPv6 address, but the socket was bound to a specific IPv4-mapped IPv6 address. (or vice versa) - /// - `invalid-argument`: The IP address in `remote-address` is set to INADDR_ANY (`0.0.0.0` / `::`). (EDESTADDRREQ, EADDRNOTAVAIL) - /// - `invalid-argument`: The port in `remote-address` is set to 0. (EDESTADDRREQ, EADDRNOTAVAIL) - /// - `invalid-argument`: The socket is already bound to a different network. The `network` passed to `connect` must be identical to the one passed to `bind`. - /// - /// # Typical `finish` errors - /// - `address-in-use`: Tried to perform an implicit bind, but there were no ephemeral ports available. (EADDRINUSE, EADDRNOTAVAIL on Linux, EAGAIN on BSD) - /// - `not-in-progress`: A `connect` operation is not in progress. - /// - `would-block`: Can't finish the operation, it is still in progress. (EWOULDBLOCK, EAGAIN) - /// - /// # References - /// - - /// - - /// - - /// - - start-connect: func(network: borrow, remote-address: ip-socket-address) -> result<_, error-code>; - finish-connect: func() -> result<_, error-code>; - - /// Receive messages on the socket. - /// - /// This function attempts to receive up to `max-results` datagrams on the socket without blocking. - /// The returned list may contain fewer elements than requested, but never more. - /// If `max-results` is 0, this function returns successfully with an empty list. - /// - /// # Typical errors - /// - `invalid-state`: The socket is not bound to any local address. (EINVAL) - /// - `remote-unreachable`: The remote address is not reachable. (ECONNREFUSED, ECONNRESET, ENETRESET on Windows, EHOSTUNREACH, EHOSTDOWN, ENETUNREACH, ENETDOWN) - /// - `would-block`: There is no pending data available to be read at the moment. (EWOULDBLOCK, EAGAIN) - /// - /// # References - /// - - /// - - /// - - /// - - /// - - /// - - /// - - /// - - receive: func(max-results: u64) -> result, error-code>; - - /// Send messages on the socket. - /// - /// This function attempts to send all provided `datagrams` on the socket without blocking and - /// returns how many messages were actually sent (or queued for sending). - /// - /// This function semantically behaves the same as iterating the `datagrams` list and sequentially - /// sending each individual datagram until either the end of the list has been reached or the first error occurred. - /// If at least one datagram has been sent successfully, this function never returns an error. - /// - /// If the input list is empty, the function returns `ok(0)`. - /// - /// The remote address option is required. To send a message to the "connected" peer, - /// call `remote-address` to get their address. - /// - /// # Typical errors - /// - `invalid-argument`: The `remote-address` has the wrong address family. (EAFNOSUPPORT) - /// - `invalid-argument`: `remote-address` is a non-IPv4-mapped IPv6 address, but the socket was bound to a specific IPv4-mapped IPv6 address. (or vice versa) - /// - `invalid-argument`: The IP address in `remote-address` is set to INADDR_ANY (`0.0.0.0` / `::`). (EDESTADDRREQ, EADDRNOTAVAIL) - /// - `invalid-argument`: The port in `remote-address` is set to 0. (EDESTADDRREQ, EADDRNOTAVAIL) - /// - `invalid-argument`: The socket is in "connected" mode and the `datagram.remote-address` does not match the address passed to `connect`. (EISCONN) - /// - `invalid-state`: The socket is not bound to any local address. Unlike POSIX, this function does not perform an implicit bind. - /// - `remote-unreachable`: The remote address is not reachable. (ECONNREFUSED, ECONNRESET, ENETRESET on Windows, EHOSTUNREACH, EHOSTDOWN, ENETUNREACH, ENETDOWN) - /// - `datagram-too-large`: The datagram is too large. (EMSGSIZE) - /// - `would-block`: The send buffer is currently full. (EWOULDBLOCK, EAGAIN) - /// - /// # References - /// - - /// - - /// - - /// - - /// - - /// - - /// - - /// - - send: func(datagrams: list) -> result; - - /// Get the current bound address. - /// - /// POSIX mentions: - /// > If the socket has not been bound to a local name, the value - /// > stored in the object pointed to by `address` is unspecified. - /// - /// WASI is stricter and requires `local-address` to return `invalid-state` when the socket hasn't been bound yet. - /// - /// # Typical errors - /// - `invalid-state`: The socket is not bound to any local address. - /// - /// # References - /// - - /// - - /// - - /// - - local-address: func() -> result; - - /// Get the address set with `connect`. - /// - /// # Typical errors - /// - `invalid-state`: The socket is not connected to a remote address. (ENOTCONN) - /// - /// # References - /// - - /// - - /// - - /// - - remote-address: func() -> result; - - /// Whether this is a IPv4 or IPv6 socket. - /// - /// Equivalent to the SO_DOMAIN socket option. - address-family: func() -> ip-address-family; - - /// Whether IPv4 compatibility (dual-stack) mode is disabled or not. - /// - /// Equivalent to the IPV6_V6ONLY socket option. - /// - /// # Typical errors - /// - `not-supported`: (get/set) `this` socket is an IPv4 socket. - /// - `invalid-state`: (set) The socket is already bound. - /// - `not-supported`: (set) Host does not support dual-stack sockets. (Implementations are not required to.) - ipv6-only: func() -> result; - set-ipv6-only: func(value: bool) -> result<_, error-code>; - - /// Equivalent to the IP_TTL & IPV6_UNICAST_HOPS socket options. - unicast-hop-limit: func() -> result; - set-unicast-hop-limit: func(value: u8) -> result<_, error-code>; - - /// The kernel buffer space reserved for sends/receives on this socket. - /// - /// Note #1: an implementation may choose to cap or round the buffer size when setting the value. - /// In other words, after setting a value, reading the same setting back may return a different value. - /// - /// Note #2: there is not necessarily a direct relationship between the kernel buffer size and the bytes of - /// actual data to be sent/received by the application, because the kernel might also use the buffer space - /// for internal metadata structures. - /// - /// Equivalent to the SO_RCVBUF and SO_SNDBUF socket options. - receive-buffer-size: func() -> result; - set-receive-buffer-size: func(value: u64) -> result<_, error-code>; - send-buffer-size: func() -> result; - set-send-buffer-size: func(value: u64) -> result<_, error-code>; - - /// Create a `pollable` which will resolve once the socket is ready for I/O. - /// - /// Note: this function is here for WASI Preview2 only. - /// It's planned to be removed when `future` is natively supported in Preview3. - subscribe: func() -> pollable; - } -} diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/sockets/world.wit b/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/sockets/world.wit deleted file mode 100644 index d16530c..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/deps/sockets/world.wit +++ /dev/null @@ -1,11 +0,0 @@ -package wasi:sockets@0.2.0-rc-2023-10-18; - -world imports { - import instance-network; - import network; - import udp; - import udp-create-socket; - import tcp; - import tcp-create-socket; - import ip-name-lookup; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/main.wit b/host-apis/wasi-0.2.0-rc-2023-10-18/wit/main.wit deleted file mode 100644 index a8f6430..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/main.wit +++ /dev/null @@ -1,6 +0,0 @@ -package local:bindings; - -world bindings { - include wasi:cli/command@0.2.0-rc-2023-10-18; - include wasi:http/proxy@0.2.0-rc-2023-10-18; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/test.wit b/host-apis/wasi-0.2.0-rc-2023-10-18/wit/test.wit deleted file mode 100644 index 3db5e08..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-10-18/wit/test.wit +++ /dev/null @@ -1,46 +0,0 @@ -// only used as part of `test-programs` -world test-reactor { - - import wasi:cli/environment@0.2.0-rc-2023-10-18; - import wasi:io/poll@0.2.0-rc-2023-10-18; - import wasi:io/streams@0.2.0-rc-2023-10-18; - import wasi:filesystem/types@0.2.0-rc-2023-10-18; - import wasi:filesystem/preopens@0.2.0-rc-2023-10-18; - import wasi:cli/exit@0.2.0-rc-2023-10-18; - - export add-strings: func(s: list) -> u32; - export get-strings: func() -> list; - - use wasi:io/streams@0.2.0-rc-2023-10-18.{output-stream}; - - export write-strings-to: func(o: output-stream) -> result; - - use wasi:filesystem/types@0.2.0-rc-2023-10-18.{descriptor-stat}; - export pass-an-imported-record: func(d: descriptor-stat) -> string; -} - -world test-command { - import wasi:io/poll@0.2.0-rc-2023-10-18; - import wasi:io/streams@0.2.0-rc-2023-10-18; - import wasi:cli/environment@0.2.0-rc-2023-10-18; - import wasi:cli/stdin@0.2.0-rc-2023-10-18; - import wasi:cli/stdout@0.2.0-rc-2023-10-18; - import wasi:cli/stderr@0.2.0-rc-2023-10-18; -} - -world test-command-with-sockets { - import wasi:io/poll@0.2.0-rc-2023-10-18; - import wasi:io/streams@0.2.0-rc-2023-10-18; - import wasi:cli/environment@0.2.0-rc-2023-10-18; - import wasi:cli/stdin@0.2.0-rc-2023-10-18; - import wasi:cli/stdout@0.2.0-rc-2023-10-18; - import wasi:cli/stderr@0.2.0-rc-2023-10-18; - import wasi:sockets/tcp@0.2.0-rc-2023-10-18; - import wasi:sockets/tcp-create-socket@0.2.0-rc-2023-10-18; - import wasi:sockets/udp@0.2.0-rc-2023-10-18; - import wasi:sockets/udp-create-socket@0.2.0-rc-2023-10-18; - import wasi:sockets/network@0.2.0-rc-2023-10-18; - import wasi:sockets/instance-network@0.2.0-rc-2023-10-18; - import wasi:sockets/ip-name-lookup@0.2.0-rc-2023-10-18; - import wasi:clocks/monotonic-clock@0.2.0-rc-2023-10-18; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-12-05/bindings/bindings.c b/host-apis/wasi-0.2.0-rc-2023-12-05/bindings/bindings.c deleted file mode 100644 index f140318..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-12-05/bindings/bindings.c +++ /dev/null @@ -1,9144 +0,0 @@ -// Generated by `wit-bindgen` 0.16.0. DO NOT EDIT! -#include "bindings.h" - - -__attribute__((__import_module__("wasi:cli/environment@0.2.0-rc-2023-12-05"), __import_name__("get-environment"))) -extern void __wasm_import_wasi_cli_0_2_0_rc_2023_12_05_environment_get_environment(int32_t); - -__attribute__((__import_module__("wasi:cli/environment@0.2.0-rc-2023-12-05"), __import_name__("get-arguments"))) -extern void __wasm_import_wasi_cli_0_2_0_rc_2023_12_05_environment_get_arguments(int32_t); - -__attribute__((__import_module__("wasi:cli/environment@0.2.0-rc-2023-12-05"), __import_name__("initial-cwd"))) -extern void __wasm_import_wasi_cli_0_2_0_rc_2023_12_05_environment_initial_cwd(int32_t); - -__attribute__((__import_module__("wasi:cli/exit@0.2.0-rc-2023-12-05"), __import_name__("exit"))) -extern void __wasm_import_wasi_cli_0_2_0_rc_2023_12_05_exit_exit(int32_t); - -__attribute__((__import_module__("wasi:io/error@0.2.0-rc-2023-11-10"), __import_name__("[method]error.to-debug-string"))) -extern void __wasm_import_wasi_io_0_2_0_rc_2023_11_10_error_method_error_to_debug_string(int32_t, int32_t); - -__attribute__((__import_module__("wasi:io/poll@0.2.0-rc-2023-11-10"), __import_name__("[method]pollable.ready"))) -extern int32_t __wasm_import_wasi_io_0_2_0_rc_2023_11_10_poll_method_pollable_ready(int32_t); - -__attribute__((__import_module__("wasi:io/poll@0.2.0-rc-2023-11-10"), __import_name__("[method]pollable.block"))) -extern void __wasm_import_wasi_io_0_2_0_rc_2023_11_10_poll_method_pollable_block(int32_t); - -__attribute__((__import_module__("wasi:io/poll@0.2.0-rc-2023-11-10"), __import_name__("poll"))) -extern void __wasm_import_wasi_io_0_2_0_rc_2023_11_10_poll_poll(int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:io/streams@0.2.0-rc-2023-11-10"), __import_name__("[method]input-stream.read"))) -extern void __wasm_import_wasi_io_0_2_0_rc_2023_11_10_streams_method_input_stream_read(int32_t, int64_t, int32_t); - -__attribute__((__import_module__("wasi:io/streams@0.2.0-rc-2023-11-10"), __import_name__("[method]input-stream.blocking-read"))) -extern void __wasm_import_wasi_io_0_2_0_rc_2023_11_10_streams_method_input_stream_blocking_read(int32_t, int64_t, int32_t); - -__attribute__((__import_module__("wasi:io/streams@0.2.0-rc-2023-11-10"), __import_name__("[method]input-stream.skip"))) -extern void __wasm_import_wasi_io_0_2_0_rc_2023_11_10_streams_method_input_stream_skip(int32_t, int64_t, int32_t); - -__attribute__((__import_module__("wasi:io/streams@0.2.0-rc-2023-11-10"), __import_name__("[method]input-stream.blocking-skip"))) -extern void __wasm_import_wasi_io_0_2_0_rc_2023_11_10_streams_method_input_stream_blocking_skip(int32_t, int64_t, int32_t); - -__attribute__((__import_module__("wasi:io/streams@0.2.0-rc-2023-11-10"), __import_name__("[method]input-stream.subscribe"))) -extern int32_t __wasm_import_wasi_io_0_2_0_rc_2023_11_10_streams_method_input_stream_subscribe(int32_t); - -__attribute__((__import_module__("wasi:io/streams@0.2.0-rc-2023-11-10"), __import_name__("[method]output-stream.check-write"))) -extern void __wasm_import_wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_check_write(int32_t, int32_t); - -__attribute__((__import_module__("wasi:io/streams@0.2.0-rc-2023-11-10"), __import_name__("[method]output-stream.write"))) -extern void __wasm_import_wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_write(int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:io/streams@0.2.0-rc-2023-11-10"), __import_name__("[method]output-stream.blocking-write-and-flush"))) -extern void __wasm_import_wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_blocking_write_and_flush(int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:io/streams@0.2.0-rc-2023-11-10"), __import_name__("[method]output-stream.flush"))) -extern void __wasm_import_wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_flush(int32_t, int32_t); - -__attribute__((__import_module__("wasi:io/streams@0.2.0-rc-2023-11-10"), __import_name__("[method]output-stream.blocking-flush"))) -extern void __wasm_import_wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_blocking_flush(int32_t, int32_t); - -__attribute__((__import_module__("wasi:io/streams@0.2.0-rc-2023-11-10"), __import_name__("[method]output-stream.subscribe"))) -extern int32_t __wasm_import_wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_subscribe(int32_t); - -__attribute__((__import_module__("wasi:io/streams@0.2.0-rc-2023-11-10"), __import_name__("[method]output-stream.write-zeroes"))) -extern void __wasm_import_wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_write_zeroes(int32_t, int64_t, int32_t); - -__attribute__((__import_module__("wasi:io/streams@0.2.0-rc-2023-11-10"), __import_name__("[method]output-stream.blocking-write-zeroes-and-flush"))) -extern void __wasm_import_wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_blocking_write_zeroes_and_flush(int32_t, int64_t, int32_t); - -__attribute__((__import_module__("wasi:io/streams@0.2.0-rc-2023-11-10"), __import_name__("[method]output-stream.splice"))) -extern void __wasm_import_wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_splice(int32_t, int32_t, int64_t, int32_t); - -__attribute__((__import_module__("wasi:io/streams@0.2.0-rc-2023-11-10"), __import_name__("[method]output-stream.blocking-splice"))) -extern void __wasm_import_wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_blocking_splice(int32_t, int32_t, int64_t, int32_t); - -__attribute__((__import_module__("wasi:cli/stdin@0.2.0-rc-2023-12-05"), __import_name__("get-stdin"))) -extern int32_t __wasm_import_wasi_cli_0_2_0_rc_2023_12_05_stdin_get_stdin(void); - -__attribute__((__import_module__("wasi:cli/stdout@0.2.0-rc-2023-12-05"), __import_name__("get-stdout"))) -extern int32_t __wasm_import_wasi_cli_0_2_0_rc_2023_12_05_stdout_get_stdout(void); - -__attribute__((__import_module__("wasi:cli/stderr@0.2.0-rc-2023-12-05"), __import_name__("get-stderr"))) -extern int32_t __wasm_import_wasi_cli_0_2_0_rc_2023_12_05_stderr_get_stderr(void); - -__attribute__((__import_module__("wasi:cli/terminal-stdin@0.2.0-rc-2023-12-05"), __import_name__("get-terminal-stdin"))) -extern void __wasm_import_wasi_cli_0_2_0_rc_2023_12_05_terminal_stdin_get_terminal_stdin(int32_t); - -__attribute__((__import_module__("wasi:cli/terminal-stdout@0.2.0-rc-2023-12-05"), __import_name__("get-terminal-stdout"))) -extern void __wasm_import_wasi_cli_0_2_0_rc_2023_12_05_terminal_stdout_get_terminal_stdout(int32_t); - -__attribute__((__import_module__("wasi:cli/terminal-stderr@0.2.0-rc-2023-12-05"), __import_name__("get-terminal-stderr"))) -extern void __wasm_import_wasi_cli_0_2_0_rc_2023_12_05_terminal_stderr_get_terminal_stderr(int32_t); - -__attribute__((__import_module__("wasi:clocks/monotonic-clock@0.2.0-rc-2023-11-10"), __import_name__("now"))) -extern int64_t __wasm_import_wasi_clocks_0_2_0_rc_2023_11_10_monotonic_clock_now(void); - -__attribute__((__import_module__("wasi:clocks/monotonic-clock@0.2.0-rc-2023-11-10"), __import_name__("resolution"))) -extern int64_t __wasm_import_wasi_clocks_0_2_0_rc_2023_11_10_monotonic_clock_resolution(void); - -__attribute__((__import_module__("wasi:clocks/monotonic-clock@0.2.0-rc-2023-11-10"), __import_name__("subscribe-instant"))) -extern int32_t __wasm_import_wasi_clocks_0_2_0_rc_2023_11_10_monotonic_clock_subscribe_instant(int64_t); - -__attribute__((__import_module__("wasi:clocks/monotonic-clock@0.2.0-rc-2023-11-10"), __import_name__("subscribe-duration"))) -extern int32_t __wasm_import_wasi_clocks_0_2_0_rc_2023_11_10_monotonic_clock_subscribe_duration(int64_t); - -__attribute__((__import_module__("wasi:clocks/wall-clock@0.2.0-rc-2023-11-10"), __import_name__("now"))) -extern void __wasm_import_wasi_clocks_0_2_0_rc_2023_11_10_wall_clock_now(int32_t); - -__attribute__((__import_module__("wasi:clocks/wall-clock@0.2.0-rc-2023-11-10"), __import_name__("resolution"))) -extern void __wasm_import_wasi_clocks_0_2_0_rc_2023_11_10_wall_clock_resolution(int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-11-10"), __import_name__("[method]descriptor.read-via-stream"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_read_via_stream(int32_t, int64_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-11-10"), __import_name__("[method]descriptor.write-via-stream"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_write_via_stream(int32_t, int64_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-11-10"), __import_name__("[method]descriptor.append-via-stream"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_append_via_stream(int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-11-10"), __import_name__("[method]descriptor.advise"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_advise(int32_t, int64_t, int64_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-11-10"), __import_name__("[method]descriptor.sync-data"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_sync_data(int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-11-10"), __import_name__("[method]descriptor.get-flags"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_get_flags(int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-11-10"), __import_name__("[method]descriptor.get-type"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_get_type(int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-11-10"), __import_name__("[method]descriptor.set-size"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_set_size(int32_t, int64_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-11-10"), __import_name__("[method]descriptor.set-times"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_set_times(int32_t, int32_t, int64_t, int32_t, int32_t, int64_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-11-10"), __import_name__("[method]descriptor.read"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_read(int32_t, int64_t, int64_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-11-10"), __import_name__("[method]descriptor.write"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_write(int32_t, int32_t, int32_t, int64_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-11-10"), __import_name__("[method]descriptor.read-directory"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_read_directory(int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-11-10"), __import_name__("[method]descriptor.sync"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_sync(int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-11-10"), __import_name__("[method]descriptor.create-directory-at"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_create_directory_at(int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-11-10"), __import_name__("[method]descriptor.stat"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_stat(int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-11-10"), __import_name__("[method]descriptor.stat-at"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_stat_at(int32_t, int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-11-10"), __import_name__("[method]descriptor.set-times-at"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_set_times_at(int32_t, int32_t, int32_t, int32_t, int32_t, int64_t, int32_t, int32_t, int64_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-11-10"), __import_name__("[method]descriptor.link-at"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_link_at(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-11-10"), __import_name__("[method]descriptor.open-at"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_open_at(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-11-10"), __import_name__("[method]descriptor.readlink-at"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_readlink_at(int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-11-10"), __import_name__("[method]descriptor.remove-directory-at"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_remove_directory_at(int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-11-10"), __import_name__("[method]descriptor.rename-at"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_rename_at(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-11-10"), __import_name__("[method]descriptor.symlink-at"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_symlink_at(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-11-10"), __import_name__("[method]descriptor.unlink-file-at"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_unlink_file_at(int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-11-10"), __import_name__("[method]descriptor.is-same-object"))) -extern int32_t __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_is_same_object(int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-11-10"), __import_name__("[method]descriptor.metadata-hash"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_metadata_hash(int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-11-10"), __import_name__("[method]descriptor.metadata-hash-at"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_metadata_hash_at(int32_t, int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-11-10"), __import_name__("[method]directory-entry-stream.read-directory-entry"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_directory_entry_stream_read_directory_entry(int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-11-10"), __import_name__("filesystem-error-code"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_filesystem_error_code(int32_t, int32_t); - -__attribute__((__import_module__("wasi:filesystem/preopens@0.2.0-rc-2023-11-10"), __import_name__("get-directories"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_preopens_get_directories(int32_t); - -__attribute__((__import_module__("wasi:sockets/instance-network@0.2.0-rc-2023-11-10"), __import_name__("instance-network"))) -extern int32_t __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_instance_network_instance_network(void); - -__attribute__((__import_module__("wasi:sockets/udp@0.2.0-rc-2023-11-10"), __import_name__("[method]udp-socket.start-bind"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_start_bind(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/udp@0.2.0-rc-2023-11-10"), __import_name__("[method]udp-socket.finish-bind"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_finish_bind(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/udp@0.2.0-rc-2023-11-10"), __import_name__("[method]udp-socket.stream"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_stream(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/udp@0.2.0-rc-2023-11-10"), __import_name__("[method]udp-socket.local-address"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_local_address(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/udp@0.2.0-rc-2023-11-10"), __import_name__("[method]udp-socket.remote-address"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_remote_address(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/udp@0.2.0-rc-2023-11-10"), __import_name__("[method]udp-socket.address-family"))) -extern int32_t __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_address_family(int32_t); - -__attribute__((__import_module__("wasi:sockets/udp@0.2.0-rc-2023-11-10"), __import_name__("[method]udp-socket.ipv6-only"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_ipv6_only(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/udp@0.2.0-rc-2023-11-10"), __import_name__("[method]udp-socket.set-ipv6-only"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_set_ipv6_only(int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/udp@0.2.0-rc-2023-11-10"), __import_name__("[method]udp-socket.unicast-hop-limit"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_unicast_hop_limit(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/udp@0.2.0-rc-2023-11-10"), __import_name__("[method]udp-socket.set-unicast-hop-limit"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_set_unicast_hop_limit(int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/udp@0.2.0-rc-2023-11-10"), __import_name__("[method]udp-socket.receive-buffer-size"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_receive_buffer_size(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/udp@0.2.0-rc-2023-11-10"), __import_name__("[method]udp-socket.set-receive-buffer-size"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_set_receive_buffer_size(int32_t, int64_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/udp@0.2.0-rc-2023-11-10"), __import_name__("[method]udp-socket.send-buffer-size"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_send_buffer_size(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/udp@0.2.0-rc-2023-11-10"), __import_name__("[method]udp-socket.set-send-buffer-size"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_set_send_buffer_size(int32_t, int64_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/udp@0.2.0-rc-2023-11-10"), __import_name__("[method]udp-socket.subscribe"))) -extern int32_t __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_subscribe(int32_t); - -__attribute__((__import_module__("wasi:sockets/udp@0.2.0-rc-2023-11-10"), __import_name__("[method]incoming-datagram-stream.receive"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_method_incoming_datagram_stream_receive(int32_t, int64_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/udp@0.2.0-rc-2023-11-10"), __import_name__("[method]incoming-datagram-stream.subscribe"))) -extern int32_t __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_method_incoming_datagram_stream_subscribe(int32_t); - -__attribute__((__import_module__("wasi:sockets/udp@0.2.0-rc-2023-11-10"), __import_name__("[method]outgoing-datagram-stream.check-send"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_method_outgoing_datagram_stream_check_send(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/udp@0.2.0-rc-2023-11-10"), __import_name__("[method]outgoing-datagram-stream.send"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_method_outgoing_datagram_stream_send(int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/udp@0.2.0-rc-2023-11-10"), __import_name__("[method]outgoing-datagram-stream.subscribe"))) -extern int32_t __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_method_outgoing_datagram_stream_subscribe(int32_t); - -__attribute__((__import_module__("wasi:sockets/udp-create-socket@0.2.0-rc-2023-11-10"), __import_name__("create-udp-socket"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_create_socket_create_udp_socket(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-11-10"), __import_name__("[method]tcp-socket.start-bind"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_start_bind(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-11-10"), __import_name__("[method]tcp-socket.finish-bind"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_finish_bind(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-11-10"), __import_name__("[method]tcp-socket.start-connect"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_start_connect(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-11-10"), __import_name__("[method]tcp-socket.finish-connect"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_finish_connect(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-11-10"), __import_name__("[method]tcp-socket.start-listen"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_start_listen(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-11-10"), __import_name__("[method]tcp-socket.finish-listen"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_finish_listen(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-11-10"), __import_name__("[method]tcp-socket.accept"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_accept(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-11-10"), __import_name__("[method]tcp-socket.local-address"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_local_address(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-11-10"), __import_name__("[method]tcp-socket.remote-address"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_remote_address(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-11-10"), __import_name__("[method]tcp-socket.is-listening"))) -extern int32_t __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_is_listening(int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-11-10"), __import_name__("[method]tcp-socket.address-family"))) -extern int32_t __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_address_family(int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-11-10"), __import_name__("[method]tcp-socket.ipv6-only"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_ipv6_only(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-11-10"), __import_name__("[method]tcp-socket.set-ipv6-only"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_set_ipv6_only(int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-11-10"), __import_name__("[method]tcp-socket.set-listen-backlog-size"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_set_listen_backlog_size(int32_t, int64_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-11-10"), __import_name__("[method]tcp-socket.keep-alive-enabled"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_keep_alive_enabled(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-11-10"), __import_name__("[method]tcp-socket.set-keep-alive-enabled"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_set_keep_alive_enabled(int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-11-10"), __import_name__("[method]tcp-socket.keep-alive-idle-time"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_keep_alive_idle_time(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-11-10"), __import_name__("[method]tcp-socket.set-keep-alive-idle-time"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_set_keep_alive_idle_time(int32_t, int64_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-11-10"), __import_name__("[method]tcp-socket.keep-alive-interval"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_keep_alive_interval(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-11-10"), __import_name__("[method]tcp-socket.set-keep-alive-interval"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_set_keep_alive_interval(int32_t, int64_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-11-10"), __import_name__("[method]tcp-socket.keep-alive-count"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_keep_alive_count(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-11-10"), __import_name__("[method]tcp-socket.set-keep-alive-count"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_set_keep_alive_count(int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-11-10"), __import_name__("[method]tcp-socket.hop-limit"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_hop_limit(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-11-10"), __import_name__("[method]tcp-socket.set-hop-limit"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_set_hop_limit(int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-11-10"), __import_name__("[method]tcp-socket.receive-buffer-size"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_receive_buffer_size(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-11-10"), __import_name__("[method]tcp-socket.set-receive-buffer-size"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_set_receive_buffer_size(int32_t, int64_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-11-10"), __import_name__("[method]tcp-socket.send-buffer-size"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_send_buffer_size(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-11-10"), __import_name__("[method]tcp-socket.set-send-buffer-size"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_set_send_buffer_size(int32_t, int64_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-11-10"), __import_name__("[method]tcp-socket.subscribe"))) -extern int32_t __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_subscribe(int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-11-10"), __import_name__("[method]tcp-socket.shutdown"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_shutdown(int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/tcp-create-socket@0.2.0-rc-2023-11-10"), __import_name__("create-tcp-socket"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_create_socket_create_tcp_socket(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/ip-name-lookup@0.2.0-rc-2023-11-10"), __import_name__("resolve-addresses"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_resolve_addresses(int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/ip-name-lookup@0.2.0-rc-2023-11-10"), __import_name__("[method]resolve-address-stream.resolve-next-address"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_method_resolve_address_stream_resolve_next_address(int32_t, int32_t); - -__attribute__((__import_module__("wasi:sockets/ip-name-lookup@0.2.0-rc-2023-11-10"), __import_name__("[method]resolve-address-stream.subscribe"))) -extern int32_t __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_method_resolve_address_stream_subscribe(int32_t); - -__attribute__((__import_module__("wasi:random/random@0.2.0-rc-2023-11-10"), __import_name__("get-random-bytes"))) -extern void __wasm_import_wasi_random_0_2_0_rc_2023_11_10_random_get_random_bytes(int64_t, int32_t); - -__attribute__((__import_module__("wasi:random/random@0.2.0-rc-2023-11-10"), __import_name__("get-random-u64"))) -extern int64_t __wasm_import_wasi_random_0_2_0_rc_2023_11_10_random_get_random_u64(void); - -__attribute__((__import_module__("wasi:random/insecure@0.2.0-rc-2023-11-10"), __import_name__("get-insecure-random-bytes"))) -extern void __wasm_import_wasi_random_0_2_0_rc_2023_11_10_insecure_get_insecure_random_bytes(int64_t, int32_t); - -__attribute__((__import_module__("wasi:random/insecure@0.2.0-rc-2023-11-10"), __import_name__("get-insecure-random-u64"))) -extern int64_t __wasm_import_wasi_random_0_2_0_rc_2023_11_10_insecure_get_insecure_random_u64(void); - -__attribute__((__import_module__("wasi:random/insecure-seed@0.2.0-rc-2023-11-10"), __import_name__("insecure-seed"))) -extern void __wasm_import_wasi_random_0_2_0_rc_2023_11_10_insecure_seed_insecure_seed(int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("http-error-code"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_http_error_code(int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[constructor]fields"))) -extern int32_t __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_constructor_fields(void); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[static]fields.from-list"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_static_fields_from_list(int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[method]fields.get"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_fields_get(int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[method]fields.has"))) -extern int32_t __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_fields_has(int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[method]fields.set"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_fields_set(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[method]fields.delete"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_fields_delete(int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[method]fields.append"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_fields_append(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[method]fields.entries"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_fields_entries(int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[method]fields.clone"))) -extern int32_t __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_fields_clone(int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[method]incoming-request.method"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_request_method(int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[method]incoming-request.path-with-query"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_request_path_with_query(int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[method]incoming-request.scheme"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_request_scheme(int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[method]incoming-request.authority"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_request_authority(int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[method]incoming-request.headers"))) -extern int32_t __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_request_headers(int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[method]incoming-request.consume"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_request_consume(int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[constructor]outgoing-request"))) -extern int32_t __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_constructor_outgoing_request(int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[method]outgoing-request.body"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_body(int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[method]outgoing-request.method"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_method(int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[method]outgoing-request.set-method"))) -extern int32_t __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_set_method(int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[method]outgoing-request.path-with-query"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_path_with_query(int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[method]outgoing-request.set-path-with-query"))) -extern int32_t __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_set_path_with_query(int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[method]outgoing-request.scheme"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_scheme(int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[method]outgoing-request.set-scheme"))) -extern int32_t __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_set_scheme(int32_t, int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[method]outgoing-request.authority"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_authority(int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[method]outgoing-request.set-authority"))) -extern int32_t __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_set_authority(int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[method]outgoing-request.headers"))) -extern int32_t __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_headers(int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[constructor]request-options"))) -extern int32_t __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_constructor_request_options(void); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[method]request-options.connect-timeout"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_request_options_connect_timeout(int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[method]request-options.set-connect-timeout"))) -extern int32_t __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_request_options_set_connect_timeout(int32_t, int32_t, int64_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[method]request-options.first-byte-timeout"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_request_options_first_byte_timeout(int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[method]request-options.set-first-byte-timeout"))) -extern int32_t __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_request_options_set_first_byte_timeout(int32_t, int32_t, int64_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[method]request-options.between-bytes-timeout"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_request_options_between_bytes_timeout(int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[method]request-options.set-between-bytes-timeout"))) -extern int32_t __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_request_options_set_between_bytes_timeout(int32_t, int32_t, int64_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[static]response-outparam.set"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_static_response_outparam_set(int32_t, int32_t, int32_t, int32_t, int64_t, int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[method]incoming-response.status"))) -extern int32_t __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_response_status(int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[method]incoming-response.headers"))) -extern int32_t __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_response_headers(int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[method]incoming-response.consume"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_response_consume(int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[method]incoming-body.stream"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_body_stream(int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[static]incoming-body.finish"))) -extern int32_t __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_static_incoming_body_finish(int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[method]future-trailers.subscribe"))) -extern int32_t __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_future_trailers_subscribe(int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[method]future-trailers.get"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_future_trailers_get(int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[constructor]outgoing-response"))) -extern int32_t __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_constructor_outgoing_response(int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[method]outgoing-response.status-code"))) -extern int32_t __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_response_status_code(int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[method]outgoing-response.set-status-code"))) -extern int32_t __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_response_set_status_code(int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[method]outgoing-response.headers"))) -extern int32_t __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_response_headers(int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[method]outgoing-response.body"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_response_body(int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[method]outgoing-body.write"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_body_write(int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[static]outgoing-body.finish"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_static_outgoing_body_finish(int32_t, int32_t, int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[method]future-incoming-response.subscribe"))) -extern int32_t __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_future_incoming_response_subscribe(int32_t); - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[method]future-incoming-response.get"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_future_incoming_response_get(int32_t, int32_t); - -__attribute__((__import_module__("wasi:http/outgoing-handler@0.2.0-rc-2023-12-05"), __import_name__("handle"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_12_05_outgoing_handler_handle(int32_t, int32_t, int32_t, int32_t); - -__attribute__((__weak__, __export_name__("cabi_realloc"))) -void *cabi_realloc(void *ptr, size_t old_size, size_t align, size_t new_size) { - (void) old_size; - if (new_size == 0) return (void*) align; - void *ret = realloc(ptr, new_size); - if (!ret) abort(); - return ret; -} - -// Helper Functions - -void bindings_tuple2_string_string_free(bindings_tuple2_string_string_t *ptr) { - bindings_string_free(&ptr->f0); - bindings_string_free(&ptr->f1); -} - -void bindings_list_tuple2_string_string_free(bindings_list_tuple2_string_string_t *ptr) { - for (size_t i = 0; i < ptr->len; i++) { - bindings_tuple2_string_string_free(&ptr->ptr[i]); - } - if (ptr->len > 0) { - free(ptr->ptr); - } -} - -void bindings_list_string_free(bindings_list_string_t *ptr) { - for (size_t i = 0; i < ptr->len; i++) { - bindings_string_free(&ptr->ptr[i]); - } - if (ptr->len > 0) { - free(ptr->ptr); - } -} - -void bindings_option_string_free(bindings_option_string_t *ptr) { - if (ptr->is_some) { - bindings_string_free(&ptr->val); - } -} - -void wasi_cli_0_2_0_rc_2023_12_05_exit_result_void_void_free(wasi_cli_0_2_0_rc_2023_12_05_exit_result_void_void_t *ptr) { - if (!ptr->is_err) { - } -} - -__attribute__((__import_module__("wasi:io/error@0.2.0-rc-2023-11-10"), __import_name__("[resource-drop]error"))) -extern void __wasm_import_wasi_io_0_2_0_rc_2023_11_10_error_error_drop(int32_t handle); - -void wasi_io_0_2_0_rc_2023_11_10_error_error_drop_own(wasi_io_0_2_0_rc_2023_11_10_error_own_error_t handle) { - __wasm_import_wasi_io_0_2_0_rc_2023_11_10_error_error_drop(handle.__handle); -} - -void wasi_io_0_2_0_rc_2023_11_10_error_error_drop_borrow(wasi_io_0_2_0_rc_2023_11_10_error_own_error_t handle) { - __wasm_import_wasi_io_0_2_0_rc_2023_11_10_error_error_drop(handle.__handle); -} - -wasi_io_0_2_0_rc_2023_11_10_error_borrow_error_t wasi_io_0_2_0_rc_2023_11_10_error_borrow_error(wasi_io_0_2_0_rc_2023_11_10_error_own_error_t arg) { - return (wasi_io_0_2_0_rc_2023_11_10_error_borrow_error_t) { arg.__handle }; -} - -__attribute__((__import_module__("wasi:io/poll@0.2.0-rc-2023-11-10"), __import_name__("[resource-drop]pollable"))) -extern void __wasm_import_wasi_io_0_2_0_rc_2023_11_10_poll_pollable_drop(int32_t handle); - -void wasi_io_0_2_0_rc_2023_11_10_poll_pollable_drop_own(wasi_io_0_2_0_rc_2023_11_10_poll_own_pollable_t handle) { - __wasm_import_wasi_io_0_2_0_rc_2023_11_10_poll_pollable_drop(handle.__handle); -} - -void wasi_io_0_2_0_rc_2023_11_10_poll_pollable_drop_borrow(wasi_io_0_2_0_rc_2023_11_10_poll_own_pollable_t handle) { - __wasm_import_wasi_io_0_2_0_rc_2023_11_10_poll_pollable_drop(handle.__handle); -} - -wasi_io_0_2_0_rc_2023_11_10_poll_borrow_pollable_t wasi_io_0_2_0_rc_2023_11_10_poll_borrow_pollable(wasi_io_0_2_0_rc_2023_11_10_poll_own_pollable_t arg) { - return (wasi_io_0_2_0_rc_2023_11_10_poll_borrow_pollable_t) { arg.__handle }; -} - -void wasi_io_0_2_0_rc_2023_11_10_poll_list_borrow_pollable_free(wasi_io_0_2_0_rc_2023_11_10_poll_list_borrow_pollable_t *ptr) { - for (size_t i = 0; i < ptr->len; i++) { - } - if (ptr->len > 0) { - free(ptr->ptr); - } -} - -void bindings_list_u32_free(bindings_list_u32_t *ptr) { - for (size_t i = 0; i < ptr->len; i++) { - } - if (ptr->len > 0) { - free(ptr->ptr); - } -} - -void wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_free(wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t *ptr) { - switch ((int32_t) ptr->tag) { - case 0: { - break; - } - } -} - -__attribute__((__import_module__("wasi:io/streams@0.2.0-rc-2023-11-10"), __import_name__("[resource-drop]input-stream"))) -extern void __wasm_import_wasi_io_0_2_0_rc_2023_11_10_streams_input_stream_drop(int32_t handle); - -void wasi_io_0_2_0_rc_2023_11_10_streams_input_stream_drop_own(wasi_io_0_2_0_rc_2023_11_10_streams_own_input_stream_t handle) { - __wasm_import_wasi_io_0_2_0_rc_2023_11_10_streams_input_stream_drop(handle.__handle); -} - -void wasi_io_0_2_0_rc_2023_11_10_streams_input_stream_drop_borrow(wasi_io_0_2_0_rc_2023_11_10_streams_own_input_stream_t handle) { - __wasm_import_wasi_io_0_2_0_rc_2023_11_10_streams_input_stream_drop(handle.__handle); -} - -wasi_io_0_2_0_rc_2023_11_10_streams_borrow_input_stream_t wasi_io_0_2_0_rc_2023_11_10_streams_borrow_input_stream(wasi_io_0_2_0_rc_2023_11_10_streams_own_input_stream_t arg) { - return (wasi_io_0_2_0_rc_2023_11_10_streams_borrow_input_stream_t) { arg.__handle }; -} - -__attribute__((__import_module__("wasi:io/streams@0.2.0-rc-2023-11-10"), __import_name__("[resource-drop]output-stream"))) -extern void __wasm_import_wasi_io_0_2_0_rc_2023_11_10_streams_output_stream_drop(int32_t handle); - -void wasi_io_0_2_0_rc_2023_11_10_streams_output_stream_drop_own(wasi_io_0_2_0_rc_2023_11_10_streams_own_output_stream_t handle) { - __wasm_import_wasi_io_0_2_0_rc_2023_11_10_streams_output_stream_drop(handle.__handle); -} - -void wasi_io_0_2_0_rc_2023_11_10_streams_output_stream_drop_borrow(wasi_io_0_2_0_rc_2023_11_10_streams_own_output_stream_t handle) { - __wasm_import_wasi_io_0_2_0_rc_2023_11_10_streams_output_stream_drop(handle.__handle); -} - -wasi_io_0_2_0_rc_2023_11_10_streams_borrow_output_stream_t wasi_io_0_2_0_rc_2023_11_10_streams_borrow_output_stream(wasi_io_0_2_0_rc_2023_11_10_streams_own_output_stream_t arg) { - return (wasi_io_0_2_0_rc_2023_11_10_streams_borrow_output_stream_t) { arg.__handle }; -} - -void bindings_list_u8_free(bindings_list_u8_t *ptr) { - for (size_t i = 0; i < ptr->len; i++) { - } - if (ptr->len > 0) { - free(ptr->ptr); - } -} - -void wasi_io_0_2_0_rc_2023_11_10_streams_result_list_u8_stream_error_free(wasi_io_0_2_0_rc_2023_11_10_streams_result_list_u8_stream_error_t *ptr) { - if (!ptr->is_err) { - bindings_list_u8_free(&ptr->val.ok); - } else { - wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_free(&ptr->val.err); - } -} - -void wasi_io_0_2_0_rc_2023_11_10_streams_result_u64_stream_error_free(wasi_io_0_2_0_rc_2023_11_10_streams_result_u64_stream_error_t *ptr) { - if (!ptr->is_err) { - } else { - wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_free(&ptr->val.err); - } -} - -void wasi_io_0_2_0_rc_2023_11_10_streams_result_void_stream_error_free(wasi_io_0_2_0_rc_2023_11_10_streams_result_void_stream_error_t *ptr) { - if (!ptr->is_err) { - } else { - wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_free(&ptr->val.err); - } -} - -__attribute__((__import_module__("wasi:cli/terminal-input@0.2.0-rc-2023-12-05"), __import_name__("[resource-drop]terminal-input"))) -extern void __wasm_import_wasi_cli_0_2_0_rc_2023_12_05_terminal_input_terminal_input_drop(int32_t handle); - -void wasi_cli_0_2_0_rc_2023_12_05_terminal_input_terminal_input_drop_own(wasi_cli_0_2_0_rc_2023_12_05_terminal_input_own_terminal_input_t handle) { - __wasm_import_wasi_cli_0_2_0_rc_2023_12_05_terminal_input_terminal_input_drop(handle.__handle); -} - -void wasi_cli_0_2_0_rc_2023_12_05_terminal_input_terminal_input_drop_borrow(wasi_cli_0_2_0_rc_2023_12_05_terminal_input_own_terminal_input_t handle) { - __wasm_import_wasi_cli_0_2_0_rc_2023_12_05_terminal_input_terminal_input_drop(handle.__handle); -} - -wasi_cli_0_2_0_rc_2023_12_05_terminal_input_borrow_terminal_input_t wasi_cli_0_2_0_rc_2023_12_05_terminal_input_borrow_terminal_input(wasi_cli_0_2_0_rc_2023_12_05_terminal_input_own_terminal_input_t arg) { - return (wasi_cli_0_2_0_rc_2023_12_05_terminal_input_borrow_terminal_input_t) { arg.__handle }; -} - -__attribute__((__import_module__("wasi:cli/terminal-output@0.2.0-rc-2023-12-05"), __import_name__("[resource-drop]terminal-output"))) -extern void __wasm_import_wasi_cli_0_2_0_rc_2023_12_05_terminal_output_terminal_output_drop(int32_t handle); - -void wasi_cli_0_2_0_rc_2023_12_05_terminal_output_terminal_output_drop_own(wasi_cli_0_2_0_rc_2023_12_05_terminal_output_own_terminal_output_t handle) { - __wasm_import_wasi_cli_0_2_0_rc_2023_12_05_terminal_output_terminal_output_drop(handle.__handle); -} - -void wasi_cli_0_2_0_rc_2023_12_05_terminal_output_terminal_output_drop_borrow(wasi_cli_0_2_0_rc_2023_12_05_terminal_output_own_terminal_output_t handle) { - __wasm_import_wasi_cli_0_2_0_rc_2023_12_05_terminal_output_terminal_output_drop(handle.__handle); -} - -wasi_cli_0_2_0_rc_2023_12_05_terminal_output_borrow_terminal_output_t wasi_cli_0_2_0_rc_2023_12_05_terminal_output_borrow_terminal_output(wasi_cli_0_2_0_rc_2023_12_05_terminal_output_own_terminal_output_t arg) { - return (wasi_cli_0_2_0_rc_2023_12_05_terminal_output_borrow_terminal_output_t) { arg.__handle }; -} - -void wasi_cli_0_2_0_rc_2023_12_05_terminal_stdin_option_own_terminal_input_free(wasi_cli_0_2_0_rc_2023_12_05_terminal_stdin_option_own_terminal_input_t *ptr) { - if (ptr->is_some) { - } -} - -void wasi_cli_0_2_0_rc_2023_12_05_terminal_stdout_option_own_terminal_output_free(wasi_cli_0_2_0_rc_2023_12_05_terminal_stdout_option_own_terminal_output_t *ptr) { - if (ptr->is_some) { - } -} - -void wasi_cli_0_2_0_rc_2023_12_05_terminal_stderr_option_own_terminal_output_free(wasi_cli_0_2_0_rc_2023_12_05_terminal_stderr_option_own_terminal_output_t *ptr) { - if (ptr->is_some) { - } -} - -void wasi_filesystem_0_2_0_rc_2023_11_10_types_option_datetime_free(wasi_filesystem_0_2_0_rc_2023_11_10_types_option_datetime_t *ptr) { - if (ptr->is_some) { - } -} - -void wasi_filesystem_0_2_0_rc_2023_11_10_types_descriptor_stat_free(wasi_filesystem_0_2_0_rc_2023_11_10_types_descriptor_stat_t *ptr) { - wasi_filesystem_0_2_0_rc_2023_11_10_types_option_datetime_free(&ptr->data_access_timestamp); - wasi_filesystem_0_2_0_rc_2023_11_10_types_option_datetime_free(&ptr->data_modification_timestamp); - wasi_filesystem_0_2_0_rc_2023_11_10_types_option_datetime_free(&ptr->status_change_timestamp); -} - -void wasi_filesystem_0_2_0_rc_2023_11_10_types_new_timestamp_free(wasi_filesystem_0_2_0_rc_2023_11_10_types_new_timestamp_t *ptr) { - switch ((int32_t) ptr->tag) { - case 2: { - break; - } - } -} - -void wasi_filesystem_0_2_0_rc_2023_11_10_types_directory_entry_free(wasi_filesystem_0_2_0_rc_2023_11_10_types_directory_entry_t *ptr) { - bindings_string_free(&ptr->name); -} - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-11-10"), __import_name__("[resource-drop]descriptor"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_descriptor_drop(int32_t handle); - -void wasi_filesystem_0_2_0_rc_2023_11_10_types_descriptor_drop_own(wasi_filesystem_0_2_0_rc_2023_11_10_types_own_descriptor_t handle) { - __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_descriptor_drop(handle.__handle); -} - -void wasi_filesystem_0_2_0_rc_2023_11_10_types_descriptor_drop_borrow(wasi_filesystem_0_2_0_rc_2023_11_10_types_own_descriptor_t handle) { - __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_descriptor_drop(handle.__handle); -} - -wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor(wasi_filesystem_0_2_0_rc_2023_11_10_types_own_descriptor_t arg) { - return (wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t) { arg.__handle }; -} - -__attribute__((__import_module__("wasi:filesystem/types@0.2.0-rc-2023-11-10"), __import_name__("[resource-drop]directory-entry-stream"))) -extern void __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_directory_entry_stream_drop(int32_t handle); - -void wasi_filesystem_0_2_0_rc_2023_11_10_types_directory_entry_stream_drop_own(wasi_filesystem_0_2_0_rc_2023_11_10_types_own_directory_entry_stream_t handle) { - __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_directory_entry_stream_drop(handle.__handle); -} - -void wasi_filesystem_0_2_0_rc_2023_11_10_types_directory_entry_stream_drop_borrow(wasi_filesystem_0_2_0_rc_2023_11_10_types_own_directory_entry_stream_t handle) { - __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_directory_entry_stream_drop(handle.__handle); -} - -wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_directory_entry_stream_t wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_directory_entry_stream(wasi_filesystem_0_2_0_rc_2023_11_10_types_own_directory_entry_stream_t arg) { - return (wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_directory_entry_stream_t) { arg.__handle }; -} - -void wasi_filesystem_0_2_0_rc_2023_11_10_types_result_own_input_stream_error_code_free(wasi_filesystem_0_2_0_rc_2023_11_10_types_result_own_input_stream_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_filesystem_0_2_0_rc_2023_11_10_types_result_own_output_stream_error_code_free(wasi_filesystem_0_2_0_rc_2023_11_10_types_result_own_output_stream_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_filesystem_0_2_0_rc_2023_11_10_types_result_void_error_code_free(wasi_filesystem_0_2_0_rc_2023_11_10_types_result_void_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_filesystem_0_2_0_rc_2023_11_10_types_result_descriptor_flags_error_code_free(wasi_filesystem_0_2_0_rc_2023_11_10_types_result_descriptor_flags_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_filesystem_0_2_0_rc_2023_11_10_types_result_descriptor_type_error_code_free(wasi_filesystem_0_2_0_rc_2023_11_10_types_result_descriptor_type_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_filesystem_0_2_0_rc_2023_11_10_types_result_tuple2_list_u8_bool_error_code_free(wasi_filesystem_0_2_0_rc_2023_11_10_types_result_tuple2_list_u8_bool_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_filesystem_0_2_0_rc_2023_11_10_types_result_filesize_error_code_free(wasi_filesystem_0_2_0_rc_2023_11_10_types_result_filesize_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_filesystem_0_2_0_rc_2023_11_10_types_result_own_directory_entry_stream_error_code_free(wasi_filesystem_0_2_0_rc_2023_11_10_types_result_own_directory_entry_stream_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_filesystem_0_2_0_rc_2023_11_10_types_result_descriptor_stat_error_code_free(wasi_filesystem_0_2_0_rc_2023_11_10_types_result_descriptor_stat_error_code_t *ptr) { - if (!ptr->is_err) { - wasi_filesystem_0_2_0_rc_2023_11_10_types_descriptor_stat_free(&ptr->val.ok); - } else { - } -} - -void wasi_filesystem_0_2_0_rc_2023_11_10_types_result_own_descriptor_error_code_free(wasi_filesystem_0_2_0_rc_2023_11_10_types_result_own_descriptor_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_filesystem_0_2_0_rc_2023_11_10_types_result_string_error_code_free(wasi_filesystem_0_2_0_rc_2023_11_10_types_result_string_error_code_t *ptr) { - if (!ptr->is_err) { - bindings_string_free(&ptr->val.ok); - } else { - } -} - -void wasi_filesystem_0_2_0_rc_2023_11_10_types_result_metadata_hash_value_error_code_free(wasi_filesystem_0_2_0_rc_2023_11_10_types_result_metadata_hash_value_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_filesystem_0_2_0_rc_2023_11_10_types_option_directory_entry_free(wasi_filesystem_0_2_0_rc_2023_11_10_types_option_directory_entry_t *ptr) { - if (ptr->is_some) { - wasi_filesystem_0_2_0_rc_2023_11_10_types_directory_entry_free(&ptr->val); - } -} - -void wasi_filesystem_0_2_0_rc_2023_11_10_types_result_option_directory_entry_error_code_free(wasi_filesystem_0_2_0_rc_2023_11_10_types_result_option_directory_entry_error_code_t *ptr) { - if (!ptr->is_err) { - wasi_filesystem_0_2_0_rc_2023_11_10_types_option_directory_entry_free(&ptr->val.ok); - } else { - } -} - -void wasi_filesystem_0_2_0_rc_2023_11_10_types_option_error_code_free(wasi_filesystem_0_2_0_rc_2023_11_10_types_option_error_code_t *ptr) { - if (ptr->is_some) { - } -} - -void wasi_filesystem_0_2_0_rc_2023_11_10_preopens_tuple2_own_descriptor_string_free(wasi_filesystem_0_2_0_rc_2023_11_10_preopens_tuple2_own_descriptor_string_t *ptr) { - bindings_string_free(&ptr->f1); -} - -void wasi_filesystem_0_2_0_rc_2023_11_10_preopens_list_tuple2_own_descriptor_string_free(wasi_filesystem_0_2_0_rc_2023_11_10_preopens_list_tuple2_own_descriptor_string_t *ptr) { - for (size_t i = 0; i < ptr->len; i++) { - wasi_filesystem_0_2_0_rc_2023_11_10_preopens_tuple2_own_descriptor_string_free(&ptr->ptr[i]); - } - if (ptr->len > 0) { - free(ptr->ptr); - } -} - -__attribute__((__import_module__("wasi:sockets/network@0.2.0-rc-2023-11-10"), __import_name__("[resource-drop]network"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_network_network_drop(int32_t handle); - -void wasi_sockets_0_2_0_rc_2023_11_10_network_network_drop_own(wasi_sockets_0_2_0_rc_2023_11_10_network_own_network_t handle) { - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_network_network_drop(handle.__handle); -} - -void wasi_sockets_0_2_0_rc_2023_11_10_network_network_drop_borrow(wasi_sockets_0_2_0_rc_2023_11_10_network_own_network_t handle) { - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_network_network_drop(handle.__handle); -} - -wasi_sockets_0_2_0_rc_2023_11_10_network_borrow_network_t wasi_sockets_0_2_0_rc_2023_11_10_network_borrow_network(wasi_sockets_0_2_0_rc_2023_11_10_network_own_network_t arg) { - return (wasi_sockets_0_2_0_rc_2023_11_10_network_borrow_network_t) { arg.__handle }; -} - -void wasi_sockets_0_2_0_rc_2023_11_10_network_ip_address_free(wasi_sockets_0_2_0_rc_2023_11_10_network_ip_address_t *ptr) { - switch ((int32_t) ptr->tag) { - case 0: { - break; - } - case 1: { - break; - } - } -} - -void wasi_sockets_0_2_0_rc_2023_11_10_network_ip_socket_address_free(wasi_sockets_0_2_0_rc_2023_11_10_network_ip_socket_address_t *ptr) { - switch ((int32_t) ptr->tag) { - case 0: { - break; - } - case 1: { - break; - } - } -} - -void wasi_sockets_0_2_0_rc_2023_11_10_udp_ip_socket_address_free(wasi_sockets_0_2_0_rc_2023_11_10_udp_ip_socket_address_t *ptr) { - wasi_sockets_0_2_0_rc_2023_11_10_network_ip_socket_address_free(ptr); -} - -void wasi_sockets_0_2_0_rc_2023_11_10_udp_incoming_datagram_free(wasi_sockets_0_2_0_rc_2023_11_10_udp_incoming_datagram_t *ptr) { - wasi_sockets_0_2_0_rc_2023_11_10_udp_ip_socket_address_free(&ptr->remote_address); -} - -void wasi_sockets_0_2_0_rc_2023_11_10_udp_option_ip_socket_address_free(wasi_sockets_0_2_0_rc_2023_11_10_udp_option_ip_socket_address_t *ptr) { - if (ptr->is_some) { - wasi_sockets_0_2_0_rc_2023_11_10_udp_ip_socket_address_free(&ptr->val); - } -} - -void wasi_sockets_0_2_0_rc_2023_11_10_udp_outgoing_datagram_free(wasi_sockets_0_2_0_rc_2023_11_10_udp_outgoing_datagram_t *ptr) { - wasi_sockets_0_2_0_rc_2023_11_10_udp_option_ip_socket_address_free(&ptr->remote_address); -} - -__attribute__((__import_module__("wasi:sockets/udp@0.2.0-rc-2023-11-10"), __import_name__("[resource-drop]udp-socket"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_udp_socket_drop(int32_t handle); - -void wasi_sockets_0_2_0_rc_2023_11_10_udp_udp_socket_drop_own(wasi_sockets_0_2_0_rc_2023_11_10_udp_own_udp_socket_t handle) { - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_udp_socket_drop(handle.__handle); -} - -void wasi_sockets_0_2_0_rc_2023_11_10_udp_udp_socket_drop_borrow(wasi_sockets_0_2_0_rc_2023_11_10_udp_own_udp_socket_t handle) { - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_udp_socket_drop(handle.__handle); -} - -wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_udp_socket_t wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_udp_socket(wasi_sockets_0_2_0_rc_2023_11_10_udp_own_udp_socket_t arg) { - return (wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_udp_socket_t) { arg.__handle }; -} - -__attribute__((__import_module__("wasi:sockets/udp@0.2.0-rc-2023-11-10"), __import_name__("[resource-drop]incoming-datagram-stream"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_incoming_datagram_stream_drop(int32_t handle); - -void wasi_sockets_0_2_0_rc_2023_11_10_udp_incoming_datagram_stream_drop_own(wasi_sockets_0_2_0_rc_2023_11_10_udp_own_incoming_datagram_stream_t handle) { - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_incoming_datagram_stream_drop(handle.__handle); -} - -void wasi_sockets_0_2_0_rc_2023_11_10_udp_incoming_datagram_stream_drop_borrow(wasi_sockets_0_2_0_rc_2023_11_10_udp_own_incoming_datagram_stream_t handle) { - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_incoming_datagram_stream_drop(handle.__handle); -} - -wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_incoming_datagram_stream_t wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_incoming_datagram_stream(wasi_sockets_0_2_0_rc_2023_11_10_udp_own_incoming_datagram_stream_t arg) { - return (wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_incoming_datagram_stream_t) { arg.__handle }; -} - -__attribute__((__import_module__("wasi:sockets/udp@0.2.0-rc-2023-11-10"), __import_name__("[resource-drop]outgoing-datagram-stream"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_outgoing_datagram_stream_drop(int32_t handle); - -void wasi_sockets_0_2_0_rc_2023_11_10_udp_outgoing_datagram_stream_drop_own(wasi_sockets_0_2_0_rc_2023_11_10_udp_own_outgoing_datagram_stream_t handle) { - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_outgoing_datagram_stream_drop(handle.__handle); -} - -void wasi_sockets_0_2_0_rc_2023_11_10_udp_outgoing_datagram_stream_drop_borrow(wasi_sockets_0_2_0_rc_2023_11_10_udp_own_outgoing_datagram_stream_t handle) { - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_outgoing_datagram_stream_drop(handle.__handle); -} - -wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_outgoing_datagram_stream_t wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_outgoing_datagram_stream(wasi_sockets_0_2_0_rc_2023_11_10_udp_own_outgoing_datagram_stream_t arg) { - return (wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_outgoing_datagram_stream_t) { arg.__handle }; -} - -void wasi_sockets_0_2_0_rc_2023_11_10_udp_result_void_error_code_free(wasi_sockets_0_2_0_rc_2023_11_10_udp_result_void_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_sockets_0_2_0_rc_2023_11_10_udp_result_tuple2_own_incoming_datagram_stream_own_outgoing_datagram_stream_error_code_free(wasi_sockets_0_2_0_rc_2023_11_10_udp_result_tuple2_own_incoming_datagram_stream_own_outgoing_datagram_stream_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_sockets_0_2_0_rc_2023_11_10_udp_result_ip_socket_address_error_code_free(wasi_sockets_0_2_0_rc_2023_11_10_udp_result_ip_socket_address_error_code_t *ptr) { - if (!ptr->is_err) { - wasi_sockets_0_2_0_rc_2023_11_10_udp_ip_socket_address_free(&ptr->val.ok); - } else { - } -} - -void wasi_sockets_0_2_0_rc_2023_11_10_udp_result_bool_error_code_free(wasi_sockets_0_2_0_rc_2023_11_10_udp_result_bool_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_sockets_0_2_0_rc_2023_11_10_udp_result_u8_error_code_free(wasi_sockets_0_2_0_rc_2023_11_10_udp_result_u8_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_sockets_0_2_0_rc_2023_11_10_udp_result_u64_error_code_free(wasi_sockets_0_2_0_rc_2023_11_10_udp_result_u64_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_sockets_0_2_0_rc_2023_11_10_udp_list_incoming_datagram_free(wasi_sockets_0_2_0_rc_2023_11_10_udp_list_incoming_datagram_t *ptr) { - for (size_t i = 0; i < ptr->len; i++) { - wasi_sockets_0_2_0_rc_2023_11_10_udp_incoming_datagram_free(&ptr->ptr[i]); - } - if (ptr->len > 0) { - free(ptr->ptr); - } -} - -void wasi_sockets_0_2_0_rc_2023_11_10_udp_result_list_incoming_datagram_error_code_free(wasi_sockets_0_2_0_rc_2023_11_10_udp_result_list_incoming_datagram_error_code_t *ptr) { - if (!ptr->is_err) { - wasi_sockets_0_2_0_rc_2023_11_10_udp_list_incoming_datagram_free(&ptr->val.ok); - } else { - } -} - -void wasi_sockets_0_2_0_rc_2023_11_10_udp_list_outgoing_datagram_free(wasi_sockets_0_2_0_rc_2023_11_10_udp_list_outgoing_datagram_t *ptr) { - for (size_t i = 0; i < ptr->len; i++) { - wasi_sockets_0_2_0_rc_2023_11_10_udp_outgoing_datagram_free(&ptr->ptr[i]); - } - if (ptr->len > 0) { - free(ptr->ptr); - } -} - -void wasi_sockets_0_2_0_rc_2023_11_10_udp_create_socket_result_own_udp_socket_error_code_free(wasi_sockets_0_2_0_rc_2023_11_10_udp_create_socket_result_own_udp_socket_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_sockets_0_2_0_rc_2023_11_10_tcp_ip_socket_address_free(wasi_sockets_0_2_0_rc_2023_11_10_tcp_ip_socket_address_t *ptr) { - wasi_sockets_0_2_0_rc_2023_11_10_network_ip_socket_address_free(ptr); -} - -__attribute__((__import_module__("wasi:sockets/tcp@0.2.0-rc-2023-11-10"), __import_name__("[resource-drop]tcp-socket"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_tcp_socket_drop(int32_t handle); - -void wasi_sockets_0_2_0_rc_2023_11_10_tcp_tcp_socket_drop_own(wasi_sockets_0_2_0_rc_2023_11_10_tcp_own_tcp_socket_t handle) { - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_tcp_socket_drop(handle.__handle); -} - -void wasi_sockets_0_2_0_rc_2023_11_10_tcp_tcp_socket_drop_borrow(wasi_sockets_0_2_0_rc_2023_11_10_tcp_own_tcp_socket_t handle) { - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_tcp_socket_drop(handle.__handle); -} - -wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket(wasi_sockets_0_2_0_rc_2023_11_10_tcp_own_tcp_socket_t arg) { - return (wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t) { arg.__handle }; -} - -void wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_void_error_code_free(wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_void_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_tuple2_own_input_stream_own_output_stream_error_code_free(wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_tuple2_own_input_stream_own_output_stream_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_tuple3_own_tcp_socket_own_input_stream_own_output_stream_error_code_free(wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_tuple3_own_tcp_socket_own_input_stream_own_output_stream_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_ip_socket_address_error_code_free(wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_ip_socket_address_error_code_t *ptr) { - if (!ptr->is_err) { - wasi_sockets_0_2_0_rc_2023_11_10_tcp_ip_socket_address_free(&ptr->val.ok); - } else { - } -} - -void wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_bool_error_code_free(wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_bool_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_duration_error_code_free(wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_duration_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_u32_error_code_free(wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_u32_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_u8_error_code_free(wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_u8_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_u64_error_code_free(wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_u64_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_sockets_0_2_0_rc_2023_11_10_tcp_create_socket_result_own_tcp_socket_error_code_free(wasi_sockets_0_2_0_rc_2023_11_10_tcp_create_socket_result_own_tcp_socket_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_ip_address_free(wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_ip_address_t *ptr) { - wasi_sockets_0_2_0_rc_2023_11_10_network_ip_address_free(ptr); -} - -__attribute__((__import_module__("wasi:sockets/ip-name-lookup@0.2.0-rc-2023-11-10"), __import_name__("[resource-drop]resolve-address-stream"))) -extern void __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_resolve_address_stream_drop(int32_t handle); - -void wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_resolve_address_stream_drop_own(wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_own_resolve_address_stream_t handle) { - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_resolve_address_stream_drop(handle.__handle); -} - -void wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_resolve_address_stream_drop_borrow(wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_own_resolve_address_stream_t handle) { - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_resolve_address_stream_drop(handle.__handle); -} - -wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_borrow_resolve_address_stream_t wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_borrow_resolve_address_stream(wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_own_resolve_address_stream_t arg) { - return (wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_borrow_resolve_address_stream_t) { arg.__handle }; -} - -void wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_result_own_resolve_address_stream_error_code_free(wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_result_own_resolve_address_stream_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - } -} - -void wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_option_ip_address_free(wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_option_ip_address_t *ptr) { - if (ptr->is_some) { - wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_ip_address_free(&ptr->val); - } -} - -void wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_result_option_ip_address_error_code_free(wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_result_option_ip_address_error_code_t *ptr) { - if (!ptr->is_err) { - wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_option_ip_address_free(&ptr->val.ok); - } else { - } -} - -void wasi_http_0_2_0_rc_2023_12_05_types_method_free(wasi_http_0_2_0_rc_2023_12_05_types_method_t *ptr) { - switch ((int32_t) ptr->tag) { - case 9: { - bindings_string_free(&ptr->val.other); - break; - } - } -} - -void wasi_http_0_2_0_rc_2023_12_05_types_scheme_free(wasi_http_0_2_0_rc_2023_12_05_types_scheme_t *ptr) { - switch ((int32_t) ptr->tag) { - case 2: { - bindings_string_free(&ptr->val.other); - break; - } - } -} - -void bindings_option_u16_free(bindings_option_u16_t *ptr) { - if (ptr->is_some) { - } -} - -void wasi_http_0_2_0_rc_2023_12_05_types_dns_error_payload_free(wasi_http_0_2_0_rc_2023_12_05_types_dns_error_payload_t *ptr) { - bindings_option_u16_free(&ptr->info_code); -} - -void bindings_option_u8_free(bindings_option_u8_t *ptr) { - if (ptr->is_some) { - } -} - -void wasi_http_0_2_0_rc_2023_12_05_types_tls_alert_received_payload_free(wasi_http_0_2_0_rc_2023_12_05_types_tls_alert_received_payload_t *ptr) { - bindings_option_u8_free(&ptr->alert_id); -} - -void bindings_option_u32_free(bindings_option_u32_t *ptr) { - if (ptr->is_some) { - } -} - -void wasi_http_0_2_0_rc_2023_12_05_types_field_size_payload_free(wasi_http_0_2_0_rc_2023_12_05_types_field_size_payload_t *ptr) { - bindings_option_u32_free(&ptr->field_size); -} - -void bindings_option_u64_free(bindings_option_u64_t *ptr) { - if (ptr->is_some) { - } -} - -void wasi_http_0_2_0_rc_2023_12_05_types_option_field_size_payload_free(wasi_http_0_2_0_rc_2023_12_05_types_option_field_size_payload_t *ptr) { - if (ptr->is_some) { - wasi_http_0_2_0_rc_2023_12_05_types_field_size_payload_free(&ptr->val); - } -} - -void wasi_http_0_2_0_rc_2023_12_05_types_error_code_free(wasi_http_0_2_0_rc_2023_12_05_types_error_code_t *ptr) { - switch ((int32_t) ptr->tag) { - case 1: { - wasi_http_0_2_0_rc_2023_12_05_types_dns_error_payload_free(&ptr->val.dns_error); - break; - } - case 14: { - wasi_http_0_2_0_rc_2023_12_05_types_tls_alert_received_payload_free(&ptr->val.tls_alert_received); - break; - } - case 17: { - bindings_option_u64_free(&ptr->val.http_request_body_size); - break; - } - case 21: { - bindings_option_u32_free(&ptr->val.http_request_header_section_size); - break; - } - case 22: { - wasi_http_0_2_0_rc_2023_12_05_types_option_field_size_payload_free(&ptr->val.http_request_header_size); - break; - } - case 23: { - bindings_option_u32_free(&ptr->val.http_request_trailer_section_size); - break; - } - case 24: { - wasi_http_0_2_0_rc_2023_12_05_types_field_size_payload_free(&ptr->val.http_request_trailer_size); - break; - } - case 26: { - bindings_option_u32_free(&ptr->val.http_response_header_section_size); - break; - } - case 27: { - wasi_http_0_2_0_rc_2023_12_05_types_field_size_payload_free(&ptr->val.http_response_header_size); - break; - } - case 28: { - bindings_option_u64_free(&ptr->val.http_response_body_size); - break; - } - case 29: { - bindings_option_u32_free(&ptr->val.http_response_trailer_section_size); - break; - } - case 30: { - wasi_http_0_2_0_rc_2023_12_05_types_field_size_payload_free(&ptr->val.http_response_trailer_size); - break; - } - case 31: { - break; - } - case 32: { - break; - } - case 38: { - break; - } - } -} - -void wasi_http_0_2_0_rc_2023_12_05_types_header_error_free(wasi_http_0_2_0_rc_2023_12_05_types_header_error_t *ptr) { - switch ((int32_t) ptr->tag) { - } -} - -void wasi_http_0_2_0_rc_2023_12_05_types_field_key_free(wasi_http_0_2_0_rc_2023_12_05_types_field_key_t *ptr) { - bindings_string_free(ptr); -} - -void wasi_http_0_2_0_rc_2023_12_05_types_field_value_free(wasi_http_0_2_0_rc_2023_12_05_types_field_value_t *ptr) { - for (size_t i = 0; i < ptr->len; i++) { - } - if (ptr->len > 0) { - free(ptr->ptr); - } -} - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[resource-drop]fields"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_fields_drop(int32_t handle); - -void wasi_http_0_2_0_rc_2023_12_05_types_fields_drop_own(wasi_http_0_2_0_rc_2023_12_05_types_own_fields_t handle) { - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_fields_drop(handle.__handle); -} - -void wasi_http_0_2_0_rc_2023_12_05_types_fields_drop_borrow(wasi_http_0_2_0_rc_2023_12_05_types_own_fields_t handle) { - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_fields_drop(handle.__handle); -} - -wasi_http_0_2_0_rc_2023_12_05_types_borrow_fields_t wasi_http_0_2_0_rc_2023_12_05_types_borrow_fields(wasi_http_0_2_0_rc_2023_12_05_types_own_fields_t arg) { - return (wasi_http_0_2_0_rc_2023_12_05_types_borrow_fields_t) { arg.__handle }; -} - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[resource-drop]incoming-request"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_incoming_request_drop(int32_t handle); - -void wasi_http_0_2_0_rc_2023_12_05_types_incoming_request_drop_own(wasi_http_0_2_0_rc_2023_12_05_types_own_incoming_request_t handle) { - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_incoming_request_drop(handle.__handle); -} - -void wasi_http_0_2_0_rc_2023_12_05_types_incoming_request_drop_borrow(wasi_http_0_2_0_rc_2023_12_05_types_own_incoming_request_t handle) { - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_incoming_request_drop(handle.__handle); -} - -wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_request_t wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_request(wasi_http_0_2_0_rc_2023_12_05_types_own_incoming_request_t arg) { - return (wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_request_t) { arg.__handle }; -} - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[resource-drop]outgoing-request"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_outgoing_request_drop(int32_t handle); - -void wasi_http_0_2_0_rc_2023_12_05_types_outgoing_request_drop_own(wasi_http_0_2_0_rc_2023_12_05_types_own_outgoing_request_t handle) { - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_outgoing_request_drop(handle.__handle); -} - -void wasi_http_0_2_0_rc_2023_12_05_types_outgoing_request_drop_borrow(wasi_http_0_2_0_rc_2023_12_05_types_own_outgoing_request_t handle) { - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_outgoing_request_drop(handle.__handle); -} - -wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_request_t wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_request(wasi_http_0_2_0_rc_2023_12_05_types_own_outgoing_request_t arg) { - return (wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_request_t) { arg.__handle }; -} - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[resource-drop]request-options"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_request_options_drop(int32_t handle); - -void wasi_http_0_2_0_rc_2023_12_05_types_request_options_drop_own(wasi_http_0_2_0_rc_2023_12_05_types_own_request_options_t handle) { - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_request_options_drop(handle.__handle); -} - -void wasi_http_0_2_0_rc_2023_12_05_types_request_options_drop_borrow(wasi_http_0_2_0_rc_2023_12_05_types_own_request_options_t handle) { - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_request_options_drop(handle.__handle); -} - -wasi_http_0_2_0_rc_2023_12_05_types_borrow_request_options_t wasi_http_0_2_0_rc_2023_12_05_types_borrow_request_options(wasi_http_0_2_0_rc_2023_12_05_types_own_request_options_t arg) { - return (wasi_http_0_2_0_rc_2023_12_05_types_borrow_request_options_t) { arg.__handle }; -} - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[resource-drop]response-outparam"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_response_outparam_drop(int32_t handle); - -void wasi_http_0_2_0_rc_2023_12_05_types_response_outparam_drop_own(wasi_http_0_2_0_rc_2023_12_05_types_own_response_outparam_t handle) { - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_response_outparam_drop(handle.__handle); -} - -void wasi_http_0_2_0_rc_2023_12_05_types_response_outparam_drop_borrow(wasi_http_0_2_0_rc_2023_12_05_types_own_response_outparam_t handle) { - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_response_outparam_drop(handle.__handle); -} - -wasi_http_0_2_0_rc_2023_12_05_types_borrow_response_outparam_t wasi_http_0_2_0_rc_2023_12_05_types_borrow_response_outparam(wasi_http_0_2_0_rc_2023_12_05_types_own_response_outparam_t arg) { - return (wasi_http_0_2_0_rc_2023_12_05_types_borrow_response_outparam_t) { arg.__handle }; -} - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[resource-drop]incoming-response"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_incoming_response_drop(int32_t handle); - -void wasi_http_0_2_0_rc_2023_12_05_types_incoming_response_drop_own(wasi_http_0_2_0_rc_2023_12_05_types_own_incoming_response_t handle) { - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_incoming_response_drop(handle.__handle); -} - -void wasi_http_0_2_0_rc_2023_12_05_types_incoming_response_drop_borrow(wasi_http_0_2_0_rc_2023_12_05_types_own_incoming_response_t handle) { - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_incoming_response_drop(handle.__handle); -} - -wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_response_t wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_response(wasi_http_0_2_0_rc_2023_12_05_types_own_incoming_response_t arg) { - return (wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_response_t) { arg.__handle }; -} - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[resource-drop]incoming-body"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_incoming_body_drop(int32_t handle); - -void wasi_http_0_2_0_rc_2023_12_05_types_incoming_body_drop_own(wasi_http_0_2_0_rc_2023_12_05_types_own_incoming_body_t handle) { - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_incoming_body_drop(handle.__handle); -} - -void wasi_http_0_2_0_rc_2023_12_05_types_incoming_body_drop_borrow(wasi_http_0_2_0_rc_2023_12_05_types_own_incoming_body_t handle) { - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_incoming_body_drop(handle.__handle); -} - -wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_body_t wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_body(wasi_http_0_2_0_rc_2023_12_05_types_own_incoming_body_t arg) { - return (wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_body_t) { arg.__handle }; -} - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[resource-drop]future-trailers"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_future_trailers_drop(int32_t handle); - -void wasi_http_0_2_0_rc_2023_12_05_types_future_trailers_drop_own(wasi_http_0_2_0_rc_2023_12_05_types_own_future_trailers_t handle) { - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_future_trailers_drop(handle.__handle); -} - -void wasi_http_0_2_0_rc_2023_12_05_types_future_trailers_drop_borrow(wasi_http_0_2_0_rc_2023_12_05_types_own_future_trailers_t handle) { - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_future_trailers_drop(handle.__handle); -} - -wasi_http_0_2_0_rc_2023_12_05_types_borrow_future_trailers_t wasi_http_0_2_0_rc_2023_12_05_types_borrow_future_trailers(wasi_http_0_2_0_rc_2023_12_05_types_own_future_trailers_t arg) { - return (wasi_http_0_2_0_rc_2023_12_05_types_borrow_future_trailers_t) { arg.__handle }; -} - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[resource-drop]outgoing-response"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_outgoing_response_drop(int32_t handle); - -void wasi_http_0_2_0_rc_2023_12_05_types_outgoing_response_drop_own(wasi_http_0_2_0_rc_2023_12_05_types_own_outgoing_response_t handle) { - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_outgoing_response_drop(handle.__handle); -} - -void wasi_http_0_2_0_rc_2023_12_05_types_outgoing_response_drop_borrow(wasi_http_0_2_0_rc_2023_12_05_types_own_outgoing_response_t handle) { - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_outgoing_response_drop(handle.__handle); -} - -wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_response_t wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_response(wasi_http_0_2_0_rc_2023_12_05_types_own_outgoing_response_t arg) { - return (wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_response_t) { arg.__handle }; -} - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[resource-drop]outgoing-body"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_outgoing_body_drop(int32_t handle); - -void wasi_http_0_2_0_rc_2023_12_05_types_outgoing_body_drop_own(wasi_http_0_2_0_rc_2023_12_05_types_own_outgoing_body_t handle) { - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_outgoing_body_drop(handle.__handle); -} - -void wasi_http_0_2_0_rc_2023_12_05_types_outgoing_body_drop_borrow(wasi_http_0_2_0_rc_2023_12_05_types_own_outgoing_body_t handle) { - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_outgoing_body_drop(handle.__handle); -} - -wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_body_t wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_body(wasi_http_0_2_0_rc_2023_12_05_types_own_outgoing_body_t arg) { - return (wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_body_t) { arg.__handle }; -} - -__attribute__((__import_module__("wasi:http/types@0.2.0-rc-2023-12-05"), __import_name__("[resource-drop]future-incoming-response"))) -extern void __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_future_incoming_response_drop(int32_t handle); - -void wasi_http_0_2_0_rc_2023_12_05_types_future_incoming_response_drop_own(wasi_http_0_2_0_rc_2023_12_05_types_own_future_incoming_response_t handle) { - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_future_incoming_response_drop(handle.__handle); -} - -void wasi_http_0_2_0_rc_2023_12_05_types_future_incoming_response_drop_borrow(wasi_http_0_2_0_rc_2023_12_05_types_own_future_incoming_response_t handle) { - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_future_incoming_response_drop(handle.__handle); -} - -wasi_http_0_2_0_rc_2023_12_05_types_borrow_future_incoming_response_t wasi_http_0_2_0_rc_2023_12_05_types_borrow_future_incoming_response(wasi_http_0_2_0_rc_2023_12_05_types_own_future_incoming_response_t arg) { - return (wasi_http_0_2_0_rc_2023_12_05_types_borrow_future_incoming_response_t) { arg.__handle }; -} - -void wasi_http_0_2_0_rc_2023_12_05_types_option_error_code_free(wasi_http_0_2_0_rc_2023_12_05_types_option_error_code_t *ptr) { - if (ptr->is_some) { - wasi_http_0_2_0_rc_2023_12_05_types_error_code_free(&ptr->val); - } -} - -void bindings_tuple2_field_key_field_value_free(bindings_tuple2_field_key_field_value_t *ptr) { - wasi_http_0_2_0_rc_2023_12_05_types_field_key_free(&ptr->f0); - wasi_http_0_2_0_rc_2023_12_05_types_field_value_free(&ptr->f1); -} - -void bindings_list_tuple2_field_key_field_value_free(bindings_list_tuple2_field_key_field_value_t *ptr) { - for (size_t i = 0; i < ptr->len; i++) { - bindings_tuple2_field_key_field_value_free(&ptr->ptr[i]); - } - if (ptr->len > 0) { - free(ptr->ptr); - } -} - -void wasi_http_0_2_0_rc_2023_12_05_types_result_own_fields_header_error_free(wasi_http_0_2_0_rc_2023_12_05_types_result_own_fields_header_error_t *ptr) { - if (!ptr->is_err) { - } else { - wasi_http_0_2_0_rc_2023_12_05_types_header_error_free(&ptr->val.err); - } -} - -void bindings_list_field_value_free(bindings_list_field_value_t *ptr) { - for (size_t i = 0; i < ptr->len; i++) { - wasi_http_0_2_0_rc_2023_12_05_types_field_value_free(&ptr->ptr[i]); - } - if (ptr->len > 0) { - free(ptr->ptr); - } -} - -void wasi_http_0_2_0_rc_2023_12_05_types_result_void_header_error_free(wasi_http_0_2_0_rc_2023_12_05_types_result_void_header_error_t *ptr) { - if (!ptr->is_err) { - } else { - wasi_http_0_2_0_rc_2023_12_05_types_header_error_free(&ptr->val.err); - } -} - -void wasi_http_0_2_0_rc_2023_12_05_types_option_scheme_free(wasi_http_0_2_0_rc_2023_12_05_types_option_scheme_t *ptr) { - if (ptr->is_some) { - wasi_http_0_2_0_rc_2023_12_05_types_scheme_free(&ptr->val); - } -} - -void wasi_http_0_2_0_rc_2023_12_05_types_result_own_incoming_body_void_free(wasi_http_0_2_0_rc_2023_12_05_types_result_own_incoming_body_void_t *ptr) { - if (!ptr->is_err) { - } -} - -void wasi_http_0_2_0_rc_2023_12_05_types_result_own_outgoing_body_void_free(wasi_http_0_2_0_rc_2023_12_05_types_result_own_outgoing_body_void_t *ptr) { - if (!ptr->is_err) { - } -} - -void wasi_http_0_2_0_rc_2023_12_05_types_result_void_void_free(wasi_http_0_2_0_rc_2023_12_05_types_result_void_void_t *ptr) { - if (!ptr->is_err) { - } -} - -void bindings_option_duration_free(bindings_option_duration_t *ptr) { - if (ptr->is_some) { - } -} - -void wasi_http_0_2_0_rc_2023_12_05_types_result_own_outgoing_response_error_code_free(wasi_http_0_2_0_rc_2023_12_05_types_result_own_outgoing_response_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - wasi_http_0_2_0_rc_2023_12_05_types_error_code_free(&ptr->val.err); - } -} - -void wasi_http_0_2_0_rc_2023_12_05_types_result_own_input_stream_void_free(wasi_http_0_2_0_rc_2023_12_05_types_result_own_input_stream_void_t *ptr) { - if (!ptr->is_err) { - } -} - -void wasi_http_0_2_0_rc_2023_12_05_types_option_own_trailers_free(wasi_http_0_2_0_rc_2023_12_05_types_option_own_trailers_t *ptr) { - if (ptr->is_some) { - } -} - -void wasi_http_0_2_0_rc_2023_12_05_types_result_option_own_trailers_error_code_free(wasi_http_0_2_0_rc_2023_12_05_types_result_option_own_trailers_error_code_t *ptr) { - if (!ptr->is_err) { - wasi_http_0_2_0_rc_2023_12_05_types_option_own_trailers_free(&ptr->val.ok); - } else { - wasi_http_0_2_0_rc_2023_12_05_types_error_code_free(&ptr->val.err); - } -} - -void wasi_http_0_2_0_rc_2023_12_05_types_result_result_option_own_trailers_error_code_void_free(wasi_http_0_2_0_rc_2023_12_05_types_result_result_option_own_trailers_error_code_void_t *ptr) { - if (!ptr->is_err) { - wasi_http_0_2_0_rc_2023_12_05_types_result_option_own_trailers_error_code_free(&ptr->val.ok); - } -} - -void wasi_http_0_2_0_rc_2023_12_05_types_option_result_result_option_own_trailers_error_code_void_free(wasi_http_0_2_0_rc_2023_12_05_types_option_result_result_option_own_trailers_error_code_void_t *ptr) { - if (ptr->is_some) { - wasi_http_0_2_0_rc_2023_12_05_types_result_result_option_own_trailers_error_code_void_free(&ptr->val); - } -} - -void wasi_http_0_2_0_rc_2023_12_05_types_result_own_output_stream_void_free(wasi_http_0_2_0_rc_2023_12_05_types_result_own_output_stream_void_t *ptr) { - if (!ptr->is_err) { - } -} - -void wasi_http_0_2_0_rc_2023_12_05_types_result_void_error_code_free(wasi_http_0_2_0_rc_2023_12_05_types_result_void_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - wasi_http_0_2_0_rc_2023_12_05_types_error_code_free(&ptr->val.err); - } -} - -void wasi_http_0_2_0_rc_2023_12_05_types_result_own_incoming_response_error_code_free(wasi_http_0_2_0_rc_2023_12_05_types_result_own_incoming_response_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - wasi_http_0_2_0_rc_2023_12_05_types_error_code_free(&ptr->val.err); - } -} - -void wasi_http_0_2_0_rc_2023_12_05_types_result_result_own_incoming_response_error_code_void_free(wasi_http_0_2_0_rc_2023_12_05_types_result_result_own_incoming_response_error_code_void_t *ptr) { - if (!ptr->is_err) { - wasi_http_0_2_0_rc_2023_12_05_types_result_own_incoming_response_error_code_free(&ptr->val.ok); - } -} - -void wasi_http_0_2_0_rc_2023_12_05_types_option_result_result_own_incoming_response_error_code_void_free(wasi_http_0_2_0_rc_2023_12_05_types_option_result_result_own_incoming_response_error_code_void_t *ptr) { - if (ptr->is_some) { - wasi_http_0_2_0_rc_2023_12_05_types_result_result_own_incoming_response_error_code_void_free(&ptr->val); - } -} - -void wasi_http_0_2_0_rc_2023_12_05_outgoing_handler_error_code_free(wasi_http_0_2_0_rc_2023_12_05_outgoing_handler_error_code_t *ptr) { - wasi_http_0_2_0_rc_2023_12_05_types_error_code_free(ptr); -} - -void wasi_http_0_2_0_rc_2023_12_05_outgoing_handler_option_own_request_options_free(wasi_http_0_2_0_rc_2023_12_05_outgoing_handler_option_own_request_options_t *ptr) { - if (ptr->is_some) { - } -} - -void wasi_http_0_2_0_rc_2023_12_05_outgoing_handler_result_own_future_incoming_response_error_code_free(wasi_http_0_2_0_rc_2023_12_05_outgoing_handler_result_own_future_incoming_response_error_code_t *ptr) { - if (!ptr->is_err) { - } else { - wasi_http_0_2_0_rc_2023_12_05_outgoing_handler_error_code_free(&ptr->val.err); - } -} - -void exports_wasi_cli_0_2_0_rc_2023_12_05_run_result_void_void_free(exports_wasi_cli_0_2_0_rc_2023_12_05_run_result_void_void_t *ptr) { - if (!ptr->is_err) { - } -} - -void bindings_string_set(bindings_string_t *ret, char*s) { - ret->ptr = (uint8_t*) s; - ret->len = strlen(s); -} - -void bindings_string_dup(bindings_string_t *ret, const char*s) { - ret->len = strlen(s); - ret->ptr = cabi_realloc(NULL, 0, 1, ret->len * 1); - memcpy(ret->ptr, s, ret->len * 1); -} - -void bindings_string_free(bindings_string_t *ret) { - if (ret->len > 0) { - free(ret->ptr); - } - ret->ptr = NULL; - ret->len = 0; -} - -// Component Adapters - -void wasi_cli_0_2_0_rc_2023_12_05_environment_get_environment(bindings_list_tuple2_string_string_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_cli_0_2_0_rc_2023_12_05_environment_get_environment(ptr); - *ret = (bindings_list_tuple2_string_string_t) { (bindings_tuple2_string_string_t*)(*((int32_t*) (ptr + 0))), (size_t)(*((int32_t*) (ptr + 4))) }; -} - -void wasi_cli_0_2_0_rc_2023_12_05_environment_get_arguments(bindings_list_string_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_cli_0_2_0_rc_2023_12_05_environment_get_arguments(ptr); - *ret = (bindings_list_string_t) { (bindings_string_t*)(*((int32_t*) (ptr + 0))), (size_t)(*((int32_t*) (ptr + 4))) }; -} - -bool wasi_cli_0_2_0_rc_2023_12_05_environment_initial_cwd(bindings_string_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[12]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_cli_0_2_0_rc_2023_12_05_environment_initial_cwd(ptr); - bindings_option_string_t option; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - option.is_some = false; - break; - } - case 1: { - option.is_some = true; - option.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 4))), (size_t)(*((int32_t*) (ptr + 8))) }; - break; - } - } - *ret = option.val; - return option.is_some; -} - -void wasi_cli_0_2_0_rc_2023_12_05_exit_exit(wasi_cli_0_2_0_rc_2023_12_05_exit_result_void_void_t *status) { - int32_t result; - if ((*status).is_err) { - result = 1; - } else { - result = 0; - } - __wasm_import_wasi_cli_0_2_0_rc_2023_12_05_exit_exit(result); -} - -void wasi_io_0_2_0_rc_2023_11_10_error_method_error_to_debug_string(wasi_io_0_2_0_rc_2023_11_10_error_borrow_error_t self, bindings_string_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_io_0_2_0_rc_2023_11_10_error_method_error_to_debug_string((self).__handle, ptr); - *ret = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 0))), (size_t)(*((int32_t*) (ptr + 4))) }; -} - -bool wasi_io_0_2_0_rc_2023_11_10_poll_method_pollable_ready(wasi_io_0_2_0_rc_2023_11_10_poll_borrow_pollable_t self) { - int32_t ret = __wasm_import_wasi_io_0_2_0_rc_2023_11_10_poll_method_pollable_ready((self).__handle); - return ret; -} - -void wasi_io_0_2_0_rc_2023_11_10_poll_method_pollable_block(wasi_io_0_2_0_rc_2023_11_10_poll_borrow_pollable_t self) { - __wasm_import_wasi_io_0_2_0_rc_2023_11_10_poll_method_pollable_block((self).__handle); -} - -void wasi_io_0_2_0_rc_2023_11_10_poll_poll(wasi_io_0_2_0_rc_2023_11_10_poll_list_borrow_pollable_t *in, bindings_list_u32_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_io_0_2_0_rc_2023_11_10_poll_poll((int32_t) (*in).ptr, (int32_t) (*in).len, ptr); - *ret = (bindings_list_u32_t) { (uint32_t*)(*((int32_t*) (ptr + 0))), (size_t)(*((int32_t*) (ptr + 4))) }; -} - -bool wasi_io_0_2_0_rc_2023_11_10_streams_method_input_stream_read(wasi_io_0_2_0_rc_2023_11_10_streams_borrow_input_stream_t self, uint64_t len, bindings_list_u8_t *ret, wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[12]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_io_0_2_0_rc_2023_11_10_streams_method_input_stream_read((self).__handle, (int64_t) (len), ptr); - wasi_io_0_2_0_rc_2023_11_10_streams_result_list_u8_stream_error_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (bindings_list_u8_t) { (uint8_t*)(*((int32_t*) (ptr + 4))), (size_t)(*((int32_t*) (ptr + 8))) }; - break; - } - case 1: { - result.is_err = true; - wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 4))); - switch ((int32_t) variant.tag) { - case 0: { - variant.val.last_operation_failed = (wasi_io_0_2_0_rc_2023_11_10_streams_own_error_t) { *((int32_t*) (ptr + 8)) }; - break; - } - case 1: { - break; - } - } - - result.val.err = variant; - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_io_0_2_0_rc_2023_11_10_streams_method_input_stream_blocking_read(wasi_io_0_2_0_rc_2023_11_10_streams_borrow_input_stream_t self, uint64_t len, bindings_list_u8_t *ret, wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[12]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_io_0_2_0_rc_2023_11_10_streams_method_input_stream_blocking_read((self).__handle, (int64_t) (len), ptr); - wasi_io_0_2_0_rc_2023_11_10_streams_result_list_u8_stream_error_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (bindings_list_u8_t) { (uint8_t*)(*((int32_t*) (ptr + 4))), (size_t)(*((int32_t*) (ptr + 8))) }; - break; - } - case 1: { - result.is_err = true; - wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 4))); - switch ((int32_t) variant.tag) { - case 0: { - variant.val.last_operation_failed = (wasi_io_0_2_0_rc_2023_11_10_streams_own_error_t) { *((int32_t*) (ptr + 8)) }; - break; - } - case 1: { - break; - } - } - - result.val.err = variant; - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_io_0_2_0_rc_2023_11_10_streams_method_input_stream_skip(wasi_io_0_2_0_rc_2023_11_10_streams_borrow_input_stream_t self, uint64_t len, uint64_t *ret, wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t *err) { - __attribute__((__aligned__(8))) - uint8_t ret_area[16]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_io_0_2_0_rc_2023_11_10_streams_method_input_stream_skip((self).__handle, (int64_t) (len), ptr); - wasi_io_0_2_0_rc_2023_11_10_streams_result_u64_stream_error_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (uint64_t) (*((int64_t*) (ptr + 8))); - break; - } - case 1: { - result.is_err = true; - wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 8))); - switch ((int32_t) variant.tag) { - case 0: { - variant.val.last_operation_failed = (wasi_io_0_2_0_rc_2023_11_10_streams_own_error_t) { *((int32_t*) (ptr + 12)) }; - break; - } - case 1: { - break; - } - } - - result.val.err = variant; - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_io_0_2_0_rc_2023_11_10_streams_method_input_stream_blocking_skip(wasi_io_0_2_0_rc_2023_11_10_streams_borrow_input_stream_t self, uint64_t len, uint64_t *ret, wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t *err) { - __attribute__((__aligned__(8))) - uint8_t ret_area[16]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_io_0_2_0_rc_2023_11_10_streams_method_input_stream_blocking_skip((self).__handle, (int64_t) (len), ptr); - wasi_io_0_2_0_rc_2023_11_10_streams_result_u64_stream_error_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (uint64_t) (*((int64_t*) (ptr + 8))); - break; - } - case 1: { - result.is_err = true; - wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 8))); - switch ((int32_t) variant.tag) { - case 0: { - variant.val.last_operation_failed = (wasi_io_0_2_0_rc_2023_11_10_streams_own_error_t) { *((int32_t*) (ptr + 12)) }; - break; - } - case 1: { - break; - } - } - - result.val.err = variant; - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -wasi_io_0_2_0_rc_2023_11_10_streams_own_pollable_t wasi_io_0_2_0_rc_2023_11_10_streams_method_input_stream_subscribe(wasi_io_0_2_0_rc_2023_11_10_streams_borrow_input_stream_t self) { - int32_t ret = __wasm_import_wasi_io_0_2_0_rc_2023_11_10_streams_method_input_stream_subscribe((self).__handle); - return (wasi_io_0_2_0_rc_2023_11_10_streams_own_pollable_t) { ret }; -} - -bool wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_check_write(wasi_io_0_2_0_rc_2023_11_10_streams_borrow_output_stream_t self, uint64_t *ret, wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t *err) { - __attribute__((__aligned__(8))) - uint8_t ret_area[16]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_check_write((self).__handle, ptr); - wasi_io_0_2_0_rc_2023_11_10_streams_result_u64_stream_error_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (uint64_t) (*((int64_t*) (ptr + 8))); - break; - } - case 1: { - result.is_err = true; - wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 8))); - switch ((int32_t) variant.tag) { - case 0: { - variant.val.last_operation_failed = (wasi_io_0_2_0_rc_2023_11_10_streams_own_error_t) { *((int32_t*) (ptr + 12)) }; - break; - } - case 1: { - break; - } - } - - result.val.err = variant; - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_write(wasi_io_0_2_0_rc_2023_11_10_streams_borrow_output_stream_t self, bindings_list_u8_t *contents, wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[12]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_write((self).__handle, (int32_t) (*contents).ptr, (int32_t) (*contents).len, ptr); - wasi_io_0_2_0_rc_2023_11_10_streams_result_void_stream_error_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 4))); - switch ((int32_t) variant.tag) { - case 0: { - variant.val.last_operation_failed = (wasi_io_0_2_0_rc_2023_11_10_streams_own_error_t) { *((int32_t*) (ptr + 8)) }; - break; - } - case 1: { - break; - } - } - - result.val.err = variant; - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_blocking_write_and_flush(wasi_io_0_2_0_rc_2023_11_10_streams_borrow_output_stream_t self, bindings_list_u8_t *contents, wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[12]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_blocking_write_and_flush((self).__handle, (int32_t) (*contents).ptr, (int32_t) (*contents).len, ptr); - wasi_io_0_2_0_rc_2023_11_10_streams_result_void_stream_error_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 4))); - switch ((int32_t) variant.tag) { - case 0: { - variant.val.last_operation_failed = (wasi_io_0_2_0_rc_2023_11_10_streams_own_error_t) { *((int32_t*) (ptr + 8)) }; - break; - } - case 1: { - break; - } - } - - result.val.err = variant; - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_flush(wasi_io_0_2_0_rc_2023_11_10_streams_borrow_output_stream_t self, wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[12]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_flush((self).__handle, ptr); - wasi_io_0_2_0_rc_2023_11_10_streams_result_void_stream_error_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 4))); - switch ((int32_t) variant.tag) { - case 0: { - variant.val.last_operation_failed = (wasi_io_0_2_0_rc_2023_11_10_streams_own_error_t) { *((int32_t*) (ptr + 8)) }; - break; - } - case 1: { - break; - } - } - - result.val.err = variant; - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_blocking_flush(wasi_io_0_2_0_rc_2023_11_10_streams_borrow_output_stream_t self, wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[12]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_blocking_flush((self).__handle, ptr); - wasi_io_0_2_0_rc_2023_11_10_streams_result_void_stream_error_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 4))); - switch ((int32_t) variant.tag) { - case 0: { - variant.val.last_operation_failed = (wasi_io_0_2_0_rc_2023_11_10_streams_own_error_t) { *((int32_t*) (ptr + 8)) }; - break; - } - case 1: { - break; - } - } - - result.val.err = variant; - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -wasi_io_0_2_0_rc_2023_11_10_streams_own_pollable_t wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_subscribe(wasi_io_0_2_0_rc_2023_11_10_streams_borrow_output_stream_t self) { - int32_t ret = __wasm_import_wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_subscribe((self).__handle); - return (wasi_io_0_2_0_rc_2023_11_10_streams_own_pollable_t) { ret }; -} - -bool wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_write_zeroes(wasi_io_0_2_0_rc_2023_11_10_streams_borrow_output_stream_t self, uint64_t len, wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[12]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_write_zeroes((self).__handle, (int64_t) (len), ptr); - wasi_io_0_2_0_rc_2023_11_10_streams_result_void_stream_error_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 4))); - switch ((int32_t) variant.tag) { - case 0: { - variant.val.last_operation_failed = (wasi_io_0_2_0_rc_2023_11_10_streams_own_error_t) { *((int32_t*) (ptr + 8)) }; - break; - } - case 1: { - break; - } - } - - result.val.err = variant; - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_blocking_write_zeroes_and_flush(wasi_io_0_2_0_rc_2023_11_10_streams_borrow_output_stream_t self, uint64_t len, wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[12]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_blocking_write_zeroes_and_flush((self).__handle, (int64_t) (len), ptr); - wasi_io_0_2_0_rc_2023_11_10_streams_result_void_stream_error_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 4))); - switch ((int32_t) variant.tag) { - case 0: { - variant.val.last_operation_failed = (wasi_io_0_2_0_rc_2023_11_10_streams_own_error_t) { *((int32_t*) (ptr + 8)) }; - break; - } - case 1: { - break; - } - } - - result.val.err = variant; - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_splice(wasi_io_0_2_0_rc_2023_11_10_streams_borrow_output_stream_t self, wasi_io_0_2_0_rc_2023_11_10_streams_borrow_input_stream_t src, uint64_t len, uint64_t *ret, wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t *err) { - __attribute__((__aligned__(8))) - uint8_t ret_area[16]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_splice((self).__handle, (src).__handle, (int64_t) (len), ptr); - wasi_io_0_2_0_rc_2023_11_10_streams_result_u64_stream_error_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (uint64_t) (*((int64_t*) (ptr + 8))); - break; - } - case 1: { - result.is_err = true; - wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 8))); - switch ((int32_t) variant.tag) { - case 0: { - variant.val.last_operation_failed = (wasi_io_0_2_0_rc_2023_11_10_streams_own_error_t) { *((int32_t*) (ptr + 12)) }; - break; - } - case 1: { - break; - } - } - - result.val.err = variant; - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_blocking_splice(wasi_io_0_2_0_rc_2023_11_10_streams_borrow_output_stream_t self, wasi_io_0_2_0_rc_2023_11_10_streams_borrow_input_stream_t src, uint64_t len, uint64_t *ret, wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t *err) { - __attribute__((__aligned__(8))) - uint8_t ret_area[16]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_blocking_splice((self).__handle, (src).__handle, (int64_t) (len), ptr); - wasi_io_0_2_0_rc_2023_11_10_streams_result_u64_stream_error_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (uint64_t) (*((int64_t*) (ptr + 8))); - break; - } - case 1: { - result.is_err = true; - wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 8))); - switch ((int32_t) variant.tag) { - case 0: { - variant.val.last_operation_failed = (wasi_io_0_2_0_rc_2023_11_10_streams_own_error_t) { *((int32_t*) (ptr + 12)) }; - break; - } - case 1: { - break; - } - } - - result.val.err = variant; - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -wasi_cli_0_2_0_rc_2023_12_05_stdin_own_input_stream_t wasi_cli_0_2_0_rc_2023_12_05_stdin_get_stdin(void) { - int32_t ret = __wasm_import_wasi_cli_0_2_0_rc_2023_12_05_stdin_get_stdin(); - return (wasi_cli_0_2_0_rc_2023_12_05_stdin_own_input_stream_t) { ret }; -} - -wasi_cli_0_2_0_rc_2023_12_05_stdout_own_output_stream_t wasi_cli_0_2_0_rc_2023_12_05_stdout_get_stdout(void) { - int32_t ret = __wasm_import_wasi_cli_0_2_0_rc_2023_12_05_stdout_get_stdout(); - return (wasi_cli_0_2_0_rc_2023_12_05_stdout_own_output_stream_t) { ret }; -} - -wasi_cli_0_2_0_rc_2023_12_05_stderr_own_output_stream_t wasi_cli_0_2_0_rc_2023_12_05_stderr_get_stderr(void) { - int32_t ret = __wasm_import_wasi_cli_0_2_0_rc_2023_12_05_stderr_get_stderr(); - return (wasi_cli_0_2_0_rc_2023_12_05_stderr_own_output_stream_t) { ret }; -} - -bool wasi_cli_0_2_0_rc_2023_12_05_terminal_stdin_get_terminal_stdin(wasi_cli_0_2_0_rc_2023_12_05_terminal_stdin_own_terminal_input_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_cli_0_2_0_rc_2023_12_05_terminal_stdin_get_terminal_stdin(ptr); - wasi_cli_0_2_0_rc_2023_12_05_terminal_stdin_option_own_terminal_input_t option; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - option.is_some = false; - break; - } - case 1: { - option.is_some = true; - option.val = (wasi_cli_0_2_0_rc_2023_12_05_terminal_stdin_own_terminal_input_t) { *((int32_t*) (ptr + 4)) }; - break; - } - } - *ret = option.val; - return option.is_some; -} - -bool wasi_cli_0_2_0_rc_2023_12_05_terminal_stdout_get_terminal_stdout(wasi_cli_0_2_0_rc_2023_12_05_terminal_stdout_own_terminal_output_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_cli_0_2_0_rc_2023_12_05_terminal_stdout_get_terminal_stdout(ptr); - wasi_cli_0_2_0_rc_2023_12_05_terminal_stdout_option_own_terminal_output_t option; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - option.is_some = false; - break; - } - case 1: { - option.is_some = true; - option.val = (wasi_cli_0_2_0_rc_2023_12_05_terminal_stdout_own_terminal_output_t) { *((int32_t*) (ptr + 4)) }; - break; - } - } - *ret = option.val; - return option.is_some; -} - -bool wasi_cli_0_2_0_rc_2023_12_05_terminal_stderr_get_terminal_stderr(wasi_cli_0_2_0_rc_2023_12_05_terminal_stderr_own_terminal_output_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_cli_0_2_0_rc_2023_12_05_terminal_stderr_get_terminal_stderr(ptr); - wasi_cli_0_2_0_rc_2023_12_05_terminal_stderr_option_own_terminal_output_t option; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - option.is_some = false; - break; - } - case 1: { - option.is_some = true; - option.val = (wasi_cli_0_2_0_rc_2023_12_05_terminal_stderr_own_terminal_output_t) { *((int32_t*) (ptr + 4)) }; - break; - } - } - *ret = option.val; - return option.is_some; -} - -wasi_clocks_0_2_0_rc_2023_11_10_monotonic_clock_instant_t wasi_clocks_0_2_0_rc_2023_11_10_monotonic_clock_now(void) { - int64_t ret = __wasm_import_wasi_clocks_0_2_0_rc_2023_11_10_monotonic_clock_now(); - return (uint64_t) (ret); -} - -wasi_clocks_0_2_0_rc_2023_11_10_monotonic_clock_duration_t wasi_clocks_0_2_0_rc_2023_11_10_monotonic_clock_resolution(void) { - int64_t ret = __wasm_import_wasi_clocks_0_2_0_rc_2023_11_10_monotonic_clock_resolution(); - return (uint64_t) (ret); -} - -wasi_clocks_0_2_0_rc_2023_11_10_monotonic_clock_own_pollable_t wasi_clocks_0_2_0_rc_2023_11_10_monotonic_clock_subscribe_instant(wasi_clocks_0_2_0_rc_2023_11_10_monotonic_clock_instant_t when) { - int32_t ret = __wasm_import_wasi_clocks_0_2_0_rc_2023_11_10_monotonic_clock_subscribe_instant((int64_t) (when)); - return (wasi_clocks_0_2_0_rc_2023_11_10_monotonic_clock_own_pollable_t) { ret }; -} - -wasi_clocks_0_2_0_rc_2023_11_10_monotonic_clock_own_pollable_t wasi_clocks_0_2_0_rc_2023_11_10_monotonic_clock_subscribe_duration(wasi_clocks_0_2_0_rc_2023_11_10_monotonic_clock_duration_t when) { - int32_t ret = __wasm_import_wasi_clocks_0_2_0_rc_2023_11_10_monotonic_clock_subscribe_duration((int64_t) (when)); - return (wasi_clocks_0_2_0_rc_2023_11_10_monotonic_clock_own_pollable_t) { ret }; -} - -void wasi_clocks_0_2_0_rc_2023_11_10_wall_clock_now(wasi_clocks_0_2_0_rc_2023_11_10_wall_clock_datetime_t *ret) { - __attribute__((__aligned__(8))) - uint8_t ret_area[16]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_clocks_0_2_0_rc_2023_11_10_wall_clock_now(ptr); - *ret = (wasi_clocks_0_2_0_rc_2023_11_10_wall_clock_datetime_t) { - (uint64_t) (*((int64_t*) (ptr + 0))), - (uint32_t) (*((int32_t*) (ptr + 8))), - }; -} - -void wasi_clocks_0_2_0_rc_2023_11_10_wall_clock_resolution(wasi_clocks_0_2_0_rc_2023_11_10_wall_clock_datetime_t *ret) { - __attribute__((__aligned__(8))) - uint8_t ret_area[16]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_clocks_0_2_0_rc_2023_11_10_wall_clock_resolution(ptr); - *ret = (wasi_clocks_0_2_0_rc_2023_11_10_wall_clock_datetime_t) { - (uint64_t) (*((int64_t*) (ptr + 0))), - (uint32_t) (*((int32_t*) (ptr + 8))), - }; -} - -bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_read_via_stream(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_11_10_types_filesize_t offset, wasi_filesystem_0_2_0_rc_2023_11_10_types_own_input_stream_t *ret, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_read_via_stream((self).__handle, (int64_t) (offset), ptr); - wasi_filesystem_0_2_0_rc_2023_11_10_types_result_own_input_stream_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_filesystem_0_2_0_rc_2023_11_10_types_own_input_stream_t) { *((int32_t*) (ptr + 4)) }; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 4))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_write_via_stream(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_11_10_types_filesize_t offset, wasi_filesystem_0_2_0_rc_2023_11_10_types_own_output_stream_t *ret, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_write_via_stream((self).__handle, (int64_t) (offset), ptr); - wasi_filesystem_0_2_0_rc_2023_11_10_types_result_own_output_stream_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_filesystem_0_2_0_rc_2023_11_10_types_own_output_stream_t) { *((int32_t*) (ptr + 4)) }; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 4))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_append_via_stream(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_11_10_types_own_output_stream_t *ret, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_append_via_stream((self).__handle, ptr); - wasi_filesystem_0_2_0_rc_2023_11_10_types_result_own_output_stream_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_filesystem_0_2_0_rc_2023_11_10_types_own_output_stream_t) { *((int32_t*) (ptr + 4)) }; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 4))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_advise(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_11_10_types_filesize_t offset, wasi_filesystem_0_2_0_rc_2023_11_10_types_filesize_t length, wasi_filesystem_0_2_0_rc_2023_11_10_types_advice_t advice, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_advise((self).__handle, (int64_t) (offset), (int64_t) (length), (int32_t) advice, ptr); - wasi_filesystem_0_2_0_rc_2023_11_10_types_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_sync_data(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_sync_data((self).__handle, ptr); - wasi_filesystem_0_2_0_rc_2023_11_10_types_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_get_flags(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_11_10_types_descriptor_flags_t *ret, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_get_flags((self).__handle, ptr); - wasi_filesystem_0_2_0_rc_2023_11_10_types_result_descriptor_flags_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_get_type(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_11_10_types_descriptor_type_t *ret, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_get_type((self).__handle, ptr); - wasi_filesystem_0_2_0_rc_2023_11_10_types_result_descriptor_type_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_set_size(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_11_10_types_filesize_t size, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_set_size((self).__handle, (int64_t) (size), ptr); - wasi_filesystem_0_2_0_rc_2023_11_10_types_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_set_times(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_11_10_types_new_timestamp_t *data_access_timestamp, wasi_filesystem_0_2_0_rc_2023_11_10_types_new_timestamp_t *data_modification_timestamp, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t variant; - int64_t variant2; - int32_t variant3; - switch ((int32_t) (*data_access_timestamp).tag) { - case 0: { - variant = 0; - variant2 = 0; - variant3 = 0; - break; - } - case 1: { - variant = 1; - variant2 = 0; - variant3 = 0; - break; - } - case 2: { - const wasi_filesystem_0_2_0_rc_2023_11_10_types_datetime_t *payload1 = &(*data_access_timestamp).val.timestamp; - variant = 2; - variant2 = (int64_t) ((*payload1).seconds); - variant3 = (int32_t) ((*payload1).nanoseconds); - break; - } - } - int32_t variant7; - int64_t variant8; - int32_t variant9; - switch ((int32_t) (*data_modification_timestamp).tag) { - case 0: { - variant7 = 0; - variant8 = 0; - variant9 = 0; - break; - } - case 1: { - variant7 = 1; - variant8 = 0; - variant9 = 0; - break; - } - case 2: { - const wasi_filesystem_0_2_0_rc_2023_11_10_types_datetime_t *payload6 = &(*data_modification_timestamp).val.timestamp; - variant7 = 2; - variant8 = (int64_t) ((*payload6).seconds); - variant9 = (int32_t) ((*payload6).nanoseconds); - break; - } - } - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_set_times((self).__handle, variant, variant2, variant3, variant7, variant8, variant9, ptr); - wasi_filesystem_0_2_0_rc_2023_11_10_types_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_read(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_11_10_types_filesize_t length, wasi_filesystem_0_2_0_rc_2023_11_10_types_filesize_t offset, bindings_tuple2_list_u8_bool_t *ret, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[16]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_read((self).__handle, (int64_t) (length), (int64_t) (offset), ptr); - wasi_filesystem_0_2_0_rc_2023_11_10_types_result_tuple2_list_u8_bool_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (bindings_tuple2_list_u8_bool_t) { - (bindings_list_u8_t) { (uint8_t*)(*((int32_t*) (ptr + 4))), (size_t)(*((int32_t*) (ptr + 8))) }, - (int32_t) (*((uint8_t*) (ptr + 12))), - }; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 4))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_write(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, bindings_list_u8_t *buffer, wasi_filesystem_0_2_0_rc_2023_11_10_types_filesize_t offset, wasi_filesystem_0_2_0_rc_2023_11_10_types_filesize_t *ret, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err) { - __attribute__((__aligned__(8))) - uint8_t ret_area[16]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_write((self).__handle, (int32_t) (*buffer).ptr, (int32_t) (*buffer).len, (int64_t) (offset), ptr); - wasi_filesystem_0_2_0_rc_2023_11_10_types_result_filesize_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (uint64_t) (*((int64_t*) (ptr + 8))); - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 8))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_read_directory(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_11_10_types_own_directory_entry_stream_t *ret, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_read_directory((self).__handle, ptr); - wasi_filesystem_0_2_0_rc_2023_11_10_types_result_own_directory_entry_stream_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_filesystem_0_2_0_rc_2023_11_10_types_own_directory_entry_stream_t) { *((int32_t*) (ptr + 4)) }; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 4))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_sync(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_sync((self).__handle, ptr); - wasi_filesystem_0_2_0_rc_2023_11_10_types_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_create_directory_at(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, bindings_string_t *path, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_create_directory_at((self).__handle, (int32_t) (*path).ptr, (int32_t) (*path).len, ptr); - wasi_filesystem_0_2_0_rc_2023_11_10_types_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_stat(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_11_10_types_descriptor_stat_t *ret, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err) { - __attribute__((__aligned__(8))) - uint8_t ret_area[104]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_stat((self).__handle, ptr); - wasi_filesystem_0_2_0_rc_2023_11_10_types_result_descriptor_stat_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - wasi_filesystem_0_2_0_rc_2023_11_10_types_option_datetime_t option; - switch ((int32_t) (*((uint8_t*) (ptr + 32)))) { - case 0: { - option.is_some = false; - break; - } - case 1: { - option.is_some = true; - option.val = (wasi_clocks_0_2_0_rc_2023_11_10_wall_clock_datetime_t) { - (uint64_t) (*((int64_t*) (ptr + 40))), - (uint32_t) (*((int32_t*) (ptr + 48))), - }; - break; - } - } - wasi_filesystem_0_2_0_rc_2023_11_10_types_option_datetime_t option0; - switch ((int32_t) (*((uint8_t*) (ptr + 56)))) { - case 0: { - option0.is_some = false; - break; - } - case 1: { - option0.is_some = true; - option0.val = (wasi_clocks_0_2_0_rc_2023_11_10_wall_clock_datetime_t) { - (uint64_t) (*((int64_t*) (ptr + 64))), - (uint32_t) (*((int32_t*) (ptr + 72))), - }; - break; - } - } - wasi_filesystem_0_2_0_rc_2023_11_10_types_option_datetime_t option1; - switch ((int32_t) (*((uint8_t*) (ptr + 80)))) { - case 0: { - option1.is_some = false; - break; - } - case 1: { - option1.is_some = true; - option1.val = (wasi_clocks_0_2_0_rc_2023_11_10_wall_clock_datetime_t) { - (uint64_t) (*((int64_t*) (ptr + 88))), - (uint32_t) (*((int32_t*) (ptr + 96))), - }; - break; - } - } - - result.val.ok = (wasi_filesystem_0_2_0_rc_2023_11_10_types_descriptor_stat_t) { - (int32_t) (*((uint8_t*) (ptr + 8))), - (uint64_t) (*((int64_t*) (ptr + 16))), - (uint64_t) (*((int64_t*) (ptr + 24))), - option, - option0, - option1, - }; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 8))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_stat_at(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_11_10_types_path_flags_t path_flags, bindings_string_t *path, wasi_filesystem_0_2_0_rc_2023_11_10_types_descriptor_stat_t *ret, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err) { - __attribute__((__aligned__(8))) - uint8_t ret_area[104]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_stat_at((self).__handle, path_flags, (int32_t) (*path).ptr, (int32_t) (*path).len, ptr); - wasi_filesystem_0_2_0_rc_2023_11_10_types_result_descriptor_stat_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - wasi_filesystem_0_2_0_rc_2023_11_10_types_option_datetime_t option; - switch ((int32_t) (*((uint8_t*) (ptr + 32)))) { - case 0: { - option.is_some = false; - break; - } - case 1: { - option.is_some = true; - option.val = (wasi_clocks_0_2_0_rc_2023_11_10_wall_clock_datetime_t) { - (uint64_t) (*((int64_t*) (ptr + 40))), - (uint32_t) (*((int32_t*) (ptr + 48))), - }; - break; - } - } - wasi_filesystem_0_2_0_rc_2023_11_10_types_option_datetime_t option0; - switch ((int32_t) (*((uint8_t*) (ptr + 56)))) { - case 0: { - option0.is_some = false; - break; - } - case 1: { - option0.is_some = true; - option0.val = (wasi_clocks_0_2_0_rc_2023_11_10_wall_clock_datetime_t) { - (uint64_t) (*((int64_t*) (ptr + 64))), - (uint32_t) (*((int32_t*) (ptr + 72))), - }; - break; - } - } - wasi_filesystem_0_2_0_rc_2023_11_10_types_option_datetime_t option1; - switch ((int32_t) (*((uint8_t*) (ptr + 80)))) { - case 0: { - option1.is_some = false; - break; - } - case 1: { - option1.is_some = true; - option1.val = (wasi_clocks_0_2_0_rc_2023_11_10_wall_clock_datetime_t) { - (uint64_t) (*((int64_t*) (ptr + 88))), - (uint32_t) (*((int32_t*) (ptr + 96))), - }; - break; - } - } - - result.val.ok = (wasi_filesystem_0_2_0_rc_2023_11_10_types_descriptor_stat_t) { - (int32_t) (*((uint8_t*) (ptr + 8))), - (uint64_t) (*((int64_t*) (ptr + 16))), - (uint64_t) (*((int64_t*) (ptr + 24))), - option, - option0, - option1, - }; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 8))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_set_times_at(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_11_10_types_path_flags_t path_flags, bindings_string_t *path, wasi_filesystem_0_2_0_rc_2023_11_10_types_new_timestamp_t *data_access_timestamp, wasi_filesystem_0_2_0_rc_2023_11_10_types_new_timestamp_t *data_modification_timestamp, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t variant; - int64_t variant2; - int32_t variant3; - switch ((int32_t) (*data_access_timestamp).tag) { - case 0: { - variant = 0; - variant2 = 0; - variant3 = 0; - break; - } - case 1: { - variant = 1; - variant2 = 0; - variant3 = 0; - break; - } - case 2: { - const wasi_filesystem_0_2_0_rc_2023_11_10_types_datetime_t *payload1 = &(*data_access_timestamp).val.timestamp; - variant = 2; - variant2 = (int64_t) ((*payload1).seconds); - variant3 = (int32_t) ((*payload1).nanoseconds); - break; - } - } - int32_t variant7; - int64_t variant8; - int32_t variant9; - switch ((int32_t) (*data_modification_timestamp).tag) { - case 0: { - variant7 = 0; - variant8 = 0; - variant9 = 0; - break; - } - case 1: { - variant7 = 1; - variant8 = 0; - variant9 = 0; - break; - } - case 2: { - const wasi_filesystem_0_2_0_rc_2023_11_10_types_datetime_t *payload6 = &(*data_modification_timestamp).val.timestamp; - variant7 = 2; - variant8 = (int64_t) ((*payload6).seconds); - variant9 = (int32_t) ((*payload6).nanoseconds); - break; - } - } - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_set_times_at((self).__handle, path_flags, (int32_t) (*path).ptr, (int32_t) (*path).len, variant, variant2, variant3, variant7, variant8, variant9, ptr); - wasi_filesystem_0_2_0_rc_2023_11_10_types_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_link_at(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_11_10_types_path_flags_t old_path_flags, bindings_string_t *old_path, wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t new_descriptor, bindings_string_t *new_path, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_link_at((self).__handle, old_path_flags, (int32_t) (*old_path).ptr, (int32_t) (*old_path).len, (new_descriptor).__handle, (int32_t) (*new_path).ptr, (int32_t) (*new_path).len, ptr); - wasi_filesystem_0_2_0_rc_2023_11_10_types_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_open_at(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_11_10_types_path_flags_t path_flags, bindings_string_t *path, wasi_filesystem_0_2_0_rc_2023_11_10_types_open_flags_t open_flags, wasi_filesystem_0_2_0_rc_2023_11_10_types_descriptor_flags_t flags, wasi_filesystem_0_2_0_rc_2023_11_10_types_own_descriptor_t *ret, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_open_at((self).__handle, path_flags, (int32_t) (*path).ptr, (int32_t) (*path).len, open_flags, flags, ptr); - wasi_filesystem_0_2_0_rc_2023_11_10_types_result_own_descriptor_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_filesystem_0_2_0_rc_2023_11_10_types_own_descriptor_t) { *((int32_t*) (ptr + 4)) }; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 4))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_readlink_at(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, bindings_string_t *path, bindings_string_t *ret, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[12]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_readlink_at((self).__handle, (int32_t) (*path).ptr, (int32_t) (*path).len, ptr); - wasi_filesystem_0_2_0_rc_2023_11_10_types_result_string_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 4))), (size_t)(*((int32_t*) (ptr + 8))) }; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 4))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_remove_directory_at(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, bindings_string_t *path, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_remove_directory_at((self).__handle, (int32_t) (*path).ptr, (int32_t) (*path).len, ptr); - wasi_filesystem_0_2_0_rc_2023_11_10_types_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_rename_at(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, bindings_string_t *old_path, wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t new_descriptor, bindings_string_t *new_path, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_rename_at((self).__handle, (int32_t) (*old_path).ptr, (int32_t) (*old_path).len, (new_descriptor).__handle, (int32_t) (*new_path).ptr, (int32_t) (*new_path).len, ptr); - wasi_filesystem_0_2_0_rc_2023_11_10_types_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_symlink_at(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, bindings_string_t *old_path, bindings_string_t *new_path, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_symlink_at((self).__handle, (int32_t) (*old_path).ptr, (int32_t) (*old_path).len, (int32_t) (*new_path).ptr, (int32_t) (*new_path).len, ptr); - wasi_filesystem_0_2_0_rc_2023_11_10_types_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_unlink_file_at(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, bindings_string_t *path, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_unlink_file_at((self).__handle, (int32_t) (*path).ptr, (int32_t) (*path).len, ptr); - wasi_filesystem_0_2_0_rc_2023_11_10_types_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_is_same_object(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t other) { - int32_t ret = __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_is_same_object((self).__handle, (other).__handle); - return ret; -} - -bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_metadata_hash(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_11_10_types_metadata_hash_value_t *ret, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err) { - __attribute__((__aligned__(8))) - uint8_t ret_area[24]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_metadata_hash((self).__handle, ptr); - wasi_filesystem_0_2_0_rc_2023_11_10_types_result_metadata_hash_value_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_filesystem_0_2_0_rc_2023_11_10_types_metadata_hash_value_t) { - (uint64_t) (*((int64_t*) (ptr + 8))), - (uint64_t) (*((int64_t*) (ptr + 16))), - }; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 8))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_metadata_hash_at(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_11_10_types_path_flags_t path_flags, bindings_string_t *path, wasi_filesystem_0_2_0_rc_2023_11_10_types_metadata_hash_value_t *ret, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err) { - __attribute__((__aligned__(8))) - uint8_t ret_area[24]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_metadata_hash_at((self).__handle, path_flags, (int32_t) (*path).ptr, (int32_t) (*path).len, ptr); - wasi_filesystem_0_2_0_rc_2023_11_10_types_result_metadata_hash_value_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_filesystem_0_2_0_rc_2023_11_10_types_metadata_hash_value_t) { - (uint64_t) (*((int64_t*) (ptr + 8))), - (uint64_t) (*((int64_t*) (ptr + 16))), - }; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 8))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_directory_entry_stream_read_directory_entry(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_directory_entry_stream_t self, wasi_filesystem_0_2_0_rc_2023_11_10_types_option_directory_entry_t *ret, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[20]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_method_directory_entry_stream_read_directory_entry((self).__handle, ptr); - wasi_filesystem_0_2_0_rc_2023_11_10_types_result_option_directory_entry_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - wasi_filesystem_0_2_0_rc_2023_11_10_types_option_directory_entry_t option; - switch ((int32_t) (*((uint8_t*) (ptr + 4)))) { - case 0: { - option.is_some = false; - break; - } - case 1: { - option.is_some = true; - option.val = (wasi_filesystem_0_2_0_rc_2023_11_10_types_directory_entry_t) { - (int32_t) (*((uint8_t*) (ptr + 8))), - (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 12))), (size_t)(*((int32_t*) (ptr + 16))) }, - }; - break; - } - } - - result.val.ok = option; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 4))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_filesystem_0_2_0_rc_2023_11_10_types_filesystem_error_code(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_error_t err_, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *ret) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_types_filesystem_error_code((err_).__handle, ptr); - wasi_filesystem_0_2_0_rc_2023_11_10_types_option_error_code_t option; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - option.is_some = false; - break; - } - case 1: { - option.is_some = true; - option.val = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - *ret = option.val; - return option.is_some; -} - -void wasi_filesystem_0_2_0_rc_2023_11_10_preopens_get_directories(wasi_filesystem_0_2_0_rc_2023_11_10_preopens_list_tuple2_own_descriptor_string_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_filesystem_0_2_0_rc_2023_11_10_preopens_get_directories(ptr); - *ret = (wasi_filesystem_0_2_0_rc_2023_11_10_preopens_list_tuple2_own_descriptor_string_t) { (wasi_filesystem_0_2_0_rc_2023_11_10_preopens_tuple2_own_descriptor_string_t*)(*((int32_t*) (ptr + 0))), (size_t)(*((int32_t*) (ptr + 4))) }; -} - -wasi_sockets_0_2_0_rc_2023_11_10_instance_network_own_network_t wasi_sockets_0_2_0_rc_2023_11_10_instance_network_instance_network(void) { - int32_t ret = __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_instance_network_instance_network(); - return (wasi_sockets_0_2_0_rc_2023_11_10_instance_network_own_network_t) { ret }; -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_start_bind(wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_udp_socket_t self, wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_network_t network, wasi_sockets_0_2_0_rc_2023_11_10_udp_ip_socket_address_t *local_address, wasi_sockets_0_2_0_rc_2023_11_10_udp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t variant; - int32_t variant1; - int32_t variant2; - int32_t variant3; - int32_t variant4; - int32_t variant5; - int32_t variant6; - int32_t variant7; - int32_t variant8; - int32_t variant9; - int32_t variant10; - int32_t variant11; - switch ((int32_t) (*local_address).tag) { - case 0: { - const wasi_sockets_0_2_0_rc_2023_11_10_network_ipv4_socket_address_t *payload = &(*local_address).val.ipv4; - variant = 0; - variant1 = (int32_t) ((*payload).port); - variant2 = (int32_t) (((*payload).address).f0); - variant3 = (int32_t) (((*payload).address).f1); - variant4 = (int32_t) (((*payload).address).f2); - variant5 = (int32_t) (((*payload).address).f3); - variant6 = 0; - variant7 = 0; - variant8 = 0; - variant9 = 0; - variant10 = 0; - variant11 = 0; - break; - } - case 1: { - const wasi_sockets_0_2_0_rc_2023_11_10_network_ipv6_socket_address_t *payload0 = &(*local_address).val.ipv6; - variant = 1; - variant1 = (int32_t) ((*payload0).port); - variant2 = (int32_t) ((*payload0).flow_info); - variant3 = (int32_t) (((*payload0).address).f0); - variant4 = (int32_t) (((*payload0).address).f1); - variant5 = (int32_t) (((*payload0).address).f2); - variant6 = (int32_t) (((*payload0).address).f3); - variant7 = (int32_t) (((*payload0).address).f4); - variant8 = (int32_t) (((*payload0).address).f5); - variant9 = (int32_t) (((*payload0).address).f6); - variant10 = (int32_t) (((*payload0).address).f7); - variant11 = (int32_t) ((*payload0).scope_id); - break; - } - } - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_start_bind((self).__handle, (network).__handle, variant, variant1, variant2, variant3, variant4, variant5, variant6, variant7, variant8, variant9, variant10, variant11, ptr); - wasi_sockets_0_2_0_rc_2023_11_10_udp_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_finish_bind(wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_udp_socket_t self, wasi_sockets_0_2_0_rc_2023_11_10_udp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_finish_bind((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_11_10_udp_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_stream(wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_udp_socket_t self, wasi_sockets_0_2_0_rc_2023_11_10_udp_ip_socket_address_t *maybe_remote_address, wasi_sockets_0_2_0_rc_2023_11_10_udp_tuple2_own_incoming_datagram_stream_own_outgoing_datagram_stream_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_udp_error_code_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[12]; - wasi_sockets_0_2_0_rc_2023_11_10_udp_option_ip_socket_address_t remote_address; - remote_address.is_some = maybe_remote_address != NULL;if (maybe_remote_address) { - remote_address.val = *maybe_remote_address; - } - int32_t option; - int32_t option14; - int32_t option15; - int32_t option16; - int32_t option17; - int32_t option18; - int32_t option19; - int32_t option20; - int32_t option21; - int32_t option22; - int32_t option23; - int32_t option24; - int32_t option25; - if ((remote_address).is_some) { - const wasi_sockets_0_2_0_rc_2023_11_10_udp_ip_socket_address_t *payload0 = &(remote_address).val; - int32_t variant; - int32_t variant3; - int32_t variant4; - int32_t variant5; - int32_t variant6; - int32_t variant7; - int32_t variant8; - int32_t variant9; - int32_t variant10; - int32_t variant11; - int32_t variant12; - int32_t variant13; - switch ((int32_t) (*payload0).tag) { - case 0: { - const wasi_sockets_0_2_0_rc_2023_11_10_network_ipv4_socket_address_t *payload1 = &(*payload0).val.ipv4; - variant = 0; - variant3 = (int32_t) ((*payload1).port); - variant4 = (int32_t) (((*payload1).address).f0); - variant5 = (int32_t) (((*payload1).address).f1); - variant6 = (int32_t) (((*payload1).address).f2); - variant7 = (int32_t) (((*payload1).address).f3); - variant8 = 0; - variant9 = 0; - variant10 = 0; - variant11 = 0; - variant12 = 0; - variant13 = 0; - break; - } - case 1: { - const wasi_sockets_0_2_0_rc_2023_11_10_network_ipv6_socket_address_t *payload2 = &(*payload0).val.ipv6; - variant = 1; - variant3 = (int32_t) ((*payload2).port); - variant4 = (int32_t) ((*payload2).flow_info); - variant5 = (int32_t) (((*payload2).address).f0); - variant6 = (int32_t) (((*payload2).address).f1); - variant7 = (int32_t) (((*payload2).address).f2); - variant8 = (int32_t) (((*payload2).address).f3); - variant9 = (int32_t) (((*payload2).address).f4); - variant10 = (int32_t) (((*payload2).address).f5); - variant11 = (int32_t) (((*payload2).address).f6); - variant12 = (int32_t) (((*payload2).address).f7); - variant13 = (int32_t) ((*payload2).scope_id); - break; - } - } - option = 1; - option14 = variant; - option15 = variant3; - option16 = variant4; - option17 = variant5; - option18 = variant6; - option19 = variant7; - option20 = variant8; - option21 = variant9; - option22 = variant10; - option23 = variant11; - option24 = variant12; - option25 = variant13; - } else { - option = 0; - option14 = 0; - option15 = 0; - option16 = 0; - option17 = 0; - option18 = 0; - option19 = 0; - option20 = 0; - option21 = 0; - option22 = 0; - option23 = 0; - option24 = 0; - option25 = 0; - } - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_stream((self).__handle, option, option14, option15, option16, option17, option18, option19, option20, option21, option22, option23, option24, option25, ptr); - wasi_sockets_0_2_0_rc_2023_11_10_udp_result_tuple2_own_incoming_datagram_stream_own_outgoing_datagram_stream_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_sockets_0_2_0_rc_2023_11_10_udp_tuple2_own_incoming_datagram_stream_own_outgoing_datagram_stream_t) { - (wasi_sockets_0_2_0_rc_2023_11_10_udp_own_incoming_datagram_stream_t) { *((int32_t*) (ptr + 4)) }, - (wasi_sockets_0_2_0_rc_2023_11_10_udp_own_outgoing_datagram_stream_t) { *((int32_t*) (ptr + 8)) }, - }; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 4))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_local_address(wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_udp_socket_t self, wasi_sockets_0_2_0_rc_2023_11_10_udp_ip_socket_address_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_udp_error_code_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[36]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_local_address((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_11_10_udp_result_ip_socket_address_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - wasi_sockets_0_2_0_rc_2023_11_10_network_ip_socket_address_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 4))); - switch ((int32_t) variant.tag) { - case 0: { - variant.val.ipv4 = (wasi_sockets_0_2_0_rc_2023_11_10_network_ipv4_socket_address_t) { - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 8)))), - (wasi_sockets_0_2_0_rc_2023_11_10_network_ipv4_address_t) { - (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 10)))), - (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 11)))), - (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 12)))), - (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 13)))), - }, - }; - break; - } - case 1: { - variant.val.ipv6 = (wasi_sockets_0_2_0_rc_2023_11_10_network_ipv6_socket_address_t) { - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 8)))), - (uint32_t) (*((int32_t*) (ptr + 12))), - (wasi_sockets_0_2_0_rc_2023_11_10_network_ipv6_address_t) { - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 16)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 18)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 20)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 22)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 24)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 26)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 28)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 30)))), - }, - (uint32_t) (*((int32_t*) (ptr + 32))), - }; - break; - } - } - - result.val.ok = variant; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 4))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_remote_address(wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_udp_socket_t self, wasi_sockets_0_2_0_rc_2023_11_10_udp_ip_socket_address_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_udp_error_code_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[36]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_remote_address((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_11_10_udp_result_ip_socket_address_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - wasi_sockets_0_2_0_rc_2023_11_10_network_ip_socket_address_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 4))); - switch ((int32_t) variant.tag) { - case 0: { - variant.val.ipv4 = (wasi_sockets_0_2_0_rc_2023_11_10_network_ipv4_socket_address_t) { - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 8)))), - (wasi_sockets_0_2_0_rc_2023_11_10_network_ipv4_address_t) { - (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 10)))), - (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 11)))), - (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 12)))), - (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 13)))), - }, - }; - break; - } - case 1: { - variant.val.ipv6 = (wasi_sockets_0_2_0_rc_2023_11_10_network_ipv6_socket_address_t) { - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 8)))), - (uint32_t) (*((int32_t*) (ptr + 12))), - (wasi_sockets_0_2_0_rc_2023_11_10_network_ipv6_address_t) { - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 16)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 18)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 20)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 22)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 24)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 26)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 28)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 30)))), - }, - (uint32_t) (*((int32_t*) (ptr + 32))), - }; - break; - } - } - - result.val.ok = variant; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 4))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -wasi_sockets_0_2_0_rc_2023_11_10_udp_ip_address_family_t wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_address_family(wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_udp_socket_t self) { - int32_t ret = __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_address_family((self).__handle); - return ret; -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_ipv6_only(wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_udp_socket_t self, bool *ret, wasi_sockets_0_2_0_rc_2023_11_10_udp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_ipv6_only((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_11_10_udp_result_bool_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_set_ipv6_only(wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_udp_socket_t self, bool value, wasi_sockets_0_2_0_rc_2023_11_10_udp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_set_ipv6_only((self).__handle, value, ptr); - wasi_sockets_0_2_0_rc_2023_11_10_udp_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_unicast_hop_limit(wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_udp_socket_t self, uint8_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_udp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_unicast_hop_limit((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_11_10_udp_result_u8_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 1)))); - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_set_unicast_hop_limit(wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_udp_socket_t self, uint8_t value, wasi_sockets_0_2_0_rc_2023_11_10_udp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_set_unicast_hop_limit((self).__handle, (int32_t) (value), ptr); - wasi_sockets_0_2_0_rc_2023_11_10_udp_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_receive_buffer_size(wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_udp_socket_t self, uint64_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_udp_error_code_t *err) { - __attribute__((__aligned__(8))) - uint8_t ret_area[16]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_receive_buffer_size((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_11_10_udp_result_u64_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (uint64_t) (*((int64_t*) (ptr + 8))); - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 8))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_set_receive_buffer_size(wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_udp_socket_t self, uint64_t value, wasi_sockets_0_2_0_rc_2023_11_10_udp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_set_receive_buffer_size((self).__handle, (int64_t) (value), ptr); - wasi_sockets_0_2_0_rc_2023_11_10_udp_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_send_buffer_size(wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_udp_socket_t self, uint64_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_udp_error_code_t *err) { - __attribute__((__aligned__(8))) - uint8_t ret_area[16]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_send_buffer_size((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_11_10_udp_result_u64_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (uint64_t) (*((int64_t*) (ptr + 8))); - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 8))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_set_send_buffer_size(wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_udp_socket_t self, uint64_t value, wasi_sockets_0_2_0_rc_2023_11_10_udp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_set_send_buffer_size((self).__handle, (int64_t) (value), ptr); - wasi_sockets_0_2_0_rc_2023_11_10_udp_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -wasi_sockets_0_2_0_rc_2023_11_10_udp_own_pollable_t wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_subscribe(wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_udp_socket_t self) { - int32_t ret = __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_subscribe((self).__handle); - return (wasi_sockets_0_2_0_rc_2023_11_10_udp_own_pollable_t) { ret }; -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_udp_method_incoming_datagram_stream_receive(wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_incoming_datagram_stream_t self, uint64_t max_results, wasi_sockets_0_2_0_rc_2023_11_10_udp_list_incoming_datagram_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_udp_error_code_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[12]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_method_incoming_datagram_stream_receive((self).__handle, (int64_t) (max_results), ptr); - wasi_sockets_0_2_0_rc_2023_11_10_udp_result_list_incoming_datagram_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_sockets_0_2_0_rc_2023_11_10_udp_list_incoming_datagram_t) { (wasi_sockets_0_2_0_rc_2023_11_10_udp_incoming_datagram_t*)(*((int32_t*) (ptr + 4))), (size_t)(*((int32_t*) (ptr + 8))) }; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 4))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -wasi_sockets_0_2_0_rc_2023_11_10_udp_own_pollable_t wasi_sockets_0_2_0_rc_2023_11_10_udp_method_incoming_datagram_stream_subscribe(wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_incoming_datagram_stream_t self) { - int32_t ret = __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_method_incoming_datagram_stream_subscribe((self).__handle); - return (wasi_sockets_0_2_0_rc_2023_11_10_udp_own_pollable_t) { ret }; -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_udp_method_outgoing_datagram_stream_check_send(wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_outgoing_datagram_stream_t self, uint64_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_udp_error_code_t *err) { - __attribute__((__aligned__(8))) - uint8_t ret_area[16]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_method_outgoing_datagram_stream_check_send((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_11_10_udp_result_u64_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (uint64_t) (*((int64_t*) (ptr + 8))); - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 8))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_udp_method_outgoing_datagram_stream_send(wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_outgoing_datagram_stream_t self, wasi_sockets_0_2_0_rc_2023_11_10_udp_list_outgoing_datagram_t *datagrams, uint64_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_udp_error_code_t *err) { - __attribute__((__aligned__(8))) - uint8_t ret_area[16]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_method_outgoing_datagram_stream_send((self).__handle, (int32_t) (*datagrams).ptr, (int32_t) (*datagrams).len, ptr); - wasi_sockets_0_2_0_rc_2023_11_10_udp_result_u64_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (uint64_t) (*((int64_t*) (ptr + 8))); - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 8))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -wasi_sockets_0_2_0_rc_2023_11_10_udp_own_pollable_t wasi_sockets_0_2_0_rc_2023_11_10_udp_method_outgoing_datagram_stream_subscribe(wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_outgoing_datagram_stream_t self) { - int32_t ret = __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_method_outgoing_datagram_stream_subscribe((self).__handle); - return (wasi_sockets_0_2_0_rc_2023_11_10_udp_own_pollable_t) { ret }; -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_udp_create_socket_create_udp_socket(wasi_sockets_0_2_0_rc_2023_11_10_udp_create_socket_ip_address_family_t address_family, wasi_sockets_0_2_0_rc_2023_11_10_udp_create_socket_own_udp_socket_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_udp_create_socket_error_code_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_udp_create_socket_create_udp_socket((int32_t) address_family, ptr); - wasi_sockets_0_2_0_rc_2023_11_10_udp_create_socket_result_own_udp_socket_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_sockets_0_2_0_rc_2023_11_10_udp_create_socket_own_udp_socket_t) { *((int32_t*) (ptr + 4)) }; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 4))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_start_bind(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_network_t network, wasi_sockets_0_2_0_rc_2023_11_10_tcp_ip_socket_address_t *local_address, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t variant; - int32_t variant1; - int32_t variant2; - int32_t variant3; - int32_t variant4; - int32_t variant5; - int32_t variant6; - int32_t variant7; - int32_t variant8; - int32_t variant9; - int32_t variant10; - int32_t variant11; - switch ((int32_t) (*local_address).tag) { - case 0: { - const wasi_sockets_0_2_0_rc_2023_11_10_network_ipv4_socket_address_t *payload = &(*local_address).val.ipv4; - variant = 0; - variant1 = (int32_t) ((*payload).port); - variant2 = (int32_t) (((*payload).address).f0); - variant3 = (int32_t) (((*payload).address).f1); - variant4 = (int32_t) (((*payload).address).f2); - variant5 = (int32_t) (((*payload).address).f3); - variant6 = 0; - variant7 = 0; - variant8 = 0; - variant9 = 0; - variant10 = 0; - variant11 = 0; - break; - } - case 1: { - const wasi_sockets_0_2_0_rc_2023_11_10_network_ipv6_socket_address_t *payload0 = &(*local_address).val.ipv6; - variant = 1; - variant1 = (int32_t) ((*payload0).port); - variant2 = (int32_t) ((*payload0).flow_info); - variant3 = (int32_t) (((*payload0).address).f0); - variant4 = (int32_t) (((*payload0).address).f1); - variant5 = (int32_t) (((*payload0).address).f2); - variant6 = (int32_t) (((*payload0).address).f3); - variant7 = (int32_t) (((*payload0).address).f4); - variant8 = (int32_t) (((*payload0).address).f5); - variant9 = (int32_t) (((*payload0).address).f6); - variant10 = (int32_t) (((*payload0).address).f7); - variant11 = (int32_t) ((*payload0).scope_id); - break; - } - } - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_start_bind((self).__handle, (network).__handle, variant, variant1, variant2, variant3, variant4, variant5, variant6, variant7, variant8, variant9, variant10, variant11, ptr); - wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_finish_bind(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_finish_bind((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_start_connect(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_network_t network, wasi_sockets_0_2_0_rc_2023_11_10_tcp_ip_socket_address_t *remote_address, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t variant; - int32_t variant1; - int32_t variant2; - int32_t variant3; - int32_t variant4; - int32_t variant5; - int32_t variant6; - int32_t variant7; - int32_t variant8; - int32_t variant9; - int32_t variant10; - int32_t variant11; - switch ((int32_t) (*remote_address).tag) { - case 0: { - const wasi_sockets_0_2_0_rc_2023_11_10_network_ipv4_socket_address_t *payload = &(*remote_address).val.ipv4; - variant = 0; - variant1 = (int32_t) ((*payload).port); - variant2 = (int32_t) (((*payload).address).f0); - variant3 = (int32_t) (((*payload).address).f1); - variant4 = (int32_t) (((*payload).address).f2); - variant5 = (int32_t) (((*payload).address).f3); - variant6 = 0; - variant7 = 0; - variant8 = 0; - variant9 = 0; - variant10 = 0; - variant11 = 0; - break; - } - case 1: { - const wasi_sockets_0_2_0_rc_2023_11_10_network_ipv6_socket_address_t *payload0 = &(*remote_address).val.ipv6; - variant = 1; - variant1 = (int32_t) ((*payload0).port); - variant2 = (int32_t) ((*payload0).flow_info); - variant3 = (int32_t) (((*payload0).address).f0); - variant4 = (int32_t) (((*payload0).address).f1); - variant5 = (int32_t) (((*payload0).address).f2); - variant6 = (int32_t) (((*payload0).address).f3); - variant7 = (int32_t) (((*payload0).address).f4); - variant8 = (int32_t) (((*payload0).address).f5); - variant9 = (int32_t) (((*payload0).address).f6); - variant10 = (int32_t) (((*payload0).address).f7); - variant11 = (int32_t) ((*payload0).scope_id); - break; - } - } - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_start_connect((self).__handle, (network).__handle, variant, variant1, variant2, variant3, variant4, variant5, variant6, variant7, variant8, variant9, variant10, variant11, ptr); - wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_finish_connect(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_11_10_tcp_tuple2_own_input_stream_own_output_stream_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[12]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_finish_connect((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_tuple2_own_input_stream_own_output_stream_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_sockets_0_2_0_rc_2023_11_10_tcp_tuple2_own_input_stream_own_output_stream_t) { - (wasi_sockets_0_2_0_rc_2023_11_10_tcp_own_input_stream_t) { *((int32_t*) (ptr + 4)) }, - (wasi_sockets_0_2_0_rc_2023_11_10_tcp_own_output_stream_t) { *((int32_t*) (ptr + 8)) }, - }; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 4))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_start_listen(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_start_listen((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_finish_listen(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_finish_listen((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_accept(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_11_10_tcp_tuple3_own_tcp_socket_own_input_stream_own_output_stream_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[16]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_accept((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_tuple3_own_tcp_socket_own_input_stream_own_output_stream_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_sockets_0_2_0_rc_2023_11_10_tcp_tuple3_own_tcp_socket_own_input_stream_own_output_stream_t) { - (wasi_sockets_0_2_0_rc_2023_11_10_tcp_own_tcp_socket_t) { *((int32_t*) (ptr + 4)) }, - (wasi_sockets_0_2_0_rc_2023_11_10_tcp_own_input_stream_t) { *((int32_t*) (ptr + 8)) }, - (wasi_sockets_0_2_0_rc_2023_11_10_tcp_own_output_stream_t) { *((int32_t*) (ptr + 12)) }, - }; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 4))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_local_address(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_11_10_tcp_ip_socket_address_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[36]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_local_address((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_ip_socket_address_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - wasi_sockets_0_2_0_rc_2023_11_10_network_ip_socket_address_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 4))); - switch ((int32_t) variant.tag) { - case 0: { - variant.val.ipv4 = (wasi_sockets_0_2_0_rc_2023_11_10_network_ipv4_socket_address_t) { - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 8)))), - (wasi_sockets_0_2_0_rc_2023_11_10_network_ipv4_address_t) { - (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 10)))), - (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 11)))), - (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 12)))), - (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 13)))), - }, - }; - break; - } - case 1: { - variant.val.ipv6 = (wasi_sockets_0_2_0_rc_2023_11_10_network_ipv6_socket_address_t) { - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 8)))), - (uint32_t) (*((int32_t*) (ptr + 12))), - (wasi_sockets_0_2_0_rc_2023_11_10_network_ipv6_address_t) { - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 16)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 18)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 20)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 22)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 24)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 26)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 28)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 30)))), - }, - (uint32_t) (*((int32_t*) (ptr + 32))), - }; - break; - } - } - - result.val.ok = variant; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 4))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_remote_address(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_11_10_tcp_ip_socket_address_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[36]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_remote_address((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_ip_socket_address_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - wasi_sockets_0_2_0_rc_2023_11_10_network_ip_socket_address_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 4))); - switch ((int32_t) variant.tag) { - case 0: { - variant.val.ipv4 = (wasi_sockets_0_2_0_rc_2023_11_10_network_ipv4_socket_address_t) { - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 8)))), - (wasi_sockets_0_2_0_rc_2023_11_10_network_ipv4_address_t) { - (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 10)))), - (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 11)))), - (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 12)))), - (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 13)))), - }, - }; - break; - } - case 1: { - variant.val.ipv6 = (wasi_sockets_0_2_0_rc_2023_11_10_network_ipv6_socket_address_t) { - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 8)))), - (uint32_t) (*((int32_t*) (ptr + 12))), - (wasi_sockets_0_2_0_rc_2023_11_10_network_ipv6_address_t) { - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 16)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 18)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 20)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 22)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 24)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 26)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 28)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 30)))), - }, - (uint32_t) (*((int32_t*) (ptr + 32))), - }; - break; - } - } - - result.val.ok = variant; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 4))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_is_listening(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self) { - int32_t ret = __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_is_listening((self).__handle); - return ret; -} - -wasi_sockets_0_2_0_rc_2023_11_10_tcp_ip_address_family_t wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_address_family(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self) { - int32_t ret = __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_address_family((self).__handle); - return ret; -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_ipv6_only(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, bool *ret, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_ipv6_only((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_bool_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_set_ipv6_only(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, bool value, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_set_ipv6_only((self).__handle, value, ptr); - wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_set_listen_backlog_size(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, uint64_t value, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_set_listen_backlog_size((self).__handle, (int64_t) (value), ptr); - wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_keep_alive_enabled(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, bool *ret, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_keep_alive_enabled((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_bool_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_set_keep_alive_enabled(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, bool value, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_set_keep_alive_enabled((self).__handle, value, ptr); - wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_keep_alive_idle_time(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_11_10_tcp_duration_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err) { - __attribute__((__aligned__(8))) - uint8_t ret_area[16]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_keep_alive_idle_time((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_duration_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (uint64_t) (*((int64_t*) (ptr + 8))); - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 8))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_set_keep_alive_idle_time(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_11_10_tcp_duration_t value, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_set_keep_alive_idle_time((self).__handle, (int64_t) (value), ptr); - wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_keep_alive_interval(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_11_10_tcp_duration_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err) { - __attribute__((__aligned__(8))) - uint8_t ret_area[16]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_keep_alive_interval((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_duration_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (uint64_t) (*((int64_t*) (ptr + 8))); - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 8))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_set_keep_alive_interval(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_11_10_tcp_duration_t value, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_set_keep_alive_interval((self).__handle, (int64_t) (value), ptr); - wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_keep_alive_count(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, uint32_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_keep_alive_count((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_u32_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (uint32_t) (*((int32_t*) (ptr + 4))); - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 4))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_set_keep_alive_count(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, uint32_t value, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_set_keep_alive_count((self).__handle, (int32_t) (value), ptr); - wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_hop_limit(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, uint8_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_hop_limit((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_u8_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 1)))); - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_set_hop_limit(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, uint8_t value, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_set_hop_limit((self).__handle, (int32_t) (value), ptr); - wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_receive_buffer_size(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, uint64_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err) { - __attribute__((__aligned__(8))) - uint8_t ret_area[16]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_receive_buffer_size((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_u64_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (uint64_t) (*((int64_t*) (ptr + 8))); - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 8))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_set_receive_buffer_size(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, uint64_t value, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_set_receive_buffer_size((self).__handle, (int64_t) (value), ptr); - wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_send_buffer_size(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, uint64_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err) { - __attribute__((__aligned__(8))) - uint8_t ret_area[16]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_send_buffer_size((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_u64_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (uint64_t) (*((int64_t*) (ptr + 8))); - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 8))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_set_send_buffer_size(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, uint64_t value, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_set_send_buffer_size((self).__handle, (int64_t) (value), ptr); - wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -wasi_sockets_0_2_0_rc_2023_11_10_tcp_own_pollable_t wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_subscribe(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self) { - int32_t ret = __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_subscribe((self).__handle); - return (wasi_sockets_0_2_0_rc_2023_11_10_tcp_own_pollable_t) { ret }; -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_shutdown(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_11_10_tcp_shutdown_type_t shutdown_type, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_shutdown((self).__handle, (int32_t) shutdown_type, ptr); - wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 1))); - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_create_socket_create_tcp_socket(wasi_sockets_0_2_0_rc_2023_11_10_tcp_create_socket_ip_address_family_t address_family, wasi_sockets_0_2_0_rc_2023_11_10_tcp_create_socket_own_tcp_socket_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_tcp_create_socket_error_code_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_tcp_create_socket_create_tcp_socket((int32_t) address_family, ptr); - wasi_sockets_0_2_0_rc_2023_11_10_tcp_create_socket_result_own_tcp_socket_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_sockets_0_2_0_rc_2023_11_10_tcp_create_socket_own_tcp_socket_t) { *((int32_t*) (ptr + 4)) }; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 4))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_resolve_addresses(wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_borrow_network_t network, bindings_string_t *name, wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_own_resolve_address_stream_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_error_code_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_resolve_addresses((network).__handle, (int32_t) (*name).ptr, (int32_t) (*name).len, ptr); - wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_result_own_resolve_address_stream_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_own_resolve_address_stream_t) { *((int32_t*) (ptr + 4)) }; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 4))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_method_resolve_address_stream_resolve_next_address(wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_borrow_resolve_address_stream_t self, wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_option_ip_address_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_error_code_t *err) { - __attribute__((__aligned__(2))) - uint8_t ret_area[22]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_method_resolve_address_stream_resolve_next_address((self).__handle, ptr); - wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_result_option_ip_address_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_option_ip_address_t option; - switch ((int32_t) (*((uint8_t*) (ptr + 2)))) { - case 0: { - option.is_some = false; - break; - } - case 1: { - option.is_some = true; - wasi_sockets_0_2_0_rc_2023_11_10_network_ip_address_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 4))); - switch ((int32_t) variant.tag) { - case 0: { - variant.val.ipv4 = (wasi_sockets_0_2_0_rc_2023_11_10_network_ipv4_address_t) { - (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 6)))), - (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 7)))), - (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 8)))), - (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 9)))), - }; - break; - } - case 1: { - variant.val.ipv6 = (wasi_sockets_0_2_0_rc_2023_11_10_network_ipv6_address_t) { - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 6)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 8)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 10)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 12)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 14)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 16)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 18)))), - (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 20)))), - }; - break; - } - } - - option.val = variant; - break; - } - } - - result.val.ok = option; - break; - } - case 1: { - result.is_err = true; - result.val.err = (int32_t) (*((uint8_t*) (ptr + 2))); - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_own_pollable_t wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_method_resolve_address_stream_subscribe(wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_borrow_resolve_address_stream_t self) { - int32_t ret = __wasm_import_wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_method_resolve_address_stream_subscribe((self).__handle); - return (wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_own_pollable_t) { ret }; -} - -void wasi_random_0_2_0_rc_2023_11_10_random_get_random_bytes(uint64_t len, bindings_list_u8_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_random_0_2_0_rc_2023_11_10_random_get_random_bytes((int64_t) (len), ptr); - *ret = (bindings_list_u8_t) { (uint8_t*)(*((int32_t*) (ptr + 0))), (size_t)(*((int32_t*) (ptr + 4))) }; -} - -uint64_t wasi_random_0_2_0_rc_2023_11_10_random_get_random_u64(void) { - int64_t ret = __wasm_import_wasi_random_0_2_0_rc_2023_11_10_random_get_random_u64(); - return (uint64_t) (ret); -} - -void wasi_random_0_2_0_rc_2023_11_10_insecure_get_insecure_random_bytes(uint64_t len, bindings_list_u8_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_random_0_2_0_rc_2023_11_10_insecure_get_insecure_random_bytes((int64_t) (len), ptr); - *ret = (bindings_list_u8_t) { (uint8_t*)(*((int32_t*) (ptr + 0))), (size_t)(*((int32_t*) (ptr + 4))) }; -} - -uint64_t wasi_random_0_2_0_rc_2023_11_10_insecure_get_insecure_random_u64(void) { - int64_t ret = __wasm_import_wasi_random_0_2_0_rc_2023_11_10_insecure_get_insecure_random_u64(); - return (uint64_t) (ret); -} - -void wasi_random_0_2_0_rc_2023_11_10_insecure_seed_insecure_seed(bindings_tuple2_u64_u64_t *ret) { - __attribute__((__aligned__(8))) - uint8_t ret_area[16]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_random_0_2_0_rc_2023_11_10_insecure_seed_insecure_seed(ptr); - *ret = (bindings_tuple2_u64_u64_t) { - (uint64_t) (*((int64_t*) (ptr + 0))), - (uint64_t) (*((int64_t*) (ptr + 8))), - }; -} - -bool wasi_http_0_2_0_rc_2023_12_05_types_http_error_code(wasi_http_0_2_0_rc_2023_12_05_types_borrow_io_error_t err_, wasi_http_0_2_0_rc_2023_12_05_types_error_code_t *ret) { - __attribute__((__aligned__(8))) - uint8_t ret_area[40]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_http_error_code((err_).__handle, ptr); - wasi_http_0_2_0_rc_2023_12_05_types_option_error_code_t option21; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - option21.is_some = false; - break; - } - case 1: { - option21.is_some = true; - wasi_http_0_2_0_rc_2023_12_05_types_error_code_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 8))); - switch ((int32_t) variant.tag) { - case 0: { - break; - } - case 1: { - bindings_option_string_t option; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option.is_some = false; - break; - } - case 1: { - option.is_some = true; - option.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 20))), (size_t)(*((int32_t*) (ptr + 24))) }; - break; - } - } - bindings_option_u16_t option0; - switch ((int32_t) (*((uint8_t*) (ptr + 28)))) { - case 0: { - option0.is_some = false; - break; - } - case 1: { - option0.is_some = true; - option0.val = (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 30)))); - break; - } - } - variant.val.dns_error = (wasi_http_0_2_0_rc_2023_12_05_types_dns_error_payload_t) { - option, - option0, - }; - break; - } - case 2: { - break; - } - case 3: { - break; - } - case 4: { - break; - } - case 5: { - break; - } - case 6: { - break; - } - case 7: { - break; - } - case 8: { - break; - } - case 9: { - break; - } - case 10: { - break; - } - case 11: { - break; - } - case 12: { - break; - } - case 13: { - break; - } - case 14: { - bindings_option_u8_t option1; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option1.is_some = false; - break; - } - case 1: { - option1.is_some = true; - option1.val = (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 17)))); - break; - } - } - bindings_option_string_t option2; - switch ((int32_t) (*((uint8_t*) (ptr + 20)))) { - case 0: { - option2.is_some = false; - break; - } - case 1: { - option2.is_some = true; - option2.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 24))), (size_t)(*((int32_t*) (ptr + 28))) }; - break; - } - } - variant.val.tls_alert_received = (wasi_http_0_2_0_rc_2023_12_05_types_tls_alert_received_payload_t) { - option1, - option2, - }; - break; - } - case 15: { - break; - } - case 16: { - break; - } - case 17: { - bindings_option_u64_t option3; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option3.is_some = false; - break; - } - case 1: { - option3.is_some = true; - option3.val = (uint64_t) (*((int64_t*) (ptr + 24))); - break; - } - } - variant.val.http_request_body_size = option3; - break; - } - case 18: { - break; - } - case 19: { - break; - } - case 20: { - break; - } - case 21: { - bindings_option_u32_t option4; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option4.is_some = false; - break; - } - case 1: { - option4.is_some = true; - option4.val = (uint32_t) (*((int32_t*) (ptr + 20))); - break; - } - } - variant.val.http_request_header_section_size = option4; - break; - } - case 22: { - wasi_http_0_2_0_rc_2023_12_05_types_option_field_size_payload_t option7; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option7.is_some = false; - break; - } - case 1: { - option7.is_some = true; - bindings_option_string_t option5; - switch ((int32_t) (*((uint8_t*) (ptr + 20)))) { - case 0: { - option5.is_some = false; - break; - } - case 1: { - option5.is_some = true; - option5.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 24))), (size_t)(*((int32_t*) (ptr + 28))) }; - break; - } - } - bindings_option_u32_t option6; - switch ((int32_t) (*((uint8_t*) (ptr + 32)))) { - case 0: { - option6.is_some = false; - break; - } - case 1: { - option6.is_some = true; - option6.val = (uint32_t) (*((int32_t*) (ptr + 36))); - break; - } - } - - option7.val = (wasi_http_0_2_0_rc_2023_12_05_types_field_size_payload_t) { - option5, - option6, - }; - break; - } - } - variant.val.http_request_header_size = option7; - break; - } - case 23: { - bindings_option_u32_t option8; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option8.is_some = false; - break; - } - case 1: { - option8.is_some = true; - option8.val = (uint32_t) (*((int32_t*) (ptr + 20))); - break; - } - } - variant.val.http_request_trailer_section_size = option8; - break; - } - case 24: { - bindings_option_string_t option9; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option9.is_some = false; - break; - } - case 1: { - option9.is_some = true; - option9.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 20))), (size_t)(*((int32_t*) (ptr + 24))) }; - break; - } - } - bindings_option_u32_t option10; - switch ((int32_t) (*((uint8_t*) (ptr + 28)))) { - case 0: { - option10.is_some = false; - break; - } - case 1: { - option10.is_some = true; - option10.val = (uint32_t) (*((int32_t*) (ptr + 32))); - break; - } - } - variant.val.http_request_trailer_size = (wasi_http_0_2_0_rc_2023_12_05_types_field_size_payload_t) { - option9, - option10, - }; - break; - } - case 25: { - break; - } - case 26: { - bindings_option_u32_t option11; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option11.is_some = false; - break; - } - case 1: { - option11.is_some = true; - option11.val = (uint32_t) (*((int32_t*) (ptr + 20))); - break; - } - } - variant.val.http_response_header_section_size = option11; - break; - } - case 27: { - bindings_option_string_t option12; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option12.is_some = false; - break; - } - case 1: { - option12.is_some = true; - option12.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 20))), (size_t)(*((int32_t*) (ptr + 24))) }; - break; - } - } - bindings_option_u32_t option13; - switch ((int32_t) (*((uint8_t*) (ptr + 28)))) { - case 0: { - option13.is_some = false; - break; - } - case 1: { - option13.is_some = true; - option13.val = (uint32_t) (*((int32_t*) (ptr + 32))); - break; - } - } - variant.val.http_response_header_size = (wasi_http_0_2_0_rc_2023_12_05_types_field_size_payload_t) { - option12, - option13, - }; - break; - } - case 28: { - bindings_option_u64_t option14; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option14.is_some = false; - break; - } - case 1: { - option14.is_some = true; - option14.val = (uint64_t) (*((int64_t*) (ptr + 24))); - break; - } - } - variant.val.http_response_body_size = option14; - break; - } - case 29: { - bindings_option_u32_t option15; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option15.is_some = false; - break; - } - case 1: { - option15.is_some = true; - option15.val = (uint32_t) (*((int32_t*) (ptr + 20))); - break; - } - } - variant.val.http_response_trailer_section_size = option15; - break; - } - case 30: { - bindings_option_string_t option16; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option16.is_some = false; - break; - } - case 1: { - option16.is_some = true; - option16.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 20))), (size_t)(*((int32_t*) (ptr + 24))) }; - break; - } - } - bindings_option_u32_t option17; - switch ((int32_t) (*((uint8_t*) (ptr + 28)))) { - case 0: { - option17.is_some = false; - break; - } - case 1: { - option17.is_some = true; - option17.val = (uint32_t) (*((int32_t*) (ptr + 32))); - break; - } - } - variant.val.http_response_trailer_size = (wasi_http_0_2_0_rc_2023_12_05_types_field_size_payload_t) { - option16, - option17, - }; - break; - } - case 31: { - bindings_option_string_t option18; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option18.is_some = false; - break; - } - case 1: { - option18.is_some = true; - option18.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 20))), (size_t)(*((int32_t*) (ptr + 24))) }; - break; - } - } - variant.val.http_response_transfer_coding = option18; - break; - } - case 32: { - bindings_option_string_t option19; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option19.is_some = false; - break; - } - case 1: { - option19.is_some = true; - option19.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 20))), (size_t)(*((int32_t*) (ptr + 24))) }; - break; - } - } - variant.val.http_response_content_coding = option19; - break; - } - case 33: { - break; - } - case 34: { - break; - } - case 35: { - break; - } - case 36: { - break; - } - case 37: { - break; - } - case 38: { - bindings_option_string_t option20; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option20.is_some = false; - break; - } - case 1: { - option20.is_some = true; - option20.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 20))), (size_t)(*((int32_t*) (ptr + 24))) }; - break; - } - } - variant.val.internal_error = option20; - break; - } - } - - option21.val = variant; - break; - } - } - *ret = option21.val; - return option21.is_some; -} - -wasi_http_0_2_0_rc_2023_12_05_types_own_fields_t wasi_http_0_2_0_rc_2023_12_05_types_constructor_fields(void) { - int32_t ret = __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_constructor_fields(); - return (wasi_http_0_2_0_rc_2023_12_05_types_own_fields_t) { ret }; -} - -bool wasi_http_0_2_0_rc_2023_12_05_types_static_fields_from_list(bindings_list_tuple2_field_key_field_value_t *entries, wasi_http_0_2_0_rc_2023_12_05_types_own_fields_t *ret, wasi_http_0_2_0_rc_2023_12_05_types_header_error_t *err) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_static_fields_from_list((int32_t) (*entries).ptr, (int32_t) (*entries).len, ptr); - wasi_http_0_2_0_rc_2023_12_05_types_result_own_fields_header_error_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_http_0_2_0_rc_2023_12_05_types_own_fields_t) { *((int32_t*) (ptr + 4)) }; - break; - } - case 1: { - result.is_err = true; - wasi_http_0_2_0_rc_2023_12_05_types_header_error_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 4))); - switch ((int32_t) variant.tag) { - case 0: { - break; - } - case 1: { - break; - } - case 2: { - break; - } - } - - result.val.err = variant; - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -void wasi_http_0_2_0_rc_2023_12_05_types_method_fields_get(wasi_http_0_2_0_rc_2023_12_05_types_borrow_fields_t self, wasi_http_0_2_0_rc_2023_12_05_types_field_key_t *name, bindings_list_field_value_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_fields_get((self).__handle, (int32_t) (*name).ptr, (int32_t) (*name).len, ptr); - *ret = (bindings_list_field_value_t) { (wasi_http_0_2_0_rc_2023_12_05_types_field_value_t*)(*((int32_t*) (ptr + 0))), (size_t)(*((int32_t*) (ptr + 4))) }; -} - -bool wasi_http_0_2_0_rc_2023_12_05_types_method_fields_has(wasi_http_0_2_0_rc_2023_12_05_types_borrow_fields_t self, wasi_http_0_2_0_rc_2023_12_05_types_field_key_t *name) { - int32_t ret = __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_fields_has((self).__handle, (int32_t) (*name).ptr, (int32_t) (*name).len); - return ret; -} - -bool wasi_http_0_2_0_rc_2023_12_05_types_method_fields_set(wasi_http_0_2_0_rc_2023_12_05_types_borrow_fields_t self, wasi_http_0_2_0_rc_2023_12_05_types_field_key_t *name, bindings_list_field_value_t *value, wasi_http_0_2_0_rc_2023_12_05_types_header_error_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_fields_set((self).__handle, (int32_t) (*name).ptr, (int32_t) (*name).len, (int32_t) (*value).ptr, (int32_t) (*value).len, ptr); - wasi_http_0_2_0_rc_2023_12_05_types_result_void_header_error_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - wasi_http_0_2_0_rc_2023_12_05_types_header_error_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 1))); - switch ((int32_t) variant.tag) { - case 0: { - break; - } - case 1: { - break; - } - case 2: { - break; - } - } - - result.val.err = variant; - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_http_0_2_0_rc_2023_12_05_types_method_fields_delete(wasi_http_0_2_0_rc_2023_12_05_types_borrow_fields_t self, wasi_http_0_2_0_rc_2023_12_05_types_field_key_t *name, wasi_http_0_2_0_rc_2023_12_05_types_header_error_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_fields_delete((self).__handle, (int32_t) (*name).ptr, (int32_t) (*name).len, ptr); - wasi_http_0_2_0_rc_2023_12_05_types_result_void_header_error_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - wasi_http_0_2_0_rc_2023_12_05_types_header_error_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 1))); - switch ((int32_t) variant.tag) { - case 0: { - break; - } - case 1: { - break; - } - case 2: { - break; - } - } - - result.val.err = variant; - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -bool wasi_http_0_2_0_rc_2023_12_05_types_method_fields_append(wasi_http_0_2_0_rc_2023_12_05_types_borrow_fields_t self, wasi_http_0_2_0_rc_2023_12_05_types_field_key_t *name, wasi_http_0_2_0_rc_2023_12_05_types_field_value_t *value, wasi_http_0_2_0_rc_2023_12_05_types_header_error_t *err) { - __attribute__((__aligned__(1))) - uint8_t ret_area[2]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_fields_append((self).__handle, (int32_t) (*name).ptr, (int32_t) (*name).len, (int32_t) (*value).ptr, (int32_t) (*value).len, ptr); - wasi_http_0_2_0_rc_2023_12_05_types_result_void_header_error_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - wasi_http_0_2_0_rc_2023_12_05_types_header_error_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 1))); - switch ((int32_t) variant.tag) { - case 0: { - break; - } - case 1: { - break; - } - case 2: { - break; - } - } - - result.val.err = variant; - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -void wasi_http_0_2_0_rc_2023_12_05_types_method_fields_entries(wasi_http_0_2_0_rc_2023_12_05_types_borrow_fields_t self, bindings_list_tuple2_field_key_field_value_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_fields_entries((self).__handle, ptr); - *ret = (bindings_list_tuple2_field_key_field_value_t) { (bindings_tuple2_field_key_field_value_t*)(*((int32_t*) (ptr + 0))), (size_t)(*((int32_t*) (ptr + 4))) }; -} - -wasi_http_0_2_0_rc_2023_12_05_types_own_fields_t wasi_http_0_2_0_rc_2023_12_05_types_method_fields_clone(wasi_http_0_2_0_rc_2023_12_05_types_borrow_fields_t self) { - int32_t ret = __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_fields_clone((self).__handle); - return (wasi_http_0_2_0_rc_2023_12_05_types_own_fields_t) { ret }; -} - -void wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_request_method(wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_request_t self, wasi_http_0_2_0_rc_2023_12_05_types_method_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[12]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_request_method((self).__handle, ptr); - wasi_http_0_2_0_rc_2023_12_05_types_method_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 0))); - switch ((int32_t) variant.tag) { - case 0: { - break; - } - case 1: { - break; - } - case 2: { - break; - } - case 3: { - break; - } - case 4: { - break; - } - case 5: { - break; - } - case 6: { - break; - } - case 7: { - break; - } - case 8: { - break; - } - case 9: { - variant.val.other = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 4))), (size_t)(*((int32_t*) (ptr + 8))) }; - break; - } - } - *ret = variant; -} - -bool wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_request_path_with_query(wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_request_t self, bindings_string_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[12]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_request_path_with_query((self).__handle, ptr); - bindings_option_string_t option; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - option.is_some = false; - break; - } - case 1: { - option.is_some = true; - option.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 4))), (size_t)(*((int32_t*) (ptr + 8))) }; - break; - } - } - *ret = option.val; - return option.is_some; -} - -bool wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_request_scheme(wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_request_t self, wasi_http_0_2_0_rc_2023_12_05_types_scheme_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[16]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_request_scheme((self).__handle, ptr); - wasi_http_0_2_0_rc_2023_12_05_types_option_scheme_t option; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - option.is_some = false; - break; - } - case 1: { - option.is_some = true; - wasi_http_0_2_0_rc_2023_12_05_types_scheme_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 4))); - switch ((int32_t) variant.tag) { - case 0: { - break; - } - case 1: { - break; - } - case 2: { - variant.val.other = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 8))), (size_t)(*((int32_t*) (ptr + 12))) }; - break; - } - } - - option.val = variant; - break; - } - } - *ret = option.val; - return option.is_some; -} - -bool wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_request_authority(wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_request_t self, bindings_string_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[12]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_request_authority((self).__handle, ptr); - bindings_option_string_t option; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - option.is_some = false; - break; - } - case 1: { - option.is_some = true; - option.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 4))), (size_t)(*((int32_t*) (ptr + 8))) }; - break; - } - } - *ret = option.val; - return option.is_some; -} - -wasi_http_0_2_0_rc_2023_12_05_types_own_headers_t wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_request_headers(wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_request_t self) { - int32_t ret = __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_request_headers((self).__handle); - return (wasi_http_0_2_0_rc_2023_12_05_types_own_headers_t) { ret }; -} - -bool wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_request_consume(wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_request_t self, wasi_http_0_2_0_rc_2023_12_05_types_own_incoming_body_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_request_consume((self).__handle, ptr); - wasi_http_0_2_0_rc_2023_12_05_types_result_own_incoming_body_void_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_http_0_2_0_rc_2023_12_05_types_own_incoming_body_t) { *((int32_t*) (ptr + 4)) }; - break; - } - case 1: { - result.is_err = true; - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - return 0; - } -} - -wasi_http_0_2_0_rc_2023_12_05_types_own_outgoing_request_t wasi_http_0_2_0_rc_2023_12_05_types_constructor_outgoing_request(wasi_http_0_2_0_rc_2023_12_05_types_own_headers_t headers) { - int32_t ret = __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_constructor_outgoing_request((headers).__handle); - return (wasi_http_0_2_0_rc_2023_12_05_types_own_outgoing_request_t) { ret }; -} - -bool wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_body(wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_request_t self, wasi_http_0_2_0_rc_2023_12_05_types_own_outgoing_body_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_body((self).__handle, ptr); - wasi_http_0_2_0_rc_2023_12_05_types_result_own_outgoing_body_void_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_http_0_2_0_rc_2023_12_05_types_own_outgoing_body_t) { *((int32_t*) (ptr + 4)) }; - break; - } - case 1: { - result.is_err = true; - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - return 0; - } -} - -void wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_method(wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_request_t self, wasi_http_0_2_0_rc_2023_12_05_types_method_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[12]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_method((self).__handle, ptr); - wasi_http_0_2_0_rc_2023_12_05_types_method_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 0))); - switch ((int32_t) variant.tag) { - case 0: { - break; - } - case 1: { - break; - } - case 2: { - break; - } - case 3: { - break; - } - case 4: { - break; - } - case 5: { - break; - } - case 6: { - break; - } - case 7: { - break; - } - case 8: { - break; - } - case 9: { - variant.val.other = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 4))), (size_t)(*((int32_t*) (ptr + 8))) }; - break; - } - } - *ret = variant; -} - -bool wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_set_method(wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_request_t self, wasi_http_0_2_0_rc_2023_12_05_types_method_t *method) { - int32_t variant; - int32_t variant9; - int32_t variant10; - switch ((int32_t) (*method).tag) { - case 0: { - variant = 0; - variant9 = 0; - variant10 = 0; - break; - } - case 1: { - variant = 1; - variant9 = 0; - variant10 = 0; - break; - } - case 2: { - variant = 2; - variant9 = 0; - variant10 = 0; - break; - } - case 3: { - variant = 3; - variant9 = 0; - variant10 = 0; - break; - } - case 4: { - variant = 4; - variant9 = 0; - variant10 = 0; - break; - } - case 5: { - variant = 5; - variant9 = 0; - variant10 = 0; - break; - } - case 6: { - variant = 6; - variant9 = 0; - variant10 = 0; - break; - } - case 7: { - variant = 7; - variant9 = 0; - variant10 = 0; - break; - } - case 8: { - variant = 8; - variant9 = 0; - variant10 = 0; - break; - } - case 9: { - const bindings_string_t *payload8 = &(*method).val.other; - variant = 9; - variant9 = (int32_t) (*payload8).ptr; - variant10 = (int32_t) (*payload8).len; - break; - } - } - int32_t ret = __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_set_method((self).__handle, variant, variant9, variant10); - wasi_http_0_2_0_rc_2023_12_05_types_result_void_void_t result; - switch (ret) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - break; - } - } - if (!result.is_err) { - return 1; - } else { - return 0; - } -} - -bool wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_path_with_query(wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_request_t self, bindings_string_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[12]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_path_with_query((self).__handle, ptr); - bindings_option_string_t option; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - option.is_some = false; - break; - } - case 1: { - option.is_some = true; - option.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 4))), (size_t)(*((int32_t*) (ptr + 8))) }; - break; - } - } - *ret = option.val; - return option.is_some; -} - -bool wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_set_path_with_query(wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_request_t self, bindings_string_t *maybe_path_with_query) { - bindings_option_string_t path_with_query; - path_with_query.is_some = maybe_path_with_query != NULL;if (maybe_path_with_query) { - path_with_query.val = *maybe_path_with_query; - } - int32_t option; - int32_t option1; - int32_t option2; - if ((path_with_query).is_some) { - const bindings_string_t *payload0 = &(path_with_query).val; - option = 1; - option1 = (int32_t) (*payload0).ptr; - option2 = (int32_t) (*payload0).len; - } else { - option = 0; - option1 = 0; - option2 = 0; - } - int32_t ret = __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_set_path_with_query((self).__handle, option, option1, option2); - wasi_http_0_2_0_rc_2023_12_05_types_result_void_void_t result; - switch (ret) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - break; - } - } - if (!result.is_err) { - return 1; - } else { - return 0; - } -} - -bool wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_scheme(wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_request_t self, wasi_http_0_2_0_rc_2023_12_05_types_scheme_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[16]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_scheme((self).__handle, ptr); - wasi_http_0_2_0_rc_2023_12_05_types_option_scheme_t option; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - option.is_some = false; - break; - } - case 1: { - option.is_some = true; - wasi_http_0_2_0_rc_2023_12_05_types_scheme_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 4))); - switch ((int32_t) variant.tag) { - case 0: { - break; - } - case 1: { - break; - } - case 2: { - variant.val.other = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 8))), (size_t)(*((int32_t*) (ptr + 12))) }; - break; - } - } - - option.val = variant; - break; - } - } - *ret = option.val; - return option.is_some; -} - -bool wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_set_scheme(wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_request_t self, wasi_http_0_2_0_rc_2023_12_05_types_scheme_t *maybe_scheme) { - wasi_http_0_2_0_rc_2023_12_05_types_option_scheme_t scheme; - scheme.is_some = maybe_scheme != NULL;if (maybe_scheme) { - scheme.val = *maybe_scheme; - } - int32_t option; - int32_t option6; - int32_t option7; - int32_t option8; - if ((scheme).is_some) { - const wasi_http_0_2_0_rc_2023_12_05_types_scheme_t *payload0 = &(scheme).val; - int32_t variant; - int32_t variant4; - int32_t variant5; - switch ((int32_t) (*payload0).tag) { - case 0: { - variant = 0; - variant4 = 0; - variant5 = 0; - break; - } - case 1: { - variant = 1; - variant4 = 0; - variant5 = 0; - break; - } - case 2: { - const bindings_string_t *payload3 = &(*payload0).val.other; - variant = 2; - variant4 = (int32_t) (*payload3).ptr; - variant5 = (int32_t) (*payload3).len; - break; - } - } - option = 1; - option6 = variant; - option7 = variant4; - option8 = variant5; - } else { - option = 0; - option6 = 0; - option7 = 0; - option8 = 0; - } - int32_t ret = __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_set_scheme((self).__handle, option, option6, option7, option8); - wasi_http_0_2_0_rc_2023_12_05_types_result_void_void_t result; - switch (ret) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - break; - } - } - if (!result.is_err) { - return 1; - } else { - return 0; - } -} - -bool wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_authority(wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_request_t self, bindings_string_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[12]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_authority((self).__handle, ptr); - bindings_option_string_t option; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - option.is_some = false; - break; - } - case 1: { - option.is_some = true; - option.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 4))), (size_t)(*((int32_t*) (ptr + 8))) }; - break; - } - } - *ret = option.val; - return option.is_some; -} - -bool wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_set_authority(wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_request_t self, bindings_string_t *maybe_authority) { - bindings_option_string_t authority; - authority.is_some = maybe_authority != NULL;if (maybe_authority) { - authority.val = *maybe_authority; - } - int32_t option; - int32_t option1; - int32_t option2; - if ((authority).is_some) { - const bindings_string_t *payload0 = &(authority).val; - option = 1; - option1 = (int32_t) (*payload0).ptr; - option2 = (int32_t) (*payload0).len; - } else { - option = 0; - option1 = 0; - option2 = 0; - } - int32_t ret = __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_set_authority((self).__handle, option, option1, option2); - wasi_http_0_2_0_rc_2023_12_05_types_result_void_void_t result; - switch (ret) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - break; - } - } - if (!result.is_err) { - return 1; - } else { - return 0; - } -} - -wasi_http_0_2_0_rc_2023_12_05_types_own_headers_t wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_headers(wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_request_t self) { - int32_t ret = __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_headers((self).__handle); - return (wasi_http_0_2_0_rc_2023_12_05_types_own_headers_t) { ret }; -} - -wasi_http_0_2_0_rc_2023_12_05_types_own_request_options_t wasi_http_0_2_0_rc_2023_12_05_types_constructor_request_options(void) { - int32_t ret = __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_constructor_request_options(); - return (wasi_http_0_2_0_rc_2023_12_05_types_own_request_options_t) { ret }; -} - -bool wasi_http_0_2_0_rc_2023_12_05_types_method_request_options_connect_timeout(wasi_http_0_2_0_rc_2023_12_05_types_borrow_request_options_t self, wasi_http_0_2_0_rc_2023_12_05_types_duration_t *ret) { - __attribute__((__aligned__(8))) - uint8_t ret_area[16]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_request_options_connect_timeout((self).__handle, ptr); - bindings_option_duration_t option; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - option.is_some = false; - break; - } - case 1: { - option.is_some = true; - option.val = (uint64_t) (*((int64_t*) (ptr + 8))); - break; - } - } - *ret = option.val; - return option.is_some; -} - -bool wasi_http_0_2_0_rc_2023_12_05_types_method_request_options_set_connect_timeout(wasi_http_0_2_0_rc_2023_12_05_types_borrow_request_options_t self, wasi_http_0_2_0_rc_2023_12_05_types_duration_t *maybe_duration) { - bindings_option_duration_t duration; - duration.is_some = maybe_duration != NULL;if (maybe_duration) { - duration.val = *maybe_duration; - } - int32_t option; - int64_t option1; - if ((duration).is_some) { - const wasi_http_0_2_0_rc_2023_12_05_types_duration_t *payload0 = &(duration).val; - option = 1; - option1 = (int64_t) (*payload0); - } else { - option = 0; - option1 = 0; - } - int32_t ret = __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_request_options_set_connect_timeout((self).__handle, option, option1); - wasi_http_0_2_0_rc_2023_12_05_types_result_void_void_t result; - switch (ret) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - break; - } - } - if (!result.is_err) { - return 1; - } else { - return 0; - } -} - -bool wasi_http_0_2_0_rc_2023_12_05_types_method_request_options_first_byte_timeout(wasi_http_0_2_0_rc_2023_12_05_types_borrow_request_options_t self, wasi_http_0_2_0_rc_2023_12_05_types_duration_t *ret) { - __attribute__((__aligned__(8))) - uint8_t ret_area[16]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_request_options_first_byte_timeout((self).__handle, ptr); - bindings_option_duration_t option; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - option.is_some = false; - break; - } - case 1: { - option.is_some = true; - option.val = (uint64_t) (*((int64_t*) (ptr + 8))); - break; - } - } - *ret = option.val; - return option.is_some; -} - -bool wasi_http_0_2_0_rc_2023_12_05_types_method_request_options_set_first_byte_timeout(wasi_http_0_2_0_rc_2023_12_05_types_borrow_request_options_t self, wasi_http_0_2_0_rc_2023_12_05_types_duration_t *maybe_duration) { - bindings_option_duration_t duration; - duration.is_some = maybe_duration != NULL;if (maybe_duration) { - duration.val = *maybe_duration; - } - int32_t option; - int64_t option1; - if ((duration).is_some) { - const wasi_http_0_2_0_rc_2023_12_05_types_duration_t *payload0 = &(duration).val; - option = 1; - option1 = (int64_t) (*payload0); - } else { - option = 0; - option1 = 0; - } - int32_t ret = __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_request_options_set_first_byte_timeout((self).__handle, option, option1); - wasi_http_0_2_0_rc_2023_12_05_types_result_void_void_t result; - switch (ret) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - break; - } - } - if (!result.is_err) { - return 1; - } else { - return 0; - } -} - -bool wasi_http_0_2_0_rc_2023_12_05_types_method_request_options_between_bytes_timeout(wasi_http_0_2_0_rc_2023_12_05_types_borrow_request_options_t self, wasi_http_0_2_0_rc_2023_12_05_types_duration_t *ret) { - __attribute__((__aligned__(8))) - uint8_t ret_area[16]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_request_options_between_bytes_timeout((self).__handle, ptr); - bindings_option_duration_t option; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - option.is_some = false; - break; - } - case 1: { - option.is_some = true; - option.val = (uint64_t) (*((int64_t*) (ptr + 8))); - break; - } - } - *ret = option.val; - return option.is_some; -} - -bool wasi_http_0_2_0_rc_2023_12_05_types_method_request_options_set_between_bytes_timeout(wasi_http_0_2_0_rc_2023_12_05_types_borrow_request_options_t self, wasi_http_0_2_0_rc_2023_12_05_types_duration_t *maybe_duration) { - bindings_option_duration_t duration; - duration.is_some = maybe_duration != NULL;if (maybe_duration) { - duration.val = *maybe_duration; - } - int32_t option; - int64_t option1; - if ((duration).is_some) { - const wasi_http_0_2_0_rc_2023_12_05_types_duration_t *payload0 = &(duration).val; - option = 1; - option1 = (int64_t) (*payload0); - } else { - option = 0; - option1 = 0; - } - int32_t ret = __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_request_options_set_between_bytes_timeout((self).__handle, option, option1); - wasi_http_0_2_0_rc_2023_12_05_types_result_void_void_t result; - switch (ret) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - break; - } - } - if (!result.is_err) { - return 1; - } else { - return 0; - } -} - -void wasi_http_0_2_0_rc_2023_12_05_types_static_response_outparam_set(wasi_http_0_2_0_rc_2023_12_05_types_own_response_outparam_t param, wasi_http_0_2_0_rc_2023_12_05_types_result_own_outgoing_response_error_code_t *response) { - int32_t result; - int32_t result146; - int32_t result147; - int64_t result148; - int32_t result149; - int32_t result150; - int32_t result151; - int32_t result152; - if ((*response).is_err) { - const wasi_http_0_2_0_rc_2023_12_05_types_error_code_t *payload0 = &(*response).val.err;int32_t variant; - int32_t variant140; - int64_t variant141; - int32_t variant142; - int32_t variant143; - int32_t variant144; - int32_t variant145; - switch ((int32_t) (*payload0).tag) { - case 0: { - variant = 0; - variant140 = 0; - variant141 = 0; - variant142 = 0; - variant143 = 0; - variant144 = 0; - variant145 = 0; - break; - } - case 1: { - const wasi_http_0_2_0_rc_2023_12_05_types_dns_error_payload_t *payload2 = &(*payload0).val.dns_error; - int32_t option; - int32_t option5; - int32_t option6; - if (((*payload2).rcode).is_some) { - const bindings_string_t *payload4 = &((*payload2).rcode).val; - option = 1; - option5 = (int32_t) (*payload4).ptr; - option6 = (int32_t) (*payload4).len; - } else { - option = 0; - option5 = 0; - option6 = 0; - } - int32_t option9; - int32_t option10; - if (((*payload2).info_code).is_some) { - const uint16_t *payload8 = &((*payload2).info_code).val; - option9 = 1; - option10 = (int32_t) (*payload8); - } else { - option9 = 0; - option10 = 0; - } - variant = 1; - variant140 = option; - variant141 = (int64_t) option5; - variant142 = option6; - variant143 = option9; - variant144 = option10; - variant145 = 0; - break; - } - case 2: { - variant = 2; - variant140 = 0; - variant141 = 0; - variant142 = 0; - variant143 = 0; - variant144 = 0; - variant145 = 0; - break; - } - case 3: { - variant = 3; - variant140 = 0; - variant141 = 0; - variant142 = 0; - variant143 = 0; - variant144 = 0; - variant145 = 0; - break; - } - case 4: { - variant = 4; - variant140 = 0; - variant141 = 0; - variant142 = 0; - variant143 = 0; - variant144 = 0; - variant145 = 0; - break; - } - case 5: { - variant = 5; - variant140 = 0; - variant141 = 0; - variant142 = 0; - variant143 = 0; - variant144 = 0; - variant145 = 0; - break; - } - case 6: { - variant = 6; - variant140 = 0; - variant141 = 0; - variant142 = 0; - variant143 = 0; - variant144 = 0; - variant145 = 0; - break; - } - case 7: { - variant = 7; - variant140 = 0; - variant141 = 0; - variant142 = 0; - variant143 = 0; - variant144 = 0; - variant145 = 0; - break; - } - case 8: { - variant = 8; - variant140 = 0; - variant141 = 0; - variant142 = 0; - variant143 = 0; - variant144 = 0; - variant145 = 0; - break; - } - case 9: { - variant = 9; - variant140 = 0; - variant141 = 0; - variant142 = 0; - variant143 = 0; - variant144 = 0; - variant145 = 0; - break; - } - case 10: { - variant = 10; - variant140 = 0; - variant141 = 0; - variant142 = 0; - variant143 = 0; - variant144 = 0; - variant145 = 0; - break; - } - case 11: { - variant = 11; - variant140 = 0; - variant141 = 0; - variant142 = 0; - variant143 = 0; - variant144 = 0; - variant145 = 0; - break; - } - case 12: { - variant = 12; - variant140 = 0; - variant141 = 0; - variant142 = 0; - variant143 = 0; - variant144 = 0; - variant145 = 0; - break; - } - case 13: { - variant = 13; - variant140 = 0; - variant141 = 0; - variant142 = 0; - variant143 = 0; - variant144 = 0; - variant145 = 0; - break; - } - case 14: { - const wasi_http_0_2_0_rc_2023_12_05_types_tls_alert_received_payload_t *payload23 = &(*payload0).val.tls_alert_received; - int32_t option26; - int32_t option27; - if (((*payload23).alert_id).is_some) { - const uint8_t *payload25 = &((*payload23).alert_id).val; - option26 = 1; - option27 = (int32_t) (*payload25); - } else { - option26 = 0; - option27 = 0; - } - int32_t option30; - int32_t option31; - int32_t option32; - if (((*payload23).alert_message).is_some) { - const bindings_string_t *payload29 = &((*payload23).alert_message).val; - option30 = 1; - option31 = (int32_t) (*payload29).ptr; - option32 = (int32_t) (*payload29).len; - } else { - option30 = 0; - option31 = 0; - option32 = 0; - } - variant = 14; - variant140 = option26; - variant141 = (int64_t) option27; - variant142 = option30; - variant143 = option31; - variant144 = option32; - variant145 = 0; - break; - } - case 15: { - variant = 15; - variant140 = 0; - variant141 = 0; - variant142 = 0; - variant143 = 0; - variant144 = 0; - variant145 = 0; - break; - } - case 16: { - variant = 16; - variant140 = 0; - variant141 = 0; - variant142 = 0; - variant143 = 0; - variant144 = 0; - variant145 = 0; - break; - } - case 17: { - const bindings_option_u64_t *payload35 = &(*payload0).val.http_request_body_size; - int32_t option38; - int64_t option39; - if ((*payload35).is_some) { - const uint64_t *payload37 = &(*payload35).val; - option38 = 1; - option39 = (int64_t) (*payload37); - } else { - option38 = 0; - option39 = 0; - } - variant = 17; - variant140 = option38; - variant141 = option39; - variant142 = 0; - variant143 = 0; - variant144 = 0; - variant145 = 0; - break; - } - case 18: { - variant = 18; - variant140 = 0; - variant141 = 0; - variant142 = 0; - variant143 = 0; - variant144 = 0; - variant145 = 0; - break; - } - case 19: { - variant = 19; - variant140 = 0; - variant141 = 0; - variant142 = 0; - variant143 = 0; - variant144 = 0; - variant145 = 0; - break; - } - case 20: { - variant = 20; - variant140 = 0; - variant141 = 0; - variant142 = 0; - variant143 = 0; - variant144 = 0; - variant145 = 0; - break; - } - case 21: { - const bindings_option_u32_t *payload43 = &(*payload0).val.http_request_header_section_size; - int32_t option46; - int32_t option47; - if ((*payload43).is_some) { - const uint32_t *payload45 = &(*payload43).val; - option46 = 1; - option47 = (int32_t) (*payload45); - } else { - option46 = 0; - option47 = 0; - } - variant = 21; - variant140 = option46; - variant141 = (int64_t) option47; - variant142 = 0; - variant143 = 0; - variant144 = 0; - variant145 = 0; - break; - } - case 22: { - const wasi_http_0_2_0_rc_2023_12_05_types_option_field_size_payload_t *payload48 = &(*payload0).val.http_request_header_size; - int32_t option60; - int32_t option61; - int32_t option62; - int32_t option63; - int32_t option64; - int32_t option65; - if ((*payload48).is_some) { - const wasi_http_0_2_0_rc_2023_12_05_types_field_size_payload_t *payload50 = &(*payload48).val; - int32_t option53; - int32_t option54; - int32_t option55; - if (((*payload50).field_name).is_some) { - const bindings_string_t *payload52 = &((*payload50).field_name).val; - option53 = 1; - option54 = (int32_t) (*payload52).ptr; - option55 = (int32_t) (*payload52).len; - } else { - option53 = 0; - option54 = 0; - option55 = 0; - } - int32_t option58; - int32_t option59; - if (((*payload50).field_size).is_some) { - const uint32_t *payload57 = &((*payload50).field_size).val; - option58 = 1; - option59 = (int32_t) (*payload57); - } else { - option58 = 0; - option59 = 0; - } - option60 = 1; - option61 = option53; - option62 = option54; - option63 = option55; - option64 = option58; - option65 = option59; - } else { - option60 = 0; - option61 = 0; - option62 = 0; - option63 = 0; - option64 = 0; - option65 = 0; - } - variant = 22; - variant140 = option60; - variant141 = (int64_t) option61; - variant142 = option62; - variant143 = option63; - variant144 = option64; - variant145 = option65; - break; - } - case 23: { - const bindings_option_u32_t *payload66 = &(*payload0).val.http_request_trailer_section_size; - int32_t option69; - int32_t option70; - if ((*payload66).is_some) { - const uint32_t *payload68 = &(*payload66).val; - option69 = 1; - option70 = (int32_t) (*payload68); - } else { - option69 = 0; - option70 = 0; - } - variant = 23; - variant140 = option69; - variant141 = (int64_t) option70; - variant142 = 0; - variant143 = 0; - variant144 = 0; - variant145 = 0; - break; - } - case 24: { - const wasi_http_0_2_0_rc_2023_12_05_types_field_size_payload_t *payload71 = &(*payload0).val.http_request_trailer_size; - int32_t option74; - int32_t option75; - int32_t option76; - if (((*payload71).field_name).is_some) { - const bindings_string_t *payload73 = &((*payload71).field_name).val; - option74 = 1; - option75 = (int32_t) (*payload73).ptr; - option76 = (int32_t) (*payload73).len; - } else { - option74 = 0; - option75 = 0; - option76 = 0; - } - int32_t option79; - int32_t option80; - if (((*payload71).field_size).is_some) { - const uint32_t *payload78 = &((*payload71).field_size).val; - option79 = 1; - option80 = (int32_t) (*payload78); - } else { - option79 = 0; - option80 = 0; - } - variant = 24; - variant140 = option74; - variant141 = (int64_t) option75; - variant142 = option76; - variant143 = option79; - variant144 = option80; - variant145 = 0; - break; - } - case 25: { - variant = 25; - variant140 = 0; - variant141 = 0; - variant142 = 0; - variant143 = 0; - variant144 = 0; - variant145 = 0; - break; - } - case 26: { - const bindings_option_u32_t *payload82 = &(*payload0).val.http_response_header_section_size; - int32_t option85; - int32_t option86; - if ((*payload82).is_some) { - const uint32_t *payload84 = &(*payload82).val; - option85 = 1; - option86 = (int32_t) (*payload84); - } else { - option85 = 0; - option86 = 0; - } - variant = 26; - variant140 = option85; - variant141 = (int64_t) option86; - variant142 = 0; - variant143 = 0; - variant144 = 0; - variant145 = 0; - break; - } - case 27: { - const wasi_http_0_2_0_rc_2023_12_05_types_field_size_payload_t *payload87 = &(*payload0).val.http_response_header_size; - int32_t option90; - int32_t option91; - int32_t option92; - if (((*payload87).field_name).is_some) { - const bindings_string_t *payload89 = &((*payload87).field_name).val; - option90 = 1; - option91 = (int32_t) (*payload89).ptr; - option92 = (int32_t) (*payload89).len; - } else { - option90 = 0; - option91 = 0; - option92 = 0; - } - int32_t option95; - int32_t option96; - if (((*payload87).field_size).is_some) { - const uint32_t *payload94 = &((*payload87).field_size).val; - option95 = 1; - option96 = (int32_t) (*payload94); - } else { - option95 = 0; - option96 = 0; - } - variant = 27; - variant140 = option90; - variant141 = (int64_t) option91; - variant142 = option92; - variant143 = option95; - variant144 = option96; - variant145 = 0; - break; - } - case 28: { - const bindings_option_u64_t *payload97 = &(*payload0).val.http_response_body_size; - int32_t option100; - int64_t option101; - if ((*payload97).is_some) { - const uint64_t *payload99 = &(*payload97).val; - option100 = 1; - option101 = (int64_t) (*payload99); - } else { - option100 = 0; - option101 = 0; - } - variant = 28; - variant140 = option100; - variant141 = option101; - variant142 = 0; - variant143 = 0; - variant144 = 0; - variant145 = 0; - break; - } - case 29: { - const bindings_option_u32_t *payload102 = &(*payload0).val.http_response_trailer_section_size; - int32_t option105; - int32_t option106; - if ((*payload102).is_some) { - const uint32_t *payload104 = &(*payload102).val; - option105 = 1; - option106 = (int32_t) (*payload104); - } else { - option105 = 0; - option106 = 0; - } - variant = 29; - variant140 = option105; - variant141 = (int64_t) option106; - variant142 = 0; - variant143 = 0; - variant144 = 0; - variant145 = 0; - break; - } - case 30: { - const wasi_http_0_2_0_rc_2023_12_05_types_field_size_payload_t *payload107 = &(*payload0).val.http_response_trailer_size; - int32_t option110; - int32_t option111; - int32_t option112; - if (((*payload107).field_name).is_some) { - const bindings_string_t *payload109 = &((*payload107).field_name).val; - option110 = 1; - option111 = (int32_t) (*payload109).ptr; - option112 = (int32_t) (*payload109).len; - } else { - option110 = 0; - option111 = 0; - option112 = 0; - } - int32_t option115; - int32_t option116; - if (((*payload107).field_size).is_some) { - const uint32_t *payload114 = &((*payload107).field_size).val; - option115 = 1; - option116 = (int32_t) (*payload114); - } else { - option115 = 0; - option116 = 0; - } - variant = 30; - variant140 = option110; - variant141 = (int64_t) option111; - variant142 = option112; - variant143 = option115; - variant144 = option116; - variant145 = 0; - break; - } - case 31: { - const bindings_option_string_t *payload117 = &(*payload0).val.http_response_transfer_coding; - int32_t option120; - int32_t option121; - int32_t option122; - if ((*payload117).is_some) { - const bindings_string_t *payload119 = &(*payload117).val; - option120 = 1; - option121 = (int32_t) (*payload119).ptr; - option122 = (int32_t) (*payload119).len; - } else { - option120 = 0; - option121 = 0; - option122 = 0; - } - variant = 31; - variant140 = option120; - variant141 = (int64_t) option121; - variant142 = option122; - variant143 = 0; - variant144 = 0; - variant145 = 0; - break; - } - case 32: { - const bindings_option_string_t *payload123 = &(*payload0).val.http_response_content_coding; - int32_t option126; - int32_t option127; - int32_t option128; - if ((*payload123).is_some) { - const bindings_string_t *payload125 = &(*payload123).val; - option126 = 1; - option127 = (int32_t) (*payload125).ptr; - option128 = (int32_t) (*payload125).len; - } else { - option126 = 0; - option127 = 0; - option128 = 0; - } - variant = 32; - variant140 = option126; - variant141 = (int64_t) option127; - variant142 = option128; - variant143 = 0; - variant144 = 0; - variant145 = 0; - break; - } - case 33: { - variant = 33; - variant140 = 0; - variant141 = 0; - variant142 = 0; - variant143 = 0; - variant144 = 0; - variant145 = 0; - break; - } - case 34: { - variant = 34; - variant140 = 0; - variant141 = 0; - variant142 = 0; - variant143 = 0; - variant144 = 0; - variant145 = 0; - break; - } - case 35: { - variant = 35; - variant140 = 0; - variant141 = 0; - variant142 = 0; - variant143 = 0; - variant144 = 0; - variant145 = 0; - break; - } - case 36: { - variant = 36; - variant140 = 0; - variant141 = 0; - variant142 = 0; - variant143 = 0; - variant144 = 0; - variant145 = 0; - break; - } - case 37: { - variant = 37; - variant140 = 0; - variant141 = 0; - variant142 = 0; - variant143 = 0; - variant144 = 0; - variant145 = 0; - break; - } - case 38: { - const bindings_option_string_t *payload134 = &(*payload0).val.internal_error; - int32_t option137; - int32_t option138; - int32_t option139; - if ((*payload134).is_some) { - const bindings_string_t *payload136 = &(*payload134).val; - option137 = 1; - option138 = (int32_t) (*payload136).ptr; - option139 = (int32_t) (*payload136).len; - } else { - option137 = 0; - option138 = 0; - option139 = 0; - } - variant = 38; - variant140 = option137; - variant141 = (int64_t) option138; - variant142 = option139; - variant143 = 0; - variant144 = 0; - variant145 = 0; - break; - } - } - result = 1; - result146 = variant; - result147 = variant140; - result148 = variant141; - result149 = variant142; - result150 = variant143; - result151 = variant144; - result152 = variant145; - } else { - const wasi_http_0_2_0_rc_2023_12_05_types_own_outgoing_response_t *payload = &(*response).val.ok;result = 0; - result146 = (*payload).__handle; - result147 = 0; - result148 = 0; - result149 = 0; - result150 = 0; - result151 = 0; - result152 = 0; - } - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_static_response_outparam_set((param).__handle, result, result146, result147, result148, result149, result150, result151, result152); -} - -wasi_http_0_2_0_rc_2023_12_05_types_status_code_t wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_response_status(wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_response_t self) { - int32_t ret = __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_response_status((self).__handle); - return (uint16_t) (ret); -} - -wasi_http_0_2_0_rc_2023_12_05_types_own_headers_t wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_response_headers(wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_response_t self) { - int32_t ret = __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_response_headers((self).__handle); - return (wasi_http_0_2_0_rc_2023_12_05_types_own_headers_t) { ret }; -} - -bool wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_response_consume(wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_response_t self, wasi_http_0_2_0_rc_2023_12_05_types_own_incoming_body_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_response_consume((self).__handle, ptr); - wasi_http_0_2_0_rc_2023_12_05_types_result_own_incoming_body_void_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_http_0_2_0_rc_2023_12_05_types_own_incoming_body_t) { *((int32_t*) (ptr + 4)) }; - break; - } - case 1: { - result.is_err = true; - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - return 0; - } -} - -bool wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_body_stream(wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_body_t self, wasi_http_0_2_0_rc_2023_12_05_types_own_input_stream_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_body_stream((self).__handle, ptr); - wasi_http_0_2_0_rc_2023_12_05_types_result_own_input_stream_void_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_http_0_2_0_rc_2023_12_05_types_own_input_stream_t) { *((int32_t*) (ptr + 4)) }; - break; - } - case 1: { - result.is_err = true; - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - return 0; - } -} - -wasi_http_0_2_0_rc_2023_12_05_types_own_future_trailers_t wasi_http_0_2_0_rc_2023_12_05_types_static_incoming_body_finish(wasi_http_0_2_0_rc_2023_12_05_types_own_incoming_body_t this_) { - int32_t ret = __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_static_incoming_body_finish((this_).__handle); - return (wasi_http_0_2_0_rc_2023_12_05_types_own_future_trailers_t) { ret }; -} - -wasi_http_0_2_0_rc_2023_12_05_types_own_pollable_t wasi_http_0_2_0_rc_2023_12_05_types_method_future_trailers_subscribe(wasi_http_0_2_0_rc_2023_12_05_types_borrow_future_trailers_t self) { - int32_t ret = __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_future_trailers_subscribe((self).__handle); - return (wasi_http_0_2_0_rc_2023_12_05_types_own_pollable_t) { ret }; -} - -bool wasi_http_0_2_0_rc_2023_12_05_types_method_future_trailers_get(wasi_http_0_2_0_rc_2023_12_05_types_borrow_future_trailers_t self, wasi_http_0_2_0_rc_2023_12_05_types_result_result_option_own_trailers_error_code_void_t *ret) { - __attribute__((__aligned__(8))) - uint8_t ret_area[56]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_future_trailers_get((self).__handle, ptr); - wasi_http_0_2_0_rc_2023_12_05_types_option_result_result_option_own_trailers_error_code_void_t option23; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - option23.is_some = false; - break; - } - case 1: { - option23.is_some = true; - wasi_http_0_2_0_rc_2023_12_05_types_result_result_option_own_trailers_error_code_void_t result22; - switch ((int32_t) (*((uint8_t*) (ptr + 8)))) { - case 0: { - result22.is_err = false; - wasi_http_0_2_0_rc_2023_12_05_types_result_option_own_trailers_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - result.is_err = false; - wasi_http_0_2_0_rc_2023_12_05_types_option_own_trailers_t option; - switch ((int32_t) (*((uint8_t*) (ptr + 24)))) { - case 0: { - option.is_some = false; - break; - } - case 1: { - option.is_some = true; - option.val = (wasi_http_0_2_0_rc_2023_12_05_types_own_trailers_t) { *((int32_t*) (ptr + 28)) }; - break; - } - } - - result.val.ok = option; - break; - } - case 1: { - result.is_err = true; - wasi_http_0_2_0_rc_2023_12_05_types_error_code_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 24))); - switch ((int32_t) variant.tag) { - case 0: { - break; - } - case 1: { - bindings_option_string_t option0; - switch ((int32_t) (*((uint8_t*) (ptr + 32)))) { - case 0: { - option0.is_some = false; - break; - } - case 1: { - option0.is_some = true; - option0.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 36))), (size_t)(*((int32_t*) (ptr + 40))) }; - break; - } - } - bindings_option_u16_t option1; - switch ((int32_t) (*((uint8_t*) (ptr + 44)))) { - case 0: { - option1.is_some = false; - break; - } - case 1: { - option1.is_some = true; - option1.val = (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 46)))); - break; - } - } - variant.val.dns_error = (wasi_http_0_2_0_rc_2023_12_05_types_dns_error_payload_t) { - option0, - option1, - }; - break; - } - case 2: { - break; - } - case 3: { - break; - } - case 4: { - break; - } - case 5: { - break; - } - case 6: { - break; - } - case 7: { - break; - } - case 8: { - break; - } - case 9: { - break; - } - case 10: { - break; - } - case 11: { - break; - } - case 12: { - break; - } - case 13: { - break; - } - case 14: { - bindings_option_u8_t option2; - switch ((int32_t) (*((uint8_t*) (ptr + 32)))) { - case 0: { - option2.is_some = false; - break; - } - case 1: { - option2.is_some = true; - option2.val = (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 33)))); - break; - } - } - bindings_option_string_t option3; - switch ((int32_t) (*((uint8_t*) (ptr + 36)))) { - case 0: { - option3.is_some = false; - break; - } - case 1: { - option3.is_some = true; - option3.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 40))), (size_t)(*((int32_t*) (ptr + 44))) }; - break; - } - } - variant.val.tls_alert_received = (wasi_http_0_2_0_rc_2023_12_05_types_tls_alert_received_payload_t) { - option2, - option3, - }; - break; - } - case 15: { - break; - } - case 16: { - break; - } - case 17: { - bindings_option_u64_t option4; - switch ((int32_t) (*((uint8_t*) (ptr + 32)))) { - case 0: { - option4.is_some = false; - break; - } - case 1: { - option4.is_some = true; - option4.val = (uint64_t) (*((int64_t*) (ptr + 40))); - break; - } - } - variant.val.http_request_body_size = option4; - break; - } - case 18: { - break; - } - case 19: { - break; - } - case 20: { - break; - } - case 21: { - bindings_option_u32_t option5; - switch ((int32_t) (*((uint8_t*) (ptr + 32)))) { - case 0: { - option5.is_some = false; - break; - } - case 1: { - option5.is_some = true; - option5.val = (uint32_t) (*((int32_t*) (ptr + 36))); - break; - } - } - variant.val.http_request_header_section_size = option5; - break; - } - case 22: { - wasi_http_0_2_0_rc_2023_12_05_types_option_field_size_payload_t option8; - switch ((int32_t) (*((uint8_t*) (ptr + 32)))) { - case 0: { - option8.is_some = false; - break; - } - case 1: { - option8.is_some = true; - bindings_option_string_t option6; - switch ((int32_t) (*((uint8_t*) (ptr + 36)))) { - case 0: { - option6.is_some = false; - break; - } - case 1: { - option6.is_some = true; - option6.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 40))), (size_t)(*((int32_t*) (ptr + 44))) }; - break; - } - } - bindings_option_u32_t option7; - switch ((int32_t) (*((uint8_t*) (ptr + 48)))) { - case 0: { - option7.is_some = false; - break; - } - case 1: { - option7.is_some = true; - option7.val = (uint32_t) (*((int32_t*) (ptr + 52))); - break; - } - } - - option8.val = (wasi_http_0_2_0_rc_2023_12_05_types_field_size_payload_t) { - option6, - option7, - }; - break; - } - } - variant.val.http_request_header_size = option8; - break; - } - case 23: { - bindings_option_u32_t option9; - switch ((int32_t) (*((uint8_t*) (ptr + 32)))) { - case 0: { - option9.is_some = false; - break; - } - case 1: { - option9.is_some = true; - option9.val = (uint32_t) (*((int32_t*) (ptr + 36))); - break; - } - } - variant.val.http_request_trailer_section_size = option9; - break; - } - case 24: { - bindings_option_string_t option10; - switch ((int32_t) (*((uint8_t*) (ptr + 32)))) { - case 0: { - option10.is_some = false; - break; - } - case 1: { - option10.is_some = true; - option10.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 36))), (size_t)(*((int32_t*) (ptr + 40))) }; - break; - } - } - bindings_option_u32_t option11; - switch ((int32_t) (*((uint8_t*) (ptr + 44)))) { - case 0: { - option11.is_some = false; - break; - } - case 1: { - option11.is_some = true; - option11.val = (uint32_t) (*((int32_t*) (ptr + 48))); - break; - } - } - variant.val.http_request_trailer_size = (wasi_http_0_2_0_rc_2023_12_05_types_field_size_payload_t) { - option10, - option11, - }; - break; - } - case 25: { - break; - } - case 26: { - bindings_option_u32_t option12; - switch ((int32_t) (*((uint8_t*) (ptr + 32)))) { - case 0: { - option12.is_some = false; - break; - } - case 1: { - option12.is_some = true; - option12.val = (uint32_t) (*((int32_t*) (ptr + 36))); - break; - } - } - variant.val.http_response_header_section_size = option12; - break; - } - case 27: { - bindings_option_string_t option13; - switch ((int32_t) (*((uint8_t*) (ptr + 32)))) { - case 0: { - option13.is_some = false; - break; - } - case 1: { - option13.is_some = true; - option13.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 36))), (size_t)(*((int32_t*) (ptr + 40))) }; - break; - } - } - bindings_option_u32_t option14; - switch ((int32_t) (*((uint8_t*) (ptr + 44)))) { - case 0: { - option14.is_some = false; - break; - } - case 1: { - option14.is_some = true; - option14.val = (uint32_t) (*((int32_t*) (ptr + 48))); - break; - } - } - variant.val.http_response_header_size = (wasi_http_0_2_0_rc_2023_12_05_types_field_size_payload_t) { - option13, - option14, - }; - break; - } - case 28: { - bindings_option_u64_t option15; - switch ((int32_t) (*((uint8_t*) (ptr + 32)))) { - case 0: { - option15.is_some = false; - break; - } - case 1: { - option15.is_some = true; - option15.val = (uint64_t) (*((int64_t*) (ptr + 40))); - break; - } - } - variant.val.http_response_body_size = option15; - break; - } - case 29: { - bindings_option_u32_t option16; - switch ((int32_t) (*((uint8_t*) (ptr + 32)))) { - case 0: { - option16.is_some = false; - break; - } - case 1: { - option16.is_some = true; - option16.val = (uint32_t) (*((int32_t*) (ptr + 36))); - break; - } - } - variant.val.http_response_trailer_section_size = option16; - break; - } - case 30: { - bindings_option_string_t option17; - switch ((int32_t) (*((uint8_t*) (ptr + 32)))) { - case 0: { - option17.is_some = false; - break; - } - case 1: { - option17.is_some = true; - option17.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 36))), (size_t)(*((int32_t*) (ptr + 40))) }; - break; - } - } - bindings_option_u32_t option18; - switch ((int32_t) (*((uint8_t*) (ptr + 44)))) { - case 0: { - option18.is_some = false; - break; - } - case 1: { - option18.is_some = true; - option18.val = (uint32_t) (*((int32_t*) (ptr + 48))); - break; - } - } - variant.val.http_response_trailer_size = (wasi_http_0_2_0_rc_2023_12_05_types_field_size_payload_t) { - option17, - option18, - }; - break; - } - case 31: { - bindings_option_string_t option19; - switch ((int32_t) (*((uint8_t*) (ptr + 32)))) { - case 0: { - option19.is_some = false; - break; - } - case 1: { - option19.is_some = true; - option19.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 36))), (size_t)(*((int32_t*) (ptr + 40))) }; - break; - } - } - variant.val.http_response_transfer_coding = option19; - break; - } - case 32: { - bindings_option_string_t option20; - switch ((int32_t) (*((uint8_t*) (ptr + 32)))) { - case 0: { - option20.is_some = false; - break; - } - case 1: { - option20.is_some = true; - option20.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 36))), (size_t)(*((int32_t*) (ptr + 40))) }; - break; - } - } - variant.val.http_response_content_coding = option20; - break; - } - case 33: { - break; - } - case 34: { - break; - } - case 35: { - break; - } - case 36: { - break; - } - case 37: { - break; - } - case 38: { - bindings_option_string_t option21; - switch ((int32_t) (*((uint8_t*) (ptr + 32)))) { - case 0: { - option21.is_some = false; - break; - } - case 1: { - option21.is_some = true; - option21.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 36))), (size_t)(*((int32_t*) (ptr + 40))) }; - break; - } - } - variant.val.internal_error = option21; - break; - } - } - - result.val.err = variant; - break; - } - } - - result22.val.ok = result; - break; - } - case 1: { - result22.is_err = true; - break; - } - } - - option23.val = result22; - break; - } - } - *ret = option23.val; - return option23.is_some; -} - -wasi_http_0_2_0_rc_2023_12_05_types_own_outgoing_response_t wasi_http_0_2_0_rc_2023_12_05_types_constructor_outgoing_response(wasi_http_0_2_0_rc_2023_12_05_types_own_headers_t headers) { - int32_t ret = __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_constructor_outgoing_response((headers).__handle); - return (wasi_http_0_2_0_rc_2023_12_05_types_own_outgoing_response_t) { ret }; -} - -wasi_http_0_2_0_rc_2023_12_05_types_status_code_t wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_response_status_code(wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_response_t self) { - int32_t ret = __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_response_status_code((self).__handle); - return (uint16_t) (ret); -} - -bool wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_response_set_status_code(wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_response_t self, wasi_http_0_2_0_rc_2023_12_05_types_status_code_t status_code) { - int32_t ret = __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_response_set_status_code((self).__handle, (int32_t) (status_code)); - wasi_http_0_2_0_rc_2023_12_05_types_result_void_void_t result; - switch (ret) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - break; - } - } - if (!result.is_err) { - return 1; - } else { - return 0; - } -} - -wasi_http_0_2_0_rc_2023_12_05_types_own_headers_t wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_response_headers(wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_response_t self) { - int32_t ret = __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_response_headers((self).__handle); - return (wasi_http_0_2_0_rc_2023_12_05_types_own_headers_t) { ret }; -} - -bool wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_response_body(wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_response_t self, wasi_http_0_2_0_rc_2023_12_05_types_own_outgoing_body_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_response_body((self).__handle, ptr); - wasi_http_0_2_0_rc_2023_12_05_types_result_own_outgoing_body_void_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_http_0_2_0_rc_2023_12_05_types_own_outgoing_body_t) { *((int32_t*) (ptr + 4)) }; - break; - } - case 1: { - result.is_err = true; - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - return 0; - } -} - -bool wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_body_write(wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_body_t self, wasi_http_0_2_0_rc_2023_12_05_types_own_output_stream_t *ret) { - __attribute__((__aligned__(4))) - uint8_t ret_area[8]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_body_write((self).__handle, ptr); - wasi_http_0_2_0_rc_2023_12_05_types_result_own_output_stream_void_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_http_0_2_0_rc_2023_12_05_types_own_output_stream_t) { *((int32_t*) (ptr + 4)) }; - break; - } - case 1: { - result.is_err = true; - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - return 0; - } -} - -bool wasi_http_0_2_0_rc_2023_12_05_types_static_outgoing_body_finish(wasi_http_0_2_0_rc_2023_12_05_types_own_outgoing_body_t this_, wasi_http_0_2_0_rc_2023_12_05_types_own_trailers_t *maybe_trailers, wasi_http_0_2_0_rc_2023_12_05_types_error_code_t *err) { - __attribute__((__aligned__(8))) - uint8_t ret_area[40]; - wasi_http_0_2_0_rc_2023_12_05_types_option_own_trailers_t trailers; - trailers.is_some = maybe_trailers != NULL;if (maybe_trailers) { - trailers.val = *maybe_trailers; - } - int32_t option; - int32_t option1; - if ((trailers).is_some) { - const wasi_http_0_2_0_rc_2023_12_05_types_own_trailers_t *payload0 = &(trailers).val; - option = 1; - option1 = (*payload0).__handle; - } else { - option = 0; - option1 = 0; - } - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_static_outgoing_body_finish((this_).__handle, option, option1, ptr); - wasi_http_0_2_0_rc_2023_12_05_types_result_void_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - break; - } - case 1: { - result.is_err = true; - wasi_http_0_2_0_rc_2023_12_05_types_error_code_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 8))); - switch ((int32_t) variant.tag) { - case 0: { - break; - } - case 1: { - bindings_option_string_t option2; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option2.is_some = false; - break; - } - case 1: { - option2.is_some = true; - option2.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 20))), (size_t)(*((int32_t*) (ptr + 24))) }; - break; - } - } - bindings_option_u16_t option3; - switch ((int32_t) (*((uint8_t*) (ptr + 28)))) { - case 0: { - option3.is_some = false; - break; - } - case 1: { - option3.is_some = true; - option3.val = (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 30)))); - break; - } - } - variant.val.dns_error = (wasi_http_0_2_0_rc_2023_12_05_types_dns_error_payload_t) { - option2, - option3, - }; - break; - } - case 2: { - break; - } - case 3: { - break; - } - case 4: { - break; - } - case 5: { - break; - } - case 6: { - break; - } - case 7: { - break; - } - case 8: { - break; - } - case 9: { - break; - } - case 10: { - break; - } - case 11: { - break; - } - case 12: { - break; - } - case 13: { - break; - } - case 14: { - bindings_option_u8_t option4; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option4.is_some = false; - break; - } - case 1: { - option4.is_some = true; - option4.val = (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 17)))); - break; - } - } - bindings_option_string_t option5; - switch ((int32_t) (*((uint8_t*) (ptr + 20)))) { - case 0: { - option5.is_some = false; - break; - } - case 1: { - option5.is_some = true; - option5.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 24))), (size_t)(*((int32_t*) (ptr + 28))) }; - break; - } - } - variant.val.tls_alert_received = (wasi_http_0_2_0_rc_2023_12_05_types_tls_alert_received_payload_t) { - option4, - option5, - }; - break; - } - case 15: { - break; - } - case 16: { - break; - } - case 17: { - bindings_option_u64_t option6; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option6.is_some = false; - break; - } - case 1: { - option6.is_some = true; - option6.val = (uint64_t) (*((int64_t*) (ptr + 24))); - break; - } - } - variant.val.http_request_body_size = option6; - break; - } - case 18: { - break; - } - case 19: { - break; - } - case 20: { - break; - } - case 21: { - bindings_option_u32_t option7; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option7.is_some = false; - break; - } - case 1: { - option7.is_some = true; - option7.val = (uint32_t) (*((int32_t*) (ptr + 20))); - break; - } - } - variant.val.http_request_header_section_size = option7; - break; - } - case 22: { - wasi_http_0_2_0_rc_2023_12_05_types_option_field_size_payload_t option10; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option10.is_some = false; - break; - } - case 1: { - option10.is_some = true; - bindings_option_string_t option8; - switch ((int32_t) (*((uint8_t*) (ptr + 20)))) { - case 0: { - option8.is_some = false; - break; - } - case 1: { - option8.is_some = true; - option8.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 24))), (size_t)(*((int32_t*) (ptr + 28))) }; - break; - } - } - bindings_option_u32_t option9; - switch ((int32_t) (*((uint8_t*) (ptr + 32)))) { - case 0: { - option9.is_some = false; - break; - } - case 1: { - option9.is_some = true; - option9.val = (uint32_t) (*((int32_t*) (ptr + 36))); - break; - } - } - - option10.val = (wasi_http_0_2_0_rc_2023_12_05_types_field_size_payload_t) { - option8, - option9, - }; - break; - } - } - variant.val.http_request_header_size = option10; - break; - } - case 23: { - bindings_option_u32_t option11; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option11.is_some = false; - break; - } - case 1: { - option11.is_some = true; - option11.val = (uint32_t) (*((int32_t*) (ptr + 20))); - break; - } - } - variant.val.http_request_trailer_section_size = option11; - break; - } - case 24: { - bindings_option_string_t option12; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option12.is_some = false; - break; - } - case 1: { - option12.is_some = true; - option12.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 20))), (size_t)(*((int32_t*) (ptr + 24))) }; - break; - } - } - bindings_option_u32_t option13; - switch ((int32_t) (*((uint8_t*) (ptr + 28)))) { - case 0: { - option13.is_some = false; - break; - } - case 1: { - option13.is_some = true; - option13.val = (uint32_t) (*((int32_t*) (ptr + 32))); - break; - } - } - variant.val.http_request_trailer_size = (wasi_http_0_2_0_rc_2023_12_05_types_field_size_payload_t) { - option12, - option13, - }; - break; - } - case 25: { - break; - } - case 26: { - bindings_option_u32_t option14; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option14.is_some = false; - break; - } - case 1: { - option14.is_some = true; - option14.val = (uint32_t) (*((int32_t*) (ptr + 20))); - break; - } - } - variant.val.http_response_header_section_size = option14; - break; - } - case 27: { - bindings_option_string_t option15; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option15.is_some = false; - break; - } - case 1: { - option15.is_some = true; - option15.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 20))), (size_t)(*((int32_t*) (ptr + 24))) }; - break; - } - } - bindings_option_u32_t option16; - switch ((int32_t) (*((uint8_t*) (ptr + 28)))) { - case 0: { - option16.is_some = false; - break; - } - case 1: { - option16.is_some = true; - option16.val = (uint32_t) (*((int32_t*) (ptr + 32))); - break; - } - } - variant.val.http_response_header_size = (wasi_http_0_2_0_rc_2023_12_05_types_field_size_payload_t) { - option15, - option16, - }; - break; - } - case 28: { - bindings_option_u64_t option17; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option17.is_some = false; - break; - } - case 1: { - option17.is_some = true; - option17.val = (uint64_t) (*((int64_t*) (ptr + 24))); - break; - } - } - variant.val.http_response_body_size = option17; - break; - } - case 29: { - bindings_option_u32_t option18; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option18.is_some = false; - break; - } - case 1: { - option18.is_some = true; - option18.val = (uint32_t) (*((int32_t*) (ptr + 20))); - break; - } - } - variant.val.http_response_trailer_section_size = option18; - break; - } - case 30: { - bindings_option_string_t option19; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option19.is_some = false; - break; - } - case 1: { - option19.is_some = true; - option19.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 20))), (size_t)(*((int32_t*) (ptr + 24))) }; - break; - } - } - bindings_option_u32_t option20; - switch ((int32_t) (*((uint8_t*) (ptr + 28)))) { - case 0: { - option20.is_some = false; - break; - } - case 1: { - option20.is_some = true; - option20.val = (uint32_t) (*((int32_t*) (ptr + 32))); - break; - } - } - variant.val.http_response_trailer_size = (wasi_http_0_2_0_rc_2023_12_05_types_field_size_payload_t) { - option19, - option20, - }; - break; - } - case 31: { - bindings_option_string_t option21; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option21.is_some = false; - break; - } - case 1: { - option21.is_some = true; - option21.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 20))), (size_t)(*((int32_t*) (ptr + 24))) }; - break; - } - } - variant.val.http_response_transfer_coding = option21; - break; - } - case 32: { - bindings_option_string_t option22; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option22.is_some = false; - break; - } - case 1: { - option22.is_some = true; - option22.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 20))), (size_t)(*((int32_t*) (ptr + 24))) }; - break; - } - } - variant.val.http_response_content_coding = option22; - break; - } - case 33: { - break; - } - case 34: { - break; - } - case 35: { - break; - } - case 36: { - break; - } - case 37: { - break; - } - case 38: { - bindings_option_string_t option23; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option23.is_some = false; - break; - } - case 1: { - option23.is_some = true; - option23.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 20))), (size_t)(*((int32_t*) (ptr + 24))) }; - break; - } - } - variant.val.internal_error = option23; - break; - } - } - - result.val.err = variant; - break; - } - } - if (!result.is_err) { - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -wasi_http_0_2_0_rc_2023_12_05_types_own_pollable_t wasi_http_0_2_0_rc_2023_12_05_types_method_future_incoming_response_subscribe(wasi_http_0_2_0_rc_2023_12_05_types_borrow_future_incoming_response_t self) { - int32_t ret = __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_future_incoming_response_subscribe((self).__handle); - return (wasi_http_0_2_0_rc_2023_12_05_types_own_pollable_t) { ret }; -} - -bool wasi_http_0_2_0_rc_2023_12_05_types_method_future_incoming_response_get(wasi_http_0_2_0_rc_2023_12_05_types_borrow_future_incoming_response_t self, wasi_http_0_2_0_rc_2023_12_05_types_result_result_own_incoming_response_error_code_void_t *ret) { - __attribute__((__aligned__(8))) - uint8_t ret_area[56]; - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_types_method_future_incoming_response_get((self).__handle, ptr); - wasi_http_0_2_0_rc_2023_12_05_types_option_result_result_own_incoming_response_error_code_void_t option22; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - option22.is_some = false; - break; - } - case 1: { - option22.is_some = true; - wasi_http_0_2_0_rc_2023_12_05_types_result_result_own_incoming_response_error_code_void_t result21; - switch ((int32_t) (*((uint8_t*) (ptr + 8)))) { - case 0: { - result21.is_err = false; - wasi_http_0_2_0_rc_2023_12_05_types_result_own_incoming_response_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_http_0_2_0_rc_2023_12_05_types_own_incoming_response_t) { *((int32_t*) (ptr + 24)) }; - break; - } - case 1: { - result.is_err = true; - wasi_http_0_2_0_rc_2023_12_05_types_error_code_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 24))); - switch ((int32_t) variant.tag) { - case 0: { - break; - } - case 1: { - bindings_option_string_t option; - switch ((int32_t) (*((uint8_t*) (ptr + 32)))) { - case 0: { - option.is_some = false; - break; - } - case 1: { - option.is_some = true; - option.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 36))), (size_t)(*((int32_t*) (ptr + 40))) }; - break; - } - } - bindings_option_u16_t option0; - switch ((int32_t) (*((uint8_t*) (ptr + 44)))) { - case 0: { - option0.is_some = false; - break; - } - case 1: { - option0.is_some = true; - option0.val = (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 46)))); - break; - } - } - variant.val.dns_error = (wasi_http_0_2_0_rc_2023_12_05_types_dns_error_payload_t) { - option, - option0, - }; - break; - } - case 2: { - break; - } - case 3: { - break; - } - case 4: { - break; - } - case 5: { - break; - } - case 6: { - break; - } - case 7: { - break; - } - case 8: { - break; - } - case 9: { - break; - } - case 10: { - break; - } - case 11: { - break; - } - case 12: { - break; - } - case 13: { - break; - } - case 14: { - bindings_option_u8_t option1; - switch ((int32_t) (*((uint8_t*) (ptr + 32)))) { - case 0: { - option1.is_some = false; - break; - } - case 1: { - option1.is_some = true; - option1.val = (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 33)))); - break; - } - } - bindings_option_string_t option2; - switch ((int32_t) (*((uint8_t*) (ptr + 36)))) { - case 0: { - option2.is_some = false; - break; - } - case 1: { - option2.is_some = true; - option2.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 40))), (size_t)(*((int32_t*) (ptr + 44))) }; - break; - } - } - variant.val.tls_alert_received = (wasi_http_0_2_0_rc_2023_12_05_types_tls_alert_received_payload_t) { - option1, - option2, - }; - break; - } - case 15: { - break; - } - case 16: { - break; - } - case 17: { - bindings_option_u64_t option3; - switch ((int32_t) (*((uint8_t*) (ptr + 32)))) { - case 0: { - option3.is_some = false; - break; - } - case 1: { - option3.is_some = true; - option3.val = (uint64_t) (*((int64_t*) (ptr + 40))); - break; - } - } - variant.val.http_request_body_size = option3; - break; - } - case 18: { - break; - } - case 19: { - break; - } - case 20: { - break; - } - case 21: { - bindings_option_u32_t option4; - switch ((int32_t) (*((uint8_t*) (ptr + 32)))) { - case 0: { - option4.is_some = false; - break; - } - case 1: { - option4.is_some = true; - option4.val = (uint32_t) (*((int32_t*) (ptr + 36))); - break; - } - } - variant.val.http_request_header_section_size = option4; - break; - } - case 22: { - wasi_http_0_2_0_rc_2023_12_05_types_option_field_size_payload_t option7; - switch ((int32_t) (*((uint8_t*) (ptr + 32)))) { - case 0: { - option7.is_some = false; - break; - } - case 1: { - option7.is_some = true; - bindings_option_string_t option5; - switch ((int32_t) (*((uint8_t*) (ptr + 36)))) { - case 0: { - option5.is_some = false; - break; - } - case 1: { - option5.is_some = true; - option5.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 40))), (size_t)(*((int32_t*) (ptr + 44))) }; - break; - } - } - bindings_option_u32_t option6; - switch ((int32_t) (*((uint8_t*) (ptr + 48)))) { - case 0: { - option6.is_some = false; - break; - } - case 1: { - option6.is_some = true; - option6.val = (uint32_t) (*((int32_t*) (ptr + 52))); - break; - } - } - - option7.val = (wasi_http_0_2_0_rc_2023_12_05_types_field_size_payload_t) { - option5, - option6, - }; - break; - } - } - variant.val.http_request_header_size = option7; - break; - } - case 23: { - bindings_option_u32_t option8; - switch ((int32_t) (*((uint8_t*) (ptr + 32)))) { - case 0: { - option8.is_some = false; - break; - } - case 1: { - option8.is_some = true; - option8.val = (uint32_t) (*((int32_t*) (ptr + 36))); - break; - } - } - variant.val.http_request_trailer_section_size = option8; - break; - } - case 24: { - bindings_option_string_t option9; - switch ((int32_t) (*((uint8_t*) (ptr + 32)))) { - case 0: { - option9.is_some = false; - break; - } - case 1: { - option9.is_some = true; - option9.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 36))), (size_t)(*((int32_t*) (ptr + 40))) }; - break; - } - } - bindings_option_u32_t option10; - switch ((int32_t) (*((uint8_t*) (ptr + 44)))) { - case 0: { - option10.is_some = false; - break; - } - case 1: { - option10.is_some = true; - option10.val = (uint32_t) (*((int32_t*) (ptr + 48))); - break; - } - } - variant.val.http_request_trailer_size = (wasi_http_0_2_0_rc_2023_12_05_types_field_size_payload_t) { - option9, - option10, - }; - break; - } - case 25: { - break; - } - case 26: { - bindings_option_u32_t option11; - switch ((int32_t) (*((uint8_t*) (ptr + 32)))) { - case 0: { - option11.is_some = false; - break; - } - case 1: { - option11.is_some = true; - option11.val = (uint32_t) (*((int32_t*) (ptr + 36))); - break; - } - } - variant.val.http_response_header_section_size = option11; - break; - } - case 27: { - bindings_option_string_t option12; - switch ((int32_t) (*((uint8_t*) (ptr + 32)))) { - case 0: { - option12.is_some = false; - break; - } - case 1: { - option12.is_some = true; - option12.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 36))), (size_t)(*((int32_t*) (ptr + 40))) }; - break; - } - } - bindings_option_u32_t option13; - switch ((int32_t) (*((uint8_t*) (ptr + 44)))) { - case 0: { - option13.is_some = false; - break; - } - case 1: { - option13.is_some = true; - option13.val = (uint32_t) (*((int32_t*) (ptr + 48))); - break; - } - } - variant.val.http_response_header_size = (wasi_http_0_2_0_rc_2023_12_05_types_field_size_payload_t) { - option12, - option13, - }; - break; - } - case 28: { - bindings_option_u64_t option14; - switch ((int32_t) (*((uint8_t*) (ptr + 32)))) { - case 0: { - option14.is_some = false; - break; - } - case 1: { - option14.is_some = true; - option14.val = (uint64_t) (*((int64_t*) (ptr + 40))); - break; - } - } - variant.val.http_response_body_size = option14; - break; - } - case 29: { - bindings_option_u32_t option15; - switch ((int32_t) (*((uint8_t*) (ptr + 32)))) { - case 0: { - option15.is_some = false; - break; - } - case 1: { - option15.is_some = true; - option15.val = (uint32_t) (*((int32_t*) (ptr + 36))); - break; - } - } - variant.val.http_response_trailer_section_size = option15; - break; - } - case 30: { - bindings_option_string_t option16; - switch ((int32_t) (*((uint8_t*) (ptr + 32)))) { - case 0: { - option16.is_some = false; - break; - } - case 1: { - option16.is_some = true; - option16.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 36))), (size_t)(*((int32_t*) (ptr + 40))) }; - break; - } - } - bindings_option_u32_t option17; - switch ((int32_t) (*((uint8_t*) (ptr + 44)))) { - case 0: { - option17.is_some = false; - break; - } - case 1: { - option17.is_some = true; - option17.val = (uint32_t) (*((int32_t*) (ptr + 48))); - break; - } - } - variant.val.http_response_trailer_size = (wasi_http_0_2_0_rc_2023_12_05_types_field_size_payload_t) { - option16, - option17, - }; - break; - } - case 31: { - bindings_option_string_t option18; - switch ((int32_t) (*((uint8_t*) (ptr + 32)))) { - case 0: { - option18.is_some = false; - break; - } - case 1: { - option18.is_some = true; - option18.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 36))), (size_t)(*((int32_t*) (ptr + 40))) }; - break; - } - } - variant.val.http_response_transfer_coding = option18; - break; - } - case 32: { - bindings_option_string_t option19; - switch ((int32_t) (*((uint8_t*) (ptr + 32)))) { - case 0: { - option19.is_some = false; - break; - } - case 1: { - option19.is_some = true; - option19.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 36))), (size_t)(*((int32_t*) (ptr + 40))) }; - break; - } - } - variant.val.http_response_content_coding = option19; - break; - } - case 33: { - break; - } - case 34: { - break; - } - case 35: { - break; - } - case 36: { - break; - } - case 37: { - break; - } - case 38: { - bindings_option_string_t option20; - switch ((int32_t) (*((uint8_t*) (ptr + 32)))) { - case 0: { - option20.is_some = false; - break; - } - case 1: { - option20.is_some = true; - option20.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 36))), (size_t)(*((int32_t*) (ptr + 40))) }; - break; - } - } - variant.val.internal_error = option20; - break; - } - } - - result.val.err = variant; - break; - } - } - - result21.val.ok = result; - break; - } - case 1: { - result21.is_err = true; - break; - } - } - - option22.val = result21; - break; - } - } - *ret = option22.val; - return option22.is_some; -} - -bool wasi_http_0_2_0_rc_2023_12_05_outgoing_handler_handle(wasi_http_0_2_0_rc_2023_12_05_outgoing_handler_own_outgoing_request_t request, wasi_http_0_2_0_rc_2023_12_05_outgoing_handler_own_request_options_t *maybe_options, wasi_http_0_2_0_rc_2023_12_05_outgoing_handler_own_future_incoming_response_t *ret, wasi_http_0_2_0_rc_2023_12_05_outgoing_handler_error_code_t *err) { - __attribute__((__aligned__(8))) - uint8_t ret_area[40]; - wasi_http_0_2_0_rc_2023_12_05_outgoing_handler_option_own_request_options_t options; - options.is_some = maybe_options != NULL;if (maybe_options) { - options.val = *maybe_options; - } - int32_t option; - int32_t option1; - if ((options).is_some) { - const wasi_http_0_2_0_rc_2023_12_05_outgoing_handler_own_request_options_t *payload0 = &(options).val; - option = 1; - option1 = (*payload0).__handle; - } else { - option = 0; - option1 = 0; - } - int32_t ptr = (int32_t) &ret_area; - __wasm_import_wasi_http_0_2_0_rc_2023_12_05_outgoing_handler_handle((request).__handle, option, option1, ptr); - wasi_http_0_2_0_rc_2023_12_05_outgoing_handler_result_own_future_incoming_response_error_code_t result; - switch ((int32_t) (*((uint8_t*) (ptr + 0)))) { - case 0: { - result.is_err = false; - result.val.ok = (wasi_http_0_2_0_rc_2023_12_05_outgoing_handler_own_future_incoming_response_t) { *((int32_t*) (ptr + 8)) }; - break; - } - case 1: { - result.is_err = true; - wasi_http_0_2_0_rc_2023_12_05_types_error_code_t variant; - variant.tag = (int32_t) (*((uint8_t*) (ptr + 8))); - switch ((int32_t) variant.tag) { - case 0: { - break; - } - case 1: { - bindings_option_string_t option2; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option2.is_some = false; - break; - } - case 1: { - option2.is_some = true; - option2.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 20))), (size_t)(*((int32_t*) (ptr + 24))) }; - break; - } - } - bindings_option_u16_t option3; - switch ((int32_t) (*((uint8_t*) (ptr + 28)))) { - case 0: { - option3.is_some = false; - break; - } - case 1: { - option3.is_some = true; - option3.val = (uint16_t) ((int32_t) (*((uint16_t*) (ptr + 30)))); - break; - } - } - variant.val.dns_error = (wasi_http_0_2_0_rc_2023_12_05_types_dns_error_payload_t) { - option2, - option3, - }; - break; - } - case 2: { - break; - } - case 3: { - break; - } - case 4: { - break; - } - case 5: { - break; - } - case 6: { - break; - } - case 7: { - break; - } - case 8: { - break; - } - case 9: { - break; - } - case 10: { - break; - } - case 11: { - break; - } - case 12: { - break; - } - case 13: { - break; - } - case 14: { - bindings_option_u8_t option4; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option4.is_some = false; - break; - } - case 1: { - option4.is_some = true; - option4.val = (uint8_t) ((int32_t) (*((uint8_t*) (ptr + 17)))); - break; - } - } - bindings_option_string_t option5; - switch ((int32_t) (*((uint8_t*) (ptr + 20)))) { - case 0: { - option5.is_some = false; - break; - } - case 1: { - option5.is_some = true; - option5.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 24))), (size_t)(*((int32_t*) (ptr + 28))) }; - break; - } - } - variant.val.tls_alert_received = (wasi_http_0_2_0_rc_2023_12_05_types_tls_alert_received_payload_t) { - option4, - option5, - }; - break; - } - case 15: { - break; - } - case 16: { - break; - } - case 17: { - bindings_option_u64_t option6; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option6.is_some = false; - break; - } - case 1: { - option6.is_some = true; - option6.val = (uint64_t) (*((int64_t*) (ptr + 24))); - break; - } - } - variant.val.http_request_body_size = option6; - break; - } - case 18: { - break; - } - case 19: { - break; - } - case 20: { - break; - } - case 21: { - bindings_option_u32_t option7; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option7.is_some = false; - break; - } - case 1: { - option7.is_some = true; - option7.val = (uint32_t) (*((int32_t*) (ptr + 20))); - break; - } - } - variant.val.http_request_header_section_size = option7; - break; - } - case 22: { - wasi_http_0_2_0_rc_2023_12_05_types_option_field_size_payload_t option10; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option10.is_some = false; - break; - } - case 1: { - option10.is_some = true; - bindings_option_string_t option8; - switch ((int32_t) (*((uint8_t*) (ptr + 20)))) { - case 0: { - option8.is_some = false; - break; - } - case 1: { - option8.is_some = true; - option8.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 24))), (size_t)(*((int32_t*) (ptr + 28))) }; - break; - } - } - bindings_option_u32_t option9; - switch ((int32_t) (*((uint8_t*) (ptr + 32)))) { - case 0: { - option9.is_some = false; - break; - } - case 1: { - option9.is_some = true; - option9.val = (uint32_t) (*((int32_t*) (ptr + 36))); - break; - } - } - - option10.val = (wasi_http_0_2_0_rc_2023_12_05_types_field_size_payload_t) { - option8, - option9, - }; - break; - } - } - variant.val.http_request_header_size = option10; - break; - } - case 23: { - bindings_option_u32_t option11; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option11.is_some = false; - break; - } - case 1: { - option11.is_some = true; - option11.val = (uint32_t) (*((int32_t*) (ptr + 20))); - break; - } - } - variant.val.http_request_trailer_section_size = option11; - break; - } - case 24: { - bindings_option_string_t option12; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option12.is_some = false; - break; - } - case 1: { - option12.is_some = true; - option12.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 20))), (size_t)(*((int32_t*) (ptr + 24))) }; - break; - } - } - bindings_option_u32_t option13; - switch ((int32_t) (*((uint8_t*) (ptr + 28)))) { - case 0: { - option13.is_some = false; - break; - } - case 1: { - option13.is_some = true; - option13.val = (uint32_t) (*((int32_t*) (ptr + 32))); - break; - } - } - variant.val.http_request_trailer_size = (wasi_http_0_2_0_rc_2023_12_05_types_field_size_payload_t) { - option12, - option13, - }; - break; - } - case 25: { - break; - } - case 26: { - bindings_option_u32_t option14; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option14.is_some = false; - break; - } - case 1: { - option14.is_some = true; - option14.val = (uint32_t) (*((int32_t*) (ptr + 20))); - break; - } - } - variant.val.http_response_header_section_size = option14; - break; - } - case 27: { - bindings_option_string_t option15; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option15.is_some = false; - break; - } - case 1: { - option15.is_some = true; - option15.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 20))), (size_t)(*((int32_t*) (ptr + 24))) }; - break; - } - } - bindings_option_u32_t option16; - switch ((int32_t) (*((uint8_t*) (ptr + 28)))) { - case 0: { - option16.is_some = false; - break; - } - case 1: { - option16.is_some = true; - option16.val = (uint32_t) (*((int32_t*) (ptr + 32))); - break; - } - } - variant.val.http_response_header_size = (wasi_http_0_2_0_rc_2023_12_05_types_field_size_payload_t) { - option15, - option16, - }; - break; - } - case 28: { - bindings_option_u64_t option17; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option17.is_some = false; - break; - } - case 1: { - option17.is_some = true; - option17.val = (uint64_t) (*((int64_t*) (ptr + 24))); - break; - } - } - variant.val.http_response_body_size = option17; - break; - } - case 29: { - bindings_option_u32_t option18; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option18.is_some = false; - break; - } - case 1: { - option18.is_some = true; - option18.val = (uint32_t) (*((int32_t*) (ptr + 20))); - break; - } - } - variant.val.http_response_trailer_section_size = option18; - break; - } - case 30: { - bindings_option_string_t option19; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option19.is_some = false; - break; - } - case 1: { - option19.is_some = true; - option19.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 20))), (size_t)(*((int32_t*) (ptr + 24))) }; - break; - } - } - bindings_option_u32_t option20; - switch ((int32_t) (*((uint8_t*) (ptr + 28)))) { - case 0: { - option20.is_some = false; - break; - } - case 1: { - option20.is_some = true; - option20.val = (uint32_t) (*((int32_t*) (ptr + 32))); - break; - } - } - variant.val.http_response_trailer_size = (wasi_http_0_2_0_rc_2023_12_05_types_field_size_payload_t) { - option19, - option20, - }; - break; - } - case 31: { - bindings_option_string_t option21; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option21.is_some = false; - break; - } - case 1: { - option21.is_some = true; - option21.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 20))), (size_t)(*((int32_t*) (ptr + 24))) }; - break; - } - } - variant.val.http_response_transfer_coding = option21; - break; - } - case 32: { - bindings_option_string_t option22; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option22.is_some = false; - break; - } - case 1: { - option22.is_some = true; - option22.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 20))), (size_t)(*((int32_t*) (ptr + 24))) }; - break; - } - } - variant.val.http_response_content_coding = option22; - break; - } - case 33: { - break; - } - case 34: { - break; - } - case 35: { - break; - } - case 36: { - break; - } - case 37: { - break; - } - case 38: { - bindings_option_string_t option23; - switch ((int32_t) (*((uint8_t*) (ptr + 16)))) { - case 0: { - option23.is_some = false; - break; - } - case 1: { - option23.is_some = true; - option23.val = (bindings_string_t) { (uint8_t*)(*((int32_t*) (ptr + 20))), (size_t)(*((int32_t*) (ptr + 24))) }; - break; - } - } - variant.val.internal_error = option23; - break; - } - } - - result.val.err = variant; - break; - } - } - if (!result.is_err) { - *ret = result.val.ok; - return 1; - } else { - *err = result.val.err; - return 0; - } -} - -__attribute__((__export_name__("wasi:cli/run@0.2.0-rc-2023-12-05#run"))) -int32_t __wasm_export_exports_wasi_cli_0_2_0_rc_2023_12_05_run_run(void) { - exports_wasi_cli_0_2_0_rc_2023_12_05_run_result_void_void_t ret; - ret.is_err = !exports_wasi_cli_0_2_0_rc_2023_12_05_run_run(); - int32_t result; - if ((ret).is_err) { - result = 1; - } else { - result = 0; - } - return result; -} - -__attribute__((__export_name__("wasi:http/incoming-handler@0.2.0-rc-2023-12-05#handle"))) -void __wasm_export_exports_wasi_http_0_2_0_rc_2023_12_05_incoming_handler_handle(int32_t arg, int32_t arg0) { - exports_wasi_http_0_2_0_rc_2023_12_05_incoming_handler_handle((exports_wasi_http_0_2_0_rc_2023_12_05_incoming_handler_own_incoming_request_t) { arg }, (exports_wasi_http_0_2_0_rc_2023_12_05_incoming_handler_own_response_outparam_t) { arg0 }); -} - -extern void __component_type_object_force_link_bindings(void); -void __component_type_object_force_link_bindings_public_use_in_this_compilation_unit(void) { - __component_type_object_force_link_bindings(); -} diff --git a/host-apis/wasi-0.2.0-rc-2023-12-05/bindings/bindings.h b/host-apis/wasi-0.2.0-rc-2023-12-05/bindings/bindings.h deleted file mode 100644 index 6293dc6..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-12-05/bindings/bindings.h +++ /dev/null @@ -1,3351 +0,0 @@ -// Generated by `wit-bindgen` 0.16.0. DO NOT EDIT! -#ifndef __BINDINGS_BINDINGS_H -#define __BINDINGS_BINDINGS_H -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include - -typedef struct { - uint8_t*ptr; - size_t len; -} bindings_string_t; - -typedef struct { - bindings_string_t f0; - bindings_string_t f1; -} bindings_tuple2_string_string_t; - -typedef struct { - bindings_tuple2_string_string_t *ptr; - size_t len; -} bindings_list_tuple2_string_string_t; - -typedef struct { - bindings_string_t *ptr; - size_t len; -} bindings_list_string_t; - -typedef struct { - bool is_some; - bindings_string_t val; -} bindings_option_string_t; - -typedef struct { - bool is_err; -} wasi_cli_0_2_0_rc_2023_12_05_exit_result_void_void_t; - -typedef struct wasi_io_0_2_0_rc_2023_11_10_error_own_error_t { - int32_t __handle; -} wasi_io_0_2_0_rc_2023_11_10_error_own_error_t; - -typedef struct wasi_io_0_2_0_rc_2023_11_10_error_borrow_error_t { - int32_t __handle; -} wasi_io_0_2_0_rc_2023_11_10_error_borrow_error_t; - -typedef struct wasi_io_0_2_0_rc_2023_11_10_poll_own_pollable_t { - int32_t __handle; -} wasi_io_0_2_0_rc_2023_11_10_poll_own_pollable_t; - -typedef struct wasi_io_0_2_0_rc_2023_11_10_poll_borrow_pollable_t { - int32_t __handle; -} wasi_io_0_2_0_rc_2023_11_10_poll_borrow_pollable_t; - -typedef struct { - wasi_io_0_2_0_rc_2023_11_10_poll_borrow_pollable_t *ptr; - size_t len; -} wasi_io_0_2_0_rc_2023_11_10_poll_list_borrow_pollable_t; - -typedef struct { - uint32_t *ptr; - size_t len; -} bindings_list_u32_t; - -typedef wasi_io_0_2_0_rc_2023_11_10_error_own_error_t wasi_io_0_2_0_rc_2023_11_10_streams_own_error_t; - -// An error for input-stream and output-stream operations. -typedef struct { - uint8_t tag; - union { - wasi_io_0_2_0_rc_2023_11_10_streams_own_error_t last_operation_failed; - } val; -} wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t; - -// The last operation (a write or flush) failed before completion. -// -// More information is available in the `error` payload. -#define WASI_IO_0_2_0_RC_2023_11_10_STREAMS_STREAM_ERROR_LAST_OPERATION_FAILED 0 -// The stream is closed: no more input will be accepted by the -// stream. A closed output-stream will return this error on all -// future operations. -#define WASI_IO_0_2_0_RC_2023_11_10_STREAMS_STREAM_ERROR_CLOSED 1 - -typedef struct wasi_io_0_2_0_rc_2023_11_10_streams_own_input_stream_t { - int32_t __handle; -} wasi_io_0_2_0_rc_2023_11_10_streams_own_input_stream_t; - -typedef struct wasi_io_0_2_0_rc_2023_11_10_streams_borrow_input_stream_t { - int32_t __handle; -} wasi_io_0_2_0_rc_2023_11_10_streams_borrow_input_stream_t; - -typedef struct wasi_io_0_2_0_rc_2023_11_10_streams_own_output_stream_t { - int32_t __handle; -} wasi_io_0_2_0_rc_2023_11_10_streams_own_output_stream_t; - -typedef struct wasi_io_0_2_0_rc_2023_11_10_streams_borrow_output_stream_t { - int32_t __handle; -} wasi_io_0_2_0_rc_2023_11_10_streams_borrow_output_stream_t; - -typedef struct { - uint8_t *ptr; - size_t len; -} bindings_list_u8_t; - -typedef struct { - bool is_err; - union { - bindings_list_u8_t ok; - wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t err; - } val; -} wasi_io_0_2_0_rc_2023_11_10_streams_result_list_u8_stream_error_t; - -typedef struct { - bool is_err; - union { - uint64_t ok; - wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t err; - } val; -} wasi_io_0_2_0_rc_2023_11_10_streams_result_u64_stream_error_t; - -typedef wasi_io_0_2_0_rc_2023_11_10_poll_own_pollable_t wasi_io_0_2_0_rc_2023_11_10_streams_own_pollable_t; - -typedef struct { - bool is_err; - union { - wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t err; - } val; -} wasi_io_0_2_0_rc_2023_11_10_streams_result_void_stream_error_t; - -typedef wasi_io_0_2_0_rc_2023_11_10_streams_own_input_stream_t wasi_cli_0_2_0_rc_2023_12_05_stdin_own_input_stream_t; - -typedef wasi_io_0_2_0_rc_2023_11_10_streams_own_output_stream_t wasi_cli_0_2_0_rc_2023_12_05_stdout_own_output_stream_t; - -typedef wasi_io_0_2_0_rc_2023_11_10_streams_own_output_stream_t wasi_cli_0_2_0_rc_2023_12_05_stderr_own_output_stream_t; - -typedef struct wasi_cli_0_2_0_rc_2023_12_05_terminal_input_own_terminal_input_t { - int32_t __handle; -} wasi_cli_0_2_0_rc_2023_12_05_terminal_input_own_terminal_input_t; - -typedef struct wasi_cli_0_2_0_rc_2023_12_05_terminal_input_borrow_terminal_input_t { - int32_t __handle; -} wasi_cli_0_2_0_rc_2023_12_05_terminal_input_borrow_terminal_input_t; - -typedef struct wasi_cli_0_2_0_rc_2023_12_05_terminal_output_own_terminal_output_t { - int32_t __handle; -} wasi_cli_0_2_0_rc_2023_12_05_terminal_output_own_terminal_output_t; - -typedef struct wasi_cli_0_2_0_rc_2023_12_05_terminal_output_borrow_terminal_output_t { - int32_t __handle; -} wasi_cli_0_2_0_rc_2023_12_05_terminal_output_borrow_terminal_output_t; - -typedef wasi_cli_0_2_0_rc_2023_12_05_terminal_input_own_terminal_input_t wasi_cli_0_2_0_rc_2023_12_05_terminal_stdin_own_terminal_input_t; - -typedef struct { - bool is_some; - wasi_cli_0_2_0_rc_2023_12_05_terminal_stdin_own_terminal_input_t val; -} wasi_cli_0_2_0_rc_2023_12_05_terminal_stdin_option_own_terminal_input_t; - -typedef wasi_cli_0_2_0_rc_2023_12_05_terminal_output_own_terminal_output_t wasi_cli_0_2_0_rc_2023_12_05_terminal_stdout_own_terminal_output_t; - -typedef struct { - bool is_some; - wasi_cli_0_2_0_rc_2023_12_05_terminal_stdout_own_terminal_output_t val; -} wasi_cli_0_2_0_rc_2023_12_05_terminal_stdout_option_own_terminal_output_t; - -typedef wasi_cli_0_2_0_rc_2023_12_05_terminal_output_own_terminal_output_t wasi_cli_0_2_0_rc_2023_12_05_terminal_stderr_own_terminal_output_t; - -typedef struct { - bool is_some; - wasi_cli_0_2_0_rc_2023_12_05_terminal_stderr_own_terminal_output_t val; -} wasi_cli_0_2_0_rc_2023_12_05_terminal_stderr_option_own_terminal_output_t; - -// An instant in time, in nanoseconds. An instant is relative to an -// unspecified initial value, and can only be compared to instances from -// the same monotonic-clock. -typedef uint64_t wasi_clocks_0_2_0_rc_2023_11_10_monotonic_clock_instant_t; - -// A duration of time, in nanoseconds. -typedef uint64_t wasi_clocks_0_2_0_rc_2023_11_10_monotonic_clock_duration_t; - -typedef wasi_io_0_2_0_rc_2023_11_10_poll_own_pollable_t wasi_clocks_0_2_0_rc_2023_11_10_monotonic_clock_own_pollable_t; - -// A time and date in seconds plus nanoseconds. -typedef struct { - uint64_t seconds; - uint32_t nanoseconds; -} wasi_clocks_0_2_0_rc_2023_11_10_wall_clock_datetime_t; - -typedef wasi_clocks_0_2_0_rc_2023_11_10_wall_clock_datetime_t wasi_filesystem_0_2_0_rc_2023_11_10_types_datetime_t; - -// File size or length of a region within a file. -typedef uint64_t wasi_filesystem_0_2_0_rc_2023_11_10_types_filesize_t; - -// The type of a filesystem object referenced by a descriptor. -// -// Note: This was called `filetype` in earlier versions of WASI. -typedef uint8_t wasi_filesystem_0_2_0_rc_2023_11_10_types_descriptor_type_t; - -// The type of the descriptor or file is unknown or is different from -// any of the other types specified. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_DESCRIPTOR_TYPE_UNKNOWN 0 -// The descriptor refers to a block device inode. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_DESCRIPTOR_TYPE_BLOCK_DEVICE 1 -// The descriptor refers to a character device inode. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_DESCRIPTOR_TYPE_CHARACTER_DEVICE 2 -// The descriptor refers to a directory inode. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_DESCRIPTOR_TYPE_DIRECTORY 3 -// The descriptor refers to a named pipe. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_DESCRIPTOR_TYPE_FIFO 4 -// The file refers to a symbolic link inode. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_DESCRIPTOR_TYPE_SYMBOLIC_LINK 5 -// The descriptor refers to a regular file inode. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_DESCRIPTOR_TYPE_REGULAR_FILE 6 -// The descriptor refers to a socket. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_DESCRIPTOR_TYPE_SOCKET 7 - -// Descriptor flags. -// -// Note: This was called `fdflags` in earlier versions of WASI. -typedef uint8_t wasi_filesystem_0_2_0_rc_2023_11_10_types_descriptor_flags_t; - -// Read mode: Data can be read. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_DESCRIPTOR_FLAGS_READ (1 << 0) -// Write mode: Data can be written to. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_DESCRIPTOR_FLAGS_WRITE (1 << 1) -// Request that writes be performed according to synchronized I/O file -// integrity completion. The data stored in the file and the file's -// metadata are synchronized. This is similar to `O_SYNC` in POSIX. -// -// The precise semantics of this operation have not yet been defined for -// WASI. At this time, it should be interpreted as a request, and not a -// requirement. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_DESCRIPTOR_FLAGS_FILE_INTEGRITY_SYNC (1 << 2) -// Request that writes be performed according to synchronized I/O data -// integrity completion. Only the data stored in the file is -// synchronized. This is similar to `O_DSYNC` in POSIX. -// -// The precise semantics of this operation have not yet been defined for -// WASI. At this time, it should be interpreted as a request, and not a -// requirement. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_DESCRIPTOR_FLAGS_DATA_INTEGRITY_SYNC (1 << 3) -// Requests that reads be performed at the same level of integrety -// requested for writes. This is similar to `O_RSYNC` in POSIX. -// -// The precise semantics of this operation have not yet been defined for -// WASI. At this time, it should be interpreted as a request, and not a -// requirement. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_DESCRIPTOR_FLAGS_REQUESTED_WRITE_SYNC (1 << 4) -// Mutating directories mode: Directory contents may be mutated. -// -// When this flag is unset on a descriptor, operations using the -// descriptor which would create, rename, delete, modify the data or -// metadata of filesystem objects, or obtain another handle which -// would permit any of those, shall fail with `error-code::read-only` if -// they would otherwise succeed. -// -// This may only be set on directories. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_DESCRIPTOR_FLAGS_MUTATE_DIRECTORY (1 << 5) - -// Flags determining the method of how paths are resolved. -typedef uint8_t wasi_filesystem_0_2_0_rc_2023_11_10_types_path_flags_t; - -// As long as the resolved path corresponds to a symbolic link, it is -// expanded. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_PATH_FLAGS_SYMLINK_FOLLOW (1 << 0) - -// Open flags used by `open-at`. -typedef uint8_t wasi_filesystem_0_2_0_rc_2023_11_10_types_open_flags_t; - -// Create file if it does not exist, similar to `O_CREAT` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_OPEN_FLAGS_CREATE (1 << 0) -// Fail if not a directory, similar to `O_DIRECTORY` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_OPEN_FLAGS_DIRECTORY (1 << 1) -// Fail if file already exists, similar to `O_EXCL` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_OPEN_FLAGS_EXCLUSIVE (1 << 2) -// Truncate file to size 0, similar to `O_TRUNC` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_OPEN_FLAGS_TRUNCATE (1 << 3) - -// Number of hard links to an inode. -typedef uint64_t wasi_filesystem_0_2_0_rc_2023_11_10_types_link_count_t; - -typedef struct { - bool is_some; - wasi_filesystem_0_2_0_rc_2023_11_10_types_datetime_t val; -} wasi_filesystem_0_2_0_rc_2023_11_10_types_option_datetime_t; - -// File attributes. -// -// Note: This was called `filestat` in earlier versions of WASI. -typedef struct { - // File type. - wasi_filesystem_0_2_0_rc_2023_11_10_types_descriptor_type_t type; - // Number of hard links to the file. - wasi_filesystem_0_2_0_rc_2023_11_10_types_link_count_t link_count; - // For regular files, the file size in bytes. For symbolic links, the - // length in bytes of the pathname contained in the symbolic link. - wasi_filesystem_0_2_0_rc_2023_11_10_types_filesize_t size; - // Last data access timestamp. - // - // If the `option` is none, the platform doesn't maintain an access - // timestamp for this file. - wasi_filesystem_0_2_0_rc_2023_11_10_types_option_datetime_t data_access_timestamp; - // Last data modification timestamp. - // - // If the `option` is none, the platform doesn't maintain a - // modification timestamp for this file. - wasi_filesystem_0_2_0_rc_2023_11_10_types_option_datetime_t data_modification_timestamp; - // Last file status-change timestamp. - // - // If the `option` is none, the platform doesn't maintain a - // status-change timestamp for this file. - wasi_filesystem_0_2_0_rc_2023_11_10_types_option_datetime_t status_change_timestamp; -} wasi_filesystem_0_2_0_rc_2023_11_10_types_descriptor_stat_t; - -// When setting a timestamp, this gives the value to set it to. -typedef struct { - uint8_t tag; - union { - wasi_filesystem_0_2_0_rc_2023_11_10_types_datetime_t timestamp; - } val; -} wasi_filesystem_0_2_0_rc_2023_11_10_types_new_timestamp_t; - -// Leave the timestamp set to its previous value. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_NEW_TIMESTAMP_NO_CHANGE 0 -// Set the timestamp to the current time of the system clock associated -// with the filesystem. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_NEW_TIMESTAMP_NOW 1 -// Set the timestamp to the given value. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_NEW_TIMESTAMP_TIMESTAMP 2 - -// A directory entry. -typedef struct { - // The type of the file referred to by this directory entry. - wasi_filesystem_0_2_0_rc_2023_11_10_types_descriptor_type_t type; - // The name of the object. - bindings_string_t name; -} wasi_filesystem_0_2_0_rc_2023_11_10_types_directory_entry_t; - -// Error codes returned by functions, similar to `errno` in POSIX. -// Not all of these error codes are returned by the functions provided by this -// API; some are used in higher-level library layers, and others are provided -// merely for alignment with POSIX. -typedef uint8_t wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t; - -// Permission denied, similar to `EACCES` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_ERROR_CODE_ACCESS 0 -// Resource unavailable, or operation would block, similar to `EAGAIN` and `EWOULDBLOCK` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_ERROR_CODE_WOULD_BLOCK 1 -// Connection already in progress, similar to `EALREADY` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_ERROR_CODE_ALREADY 2 -// Bad descriptor, similar to `EBADF` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_ERROR_CODE_BAD_DESCRIPTOR 3 -// Device or resource busy, similar to `EBUSY` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_ERROR_CODE_BUSY 4 -// Resource deadlock would occur, similar to `EDEADLK` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_ERROR_CODE_DEADLOCK 5 -// Storage quota exceeded, similar to `EDQUOT` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_ERROR_CODE_QUOTA 6 -// File exists, similar to `EEXIST` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_ERROR_CODE_EXIST 7 -// File too large, similar to `EFBIG` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_ERROR_CODE_FILE_TOO_LARGE 8 -// Illegal byte sequence, similar to `EILSEQ` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_ERROR_CODE_ILLEGAL_BYTE_SEQUENCE 9 -// Operation in progress, similar to `EINPROGRESS` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_ERROR_CODE_IN_PROGRESS 10 -// Interrupted function, similar to `EINTR` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_ERROR_CODE_INTERRUPTED 11 -// Invalid argument, similar to `EINVAL` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_ERROR_CODE_INVALID 12 -// I/O error, similar to `EIO` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_ERROR_CODE_IO 13 -// Is a directory, similar to `EISDIR` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_ERROR_CODE_IS_DIRECTORY 14 -// Too many levels of symbolic links, similar to `ELOOP` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_ERROR_CODE_LOOP 15 -// Too many links, similar to `EMLINK` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_ERROR_CODE_TOO_MANY_LINKS 16 -// Message too large, similar to `EMSGSIZE` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_ERROR_CODE_MESSAGE_SIZE 17 -// Filename too long, similar to `ENAMETOOLONG` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_ERROR_CODE_NAME_TOO_LONG 18 -// No such device, similar to `ENODEV` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_ERROR_CODE_NO_DEVICE 19 -// No such file or directory, similar to `ENOENT` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_ERROR_CODE_NO_ENTRY 20 -// No locks available, similar to `ENOLCK` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_ERROR_CODE_NO_LOCK 21 -// Not enough space, similar to `ENOMEM` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_ERROR_CODE_INSUFFICIENT_MEMORY 22 -// No space left on device, similar to `ENOSPC` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_ERROR_CODE_INSUFFICIENT_SPACE 23 -// Not a directory or a symbolic link to a directory, similar to `ENOTDIR` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_ERROR_CODE_NOT_DIRECTORY 24 -// Directory not empty, similar to `ENOTEMPTY` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_ERROR_CODE_NOT_EMPTY 25 -// State not recoverable, similar to `ENOTRECOVERABLE` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_ERROR_CODE_NOT_RECOVERABLE 26 -// Not supported, similar to `ENOTSUP` and `ENOSYS` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_ERROR_CODE_UNSUPPORTED 27 -// Inappropriate I/O control operation, similar to `ENOTTY` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_ERROR_CODE_NO_TTY 28 -// No such device or address, similar to `ENXIO` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_ERROR_CODE_NO_SUCH_DEVICE 29 -// Value too large to be stored in data type, similar to `EOVERFLOW` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_ERROR_CODE_OVERFLOW 30 -// Operation not permitted, similar to `EPERM` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_ERROR_CODE_NOT_PERMITTED 31 -// Broken pipe, similar to `EPIPE` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_ERROR_CODE_PIPE 32 -// Read-only file system, similar to `EROFS` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_ERROR_CODE_READ_ONLY 33 -// Invalid seek, similar to `ESPIPE` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_ERROR_CODE_INVALID_SEEK 34 -// Text file busy, similar to `ETXTBSY` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_ERROR_CODE_TEXT_FILE_BUSY 35 -// Cross-device link, similar to `EXDEV` in POSIX. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_ERROR_CODE_CROSS_DEVICE 36 - -// File or memory access pattern advisory information. -typedef uint8_t wasi_filesystem_0_2_0_rc_2023_11_10_types_advice_t; - -// The application has no advice to give on its behavior with respect -// to the specified data. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_ADVICE_NORMAL 0 -// The application expects to access the specified data sequentially -// from lower offsets to higher offsets. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_ADVICE_SEQUENTIAL 1 -// The application expects to access the specified data in a random -// order. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_ADVICE_RANDOM 2 -// The application expects to access the specified data in the near -// future. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_ADVICE_WILL_NEED 3 -// The application expects that it will not access the specified data -// in the near future. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_ADVICE_DONT_NEED 4 -// The application expects to access the specified data once and then -// not reuse it thereafter. -#define WASI_FILESYSTEM_0_2_0_RC_2023_11_10_TYPES_ADVICE_NO_REUSE 5 - -// A 128-bit hash value, split into parts because wasm doesn't have a -// 128-bit integer type. -typedef struct { - // 64 bits of a 128-bit hash value. - uint64_t lower; - // Another 64 bits of a 128-bit hash value. - uint64_t upper; -} wasi_filesystem_0_2_0_rc_2023_11_10_types_metadata_hash_value_t; - -typedef struct wasi_filesystem_0_2_0_rc_2023_11_10_types_own_descriptor_t { - int32_t __handle; -} wasi_filesystem_0_2_0_rc_2023_11_10_types_own_descriptor_t; - -typedef struct wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t { - int32_t __handle; -} wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t; - -typedef struct wasi_filesystem_0_2_0_rc_2023_11_10_types_own_directory_entry_stream_t { - int32_t __handle; -} wasi_filesystem_0_2_0_rc_2023_11_10_types_own_directory_entry_stream_t; - -typedef struct wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_directory_entry_stream_t { - int32_t __handle; -} wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_directory_entry_stream_t; - -typedef wasi_io_0_2_0_rc_2023_11_10_streams_own_input_stream_t wasi_filesystem_0_2_0_rc_2023_11_10_types_own_input_stream_t; - -typedef struct { - bool is_err; - union { - wasi_filesystem_0_2_0_rc_2023_11_10_types_own_input_stream_t ok; - wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t err; - } val; -} wasi_filesystem_0_2_0_rc_2023_11_10_types_result_own_input_stream_error_code_t; - -typedef wasi_io_0_2_0_rc_2023_11_10_streams_own_output_stream_t wasi_filesystem_0_2_0_rc_2023_11_10_types_own_output_stream_t; - -typedef struct { - bool is_err; - union { - wasi_filesystem_0_2_0_rc_2023_11_10_types_own_output_stream_t ok; - wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t err; - } val; -} wasi_filesystem_0_2_0_rc_2023_11_10_types_result_own_output_stream_error_code_t; - -typedef struct { - bool is_err; - union { - wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t err; - } val; -} wasi_filesystem_0_2_0_rc_2023_11_10_types_result_void_error_code_t; - -typedef struct { - bool is_err; - union { - wasi_filesystem_0_2_0_rc_2023_11_10_types_descriptor_flags_t ok; - wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t err; - } val; -} wasi_filesystem_0_2_0_rc_2023_11_10_types_result_descriptor_flags_error_code_t; - -typedef struct { - bool is_err; - union { - wasi_filesystem_0_2_0_rc_2023_11_10_types_descriptor_type_t ok; - wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t err; - } val; -} wasi_filesystem_0_2_0_rc_2023_11_10_types_result_descriptor_type_error_code_t; - -typedef struct { - bindings_list_u8_t f0; - bool f1; -} bindings_tuple2_list_u8_bool_t; - -typedef struct { - bool is_err; - union { - bindings_tuple2_list_u8_bool_t ok; - wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t err; - } val; -} wasi_filesystem_0_2_0_rc_2023_11_10_types_result_tuple2_list_u8_bool_error_code_t; - -typedef struct { - bool is_err; - union { - wasi_filesystem_0_2_0_rc_2023_11_10_types_filesize_t ok; - wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t err; - } val; -} wasi_filesystem_0_2_0_rc_2023_11_10_types_result_filesize_error_code_t; - -typedef struct { - bool is_err; - union { - wasi_filesystem_0_2_0_rc_2023_11_10_types_own_directory_entry_stream_t ok; - wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t err; - } val; -} wasi_filesystem_0_2_0_rc_2023_11_10_types_result_own_directory_entry_stream_error_code_t; - -typedef struct { - bool is_err; - union { - wasi_filesystem_0_2_0_rc_2023_11_10_types_descriptor_stat_t ok; - wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t err; - } val; -} wasi_filesystem_0_2_0_rc_2023_11_10_types_result_descriptor_stat_error_code_t; - -typedef struct { - bool is_err; - union { - wasi_filesystem_0_2_0_rc_2023_11_10_types_own_descriptor_t ok; - wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t err; - } val; -} wasi_filesystem_0_2_0_rc_2023_11_10_types_result_own_descriptor_error_code_t; - -typedef struct { - bool is_err; - union { - bindings_string_t ok; - wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t err; - } val; -} wasi_filesystem_0_2_0_rc_2023_11_10_types_result_string_error_code_t; - -typedef struct { - bool is_err; - union { - wasi_filesystem_0_2_0_rc_2023_11_10_types_metadata_hash_value_t ok; - wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t err; - } val; -} wasi_filesystem_0_2_0_rc_2023_11_10_types_result_metadata_hash_value_error_code_t; - -typedef struct { - bool is_some; - wasi_filesystem_0_2_0_rc_2023_11_10_types_directory_entry_t val; -} wasi_filesystem_0_2_0_rc_2023_11_10_types_option_directory_entry_t; - -typedef struct { - bool is_err; - union { - wasi_filesystem_0_2_0_rc_2023_11_10_types_option_directory_entry_t ok; - wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t err; - } val; -} wasi_filesystem_0_2_0_rc_2023_11_10_types_result_option_directory_entry_error_code_t; - -typedef wasi_io_0_2_0_rc_2023_11_10_error_borrow_error_t wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_error_t; - -typedef struct { - bool is_some; - wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t val; -} wasi_filesystem_0_2_0_rc_2023_11_10_types_option_error_code_t; - -typedef wasi_filesystem_0_2_0_rc_2023_11_10_types_own_descriptor_t wasi_filesystem_0_2_0_rc_2023_11_10_preopens_own_descriptor_t; - -typedef struct { - wasi_filesystem_0_2_0_rc_2023_11_10_preopens_own_descriptor_t f0; - bindings_string_t f1; -} wasi_filesystem_0_2_0_rc_2023_11_10_preopens_tuple2_own_descriptor_string_t; - -typedef struct { - wasi_filesystem_0_2_0_rc_2023_11_10_preopens_tuple2_own_descriptor_string_t *ptr; - size_t len; -} wasi_filesystem_0_2_0_rc_2023_11_10_preopens_list_tuple2_own_descriptor_string_t; - -typedef struct wasi_sockets_0_2_0_rc_2023_11_10_network_own_network_t { - int32_t __handle; -} wasi_sockets_0_2_0_rc_2023_11_10_network_own_network_t; - -typedef struct wasi_sockets_0_2_0_rc_2023_11_10_network_borrow_network_t { - int32_t __handle; -} wasi_sockets_0_2_0_rc_2023_11_10_network_borrow_network_t; - -// Error codes. -// -// In theory, every API can return any error code. -// In practice, API's typically only return the errors documented per API -// combined with a couple of errors that are always possible: -// - `unknown` -// - `access-denied` -// - `not-supported` -// - `out-of-memory` -// - `concurrency-conflict` -// -// See each individual API for what the POSIX equivalents are. They sometimes differ per API. -typedef uint8_t wasi_sockets_0_2_0_rc_2023_11_10_network_error_code_t; - -// Unknown error -#define WASI_SOCKETS_0_2_0_RC_2023_11_10_NETWORK_ERROR_CODE_UNKNOWN 0 -// Access denied. -// -// POSIX equivalent: EACCES, EPERM -#define WASI_SOCKETS_0_2_0_RC_2023_11_10_NETWORK_ERROR_CODE_ACCESS_DENIED 1 -// The operation is not supported. -// -// POSIX equivalent: EOPNOTSUPP -#define WASI_SOCKETS_0_2_0_RC_2023_11_10_NETWORK_ERROR_CODE_NOT_SUPPORTED 2 -// One of the arguments is invalid. -// -// POSIX equivalent: EINVAL -#define WASI_SOCKETS_0_2_0_RC_2023_11_10_NETWORK_ERROR_CODE_INVALID_ARGUMENT 3 -// Not enough memory to complete the operation. -// -// POSIX equivalent: ENOMEM, ENOBUFS, EAI_MEMORY -#define WASI_SOCKETS_0_2_0_RC_2023_11_10_NETWORK_ERROR_CODE_OUT_OF_MEMORY 4 -// The operation timed out before it could finish completely. -#define WASI_SOCKETS_0_2_0_RC_2023_11_10_NETWORK_ERROR_CODE_TIMEOUT 5 -// This operation is incompatible with another asynchronous operation that is already in progress. -// -// POSIX equivalent: EALREADY -#define WASI_SOCKETS_0_2_0_RC_2023_11_10_NETWORK_ERROR_CODE_CONCURRENCY_CONFLICT 6 -// Trying to finish an asynchronous operation that: -// - has not been started yet, or: -// - was already finished by a previous `finish-*` call. -// -// Note: this is scheduled to be removed when `future`s are natively supported. -#define WASI_SOCKETS_0_2_0_RC_2023_11_10_NETWORK_ERROR_CODE_NOT_IN_PROGRESS 7 -// The operation has been aborted because it could not be completed immediately. -// -// Note: this is scheduled to be removed when `future`s are natively supported. -#define WASI_SOCKETS_0_2_0_RC_2023_11_10_NETWORK_ERROR_CODE_WOULD_BLOCK 8 -// The operation is not valid in the socket's current state. -#define WASI_SOCKETS_0_2_0_RC_2023_11_10_NETWORK_ERROR_CODE_INVALID_STATE 9 -// A new socket resource could not be created because of a system limit. -#define WASI_SOCKETS_0_2_0_RC_2023_11_10_NETWORK_ERROR_CODE_NEW_SOCKET_LIMIT 10 -// A bind operation failed because the provided address is not an address that the `network` can bind to. -#define WASI_SOCKETS_0_2_0_RC_2023_11_10_NETWORK_ERROR_CODE_ADDRESS_NOT_BINDABLE 11 -// A bind operation failed because the provided address is already in use or because there are no ephemeral ports available. -#define WASI_SOCKETS_0_2_0_RC_2023_11_10_NETWORK_ERROR_CODE_ADDRESS_IN_USE 12 -// The remote address is not reachable -#define WASI_SOCKETS_0_2_0_RC_2023_11_10_NETWORK_ERROR_CODE_REMOTE_UNREACHABLE 13 -// The connection was forcefully rejected -#define WASI_SOCKETS_0_2_0_RC_2023_11_10_NETWORK_ERROR_CODE_CONNECTION_REFUSED 14 -// The connection was reset. -#define WASI_SOCKETS_0_2_0_RC_2023_11_10_NETWORK_ERROR_CODE_CONNECTION_RESET 15 -// A connection was aborted. -#define WASI_SOCKETS_0_2_0_RC_2023_11_10_NETWORK_ERROR_CODE_CONNECTION_ABORTED 16 -#define WASI_SOCKETS_0_2_0_RC_2023_11_10_NETWORK_ERROR_CODE_DATAGRAM_TOO_LARGE 17 -// Name does not exist or has no suitable associated IP addresses. -#define WASI_SOCKETS_0_2_0_RC_2023_11_10_NETWORK_ERROR_CODE_NAME_UNRESOLVABLE 18 -// A temporary failure in name resolution occurred. -#define WASI_SOCKETS_0_2_0_RC_2023_11_10_NETWORK_ERROR_CODE_TEMPORARY_RESOLVER_FAILURE 19 -// A permanent failure in name resolution occurred. -#define WASI_SOCKETS_0_2_0_RC_2023_11_10_NETWORK_ERROR_CODE_PERMANENT_RESOLVER_FAILURE 20 - -typedef uint8_t wasi_sockets_0_2_0_rc_2023_11_10_network_ip_address_family_t; - -// Similar to `AF_INET` in POSIX. -#define WASI_SOCKETS_0_2_0_RC_2023_11_10_NETWORK_IP_ADDRESS_FAMILY_IPV4 0 -// Similar to `AF_INET6` in POSIX. -#define WASI_SOCKETS_0_2_0_RC_2023_11_10_NETWORK_IP_ADDRESS_FAMILY_IPV6 1 - -typedef struct { - uint8_t f0; - uint8_t f1; - uint8_t f2; - uint8_t f3; -} wasi_sockets_0_2_0_rc_2023_11_10_network_ipv4_address_t; - -typedef struct { - uint16_t f0; - uint16_t f1; - uint16_t f2; - uint16_t f3; - uint16_t f4; - uint16_t f5; - uint16_t f6; - uint16_t f7; -} wasi_sockets_0_2_0_rc_2023_11_10_network_ipv6_address_t; - -typedef struct { - uint8_t tag; - union { - wasi_sockets_0_2_0_rc_2023_11_10_network_ipv4_address_t ipv4; - wasi_sockets_0_2_0_rc_2023_11_10_network_ipv6_address_t ipv6; - } val; -} wasi_sockets_0_2_0_rc_2023_11_10_network_ip_address_t; - -#define WASI_SOCKETS_0_2_0_RC_2023_11_10_NETWORK_IP_ADDRESS_IPV4 0 -#define WASI_SOCKETS_0_2_0_RC_2023_11_10_NETWORK_IP_ADDRESS_IPV6 1 - -typedef struct { - uint16_t port; - wasi_sockets_0_2_0_rc_2023_11_10_network_ipv4_address_t address; -} wasi_sockets_0_2_0_rc_2023_11_10_network_ipv4_socket_address_t; - -typedef struct { - uint16_t port; - uint32_t flow_info; - wasi_sockets_0_2_0_rc_2023_11_10_network_ipv6_address_t address; - uint32_t scope_id; -} wasi_sockets_0_2_0_rc_2023_11_10_network_ipv6_socket_address_t; - -typedef struct { - uint8_t tag; - union { - wasi_sockets_0_2_0_rc_2023_11_10_network_ipv4_socket_address_t ipv4; - wasi_sockets_0_2_0_rc_2023_11_10_network_ipv6_socket_address_t ipv6; - } val; -} wasi_sockets_0_2_0_rc_2023_11_10_network_ip_socket_address_t; - -#define WASI_SOCKETS_0_2_0_RC_2023_11_10_NETWORK_IP_SOCKET_ADDRESS_IPV4 0 -#define WASI_SOCKETS_0_2_0_RC_2023_11_10_NETWORK_IP_SOCKET_ADDRESS_IPV6 1 - -typedef wasi_sockets_0_2_0_rc_2023_11_10_network_own_network_t wasi_sockets_0_2_0_rc_2023_11_10_instance_network_own_network_t; - -typedef wasi_sockets_0_2_0_rc_2023_11_10_network_error_code_t wasi_sockets_0_2_0_rc_2023_11_10_udp_error_code_t; - -typedef wasi_sockets_0_2_0_rc_2023_11_10_network_ip_socket_address_t wasi_sockets_0_2_0_rc_2023_11_10_udp_ip_socket_address_t; - -typedef wasi_sockets_0_2_0_rc_2023_11_10_network_ip_address_family_t wasi_sockets_0_2_0_rc_2023_11_10_udp_ip_address_family_t; - -// A received datagram. -typedef struct { - // The payload. - // - // Theoretical max size: ~64 KiB. In practice, typically less than 1500 bytes. - bindings_list_u8_t data; - // The source address. - // - // This field is guaranteed to match the remote address the stream was initialized with, if any. - // - // Equivalent to the `src_addr` out parameter of `recvfrom`. - wasi_sockets_0_2_0_rc_2023_11_10_udp_ip_socket_address_t remote_address; -} wasi_sockets_0_2_0_rc_2023_11_10_udp_incoming_datagram_t; - -typedef struct { - bool is_some; - wasi_sockets_0_2_0_rc_2023_11_10_udp_ip_socket_address_t val; -} wasi_sockets_0_2_0_rc_2023_11_10_udp_option_ip_socket_address_t; - -// A datagram to be sent out. -typedef struct { - // The payload. - bindings_list_u8_t data; - // The destination address. - // - // The requirements on this field depend on how the stream was initialized: - // - with a remote address: this field must be None or match the stream's remote address exactly. - // - without a remote address: this field is required. - // - // If this value is None, the send operation is equivalent to `send` in POSIX. Otherwise it is equivalent to `sendto`. - wasi_sockets_0_2_0_rc_2023_11_10_udp_option_ip_socket_address_t remote_address; -} wasi_sockets_0_2_0_rc_2023_11_10_udp_outgoing_datagram_t; - -typedef struct wasi_sockets_0_2_0_rc_2023_11_10_udp_own_udp_socket_t { - int32_t __handle; -} wasi_sockets_0_2_0_rc_2023_11_10_udp_own_udp_socket_t; - -typedef struct wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_udp_socket_t { - int32_t __handle; -} wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_udp_socket_t; - -typedef struct wasi_sockets_0_2_0_rc_2023_11_10_udp_own_incoming_datagram_stream_t { - int32_t __handle; -} wasi_sockets_0_2_0_rc_2023_11_10_udp_own_incoming_datagram_stream_t; - -typedef struct wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_incoming_datagram_stream_t { - int32_t __handle; -} wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_incoming_datagram_stream_t; - -typedef struct wasi_sockets_0_2_0_rc_2023_11_10_udp_own_outgoing_datagram_stream_t { - int32_t __handle; -} wasi_sockets_0_2_0_rc_2023_11_10_udp_own_outgoing_datagram_stream_t; - -typedef struct wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_outgoing_datagram_stream_t { - int32_t __handle; -} wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_outgoing_datagram_stream_t; - -typedef wasi_sockets_0_2_0_rc_2023_11_10_network_borrow_network_t wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_network_t; - -typedef struct { - bool is_err; - union { - wasi_sockets_0_2_0_rc_2023_11_10_udp_error_code_t err; - } val; -} wasi_sockets_0_2_0_rc_2023_11_10_udp_result_void_error_code_t; - -typedef struct { - wasi_sockets_0_2_0_rc_2023_11_10_udp_own_incoming_datagram_stream_t f0; - wasi_sockets_0_2_0_rc_2023_11_10_udp_own_outgoing_datagram_stream_t f1; -} wasi_sockets_0_2_0_rc_2023_11_10_udp_tuple2_own_incoming_datagram_stream_own_outgoing_datagram_stream_t; - -typedef struct { - bool is_err; - union { - wasi_sockets_0_2_0_rc_2023_11_10_udp_tuple2_own_incoming_datagram_stream_own_outgoing_datagram_stream_t ok; - wasi_sockets_0_2_0_rc_2023_11_10_udp_error_code_t err; - } val; -} wasi_sockets_0_2_0_rc_2023_11_10_udp_result_tuple2_own_incoming_datagram_stream_own_outgoing_datagram_stream_error_code_t; - -typedef struct { - bool is_err; - union { - wasi_sockets_0_2_0_rc_2023_11_10_udp_ip_socket_address_t ok; - wasi_sockets_0_2_0_rc_2023_11_10_udp_error_code_t err; - } val; -} wasi_sockets_0_2_0_rc_2023_11_10_udp_result_ip_socket_address_error_code_t; - -typedef struct { - bool is_err; - union { - bool ok; - wasi_sockets_0_2_0_rc_2023_11_10_udp_error_code_t err; - } val; -} wasi_sockets_0_2_0_rc_2023_11_10_udp_result_bool_error_code_t; - -typedef struct { - bool is_err; - union { - uint8_t ok; - wasi_sockets_0_2_0_rc_2023_11_10_udp_error_code_t err; - } val; -} wasi_sockets_0_2_0_rc_2023_11_10_udp_result_u8_error_code_t; - -typedef struct { - bool is_err; - union { - uint64_t ok; - wasi_sockets_0_2_0_rc_2023_11_10_udp_error_code_t err; - } val; -} wasi_sockets_0_2_0_rc_2023_11_10_udp_result_u64_error_code_t; - -typedef wasi_io_0_2_0_rc_2023_11_10_poll_own_pollable_t wasi_sockets_0_2_0_rc_2023_11_10_udp_own_pollable_t; - -typedef struct { - wasi_sockets_0_2_0_rc_2023_11_10_udp_incoming_datagram_t *ptr; - size_t len; -} wasi_sockets_0_2_0_rc_2023_11_10_udp_list_incoming_datagram_t; - -typedef struct { - bool is_err; - union { - wasi_sockets_0_2_0_rc_2023_11_10_udp_list_incoming_datagram_t ok; - wasi_sockets_0_2_0_rc_2023_11_10_udp_error_code_t err; - } val; -} wasi_sockets_0_2_0_rc_2023_11_10_udp_result_list_incoming_datagram_error_code_t; - -typedef struct { - wasi_sockets_0_2_0_rc_2023_11_10_udp_outgoing_datagram_t *ptr; - size_t len; -} wasi_sockets_0_2_0_rc_2023_11_10_udp_list_outgoing_datagram_t; - -typedef wasi_sockets_0_2_0_rc_2023_11_10_network_error_code_t wasi_sockets_0_2_0_rc_2023_11_10_udp_create_socket_error_code_t; - -typedef wasi_sockets_0_2_0_rc_2023_11_10_network_ip_address_family_t wasi_sockets_0_2_0_rc_2023_11_10_udp_create_socket_ip_address_family_t; - -typedef wasi_sockets_0_2_0_rc_2023_11_10_udp_own_udp_socket_t wasi_sockets_0_2_0_rc_2023_11_10_udp_create_socket_own_udp_socket_t; - -typedef struct { - bool is_err; - union { - wasi_sockets_0_2_0_rc_2023_11_10_udp_create_socket_own_udp_socket_t ok; - wasi_sockets_0_2_0_rc_2023_11_10_udp_create_socket_error_code_t err; - } val; -} wasi_sockets_0_2_0_rc_2023_11_10_udp_create_socket_result_own_udp_socket_error_code_t; - -typedef wasi_clocks_0_2_0_rc_2023_11_10_monotonic_clock_duration_t wasi_sockets_0_2_0_rc_2023_11_10_tcp_duration_t; - -typedef wasi_sockets_0_2_0_rc_2023_11_10_network_error_code_t wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t; - -typedef wasi_sockets_0_2_0_rc_2023_11_10_network_ip_socket_address_t wasi_sockets_0_2_0_rc_2023_11_10_tcp_ip_socket_address_t; - -typedef wasi_sockets_0_2_0_rc_2023_11_10_network_ip_address_family_t wasi_sockets_0_2_0_rc_2023_11_10_tcp_ip_address_family_t; - -typedef uint8_t wasi_sockets_0_2_0_rc_2023_11_10_tcp_shutdown_type_t; - -// Similar to `SHUT_RD` in POSIX. -#define WASI_SOCKETS_0_2_0_RC_2023_11_10_TCP_SHUTDOWN_TYPE_RECEIVE 0 -// Similar to `SHUT_WR` in POSIX. -#define WASI_SOCKETS_0_2_0_RC_2023_11_10_TCP_SHUTDOWN_TYPE_SEND 1 -// Similar to `SHUT_RDWR` in POSIX. -#define WASI_SOCKETS_0_2_0_RC_2023_11_10_TCP_SHUTDOWN_TYPE_BOTH 2 - -typedef struct wasi_sockets_0_2_0_rc_2023_11_10_tcp_own_tcp_socket_t { - int32_t __handle; -} wasi_sockets_0_2_0_rc_2023_11_10_tcp_own_tcp_socket_t; - -typedef struct wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t { - int32_t __handle; -} wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t; - -typedef wasi_sockets_0_2_0_rc_2023_11_10_network_borrow_network_t wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_network_t; - -typedef struct { - bool is_err; - union { - wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t err; - } val; -} wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_void_error_code_t; - -typedef wasi_io_0_2_0_rc_2023_11_10_streams_own_input_stream_t wasi_sockets_0_2_0_rc_2023_11_10_tcp_own_input_stream_t; - -typedef wasi_io_0_2_0_rc_2023_11_10_streams_own_output_stream_t wasi_sockets_0_2_0_rc_2023_11_10_tcp_own_output_stream_t; - -typedef struct { - wasi_sockets_0_2_0_rc_2023_11_10_tcp_own_input_stream_t f0; - wasi_sockets_0_2_0_rc_2023_11_10_tcp_own_output_stream_t f1; -} wasi_sockets_0_2_0_rc_2023_11_10_tcp_tuple2_own_input_stream_own_output_stream_t; - -typedef struct { - bool is_err; - union { - wasi_sockets_0_2_0_rc_2023_11_10_tcp_tuple2_own_input_stream_own_output_stream_t ok; - wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t err; - } val; -} wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_tuple2_own_input_stream_own_output_stream_error_code_t; - -typedef struct { - wasi_sockets_0_2_0_rc_2023_11_10_tcp_own_tcp_socket_t f0; - wasi_sockets_0_2_0_rc_2023_11_10_tcp_own_input_stream_t f1; - wasi_sockets_0_2_0_rc_2023_11_10_tcp_own_output_stream_t f2; -} wasi_sockets_0_2_0_rc_2023_11_10_tcp_tuple3_own_tcp_socket_own_input_stream_own_output_stream_t; - -typedef struct { - bool is_err; - union { - wasi_sockets_0_2_0_rc_2023_11_10_tcp_tuple3_own_tcp_socket_own_input_stream_own_output_stream_t ok; - wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t err; - } val; -} wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_tuple3_own_tcp_socket_own_input_stream_own_output_stream_error_code_t; - -typedef struct { - bool is_err; - union { - wasi_sockets_0_2_0_rc_2023_11_10_tcp_ip_socket_address_t ok; - wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t err; - } val; -} wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_ip_socket_address_error_code_t; - -typedef struct { - bool is_err; - union { - bool ok; - wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t err; - } val; -} wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_bool_error_code_t; - -typedef struct { - bool is_err; - union { - wasi_sockets_0_2_0_rc_2023_11_10_tcp_duration_t ok; - wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t err; - } val; -} wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_duration_error_code_t; - -typedef struct { - bool is_err; - union { - uint32_t ok; - wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t err; - } val; -} wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_u32_error_code_t; - -typedef struct { - bool is_err; - union { - uint8_t ok; - wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t err; - } val; -} wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_u8_error_code_t; - -typedef struct { - bool is_err; - union { - uint64_t ok; - wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t err; - } val; -} wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_u64_error_code_t; - -typedef wasi_io_0_2_0_rc_2023_11_10_poll_own_pollable_t wasi_sockets_0_2_0_rc_2023_11_10_tcp_own_pollable_t; - -typedef wasi_sockets_0_2_0_rc_2023_11_10_network_error_code_t wasi_sockets_0_2_0_rc_2023_11_10_tcp_create_socket_error_code_t; - -typedef wasi_sockets_0_2_0_rc_2023_11_10_network_ip_address_family_t wasi_sockets_0_2_0_rc_2023_11_10_tcp_create_socket_ip_address_family_t; - -typedef wasi_sockets_0_2_0_rc_2023_11_10_tcp_own_tcp_socket_t wasi_sockets_0_2_0_rc_2023_11_10_tcp_create_socket_own_tcp_socket_t; - -typedef struct { - bool is_err; - union { - wasi_sockets_0_2_0_rc_2023_11_10_tcp_create_socket_own_tcp_socket_t ok; - wasi_sockets_0_2_0_rc_2023_11_10_tcp_create_socket_error_code_t err; - } val; -} wasi_sockets_0_2_0_rc_2023_11_10_tcp_create_socket_result_own_tcp_socket_error_code_t; - -typedef wasi_sockets_0_2_0_rc_2023_11_10_network_error_code_t wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_error_code_t; - -typedef wasi_sockets_0_2_0_rc_2023_11_10_network_ip_address_t wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_ip_address_t; - -typedef struct wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_own_resolve_address_stream_t { - int32_t __handle; -} wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_own_resolve_address_stream_t; - -typedef struct wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_borrow_resolve_address_stream_t { - int32_t __handle; -} wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_borrow_resolve_address_stream_t; - -typedef wasi_sockets_0_2_0_rc_2023_11_10_network_borrow_network_t wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_borrow_network_t; - -typedef struct { - bool is_err; - union { - wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_own_resolve_address_stream_t ok; - wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_error_code_t err; - } val; -} wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_result_own_resolve_address_stream_error_code_t; - -typedef struct { - bool is_some; - wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_ip_address_t val; -} wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_option_ip_address_t; - -typedef struct { - bool is_err; - union { - wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_option_ip_address_t ok; - wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_error_code_t err; - } val; -} wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_result_option_ip_address_error_code_t; - -typedef wasi_io_0_2_0_rc_2023_11_10_poll_own_pollable_t wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_own_pollable_t; - -typedef struct { - uint64_t f0; - uint64_t f1; -} bindings_tuple2_u64_u64_t; - -typedef wasi_clocks_0_2_0_rc_2023_11_10_monotonic_clock_duration_t wasi_http_0_2_0_rc_2023_12_05_types_duration_t; - -// This type corresponds to HTTP standard Methods. -typedef struct { - uint8_t tag; - union { - bindings_string_t other; - } val; -} wasi_http_0_2_0_rc_2023_12_05_types_method_t; - -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_METHOD_GET 0 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_METHOD_HEAD 1 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_METHOD_POST 2 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_METHOD_PUT 3 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_METHOD_DELETE 4 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_METHOD_CONNECT 5 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_METHOD_OPTIONS 6 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_METHOD_TRACE 7 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_METHOD_PATCH 8 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_METHOD_OTHER 9 - -// This type corresponds to HTTP standard Related Schemes. -typedef struct { - uint8_t tag; - union { - bindings_string_t other; - } val; -} wasi_http_0_2_0_rc_2023_12_05_types_scheme_t; - -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_SCHEME_HTTP 0 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_SCHEME_HTTPS 1 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_SCHEME_OTHER 2 - -typedef struct { - bool is_some; - uint16_t val; -} bindings_option_u16_t; - -// Defines the case payload type for `DNS-error` above: -typedef struct { - bindings_option_string_t rcode; - bindings_option_u16_t info_code; -} wasi_http_0_2_0_rc_2023_12_05_types_dns_error_payload_t; - -typedef struct { - bool is_some; - uint8_t val; -} bindings_option_u8_t; - -// Defines the case payload type for `TLS-alert-received` above: -typedef struct { - bindings_option_u8_t alert_id; - bindings_option_string_t alert_message; -} wasi_http_0_2_0_rc_2023_12_05_types_tls_alert_received_payload_t; - -typedef struct { - bool is_some; - uint32_t val; -} bindings_option_u32_t; - -// Defines the case payload type for `HTTP-response-{header,trailer}-size` above: -typedef struct { - bindings_option_string_t field_name; - bindings_option_u32_t field_size; -} wasi_http_0_2_0_rc_2023_12_05_types_field_size_payload_t; - -typedef struct { - bool is_some; - uint64_t val; -} bindings_option_u64_t; - -typedef struct { - bool is_some; - wasi_http_0_2_0_rc_2023_12_05_types_field_size_payload_t val; -} wasi_http_0_2_0_rc_2023_12_05_types_option_field_size_payload_t; - -// These cases are inspired by the IANA HTTP Proxy Error Types: -// https://www.iana.org/assignments/http-proxy-status/http-proxy-status.xhtml#table-http-proxy-error-types -typedef struct { - uint8_t tag; - union { - wasi_http_0_2_0_rc_2023_12_05_types_dns_error_payload_t dns_error; - wasi_http_0_2_0_rc_2023_12_05_types_tls_alert_received_payload_t tls_alert_received; - bindings_option_u64_t http_request_body_size; - bindings_option_u32_t http_request_header_section_size; - wasi_http_0_2_0_rc_2023_12_05_types_option_field_size_payload_t http_request_header_size; - bindings_option_u32_t http_request_trailer_section_size; - wasi_http_0_2_0_rc_2023_12_05_types_field_size_payload_t http_request_trailer_size; - bindings_option_u32_t http_response_header_section_size; - wasi_http_0_2_0_rc_2023_12_05_types_field_size_payload_t http_response_header_size; - bindings_option_u64_t http_response_body_size; - bindings_option_u32_t http_response_trailer_section_size; - wasi_http_0_2_0_rc_2023_12_05_types_field_size_payload_t http_response_trailer_size; - bindings_option_string_t http_response_transfer_coding; - bindings_option_string_t http_response_content_coding; - bindings_option_string_t internal_error; - } val; -} wasi_http_0_2_0_rc_2023_12_05_types_error_code_t; - -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_ERROR_CODE_DNS_TIMEOUT 0 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_ERROR_CODE_DNS_ERROR 1 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_ERROR_CODE_DESTINATION_NOT_FOUND 2 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_ERROR_CODE_DESTINATION_UNAVAILABLE 3 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_ERROR_CODE_DESTINATION_IP_PROHIBITED 4 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_ERROR_CODE_DESTINATION_IP_UNROUTABLE 5 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_ERROR_CODE_CONNECTION_REFUSED 6 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_ERROR_CODE_CONNECTION_TERMINATED 7 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_ERROR_CODE_CONNECTION_TIMEOUT 8 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_ERROR_CODE_CONNECTION_READ_TIMEOUT 9 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_ERROR_CODE_CONNECTION_WRITE_TIMEOUT 10 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_ERROR_CODE_CONNECTION_LIMIT_REACHED 11 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_ERROR_CODE_TLS_PROTOCOL_ERROR 12 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_ERROR_CODE_TLS_CERTIFICATE_ERROR 13 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_ERROR_CODE_TLS_ALERT_RECEIVED 14 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_ERROR_CODE_HTTP_REQUEST_DENIED 15 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_ERROR_CODE_HTTP_REQUEST_LENGTH_REQUIRED 16 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_ERROR_CODE_HTTP_REQUEST_BODY_SIZE 17 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_ERROR_CODE_HTTP_REQUEST_METHOD_INVALID 18 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_ERROR_CODE_HTTP_REQUEST_URI_INVALID 19 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_ERROR_CODE_HTTP_REQUEST_URI_TOO_LONG 20 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_ERROR_CODE_HTTP_REQUEST_HEADER_SECTION_SIZE 21 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_ERROR_CODE_HTTP_REQUEST_HEADER_SIZE 22 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_ERROR_CODE_HTTP_REQUEST_TRAILER_SECTION_SIZE 23 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_ERROR_CODE_HTTP_REQUEST_TRAILER_SIZE 24 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_ERROR_CODE_HTTP_RESPONSE_INCOMPLETE 25 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_ERROR_CODE_HTTP_RESPONSE_HEADER_SECTION_SIZE 26 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_ERROR_CODE_HTTP_RESPONSE_HEADER_SIZE 27 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_ERROR_CODE_HTTP_RESPONSE_BODY_SIZE 28 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_ERROR_CODE_HTTP_RESPONSE_TRAILER_SECTION_SIZE 29 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_ERROR_CODE_HTTP_RESPONSE_TRAILER_SIZE 30 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_ERROR_CODE_HTTP_RESPONSE_TRANSFER_CODING 31 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_ERROR_CODE_HTTP_RESPONSE_CONTENT_CODING 32 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_ERROR_CODE_HTTP_RESPONSE_TIMEOUT 33 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_ERROR_CODE_HTTP_UPGRADE_FAILED 34 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_ERROR_CODE_HTTP_PROTOCOL_ERROR 35 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_ERROR_CODE_LOOP_DETECTED 36 -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_ERROR_CODE_CONFIGURATION_ERROR 37 -// This is a catch-all error for anything that doesn't fit cleanly into a -// more specific case. It also includes an optional string for an -// unstructured description of the error. Users should not depend on the -// string for diagnosing errors, as it's not required to be consistent -// between implementations. -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_ERROR_CODE_INTERNAL_ERROR 38 - -// This type enumerates the different kinds of errors that may occur when -// setting or appending to a `fields` resource. -typedef struct { - uint8_t tag; -} wasi_http_0_2_0_rc_2023_12_05_types_header_error_t; - -// This error indicates that a `field-key` or `field-value` was -// syntactically invalid when used with an operation that sets headers in a -// `fields`. -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_HEADER_ERROR_INVALID_SYNTAX 0 -// This error indicates that a forbidden `field-key` was used when trying -// to set a header in a `fields`. -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_HEADER_ERROR_FORBIDDEN 1 -// This error indicates that the operation on the `fields` was not -// permitted because the fields are immutable. -#define WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_HEADER_ERROR_IMMUTABLE 2 - -// Field keys are always strings. -typedef bindings_string_t wasi_http_0_2_0_rc_2023_12_05_types_field_key_t; - -// Field values should always be ASCII strings. However, in -// reality, HTTP implementations often have to interpret malformed values, -// so they are provided as a list of bytes. -typedef struct { - uint8_t *ptr; - size_t len; -} wasi_http_0_2_0_rc_2023_12_05_types_field_value_t; - -typedef struct wasi_http_0_2_0_rc_2023_12_05_types_own_fields_t { - int32_t __handle; -} wasi_http_0_2_0_rc_2023_12_05_types_own_fields_t; - -typedef struct wasi_http_0_2_0_rc_2023_12_05_types_borrow_fields_t { - int32_t __handle; -} wasi_http_0_2_0_rc_2023_12_05_types_borrow_fields_t; - -typedef struct wasi_http_0_2_0_rc_2023_12_05_types_own_incoming_request_t { - int32_t __handle; -} wasi_http_0_2_0_rc_2023_12_05_types_own_incoming_request_t; - -typedef struct wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_request_t { - int32_t __handle; -} wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_request_t; - -typedef struct wasi_http_0_2_0_rc_2023_12_05_types_own_outgoing_request_t { - int32_t __handle; -} wasi_http_0_2_0_rc_2023_12_05_types_own_outgoing_request_t; - -typedef struct wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_request_t { - int32_t __handle; -} wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_request_t; - -typedef struct wasi_http_0_2_0_rc_2023_12_05_types_own_request_options_t { - int32_t __handle; -} wasi_http_0_2_0_rc_2023_12_05_types_own_request_options_t; - -typedef struct wasi_http_0_2_0_rc_2023_12_05_types_borrow_request_options_t { - int32_t __handle; -} wasi_http_0_2_0_rc_2023_12_05_types_borrow_request_options_t; - -typedef struct wasi_http_0_2_0_rc_2023_12_05_types_own_response_outparam_t { - int32_t __handle; -} wasi_http_0_2_0_rc_2023_12_05_types_own_response_outparam_t; - -typedef struct wasi_http_0_2_0_rc_2023_12_05_types_borrow_response_outparam_t { - int32_t __handle; -} wasi_http_0_2_0_rc_2023_12_05_types_borrow_response_outparam_t; - -// This type corresponds to the HTTP standard Status Code. -typedef uint16_t wasi_http_0_2_0_rc_2023_12_05_types_status_code_t; - -typedef struct wasi_http_0_2_0_rc_2023_12_05_types_own_incoming_response_t { - int32_t __handle; -} wasi_http_0_2_0_rc_2023_12_05_types_own_incoming_response_t; - -typedef struct wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_response_t { - int32_t __handle; -} wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_response_t; - -typedef struct wasi_http_0_2_0_rc_2023_12_05_types_own_incoming_body_t { - int32_t __handle; -} wasi_http_0_2_0_rc_2023_12_05_types_own_incoming_body_t; - -typedef struct wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_body_t { - int32_t __handle; -} wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_body_t; - -typedef struct wasi_http_0_2_0_rc_2023_12_05_types_own_future_trailers_t { - int32_t __handle; -} wasi_http_0_2_0_rc_2023_12_05_types_own_future_trailers_t; - -typedef struct wasi_http_0_2_0_rc_2023_12_05_types_borrow_future_trailers_t { - int32_t __handle; -} wasi_http_0_2_0_rc_2023_12_05_types_borrow_future_trailers_t; - -typedef struct wasi_http_0_2_0_rc_2023_12_05_types_own_outgoing_response_t { - int32_t __handle; -} wasi_http_0_2_0_rc_2023_12_05_types_own_outgoing_response_t; - -typedef struct wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_response_t { - int32_t __handle; -} wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_response_t; - -typedef struct wasi_http_0_2_0_rc_2023_12_05_types_own_outgoing_body_t { - int32_t __handle; -} wasi_http_0_2_0_rc_2023_12_05_types_own_outgoing_body_t; - -typedef struct wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_body_t { - int32_t __handle; -} wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_body_t; - -typedef struct wasi_http_0_2_0_rc_2023_12_05_types_own_future_incoming_response_t { - int32_t __handle; -} wasi_http_0_2_0_rc_2023_12_05_types_own_future_incoming_response_t; - -typedef struct wasi_http_0_2_0_rc_2023_12_05_types_borrow_future_incoming_response_t { - int32_t __handle; -} wasi_http_0_2_0_rc_2023_12_05_types_borrow_future_incoming_response_t; - -typedef wasi_io_0_2_0_rc_2023_11_10_error_borrow_error_t wasi_http_0_2_0_rc_2023_12_05_types_borrow_io_error_t; - -typedef struct { - bool is_some; - wasi_http_0_2_0_rc_2023_12_05_types_error_code_t val; -} wasi_http_0_2_0_rc_2023_12_05_types_option_error_code_t; - -typedef struct { - wasi_http_0_2_0_rc_2023_12_05_types_field_key_t f0; - wasi_http_0_2_0_rc_2023_12_05_types_field_value_t f1; -} bindings_tuple2_field_key_field_value_t; - -typedef struct { - bindings_tuple2_field_key_field_value_t *ptr; - size_t len; -} bindings_list_tuple2_field_key_field_value_t; - -typedef struct { - bool is_err; - union { - wasi_http_0_2_0_rc_2023_12_05_types_own_fields_t ok; - wasi_http_0_2_0_rc_2023_12_05_types_header_error_t err; - } val; -} wasi_http_0_2_0_rc_2023_12_05_types_result_own_fields_header_error_t; - -typedef struct { - wasi_http_0_2_0_rc_2023_12_05_types_field_value_t *ptr; - size_t len; -} bindings_list_field_value_t; - -typedef struct { - bool is_err; - union { - wasi_http_0_2_0_rc_2023_12_05_types_header_error_t err; - } val; -} wasi_http_0_2_0_rc_2023_12_05_types_result_void_header_error_t; - -typedef struct { - bool is_some; - wasi_http_0_2_0_rc_2023_12_05_types_scheme_t val; -} wasi_http_0_2_0_rc_2023_12_05_types_option_scheme_t; - -typedef wasi_http_0_2_0_rc_2023_12_05_types_own_fields_t wasi_http_0_2_0_rc_2023_12_05_types_own_headers_t; - -typedef struct { - bool is_err; - union { - wasi_http_0_2_0_rc_2023_12_05_types_own_incoming_body_t ok; - } val; -} wasi_http_0_2_0_rc_2023_12_05_types_result_own_incoming_body_void_t; - -typedef struct { - bool is_err; - union { - wasi_http_0_2_0_rc_2023_12_05_types_own_outgoing_body_t ok; - } val; -} wasi_http_0_2_0_rc_2023_12_05_types_result_own_outgoing_body_void_t; - -typedef struct { - bool is_err; -} wasi_http_0_2_0_rc_2023_12_05_types_result_void_void_t; - -typedef struct { - bool is_some; - wasi_http_0_2_0_rc_2023_12_05_types_duration_t val; -} bindings_option_duration_t; - -typedef struct { - bool is_err; - union { - wasi_http_0_2_0_rc_2023_12_05_types_own_outgoing_response_t ok; - wasi_http_0_2_0_rc_2023_12_05_types_error_code_t err; - } val; -} wasi_http_0_2_0_rc_2023_12_05_types_result_own_outgoing_response_error_code_t; - -typedef wasi_io_0_2_0_rc_2023_11_10_streams_own_input_stream_t wasi_http_0_2_0_rc_2023_12_05_types_own_input_stream_t; - -typedef struct { - bool is_err; - union { - wasi_http_0_2_0_rc_2023_12_05_types_own_input_stream_t ok; - } val; -} wasi_http_0_2_0_rc_2023_12_05_types_result_own_input_stream_void_t; - -typedef wasi_io_0_2_0_rc_2023_11_10_poll_own_pollable_t wasi_http_0_2_0_rc_2023_12_05_types_own_pollable_t; - -typedef wasi_http_0_2_0_rc_2023_12_05_types_own_fields_t wasi_http_0_2_0_rc_2023_12_05_types_own_trailers_t; - -typedef struct { - bool is_some; - wasi_http_0_2_0_rc_2023_12_05_types_own_trailers_t val; -} wasi_http_0_2_0_rc_2023_12_05_types_option_own_trailers_t; - -typedef struct { - bool is_err; - union { - wasi_http_0_2_0_rc_2023_12_05_types_option_own_trailers_t ok; - wasi_http_0_2_0_rc_2023_12_05_types_error_code_t err; - } val; -} wasi_http_0_2_0_rc_2023_12_05_types_result_option_own_trailers_error_code_t; - -typedef struct { - bool is_err; - union { - wasi_http_0_2_0_rc_2023_12_05_types_result_option_own_trailers_error_code_t ok; - } val; -} wasi_http_0_2_0_rc_2023_12_05_types_result_result_option_own_trailers_error_code_void_t; - -typedef struct { - bool is_some; - wasi_http_0_2_0_rc_2023_12_05_types_result_result_option_own_trailers_error_code_void_t val; -} wasi_http_0_2_0_rc_2023_12_05_types_option_result_result_option_own_trailers_error_code_void_t; - -typedef wasi_io_0_2_0_rc_2023_11_10_streams_own_output_stream_t wasi_http_0_2_0_rc_2023_12_05_types_own_output_stream_t; - -typedef struct { - bool is_err; - union { - wasi_http_0_2_0_rc_2023_12_05_types_own_output_stream_t ok; - } val; -} wasi_http_0_2_0_rc_2023_12_05_types_result_own_output_stream_void_t; - -typedef struct { - bool is_err; - union { - wasi_http_0_2_0_rc_2023_12_05_types_error_code_t err; - } val; -} wasi_http_0_2_0_rc_2023_12_05_types_result_void_error_code_t; - -typedef struct { - bool is_err; - union { - wasi_http_0_2_0_rc_2023_12_05_types_own_incoming_response_t ok; - wasi_http_0_2_0_rc_2023_12_05_types_error_code_t err; - } val; -} wasi_http_0_2_0_rc_2023_12_05_types_result_own_incoming_response_error_code_t; - -typedef struct { - bool is_err; - union { - wasi_http_0_2_0_rc_2023_12_05_types_result_own_incoming_response_error_code_t ok; - } val; -} wasi_http_0_2_0_rc_2023_12_05_types_result_result_own_incoming_response_error_code_void_t; - -typedef struct { - bool is_some; - wasi_http_0_2_0_rc_2023_12_05_types_result_result_own_incoming_response_error_code_void_t val; -} wasi_http_0_2_0_rc_2023_12_05_types_option_result_result_own_incoming_response_error_code_void_t; - -typedef wasi_http_0_2_0_rc_2023_12_05_types_error_code_t wasi_http_0_2_0_rc_2023_12_05_outgoing_handler_error_code_t; - -typedef wasi_http_0_2_0_rc_2023_12_05_types_own_outgoing_request_t wasi_http_0_2_0_rc_2023_12_05_outgoing_handler_own_outgoing_request_t; - -typedef wasi_http_0_2_0_rc_2023_12_05_types_own_request_options_t wasi_http_0_2_0_rc_2023_12_05_outgoing_handler_own_request_options_t; - -typedef struct { - bool is_some; - wasi_http_0_2_0_rc_2023_12_05_outgoing_handler_own_request_options_t val; -} wasi_http_0_2_0_rc_2023_12_05_outgoing_handler_option_own_request_options_t; - -typedef wasi_http_0_2_0_rc_2023_12_05_types_own_future_incoming_response_t wasi_http_0_2_0_rc_2023_12_05_outgoing_handler_own_future_incoming_response_t; - -typedef struct { - bool is_err; - union { - wasi_http_0_2_0_rc_2023_12_05_outgoing_handler_own_future_incoming_response_t ok; - wasi_http_0_2_0_rc_2023_12_05_outgoing_handler_error_code_t err; - } val; -} wasi_http_0_2_0_rc_2023_12_05_outgoing_handler_result_own_future_incoming_response_error_code_t; - -typedef struct { - bool is_err; -} exports_wasi_cli_0_2_0_rc_2023_12_05_run_result_void_void_t; - -typedef wasi_http_0_2_0_rc_2023_12_05_types_own_incoming_request_t exports_wasi_http_0_2_0_rc_2023_12_05_incoming_handler_own_incoming_request_t; - -typedef wasi_http_0_2_0_rc_2023_12_05_types_own_response_outparam_t exports_wasi_http_0_2_0_rc_2023_12_05_incoming_handler_own_response_outparam_t; - -// Imported Functions from `wasi:cli/environment@0.2.0-rc-2023-12-05` -// Get the POSIX-style environment variables. -// -// Each environment variable is provided as a pair of string variable names -// and string value. -// -// Morally, these are a value import, but until value imports are available -// in the component model, this import function should return the same -// values each time it is called. -extern void wasi_cli_0_2_0_rc_2023_12_05_environment_get_environment(bindings_list_tuple2_string_string_t *ret); -// Get the POSIX-style arguments to the program. -extern void wasi_cli_0_2_0_rc_2023_12_05_environment_get_arguments(bindings_list_string_t *ret); -// Return a path that programs should use as their initial current working -// directory, interpreting `.` as shorthand for this. -extern bool wasi_cli_0_2_0_rc_2023_12_05_environment_initial_cwd(bindings_string_t *ret); - -// Imported Functions from `wasi:cli/exit@0.2.0-rc-2023-12-05` -// Exit the current instance and any linked instances. -extern void wasi_cli_0_2_0_rc_2023_12_05_exit_exit(wasi_cli_0_2_0_rc_2023_12_05_exit_result_void_void_t *status); - -// Imported Functions from `wasi:io/error@0.2.0-rc-2023-11-10` -// Returns a string that is suitable to assist humans in debugging -// this error. -// -// WARNING: The returned string should not be consumed mechanically! -// It may change across platforms, hosts, or other implementation -// details. Parsing this string is a major platform-compatibility -// hazard. -extern void wasi_io_0_2_0_rc_2023_11_10_error_method_error_to_debug_string(wasi_io_0_2_0_rc_2023_11_10_error_borrow_error_t self, bindings_string_t *ret); - -// Imported Functions from `wasi:io/poll@0.2.0-rc-2023-11-10` -// Return the readiness of a pollable. This function never blocks. -// -// Returns `true` when the pollable is ready, and `false` otherwise. -extern bool wasi_io_0_2_0_rc_2023_11_10_poll_method_pollable_ready(wasi_io_0_2_0_rc_2023_11_10_poll_borrow_pollable_t self); -// `block` returns immediately if the pollable is ready, and otherwise -// blocks until ready. -// -// This function is equivalent to calling `poll.poll` on a list -// containing only this pollable. -extern void wasi_io_0_2_0_rc_2023_11_10_poll_method_pollable_block(wasi_io_0_2_0_rc_2023_11_10_poll_borrow_pollable_t self); -// Poll for completion on a set of pollables. -// -// This function takes a list of pollables, which identify I/O sources of -// interest, and waits until one or more of the events is ready for I/O. -// -// The result `list` contains one or more indices of handles in the -// argument list that is ready for I/O. -// -// If the list contains more elements than can be indexed with a `u32` -// value, this function traps. -// -// A timeout can be implemented by adding a pollable from the -// wasi-clocks API to the list. -// -// This function does not return a `result`; polling in itself does not -// do any I/O so it doesn't fail. If any of the I/O sources identified by -// the pollables has an error, it is indicated by marking the source as -// being reaedy for I/O. -extern void wasi_io_0_2_0_rc_2023_11_10_poll_poll(wasi_io_0_2_0_rc_2023_11_10_poll_list_borrow_pollable_t *in, bindings_list_u32_t *ret); - -// Imported Functions from `wasi:io/streams@0.2.0-rc-2023-11-10` -// Perform a non-blocking read from the stream. -// -// This function returns a list of bytes containing the read data, -// when successful. The returned list will contain up to `len` bytes; -// it may return fewer than requested, but not more. The list is -// empty when no bytes are available for reading at this time. The -// pollable given by `subscribe` will be ready when more bytes are -// available. -// -// This function fails with a `stream-error` when the operation -// encounters an error, giving `last-operation-failed`, or when the -// stream is closed, giving `closed`. -// -// When the caller gives a `len` of 0, it represents a request to -// read 0 bytes. If the stream is still open, this call should -// succeed and return an empty list, or otherwise fail with `closed`. -// -// The `len` parameter is a `u64`, which could represent a list of u8 which -// is not possible to allocate in wasm32, or not desirable to allocate as -// as a return value by the callee. The callee may return a list of bytes -// less than `len` in size while more bytes are available for reading. -extern bool wasi_io_0_2_0_rc_2023_11_10_streams_method_input_stream_read(wasi_io_0_2_0_rc_2023_11_10_streams_borrow_input_stream_t self, uint64_t len, bindings_list_u8_t *ret, wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t *err); -// Read bytes from a stream, after blocking until at least one byte can -// be read. Except for blocking, behavior is identical to `read`. -extern bool wasi_io_0_2_0_rc_2023_11_10_streams_method_input_stream_blocking_read(wasi_io_0_2_0_rc_2023_11_10_streams_borrow_input_stream_t self, uint64_t len, bindings_list_u8_t *ret, wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t *err); -// Skip bytes from a stream. Returns number of bytes skipped. -// -// Behaves identical to `read`, except instead of returning a list -// of bytes, returns the number of bytes consumed from the stream. -extern bool wasi_io_0_2_0_rc_2023_11_10_streams_method_input_stream_skip(wasi_io_0_2_0_rc_2023_11_10_streams_borrow_input_stream_t self, uint64_t len, uint64_t *ret, wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t *err); -// Skip bytes from a stream, after blocking until at least one byte -// can be skipped. Except for blocking behavior, identical to `skip`. -extern bool wasi_io_0_2_0_rc_2023_11_10_streams_method_input_stream_blocking_skip(wasi_io_0_2_0_rc_2023_11_10_streams_borrow_input_stream_t self, uint64_t len, uint64_t *ret, wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t *err); -// Create a `pollable` which will resolve once either the specified stream -// has bytes available to read or the other end of the stream has been -// closed. -// The created `pollable` is a child resource of the `input-stream`. -// Implementations may trap if the `input-stream` is dropped before -// all derived `pollable`s created with this function are dropped. -extern wasi_io_0_2_0_rc_2023_11_10_streams_own_pollable_t wasi_io_0_2_0_rc_2023_11_10_streams_method_input_stream_subscribe(wasi_io_0_2_0_rc_2023_11_10_streams_borrow_input_stream_t self); -// Check readiness for writing. This function never blocks. -// -// Returns the number of bytes permitted for the next call to `write`, -// or an error. Calling `write` with more bytes than this function has -// permitted will trap. -// -// When this function returns 0 bytes, the `subscribe` pollable will -// become ready when this function will report at least 1 byte, or an -// error. -extern bool wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_check_write(wasi_io_0_2_0_rc_2023_11_10_streams_borrow_output_stream_t self, uint64_t *ret, wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t *err); -// Perform a write. This function never blocks. -// -// Precondition: check-write gave permit of Ok(n) and contents has a -// length of less than or equal to n. Otherwise, this function will trap. -// -// returns Err(closed) without writing if the stream has closed since -// the last call to check-write provided a permit. -extern bool wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_write(wasi_io_0_2_0_rc_2023_11_10_streams_borrow_output_stream_t self, bindings_list_u8_t *contents, wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t *err); -// Perform a write of up to 4096 bytes, and then flush the stream. Block -// until all of these operations are complete, or an error occurs. -// -// This is a convenience wrapper around the use of `check-write`, -// `subscribe`, `write`, and `flush`, and is implemented with the -// following pseudo-code: -// -// ```text -// let pollable = this.subscribe(); -// while !contents.is_empty() { - // // Wait for the stream to become writable - // poll-one(pollable); - // let Ok(n) = this.check-write(); // eliding error handling - // let len = min(n, contents.len()); - // let (chunk, rest) = contents.split_at(len); - // this.write(chunk ); // eliding error handling - // contents = rest; - // } - // this.flush(); - // // Wait for completion of `flush` - // poll-one(pollable); - // // Check for any errors that arose during `flush` - // let _ = this.check-write(); // eliding error handling - // ``` - extern bool wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_blocking_write_and_flush(wasi_io_0_2_0_rc_2023_11_10_streams_borrow_output_stream_t self, bindings_list_u8_t *contents, wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t *err); - // Request to flush buffered output. This function never blocks. - // - // This tells the output-stream that the caller intends any buffered - // output to be flushed. the output which is expected to be flushed - // is all that has been passed to `write` prior to this call. - // - // Upon calling this function, the `output-stream` will not accept any - // writes (`check-write` will return `ok(0)`) until the flush has - // completed. The `subscribe` pollable will become ready when the - // flush has completed and the stream can accept more writes. - extern bool wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_flush(wasi_io_0_2_0_rc_2023_11_10_streams_borrow_output_stream_t self, wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t *err); - // Request to flush buffered output, and block until flush completes - // and stream is ready for writing again. - extern bool wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_blocking_flush(wasi_io_0_2_0_rc_2023_11_10_streams_borrow_output_stream_t self, wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t *err); - // Create a `pollable` which will resolve once the output-stream - // is ready for more writing, or an error has occured. When this - // pollable is ready, `check-write` will return `ok(n)` with n>0, or an - // error. - // - // If the stream is closed, this pollable is always ready immediately. - // - // The created `pollable` is a child resource of the `output-stream`. - // Implementations may trap if the `output-stream` is dropped before - // all derived `pollable`s created with this function are dropped. - extern wasi_io_0_2_0_rc_2023_11_10_streams_own_pollable_t wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_subscribe(wasi_io_0_2_0_rc_2023_11_10_streams_borrow_output_stream_t self); - // Write zeroes to a stream. - // - // this should be used precisely like `write` with the exact same - // preconditions (must use check-write first), but instead of - // passing a list of bytes, you simply pass the number of zero-bytes - // that should be written. - extern bool wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_write_zeroes(wasi_io_0_2_0_rc_2023_11_10_streams_borrow_output_stream_t self, uint64_t len, wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t *err); - // Perform a write of up to 4096 zeroes, and then flush the stream. - // Block until all of these operations are complete, or an error - // occurs. - // - // This is a convenience wrapper around the use of `check-write`, - // `subscribe`, `write-zeroes`, and `flush`, and is implemented with - // the following pseudo-code: - // - // ```text - // let pollable = this.subscribe(); - // while num_zeroes != 0 { - // // Wait for the stream to become writable - // poll-one(pollable); - // let Ok(n) = this.check-write(); // eliding error handling - // let len = min(n, num_zeroes); - // this.write-zeroes(len); // eliding error handling - // num_zeroes -= len; - // } - // this.flush(); - // // Wait for completion of `flush` - // poll-one(pollable); - // // Check for any errors that arose during `flush` - // let _ = this.check-write(); // eliding error handling - // ``` - extern bool wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_blocking_write_zeroes_and_flush(wasi_io_0_2_0_rc_2023_11_10_streams_borrow_output_stream_t self, uint64_t len, wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t *err); - // Read from one stream and write to another. - // - // The behavior of splice is equivelant to: - // 1. calling `check-write` on the `output-stream` - // 2. calling `read` on the `input-stream` with the smaller of the - // `check-write` permitted length and the `len` provided to `splice` - // 3. calling `write` on the `output-stream` with that read data. - // - // Any error reported by the call to `check-write`, `read`, or - // `write` ends the splice and reports that error. - // - // This function returns the number of bytes transferred; it may be less - // than `len`. - extern bool wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_splice(wasi_io_0_2_0_rc_2023_11_10_streams_borrow_output_stream_t self, wasi_io_0_2_0_rc_2023_11_10_streams_borrow_input_stream_t src, uint64_t len, uint64_t *ret, wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t *err); - // Read from one stream and write to another, with blocking. - // - // This is similar to `splice`, except that it blocks until the - // `output-stream` is ready for writing, and the `input-stream` - // is ready for reading, before performing the `splice`. - extern bool wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_blocking_splice(wasi_io_0_2_0_rc_2023_11_10_streams_borrow_output_stream_t self, wasi_io_0_2_0_rc_2023_11_10_streams_borrow_input_stream_t src, uint64_t len, uint64_t *ret, wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t *err); - - // Imported Functions from `wasi:cli/stdin@0.2.0-rc-2023-12-05` - extern wasi_cli_0_2_0_rc_2023_12_05_stdin_own_input_stream_t wasi_cli_0_2_0_rc_2023_12_05_stdin_get_stdin(void); - - // Imported Functions from `wasi:cli/stdout@0.2.0-rc-2023-12-05` - extern wasi_cli_0_2_0_rc_2023_12_05_stdout_own_output_stream_t wasi_cli_0_2_0_rc_2023_12_05_stdout_get_stdout(void); - - // Imported Functions from `wasi:cli/stderr@0.2.0-rc-2023-12-05` - extern wasi_cli_0_2_0_rc_2023_12_05_stderr_own_output_stream_t wasi_cli_0_2_0_rc_2023_12_05_stderr_get_stderr(void); - - // Imported Functions from `wasi:cli/terminal-stdin@0.2.0-rc-2023-12-05` - // If stdin is connected to a terminal, return a `terminal-input` handle - // allowing further interaction with it. - extern bool wasi_cli_0_2_0_rc_2023_12_05_terminal_stdin_get_terminal_stdin(wasi_cli_0_2_0_rc_2023_12_05_terminal_stdin_own_terminal_input_t *ret); - - // Imported Functions from `wasi:cli/terminal-stdout@0.2.0-rc-2023-12-05` - // If stdout is connected to a terminal, return a `terminal-output` handle - // allowing further interaction with it. - extern bool wasi_cli_0_2_0_rc_2023_12_05_terminal_stdout_get_terminal_stdout(wasi_cli_0_2_0_rc_2023_12_05_terminal_stdout_own_terminal_output_t *ret); - - // Imported Functions from `wasi:cli/terminal-stderr@0.2.0-rc-2023-12-05` - // If stderr is connected to a terminal, return a `terminal-output` handle - // allowing further interaction with it. - extern bool wasi_cli_0_2_0_rc_2023_12_05_terminal_stderr_get_terminal_stderr(wasi_cli_0_2_0_rc_2023_12_05_terminal_stderr_own_terminal_output_t *ret); - - // Imported Functions from `wasi:clocks/monotonic-clock@0.2.0-rc-2023-11-10` - // Read the current value of the clock. - // - // The clock is monotonic, therefore calling this function repeatedly will - // produce a sequence of non-decreasing values. - extern wasi_clocks_0_2_0_rc_2023_11_10_monotonic_clock_instant_t wasi_clocks_0_2_0_rc_2023_11_10_monotonic_clock_now(void); - // Query the resolution of the clock. Returns the duration of time - // corresponding to a clock tick. - extern wasi_clocks_0_2_0_rc_2023_11_10_monotonic_clock_duration_t wasi_clocks_0_2_0_rc_2023_11_10_monotonic_clock_resolution(void); - // Create a `pollable` which will resolve once the specified instant - // occured. - extern wasi_clocks_0_2_0_rc_2023_11_10_monotonic_clock_own_pollable_t wasi_clocks_0_2_0_rc_2023_11_10_monotonic_clock_subscribe_instant(wasi_clocks_0_2_0_rc_2023_11_10_monotonic_clock_instant_t when); - // Create a `pollable` which will resolve once the given duration has - // elapsed, starting at the time at which this function was called. - // occured. - extern wasi_clocks_0_2_0_rc_2023_11_10_monotonic_clock_own_pollable_t wasi_clocks_0_2_0_rc_2023_11_10_monotonic_clock_subscribe_duration(wasi_clocks_0_2_0_rc_2023_11_10_monotonic_clock_duration_t when); - - // Imported Functions from `wasi:clocks/wall-clock@0.2.0-rc-2023-11-10` - // Read the current value of the clock. - // - // This clock is not monotonic, therefore calling this function repeatedly - // will not necessarily produce a sequence of non-decreasing values. - // - // The returned timestamps represent the number of seconds since - // 1970-01-01T00:00:00Z, also known as [POSIX's Seconds Since the Epoch], - // also known as [Unix Time]. - // - // The nanoseconds field of the output is always less than 1000000000. - // - // [POSIX's Seconds Since the Epoch]: https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_xbd_chap04.html#tag_21_04_16 - // [Unix Time]: https://en.wikipedia.org/wiki/Unix_time - extern void wasi_clocks_0_2_0_rc_2023_11_10_wall_clock_now(wasi_clocks_0_2_0_rc_2023_11_10_wall_clock_datetime_t *ret); - // Query the resolution of the clock. - // - // The nanoseconds field of the output is always less than 1000000000. - extern void wasi_clocks_0_2_0_rc_2023_11_10_wall_clock_resolution(wasi_clocks_0_2_0_rc_2023_11_10_wall_clock_datetime_t *ret); - - // Imported Functions from `wasi:filesystem/types@0.2.0-rc-2023-11-10` - // Return a stream for reading from a file, if available. - // - // May fail with an error-code describing why the file cannot be read. - // - // Multiple read, write, and append streams may be active on the same open - // file and they do not interfere with each other. - // - // Note: This allows using `read-stream`, which is similar to `read` in POSIX. - extern bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_read_via_stream(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_11_10_types_filesize_t offset, wasi_filesystem_0_2_0_rc_2023_11_10_types_own_input_stream_t *ret, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err); - // Return a stream for writing to a file, if available. - // - // May fail with an error-code describing why the file cannot be written. - // - // Note: This allows using `write-stream`, which is similar to `write` in - // POSIX. - extern bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_write_via_stream(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_11_10_types_filesize_t offset, wasi_filesystem_0_2_0_rc_2023_11_10_types_own_output_stream_t *ret, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err); - // Return a stream for appending to a file, if available. - // - // May fail with an error-code describing why the file cannot be appended. - // - // Note: This allows using `write-stream`, which is similar to `write` with - // `O_APPEND` in in POSIX. - extern bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_append_via_stream(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_11_10_types_own_output_stream_t *ret, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err); - // Provide file advisory information on a descriptor. - // - // This is similar to `posix_fadvise` in POSIX. - extern bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_advise(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_11_10_types_filesize_t offset, wasi_filesystem_0_2_0_rc_2023_11_10_types_filesize_t length, wasi_filesystem_0_2_0_rc_2023_11_10_types_advice_t advice, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err); - // Synchronize the data of a file to disk. - // - // This function succeeds with no effect if the file descriptor is not - // opened for writing. - // - // Note: This is similar to `fdatasync` in POSIX. - extern bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_sync_data(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err); - // Get flags associated with a descriptor. - // - // Note: This returns similar flags to `fcntl(fd, F_GETFL)` in POSIX. - // - // Note: This returns the value that was the `fs_flags` value returned - // from `fdstat_get` in earlier versions of WASI. - extern bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_get_flags(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_11_10_types_descriptor_flags_t *ret, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err); - // Get the dynamic type of a descriptor. - // - // Note: This returns the same value as the `type` field of the `fd-stat` - // returned by `stat`, `stat-at` and similar. - // - // Note: This returns similar flags to the `st_mode & S_IFMT` value provided - // by `fstat` in POSIX. - // - // Note: This returns the value that was the `fs_filetype` value returned - // from `fdstat_get` in earlier versions of WASI. - extern bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_get_type(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_11_10_types_descriptor_type_t *ret, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err); - // Adjust the size of an open file. If this increases the file's size, the - // extra bytes are filled with zeros. - // - // Note: This was called `fd_filestat_set_size` in earlier versions of WASI. - extern bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_set_size(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_11_10_types_filesize_t size, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err); - // Adjust the timestamps of an open file or directory. - // - // Note: This is similar to `futimens` in POSIX. - // - // Note: This was called `fd_filestat_set_times` in earlier versions of WASI. - extern bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_set_times(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_11_10_types_new_timestamp_t *data_access_timestamp, wasi_filesystem_0_2_0_rc_2023_11_10_types_new_timestamp_t *data_modification_timestamp, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err); - // Read from a descriptor, without using and updating the descriptor's offset. - // - // This function returns a list of bytes containing the data that was - // read, along with a bool which, when true, indicates that the end of the - // file was reached. The returned list will contain up to `length` bytes; it - // may return fewer than requested, if the end of the file is reached or - // if the I/O operation is interrupted. - // - // In the future, this may change to return a `stream`. - // - // Note: This is similar to `pread` in POSIX. - extern bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_read(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_11_10_types_filesize_t length, wasi_filesystem_0_2_0_rc_2023_11_10_types_filesize_t offset, bindings_tuple2_list_u8_bool_t *ret, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err); - // Write to a descriptor, without using and updating the descriptor's offset. - // - // It is valid to write past the end of a file; the file is extended to the - // extent of the write, with bytes between the previous end and the start of - // the write set to zero. - // - // In the future, this may change to take a `stream`. - // - // Note: This is similar to `pwrite` in POSIX. - extern bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_write(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, bindings_list_u8_t *buffer, wasi_filesystem_0_2_0_rc_2023_11_10_types_filesize_t offset, wasi_filesystem_0_2_0_rc_2023_11_10_types_filesize_t *ret, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err); - // Read directory entries from a directory. - // - // On filesystems where directories contain entries referring to themselves - // and their parents, often named `.` and `..` respectively, these entries - // are omitted. - // - // This always returns a new stream which starts at the beginning of the - // directory. Multiple streams may be active on the same directory, and they - // do not interfere with each other. - extern bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_read_directory(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_11_10_types_own_directory_entry_stream_t *ret, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err); - // Synchronize the data and metadata of a file to disk. - // - // This function succeeds with no effect if the file descriptor is not - // opened for writing. - // - // Note: This is similar to `fsync` in POSIX. - extern bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_sync(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err); - // Create a directory. - // - // Note: This is similar to `mkdirat` in POSIX. - extern bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_create_directory_at(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, bindings_string_t *path, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err); - // Return the attributes of an open file or directory. - // - // Note: This is similar to `fstat` in POSIX, except that it does not return - // device and inode information. For testing whether two descriptors refer to - // the same underlying filesystem object, use `is-same-object`. To obtain - // additional data that can be used do determine whether a file has been - // modified, use `metadata-hash`. - // - // Note: This was called `fd_filestat_get` in earlier versions of WASI. - extern bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_stat(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_11_10_types_descriptor_stat_t *ret, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err); - // Return the attributes of a file or directory. - // - // Note: This is similar to `fstatat` in POSIX, except that it does not - // return device and inode information. See the `stat` description for a - // discussion of alternatives. - // - // Note: This was called `path_filestat_get` in earlier versions of WASI. - extern bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_stat_at(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_11_10_types_path_flags_t path_flags, bindings_string_t *path, wasi_filesystem_0_2_0_rc_2023_11_10_types_descriptor_stat_t *ret, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err); - // Adjust the timestamps of a file or directory. - // - // Note: This is similar to `utimensat` in POSIX. - // - // Note: This was called `path_filestat_set_times` in earlier versions of - // WASI. - extern bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_set_times_at(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_11_10_types_path_flags_t path_flags, bindings_string_t *path, wasi_filesystem_0_2_0_rc_2023_11_10_types_new_timestamp_t *data_access_timestamp, wasi_filesystem_0_2_0_rc_2023_11_10_types_new_timestamp_t *data_modification_timestamp, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err); - // Create a hard link. - // - // Note: This is similar to `linkat` in POSIX. - extern bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_link_at(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_11_10_types_path_flags_t old_path_flags, bindings_string_t *old_path, wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t new_descriptor, bindings_string_t *new_path, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err); - // Open a file or directory. - // - // The returned descriptor is not guaranteed to be the lowest-numbered - // descriptor not currently open/ it is randomized to prevent applications - // from depending on making assumptions about indexes, since this is - // error-prone in multi-threaded contexts. The returned descriptor is - // guaranteed to be less than 2**31. - // - // If `flags` contains `descriptor-flags::mutate-directory`, and the base - // descriptor doesn't have `descriptor-flags::mutate-directory` set, - // `open-at` fails with `error-code::read-only`. - // - // If `flags` contains `write` or `mutate-directory`, or `open-flags` - // contains `truncate` or `create`, and the base descriptor doesn't have - // `descriptor-flags::mutate-directory` set, `open-at` fails with - // `error-code::read-only`. - // - // Note: This is similar to `openat` in POSIX. - extern bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_open_at(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_11_10_types_path_flags_t path_flags, bindings_string_t *path, wasi_filesystem_0_2_0_rc_2023_11_10_types_open_flags_t open_flags, wasi_filesystem_0_2_0_rc_2023_11_10_types_descriptor_flags_t flags, wasi_filesystem_0_2_0_rc_2023_11_10_types_own_descriptor_t *ret, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err); - // Read the contents of a symbolic link. - // - // If the contents contain an absolute or rooted path in the underlying - // filesystem, this function fails with `error-code::not-permitted`. - // - // Note: This is similar to `readlinkat` in POSIX. - extern bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_readlink_at(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, bindings_string_t *path, bindings_string_t *ret, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err); - // Remove a directory. - // - // Return `error-code::not-empty` if the directory is not empty. - // - // Note: This is similar to `unlinkat(fd, path, AT_REMOVEDIR)` in POSIX. - extern bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_remove_directory_at(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, bindings_string_t *path, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err); - // Rename a filesystem object. - // - // Note: This is similar to `renameat` in POSIX. - extern bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_rename_at(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, bindings_string_t *old_path, wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t new_descriptor, bindings_string_t *new_path, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err); - // Create a symbolic link (also known as a "symlink"). - // - // If `old-path` starts with `/`, the function fails with - // `error-code::not-permitted`. - // - // Note: This is similar to `symlinkat` in POSIX. - extern bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_symlink_at(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, bindings_string_t *old_path, bindings_string_t *new_path, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err); - // Unlink a filesystem object that is not a directory. - // - // Return `error-code::is-directory` if the path refers to a directory. - // Note: This is similar to `unlinkat(fd, path, 0)` in POSIX. - extern bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_unlink_file_at(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, bindings_string_t *path, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err); - // Test whether two descriptors refer to the same filesystem object. - // - // In POSIX, this corresponds to testing whether the two descriptors have the - // same device (`st_dev`) and inode (`st_ino` or `d_ino`) numbers. - // wasi-filesystem does not expose device and inode numbers, so this function - // may be used instead. - extern bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_is_same_object(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t other); - // Return a hash of the metadata associated with a filesystem object referred - // to by a descriptor. - // - // This returns a hash of the last-modification timestamp and file size, and - // may also include the inode number, device number, birth timestamp, and - // other metadata fields that may change when the file is modified or - // replaced. It may also include a secret value chosen by the - // implementation and not otherwise exposed. - // - // Implementations are encourated to provide the following properties: - // - // - If the file is not modified or replaced, the computed hash value should - // usually not change. - // - If the object is modified or replaced, the computed hash value should - // usually change. - // - The inputs to the hash should not be easily computable from the - // computed hash. - // - // However, none of these is required. - extern bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_metadata_hash(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_11_10_types_metadata_hash_value_t *ret, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err); - // Return a hash of the metadata associated with a filesystem object referred - // to by a directory descriptor and a relative path. - // - // This performs the same hash computation as `metadata-hash`. - extern bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_descriptor_metadata_hash_at(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t self, wasi_filesystem_0_2_0_rc_2023_11_10_types_path_flags_t path_flags, bindings_string_t *path, wasi_filesystem_0_2_0_rc_2023_11_10_types_metadata_hash_value_t *ret, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err); - // Read a single directory entry from a `directory-entry-stream`. - extern bool wasi_filesystem_0_2_0_rc_2023_11_10_types_method_directory_entry_stream_read_directory_entry(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_directory_entry_stream_t self, wasi_filesystem_0_2_0_rc_2023_11_10_types_option_directory_entry_t *ret, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *err); - // Attempts to extract a filesystem-related `error-code` from the stream - // `error` provided. - // - // Stream operations which return `stream-error::last-operation-failed` - // have a payload with more information about the operation that failed. - // This payload can be passed through to this function to see if there's - // filesystem-related information about the error to return. - // - // Note that this function is fallible because not all stream-related - // errors are filesystem-related errors. - extern bool wasi_filesystem_0_2_0_rc_2023_11_10_types_filesystem_error_code(wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_error_t err_, wasi_filesystem_0_2_0_rc_2023_11_10_types_error_code_t *ret); - - // Imported Functions from `wasi:filesystem/preopens@0.2.0-rc-2023-11-10` - // Return the set of preopened directories, and their path. - extern void wasi_filesystem_0_2_0_rc_2023_11_10_preopens_get_directories(wasi_filesystem_0_2_0_rc_2023_11_10_preopens_list_tuple2_own_descriptor_string_t *ret); - - // Imported Functions from `wasi:sockets/instance-network@0.2.0-rc-2023-11-10` - // Get a handle to the default network. - extern wasi_sockets_0_2_0_rc_2023_11_10_instance_network_own_network_t wasi_sockets_0_2_0_rc_2023_11_10_instance_network_instance_network(void); - - // Imported Functions from `wasi:sockets/udp@0.2.0-rc-2023-11-10` - // Bind the socket to a specific network on the provided IP address and port. - // - // If the IP address is zero (`0.0.0.0` in IPv4, `::` in IPv6), it is left to the implementation to decide which - // network interface(s) to bind to. - // If the port is zero, the socket will be bound to a random free port. - // - // Unlike in POSIX, this function is async. This enables interactive WASI hosts to inject permission prompts. - // - // # Typical `start` errors - // - `invalid-argument`: The `local-address` has the wrong address family. (EAFNOSUPPORT, EFAULT on Windows) - // - `invalid-state`: The socket is already bound. (EINVAL) - // - // # Typical `finish` errors - // - `address-in-use`: No ephemeral ports available. (EADDRINUSE, ENOBUFS on Windows) - // - `address-in-use`: Address is already in use. (EADDRINUSE) - // - `address-not-bindable`: `local-address` is not an address that the `network` can bind to. (EADDRNOTAVAIL) - // - `not-in-progress`: A `bind` operation is not in progress. - // - `would-block`: Can't finish the operation, it is still in progress. (EWOULDBLOCK, EAGAIN) - // - // # References - // - - // - - // - - // - - extern bool wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_start_bind(wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_udp_socket_t self, wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_network_t network, wasi_sockets_0_2_0_rc_2023_11_10_udp_ip_socket_address_t *local_address, wasi_sockets_0_2_0_rc_2023_11_10_udp_error_code_t *err); - extern bool wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_finish_bind(wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_udp_socket_t self, wasi_sockets_0_2_0_rc_2023_11_10_udp_error_code_t *err); - // Set up inbound & outbound communication channels, optionally to a specific peer. - // - // This function only changes the local socket configuration and does not generate any network traffic. - // On success, the `remote-address` of the socket is updated. The `local-address` may be updated as well, - // based on the best network path to `remote-address`. - // - // When a `remote-address` is provided, the returned streams are limited to communicating with that specific peer: - // - `send` can only be used to send to this destination. - // - `receive` will only return datagrams sent from the provided `remote-address`. - // - // This method may be called multiple times on the same socket to change its association, but - // only the most recently returned pair of streams will be operational. Implementations may trap if - // the streams returned by a previous invocation haven't been dropped yet before calling `stream` again. - // - // The POSIX equivalent in pseudo-code is: - // ```text - // if (was previously connected) { - // connect(s, AF_UNSPEC) - // } - // if (remote_address is Some) { - // connect(s, remote_address) - // } - // ``` - // - // Unlike in POSIX, the socket must already be explicitly bound. - // - // # Typical errors - // - `invalid-argument`: The `remote-address` has the wrong address family. (EAFNOSUPPORT) - // - `invalid-argument`: `remote-address` is a non-IPv4-mapped IPv6 address, but the socket was bound to a specific IPv4-mapped IPv6 address. (or vice versa) - // - `invalid-argument`: The IP address in `remote-address` is set to INADDR_ANY (`0.0.0.0` / `::`). (EDESTADDRREQ, EADDRNOTAVAIL) - // - `invalid-argument`: The port in `remote-address` is set to 0. (EDESTADDRREQ, EADDRNOTAVAIL) - // - `invalid-state`: The socket is not bound. - // - `address-in-use`: Tried to perform an implicit bind, but there were no ephemeral ports available. (EADDRINUSE, EADDRNOTAVAIL on Linux, EAGAIN on BSD) - // - `remote-unreachable`: The remote address is not reachable. (ECONNRESET, ENETRESET, EHOSTUNREACH, EHOSTDOWN, ENETUNREACH, ENETDOWN, ENONET) - // - `connection-refused`: The connection was refused. (ECONNREFUSED) - // - // # References - // - - // - - // - - // - - extern bool wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_stream(wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_udp_socket_t self, wasi_sockets_0_2_0_rc_2023_11_10_udp_ip_socket_address_t *maybe_remote_address, wasi_sockets_0_2_0_rc_2023_11_10_udp_tuple2_own_incoming_datagram_stream_own_outgoing_datagram_stream_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_udp_error_code_t *err); - // Get the current bound address. - // - // POSIX mentions: - // > If the socket has not been bound to a local name, the value - // > stored in the object pointed to by `address` is unspecified. - // - // WASI is stricter and requires `local-address` to return `invalid-state` when the socket hasn't been bound yet. - // - // # Typical errors - // - `invalid-state`: The socket is not bound to any local address. - // - // # References - // - - // - - // - - // - - extern bool wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_local_address(wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_udp_socket_t self, wasi_sockets_0_2_0_rc_2023_11_10_udp_ip_socket_address_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_udp_error_code_t *err); - // Get the address the socket is currently streaming to. - // - // # Typical errors - // - `invalid-state`: The socket is not streaming to a specific remote address. (ENOTCONN) - // - // # References - // - - // - - // - - // - - extern bool wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_remote_address(wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_udp_socket_t self, wasi_sockets_0_2_0_rc_2023_11_10_udp_ip_socket_address_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_udp_error_code_t *err); - // Whether this is a IPv4 or IPv6 socket. - // - // Equivalent to the SO_DOMAIN socket option. - extern wasi_sockets_0_2_0_rc_2023_11_10_udp_ip_address_family_t wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_address_family(wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_udp_socket_t self); - // Whether IPv4 compatibility (dual-stack) mode is disabled or not. - // - // Equivalent to the IPV6_V6ONLY socket option. - // - // # Typical errors - // - `not-supported`: (get/set) `this` socket is an IPv4 socket. - // - `invalid-state`: (set) The socket is already bound. - // - `not-supported`: (set) Host does not support dual-stack sockets. (Implementations are not required to.) - extern bool wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_ipv6_only(wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_udp_socket_t self, bool *ret, wasi_sockets_0_2_0_rc_2023_11_10_udp_error_code_t *err); - extern bool wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_set_ipv6_only(wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_udp_socket_t self, bool value, wasi_sockets_0_2_0_rc_2023_11_10_udp_error_code_t *err); - // Equivalent to the IP_TTL & IPV6_UNICAST_HOPS socket options. - // - // If the provided value is 0, an `invalid-argument` error is returned. - // - // # Typical errors - // - `invalid-argument`: (set) The TTL value must be 1 or higher. - extern bool wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_unicast_hop_limit(wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_udp_socket_t self, uint8_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_udp_error_code_t *err); - extern bool wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_set_unicast_hop_limit(wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_udp_socket_t self, uint8_t value, wasi_sockets_0_2_0_rc_2023_11_10_udp_error_code_t *err); - // The kernel buffer space reserved for sends/receives on this socket. - // - // If the provided value is 0, an `invalid-argument` error is returned. - // Any other value will never cause an error, but it might be silently clamped and/or rounded. - // I.e. after setting a value, reading the same setting back may return a different value. - // - // Equivalent to the SO_RCVBUF and SO_SNDBUF socket options. - // - // # Typical errors - // - `invalid-argument`: (set) The provided value was 0. - extern bool wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_receive_buffer_size(wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_udp_socket_t self, uint64_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_udp_error_code_t *err); - extern bool wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_set_receive_buffer_size(wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_udp_socket_t self, uint64_t value, wasi_sockets_0_2_0_rc_2023_11_10_udp_error_code_t *err); - extern bool wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_send_buffer_size(wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_udp_socket_t self, uint64_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_udp_error_code_t *err); - extern bool wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_set_send_buffer_size(wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_udp_socket_t self, uint64_t value, wasi_sockets_0_2_0_rc_2023_11_10_udp_error_code_t *err); - // Create a `pollable` which will resolve once the socket is ready for I/O. - // - // Note: this function is here for WASI Preview2 only. - // It's planned to be removed when `future` is natively supported in Preview3. - extern wasi_sockets_0_2_0_rc_2023_11_10_udp_own_pollable_t wasi_sockets_0_2_0_rc_2023_11_10_udp_method_udp_socket_subscribe(wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_udp_socket_t self); - // Receive messages on the socket. - // - // This function attempts to receive up to `max-results` datagrams on the socket without blocking. - // The returned list may contain fewer elements than requested, but never more. - // - // This function returns successfully with an empty list when either: - // - `max-results` is 0, or: - // - `max-results` is greater than 0, but no results are immediately available. - // This function never returns `error(would-block)`. - // - // # Typical errors - // - `remote-unreachable`: The remote address is not reachable. (ECONNRESET, ENETRESET on Windows, EHOSTUNREACH, EHOSTDOWN, ENETUNREACH, ENETDOWN, ENONET) - // - `connection-refused`: The connection was refused. (ECONNREFUSED) - // - // # References - // - - // - - // - - // - - // - - // - - // - - // - - extern bool wasi_sockets_0_2_0_rc_2023_11_10_udp_method_incoming_datagram_stream_receive(wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_incoming_datagram_stream_t self, uint64_t max_results, wasi_sockets_0_2_0_rc_2023_11_10_udp_list_incoming_datagram_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_udp_error_code_t *err); - // Create a `pollable` which will resolve once the stream is ready to receive again. - // - // Note: this function is here for WASI Preview2 only. - // It's planned to be removed when `future` is natively supported in Preview3. - extern wasi_sockets_0_2_0_rc_2023_11_10_udp_own_pollable_t wasi_sockets_0_2_0_rc_2023_11_10_udp_method_incoming_datagram_stream_subscribe(wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_incoming_datagram_stream_t self); - // Check readiness for sending. This function never blocks. - // - // Returns the number of datagrams permitted for the next call to `send`, - // or an error. Calling `send` with more datagrams than this function has - // permitted will trap. - // - // When this function returns ok(0), the `subscribe` pollable will - // become ready when this function will report at least ok(1), or an - // error. - // - // Never returns `would-block`. - extern bool wasi_sockets_0_2_0_rc_2023_11_10_udp_method_outgoing_datagram_stream_check_send(wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_outgoing_datagram_stream_t self, uint64_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_udp_error_code_t *err); - // Send messages on the socket. - // - // This function attempts to send all provided `datagrams` on the socket without blocking and - // returns how many messages were actually sent (or queued for sending). This function never - // returns `error(would-block)`. If none of the datagrams were able to be sent, `ok(0)` is returned. - // - // This function semantically behaves the same as iterating the `datagrams` list and sequentially - // sending each individual datagram until either the end of the list has been reached or the first error occurred. - // If at least one datagram has been sent successfully, this function never returns an error. - // - // If the input list is empty, the function returns `ok(0)`. - // - // Each call to `send` must be permitted by a preceding `check-send`. Implementations must trap if - // either `check-send` was not called or `datagrams` contains more items than `check-send` permitted. - // - // # Typical errors - // - `invalid-argument`: The `remote-address` has the wrong address family. (EAFNOSUPPORT) - // - `invalid-argument`: `remote-address` is a non-IPv4-mapped IPv6 address, but the socket was bound to a specific IPv4-mapped IPv6 address. (or vice versa) - // - `invalid-argument`: The IP address in `remote-address` is set to INADDR_ANY (`0.0.0.0` / `::`). (EDESTADDRREQ, EADDRNOTAVAIL) - // - `invalid-argument`: The port in `remote-address` is set to 0. (EDESTADDRREQ, EADDRNOTAVAIL) - // - `invalid-argument`: The socket is in "connected" mode and `remote-address` is `some` value that does not match the address passed to `stream`. (EISCONN) - // - `invalid-argument`: The socket is not "connected" and no value for `remote-address` was provided. (EDESTADDRREQ) - // - `remote-unreachable`: The remote address is not reachable. (ECONNRESET, ENETRESET on Windows, EHOSTUNREACH, EHOSTDOWN, ENETUNREACH, ENETDOWN, ENONET) - // - `connection-refused`: The connection was refused. (ECONNREFUSED) - // - `datagram-too-large`: The datagram is too large. (EMSGSIZE) - // - // # References - // - - // - - // - - // - - // - - // - - // - - // - - extern bool wasi_sockets_0_2_0_rc_2023_11_10_udp_method_outgoing_datagram_stream_send(wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_outgoing_datagram_stream_t self, wasi_sockets_0_2_0_rc_2023_11_10_udp_list_outgoing_datagram_t *datagrams, uint64_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_udp_error_code_t *err); - // Create a `pollable` which will resolve once the stream is ready to send again. - // - // Note: this function is here for WASI Preview2 only. - // It's planned to be removed when `future` is natively supported in Preview3. - extern wasi_sockets_0_2_0_rc_2023_11_10_udp_own_pollable_t wasi_sockets_0_2_0_rc_2023_11_10_udp_method_outgoing_datagram_stream_subscribe(wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_outgoing_datagram_stream_t self); - - // Imported Functions from `wasi:sockets/udp-create-socket@0.2.0-rc-2023-11-10` - // Create a new UDP socket. - // - // Similar to `socket(AF_INET or AF_INET6, SOCK_DGRAM, IPPROTO_UDP)` in POSIX. - // - // This function does not require a network capability handle. This is considered to be safe because - // at time of creation, the socket is not bound to any `network` yet. Up to the moment `bind` is called, - // the socket is effectively an in-memory configuration object, unable to communicate with the outside world. - // - // All sockets are non-blocking. Use the wasi-poll interface to block on asynchronous operations. - // - // # Typical errors - // - `not-supported`: The specified `address-family` is not supported. (EAFNOSUPPORT) - // - `new-socket-limit`: The new socket resource could not be created because of a system limit. (EMFILE, ENFILE) - // - // # References: - // - - // - - // - - // - - extern bool wasi_sockets_0_2_0_rc_2023_11_10_udp_create_socket_create_udp_socket(wasi_sockets_0_2_0_rc_2023_11_10_udp_create_socket_ip_address_family_t address_family, wasi_sockets_0_2_0_rc_2023_11_10_udp_create_socket_own_udp_socket_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_udp_create_socket_error_code_t *err); - - // Imported Functions from `wasi:sockets/tcp@0.2.0-rc-2023-11-10` - // Bind the socket to a specific network on the provided IP address and port. - // - // If the IP address is zero (`0.0.0.0` in IPv4, `::` in IPv6), it is left to the implementation to decide which - // network interface(s) to bind to. - // If the TCP/UDP port is zero, the socket will be bound to a random free port. - // - // When a socket is not explicitly bound, the first invocation to a listen or connect operation will - // implicitly bind the socket. - // - // Unlike in POSIX, this function is async. This enables interactive WASI hosts to inject permission prompts. - // - // # Typical `start` errors - // - `invalid-argument`: The `local-address` has the wrong address family. (EAFNOSUPPORT, EFAULT on Windows) - // - `invalid-argument`: `local-address` is not a unicast address. (EINVAL) - // - `invalid-argument`: `local-address` is an IPv4-mapped IPv6 address, but the socket has `ipv6-only` enabled. (EINVAL) - // - `invalid-state`: The socket is already bound. (EINVAL) - // - // # Typical `finish` errors - // - `address-in-use`: No ephemeral ports available. (EADDRINUSE, ENOBUFS on Windows) - // - `address-in-use`: Address is already in use. (EADDRINUSE) - // - `address-not-bindable`: `local-address` is not an address that the `network` can bind to. (EADDRNOTAVAIL) - // - `not-in-progress`: A `bind` operation is not in progress. - // - `would-block`: Can't finish the operation, it is still in progress. (EWOULDBLOCK, EAGAIN) - // - // # Implementors note - // When binding to a non-zero port, this bind operation shouldn't be affected by the TIME_WAIT - // state of a recently closed socket on the same local address (i.e. the SO_REUSEADDR socket - // option should be set implicitly on platforms that require it). - // - // # References - // - - // - - // - - // - - extern bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_start_bind(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_network_t network, wasi_sockets_0_2_0_rc_2023_11_10_tcp_ip_socket_address_t *local_address, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err); - extern bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_finish_bind(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err); - // Connect to a remote endpoint. - // - // On success: - // - the socket is transitioned into the Connection state - // - a pair of streams is returned that can be used to read & write to the connection - // - // POSIX mentions: - // > If connect() fails, the state of the socket is unspecified. Conforming applications should - // > close the file descriptor and create a new socket before attempting to reconnect. - // - // WASI prescribes the following behavior: - // - If `connect` fails because an input/state validation error, the socket should remain usable. - // - If a connection was actually attempted but failed, the socket should become unusable for further network communication. - // Besides `drop`, any method after such a failure may return an error. - // - // # Typical `start` errors - // - `invalid-argument`: The `remote-address` has the wrong address family. (EAFNOSUPPORT) - // - `invalid-argument`: `remote-address` is not a unicast address. (EINVAL, ENETUNREACH on Linux, EAFNOSUPPORT on MacOS) - // - `invalid-argument`: `remote-address` is an IPv4-mapped IPv6 address, but the socket has `ipv6-only` enabled. (EINVAL, EADDRNOTAVAIL on Illumos) - // - `invalid-argument`: `remote-address` is a non-IPv4-mapped IPv6 address, but the socket was bound to a specific IPv4-mapped IPv6 address. (or vice versa) - // - `invalid-argument`: The IP address in `remote-address` is set to INADDR_ANY (`0.0.0.0` / `::`). (EADDRNOTAVAIL on Windows) - // - `invalid-argument`: The port in `remote-address` is set to 0. (EADDRNOTAVAIL on Windows) - // - `invalid-argument`: The socket is already attached to a different network. The `network` passed to `connect` must be identical to the one passed to `bind`. - // - `invalid-state`: The socket is already in the Connection state. (EISCONN) - // - `invalid-state`: The socket is already in the Listener state. (EOPNOTSUPP, EINVAL on Windows) - // - // # Typical `finish` errors - // - `timeout`: Connection timed out. (ETIMEDOUT) - // - `connection-refused`: The connection was forcefully rejected. (ECONNREFUSED) - // - `connection-reset`: The connection was reset. (ECONNRESET) - // - `connection-aborted`: The connection was aborted. (ECONNABORTED) - // - `remote-unreachable`: The remote address is not reachable. (EHOSTUNREACH, EHOSTDOWN, ENETUNREACH, ENETDOWN, ENONET) - // - `address-in-use`: Tried to perform an implicit bind, but there were no ephemeral ports available. (EADDRINUSE, EADDRNOTAVAIL on Linux, EAGAIN on BSD) - // - `not-in-progress`: A `connect` operation is not in progress. - // - `would-block`: Can't finish the operation, it is still in progress. (EWOULDBLOCK, EAGAIN) - // - // # References - // - - // - - // - - // - - extern bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_start_connect(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_network_t network, wasi_sockets_0_2_0_rc_2023_11_10_tcp_ip_socket_address_t *remote_address, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err); - extern bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_finish_connect(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_11_10_tcp_tuple2_own_input_stream_own_output_stream_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err); - // Start listening for new connections. - // - // Transitions the socket into the Listener state. - // - // Unlike POSIX: - // - this function is async. This enables interactive WASI hosts to inject permission prompts. - // - the socket must already be explicitly bound. - // - // # Typical `start` errors - // - `invalid-state`: The socket is not bound to any local address. (EDESTADDRREQ) - // - `invalid-state`: The socket is already in the Connection state. (EISCONN, EINVAL on BSD) - // - `invalid-state`: The socket is already in the Listener state. - // - // # Typical `finish` errors - // - `address-in-use`: Tried to perform an implicit bind, but there were no ephemeral ports available. (EADDRINUSE) - // - `not-in-progress`: A `listen` operation is not in progress. - // - `would-block`: Can't finish the operation, it is still in progress. (EWOULDBLOCK, EAGAIN) - // - // # References - // - - // - - // - - // - - extern bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_start_listen(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err); - extern bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_finish_listen(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err); - // Accept a new client socket. - // - // The returned socket is bound and in the Connection state. The following properties are inherited from the listener socket: - // - `address-family` - // - `ipv6-only` - // - `keep-alive-enabled` - // - `keep-alive-idle-time` - // - `keep-alive-interval` - // - `keep-alive-count` - // - `hop-limit` - // - `receive-buffer-size` - // - `send-buffer-size` - // - // On success, this function returns the newly accepted client socket along with - // a pair of streams that can be used to read & write to the connection. - // - // # Typical errors - // - `invalid-state`: Socket is not in the Listener state. (EINVAL) - // - `would-block`: No pending connections at the moment. (EWOULDBLOCK, EAGAIN) - // - `connection-aborted`: An incoming connection was pending, but was terminated by the client before this listener could accept it. (ECONNABORTED) - // - `new-socket-limit`: The new socket resource could not be created because of a system limit. (EMFILE, ENFILE) - // - // # References - // - - // - - // - - // - - extern bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_accept(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_11_10_tcp_tuple3_own_tcp_socket_own_input_stream_own_output_stream_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err); - // Get the bound local address. - // - // POSIX mentions: - // > If the socket has not been bound to a local name, the value - // > stored in the object pointed to by `address` is unspecified. - // - // WASI is stricter and requires `local-address` to return `invalid-state` when the socket hasn't been bound yet. - // - // # Typical errors - // - `invalid-state`: The socket is not bound to any local address. - // - // # References - // - - // - - // - - // - - extern bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_local_address(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_11_10_tcp_ip_socket_address_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err); - // Get the remote address. - // - // # Typical errors - // - `invalid-state`: The socket is not connected to a remote address. (ENOTCONN) - // - // # References - // - - // - - // - - // - - extern bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_remote_address(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_11_10_tcp_ip_socket_address_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err); - // Whether the socket is listening for new connections. - // - // Equivalent to the SO_ACCEPTCONN socket option. - extern bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_is_listening(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self); - // Whether this is a IPv4 or IPv6 socket. - // - // Equivalent to the SO_DOMAIN socket option. - extern wasi_sockets_0_2_0_rc_2023_11_10_tcp_ip_address_family_t wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_address_family(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self); - // Whether IPv4 compatibility (dual-stack) mode is disabled or not. - // - // Equivalent to the IPV6_V6ONLY socket option. - // - // # Typical errors - // - `invalid-state`: (set) The socket is already bound. - // - `not-supported`: (get/set) `this` socket is an IPv4 socket. - // - `not-supported`: (set) Host does not support dual-stack sockets. (Implementations are not required to.) - extern bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_ipv6_only(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, bool *ret, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err); - extern bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_set_ipv6_only(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, bool value, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err); - // Hints the desired listen queue size. Implementations are free to ignore this. - // - // If the provided value is 0, an `invalid-argument` error is returned. - // Any other value will never cause an error, but it might be silently clamped and/or rounded. - // - // # Typical errors - // - `not-supported`: (set) The platform does not support changing the backlog size after the initial listen. - // - `invalid-argument`: (set) The provided value was 0. - // - `invalid-state`: (set) The socket is already in the Connection state. - extern bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_set_listen_backlog_size(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, uint64_t value, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err); - // Enables or disables keepalive. - // - // The keepalive behavior can be adjusted using: - // - `keep-alive-idle-time` - // - `keep-alive-interval` - // - `keep-alive-count` - // These properties can be configured while `keep-alive-enabled` is false, but only come into effect when `keep-alive-enabled` is true. - // - // Equivalent to the SO_KEEPALIVE socket option. - extern bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_keep_alive_enabled(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, bool *ret, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err); - extern bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_set_keep_alive_enabled(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, bool value, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err); - // Amount of time the connection has to be idle before TCP starts sending keepalive packets. - // - // If the provided value is 0, an `invalid-argument` error is returned. - // Any other value will never cause an error, but it might be silently clamped and/or rounded. - // I.e. after setting a value, reading the same setting back may return a different value. - // - // Equivalent to the TCP_KEEPIDLE socket option. (TCP_KEEPALIVE on MacOS) - // - // # Typical errors - // - `invalid-argument`: (set) The provided value was 0. - extern bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_keep_alive_idle_time(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_11_10_tcp_duration_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err); - extern bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_set_keep_alive_idle_time(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_11_10_tcp_duration_t value, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err); - // The time between keepalive packets. - // - // If the provided value is 0, an `invalid-argument` error is returned. - // Any other value will never cause an error, but it might be silently clamped and/or rounded. - // I.e. after setting a value, reading the same setting back may return a different value. - // - // Equivalent to the TCP_KEEPINTVL socket option. - // - // # Typical errors - // - `invalid-argument`: (set) The provided value was 0. - extern bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_keep_alive_interval(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_11_10_tcp_duration_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err); - extern bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_set_keep_alive_interval(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_11_10_tcp_duration_t value, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err); - // The maximum amount of keepalive packets TCP should send before aborting the connection. - // - // If the provided value is 0, an `invalid-argument` error is returned. - // Any other value will never cause an error, but it might be silently clamped and/or rounded. - // I.e. after setting a value, reading the same setting back may return a different value. - // - // Equivalent to the TCP_KEEPCNT socket option. - // - // # Typical errors - // - `invalid-argument`: (set) The provided value was 0. - extern bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_keep_alive_count(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, uint32_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err); - extern bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_set_keep_alive_count(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, uint32_t value, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err); - // Equivalent to the IP_TTL & IPV6_UNICAST_HOPS socket options. - // - // If the provided value is 0, an `invalid-argument` error is returned. - // - // # Typical errors - // - `invalid-argument`: (set) The TTL value must be 1 or higher. - // - `invalid-state`: (set) The socket is already in the Connection state. - // - `invalid-state`: (set) The socket is already in the Listener state. - extern bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_hop_limit(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, uint8_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err); - extern bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_set_hop_limit(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, uint8_t value, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err); - // The kernel buffer space reserved for sends/receives on this socket. - // - // If the provided value is 0, an `invalid-argument` error is returned. - // Any other value will never cause an error, but it might be silently clamped and/or rounded. - // I.e. after setting a value, reading the same setting back may return a different value. - // - // Equivalent to the SO_RCVBUF and SO_SNDBUF socket options. - // - // # Typical errors - // - `invalid-argument`: (set) The provided value was 0. - // - `invalid-state`: (set) The socket is already in the Connection state. - // - `invalid-state`: (set) The socket is already in the Listener state. - extern bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_receive_buffer_size(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, uint64_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err); - extern bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_set_receive_buffer_size(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, uint64_t value, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err); - extern bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_send_buffer_size(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, uint64_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err); - extern bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_set_send_buffer_size(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, uint64_t value, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err); - // Create a `pollable` which will resolve once the socket is ready for I/O. - // - // Note: this function is here for WASI Preview2 only. - // It's planned to be removed when `future` is natively supported in Preview3. - extern wasi_sockets_0_2_0_rc_2023_11_10_tcp_own_pollable_t wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_subscribe(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self); - // Initiate a graceful shutdown. - // - // - receive: the socket is not expecting to receive any more data from the peer. All subsequent read - // operations on the `input-stream` associated with this socket will return an End Of Stream indication. - // Any data still in the receive queue at time of calling `shutdown` will be discarded. - // - send: the socket is not expecting to send any more data to the peer. All subsequent write - // operations on the `output-stream` associated with this socket will return an error. - // - both: same effect as receive & send combined. - // - // The shutdown function does not close (drop) the socket. - // - // # Typical errors - // - `invalid-state`: The socket is not in the Connection state. (ENOTCONN) - // - // # References - // - - // - - // - - // - - extern bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_method_tcp_socket_shutdown(wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t self, wasi_sockets_0_2_0_rc_2023_11_10_tcp_shutdown_type_t shutdown_type, wasi_sockets_0_2_0_rc_2023_11_10_tcp_error_code_t *err); - - // Imported Functions from `wasi:sockets/tcp-create-socket@0.2.0-rc-2023-11-10` - // Create a new TCP socket. - // - // Similar to `socket(AF_INET or AF_INET6, SOCK_STREAM, IPPROTO_TCP)` in POSIX. - // - // This function does not require a network capability handle. This is considered to be safe because - // at time of creation, the socket is not bound to any `network` yet. Up to the moment `bind`/`listen`/`connect` - // is called, the socket is effectively an in-memory configuration object, unable to communicate with the outside world. - // - // All sockets are non-blocking. Use the wasi-poll interface to block on asynchronous operations. - // - // # Typical errors - // - `not-supported`: The specified `address-family` is not supported. (EAFNOSUPPORT) - // - `new-socket-limit`: The new socket resource could not be created because of a system limit. (EMFILE, ENFILE) - // - // # References - // - - // - - // - - // - - extern bool wasi_sockets_0_2_0_rc_2023_11_10_tcp_create_socket_create_tcp_socket(wasi_sockets_0_2_0_rc_2023_11_10_tcp_create_socket_ip_address_family_t address_family, wasi_sockets_0_2_0_rc_2023_11_10_tcp_create_socket_own_tcp_socket_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_tcp_create_socket_error_code_t *err); - - // Imported Functions from `wasi:sockets/ip-name-lookup@0.2.0-rc-2023-11-10` - // Resolve an internet host name to a list of IP addresses. - // - // Unicode domain names are automatically converted to ASCII using IDNA encoding. - // If the input is an IP address string, the address is parsed and returned - // as-is without making any external requests. - // - // See the wasi-socket proposal README.md for a comparison with getaddrinfo. - // - // This function never blocks. It either immediately fails or immediately - // returns successfully with a `resolve-address-stream` that can be used - // to (asynchronously) fetch the results. - // - // # Typical errors - // - `invalid-argument`: `name` is a syntactically invalid domain name or IP address. - // - // # References: - // - - // - - // - - // - - extern bool wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_resolve_addresses(wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_borrow_network_t network, bindings_string_t *name, wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_own_resolve_address_stream_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_error_code_t *err); - // Returns the next address from the resolver. - // - // This function should be called multiple times. On each call, it will - // return the next address in connection order preference. If all - // addresses have been exhausted, this function returns `none`. - // - // This function never returns IPv4-mapped IPv6 addresses. - // - // # Typical errors - // - `name-unresolvable`: Name does not exist or has no suitable associated IP addresses. (EAI_NONAME, EAI_NODATA, EAI_ADDRFAMILY) - // - `temporary-resolver-failure`: A temporary failure in name resolution occurred. (EAI_AGAIN) - // - `permanent-resolver-failure`: A permanent failure in name resolution occurred. (EAI_FAIL) - // - `would-block`: A result is not available yet. (EWOULDBLOCK, EAGAIN) - extern bool wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_method_resolve_address_stream_resolve_next_address(wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_borrow_resolve_address_stream_t self, wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_option_ip_address_t *ret, wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_error_code_t *err); - // Create a `pollable` which will resolve once the stream is ready for I/O. - // - // Note: this function is here for WASI Preview2 only. - // It's planned to be removed when `future` is natively supported in Preview3. - extern wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_own_pollable_t wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_method_resolve_address_stream_subscribe(wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_borrow_resolve_address_stream_t self); - - // Imported Functions from `wasi:random/random@0.2.0-rc-2023-11-10` - // Return `len` cryptographically-secure random or pseudo-random bytes. - // - // This function must produce data at least as cryptographically secure and - // fast as an adequately seeded cryptographically-secure pseudo-random - // number generator (CSPRNG). It must not block, from the perspective of - // the calling program, under any circumstances, including on the first - // request and on requests for numbers of bytes. The returned data must - // always be unpredictable. - // - // This function must always return fresh data. Deterministic environments - // must omit this function, rather than implementing it with deterministic - // data. - extern void wasi_random_0_2_0_rc_2023_11_10_random_get_random_bytes(uint64_t len, bindings_list_u8_t *ret); - // Return a cryptographically-secure random or pseudo-random `u64` value. - // - // This function returns the same type of data as `get-random-bytes`, - // represented as a `u64`. - extern uint64_t wasi_random_0_2_0_rc_2023_11_10_random_get_random_u64(void); - - // Imported Functions from `wasi:random/insecure@0.2.0-rc-2023-11-10` - // Return `len` insecure pseudo-random bytes. - // - // This function is not cryptographically secure. Do not use it for - // anything related to security. - // - // There are no requirements on the values of the returned bytes, however - // implementations are encouraged to return evenly distributed values with - // a long period. - extern void wasi_random_0_2_0_rc_2023_11_10_insecure_get_insecure_random_bytes(uint64_t len, bindings_list_u8_t *ret); - // Return an insecure pseudo-random `u64` value. - // - // This function returns the same type of pseudo-random data as - // `get-insecure-random-bytes`, represented as a `u64`. - extern uint64_t wasi_random_0_2_0_rc_2023_11_10_insecure_get_insecure_random_u64(void); - - // Imported Functions from `wasi:random/insecure-seed@0.2.0-rc-2023-11-10` - // Return a 128-bit value that may contain a pseudo-random value. - // - // The returned value is not required to be computed from a CSPRNG, and may - // even be entirely deterministic. Host implementations are encouraged to - // provide pseudo-random values to any program exposed to - // attacker-controlled content, to enable DoS protection built into many - // languages' hash-map implementations. - // - // This function is intended to only be called once, by a source language - // to initialize Denial Of Service (DoS) protection in its hash-map - // implementation. - // - // # Expected future evolution - // - // This will likely be changed to a value import, to prevent it from being - // called multiple times and potentially used for purposes other than DoS - // protection. - extern void wasi_random_0_2_0_rc_2023_11_10_insecure_seed_insecure_seed(bindings_tuple2_u64_u64_t *ret); - - // Imported Functions from `wasi:http/types@0.2.0-rc-2023-12-05` - // Attempts to extract a http-related `error` from the wasi:io `error` - // provided. - // - // Stream operations which return - // `wasi:io/stream/stream-error::last-operation-failed` have a payload of - // type `wasi:io/error/error` with more information about the operation - // that failed. This payload can be passed through to this function to see - // if there's http-related information about the error to return. - // - // Note that this function is fallible because not all io-errors are - // http-related errors. - extern bool wasi_http_0_2_0_rc_2023_12_05_types_http_error_code(wasi_http_0_2_0_rc_2023_12_05_types_borrow_io_error_t err_, wasi_http_0_2_0_rc_2023_12_05_types_error_code_t *ret); - // Construct an empty HTTP Fields. - // - // The resulting `fields` is mutable. - extern wasi_http_0_2_0_rc_2023_12_05_types_own_fields_t wasi_http_0_2_0_rc_2023_12_05_types_constructor_fields(void); - // Construct an HTTP Fields. - // - // The resulting `fields` is mutable. - // - // The list represents each key-value pair in the Fields. Keys - // which have multiple values are represented by multiple entries in this - // list with the same key. - // - // The tuple is a pair of the field key, represented as a string, and - // Value, represented as a list of bytes. In a valid Fields, all keys - // and values are valid UTF-8 strings. However, values are not always - // well-formed, so they are represented as a raw list of bytes. - // - // An error result will be returned if any header or value was - // syntactically invalid, or if a header was forbidden. - extern bool wasi_http_0_2_0_rc_2023_12_05_types_static_fields_from_list(bindings_list_tuple2_field_key_field_value_t *entries, wasi_http_0_2_0_rc_2023_12_05_types_own_fields_t *ret, wasi_http_0_2_0_rc_2023_12_05_types_header_error_t *err); - // Get all of the values corresponding to a key. If the key is not present - // in this `fields`, an empty list is returned. However, if the key is - // present but empty, this is represented by a list with one or more - // empty field-values present. - extern void wasi_http_0_2_0_rc_2023_12_05_types_method_fields_get(wasi_http_0_2_0_rc_2023_12_05_types_borrow_fields_t self, wasi_http_0_2_0_rc_2023_12_05_types_field_key_t *name, bindings_list_field_value_t *ret); - // Returns `true` when the key is present in this `fields`. If the key is - // syntactically invalid, `false` is returned. - extern bool wasi_http_0_2_0_rc_2023_12_05_types_method_fields_has(wasi_http_0_2_0_rc_2023_12_05_types_borrow_fields_t self, wasi_http_0_2_0_rc_2023_12_05_types_field_key_t *name); - // Set all of the values for a key. Clears any existing values for that - // key, if they have been set. - // - // Fails with `header-error.immutable` if the `fields` are immutable. - extern bool wasi_http_0_2_0_rc_2023_12_05_types_method_fields_set(wasi_http_0_2_0_rc_2023_12_05_types_borrow_fields_t self, wasi_http_0_2_0_rc_2023_12_05_types_field_key_t *name, bindings_list_field_value_t *value, wasi_http_0_2_0_rc_2023_12_05_types_header_error_t *err); - // Delete all values for a key. Does nothing if no values for the key - // exist. - // - // Fails with `header-error.immutable` if the `fields` are immutable. - extern bool wasi_http_0_2_0_rc_2023_12_05_types_method_fields_delete(wasi_http_0_2_0_rc_2023_12_05_types_borrow_fields_t self, wasi_http_0_2_0_rc_2023_12_05_types_field_key_t *name, wasi_http_0_2_0_rc_2023_12_05_types_header_error_t *err); - // Append a value for a key. Does not change or delete any existing - // values for that key. - // - // Fails with `header-error.immutable` if the `fields` are immutable. - extern bool wasi_http_0_2_0_rc_2023_12_05_types_method_fields_append(wasi_http_0_2_0_rc_2023_12_05_types_borrow_fields_t self, wasi_http_0_2_0_rc_2023_12_05_types_field_key_t *name, wasi_http_0_2_0_rc_2023_12_05_types_field_value_t *value, wasi_http_0_2_0_rc_2023_12_05_types_header_error_t *err); - // Retrieve the full set of keys and values in the Fields. Like the - // constructor, the list represents each key-value pair. - // - // The outer list represents each key-value pair in the Fields. Keys - // which have multiple values are represented by multiple entries in this - // list with the same key. - extern void wasi_http_0_2_0_rc_2023_12_05_types_method_fields_entries(wasi_http_0_2_0_rc_2023_12_05_types_borrow_fields_t self, bindings_list_tuple2_field_key_field_value_t *ret); - // Make a deep copy of the Fields. Equivelant in behavior to calling the - // `fields` constructor on the return value of `entries`. The resulting - // `fields` is mutable. - extern wasi_http_0_2_0_rc_2023_12_05_types_own_fields_t wasi_http_0_2_0_rc_2023_12_05_types_method_fields_clone(wasi_http_0_2_0_rc_2023_12_05_types_borrow_fields_t self); - // Returns the method of the incoming request. - extern void wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_request_method(wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_request_t self, wasi_http_0_2_0_rc_2023_12_05_types_method_t *ret); - // Returns the path with query parameters from the request, as a string. - extern bool wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_request_path_with_query(wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_request_t self, bindings_string_t *ret); - // Returns the protocol scheme from the request. - extern bool wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_request_scheme(wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_request_t self, wasi_http_0_2_0_rc_2023_12_05_types_scheme_t *ret); - // Returns the authority from the request, if it was present. - extern bool wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_request_authority(wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_request_t self, bindings_string_t *ret); - // Get the `headers` associated with the request. - // - // The returned `headers` resource is immutable: `set`, `append`, and - // `delete` operations will fail with `header-error.immutable`. - // - // The `headers` returned are a child resource: it must be dropped before - // the parent `incoming-request` is dropped. Dropping this - // `incoming-request` before all children are dropped will trap. - extern wasi_http_0_2_0_rc_2023_12_05_types_own_headers_t wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_request_headers(wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_request_t self); - // Gives the `incoming-body` associated with this request. Will only - // return success at most once, and subsequent calls will return error. - extern bool wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_request_consume(wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_request_t self, wasi_http_0_2_0_rc_2023_12_05_types_own_incoming_body_t *ret); - // Construct a new `outgoing-request` with a default `method` of `GET`, and - // `none` values for `path-with-query`, `scheme`, and `authority`. - // - // * `headers` is the HTTP Headers for the Request. - // - // It is possible to construct, or manipulate with the accessor functions - // below, an `outgoing-request` with an invalid combination of `scheme` - // and `authority`, or `headers` which are not permitted to be sent. - // It is the obligation of the `outgoing-handler.handle` implementation - // to reject invalid constructions of `outgoing-request`. - extern wasi_http_0_2_0_rc_2023_12_05_types_own_outgoing_request_t wasi_http_0_2_0_rc_2023_12_05_types_constructor_outgoing_request(wasi_http_0_2_0_rc_2023_12_05_types_own_headers_t headers); - // Returns the resource corresponding to the outgoing Body for this - // Request. - // - // Returns success on the first call: the `outgoing-body` resource for - // this `outgoing-request` can be retrieved at most once. Subsequent - // calls will return error. - extern bool wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_body(wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_request_t self, wasi_http_0_2_0_rc_2023_12_05_types_own_outgoing_body_t *ret); - // Get the Method for the Request. - extern void wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_method(wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_request_t self, wasi_http_0_2_0_rc_2023_12_05_types_method_t *ret); - // Set the Method for the Request. Fails if the string present in a - // `method.other` argument is not a syntactically valid method. - extern bool wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_set_method(wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_request_t self, wasi_http_0_2_0_rc_2023_12_05_types_method_t *method); - // Get the combination of the HTTP Path and Query for the Request. - // When `none`, this represents an empty Path and empty Query. - extern bool wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_path_with_query(wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_request_t self, bindings_string_t *ret); - // Set the combination of the HTTP Path and Query for the Request. - // When `none`, this represents an empty Path and empty Query. Fails is the - // string given is not a syntactically valid path and query uri component. - extern bool wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_set_path_with_query(wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_request_t self, bindings_string_t *maybe_path_with_query); - // Get the HTTP Related Scheme for the Request. When `none`, the - // implementation may choose an appropriate default scheme. - extern bool wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_scheme(wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_request_t self, wasi_http_0_2_0_rc_2023_12_05_types_scheme_t *ret); - // Set the HTTP Related Scheme for the Request. When `none`, the - // implementation may choose an appropriate default scheme. Fails if the - // string given is not a syntactically valid uri scheme. - extern bool wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_set_scheme(wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_request_t self, wasi_http_0_2_0_rc_2023_12_05_types_scheme_t *maybe_scheme); - // Get the HTTP Authority for the Request. A value of `none` may be used - // with Related Schemes which do not require an Authority. The HTTP and - // HTTPS schemes always require an authority. - extern bool wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_authority(wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_request_t self, bindings_string_t *ret); - // Set the HTTP Authority for the Request. A value of `none` may be used - // with Related Schemes which do not require an Authority. The HTTP and - // HTTPS schemes always require an authority. Fails if the string given is - // not a syntactically valid uri authority. - extern bool wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_set_authority(wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_request_t self, bindings_string_t *maybe_authority); - // Get the headers associated with the Request. - // - // The returned `headers` resource is immutable: `set`, `append`, and - // `delete` operations will fail with `header-error.immutable`. - // - // This headers resource is a child: it must be dropped before the parent - // `outgoing-request` is dropped, or its ownership is transfered to - // another component by e.g. `outgoing-handler.handle`. - extern wasi_http_0_2_0_rc_2023_12_05_types_own_headers_t wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_headers(wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_request_t self); - // Construct a default `request-options` value. - extern wasi_http_0_2_0_rc_2023_12_05_types_own_request_options_t wasi_http_0_2_0_rc_2023_12_05_types_constructor_request_options(void); - // The timeout for the initial connect to the HTTP Server. - extern bool wasi_http_0_2_0_rc_2023_12_05_types_method_request_options_connect_timeout(wasi_http_0_2_0_rc_2023_12_05_types_borrow_request_options_t self, wasi_http_0_2_0_rc_2023_12_05_types_duration_t *ret); - // Set the timeout for the initial connect to the HTTP Server. An error - // return value indicates that this timeout is not supported. - extern bool wasi_http_0_2_0_rc_2023_12_05_types_method_request_options_set_connect_timeout(wasi_http_0_2_0_rc_2023_12_05_types_borrow_request_options_t self, wasi_http_0_2_0_rc_2023_12_05_types_duration_t *maybe_duration); - // The timeout for receiving the first byte of the Response body. - extern bool wasi_http_0_2_0_rc_2023_12_05_types_method_request_options_first_byte_timeout(wasi_http_0_2_0_rc_2023_12_05_types_borrow_request_options_t self, wasi_http_0_2_0_rc_2023_12_05_types_duration_t *ret); - // Set the timeout for receiving the first byte of the Response body. An - // error return value indicates that this timeout is not supported. - extern bool wasi_http_0_2_0_rc_2023_12_05_types_method_request_options_set_first_byte_timeout(wasi_http_0_2_0_rc_2023_12_05_types_borrow_request_options_t self, wasi_http_0_2_0_rc_2023_12_05_types_duration_t *maybe_duration); - // The timeout for receiving subsequent chunks of bytes in the Response - // body stream. - extern bool wasi_http_0_2_0_rc_2023_12_05_types_method_request_options_between_bytes_timeout(wasi_http_0_2_0_rc_2023_12_05_types_borrow_request_options_t self, wasi_http_0_2_0_rc_2023_12_05_types_duration_t *ret); - // Set the timeout for receiving subsequent chunks of bytes in the Response - // body stream. An error return value indicates that this timeout is not - // supported. - extern bool wasi_http_0_2_0_rc_2023_12_05_types_method_request_options_set_between_bytes_timeout(wasi_http_0_2_0_rc_2023_12_05_types_borrow_request_options_t self, wasi_http_0_2_0_rc_2023_12_05_types_duration_t *maybe_duration); - // Set the value of the `response-outparam` to either send a response, - // or indicate an error. - // - // This method consumes the `response-outparam` to ensure that it is - // called at most once. If it is never called, the implementation - // will respond with an error. - // - // The user may provide an `error` to `response` to allow the - // implementation determine how to respond with an HTTP error response. - extern void wasi_http_0_2_0_rc_2023_12_05_types_static_response_outparam_set(wasi_http_0_2_0_rc_2023_12_05_types_own_response_outparam_t param, wasi_http_0_2_0_rc_2023_12_05_types_result_own_outgoing_response_error_code_t *response); - // Returns the status code from the incoming response. - extern wasi_http_0_2_0_rc_2023_12_05_types_status_code_t wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_response_status(wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_response_t self); - // Returns the headers from the incoming response. - // - // The returned `headers` resource is immutable: `set`, `append`, and - // `delete` operations will fail with `header-error.immutable`. - // - // This headers resource is a child: it must be dropped before the parent - // `incoming-response` is dropped. - extern wasi_http_0_2_0_rc_2023_12_05_types_own_headers_t wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_response_headers(wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_response_t self); - // Returns the incoming body. May be called at most once. Returns error - // if called additional times. - extern bool wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_response_consume(wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_response_t self, wasi_http_0_2_0_rc_2023_12_05_types_own_incoming_body_t *ret); - // Returns the contents of the body, as a stream of bytes. - // - // Returns success on first call: the stream representing the contents - // can be retrieved at most once. Subsequent calls will return error. - // - // The returned `input-stream` resource is a child: it must be dropped - // before the parent `incoming-body` is dropped, or consumed by - // `incoming-body.finish`. - // - // This invariant ensures that the implementation can determine whether - // the user is consuming the contents of the body, waiting on the - // `future-trailers` to be ready, or neither. This allows for network - // backpressure is to be applied when the user is consuming the body, - // and for that backpressure to not inhibit delivery of the trailers if - // the user does not read the entire body. - extern bool wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_body_stream(wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_body_t self, wasi_http_0_2_0_rc_2023_12_05_types_own_input_stream_t *ret); - // Takes ownership of `incoming-body`, and returns a `future-trailers`. - // This function will trap if the `input-stream` child is still alive. - extern wasi_http_0_2_0_rc_2023_12_05_types_own_future_trailers_t wasi_http_0_2_0_rc_2023_12_05_types_static_incoming_body_finish(wasi_http_0_2_0_rc_2023_12_05_types_own_incoming_body_t this_); - // Returns a pollable which becomes ready when either the trailers have - // been received, or an error has occured. When this pollable is ready, - // the `get` method will return `some`. - extern wasi_http_0_2_0_rc_2023_12_05_types_own_pollable_t wasi_http_0_2_0_rc_2023_12_05_types_method_future_trailers_subscribe(wasi_http_0_2_0_rc_2023_12_05_types_borrow_future_trailers_t self); - // Returns the contents of the trailers, or an error which occured, - // once the future is ready. - // - // The outer `option` represents future readiness. Users can wait on this - // `option` to become `some` using the `subscribe` method. - // - // The outer `result` is used to retrieve the trailers or error at most - // once. It will be success on the first call in which the outer option - // is `some`, and error on subsequent calls. - // - // The inner `result` represents that either the HTTP Request or Response - // body, as well as any trailers, were received successfully, or that an - // error occured receiving them. The optional `trailers` indicates whether - // or not trailers were present in the body. - // - // When some `trailers` are returned by this method, the `trailers` - // resource is immutable, and a child. Use of the `set`, `append`, or - // `delete` methods will return an error, and the resource must be - // dropped before the parent `future-trailers` is dropped. - extern bool wasi_http_0_2_0_rc_2023_12_05_types_method_future_trailers_get(wasi_http_0_2_0_rc_2023_12_05_types_borrow_future_trailers_t self, wasi_http_0_2_0_rc_2023_12_05_types_result_result_option_own_trailers_error_code_void_t *ret); - // Construct an `outgoing-response`, with a default `status-code` of `200`. - // If a different `status-code` is needed, it must be set via the - // `set-status-code` method. - // - // * `headers` is the HTTP Headers for the Response. - extern wasi_http_0_2_0_rc_2023_12_05_types_own_outgoing_response_t wasi_http_0_2_0_rc_2023_12_05_types_constructor_outgoing_response(wasi_http_0_2_0_rc_2023_12_05_types_own_headers_t headers); - // Get the HTTP Status Code for the Response. - extern wasi_http_0_2_0_rc_2023_12_05_types_status_code_t wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_response_status_code(wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_response_t self); - // Set the HTTP Status Code for the Response. Fails if the status-code - // given is not a valid http status code. - extern bool wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_response_set_status_code(wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_response_t self, wasi_http_0_2_0_rc_2023_12_05_types_status_code_t status_code); - // Get the headers associated with the Request. - // - // The returned `headers` resource is immutable: `set`, `append`, and - // `delete` operations will fail with `header-error.immutable`. - // - // This headers resource is a child: it must be dropped before the parent - // `outgoing-request` is dropped, or its ownership is transfered to - // another component by e.g. `outgoing-handler.handle`. - extern wasi_http_0_2_0_rc_2023_12_05_types_own_headers_t wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_response_headers(wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_response_t self); - // Returns the resource corresponding to the outgoing Body for this Response. - // - // Returns success on the first call: the `outgoing-body` resource for - // this `outgoing-response` can be retrieved at most once. Subsequent - // calls will return error. - extern bool wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_response_body(wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_response_t self, wasi_http_0_2_0_rc_2023_12_05_types_own_outgoing_body_t *ret); - // Returns a stream for writing the body contents. - // - // The returned `output-stream` is a child resource: it must be dropped - // before the parent `outgoing-body` resource is dropped (or finished), - // otherwise the `outgoing-body` drop or `finish` will trap. - // - // Returns success on the first call: the `output-stream` resource for - // this `outgoing-body` may be retrieved at most once. Subsequent calls - // will return error. - extern bool wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_body_write(wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_body_t self, wasi_http_0_2_0_rc_2023_12_05_types_own_output_stream_t *ret); - // Finalize an outgoing body, optionally providing trailers. This must be - // called to signal that the response is complete. If the `outgoing-body` - // is dropped without calling `outgoing-body.finalize`, the implementation - // should treat the body as corrupted. - // - // Fails if the body's `outgoing-request` or `outgoing-response` was - // constructed with a Content-Length header, and the contents written - // to the body (via `write`) does not match the value given in the - // Content-Length. - extern bool wasi_http_0_2_0_rc_2023_12_05_types_static_outgoing_body_finish(wasi_http_0_2_0_rc_2023_12_05_types_own_outgoing_body_t this_, wasi_http_0_2_0_rc_2023_12_05_types_own_trailers_t *maybe_trailers, wasi_http_0_2_0_rc_2023_12_05_types_error_code_t *err); - // Returns a pollable which becomes ready when either the Response has - // been received, or an error has occured. When this pollable is ready, - // the `get` method will return `some`. - extern wasi_http_0_2_0_rc_2023_12_05_types_own_pollable_t wasi_http_0_2_0_rc_2023_12_05_types_method_future_incoming_response_subscribe(wasi_http_0_2_0_rc_2023_12_05_types_borrow_future_incoming_response_t self); - // Returns the incoming HTTP Response, or an error, once one is ready. - // - // The outer `option` represents future readiness. Users can wait on this - // `option` to become `some` using the `subscribe` method. - // - // The outer `result` is used to retrieve the response or error at most - // once. It will be success on the first call in which the outer option - // is `some`, and error on subsequent calls. - // - // The inner `result` represents that either the incoming HTTP Response - // status and headers have recieved successfully, or that an error - // occured. Errors may also occur while consuming the response body, - // but those will be reported by the `incoming-body` and its - // `output-stream` child. - extern bool wasi_http_0_2_0_rc_2023_12_05_types_method_future_incoming_response_get(wasi_http_0_2_0_rc_2023_12_05_types_borrow_future_incoming_response_t self, wasi_http_0_2_0_rc_2023_12_05_types_result_result_own_incoming_response_error_code_void_t *ret); - - // Imported Functions from `wasi:http/outgoing-handler@0.2.0-rc-2023-12-05` - // This function is invoked with an outgoing HTTP Request, and it returns - // a resource `future-incoming-response` which represents an HTTP Response - // which may arrive in the future. - // - // The `options` argument accepts optional parameters for the HTTP - // protocol's transport layer. - // - // This function may return an error if the `outgoing-request` is invalid - // or not allowed to be made. Otherwise, protocol errors are reported - // through the `future-incoming-response`. - extern bool wasi_http_0_2_0_rc_2023_12_05_outgoing_handler_handle(wasi_http_0_2_0_rc_2023_12_05_outgoing_handler_own_outgoing_request_t request, wasi_http_0_2_0_rc_2023_12_05_outgoing_handler_own_request_options_t *maybe_options, wasi_http_0_2_0_rc_2023_12_05_outgoing_handler_own_future_incoming_response_t *ret, wasi_http_0_2_0_rc_2023_12_05_outgoing_handler_error_code_t *err); - - // Exported Functions from `wasi:cli/run@0.2.0-rc-2023-12-05` - bool exports_wasi_cli_0_2_0_rc_2023_12_05_run_run(void); - - // Exported Functions from `wasi:http/incoming-handler@0.2.0-rc-2023-12-05` - void exports_wasi_http_0_2_0_rc_2023_12_05_incoming_handler_handle(exports_wasi_http_0_2_0_rc_2023_12_05_incoming_handler_own_incoming_request_t request, exports_wasi_http_0_2_0_rc_2023_12_05_incoming_handler_own_response_outparam_t response_out); - - // Helper Functions - - void bindings_tuple2_string_string_free(bindings_tuple2_string_string_t *ptr); - - void bindings_list_tuple2_string_string_free(bindings_list_tuple2_string_string_t *ptr); - - void bindings_list_string_free(bindings_list_string_t *ptr); - - void bindings_option_string_free(bindings_option_string_t *ptr); - - void wasi_cli_0_2_0_rc_2023_12_05_exit_result_void_void_free(wasi_cli_0_2_0_rc_2023_12_05_exit_result_void_void_t *ptr); - - extern void wasi_io_0_2_0_rc_2023_11_10_error_error_drop_own(wasi_io_0_2_0_rc_2023_11_10_error_own_error_t handle); - extern void wasi_io_0_2_0_rc_2023_11_10_error_error_drop_borrow(wasi_io_0_2_0_rc_2023_11_10_error_own_error_t handle); - - extern wasi_io_0_2_0_rc_2023_11_10_error_borrow_error_t wasi_io_0_2_0_rc_2023_11_10_error_borrow_error(wasi_io_0_2_0_rc_2023_11_10_error_own_error_t handle); - - extern void wasi_io_0_2_0_rc_2023_11_10_poll_pollable_drop_own(wasi_io_0_2_0_rc_2023_11_10_poll_own_pollable_t handle); - extern void wasi_io_0_2_0_rc_2023_11_10_poll_pollable_drop_borrow(wasi_io_0_2_0_rc_2023_11_10_poll_own_pollable_t handle); - - extern wasi_io_0_2_0_rc_2023_11_10_poll_borrow_pollable_t wasi_io_0_2_0_rc_2023_11_10_poll_borrow_pollable(wasi_io_0_2_0_rc_2023_11_10_poll_own_pollable_t handle); - - void wasi_io_0_2_0_rc_2023_11_10_poll_list_borrow_pollable_free(wasi_io_0_2_0_rc_2023_11_10_poll_list_borrow_pollable_t *ptr); - - void bindings_list_u32_free(bindings_list_u32_t *ptr); - - void wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_free(wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t *ptr); - - extern void wasi_io_0_2_0_rc_2023_11_10_streams_input_stream_drop_own(wasi_io_0_2_0_rc_2023_11_10_streams_own_input_stream_t handle); - extern void wasi_io_0_2_0_rc_2023_11_10_streams_input_stream_drop_borrow(wasi_io_0_2_0_rc_2023_11_10_streams_own_input_stream_t handle); - - extern wasi_io_0_2_0_rc_2023_11_10_streams_borrow_input_stream_t wasi_io_0_2_0_rc_2023_11_10_streams_borrow_input_stream(wasi_io_0_2_0_rc_2023_11_10_streams_own_input_stream_t handle); - - extern void wasi_io_0_2_0_rc_2023_11_10_streams_output_stream_drop_own(wasi_io_0_2_0_rc_2023_11_10_streams_own_output_stream_t handle); - extern void wasi_io_0_2_0_rc_2023_11_10_streams_output_stream_drop_borrow(wasi_io_0_2_0_rc_2023_11_10_streams_own_output_stream_t handle); - - extern wasi_io_0_2_0_rc_2023_11_10_streams_borrow_output_stream_t wasi_io_0_2_0_rc_2023_11_10_streams_borrow_output_stream(wasi_io_0_2_0_rc_2023_11_10_streams_own_output_stream_t handle); - - void bindings_list_u8_free(bindings_list_u8_t *ptr); - - void wasi_io_0_2_0_rc_2023_11_10_streams_result_list_u8_stream_error_free(wasi_io_0_2_0_rc_2023_11_10_streams_result_list_u8_stream_error_t *ptr); - - void wasi_io_0_2_0_rc_2023_11_10_streams_result_u64_stream_error_free(wasi_io_0_2_0_rc_2023_11_10_streams_result_u64_stream_error_t *ptr); - - void wasi_io_0_2_0_rc_2023_11_10_streams_result_void_stream_error_free(wasi_io_0_2_0_rc_2023_11_10_streams_result_void_stream_error_t *ptr); - - extern void wasi_cli_0_2_0_rc_2023_12_05_terminal_input_terminal_input_drop_own(wasi_cli_0_2_0_rc_2023_12_05_terminal_input_own_terminal_input_t handle); - extern void wasi_cli_0_2_0_rc_2023_12_05_terminal_input_terminal_input_drop_borrow(wasi_cli_0_2_0_rc_2023_12_05_terminal_input_own_terminal_input_t handle); - - extern wasi_cli_0_2_0_rc_2023_12_05_terminal_input_borrow_terminal_input_t wasi_cli_0_2_0_rc_2023_12_05_terminal_input_borrow_terminal_input(wasi_cli_0_2_0_rc_2023_12_05_terminal_input_own_terminal_input_t handle); - - extern void wasi_cli_0_2_0_rc_2023_12_05_terminal_output_terminal_output_drop_own(wasi_cli_0_2_0_rc_2023_12_05_terminal_output_own_terminal_output_t handle); - extern void wasi_cli_0_2_0_rc_2023_12_05_terminal_output_terminal_output_drop_borrow(wasi_cli_0_2_0_rc_2023_12_05_terminal_output_own_terminal_output_t handle); - - extern wasi_cli_0_2_0_rc_2023_12_05_terminal_output_borrow_terminal_output_t wasi_cli_0_2_0_rc_2023_12_05_terminal_output_borrow_terminal_output(wasi_cli_0_2_0_rc_2023_12_05_terminal_output_own_terminal_output_t handle); - - void wasi_cli_0_2_0_rc_2023_12_05_terminal_stdin_option_own_terminal_input_free(wasi_cli_0_2_0_rc_2023_12_05_terminal_stdin_option_own_terminal_input_t *ptr); - - void wasi_cli_0_2_0_rc_2023_12_05_terminal_stdout_option_own_terminal_output_free(wasi_cli_0_2_0_rc_2023_12_05_terminal_stdout_option_own_terminal_output_t *ptr); - - void wasi_cli_0_2_0_rc_2023_12_05_terminal_stderr_option_own_terminal_output_free(wasi_cli_0_2_0_rc_2023_12_05_terminal_stderr_option_own_terminal_output_t *ptr); - - void wasi_filesystem_0_2_0_rc_2023_11_10_types_option_datetime_free(wasi_filesystem_0_2_0_rc_2023_11_10_types_option_datetime_t *ptr); - - void wasi_filesystem_0_2_0_rc_2023_11_10_types_descriptor_stat_free(wasi_filesystem_0_2_0_rc_2023_11_10_types_descriptor_stat_t *ptr); - - void wasi_filesystem_0_2_0_rc_2023_11_10_types_new_timestamp_free(wasi_filesystem_0_2_0_rc_2023_11_10_types_new_timestamp_t *ptr); - - void wasi_filesystem_0_2_0_rc_2023_11_10_types_directory_entry_free(wasi_filesystem_0_2_0_rc_2023_11_10_types_directory_entry_t *ptr); - - extern void wasi_filesystem_0_2_0_rc_2023_11_10_types_descriptor_drop_own(wasi_filesystem_0_2_0_rc_2023_11_10_types_own_descriptor_t handle); - extern void wasi_filesystem_0_2_0_rc_2023_11_10_types_descriptor_drop_borrow(wasi_filesystem_0_2_0_rc_2023_11_10_types_own_descriptor_t handle); - - extern wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor_t wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_descriptor(wasi_filesystem_0_2_0_rc_2023_11_10_types_own_descriptor_t handle); - - extern void wasi_filesystem_0_2_0_rc_2023_11_10_types_directory_entry_stream_drop_own(wasi_filesystem_0_2_0_rc_2023_11_10_types_own_directory_entry_stream_t handle); - extern void wasi_filesystem_0_2_0_rc_2023_11_10_types_directory_entry_stream_drop_borrow(wasi_filesystem_0_2_0_rc_2023_11_10_types_own_directory_entry_stream_t handle); - - extern wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_directory_entry_stream_t wasi_filesystem_0_2_0_rc_2023_11_10_types_borrow_directory_entry_stream(wasi_filesystem_0_2_0_rc_2023_11_10_types_own_directory_entry_stream_t handle); - - void wasi_filesystem_0_2_0_rc_2023_11_10_types_result_own_input_stream_error_code_free(wasi_filesystem_0_2_0_rc_2023_11_10_types_result_own_input_stream_error_code_t *ptr); - - void wasi_filesystem_0_2_0_rc_2023_11_10_types_result_own_output_stream_error_code_free(wasi_filesystem_0_2_0_rc_2023_11_10_types_result_own_output_stream_error_code_t *ptr); - - void wasi_filesystem_0_2_0_rc_2023_11_10_types_result_void_error_code_free(wasi_filesystem_0_2_0_rc_2023_11_10_types_result_void_error_code_t *ptr); - - void wasi_filesystem_0_2_0_rc_2023_11_10_types_result_descriptor_flags_error_code_free(wasi_filesystem_0_2_0_rc_2023_11_10_types_result_descriptor_flags_error_code_t *ptr); - - void wasi_filesystem_0_2_0_rc_2023_11_10_types_result_descriptor_type_error_code_free(wasi_filesystem_0_2_0_rc_2023_11_10_types_result_descriptor_type_error_code_t *ptr); - - void wasi_filesystem_0_2_0_rc_2023_11_10_types_result_tuple2_list_u8_bool_error_code_free(wasi_filesystem_0_2_0_rc_2023_11_10_types_result_tuple2_list_u8_bool_error_code_t *ptr); - - void wasi_filesystem_0_2_0_rc_2023_11_10_types_result_filesize_error_code_free(wasi_filesystem_0_2_0_rc_2023_11_10_types_result_filesize_error_code_t *ptr); - - void wasi_filesystem_0_2_0_rc_2023_11_10_types_result_own_directory_entry_stream_error_code_free(wasi_filesystem_0_2_0_rc_2023_11_10_types_result_own_directory_entry_stream_error_code_t *ptr); - - void wasi_filesystem_0_2_0_rc_2023_11_10_types_result_descriptor_stat_error_code_free(wasi_filesystem_0_2_0_rc_2023_11_10_types_result_descriptor_stat_error_code_t *ptr); - - void wasi_filesystem_0_2_0_rc_2023_11_10_types_result_own_descriptor_error_code_free(wasi_filesystem_0_2_0_rc_2023_11_10_types_result_own_descriptor_error_code_t *ptr); - - void wasi_filesystem_0_2_0_rc_2023_11_10_types_result_string_error_code_free(wasi_filesystem_0_2_0_rc_2023_11_10_types_result_string_error_code_t *ptr); - - void wasi_filesystem_0_2_0_rc_2023_11_10_types_result_metadata_hash_value_error_code_free(wasi_filesystem_0_2_0_rc_2023_11_10_types_result_metadata_hash_value_error_code_t *ptr); - - void wasi_filesystem_0_2_0_rc_2023_11_10_types_option_directory_entry_free(wasi_filesystem_0_2_0_rc_2023_11_10_types_option_directory_entry_t *ptr); - - void wasi_filesystem_0_2_0_rc_2023_11_10_types_result_option_directory_entry_error_code_free(wasi_filesystem_0_2_0_rc_2023_11_10_types_result_option_directory_entry_error_code_t *ptr); - - void wasi_filesystem_0_2_0_rc_2023_11_10_types_option_error_code_free(wasi_filesystem_0_2_0_rc_2023_11_10_types_option_error_code_t *ptr); - - void wasi_filesystem_0_2_0_rc_2023_11_10_preopens_tuple2_own_descriptor_string_free(wasi_filesystem_0_2_0_rc_2023_11_10_preopens_tuple2_own_descriptor_string_t *ptr); - - void wasi_filesystem_0_2_0_rc_2023_11_10_preopens_list_tuple2_own_descriptor_string_free(wasi_filesystem_0_2_0_rc_2023_11_10_preopens_list_tuple2_own_descriptor_string_t *ptr); - - extern void wasi_sockets_0_2_0_rc_2023_11_10_network_network_drop_own(wasi_sockets_0_2_0_rc_2023_11_10_network_own_network_t handle); - extern void wasi_sockets_0_2_0_rc_2023_11_10_network_network_drop_borrow(wasi_sockets_0_2_0_rc_2023_11_10_network_own_network_t handle); - - extern wasi_sockets_0_2_0_rc_2023_11_10_network_borrow_network_t wasi_sockets_0_2_0_rc_2023_11_10_network_borrow_network(wasi_sockets_0_2_0_rc_2023_11_10_network_own_network_t handle); - - void wasi_sockets_0_2_0_rc_2023_11_10_network_ip_address_free(wasi_sockets_0_2_0_rc_2023_11_10_network_ip_address_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_11_10_network_ip_socket_address_free(wasi_sockets_0_2_0_rc_2023_11_10_network_ip_socket_address_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_11_10_udp_ip_socket_address_free(wasi_sockets_0_2_0_rc_2023_11_10_udp_ip_socket_address_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_11_10_udp_incoming_datagram_free(wasi_sockets_0_2_0_rc_2023_11_10_udp_incoming_datagram_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_11_10_udp_option_ip_socket_address_free(wasi_sockets_0_2_0_rc_2023_11_10_udp_option_ip_socket_address_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_11_10_udp_outgoing_datagram_free(wasi_sockets_0_2_0_rc_2023_11_10_udp_outgoing_datagram_t *ptr); - - extern void wasi_sockets_0_2_0_rc_2023_11_10_udp_udp_socket_drop_own(wasi_sockets_0_2_0_rc_2023_11_10_udp_own_udp_socket_t handle); - extern void wasi_sockets_0_2_0_rc_2023_11_10_udp_udp_socket_drop_borrow(wasi_sockets_0_2_0_rc_2023_11_10_udp_own_udp_socket_t handle); - - extern wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_udp_socket_t wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_udp_socket(wasi_sockets_0_2_0_rc_2023_11_10_udp_own_udp_socket_t handle); - - extern void wasi_sockets_0_2_0_rc_2023_11_10_udp_incoming_datagram_stream_drop_own(wasi_sockets_0_2_0_rc_2023_11_10_udp_own_incoming_datagram_stream_t handle); - extern void wasi_sockets_0_2_0_rc_2023_11_10_udp_incoming_datagram_stream_drop_borrow(wasi_sockets_0_2_0_rc_2023_11_10_udp_own_incoming_datagram_stream_t handle); - - extern wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_incoming_datagram_stream_t wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_incoming_datagram_stream(wasi_sockets_0_2_0_rc_2023_11_10_udp_own_incoming_datagram_stream_t handle); - - extern void wasi_sockets_0_2_0_rc_2023_11_10_udp_outgoing_datagram_stream_drop_own(wasi_sockets_0_2_0_rc_2023_11_10_udp_own_outgoing_datagram_stream_t handle); - extern void wasi_sockets_0_2_0_rc_2023_11_10_udp_outgoing_datagram_stream_drop_borrow(wasi_sockets_0_2_0_rc_2023_11_10_udp_own_outgoing_datagram_stream_t handle); - - extern wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_outgoing_datagram_stream_t wasi_sockets_0_2_0_rc_2023_11_10_udp_borrow_outgoing_datagram_stream(wasi_sockets_0_2_0_rc_2023_11_10_udp_own_outgoing_datagram_stream_t handle); - - void wasi_sockets_0_2_0_rc_2023_11_10_udp_result_void_error_code_free(wasi_sockets_0_2_0_rc_2023_11_10_udp_result_void_error_code_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_11_10_udp_result_tuple2_own_incoming_datagram_stream_own_outgoing_datagram_stream_error_code_free(wasi_sockets_0_2_0_rc_2023_11_10_udp_result_tuple2_own_incoming_datagram_stream_own_outgoing_datagram_stream_error_code_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_11_10_udp_result_ip_socket_address_error_code_free(wasi_sockets_0_2_0_rc_2023_11_10_udp_result_ip_socket_address_error_code_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_11_10_udp_result_bool_error_code_free(wasi_sockets_0_2_0_rc_2023_11_10_udp_result_bool_error_code_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_11_10_udp_result_u8_error_code_free(wasi_sockets_0_2_0_rc_2023_11_10_udp_result_u8_error_code_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_11_10_udp_result_u64_error_code_free(wasi_sockets_0_2_0_rc_2023_11_10_udp_result_u64_error_code_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_11_10_udp_list_incoming_datagram_free(wasi_sockets_0_2_0_rc_2023_11_10_udp_list_incoming_datagram_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_11_10_udp_result_list_incoming_datagram_error_code_free(wasi_sockets_0_2_0_rc_2023_11_10_udp_result_list_incoming_datagram_error_code_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_11_10_udp_list_outgoing_datagram_free(wasi_sockets_0_2_0_rc_2023_11_10_udp_list_outgoing_datagram_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_11_10_udp_create_socket_result_own_udp_socket_error_code_free(wasi_sockets_0_2_0_rc_2023_11_10_udp_create_socket_result_own_udp_socket_error_code_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_11_10_tcp_ip_socket_address_free(wasi_sockets_0_2_0_rc_2023_11_10_tcp_ip_socket_address_t *ptr); - - extern void wasi_sockets_0_2_0_rc_2023_11_10_tcp_tcp_socket_drop_own(wasi_sockets_0_2_0_rc_2023_11_10_tcp_own_tcp_socket_t handle); - extern void wasi_sockets_0_2_0_rc_2023_11_10_tcp_tcp_socket_drop_borrow(wasi_sockets_0_2_0_rc_2023_11_10_tcp_own_tcp_socket_t handle); - - extern wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket_t wasi_sockets_0_2_0_rc_2023_11_10_tcp_borrow_tcp_socket(wasi_sockets_0_2_0_rc_2023_11_10_tcp_own_tcp_socket_t handle); - - void wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_void_error_code_free(wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_void_error_code_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_tuple2_own_input_stream_own_output_stream_error_code_free(wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_tuple2_own_input_stream_own_output_stream_error_code_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_tuple3_own_tcp_socket_own_input_stream_own_output_stream_error_code_free(wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_tuple3_own_tcp_socket_own_input_stream_own_output_stream_error_code_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_ip_socket_address_error_code_free(wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_ip_socket_address_error_code_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_bool_error_code_free(wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_bool_error_code_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_duration_error_code_free(wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_duration_error_code_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_u32_error_code_free(wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_u32_error_code_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_u8_error_code_free(wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_u8_error_code_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_u64_error_code_free(wasi_sockets_0_2_0_rc_2023_11_10_tcp_result_u64_error_code_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_11_10_tcp_create_socket_result_own_tcp_socket_error_code_free(wasi_sockets_0_2_0_rc_2023_11_10_tcp_create_socket_result_own_tcp_socket_error_code_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_ip_address_free(wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_ip_address_t *ptr); - - extern void wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_resolve_address_stream_drop_own(wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_own_resolve_address_stream_t handle); - extern void wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_resolve_address_stream_drop_borrow(wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_own_resolve_address_stream_t handle); - - extern wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_borrow_resolve_address_stream_t wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_borrow_resolve_address_stream(wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_own_resolve_address_stream_t handle); - - void wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_result_own_resolve_address_stream_error_code_free(wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_result_own_resolve_address_stream_error_code_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_option_ip_address_free(wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_option_ip_address_t *ptr); - - void wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_result_option_ip_address_error_code_free(wasi_sockets_0_2_0_rc_2023_11_10_ip_name_lookup_result_option_ip_address_error_code_t *ptr); - - void wasi_http_0_2_0_rc_2023_12_05_types_method_free(wasi_http_0_2_0_rc_2023_12_05_types_method_t *ptr); - - void wasi_http_0_2_0_rc_2023_12_05_types_scheme_free(wasi_http_0_2_0_rc_2023_12_05_types_scheme_t *ptr); - - void bindings_option_u16_free(bindings_option_u16_t *ptr); - - void wasi_http_0_2_0_rc_2023_12_05_types_dns_error_payload_free(wasi_http_0_2_0_rc_2023_12_05_types_dns_error_payload_t *ptr); - - void bindings_option_u8_free(bindings_option_u8_t *ptr); - - void wasi_http_0_2_0_rc_2023_12_05_types_tls_alert_received_payload_free(wasi_http_0_2_0_rc_2023_12_05_types_tls_alert_received_payload_t *ptr); - - void bindings_option_u32_free(bindings_option_u32_t *ptr); - - void wasi_http_0_2_0_rc_2023_12_05_types_field_size_payload_free(wasi_http_0_2_0_rc_2023_12_05_types_field_size_payload_t *ptr); - - void bindings_option_u64_free(bindings_option_u64_t *ptr); - - void wasi_http_0_2_0_rc_2023_12_05_types_option_field_size_payload_free(wasi_http_0_2_0_rc_2023_12_05_types_option_field_size_payload_t *ptr); - - void wasi_http_0_2_0_rc_2023_12_05_types_error_code_free(wasi_http_0_2_0_rc_2023_12_05_types_error_code_t *ptr); - - void wasi_http_0_2_0_rc_2023_12_05_types_header_error_free(wasi_http_0_2_0_rc_2023_12_05_types_header_error_t *ptr); - - void wasi_http_0_2_0_rc_2023_12_05_types_field_key_free(wasi_http_0_2_0_rc_2023_12_05_types_field_key_t *ptr); - - void wasi_http_0_2_0_rc_2023_12_05_types_field_value_free(wasi_http_0_2_0_rc_2023_12_05_types_field_value_t *ptr); - - extern void wasi_http_0_2_0_rc_2023_12_05_types_fields_drop_own(wasi_http_0_2_0_rc_2023_12_05_types_own_fields_t handle); - extern void wasi_http_0_2_0_rc_2023_12_05_types_fields_drop_borrow(wasi_http_0_2_0_rc_2023_12_05_types_own_fields_t handle); - - extern wasi_http_0_2_0_rc_2023_12_05_types_borrow_fields_t wasi_http_0_2_0_rc_2023_12_05_types_borrow_fields(wasi_http_0_2_0_rc_2023_12_05_types_own_fields_t handle); - - extern void wasi_http_0_2_0_rc_2023_12_05_types_incoming_request_drop_own(wasi_http_0_2_0_rc_2023_12_05_types_own_incoming_request_t handle); - extern void wasi_http_0_2_0_rc_2023_12_05_types_incoming_request_drop_borrow(wasi_http_0_2_0_rc_2023_12_05_types_own_incoming_request_t handle); - - extern wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_request_t wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_request(wasi_http_0_2_0_rc_2023_12_05_types_own_incoming_request_t handle); - - extern void wasi_http_0_2_0_rc_2023_12_05_types_outgoing_request_drop_own(wasi_http_0_2_0_rc_2023_12_05_types_own_outgoing_request_t handle); - extern void wasi_http_0_2_0_rc_2023_12_05_types_outgoing_request_drop_borrow(wasi_http_0_2_0_rc_2023_12_05_types_own_outgoing_request_t handle); - - extern wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_request_t wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_request(wasi_http_0_2_0_rc_2023_12_05_types_own_outgoing_request_t handle); - - extern void wasi_http_0_2_0_rc_2023_12_05_types_request_options_drop_own(wasi_http_0_2_0_rc_2023_12_05_types_own_request_options_t handle); - extern void wasi_http_0_2_0_rc_2023_12_05_types_request_options_drop_borrow(wasi_http_0_2_0_rc_2023_12_05_types_own_request_options_t handle); - - extern wasi_http_0_2_0_rc_2023_12_05_types_borrow_request_options_t wasi_http_0_2_0_rc_2023_12_05_types_borrow_request_options(wasi_http_0_2_0_rc_2023_12_05_types_own_request_options_t handle); - - extern void wasi_http_0_2_0_rc_2023_12_05_types_response_outparam_drop_own(wasi_http_0_2_0_rc_2023_12_05_types_own_response_outparam_t handle); - extern void wasi_http_0_2_0_rc_2023_12_05_types_response_outparam_drop_borrow(wasi_http_0_2_0_rc_2023_12_05_types_own_response_outparam_t handle); - - extern wasi_http_0_2_0_rc_2023_12_05_types_borrow_response_outparam_t wasi_http_0_2_0_rc_2023_12_05_types_borrow_response_outparam(wasi_http_0_2_0_rc_2023_12_05_types_own_response_outparam_t handle); - - extern void wasi_http_0_2_0_rc_2023_12_05_types_incoming_response_drop_own(wasi_http_0_2_0_rc_2023_12_05_types_own_incoming_response_t handle); - extern void wasi_http_0_2_0_rc_2023_12_05_types_incoming_response_drop_borrow(wasi_http_0_2_0_rc_2023_12_05_types_own_incoming_response_t handle); - - extern wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_response_t wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_response(wasi_http_0_2_0_rc_2023_12_05_types_own_incoming_response_t handle); - - extern void wasi_http_0_2_0_rc_2023_12_05_types_incoming_body_drop_own(wasi_http_0_2_0_rc_2023_12_05_types_own_incoming_body_t handle); - extern void wasi_http_0_2_0_rc_2023_12_05_types_incoming_body_drop_borrow(wasi_http_0_2_0_rc_2023_12_05_types_own_incoming_body_t handle); - - extern wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_body_t wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_body(wasi_http_0_2_0_rc_2023_12_05_types_own_incoming_body_t handle); - - extern void wasi_http_0_2_0_rc_2023_12_05_types_future_trailers_drop_own(wasi_http_0_2_0_rc_2023_12_05_types_own_future_trailers_t handle); - extern void wasi_http_0_2_0_rc_2023_12_05_types_future_trailers_drop_borrow(wasi_http_0_2_0_rc_2023_12_05_types_own_future_trailers_t handle); - - extern wasi_http_0_2_0_rc_2023_12_05_types_borrow_future_trailers_t wasi_http_0_2_0_rc_2023_12_05_types_borrow_future_trailers(wasi_http_0_2_0_rc_2023_12_05_types_own_future_trailers_t handle); - - extern void wasi_http_0_2_0_rc_2023_12_05_types_outgoing_response_drop_own(wasi_http_0_2_0_rc_2023_12_05_types_own_outgoing_response_t handle); - extern void wasi_http_0_2_0_rc_2023_12_05_types_outgoing_response_drop_borrow(wasi_http_0_2_0_rc_2023_12_05_types_own_outgoing_response_t handle); - - extern wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_response_t wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_response(wasi_http_0_2_0_rc_2023_12_05_types_own_outgoing_response_t handle); - - extern void wasi_http_0_2_0_rc_2023_12_05_types_outgoing_body_drop_own(wasi_http_0_2_0_rc_2023_12_05_types_own_outgoing_body_t handle); - extern void wasi_http_0_2_0_rc_2023_12_05_types_outgoing_body_drop_borrow(wasi_http_0_2_0_rc_2023_12_05_types_own_outgoing_body_t handle); - - extern wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_body_t wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_body(wasi_http_0_2_0_rc_2023_12_05_types_own_outgoing_body_t handle); - - extern void wasi_http_0_2_0_rc_2023_12_05_types_future_incoming_response_drop_own(wasi_http_0_2_0_rc_2023_12_05_types_own_future_incoming_response_t handle); - extern void wasi_http_0_2_0_rc_2023_12_05_types_future_incoming_response_drop_borrow(wasi_http_0_2_0_rc_2023_12_05_types_own_future_incoming_response_t handle); - - extern wasi_http_0_2_0_rc_2023_12_05_types_borrow_future_incoming_response_t wasi_http_0_2_0_rc_2023_12_05_types_borrow_future_incoming_response(wasi_http_0_2_0_rc_2023_12_05_types_own_future_incoming_response_t handle); - - void wasi_http_0_2_0_rc_2023_12_05_types_option_error_code_free(wasi_http_0_2_0_rc_2023_12_05_types_option_error_code_t *ptr); - - void bindings_tuple2_field_key_field_value_free(bindings_tuple2_field_key_field_value_t *ptr); - - void bindings_list_tuple2_field_key_field_value_free(bindings_list_tuple2_field_key_field_value_t *ptr); - - void wasi_http_0_2_0_rc_2023_12_05_types_result_own_fields_header_error_free(wasi_http_0_2_0_rc_2023_12_05_types_result_own_fields_header_error_t *ptr); - - void bindings_list_field_value_free(bindings_list_field_value_t *ptr); - - void wasi_http_0_2_0_rc_2023_12_05_types_result_void_header_error_free(wasi_http_0_2_0_rc_2023_12_05_types_result_void_header_error_t *ptr); - - void wasi_http_0_2_0_rc_2023_12_05_types_option_scheme_free(wasi_http_0_2_0_rc_2023_12_05_types_option_scheme_t *ptr); - - void wasi_http_0_2_0_rc_2023_12_05_types_result_own_incoming_body_void_free(wasi_http_0_2_0_rc_2023_12_05_types_result_own_incoming_body_void_t *ptr); - - void wasi_http_0_2_0_rc_2023_12_05_types_result_own_outgoing_body_void_free(wasi_http_0_2_0_rc_2023_12_05_types_result_own_outgoing_body_void_t *ptr); - - void wasi_http_0_2_0_rc_2023_12_05_types_result_void_void_free(wasi_http_0_2_0_rc_2023_12_05_types_result_void_void_t *ptr); - - void bindings_option_duration_free(bindings_option_duration_t *ptr); - - void wasi_http_0_2_0_rc_2023_12_05_types_result_own_outgoing_response_error_code_free(wasi_http_0_2_0_rc_2023_12_05_types_result_own_outgoing_response_error_code_t *ptr); - - void wasi_http_0_2_0_rc_2023_12_05_types_result_own_input_stream_void_free(wasi_http_0_2_0_rc_2023_12_05_types_result_own_input_stream_void_t *ptr); - - void wasi_http_0_2_0_rc_2023_12_05_types_option_own_trailers_free(wasi_http_0_2_0_rc_2023_12_05_types_option_own_trailers_t *ptr); - - void wasi_http_0_2_0_rc_2023_12_05_types_result_option_own_trailers_error_code_free(wasi_http_0_2_0_rc_2023_12_05_types_result_option_own_trailers_error_code_t *ptr); - - void wasi_http_0_2_0_rc_2023_12_05_types_result_result_option_own_trailers_error_code_void_free(wasi_http_0_2_0_rc_2023_12_05_types_result_result_option_own_trailers_error_code_void_t *ptr); - - void wasi_http_0_2_0_rc_2023_12_05_types_option_result_result_option_own_trailers_error_code_void_free(wasi_http_0_2_0_rc_2023_12_05_types_option_result_result_option_own_trailers_error_code_void_t *ptr); - - void wasi_http_0_2_0_rc_2023_12_05_types_result_own_output_stream_void_free(wasi_http_0_2_0_rc_2023_12_05_types_result_own_output_stream_void_t *ptr); - - void wasi_http_0_2_0_rc_2023_12_05_types_result_void_error_code_free(wasi_http_0_2_0_rc_2023_12_05_types_result_void_error_code_t *ptr); - - void wasi_http_0_2_0_rc_2023_12_05_types_result_own_incoming_response_error_code_free(wasi_http_0_2_0_rc_2023_12_05_types_result_own_incoming_response_error_code_t *ptr); - - void wasi_http_0_2_0_rc_2023_12_05_types_result_result_own_incoming_response_error_code_void_free(wasi_http_0_2_0_rc_2023_12_05_types_result_result_own_incoming_response_error_code_void_t *ptr); - - void wasi_http_0_2_0_rc_2023_12_05_types_option_result_result_own_incoming_response_error_code_void_free(wasi_http_0_2_0_rc_2023_12_05_types_option_result_result_own_incoming_response_error_code_void_t *ptr); - - void wasi_http_0_2_0_rc_2023_12_05_outgoing_handler_error_code_free(wasi_http_0_2_0_rc_2023_12_05_outgoing_handler_error_code_t *ptr); - - void wasi_http_0_2_0_rc_2023_12_05_outgoing_handler_option_own_request_options_free(wasi_http_0_2_0_rc_2023_12_05_outgoing_handler_option_own_request_options_t *ptr); - - void wasi_http_0_2_0_rc_2023_12_05_outgoing_handler_result_own_future_incoming_response_error_code_free(wasi_http_0_2_0_rc_2023_12_05_outgoing_handler_result_own_future_incoming_response_error_code_t *ptr); - - void exports_wasi_cli_0_2_0_rc_2023_12_05_run_result_void_void_free(exports_wasi_cli_0_2_0_rc_2023_12_05_run_result_void_void_t *ptr); - - // Transfers ownership of `s` into the string `ret` - void bindings_string_set(bindings_string_t *ret, char*s); - - // Creates a copy of the input nul-terminate string `s` and - // stores it into the component model string `ret`. - void bindings_string_dup(bindings_string_t *ret, const char*s); - - // Deallocates the string pointed to by `ret`, deallocating - // the memory behind the string. - void bindings_string_free(bindings_string_t *ret); - - #ifdef __cplusplus - } - #endif - #endif - \ No newline at end of file diff --git a/host-apis/wasi-0.2.0-rc-2023-12-05/bindings/bindings_component_type.o b/host-apis/wasi-0.2.0-rc-2023-12-05/bindings/bindings_component_type.o deleted file mode 100644 index b5788e88aa3b7bd2c79a1a674f2c76a0636c2b4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32716 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 pbdkTT3!Ih4O~N+{uHCO(?tI@+`9BFM - -using std::optional; -using std::string_view; -using std::tuple; -using std::unique_ptr; -using std::vector; - -// The host interface makes the assumption regularly that uint32_t is sufficient space to store a -// pointer. -static_assert(sizeof(uint32_t) == sizeof(void *)); - -typedef wasi_http_0_2_0_rc_2023_12_05_types_own_incoming_request_t incoming_request_t; -typedef wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_request_t borrow_incoming_request_t; -typedef wasi_http_0_2_0_rc_2023_12_05_types_own_incoming_response_t incoming_response_t; -typedef wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_request_t borrow_outgoing_request_t; - -typedef wasi_http_0_2_0_rc_2023_12_05_types_own_future_incoming_response_t - future_incoming_response_t; -typedef wasi_http_0_2_0_rc_2023_12_05_types_borrow_future_incoming_response_t - borrow_future_incoming_response_t; - -typedef wasi_http_0_2_0_rc_2023_12_05_types_own_incoming_body_t incoming_body_t; -typedef wasi_http_0_2_0_rc_2023_12_05_types_own_outgoing_body_t outgoing_body_t; - -using field_key = wasi_http_0_2_0_rc_2023_12_05_types_field_key_t; -using field_value = wasi_http_0_2_0_rc_2023_12_05_types_field_value_t; - -typedef wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_body_t borrow_incoming_body_t; -typedef wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_body_t borrow_outgoing_body_t; - -typedef wasi_io_0_2_0_rc_2023_11_10_poll_own_pollable_t own_pollable_t; -typedef wasi_io_0_2_0_rc_2023_11_10_poll_borrow_pollable_t borrow_pollable_t; -typedef wasi_io_0_2_0_rc_2023_11_10_poll_list_borrow_pollable_t list_borrow_pollable_t; - -typedef wasi_io_0_2_0_rc_2023_11_10_streams_own_input_stream_t own_input_stream_t; -typedef wasi_io_0_2_0_rc_2023_11_10_streams_borrow_input_stream_t borrow_input_stream_t; - -typedef wasi_io_0_2_0_rc_2023_11_10_streams_own_output_stream_t own_output_stream_t; - -namespace { - -/// This is the type contract for using the Own and Borrow templates. -template struct HandleOps {}; - -/// A convenience wrapper for constructing a borrow. As we only create borrows of things we already -/// own, this wrapper will never explicitly drop borrows. -template class Borrow final { - static constexpr const typename HandleOps::borrow invalid{std::numeric_limits::max()}; - HandleOps::borrow handle{Borrow::invalid}; - -public: - Borrow() = default; - - // Construct a borrow from an owned handle. - Borrow(HandleOps::own handle) : handle{HandleOps::borrow_owned(handle)} {} - - // Construct a borrow from a raw `Handle` value. - Borrow(host_api::Handle handle) : Borrow{typename HandleOps::own{handle}} {} - - // Convenience wrapper for constructing a borrow of a HandleState. - Borrow(host_api::HandleState *state) : Borrow{typename HandleOps::own{state->handle}} {} - - bool valid() const { return this->handle.__handle != Borrow::invalid.__handle; } - - operator bool() const { return this->valid(); } - - operator typename HandleOps::borrow() const { return this->handle; } -}; - -template <> struct HandleOps { - using own = wasi_http_0_2_0_rc_2023_12_05_types_own_fields_t; - using borrow = wasi_http_0_2_0_rc_2023_12_05_types_borrow_fields_t; - - static constexpr const auto borrow_owned = wasi_http_0_2_0_rc_2023_12_05_types_borrow_fields; -}; - -struct OutputStream {}; - -template <> struct HandleOps { - using own = wasi_io_0_2_0_rc_2023_11_10_streams_own_output_stream_t; - using borrow = wasi_io_0_2_0_rc_2023_11_10_streams_borrow_output_stream_t; - - static constexpr const auto borrow_owned = - wasi_io_0_2_0_rc_2023_11_10_streams_borrow_output_stream; -}; - -struct Pollable {}; - -template <> struct HandleOps { - using own = wasi_io_0_2_0_rc_2023_11_10_poll_own_pollable_t; - using borrow = wasi_io_0_2_0_rc_2023_11_10_poll_borrow_pollable_t; - - static constexpr const auto borrow_owned = wasi_io_0_2_0_rc_2023_11_10_poll_borrow_pollable; -}; - -} // namespace - -size_t api::AsyncTask::select(std::vector &tasks) { - auto count = tasks.size(); - vector> handles; - for (const auto task : tasks) { - handles.emplace_back(task->id()); - } - auto list = list_borrow_pollable_t{ - reinterpret_cast::borrow *>(handles.data()), count}; - bindings_list_u32_t result{nullptr, 0}; - wasi_io_0_2_0_rc_2023_11_10_poll_poll(&list, &result); - MOZ_ASSERT(result.len > 0); - const auto ready_index = result.ptr[0]; - free(result.ptr); - - return ready_index; -} - -namespace host_api { - -HostString::HostString(const char *c_str) { - len = strlen(c_str); - ptr = JS::UniqueChars(static_cast(malloc(len + 1))); - std::memcpy(ptr.get(), c_str, len); - ptr[len] = '\0'; -} - -namespace { - -template HostString to_host_string(T str) { - return {JS::UniqueChars(reinterpret_cast(str.ptr)), str.len}; -} - -auto bindings_string_to_host_string = to_host_string; - -template T from_string_view(std::string_view str) { - return T{ - .ptr = (uint8_t *)str.data(), - .len = str.size(), - }; -} - -auto string_view_to_world_string = from_string_view; - -HostString scheme_to_string(const wasi_http_0_2_0_rc_2023_12_05_types_scheme_t scheme) { - if (scheme.tag == WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_SCHEME_HTTP) { - return {"http:"}; - } - if (scheme.tag == WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_SCHEME_HTTPS) { - return {"https:"}; - } - return to_host_string(scheme.val.other); -} - -} // namespace - -Result Random::get_bytes(size_t num_bytes) { - Result res; - - bindings_list_u8_t list{}; - wasi_random_0_2_0_rc_2023_11_10_random_get_random_bytes(num_bytes, &list); - auto ret = HostBytes{ - std::unique_ptr{list.ptr}, - list.len, - }; - res.emplace(std::move(ret)); - - return res; -} - -Result Random::get_u32() { - return Result::ok(wasi_random_0_2_0_rc_2023_11_10_random_get_random_u64()); -} - -uint64_t MonotonicClock::now() { return wasi_clocks_0_2_0_rc_2023_11_10_monotonic_clock_now(); } - -uint64_t MonotonicClock::resolution() { - return wasi_clocks_0_2_0_rc_2023_11_10_monotonic_clock_resolution(); -} - -int32_t MonotonicClock::subscribe(const uint64_t when, const bool absolute) { - if (absolute) { - return wasi_clocks_0_2_0_rc_2023_11_10_monotonic_clock_subscribe_instant(when).__handle; - } else { - return wasi_clocks_0_2_0_rc_2023_11_10_monotonic_clock_subscribe_duration(when).__handle; - } -} - -void MonotonicClock::unsubscribe(const int32_t handle_id) { - wasi_io_0_2_0_rc_2023_11_10_poll_pollable_drop_own(own_pollable_t{handle_id}); -} - -HttpHeaders::HttpHeaders() { - this->handle_state_ = - new HandleState(wasi_http_0_2_0_rc_2023_12_05_types_constructor_fields().__handle); -} -HttpHeaders::HttpHeaders(Handle handle) { handle_state_ = new HandleState(handle); } - -// TODO: make this a factory function -HttpHeaders::HttpHeaders(const vector>> &entries) { - std::vector pairs; - - for (const auto &[name, values] : entries) { - for (const auto &value : values) { - pairs.emplace_back(from_string_view(name), from_string_view(value)); - } - } - - bindings_list_tuple2_field_key_field_value_t tuples{pairs.data(), entries.size()}; - - wasi_http_0_2_0_rc_2023_12_05_types_own_fields_t ret; - wasi_http_0_2_0_rc_2023_12_05_types_header_error_t err; - wasi_http_0_2_0_rc_2023_12_05_types_static_fields_from_list(&tuples, &ret, &err); - // TODO: handle `err` - - this->handle_state_ = new HandleState(ret.__handle); -} - -HttpHeaders::HttpHeaders(const HttpHeaders &headers) { - Borrow borrow(headers.handle_state_); - auto handle = wasi_http_0_2_0_rc_2023_12_05_types_method_fields_clone(borrow); - this->handle_state_ = new HandleState(handle.__handle); -} - -Result>> HttpHeaders::entries() const { - Result>> res; - MOZ_ASSERT(valid()); - - bindings_list_tuple2_field_key_field_value_t entries; - Borrow borrow(this->handle_state_); - wasi_http_0_2_0_rc_2023_12_05_types_method_fields_entries(borrow, &entries); - - vector> entries_vec; - for (int i = 0; i < entries.len; i++) { - auto key = entries.ptr[i].f0; - auto value = entries.ptr[i].f1; - entries_vec.emplace_back(to_host_string(key), to_host_string(value)); - } - // Free the outer list, but not the entries themselves. - free(entries.ptr); - res.emplace(std::move(entries_vec)); - - return res; -} - -Result> HttpHeaders::names() const { - Result> res; - MOZ_ASSERT(valid()); - - bindings_list_tuple2_field_key_field_value_t entries; - Borrow borrow(this->handle_state_); - wasi_http_0_2_0_rc_2023_12_05_types_method_fields_entries(borrow, &entries); - - vector names; - for (int i = 0; i < entries.len; i++) { - names.emplace_back(bindings_string_to_host_string(entries.ptr[i].f0)); - } - // Free the outer list, but not the entries themselves. - free(entries.ptr); - res.emplace(std::move(names)); - - return res; -} - -Result>> HttpHeaders::get(string_view name) const { - Result>> res; - MOZ_ASSERT(valid()); - - bindings_list_field_value_t values; - auto hdr = string_view_to_world_string(name); - Borrow borrow(this->handle_state_); - wasi_http_0_2_0_rc_2023_12_05_types_method_fields_get(borrow, &hdr, &values); - - if (values.len > 0) { - std::vector names; - for (int i = 0; i < values.len; i++) { - names.emplace_back(to_host_string(values.ptr[i])); - } - // Free the outer list, but not the values themselves. - free(values.ptr); - res.emplace(std::move(names)); - } else { - res.emplace(std::nullopt); - } - - return res; -} - -Result HttpHeaders::set(string_view name, string_view value) { - MOZ_ASSERT(valid()); - auto hdr = from_string_view(name); - auto val = from_string_view(value); - bindings_list_field_value_t host_values{&val, 1}; - Borrow borrow(this->handle_state_); - - wasi_http_0_2_0_rc_2023_12_05_types_header_error_t err; - wasi_http_0_2_0_rc_2023_12_05_types_method_fields_set(borrow, &hdr, &host_values, &err); - - // TODO: handle `err` - - return {}; -} - -Result HttpHeaders::append(string_view name, string_view value) { - MOZ_ASSERT(valid()); - auto hdr = from_string_view(name); - auto val = from_string_view(value); - Borrow borrow(this->handle_state_); - - wasi_http_0_2_0_rc_2023_12_05_types_header_error_t err; - wasi_http_0_2_0_rc_2023_12_05_types_method_fields_append(borrow, &hdr, &val, &err); - - // TODO: handle `err` - - return {}; -} - -Result HttpHeaders::remove(string_view name) { - MOZ_ASSERT(valid()); - auto hdr = string_view_to_world_string(name); - Borrow borrow(this->handle_state_); - - wasi_http_0_2_0_rc_2023_12_05_types_header_error_t err; - wasi_http_0_2_0_rc_2023_12_05_types_method_fields_delete(borrow, &hdr, &err); - - // TODO: handle `err` - - return {}; -} - -// TODO: convert to `Result` -string_view HttpRequestResponseBase::url() { - if (_url) { - return string_view(*_url); - } - - auto borrow = borrow_incoming_request_t{handle_state_->handle}; - - wasi_http_0_2_0_rc_2023_12_05_types_scheme_t scheme; - bool success; - success = wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_request_scheme(borrow, &scheme); - MOZ_RELEASE_ASSERT(success); - - bindings_string_t authority; - success = - wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_request_authority(borrow, &authority); - MOZ_RELEASE_ASSERT(success); - - bindings_string_t path; - success = - wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_request_path_with_query(borrow, &path); - MOZ_RELEASE_ASSERT(success); - - HostString scheme_str = scheme_to_string(scheme); - _url = new std::string(scheme_str.ptr.release(), scheme_str.len); - _url->append(string_view(bindings_string_to_host_string(authority))); - _url->append(string_view(bindings_string_to_host_string(path))); - - return string_view(*_url); -} - -bool write_to_outgoing_body(Borrow borrow, const uint8_t *ptr, const size_t len) { - // The write call doesn't mutate the buffer; the cast is just for the - // generated bindings. - bindings_list_u8_t list{const_cast(ptr), len}; - wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t err; - // TODO: proper error handling. - return wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_write(borrow, &list, &err); -} - -class OutgoingBodyHandleState final : HandleState { - Handle stream_handle_; - PollableHandle pollable_handle_; - - friend HttpOutgoingBody; - -public: - explicit OutgoingBodyHandleState(const Handle handle) - : HandleState(handle), pollable_handle_(INVALID_POLLABLE_HANDLE) { - const borrow_outgoing_body_t borrow = {handle}; - own_output_stream_t stream{}; - if (!wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_body_write(borrow, &stream)) { - MOZ_ASSERT_UNREACHABLE("Getting a body's stream should never fail"); - } - stream_handle_ = stream.__handle; - } -}; - -HttpOutgoingBody::HttpOutgoingBody(Handle handle) : Pollable() { - handle_state_ = new OutgoingBodyHandleState(handle); -} -Result HttpOutgoingBody::capacity() { - if (!valid()) { - // TODO: proper error handling for all 154 error codes. - return Result::err(154); - } - - auto *state = static_cast(this->handle_state_); - Borrow borrow(state->stream_handle_); - uint64_t capacity = 0; - wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t err; - if (!wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_check_write(borrow, &capacity, - &err)) { - return Result::err(154); - } - return Result::ok(capacity); -} - -Result HttpOutgoingBody::write(const uint8_t *bytes, size_t len) { - auto res = capacity(); - if (res.is_err()) { - // TODO: proper error handling for all 154 error codes. - return Result::err(154); - } - auto capacity = res.unwrap(); - auto bytes_to_write = std::min(len, static_cast(capacity)); - - auto *state = static_cast(this->handle_state_); - Borrow borrow(state->stream_handle_); - if (!write_to_outgoing_body(borrow, bytes, bytes_to_write)) { - return Result::err(154); - } - - return Result::ok(bytes_to_write); -} - -Result HttpOutgoingBody::write_all(const uint8_t *bytes, size_t len) { - if (!valid()) { - // TODO: proper error handling for all 154 error codes. - return Result::err({}); - } - - auto *state = static_cast(handle_state_); - Borrow borrow(state->stream_handle_); - - while (len > 0) { - auto capacity_res = capacity(); - if (capacity_res.is_err()) { - // TODO: proper error handling for all 154 error codes. - return Result::err(154); - } - auto capacity = capacity_res.unwrap(); - auto bytes_to_write = std::min(len, static_cast(capacity)); - if (!write_to_outgoing_body(borrow, bytes, len)) { - return Result::err(154); - } - - bytes += bytes_to_write; - len -= bytes_to_write; - } - - return {}; -} - -class BodyAppendTask final : public api::AsyncTask { - enum class State { - BlockedOnBoth, - BlockedOnIncoming, - BlockedOnOutgoing, - Ready, - Done, - }; - - HttpIncomingBody *incoming_body_; - HttpOutgoingBody *outgoing_body_; - PollableHandle incoming_pollable_; - PollableHandle outgoing_pollable_; - State state_; - - void set_state(const State state) { - MOZ_ASSERT(state_ != State::Done); - state_ = state; - } - -public: - explicit BodyAppendTask(HttpIncomingBody *incoming_body, HttpOutgoingBody *outgoing_body) - : incoming_body_(incoming_body), outgoing_body_(outgoing_body) { - auto res = incoming_body_->subscribe(); - MOZ_ASSERT(!res.is_err()); - incoming_pollable_ = res.unwrap(); - - res = outgoing_body_->subscribe(); - MOZ_ASSERT(!res.is_err()); - outgoing_pollable_ = res.unwrap(); - - state_ = State::BlockedOnBoth; - } - - [[nodiscard]] bool run(api::Engine *engine) override { - // If run is called while we're blocked on the incoming stream, that means that stream's - // pollable has resolved, so the stream must be ready. - if (state_ == State::BlockedOnBoth || state_ == State::BlockedOnIncoming) { - auto res = incoming_body_->read(0); - MOZ_ASSERT(!res.is_err()); - auto [bytes, done] = std::move(res.unwrap()); - if (done) { - set_state(State::Done); - return true; - } - set_state(State::BlockedOnOutgoing); - } - - uint64_t capacity = 0; - if (state_ == State::BlockedOnOutgoing) { - auto res = outgoing_body_->capacity(); - if (res.is_err()) { - return false; - } - capacity = res.unwrap(); - if (capacity > 0) { - set_state(State::Ready); - } else { - engine->queue_async_task(this); - return true; - } - } - - MOZ_ASSERT(state_ == State::Ready); - - // TODO: reuse a buffer for this loop - do { - auto res = incoming_body_->read(capacity); - if (res.is_err()) { - // TODO: proper error handling. - return false; - } - auto [done, bytes] = std::move(res.unwrap()); - if (bytes.len == 0 && !done) { - set_state(State::BlockedOnIncoming); - engine->queue_async_task(this); - return true; - } - - auto offset = 0; - while (bytes.len - offset > 0) { - // TODO: remove double checking of write-readiness - // TODO: make this async by storing the remaining chunk in the task and marking it as - // being blocked on write - auto write_res = outgoing_body_->write(bytes.ptr.get() + offset, bytes.len - offset); - if (write_res.is_err()) { - // TODO: proper error handling. - return false; - } - offset += write_res.unwrap(); - } - - if (done) { - set_state(State::Done); - return true; - } - - auto capacity_res = outgoing_body_->capacity(); - if (capacity_res.is_err()) { - // TODO: proper error handling. - return false; - } - capacity = capacity_res.unwrap(); - } while (capacity > 0); - - set_state(State::BlockedOnOutgoing); - engine->queue_async_task(this); - return true; - } - - [[nodiscard]] bool cancel(api::Engine *engine) override { - MOZ_ASSERT_UNREACHABLE("BodyAppendTask's semantics don't allow for cancellation"); - return true; - } - - [[nodiscard]] int32_t id() override { - if (state_ == State::BlockedOnBoth || state_ == State::BlockedOnIncoming) { - return incoming_pollable_; - } - - MOZ_ASSERT(state_ == State::BlockedOnOutgoing, - "BodyAppendTask should only be queued if it's not known to be ready"); - return outgoing_pollable_; - } - - void trace(JSTracer *trc) override { - // Nothing to trace. - } -}; - -Result HttpOutgoingBody::append(api::Engine *engine, HttpIncomingBody *other) { - MOZ_ASSERT(valid()); - engine->queue_async_task(new BodyAppendTask(other, this)); - return {}; -} - -Result HttpOutgoingBody::close() { - MOZ_ASSERT(valid()); - - auto state = static_cast(handle_state_); - // A blocking flush is required here to ensure that all buffered contents are - // actually written before finishing the body. - Borrow borrow{state->stream_handle_}; - - { - wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t err; - bool success = - wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_blocking_flush(borrow, &err); - MOZ_RELEASE_ASSERT(success); - // TODO: handle `err` - } - - if (state->pollable_handle_ != INVALID_POLLABLE_HANDLE) { - wasi_io_0_2_0_rc_2023_11_10_poll_pollable_drop_own(own_pollable_t{state->pollable_handle_}); - } - wasi_io_0_2_0_rc_2023_11_10_streams_output_stream_drop_own({state->stream_handle_}); - - { - wasi_http_0_2_0_rc_2023_12_05_types_error_code_t err; - wasi_http_0_2_0_rc_2023_12_05_types_static_outgoing_body_finish({state->handle}, nullptr, &err); - // TODO: handle `err` - } - - delete handle_state_; - handle_state_ = nullptr; - - return {}; -} -Result HttpOutgoingBody::subscribe() { - auto state = static_cast(handle_state_); - if (state->pollable_handle_ == INVALID_POLLABLE_HANDLE) { - Borrow borrow(state->stream_handle_); - state->pollable_handle_ = - wasi_io_0_2_0_rc_2023_11_10_streams_method_output_stream_subscribe(borrow).__handle; - } - return Result::ok(state->pollable_handle_); -} - -void HttpOutgoingBody::unsubscribe() { - auto state = static_cast(handle_state_); - if (state->pollable_handle_ == INVALID_POLLABLE_HANDLE) { - return; - } - wasi_io_0_2_0_rc_2023_11_10_poll_pollable_drop_own(own_pollable_t{state->pollable_handle_}); - state->pollable_handle_ = INVALID_POLLABLE_HANDLE; -} - -static const char *http_method_names[9] = {"GET", "HEAD", "POST", "PUT", "DELETE", - "CONNECT", "OPTIONS", "TRACE", "PATCH"}; - -wasi_http_0_2_0_rc_2023_12_05_types_method_t http_method_to_host(string_view method_str) { - - if (method_str.empty()) { - return wasi_http_0_2_0_rc_2023_12_05_types_method_t{ - WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_METHOD_GET}; - } - - auto method = method_str.begin(); - for (uint8_t i = 0; i < WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_METHOD_OTHER; i++) { - auto name = http_method_names[i]; - if (strcasecmp(method, name) == 0) { - return wasi_http_0_2_0_rc_2023_12_05_types_method_t{i}; - } - } - - auto val = bindings_string_t{reinterpret_cast(const_cast(method)), - method_str.length()}; - return wasi_http_0_2_0_rc_2023_12_05_types_method_t{ - WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_METHOD_OTHER, {val}}; -} - -HttpOutgoingRequest::HttpOutgoingRequest(HandleState *state) { this->handle_state_ = state; } - -HttpOutgoingRequest *HttpOutgoingRequest::make(string_view method_str, optional url_str, - HttpHeaders *headers) { - bindings_string_t path_with_query; - wasi_http_0_2_0_rc_2023_12_05_types_scheme_t scheme; - bindings_string_t authority; - - bindings_string_t *maybe_path_with_query = nullptr; - wasi_http_0_2_0_rc_2023_12_05_types_scheme_t *maybe_scheme = nullptr; - bindings_string_t *maybe_authority = nullptr; - - if (url_str) { - jsurl::SpecString val = url_str.value(); - jsurl::JSUrl *url = new_jsurl(&val); - jsurl::SpecSlice protocol = jsurl::protocol(url); - if (std::memcmp(protocol.data, "http:", protocol.len) == 0) { - scheme.tag = WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_SCHEME_HTTP; - } else if (std::memcmp(protocol.data, "https:", protocol.len) == 0) { - scheme.tag = WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_SCHEME_HTTPS; - } else { - scheme.tag = WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_SCHEME_OTHER; - scheme.val = {const_cast(protocol.data), protocol.len - 1}; - } - maybe_scheme = &scheme; - - jsurl::SpecSlice authority_slice = jsurl::authority(url); - authority = {const_cast(authority_slice.data), authority_slice.len}; - maybe_authority = &authority; - - jsurl::SpecSlice path_with_query_slice = jsurl::path_with_query(url); - path_with_query = {const_cast(path_with_query_slice.data), - path_with_query_slice.len}; - maybe_path_with_query = &path_with_query; - } - - auto handle = wasi_http_0_2_0_rc_2023_12_05_types_constructor_outgoing_request( - {headers->handle_state_->handle}); - { - auto borrow = wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_request(handle); - - // TODO: error handling on result - auto method = http_method_to_host(method_str); - wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_set_method(borrow, &method); - - // TODO: error handling on result - wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_set_scheme(borrow, maybe_scheme); - - // TODO: error handling on result - wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_set_authority(borrow, - maybe_authority); - - // TODO: error handling on result - wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_set_path_with_query( - borrow, maybe_path_with_query); - } - - auto *state = new HandleState(handle.__handle); - auto *resp = new HttpOutgoingRequest(state); - - resp->headers_ = headers; - - return resp; -} - -Result HttpOutgoingRequest::method() { - MOZ_ASSERT(valid()); - MOZ_ASSERT(headers_); - return Result::ok(method_); -} - -Result HttpOutgoingRequest::headers() { - MOZ_ASSERT(valid()); - MOZ_ASSERT(headers_); - return Result::ok(headers_); -} - -Result HttpOutgoingRequest::body() { - typedef Result Res; - MOZ_ASSERT(valid()); - if (!this->body_) { - outgoing_body_t body; - if (!wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_request_body( - wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_request({handle_state_->handle}), - &body)) { - return Res::err(154); - } - this->body_ = new HttpOutgoingBody(body.__handle); - } - return Res::ok(body_); -} - -Result HttpOutgoingRequest::send() { - MOZ_ASSERT(valid()); - future_incoming_response_t ret; - wasi_http_0_2_0_rc_2023_12_05_outgoing_handler_error_code_t err; - wasi_http_0_2_0_rc_2023_12_05_outgoing_handler_handle({handle_state_->handle}, nullptr, &ret, - &err); - auto res = new FutureHttpIncomingResponse(ret.__handle); - return Result::ok(res); -} - -class IncomingBodyHandleState final : HandleState { - Handle stream_handle_; - PollableHandle pollable_handle_; - - friend HttpIncomingBody; - -public: - explicit IncomingBodyHandleState(const Handle handle) - : HandleState(handle), pollable_handle_(INVALID_POLLABLE_HANDLE) { - const borrow_incoming_body_t borrow = {handle}; - own_input_stream_t stream{}; - if (!wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_body_stream(borrow, &stream)) { - MOZ_ASSERT_UNREACHABLE("Getting a body's stream should never fail"); - } - stream_handle_ = stream.__handle; - } -}; - -HttpIncomingBody::HttpIncomingBody(const Handle handle) : Pollable() { - handle_state_ = new IncomingBodyHandleState(handle); -} - -Result HttpIncomingBody::read(uint32_t chunk_size) { - typedef Result Res; - - bindings_list_u8_t ret{}; - wasi_io_0_2_0_rc_2023_11_10_streams_stream_error_t err{}; - auto borrow = borrow_input_stream_t( - {static_cast(handle_state_)->stream_handle_}); - bool success = - wasi_io_0_2_0_rc_2023_11_10_streams_method_input_stream_read(borrow, chunk_size, &ret, &err); - if (!success) { - if (err.tag == WASI_IO_0_2_0_RC_2023_11_10_STREAMS_STREAM_ERROR_CLOSED) { - return Res::ok(ReadResult(true, nullptr, 0)); - } - return Res::err(154); - } - return Res::ok(ReadResult(false, unique_ptr(ret.ptr), ret.len)); -} - -// TODO: implement -Result HttpIncomingBody::close() { return {}; } - -Result HttpIncomingBody::subscribe() { - auto borrow = borrow_input_stream_t( - {static_cast(handle_state_)->stream_handle_}); - auto pollable = wasi_io_0_2_0_rc_2023_11_10_streams_method_input_stream_subscribe(borrow); - return Result::ok(pollable.__handle); -} -void HttpIncomingBody::unsubscribe() { - auto state = static_cast(handle_state_); - if (state->pollable_handle_ == INVALID_POLLABLE_HANDLE) { - return; - } - wasi_io_0_2_0_rc_2023_11_10_poll_pollable_drop_own(own_pollable_t{state->pollable_handle_}); - state->pollable_handle_ = INVALID_POLLABLE_HANDLE; -} - -FutureHttpIncomingResponse::FutureHttpIncomingResponse(Handle handle) { - handle_state_ = new HandleState(handle); -} - -Result> FutureHttpIncomingResponse::maybe_response() { - typedef Result> Res; - wasi_http_0_2_0_rc_2023_12_05_types_result_result_own_incoming_response_error_code_void_t res; - auto borrow = - wasi_http_0_2_0_rc_2023_12_05_types_borrow_future_incoming_response({handle_state_->handle}); - if (!wasi_http_0_2_0_rc_2023_12_05_types_method_future_incoming_response_get(borrow, &res)) { - return Res::ok(std::nullopt); - } - - MOZ_ASSERT(!res.is_err, - "FutureHttpIncomingResponse::poll must not be called again after succeeding once"); - - auto [is_err, val] = res.val.ok; - if (is_err) { - return Res::err(154); - } - - return Res::ok(new HttpIncomingResponse(val.ok.__handle)); -} - -Result FutureHttpIncomingResponse::subscribe() { - auto borrow = - wasi_http_0_2_0_rc_2023_12_05_types_borrow_future_incoming_response({handle_state_->handle}); - auto pollable = - wasi_http_0_2_0_rc_2023_12_05_types_method_future_incoming_response_subscribe(borrow); - return Result::ok(pollable.__handle); -} -void FutureHttpIncomingResponse::unsubscribe() { - // TODO: implement -} - -Result HttpIncomingResponse::status() { - if (status_ == UNSET_STATUS) { - if (!valid()) { - return Result::err(154); - } - auto borrow = - wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_response_t({handle_state_->handle}); - status_ = wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_response_status(borrow); - } - return Result::ok(status_); -} - -HttpIncomingResponse::HttpIncomingResponse(Handle handle) { - handle_state_ = new HandleState(handle); -} - -Result HttpIncomingResponse::headers() { - if (!headers_) { - if (!valid()) { - return Result::err(154); - } - auto res = wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_response_headers( - wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_response({handle_state_->handle})); - headers_ = new HttpHeaders(res.__handle); - } - - return Result::ok(headers_); -} - -Result HttpIncomingResponse::body() { - if (!body_) { - if (!valid()) { - return Result::err(154); - } - incoming_body_t body; - if (!wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_response_consume( - wasi_http_0_2_0_rc_2023_12_05_types_borrow_incoming_response({handle_state_->handle}), - &body)) { - return Result::err(154); - } - body_ = new HttpIncomingBody(body.__handle); - } - return Result::ok(body_); -} - -HttpOutgoingResponse::HttpOutgoingResponse(HandleState *state) { this->handle_state_ = state; } - -HttpOutgoingResponse *HttpOutgoingResponse::make(const uint16_t status, HttpHeaders *headers) { - wasi_http_0_2_0_rc_2023_12_05_types_own_headers_t owned{headers->handle_state_->handle}; - auto handle = wasi_http_0_2_0_rc_2023_12_05_types_constructor_outgoing_response(owned); - auto borrow = wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_response(handle); - - auto *state = new HandleState(handle.__handle); - auto *resp = new HttpOutgoingResponse(state); - - // Set the status - if (status != 200) { - // TODO: handle success result - wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_response_set_status_code(borrow, status); - } - - // Freshen the headers handle to point to an immutable version of the outgoing headers. - headers->handle_state_->handle = - wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_response_headers(borrow).__handle; - - resp->status_ = status; - resp->headers_ = headers; - - return resp; -} - -Result HttpOutgoingResponse::headers() { - if (!valid()) { - return Result::err(154); - } - return Result::ok(headers_); -} - -Result HttpOutgoingResponse::body() { - typedef Result Res; - MOZ_ASSERT(valid()); - if (!this->body_) { - outgoing_body_t body; - if (!wasi_http_0_2_0_rc_2023_12_05_types_method_outgoing_response_body( - wasi_http_0_2_0_rc_2023_12_05_types_borrow_outgoing_response({handle_state_->handle}), - &body)) { - return Res::err(154); - } - this->body_ = new HttpOutgoingBody(body.__handle); - } - return Res::ok(this->body_); -} -Result HttpOutgoingResponse::status() { return Result::ok(status_); } - -Result HttpOutgoingResponse::send(ResponseOutparam out_param) { - // Drop the headers that we eagerly grab in the factory function - wasi_http_0_2_0_rc_2023_12_05_types_fields_drop_own({this->headers_->handle_state_->handle}); - - wasi_http_0_2_0_rc_2023_12_05_types_result_own_outgoing_response_error_code_t result; - - result.is_err = false; - result.val.ok = {this->handle_state_->handle}; - - wasi_http_0_2_0_rc_2023_12_05_types_static_response_outparam_set({out_param}, &result); - - return {}; -} - -HttpIncomingRequest::HttpIncomingRequest(Handle handle) { handle_state_ = new HandleState(handle); } - -Result HttpIncomingRequest::method() { - if (method_.empty()) { - if (!valid()) { - return Result::err(154); - } - } - wasi_http_0_2_0_rc_2023_12_05_types_method_t method; - wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_request_method( - borrow_incoming_request_t(handle_state_->handle), &method); - if (method.tag != WASI_HTTP_0_2_0_RC_2023_12_05_TYPES_METHOD_OTHER) { - method_ = std::string(http_method_names[method.tag], strlen(http_method_names[method.tag])); - } else { - method_ = std::string(reinterpret_cast(method.val.other.ptr), method.val.other.len); - bindings_string_free(&method.val.other); - } - return Result::ok(method_); -} - -Result HttpIncomingRequest::headers() { - if (!headers_) { - if (!valid()) { - return Result::err(154); - } - borrow_incoming_request_t borrow(handle_state_->handle); - auto res = wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_request_headers(borrow); - headers_ = new HttpHeaders(res.__handle); - } - - return Result::ok(headers_); -} - -Result HttpIncomingRequest::body() { - if (!body_) { - if (!valid()) { - return Result::err(154); - } - incoming_body_t body; - if (!wasi_http_0_2_0_rc_2023_12_05_types_method_incoming_request_consume( - borrow_incoming_request_t(handle_state_->handle), &body)) { - return Result::err(154); - } - body_ = new HttpIncomingBody(body.__handle); - } - return Result::ok(body_); -} - -} // namespace host_api diff --git a/host-apis/wasi-0.2.0-rc-2023-12-05/host_call.cpp b/host-apis/wasi-0.2.0-rc-2023-12-05/host_call.cpp deleted file mode 100644 index b453614..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-12-05/host_call.cpp +++ /dev/null @@ -1,11 +0,0 @@ -#include "host_api.h" - -namespace host_api { - -/* Returns false if an exception is set on `cx` and the caller should - immediately return to propagate the exception. */ -void handle_api_error(JSContext *cx, uint8_t err, int line, const char *func) { - JS_ReportErrorUTF8(cx, "%s: An error occurred while using the host API.\n", func); -} - -} // namespace host_api diff --git a/host-apis/wasi-0.2.0-rc-2023-12-05/include/exports.h b/host-apis/wasi-0.2.0-rc-2023-12-05/include/exports.h deleted file mode 100644 index 90a9b10..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-12-05/include/exports.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef WASI_PREVIEW2_EXPORTS -#define WASI_PREVIEW2_EXPORTS - -#define exports_wasi_http_incoming_handler \ - exports_wasi_http_0_2_0_rc_2023_12_05_incoming_handler_handle -#define exports_wasi_http_incoming_request \ - exports_wasi_http_0_2_0_rc_2023_12_05_incoming_handler_own_incoming_request_t -#define exports_wasi_http_response_outparam \ - exports_wasi_http_0_2_0_rc_2023_12_05_incoming_handler_own_response_outparam_t - -#define exports_wasi_cli_run_run exports_wasi_cli_0_2_0_rc_2023_12_05_run_run - -#endif diff --git a/host-apis/wasi-0.2.0-rc-2023-12-05/preview1-adapter-debug/wasi_snapshot_preview1.wasm b/host-apis/wasi-0.2.0-rc-2023-12-05/preview1-adapter-debug/wasi_snapshot_preview1.wasm deleted file mode 100755 index 1cf881e6ae98c8e3d5c617f8e031f94121ca6ead..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2468019 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

uKAAkdD3PFc+rz|&k8V9g~!G&gkx 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 z

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

8OP8EPH9C0`;t3fhZEl$sB3Ge|G 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ℑ-}~OBqm^@zD)NKxByWlFB~`@y5lzk^ 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

xxI?L9RC2dV)l%&fNP>3i|^ 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 z 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

vPw*o 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�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

S-bI3{7TRPKO%BZys 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%0DV$yFD?0uOaTZ07gD#$A=aMZi^00`kJ@`a>QI5f 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 D0NJ?L diff --git a/host-apis/wasi-0.2.0-rc-2023-12-05/preview1-adapter-release/wasi_snapshot_preview1.wasm b/host-apis/wasi-0.2.0-rc-2023-12-05/preview1-adapter-release/wasi_snapshot_preview1.wasm deleted file mode 100755 index f74b47c367cc1136c1d1a318833e8016a37205f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 98729 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 diff --git a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/command-extended.wit b/host-apis/wasi-0.2.0-rc-2023-12-05/wit/command-extended.wit deleted file mode 100644 index 16f01bc..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/command-extended.wit +++ /dev/null @@ -1,6 +0,0 @@ -// All of the same imports and exports available in the wasi:cli/command world -// with addition of HTTP proxy related imports: -world command-extended { - include wasi:cli/command@0.2.0-rc-2023-12-05; - import wasi:http/outgoing-handler@0.2.0-rc-2023-12-05; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/cli/command.wit b/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/cli/command.wit deleted file mode 100644 index cc82ae5..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/cli/command.wit +++ /dev/null @@ -1,7 +0,0 @@ -package wasi:cli@0.2.0-rc-2023-12-05; - -world command { - include imports; - - export run; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/cli/environment.wit b/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/cli/environment.wit deleted file mode 100644 index 7006523..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/cli/environment.wit +++ /dev/null @@ -1,18 +0,0 @@ -interface environment { - /// Get the POSIX-style environment variables. - /// - /// Each environment variable is provided as a pair of string variable names - /// and string value. - /// - /// Morally, these are a value import, but until value imports are available - /// in the component model, this import function should return the same - /// values each time it is called. - get-environment: func() -> list>; - - /// Get the POSIX-style arguments to the program. - get-arguments: func() -> list; - - /// Return a path that programs should use as their initial current working - /// directory, interpreting `.` as shorthand for this. - initial-cwd: func() -> option; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/cli/exit.wit b/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/cli/exit.wit deleted file mode 100644 index d0c2b82..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/cli/exit.wit +++ /dev/null @@ -1,4 +0,0 @@ -interface exit { - /// Exit the current instance and any linked instances. - exit: func(status: result); -} diff --git a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/cli/imports.wit b/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/cli/imports.wit deleted file mode 100644 index 9965ea3..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/cli/imports.wit +++ /dev/null @@ -1,20 +0,0 @@ -package wasi:cli@0.2.0-rc-2023-12-05; - -world imports { - include wasi:clocks/imports@0.2.0-rc-2023-11-10; - include wasi:filesystem/imports@0.2.0-rc-2023-11-10; - include wasi:sockets/imports@0.2.0-rc-2023-11-10; - include wasi:random/imports@0.2.0-rc-2023-11-10; - include wasi:io/imports@0.2.0-rc-2023-11-10; - - import environment; - import exit; - import stdin; - import stdout; - import stderr; - import terminal-input; - import terminal-output; - import terminal-stdin; - import terminal-stdout; - import terminal-stderr; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/cli/run.wit b/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/cli/run.wit deleted file mode 100644 index a70ee8c..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/cli/run.wit +++ /dev/null @@ -1,4 +0,0 @@ -interface run { - /// Run the program. - run: func() -> result; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/cli/stdio.wit b/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/cli/stdio.wit deleted file mode 100644 index 1b653b6..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/cli/stdio.wit +++ /dev/null @@ -1,17 +0,0 @@ -interface stdin { - use wasi:io/streams@0.2.0-rc-2023-11-10.{input-stream}; - - get-stdin: func() -> input-stream; -} - -interface stdout { - use wasi:io/streams@0.2.0-rc-2023-11-10.{output-stream}; - - get-stdout: func() -> output-stream; -} - -interface stderr { - use wasi:io/streams@0.2.0-rc-2023-11-10.{output-stream}; - - get-stderr: func() -> output-stream; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/cli/terminal.wit b/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/cli/terminal.wit deleted file mode 100644 index 4749576..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/cli/terminal.wit +++ /dev/null @@ -1,47 +0,0 @@ -interface terminal-input { - /// The input side of a terminal. - resource terminal-input; - - // In the future, this may include functions for disabling echoing, - // disabling input buffering so that keyboard events are sent through - // immediately, querying supported features, and so on. -} - -interface terminal-output { - /// The output side of a terminal. - resource terminal-output; - - // In the future, this may include functions for querying the terminal - // size, being notified of terminal size changes, querying supported - // features, and so on. -} - -/// An interface providing an optional `terminal-input` for stdin as a -/// link-time authority. -interface terminal-stdin { - use terminal-input.{terminal-input}; - - /// If stdin is connected to a terminal, return a `terminal-input` handle - /// allowing further interaction with it. - get-terminal-stdin: func() -> option; -} - -/// An interface providing an optional `terminal-output` for stdout as a -/// link-time authority. -interface terminal-stdout { - use terminal-output.{terminal-output}; - - /// If stdout is connected to a terminal, return a `terminal-output` handle - /// allowing further interaction with it. - get-terminal-stdout: func() -> option; -} - -/// An interface providing an optional `terminal-output` for stderr as a -/// link-time authority. -interface terminal-stderr { - use terminal-output.{terminal-output}; - - /// If stderr is connected to a terminal, return a `terminal-output` handle - /// allowing further interaction with it. - get-terminal-stderr: func() -> option; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/clocks/monotonic-clock.wit b/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/clocks/monotonic-clock.wit deleted file mode 100644 index 09ef32c..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/clocks/monotonic-clock.wit +++ /dev/null @@ -1,45 +0,0 @@ -package wasi:clocks@0.2.0-rc-2023-11-10; -/// WASI Monotonic Clock is a clock API intended to let users measure elapsed -/// time. -/// -/// It is intended to be portable at least between Unix-family platforms and -/// Windows. -/// -/// A monotonic clock is a clock which has an unspecified initial value, and -/// successive reads of the clock will produce non-decreasing values. -/// -/// It is intended for measuring elapsed time. -interface monotonic-clock { - use wasi:io/poll@0.2.0-rc-2023-11-10.{pollable}; - - /// An instant in time, in nanoseconds. An instant is relative to an - /// unspecified initial value, and can only be compared to instances from - /// the same monotonic-clock. - type instant = u64; - - /// A duration of time, in nanoseconds. - type duration = u64; - - /// Read the current value of the clock. - /// - /// The clock is monotonic, therefore calling this function repeatedly will - /// produce a sequence of non-decreasing values. - now: func() -> instant; - - /// Query the resolution of the clock. Returns the duration of time - /// corresponding to a clock tick. - resolution: func() -> duration; - - /// Create a `pollable` which will resolve once the specified instant - /// occured. - subscribe-instant: func( - when: instant, - ) -> pollable; - - /// Create a `pollable` which will resolve once the given duration has - /// elapsed, starting at the time at which this function was called. - /// occured. - subscribe-duration: func( - when: duration, - ) -> pollable; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/clocks/wall-clock.wit b/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/clocks/wall-clock.wit deleted file mode 100644 index 8abb9a0..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/clocks/wall-clock.wit +++ /dev/null @@ -1,42 +0,0 @@ -package wasi:clocks@0.2.0-rc-2023-11-10; -/// WASI Wall Clock is a clock API intended to let users query the current -/// time. The name "wall" makes an analogy to a "clock on the wall", which -/// is not necessarily monotonic as it may be reset. -/// -/// It is intended to be portable at least between Unix-family platforms and -/// Windows. -/// -/// A wall clock is a clock which measures the date and time according to -/// some external reference. -/// -/// External references may be reset, so this clock is not necessarily -/// monotonic, making it unsuitable for measuring elapsed time. -/// -/// It is intended for reporting the current date and time for humans. -interface wall-clock { - /// A time and date in seconds plus nanoseconds. - record datetime { - seconds: u64, - nanoseconds: u32, - } - - /// Read the current value of the clock. - /// - /// This clock is not monotonic, therefore calling this function repeatedly - /// will not necessarily produce a sequence of non-decreasing values. - /// - /// The returned timestamps represent the number of seconds since - /// 1970-01-01T00:00:00Z, also known as [POSIX's Seconds Since the Epoch], - /// also known as [Unix Time]. - /// - /// The nanoseconds field of the output is always less than 1000000000. - /// - /// [POSIX's Seconds Since the Epoch]: https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_xbd_chap04.html#tag_21_04_16 - /// [Unix Time]: https://en.wikipedia.org/wiki/Unix_time - now: func() -> datetime; - - /// Query the resolution of the clock. - /// - /// The nanoseconds field of the output is always less than 1000000000. - resolution: func() -> datetime; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/clocks/world.wit b/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/clocks/world.wit deleted file mode 100644 index 8fa080f..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/clocks/world.wit +++ /dev/null @@ -1,6 +0,0 @@ -package wasi:clocks@0.2.0-rc-2023-11-10; - -world imports { - import monotonic-clock; - import wall-clock; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/filesystem/preopens.wit b/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/filesystem/preopens.wit deleted file mode 100644 index 95ec678..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/filesystem/preopens.wit +++ /dev/null @@ -1,8 +0,0 @@ -package wasi:filesystem@0.2.0-rc-2023-11-10; - -interface preopens { - use types.{descriptor}; - - /// Return the set of preopened directories, and their path. - get-directories: func() -> list>; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/filesystem/types.wit b/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/filesystem/types.wit deleted file mode 100644 index 059722a..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/filesystem/types.wit +++ /dev/null @@ -1,634 +0,0 @@ -package wasi:filesystem@0.2.0-rc-2023-11-10; -/// WASI filesystem is a filesystem API primarily intended to let users run WASI -/// programs that access their files on their existing filesystems, without -/// significant overhead. -/// -/// It is intended to be roughly portable between Unix-family platforms and -/// Windows, though it does not hide many of the major differences. -/// -/// Paths are passed as interface-type `string`s, meaning they must consist of -/// a sequence of Unicode Scalar Values (USVs). Some filesystems may contain -/// paths which are not accessible by this API. -/// -/// The directory separator in WASI is always the forward-slash (`/`). -/// -/// All paths in WASI are relative paths, and are interpreted relative to a -/// `descriptor` referring to a base directory. If a `path` argument to any WASI -/// function starts with `/`, or if any step of resolving a `path`, including -/// `..` and symbolic link steps, reaches a directory outside of the base -/// directory, or reaches a symlink to an absolute or rooted path in the -/// underlying filesystem, the function fails with `error-code::not-permitted`. -/// -/// For more information about WASI path resolution and sandboxing, see -/// [WASI filesystem path resolution]. -/// -/// [WASI filesystem path resolution]: https://github.com/WebAssembly/wasi-filesystem/blob/main/path-resolution.md -interface types { - use wasi:io/streams@0.2.0-rc-2023-11-10.{input-stream, output-stream, error}; - use wasi:clocks/wall-clock@0.2.0-rc-2023-11-10.{datetime}; - - /// File size or length of a region within a file. - type filesize = u64; - - /// The type of a filesystem object referenced by a descriptor. - /// - /// Note: This was called `filetype` in earlier versions of WASI. - enum descriptor-type { - /// The type of the descriptor or file is unknown or is different from - /// any of the other types specified. - unknown, - /// The descriptor refers to a block device inode. - block-device, - /// The descriptor refers to a character device inode. - character-device, - /// The descriptor refers to a directory inode. - directory, - /// The descriptor refers to a named pipe. - fifo, - /// The file refers to a symbolic link inode. - symbolic-link, - /// The descriptor refers to a regular file inode. - regular-file, - /// The descriptor refers to a socket. - socket, - } - - /// Descriptor flags. - /// - /// Note: This was called `fdflags` in earlier versions of WASI. - flags descriptor-flags { - /// Read mode: Data can be read. - read, - /// Write mode: Data can be written to. - write, - /// Request that writes be performed according to synchronized I/O file - /// integrity completion. The data stored in the file and the file's - /// metadata are synchronized. This is similar to `O_SYNC` in POSIX. - /// - /// The precise semantics of this operation have not yet been defined for - /// WASI. At this time, it should be interpreted as a request, and not a - /// requirement. - file-integrity-sync, - /// Request that writes be performed according to synchronized I/O data - /// integrity completion. Only the data stored in the file is - /// synchronized. This is similar to `O_DSYNC` in POSIX. - /// - /// The precise semantics of this operation have not yet been defined for - /// WASI. At this time, it should be interpreted as a request, and not a - /// requirement. - data-integrity-sync, - /// Requests that reads be performed at the same level of integrety - /// requested for writes. This is similar to `O_RSYNC` in POSIX. - /// - /// The precise semantics of this operation have not yet been defined for - /// WASI. At this time, it should be interpreted as a request, and not a - /// requirement. - requested-write-sync, - /// Mutating directories mode: Directory contents may be mutated. - /// - /// When this flag is unset on a descriptor, operations using the - /// descriptor which would create, rename, delete, modify the data or - /// metadata of filesystem objects, or obtain another handle which - /// would permit any of those, shall fail with `error-code::read-only` if - /// they would otherwise succeed. - /// - /// This may only be set on directories. - mutate-directory, - } - - /// File attributes. - /// - /// Note: This was called `filestat` in earlier versions of WASI. - record descriptor-stat { - /// File type. - %type: descriptor-type, - /// Number of hard links to the file. - link-count: link-count, - /// For regular files, the file size in bytes. For symbolic links, the - /// length in bytes of the pathname contained in the symbolic link. - size: filesize, - /// Last data access timestamp. - /// - /// If the `option` is none, the platform doesn't maintain an access - /// timestamp for this file. - data-access-timestamp: option, - /// Last data modification timestamp. - /// - /// If the `option` is none, the platform doesn't maintain a - /// modification timestamp for this file. - data-modification-timestamp: option, - /// Last file status-change timestamp. - /// - /// If the `option` is none, the platform doesn't maintain a - /// status-change timestamp for this file. - status-change-timestamp: option, - } - - /// Flags determining the method of how paths are resolved. - flags path-flags { - /// As long as the resolved path corresponds to a symbolic link, it is - /// expanded. - symlink-follow, - } - - /// Open flags used by `open-at`. - flags open-flags { - /// Create file if it does not exist, similar to `O_CREAT` in POSIX. - create, - /// Fail if not a directory, similar to `O_DIRECTORY` in POSIX. - directory, - /// Fail if file already exists, similar to `O_EXCL` in POSIX. - exclusive, - /// Truncate file to size 0, similar to `O_TRUNC` in POSIX. - truncate, - } - - /// Number of hard links to an inode. - type link-count = u64; - - /// When setting a timestamp, this gives the value to set it to. - variant new-timestamp { - /// Leave the timestamp set to its previous value. - no-change, - /// Set the timestamp to the current time of the system clock associated - /// with the filesystem. - now, - /// Set the timestamp to the given value. - timestamp(datetime), - } - - /// A directory entry. - record directory-entry { - /// The type of the file referred to by this directory entry. - %type: descriptor-type, - - /// The name of the object. - name: string, - } - - /// Error codes returned by functions, similar to `errno` in POSIX. - /// Not all of these error codes are returned by the functions provided by this - /// API; some are used in higher-level library layers, and others are provided - /// merely for alignment with POSIX. - enum error-code { - /// Permission denied, similar to `EACCES` in POSIX. - access, - /// Resource unavailable, or operation would block, similar to `EAGAIN` and `EWOULDBLOCK` in POSIX. - would-block, - /// Connection already in progress, similar to `EALREADY` in POSIX. - already, - /// Bad descriptor, similar to `EBADF` in POSIX. - bad-descriptor, - /// Device or resource busy, similar to `EBUSY` in POSIX. - busy, - /// Resource deadlock would occur, similar to `EDEADLK` in POSIX. - deadlock, - /// Storage quota exceeded, similar to `EDQUOT` in POSIX. - quota, - /// File exists, similar to `EEXIST` in POSIX. - exist, - /// File too large, similar to `EFBIG` in POSIX. - file-too-large, - /// Illegal byte sequence, similar to `EILSEQ` in POSIX. - illegal-byte-sequence, - /// Operation in progress, similar to `EINPROGRESS` in POSIX. - in-progress, - /// Interrupted function, similar to `EINTR` in POSIX. - interrupted, - /// Invalid argument, similar to `EINVAL` in POSIX. - invalid, - /// I/O error, similar to `EIO` in POSIX. - io, - /// Is a directory, similar to `EISDIR` in POSIX. - is-directory, - /// Too many levels of symbolic links, similar to `ELOOP` in POSIX. - loop, - /// Too many links, similar to `EMLINK` in POSIX. - too-many-links, - /// Message too large, similar to `EMSGSIZE` in POSIX. - message-size, - /// Filename too long, similar to `ENAMETOOLONG` in POSIX. - name-too-long, - /// No such device, similar to `ENODEV` in POSIX. - no-device, - /// No such file or directory, similar to `ENOENT` in POSIX. - no-entry, - /// No locks available, similar to `ENOLCK` in POSIX. - no-lock, - /// Not enough space, similar to `ENOMEM` in POSIX. - insufficient-memory, - /// No space left on device, similar to `ENOSPC` in POSIX. - insufficient-space, - /// Not a directory or a symbolic link to a directory, similar to `ENOTDIR` in POSIX. - not-directory, - /// Directory not empty, similar to `ENOTEMPTY` in POSIX. - not-empty, - /// State not recoverable, similar to `ENOTRECOVERABLE` in POSIX. - not-recoverable, - /// Not supported, similar to `ENOTSUP` and `ENOSYS` in POSIX. - unsupported, - /// Inappropriate I/O control operation, similar to `ENOTTY` in POSIX. - no-tty, - /// No such device or address, similar to `ENXIO` in POSIX. - no-such-device, - /// Value too large to be stored in data type, similar to `EOVERFLOW` in POSIX. - overflow, - /// Operation not permitted, similar to `EPERM` in POSIX. - not-permitted, - /// Broken pipe, similar to `EPIPE` in POSIX. - pipe, - /// Read-only file system, similar to `EROFS` in POSIX. - read-only, - /// Invalid seek, similar to `ESPIPE` in POSIX. - invalid-seek, - /// Text file busy, similar to `ETXTBSY` in POSIX. - text-file-busy, - /// Cross-device link, similar to `EXDEV` in POSIX. - cross-device, - } - - /// File or memory access pattern advisory information. - enum advice { - /// The application has no advice to give on its behavior with respect - /// to the specified data. - normal, - /// The application expects to access the specified data sequentially - /// from lower offsets to higher offsets. - sequential, - /// The application expects to access the specified data in a random - /// order. - random, - /// The application expects to access the specified data in the near - /// future. - will-need, - /// The application expects that it will not access the specified data - /// in the near future. - dont-need, - /// The application expects to access the specified data once and then - /// not reuse it thereafter. - no-reuse, - } - - /// A 128-bit hash value, split into parts because wasm doesn't have a - /// 128-bit integer type. - record metadata-hash-value { - /// 64 bits of a 128-bit hash value. - lower: u64, - /// Another 64 bits of a 128-bit hash value. - upper: u64, - } - - /// A descriptor is a reference to a filesystem object, which may be a file, - /// directory, named pipe, special file, or other object on which filesystem - /// calls may be made. - resource descriptor { - /// Return a stream for reading from a file, if available. - /// - /// May fail with an error-code describing why the file cannot be read. - /// - /// Multiple read, write, and append streams may be active on the same open - /// file and they do not interfere with each other. - /// - /// Note: This allows using `read-stream`, which is similar to `read` in POSIX. - read-via-stream: func( - /// The offset within the file at which to start reading. - offset: filesize, - ) -> result; - - /// Return a stream for writing to a file, if available. - /// - /// May fail with an error-code describing why the file cannot be written. - /// - /// Note: This allows using `write-stream`, which is similar to `write` in - /// POSIX. - write-via-stream: func( - /// The offset within the file at which to start writing. - offset: filesize, - ) -> result; - - /// Return a stream for appending to a file, if available. - /// - /// May fail with an error-code describing why the file cannot be appended. - /// - /// Note: This allows using `write-stream`, which is similar to `write` with - /// `O_APPEND` in in POSIX. - append-via-stream: func() -> result; - - /// Provide file advisory information on a descriptor. - /// - /// This is similar to `posix_fadvise` in POSIX. - advise: func( - /// The offset within the file to which the advisory applies. - offset: filesize, - /// The length of the region to which the advisory applies. - length: filesize, - /// The advice. - advice: advice - ) -> result<_, error-code>; - - /// Synchronize the data of a file to disk. - /// - /// This function succeeds with no effect if the file descriptor is not - /// opened for writing. - /// - /// Note: This is similar to `fdatasync` in POSIX. - sync-data: func() -> result<_, error-code>; - - /// Get flags associated with a descriptor. - /// - /// Note: This returns similar flags to `fcntl(fd, F_GETFL)` in POSIX. - /// - /// Note: This returns the value that was the `fs_flags` value returned - /// from `fdstat_get` in earlier versions of WASI. - get-flags: func() -> result; - - /// Get the dynamic type of a descriptor. - /// - /// Note: This returns the same value as the `type` field of the `fd-stat` - /// returned by `stat`, `stat-at` and similar. - /// - /// Note: This returns similar flags to the `st_mode & S_IFMT` value provided - /// by `fstat` in POSIX. - /// - /// Note: This returns the value that was the `fs_filetype` value returned - /// from `fdstat_get` in earlier versions of WASI. - get-type: func() -> result; - - /// Adjust the size of an open file. If this increases the file's size, the - /// extra bytes are filled with zeros. - /// - /// Note: This was called `fd_filestat_set_size` in earlier versions of WASI. - set-size: func(size: filesize) -> result<_, error-code>; - - /// Adjust the timestamps of an open file or directory. - /// - /// Note: This is similar to `futimens` in POSIX. - /// - /// Note: This was called `fd_filestat_set_times` in earlier versions of WASI. - set-times: func( - /// The desired values of the data access timestamp. - data-access-timestamp: new-timestamp, - /// The desired values of the data modification timestamp. - data-modification-timestamp: new-timestamp, - ) -> result<_, error-code>; - - /// Read from a descriptor, without using and updating the descriptor's offset. - /// - /// This function returns a list of bytes containing the data that was - /// read, along with a bool which, when true, indicates that the end of the - /// file was reached. The returned list will contain up to `length` bytes; it - /// may return fewer than requested, if the end of the file is reached or - /// if the I/O operation is interrupted. - /// - /// In the future, this may change to return a `stream`. - /// - /// Note: This is similar to `pread` in POSIX. - read: func( - /// The maximum number of bytes to read. - length: filesize, - /// The offset within the file at which to read. - offset: filesize, - ) -> result, bool>, error-code>; - - /// Write to a descriptor, without using and updating the descriptor's offset. - /// - /// It is valid to write past the end of a file; the file is extended to the - /// extent of the write, with bytes between the previous end and the start of - /// the write set to zero. - /// - /// In the future, this may change to take a `stream`. - /// - /// Note: This is similar to `pwrite` in POSIX. - write: func( - /// Data to write - buffer: list, - /// The offset within the file at which to write. - offset: filesize, - ) -> result; - - /// Read directory entries from a directory. - /// - /// On filesystems where directories contain entries referring to themselves - /// and their parents, often named `.` and `..` respectively, these entries - /// are omitted. - /// - /// This always returns a new stream which starts at the beginning of the - /// directory. Multiple streams may be active on the same directory, and they - /// do not interfere with each other. - read-directory: func() -> result; - - /// Synchronize the data and metadata of a file to disk. - /// - /// This function succeeds with no effect if the file descriptor is not - /// opened for writing. - /// - /// Note: This is similar to `fsync` in POSIX. - sync: func() -> result<_, error-code>; - - /// Create a directory. - /// - /// Note: This is similar to `mkdirat` in POSIX. - create-directory-at: func( - /// The relative path at which to create the directory. - path: string, - ) -> result<_, error-code>; - - /// Return the attributes of an open file or directory. - /// - /// Note: This is similar to `fstat` in POSIX, except that it does not return - /// device and inode information. For testing whether two descriptors refer to - /// the same underlying filesystem object, use `is-same-object`. To obtain - /// additional data that can be used do determine whether a file has been - /// modified, use `metadata-hash`. - /// - /// Note: This was called `fd_filestat_get` in earlier versions of WASI. - stat: func() -> result; - - /// Return the attributes of a file or directory. - /// - /// Note: This is similar to `fstatat` in POSIX, except that it does not - /// return device and inode information. See the `stat` description for a - /// discussion of alternatives. - /// - /// Note: This was called `path_filestat_get` in earlier versions of WASI. - stat-at: func( - /// Flags determining the method of how the path is resolved. - path-flags: path-flags, - /// The relative path of the file or directory to inspect. - path: string, - ) -> result; - - /// Adjust the timestamps of a file or directory. - /// - /// Note: This is similar to `utimensat` in POSIX. - /// - /// Note: This was called `path_filestat_set_times` in earlier versions of - /// WASI. - set-times-at: func( - /// Flags determining the method of how the path is resolved. - path-flags: path-flags, - /// The relative path of the file or directory to operate on. - path: string, - /// The desired values of the data access timestamp. - data-access-timestamp: new-timestamp, - /// The desired values of the data modification timestamp. - data-modification-timestamp: new-timestamp, - ) -> result<_, error-code>; - - /// Create a hard link. - /// - /// Note: This is similar to `linkat` in POSIX. - link-at: func( - /// Flags determining the method of how the path is resolved. - old-path-flags: path-flags, - /// The relative source path from which to link. - old-path: string, - /// The base directory for `new-path`. - new-descriptor: borrow, - /// The relative destination path at which to create the hard link. - new-path: string, - ) -> result<_, error-code>; - - /// Open a file or directory. - /// - /// The returned descriptor is not guaranteed to be the lowest-numbered - /// descriptor not currently open/ it is randomized to prevent applications - /// from depending on making assumptions about indexes, since this is - /// error-prone in multi-threaded contexts. The returned descriptor is - /// guaranteed to be less than 2**31. - /// - /// If `flags` contains `descriptor-flags::mutate-directory`, and the base - /// descriptor doesn't have `descriptor-flags::mutate-directory` set, - /// `open-at` fails with `error-code::read-only`. - /// - /// If `flags` contains `write` or `mutate-directory`, or `open-flags` - /// contains `truncate` or `create`, and the base descriptor doesn't have - /// `descriptor-flags::mutate-directory` set, `open-at` fails with - /// `error-code::read-only`. - /// - /// Note: This is similar to `openat` in POSIX. - open-at: func( - /// Flags determining the method of how the path is resolved. - path-flags: path-flags, - /// The relative path of the object to open. - path: string, - /// The method by which to open the file. - open-flags: open-flags, - /// Flags to use for the resulting descriptor. - %flags: descriptor-flags, - ) -> result; - - /// Read the contents of a symbolic link. - /// - /// If the contents contain an absolute or rooted path in the underlying - /// filesystem, this function fails with `error-code::not-permitted`. - /// - /// Note: This is similar to `readlinkat` in POSIX. - readlink-at: func( - /// The relative path of the symbolic link from which to read. - path: string, - ) -> result; - - /// Remove a directory. - /// - /// Return `error-code::not-empty` if the directory is not empty. - /// - /// Note: This is similar to `unlinkat(fd, path, AT_REMOVEDIR)` in POSIX. - remove-directory-at: func( - /// The relative path to a directory to remove. - path: string, - ) -> result<_, error-code>; - - /// Rename a filesystem object. - /// - /// Note: This is similar to `renameat` in POSIX. - rename-at: func( - /// The relative source path of the file or directory to rename. - old-path: string, - /// The base directory for `new-path`. - new-descriptor: borrow, - /// The relative destination path to which to rename the file or directory. - new-path: string, - ) -> result<_, error-code>; - - /// Create a symbolic link (also known as a "symlink"). - /// - /// If `old-path` starts with `/`, the function fails with - /// `error-code::not-permitted`. - /// - /// Note: This is similar to `symlinkat` in POSIX. - symlink-at: func( - /// The contents of the symbolic link. - old-path: string, - /// The relative destination path at which to create the symbolic link. - new-path: string, - ) -> result<_, error-code>; - - /// Unlink a filesystem object that is not a directory. - /// - /// Return `error-code::is-directory` if the path refers to a directory. - /// Note: This is similar to `unlinkat(fd, path, 0)` in POSIX. - unlink-file-at: func( - /// The relative path to a file to unlink. - path: string, - ) -> result<_, error-code>; - - /// Test whether two descriptors refer to the same filesystem object. - /// - /// In POSIX, this corresponds to testing whether the two descriptors have the - /// same device (`st_dev`) and inode (`st_ino` or `d_ino`) numbers. - /// wasi-filesystem does not expose device and inode numbers, so this function - /// may be used instead. - is-same-object: func(other: borrow) -> bool; - - /// Return a hash of the metadata associated with a filesystem object referred - /// to by a descriptor. - /// - /// This returns a hash of the last-modification timestamp and file size, and - /// may also include the inode number, device number, birth timestamp, and - /// other metadata fields that may change when the file is modified or - /// replaced. It may also include a secret value chosen by the - /// implementation and not otherwise exposed. - /// - /// Implementations are encourated to provide the following properties: - /// - /// - If the file is not modified or replaced, the computed hash value should - /// usually not change. - /// - If the object is modified or replaced, the computed hash value should - /// usually change. - /// - The inputs to the hash should not be easily computable from the - /// computed hash. - /// - /// However, none of these is required. - metadata-hash: func() -> result; - - /// Return a hash of the metadata associated with a filesystem object referred - /// to by a directory descriptor and a relative path. - /// - /// This performs the same hash computation as `metadata-hash`. - metadata-hash-at: func( - /// Flags determining the method of how the path is resolved. - path-flags: path-flags, - /// The relative path of the file or directory to inspect. - path: string, - ) -> result; - } - - /// A stream of directory entries. - resource directory-entry-stream { - /// Read a single directory entry from a `directory-entry-stream`. - read-directory-entry: func() -> result, error-code>; - } - - /// Attempts to extract a filesystem-related `error-code` from the stream - /// `error` provided. - /// - /// Stream operations which return `stream-error::last-operation-failed` - /// have a payload with more information about the operation that failed. - /// This payload can be passed through to this function to see if there's - /// filesystem-related information about the error to return. - /// - /// Note that this function is fallible because not all stream-related - /// errors are filesystem-related errors. - filesystem-error-code: func(err: borrow) -> option; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/filesystem/world.wit b/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/filesystem/world.wit deleted file mode 100644 index 285e0ba..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/filesystem/world.wit +++ /dev/null @@ -1,6 +0,0 @@ -package wasi:filesystem@0.2.0-rc-2023-11-10; - -world imports { - import types; - import preopens; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/http/handler.wit b/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/http/handler.wit deleted file mode 100644 index a34a064..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/http/handler.wit +++ /dev/null @@ -1,43 +0,0 @@ -/// This interface defines a handler of incoming HTTP Requests. It should -/// be exported by components which can respond to HTTP Requests. -interface incoming-handler { - use types.{incoming-request, response-outparam}; - - /// This function is invoked with an incoming HTTP Request, and a resource - /// `response-outparam` which provides the capability to reply with an HTTP - /// Response. The response is sent by calling the `response-outparam.set` - /// method, which allows execution to continue after the response has been - /// sent. This enables both streaming to the response body, and performing other - /// work. - /// - /// The implementor of this function must write a response to the - /// `response-outparam` before returning, or else the caller will respond - /// with an error on its behalf. - handle: func( - request: incoming-request, - response-out: response-outparam - ); -} - -/// This interface defines a handler of outgoing HTTP Requests. It should be -/// imported by components which wish to make HTTP Requests. -interface outgoing-handler { - use types.{ - outgoing-request, request-options, future-incoming-response, error-code - }; - - /// This function is invoked with an outgoing HTTP Request, and it returns - /// a resource `future-incoming-response` which represents an HTTP Response - /// which may arrive in the future. - /// - /// The `options` argument accepts optional parameters for the HTTP - /// protocol's transport layer. - /// - /// This function may return an error if the `outgoing-request` is invalid - /// or not allowed to be made. Otherwise, protocol errors are reported - /// through the `future-incoming-response`. - handle: func( - request: outgoing-request, - options: option - ) -> result; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/http/proxy.wit b/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/http/proxy.wit deleted file mode 100644 index 0f466c9..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/http/proxy.wit +++ /dev/null @@ -1,32 +0,0 @@ -package wasi:http@0.2.0-rc-2023-12-05; - -/// The `wasi:http/proxy` world captures a widely-implementable intersection of -/// hosts that includes HTTP forward and reverse proxies. Components targeting -/// this world may concurrently stream in and out any number of incoming and -/// outgoing HTTP requests. -world proxy { - /// HTTP proxies have access to time and randomness. - include wasi:clocks/imports@0.2.0-rc-2023-11-10; - import wasi:random/random@0.2.0-rc-2023-11-10; - - /// Proxies have standard output and error streams which are expected to - /// terminate in a developer-facing console provided by the host. - import wasi:cli/stdout@0.2.0-rc-2023-12-05; - import wasi:cli/stderr@0.2.0-rc-2023-12-05; - - /// TODO: this is a temporary workaround until component tooling is able to - /// gracefully handle the absence of stdin. Hosts must return an eof stream - /// for this import, which is what wasi-libc + tooling will do automatically - /// when this import is properly removed. - import wasi:cli/stdin@0.2.0-rc-2023-12-05; - - /// This is the default handler to use when user code simply wants to make an - /// HTTP request (e.g., via `fetch()`). - import outgoing-handler; - - /// The host delivers incoming HTTP requests to a component by calling the - /// `handle` function of this exported interface. A host may arbitrarily reuse - /// or not reuse component instance when delivering incoming HTTP requests and - /// thus a component must be able to handle 0..N calls to `handle`. - export incoming-handler; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/http/types.wit b/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/http/types.wit deleted file mode 100644 index 0f698e7..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/http/types.wit +++ /dev/null @@ -1,570 +0,0 @@ -/// This interface defines all of the types and methods for implementing -/// HTTP Requests and Responses, both incoming and outgoing, as well as -/// their headers, trailers, and bodies. -interface types { - use wasi:clocks/monotonic-clock@0.2.0-rc-2023-11-10.{duration}; - use wasi:io/streams@0.2.0-rc-2023-11-10.{input-stream, output-stream}; - use wasi:io/error@0.2.0-rc-2023-11-10.{error as io-error}; - use wasi:io/poll@0.2.0-rc-2023-11-10.{pollable}; - - /// This type corresponds to HTTP standard Methods. - variant method { - get, - head, - post, - put, - delete, - connect, - options, - trace, - patch, - other(string) - } - - /// This type corresponds to HTTP standard Related Schemes. - variant scheme { - HTTP, - HTTPS, - other(string) - } - - /// These cases are inspired by the IANA HTTP Proxy Error Types: - /// https://www.iana.org/assignments/http-proxy-status/http-proxy-status.xhtml#table-http-proxy-error-types - variant error-code { - DNS-timeout, - DNS-error(DNS-error-payload), - destination-not-found, - destination-unavailable, - destination-IP-prohibited, - destination-IP-unroutable, - connection-refused, - connection-terminated, - connection-timeout, - connection-read-timeout, - connection-write-timeout, - connection-limit-reached, - TLS-protocol-error, - TLS-certificate-error, - TLS-alert-received(TLS-alert-received-payload), - HTTP-request-denied, - HTTP-request-length-required, - HTTP-request-body-size(option), - HTTP-request-method-invalid, - HTTP-request-URI-invalid, - HTTP-request-URI-too-long, - HTTP-request-header-section-size(option), - HTTP-request-header-size(option), - HTTP-request-trailer-section-size(option), - HTTP-request-trailer-size(field-size-payload), - HTTP-response-incomplete, - HTTP-response-header-section-size(option), - HTTP-response-header-size(field-size-payload), - HTTP-response-body-size(option), - HTTP-response-trailer-section-size(option), - HTTP-response-trailer-size(field-size-payload), - HTTP-response-transfer-coding(option), - HTTP-response-content-coding(option), - HTTP-response-timeout, - HTTP-upgrade-failed, - HTTP-protocol-error, - loop-detected, - configuration-error, - /// This is a catch-all error for anything that doesn't fit cleanly into a - /// more specific case. It also includes an optional string for an - /// unstructured description of the error. Users should not depend on the - /// string for diagnosing errors, as it's not required to be consistent - /// between implementations. - internal-error(option) - } - - /// Defines the case payload type for `DNS-error` above: - record DNS-error-payload { - rcode: option, - info-code: option - } - - /// Defines the case payload type for `TLS-alert-received` above: - record TLS-alert-received-payload { - alert-id: option, - alert-message: option - } - - /// Defines the case payload type for `HTTP-response-{header,trailer}-size` above: - record field-size-payload { - field-name: option, - field-size: option - } - - /// Attempts to extract a http-related `error` from the wasi:io `error` - /// provided. - /// - /// Stream operations which return - /// `wasi:io/stream/stream-error::last-operation-failed` have a payload of - /// type `wasi:io/error/error` with more information about the operation - /// that failed. This payload can be passed through to this function to see - /// if there's http-related information about the error to return. - /// - /// Note that this function is fallible because not all io-errors are - /// http-related errors. - http-error-code: func(err: borrow) -> option; - - /// This type enumerates the different kinds of errors that may occur when - /// setting or appending to a `fields` resource. - variant header-error { - /// This error indicates that a `field-key` or `field-value` was - /// syntactically invalid when used with an operation that sets headers in a - /// `fields`. - invalid-syntax, - - /// This error indicates that a forbidden `field-key` was used when trying - /// to set a header in a `fields`. - forbidden, - - /// This error indicates that the operation on the `fields` was not - /// permitted because the fields are immutable. - immutable, - } - - /// Field keys are always strings. - type field-key = string; - - /// Field values should always be ASCII strings. However, in - /// reality, HTTP implementations often have to interpret malformed values, - /// so they are provided as a list of bytes. - type field-value = list; - - /// This following block defines the `fields` resource which corresponds to - /// HTTP standard Fields. Fields are a common representation used for both - /// Headers and Trailers. - /// - /// A `fields` may be mutable or immutable. A `fields` created using the - /// constructor, `from-list`, or `clone` will be mutable, but a `fields` - /// resource given by other means (including, but not limited to, - /// `incoming-request.headers`, `outgoing-request.headers`) might be be - /// immutable. In an immutable fields, the `set`, `append`, and `delete` - /// operations will fail with `header-error.immutable`. - resource fields { - - /// Construct an empty HTTP Fields. - /// - /// The resulting `fields` is mutable. - constructor(); - - /// Construct an HTTP Fields. - /// - /// The resulting `fields` is mutable. - /// - /// The list represents each key-value pair in the Fields. Keys - /// which have multiple values are represented by multiple entries in this - /// list with the same key. - /// - /// The tuple is a pair of the field key, represented as a string, and - /// Value, represented as a list of bytes. In a valid Fields, all keys - /// and values are valid UTF-8 strings. However, values are not always - /// well-formed, so they are represented as a raw list of bytes. - /// - /// An error result will be returned if any header or value was - /// syntactically invalid, or if a header was forbidden. - from-list: static func( - entries: list> - ) -> result; - - /// Get all of the values corresponding to a key. If the key is not present - /// in this `fields`, an empty list is returned. However, if the key is - /// present but empty, this is represented by a list with one or more - /// empty field-values present. - get: func(name: field-key) -> list; - - /// Returns `true` when the key is present in this `fields`. If the key is - /// syntactically invalid, `false` is returned. - has: func(name: field-key) -> bool; - - /// Set all of the values for a key. Clears any existing values for that - /// key, if they have been set. - /// - /// Fails with `header-error.immutable` if the `fields` are immutable. - set: func(name: field-key, value: list) -> result<_, header-error>; - - /// Delete all values for a key. Does nothing if no values for the key - /// exist. - /// - /// Fails with `header-error.immutable` if the `fields` are immutable. - delete: func(name: field-key) -> result<_, header-error>; - - /// Append a value for a key. Does not change or delete any existing - /// values for that key. - /// - /// Fails with `header-error.immutable` if the `fields` are immutable. - append: func(name: field-key, value: field-value) -> result<_, header-error>; - - /// Retrieve the full set of keys and values in the Fields. Like the - /// constructor, the list represents each key-value pair. - /// - /// The outer list represents each key-value pair in the Fields. Keys - /// which have multiple values are represented by multiple entries in this - /// list with the same key. - entries: func() -> list>; - - /// Make a deep copy of the Fields. Equivelant in behavior to calling the - /// `fields` constructor on the return value of `entries`. The resulting - /// `fields` is mutable. - clone: func() -> fields; - } - - /// Headers is an alias for Fields. - type headers = fields; - - /// Trailers is an alias for Fields. - type trailers = fields; - - /// Represents an incoming HTTP Request. - resource incoming-request { - - /// Returns the method of the incoming request. - method: func() -> method; - - /// Returns the path with query parameters from the request, as a string. - path-with-query: func() -> option; - - /// Returns the protocol scheme from the request. - scheme: func() -> option; - - /// Returns the authority from the request, if it was present. - authority: func() -> option; - - /// Get the `headers` associated with the request. - /// - /// The returned `headers` resource is immutable: `set`, `append`, and - /// `delete` operations will fail with `header-error.immutable`. - /// - /// The `headers` returned are a child resource: it must be dropped before - /// the parent `incoming-request` is dropped. Dropping this - /// `incoming-request` before all children are dropped will trap. - headers: func() -> headers; - - /// Gives the `incoming-body` associated with this request. Will only - /// return success at most once, and subsequent calls will return error. - consume: func() -> result; - } - - /// Represents an outgoing HTTP Request. - resource outgoing-request { - - /// Construct a new `outgoing-request` with a default `method` of `GET`, and - /// `none` values for `path-with-query`, `scheme`, and `authority`. - /// - /// * `headers` is the HTTP Headers for the Request. - /// - /// It is possible to construct, or manipulate with the accessor functions - /// below, an `outgoing-request` with an invalid combination of `scheme` - /// and `authority`, or `headers` which are not permitted to be sent. - /// It is the obligation of the `outgoing-handler.handle` implementation - /// to reject invalid constructions of `outgoing-request`. - constructor( - headers: headers - ); - - /// Returns the resource corresponding to the outgoing Body for this - /// Request. - /// - /// Returns success on the first call: the `outgoing-body` resource for - /// this `outgoing-request` can be retrieved at most once. Subsequent - /// calls will return error. - body: func() -> result; - - /// Get the Method for the Request. - method: func() -> method; - /// Set the Method for the Request. Fails if the string present in a - /// `method.other` argument is not a syntactically valid method. - set-method: func(method: method) -> result; - - /// Get the combination of the HTTP Path and Query for the Request. - /// When `none`, this represents an empty Path and empty Query. - path-with-query: func() -> option; - /// Set the combination of the HTTP Path and Query for the Request. - /// When `none`, this represents an empty Path and empty Query. Fails is the - /// string given is not a syntactically valid path and query uri component. - set-path-with-query: func(path-with-query: option) -> result; - - /// Get the HTTP Related Scheme for the Request. When `none`, the - /// implementation may choose an appropriate default scheme. - scheme: func() -> option; - /// Set the HTTP Related Scheme for the Request. When `none`, the - /// implementation may choose an appropriate default scheme. Fails if the - /// string given is not a syntactically valid uri scheme. - set-scheme: func(scheme: option) -> result; - - /// Get the HTTP Authority for the Request. A value of `none` may be used - /// with Related Schemes which do not require an Authority. The HTTP and - /// HTTPS schemes always require an authority. - authority: func() -> option; - /// Set the HTTP Authority for the Request. A value of `none` may be used - /// with Related Schemes which do not require an Authority. The HTTP and - /// HTTPS schemes always require an authority. Fails if the string given is - /// not a syntactically valid uri authority. - set-authority: func(authority: option) -> result; - - /// Get the headers associated with the Request. - /// - /// The returned `headers` resource is immutable: `set`, `append`, and - /// `delete` operations will fail with `header-error.immutable`. - /// - /// This headers resource is a child: it must be dropped before the parent - /// `outgoing-request` is dropped, or its ownership is transfered to - /// another component by e.g. `outgoing-handler.handle`. - headers: func() -> headers; - } - - /// Parameters for making an HTTP Request. Each of these parameters is - /// currently an optional timeout applicable to the transport layer of the - /// HTTP protocol. - /// - /// These timeouts are separate from any the user may use to bound a - /// blocking call to `wasi:io/poll.poll`. - resource request-options { - /// Construct a default `request-options` value. - constructor(); - - /// The timeout for the initial connect to the HTTP Server. - connect-timeout: func() -> option; - - /// Set the timeout for the initial connect to the HTTP Server. An error - /// return value indicates that this timeout is not supported. - set-connect-timeout: func(duration: option) -> result; - - /// The timeout for receiving the first byte of the Response body. - first-byte-timeout: func() -> option; - - /// Set the timeout for receiving the first byte of the Response body. An - /// error return value indicates that this timeout is not supported. - set-first-byte-timeout: func(duration: option) -> result; - - /// The timeout for receiving subsequent chunks of bytes in the Response - /// body stream. - between-bytes-timeout: func() -> option; - - /// Set the timeout for receiving subsequent chunks of bytes in the Response - /// body stream. An error return value indicates that this timeout is not - /// supported. - set-between-bytes-timeout: func(duration: option) -> result; - } - - /// Represents the ability to send an HTTP Response. - /// - /// This resource is used by the `wasi:http/incoming-handler` interface to - /// allow a Response to be sent corresponding to the Request provided as the - /// other argument to `incoming-handler.handle`. - resource response-outparam { - - /// Set the value of the `response-outparam` to either send a response, - /// or indicate an error. - /// - /// This method consumes the `response-outparam` to ensure that it is - /// called at most once. If it is never called, the implementation - /// will respond with an error. - /// - /// The user may provide an `error` to `response` to allow the - /// implementation determine how to respond with an HTTP error response. - set: static func( - param: response-outparam, - response: result, - ); - } - - /// This type corresponds to the HTTP standard Status Code. - type status-code = u16; - - /// Represents an incoming HTTP Response. - resource incoming-response { - - /// Returns the status code from the incoming response. - status: func() -> status-code; - - /// Returns the headers from the incoming response. - /// - /// The returned `headers` resource is immutable: `set`, `append`, and - /// `delete` operations will fail with `header-error.immutable`. - /// - /// This headers resource is a child: it must be dropped before the parent - /// `incoming-response` is dropped. - headers: func() -> headers; - - /// Returns the incoming body. May be called at most once. Returns error - /// if called additional times. - consume: func() -> result; - } - - /// Represents an incoming HTTP Request or Response's Body. - /// - /// A body has both its contents - a stream of bytes - and a (possibly - /// empty) set of trailers, indicating that the full contents of the - /// body have been received. This resource represents the contents as - /// an `input-stream` and the delivery of trailers as a `future-trailers`, - /// and ensures that the user of this interface may only be consuming either - /// the body contents or waiting on trailers at any given time. - resource incoming-body { - - /// Returns the contents of the body, as a stream of bytes. - /// - /// Returns success on first call: the stream representing the contents - /// can be retrieved at most once. Subsequent calls will return error. - /// - /// The returned `input-stream` resource is a child: it must be dropped - /// before the parent `incoming-body` is dropped, or consumed by - /// `incoming-body.finish`. - /// - /// This invariant ensures that the implementation can determine whether - /// the user is consuming the contents of the body, waiting on the - /// `future-trailers` to be ready, or neither. This allows for network - /// backpressure is to be applied when the user is consuming the body, - /// and for that backpressure to not inhibit delivery of the trailers if - /// the user does not read the entire body. - %stream: func() -> result; - - /// Takes ownership of `incoming-body`, and returns a `future-trailers`. - /// This function will trap if the `input-stream` child is still alive. - finish: static func(this: incoming-body) -> future-trailers; - } - - /// Represents a future which may eventaully return trailers, or an error. - /// - /// In the case that the incoming HTTP Request or Response did not have any - /// trailers, this future will resolve to the empty set of trailers once the - /// complete Request or Response body has been received. - resource future-trailers { - - /// Returns a pollable which becomes ready when either the trailers have - /// been received, or an error has occured. When this pollable is ready, - /// the `get` method will return `some`. - subscribe: func() -> pollable; - - /// Returns the contents of the trailers, or an error which occured, - /// once the future is ready. - /// - /// The outer `option` represents future readiness. Users can wait on this - /// `option` to become `some` using the `subscribe` method. - /// - /// The outer `result` is used to retrieve the trailers or error at most - /// once. It will be success on the first call in which the outer option - /// is `some`, and error on subsequent calls. - /// - /// The inner `result` represents that either the HTTP Request or Response - /// body, as well as any trailers, were received successfully, or that an - /// error occured receiving them. The optional `trailers` indicates whether - /// or not trailers were present in the body. - /// - /// When some `trailers` are returned by this method, the `trailers` - /// resource is immutable, and a child. Use of the `set`, `append`, or - /// `delete` methods will return an error, and the resource must be - /// dropped before the parent `future-trailers` is dropped. - get: func() -> option, error-code>>>; - } - - /// Represents an outgoing HTTP Response. - resource outgoing-response { - - /// Construct an `outgoing-response`, with a default `status-code` of `200`. - /// If a different `status-code` is needed, it must be set via the - /// `set-status-code` method. - /// - /// * `headers` is the HTTP Headers for the Response. - constructor(headers: headers); - - /// Get the HTTP Status Code for the Response. - status-code: func() -> status-code; - - /// Set the HTTP Status Code for the Response. Fails if the status-code - /// given is not a valid http status code. - set-status-code: func(status-code: status-code) -> result; - - /// Get the headers associated with the Request. - /// - /// The returned `headers` resource is immutable: `set`, `append`, and - /// `delete` operations will fail with `header-error.immutable`. - /// - /// This headers resource is a child: it must be dropped before the parent - /// `outgoing-request` is dropped, or its ownership is transfered to - /// another component by e.g. `outgoing-handler.handle`. - headers: func() -> headers; - - /// Returns the resource corresponding to the outgoing Body for this Response. - /// - /// Returns success on the first call: the `outgoing-body` resource for - /// this `outgoing-response` can be retrieved at most once. Subsequent - /// calls will return error. - body: func() -> result; - } - - /// Represents an outgoing HTTP Request or Response's Body. - /// - /// A body has both its contents - a stream of bytes - and a (possibly - /// empty) set of trailers, inducating the full contents of the body - /// have been sent. This resource represents the contents as an - /// `output-stream` child resource, and the completion of the body (with - /// optional trailers) with a static function that consumes the - /// `outgoing-body` resource, and ensures that the user of this interface - /// may not write to the body contents after the body has been finished. - /// - /// If the user code drops this resource, as opposed to calling the static - /// method `finish`, the implementation should treat the body as incomplete, - /// and that an error has occured. The implementation should propogate this - /// error to the HTTP protocol by whatever means it has available, - /// including: corrupting the body on the wire, aborting the associated - /// Request, or sending a late status code for the Response. - resource outgoing-body { - - /// Returns a stream for writing the body contents. - /// - /// The returned `output-stream` is a child resource: it must be dropped - /// before the parent `outgoing-body` resource is dropped (or finished), - /// otherwise the `outgoing-body` drop or `finish` will trap. - /// - /// Returns success on the first call: the `output-stream` resource for - /// this `outgoing-body` may be retrieved at most once. Subsequent calls - /// will return error. - write: func() -> result; - - /// Finalize an outgoing body, optionally providing trailers. This must be - /// called to signal that the response is complete. If the `outgoing-body` - /// is dropped without calling `outgoing-body.finalize`, the implementation - /// should treat the body as corrupted. - /// - /// Fails if the body's `outgoing-request` or `outgoing-response` was - /// constructed with a Content-Length header, and the contents written - /// to the body (via `write`) does not match the value given in the - /// Content-Length. - finish: static func( - this: outgoing-body, - trailers: option - ) -> result<_, error-code>; - } - - /// Represents a future which may eventaully return an incoming HTTP - /// Response, or an error. - /// - /// This resource is returned by the `wasi:http/outgoing-handler` interface to - /// provide the HTTP Response corresponding to the sent Request. - resource future-incoming-response { - /// Returns a pollable which becomes ready when either the Response has - /// been received, or an error has occured. When this pollable is ready, - /// the `get` method will return `some`. - subscribe: func() -> pollable; - - /// Returns the incoming HTTP Response, or an error, once one is ready. - /// - /// The outer `option` represents future readiness. Users can wait on this - /// `option` to become `some` using the `subscribe` method. - /// - /// The outer `result` is used to retrieve the response or error at most - /// once. It will be success on the first call in which the outer option - /// is `some`, and error on subsequent calls. - /// - /// The inner `result` represents that either the incoming HTTP Response - /// status and headers have recieved successfully, or that an error - /// occured. Errors may also occur while consuming the response body, - /// but those will be reported by the `incoming-body` and its - /// `output-stream` child. - get: func() -> option>>; - - } -} diff --git a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/io/error.wit b/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/io/error.wit deleted file mode 100644 index 31918ac..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/io/error.wit +++ /dev/null @@ -1,34 +0,0 @@ -package wasi:io@0.2.0-rc-2023-11-10; - - -interface error { - /// A resource which represents some error information. - /// - /// The only method provided by this resource is `to-debug-string`, - /// which provides some human-readable information about the error. - /// - /// In the `wasi:io` package, this resource is returned through the - /// `wasi:io/streams/stream-error` type. - /// - /// To provide more specific error information, other interfaces may - /// provide functions to further "downcast" this error into more specific - /// error information. For example, `error`s returned in streams derived - /// from filesystem types to be described using the filesystem's own - /// error-code type, using the function - /// `wasi:filesystem/types/filesystem-error-code`, which takes a parameter - /// `borrow` and returns - /// `option`. - /// - /// The set of functions which can "downcast" an `error` into a more - /// concrete type is open. - resource error { - /// Returns a string that is suitable to assist humans in debugging - /// this error. - /// - /// WARNING: The returned string should not be consumed mechanically! - /// It may change across platforms, hosts, or other implementation - /// details. Parsing this string is a major platform-compatibility - /// hazard. - to-debug-string: func() -> string; - } -} diff --git a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/io/poll.wit b/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/io/poll.wit deleted file mode 100644 index bddde3c..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/io/poll.wit +++ /dev/null @@ -1,41 +0,0 @@ -package wasi:io@0.2.0-rc-2023-11-10; - -/// A poll API intended to let users wait for I/O events on multiple handles -/// at once. -interface poll { - /// `pollable` epresents a single I/O event which may be ready, or not. - resource pollable { - - /// Return the readiness of a pollable. This function never blocks. - /// - /// Returns `true` when the pollable is ready, and `false` otherwise. - ready: func() -> bool; - - /// `block` returns immediately if the pollable is ready, and otherwise - /// blocks until ready. - /// - /// This function is equivalent to calling `poll.poll` on a list - /// containing only this pollable. - block: func(); - } - - /// Poll for completion on a set of pollables. - /// - /// This function takes a list of pollables, which identify I/O sources of - /// interest, and waits until one or more of the events is ready for I/O. - /// - /// The result `list` contains one or more indices of handles in the - /// argument list that is ready for I/O. - /// - /// If the list contains more elements than can be indexed with a `u32` - /// value, this function traps. - /// - /// A timeout can be implemented by adding a pollable from the - /// wasi-clocks API to the list. - /// - /// This function does not return a `result`; polling in itself does not - /// do any I/O so it doesn't fail. If any of the I/O sources identified by - /// the pollables has an error, it is indicated by marking the source as - /// being reaedy for I/O. - poll: func(in: list>) -> list; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/io/streams.wit b/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/io/streams.wit deleted file mode 100644 index e7e1b68..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/io/streams.wit +++ /dev/null @@ -1,251 +0,0 @@ -package wasi:io@0.2.0-rc-2023-11-10; - -/// WASI I/O is an I/O abstraction API which is currently focused on providing -/// stream types. -/// -/// In the future, the component model is expected to add built-in stream types; -/// when it does, they are expected to subsume this API. -interface streams { - use error.{error}; - use poll.{pollable}; - - /// An error for input-stream and output-stream operations. - variant stream-error { - /// The last operation (a write or flush) failed before completion. - /// - /// More information is available in the `error` payload. - last-operation-failed(error), - /// The stream is closed: no more input will be accepted by the - /// stream. A closed output-stream will return this error on all - /// future operations. - closed - } - - /// An input bytestream. - /// - /// `input-stream`s are *non-blocking* to the extent practical on underlying - /// platforms. I/O operations always return promptly; if fewer bytes are - /// promptly available than requested, they return the number of bytes promptly - /// available, which could even be zero. To wait for data to be available, - /// use the `subscribe` function to obtain a `pollable` which can be polled - /// for using `wasi:io/poll`. - resource input-stream { - /// Perform a non-blocking read from the stream. - /// - /// This function returns a list of bytes containing the read data, - /// when successful. The returned list will contain up to `len` bytes; - /// it may return fewer than requested, but not more. The list is - /// empty when no bytes are available for reading at this time. The - /// pollable given by `subscribe` will be ready when more bytes are - /// available. - /// - /// This function fails with a `stream-error` when the operation - /// encounters an error, giving `last-operation-failed`, or when the - /// stream is closed, giving `closed`. - /// - /// When the caller gives a `len` of 0, it represents a request to - /// read 0 bytes. If the stream is still open, this call should - /// succeed and return an empty list, or otherwise fail with `closed`. - /// - /// The `len` parameter is a `u64`, which could represent a list of u8 which - /// is not possible to allocate in wasm32, or not desirable to allocate as - /// as a return value by the callee. The callee may return a list of bytes - /// less than `len` in size while more bytes are available for reading. - read: func( - /// The maximum number of bytes to read - len: u64 - ) -> result, stream-error>; - - /// Read bytes from a stream, after blocking until at least one byte can - /// be read. Except for blocking, behavior is identical to `read`. - blocking-read: func( - /// The maximum number of bytes to read - len: u64 - ) -> result, stream-error>; - - /// Skip bytes from a stream. Returns number of bytes skipped. - /// - /// Behaves identical to `read`, except instead of returning a list - /// of bytes, returns the number of bytes consumed from the stream. - skip: func( - /// The maximum number of bytes to skip. - len: u64, - ) -> result; - - /// Skip bytes from a stream, after blocking until at least one byte - /// can be skipped. Except for blocking behavior, identical to `skip`. - blocking-skip: func( - /// The maximum number of bytes to skip. - len: u64, - ) -> result; - - /// Create a `pollable` which will resolve once either the specified stream - /// has bytes available to read or the other end of the stream has been - /// closed. - /// The created `pollable` is a child resource of the `input-stream`. - /// Implementations may trap if the `input-stream` is dropped before - /// all derived `pollable`s created with this function are dropped. - subscribe: func() -> pollable; - } - - - /// An output bytestream. - /// - /// `output-stream`s are *non-blocking* to the extent practical on - /// underlying platforms. Except where specified otherwise, I/O operations also - /// always return promptly, after the number of bytes that can be written - /// promptly, which could even be zero. To wait for the stream to be ready to - /// accept data, the `subscribe` function to obtain a `pollable` which can be - /// polled for using `wasi:io/poll`. - resource output-stream { - /// Check readiness for writing. This function never blocks. - /// - /// Returns the number of bytes permitted for the next call to `write`, - /// or an error. Calling `write` with more bytes than this function has - /// permitted will trap. - /// - /// When this function returns 0 bytes, the `subscribe` pollable will - /// become ready when this function will report at least 1 byte, or an - /// error. - check-write: func() -> result; - - /// Perform a write. This function never blocks. - /// - /// Precondition: check-write gave permit of Ok(n) and contents has a - /// length of less than or equal to n. Otherwise, this function will trap. - /// - /// returns Err(closed) without writing if the stream has closed since - /// the last call to check-write provided a permit. - write: func( - contents: list - ) -> result<_, stream-error>; - - /// Perform a write of up to 4096 bytes, and then flush the stream. Block - /// until all of these operations are complete, or an error occurs. - /// - /// This is a convenience wrapper around the use of `check-write`, - /// `subscribe`, `write`, and `flush`, and is implemented with the - /// following pseudo-code: - /// - /// ```text - /// let pollable = this.subscribe(); - /// while !contents.is_empty() { - /// // Wait for the stream to become writable - /// poll-one(pollable); - /// let Ok(n) = this.check-write(); // eliding error handling - /// let len = min(n, contents.len()); - /// let (chunk, rest) = contents.split_at(len); - /// this.write(chunk ); // eliding error handling - /// contents = rest; - /// } - /// this.flush(); - /// // Wait for completion of `flush` - /// poll-one(pollable); - /// // Check for any errors that arose during `flush` - /// let _ = this.check-write(); // eliding error handling - /// ``` - blocking-write-and-flush: func( - contents: list - ) -> result<_, stream-error>; - - /// Request to flush buffered output. This function never blocks. - /// - /// This tells the output-stream that the caller intends any buffered - /// output to be flushed. the output which is expected to be flushed - /// is all that has been passed to `write` prior to this call. - /// - /// Upon calling this function, the `output-stream` will not accept any - /// writes (`check-write` will return `ok(0)`) until the flush has - /// completed. The `subscribe` pollable will become ready when the - /// flush has completed and the stream can accept more writes. - flush: func() -> result<_, stream-error>; - - /// Request to flush buffered output, and block until flush completes - /// and stream is ready for writing again. - blocking-flush: func() -> result<_, stream-error>; - - /// Create a `pollable` which will resolve once the output-stream - /// is ready for more writing, or an error has occured. When this - /// pollable is ready, `check-write` will return `ok(n)` with n>0, or an - /// error. - /// - /// If the stream is closed, this pollable is always ready immediately. - /// - /// The created `pollable` is a child resource of the `output-stream`. - /// Implementations may trap if the `output-stream` is dropped before - /// all derived `pollable`s created with this function are dropped. - subscribe: func() -> pollable; - - /// Write zeroes to a stream. - /// - /// this should be used precisely like `write` with the exact same - /// preconditions (must use check-write first), but instead of - /// passing a list of bytes, you simply pass the number of zero-bytes - /// that should be written. - write-zeroes: func( - /// The number of zero-bytes to write - len: u64 - ) -> result<_, stream-error>; - - /// Perform a write of up to 4096 zeroes, and then flush the stream. - /// Block until all of these operations are complete, or an error - /// occurs. - /// - /// This is a convenience wrapper around the use of `check-write`, - /// `subscribe`, `write-zeroes`, and `flush`, and is implemented with - /// the following pseudo-code: - /// - /// ```text - /// let pollable = this.subscribe(); - /// while num_zeroes != 0 { - /// // Wait for the stream to become writable - /// poll-one(pollable); - /// let Ok(n) = this.check-write(); // eliding error handling - /// let len = min(n, num_zeroes); - /// this.write-zeroes(len); // eliding error handling - /// num_zeroes -= len; - /// } - /// this.flush(); - /// // Wait for completion of `flush` - /// poll-one(pollable); - /// // Check for any errors that arose during `flush` - /// let _ = this.check-write(); // eliding error handling - /// ``` - blocking-write-zeroes-and-flush: func( - /// The number of zero-bytes to write - len: u64 - ) -> result<_, stream-error>; - - /// Read from one stream and write to another. - /// - /// The behavior of splice is equivelant to: - /// 1. calling `check-write` on the `output-stream` - /// 2. calling `read` on the `input-stream` with the smaller of the - /// `check-write` permitted length and the `len` provided to `splice` - /// 3. calling `write` on the `output-stream` with that read data. - /// - /// Any error reported by the call to `check-write`, `read`, or - /// `write` ends the splice and reports that error. - /// - /// This function returns the number of bytes transferred; it may be less - /// than `len`. - splice: func( - /// The stream to read from - src: borrow, - /// The number of bytes to splice - len: u64, - ) -> result; - - /// Read from one stream and write to another, with blocking. - /// - /// This is similar to `splice`, except that it blocks until the - /// `output-stream` is ready for writing, and the `input-stream` - /// is ready for reading, before performing the `splice`. - blocking-splice: func( - /// The stream to read from - src: borrow, - /// The number of bytes to splice - len: u64, - ) -> result; - } -} diff --git a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/io/world.wit b/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/io/world.wit deleted file mode 100644 index 8243da2..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/io/world.wit +++ /dev/null @@ -1,6 +0,0 @@ -package wasi:io@0.2.0-rc-2023-11-10; - -world imports { - import streams; - import poll; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/random/insecure-seed.wit b/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/random/insecure-seed.wit deleted file mode 100644 index f76e87d..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/random/insecure-seed.wit +++ /dev/null @@ -1,25 +0,0 @@ -package wasi:random@0.2.0-rc-2023-11-10; -/// The insecure-seed interface for seeding hash-map DoS resistance. -/// -/// It is intended to be portable at least between Unix-family platforms and -/// Windows. -interface insecure-seed { - /// Return a 128-bit value that may contain a pseudo-random value. - /// - /// The returned value is not required to be computed from a CSPRNG, and may - /// even be entirely deterministic. Host implementations are encouraged to - /// provide pseudo-random values to any program exposed to - /// attacker-controlled content, to enable DoS protection built into many - /// languages' hash-map implementations. - /// - /// This function is intended to only be called once, by a source language - /// to initialize Denial Of Service (DoS) protection in its hash-map - /// implementation. - /// - /// # Expected future evolution - /// - /// This will likely be changed to a value import, to prevent it from being - /// called multiple times and potentially used for purposes other than DoS - /// protection. - insecure-seed: func() -> tuple; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/random/insecure.wit b/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/random/insecure.wit deleted file mode 100644 index ec7b997..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/random/insecure.wit +++ /dev/null @@ -1,22 +0,0 @@ -package wasi:random@0.2.0-rc-2023-11-10; -/// The insecure interface for insecure pseudo-random numbers. -/// -/// It is intended to be portable at least between Unix-family platforms and -/// Windows. -interface insecure { - /// Return `len` insecure pseudo-random bytes. - /// - /// This function is not cryptographically secure. Do not use it for - /// anything related to security. - /// - /// There are no requirements on the values of the returned bytes, however - /// implementations are encouraged to return evenly distributed values with - /// a long period. - get-insecure-random-bytes: func(len: u64) -> list; - - /// Return an insecure pseudo-random `u64` value. - /// - /// This function returns the same type of pseudo-random data as - /// `get-insecure-random-bytes`, represented as a `u64`. - get-insecure-random-u64: func() -> u64; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/random/random.wit b/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/random/random.wit deleted file mode 100644 index 7a7dfa2..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/random/random.wit +++ /dev/null @@ -1,26 +0,0 @@ -package wasi:random@0.2.0-rc-2023-11-10; -/// WASI Random is a random data API. -/// -/// It is intended to be portable at least between Unix-family platforms and -/// Windows. -interface random { - /// Return `len` cryptographically-secure random or pseudo-random bytes. - /// - /// This function must produce data at least as cryptographically secure and - /// fast as an adequately seeded cryptographically-secure pseudo-random - /// number generator (CSPRNG). It must not block, from the perspective of - /// the calling program, under any circumstances, including on the first - /// request and on requests for numbers of bytes. The returned data must - /// always be unpredictable. - /// - /// This function must always return fresh data. Deterministic environments - /// must omit this function, rather than implementing it with deterministic - /// data. - get-random-bytes: func(len: u64) -> list; - - /// Return a cryptographically-secure random or pseudo-random `u64` value. - /// - /// This function returns the same type of data as `get-random-bytes`, - /// represented as a `u64`. - get-random-u64: func() -> u64; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/random/world.wit b/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/random/world.wit deleted file mode 100644 index 49e5743..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/random/world.wit +++ /dev/null @@ -1,7 +0,0 @@ -package wasi:random@0.2.0-rc-2023-11-10; - -world imports { - import random; - import insecure; - import insecure-seed; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/sockets/instance-network.wit b/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/sockets/instance-network.wit deleted file mode 100644 index e455d0f..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/sockets/instance-network.wit +++ /dev/null @@ -1,9 +0,0 @@ - -/// This interface provides a value-export of the default network handle.. -interface instance-network { - use network.{network}; - - /// Get a handle to the default network. - instance-network: func() -> network; - -} diff --git a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/sockets/ip-name-lookup.wit b/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/sockets/ip-name-lookup.wit deleted file mode 100644 index 931ccf7..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/sockets/ip-name-lookup.wit +++ /dev/null @@ -1,51 +0,0 @@ - -interface ip-name-lookup { - use wasi:io/poll@0.2.0-rc-2023-11-10.{pollable}; - use network.{network, error-code, ip-address}; - - - /// Resolve an internet host name to a list of IP addresses. - /// - /// Unicode domain names are automatically converted to ASCII using IDNA encoding. - /// If the input is an IP address string, the address is parsed and returned - /// as-is without making any external requests. - /// - /// See the wasi-socket proposal README.md for a comparison with getaddrinfo. - /// - /// This function never blocks. It either immediately fails or immediately - /// returns successfully with a `resolve-address-stream` that can be used - /// to (asynchronously) fetch the results. - /// - /// # Typical errors - /// - `invalid-argument`: `name` is a syntactically invalid domain name or IP address. - /// - /// # References: - /// - - /// - - /// - - /// - - resolve-addresses: func(network: borrow, name: string) -> result; - - resource resolve-address-stream { - /// Returns the next address from the resolver. - /// - /// This function should be called multiple times. On each call, it will - /// return the next address in connection order preference. If all - /// addresses have been exhausted, this function returns `none`. - /// - /// This function never returns IPv4-mapped IPv6 addresses. - /// - /// # Typical errors - /// - `name-unresolvable`: Name does not exist or has no suitable associated IP addresses. (EAI_NONAME, EAI_NODATA, EAI_ADDRFAMILY) - /// - `temporary-resolver-failure`: A temporary failure in name resolution occurred. (EAI_AGAIN) - /// - `permanent-resolver-failure`: A permanent failure in name resolution occurred. (EAI_FAIL) - /// - `would-block`: A result is not available yet. (EWOULDBLOCK, EAGAIN) - resolve-next-address: func() -> result, error-code>; - - /// Create a `pollable` which will resolve once the stream is ready for I/O. - /// - /// Note: this function is here for WASI Preview2 only. - /// It's planned to be removed when `future` is natively supported in Preview3. - subscribe: func() -> pollable; - } -} diff --git a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/sockets/network.wit b/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/sockets/network.wit deleted file mode 100644 index 6bb07cd..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/sockets/network.wit +++ /dev/null @@ -1,147 +0,0 @@ - -interface network { - /// An opaque resource that represents access to (a subset of) the network. - /// This enables context-based security for networking. - /// There is no need for this to map 1:1 to a physical network interface. - resource network; - - /// Error codes. - /// - /// In theory, every API can return any error code. - /// In practice, API's typically only return the errors documented per API - /// combined with a couple of errors that are always possible: - /// - `unknown` - /// - `access-denied` - /// - `not-supported` - /// - `out-of-memory` - /// - `concurrency-conflict` - /// - /// See each individual API for what the POSIX equivalents are. They sometimes differ per API. - enum error-code { - // ### GENERAL ERRORS ### - - /// Unknown error - unknown, - - /// Access denied. - /// - /// POSIX equivalent: EACCES, EPERM - access-denied, - - /// The operation is not supported. - /// - /// POSIX equivalent: EOPNOTSUPP - not-supported, - - /// One of the arguments is invalid. - /// - /// POSIX equivalent: EINVAL - invalid-argument, - - /// Not enough memory to complete the operation. - /// - /// POSIX equivalent: ENOMEM, ENOBUFS, EAI_MEMORY - out-of-memory, - - /// The operation timed out before it could finish completely. - timeout, - - /// This operation is incompatible with another asynchronous operation that is already in progress. - /// - /// POSIX equivalent: EALREADY - concurrency-conflict, - - /// Trying to finish an asynchronous operation that: - /// - has not been started yet, or: - /// - was already finished by a previous `finish-*` call. - /// - /// Note: this is scheduled to be removed when `future`s are natively supported. - not-in-progress, - - /// The operation has been aborted because it could not be completed immediately. - /// - /// Note: this is scheduled to be removed when `future`s are natively supported. - would-block, - - - - // ### TCP & UDP SOCKET ERRORS ### - - /// The operation is not valid in the socket's current state. - invalid-state, - - /// A new socket resource could not be created because of a system limit. - new-socket-limit, - - /// A bind operation failed because the provided address is not an address that the `network` can bind to. - address-not-bindable, - - /// A bind operation failed because the provided address is already in use or because there are no ephemeral ports available. - address-in-use, - - /// The remote address is not reachable - remote-unreachable, - - - // ### TCP SOCKET ERRORS ### - - /// The connection was forcefully rejected - connection-refused, - - /// The connection was reset. - connection-reset, - - /// A connection was aborted. - connection-aborted, - - - // ### UDP SOCKET ERRORS ### - datagram-too-large, - - - // ### NAME LOOKUP ERRORS ### - - /// Name does not exist or has no suitable associated IP addresses. - name-unresolvable, - - /// A temporary failure in name resolution occurred. - temporary-resolver-failure, - - /// A permanent failure in name resolution occurred. - permanent-resolver-failure, - } - - enum ip-address-family { - /// Similar to `AF_INET` in POSIX. - ipv4, - - /// Similar to `AF_INET6` in POSIX. - ipv6, - } - - type ipv4-address = tuple; - type ipv6-address = tuple; - - variant ip-address { - ipv4(ipv4-address), - ipv6(ipv6-address), - } - - record ipv4-socket-address { - port: u16, // sin_port - address: ipv4-address, // sin_addr - } - - record ipv6-socket-address { - port: u16, // sin6_port - flow-info: u32, // sin6_flowinfo - address: ipv6-address, // sin6_addr - scope-id: u32, // sin6_scope_id - } - - variant ip-socket-address { - ipv4(ipv4-socket-address), - ipv6(ipv6-socket-address), - } - -} diff --git a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/sockets/tcp-create-socket.wit b/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/sockets/tcp-create-socket.wit deleted file mode 100644 index 768a07c..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/sockets/tcp-create-socket.wit +++ /dev/null @@ -1,26 +0,0 @@ - -interface tcp-create-socket { - use network.{network, error-code, ip-address-family}; - use tcp.{tcp-socket}; - - /// Create a new TCP socket. - /// - /// Similar to `socket(AF_INET or AF_INET6, SOCK_STREAM, IPPROTO_TCP)` in POSIX. - /// - /// This function does not require a network capability handle. This is considered to be safe because - /// at time of creation, the socket is not bound to any `network` yet. Up to the moment `bind`/`listen`/`connect` - /// is called, the socket is effectively an in-memory configuration object, unable to communicate with the outside world. - /// - /// All sockets are non-blocking. Use the wasi-poll interface to block on asynchronous operations. - /// - /// # Typical errors - /// - `not-supported`: The specified `address-family` is not supported. (EAFNOSUPPORT) - /// - `new-socket-limit`: The new socket resource could not be created because of a system limit. (EMFILE, ENFILE) - /// - /// # References - /// - - /// - - /// - - /// - - create-tcp-socket: func(address-family: ip-address-family) -> result; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/sockets/tcp.wit b/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/sockets/tcp.wit deleted file mode 100644 index 976b272..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/sockets/tcp.wit +++ /dev/null @@ -1,326 +0,0 @@ - -interface tcp { - use wasi:io/streams@0.2.0-rc-2023-11-10.{input-stream, output-stream}; - use wasi:io/poll@0.2.0-rc-2023-11-10.{pollable}; - use wasi:clocks/monotonic-clock@0.2.0-rc-2023-11-10.{duration}; - use network.{network, error-code, ip-socket-address, ip-address-family}; - - enum shutdown-type { - /// Similar to `SHUT_RD` in POSIX. - receive, - - /// Similar to `SHUT_WR` in POSIX. - send, - - /// Similar to `SHUT_RDWR` in POSIX. - both, - } - - - /// A TCP socket handle. - resource tcp-socket { - /// Bind the socket to a specific network on the provided IP address and port. - /// - /// If the IP address is zero (`0.0.0.0` in IPv4, `::` in IPv6), it is left to the implementation to decide which - /// network interface(s) to bind to. - /// If the TCP/UDP port is zero, the socket will be bound to a random free port. - /// - /// When a socket is not explicitly bound, the first invocation to a listen or connect operation will - /// implicitly bind the socket. - /// - /// Unlike in POSIX, this function is async. This enables interactive WASI hosts to inject permission prompts. - /// - /// # Typical `start` errors - /// - `invalid-argument`: The `local-address` has the wrong address family. (EAFNOSUPPORT, EFAULT on Windows) - /// - `invalid-argument`: `local-address` is not a unicast address. (EINVAL) - /// - `invalid-argument`: `local-address` is an IPv4-mapped IPv6 address, but the socket has `ipv6-only` enabled. (EINVAL) - /// - `invalid-state`: The socket is already bound. (EINVAL) - /// - /// # Typical `finish` errors - /// - `address-in-use`: No ephemeral ports available. (EADDRINUSE, ENOBUFS on Windows) - /// - `address-in-use`: Address is already in use. (EADDRINUSE) - /// - `address-not-bindable`: `local-address` is not an address that the `network` can bind to. (EADDRNOTAVAIL) - /// - `not-in-progress`: A `bind` operation is not in progress. - /// - `would-block`: Can't finish the operation, it is still in progress. (EWOULDBLOCK, EAGAIN) - /// - /// # Implementors note - /// When binding to a non-zero port, this bind operation shouldn't be affected by the TIME_WAIT - /// state of a recently closed socket on the same local address (i.e. the SO_REUSEADDR socket - /// option should be set implicitly on platforms that require it). - /// - /// # References - /// - - /// - - /// - - /// - - start-bind: func(network: borrow, local-address: ip-socket-address) -> result<_, error-code>; - finish-bind: func() -> result<_, error-code>; - - /// Connect to a remote endpoint. - /// - /// On success: - /// - the socket is transitioned into the Connection state - /// - a pair of streams is returned that can be used to read & write to the connection - /// - /// POSIX mentions: - /// > If connect() fails, the state of the socket is unspecified. Conforming applications should - /// > close the file descriptor and create a new socket before attempting to reconnect. - /// - /// WASI prescribes the following behavior: - /// - If `connect` fails because an input/state validation error, the socket should remain usable. - /// - If a connection was actually attempted but failed, the socket should become unusable for further network communication. - /// Besides `drop`, any method after such a failure may return an error. - /// - /// # Typical `start` errors - /// - `invalid-argument`: The `remote-address` has the wrong address family. (EAFNOSUPPORT) - /// - `invalid-argument`: `remote-address` is not a unicast address. (EINVAL, ENETUNREACH on Linux, EAFNOSUPPORT on MacOS) - /// - `invalid-argument`: `remote-address` is an IPv4-mapped IPv6 address, but the socket has `ipv6-only` enabled. (EINVAL, EADDRNOTAVAIL on Illumos) - /// - `invalid-argument`: `remote-address` is a non-IPv4-mapped IPv6 address, but the socket was bound to a specific IPv4-mapped IPv6 address. (or vice versa) - /// - `invalid-argument`: The IP address in `remote-address` is set to INADDR_ANY (`0.0.0.0` / `::`). (EADDRNOTAVAIL on Windows) - /// - `invalid-argument`: The port in `remote-address` is set to 0. (EADDRNOTAVAIL on Windows) - /// - `invalid-argument`: The socket is already attached to a different network. The `network` passed to `connect` must be identical to the one passed to `bind`. - /// - `invalid-state`: The socket is already in the Connection state. (EISCONN) - /// - `invalid-state`: The socket is already in the Listener state. (EOPNOTSUPP, EINVAL on Windows) - /// - /// # Typical `finish` errors - /// - `timeout`: Connection timed out. (ETIMEDOUT) - /// - `connection-refused`: The connection was forcefully rejected. (ECONNREFUSED) - /// - `connection-reset`: The connection was reset. (ECONNRESET) - /// - `connection-aborted`: The connection was aborted. (ECONNABORTED) - /// - `remote-unreachable`: The remote address is not reachable. (EHOSTUNREACH, EHOSTDOWN, ENETUNREACH, ENETDOWN, ENONET) - /// - `address-in-use`: Tried to perform an implicit bind, but there were no ephemeral ports available. (EADDRINUSE, EADDRNOTAVAIL on Linux, EAGAIN on BSD) - /// - `not-in-progress`: A `connect` operation is not in progress. - /// - `would-block`: Can't finish the operation, it is still in progress. (EWOULDBLOCK, EAGAIN) - /// - /// # References - /// - - /// - - /// - - /// - - start-connect: func(network: borrow, remote-address: ip-socket-address) -> result<_, error-code>; - finish-connect: func() -> result, error-code>; - - /// Start listening for new connections. - /// - /// Transitions the socket into the Listener state. - /// - /// Unlike POSIX: - /// - this function is async. This enables interactive WASI hosts to inject permission prompts. - /// - the socket must already be explicitly bound. - /// - /// # Typical `start` errors - /// - `invalid-state`: The socket is not bound to any local address. (EDESTADDRREQ) - /// - `invalid-state`: The socket is already in the Connection state. (EISCONN, EINVAL on BSD) - /// - `invalid-state`: The socket is already in the Listener state. - /// - /// # Typical `finish` errors - /// - `address-in-use`: Tried to perform an implicit bind, but there were no ephemeral ports available. (EADDRINUSE) - /// - `not-in-progress`: A `listen` operation is not in progress. - /// - `would-block`: Can't finish the operation, it is still in progress. (EWOULDBLOCK, EAGAIN) - /// - /// # References - /// - - /// - - /// - - /// - - start-listen: func() -> result<_, error-code>; - finish-listen: func() -> result<_, error-code>; - - /// Accept a new client socket. - /// - /// The returned socket is bound and in the Connection state. The following properties are inherited from the listener socket: - /// - `address-family` - /// - `ipv6-only` - /// - `keep-alive-enabled` - /// - `keep-alive-idle-time` - /// - `keep-alive-interval` - /// - `keep-alive-count` - /// - `hop-limit` - /// - `receive-buffer-size` - /// - `send-buffer-size` - /// - /// On success, this function returns the newly accepted client socket along with - /// a pair of streams that can be used to read & write to the connection. - /// - /// # Typical errors - /// - `invalid-state`: Socket is not in the Listener state. (EINVAL) - /// - `would-block`: No pending connections at the moment. (EWOULDBLOCK, EAGAIN) - /// - `connection-aborted`: An incoming connection was pending, but was terminated by the client before this listener could accept it. (ECONNABORTED) - /// - `new-socket-limit`: The new socket resource could not be created because of a system limit. (EMFILE, ENFILE) - /// - /// # References - /// - - /// - - /// - - /// - - accept: func() -> result, error-code>; - - /// Get the bound local address. - /// - /// POSIX mentions: - /// > If the socket has not been bound to a local name, the value - /// > stored in the object pointed to by `address` is unspecified. - /// - /// WASI is stricter and requires `local-address` to return `invalid-state` when the socket hasn't been bound yet. - /// - /// # Typical errors - /// - `invalid-state`: The socket is not bound to any local address. - /// - /// # References - /// - - /// - - /// - - /// - - local-address: func() -> result; - - /// Get the remote address. - /// - /// # Typical errors - /// - `invalid-state`: The socket is not connected to a remote address. (ENOTCONN) - /// - /// # References - /// - - /// - - /// - - /// - - remote-address: func() -> result; - - /// Whether the socket is listening for new connections. - /// - /// Equivalent to the SO_ACCEPTCONN socket option. - is-listening: func() -> bool; - - /// Whether this is a IPv4 or IPv6 socket. - /// - /// Equivalent to the SO_DOMAIN socket option. - address-family: func() -> ip-address-family; - - /// Whether IPv4 compatibility (dual-stack) mode is disabled or not. - /// - /// Equivalent to the IPV6_V6ONLY socket option. - /// - /// # Typical errors - /// - `invalid-state`: (set) The socket is already bound. - /// - `not-supported`: (get/set) `this` socket is an IPv4 socket. - /// - `not-supported`: (set) Host does not support dual-stack sockets. (Implementations are not required to.) - ipv6-only: func() -> result; - set-ipv6-only: func(value: bool) -> result<_, error-code>; - - /// Hints the desired listen queue size. Implementations are free to ignore this. - /// - /// If the provided value is 0, an `invalid-argument` error is returned. - /// Any other value will never cause an error, but it might be silently clamped and/or rounded. - /// - /// # Typical errors - /// - `not-supported`: (set) The platform does not support changing the backlog size after the initial listen. - /// - `invalid-argument`: (set) The provided value was 0. - /// - `invalid-state`: (set) The socket is already in the Connection state. - set-listen-backlog-size: func(value: u64) -> result<_, error-code>; - - /// Enables or disables keepalive. - /// - /// The keepalive behavior can be adjusted using: - /// - `keep-alive-idle-time` - /// - `keep-alive-interval` - /// - `keep-alive-count` - /// These properties can be configured while `keep-alive-enabled` is false, but only come into effect when `keep-alive-enabled` is true. - /// - /// Equivalent to the SO_KEEPALIVE socket option. - keep-alive-enabled: func() -> result; - set-keep-alive-enabled: func(value: bool) -> result<_, error-code>; - - /// Amount of time the connection has to be idle before TCP starts sending keepalive packets. - /// - /// If the provided value is 0, an `invalid-argument` error is returned. - /// Any other value will never cause an error, but it might be silently clamped and/or rounded. - /// I.e. after setting a value, reading the same setting back may return a different value. - /// - /// Equivalent to the TCP_KEEPIDLE socket option. (TCP_KEEPALIVE on MacOS) - /// - /// # Typical errors - /// - `invalid-argument`: (set) The provided value was 0. - keep-alive-idle-time: func() -> result; - set-keep-alive-idle-time: func(value: duration) -> result<_, error-code>; - - /// The time between keepalive packets. - /// - /// If the provided value is 0, an `invalid-argument` error is returned. - /// Any other value will never cause an error, but it might be silently clamped and/or rounded. - /// I.e. after setting a value, reading the same setting back may return a different value. - /// - /// Equivalent to the TCP_KEEPINTVL socket option. - /// - /// # Typical errors - /// - `invalid-argument`: (set) The provided value was 0. - keep-alive-interval: func() -> result; - set-keep-alive-interval: func(value: duration) -> result<_, error-code>; - - /// The maximum amount of keepalive packets TCP should send before aborting the connection. - /// - /// If the provided value is 0, an `invalid-argument` error is returned. - /// Any other value will never cause an error, but it might be silently clamped and/or rounded. - /// I.e. after setting a value, reading the same setting back may return a different value. - /// - /// Equivalent to the TCP_KEEPCNT socket option. - /// - /// # Typical errors - /// - `invalid-argument`: (set) The provided value was 0. - keep-alive-count: func() -> result; - set-keep-alive-count: func(value: u32) -> result<_, error-code>; - - /// Equivalent to the IP_TTL & IPV6_UNICAST_HOPS socket options. - /// - /// If the provided value is 0, an `invalid-argument` error is returned. - /// - /// # Typical errors - /// - `invalid-argument`: (set) The TTL value must be 1 or higher. - /// - `invalid-state`: (set) The socket is already in the Connection state. - /// - `invalid-state`: (set) The socket is already in the Listener state. - hop-limit: func() -> result; - set-hop-limit: func(value: u8) -> result<_, error-code>; - - /// The kernel buffer space reserved for sends/receives on this socket. - /// - /// If the provided value is 0, an `invalid-argument` error is returned. - /// Any other value will never cause an error, but it might be silently clamped and/or rounded. - /// I.e. after setting a value, reading the same setting back may return a different value. - /// - /// Equivalent to the SO_RCVBUF and SO_SNDBUF socket options. - /// - /// # Typical errors - /// - `invalid-argument`: (set) The provided value was 0. - /// - `invalid-state`: (set) The socket is already in the Connection state. - /// - `invalid-state`: (set) The socket is already in the Listener state. - receive-buffer-size: func() -> result; - set-receive-buffer-size: func(value: u64) -> result<_, error-code>; - send-buffer-size: func() -> result; - set-send-buffer-size: func(value: u64) -> result<_, error-code>; - - /// Create a `pollable` which will resolve once the socket is ready for I/O. - /// - /// Note: this function is here for WASI Preview2 only. - /// It's planned to be removed when `future` is natively supported in Preview3. - subscribe: func() -> pollable; - - /// Initiate a graceful shutdown. - /// - /// - receive: the socket is not expecting to receive any more data from the peer. All subsequent read - /// operations on the `input-stream` associated with this socket will return an End Of Stream indication. - /// Any data still in the receive queue at time of calling `shutdown` will be discarded. - /// - send: the socket is not expecting to send any more data to the peer. All subsequent write - /// operations on the `output-stream` associated with this socket will return an error. - /// - both: same effect as receive & send combined. - /// - /// The shutdown function does not close (drop) the socket. - /// - /// # Typical errors - /// - `invalid-state`: The socket is not in the Connection state. (ENOTCONN) - /// - /// # References - /// - - /// - - /// - - /// - - shutdown: func(shutdown-type: shutdown-type) -> result<_, error-code>; - } -} diff --git a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/sockets/udp-create-socket.wit b/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/sockets/udp-create-socket.wit deleted file mode 100644 index cc58234..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/sockets/udp-create-socket.wit +++ /dev/null @@ -1,26 +0,0 @@ - -interface udp-create-socket { - use network.{network, error-code, ip-address-family}; - use udp.{udp-socket}; - - /// Create a new UDP socket. - /// - /// Similar to `socket(AF_INET or AF_INET6, SOCK_DGRAM, IPPROTO_UDP)` in POSIX. - /// - /// This function does not require a network capability handle. This is considered to be safe because - /// at time of creation, the socket is not bound to any `network` yet. Up to the moment `bind` is called, - /// the socket is effectively an in-memory configuration object, unable to communicate with the outside world. - /// - /// All sockets are non-blocking. Use the wasi-poll interface to block on asynchronous operations. - /// - /// # Typical errors - /// - `not-supported`: The specified `address-family` is not supported. (EAFNOSUPPORT) - /// - `new-socket-limit`: The new socket resource could not be created because of a system limit. (EMFILE, ENFILE) - /// - /// # References: - /// - - /// - - /// - - /// - - create-udp-socket: func(address-family: ip-address-family) -> result; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/sockets/udp.wit b/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/sockets/udp.wit deleted file mode 100644 index c8dafad..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/sockets/udp.wit +++ /dev/null @@ -1,277 +0,0 @@ - -interface udp { - use wasi:io/poll@0.2.0-rc-2023-11-10.{pollable}; - use network.{network, error-code, ip-socket-address, ip-address-family}; - - /// A received datagram. - record incoming-datagram { - /// The payload. - /// - /// Theoretical max size: ~64 KiB. In practice, typically less than 1500 bytes. - data: list, - - /// The source address. - /// - /// This field is guaranteed to match the remote address the stream was initialized with, if any. - /// - /// Equivalent to the `src_addr` out parameter of `recvfrom`. - remote-address: ip-socket-address, - } - - /// A datagram to be sent out. - record outgoing-datagram { - /// The payload. - data: list, - - /// The destination address. - /// - /// The requirements on this field depend on how the stream was initialized: - /// - with a remote address: this field must be None or match the stream's remote address exactly. - /// - without a remote address: this field is required. - /// - /// If this value is None, the send operation is equivalent to `send` in POSIX. Otherwise it is equivalent to `sendto`. - remote-address: option, - } - - - - /// A UDP socket handle. - resource udp-socket { - /// Bind the socket to a specific network on the provided IP address and port. - /// - /// If the IP address is zero (`0.0.0.0` in IPv4, `::` in IPv6), it is left to the implementation to decide which - /// network interface(s) to bind to. - /// If the port is zero, the socket will be bound to a random free port. - /// - /// Unlike in POSIX, this function is async. This enables interactive WASI hosts to inject permission prompts. - /// - /// # Typical `start` errors - /// - `invalid-argument`: The `local-address` has the wrong address family. (EAFNOSUPPORT, EFAULT on Windows) - /// - `invalid-state`: The socket is already bound. (EINVAL) - /// - /// # Typical `finish` errors - /// - `address-in-use`: No ephemeral ports available. (EADDRINUSE, ENOBUFS on Windows) - /// - `address-in-use`: Address is already in use. (EADDRINUSE) - /// - `address-not-bindable`: `local-address` is not an address that the `network` can bind to. (EADDRNOTAVAIL) - /// - `not-in-progress`: A `bind` operation is not in progress. - /// - `would-block`: Can't finish the operation, it is still in progress. (EWOULDBLOCK, EAGAIN) - /// - /// # References - /// - - /// - - /// - - /// - - start-bind: func(network: borrow, local-address: ip-socket-address) -> result<_, error-code>; - finish-bind: func() -> result<_, error-code>; - - /// Set up inbound & outbound communication channels, optionally to a specific peer. - /// - /// This function only changes the local socket configuration and does not generate any network traffic. - /// On success, the `remote-address` of the socket is updated. The `local-address` may be updated as well, - /// based on the best network path to `remote-address`. - /// - /// When a `remote-address` is provided, the returned streams are limited to communicating with that specific peer: - /// - `send` can only be used to send to this destination. - /// - `receive` will only return datagrams sent from the provided `remote-address`. - /// - /// This method may be called multiple times on the same socket to change its association, but - /// only the most recently returned pair of streams will be operational. Implementations may trap if - /// the streams returned by a previous invocation haven't been dropped yet before calling `stream` again. - /// - /// The POSIX equivalent in pseudo-code is: - /// ```text - /// if (was previously connected) { - /// connect(s, AF_UNSPEC) - /// } - /// if (remote_address is Some) { - /// connect(s, remote_address) - /// } - /// ``` - /// - /// Unlike in POSIX, the socket must already be explicitly bound. - /// - /// # Typical errors - /// - `invalid-argument`: The `remote-address` has the wrong address family. (EAFNOSUPPORT) - /// - `invalid-argument`: `remote-address` is a non-IPv4-mapped IPv6 address, but the socket was bound to a specific IPv4-mapped IPv6 address. (or vice versa) - /// - `invalid-argument`: The IP address in `remote-address` is set to INADDR_ANY (`0.0.0.0` / `::`). (EDESTADDRREQ, EADDRNOTAVAIL) - /// - `invalid-argument`: The port in `remote-address` is set to 0. (EDESTADDRREQ, EADDRNOTAVAIL) - /// - `invalid-state`: The socket is not bound. - /// - `address-in-use`: Tried to perform an implicit bind, but there were no ephemeral ports available. (EADDRINUSE, EADDRNOTAVAIL on Linux, EAGAIN on BSD) - /// - `remote-unreachable`: The remote address is not reachable. (ECONNRESET, ENETRESET, EHOSTUNREACH, EHOSTDOWN, ENETUNREACH, ENETDOWN, ENONET) - /// - `connection-refused`: The connection was refused. (ECONNREFUSED) - /// - /// # References - /// - - /// - - /// - - /// - - %stream: func(remote-address: option) -> result, error-code>; - - /// Get the current bound address. - /// - /// POSIX mentions: - /// > If the socket has not been bound to a local name, the value - /// > stored in the object pointed to by `address` is unspecified. - /// - /// WASI is stricter and requires `local-address` to return `invalid-state` when the socket hasn't been bound yet. - /// - /// # Typical errors - /// - `invalid-state`: The socket is not bound to any local address. - /// - /// # References - /// - - /// - - /// - - /// - - local-address: func() -> result; - - /// Get the address the socket is currently streaming to. - /// - /// # Typical errors - /// - `invalid-state`: The socket is not streaming to a specific remote address. (ENOTCONN) - /// - /// # References - /// - - /// - - /// - - /// - - remote-address: func() -> result; - - /// Whether this is a IPv4 or IPv6 socket. - /// - /// Equivalent to the SO_DOMAIN socket option. - address-family: func() -> ip-address-family; - - /// Whether IPv4 compatibility (dual-stack) mode is disabled or not. - /// - /// Equivalent to the IPV6_V6ONLY socket option. - /// - /// # Typical errors - /// - `not-supported`: (get/set) `this` socket is an IPv4 socket. - /// - `invalid-state`: (set) The socket is already bound. - /// - `not-supported`: (set) Host does not support dual-stack sockets. (Implementations are not required to.) - ipv6-only: func() -> result; - set-ipv6-only: func(value: bool) -> result<_, error-code>; - - /// Equivalent to the IP_TTL & IPV6_UNICAST_HOPS socket options. - /// - /// If the provided value is 0, an `invalid-argument` error is returned. - /// - /// # Typical errors - /// - `invalid-argument`: (set) The TTL value must be 1 or higher. - unicast-hop-limit: func() -> result; - set-unicast-hop-limit: func(value: u8) -> result<_, error-code>; - - /// The kernel buffer space reserved for sends/receives on this socket. - /// - /// If the provided value is 0, an `invalid-argument` error is returned. - /// Any other value will never cause an error, but it might be silently clamped and/or rounded. - /// I.e. after setting a value, reading the same setting back may return a different value. - /// - /// Equivalent to the SO_RCVBUF and SO_SNDBUF socket options. - /// - /// # Typical errors - /// - `invalid-argument`: (set) The provided value was 0. - receive-buffer-size: func() -> result; - set-receive-buffer-size: func(value: u64) -> result<_, error-code>; - send-buffer-size: func() -> result; - set-send-buffer-size: func(value: u64) -> result<_, error-code>; - - /// Create a `pollable` which will resolve once the socket is ready for I/O. - /// - /// Note: this function is here for WASI Preview2 only. - /// It's planned to be removed when `future` is natively supported in Preview3. - subscribe: func() -> pollable; - } - - resource incoming-datagram-stream { - /// Receive messages on the socket. - /// - /// This function attempts to receive up to `max-results` datagrams on the socket without blocking. - /// The returned list may contain fewer elements than requested, but never more. - /// - /// This function returns successfully with an empty list when either: - /// - `max-results` is 0, or: - /// - `max-results` is greater than 0, but no results are immediately available. - /// This function never returns `error(would-block)`. - /// - /// # Typical errors - /// - `remote-unreachable`: The remote address is not reachable. (ECONNRESET, ENETRESET on Windows, EHOSTUNREACH, EHOSTDOWN, ENETUNREACH, ENETDOWN, ENONET) - /// - `connection-refused`: The connection was refused. (ECONNREFUSED) - /// - /// # References - /// - - /// - - /// - - /// - - /// - - /// - - /// - - /// - - receive: func(max-results: u64) -> result, error-code>; - - /// Create a `pollable` which will resolve once the stream is ready to receive again. - /// - /// Note: this function is here for WASI Preview2 only. - /// It's planned to be removed when `future` is natively supported in Preview3. - subscribe: func() -> pollable; - } - - resource outgoing-datagram-stream { - /// Check readiness for sending. This function never blocks. - /// - /// Returns the number of datagrams permitted for the next call to `send`, - /// or an error. Calling `send` with more datagrams than this function has - /// permitted will trap. - /// - /// When this function returns ok(0), the `subscribe` pollable will - /// become ready when this function will report at least ok(1), or an - /// error. - /// - /// Never returns `would-block`. - check-send: func() -> result; - - /// Send messages on the socket. - /// - /// This function attempts to send all provided `datagrams` on the socket without blocking and - /// returns how many messages were actually sent (or queued for sending). This function never - /// returns `error(would-block)`. If none of the datagrams were able to be sent, `ok(0)` is returned. - /// - /// This function semantically behaves the same as iterating the `datagrams` list and sequentially - /// sending each individual datagram until either the end of the list has been reached or the first error occurred. - /// If at least one datagram has been sent successfully, this function never returns an error. - /// - /// If the input list is empty, the function returns `ok(0)`. - /// - /// Each call to `send` must be permitted by a preceding `check-send`. Implementations must trap if - /// either `check-send` was not called or `datagrams` contains more items than `check-send` permitted. - /// - /// # Typical errors - /// - `invalid-argument`: The `remote-address` has the wrong address family. (EAFNOSUPPORT) - /// - `invalid-argument`: `remote-address` is a non-IPv4-mapped IPv6 address, but the socket was bound to a specific IPv4-mapped IPv6 address. (or vice versa) - /// - `invalid-argument`: The IP address in `remote-address` is set to INADDR_ANY (`0.0.0.0` / `::`). (EDESTADDRREQ, EADDRNOTAVAIL) - /// - `invalid-argument`: The port in `remote-address` is set to 0. (EDESTADDRREQ, EADDRNOTAVAIL) - /// - `invalid-argument`: The socket is in "connected" mode and `remote-address` is `some` value that does not match the address passed to `stream`. (EISCONN) - /// - `invalid-argument`: The socket is not "connected" and no value for `remote-address` was provided. (EDESTADDRREQ) - /// - `remote-unreachable`: The remote address is not reachable. (ECONNRESET, ENETRESET on Windows, EHOSTUNREACH, EHOSTDOWN, ENETUNREACH, ENETDOWN, ENONET) - /// - `connection-refused`: The connection was refused. (ECONNREFUSED) - /// - `datagram-too-large`: The datagram is too large. (EMSGSIZE) - /// - /// # References - /// - - /// - - /// - - /// - - /// - - /// - - /// - - /// - - send: func(datagrams: list) -> result; - - /// Create a `pollable` which will resolve once the stream is ready to send again. - /// - /// Note: this function is here for WASI Preview2 only. - /// It's planned to be removed when `future` is natively supported in Preview3. - subscribe: func() -> pollable; - } -} diff --git a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/sockets/world.wit b/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/sockets/world.wit deleted file mode 100644 index 49ad8d3..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/deps/sockets/world.wit +++ /dev/null @@ -1,11 +0,0 @@ -package wasi:sockets@0.2.0-rc-2023-11-10; - -world imports { - import instance-network; - import network; - import udp; - import udp-create-socket; - import tcp; - import tcp-create-socket; - import ip-name-lookup; -} diff --git a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/main.wit b/host-apis/wasi-0.2.0-rc-2023-12-05/wit/main.wit deleted file mode 100644 index 013d6ef..0000000 --- a/host-apis/wasi-0.2.0-rc-2023-12-05/wit/main.wit +++ /dev/null @@ -1,6 +0,0 @@ -package local:bindings; - -world bindings { - include wasi:cli/command@0.2.0-rc-2023-12-05; - include wasi:http/proxy@0.2.0-rc-2023-12-05; -}